@mxpicture/build-api 0.2.7 โ†’ 0.2.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.
@@ -1,11 +1,13 @@
1
- import { BarrelGroup, BarrelResult } from "../types/types.barrel.js";
1
+ import { BarrelGroup, BarrelParams, BarrelResult } from "../types/types.barrel.js";
2
+ import { WorkspacePaths } from "../workspace/WorkspacePaths.js";
2
3
  export declare const DEFAULT_EXCLUDED_PATTERNS: RegExp[];
3
4
  export declare const DEFAULT_HEADER = "// This file is auto-generated. Do not edit manually.\n";
5
+ export declare const runBarrel: (params: BarrelParams) => Promise<void>;
4
6
  export declare class Barrel {
5
- readonly packagesDir: string;
7
+ protected readonly paths: WorkspacePaths;
6
8
  protected readonly excludes: RegExp[];
7
9
  protected readonly fileHeader: string;
8
- constructor(packagesDir: string, excludes?: RegExp[], fileHeader?: string);
10
+ constructor(paths: WorkspacePaths, excludes: RegExp[], fileHeader: string);
9
11
  run(): Promise<void>;
10
12
  protected isExcluded(fileName: string): boolean;
11
13
  protected persistBarrel(group: BarrelGroup): Promise<BarrelGroup>;
@@ -1,6 +1,8 @@
1
1
  import { basename, dirname, join, relative } from "node:path";
2
2
  import { readdir, rm, writeFile } from "node:fs/promises";
3
3
  import { Pkg } from "../pkg/Pkg.js";
4
+ import { logInfo, logSuccess } from "../logger/Logger.js";
5
+ import { WorkspacePaths } from "../workspace/WorkspacePaths.js";
4
6
  // /** File patterns to exclude from barrel exports */
5
7
  export const DEFAULT_EXCLUDED_PATTERNS = [
6
8
  /\.test\.ts$/,
@@ -12,17 +14,18 @@ export const DEFAULT_EXCLUDED_PATTERNS = [
12
14
  ];
13
15
  // /** Header comment added to every generated barrel file */
14
16
  export const DEFAULT_HEADER = "// This file is auto-generated. Do not edit manually.\n";
17
+ export const runBarrel = async (params) => new Barrel(WorkspacePaths.instance(params.repoRoot, params.workspacesName), params.excludes ?? DEFAULT_EXCLUDED_PATTERNS, params.fileHeader ?? DEFAULT_HEADER).run();
15
18
  export class Barrel {
16
- packagesDir;
19
+ paths;
17
20
  excludes;
18
21
  fileHeader;
19
- constructor(packagesDir, excludes, fileHeader) {
20
- this.packagesDir = packagesDir;
21
- this.excludes = excludes ?? DEFAULT_EXCLUDED_PATTERNS;
22
- this.fileHeader = fileHeader ?? DEFAULT_HEADER;
22
+ constructor(paths, excludes, fileHeader) {
23
+ this.paths = paths;
24
+ this.excludes = excludes;
25
+ this.fileHeader = fileHeader;
23
26
  }
24
27
  async run() {
25
- const packageDirs = (await readdir(this.packagesDir)).map((p) => join(this.packagesDir, p));
28
+ const packageDirs = (await readdir(this.paths.workspacesDir)).map((p) => join(this.paths.workspacesDir, p));
26
29
  const promises = [];
27
30
  for (const packageDir of packageDirs) {
28
31
  try {
@@ -92,19 +95,19 @@ export class Barrel {
92
95
  async updatePackageExports(packageDir, packageJsonPath, exports) {
93
96
  try {
94
97
  const pkgJson = new Pkg(packageJsonPath);
95
- const pkgName = relative(this.packagesDir, packageDir);
96
- console.log(`๐Ÿ“ฆ updating ${pkgName} package.json ...`);
98
+ const pkgName = relative(this.paths.workspacesDir, packageDir);
99
+ logInfo(`๐Ÿ“ฆ updating ${pkgName} package.json ...`);
97
100
  const pkg = await pkgJson.readJson();
98
101
  if (!this.hasExportsChanged(exports, pkg.exports)) {
99
- console.log(`๐Ÿงน No changes in ${pkgName}, nothing to do`);
102
+ logInfo(`๐Ÿงน No changes in ${pkgName}, nothing to do`);
100
103
  return;
101
104
  }
102
105
  pkg.exports = { ...exports };
103
106
  await pkgJson.writeJson(pkg);
104
- console.log(`โœ… ${pkgName} update successful`);
107
+ logSuccess(`โœ… ${pkgName} update successful`);
105
108
  }
106
109
  catch (error) {
107
- console.log(error);
110
+ logInfo(error);
108
111
  }
109
112
  }
110
113
  hasExportsChanged(a, b) {
@@ -1,18 +1,10 @@
1
- import { ToBeDeleted, ToCleanup } from "../types/types.cleanup.js";
1
+ import { CleanupParams, ToBeDeleted, ToCleanup } from "../types/types.cleanup.js";
2
2
  import { WorkspacePaths } from "../workspace/WorkspacePaths.js";
3
- import { Logger } from "../types/types.workspace.js";
4
- export interface CleanupParams {
5
- repoRoot: string;
6
- workspacesName?: string;
7
- logger?: Logger;
8
- toBeDeleted?: ToBeDeleted[];
9
- }
10
3
  export declare const runCleanup: (params: CleanupParams) => Promise<void>;
11
4
  export declare class Cleanup {
12
5
  protected readonly paths: WorkspacePaths;
13
- protected readonly log: Logger;
14
6
  protected readonly toBeDeleted: ToBeDeleted[];
15
- constructor(paths: WorkspacePaths, log: Logger, toBeDeleted: ToBeDeleted[]);
7
+ constructor(paths: WorkspacePaths, toBeDeleted: ToBeDeleted[]);
16
8
  run(): Promise<void>;
17
9
  read(): Promise<ToCleanup[]>;
18
10
  cleanup(toCleanups: ToCleanup[]): Promise<void>;
@@ -1,6 +1,7 @@
1
1
  import { readdir, rename, rm } from "node:fs/promises";
2
2
  import { join } from "node:path";
3
3
  import { WorkspacePaths } from "../workspace/WorkspacePaths.js";
4
+ import { logError, logInfo, logSuccess } from "../logger/Logger.js";
4
5
  // moveSuffix: e.g. mv node_modules node_modules_tmp && rm -rf node_modules_tmp (async)
5
6
  const DEFAULT_TO_BE_DELETED = [
6
7
  { name: "node_modules", moveSuffix: "_tmp" },
@@ -8,14 +9,12 @@ const DEFAULT_TO_BE_DELETED = [
8
9
  { name: "tsconfig.tsbuildinfo" },
9
10
  { name: ".tsbuildinfo" },
10
11
  ];
11
- export const runCleanup = async (params) => new Cleanup(WorkspacePaths.instance(params.repoRoot, params.workspacesName), params.logger ?? (() => { }), params.toBeDeleted ?? DEFAULT_TO_BE_DELETED).run();
12
+ export const runCleanup = async (params) => new Cleanup(WorkspacePaths.instance(params.repoRoot, params.workspacesName), params.toBeDeleted ?? DEFAULT_TO_BE_DELETED).run();
12
13
  export class Cleanup {
13
14
  paths;
14
- log;
15
15
  toBeDeleted;
16
- constructor(paths, log, toBeDeleted) {
16
+ constructor(paths, toBeDeleted) {
17
17
  this.paths = paths;
18
- this.log = log;
19
18
  this.toBeDeleted = toBeDeleted;
20
19
  }
21
20
  async run() {
@@ -34,24 +33,24 @@ export class Cleanup {
34
33
  await Promise.all(toCleanups.map(async (x) => this.cleanupSingle(x)));
35
34
  }
36
35
  async cleanupSingle(toCleanup) {
37
- this.log(`๐Ÿงน Cleanup started ${toCleanup.name} ...`);
36
+ logInfo(`๐Ÿงน Cleanup started ${toCleanup.name} ...`);
38
37
  try {
39
38
  if (!toCleanup.moveTo) {
40
39
  await this.remove(toCleanup);
41
- this.log(`โœ… ${toCleanup.name} removed sucessfully`);
40
+ logSuccess(`โœ… ${toCleanup.name} removed sucessfully`);
42
41
  return;
43
42
  }
44
- this.log(`๐Ÿ“ฆ Moving ${toCleanup.name} to ${toCleanup.name}${toCleanup.moveSuffix}`);
43
+ logInfo(`๐Ÿ“ฆ Moving ${toCleanup.name} to ${toCleanup.name}${toCleanup.moveSuffix}`);
45
44
  await this.move(toCleanup);
46
- this.log(`๐Ÿ“ฆ Start async removing ${toCleanup.name} (${toCleanup.name}${toCleanup.moveSuffix})`);
45
+ logInfo(`๐Ÿ“ฆ Start async removing ${toCleanup.name} (${toCleanup.name}${toCleanup.moveSuffix})`);
47
46
  this.remove(toCleanup)
48
- .then(() => this.log(`โœ… ${toCleanup.name} (async) removed sucessfully`))
47
+ .then(() => logSuccess(`โœ… ${toCleanup.name} (async) removed sucessfully`))
49
48
  .catch((e) => {
50
- this.log(`โŒ Removing ${toCleanup.name} (async) failed ${e}`);
49
+ logError(`โŒ Removing ${toCleanup.name} (async) failed ${e}`);
51
50
  });
52
51
  }
53
52
  catch (error) {
54
- this.log(`โŒ Removing ${toCleanup.name} failed ${error}`);
53
+ logError(`โŒ Removing ${toCleanup.name} failed ${error}`);
55
54
  }
56
55
  }
57
56
  async readDir(dir) {
@@ -1,10 +1,5 @@
1
- import { DepsProcessMode, DepsReplacementMode } from "../types/types.deps.js";
2
- import { FixWorkspaceDepsMain, FixWorkspaceDepsParams } from "../types/types.workspace.js";
3
- export declare const runFixDeps: (p: {
4
- repoRoot: string;
5
- mode: DepsProcessMode;
6
- replacement: DepsReplacementMode;
7
- }) => Promise<void>;
1
+ import { DepsProcessMode, DepsReplacementMode, FixWorkspaceDepsData, FixWorkspaceDepsMain, FixWorkspaceDepsParams } from "../types/types.deps.js";
2
+ export declare const runFixDeps: (p: FixWorkspaceDepsParams) => Promise<void>;
8
3
  export declare const instanceFixDeps: (p: {
9
4
  repoRoot: string;
10
5
  mode: DepsProcessMode;
@@ -14,17 +9,17 @@ export declare abstract class IFixWorkspaceDeps {
14
9
  readonly repoRoot: string;
15
10
  readonly mode: DepsProcessMode;
16
11
  constructor(repoRoot: string, mode: DepsProcessMode);
17
- protected abstract fixVersion(p: FixWorkspaceDepsParams): string | null;
18
- protected abstract restoreVersion(p: FixWorkspaceDepsParams): string | null;
12
+ protected abstract fixVersion(p: FixWorkspaceDepsData): string | null;
13
+ protected abstract restoreVersion(p: FixWorkspaceDepsData): string | null;
19
14
  run(): Promise<void>;
20
15
  protected handleDependencies(deps: Record<string, string> | undefined, p: FixWorkspaceDepsMain): boolean;
21
16
  protected runSingle(p: FixWorkspaceDepsMain): boolean;
22
17
  }
23
18
  export declare class FixWorkspaceDepsVersion extends IFixWorkspaceDeps {
24
- protected fixVersion(p: FixWorkspaceDepsParams): string | null;
25
- protected restoreVersion(p: FixWorkspaceDepsParams): string | null;
19
+ protected fixVersion(p: FixWorkspaceDepsData): string | null;
20
+ protected restoreVersion(p: FixWorkspaceDepsData): string | null;
26
21
  }
27
22
  export declare class FixWorkspaceDepsFile extends IFixWorkspaceDeps {
28
- protected fixVersion(p: FixWorkspaceDepsParams): string | null;
29
- protected restoreVersion(p: FixWorkspaceDepsParams): string | null;
23
+ protected fixVersion(p: FixWorkspaceDepsData): string | null;
24
+ protected restoreVersion(p: FixWorkspaceDepsData): string | null;
30
25
  }
@@ -1,4 +1,5 @@
1
- import { DepsReplacementMode } from "../types/types.deps.js";
1
+ import { logInfo, logSuccess } from "../logger/Logger.js";
2
+ import { DepsReplacementMode, } from "../types/types.deps.js";
2
3
  import { buildMapEntries, readPackageJsons, writePackageJsons, } from "../workspace/workspace.common.js";
3
4
  export const runFixDeps = async (p) => instanceFixDeps(p).run();
4
5
  export const instanceFixDeps = (p) => p.replacement === DepsReplacementMode.version
@@ -13,9 +14,9 @@ export class IFixWorkspaceDeps {
13
14
  }
14
15
  async run() {
15
16
  if (this.mode === "fix")
16
- console.log("๐Ÿ”ง Fixing workspace dependencies...\n");
17
+ logInfo("๐Ÿ”ง Fixing workspace dependencies...\n");
17
18
  else
18
- console.log("๐Ÿ”ง Restoring workspace dependencies...\n");
19
+ logInfo("๐Ÿ”ง Restoring workspace dependencies...\n");
19
20
  const pkgs = await readPackageJsons(this.repoRoot);
20
21
  const mapEntries = buildMapEntries(pkgs);
21
22
  const versionMap = new Map();
@@ -24,12 +25,12 @@ export class IFixWorkspaceDeps {
24
25
  versionMap.set(pkg.content.name, pkg.content.version);
25
26
  workspacePackages.add(pkg.content.name);
26
27
  }
27
- console.log("๐Ÿ“‹ Version map:");
28
+ logInfo("๐Ÿ“‹ Version map:");
28
29
  for (const map of mapEntries)
29
- console.log(` ${map.fromPkg.content.name} --> ${map.toPkg.content.name}: ${map.relPath}`);
30
- console.log();
30
+ logInfo(` ${map.fromPkg.content.name} --> ${map.toPkg.content.name}: ${map.relPath}`);
31
+ logInfo();
31
32
  for (const consumingPkg of pkgs) {
32
- console.log(`๐Ÿ“ฆ Processing ${consumingPkg.content.name}...`);
33
+ logInfo(`๐Ÿ“ฆ Processing ${consumingPkg.content.name}...`);
33
34
  try {
34
35
  consumingPkg.modified = this.runSingle({
35
36
  consumingPkg,
@@ -45,9 +46,9 @@ export class IFixWorkspaceDeps {
45
46
  }
46
47
  await writePackageJsons(pkgs);
47
48
  if (this.mode === "fix")
48
- console.log("โœ… Done fixing workspace dependencies!");
49
+ logSuccess("โœ… Done fixing workspace dependencies!");
49
50
  else
50
- console.log("โœ… Done restoring workspace dependencies!");
51
+ logSuccess("โœ… Done restoring workspace dependencies!");
51
52
  }
52
53
  // Replace workspace:* with file:...
53
54
  handleDependencies(deps, p) {
@@ -59,7 +60,7 @@ export class IFixWorkspaceDeps {
59
60
  const newVersion = handler({ ...p, pkg: name, version });
60
61
  if (!newVersion)
61
62
  continue;
62
- console.log(` โœ“ Replaced ${name}: ${version} โ†’ ${newVersion}`);
63
+ logInfo(` โœ“ Replaced ${name}: ${version} โ†’ ${newVersion}`);
63
64
  deps[name] = newVersion;
64
65
  modified = true;
65
66
  }
@@ -0,0 +1,12 @@
1
+ export type LoggerHandler = (...data: any[]) => void;
2
+ export interface Logger {
3
+ success: LoggerHandler;
4
+ error: LoggerHandler;
5
+ info: LoggerHandler;
6
+ }
7
+ export declare const setLogger: (log: Logger) => Logger;
8
+ export declare const logger: () => Logger;
9
+ export declare const logSuccess: LoggerHandler;
10
+ export declare const logError: LoggerHandler;
11
+ export declare const logInfo: LoggerHandler;
12
+ export declare const consoleLogger: Logger;
@@ -0,0 +1,19 @@
1
+ let __logger = null;
2
+ export const setLogger = (log) => (__logger = log);
3
+ export const logger = () => __logger ?? dummyLogger;
4
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
5
+ export const logSuccess = (...data) => logger().success(...data);
6
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
7
+ export const logError = (...data) => logger().error(...data);
8
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
9
+ export const logInfo = (...data) => logger().info(...data);
10
+ const dummyLogger = {
11
+ success: () => { },
12
+ error: () => { },
13
+ info: () => { },
14
+ };
15
+ export const consoleLogger = {
16
+ success: console.log,
17
+ error: console.error,
18
+ info: console.log,
19
+ };
@@ -0,0 +1 @@
1
+ export * from "./Logger.js";
@@ -0,0 +1,2 @@
1
+ // This file is auto-generated. Do not edit manually.
2
+ export * from "./Logger.js";
@@ -0,0 +1,8 @@
1
+ import { NpmPublisherParams } from "../types/types.npm.js";
2
+ export declare const runNpmPublisher: (params: NpmPublisherParams) => Promise<void>;
3
+ export declare class NpmPublisher {
4
+ protected readonly packagesDir: string;
5
+ constructor(packagesDir: string);
6
+ run(): Promise<void>;
7
+ protected runPackage(dir: string): Promise<void>;
8
+ }
@@ -0,0 +1,58 @@
1
+ import { readdir } from "fs/promises";
2
+ import { join } from "path";
3
+ import { readPackageJson } from "../workspace/workspace.common.js";
4
+ import { exec as execCb } from "node:child_process";
5
+ import { promisify } from "node:util";
6
+ import { logError, logInfo, logSuccess } from "../logger/Logger.js";
7
+ const exec = promisify(execCb);
8
+ export const runNpmPublisher = async (params) => new NpmPublisher(params.packagesDir).run();
9
+ export class NpmPublisher {
10
+ packagesDir;
11
+ constructor(packagesDir) {
12
+ this.packagesDir = packagesDir;
13
+ }
14
+ async run() {
15
+ const packageDirs = (await readdir(this.packagesDir, { withFileTypes: true }))
16
+ .filter((d) => d.isDirectory())
17
+ .map((d) => join(this.packagesDir, d.name));
18
+ const results = await Promise.allSettled(packageDirs.map((d) => this.runPackage(d)));
19
+ const failures = results.filter((r) => r.status === "rejected");
20
+ if (failures.length > 0) {
21
+ console.error(`\nโŒ ${failures.length} package(s) failed to publish:`);
22
+ failures.forEach((failure) => {
23
+ console.error(failure.reason);
24
+ });
25
+ process.exit(1);
26
+ }
27
+ }
28
+ async runPackage(dir) {
29
+ const pkg = await readPackageJson(join(dir, "package.json"));
30
+ if (!pkg || pkg.private)
31
+ return;
32
+ const { name, version } = pkg;
33
+ logInfo(`๐Ÿ“ฆ Publishing ${name}@${version} ... (${new Date().toISOString()})`);
34
+ // Check if this exact version is already published
35
+ try {
36
+ const { stdout } = await exec(`npm view ${name}@${version} version`);
37
+ const published = stdout.trim();
38
+ if (published === version) {
39
+ logInfo(`โญ๏ธ ${name}@${version} already published, skipping.`);
40
+ return;
41
+ }
42
+ }
43
+ catch {
44
+ // npm view exits non-zero if the package/version doesn't exist โ€” means we should publish
45
+ }
46
+ try {
47
+ await exec("npm publish --access public", {
48
+ cwd: dir,
49
+ });
50
+ logSuccess(`โœ… ${name}@${version} published successfully (${new Date().toISOString()}).`);
51
+ }
52
+ catch (err) {
53
+ const errorMessage = `Failed to publish ${name}@${version} (${new Date().toISOString()})`;
54
+ logError(`โŒ ${errorMessage}`);
55
+ throw new Error(errorMessage, { cause: err });
56
+ }
57
+ }
58
+ }
@@ -0,0 +1 @@
1
+ export * from "./NpmPublisher.js";
@@ -0,0 +1,2 @@
1
+ // This file is auto-generated. Do not edit manually.
2
+ export * from "./NpmPublisher.js";
@@ -1,6 +1,7 @@
1
1
  export * from "./types.barrel.js";
2
2
  export * from "./types.cleanup.js";
3
3
  export * from "./types.deps.js";
4
+ export * from "./types.npm.js";
4
5
  export * from "./types.os.js";
5
6
  export * from "./types.package.js";
6
7
  export * from "./types.vscode.js";
@@ -2,6 +2,7 @@
2
2
  export * from "./types.barrel.js";
3
3
  export * from "./types.cleanup.js";
4
4
  export * from "./types.deps.js";
5
+ export * from "./types.npm.js";
5
6
  export * from "./types.os.js";
6
7
  export * from "./types.package.js";
7
8
  export * from "./types.vscode.js";
@@ -9,3 +9,9 @@ export interface BarrelResult {
9
9
  packageDir: string;
10
10
  packageJsonPath: string;
11
11
  }
12
+ export interface BarrelParams {
13
+ repoRoot: string;
14
+ workspacesName?: string;
15
+ excludes?: RegExp[];
16
+ fileHeader?: string;
17
+ }
@@ -6,3 +6,8 @@ export interface ToCleanup extends ToBeDeleted {
6
6
  path: string;
7
7
  moveTo?: string;
8
8
  }
9
+ export interface CleanupParams {
10
+ repoRoot: string;
11
+ workspacesName?: string;
12
+ toBeDeleted?: ToBeDeleted[];
13
+ }
@@ -1,3 +1,4 @@
1
+ import { MapEntry, PackageEntry } from "./types.package.js";
1
2
  export declare enum DepsProcessMode {
2
3
  fix = "fix",
3
4
  restore = "restore"
@@ -6,3 +7,18 @@ export declare enum DepsReplacementMode {
6
7
  version = "version",
7
8
  file = "file"
8
9
  }
10
+ export interface FixWorkspaceDepsMain {
11
+ mapEntries: MapEntry[];
12
+ consumingPkg: PackageEntry;
13
+ versionMap: Map<string, string>;
14
+ workspacePackages: Set<string>;
15
+ }
16
+ export interface FixWorkspaceDepsData extends FixWorkspaceDepsMain {
17
+ pkg: string;
18
+ version: string;
19
+ }
20
+ export interface FixWorkspaceDepsParams {
21
+ repoRoot: string;
22
+ mode: DepsProcessMode;
23
+ replacement: DepsReplacementMode;
24
+ }
@@ -0,0 +1,3 @@
1
+ export interface NpmPublisherParams {
2
+ packagesDir: string;
3
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -1,5 +1,3 @@
1
- import { MapEntry, PackageEntry } from "./types.package.js";
2
- export type Logger = (...data: any[]) => void;
3
1
  export interface PnpmWorkspace {
4
2
  packages: string[];
5
3
  }
@@ -15,13 +13,3 @@ export interface WorkspaceFile {
15
13
  level: number;
16
14
  type: WorkspaceFileType;
17
15
  }
18
- export interface FixWorkspaceDepsMain {
19
- mapEntries: MapEntry[];
20
- consumingPkg: PackageEntry;
21
- versionMap: Map<string, string>;
22
- workspacePackages: Set<string>;
23
- }
24
- export interface FixWorkspaceDepsParams extends FixWorkspaceDepsMain {
25
- pkg: string;
26
- version: string;
27
- }
@@ -4,6 +4,7 @@ import { join, relative, resolve } from "path";
4
4
  import { splitVersion, compareVersions, concatVersion, } from "../pkg/pkg.common.js";
5
5
  import json5 from "json5";
6
6
  import { parse } from "yaml";
7
+ import { logInfo, logSuccess } from "../logger/Logger.js";
7
8
  export const DEFAULT_WORKSPACE_FILE_ENDING = ".code-workspace";
8
9
  export const getFileType = (filename) => filename.endsWith(DEFAULT_WORKSPACE_FILE_ENDING)
9
10
  ? WorkspaceFileType.workspace
@@ -118,10 +119,10 @@ export const readPackageJsons = async (repoRoot) => {
118
119
  export const writePackageJsons = async (entries) => Promise.all(entries.map(async (entry) => {
119
120
  if (entry.modified) {
120
121
  await writeFile(entry.jsonPath, JSON.stringify(entry.content, null, 2) + "\n", "utf8");
121
- console.log(` โœ… Updated ${entry.content.name}\n`);
122
+ logSuccess(` โœ… Updated ${entry.content.name}\n`);
122
123
  }
123
124
  else {
124
- console.log(` โญ๏ธ No workspace dependencies to fix. ${entry.content.name}\n`);
125
+ logInfo(` โญ๏ธ No workspace dependencies to fix. ${entry.content.name}\n`);
125
126
  }
126
127
  }));
127
128
  // Build a map of package names to their versions
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mxpicture/build-api",
3
- "version": "0.2.7",
3
+ "version": "0.2.9",
4
4
  "description": "Build utilities API",
5
5
  "type": "module",
6
6
  "author": "MXPicture",
@@ -13,6 +13,8 @@
13
13
  "./barrel": "./dist/barrel/index.js",
14
14
  "./cleanup": "./dist/cleanup/index.js",
15
15
  "./deps": "./dist/deps/index.js",
16
+ "./logger": "./dist/logger/index.js",
17
+ "./npmPublish": "./dist/npmPublish/index.js",
16
18
  "./osInfo": "./dist/osInfo/index.js",
17
19
  "./pkg": "./dist/pkg/index.js",
18
20
  "./types": "./dist/types/index.js",