Skip to content
Open
Show file tree
Hide file tree
Changes from 12 commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
7bbee0e
add core-types package to separate types from implementations
JasonVMo Feb 10, 2026
0b12594
move types to core-types package from config
JasonVMo Feb 10, 2026
d10dd71
consume the config types from the core-types package
JasonVMo Feb 10, 2026
6752fdf
consume types from @rnx-kit/core-types package
JasonVMo Feb 10, 2026
0408a2c
update README.md for core-types package
JasonVMo Feb 10, 2026
b5f0f68
docs(changeset): Move core configuration, manifest, and platform type…
JasonVMo Feb 10, 2026
185f6b2
update readme files from changed packages
JasonVMo Feb 11, 2026
fa5e37b
split core-types into bundle-types, config-types, and node-types
JasonVMo Feb 11, 2026
9437f72
docs(changeset):
JasonVMo Feb 11, 2026
b70708a
docs(changeset): Split out types for bundling, kit configuration, and…
JasonVMo Feb 11, 2026
af49925
update readme files for packages
JasonVMo Feb 11, 2026
3bc1271
formatting changes for README.md files
JasonVMo Feb 11, 2026
a60d6af
fix metadata inconsistency
JasonVMo Feb 11, 2026
df62c24
add test files to knip files for tools-typescript
JasonVMo Feb 11, 2026
216fecb
remove auto-readme generation from tools-node and tools-react-native …
JasonVMo Feb 12, 2026
dd3859b
rename type packages and split plugin types into separate package
JasonVMo Feb 12, 2026
757de7f
docs(changeset): Create dedicated type packages for rnx-kit configura…
JasonVMo Feb 12, 2026
a60387b
remove some stray files and references from renaming and splitting
JasonVMo Feb 12, 2026
e1f72ba
remove redundant comment
JasonVMo Feb 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions .changeset/curly-pans-camp.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
"@rnx-kit/metro-plugin-cyclic-dependencies-detector": patch
"@rnx-kit/metro-plugin-duplicates-checker": patch
"@rnx-kit/metro-serializer-esbuild": patch
"@rnx-kit/metro-plugin-typescript": patch
"@rnx-kit/tools-react-native": patch
"@rnx-kit/tools-typescript": patch
"@rnx-kit/lint-lockfile": patch
"@rnx-kit/tools-packages": patch
"@rnx-kit/align-deps": patch
"@rnx-kit/tools-node": patch
"@rnx-kit/config": patch
"@rnx-kit/cli": patch
---

Split out types for bundling, kit configuration, and package manifests into
dedicated packages"
18 changes: 18 additions & 0 deletions .changeset/lemon-llamas-fold.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
---
"@rnx-kit/metro-plugin-cyclic-dependencies-detector": patch
"@rnx-kit/metro-plugin-duplicates-checker": patch
"@rnx-kit/metro-serializer-esbuild": patch
"@rnx-kit/metro-plugin-typescript": patch
"@rnx-kit/tools-react-native": patch
"@rnx-kit/tools-typescript": patch
"@rnx-kit/lint-lockfile": patch
"@rnx-kit/tools-packages": patch
"@rnx-kit/align-deps": patch
"@rnx-kit/config-types": patch
"@rnx-kit/tools-node": patch
"@rnx-kit/config": patch
"@rnx-kit/cli": patch
---

Move core configuration, manifest, and platform types to a new
@rnx-kit/config-types package
2 changes: 2 additions & 0 deletions .changeset/lucky-peas-cheer.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
---
---
1 change: 1 addition & 0 deletions incubator/lint-lockfile/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
},
"dependencies": {
"@rnx-kit/config": "^0.7.4",
"@rnx-kit/config-types": "^1.0.0",
"@rnx-kit/tools-workspaces": "^0.2.3",
"js-yaml": "^4.1.1"
},
Expand Down
2 changes: 1 addition & 1 deletion incubator/lint-lockfile/src/rules/noDuplicates.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { NoDuplicatesRuleOptions as Options } from "@rnx-kit/config/lint.types";
import type { NoDuplicatesRuleOptions as Options } from "@rnx-kit/config-types";
import type { Rule } from "../types.ts";

type PackageCount = Record<string, number | undefined>;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { NoWorkspacePackageFromNpmRuleOptions as Options } from "@rnx-kit/config/lint.types";
import type { NoWorkspacePackageFromNpmRuleOptions as Options } from "@rnx-kit/config-types";
import type { Rule } from "../types.ts";

export function noWorkspacePackageFromNpmRule(
Expand Down
3 changes: 3 additions & 0 deletions incubator/tools-typescript/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
"test": "rnx-kit-scripts test"
},
"dependencies": {
"@rnx-kit/bundle-types": "^1.0.0",
"@rnx-kit/config": "^0.7.0",
"@rnx-kit/console": "^2.0.0",
"@rnx-kit/tools-node": "^3.0.3",
Expand All @@ -46,8 +47,10 @@
"@rnx-kit/typescript-service": "^2.0.0"
},
"devDependencies": {
"@rnx-kit/config-types": "^1.0.0",
"@rnx-kit/eslint-config": "*",
"@rnx-kit/jest-preset": "*",
"@rnx-kit/node-types": "^1.0.0",
"@rnx-kit/scripts": "*",
"@rnx-kit/tsconfig": "*"
},
Expand Down
2 changes: 1 addition & 1 deletion incubator/tools-typescript/src/build.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import type { AllPlatforms } from "@rnx-kit/bundle-types";
import { findPackageInfo } from "@rnx-kit/tools-packages";
import type { AllPlatforms } from "@rnx-kit/tools-react-native";
import ts from "typescript";
import { loadPackagePlatformInfo } from "./platforms.ts";
import { createReporter } from "./reporter.ts";
Expand Down
6 changes: 2 additions & 4 deletions incubator/tools-typescript/src/platforms.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
import {
getKitConfigFromPackageManifest,
type KitConfig,
} from "@rnx-kit/config";
import { getKitConfigFromPackageManifest } from "@rnx-kit/config";
import type { KitConfig } from "@rnx-kit/config-types";
import type { PackageInfo } from "@rnx-kit/tools-packages";
import {
getAvailablePlatforms,
Expand Down
2 changes: 1 addition & 1 deletion incubator/tools-typescript/src/types.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { AllPlatforms } from "@rnx-kit/tools-react-native/platform";
import type { AllPlatforms } from "@rnx-kit/bundle-types";
import type ts from "typescript";

/**
Expand Down
4 changes: 2 additions & 2 deletions incubator/tools-typescript/test/platforms.test.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import type { KitConfig } from "@rnx-kit/config";
import type { PackageManifest } from "@rnx-kit/tools-node";
import type { KitConfig } from "@rnx-kit/config-types";
import type { PackageManifest } from "@rnx-kit/node-types";
import type { PackageInfo } from "@rnx-kit/tools-packages";
import type ts from "typescript";
import {
Expand Down
4 changes: 4 additions & 0 deletions packages/align-deps/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,10 @@
"update-profile": "node --no-warnings --conditions=typescript scripts/update-profile.ts",
"update-readme": "node --no-warnings --conditions=typescript scripts/update-readme.ts"
},
"dependencies": {
"@rnx-kit/config-types": "^1.0.0",
"@rnx-kit/node-types": "^1.0.0"
},
"devDependencies": {
"@octokit/core": "^7.0.0",
"@octokit/plugin-rest-endpoint-methods": "^17.0.0",
Expand Down
4 changes: 2 additions & 2 deletions packages/align-deps/src/capabilities.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import type { Capability } from "@rnx-kit/config";
import type { Capability } from "@rnx-kit/config-types";
import { warn } from "@rnx-kit/console";
import type { PackageManifest } from "@rnx-kit/node-types";
import { keysOf } from "@rnx-kit/tools-language/properties";
import type { PackageManifest } from "@rnx-kit/tools-node/package";
import type { MetaPackage, Package, Preset, Profile } from "./types.ts";

type ResolvedDependencies = {
Expand Down
4 changes: 2 additions & 2 deletions packages/align-deps/src/commands/initialize.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { KitType } from "@rnx-kit/config";
import type { KitType } from "@rnx-kit/config-types";
import { error } from "@rnx-kit/console";
import type { PackageManifest } from "@rnx-kit/tools-node/package";
import type { PackageManifest } from "@rnx-kit/node-types";
import { readPackage } from "@rnx-kit/tools-node/package";
import * as path from "node:path";
import semverMinVersion from "semver/ranges/min-version.js";
Expand Down
8 changes: 4 additions & 4 deletions packages/align-deps/src/commands/setVersion.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import type { PackageManifest } from "@rnx-kit/node-types";
import { keysOf } from "@rnx-kit/tools-language/properties";
import type { PackageManifest } from "@rnx-kit/tools-node/package";
import * as nodefs from "node:fs";
import prompts from "prompts";
import semverCoerce from "semver/functions/coerce.js";
Expand All @@ -9,7 +9,7 @@ import { isError } from "../errors.ts";
import { isString, modifyManifest } from "../helpers.ts";
import { preset as defaultPreset } from "../presets/microsoft/react-native.ts";
import type {
AlignDepsConfig,
AlignDepsOptions,
Command,
LegacyCheckConfig,
Options,
Expand Down Expand Up @@ -89,7 +89,7 @@ function setRequirement(requirements: string[], versionRange: string): void {
}

function updateRequirements(
{ requirements }: AlignDepsConfig["alignDeps"],
{ requirements }: AlignDepsOptions["alignDeps"],
prodVersion: string,
devVersion = prodVersion
): void {
Expand All @@ -109,7 +109,7 @@ function updateRequirements(
* @returns Updated package manifest
*/
function setVersion(
config: AlignDepsConfig | LegacyCheckConfig,
config: AlignDepsOptions | LegacyCheckConfig,
targetVersion: string,
supportedVersions: string[]
): PackageManifest {
Expand Down
10 changes: 5 additions & 5 deletions packages/align-deps/src/commands/vigilant.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import type { Capability, KitConfig } from "@rnx-kit/config";
import type { Capability, KitConfig } from "@rnx-kit/config-types";
import { error, warn } from "@rnx-kit/console";
import type { PackageManifest } from "@rnx-kit/node-types";
import { keysOf } from "@rnx-kit/tools-language/properties";
import type { PackageManifest } from "@rnx-kit/tools-node/package";
import * as nodefs from "node:fs";
import * as path from "node:path";
import semverSubset from "semver/ranges/subset.js";
Expand All @@ -15,7 +15,7 @@ import { dependencySections, modifyManifest } from "../helpers.ts";
import { updateDependencies } from "../manifest.ts";
import { ensurePreset, filterPreset, mergePresets } from "../preset.ts";
import type {
AlignDepsConfig,
AlignDepsOptions,
Changes,
ErrorCode,
ManifestProfile,
Expand Down Expand Up @@ -84,7 +84,7 @@ function resolveUnmanagedCapabilities(
*/
export function buildManifestProfile(
manifestPath: string,
{ kitType, alignDeps }: AlignDepsConfig
{ kitType, alignDeps }: AlignDepsOptions
): ManifestProfile {
const mergedPresets = mergePresets(
alignDeps.presets,
Expand Down Expand Up @@ -291,7 +291,7 @@ export function inspect(
export function checkPackageManifestUnconfigured(
manifestPath: string,
options: Options,
config: AlignDepsConfig,
config: AlignDepsOptions,
logError = error,
/** @internal */ fs = nodefs
): ErrorCode {
Expand Down
10 changes: 5 additions & 5 deletions packages/align-deps/src/compatibility/config.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import type { KitConfig } from "@rnx-kit/config";
import type { KitConfig } from "@rnx-kit/config-types";
import { warn } from "@rnx-kit/console";
import { defaultConfig } from "../config.ts";
import { dropPatchFromVersion, modifyManifest } from "../helpers.ts";
import type { AlignDepsConfig, LegacyCheckConfig, Options } from "../types.ts";
import type { AlignDepsOptions, LegacyCheckConfig, Options } from "../types.ts";

const legacyKeys = [
"capabilities",
Expand Down Expand Up @@ -31,7 +31,7 @@ export function transformConfig({
manifest,
reactNativeDevVersion,
reactNativeVersion,
}: LegacyCheckConfig): AlignDepsConfig {
}: LegacyCheckConfig): AlignDepsOptions {
const devVersion = dropPatchFromVersion(
reactNativeDevVersion || reactNativeVersion
);
Expand Down Expand Up @@ -68,10 +68,10 @@ export function transformConfig({
* @returns The config in the new schema
*/
export function migrateConfig(
config: AlignDepsConfig | LegacyCheckConfig,
config: AlignDepsOptions | LegacyCheckConfig,
manifestPath: string,
{ migrateConfig }: Options
): AlignDepsConfig {
): AlignDepsOptions {
if ("alignDeps" in config) {
const oldKeys = findLegacyConfigKeys(config);
if (oldKeys.length > 0) {
Expand Down
10 changes: 5 additions & 5 deletions packages/align-deps/src/config.ts
Original file line number Diff line number Diff line change
@@ -1,26 +1,26 @@
import type { Capability, KitConfig } from "@rnx-kit/config";
import {
getKitCapabilities,
getKitConfigFromPackageManifest,
} from "@rnx-kit/config";
import type { Capability, KitConfig } from "@rnx-kit/config-types";
import { error, warn } from "@rnx-kit/console";
import type { PackageManifest } from "@rnx-kit/tools-node/package";
import type { PackageManifest } from "@rnx-kit/node-types";
import { readPackage } from "@rnx-kit/tools-node/package";
import * as nodefs from "node:fs";
import * as path from "node:path";
import { findBadPackages } from "./findBadPackages.ts";
import type {
AlignDepsConfig,
AlignDepsOptions,
ErrorCode,
LegacyCheckConfig,
Options,
} from "./types.ts";

export type ConfigResult = AlignDepsConfig | LegacyCheckConfig | ErrorCode;
export type ConfigResult = AlignDepsOptions | LegacyCheckConfig | ErrorCode;

const ILLEGAL_CAPABILITIES = ["__proto__", "constructor", "prototype"];

export const defaultConfig: AlignDepsConfig["alignDeps"] = {
export const defaultConfig: AlignDepsOptions["alignDeps"] = {
presets: ["microsoft/react-native"],
requirements: [],
capabilities: [],
Expand Down
4 changes: 2 additions & 2 deletions packages/align-deps/src/dependencies.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import type { Capability } from "@rnx-kit/config";
import { getKitConfig } from "@rnx-kit/config";
import type { Capability } from "@rnx-kit/config-types";
import { error, warn } from "@rnx-kit/console";
import type { PackageManifest } from "@rnx-kit/tools-node/package";
import type { PackageManifest } from "@rnx-kit/node-types";
import {
findPackageDependencyDir,
readPackage,
Expand Down
2 changes: 1 addition & 1 deletion packages/align-deps/src/diff.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { PackageManifest } from "@rnx-kit/tools-node/package";
import type { PackageManifest } from "@rnx-kit/node-types";
import semverCoerce from "semver/functions/coerce.js";
import semverRangeSubset from "semver/ranges/subset.js";
import { dependencySections } from "./helpers.ts";
Expand Down
2 changes: 1 addition & 1 deletion packages/align-deps/src/findBadPackages.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { PackageManifest } from "@rnx-kit/tools-node/package";
import type { PackageManifest } from "@rnx-kit/node-types";
import semverSubset from "semver/ranges/subset.js";
import { bannedPackages } from "./presets/banned.ts";
import type { ExcludedPackage } from "./types.ts";
Expand Down
2 changes: 1 addition & 1 deletion packages/align-deps/src/helpers.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { PackageManifest } from "@rnx-kit/tools-node/package";
import type { PackageManifest } from "@rnx-kit/node-types";
import { writePackage } from "@rnx-kit/tools-node/package";
import detectIndent from "detect-indent";
import * as nodefs from "node:fs";
Expand Down
4 changes: 2 additions & 2 deletions packages/align-deps/src/manifest.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import type { Capability, KitType } from "@rnx-kit/config";
import type { PackageManifest } from "@rnx-kit/tools-node/package";
import type { Capability, KitType } from "@rnx-kit/config-types";
import type { PackageManifest } from "@rnx-kit/node-types";
import { resolveCapabilities } from "./capabilities.ts";
import { compare, omitEmptySections } from "./helpers.ts";
import type { DependencyType, Package, Preset } from "./types.ts";
Expand Down
6 changes: 3 additions & 3 deletions packages/align-deps/src/preset.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import type { Capability } from "@rnx-kit/config";
import type { Capability } from "@rnx-kit/config-types";
import semverCoerce from "semver/functions/coerce.js";
import semverSatisfies from "semver/functions/satisfies.js";
import semverValidRange from "semver/ranges/valid.js";
import { gatherRequirements } from "./dependencies.ts";
import { preset as reactNativePreset } from "./presets/microsoft/react-native.ts";
import type { AlignDepsConfig, Options, Preset } from "./types.ts";
import type { AlignDepsOptions, Options, Preset } from "./types.ts";

type Resolution = {
devPreset: Preset;
Expand Down Expand Up @@ -132,7 +132,7 @@ export function mergePresets(
* @returns The resolved presets and capabilities
*/
export function resolve(
{ kitType, alignDeps, manifest }: AlignDepsConfig,
{ kitType, alignDeps, manifest }: AlignDepsOptions,
projectRoot: string,
options: Options
): Resolution {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { MetaCapability } from "@rnx-kit/config";
import type { MetaCapability } from "@rnx-kit/config-types";
import type { MetaPackage } from "../../../types.ts";

export const baseCapabilities: Readonly<Record<MetaCapability, MetaPackage>> = {
Expand Down
16 changes: 10 additions & 6 deletions packages/align-deps/src/types.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
import type { Capability, KitConfig, KitType } from "@rnx-kit/config";
import type { PackageManifest } from "@rnx-kit/tools-node/package";

export type AlignDepsConfig = {
kitType: Required<KitConfig>["kitType"];
alignDeps: Required<Required<KitConfig>["alignDeps"]>;
import type {
AlignDepsConfig,
Capability,
KitType,
} from "@rnx-kit/config-types";
import type { PackageManifest } from "@rnx-kit/node-types";

export type AlignDepsOptions = {
kitType: KitType;
alignDeps: Required<AlignDepsConfig>;
manifest: PackageManifest;
};

Expand Down
4 changes: 2 additions & 2 deletions packages/align-deps/test/commands/setVersion.test.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { PackageManifest } from "@rnx-kit/tools-node/package";
import type { PackageManifest } from "@rnx-kit/node-types";
import { deepEqual, equal, fail, ok, rejects } from "node:assert/strict";
import { after, afterEach, before, describe, it } from "node:test";
import prompts from "prompts";
Expand Down Expand Up @@ -358,7 +358,7 @@ describe("makeSetVersionCommand()", () => {
});

it('skips "dirty" packages', async () => {
const mockManifest = {
const mockManifest: PackageManifest = {
name: "@rnx-kit/align-deps",
version: "1.0.0-test",
dependencies: {
Expand Down
Loading
Loading