@savvy-web/tsdown-plugins 2.9.4 → 2.10.1

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 (59) hide show
  1. package/build/build-target-groups.js +1 -2
  2. package/build/cjs-default-interop.js +1 -2
  3. package/build/loose-files.js +1 -2
  4. package/build/node-builtin-default-interop.js +1 -2
  5. package/build/strip-maps.js +1 -2
  6. package/build/sync-public.js +1 -2
  7. package/build/target-groups.js +1 -2
  8. package/catalog/resolve-catalogs.js +1 -2
  9. package/changesets/next-versions.js +1 -2
  10. package/config-validation/ConfigValidator.js +1 -2
  11. package/dts/reexport-stub.js +1 -2
  12. package/dts/relative-imports.js +1 -2
  13. package/dts/resolved-tsconfig.js +1 -2
  14. package/entry/ambient-dts.js +1 -2
  15. package/entry/extract.js +1 -2
  16. package/entry/package-json-entries.js +1 -2
  17. package/errors.js +1 -2
  18. package/exe/build.js +1 -2
  19. package/exe/config.js +1 -2
  20. package/exe/filename.js +1 -2
  21. package/index.d.ts +41 -108
  22. package/index.js +3 -3
  23. package/jsx/config.js +1 -2
  24. package/manifest/emit-manifest.js +1 -2
  25. package/manifest/transform.js +1 -2
  26. package/meta/api-extractor.js +1 -2
  27. package/meta/config.js +1 -2
  28. package/meta/generate.js +1 -2
  29. package/meta/merge-models.js +1 -2
  30. package/meta/message-suppressor.js +1 -2
  31. package/meta/og-image.js +1 -2
  32. package/meta/optimistic.js +1 -2
  33. package/meta/run-pass.js +1 -2
  34. package/meta/tsconfig-resolver.js +1 -2
  35. package/meta/tsdoc-config.js +1 -2
  36. package/meta/tsdoctor-manifest.js +1 -2
  37. package/meta/tsdoctor-source.js +1 -2
  38. package/package.json +13 -13
  39. package/report/collector.js +1 -2
  40. package/report/formatters/ci-annotations.js +1 -2
  41. package/report/formatters/diagnostics.js +1 -2
  42. package/report/formatters/json.js +1 -2
  43. package/report/formatters/markdown.js +1 -2
  44. package/report/formatters/silent.js +1 -2
  45. package/report/formatters/terminal.js +1 -2
  46. package/report/issues-artifact.js +1 -2
  47. package/report/metrics-plugin.js +1 -2
  48. package/report/pipeline.js +1 -2
  49. package/report/schema.js +6 -5
  50. package/report/services/EnvironmentDetector.js +1 -2
  51. package/report/services/ExecutorResolver.js +1 -2
  52. package/report/services/FormatSelector.js +1 -2
  53. package/report/services/OutputRenderer.js +1 -2
  54. package/report/timer.js +1 -2
  55. package/report/tsdown-logger.js +1 -2
  56. package/targets/binding.js +1 -2
  57. package/targets/config.js +12 -3
  58. package/targets/resolve-targets.js +44 -9
  59. package/tsconfig/sync-options.js +1 -2
package/index.d.ts CHANGED
@@ -10,7 +10,6 @@ import { CatalogAssemblyError, DependencyResolutionError, ManifestDecodeError, U
10
10
  import { Plugin } from "rolldown";
11
11
  import { Context, Effect, Layer, Schema } from "effect";
12
12
  import { BundleManifest, ManifestSource, OpenGraphImage, RegistryRef } from "@tsdoctor/manifest";
13
- //#region src/manifest/transform.d.ts
14
13
  /** @public */
15
14
  type Json = Record<string, unknown>;
16
15
  /**
@@ -109,8 +108,6 @@ interface TransformManifestOptions {
109
108
  * @public
110
109
  */
111
110
  export declare function transformManifest(pkg: Json, options?: TransformManifestOptions): Json;
112
- //#endregion
113
- //#region src/manifest/emit-manifest.d.ts
114
111
  /** @public */
115
112
  interface TargetGroupRef {
116
113
  readonly id: string;
@@ -167,15 +164,13 @@ interface EmitManifestOptions {
167
164
  * @public
168
165
  */
169
166
  export declare function emitManifest(options: EmitManifestOptions): Plugin;
170
- //#endregion
171
- //#region src/report/schema.d.ts
172
167
  declare const ReportTimings_base: Schema.Class<ReportTimings, Schema.Struct<{
173
168
  readonly totalMs: Schema.Number;
174
169
  }>, {}>;
175
170
  /** @public */
176
171
  export declare class ReportTimings extends ReportTimings_base {}
177
172
  declare const DiagnosticEntry_base: Schema.Class<DiagnosticEntry, Schema.Struct<{
178
- readonly source: Schema.Literals<readonly ["tsdown", "rolldown", "api-extractor", "meta"]>;
173
+ readonly source: Schema.Literals<readonly ["tsdown", "rolldown", "api-extractor", "meta", "config"]>;
179
174
  readonly level: Schema.Literals<readonly ["warn", "error"]>;
180
175
  readonly text: Schema.String;
181
176
  /**
@@ -190,8 +185,9 @@ declare const DiagnosticEntry_base: Schema.Class<DiagnosticEntry, Schema.Struct<
190
185
  readonly column: Schema.optional<Schema.Number>;
191
186
  }>, {}>;
192
187
  /**
193
- * A captured warning or error, from tsdown's logger, rolldown's onLog, API Extractor, or the meta
194
- * pass's own sidecar work (`tsdoctor.json` sources, Open Graph generation).
188
+ * A captured warning or error, from tsdown's logger, rolldown's onLog, API Extractor, the meta
189
+ * pass's own sidecar work (`tsdoctor.json` sources, Open Graph generation), or an advisory finding
190
+ * about the build config itself (`config`, e.g. a `publishConfig.targets` set no final release reaches).
195
191
  *
196
192
  * @public
197
193
  */
@@ -236,8 +232,6 @@ declare const BuildReport_base: Schema.Class<BuildReport, Schema.Struct<{
236
232
  }>, {}>;
237
233
  /** @public */
238
234
  declare class BuildReport extends BuildReport_base {}
239
- //#endregion
240
- //#region src/report/collector.d.ts
241
235
  /** @public */
242
236
  type PassKind = PassReport["id"];
243
237
  /** @public */
@@ -272,8 +266,6 @@ export declare class BuildCollector {
272
266
  declare const BuildCollectorTag_base: Context.ServiceClass<BuildCollectorTag, "@savvy-web/tsdown-plugins/BuildCollector", BuildCollector>;
273
267
  /** @public */
274
268
  export declare class BuildCollectorTag extends BuildCollectorTag_base {}
275
- //#endregion
276
- //#region src/build/target-groups.d.ts
277
269
  /**
278
270
  * A build group id: "dev" or any prod byte-variant id (e.g. "npm", "github", a custom key).
279
271
  *
@@ -428,8 +420,6 @@ interface DerivedTsdownOptions {
428
420
  * @public
429
421
  */
430
422
  export declare function deriveTargetGroupOptions(options: DeriveOptions): DerivedTsdownOptions;
431
- //#endregion
432
- //#region src/build/loose-files.d.ts
433
423
  /**
434
424
  * One standalone bundled output file, declared by its literal output filename.
435
425
  *
@@ -475,8 +465,6 @@ interface NormalizedLooseFile {
475
465
  * @public
476
466
  */
477
467
  export declare function normalizeLooseFiles(files: LooseFiles): ReadonlyArray<NormalizedLooseFile>;
478
- //#endregion
479
- //#region src/build/build-target-groups.d.ts
480
468
  /**
481
469
  * Signature compatible with tsdown's `build(inlineConfig)`.
482
470
  *
@@ -671,8 +659,6 @@ interface BuildTargetGroupsOptions {
671
659
  * @public
672
660
  */
673
661
  export declare function buildTargetGroups(options: BuildTargetGroupsOptions): Promise<void>;
674
- //#endregion
675
- //#region src/build/cjs-default-interop.d.ts
676
662
  /**
677
663
  * Rolldown plugin: append the CJS default-interop footer to ENTRY chunks of the
678
664
  * `cjs` format that export a default alongside named exports.
@@ -692,8 +678,6 @@ export declare function buildTargetGroups(options: BuildTargetGroupsOptions): Pr
692
678
  * @public
693
679
  */
694
680
  export declare function cjsDefaultInterop(): Plugin;
695
- //#endregion
696
- //#region src/build/node-builtin-default-interop.d.ts
697
681
  /**
698
682
  * Rewrite a default import / default re-export of a Node built-in into the
699
683
  * equivalent NAMESPACE form, so rolldown's CJS codegen produces correct interop.
@@ -740,8 +724,6 @@ export declare function cjsDefaultInterop(): Plugin;
740
724
  * @public
741
725
  */
742
726
  export declare function nodeBuiltinDefaultInterop(): Plugin;
743
- //#endregion
744
- //#region src/build/strip-maps.d.ts
745
727
  /**
746
728
  * Remove declaration source-map files (`.d.ts.map` / `.d.cts.map`) from a built `pkg`
747
729
  * directory, returning the removed paths.
@@ -758,8 +740,6 @@ export declare function nodeBuiltinDefaultInterop(): Plugin;
758
740
  * @public
759
741
  */
760
742
  export declare function removeDeclarationMaps(pkgDir: string): string[];
761
- //#endregion
762
- //#region src/errors.d.ts
763
743
  declare const MetaGenerationError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
764
744
  readonly _tag: "MetaGenerationError";
765
745
  } & Readonly<A>;
@@ -804,8 +784,6 @@ export declare class TsdoctorEmitError extends TsdoctorEmitError_base<{
804
784
  }> {
805
785
  get message(): string;
806
786
  }
807
- //#endregion
808
- //#region src/entry/extract.d.ts
809
787
  /** @public */
810
788
  interface PackageJsonLike {
811
789
  readonly exports?: unknown;
@@ -837,8 +815,6 @@ interface ExtractResult {
837
815
  export declare const createEntryName: (exportKey: string, exportsAsIndexes: boolean) => string;
838
816
  /** @public */
839
817
  export declare function extractEntries(pkg: PackageJsonLike, options?: ExtractOptions): ExtractResult;
840
- //#endregion
841
- //#region src/entry/ambient-dts.d.ts
842
818
  /** The declaration-file extension of a path, or undefined when it is not a declaration file. @public */
843
819
  export declare function declarationExt(p: string): ".d.ts" | ".d.cts" | ".d.mts" | undefined;
844
820
  /** Classification of a single export value for ambient-.d.ts handling. @public */
@@ -887,8 +863,6 @@ export declare function extractAmbientDts(pkg: PackageJsonLike, options?: Extrac
887
863
  * extension stripped. @public
888
864
  */
889
865
  export declare function assertNoEntryCollisions(jsEntryNames: ReadonlyArray<string>, ambient: ReadonlyArray<AmbientDtsEntry>): void;
890
- //#endregion
891
- //#region src/build/sync-public.d.ts
892
866
  /**
893
867
  * Copy the CONTENTS of `sourceDir` into `outDir`, additively.
894
868
  *
@@ -925,8 +899,6 @@ interface CopyAmbientDtsOptions {
925
899
  * @public
926
900
  */
927
901
  export declare function copyAmbientDts(options: CopyAmbientDtsOptions): void;
928
- //#endregion
929
- //#region src/catalog/resolve-catalogs.d.ts
930
902
  /**
931
903
  * Minimal shape of a `package.json` manifest needed to resolve catalog and
932
904
  * workspace specifiers.
@@ -957,8 +929,6 @@ interface ManifestLike {
957
929
  * @public
958
930
  */
959
931
  export declare function resolveManifest(pkg: ManifestLike): Promise<ManifestLike>;
960
- //#endregion
961
- //#region src/changesets/next-versions.d.ts
962
932
  /**
963
933
  * Result of resolving next release versions for a workspace.
964
934
  *
@@ -981,8 +951,6 @@ interface NextVersions {
981
951
  * @public
982
952
  */
983
953
  export declare function resolveNextVersions(cwd: string): Promise<NextVersions>;
984
- //#endregion
985
- //#region src/exe/config.d.ts
986
954
  /**
987
955
  * Default Node runtime embedded in the SEA (parity with the vitest-agent reference).
988
956
  *
@@ -1067,8 +1035,6 @@ interface PkgOsCpu {
1067
1035
  * @public
1068
1036
  */
1069
1037
  export declare function normalizeExeOptions(exe: ExeConfig | ReadonlyArray<ExeConfig>, pkg: PkgOsCpu): ReadonlyArray<NormalizedExe>;
1070
- //#endregion
1071
- //#region src/meta/tsdoctor-config.d.ts
1072
1038
  /**
1073
1039
  * What an Open Graph image generator receives: the merged identity of the
1074
1040
  * package being built, after the config, leaf and project tiers resolved.
@@ -1129,8 +1095,6 @@ interface TsdoctorMetaOptions {
1129
1095
  /** Registries; `false` disables the default derived from `targets.json`. */
1130
1096
  readonly registries?: ReadonlyArray<RegistryRef> | false | undefined;
1131
1097
  }
1132
- //#endregion
1133
- //#region src/meta/config.d.ts
1134
1098
  /**
1135
1099
  * A single TSDoc tag definition (parity with api-extractor's TSDoc config).
1136
1100
  *
@@ -1207,8 +1171,23 @@ export declare function normalizeMetaOptions(meta: MetaOptions, env?: {
1207
1171
  CI?: string | undefined;
1208
1172
  GITHUB_ACTIONS?: string | undefined;
1209
1173
  }): NormalizedMeta;
1210
- //#endregion
1211
- //#region src/targets/config.d.ts
1174
+ /**
1175
+ * Which release versions a target receives: every version, only final versions, or only prereleases.
1176
+ *
1177
+ * @remarks
1178
+ * A prerelease is any version carrying a SemVer prerelease suffix (`1.2.0-beta.1`). The filter is
1179
+ * applied per target at publish time, never at build time, so a `from` target that shares a group
1180
+ * with a differently-filtered target still reuses the same bytes.
1181
+ *
1182
+ * @public
1183
+ */
1184
+ type ReleaseChannel = "all" | "stable" | "prerelease";
1185
+ /**
1186
+ * Every {@link ReleaseChannel} value, in declaration order.
1187
+ *
1188
+ * @public
1189
+ */
1190
+ export declare const RELEASE_CHANNELS: ReadonlyArray<ReleaseChannel>;
1212
1191
  /**
1213
1192
  * A single object-form publish target. Uses `from` XOR `name` (never both).
1214
1193
  *
@@ -1221,6 +1200,10 @@ interface PublishTargetObject {
1221
1200
  readonly name?: string | undefined;
1222
1201
  /** Reuse another target's group bytes (deploy them to this registry). Mutually exclusive with `name`. */
1223
1202
  readonly from?: string | undefined;
1203
+ /** Which release versions this target receives. Defaults to `"all"`. */
1204
+ readonly releases?: ReleaseChannel | undefined;
1205
+ /** Force the provenance attestation on or off, overriding the registry-derived default. */
1206
+ readonly provenance?: boolean | undefined;
1224
1207
  }
1225
1208
  /**
1226
1209
  * A `publishConfig.targets` value: `true` (well-known registry, base name), a string (name override), or an object.
@@ -1261,6 +1244,10 @@ interface ResolvedTarget {
1261
1244
  readonly name: string;
1262
1245
  /** The resolved registry endpoint. */
1263
1246
  readonly registry: string;
1247
+ /** Which release versions this target receives; always written, `"all"` when undeclared. */
1248
+ readonly releases: ReleaseChannel;
1249
+ /** The declared provenance override; absent when the target leaves it to the registry default. */
1250
+ readonly provenance?: boolean;
1264
1251
  }
1265
1252
  /**
1266
1253
  * The full resolution of `publishConfig.targets`: the distinct groups to build, and every target bound to one.
@@ -1277,8 +1264,6 @@ interface TargetResolution {
1277
1264
  * @public
1278
1265
  */
1279
1266
  export declare function isTargetObject(value: PublishTargetValue): value is PublishTargetObject;
1280
- //#endregion
1281
- //#region src/config-validation/ConfigValidator.d.ts
1282
1267
  /**
1283
1268
  * The normalized facts the validator checks, assembled by the bundler before any build work.
1284
1269
  *
@@ -1309,8 +1294,6 @@ declare const ConfigValidator_base: Context.ServiceClass<ConfigValidator, "@savv
1309
1294
  export declare class ConfigValidator extends ConfigValidator_base {
1310
1295
  static readonly layer: Layer.Layer<ConfigValidator>;
1311
1296
  }
1312
- //#endregion
1313
- //#region src/dts/reexport-stub.d.ts
1314
1297
  /**
1315
1298
  * The analysis of an entry source treated as a candidate re-export barrel.
1316
1299
  *
@@ -1372,11 +1355,7 @@ export declare function renderReexportStub(options: {
1372
1355
  readonly typeNames: ReadonlyArray<string>;
1373
1356
  readonly baseSpecifier: string;
1374
1357
  }): string;
1375
- //#endregion
1376
- //#region src/dts/relative-imports.d.ts
1377
1358
  export declare function findRelativeSpecifiers(source: string, fileName?: string): string[];
1378
- //#endregion
1379
- //#region src/dts/resolved-tsconfig.d.ts
1380
1359
  /** @public */
1381
1360
  interface ResolvedTsconfigOptions {
1382
1361
  /** Absolute package root. */
@@ -1433,8 +1412,6 @@ export declare function writeResolvedTsconfig(options: ResolvedTsconfigOptions):
1433
1412
  * @public
1434
1413
  */
1435
1414
  export declare function writeDtsEmitTsconfig(resolvedTsconfigPath: string): string;
1436
- //#endregion
1437
- //#region src/entry/package-json-entries.d.ts
1438
1415
  /** @public */
1439
1416
  interface PackageJsonEntriesOptions extends ExtractOptions {
1440
1417
  /** In-memory package.json. If omitted, reads `<cwd>/package.json`. */
@@ -1448,8 +1425,6 @@ interface PackageJsonEntriesOptions extends ExtractOptions {
1448
1425
  * @public
1449
1426
  */
1450
1427
  export declare function packageJsonEntries(options?: PackageJsonEntriesOptions): Record<string, string>;
1451
- //#endregion
1452
- //#region src/exe/build.d.ts
1453
1428
  /**
1454
1429
  * A minimal structural type for tsdown's build, kept loose so this package keeps no tsdown runtime dep (interface-only).
1455
1430
  *
@@ -1482,8 +1457,6 @@ interface RunExeBuildOptions {
1482
1457
  * @public
1483
1458
  */
1484
1459
  export declare function runExeBuild(options: RunExeBuildOptions): Promise<void>;
1485
- //#endregion
1486
- //#region src/exe/filename.d.ts
1487
1460
  /**
1488
1461
  * The exact filename `@tsdown/exe` emits for a SEA target, mirroring tsdown's
1489
1462
  * `resolveOutputFileName`: base fileName + `-<platform>-<arch>` + `.exe` on win.
@@ -1491,8 +1464,6 @@ export declare function runExeBuild(options: RunExeBuildOptions): Promise<void>;
1491
1464
  * @public
1492
1465
  */
1493
1466
  export declare function computeExeFileName(fileName: string, target: ExeTarget): string;
1494
- //#endregion
1495
- //#region src/jsx/config.d.ts
1496
1467
  /**
1497
1468
  * Resolved JSX transform settings. The shape mirrors the subset of rolldown's JsxOptions, but the
1498
1469
  * bundler consumes it to populate the generated dts tsconfig's `jsx`/`jsxImportSource`, not by
@@ -1529,8 +1500,6 @@ export declare function resolveJsxConfig(tsconfig: TsconfigJsx, override: JsxCon
1529
1500
  * @public
1530
1501
  */
1531
1502
  export declare function readTsconfigJsx(cwd: string): TsconfigJsx;
1532
- //#endregion
1533
- //#region src/meta/tsdoctor-manifest.d.ts
1534
1503
  /**
1535
1504
  * A `targets.json` target as the manifest composer sees it: the human label and the registry endpoint.
1536
1505
  *
@@ -1606,8 +1575,6 @@ export declare function composeTsdoctorManifest(input: ComposeManifestInput): Bu
1606
1575
  export declare function ogImageInfoOf(input: ComposeManifestInput & {
1607
1576
  readonly version: string;
1608
1577
  }): OgImageInfo;
1609
- //#endregion
1610
- //#region src/meta/generate.d.ts
1611
1578
  /** @public */
1612
1579
  interface GenerateMetaOptions {
1613
1580
  readonly cwd: string;
@@ -1669,8 +1636,6 @@ interface MetaResult {
1669
1636
  * @public
1670
1637
  */
1671
1638
  export declare function generateMeta(options: GenerateMetaOptions): Promise<MetaResult>;
1672
- //#endregion
1673
- //#region src/meta/og-image.d.ts
1674
1639
  declare const OgGenerateError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
1675
1640
  readonly _tag: "OgGenerateError";
1676
1641
  } & Readonly<A>;
@@ -1724,8 +1689,6 @@ interface WriteGeneratedOgImageOptions {
1724
1689
  * @public
1725
1690
  */
1726
1691
  export declare function writeGeneratedOgImage(options: WriteGeneratedOgImageOptions): Promise<OpenGraphImage>;
1727
- //#endregion
1728
- //#region src/meta/optimistic.d.ts
1729
1692
  /**
1730
1693
  * Rewrite a meta `package.json` so the package's own `version` and any workspace-sibling
1731
1694
  * dependency version reflect their NEXT release version from `versions`. Pure: returns a new
@@ -1734,8 +1697,6 @@ export declare function writeGeneratedOgImage(options: WriteGeneratedOgImageOpti
1734
1697
  * @public
1735
1698
  */
1736
1699
  export declare function rewriteMetaVersions(pkg: Record<string, unknown>, versions: ReadonlyMap<string, string>, selfName: string): Record<string, unknown>;
1737
- //#endregion
1738
- //#region src/meta/tsdoctor-source.d.ts
1739
1700
  declare const TsdoctorSourceError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
1740
1701
  readonly _tag: "TsdoctorSourceError";
1741
1702
  } & Readonly<A>;
@@ -1774,8 +1735,6 @@ interface TsdoctorSources {
1774
1735
  * @public
1775
1736
  */
1776
1737
  export declare function loadTsdoctorSources(cwd: string): Promise<TsdoctorSources>;
1777
- //#endregion
1778
- //#region src/meta/run-pass.d.ts
1779
1738
  /**
1780
1739
  * Options for the meta-pass orchestrator.
1781
1740
  *
@@ -1837,8 +1796,6 @@ export declare function applySubdirMetaEntries(overrides: ReadonlyArray<{
1837
1796
  entries: ReadonlyArray<string>;
1838
1797
  outSubdir?: string | undefined;
1839
1798
  }> | undefined, dtsBasenames: Record<string, string>, exportPaths: Record<string, string>): void;
1840
- //#endregion
1841
- //#region src/meta/tsconfig-resolver.d.ts
1842
1799
  /**
1843
1800
  * Compiler options with enum values converted to their string equivalents.
1844
1801
  *
@@ -1891,8 +1848,6 @@ interface PortableTsconfig {
1891
1848
  * @public
1892
1849
  */
1893
1850
  export declare function resolvePortableTsconfig(cwd: string, fallbackConfigPath?: string): PortableTsconfig;
1894
- //#endregion
1895
- //#region src/report/formatters/types.d.ts
1896
1851
  /** @public */
1897
1852
  interface RenderedOutput {
1898
1853
  readonly target: "stdout" | "file" | "github-summary";
@@ -1909,28 +1864,16 @@ interface Formatter {
1909
1864
  readonly format: string;
1910
1865
  readonly render: (reports: ReadonlyArray<BuildReport>, ctx: FormatterContext) => ReadonlyArray<RenderedOutput>;
1911
1866
  }
1912
- //#endregion
1913
- //#region src/report/formatters/ci-annotations.d.ts
1914
1867
  /** @public */
1915
1868
  export declare const CiAnnotationsFormatter: Formatter;
1916
- //#endregion
1917
- //#region src/report/formatters/json.d.ts
1918
1869
  /** @public */
1919
1870
  export declare const JsonFormatter: Formatter;
1920
- //#endregion
1921
- //#region src/report/formatters/markdown.d.ts
1922
1871
  /** @public */
1923
1872
  export declare const MarkdownFormatter: Formatter;
1924
- //#endregion
1925
- //#region src/report/formatters/silent.d.ts
1926
1873
  /** @public */
1927
1874
  export declare const SilentFormatter: Formatter;
1928
- //#endregion
1929
- //#region src/report/formatters/terminal.d.ts
1930
1875
  /** @public */
1931
1876
  export declare const TerminalFormatter: Formatter;
1932
- //#endregion
1933
- //#region src/report/issues-artifact.d.ts
1934
1877
  /**
1935
1878
  * A diagnostic flattened to a plain JSON object (only defined fields are present).
1936
1879
  *
@@ -2021,8 +1964,6 @@ export declare function writeIssuesArtifact(opts: {
2021
1964
  message: string;
2022
1965
  } | undefined;
2023
1966
  }): string;
2024
- //#endregion
2025
- //#region src/report/metrics-plugin.d.ts
2026
1967
  /**
2027
1968
  * Rolldown plugin that records emitted-file metrics into the BuildCollector via writeBundle (which
2028
1969
  * fires for the JS pass AND the emitDtsOnly dts pass — verified against tsdown 0.22.3), plus a
@@ -2036,8 +1977,6 @@ export declare function writeIssuesArtifact(opts: {
2036
1977
  * @public
2037
1978
  */
2038
1979
  export declare function buildMetricsPlugin(collector: BuildCollector, groupId: string, pass: PassKind, verbose: boolean, suppressMixedExports?: boolean): Plugin;
2039
- //#endregion
2040
- //#region src/report/services/EnvironmentDetector.d.ts
2041
1980
  /** @public */
2042
1981
  type Environment = "agent-shell" | "terminal" | "ci-github" | "ci-generic";
2043
1982
  declare const EnvironmentDetector_base: Context.ServiceClass<EnvironmentDetector, "@savvy-web/tsdown-plugins/EnvironmentDetector", {
@@ -2047,8 +1986,6 @@ declare const EnvironmentDetector_base: Context.ServiceClass<EnvironmentDetector
2047
1986
  export declare class EnvironmentDetector extends EnvironmentDetector_base {
2048
1987
  static readonly layer: Layer.Layer<EnvironmentDetector>;
2049
1988
  }
2050
- //#endregion
2051
- //#region src/report/services/ExecutorResolver.d.ts
2052
1989
  /** @public */
2053
1990
  type Executor = "human" | "agent" | "ci";
2054
1991
  declare const ExecutorResolver_base: Context.ServiceClass<ExecutorResolver, "@savvy-web/tsdown-plugins/ExecutorResolver", {
@@ -2058,8 +1995,6 @@ declare const ExecutorResolver_base: Context.ServiceClass<ExecutorResolver, "@sa
2058
1995
  export declare class ExecutorResolver extends ExecutorResolver_base {
2059
1996
  static readonly layer: Layer.Layer<ExecutorResolver>;
2060
1997
  }
2061
- //#endregion
2062
- //#region src/report/services/FormatSelector.d.ts
2063
1998
  /** @public */
2064
1999
  type OutputFormat = "terminal" | "json" | "markdown" | "ci-annotations" | "silent";
2065
2000
  declare const FormatSelector_base: Context.ServiceClass<FormatSelector, "@savvy-web/tsdown-plugins/FormatSelector", {
@@ -2069,8 +2004,6 @@ declare const FormatSelector_base: Context.ServiceClass<FormatSelector, "@savvy-
2069
2004
  export declare class FormatSelector extends FormatSelector_base {
2070
2005
  static readonly layer: Layer.Layer<FormatSelector>;
2071
2006
  }
2072
- //#endregion
2073
- //#region src/report/services/OutputRenderer.d.ts
2074
2007
  declare const OutputRenderer_base: Context.ServiceClass<OutputRenderer, "@savvy-web/tsdown-plugins/OutputRenderer", {
2075
2008
  readonly render: (reports: ReadonlyArray<BuildReport>, format: OutputFormat, ctx: FormatterContext) => Effect.Effect<ReadonlyArray<RenderedOutput>>;
2076
2009
  }>;
@@ -2078,8 +2011,6 @@ declare const OutputRenderer_base: Context.ServiceClass<OutputRenderer, "@savvy-
2078
2011
  export declare class OutputRenderer extends OutputRenderer_base {
2079
2012
  static readonly layer: Layer.Layer<OutputRenderer>;
2080
2013
  }
2081
- //#endregion
2082
- //#region src/report/pipeline.d.ts
2083
2014
  /** @public */
2084
2015
  export declare const ReportPipeline: Layer.Layer<EnvironmentDetector | ExecutorResolver | FormatSelector | OutputRenderer, never, never>;
2085
2016
  /** @public */
@@ -2092,8 +2023,6 @@ interface RenderReportOptions {
2092
2023
  }
2093
2024
  /** @public */
2094
2025
  export declare const renderReport: (reports: ReadonlyArray<BuildReport>, options: RenderReportOptions) => Effect.Effect<ReadonlyArray<RenderedOutput>, never, EnvironmentDetector | ExecutorResolver | FormatSelector | OutputRenderer>;
2095
- //#endregion
2096
- //#region src/report/timer.d.ts
2097
2026
  /** @public */
2098
2027
  export declare function formatTime(ms: number): string;
2099
2028
  /** @public */
@@ -2107,8 +2036,6 @@ interface Timer {
2107
2036
  * @public
2108
2037
  */
2109
2038
  export declare function createTimer(now?: () => number): Timer;
2110
- //#endregion
2111
- //#region src/report/tsdown-logger.d.ts
2112
2039
  /**
2113
2040
  * Structural match for tsdown's Logger interface (tsdown 0.22.x).
2114
2041
  *
@@ -2131,16 +2058,12 @@ interface TsdownLogger {
2131
2058
  * @public
2132
2059
  */
2133
2060
  export declare function createTsdownLogger(collector: BuildCollector, groupId: string): TsdownLogger;
2134
- //#endregion
2135
- //#region src/targets/binding.d.ts
2136
2061
  /**
2137
2062
  * Write the target-to-group binding to dist/prod/targets.json for the release action to consume. Returns the path.
2138
2063
  *
2139
2064
  * @public
2140
2065
  */
2141
2066
  export declare function writeTargetsBinding(cwd: string, resolution: TargetResolution): string;
2142
- //#endregion
2143
- //#region src/targets/resolve-targets.d.ts
2144
2067
  /**
2145
2068
  * Resolve a `publishConfig.targets` map into the distinct groups to build and every target bound to one. Pure; throws ConfigValidationError on structurally-invalid config.
2146
2069
  *
@@ -2150,6 +2073,16 @@ export declare function resolveTargets(options: {
2150
2073
  targets: PublishTargets;
2151
2074
  baseName: string;
2152
2075
  }): TargetResolution;
2153
- //#endregion
2154
- export { type AmbientDtsEntry, type BuildEmittedManifestOptions, type BuildFormat, type BuildGroupSpec, type BuildIssues, type BuildPlatform, type BuildReport, BuildReport as BuildReportSchema, type BuildTargetGroupsOptions, CatalogAssemblyError, type ComposeManifestInput, type CopyAmbientDtsOptions, type CssOptions, DependencyResolutionError, type DeriveOptions, type DerivedTsdownOptions, type DiagnosticEntry, type DiagnosticInput, type DtsExportClass, type DualExports, type EmitManifestOptions, type EmittedFile, type EntryOverride, type Environment, type ExeBuild, type ExeConfig, type ExeRewrite, type ExeSeaConfig, type ExeTarget, type ExeTargetInput, type Executor, type ExtractAmbientOptions, type ExtractOptions, type ExtractResult, type Formatter, type FormatterContext, type GenerateMetaOptions, type Json, type JsxConfig, type LooseFileSpec, type LooseFiles, ManifestDecodeError, type ManifestLike, type ManifestRepository, type ManifestTarget, type MetaOptions, type MetaResult, type ModuleExportNames, type NextVersions, type NormalizedExe, type NormalizedLooseFile, type NormalizedMeta, type OgImageCacheOptions, type OgImageGenerator, type OgImageInfo, type OutputFormat, type PackageJsonEntriesOptions, type PackageJsonLike, type PassKind, type PassReport, type PkgOsCpu, type PlainDiagnostic, type PortableTsconfig, type PublishTargetObject, type PublishTargetValue, type PublishTargets, type ReexportBarrelAnalysis, type RenderReportOptions, type RenderedOutput, type ResolvedCompilerOptions, type ResolvedGroup, type ResolvedTarget, type ResolvedTsconfig, type ResolvedTsconfigOptions, type RunExeBuildOptions, type RunMetaPassOptions, type TargetGroupId, type TargetGroupRef, type TargetGroupReport, TargetGroupReport as TargetGroupReportSchema, type TargetResolution, type Timer, type TransformManifestOptions, type TsconfigJsx, type TsdocOptions, type TsdocTagDefinition, type TsdoctorMetaOptions, type TsdoctorSources, type TsdownBuild, type TsdownLogger, UnresolvedDependencyError, type ValidationInput, type WarningSuppressionRule, type WriteGeneratedOgImageOptions };
2076
+ /**
2077
+ * Advisory warnings for a resolved target set that is valid but probably not what was meant.
2078
+ *
2079
+ * @remarks
2080
+ * Today the only one is a set whose every target is `releases: "prerelease"`, which leaves final
2081
+ * versions with nowhere to publish. A warning rather than a {@link ConfigValidationError}, since a
2082
+ * prerelease-only package is a legitimate if unusual setup. Pure; returns one message per finding.
2083
+ *
2084
+ * @public
2085
+ */
2086
+ export declare function releaseWarnings(resolution: TargetResolution): ReadonlyArray<string>;
2087
+ export { type AmbientDtsEntry, type BuildEmittedManifestOptions, type BuildFormat, type BuildGroupSpec, type BuildIssues, type BuildPlatform, type BuildReport, BuildReport as BuildReportSchema, type BuildTargetGroupsOptions, CatalogAssemblyError, type ComposeManifestInput, type CopyAmbientDtsOptions, type CssOptions, DependencyResolutionError, type DeriveOptions, type DerivedTsdownOptions, type DiagnosticEntry, type DiagnosticInput, type DtsExportClass, type DualExports, type EmitManifestOptions, type EmittedFile, type EntryOverride, type Environment, type ExeBuild, type ExeConfig, type ExeRewrite, type ExeSeaConfig, type ExeTarget, type ExeTargetInput, type Executor, type ExtractAmbientOptions, type ExtractOptions, type ExtractResult, type Formatter, type FormatterContext, type GenerateMetaOptions, type Json, type JsxConfig, type LooseFileSpec, type LooseFiles, ManifestDecodeError, type ManifestLike, type ManifestRepository, type ManifestTarget, type MetaOptions, type MetaResult, type ModuleExportNames, type NextVersions, type NormalizedExe, type NormalizedLooseFile, type NormalizedMeta, type OgImageCacheOptions, type OgImageGenerator, type OgImageInfo, type OutputFormat, type PackageJsonEntriesOptions, type PackageJsonLike, type PassKind, type PassReport, type PkgOsCpu, type PlainDiagnostic, type PortableTsconfig, type PublishTargetObject, type PublishTargetValue, type PublishTargets, type ReexportBarrelAnalysis, type ReleaseChannel, type RenderReportOptions, type RenderedOutput, type ResolvedCompilerOptions, type ResolvedGroup, type ResolvedTarget, type ResolvedTsconfig, type ResolvedTsconfigOptions, type RunExeBuildOptions, type RunMetaPassOptions, type TargetGroupId, type TargetGroupRef, type TargetGroupReport, TargetGroupReport as TargetGroupReportSchema, type TargetResolution, type Timer, type TransformManifestOptions, type TsconfigJsx, type TsdocOptions, type TsdocTagDefinition, type TsdoctorMetaOptions, type TsdoctorSources, type TsdownBuild, type TsdownLogger, UnresolvedDependencyError, type ValidationInput, type WarningSuppressionRule, type WriteGeneratedOgImageOptions };
2155
2088
  //# sourceMappingURL=index.d.ts.map
package/index.js CHANGED
@@ -19,8 +19,8 @@ import { normalizeLooseFiles } from "./build/loose-files.js";
19
19
  import { removeDeclarationMaps } from "./build/strip-maps.js";
20
20
  import { resolveNextVersions } from "./changesets/next-versions.js";
21
21
  import { DEFAULT_EXE_NODE_VERSION, normalizeExeOptions } from "./exe/config.js";
22
- import { isTargetObject } from "./targets/config.js";
23
- import { resolveTargets } from "./targets/resolve-targets.js";
22
+ import { RELEASE_CHANNELS, isTargetObject } from "./targets/config.js";
23
+ import { releaseWarnings, resolveTargets } from "./targets/resolve-targets.js";
24
24
  import { ConfigValidator } from "./config-validation/ConfigValidator.js";
25
25
  import { packageJsonEntries } from "./entry/package-json-entries.js";
26
26
  import { runExeBuild } from "./exe/build.js";
@@ -50,4 +50,4 @@ import { ReportPipeline, renderReport } from "./report/pipeline.js";
50
50
  import { writeTargetsBinding } from "./targets/binding.js";
51
51
  import { CatalogAssemblyError, DependencyResolutionError, ManifestDecodeError, UnresolvedDependencyError } from "@effected/npm";
52
52
 
53
- export { BuildCollector, BuildCollectorTag, BuildReport as BuildReportSchema, CatalogAssemblyError, CiAnnotationsFormatter, ConfigValidationError, ConfigValidator, DEFAULT_EXE_NODE_VERSION, DependencyResolutionError, EnvironmentDetector, ExecutorResolver, FormatSelector, JsonFormatter, ManifestDecodeError, MarkdownFormatter, MetaGenerationError, OgGenerateError, OutputRenderer, ReportPipeline, ReportTimings, SilentFormatter, TargetGroupReport as TargetGroupReportSchema, TerminalFormatter, TsdoctorEmitError, TsdoctorSourceError, UnresolvedDependencyError, ambientOutName, analyzeReexportBarrel, applySubdirMetaEntries, assertNoEntryCollisions, buildEmittedManifest, buildMetricsPlugin, buildResolvedTsconfig, buildTargetGroups, cjsDefaultInterop, classifyDtsExport, collectExportNames, composeTsdoctorManifest, computeExeFileName, copyAmbientDts, copyPublicDir, createEntryName, createTimer, createTsdownLogger, declarationExt, defaultManifestTransform, deriveExportPaths, deriveTargetGroupOptions, emitManifest, extractAmbientDts, extractEntries, findRelativeSpecifiers, flattenIssues, formatTime, generateMeta, githubOwnerRepo, isTargetObject, loadTsdoctorSources, mixedDtsExportError, nodeBuiltinDefaultInterop, normalizeBinPaths, normalizeExeOptions, normalizeLooseFiles, normalizeMetaOptions, ogImageInfoOf, packageJsonEntries, readTsconfigJsx, registriesFromTargets, removeDeclarationMaps, renderReexportStub, renderReport, resolveJsxConfig, resolveManifest, resolveNextVersions, resolveOgCacheSalt, resolvePortableTsconfig, resolveTargets, rewriteMetaVersions, runExeBuild, runMetaPass, serializeIssues, transformBin, transformExports, transformManifest, writeDtsEmitTsconfig, writeGeneratedOgImage, writeIssuesArtifact, writeResolvedTsconfig, writeTargetsBinding };
53
+ export { BuildCollector, BuildCollectorTag, BuildReport as BuildReportSchema, CatalogAssemblyError, CiAnnotationsFormatter, ConfigValidationError, ConfigValidator, DEFAULT_EXE_NODE_VERSION, DependencyResolutionError, EnvironmentDetector, ExecutorResolver, FormatSelector, JsonFormatter, ManifestDecodeError, MarkdownFormatter, MetaGenerationError, OgGenerateError, OutputRenderer, RELEASE_CHANNELS, ReportPipeline, ReportTimings, SilentFormatter, TargetGroupReport as TargetGroupReportSchema, TerminalFormatter, TsdoctorEmitError, TsdoctorSourceError, UnresolvedDependencyError, ambientOutName, analyzeReexportBarrel, applySubdirMetaEntries, assertNoEntryCollisions, buildEmittedManifest, buildMetricsPlugin, buildResolvedTsconfig, buildTargetGroups, cjsDefaultInterop, classifyDtsExport, collectExportNames, composeTsdoctorManifest, computeExeFileName, copyAmbientDts, copyPublicDir, createEntryName, createTimer, createTsdownLogger, declarationExt, defaultManifestTransform, deriveExportPaths, deriveTargetGroupOptions, emitManifest, extractAmbientDts, extractEntries, findRelativeSpecifiers, flattenIssues, formatTime, generateMeta, githubOwnerRepo, isTargetObject, loadTsdoctorSources, mixedDtsExportError, nodeBuiltinDefaultInterop, normalizeBinPaths, normalizeExeOptions, normalizeLooseFiles, normalizeMetaOptions, ogImageInfoOf, packageJsonEntries, readTsconfigJsx, registriesFromTargets, releaseWarnings, removeDeclarationMaps, renderReexportStub, renderReport, resolveJsxConfig, resolveManifest, resolveNextVersions, resolveOgCacheSalt, resolvePortableTsconfig, resolveTargets, rewriteMetaVersions, runExeBuild, runMetaPass, serializeIssues, transformBin, transformExports, transformManifest, writeDtsEmitTsconfig, writeGeneratedOgImage, writeIssuesArtifact, writeResolvedTsconfig, writeTargetsBinding };
package/jsx/config.js CHANGED
@@ -4,7 +4,7 @@ import * as nodePath from "node:path";
4
4
  import { JsxConfig, TsconfigLoaderSync } from "@effected/tsconfig-json";
5
5
  import { Option } from "effect";
6
6
 
7
- //#region src/jsx/config.ts
7
+ // src/jsx/config.ts
8
8
  /**
9
9
  * Resolve the effective JSX config: an explicit override wins; otherwise infer from the tsconfig
10
10
  * values via `@effected/tsconfig-json`'s `JsxConfig.fromCompilerOptions`. Returns undefined when
@@ -48,5 +48,4 @@ function readTsconfigJsx(cwd) {
48
48
  }
49
49
  }
50
50
 
51
- //#endregion
52
51
  export { readTsconfigJsx, resolveJsxConfig };
@@ -4,7 +4,7 @@ import { DependencySpecifier } from "@effected/npm";
4
4
  import { join } from "node:path";
5
5
  import { readFile } from "node:fs/promises";
6
6
 
7
- //#region src/manifest/emit-manifest.ts
7
+ // src/manifest/emit-manifest.ts
8
8
  const DEPENDENCY_FIELDS = [
9
9
  "dependencies",
10
10
  "devDependencies",
@@ -85,5 +85,4 @@ function emitManifest(options) {
85
85
  };
86
86
  }
87
87
 
88
- //#endregion
89
88
  export { buildEmittedManifest, emitManifest, manifestNeedsCatalogResolution };
@@ -2,7 +2,7 @@ import { createEntryName } from "../entry/extract.js";
2
2
  import { ambientOutName, classifyDtsExport, mixedDtsExportError } from "../entry/ambient-dts.js";
3
3
  import { PackageJsonFormat } from "@effected/package-json";
4
4
 
5
- //#region src/manifest/transform.ts
5
+ // src/manifest/transform.ts
6
6
  const isDualKey = (dual, exportKey) => typeof dual === "boolean" ? dual : dual.has(exportKey);
7
7
  /**
8
8
  * Package.json fields that are never wanted in a published manifest: they describe
@@ -212,5 +212,4 @@ function transformManifest(pkg, options = {}) {
212
212
  return PackageJsonFormat.sortValue(result);
213
213
  }
214
214
 
215
- //#endregion
216
215
  export { defaultManifestTransform, normalizeBinPaths, transformBin, transformExports, transformManifest };
@@ -8,7 +8,7 @@ import { createHash } from "node:crypto";
8
8
  import { Extractor, ExtractorConfig, ExtractorLogLevel } from "@microsoft/api-extractor";
9
9
  import { TSDocConfigFile } from "@microsoft/tsdoc-config";
10
10
 
11
- //#region src/meta/api-extractor.ts
11
+ // src/meta/api-extractor.ts
12
12
  const require_ = createRequire(import.meta.url);
13
13
  /** messageIds that become a hard build error in CI (they corrupt the .api.json). */
14
14
  const CI_FATAL_MESSAGE_IDS = /* @__PURE__ */ new Set(["ae-forgotten-export"]);
@@ -163,5 +163,4 @@ function runApiExtractor(options) {
163
163
  });
164
164
  }
165
165
 
166
- //#endregion
167
166
  export { mapExtractorMessage, runApiExtractor, writeApiExtractorTsconfig };
package/meta/config.js CHANGED
@@ -1,4 +1,4 @@
1
- //#region src/meta/config.ts
1
+ // src/meta/config.ts
2
2
  /** Resolve `"auto"` against the environment; explicit booleans pass through. */
3
3
  function resolveOptimistic(value, env) {
4
4
  if (value === true || value === false) return value;
@@ -21,5 +21,4 @@ function normalizeMetaOptions(meta, env = process.env) {
21
21
  };
22
22
  }
23
23
 
24
- //#endregion
25
24
  export { normalizeMetaOptions };
package/meta/generate.js CHANGED
@@ -10,7 +10,7 @@ import { join } from "node:path";
10
10
  import { Effect } from "effect";
11
11
  import { TSDOCTOR_MANIFEST_FILENAME, encodeBundleManifest } from "@tsdoctor/manifest";
12
12
 
13
- //#region src/meta/generate.ts
13
+ // src/meta/generate.ts
14
14
  function unscopedName(name) {
15
15
  const slash = name.lastIndexOf("/");
16
16
  return slash >= 0 ? name.slice(slash + 1) : name;
@@ -217,5 +217,4 @@ async function generateMeta(options) {
217
217
  };
218
218
  }
219
219
 
220
- //#endregion
221
220
  export { generateMeta };
@@ -1,4 +1,4 @@
1
- //#region src/meta/merge-models.ts
1
+ // src/meta/merge-models.ts
2
2
  /** Rewrite every nested member canonicalReference that starts with originalPrefix to use newPrefix. Skips the EntryPoint node itself. */
3
3
  function rewriteCanonicalReferences(node, originalPrefix, newPrefix) {
4
4
  if (!node || typeof node !== "object") return;
@@ -40,5 +40,4 @@ function mergeApiModels(options) {
40
40
  return merged;
41
41
  }
42
42
 
43
- //#endregion
44
43
  export { mergeApiModels };
@@ -1,4 +1,4 @@
1
- //#region src/meta/message-suppressor.ts
1
+ // src/meta/message-suppressor.ts
2
2
  function compileRule(rule) {
3
3
  if (rule.pattern === void 0) return {
4
4
  messageId: rule.messageId,
@@ -33,5 +33,4 @@ function createMessageSuppressor(rules) {
33
33
  } };
34
34
  }
35
35
 
36
- //#endregion
37
36
  export { createMessageSuppressor };
package/meta/og-image.js CHANGED
@@ -4,7 +4,7 @@ import { Data, Effect, Layer, Option, Result, Schema } from "effect";
4
4
  import * as NodeServices from "@effect/platform-node/NodeServices";
5
5
  import { ImageBackend, ImageCache, ImageCacheKey } from "@effected/images/cache";
6
6
 
7
- //#region src/meta/og-image.ts
7
+ // src/meta/og-image.ts
8
8
  /**
9
9
  * A configured `openGraph.generate` renderer threw, returned no bytes, or returned bytes that are
10
10
  * not an image. Fails the build: a half-written OG image is worse than none.
@@ -103,5 +103,4 @@ async function writeGeneratedOgImage(options) {
103
103
  };
104
104
  }
105
105
 
106
- //#endregion
107
106
  export { OgGenerateError, resolveOgCacheSalt, writeGeneratedOgImage };