@package-pal/core 0.0.11 → 0.0.12
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/index.js +126 -70
- package/index.js.map +14 -13
- package/lib/api.d.ts.map +1 -1
- package/lib/graph/functions/generate-graphs.d.ts.map +1 -1
- package/lib/graph/functions/generate-topological-sorted-groups.d.ts.map +1 -1
- package/lib/package/functions/bump-package-version.d.ts +3 -0
- package/lib/package/functions/bump-package-version.d.ts.map +1 -0
- package/lib/package/functions/load-packages.d.ts.map +1 -1
- package/lib/package/types/package-adapter.d.ts +11 -12
- package/lib/package/types/package-adapter.d.ts.map +1 -1
- package/lib/watch/functions/dedupe-shared-paths.d.ts.map +1 -1
- package/lib/watch/functions/filter-files-modified-since.d.ts.map +1 -1
- package/lib/watch/functions/normalise-watched-file-path.d.ts.map +1 -1
- package/package.json +6 -7
package/index.js
CHANGED
|
@@ -12,9 +12,6 @@ var BumpVersionType = {
|
|
|
12
12
|
// packages/core/src/lib/package/types/package-adapter.ts
|
|
13
13
|
class PackageAdapter {
|
|
14
14
|
}
|
|
15
|
-
// packages/core/src/lib/api.ts
|
|
16
|
-
import { isDefined as isDefined4 } from "@package-pal/util";
|
|
17
|
-
|
|
18
15
|
// packages/core/src/lib/configuration/functions/check-bun.ts
|
|
19
16
|
var checkBun = () => {
|
|
20
17
|
if (!Bun) {
|
|
@@ -290,10 +287,13 @@ var trackPackageEntryDependencies = ({
|
|
|
290
287
|
}
|
|
291
288
|
};
|
|
292
289
|
var generateReverseGraph = (packages, packageGraph) => {
|
|
293
|
-
const reversePackageGraph = new Map
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
290
|
+
const reversePackageGraph = new Map;
|
|
291
|
+
for (const packageData of packages) {
|
|
292
|
+
reversePackageGraph.set(packageData.name, {
|
|
293
|
+
packageData,
|
|
294
|
+
pointsToPackages: new Set
|
|
295
|
+
});
|
|
296
|
+
}
|
|
297
297
|
for (const packageData of packages) {
|
|
298
298
|
const packageNode = assertDefined2(packageGraph.get(packageData.name));
|
|
299
299
|
for (const dependency of packageNode.pointsToPackages) {
|
|
@@ -351,14 +351,14 @@ var dfsTraverseGraphPaths = function* (graph, traverseFromPackages, options = {}
|
|
|
351
351
|
if (localVisited.has(node)) {
|
|
352
352
|
const idx = path.indexOf(node);
|
|
353
353
|
if (idx !== -1) {
|
|
354
|
-
yield
|
|
354
|
+
yield path.slice(idx).concat(node);
|
|
355
355
|
}
|
|
356
356
|
continue;
|
|
357
357
|
}
|
|
358
358
|
if (useGlobalVisited && globalVisited.has(node)) {
|
|
359
359
|
continue;
|
|
360
360
|
}
|
|
361
|
-
const newPath =
|
|
361
|
+
const newPath = path.concat(node);
|
|
362
362
|
const newLocalVisited = new Set(localVisited);
|
|
363
363
|
newLocalVisited.add(node);
|
|
364
364
|
const neighbours = graph.get(node)?.pointsToPackages;
|
|
@@ -390,7 +390,7 @@ import { assertDefined as assertDefined5 } from "@package-pal/util";
|
|
|
390
390
|
import { assertDefined as assertDefined4 } from "@package-pal/util";
|
|
391
391
|
var dfsTraverseGraph = function* (graph, traverseFromPackages) {
|
|
392
392
|
const visited = new Set;
|
|
393
|
-
const stack = Array.isArray(traverseFromPackages) ?
|
|
393
|
+
const stack = Array.isArray(traverseFromPackages) ? traverseFromPackages.slice() : [traverseFromPackages];
|
|
394
394
|
while (stack.length) {
|
|
395
395
|
const activePackage = assertDefined4(stack.pop());
|
|
396
396
|
if (visited.has(activePackage)) {
|
|
@@ -519,13 +519,20 @@ var getCircularDependencies = (inDegree) => {
|
|
|
519
519
|
};
|
|
520
520
|
var generateTopologicalSortedGroups = (packageGraph, logger) => {
|
|
521
521
|
logger?.debug(styleText4("dim", "Generating topological sorted groups..."));
|
|
522
|
-
const
|
|
523
|
-
const
|
|
524
|
-
const
|
|
525
|
-
|
|
522
|
+
const inDegree = new Map;
|
|
523
|
+
const graph = new Map;
|
|
524
|
+
for (const [packageName] of packageGraph) {
|
|
525
|
+
inDegree.set(packageName, 0);
|
|
526
|
+
graph.set(packageName, new Set);
|
|
527
|
+
}
|
|
528
|
+
for (const [packageName, node] of packageGraph) {
|
|
526
529
|
for (const dependencyName of node.pointsToPackages) {
|
|
527
|
-
|
|
528
|
-
|
|
530
|
+
const adj = graph.get(dependencyName);
|
|
531
|
+
if (adj) {
|
|
532
|
+
adj.add(packageName);
|
|
533
|
+
}
|
|
534
|
+
const currentDeg = inDegree.get(packageName) ?? 0;
|
|
535
|
+
inDegree.set(packageName, currentDeg + 1);
|
|
529
536
|
}
|
|
530
537
|
}
|
|
531
538
|
const result = [];
|
|
@@ -564,14 +571,56 @@ var generateTopologicalSortedGroups = (packageGraph, logger) => {
|
|
|
564
571
|
};
|
|
565
572
|
};
|
|
566
573
|
|
|
567
|
-
// packages/core/src/lib/package/functions/
|
|
574
|
+
// packages/core/src/lib/package/functions/bump-package-version.ts
|
|
568
575
|
import { styleText as styleText5 } from "util";
|
|
576
|
+
import { isDefined as isDefined2 } from "@package-pal/util";
|
|
577
|
+
import { inc } from "semver";
|
|
578
|
+
var bumpPackageVersion = async (options) => {
|
|
579
|
+
const exact = isDefined2(options.exact) ? options.exact : options.config.version.exact;
|
|
580
|
+
const preId = isDefined2(options.preId) ? options.preId : options.config.version.preId;
|
|
581
|
+
const {
|
|
582
|
+
packageName,
|
|
583
|
+
type,
|
|
584
|
+
packageGraphs,
|
|
585
|
+
adapter,
|
|
586
|
+
config: { logger }
|
|
587
|
+
} = options;
|
|
588
|
+
logger.debug(styleText5("dim", `Bumping package '${packageName}'...`));
|
|
589
|
+
const packageNode = packageGraphs.dependencies.get(packageName);
|
|
590
|
+
if (!packageNode) {
|
|
591
|
+
throw new Error(`Package '${packageName}' not found.`);
|
|
592
|
+
}
|
|
593
|
+
const currentVersion = packageNode.packageData.version ?? "1.0.0";
|
|
594
|
+
const bumpedVersion = inc(currentVersion, type, undefined, preId);
|
|
595
|
+
if (!bumpedVersion) {
|
|
596
|
+
throw new Error(`Package '${packageName}' version '${currentVersion}' is invalid.`);
|
|
597
|
+
}
|
|
598
|
+
logger.info(`Updating '${packageName}' version: ${currentVersion} \u2192 ${bumpedVersion}.`);
|
|
599
|
+
await adapter.bumpOwnVersion(packageNode.packageData, bumpedVersion, logger);
|
|
600
|
+
const dependentWrites = [];
|
|
601
|
+
for (const dependent of dfsTraverseGraph(packageGraphs.dependents, packageName)) {
|
|
602
|
+
dependentWrites.push((async () => {
|
|
603
|
+
const updated = await adapter.bumpDependencyVersion(dependent, packageName, bumpedVersion, exact, logger);
|
|
604
|
+
if (updated) {
|
|
605
|
+
logger.debug(styleText5("dim", `Updated dependency '${packageName}' in '${dependent.name}'.`));
|
|
606
|
+
}
|
|
607
|
+
})());
|
|
608
|
+
}
|
|
609
|
+
await Promise.all(dependentWrites);
|
|
610
|
+
};
|
|
611
|
+
|
|
612
|
+
// packages/core/src/lib/package/functions/load-packages.ts
|
|
613
|
+
import { styleText as styleText6 } from "util";
|
|
569
614
|
var loadPackages = async (rootDir, packagePatterns, adapter, logger) => {
|
|
570
|
-
|
|
571
|
-
|
|
615
|
+
let resolvedPatterns = packagePatterns;
|
|
616
|
+
if (packagePatterns.length === 1 && packagePatterns[0] === "packages/*") {
|
|
617
|
+
resolvedPatterns = adapter.defaultPatterns;
|
|
618
|
+
}
|
|
619
|
+
const patternContent = resolvedPatterns.map((pattern) => `'${pattern}'`).join(", ");
|
|
620
|
+
logger.debug(styleText6("dim", `Loading packages matching pattern/s ${patternContent}...${rootDir ? ` from ${rootDir}` : ""}`));
|
|
572
621
|
const packages = [];
|
|
573
622
|
const seen = new Set;
|
|
574
|
-
for await (const packageData of adapter.scanPackages(Array.from(new Set(
|
|
623
|
+
for await (const packageData of adapter.scanPackages(Array.from(new Set(resolvedPatterns)), logger, rootDir)) {
|
|
575
624
|
if (seen.has(packageData.name)) {
|
|
576
625
|
continue;
|
|
577
626
|
}
|
|
@@ -592,7 +641,7 @@ import {
|
|
|
592
641
|
} from "@package-pal/util";
|
|
593
642
|
|
|
594
643
|
// packages/core/src/lib/process/functions/run-subprocess.ts
|
|
595
|
-
import { styleText as
|
|
644
|
+
import { styleText as styleText7 } from "util";
|
|
596
645
|
|
|
597
646
|
// packages/core/src/lib/process/types/exit-state.ts
|
|
598
647
|
var ExitState = {
|
|
@@ -888,7 +937,7 @@ var cancelCodes = new Set([
|
|
|
888
937
|
]);
|
|
889
938
|
var runSubprocess = async (opts) => {
|
|
890
939
|
if (opts.signal?.aborted) {
|
|
891
|
-
opts.logger?.debug(
|
|
940
|
+
opts.logger?.debug(styleText7("dim", `Skipped '${opts.debugName}' subprocess command; signal already cancelled.`));
|
|
892
941
|
return ExitState.Cancelled;
|
|
893
942
|
}
|
|
894
943
|
const {
|
|
@@ -915,11 +964,11 @@ var runSubprocess = async (opts) => {
|
|
|
915
964
|
const [readStdout, readStderr] = [{
|
|
916
965
|
source: subprocess.stdout,
|
|
917
966
|
type: StdType.Out,
|
|
918
|
-
writer: getLineBufferedWriter(
|
|
967
|
+
writer: getLineBufferedWriter(styleText7("dim", `[O-${pid}]`.padEnd(minPrefixLen, " ")))
|
|
919
968
|
}, {
|
|
920
969
|
source: subprocess.stderr,
|
|
921
970
|
type: StdType.Err,
|
|
922
|
-
writer: getLineBufferedWriter(
|
|
971
|
+
writer: getLineBufferedWriter(styleText7("yellow", styleText7("dim", `[E-${pid}]`.padEnd(minPrefixLen, " "))), undefined, process.stderr.write.bind(process.stderr))
|
|
923
972
|
}].map(async ({
|
|
924
973
|
source,
|
|
925
974
|
type,
|
|
@@ -938,7 +987,7 @@ var runSubprocess = async (opts) => {
|
|
|
938
987
|
writer.flush();
|
|
939
988
|
});
|
|
940
989
|
const executedCommand = commands.join(" ");
|
|
941
|
-
opts.logger?.debug(
|
|
990
|
+
opts.logger?.debug(styleText7("dim", `Started '${opts.debugName}' subprocess command '${opts.shellCommand}' (${executedCommand}) with PID ${pid}.`));
|
|
942
991
|
const [
|
|
943
992
|
,
|
|
944
993
|
,
|
|
@@ -948,14 +997,14 @@ var runSubprocess = async (opts) => {
|
|
|
948
997
|
readStderr,
|
|
949
998
|
subprocess.exited.then((exitCode) => {
|
|
950
999
|
if (cancelCodes.has(exitCode)) {
|
|
951
|
-
opts.logger?.debug(
|
|
1000
|
+
opts.logger?.debug(styleText7("dim", `Cancelled '${opts.debugName}' subprocess command; PID ${pid} exited.`));
|
|
952
1001
|
return ExitState.Cancelled;
|
|
953
1002
|
}
|
|
954
1003
|
if (exitCode !== 0) {
|
|
955
|
-
opts.logger?.error(
|
|
1004
|
+
opts.logger?.error(styleText7("red", `'${opts.debugName}' command '${opts.shellCommand}' (${executedCommand}) with PID ${pid} failed with exit code ${exitCode.toString()}.`));
|
|
956
1005
|
return ExitState.Errored;
|
|
957
1006
|
}
|
|
958
|
-
opts.logger?.debug(
|
|
1007
|
+
opts.logger?.debug(styleText7("dim", `Completed '${opts.debugName}' subprocess command; PID ${pid} exited.`));
|
|
959
1008
|
return ExitState.Completed;
|
|
960
1009
|
})
|
|
961
1010
|
]);
|
|
@@ -1008,14 +1057,14 @@ import {
|
|
|
1008
1057
|
dirname as dirname6,
|
|
1009
1058
|
join as join3
|
|
1010
1059
|
} from "path";
|
|
1011
|
-
import { styleText as
|
|
1060
|
+
import { styleText as styleText9 } from "util";
|
|
1012
1061
|
import {
|
|
1013
1062
|
assertDefined as assertDefined12,
|
|
1014
1063
|
getDeferredPromise,
|
|
1015
1064
|
getStringMatcher,
|
|
1016
|
-
isDefined as
|
|
1065
|
+
isDefined as isDefined4,
|
|
1017
1066
|
normalisePath,
|
|
1018
|
-
runAsync as
|
|
1067
|
+
runAsync as runAsync3
|
|
1019
1068
|
} from "@package-pal/util";
|
|
1020
1069
|
var {Glob } = globalThis.Bun;
|
|
1021
1070
|
|
|
@@ -1054,7 +1103,20 @@ var DedupePathsBy = {
|
|
|
1054
1103
|
import { sep } from "path";
|
|
1055
1104
|
import { assertDefined as assertDefined9 } from "@package-pal/util";
|
|
1056
1105
|
var dedupeSharedPaths = (paths, by) => {
|
|
1057
|
-
const
|
|
1106
|
+
const mapped = paths.map((path) => {
|
|
1107
|
+
let count = 0;
|
|
1108
|
+
for (const char of path) {
|
|
1109
|
+
if (char === sep) {
|
|
1110
|
+
count++;
|
|
1111
|
+
}
|
|
1112
|
+
}
|
|
1113
|
+
return {
|
|
1114
|
+
path,
|
|
1115
|
+
count
|
|
1116
|
+
};
|
|
1117
|
+
});
|
|
1118
|
+
mapped.sort((a, b) => a.count - b.count);
|
|
1119
|
+
const sorted = mapped.map((item) => item.path);
|
|
1058
1120
|
const deduped = [];
|
|
1059
1121
|
if (by === DedupePathsBy.Parent) {
|
|
1060
1122
|
for (const path of sorted) {
|
|
@@ -1080,8 +1142,9 @@ var dedupeSharedPaths = (paths, by) => {
|
|
|
1080
1142
|
|
|
1081
1143
|
// packages/core/src/lib/watch/functions/filter-files-modified-since.ts
|
|
1082
1144
|
import { stat } from "fs/promises";
|
|
1145
|
+
import { runAsync as runAsync2 } from "@package-pal/util";
|
|
1083
1146
|
var filterFilesModifiedSince = async (paths, sinceMs) => {
|
|
1084
|
-
const
|
|
1147
|
+
const tasks = paths.map((path) => async () => {
|
|
1085
1148
|
try {
|
|
1086
1149
|
const s = await stat(path);
|
|
1087
1150
|
const isModifiedSince = s.mtimeMs >= sinceMs;
|
|
@@ -1089,22 +1152,23 @@ var filterFilesModifiedSince = async (paths, sinceMs) => {
|
|
|
1089
1152
|
} catch {
|
|
1090
1153
|
return path;
|
|
1091
1154
|
}
|
|
1092
|
-
})
|
|
1155
|
+
});
|
|
1156
|
+
const results = await runAsync2(tasks, 20);
|
|
1093
1157
|
return results.filter((path) => path !== null);
|
|
1094
1158
|
};
|
|
1095
1159
|
|
|
1096
1160
|
// packages/core/src/lib/watch/functions/get-change-logic.ts
|
|
1097
|
-
import { styleText as
|
|
1161
|
+
import { styleText as styleText8 } from "util";
|
|
1098
1162
|
import { assertDefined as assertDefined11 } from "@package-pal/util";
|
|
1099
1163
|
|
|
1100
1164
|
// packages/core/src/lib/graph/functions/generate-topological-ranking-range.ts
|
|
1101
|
-
import { isDefined as
|
|
1165
|
+
import { isDefined as isDefined3 } from "@package-pal/util";
|
|
1102
1166
|
var generateTopologicalRankingRange = (graph, ranking) => {
|
|
1103
1167
|
let min = Infinity;
|
|
1104
1168
|
let max = -Infinity;
|
|
1105
1169
|
for (const key of graph.keys()) {
|
|
1106
1170
|
const rank = ranking.get(key);
|
|
1107
|
-
if (!
|
|
1171
|
+
if (!isDefined3(rank)) {
|
|
1108
1172
|
continue;
|
|
1109
1173
|
}
|
|
1110
1174
|
if (rank < min) {
|
|
@@ -1195,8 +1259,8 @@ var getChangeLogic = (packageGraphs, packageChanges, lastProcessedSubgraph, conf
|
|
|
1195
1259
|
const changedPackages = Array.from(packageChanges.keys());
|
|
1196
1260
|
const changedFilePaths = Array.from(packageChanges.values()).flat();
|
|
1197
1261
|
if (packageChanges.size) {
|
|
1198
|
-
logger?.debug(
|
|
1199
|
-
logger?.debug(
|
|
1262
|
+
logger?.debug(styleText8("dim", `Changes detected in ${changedPackages.map((packageName) => `'${packageName}'`).join(", ")}.`));
|
|
1263
|
+
logger?.debug(styleText8("dim", `Changed file paths: ${changedFilePaths.map((filePath) => `'${filePath}'`).join(", ")}.`));
|
|
1200
1264
|
}
|
|
1201
1265
|
const packageOrder = generateTopologicalSortedGroups(packageGraphs.dependents, logger);
|
|
1202
1266
|
const packageProcessOrder = packageOrder.circular.length > 0 ? packageOrder.groups.toReversed().concat([packageOrder.circular]) : packageOrder.groups.toReversed();
|
|
@@ -1207,9 +1271,9 @@ var getChangeLogic = (packageGraphs, packageChanges, lastProcessedSubgraph, conf
|
|
|
1207
1271
|
const isSubgraphOfPrevious = !!lastProcessedSubgraph && isSubgraph(lastProcessedSubgraph, changedPackageSubgraph);
|
|
1208
1272
|
const isDisjointFromPrevious = !lastProcessedSubgraph || !isSubgraphOfPrevious && isDisjoint(lastProcessedSubgraph, changedPackageSubgraph);
|
|
1209
1273
|
const isRankedGreaterThanOrEqualToPrevious = !!lastProcessedSubgraph && !isSubgraphOfPrevious && isRankedGreaterThanOrEqual(lastProcessedSubgraph, changedPackageSubgraph, packageRankings);
|
|
1210
|
-
logger?.debug(
|
|
1211
|
-
logger?.debug(
|
|
1212
|
-
logger?.debug(
|
|
1274
|
+
logger?.debug(styleText8("dim", `Changes are subgraph of previous: ${isSubgraphOfPrevious.toString()}.`));
|
|
1275
|
+
logger?.debug(styleText8("dim", `Changes are disjoint from previous: ${isDisjointFromPrevious.toString()}.`));
|
|
1276
|
+
logger?.debug(styleText8("dim", `Changes are ranked greater than or equal to previous: ${isRankedGreaterThanOrEqualToPrevious.toString()}.`));
|
|
1213
1277
|
let action = ChangeAction.Restart;
|
|
1214
1278
|
if (!packageChanges.size) {
|
|
1215
1279
|
action = ChangeAction.Ignore;
|
|
@@ -1229,7 +1293,7 @@ var getChangeLogic = (packageGraphs, packageChanges, lastProcessedSubgraph, conf
|
|
|
1229
1293
|
});
|
|
1230
1294
|
}
|
|
1231
1295
|
}
|
|
1232
|
-
logger?.debug(
|
|
1296
|
+
logger?.debug(styleText8("dim", `Determined change action: ${action}.`));
|
|
1233
1297
|
return {
|
|
1234
1298
|
changedPackageProcessOrder,
|
|
1235
1299
|
changedPackageSubgraph,
|
|
@@ -1256,8 +1320,9 @@ var removeTrailing = [
|
|
|
1256
1320
|
var normaliseWatchedFilePath = (filePath) => {
|
|
1257
1321
|
const dir = dirname5(filePath);
|
|
1258
1322
|
let base = basename3(filePath);
|
|
1323
|
+
const baseLower = base.toLowerCase();
|
|
1259
1324
|
for (const trailing of removeTrailing) {
|
|
1260
|
-
if (
|
|
1325
|
+
if (baseLower.endsWith(trailing)) {
|
|
1261
1326
|
const sliceStart = base.startsWith(".") ? 1 : 0;
|
|
1262
1327
|
base = base.slice(sliceStart, -trailing.length);
|
|
1263
1328
|
break;
|
|
@@ -1278,7 +1343,7 @@ var onProcessPackage = async (packageGraphs, packageChanges, watchConfig, determ
|
|
|
1278
1343
|
const isSequential = watchConfig.subprocess.concurrency === 1;
|
|
1279
1344
|
const controller = determineAbortController(isRestart);
|
|
1280
1345
|
const onProcessFailure = () => {
|
|
1281
|
-
logger.debug(
|
|
1346
|
+
logger.debug(styleText9("dim", "Aborting controller: process failed."));
|
|
1282
1347
|
controller.abort();
|
|
1283
1348
|
state.lastProcessedSubgraph = undefined;
|
|
1284
1349
|
};
|
|
@@ -1287,11 +1352,11 @@ var onProcessPackage = async (packageGraphs, packageChanges, watchConfig, determ
|
|
|
1287
1352
|
return;
|
|
1288
1353
|
}
|
|
1289
1354
|
if (packageChanges.size) {
|
|
1290
|
-
logger.info(`${isRestart ? "Restarting processing" : "Initiating partial processing"} ${isSequential ? "sequentially" : `in parallel${
|
|
1355
|
+
logger.info(`${isRestart ? "Restarting processing" : "Initiating partial processing"} ${isSequential ? "sequentially" : `in parallel${isDefined4(watchConfig.subprocess.concurrency) ? ` with concurrency ${watchConfig.subprocess.concurrency.toString()}` : ""}`}.`);
|
|
1291
1356
|
state.lastProcessedSubgraph = state.lastProcessedSubgraph && !isRestart ? mergeGraphs(state.lastProcessedSubgraph, changedPackageSubgraph) : changedPackageSubgraph;
|
|
1292
1357
|
}
|
|
1293
1358
|
for (const group of changedPackageProcessOrder) {
|
|
1294
|
-
await
|
|
1359
|
+
await runAsync3(group.map((packageName) => async () => {
|
|
1295
1360
|
const packageNode = assertDefined12(packageGraphs.dependencies.get(packageName));
|
|
1296
1361
|
const changedPaths = packageChanges.get(packageName) ?? [];
|
|
1297
1362
|
const processPackageProps = {
|
|
@@ -1343,7 +1408,7 @@ var onProcessPackage = async (packageGraphs, packageChanges, watchConfig, determ
|
|
|
1343
1408
|
if (!errored) {
|
|
1344
1409
|
const matchedErrorText = erroredMatcher?.push(chunk).matched();
|
|
1345
1410
|
if (matchedErrorText) {
|
|
1346
|
-
logger.error(
|
|
1411
|
+
logger.error(styleText9("red", `'${packageName}' subprocess matched error text '${matchedErrorText}'.`));
|
|
1347
1412
|
errored = true;
|
|
1348
1413
|
Promise.resolve(watchConfig.hooks.onProcessPackageError(processPackageProps)).then((processPackageErrorCommand) => {
|
|
1349
1414
|
if (!processPackageErrorCommand) {
|
|
@@ -1421,7 +1486,7 @@ var onProcessPackage = async (packageGraphs, packageChanges, watchConfig, determ
|
|
|
1421
1486
|
};
|
|
1422
1487
|
var watchPackageChanges = (packageData, packageGraphs, watchConfig, rootDir, logger) => {
|
|
1423
1488
|
const dedupedRootPackageData = dedupeSharedPaths(packageData.map((packageData2) => packageData2.path), DedupePathsBy.Parent).map((packagePath) => assertDefined12(packageData.find((data) => data.path === packagePath)));
|
|
1424
|
-
logger.debug(
|
|
1489
|
+
logger.debug(styleText9("dim", `Starting ${dedupedRootPackageData.length.toString()} watchers for ${packageData.length.toString()} packages.`));
|
|
1425
1490
|
let closed = false;
|
|
1426
1491
|
const state = { lastProcessedSubgraph: undefined };
|
|
1427
1492
|
let debounceTimeout;
|
|
@@ -1432,7 +1497,7 @@ var watchPackageChanges = (packageData, packageGraphs, watchConfig, rootDir, log
|
|
|
1432
1497
|
const useController = (reset) => {
|
|
1433
1498
|
if (controller && (reset || controller.signal.aborted)) {
|
|
1434
1499
|
if (reset) {
|
|
1435
|
-
logger.debug(
|
|
1500
|
+
logger.debug(styleText9("dim", "Aborting controller: reset for new packages."));
|
|
1436
1501
|
controller.abort();
|
|
1437
1502
|
}
|
|
1438
1503
|
controller = undefined;
|
|
@@ -1446,16 +1511,16 @@ var watchPackageChanges = (packageData, packageGraphs, watchConfig, rootDir, log
|
|
|
1446
1511
|
filePath,
|
|
1447
1512
|
isInitial = false
|
|
1448
1513
|
}) => {
|
|
1449
|
-
if (!
|
|
1514
|
+
if (!isDefined4(startedDebounceMs)) {
|
|
1450
1515
|
startedDebounceMs = Date.now();
|
|
1451
1516
|
}
|
|
1452
1517
|
if (packageName && watchPath && filePath) {
|
|
1453
1518
|
const changedPath = normalisePath(join3(watchPath, normaliseWatchedFilePath(filePath)));
|
|
1454
1519
|
if (ignoreGlobs?.some((glob) => glob.match(changedPath))) {
|
|
1455
|
-
logger.debug(
|
|
1520
|
+
logger.debug(styleText9("dim", `Ignoring change '${changedPath}' (matched ignore pattern).`));
|
|
1456
1521
|
return;
|
|
1457
1522
|
}
|
|
1458
|
-
logger.debug(
|
|
1523
|
+
logger.debug(styleText9("dim", `Tracked change '${changedPath}'.`));
|
|
1459
1524
|
const existingPaths = changedPackagePaths.get(packageName);
|
|
1460
1525
|
if (existingPaths) {
|
|
1461
1526
|
existingPaths.add(changedPath);
|
|
@@ -1507,12 +1572,12 @@ var watchPackageChanges = (packageData, packageGraphs, watchConfig, rootDir, log
|
|
|
1507
1572
|
watchers.forEach((watcher) => {
|
|
1508
1573
|
watcher.close();
|
|
1509
1574
|
});
|
|
1510
|
-
logger.debug(
|
|
1575
|
+
logger.debug(styleText9("dim", "Aborting controller: closing watchers."));
|
|
1511
1576
|
controller?.abort();
|
|
1512
1577
|
closed = true;
|
|
1513
1578
|
};
|
|
1514
1579
|
process.on("SIGINT", () => {
|
|
1515
|
-
logger.debug(
|
|
1580
|
+
logger.debug(styleText9("dim", "Received SIGINT: closing watchers."));
|
|
1516
1581
|
closeWatchers();
|
|
1517
1582
|
process.exit(0);
|
|
1518
1583
|
});
|
|
@@ -1530,10 +1595,10 @@ var watchPackageChanges = (packageData, packageGraphs, watchConfig, rootDir, log
|
|
|
1530
1595
|
});
|
|
1531
1596
|
return { close: () => {
|
|
1532
1597
|
if (closed) {
|
|
1533
|
-
logger.debug(
|
|
1598
|
+
logger.debug(styleText9("dim", "Watchers already closed."));
|
|
1534
1599
|
return;
|
|
1535
1600
|
}
|
|
1536
|
-
logger.debug(
|
|
1601
|
+
logger.debug(styleText9("dim", "Closing watchers."));
|
|
1537
1602
|
closeWatchers();
|
|
1538
1603
|
} };
|
|
1539
1604
|
};
|
|
@@ -1560,18 +1625,9 @@ var getPackageCircularDependencyPaths = (options) => {
|
|
|
1560
1625
|
checkBun();
|
|
1561
1626
|
return generatePackageCircularDependencyPaths(options.packageGraphs, options.packageOrder, options.config.logger);
|
|
1562
1627
|
};
|
|
1563
|
-
var
|
|
1628
|
+
var bumpPackageVersion2 = (options) => {
|
|
1564
1629
|
checkBun();
|
|
1565
|
-
|
|
1566
|
-
const preId = isDefined4(options.preId) ? options.preId : options.config.version.preId;
|
|
1567
|
-
return options.adapter.updateVersion({
|
|
1568
|
-
packageName: options.packageName,
|
|
1569
|
-
type: options.type,
|
|
1570
|
-
packageGraphs: options.packageGraphs,
|
|
1571
|
-
preId,
|
|
1572
|
-
exact,
|
|
1573
|
-
logger: options.config.logger
|
|
1574
|
-
});
|
|
1630
|
+
return bumpPackageVersion(options);
|
|
1575
1631
|
};
|
|
1576
1632
|
var watchPackages = (options) => {
|
|
1577
1633
|
checkBun();
|
|
@@ -1591,10 +1647,10 @@ export {
|
|
|
1591
1647
|
getPackageCircularDependencyPaths,
|
|
1592
1648
|
forEachPackage,
|
|
1593
1649
|
dfsTraverseGraph2 as dfsTraverseGraph,
|
|
1594
|
-
bumpPackageVersion,
|
|
1650
|
+
bumpPackageVersion2 as bumpPackageVersion,
|
|
1595
1651
|
PackageAdapter,
|
|
1596
1652
|
BumpVersionType
|
|
1597
1653
|
};
|
|
1598
1654
|
|
|
1599
|
-
//# debugId=
|
|
1655
|
+
//# debugId=C18A12C7802A030C64756E2164756E21
|
|
1600
1656
|
//# sourceMappingURL=index.js.map
|
package/index.js.map
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["..\\..\\packages\\core\\src\\lib\\types\\bump-version-type.ts", "..\\..\\packages\\core\\src\\lib\\package\\types\\package-adapter.ts", "..\\..\\packages\\core\\src\\lib\\
|
|
3
|
+
"sources": ["..\\..\\packages\\core\\src\\lib\\types\\bump-version-type.ts", "..\\..\\packages\\core\\src\\lib\\package\\types\\package-adapter.ts", "..\\..\\packages\\core\\src\\lib\\configuration\\functions\\check-bun.ts", "..\\..\\packages\\core\\src\\lib\\configuration\\functions\\load-config.ts", "..\\..\\packages\\core\\src\\lib\\configuration\\functions\\get-default-logger.ts", "..\\..\\packages\\core\\src\\lib\\configuration\\schemas\\config.ts", "..\\..\\packages\\core\\src\\lib\\configuration\\functions\\z-loose-function.ts", "..\\..\\packages\\core\\src\\lib\\configuration\\functions\\z-loose-object-without-index-signature.ts", "..\\..\\packages\\core\\src\\lib\\configuration\\functions\\validate-config-path.ts", "..\\..\\packages\\core\\src\\lib\\configuration\\types\\supported-config-type.ts", "..\\..\\packages\\core\\src\\lib\\configuration\\functions\\parse-config.ts", "..\\..\\packages\\core\\src\\lib\\configuration\\functions\\search-config-path.ts", "..\\..\\packages\\core\\src\\lib\\configuration\\functions\\is-root-dir.ts", "..\\..\\packages\\core\\src\\lib\\graph\\functions\\generate-graphs.ts", "..\\..\\packages\\core\\src\\lib\\graph\\functions\\generate-package-circular-dependency-paths.ts", "..\\..\\packages\\core\\src\\lib\\graph\\functions\\dfs-traverse-graph-paths.ts", "..\\..\\packages\\core\\src\\lib\\graph\\functions\\extract-subgraph.ts", "..\\..\\packages\\core\\src\\lib\\graph\\functions\\dfs-traverse-graph.ts", "..\\..\\packages\\core\\src\\lib\\graph\\functions\\generate-topological-sorted-groups.ts", "..\\..\\packages\\core\\src\\lib\\package\\functions\\bump-package-version.ts", "..\\..\\packages\\core\\src\\lib\\package\\functions\\load-packages.ts", "..\\..\\packages\\core\\src\\lib\\package\\functions\\run-for-each-package.ts", "..\\..\\packages\\core\\src\\lib\\process\\functions\\run-subprocess.ts", "..\\..\\packages\\core\\src\\lib\\process\\types\\exit-state.ts", "..\\..\\packages\\core\\src\\lib\\process\\types\\std-type.ts", "..\\..\\packages\\core\\src\\lib\\process\\functions\\get-commands-for-shell.ts", "..\\..\\packages\\core\\src\\lib\\types\\shell.ts", "..\\..\\packages\\core\\src\\lib\\process\\functions\\get-shell.ts", "..\\..\\packages\\core\\src\\lib\\process\\functions\\parse-ps-shell-flags.ts", "..\\..\\packages\\core\\src\\lib\\process\\functions\\strip-clixml.ts", "..\\..\\packages\\core\\src\\lib\\process\\functions\\get-line-buffered-writer.ts", "..\\..\\packages\\core\\src\\lib\\process\\functions\\read-stream.ts", "..\\..\\packages\\core\\src\\lib\\watch\\functions\\watch-package-changes.ts", "..\\..\\packages\\core\\src\\lib\\graph\\functions\\merge-graphs.ts", "..\\..\\packages\\core\\src\\lib\\watch\\types\\change-action.ts", "..\\..\\packages\\core\\src\\lib\\watch\\types\\dedupe-paths-by.ts", "..\\..\\packages\\core\\src\\lib\\watch\\functions\\dedupe-shared-paths.ts", "..\\..\\packages\\core\\src\\lib\\watch\\functions\\filter-files-modified-since.ts", "..\\..\\packages\\core\\src\\lib\\watch\\functions\\get-change-logic.ts", "..\\..\\packages\\core\\src\\lib\\graph\\functions\\generate-topological-ranking-range.ts", "..\\..\\packages\\core\\src\\lib\\graph\\functions\\generate-topological-ranking.ts", "..\\..\\packages\\core\\src\\lib\\graph\\functions\\is-disjoint.ts", "..\\..\\packages\\core\\src\\lib\\graph\\functions\\is-ranked-greater-than-or-equal.ts", "..\\..\\packages\\core\\src\\lib\\graph\\functions\\is-subgraph.ts", "..\\..\\packages\\core\\src\\lib\\watch\\functions\\normalise-watched-file-path.ts", "..\\..\\packages\\core\\src\\lib\\api.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"import type { ValueOf } from '@package-pal/util';\r\n\r\nexport const BumpVersionType = {\r\n\tMajor: 'major',\r\n\tMinor: 'minor',\r\n\tPatch: 'patch',\r\n\tPremajor: 'premajor',\r\n\tPreminor: 'preminor',\r\n\tPrepatch: 'prepatch',\r\n\tPrerelease: 'prerelease',\r\n} as const;\r\n\r\nexport type BumpVersionType = ValueOf<typeof BumpVersionType>;\r\n",
|
|
6
|
-
"import type { Logger } from '../../configuration/types/logger.ts';\r\nimport type {
|
|
7
|
-
"import { isDefined } from '@package-pal/util';\r\nimport { checkBun } from './configuration/functions/check-bun.ts';\r\nimport { loadConfig } from './configuration/functions/load-config.ts';\r\nimport type { ActivatedConfigAndRootDir } from './configuration/types/activated-config.ts';\r\nimport { generateGraphs } from './graph/functions/generate-graphs.ts';\r\nimport { generatePackageCircularDependencyPaths } from './graph/functions/generate-package-circular-dependency-paths.ts';\r\nimport { generateTopologicalSortedGroups } from './graph/functions/generate-topological-sorted-groups.ts';\r\nimport type { PackageGraphs } from './graph/types/package-graphs.ts';\r\nimport type { PackageOrder } from './graph/types/package-order.ts';\r\nimport { loadPackages } from './package/functions/load-packages.ts';\r\nimport { runForEachPackage } from './package/functions/run-for-each-package.ts';\r\nimport type { PackageData } from './package/types/package-data.ts';\r\nimport type { BumpPackageVersionOptions } from './types/bump-package-version-options.ts';\r\nimport type { ForEachPackageOptions } from './types/for-each-package-options.ts';\r\nimport type { GetConfigOptions } from './types/get-config-options.ts';\r\nimport type { GetPackageCircularDependencyPathsOptions } from './types/get-package-circular-dependency-paths-options.ts';\r\nimport type { GetPackageDataOptions } from './types/get-package-data-options.ts';\r\nimport type { GetPackageGraphOptions } from './types/get-package-graph-options.ts';\r\nimport type { GetPackageOrderOptions } from './types/get-package-order-options.ts';\r\nimport type { WatchPackagesOptions } from './types/watch-packages-options.ts';\r\nimport { watchPackageChanges } from './watch/functions/watch-package-changes.ts';\r\n\r\n/**\r\n * Searches upward from the current directory for a config file until one is found or the root is reached.\r\n * If found, the config is loaded and merged with default values.\r\n */\r\nexport const readPackagePalConfig = (options?: GetConfigOptions): Promise<ActivatedConfigAndRootDir> => {\r\n\tcheckBun();\r\n\treturn loadConfig(options?.overrideConfigPath);\r\n};\r\n\r\n/**\r\n * Finds and reads all package files that match the given glob patterns.\r\n */\r\nexport const readPackageData = async (options: GetPackageDataOptions): Promise<PackageData[]> => {\r\n\tcheckBun();\r\n\tconst packagePatterns = Array.isArray(options.config.packages) ? options.config.packages : [options.config.packages];\r\n\treturn loadPackages(\r\n\t\toptions.rootDir, packagePatterns, options.adapter, options.config.logger,\r\n\t);\r\n};\r\n\r\n/**\r\n * Computes dependency graphs for all packages.\r\n */\r\nexport const getPackageGraphs = (options: GetPackageGraphOptions): PackageGraphs => {\r\n\tcheckBun();\r\n\treturn generateGraphs(options.packageData, options.config.logger);\r\n};\r\n\r\n/**\r\n * Computes topologically sorted groups of packages.\r\n * Actions must be performed on each group sequentially,\r\n * but packages within the same group can be processed in parallel.\r\n */\r\nexport const getPackageOrder = (options: GetPackageOrderOptions): PackageOrder => {\r\n\tcheckBun();\r\n\treturn generateTopologicalSortedGroups(options.packageGraphs.dependencies, options.config.logger);\r\n};\r\n\r\n/**\r\n * Detects circular dependencies between packages and computes paths representing each cycle.\r\n */\r\nexport const getPackageCircularDependencyPaths = (options: GetPackageCircularDependencyPathsOptions): string[][] => {\r\n\tcheckBun();\r\n\treturn generatePackageCircularDependencyPaths(\r\n\t\toptions.packageGraphs,\r\n\t\toptions.packageOrder,\r\n\t\toptions.config.logger,\r\n\t);\r\n};\r\n\r\n/**\r\n * Bumps the source package version and updates any dependents if the new version\r\n * is no longer semver-compatible, preserving original version prefixes (e.g., `^`, `~`).\r\n * Does not publish.\r\n */\r\nexport const bumpPackageVersion = (options: BumpPackageVersionOptions): Promise<void> => {\r\n\tcheckBun();\r\n\tconst exact = isDefined(options.exact) ? options.exact : options.config.version.exact;\r\n\tconst preId = isDefined(options.preId) ? options.preId : options.config.version.preId;\r\n\treturn options.adapter.updateVersion({\r\n\t\tpackageName: options.packageName,\r\n\t\ttype: options.type,\r\n\t\tpackageGraphs: options.packageGraphs,\r\n\t\tpreId,\r\n\t\texact,\r\n\t\tlogger: options.config.logger,\r\n\t});\r\n};\r\n\r\n/**\r\n * Watches package source file changes, and triggers respective hooks defined in config.\r\n */\r\nexport const watchPackages = (options: WatchPackagesOptions): void => {\r\n\tcheckBun();\r\n\twatchPackageChanges(\r\n\t\toptions.packageData,\r\n\t\toptions.packageGraphs,\r\n\t\toptions.config.watch,\r\n\t\toptions.rootDir,\r\n\t\toptions.config.logger,\r\n\t);\r\n};\r\n\r\n/**\r\n * Run a command for each package.\r\n */\r\nexport const forEachPackage = (options: ForEachPackageOptions): Promise<void> => {\r\n\tcheckBun();\r\n\treturn runForEachPackage(\r\n\t\toptions.packageGraphs,\r\n\t\toptions.packageOrder,\r\n\t\toptions.getCommand,\r\n\t\toptions.config.logger,\r\n\t\toptions.topological,\r\n\t\toptions.concurrency,\r\n\t);\r\n};\r\n",
|
|
6
|
+
"import type { Logger } from '../../configuration/types/logger.ts';\r\nimport type { PackageData } from './package-data.ts';\r\n\r\nexport abstract class PackageAdapter {\r\n\t/**\r\n\t * Unique identifier for the adapter (e.g., 'package-json', 'msbuild').\r\n\t */\r\n\tabstract readonly name: string;\r\n\r\n\t/**\r\n\t * Glob pattern matching project manifests (e.g., 'package.json', '*.*proj').\r\n\t */\r\n\tabstract readonly manifestPattern: string;\r\n\r\n\t/**\r\n\t * Default package glob patterns to use if none are specified.\r\n\t */\r\n\tabstract readonly defaultPatterns: string[];\r\n\r\n\t/**\r\n\t * Returns true if this adapter detects that it should be used for the current workspace/CWD.\r\n\t */\r\n\tabstract detect(cwd: string): Promise<boolean>;\r\n\r\n\t/**\r\n\t * Scans and parses all package manifests within the specified patterns.\r\n\t * Each adapter chooses the most optimized way to scan and yield packages.\r\n\t */\r\n\tabstract scanPackages(\r\n\t\tpatterns: string[],\r\n\t\tlogger: Logger,\r\n\t\tcwd?: string,\r\n\t): AsyncIterable<PackageData>;\r\n\r\n\t/**\r\n\t * Bumps a package's own version in its manifest.\r\n\t */\r\n\tabstract bumpOwnVersion(\r\n\t\tpackageData: PackageData,\r\n\t\tnewVersion: string,\r\n\t\tlogger: Logger,\r\n\t): Promise<void>;\r\n\r\n\t/**\r\n\t * Updates a dependent package's manifest to point to the new dependency version.\r\n\t * Returns true if a modification was made.\r\n\t */\r\n\tabstract bumpDependencyVersion(\r\n\t\tdependentPackageData: PackageData,\r\n\t\ttargetDependencyName: string,\r\n\t\tnewVersion: string,\r\n\t\texact: boolean,\r\n\t\tlogger: Logger,\r\n\t): Promise<boolean>;\r\n}\r\n",
|
|
8
7
|
"export const checkBun = () => {\r\n\t// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\r\n\tif (!Bun) {\r\n\t\tthrow new Error('This package must be run using the Bun runtime (see https://bun.com/).');\r\n\t}\r\n};\r\n",
|
|
9
8
|
"import { dirname } from 'path';\r\nimport { cwd } from 'process';\r\nimport { styleText } from 'util';\r\nimport {\r\n\tdeepMergeDefined, formatSimpleLogObject, noOp,\r\n} from '@package-pal/util';\r\nimport type {\r\n\tActivatedConfig, ActivatedConfigAndRootDir,\r\n} from '../types/activated-config.ts';\r\nimport type { Logger } from '../types/logger.ts';\r\nimport { getDefaultLogger } from './get-default-logger.ts';\r\nimport { parseConfig } from './parse-config.ts';\r\nimport { searchConfigPath } from './search-config-path.ts';\r\n\r\nconst defaultConfig: ActivatedConfig = {\r\n\tadapter: 'auto',\r\n\tpackages: 'packages/*',\r\n\tversion: {\r\n\t\tpreId: '',\r\n\t\texact: false,\r\n\t},\r\n\twatch: {\r\n\t\tdebounceMs: 500,\r\n\t\tignore: '',\r\n\t\thooks: {\r\n\t\t\tonInit: noOp,\r\n\t\t\tonBeforeProcessPackage: noOp,\r\n\t\t\tonProcessPackage: noOp,\r\n\t\t\tonProcessPackageError: noOp,\r\n\t\t\tonAfterProcessPackage: noOp,\r\n\t\t\tonBeforePackagesReady: noOp,\r\n\t\t\tonPackagesReady: noOp,\r\n\t\t\tonAfterPackagesReady: noOp,\r\n\t\t},\r\n\t\tsubprocess: {\r\n\t\t\tpartialProcessing: false,\r\n\t\t\tconcurrency: null,\r\n\t\t\tmatchLongRunningOutputAsReady: null,\r\n\t\t\tmatchLongRunningOutputAsErrored: null,\r\n\t\t},\r\n\t},\r\n\tlogger: getDefaultLogger('info'),\r\n\tlogLevel: 'info',\r\n};\r\n\r\nexport const loadConfig = async (overrideConfigPath: string | undefined): Promise<ActivatedConfigAndRootDir> => {\r\n\tconst path = await searchConfigPath(overrideConfigPath);\r\n\r\n\tif (!path) {\r\n\t\tdefaultConfig.logger.debug('No config file found. Defaults will be applied.');\r\n\t\treturn {\r\n\t\t\tconfig: defaultConfig,\r\n\t\t\trootDir: cwd(),\r\n\t\t};\r\n\t}\r\n\r\n\tconst parsedConfig = await parseConfig(path);\r\n\tconst parsedLogger = parsedConfig['logger' as keyof typeof parsedConfig] as Logger | undefined;\r\n\tconst logger = parsedLogger ?? (!parsedConfig.logLevel || parsedConfig.logLevel === defaultConfig.logLevel ? defaultConfig.logger : getDefaultLogger(parsedConfig.logLevel));\r\n\tlogger.debug(`Successfully loaded config file '${path}'.`);\r\n\tlogger.debug(styleText('dim', styleText('bgGray', 'User config:')), `\\n${styleText('dim', formatSimpleLogObject(parsedConfig))}`);\r\n\r\n\tlogger.debug(styleText('dim', styleText('bgGray', 'Default config:')), `\\n${styleText('dim', formatSimpleLogObject(defaultConfig))}`);\r\n\tconst activatedConfig = deepMergeDefined(defaultConfig, parsedConfig);\r\n\t// @ts-expect-error Override readonly.\r\n\tactivatedConfig.logger = logger;\r\n\tlogger.debug(styleText('dim', styleText('bgGray', 'Activated config:')), `\\n${styleText('dim', formatSimpleLogObject(activatedConfig))}`);\r\n\r\n\treturn {\r\n\t\tconfig: activatedConfig,\r\n\t\trootDir: dirname(path),\r\n\t};\r\n};\r\n",
|
|
10
9
|
"import {\r\n\tassertDefined, noOp,\r\n} from '@package-pal/util';\r\nimport type { SchemaLogLevel } from '../types/config.ts';\r\nimport type { Logger } from '../types/logger.ts';\r\n\r\nconst levelOrder: Record<SchemaLogLevel, number> = {\r\n\tdebug: 0,\r\n\tinfo: 1,\r\n\twarn: 2,\r\n\terror: 3,\r\n\tsilent: Infinity,\r\n};\r\n\r\nexport const getDefaultLogger = (logLevel: SchemaLogLevel): Logger => {\r\n\tconst level = assertDefined(levelOrder[logLevel]);\r\n\r\n\treturn {\r\n\t\tdebug: level <= levelOrder.debug ? console.debug : noOp,\r\n\t\tinfo: level <= levelOrder.info ? console.info : noOp,\r\n\t\twarn: level <= levelOrder.warn ? console.warn : noOp,\r\n\t\terror: level <= levelOrder.error ? console.error : noOp,\r\n\t};\r\n};\r\n",
|
|
@@ -16,13 +15,14 @@
|
|
|
16
15
|
"import { Config } from '../schemas/config.ts';\r\nimport type { SchemaConfig } from '../types/config.ts';\r\nimport { validateConfigPath } from './validate-config-path.ts';\r\n\r\nexport const parseConfig = async (path: string) => {\r\n\tconst result = validateConfigPath(path);\r\n\r\n\tif (!result.valid) {\r\n\t\tthrow new Error(result.errorMessage);\r\n\t}\r\n\r\n\tconst module = await import(path) as { default?: SchemaConfig };\r\n\tconst base = (module.default ?? module) as SchemaConfig;\r\n\treturn Config.parse(base);\r\n};\r\n",
|
|
17
16
|
"import {\r\n\tisAbsolute, join, dirname,\r\n} from 'path';\r\nimport { isDefined } from '@package-pal/util';\r\nimport { isRootDir } from './is-root-dir.ts';\r\nimport { CONFIG_SUPPORTED_NAMES } from './validate-config-path.ts';\r\n\r\nconst dirDistLimit = 25;\r\n\r\nconst checkForConfigInDir = async (dir: string) => {\r\n\tconst checks = await Promise.all(CONFIG_SUPPORTED_NAMES.map(name => Bun.file(join(dir, name)).exists()\r\n\t\t.then(exists => ({\r\n\t\t\tname,\r\n\t\t\texists,\r\n\t\t}))));\r\n\tconst found = checks.find(c => c.exists);\r\n\treturn found ? join(dir, found.name) : undefined;\r\n};\r\n\r\nexport const searchConfigPath = async (pathOverride?: string) => {\r\n\tlet activeDir = process.cwd();\r\n\r\n\tif (isDefined(pathOverride)) {\r\n\t\tif (isAbsolute(pathOverride)) {\r\n\t\t\treturn pathOverride;\r\n\t\t}\r\n\r\n\t\treturn join(activeDir, pathOverride);\r\n\t}\r\n\r\n\tlet trackDist = 0;\r\n\twhile (!isRootDir(activeDir)) {\r\n\t\tif (trackDist > dirDistLimit) {\r\n\t\t\tthrow new Error(`Maximum config search directory distance reached (${dirDistLimit.toString()}).`);\r\n\t\t}\r\n\r\n\t\tconst configPath = await checkForConfigInDir(activeDir);\r\n\r\n\t\tif (configPath) {\r\n\t\t\treturn configPath;\r\n\t\t}\r\n\r\n\t\ttrackDist++;\r\n\t\tactiveDir = dirname(activeDir);\r\n\t}\r\n\r\n\treturn checkForConfigInDir(activeDir);\r\n};\r\n",
|
|
18
17
|
"import { dirname } from 'path';\r\n\r\nexport const isRootDir = (path: string) => {\r\n\treturn dirname(path) === path;\r\n};\r\n",
|
|
19
|
-
"import { styleText } from 'util';\r\nimport { assertDefined } from '@package-pal/util';\r\nimport type { Logger } from '../../configuration/types/logger.ts';\r\nimport type { PackageData } from '../../package/types/package-data.ts';\r\nimport type { PackageGraph } from '../types/package-graph.ts';\r\n\r\ninterface TrackPackageOptions {\r\n\ttrackedDependencies: Set<string>;\r\n\tpackageNames: Set<string>;\r\n\tpackageData: PackageData;\r\n}\r\n\r\nconst trackPackageEntryDependencies = ({\r\n\ttrackedDependencies,\r\n\tpackageNames,\r\n\tpackageData,\r\n}: TrackPackageOptions) => {\r\n\tfor (const trackPackageName of packageData.localDependencies ?? []) {\r\n\t\tif (!packageNames.has(trackPackageName)) {\r\n\t\t\tcontinue;\r\n\t\t}\r\n\r\n\t\ttrackedDependencies.add(trackPackageName);\r\n\t}\r\n};\r\n\r\nconst generateReverseGraph = (packages: PackageData[], packageGraph: PackageGraph) => {\r\n\tconst reversePackageGraph: PackageGraph = new Map(
|
|
18
|
+
"import { styleText } from 'util';\r\nimport { assertDefined } from '@package-pal/util';\r\nimport type { Logger } from '../../configuration/types/logger.ts';\r\nimport type { PackageData } from '../../package/types/package-data.ts';\r\nimport type { PackageGraph } from '../types/package-graph.ts';\r\n\r\ninterface TrackPackageOptions {\r\n\ttrackedDependencies: Set<string>;\r\n\tpackageNames: Set<string>;\r\n\tpackageData: PackageData;\r\n}\r\n\r\nconst trackPackageEntryDependencies = ({\r\n\ttrackedDependencies,\r\n\tpackageNames,\r\n\tpackageData,\r\n}: TrackPackageOptions) => {\r\n\tfor (const trackPackageName of packageData.localDependencies ?? []) {\r\n\t\tif (!packageNames.has(trackPackageName)) {\r\n\t\t\tcontinue;\r\n\t\t}\r\n\r\n\t\ttrackedDependencies.add(trackPackageName);\r\n\t}\r\n};\r\n\r\nconst generateReverseGraph = (packages: PackageData[], packageGraph: PackageGraph) => {\r\n\tconst reversePackageGraph: PackageGraph = new Map();\r\n\tfor (const packageData of packages) {\r\n\t\treversePackageGraph.set(packageData.name, {\r\n\t\t\tpackageData: packageData,\r\n\t\t\tpointsToPackages: new Set<string>(),\r\n\t\t});\r\n\t}\r\n\r\n\tfor (const packageData of packages) {\r\n\t\tconst packageNode = assertDefined(packageGraph.get(packageData.name));\r\n\r\n\t\tfor (const dependency of packageNode.pointsToPackages) {\r\n\t\t\tconst reverseNode = assertDefined(reversePackageGraph.get(dependency));\r\n\t\t\treverseNode.pointsToPackages.add(packageData.name);\r\n\t\t}\r\n\t}\r\n\r\n\treturn reversePackageGraph;\r\n};\r\n\r\nexport const generateGraphs = (packages: PackageData[], logger: Logger) => {\r\n\tlogger.debug(styleText('dim', `Generating package graphs for ${packages.length.toString()} packages...`));\r\n\tconst packageNames = new Set(packages.map(packageData => packageData.name));\r\n\tconst packageGraph: PackageGraph = new Map();\r\n\r\n\tfor (const packageData of packages) {\r\n\t\tconst trackedDependencies = new Set<string>();\r\n\r\n\t\ttrackPackageEntryDependencies({\r\n\t\t\ttrackedDependencies,\r\n\t\t\tpackageNames,\r\n\t\t\tpackageData,\r\n\t\t});\r\n\r\n\t\tpackageGraph.set(packageData.name, {\r\n\t\t\tpackageData: packageData,\r\n\t\t\tpointsToPackages: trackedDependencies,\r\n\t\t});\r\n\t}\r\n\r\n\tconst reversePackageGraph = generateReverseGraph(packages, packageGraph);\r\n\r\n\treturn {\r\n\t\tdependencies: packageGraph,\r\n\t\tdependents: reversePackageGraph,\r\n\t};\r\n};\r\n",
|
|
20
19
|
"import { styleText } from 'util';\r\nimport { assertDefined } from '@package-pal/util';\r\nimport type { Logger } from '../../configuration/types/logger.ts';\r\nimport type { PackageGraph } from '../types/package-graph.ts';\r\nimport type { PackageGraphs } from '../types/package-graphs.ts';\r\nimport type { PackageOrder } from '../types/package-order.ts';\r\nimport { dfsTraverseGraphPaths } from './dfs-traverse-graph-paths.ts';\r\nimport { extractSubgraph } from './extract-subgraph.ts';\r\n\r\nconst findStronglyConnectedComponents = (graph: PackageGraph) => {\r\n\tlet index = 0;\r\n\tconst indices = new Map<string, number>();\r\n\tconst lowlinks = new Map<string, number>();\r\n\tconst stack: string[] = [];\r\n\tconst onStack = new Set<string>();\r\n\tconst sccs: string[][] = [];\r\n\r\n\tconst strongConnect = (node: string) => {\r\n\t\tindices.set(node, index);\r\n\t\tlowlinks.set(node, index);\r\n\t\tindex++;\r\n\t\tstack.push(node);\r\n\t\tonStack.add(node);\r\n\r\n\t\tconst neighbors = graph.get(node)?.pointsToPackages ?? new Set();\r\n\t\tfor (const neighbor of neighbors) {\r\n\t\t\tif (!indices.has(neighbor)) {\r\n\t\t\t\tstrongConnect(neighbor);\r\n\t\t\t\tlowlinks.set(node, Math.min(assertDefined(lowlinks.get(node)), assertDefined(lowlinks.get(neighbor))));\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tif (onStack.has(neighbor)) {\r\n\t\t\t\tlowlinks.set(node, Math.min(assertDefined(lowlinks.get(node)), assertDefined(indices.get(neighbor))));\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (lowlinks.get(node) === indices.get(node)) {\r\n\t\t\tconst scc: string[] = [];\r\n\t\t\tlet stackNode = assertDefined(stack.pop());\r\n\t\t\tonStack.delete(stackNode);\r\n\t\t\tscc.push(stackNode);\r\n\r\n\t\t\twhile (stackNode !== node) {\r\n\t\t\t\tstackNode = assertDefined(stack.pop());\r\n\t\t\t\tonStack.delete(stackNode);\r\n\t\t\t\tscc.push(stackNode);\r\n\t\t\t}\r\n\r\n\t\t\tconst firstNode = scc[0];\r\n\t\t\tconst isSelfCycle = !!firstNode && (graph.get(firstNode)?.pointsToPackages.has(firstNode) ?? false);\r\n\r\n\t\t\tif (scc.length > 1 || isSelfCycle) {\r\n\t\t\t\tsccs.push(scc);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\tfor (const node of graph.keys()) {\r\n\t\tif (!indices.has(node)) {\r\n\t\t\tstrongConnect(node);\r\n\t\t}\r\n\t}\r\n\r\n\treturn sccs;\r\n};\r\n\r\nconst findSampleCyclePath = (scc: string[], graph: PackageGraph) => {\r\n\tconst sccSet = new Set(scc);\r\n\r\n\treturn assertDefined(dfsTraverseGraphPaths(graph, scc).find((path) => {\r\n\t\tconst lastPackage = path[path.length - 1];\r\n\t\treturn path.length >= 2 && lastPackage && sccSet.has(lastPackage);\r\n\t}));\r\n};\r\n\r\nexport const generatePackageCircularDependencyPaths = (\r\n\t{ dependents }: PackageGraphs,\r\n\tpackageSorted: PackageOrder,\r\n\tlogger: Logger,\r\n) => {\r\n\tlogger.debug(styleText('dim', 'Generating circular dependency paths...'));\r\n\tconst subgraph = extractSubgraph(dependents, packageSorted.circular);\r\n\tconst scss = findStronglyConnectedComponents(subgraph);\r\n\tconst sampleCycles = scss.map(scc => findSampleCyclePath(scc, subgraph).reverse());\r\n\r\n\tif (sampleCycles.length) {\r\n\t\tconst sampleCycleContents = sampleCycles\r\n\t\t\t.map((cycle, index) => {\r\n\t\t\t\treturn `\\t${(index + 1).toString()}. ` + cycle.map(name => `'${name}'`).join(' → ');\r\n\t\t\t})\r\n\t\t\t.join('\\n');\r\n\t\tlogger.warn(styleText('yellow', `${sampleCycles.length.toString()} cyclic paths found:\\n${sampleCycleContents}`));\r\n\t} else {\r\n\t\tlogger.debug(styleText('dim', `No cyclic paths found.`));\r\n\t}\r\n\r\n\treturn sampleCycles;\r\n};\r\n",
|
|
21
|
-
"import { assertDefined } from '@package-pal/util';\r\nimport type { PackageGraph } from '../types/package-graph';\r\n\r\n// eslint-disable-next-line @stylistic/object-curly-newline\r\nexport interface DfsTraverseGraphPathsOptions {\r\n\t/**\r\n\t * Whether to use a global visited set to skip already visited nodes across different paths.\r\n\t * @default true\r\n\t */\r\n\tuseGlobalVisited?: boolean; }\r\n\r\nexport const dfsTraverseGraphPaths = function* (\r\n\tgraph: PackageGraph,\r\n\ttraverseFromPackages: string | string[],\r\n\toptions: DfsTraverseGraphPathsOptions = {},\r\n): Generator<string[]> {\r\n\tconst { useGlobalVisited = true } = options;\r\n\tconst globalVisited = new Set<string>();\r\n\tconst startPackages = Array.isArray(traverseFromPackages) ? traverseFromPackages : [traverseFromPackages];\r\n\r\n\tfor (const start of startPackages) {\r\n\t\tconst stack: {\r\n\t\t\tnode: string;\r\n\t\t\tpath: string[];\r\n\t\t\tlocalVisited: Set<string>;\r\n\t\t}[] = [{\r\n\t\t\tnode: start,\r\n\t\t\tpath: [],\r\n\t\t\tlocalVisited: new Set(),\r\n\t\t}];\r\n\r\n\t\twhile (stack.length) {\r\n\t\t\tconst {\r\n\t\t\t\tnode, path, localVisited,\r\n\t\t\t} = assertDefined(stack.pop());\r\n\r\n\t\t\tif (localVisited.has(node)) {\r\n\t\t\t\tconst idx = path.indexOf(node);\r\n\t\t\t\tif (idx !== -1) {\r\n\t\t\t\t\tyield
|
|
20
|
+
"import { assertDefined } from '@package-pal/util';\r\nimport type { PackageGraph } from '../types/package-graph';\r\n\r\n// eslint-disable-next-line @stylistic/object-curly-newline\r\nexport interface DfsTraverseGraphPathsOptions {\r\n\t/**\r\n\t * Whether to use a global visited set to skip already visited nodes across different paths.\r\n\t * @default true\r\n\t */\r\n\tuseGlobalVisited?: boolean; }\r\n\r\nexport const dfsTraverseGraphPaths = function* (\r\n\tgraph: PackageGraph,\r\n\ttraverseFromPackages: string | string[],\r\n\toptions: DfsTraverseGraphPathsOptions = {},\r\n): Generator<string[]> {\r\n\tconst { useGlobalVisited = true } = options;\r\n\tconst globalVisited = new Set<string>();\r\n\tconst startPackages = Array.isArray(traverseFromPackages) ? traverseFromPackages : [traverseFromPackages];\r\n\r\n\tfor (const start of startPackages) {\r\n\t\tconst stack: {\r\n\t\t\tnode: string;\r\n\t\t\tpath: string[];\r\n\t\t\tlocalVisited: Set<string>;\r\n\t\t}[] = [{\r\n\t\t\tnode: start,\r\n\t\t\tpath: [],\r\n\t\t\tlocalVisited: new Set(),\r\n\t\t}];\r\n\r\n\t\twhile (stack.length) {\r\n\t\t\tconst {\r\n\t\t\t\tnode, path, localVisited,\r\n\t\t\t} = assertDefined(stack.pop());\r\n\r\n\t\t\tif (localVisited.has(node)) {\r\n\t\t\t\tconst idx = path.indexOf(node);\r\n\t\t\t\tif (idx !== -1) {\r\n\t\t\t\t\tyield path.slice(idx).concat(node);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tif (useGlobalVisited && globalVisited.has(node)) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tconst newPath = path.concat(node);\r\n\t\t\tconst newLocalVisited = new Set(localVisited);\r\n\t\t\tnewLocalVisited.add(node);\r\n\r\n\t\t\tconst neighbours = graph.get(node)?.pointsToPackages;\r\n\t\t\tlet pushed = false;\r\n\r\n\t\t\tif (neighbours) {\r\n\t\t\t\tfor (const neighbour of neighbours) {\r\n\t\t\t\t\tstack.push({\r\n\t\t\t\t\t\tnode: neighbour,\r\n\t\t\t\t\t\tpath: newPath,\r\n\t\t\t\t\t\tlocalVisited: newLocalVisited,\r\n\t\t\t\t\t});\r\n\t\t\t\t\tpushed = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (!pushed) {\r\n\t\t\t\tyield newPath;\r\n\t\t\t}\r\n\r\n\t\t\tif (useGlobalVisited) {\r\n\t\t\t\tglobalVisited.add(node);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n};\r\n",
|
|
22
21
|
"import { assertDefined } from '@package-pal/util';\r\nimport type { PackageGraph } from '../types/package-graph.ts';\r\nimport { dfsTraverseGraph } from './dfs-traverse-graph.ts';\r\n\r\nexport const extractSubgraph = (graph: PackageGraph, fromPackages: string | string[]) => {\r\n\tconst reachablePackages = new Set(dfsTraverseGraph(graph, fromPackages).map(packageData => packageData.name));\r\n\tconst subgraph: PackageGraph = new Map();\r\n\r\n\tfor (const packageName of reachablePackages) {\r\n\t\tconst node = assertDefined(graph.get(packageName));\r\n\t\tconst filteredNeighbours = new Set<string>();\r\n\r\n\t\tfor (const dep of node.pointsToPackages) {\r\n\t\t\tif (reachablePackages.has(dep)) {\r\n\t\t\t\tfilteredNeighbours.add(dep);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tsubgraph.set(packageName, {\r\n\t\t\tpackageData: node.packageData,\r\n\t\t\tpointsToPackages: filteredNeighbours,\r\n\t\t});\r\n\t}\r\n\r\n\treturn subgraph;\r\n};\r\n",
|
|
23
|
-
"import { assertDefined } from '@package-pal/util';\r\nimport type { PackageData } from '../../package/types/package-data.ts';\r\nimport type { PackageGraph } from '../types/package-graph.ts';\r\n\r\nexport const dfsTraverseGraph = function* (graph: PackageGraph, traverseFromPackages: string | string[]): Generator<Readonly<PackageData>, void, undefined> {\r\n\tconst visited = new Set<string>();\r\n\tconst stack = Array.isArray(traverseFromPackages) ?
|
|
24
|
-
"import { styleText } from 'util';\r\nimport { assertDefined } from '@package-pal/util';\r\nimport type { Logger } from '../../configuration/types/logger.ts';\r\nimport type { PackageGraph } from '../types/package-graph.ts';\r\nimport type { PackageOrder } from '../types/package-order.ts';\r\n\r\nconst getCircularDependencies = (inDegree: Map<string, number>) => {\r\n\treturn Array.from(inDegree.keys()).sort((a, b) => {\r\n\t\tconst degA = assertDefined(inDegree.get(a));\r\n\t\tconst degB = assertDefined(inDegree.get(b));\r\n\t\tif (degB !== degA) {\r\n\t\t\treturn degB - degA;\r\n\t\t}\r\n\t\treturn a.localeCompare(b);\r\n\t});\r\n};\r\n\r\nexport const generateTopologicalSortedGroups = (packageGraph: PackageGraph, logger?: Logger): PackageOrder => {\r\n\tlogger?.debug(styleText('dim', 'Generating topological sorted groups...'));\r\n\tconst
|
|
25
|
-
"import { styleText } from 'util';\r\nimport
|
|
22
|
+
"import { assertDefined } from '@package-pal/util';\r\nimport type { PackageData } from '../../package/types/package-data.ts';\r\nimport type { PackageGraph } from '../types/package-graph.ts';\r\n\r\nexport const dfsTraverseGraph = function* (graph: PackageGraph, traverseFromPackages: string | string[]): Generator<Readonly<PackageData>, void, undefined> {\r\n\tconst visited = new Set<string>();\r\n\tconst stack = Array.isArray(traverseFromPackages) ? traverseFromPackages.slice() : [traverseFromPackages];\r\n\r\n\twhile (stack.length) {\r\n\t\tconst activePackage = assertDefined(stack.pop());\r\n\t\tif (visited.has(activePackage)) {\r\n\t\t\tcontinue;\r\n\t\t}\r\n\r\n\t\tvisited.add(activePackage);\r\n\r\n\t\tconst node = graph.get(activePackage);\r\n\t\tif (!node) {\r\n\t\t\tcontinue;\r\n\t\t}\r\n\r\n\t\tyield node.packageData;\r\n\r\n\t\tfor (const dep of node.pointsToPackages) {\r\n\t\t\tif (!visited.has(dep)) {\r\n\t\t\t\tstack.push(dep);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n};\r\n",
|
|
23
|
+
"import { styleText } from 'util';\r\nimport { assertDefined } from '@package-pal/util';\r\nimport type { Logger } from '../../configuration/types/logger.ts';\r\nimport type { PackageGraph } from '../types/package-graph.ts';\r\nimport type { PackageOrder } from '../types/package-order.ts';\r\n\r\nconst getCircularDependencies = (inDegree: Map<string, number>) => {\r\n\treturn Array.from(inDegree.keys()).sort((a, b) => {\r\n\t\tconst degA = assertDefined(inDegree.get(a));\r\n\t\tconst degB = assertDefined(inDegree.get(b));\r\n\t\tif (degB !== degA) {\r\n\t\t\treturn degB - degA;\r\n\t\t}\r\n\t\treturn a.localeCompare(b);\r\n\t});\r\n};\r\n\r\nexport const generateTopologicalSortedGroups = (packageGraph: PackageGraph, logger?: Logger): PackageOrder => {\r\n\tlogger?.debug(styleText('dim', 'Generating topological sorted groups...'));\r\n\tconst inDegree = new Map<string, number>();\r\n\tconst graph = new Map<string, Set<string>>();\r\n\r\n\tfor (const [packageName] of packageGraph) {\r\n\t\tinDegree.set(packageName, 0);\r\n\t\tgraph.set(packageName, new Set<string>());\r\n\t}\r\n\r\n\tfor (const [packageName, node] of packageGraph) {\r\n\t\tfor (const dependencyName of node.pointsToPackages) {\r\n\t\t\tconst adj = graph.get(dependencyName);\r\n\t\t\tif (adj) {\r\n\t\t\t\tadj.add(packageName);\r\n\t\t\t}\r\n\t\t\tconst currentDeg = inDegree.get(packageName) ?? 0;\r\n\t\t\tinDegree.set(packageName, currentDeg + 1);\r\n\t\t}\r\n\t}\r\n\r\n\tconst result: string[][] = [];\r\n\tlet ready: string[] = [];\r\n\r\n\tfor (const [packageName, deg] of inDegree) {\r\n\t\tif (deg === 0) {\r\n\t\t\tready.push(packageName);\r\n\t\t}\r\n\t}\r\n\r\n\twhile (ready.length > 0) {\r\n\t\tresult.push(ready);\r\n\t\tconst nextReady: string[] = [];\r\n\r\n\t\tfor (const packageName of ready) {\r\n\t\t\tinDegree.delete(packageName);\r\n\t\t\tconst dependentPackages = graph.get(packageName);\r\n\r\n\t\t\tif (!dependentPackages) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tfor (const dependentPackage of dependentPackages) {\r\n\t\t\t\tinDegree.set(dependentPackage, assertDefined(inDegree.get(dependentPackage)) - 1);\r\n\t\t\t\tif (inDegree.get(dependentPackage) === 0) {\r\n\t\t\t\t\tnextReady.push(dependentPackage);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tready = nextReady;\r\n\t}\r\n\r\n\tlogger?.debug(styleText('dim', `Sorted packages into ${result.length.toString()} sequential groups of parallelizable dependencies.`));\r\n\r\n\tconst circular = getCircularDependencies(inDegree);\r\n\tif (circular.length) {\r\n\t\tlogger?.warn(styleText('yellow', `${circular.length.toString()} packages could not be sorted due to circular dependencies. Correct ordering cannot be guaranteed.`));\r\n\t}\r\n\r\n\treturn {\r\n\t\tgroups: result.map(group => group.sort()),\r\n\t\tcircular,\r\n\t};\r\n};\r\n",
|
|
24
|
+
"import { styleText } from 'util';\r\nimport { isDefined } from '@package-pal/util';\r\nimport { inc } from 'semver';\r\nimport { dfsTraverseGraph } from '../../graph/functions/dfs-traverse-graph.ts';\r\nimport type { BumpPackageVersionOptions } from '../../types/bump-package-version-options.ts';\r\n\r\nexport const bumpPackageVersion = async (options: BumpPackageVersionOptions): Promise<void> => {\r\n\tconst exact = isDefined(options.exact) ? options.exact : options.config.version.exact;\r\n\tconst preId = isDefined(options.preId) ? options.preId : options.config.version.preId;\r\n\tconst {\r\n\t\tpackageName, type, packageGraphs, adapter, config: { logger },\r\n\t} = options;\r\n\r\n\tlogger.debug(styleText('dim', `Bumping package '${packageName}'...`));\r\n\tconst packageNode = packageGraphs.dependencies.get(packageName);\r\n\tif (!packageNode) {\r\n\t\tthrow new Error(`Package '${packageName}' not found.`);\r\n\t}\r\n\r\n\tconst currentVersion = packageNode.packageData.version ?? '1.0.0';\r\n\tconst bumpedVersion = inc(\r\n\t\tcurrentVersion, type, undefined, preId,\r\n\t);\r\n\tif (!bumpedVersion) {\r\n\t\tthrow new Error(`Package '${packageName}' version '${currentVersion}' is invalid.`);\r\n\t}\r\n\r\n\tlogger.info(`Updating '${packageName}' version: ${currentVersion} → ${bumpedVersion}.`);\r\n\tawait adapter.bumpOwnVersion(\r\n\t\tpackageNode.packageData, bumpedVersion, logger,\r\n\t);\r\n\r\n\tconst dependentWrites: Promise<void>[] = [];\r\n\tfor (const dependent of dfsTraverseGraph(packageGraphs.dependents, packageName)) {\r\n\t\tdependentWrites.push((async () => {\r\n\t\t\tconst updated = await adapter.bumpDependencyVersion(\r\n\t\t\t\tdependent, packageName, bumpedVersion, exact, logger,\r\n\t\t\t);\r\n\t\t\tif (updated) {\r\n\t\t\t\tlogger.debug(styleText('dim', `Updated dependency '${packageName}' in '${dependent.name}'.`));\r\n\t\t\t}\r\n\t\t})());\r\n\t}\r\n\r\n\tawait Promise.all(dependentWrites);\r\n};\r\n",
|
|
25
|
+
"import { styleText } from 'util';\r\nimport type { Logger } from '../../configuration/types/logger.ts';\r\nimport type { PackageAdapter } from '../types/package-adapter.ts';\r\nimport type { PackageData } from '../types/package-data.ts';\r\n\r\nexport const loadPackages = async (\r\n\trootDir: string,\r\n\tpackagePatterns: string[],\r\n\tadapter: PackageAdapter,\r\n\tlogger: Logger,\r\n) => {\r\n\tlet resolvedPatterns = packagePatterns;\r\n\tif (\r\n\t\tpackagePatterns.length === 1\r\n\t\t&& packagePatterns[0] === 'packages/*'\r\n\t) {\r\n\t\tresolvedPatterns = adapter.defaultPatterns;\r\n\t}\r\n\r\n\tconst patternContent = resolvedPatterns.map(pattern => `'${pattern}'`).join(', ');\r\n\tlogger.debug(styleText('dim', `Loading packages matching pattern/s ${patternContent}...${rootDir ? ` from ${rootDir}` : ''}`));\r\n\tconst packages: PackageData[] = [];\r\n\tconst seen = new Set<string>();\r\n\r\n\tfor await (const packageData of adapter.scanPackages(\r\n\t\tArray.from(new Set(resolvedPatterns)), logger, rootDir,\r\n\t)) {\r\n\t\tif (seen.has(packageData.name)) {\r\n\t\t\tcontinue;\r\n\t\t}\r\n\r\n\t\tseen.add(packageData.name);\r\n\t\tpackages.push(packageData);\r\n\t}\r\n\r\n\tif (!packages.length) {\r\n\t\tthrow new Error(`No packages found for pattern/s ${patternContent}.`);\r\n\t}\r\n\r\n\treturn packages;\r\n};\r\n",
|
|
26
26
|
"import { dirname } from 'path';\r\nimport {\r\n\tassertDefined, runAsync,\r\n} from '@package-pal/util';\r\nimport type { Logger } from '../../configuration/types/logger.ts';\r\nimport type { PackageGraphs } from '../../graph/types/package-graphs.ts';\r\nimport type { PackageOrder } from '../../graph/types/package-order.ts';\r\nimport { runSubprocess } from '../../process/functions/run-subprocess.ts';\r\nimport { ExitState } from '../../process/types/exit-state.ts';\r\nimport type { ForEachCommandCallback } from '../../types/for-each-command-callback.ts';\r\n\r\nexport const runForEachPackage = async (\r\n\tpackageGraphs: PackageGraphs,\r\n\tpackageOrder: PackageOrder,\r\n\tgetCommand: ForEachCommandCallback,\r\n\tlogger: Logger,\r\n\ttopological = true,\r\n\tconcurrency?: number,\r\n) => {\r\n\tconst controller = new AbortController();\r\n\tlet processPackageOrder = packageOrder.circular.length > 0\r\n\t\t? packageOrder.groups.concat([packageOrder.circular])\r\n\t\t: packageOrder.groups;\r\n\tif (!topological) {\r\n\t\tprocessPackageOrder = [processPackageOrder.flat()];\r\n\t}\r\n\r\n\tfor (const group of processPackageOrder) {\r\n\t\tawait runAsync(group.map(packageName => async () => {\r\n\t\t\tconst packageNode = assertDefined(packageGraphs.dependencies.get(packageName));\r\n\t\t\tconst processPackageProps = {\r\n\t\t\t\tname: packageName,\r\n\t\t\t\tdir: packageNode.packageData.dir,\r\n\t\t\t};\r\n\t\t\tconst processPackageCwd = dirname(packageNode.packageData.path);\r\n\r\n\t\t\tconst shellCommand = await getCommand(processPackageProps);\r\n\t\t\tif (!shellCommand) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tconst exitState = await runSubprocess({\r\n\t\t\t\tdebugName: `run for ${packageName}`,\r\n\t\t\t\tshellCommand: shellCommand,\r\n\t\t\t\tcwd: processPackageCwd,\r\n\t\t\t\tenv: {\r\n\t\t\t\t\tPP_PACKAGE_NAME: packageName,\r\n\t\t\t\t\tPP_PACKAGE_DIR: processPackageProps.dir,\r\n\t\t\t\t},\r\n\t\t\t\tsignal: controller.signal,\r\n\t\t\t\tlogger,\r\n\t\t\t});\r\n\r\n\t\t\tif (exitState === ExitState.Errored) {\r\n\t\t\t\tcontroller.abort();\r\n\t\t\t\tthrow new Error('Command failed.');\r\n\t\t\t}\r\n\t\t}),\r\n\t\tconcurrency);\r\n\t}\r\n};\r\n",
|
|
27
27
|
"import { styleText } from 'util';\r\nimport type { Logger } from '../../configuration/types/logger.ts';\r\nimport { ExitState } from '../types/exit-state.ts';\r\nimport { StdType } from '../types/std-type.ts';\r\nimport { getCommandsForShell } from './get-commands-for-shell.ts';\r\nimport { getLineBufferedWriter } from './get-line-buffered-writer.ts';\r\nimport { readStream } from './read-stream.ts';\r\n\r\nconst sigintCode = 130;\r\nconst sigtermCode = 143;\r\nconst sigkillCode = 137;\r\nconst cancelCodes = new Set([\r\n\tsigintCode,\r\n\tsigtermCode,\r\n\tsigkillCode,\r\n]);\r\n\r\nexport const runSubprocess = async (opts: {\r\n\tdebugName: string;\r\n\tshellCommand: string;\r\n\tcwd?: string;\r\n\tenv?: Record<string, string | undefined>;\r\n\tsignal?: AbortSignal;\r\n\tlogger?: Logger;\r\n\tonStdChunk?: (chunk: string, type: StdType) => void;\r\n}) => {\r\n\tif (opts.signal?.aborted) {\r\n\t\topts.logger?.debug(styleText('dim', `Skipped '${opts.debugName}' subprocess command; signal already cancelled.`));\r\n\t\treturn ExitState.Cancelled;\r\n\t}\r\n\r\n\tconst {\r\n\t\tcommands, stderrProcessor,\r\n\t} = getCommandsForShell(opts.shellCommand);\r\n\tconst baseSubprocessOpts = {\r\n\t\tstdout: 'pipe',\r\n\t\tstderr: 'pipe',\r\n\t\tstdin: 'ignore',\r\n\t\tenv: {\r\n\t\t\t...process.env,\r\n\t\t\t...opts.env,\r\n\t\t},\r\n\t} as const;\r\n\tconst subprocessOpts = {\r\n\t\t...baseSubprocessOpts,\r\n\t\t...(opts.cwd ? { cwd: opts.cwd } : {}),\r\n\t\t...(opts.signal ? { signal: opts.signal } : {}),\r\n\t};\r\n\r\n\tconst subprocess = Bun.spawn(commands, subprocessOpts);\r\n\tconst pid = subprocess.pid.toString();\r\n\tconst minPrefixLen = 14;\r\n\r\n\tconst [readStdout, readStderr] = (\r\n\t\t[{\r\n\t\t\tsource: subprocess.stdout,\r\n\t\t\ttype: StdType.Out,\r\n\t\t\twriter: getLineBufferedWriter(styleText('dim', `[O-${pid}]`.padEnd(minPrefixLen, ' '))),\r\n\t\t}, {\r\n\t\t\tsource: subprocess.stderr,\r\n\t\t\ttype: StdType.Err,\r\n\t\t\twriter: getLineBufferedWriter(\r\n\t\t\t\tstyleText('yellow', styleText('dim', `[E-${pid}]`.padEnd(minPrefixLen, ' '))),\r\n\t\t\t\tundefined,\r\n\t\t\t\tprocess.stderr.write.bind(process.stderr),\r\n\t\t\t),\r\n\t\t}] as const\r\n\t).map(async ({\r\n\t\tsource, type, writer,\r\n\t}) => {\r\n\t\tawait readStream(source, (chunk) => {\r\n\t\t\tconst processedChunk = type === StdType.Err ? stderrProcessor(chunk) : chunk;\r\n\r\n\t\t\t// Skip writing if the processor suppressed the chunk entirely (e.g. PowerShell CLIXML header)\r\n\t\t\tif (processedChunk === '' && chunk !== '') {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\twriter.write(processedChunk);\r\n\r\n\t\t\tif (opts.onStdChunk) {\r\n\t\t\t\topts.onStdChunk(processedChunk, type);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\twriter.flush();\r\n\t}) as [Promise<void>, Promise<void>];\r\n\r\n\tconst executedCommand = commands.join(' ');\r\n\topts.logger?.debug(styleText('dim', `Started '${opts.debugName}' subprocess command '${opts.shellCommand}' (${executedCommand}) with PID ${pid}.`));\r\n\r\n\tconst [\r\n\t\t,,exitState,\r\n\t] = await Promise.all([\r\n\t\treadStdout,\r\n\t\treadStderr,\r\n\t\tsubprocess.exited.then((exitCode) => {\r\n\t\t\tif (cancelCodes.has(exitCode)) {\r\n\t\t\t\topts.logger?.debug(styleText('dim', `Cancelled '${opts.debugName}' subprocess command; PID ${pid} exited.`));\r\n\t\t\t\treturn ExitState.Cancelled;\r\n\t\t\t}\r\n\r\n\t\t\tif (exitCode !== 0) {\r\n\t\t\t\topts.logger?.error(styleText('red', `'${opts.debugName}' command '${opts.shellCommand}' (${executedCommand}) with PID ${pid} failed with exit code ${exitCode.toString()}.`));\r\n\t\t\t\treturn ExitState.Errored;\r\n\t\t\t}\r\n\r\n\t\t\topts.logger?.debug(styleText('dim', `Completed '${opts.debugName}' subprocess command; PID ${pid} exited.`));\r\n\t\t\treturn ExitState.Completed;\r\n\t\t}),\r\n\t]);\r\n\r\n\treturn exitState;\r\n};\r\n",
|
|
28
28
|
"import type { ValueOf } from '@package-pal/util';\r\n\r\nexport const ExitState = {\r\n\tCompleted: 'Completed',\r\n\tErrored: 'Errored',\r\n\tCancelled: 'Cancelled',\r\n} as const;\r\n\r\nexport type ExitState = ValueOf<typeof ExitState>;\r\n",
|
|
@@ -38,17 +38,18 @@
|
|
|
38
38
|
"import type { PackageGraph } from '../types/package-graph.ts';\r\n\r\nexport const mergeGraphs = (a: PackageGraph, b: PackageGraph) => {\r\n\tconst merged: PackageGraph = new Map();\r\n\r\n\tfor (const [name, node] of a) {\r\n\t\tmerged.set(name, {\r\n\t\t\tpackageData: node.packageData,\r\n\t\t\tpointsToPackages: new Set(node.pointsToPackages),\r\n\t\t});\r\n\t}\r\n\r\n\tfor (const [name, node] of b) {\r\n\t\tmerged.set(name, {\r\n\t\t\tpackageData: node.packageData,\r\n\t\t\tpointsToPackages: new Set(node.pointsToPackages),\r\n\t\t});\r\n\t}\r\n\r\n\treturn merged;\r\n};\r\n",
|
|
39
39
|
"import type { ValueOf } from '@package-pal/util';\r\n\r\nexport const ChangeAction = {\r\n\tIgnore: 'Ignore',\r\n\tPartial: 'Partial',\r\n\tRestart: 'Restart',\r\n} as const;\r\n\r\nexport type ChangeAction = ValueOf<typeof ChangeAction>;\r\n",
|
|
40
40
|
"import type { ValueOf } from '@package-pal/util';\r\n\r\nexport const DedupePathsBy = {\r\n\tParent: 'parent',\r\n\tChild: 'child',\r\n} as const;\r\n\r\nexport type DedupePathsBy = ValueOf<typeof DedupePathsBy>;\r\n",
|
|
41
|
-
"import { sep } from 'path';\r\nimport { assertDefined } from '@package-pal/util';\r\nimport { DedupePathsBy } from '../types/dedupe-paths-by.ts';\r\n\r\nexport const dedupeSharedPaths = (paths: string[], by: DedupePathsBy) => {\r\n\tconst
|
|
42
|
-
"import { stat } from 'fs/promises';\r\n\r\nexport const filterFilesModifiedSince = async (paths: string[], sinceMs: number): Promise<string[]> => {\r\n\tconst
|
|
41
|
+
"import { sep } from 'path';\r\nimport { assertDefined } from '@package-pal/util';\r\nimport { DedupePathsBy } from '../types/dedupe-paths-by.ts';\r\n\r\nexport const dedupeSharedPaths = (paths: string[], by: DedupePathsBy) => {\r\n\tconst mapped = paths.map((path) => {\r\n\t\tlet count = 0;\r\n\t\tfor (const char of path) {\r\n\t\t\tif (char === sep) {\r\n\t\t\t\tcount++;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn {\r\n\t\t\tpath,\r\n\t\t\tcount,\r\n\t\t};\r\n\t});\r\n\tmapped.sort((a, b) => a.count - b.count);\r\n\tconst sorted = mapped.map(item => item.path);\r\n\tconst deduped: string[] = [];\r\n\r\n\tif (by === DedupePathsBy.Parent) {\r\n\t\tfor (const path of sorted) {\r\n\t\t\tif (!deduped.some(base => path.startsWith(base + sep))) {\r\n\t\t\t\tdeduped.push(path);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn deduped;\r\n\t}\r\n\r\n\tfor (const path of sorted) {\r\n\t\tfor (let i = deduped.length - 1; i >= 0; i--) {\r\n\t\t\tconst base = assertDefined(deduped[i]);\r\n\t\t\tif (path.startsWith(base + sep)) {\r\n\t\t\t\tdeduped.splice(i, 1);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (!deduped.some(base => base.startsWith(path + sep))) {\r\n\t\t\tdeduped.push(path);\r\n\t\t}\r\n\t}\r\n\r\n\treturn Array.from(new Set(deduped));\r\n};\r\n",
|
|
42
|
+
"import { stat } from 'fs/promises';\r\nimport { runAsync } from '@package-pal/util';\r\n\r\nexport const filterFilesModifiedSince = async (paths: string[], sinceMs: number): Promise<string[]> => {\r\n\tconst tasks = paths.map(path => async () => {\r\n\t\ttry {\r\n\t\t\tconst s = await stat(path);\r\n\t\t\tconst isModifiedSince = s.mtimeMs >= sinceMs;\r\n\t\t\treturn isModifiedSince ? path : null;\r\n\t\t} catch {\r\n\t\t\t// File does not exist (deleted)\r\n\t\t\treturn path;\r\n\t\t}\r\n\t});\r\n\r\n\tconst results = await runAsync(tasks, 20);\r\n\treturn results.filter((path): path is string => path !== null);\r\n};\r\n",
|
|
43
43
|
"import { styleText } from 'util';\r\nimport { assertDefined } from '@package-pal/util';\r\nimport type { ActivatedWatchConfig } from '../../configuration/types/activated-config.ts';\r\nimport type { Logger } from '../../configuration/types/logger.ts';\r\nimport { extractSubgraph } from '../../graph/functions/extract-subgraph.ts';\r\nimport { generateTopologicalRankingRange } from '../../graph/functions/generate-topological-ranking-range.ts';\r\nimport { generateTopologicalRanking } from '../../graph/functions/generate-topological-ranking.ts';\r\nimport { generateTopologicalSortedGroups } from '../../graph/functions/generate-topological-sorted-groups.ts';\r\nimport { isDisjoint } from '../../graph/functions/is-disjoint.ts';\r\nimport { isRankedGreaterThanOrEqual } from '../../graph/functions/is-ranked-greater-than-or-equal.ts';\r\nimport { isSubgraph } from '../../graph/functions/is-subgraph.ts';\r\nimport type { PackageGraph } from '../../graph/types/package-graph.ts';\r\nimport type { PackageGraphs } from '../../graph/types/package-graphs.ts';\r\nimport { ChangeAction } from '../types/change-action.ts';\r\nimport type { PackageChanges } from '../types/package-changes.ts';\r\n\r\nexport const getChangeLogic = (\r\n\tpackageGraphs: PackageGraphs,\r\n\tpackageChanges: PackageChanges,\r\n\tlastProcessedSubgraph: PackageGraph | undefined,\r\n\tconfig: ActivatedWatchConfig,\r\n\tlogger?: Logger,\r\n) => {\r\n\tconst changedPackages = Array.from(packageChanges.keys());\r\n\tconst changedFilePaths = Array.from(packageChanges.values()).flat();\r\n\r\n\tif (packageChanges.size) {\r\n\t\tlogger?.debug(styleText('dim', `Changes detected in ${changedPackages.map(packageName => `'${packageName}'`).join(', ')}.`));\r\n\t\tlogger?.debug(styleText('dim', `Changed file paths: ${changedFilePaths.map(filePath => `'${filePath}'`).join(', ')}.`));\r\n\t}\r\n\r\n\tconst packageOrder = generateTopologicalSortedGroups(packageGraphs.dependents, logger);\r\n\tconst packageProcessOrder = packageOrder.circular.length > 0\r\n\t\t? packageOrder.groups.toReversed().concat([packageOrder.circular])\r\n\t\t: packageOrder.groups.toReversed();\r\n\tconst packageRankings = generateTopologicalRanking(packageProcessOrder);\r\n\r\n\tconst changedPackageSubgraph = extractSubgraph(packageGraphs.dependents, changedPackages);\r\n\tconst changedPackageOrder = generateTopologicalSortedGroups(changedPackageSubgraph, logger);\r\n\tconst changedPackageProcessOrder = changedPackageOrder.circular.length > 0\r\n\t\t? changedPackageOrder.groups.toReversed().concat([changedPackageOrder.circular])\r\n\t\t: changedPackageOrder.groups.toReversed();\r\n\r\n\tconst isSubgraphOfPrevious = !!lastProcessedSubgraph && isSubgraph(lastProcessedSubgraph, changedPackageSubgraph);\r\n\tconst isDisjointFromPrevious = !lastProcessedSubgraph || (!isSubgraphOfPrevious && isDisjoint(lastProcessedSubgraph, changedPackageSubgraph));\r\n\tconst isRankedGreaterThanOrEqualToPrevious = !!lastProcessedSubgraph && !isSubgraphOfPrevious && isRankedGreaterThanOrEqual(\r\n\t\tlastProcessedSubgraph, changedPackageSubgraph, packageRankings,\r\n\t);\r\n\r\n\tlogger?.debug(styleText('dim', `Changes are subgraph of previous: ${isSubgraphOfPrevious.toString()}.`));\r\n\tlogger?.debug(styleText('dim', `Changes are disjoint from previous: ${isDisjointFromPrevious.toString()}.`));\r\n\tlogger?.debug(styleText('dim', `Changes are ranked greater than or equal to previous: ${isRankedGreaterThanOrEqualToPrevious.toString()}.`));\r\n\r\n\tlet action: ChangeAction = ChangeAction.Restart;\r\n\tif (!packageChanges.size) {\r\n\t\taction = ChangeAction.Ignore;\r\n\t} else if (!config.subprocess.partialProcessing) {\r\n\t\taction = ChangeAction.Restart;\r\n\t} else if (isSubgraphOfPrevious) {\r\n\t\taction = ChangeAction.Ignore;\r\n\t} else if (isDisjointFromPrevious || isRankedGreaterThanOrEqualToPrevious) {\r\n\t\taction = ChangeAction.Partial;\r\n\t}\r\n\r\n\tif (action === ChangeAction.Partial && isRankedGreaterThanOrEqualToPrevious) {\r\n\t\tconst [prevMinRank] = generateTopologicalRankingRange(assertDefined(lastProcessedSubgraph), packageRankings);\r\n\r\n\t\tfor (let i = 0; i < changedPackageProcessOrder.length; i++) {\r\n\t\t\tchangedPackageProcessOrder[i] = assertDefined(changedPackageProcessOrder[i]).filter((packageName) => {\r\n\t\t\t\tconst rank = packageRankings.get(packageName);\r\n\t\t\t\treturn rank !== undefined && rank >= prevMinRank;\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tlogger?.debug(styleText('dim', `Determined change action: ${action}.`));\r\n\r\n\treturn {\r\n\t\tchangedPackageProcessOrder,\r\n\t\tchangedPackageSubgraph,\r\n\t\taction,\r\n\t};\r\n};\r\n",
|
|
44
44
|
"import { isDefined } from '@package-pal/util';\r\nimport type { PackageGraph } from '../types/package-graph.ts';\r\n\r\nexport const generateTopologicalRankingRange = (graph: PackageGraph, ranking: ReadonlyMap<string, number>) => {\r\n\tlet min = Infinity;\r\n\tlet max = -Infinity;\r\n\r\n\tfor (const key of graph.keys()) {\r\n\t\tconst rank = ranking.get(key);\r\n\t\tif (!isDefined(rank)) {\r\n\t\t\tcontinue;\r\n\t\t}\r\n\r\n\t\tif (rank < min) {\r\n\t\t\tmin = rank;\r\n\t\t}\r\n\r\n\t\tif (rank > max) {\r\n\t\t\tmax = rank;\r\n\t\t}\r\n\t}\r\n\r\n\tif (min === Infinity) {\r\n\t\treturn [-1, -1] as const;\r\n\t}\r\n\r\n\treturn [min, max] as const;\r\n};\r\n",
|
|
45
45
|
"import { assertDefined } from '@package-pal/util';\r\n\r\nexport const generateTopologicalRanking = (packageProcessOrder: string[][]) => {\r\n\tconst rankMap = new Map<string, number>();\r\n\r\n\tfor (let i = 0; i < packageProcessOrder.length; i++) {\r\n\t\tfor (const packageName of assertDefined(packageProcessOrder[i])) {\r\n\t\t\trankMap.set(packageName, i);\r\n\t\t}\r\n\t}\r\n\r\n\treturn rankMap as ReadonlyMap<string, number>;\r\n};\r\n",
|
|
46
46
|
"import type { PackageGraph } from '../types/package-graph.ts';\r\n\r\nexport const isDisjoint = (a: PackageGraph, b: PackageGraph): boolean => {\r\n\tfor (const key of a.keys()) {\r\n\t\tif (b.has(key)) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\treturn true;\r\n};\r\n",
|
|
47
47
|
"import type { PackageGraph } from '../types/package-graph.ts';\r\nimport { generateTopologicalRankingRange } from './generate-topological-ranking-range.ts';\r\n\r\nexport const isRankedGreaterThanOrEqual = (\r\n\ta: PackageGraph, b: PackageGraph, ranking: ReadonlyMap<string, number>,\r\n) => {\r\n\tconst [prevMin] = generateTopologicalRankingRange(a, ranking);\r\n\r\n\tfor (const key of b.keys()) {\r\n\t\tconst rank = ranking.get(key);\r\n\t\tif (rank !== undefined && rank < prevMin) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\treturn true;\r\n};\r\n",
|
|
48
48
|
"import type { PackageData } from '../../package/types/package-data.ts';\r\nimport type { PackageGraph } from '../types/package-graph.ts';\r\n\r\nconst recordEqual = (a?: Record<string, unknown>, b?: Record<string, unknown>): boolean => {\r\n\tif (!a && !b) {\r\n\t\treturn true;\r\n\t}\r\n\r\n\tif (!a || !b) {\r\n\t\treturn false;\r\n\t}\r\n\r\n\tconst aKeys = Object.keys(a);\r\n\tconst bKeys = Object.keys(b);\r\n\tif (aKeys.length !== bKeys.length) {\r\n\t\treturn false;\r\n\t}\r\n\r\n\treturn aKeys.every(key => b[key] === a[key]);\r\n};\r\n\r\nconst isPackageDataLooseEqual = (a: PackageData, b: PackageData): boolean => {\r\n\treturn a.name === b.name\r\n\t\t&& recordEqual(a.dependencies, b.dependencies)\r\n\t\t&& recordEqual(a.peerDependencies, b.peerDependencies)\r\n\t\t&& recordEqual(a.devDependencies, b.devDependencies);\r\n};\r\n\r\nexport const isSubgraph = (a: PackageGraph, b: PackageGraph) => {\r\n\tfor (const [key, nodeB] of b) {\r\n\t\tconst nodeA = a.get(key);\r\n\t\tif (!nodeA) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tif (!isPackageDataLooseEqual(nodeA.packageData, nodeB.packageData)) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tfor (const dep of nodeB.pointsToPackages) {\r\n\t\t\tif (!nodeA.pointsToPackages.has(dep)) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn true;\r\n};\r\n",
|
|
49
|
-
"import {\r\n\tbasename, dirname, join,\r\n} from 'path';\r\n\r\nconst removeTrailing = [\r\n\t'~',\r\n\t'.tmp',\r\n\t'.temp',\r\n\t'.bak',\r\n\t'.backup',\r\n\t'.swp',\r\n\t'.swo',\r\n\t'.swn',\r\n];\r\n\r\nexport const normaliseWatchedFilePath = (filePath: string) => {\r\n\tconst dir = dirname(filePath);\r\n\tlet base = basename(filePath);\r\n\r\n\tfor (const trailing of removeTrailing) {\r\n\t\tif (
|
|
49
|
+
"import {\r\n\tbasename, dirname, join,\r\n} from 'path';\r\n\r\nconst removeTrailing = [\r\n\t'~',\r\n\t'.tmp',\r\n\t'.temp',\r\n\t'.bak',\r\n\t'.backup',\r\n\t'.swp',\r\n\t'.swo',\r\n\t'.swn',\r\n];\r\n\r\nexport const normaliseWatchedFilePath = (filePath: string) => {\r\n\tconst dir = dirname(filePath);\r\n\tlet base = basename(filePath);\r\n\tconst baseLower = base.toLowerCase();\r\n\r\n\tfor (const trailing of removeTrailing) {\r\n\t\tif (baseLower.endsWith(trailing)) {\r\n\t\t\tconst sliceStart = base.startsWith('.') ? 1 : 0;\r\n\t\t\tbase = base.slice(sliceStart, -trailing.length);\r\n\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\r\n\treturn join(dir, base);\r\n};\r\n",
|
|
50
|
+
"import { checkBun } from './configuration/functions/check-bun.ts';\r\nimport { loadConfig } from './configuration/functions/load-config.ts';\r\nimport type { ActivatedConfigAndRootDir } from './configuration/types/activated-config.ts';\r\nimport { generateGraphs } from './graph/functions/generate-graphs.ts';\r\nimport { generatePackageCircularDependencyPaths } from './graph/functions/generate-package-circular-dependency-paths.ts';\r\nimport { generateTopologicalSortedGroups } from './graph/functions/generate-topological-sorted-groups.ts';\r\nimport type { PackageGraphs } from './graph/types/package-graphs.ts';\r\nimport type { PackageOrder } from './graph/types/package-order.ts';\r\nimport { bumpPackageVersion as doBumpPackageVersion } from './package/functions/bump-package-version.ts';\r\nimport { loadPackages } from './package/functions/load-packages.ts';\r\nimport { runForEachPackage } from './package/functions/run-for-each-package.ts';\r\nimport type { PackageData } from './package/types/package-data.ts';\r\nimport type { BumpPackageVersionOptions } from './types/bump-package-version-options.ts';\r\nimport type { ForEachPackageOptions } from './types/for-each-package-options.ts';\r\nimport type { GetConfigOptions } from './types/get-config-options.ts';\r\nimport type { GetPackageCircularDependencyPathsOptions } from './types/get-package-circular-dependency-paths-options.ts';\r\nimport type { GetPackageDataOptions } from './types/get-package-data-options.ts';\r\nimport type { GetPackageGraphOptions } from './types/get-package-graph-options.ts';\r\nimport type { GetPackageOrderOptions } from './types/get-package-order-options.ts';\r\nimport type { WatchPackagesOptions } from './types/watch-packages-options.ts';\r\nimport { watchPackageChanges } from './watch/functions/watch-package-changes.ts';\r\n\r\n/**\r\n * Searches upward from the current directory for a config file until one is found or the root is reached.\r\n * If found, the config is loaded and merged with default values.\r\n */\r\nexport const readPackagePalConfig = (options?: GetConfigOptions): Promise<ActivatedConfigAndRootDir> => {\r\n\tcheckBun();\r\n\treturn loadConfig(options?.overrideConfigPath);\r\n};\r\n\r\n/**\r\n * Finds and reads all package files that match the given glob patterns.\r\n */\r\nexport const readPackageData = async (options: GetPackageDataOptions): Promise<PackageData[]> => {\r\n\tcheckBun();\r\n\tconst packagePatterns = Array.isArray(options.config.packages) ? options.config.packages : [options.config.packages];\r\n\treturn loadPackages(\r\n\t\toptions.rootDir, packagePatterns, options.adapter, options.config.logger,\r\n\t);\r\n};\r\n\r\n/**\r\n * Computes dependency graphs for all packages.\r\n */\r\nexport const getPackageGraphs = (options: GetPackageGraphOptions): PackageGraphs => {\r\n\tcheckBun();\r\n\treturn generateGraphs(options.packageData, options.config.logger);\r\n};\r\n\r\n/**\r\n * Computes topologically sorted groups of packages.\r\n * Actions must be performed on each group sequentially,\r\n * but packages within the same group can be processed in parallel.\r\n */\r\nexport const getPackageOrder = (options: GetPackageOrderOptions): PackageOrder => {\r\n\tcheckBun();\r\n\treturn generateTopologicalSortedGroups(options.packageGraphs.dependencies, options.config.logger);\r\n};\r\n\r\n/**\r\n * Detects circular dependencies between packages and computes paths representing each cycle.\r\n */\r\nexport const getPackageCircularDependencyPaths = (options: GetPackageCircularDependencyPathsOptions): string[][] => {\r\n\tcheckBun();\r\n\treturn generatePackageCircularDependencyPaths(\r\n\t\toptions.packageGraphs,\r\n\t\toptions.packageOrder,\r\n\t\toptions.config.logger,\r\n\t);\r\n};\r\n\r\n/**\r\n * Bumps the source package version and updates any dependents if the new version\r\n * is no longer semver-compatible, preserving original version prefixes (e.g., `^`, `~`).\r\n * Does not publish.\r\n */\r\nexport const bumpPackageVersion = (options: BumpPackageVersionOptions): Promise<void> => {\r\n\tcheckBun();\r\n\treturn doBumpPackageVersion(options);\r\n};\r\n\r\n/**\r\n * Watches package source file changes, and triggers respective hooks defined in config.\r\n */\r\nexport const watchPackages = (options: WatchPackagesOptions): void => {\r\n\tcheckBun();\r\n\twatchPackageChanges(\r\n\t\toptions.packageData,\r\n\t\toptions.packageGraphs,\r\n\t\toptions.config.watch,\r\n\t\toptions.rootDir,\r\n\t\toptions.config.logger,\r\n\t);\r\n};\r\n\r\n/**\r\n * Run a command for each package.\r\n */\r\nexport const forEachPackage = (options: ForEachPackageOptions): Promise<void> => {\r\n\tcheckBun();\r\n\treturn runForEachPackage(\r\n\t\toptions.packageGraphs,\r\n\t\toptions.packageOrder,\r\n\t\toptions.getCommand,\r\n\t\toptions.config.logger,\r\n\t\toptions.topological,\r\n\t\toptions.concurrency,\r\n\t);\r\n};\r\n"
|
|
50
51
|
],
|
|
51
|
-
"mappings": "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",
|
|
52
|
-
"debugId": "
|
|
52
|
+
"mappings": "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",
|
|
53
|
+
"debugId": "C18A12C7802A030C64756E2164756E21",
|
|
53
54
|
"names": []
|
|
54
55
|
}
|
package/lib/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../packages/core/src/lib/api.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../packages/core/src/lib/api.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAC;AAI3F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAInE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AACzF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,KAAK,EAAE,wCAAwC,EAAE,MAAM,0DAA0D,CAAC;AACzH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AACnF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AACnF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAG9E;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAAI,UAAU,gBAAgB,KAAG,OAAO,CAAC,yBAAyB,CAGlG,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,GAAU,SAAS,qBAAqB,KAAG,OAAO,CAAC,WAAW,EAAE,CAM3F,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAAI,SAAS,sBAAsB,KAAG,aAGlE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAI,SAAS,sBAAsB,KAAG,YAGjE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iCAAiC,GAAI,SAAS,wCAAwC,KAAG,MAAM,EAAE,EAO7G,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAAI,SAAS,yBAAyB,KAAG,OAAO,CAAC,IAAI,CAGnF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,GAAI,SAAS,oBAAoB,KAAG,IAS7D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,GAAI,SAAS,qBAAqB,KAAG,OAAO,CAAC,IAAI,CAU3E,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-graphs.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/lib/graph/functions/generate-graphs.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"generate-graphs.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/lib/graph/functions/generate-graphs.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AA2C9D,eAAO,MAAM,cAAc,GAAI,UAAU,WAAW,EAAE,EAAE,QAAQ,MAAM;;;CA0BrE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-topological-sorted-groups.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/lib/graph/functions/generate-topological-sorted-groups.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAa9D,eAAO,MAAM,+BAA+B,GAAI,cAAc,YAAY,EAAE,SAAS,MAAM,KAAG,
|
|
1
|
+
{"version":3,"file":"generate-topological-sorted-groups.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/lib/graph/functions/generate-topological-sorted-groups.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAa9D,eAAO,MAAM,+BAA+B,GAAI,cAAc,YAAY,EAAE,SAAS,MAAM,KAAG,YAgE7F,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bump-package-version.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/lib/package/functions/bump-package-version.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,6CAA6C,CAAC;AAE7F,eAAO,MAAM,kBAAkB,GAAU,SAAS,yBAAyB,KAAG,OAAO,CAAC,IAAI,CAuCzF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load-packages.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/lib/package/functions/load-packages.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D,eAAO,MAAM,YAAY,GACxB,SAAS,MAAM,EACf,iBAAiB,MAAM,EAAE,EACzB,SAAS,cAAc,EACvB,QAAQ,MAAM,
|
|
1
|
+
{"version":3,"file":"load-packages.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/lib/package/functions/load-packages.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D,eAAO,MAAM,YAAY,GACxB,SAAS,MAAM,EACf,iBAAiB,MAAM,EAAE,EACzB,SAAS,cAAc,EACvB,QAAQ,MAAM,2BA+Bd,CAAC"}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import type { Logger } from '../../configuration/types/logger.ts';
|
|
2
|
-
import type { PackageGraphs } from '../../graph/types/package-graphs.ts';
|
|
3
|
-
import type { BumpVersionType } from '../../types/bump-version-type.ts';
|
|
4
2
|
import type { PackageData } from './package-data.ts';
|
|
5
3
|
export declare abstract class PackageAdapter {
|
|
6
4
|
/**
|
|
@@ -11,6 +9,10 @@ export declare abstract class PackageAdapter {
|
|
|
11
9
|
* Glob pattern matching project manifests (e.g., 'package.json', '*.*proj').
|
|
12
10
|
*/
|
|
13
11
|
abstract readonly manifestPattern: string;
|
|
12
|
+
/**
|
|
13
|
+
* Default package glob patterns to use if none are specified.
|
|
14
|
+
*/
|
|
15
|
+
abstract readonly defaultPatterns: string[];
|
|
14
16
|
/**
|
|
15
17
|
* Returns true if this adapter detects that it should be used for the current workspace/CWD.
|
|
16
18
|
*/
|
|
@@ -21,16 +23,13 @@ export declare abstract class PackageAdapter {
|
|
|
21
23
|
*/
|
|
22
24
|
abstract scanPackages(patterns: string[], logger: Logger, cwd?: string): AsyncIterable<PackageData>;
|
|
23
25
|
/**
|
|
24
|
-
* Bumps a package's own version
|
|
26
|
+
* Bumps a package's own version in its manifest.
|
|
27
|
+
*/
|
|
28
|
+
abstract bumpOwnVersion(packageData: PackageData, newVersion: string, logger: Logger): Promise<void>;
|
|
29
|
+
/**
|
|
30
|
+
* Updates a dependent package's manifest to point to the new dependency version.
|
|
31
|
+
* Returns true if a modification was made.
|
|
25
32
|
*/
|
|
26
|
-
abstract
|
|
27
|
-
packageName: string;
|
|
28
|
-
type: BumpVersionType;
|
|
29
|
-
packageGraphs: PackageGraphs;
|
|
30
|
-
preId: string | undefined;
|
|
31
|
-
exact: boolean | undefined;
|
|
32
|
-
logger: Logger;
|
|
33
|
-
}): Promise<void>;
|
|
33
|
+
abstract bumpDependencyVersion(dependentPackageData: PackageData, targetDependencyName: string, newVersion: string, exact: boolean, logger: Logger): Promise<boolean>;
|
|
34
34
|
}
|
|
35
|
-
export type { PackageAdapter as IPackageAdapter };
|
|
36
35
|
//# sourceMappingURL=package-adapter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package-adapter.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/lib/package/types/package-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAClE,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"package-adapter.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/lib/package/types/package-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,8BAAsB,cAAc;IACnC;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAE/B;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IAE1C;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC;IAE5C;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAE9C;;;OAGG;IACH,QAAQ,CAAC,YAAY,CACpB,QAAQ,EAAE,MAAM,EAAE,EAClB,MAAM,EAAE,MAAM,EACd,GAAG,CAAC,EAAE,MAAM,GACV,aAAa,CAAC,WAAW,CAAC;IAE7B;;OAEG;IACH,QAAQ,CAAC,cAAc,CACtB,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC;IAEhB;;;OAGG;IACH,QAAQ,CAAC,qBAAqB,CAC7B,oBAAoB,EAAE,WAAW,EACjC,oBAAoB,EAAE,MAAM,EAC5B,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,MAAM,GACZ,OAAO,CAAC,OAAO,CAAC;CACnB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dedupe-shared-paths.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/lib/watch/functions/dedupe-shared-paths.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,eAAO,MAAM,iBAAiB,GAAI,OAAO,MAAM,EAAE,EAAE,IAAI,aAAa,
|
|
1
|
+
{"version":3,"file":"dedupe-shared-paths.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/lib/watch/functions/dedupe-shared-paths.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,eAAO,MAAM,iBAAiB,GAAI,OAAO,MAAM,EAAE,EAAE,IAAI,aAAa,aAyCnE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter-files-modified-since.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/lib/watch/functions/filter-files-modified-since.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"filter-files-modified-since.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/lib/watch/functions/filter-files-modified-since.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,wBAAwB,GAAU,OAAO,MAAM,EAAE,EAAE,SAAS,MAAM,KAAG,OAAO,CAAC,MAAM,EAAE,CAcjG,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalise-watched-file-path.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/lib/watch/functions/normalise-watched-file-path.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,wBAAwB,GAAI,UAAU,MAAM,
|
|
1
|
+
{"version":3,"file":"normalise-watched-file-path.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/lib/watch/functions/normalise-watched-file-path.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,wBAAwB,GAAI,UAAU,MAAM,WAcxD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,25 +1,24 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@package-pal/core",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.12",
|
|
4
4
|
"description": "Core PackagePal functionality.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"package",
|
|
7
7
|
"pal",
|
|
8
|
-
"
|
|
9
|
-
"dependencies",
|
|
10
|
-
"deps",
|
|
8
|
+
"ppal",
|
|
11
9
|
"core"
|
|
12
10
|
],
|
|
13
11
|
"license": "MIT",
|
|
14
12
|
"type": "module",
|
|
15
13
|
"dependencies": {
|
|
16
14
|
"@package-pal/util": "^0.0.11",
|
|
17
|
-
"zod": "^4.4.3"
|
|
15
|
+
"zod": "^4.4.3",
|
|
16
|
+
"semver": "^7.8.4"
|
|
18
17
|
},
|
|
19
18
|
"devDependencies": {
|
|
20
|
-
"@types/semver": "^7.7.1",
|
|
21
19
|
"@types/bun": "^1.3.14",
|
|
22
|
-
"typescript": "^6.0.3"
|
|
20
|
+
"typescript": "^6.0.3",
|
|
21
|
+
"@types/semver": "^7.7.1"
|
|
23
22
|
},
|
|
24
23
|
"engines": {
|
|
25
24
|
"bun": ">=1.3.0"
|