@package-pal/core 0.0.5 → 0.0.8
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 +71 -100
- package/index.js.map +12 -11
- package/lib/configuration/functions/load-config.d.ts.map +1 -1
- package/lib/configuration/functions/parse-config.d.ts +1 -0
- package/lib/configuration/functions/parse-config.d.ts.map +1 -1
- package/lib/configuration/functions/search-config-path.d.ts.map +1 -1
- package/lib/configuration/schemas/config.d.ts +4 -0
- package/lib/configuration/schemas/config.d.ts.map +1 -1
- package/lib/configuration/types/subprocess-callback.d.ts +1 -1
- package/lib/configuration/types/subprocess-callback.d.ts.map +1 -1
- package/lib/process/functions/get-commands-for-shell.d.ts.map +1 -1
- package/lib/process/functions/parse-ps-shell-flags.d.ts +9 -0
- package/lib/process/functions/parse-ps-shell-flags.d.ts.map +1 -0
- package/lib/watch/functions/filter-files-modified-since.d.ts.map +1 -1
- package/lib/watch/functions/normalise-pattern-separators.d.ts +2 -0
- package/lib/watch/functions/normalise-pattern-separators.d.ts.map +1 -0
- package/lib/watch/functions/watch-package-changes.d.ts.map +1 -1
- package/package.json +5 -5
- package/lib/process/functions/parse-ps-flags.d.ts +0 -5
- package/lib/process/functions/parse-ps-flags.d.ts.map +0 -1
package/index.js
CHANGED
|
@@ -92,6 +92,7 @@ var Config = z3.object({
|
|
|
92
92
|
})),
|
|
93
93
|
watch: z3.optional(zLooseObjectWithoutIndexSignature({
|
|
94
94
|
debounceMs: z3.optional(z3.number()),
|
|
95
|
+
ignore: z3.optional(z3.union([z3.string(), z3.array(z3.string())])),
|
|
95
96
|
hooks: z3.optional(z3.object({
|
|
96
97
|
onInit: z3.optional(zLooseFunction()),
|
|
97
98
|
onBeforeProcessPackage: z3.optional(zLooseFunction()),
|
|
@@ -177,22 +178,12 @@ var isRootDir = (path) => {
|
|
|
177
178
|
// packages/core/src/lib/configuration/functions/search-config-path.ts
|
|
178
179
|
var dirDistLimit = 25;
|
|
179
180
|
var checkForConfigInDir = async (dir) => {
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
if (exists) {
|
|
187
|
-
resolve(pathToCheck);
|
|
188
|
-
return;
|
|
189
|
-
}
|
|
190
|
-
if (!pending) {
|
|
191
|
-
resolve(undefined);
|
|
192
|
-
}
|
|
193
|
-
});
|
|
194
|
-
}
|
|
195
|
-
});
|
|
181
|
+
const checks = await Promise.all(CONFIG_SUPPORTED_NAMES.map((name) => Bun.file(join(dir, name)).exists().then((exists) => ({
|
|
182
|
+
name,
|
|
183
|
+
exists
|
|
184
|
+
}))));
|
|
185
|
+
const found = checks.find((c) => c.exists);
|
|
186
|
+
return found ? join(dir, found.name) : undefined;
|
|
196
187
|
};
|
|
197
188
|
var searchConfigPath = async (pathOverride) => {
|
|
198
189
|
let activeDir = process.cwd();
|
|
@@ -226,6 +217,7 @@ var defaultConfig = {
|
|
|
226
217
|
},
|
|
227
218
|
watch: {
|
|
228
219
|
debounceMs: 500,
|
|
220
|
+
ignore: "",
|
|
229
221
|
hooks: {
|
|
230
222
|
onInit: noOp2,
|
|
231
223
|
onBeforeProcessPackage: noOp2,
|
|
@@ -703,82 +695,57 @@ import {
|
|
|
703
695
|
Shell
|
|
704
696
|
} from "@package-pal/util";
|
|
705
697
|
|
|
706
|
-
// packages/core/src/lib/process/functions/parse-ps-flags.ts
|
|
698
|
+
// packages/core/src/lib/process/functions/parse-ps-shell-flags.ts
|
|
707
699
|
import { assertDefined as assertDefined8 } from "@package-pal/util";
|
|
708
|
-
var
|
|
700
|
+
var shellFlagsWithParams = new Set([
|
|
709
701
|
"-executionpolicy",
|
|
710
702
|
"-windowstyle",
|
|
711
|
-
"-version"
|
|
712
|
-
"-file",
|
|
713
|
-
"-inputformat",
|
|
714
|
-
"-outputformat",
|
|
715
|
-
"-workingdirectory",
|
|
716
|
-
"-psconsolefile",
|
|
717
|
-
"-pshome",
|
|
718
|
-
"-configurationname",
|
|
719
|
-
"-argumentlist",
|
|
720
|
-
"-warningaction",
|
|
721
|
-
"-erroraction",
|
|
722
|
-
"-informationaction",
|
|
723
|
-
"-informationvariable",
|
|
724
|
-
"-warningvariable",
|
|
725
|
-
"-errorvariable",
|
|
726
|
-
"-outvariable",
|
|
727
|
-
"-outbuffer",
|
|
728
|
-
"-throttlelimit",
|
|
729
|
-
"-culture",
|
|
730
|
-
"-uiculture"
|
|
703
|
+
"-version"
|
|
731
704
|
]);
|
|
732
|
-
var
|
|
705
|
+
var shellFlagsNoParams = new Set([
|
|
733
706
|
"-noprofile",
|
|
734
707
|
"-noninteractive",
|
|
735
|
-
"-nologo",
|
|
736
708
|
"-sta",
|
|
737
709
|
"-mta",
|
|
738
|
-
"-
|
|
739
|
-
"-command",
|
|
710
|
+
"-nologo",
|
|
740
711
|
"-help",
|
|
741
712
|
"-?",
|
|
742
|
-
"-
|
|
743
|
-
"-
|
|
744
|
-
"-whatif",
|
|
745
|
-
"-confirm",
|
|
746
|
-
"-usewindowspowershell",
|
|
747
|
-
"-noexit"
|
|
713
|
+
"-noexit",
|
|
714
|
+
"-usewindowspowerShell"
|
|
748
715
|
]);
|
|
749
|
-
var
|
|
750
|
-
const
|
|
751
|
-
const
|
|
716
|
+
var parsePsShellFlags = (input) => {
|
|
717
|
+
const isPreEncoded = input.toLowerCase().includes("-encodedcommand");
|
|
718
|
+
const tokens = input.match(/"[^"]*"|'[^']*'|\S+/g) ?? [];
|
|
719
|
+
const flags = new Set;
|
|
752
720
|
let i = 0;
|
|
753
721
|
while (i < tokens.length) {
|
|
754
722
|
const token = assertDefined8(tokens[i]);
|
|
755
723
|
const tokenLower = token.toLowerCase();
|
|
756
|
-
if (
|
|
757
|
-
|
|
758
|
-
|
|
724
|
+
if (shellFlagsWithParams.has(tokenLower)) {
|
|
725
|
+
flags.add(token);
|
|
726
|
+
if (i + 1 < tokens.length) {
|
|
727
|
+
flags.add(assertDefined8(tokens[i + 1]));
|
|
728
|
+
i++;
|
|
759
729
|
}
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
i += 1;
|
|
767
|
-
continue;
|
|
730
|
+
i++;
|
|
731
|
+
} else if (shellFlagsNoParams.has(tokenLower)) {
|
|
732
|
+
flags.add(token);
|
|
733
|
+
i++;
|
|
734
|
+
} else {
|
|
735
|
+
break;
|
|
768
736
|
}
|
|
769
|
-
break;
|
|
770
737
|
}
|
|
771
738
|
const command = tokens.slice(i).join(" ");
|
|
772
739
|
return {
|
|
773
740
|
flags,
|
|
774
|
-
command
|
|
741
|
+
command,
|
|
742
|
+
isPreEncoded
|
|
775
743
|
};
|
|
776
744
|
};
|
|
777
745
|
|
|
778
746
|
// packages/core/src/lib/process/functions/get-commands-for-shell.ts
|
|
779
|
-
var shell;
|
|
780
747
|
var getCommandsForShell = (shellCommand) => {
|
|
781
|
-
shell =
|
|
748
|
+
const shell = getShell();
|
|
782
749
|
switch (shell) {
|
|
783
750
|
case Shell.cmd:
|
|
784
751
|
return [
|
|
@@ -790,9 +757,13 @@ var getCommandsForShell = (shellCommand) => {
|
|
|
790
757
|
case Shell.powershell:
|
|
791
758
|
const {
|
|
792
759
|
flags,
|
|
793
|
-
command
|
|
794
|
-
|
|
795
|
-
|
|
760
|
+
command,
|
|
761
|
+
isPreEncoded
|
|
762
|
+
} = parsePsShellFlags(shellCommand);
|
|
763
|
+
if (isPreEncoded) {
|
|
764
|
+
return [shell, shellCommand];
|
|
765
|
+
}
|
|
766
|
+
const encodedCommand = Buffer.from(command || " ", "utf16le").toString("base64");
|
|
796
767
|
return [
|
|
797
768
|
shell,
|
|
798
769
|
...flags,
|
|
@@ -1077,6 +1048,7 @@ import {
|
|
|
1077
1048
|
isDefined as isDefined4,
|
|
1078
1049
|
runAsync as runAsync2
|
|
1079
1050
|
} from "@package-pal/util";
|
|
1051
|
+
var {Glob } = globalThis.Bun;
|
|
1080
1052
|
|
|
1081
1053
|
// packages/core/src/lib/graph/functions/merge-graphs.ts
|
|
1082
1054
|
var mergeGraphs = (a, b) => {
|
|
@@ -1107,7 +1079,9 @@ var ChangeAction = {
|
|
|
1107
1079
|
var filterFilesModifiedSince = (paths, sinceMs) => {
|
|
1108
1080
|
return paths.filter((path) => {
|
|
1109
1081
|
const changedFile = Bun.file(path);
|
|
1110
|
-
|
|
1082
|
+
const isDeleted = changedFile.lastModified === 0;
|
|
1083
|
+
const isModifiedSince = changedFile.lastModified >= sinceMs;
|
|
1084
|
+
return isDeleted || isModifiedSince;
|
|
1111
1085
|
});
|
|
1112
1086
|
};
|
|
1113
1087
|
|
|
@@ -1255,6 +1229,11 @@ var getChangeLogic = (packageGraphs, packageChanges, lastProcessedSubgraph, conf
|
|
|
1255
1229
|
};
|
|
1256
1230
|
};
|
|
1257
1231
|
|
|
1232
|
+
// packages/core/src/lib/watch/functions/normalise-pattern-separators.ts
|
|
1233
|
+
var normalisePatternSeparators = (path) => {
|
|
1234
|
+
return path.replace(/\\/g, "/");
|
|
1235
|
+
};
|
|
1236
|
+
|
|
1258
1237
|
// packages/core/src/lib/watch/functions/normalise-watched-file-path.ts
|
|
1259
1238
|
import {
|
|
1260
1239
|
basename as basename3,
|
|
@@ -1293,8 +1272,9 @@ var onProcessPackage = async (packageGraphs, packageChanges, watchConfig, determ
|
|
|
1293
1272
|
changedPackageProcessOrder,
|
|
1294
1273
|
changedPackageSubgraph
|
|
1295
1274
|
} = getChangeLogic(packageGraphs, packageChanges, lastProcessedSubgraph, watchConfig, logger);
|
|
1296
|
-
const
|
|
1275
|
+
const isRestart = action === ChangeAction.Restart;
|
|
1297
1276
|
const isSequential = watchConfig.subprocess.concurrency === 1;
|
|
1277
|
+
const controller = determineAbortController(isRestart);
|
|
1298
1278
|
const onProcessFailure = () => {
|
|
1299
1279
|
logger.debug(styleText10("dim", "Aborting controller: process failed."));
|
|
1300
1280
|
controller.abort();
|
|
@@ -1305,20 +1285,11 @@ var onProcessPackage = async (packageGraphs, packageChanges, watchConfig, determ
|
|
|
1305
1285
|
return;
|
|
1306
1286
|
}
|
|
1307
1287
|
if (packageChanges.size) {
|
|
1308
|
-
logger.info(`${
|
|
1309
|
-
lastProcessedSubgraph = lastProcessedSubgraph ? mergeGraphs(lastProcessedSubgraph, changedPackageSubgraph) : changedPackageSubgraph;
|
|
1288
|
+
logger.info(`${isRestart ? "Restarting processing" : "Initiating partial processing"} ${isSequential ? "sequentially" : `in parallel${isDefined4(watchConfig.subprocess.concurrency) ? ` with concurrency ${watchConfig.subprocess.concurrency.toString()}` : ""}`}.`);
|
|
1289
|
+
lastProcessedSubgraph = lastProcessedSubgraph && !isRestart ? mergeGraphs(lastProcessedSubgraph, changedPackageSubgraph) : changedPackageSubgraph;
|
|
1310
1290
|
}
|
|
1311
1291
|
for (const group of changedPackageProcessOrder) {
|
|
1312
|
-
const {
|
|
1313
|
-
promise: longRunningParallelProcessReady,
|
|
1314
|
-
resolve: matchedParallelLongReadyRunningOutput
|
|
1315
|
-
} = getDeferredPromise();
|
|
1316
|
-
let matchedLongRunningOutputCount = 0;
|
|
1317
1292
|
await runAsync2(group.map((packageName) => async () => {
|
|
1318
|
-
const {
|
|
1319
|
-
promise: longRunningSequentialProcessReady,
|
|
1320
|
-
resolve: matchedSequentialLongRunningReadyOutput
|
|
1321
|
-
} = getDeferredPromise();
|
|
1322
1293
|
const packageNode = assertDefined12(packageGraphs.dependencies.get(packageName));
|
|
1323
1294
|
const changedPaths = packageChanges.get(packageName) ?? [];
|
|
1324
1295
|
const processPackageProps = {
|
|
@@ -1346,6 +1317,10 @@ var onProcessPackage = async (packageGraphs, packageChanges, watchConfig, determ
|
|
|
1346
1317
|
const longRunningOutputErroredText = watchConfig.subprocess.matchLongRunningOutputAsErrored;
|
|
1347
1318
|
const readyMatcher = longRunningOutputReadyText ? getStringMatcher(longRunningOutputReadyText) : undefined;
|
|
1348
1319
|
const erroredMatcher = longRunningOutputErroredText ? getStringMatcher(longRunningOutputErroredText) : undefined;
|
|
1320
|
+
const {
|
|
1321
|
+
promise: packageReady,
|
|
1322
|
+
resolve: resolvePackageReady
|
|
1323
|
+
} = getDeferredPromise();
|
|
1349
1324
|
let ready = false;
|
|
1350
1325
|
let errored = false;
|
|
1351
1326
|
const exit = runSubprocess({
|
|
@@ -1359,11 +1334,8 @@ var onProcessPackage = async (packageGraphs, packageChanges, watchConfig, determ
|
|
|
1359
1334
|
const matchedReadyText = readyMatcher?.push(chunk).matched();
|
|
1360
1335
|
if (matchedReadyText) {
|
|
1361
1336
|
ready = true;
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
if (isSequential && matchedLongRunningOutputCount) {
|
|
1365
|
-
matchedSequentialLongRunningReadyOutput();
|
|
1366
|
-
}
|
|
1337
|
+
logger.debug(`'${packageName}' subprocess matched ready text '${matchedReadyText}'.`);
|
|
1338
|
+
resolvePackageReady();
|
|
1367
1339
|
}
|
|
1368
1340
|
}
|
|
1369
1341
|
if (!errored) {
|
|
@@ -1390,20 +1362,13 @@ var onProcessPackage = async (packageGraphs, packageChanges, watchConfig, determ
|
|
|
1390
1362
|
});
|
|
1391
1363
|
}
|
|
1392
1364
|
}
|
|
1393
|
-
if (!isSequential && matchedLongRunningOutputCount === group.length) {
|
|
1394
|
-
matchedParallelLongReadyRunningOutput();
|
|
1395
|
-
}
|
|
1396
1365
|
}
|
|
1397
1366
|
}).then((exitState) => {
|
|
1398
1367
|
if (exitState === ExitState.Errored) {
|
|
1399
1368
|
onProcessFailure();
|
|
1400
1369
|
}
|
|
1401
1370
|
});
|
|
1402
|
-
await Promise.race([
|
|
1403
|
-
longRunningParallelProcessReady,
|
|
1404
|
-
longRunningSequentialProcessReady,
|
|
1405
|
-
exit
|
|
1406
|
-
]);
|
|
1371
|
+
await Promise.race([packageReady, exit]);
|
|
1407
1372
|
}
|
|
1408
1373
|
const afterProcessPackageShellCommand = await watchConfig.hooks.onAfterProcessPackage(processPackageProps);
|
|
1409
1374
|
if (afterProcessPackageShellCommand) {
|
|
@@ -1459,6 +1424,7 @@ var watchPackageChanges = (packageData, packageGraphs, watchConfig, rootDir, log
|
|
|
1459
1424
|
let debounceTimeout;
|
|
1460
1425
|
let startedDebounceMs;
|
|
1461
1426
|
let controller;
|
|
1427
|
+
const ignoreGlobs = watchConfig.ignore ? (Array.isArray(watchConfig.ignore) ? watchConfig.ignore : [watchConfig.ignore]).map((pattern) => new Glob(pattern)) : undefined;
|
|
1462
1428
|
const changedPackagePaths = new Map;
|
|
1463
1429
|
const useController = (reset) => {
|
|
1464
1430
|
if (controller && (reset || controller.signal.aborted)) {
|
|
@@ -1480,11 +1446,13 @@ var watchPackageChanges = (packageData, packageGraphs, watchConfig, rootDir, log
|
|
|
1480
1446
|
if (!isDefined4(startedDebounceMs)) {
|
|
1481
1447
|
startedDebounceMs = Date.now();
|
|
1482
1448
|
}
|
|
1483
|
-
if (debounceTimeout) {
|
|
1484
|
-
clearTimeout(debounceTimeout);
|
|
1485
|
-
}
|
|
1486
1449
|
if (packageName && watchPath && filePath) {
|
|
1487
|
-
const changedPath = join4(watchPath, normaliseWatchedFilePath(filePath));
|
|
1450
|
+
const changedPath = normalisePatternSeparators(join4(watchPath, normaliseWatchedFilePath(filePath)));
|
|
1451
|
+
if (ignoreGlobs?.some((glob) => glob.match(changedPath))) {
|
|
1452
|
+
logger.debug(styleText10("dim", `Ignoring change '${changedPath}' (matched ignore pattern).`));
|
|
1453
|
+
return;
|
|
1454
|
+
}
|
|
1455
|
+
logger.debug(styleText10("dim", `Tracked change '${changedPath}'.`));
|
|
1488
1456
|
const existingPaths = changedPackagePaths.get(packageName);
|
|
1489
1457
|
if (existingPaths) {
|
|
1490
1458
|
existingPaths.add(changedPath);
|
|
@@ -1492,6 +1460,9 @@ var watchPackageChanges = (packageData, packageGraphs, watchConfig, rootDir, log
|
|
|
1492
1460
|
changedPackagePaths.set(packageName, new Set([changedPath]));
|
|
1493
1461
|
}
|
|
1494
1462
|
}
|
|
1463
|
+
if (debounceTimeout) {
|
|
1464
|
+
clearTimeout(debounceTimeout);
|
|
1465
|
+
}
|
|
1495
1466
|
const debounceMs = isInitial ? 0 : watchConfig.debounceMs;
|
|
1496
1467
|
debounceTimeout = setTimeout(() => {
|
|
1497
1468
|
if (closed) {
|
|
@@ -1610,5 +1581,5 @@ export {
|
|
|
1610
1581
|
BumpVersionType
|
|
1611
1582
|
};
|
|
1612
1583
|
|
|
1613
|
-
//# debugId=
|
|
1584
|
+
//# debugId=68AF287603F1263364756E2164756E21
|
|
1614
1585
|
//# sourceMappingURL=index.js.map
|
package/index.js.map
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["..\\..\\packages\\core\\src\\lib\\types\\bump-version-type.ts", "..\\..\\packages\\core\\src\\lib\\api.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\\package\\types\\dependencies-field.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\\load-packages.ts", "..\\..\\packages\\core\\src\\lib\\package\\functions\\scan-packages.ts", "..\\..\\packages\\core\\src\\lib\\package\\functions\\parse-package.ts", "..\\..\\packages\\core\\src\\lib\\package\\functions\\scan-package-paths.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\\process\\functions\\parse-ps-flags.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\\package\\functions\\update-package-version.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\\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"],
|
|
3
|
+
"sources": ["..\\..\\packages\\core\\src\\lib\\types\\bump-version-type.ts", "..\\..\\packages\\core\\src\\lib\\api.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\\package\\types\\dependencies-field.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\\load-packages.ts", "..\\..\\packages\\core\\src\\lib\\package\\functions\\scan-packages.ts", "..\\..\\packages\\core\\src\\lib\\package\\functions\\parse-package.ts", "..\\..\\packages\\core\\src\\lib\\package\\functions\\scan-package-paths.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\\process\\functions\\parse-ps-shell-flags.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\\package\\functions\\update-package-version.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\\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-pattern-separators.ts", "..\\..\\packages\\core\\src\\lib\\watch\\functions\\normalise-watched-file-path.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
6
|
"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 { updatePackageVersion } from './package/functions/update-package-version.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.json` 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.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 updatePackageVersion(\r\n\t\toptions.packageName,\r\n\t\toptions.type,\r\n\t\toptions.packageGraphs,\r\n\t\tpreId,\r\n\t\texact,\r\n\t\toptions.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",
|
|
7
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",
|
|
8
|
-
"import { styleText } from 'node:util';\r\nimport { dirname } from 'path';\r\nimport { cwd } from 'process';\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\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\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.info('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",
|
|
8
|
+
"import { styleText } from 'node:util';\r\nimport { dirname } from 'path';\r\nimport { cwd } from 'process';\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\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.info('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",
|
|
9
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",
|
|
10
|
-
"import * as z from 'zod/mini';\r\nimport { zLooseFunction } from '../functions/z-loose-function.ts';\r\nimport { zLooseObjectWithoutIndexSignature } from '../functions/z-loose-object-without-index-signature.ts';\r\n\r\nexport const LogLevel = z.enum([\r\n\t'debug',\r\n\t'info',\r\n\t'warn',\r\n\t'error',\r\n\t'silent',\r\n]);\r\n\r\nexport const Config = z.object({\r\n\t/**\r\n\t * Tell PackagePal where to look for package.json files.\r\n\t * @default 'packages/*'\r\n\t * @example\r\n\t * // ppal.config.json\r\n\t * {\r\n\t * \"packages\": \"packages/*\"\r\n\t * }\r\n\t */\r\n\tpackages: z.optional(z.union([z.string(), z.array(z.string())])),\r\n\t/**\r\n\t * Versioning strategy.\r\n\t */\r\n\tversion: z.optional(z.object({\r\n\t\t/**\r\n\t\t * Pre-release identifier to use when bumping versions.\r\n\t\t * @default ''\r\n\t\t * @example\r\n\t\t * // ppal.config.json\r\n\t\t * {\r\n\t\t * \"preId\": \"beta\"\r\n\t\t * }\r\n\t\t */\r\n\t\tpreId: z.optional(z.string()),\r\n\t\t/**\r\n\t\t * If true, all dependencies will be bumped to the new version exactly (no ranges or wildcards).\r\n\t\t * @default false\r\n\t\t */\r\n\t\texact: z.optional(z.boolean()),\r\n\t})),\r\n\t/**\r\n\t * Configuration for watching packages and triggering tasks on change.\r\n\t */\r\n\twatch: z.optional(zLooseObjectWithoutIndexSignature({\r\n\t\t/**\r\n\t\t * Delay (in milliseconds) before triggering after detecting a change.\r\n\t\t * @default 500\r\n\t\t */\r\n\t\tdebounceMs: z.optional(z.number()),\r\n\t\t/**\r\n\t\t * Lifecycle hooks to tap into different stages of topological package processing and readiness.\r\n\t\t */\r\n\t\thooks: z.optional(z.object({\r\n\t\t\t/**\r\n\t\t\t * Called once when watch is initialised.\r\n\t\t\t */\r\n\t\t\tonInit: z.optional(zLooseFunction()),\r\n\t\t\t/**\r\n\t\t\t * Called before each package is processed.\r\n\t\t\t */\r\n\t\t\tonBeforeProcessPackage: z.optional(zLooseFunction()),\r\n\t\t\t/**\r\n\t\t\t * Called to process each package.\r\n\t\t\t */\r\n\t\t\tonProcessPackage: z.optional(zLooseFunction()),\r\n\t\t\t/**\r\n\t\t\t * Called if an error occurs while processing a package.\r\n\t\t\t */\r\n\t\t\tonProcessPackageError: z.optional(zLooseFunction()),\r\n\t\t\t/**\r\n\t\t\t * Called after each package is successfully processed.\r\n\t\t\t */\r\n\t\t\tonAfterProcessPackage: z.optional(zLooseFunction()),\r\n\t\t\t/**\r\n\t\t\t * Called after all packages have been processed, before packages ready.\r\n\t\t\t */\r\n\t\t\tonBeforePackagesReady: z.optional(zLooseFunction()),\r\n\t\t\t/**\r\n\t\t\t * Called after all packages have been processed.\r\n\t\t\t */\r\n\t\t\tonPackagesReady: z.optional(zLooseFunction()),\r\n\t\t\t/**\r\n\t\t\t * Called after all packages have been processed, after packages ready.\r\n\t\t\t */\r\n\t\t\tonAfterPackagesReady: z.optional(zLooseFunction()),\r\n\t\t})),\r\n\t\t/**\r\n\t\t * Subprocess behavior options when running package commands.\r\n\t\t */\r\n\t\tsubprocess: z.optional(z.object({\r\n\t\t\t/**\r\n\t\t\t * If true, keep previous processes alive on changes when possible.\r\n\t\t\t * @default false\r\n\t\t\t */\r\n\t\t\tpartialProcessing: z.optional(z.boolean()),\r\n\t\t\t/**\r\n\t\t\t * If set, limits concurrency of parallel processing of (non-dependent) packages.\r\n\t\t\t */\r\n\t\t\tconcurrency: z.nullish(z.number()),\r\n\t\t\t/**\r\n\t\t\t * A string or list of strings that indicates a long-running subprocess is \"ready\" - from stdout or stderr.\r\n\t\t\t * @example\r\n\t\t\t * { \"matchLongRunningOutputAsReady\": [\"Listening on port\"] }\r\n\t\t\t */\r\n\t\t\tmatchLongRunningOutputAsReady: z.nullish(z.union([z.string(), z.array(z.string())])),\r\n\t\t\t/**\r\n\t\t\t * A string or list of strings that indicates a long-running subprocess has errored - from stdout or stderr.\r\n\t\t\t * @example\r\n\t\t\t * { \"matchLongRunningOutputAsErrored\": [\"ERROR\"] }\r\n\t\t\t */\r\n\t\t\tmatchLongRunningOutputAsErrored: z.nullish(z.union([z.string(), z.array(z.string())])),\r\n\t\t})),\r\n\t})),\r\n\t/**\r\n\t * Controls the verbosity of logs.\r\n\t * @default \"info\"\r\n\t * @example\r\n\t * { \"logLevel\": \"debug\" }\r\n\t */\r\n\tlogLevel: z.optional(LogLevel),\r\n});\r\n",
|
|
10
|
+
"import * as z from 'zod/mini';\r\nimport { zLooseFunction } from '../functions/z-loose-function.ts';\r\nimport { zLooseObjectWithoutIndexSignature } from '../functions/z-loose-object-without-index-signature.ts';\r\n\r\nexport const LogLevel = z.enum([\r\n\t'debug',\r\n\t'info',\r\n\t'warn',\r\n\t'error',\r\n\t'silent',\r\n]);\r\n\r\nexport const Config = z.object({\r\n\t/**\r\n\t * Tell PackagePal where to look for package.json files.\r\n\t * @default 'packages/*'\r\n\t * @example\r\n\t * // ppal.config.json\r\n\t * {\r\n\t * \"packages\": \"packages/*\"\r\n\t * }\r\n\t */\r\n\tpackages: z.optional(z.union([z.string(), z.array(z.string())])),\r\n\t/**\r\n\t * Versioning strategy.\r\n\t */\r\n\tversion: z.optional(z.object({\r\n\t\t/**\r\n\t\t * Pre-release identifier to use when bumping versions.\r\n\t\t * @default ''\r\n\t\t * @example\r\n\t\t * // ppal.config.json\r\n\t\t * {\r\n\t\t * \"preId\": \"beta\"\r\n\t\t * }\r\n\t\t */\r\n\t\tpreId: z.optional(z.string()),\r\n\t\t/**\r\n\t\t * If true, all dependencies will be bumped to the new version exactly (no ranges or wildcards).\r\n\t\t * @default false\r\n\t\t */\r\n\t\texact: z.optional(z.boolean()),\r\n\t})),\r\n\t/**\r\n\t * Configuration for watching packages and triggering tasks on change.\r\n\t */\r\n\twatch: z.optional(zLooseObjectWithoutIndexSignature({\r\n\t\t/**\r\n\t\t * Delay (in milliseconds) before triggering after detecting a change.\r\n\t\t * @default 500\r\n\t\t */\r\n\t\tdebounceMs: z.optional(z.number()),\r\n\t\t/**\r\n\t\t * Patterns to ignore and prevent watch updates from matching files.\r\n\t\t */\r\n\t\tignore: z.optional(z.union([z.string(), z.array(z.string())])),\r\n\t\t/**\r\n\t\t * Lifecycle hooks to tap into different stages of topological package processing and readiness.\r\n\t\t */\r\n\t\thooks: z.optional(z.object({\r\n\t\t\t/**\r\n\t\t\t * Called once when watch is initialised.\r\n\t\t\t */\r\n\t\t\tonInit: z.optional(zLooseFunction()),\r\n\t\t\t/**\r\n\t\t\t * Called before each package is processed.\r\n\t\t\t */\r\n\t\t\tonBeforeProcessPackage: z.optional(zLooseFunction()),\r\n\t\t\t/**\r\n\t\t\t * Called to process each package.\r\n\t\t\t */\r\n\t\t\tonProcessPackage: z.optional(zLooseFunction()),\r\n\t\t\t/**\r\n\t\t\t * Called if an error occurs while processing a package.\r\n\t\t\t */\r\n\t\t\tonProcessPackageError: z.optional(zLooseFunction()),\r\n\t\t\t/**\r\n\t\t\t * Called after each package is successfully processed.\r\n\t\t\t */\r\n\t\t\tonAfterProcessPackage: z.optional(zLooseFunction()),\r\n\t\t\t/**\r\n\t\t\t * Called after all packages have been processed, before packages ready.\r\n\t\t\t */\r\n\t\t\tonBeforePackagesReady: z.optional(zLooseFunction()),\r\n\t\t\t/**\r\n\t\t\t * Called after all packages have been processed.\r\n\t\t\t */\r\n\t\t\tonPackagesReady: z.optional(zLooseFunction()),\r\n\t\t\t/**\r\n\t\t\t * Called after all packages have been processed, after packages ready.\r\n\t\t\t */\r\n\t\t\tonAfterPackagesReady: z.optional(zLooseFunction()),\r\n\t\t})),\r\n\t\t/**\r\n\t\t * Subprocess behavior options when running package commands.\r\n\t\t */\r\n\t\tsubprocess: z.optional(z.object({\r\n\t\t\t/**\r\n\t\t\t * If true, keep previous processes alive on changes when possible.\r\n\t\t\t * @default false\r\n\t\t\t */\r\n\t\t\tpartialProcessing: z.optional(z.boolean()),\r\n\t\t\t/**\r\n\t\t\t * If set, limits concurrency of parallel processing of (non-dependent) packages.\r\n\t\t\t */\r\n\t\t\tconcurrency: z.nullish(z.number()),\r\n\t\t\t/**\r\n\t\t\t * A string or list of strings that indicates a long-running subprocess is \"ready\" - from stdout or stderr.\r\n\t\t\t * @example\r\n\t\t\t * { \"matchLongRunningOutputAsReady\": [\"Listening on port\"] }\r\n\t\t\t */\r\n\t\t\tmatchLongRunningOutputAsReady: z.nullish(z.union([z.string(), z.array(z.string())])),\r\n\t\t\t/**\r\n\t\t\t * A string or list of strings that indicates a long-running subprocess has errored - from stdout or stderr.\r\n\t\t\t * @example\r\n\t\t\t * { \"matchLongRunningOutputAsErrored\": [\"ERROR\"] }\r\n\t\t\t */\r\n\t\t\tmatchLongRunningOutputAsErrored: z.nullish(z.union([z.string(), z.array(z.string())])),\r\n\t\t})),\r\n\t})),\r\n\t/**\r\n\t * Controls the verbosity of logs.\r\n\t * @default \"info\"\r\n\t * @example\r\n\t * { \"logLevel\": \"debug\" }\r\n\t */\r\n\tlogLevel: z.optional(LogLevel),\r\n});\r\n",
|
|
11
11
|
"import { z } from 'zod/mini';\r\n\r\nexport const zLooseFunction = (): z.ZodMiniType<Function> => {\r\n\treturn z.transform((arg: unknown, ctx) => {\r\n\t\tif (typeof arg !== 'function') {\r\n\t\t\tctx.issues.push({\r\n\t\t\t\tmessage: 'Expected a function',\r\n\t\t\t\tcode: 'custom',\r\n\t\t\t\tinput: arg,\r\n\t\t\t});\r\n\t\t\treturn z.NEVER;\r\n\t\t}\r\n\r\n\t\treturn arg;\r\n\t});\r\n};\r\n",
|
|
12
12
|
"import * as z from 'zod/mini';\r\nimport type * as core from 'zod/v4/core';\r\n\r\nexport const zLooseObjectWithoutIndexSignature = <T extends core.$ZodLooseShape = Record<never, core.SomeType>>(\r\n\tshape: T,\r\n\tparams?: string | core.$ZodObjectParams,\r\n): z.ZodMiniObject<T> => {\r\n\treturn z.looseObject(shape, params);\r\n};\r\n",
|
|
13
13
|
"import {\r\n\tbasename, extname,\r\n} from 'path';\r\nimport type { ConfigValidationResult } from '../types/config-validation-result.ts';\r\nimport { SupportedConfigType } from '../types/supported-config-type.ts';\r\n\r\nexport const CONFIG_SUPPORTED_BASE_NAME = 'ppal.config' as const;\r\n\r\nexport const CONFIG_SUPPORTED_TYPES = Object.values(SupportedConfigType);\r\n\r\nexport const CONFIG_SUPPORTED_NAMES = CONFIG_SUPPORTED_TYPES.map(type => `${CONFIG_SUPPORTED_BASE_NAME}.${type}` as const);\r\n\r\nexport const validateConfigPath = (path: string): ConfigValidationResult => {\r\n\tconst name = basename(path);\r\n\tconst extension = extname(path);\r\n\tconst type = CONFIG_SUPPORTED_TYPES.find(option => `.${option}` === extension);\r\n\r\n\tif (!name.startsWith(CONFIG_SUPPORTED_BASE_NAME) || !type) {\r\n\t\treturn {\r\n\t\t\tvalid: false,\r\n\t\t\terrorMessage: `'${name}' is not a valid config file. Only '${CONFIG_SUPPORTED_NAMES.join(', ')}' are supported.`,\r\n\t\t};\r\n\t}\r\n\r\n\treturn {\r\n\t\tvalid: true,\r\n\t\tname,\r\n\t\ttype,\r\n\t};\r\n};\r\n",
|
|
14
14
|
"import type { ValueOf } from '@package-pal/util';\r\n\r\nexport const SupportedConfigType = {\r\n\tTS: 'ts',\r\n\tCTS: 'cts',\r\n\tMTS: 'mts',\r\n\tJS: 'js',\r\n\tCJS: 'cjs',\r\n\tMJS: 'mjs',\r\n} as const;\r\n\r\nexport type SupportedConfigType = ValueOf<typeof SupportedConfigType>;\r\n",
|
|
15
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",
|
|
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\
|
|
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",
|
|
17
17
|
"import { dirname } from 'path';\r\n\r\nexport const isRootDir = (path: string) => {\r\n\treturn dirname(path) === path;\r\n};\r\n",
|
|
18
18
|
"import { styleText } from 'node:util';\r\nimport { assertDefined } from '@package-pal/util';\r\nimport type { Logger } from '../../configuration/types/logger.ts';\r\nimport { DependenciesField } from '../../package/types/dependencies-field.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\tconst iterateEntries = Object.values(DependenciesField).map(field => packageData[field]);\r\n\r\n\tfor (const packageEntries of iterateEntries) {\r\n\t\tif (!packageEntries) {\r\n\t\t\tcontinue;\r\n\t\t}\r\n\r\n\t\tfor (const trackPackageName of Object.keys(packageEntries)) {\r\n\t\t\tif (!packageNames.has(trackPackageName)) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\ttrackedDependencies.add(trackPackageName);\r\n\t\t}\r\n\t}\r\n};\r\n\r\nconst generateReverseGraph = (packages: PackageData[], packageGraph: PackageGraph) => {\r\n\tconst reversePackageGraph: PackageGraph = new Map(packages.map(packageData => [packageData.name, {\r\n\t\tpackageData: packageData,\r\n\t\tpointsToPackages: new Set<string>(),\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",
|
|
19
19
|
"import type { ValueOf } from '@package-pal/util';\r\n\r\nexport const DependenciesField = {\r\n\tDependencies: 'dependencies',\r\n\tDevDependencies: 'devDependencies',\r\n\tPeerDependencies: 'peerDependencies',\r\n\tOptionalDependencies: 'optionalDependencies',\r\n} as const;\r\n\r\nexport type DependenciesField = ValueOf<typeof DependenciesField>;\r\n",
|
|
@@ -23,31 +23,32 @@
|
|
|
23
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) ? [...traverseFromPackages] : [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",
|
|
24
24
|
"import { styleText } from 'node: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\treturn degB - degA;\r\n\t})\r\n\t\t.sort();\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 graphEntries = Array.from(packageGraph.entries());\r\n\tconst inDegree = new Map<string, number>(graphEntries.map(([packageName]) => [packageName, 0]));\r\n\tconst graph = new Map<string, Set<string>>(graphEntries.map(([packageName]) => [packageName, new Set()]));\r\n\r\n\tfor (const [packageName, node] of graphEntries) {\r\n\t\tfor (const dependencyName of node.pointsToPackages) {\r\n\t\t\tassertDefined(graph.get(dependencyName)).add(packageName);\r\n\t\t\tinDegree.set(packageName, assertDefined(inDegree.get(packageName)) + 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",
|
|
25
25
|
"import { styleText } from 'node:util';\r\nimport type { Logger } from '../../configuration/types/logger.ts';\r\nimport type { PackageData } from '../types/package-data.ts';\r\nimport { scanPackages } from './scan-packages.ts';\r\n\r\nexport const loadPackages = async (\r\n\trootDir: string, packagePatterns: string[], logger: Logger,\r\n) => {\r\n\tconst patternContent = packagePatterns.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 scanPackages(\r\n\t\tArray.from(new Set(packagePatterns)), 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
|
-
"import { styleText } from 'node:util';\r\nimport {\r\n\tdirname, join,\r\n} from 'path';\r\nimport { formatUnknownError } from '@package-pal/util';\r\nimport type { Logger } from '../../configuration/types/logger.ts';\r\nimport type { PackageData } from '../types/package-data.ts';\r\nimport { parsePackage } from './parse-package.ts';\r\nimport { scanPackagePaths } from './scan-package-paths.ts';\r\n\r\nexport const scanPackages = async function* (\r\n\tpatterns: string[], logger: Logger, cwd?: string,\r\n): AsyncIterable<PackageData> {\r\n\tfor await (const path of scanPackagePaths(patterns, cwd)) {\r\n\t\tconst packagePath = join(path, 'package.json');\r\n\t\tconst dir = dirname(packagePath);\r\n\r\n\t\ttry {\r\n\t\t\tlogger.debug(styleText('dim', `Trying to read read package.json in '${dir}'.`));\r\n\t\t\tconst file = Bun.file(packagePath);\r\n\r\n\t\t\t// TODO-MC:
|
|
26
|
+
"import { styleText } from 'node:util';\r\nimport {\r\n\tdirname, join,\r\n} from 'path';\r\nimport { formatUnknownError } from '@package-pal/util';\r\nimport type { Logger } from '../../configuration/types/logger.ts';\r\nimport type { PackageData } from '../types/package-data.ts';\r\nimport { parsePackage } from './parse-package.ts';\r\nimport { scanPackagePaths } from './scan-package-paths.ts';\r\n\r\nexport const scanPackages = async function* (\r\n\tpatterns: string[], logger: Logger, cwd?: string,\r\n): AsyncIterable<PackageData> {\r\n\tfor await (const path of scanPackagePaths(patterns, cwd)) {\r\n\t\tconst packagePath = join(path, 'package.json');\r\n\t\tconst dir = dirname(packagePath);\r\n\r\n\t\ttry {\r\n\t\t\tlogger.debug(styleText('dim', `Trying to read read package.json in '${dir}'.`));\r\n\t\t\tconst file = Bun.file(packagePath);\r\n\r\n\t\t\t// TODO-MC: Windows - file.text() kills the process for non-existent files...\r\n\t\t\tif (!file.size) {\r\n\t\t\t\tlogger.debug(styleText('dim', `Failed to read package.json in '${dir}' - ${styleText('red', 'File not found')}.`));\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tconst text = await file.text();\r\n\t\t\tconst packageData = parsePackage(packagePath, text);\r\n\r\n\t\t\tif (!packageData) {\r\n\t\t\t\tlogger.debug(styleText('dim', `Invalid package.json found in '${dir}'.`));\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tlogger.debug(styleText('dim', `Successfully read package.json in '${dir}'.`));\r\n\t\t\tyield packageData;\r\n\t\t} catch (e: unknown) {\r\n\t\t\tlogger.debug(styleText('dim', `Failed to read package.json in '${dir}' - ${styleText('red', formatUnknownError(e))}.`));\r\n\t\t}\r\n\t}\r\n};\r\n",
|
|
27
27
|
"import {\r\n\tdirname, basename,\r\n} from 'path';\r\nimport { isDefined } from '@package-pal/util';\r\nimport { DependenciesField } from '../types/dependencies-field.ts';\r\nimport type { PackageData } from '../types/package-data.ts';\r\n\r\nexport const parsePackage = (path: string, text: string): PackageData | undefined => {\r\n\tconst base: unknown = JSON.parse(text);\r\n\r\n\tif (!isDefined(base) || typeof base !== 'object') {\r\n\t\treturn;\r\n\t}\r\n\r\n\tconst props = base as Partial<PackageData>;\r\n\tconst {\r\n\t\tdependencies, peerDependencies, devDependencies,\r\n\t} = props;\r\n\r\n\tfor (const field of Object.values(DependenciesField)) {\r\n\t\tconst value = props[field];\r\n\t\tif (isDefined(value) && typeof value !== 'object') {\r\n\t\t\treturn;\r\n\t\t}\r\n\t}\r\n\r\n\treturn {\r\n\t\trawContent: text,\r\n\t\tpath,\r\n\t\tname: props.name ?? path,\r\n\t\tdir: basename(dirname(path)),\r\n\t\tversion: props.version ?? undefined,\r\n\t\tdependencies: dependencies ?? undefined,\r\n\t\tpeerDependencies: peerDependencies ?? undefined,\r\n\t\tdevDependencies: devDependencies ?? undefined,\r\n\t};\r\n};\r\n",
|
|
28
28
|
"import { scanGlobPatternPaths } from '@package-pal/util';\r\nimport type { GlobScanOptions } from 'bun';\r\n\r\nexport const scanPackagePaths = (packages: string[], cwd?: string) => {\r\n\tconst baseOpts = {\r\n\t\tabsolute: true,\r\n\t\tonlyFiles: false,\r\n\t} as const satisfies Partial<GlobScanOptions>;\r\n\r\n\tconst opts: GlobScanOptions = {\r\n\t\t...baseOpts,\r\n\t\t...(cwd ? { cwd } : {}),\r\n\t};\r\n\r\n\treturn scanGlobPatternPaths(packages, opts);\r\n};\r\n",
|
|
29
29
|
"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.groups.concat(packageOrder.circular);\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\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",
|
|
30
30
|
"import { styleText } from 'node: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\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 commands = 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} 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\twrite: 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\twrite: getLineBufferedWriter(styleText('yellow', styleText('dim', `[E-${pid}]`.padEnd(minPrefixLen, ' ')))),\r\n\t\t}] as const\r\n\t).map(({\r\n\t\tsource, type, write,\r\n\t}) => {\r\n\t\treturn readStream(source, (chunk) => {\r\n\t\t\twrite(chunk);\r\n\r\n\t\t\tif (opts.onStdChunk) {\r\n\t\t\t\topts.onStdChunk(chunk, type);\r\n\t\t\t}\r\n\t\t});\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",
|
|
31
31
|
"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",
|
|
32
32
|
"import type { ValueOf } from '@package-pal/util';\r\n\r\nexport const StdType = {\r\n\tOut: 'Out',\r\n\tErr: 'Err',\r\n} as const;\r\n\r\nexport type StdType = ValueOf<typeof StdType>;\r\n",
|
|
33
|
-
"import {\n\tescapeShellArg,\n\tgetShell, Shell,\n} from '@package-pal/util';\nimport {
|
|
34
|
-
"import { assertDefined } from '@package-pal/util';\r\n\r\nconst
|
|
33
|
+
"import {\r\n\tescapeShellArg,\r\n\tgetShell, Shell,\r\n} from '@package-pal/util';\r\nimport { parsePsShellFlags } from './parse-ps-shell-flags.ts';\r\n\r\nexport const getCommandsForShell = (shellCommand: string): string[] => {\r\n\tconst shell = getShell();\r\n\r\n\tswitch (shell) {\r\n\t\tcase Shell.cmd:\r\n\t\t\treturn [\r\n\t\t\t\tshell,\r\n\t\t\t\t'/c',\r\n\t\t\t\tescapeShellArg(shellCommand, shell),\r\n\t\t\t];\r\n\r\n\t\tcase Shell.pwsh:\r\n\t\tcase Shell.powershell:\r\n\t\t\tconst {\r\n\t\t\t\tflags, command, isPreEncoded,\r\n\t\t\t} = parsePsShellFlags(shellCommand);\r\n\r\n\t\t\tif (isPreEncoded) {\r\n\t\t\t\treturn [shell, shellCommand];\r\n\t\t\t}\r\n\r\n\t\t\tconst encodedCommand = Buffer.from(command || ' ', 'utf16le').toString('base64');\r\n\t\t\treturn [\r\n\t\t\t\tshell,\r\n\t\t\t\t...flags,\r\n\t\t\t\t...(encodedCommand ? ['-EncodedCommand', encodedCommand] : []),\r\n\t\t\t];\r\n\r\n\t\tdefault:\r\n\t\t\treturn [\r\n\t\t\t\tshell,\r\n\t\t\t\t'-c',\r\n\t\t\t\tescapeShellArg(shellCommand, shell),\r\n\t\t\t];\r\n\t}\r\n};\r\n",
|
|
34
|
+
"import { assertDefined } from '@package-pal/util';\r\n\r\nconst shellFlagsWithParams = new Set([\r\n\t'-executionpolicy',\r\n\t'-windowstyle',\r\n\t'-version',\r\n]);\r\n\r\nconst shellFlagsNoParams = new Set([\r\n\t'-noprofile',\r\n\t'-noninteractive',\r\n\t'-sta',\r\n\t'-mta',\r\n\t'-nologo',\r\n\t'-help',\r\n\t'-?',\r\n\t'-noexit',\r\n\t'-usewindowspowerShell',\r\n]);\r\n\r\n/**\r\n * Extracts shell-level flags from a command string\r\n */\r\nexport const parsePsShellFlags = (input: string) => {\r\n\tconst isPreEncoded = input.toLowerCase().includes('-encodedcommand');\r\n\tconst tokens = input.match(/\"[^\"]*\"|'[^']*'|\\S+/g) ?? [];\r\n\tconst flags = new Set<string>();\r\n\tlet i = 0;\r\n\r\n\twhile (i < tokens.length) {\r\n\t\tconst token = assertDefined(tokens[i]);\r\n\t\tconst tokenLower = token.toLowerCase();\r\n\r\n\t\tif (shellFlagsWithParams.has(tokenLower)) {\r\n\t\t\tflags.add(token);\r\n\r\n\t\t\tif (i + 1 < tokens.length) {\r\n\t\t\t\tflags.add(assertDefined(tokens[i + 1]));\r\n\t\t\t\ti++;\r\n\t\t\t}\r\n\r\n\t\t\ti++;\r\n\t\t} else if (shellFlagsNoParams.has(tokenLower)) {\r\n\t\t\tflags.add(token);\r\n\t\t\ti++;\r\n\t\t} else {\r\n\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\r\n\tconst command = tokens.slice(i).join(' ');\r\n\r\n\treturn {\r\n\t\tflags,\r\n\t\tcommand,\r\n\t\tisPreEncoded,\r\n\t};\r\n};\r\n",
|
|
35
35
|
"import { identity } from '@package-pal/util';\r\n\r\nexport const getLineBufferedWriter = (\r\n\tprefix: string, style: (s: string) => string = identity, write: (chunk: string) => void = process.stdout.write.bind(process.stdout),\r\n) => {\r\n\tlet buffer = '';\r\n\r\n\treturn (chunk: string) => {\r\n\t\tbuffer += chunk;\r\n\r\n\t\tconst lines = buffer.split('\\n');\r\n\t\tbuffer = lines.pop() ?? '';\r\n\r\n\t\tfor (const line of lines) {\r\n\t\t\twrite(`${prefix}${style(line)}\\n`);\r\n\t\t}\r\n\t};\r\n};\r\n",
|
|
36
36
|
"export const readStream = async (stream: ReadableStream<Uint8Array>,\r\n\tuse: (chunk: string) => void) => {\r\n\tconst decoder = new TextDecoder();\r\n\tconst reader = stream.getReader();\r\n\r\n\tlet result = await reader.read();\r\n\twhile (!result.done) {\r\n\t\tuse(decoder.decode(result.value, { stream: true }));\r\n\t\tresult = await reader.read();\r\n\t}\r\n\r\n\tconst flush = decoder.decode();\r\n\tif (flush) {\r\n\t\tuse(flush);\r\n\t}\r\n};\r\n",
|
|
37
37
|
"import { styleText } from 'node:util';\r\nimport { semver } from 'bun';\r\nimport { inc } from 'semver';\r\nimport type { Logger } from '../../configuration/types/logger.ts';\r\nimport { dfsTraverseGraph } from '../../graph/functions/dfs-traverse-graph.ts';\r\nimport type { PackageGraphs } from '../../graph/types/package-graphs.ts';\r\nimport type { BumpVersionType } from '../../types/bump-version-type.ts';\r\nimport { DependenciesField } from '../types/dependencies-field.ts';\r\n\r\nconst findAndReplaceVersion = ({\r\n\traw,\r\n\tfield,\r\n\tpackageName,\r\n\tupdatePackageName,\r\n\tnewVersion,\r\n\texact,\r\n\tlogger,\r\n}: {\r\n\traw: string;\r\n\tfield: 'version' | DependenciesField;\r\n\tpackageName: string;\r\n\tupdatePackageName: string;\r\n\tnewVersion: string;\r\n\texact: boolean | undefined;\r\n\tlogger: Logger;\r\n}): string => {\r\n\tif (field === 'version' && packageName === updatePackageName) {\r\n\t\tconst versionKey = `\"version\"`;\r\n\t\tconst keyIndex = raw.indexOf(versionKey);\r\n\t\tif (keyIndex === -1) {\r\n\t\t\treturn raw;\r\n\t\t}\r\n\r\n\t\tconst versionStart = raw.indexOf('\"', keyIndex + versionKey.length);\r\n\t\tconst versionEnd = raw.indexOf('\"', versionStart + 1);\r\n\t\tif (versionStart === -1 || versionEnd === -1) {\r\n\t\t\treturn raw;\r\n\t\t}\r\n\r\n\t\tconst currentVersionString = raw.slice(versionStart + 1, versionEnd);\r\n\t\tconst updatedVersion = newVersion;\r\n\t\tlogger.info(`Updating '${updatePackageName}' version: ${currentVersionString} → ${updatedVersion}.`);\r\n\t\tconst before = raw.slice(0, versionStart + 1);\r\n\t\tconst after = raw.slice(versionEnd);\r\n\r\n\t\treturn `${before}${updatedVersion}${after}`;\r\n\t}\r\n\r\n\tconst fieldIndex = raw.indexOf(`\"${field}\"`);\r\n\tif (fieldIndex === -1) {\r\n\t\treturn raw;\r\n\t}\r\n\r\n\tconst fieldStart = raw.indexOf('{', fieldIndex);\r\n\tif (fieldStart === -1) {\r\n\t\treturn raw;\r\n\t}\r\n\r\n\tconst fieldEnd = raw.indexOf('}', fieldStart);\r\n\tif (fieldEnd === -1) {\r\n\t\treturn raw;\r\n\t}\r\n\r\n\tconst fieldBlock = raw.slice(fieldStart, fieldEnd);\r\n\tconst depKey = `\"${packageName}\"`;\r\n\tconst depIndex = fieldBlock.indexOf(depKey);\r\n\tif (depIndex === -1) {\r\n\t\treturn raw;\r\n\t}\r\n\r\n\tconst versionStart = fieldBlock.indexOf('\"', depIndex + depKey.length);\r\n\tconst versionEnd = fieldBlock.indexOf('\"', versionStart + 1);\r\n\tif (versionStart === -1 || versionEnd === -1) {\r\n\t\treturn raw;\r\n\t}\r\n\r\n\tconst currentVersionString = fieldBlock.slice(versionStart + 1, versionEnd);\r\n\tconst preservedPrefix = exact ? '' : (/^([~^><=]*)/.exec(currentVersionString)?.[1] ?? '');\r\n\tconst updatedVersion = `${preservedPrefix}${newVersion}`;\r\n\tlogger.info(`Updating '${updatePackageName}' ${field} '${packageName}': ${currentVersionString} → ${updatedVersion}.`);\r\n\tconst before = raw.slice(0, fieldStart + versionStart + 1);\r\n\tconst after = raw.slice(fieldStart + versionEnd);\r\n\r\n\treturn `${before}${updatedVersion}${after}`;\r\n};\r\n\r\nexport const updatePackageVersion = async (\r\n\tpackageName: string,\r\n\ttype: BumpVersionType,\r\n\tpackageGraphs: PackageGraphs,\r\n\tpreId: string | undefined,\r\n\texact: boolean | undefined,\r\n\tlogger: Logger,\r\n): Promise<void> => {\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;\r\n\tif (!currentVersion) {\r\n\t\tthrow new Error(`Package '${packageName}' has no version.`);\r\n\t}\r\n\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\tconst updatedContent = findAndReplaceVersion({\r\n\t\traw: packageNode.packageData.rawContent,\r\n\t\tfield: 'version',\r\n\t\tpackageName,\r\n\t\tupdatePackageName: packageName,\r\n\t\tnewVersion: bumpedVersion,\r\n\t\texact,\r\n\t\tlogger,\r\n\t});\r\n\r\n\tconst baseWrite = Bun.write(packageNode.packageData.path, updatedContent);\r\n\tconst dependentWrites = Array.from(dfsTraverseGraph(packageGraphs.dependents, packageName).flatMap((dependent) => {\r\n\t\treturn Object.values(DependenciesField).flatMap((field) => {\r\n\t\t\tconst entry = dependent[field];\r\n\t\t\tconst depVersion = entry?.[packageName];\r\n\t\t\tif (!depVersion) {\r\n\t\t\t\treturn [];\r\n\t\t\t}\r\n\r\n\t\t\tif (exact ? depVersion === bumpedVersion : semver.satisfies(bumpedVersion, depVersion)) {\r\n\t\t\t\tlogger.debug(styleText('dim', `Skipping '${dependent.name}': ${field} version '${depVersion}' already satisfies '${bumpedVersion}'.`));\r\n\t\t\t\treturn [];\r\n\t\t\t}\r\n\r\n\t\t\tconst updatedContent = findAndReplaceVersion({\r\n\t\t\t\traw: dependent.rawContent,\r\n\t\t\t\tfield,\r\n\t\t\t\tpackageName,\r\n\t\t\t\tupdatePackageName: dependent.name,\r\n\t\t\t\tnewVersion: bumpedVersion,\r\n\t\t\t\texact,\r\n\t\t\t\tlogger,\r\n\t\t\t});\r\n\r\n\t\t\treturn [Bun.write(dependent.path, updatedContent)];\r\n\t\t});\r\n\t}));\r\n\r\n\treturn Promise.all([baseWrite, ...dependentWrites]).then(() => undefined);\r\n};\r\n",
|
|
38
|
-
"import {\r\n\twatch, type WatchEventType,\r\n} from 'fs';\r\nimport { styleText } from 'node:util';\r\nimport {\r\n\tdirname, join,\r\n} from 'path';\r\nimport {\r\n\tassertDefined, DedupePathsBy, dedupeSharedPaths, getDeferredPromise, getStringMatcher, isDefined, runAsync,\r\n} 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 { mergeGraphs } from '../../graph/functions/merge-graphs.ts';\r\nimport type { PackageGraph } from '../../graph/types/package-graph.ts';\r\nimport type { PackageGraphs } from '../../graph/types/package-graphs.ts';\r\nimport type { PackageData } from '../../package/types/package-data.ts';\r\nimport { runSubprocess } from '../../process/functions/run-subprocess.ts';\r\nimport { ExitState } from '../../process/types/exit-state.ts';\r\nimport { ChangeAction } from '../types/change-action.ts';\r\nimport type { PackageChanges } from '../types/package-changes.ts';\r\nimport { filterFilesModifiedSince } from './filter-files-modified-since.ts';\r\nimport { getChangeLogic } from './get-change-logic.ts';\r\nimport { normaliseWatchedFilePath } from './normalise-watched-file-path.ts';\r\n\r\nconst fileModifiedThresholdMs = 5000;\r\n\r\nlet lastProcessedSubgraph: PackageGraph | undefined;\r\n\r\nconst onProcessPackage = async (\r\n\tpackageGraphs: PackageGraphs,\r\n\tpackageChanges: PackageChanges,\r\n\twatchConfig: ActivatedWatchConfig,\r\n\tdetermineAbortController: (reset: boolean) => AbortController,\r\n\tlogger: Logger,\r\n) => {\r\n\tconst {\r\n\t\taction,\r\n\t\tchangedPackageProcessOrder,\r\n\t\tchangedPackageSubgraph,\r\n\t} = getChangeLogic(\r\n\t\tpackageGraphs, packageChanges, lastProcessedSubgraph, watchConfig, logger,\r\n\t);\r\n\tconst controller = determineAbortController(action === ChangeAction.Restart);\r\n\tconst isSequential = watchConfig.subprocess.concurrency === 1;\r\n\r\n\tconst onProcessFailure = () => {\r\n\t\tlogger.debug(styleText('dim', 'Aborting controller: process failed.'));\r\n\t\tcontroller.abort();\r\n\t\tlastProcessedSubgraph = undefined;\r\n\t};\r\n\r\n\tif (action === ChangeAction.Ignore && packageChanges.size) {\r\n\t\tlogger.info(`Changes detected; but were ignored due to 'partialProcessing: true'. Waiting for changes..`);\r\n\t\treturn;\r\n\t}\r\n\r\n\tif (packageChanges.size) {\r\n\t\tlogger.info(`${action === ChangeAction.Restart\r\n\t\t\t? 'Restarting processing'\r\n\t\t\t: 'Initiating partial processing'} ${\r\n\t\t\tisSequential\r\n\t\t\t\t? 'sequentially'\r\n\t\t\t\t: `in parallel${\r\n\t\t\t\t\tisDefined(watchConfig.subprocess.concurrency)\r\n\t\t\t\t\t\t? ` with concurrency ${watchConfig.subprocess.concurrency.toString()}`\r\n\t\t\t\t\t\t: ''\r\n\t\t\t\t}`\r\n\t\t}.`);\r\n\r\n\t\tlastProcessedSubgraph = lastProcessedSubgraph ? mergeGraphs(lastProcessedSubgraph, changedPackageSubgraph) : changedPackageSubgraph;\r\n\t}\r\n\r\n\tfor (const group of changedPackageProcessOrder) {\r\n\t\tconst {\r\n\t\t\tpromise: longRunningParallelProcessReady, resolve: matchedParallelLongReadyRunningOutput,\r\n\t\t} = getDeferredPromise();\r\n\t\tlet matchedLongRunningOutputCount = 0;\r\n\r\n\t\tawait runAsync(group.map(packageName => async () => {\r\n\t\t\tconst {\r\n\t\t\t\tpromise: longRunningSequentialProcessReady, resolve: matchedSequentialLongRunningReadyOutput,\r\n\t\t\t} = getDeferredPromise();\r\n\r\n\t\t\tconst packageNode = assertDefined(packageGraphs.dependencies.get(packageName));\r\n\t\t\tconst changedPaths = packageChanges.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\tfilePaths: changedPaths,\r\n\t\t\t\ttotalChanges: packageChanges,\r\n\t\t\t\ttotalProcessOrder: changedPackageProcessOrder,\r\n\t\t\t\tsignal: controller.signal,\r\n\t\t\t};\r\n\t\t\tconst processPackageCwd = dirname(packageNode.packageData.path);\r\n\r\n\t\t\tconst beforeProcessPackageShellCommand = await watchConfig.hooks.onBeforeProcessPackage(processPackageProps);\r\n\t\t\tif (beforeProcessPackageShellCommand) {\r\n\t\t\t\tawait runSubprocess({\r\n\t\t\t\t\tdebugName: `before process ${packageName}`,\r\n\t\t\t\t\tshellCommand: beforeProcessPackageShellCommand,\r\n\t\t\t\t\tcwd: processPackageCwd,\r\n\t\t\t\t\tsignal: controller.signal,\r\n\t\t\t\t\tlogger,\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tconst processPackageShellCommand = await watchConfig.hooks.onProcessPackage(processPackageProps);\r\n\t\t\tif (processPackageShellCommand) {\r\n\t\t\t\tconst longRunningOutputReadyText = watchConfig.subprocess.matchLongRunningOutputAsReady;\r\n\t\t\t\tconst longRunningOutputErroredText = watchConfig.subprocess.matchLongRunningOutputAsErrored;\r\n\t\t\t\tconst readyMatcher = longRunningOutputReadyText ? getStringMatcher(longRunningOutputReadyText) : undefined;\r\n\t\t\t\tconst erroredMatcher = longRunningOutputErroredText ? getStringMatcher(longRunningOutputErroredText) : undefined;\r\n\t\t\t\tlet ready = false;\r\n\t\t\t\tlet errored = false;\r\n\r\n\t\t\t\tconst exit = runSubprocess({\r\n\t\t\t\t\tdebugName: `process ${packageName}`,\r\n\t\t\t\t\tshellCommand: processPackageShellCommand,\r\n\t\t\t\t\tcwd: processPackageCwd,\r\n\t\t\t\t\tsignal: controller.signal,\r\n\t\t\t\t\tlogger,\r\n\t\t\t\t\tonStdChunk: (chunk: string) => {\r\n\t\t\t\t\t\tif (!ready) {\r\n\t\t\t\t\t\t\tconst matchedReadyText = readyMatcher?.push(chunk).matched();\r\n\r\n\t\t\t\t\t\t\tif (matchedReadyText) {\r\n\t\t\t\t\t\t\t\tready = true;\r\n\t\t\t\t\t\t\t\tmatchedLongRunningOutputCount++;\r\n\t\t\t\t\t\t\t\tlogger.debug(`'${packageName}' (${matchedLongRunningOutputCount.toString()}/${group.length.toString()}) subprocess matched ready text '${matchedReadyText}'.`);\r\n\r\n\t\t\t\t\t\t\t\tif (isSequential && matchedLongRunningOutputCount) {\r\n\t\t\t\t\t\t\t\t\tmatchedSequentialLongRunningReadyOutput();\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (!errored) {\r\n\t\t\t\t\t\t\tconst matchedErrorText = erroredMatcher?.push(chunk).matched();\r\n\r\n\t\t\t\t\t\t\tif (matchedErrorText) {\r\n\t\t\t\t\t\t\t\tlogger.error(styleText('red', `'${packageName}' subprocess matched error text '${matchedErrorText}'.`));\r\n\t\t\t\t\t\t\t\terrored = true;\r\n\r\n\t\t\t\t\t\t\t\tvoid Promise.resolve(watchConfig.hooks.onProcessPackageError(processPackageProps)).then((processPackageErrorCommand) => {\r\n\t\t\t\t\t\t\t\t\tif (!processPackageErrorCommand) {\r\n\t\t\t\t\t\t\t\t\t\tonProcessFailure();\r\n\t\t\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\treturn runSubprocess({\r\n\t\t\t\t\t\t\t\t\t\tdebugName: `after process ${packageName}`,\r\n\t\t\t\t\t\t\t\t\t\tshellCommand: processPackageErrorCommand,\r\n\t\t\t\t\t\t\t\t\t\tcwd: processPackageCwd,\r\n\t\t\t\t\t\t\t\t\t\tsignal: controller.signal,\r\n\t\t\t\t\t\t\t\t\t\tlogger,\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t.then((exitState) => {\r\n\t\t\t\t\t\t\t\t\t\tif (exitState === ExitState.Errored) {\r\n\t\t\t\t\t\t\t\t\t\t\tonProcessFailure();\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (!isSequential && matchedLongRunningOutputCount === group.length) {\r\n\t\t\t\t\t\t\tmatchedParallelLongReadyRunningOutput();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\t\t\t\t}).then((exitState) => {\r\n\t\t\t\t\tif (exitState === ExitState.Errored) {\r\n\t\t\t\t\t\tonProcessFailure();\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tawait Promise.race([\r\n\t\t\t\t\tlongRunningParallelProcessReady,\r\n\t\t\t\t\tlongRunningSequentialProcessReady,\r\n\t\t\t\t\texit,\r\n\t\t\t\t]);\r\n\t\t\t}\r\n\r\n\t\t\tconst afterProcessPackageShellCommand = await watchConfig.hooks.onAfterProcessPackage(processPackageProps);\r\n\t\t\tif (afterProcessPackageShellCommand) {\r\n\t\t\t\tawait runSubprocess({\r\n\t\t\t\t\tdebugName: `after process ${packageName}`,\r\n\t\t\t\t\tshellCommand: afterProcessPackageShellCommand,\r\n\t\t\t\t\tcwd: processPackageCwd,\r\n\t\t\t\t\tsignal: controller.signal,\r\n\t\t\t\t\tlogger,\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}), watchConfig.subprocess.concurrency);\r\n\t}\r\n\r\n\tif (packageChanges.size) {\r\n\t\tlogger.info(`Processing ${controller.signal.aborted ? 'cancelled due to new changes' : 'completed'}.`);\r\n\t}\r\n\r\n\tconst packagesReadyProps = {\r\n\t\ttotalChanges: packageChanges,\r\n\t\ttotalProcessOrder: changedPackageProcessOrder,\r\n\t\tsignal: controller.signal,\r\n\t};\r\n\r\n\tconst beforePackagesReadyShellCommand = await watchConfig.hooks.onBeforePackagesReady(packagesReadyProps);\r\n\tif (beforePackagesReadyShellCommand) {\r\n\t\tawait runSubprocess({\r\n\t\t\tdebugName: 'before packages ready',\r\n\t\t\tshellCommand: beforePackagesReadyShellCommand,\r\n\t\t\tsignal: controller.signal,\r\n\t\t\tlogger,\r\n\t\t});\r\n\t}\r\n\r\n\tconst packagesReadyShellCommand = await watchConfig.hooks.onPackagesReady(packagesReadyProps);\r\n\tif (packagesReadyShellCommand) {\r\n\t\tawait runSubprocess({\r\n\t\t\tdebugName: 'packages ready',\r\n\t\t\tshellCommand: packagesReadyShellCommand,\r\n\t\t\tsignal: controller.signal,\r\n\t\t\tlogger,\r\n\t\t});\r\n\t}\r\n\r\n\tconst afterPackagesReadyShellCommand = await watchConfig.hooks.onAfterPackagesReady(packagesReadyProps);\r\n\tif (afterPackagesReadyShellCommand) {\r\n\t\tawait runSubprocess({\r\n\t\t\tdebugName: 'after packages ready',\r\n\t\t\tshellCommand: afterPackagesReadyShellCommand,\r\n\t\t\tlogger,\r\n\t\t});\r\n\t}\r\n};\r\n\r\nexport const watchPackageChanges = (\r\n\tpackageData: PackageData[],\r\n\tpackageGraphs: PackageGraphs,\r\n\twatchConfig: ActivatedWatchConfig,\r\n\trootDir: string,\r\n\tlogger: Logger,\r\n) => {\r\n\tconst dedupedRootPackageData = dedupeSharedPaths(packageData.map(packageData => packageData.path), DedupePathsBy.Parent)\r\n\t\t.map(packagePath => assertDefined(packageData.find(data => data.path === packagePath)));\r\n\tlogger.debug(styleText('dim', `Starting ${dedupedRootPackageData.length.toString()} watchers for ${packageData.length.toString()} packages.`));\r\n\r\n\tlet closed = false;\r\n\tlet debounceTimeout: ReturnType<typeof setTimeout> | undefined;\r\n\tlet startedDebounceMs: number | undefined;\r\n\tlet controller: AbortController | undefined;\r\n\tconst changedPackagePaths = new Map<string, Set<string>>();\r\n\r\n\tconst useController = (reset: boolean) => {\r\n\t\tif (controller && (reset || controller.signal.aborted)) {\r\n\t\t\tif (reset) {\r\n\t\t\t\tlogger.debug(styleText('dim', 'Aborting controller: reset for new packages.'));\r\n\t\t\t\tcontroller.abort();\r\n\t\t\t}\r\n\t\t\tcontroller = undefined;\r\n\t\t}\r\n\r\n\t\tcontroller ??= new AbortController();\r\n\t\treturn controller;\r\n\t};\r\n\r\n\tconst onWatchEvent = ({\r\n\t\twatchPath, packageName, filePath, isInitial = false,\r\n\t}: {\r\n\t\twatchPath?: string;\r\n\t\tpackageName?: string;\r\n\t\tevent?: WatchEventType;\r\n\t\tfilePath?: string | undefined;\r\n\t\tisInitial?: boolean;\r\n\t}) => {\r\n\t\tif (!isDefined(startedDebounceMs)) {\r\n\t\t\tstartedDebounceMs = Date.now();\r\n\t\t}\r\n\r\n\t\tif (debounceTimeout) {\r\n\t\t\tclearTimeout(debounceTimeout);\r\n\t\t}\r\n\r\n\t\tif (packageName && watchPath && filePath) {\r\n\t\t\tconst changedPath = join(watchPath, normaliseWatchedFilePath(filePath));\r\n\t\t\tconst existingPaths = changedPackagePaths.get(packageName);\r\n\t\t\tif (existingPaths) {\r\n\t\t\t\texistingPaths.add(changedPath);\r\n\t\t\t} else {\r\n\t\t\t\tchangedPackagePaths.set(packageName, new Set([changedPath]));\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst debounceMs = isInitial ? 0 : watchConfig.debounceMs;\r\n\t\tdebounceTimeout = setTimeout(() => {\r\n\t\t\tif (closed) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tconst packageChanges: PackageChanges = new Map();\r\n\t\t\tfor (const [packageName, paths] of changedPackagePaths) {\r\n\t\t\t\tconst dedupedPaths = dedupeSharedPaths(Array.from(paths), DedupePathsBy.Child).sort();\r\n\t\t\t\tconst processedPaths = filterFilesModifiedSince(dedupedPaths, assertDefined(startedDebounceMs) - fileModifiedThresholdMs);\r\n\t\t\t\tif (processedPaths.length) {\r\n\t\t\t\t\tpackageChanges.set(packageName, processedPaths);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tstartedDebounceMs = undefined;\r\n\t\t\tchangedPackagePaths.clear();\r\n\r\n\t\t\tif (!packageChanges.size && !isInitial) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvoid onProcessPackage(\r\n\t\t\t\tpackageGraphs,\r\n\t\t\t\tpackageChanges,\r\n\t\t\t\twatchConfig,\r\n\t\t\t\t(reset: boolean) => useController(reset),\r\n\t\t\t\tlogger,\r\n\t\t\t);\r\n\t\t}, debounceMs);\r\n\t};\r\n\r\n\tconst watchers = dedupedRootPackageData.map(({\r\n\t\tname, path,\r\n\t}) => {\r\n\t\tconst watchPath = dirname(path);\r\n\r\n\t\treturn watch(\r\n\t\t\twatchPath, { recursive: true }, (event, filePath) => {\r\n\t\t\t\tonWatchEvent({\r\n\t\t\t\t\twatchPath,\r\n\t\t\t\t\tpackageName: name,\r\n\t\t\t\t\tevent,\r\n\t\t\t\t\tfilePath: filePath ?? undefined,\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t);\r\n\t});\r\n\r\n\tconst closeWatchers = () => {\r\n\t\twatchers.forEach((watcher) => {\r\n\t\t\twatcher.close();\r\n\t\t});\r\n\t\tlogger.debug(styleText('dim', 'Aborting controller: closing watchers.'));\r\n\t\tcontroller?.abort();\r\n\t\tclosed = true;\r\n\t};\r\n\r\n\tprocess.on('SIGINT', () => {\r\n\t\tlogger.debug(styleText('dim', 'Received SIGINT: closing watchers.'));\r\n\t\tcloseWatchers();\r\n\t\tprocess.exit(0);\r\n\t});\r\n\r\n\tvoid Promise.resolve(watchConfig.hooks.onInit()).then(async (onInitShellCommand) => {\r\n\t\tif (onInitShellCommand) {\r\n\t\t\tawait runSubprocess({\r\n\t\t\t\tdebugName: `on init`,\r\n\t\t\t\tshellCommand: onInitShellCommand,\r\n\t\t\t\tsignal: useController(false).signal,\r\n\t\t\t\tcwd: rootDir,\r\n\t\t\t\tlogger,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tonWatchEvent({ isInitial: true });\r\n\t});\r\n\r\n\treturn { close: () => {\r\n\t\tif (closed) {\r\n\t\t\tlogger.debug(styleText('dim', 'Watchers already closed.'));\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tlogger.debug(styleText('dim', 'Closing watchers.'));\r\n\t\tcloseWatchers();\r\n\t} };\r\n};\r\n",
|
|
38
|
+
"import {\r\n\twatch, type WatchEventType,\r\n} from 'fs';\r\nimport { styleText } from 'node:util';\r\nimport {\r\n\tdirname, join,\r\n} from 'path';\r\nimport {\r\n\tassertDefined, DedupePathsBy, dedupeSharedPaths, getDeferredPromise, getStringMatcher, isDefined, runAsync,\r\n} from '@package-pal/util';\r\nimport { Glob } from 'bun';\r\nimport type { ActivatedWatchConfig } from '../../configuration/types/activated-config.ts';\r\nimport type { Logger } from '../../configuration/types/logger.ts';\r\nimport { mergeGraphs } from '../../graph/functions/merge-graphs.ts';\r\nimport type { PackageGraph } from '../../graph/types/package-graph.ts';\r\nimport type { PackageGraphs } from '../../graph/types/package-graphs.ts';\r\nimport type { PackageData } from '../../package/types/package-data.ts';\r\nimport { runSubprocess } from '../../process/functions/run-subprocess.ts';\r\nimport { ExitState } from '../../process/types/exit-state.ts';\r\nimport { ChangeAction } from '../types/change-action.ts';\r\nimport type { PackageChanges } from '../types/package-changes.ts';\r\nimport { filterFilesModifiedSince } from './filter-files-modified-since.ts';\r\nimport { getChangeLogic } from './get-change-logic.ts';\r\nimport { normalisePatternSeparators } from './normalise-pattern-separators.ts';\r\nimport { normaliseWatchedFilePath } from './normalise-watched-file-path.ts';\r\n\r\nconst fileModifiedThresholdMs = 5000;\r\n\r\nlet lastProcessedSubgraph: PackageGraph | undefined;\r\n\r\nconst onProcessPackage = async (\r\n\tpackageGraphs: PackageGraphs,\r\n\tpackageChanges: PackageChanges,\r\n\twatchConfig: ActivatedWatchConfig,\r\n\tdetermineAbortController: (reset: boolean) => AbortController,\r\n\tlogger: Logger,\r\n) => {\r\n\tconst {\r\n\t\taction,\r\n\t\tchangedPackageProcessOrder,\r\n\t\tchangedPackageSubgraph,\r\n\t} = getChangeLogic(\r\n\t\tpackageGraphs, packageChanges, lastProcessedSubgraph, watchConfig, logger,\r\n\t);\r\n\tconst isRestart = action === ChangeAction.Restart;\r\n\tconst isSequential = watchConfig.subprocess.concurrency === 1;\r\n\tconst controller = determineAbortController(isRestart);\r\n\r\n\tconst onProcessFailure = () => {\r\n\t\tlogger.debug(styleText('dim', 'Aborting controller: process failed.'));\r\n\t\tcontroller.abort();\r\n\t\tlastProcessedSubgraph = undefined;\r\n\t};\r\n\r\n\tif (action === ChangeAction.Ignore && packageChanges.size) {\r\n\t\tlogger.info(`Changes detected; but were ignored due to 'partialProcessing: true'. Waiting for changes..`);\r\n\t\treturn;\r\n\t}\r\n\r\n\tif (packageChanges.size) {\r\n\t\tlogger.info(`${isRestart\r\n\t\t\t? 'Restarting processing'\r\n\t\t\t: 'Initiating partial processing'} ${\r\n\t\t\tisSequential\r\n\t\t\t\t? 'sequentially'\r\n\t\t\t\t: `in parallel${\r\n\t\t\t\t\tisDefined(watchConfig.subprocess.concurrency)\r\n\t\t\t\t\t\t? ` with concurrency ${watchConfig.subprocess.concurrency.toString()}`\r\n\t\t\t\t\t\t: ''\r\n\t\t\t\t}`\r\n\t\t}.`);\r\n\r\n\t\tlastProcessedSubgraph = lastProcessedSubgraph && !isRestart ? mergeGraphs(lastProcessedSubgraph, changedPackageSubgraph) : changedPackageSubgraph;\r\n\t}\r\n\r\n\tfor (const group of changedPackageProcessOrder) {\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 changedPaths = packageChanges.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\tfilePaths: changedPaths,\r\n\t\t\t\ttotalChanges: packageChanges,\r\n\t\t\t\ttotalProcessOrder: changedPackageProcessOrder,\r\n\t\t\t\tsignal: controller.signal,\r\n\t\t\t};\r\n\t\t\tconst processPackageCwd = dirname(packageNode.packageData.path);\r\n\r\n\t\t\tconst beforeProcessPackageShellCommand = await watchConfig.hooks.onBeforeProcessPackage(processPackageProps);\r\n\t\t\tif (beforeProcessPackageShellCommand) {\r\n\t\t\t\tawait runSubprocess({\r\n\t\t\t\t\tdebugName: `before process ${packageName}`,\r\n\t\t\t\t\tshellCommand: beforeProcessPackageShellCommand,\r\n\t\t\t\t\tcwd: processPackageCwd,\r\n\t\t\t\t\tsignal: controller.signal,\r\n\t\t\t\t\tlogger,\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tconst processPackageShellCommand = await watchConfig.hooks.onProcessPackage(processPackageProps);\r\n\t\t\tif (processPackageShellCommand) {\r\n\t\t\t\tconst longRunningOutputReadyText = watchConfig.subprocess.matchLongRunningOutputAsReady;\r\n\t\t\t\tconst longRunningOutputErroredText = watchConfig.subprocess.matchLongRunningOutputAsErrored;\r\n\t\t\t\tconst readyMatcher = longRunningOutputReadyText ? getStringMatcher(longRunningOutputReadyText) : undefined;\r\n\t\t\t\tconst erroredMatcher = longRunningOutputErroredText ? getStringMatcher(longRunningOutputErroredText) : undefined;\r\n\r\n\t\t\t\tconst {\r\n\t\t\t\t\tpromise: packageReady, resolve: resolvePackageReady,\r\n\t\t\t\t} = getDeferredPromise();\r\n\r\n\t\t\t\tlet ready = false;\r\n\t\t\t\tlet errored = false;\r\n\r\n\t\t\t\tconst exit = runSubprocess({\r\n\t\t\t\t\tdebugName: `process ${packageName}`,\r\n\t\t\t\t\tshellCommand: processPackageShellCommand,\r\n\t\t\t\t\tcwd: processPackageCwd,\r\n\t\t\t\t\tsignal: controller.signal,\r\n\t\t\t\t\tlogger,\r\n\t\t\t\t\tonStdChunk: (chunk: string) => {\r\n\t\t\t\t\t\tif (!ready) {\r\n\t\t\t\t\t\t\tconst matchedReadyText = readyMatcher?.push(chunk).matched();\r\n\r\n\t\t\t\t\t\t\tif (matchedReadyText) {\r\n\t\t\t\t\t\t\t\tready = true;\r\n\t\t\t\t\t\t\t\tlogger.debug(`'${packageName}' subprocess matched ready text '${matchedReadyText}'.`);\r\n\t\t\t\t\t\t\t\tresolvePackageReady();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (!errored) {\r\n\t\t\t\t\t\t\tconst matchedErrorText = erroredMatcher?.push(chunk).matched();\r\n\r\n\t\t\t\t\t\t\tif (matchedErrorText) {\r\n\t\t\t\t\t\t\t\tlogger.error(styleText('red', `'${packageName}' subprocess matched error text '${matchedErrorText}'.`));\r\n\t\t\t\t\t\t\t\terrored = true;\r\n\r\n\t\t\t\t\t\t\t\tvoid Promise.resolve(watchConfig.hooks.onProcessPackageError(processPackageProps)).then((processPackageErrorCommand) => {\r\n\t\t\t\t\t\t\t\t\tif (!processPackageErrorCommand) {\r\n\t\t\t\t\t\t\t\t\t\tonProcessFailure();\r\n\t\t\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\treturn runSubprocess({\r\n\t\t\t\t\t\t\t\t\t\tdebugName: `after process ${packageName}`,\r\n\t\t\t\t\t\t\t\t\t\tshellCommand: processPackageErrorCommand,\r\n\t\t\t\t\t\t\t\t\t\tcwd: processPackageCwd,\r\n\t\t\t\t\t\t\t\t\t\tsignal: controller.signal,\r\n\t\t\t\t\t\t\t\t\t\tlogger,\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t.then((exitState) => {\r\n\t\t\t\t\t\t\t\t\t\tif (exitState === ExitState.Errored) {\r\n\t\t\t\t\t\t\t\t\t\t\tonProcessFailure();\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\t\t\t\t}).then((exitState) => {\r\n\t\t\t\t\tif (exitState === ExitState.Errored) {\r\n\t\t\t\t\t\tonProcessFailure();\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tawait Promise.race([packageReady, exit]);\r\n\t\t\t}\r\n\r\n\t\t\tconst afterProcessPackageShellCommand = await watchConfig.hooks.onAfterProcessPackage(processPackageProps);\r\n\t\t\tif (afterProcessPackageShellCommand) {\r\n\t\t\t\tawait runSubprocess({\r\n\t\t\t\t\tdebugName: `after process ${packageName}`,\r\n\t\t\t\t\tshellCommand: afterProcessPackageShellCommand,\r\n\t\t\t\t\tcwd: processPackageCwd,\r\n\t\t\t\t\tsignal: controller.signal,\r\n\t\t\t\t\tlogger,\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}), watchConfig.subprocess.concurrency);\r\n\t}\r\n\r\n\tif (packageChanges.size) {\r\n\t\tlogger.info(`Processing ${controller.signal.aborted ? 'cancelled due to new changes' : 'completed'}.`);\r\n\t}\r\n\r\n\tconst packagesReadyProps = {\r\n\t\ttotalChanges: packageChanges,\r\n\t\ttotalProcessOrder: changedPackageProcessOrder,\r\n\t\tsignal: controller.signal,\r\n\t};\r\n\r\n\tconst beforePackagesReadyShellCommand = await watchConfig.hooks.onBeforePackagesReady(packagesReadyProps);\r\n\tif (beforePackagesReadyShellCommand) {\r\n\t\tawait runSubprocess({\r\n\t\t\tdebugName: 'before packages ready',\r\n\t\t\tshellCommand: beforePackagesReadyShellCommand,\r\n\t\t\tsignal: controller.signal,\r\n\t\t\tlogger,\r\n\t\t});\r\n\t}\r\n\r\n\tconst packagesReadyShellCommand = await watchConfig.hooks.onPackagesReady(packagesReadyProps);\r\n\tif (packagesReadyShellCommand) {\r\n\t\tawait runSubprocess({\r\n\t\t\tdebugName: 'packages ready',\r\n\t\t\tshellCommand: packagesReadyShellCommand,\r\n\t\t\tsignal: controller.signal,\r\n\t\t\tlogger,\r\n\t\t});\r\n\t}\r\n\r\n\tconst afterPackagesReadyShellCommand = await watchConfig.hooks.onAfterPackagesReady(packagesReadyProps);\r\n\tif (afterPackagesReadyShellCommand) {\r\n\t\tawait runSubprocess({\r\n\t\t\tdebugName: 'after packages ready',\r\n\t\t\tshellCommand: afterPackagesReadyShellCommand,\r\n\t\t\tlogger,\r\n\t\t});\r\n\t}\r\n};\r\n\r\nexport const watchPackageChanges = (\r\n\tpackageData: PackageData[],\r\n\tpackageGraphs: PackageGraphs,\r\n\twatchConfig: ActivatedWatchConfig,\r\n\trootDir: string,\r\n\tlogger: Logger,\r\n) => {\r\n\tconst dedupedRootPackageData = dedupeSharedPaths(packageData.map(packageData => packageData.path), DedupePathsBy.Parent)\r\n\t\t.map(packagePath => assertDefined(packageData.find(data => data.path === packagePath)));\r\n\tlogger.debug(styleText('dim', `Starting ${dedupedRootPackageData.length.toString()} watchers for ${packageData.length.toString()} packages.`));\r\n\r\n\tlet closed = false;\r\n\tlet debounceTimeout: ReturnType<typeof setTimeout> | undefined;\r\n\tlet startedDebounceMs: number | undefined;\r\n\tlet controller: AbortController | undefined;\r\n\tconst ignoreGlobs = watchConfig.ignore ? (Array.isArray(watchConfig.ignore) ? watchConfig.ignore : [watchConfig.ignore]).map(pattern => new Glob(pattern)) : undefined;\r\n\tconst changedPackagePaths = new Map<string, Set<string>>();\r\n\r\n\tconst useController = (reset: boolean) => {\r\n\t\tif (controller && (reset || controller.signal.aborted)) {\r\n\t\t\tif (reset) {\r\n\t\t\t\tlogger.debug(styleText('dim', 'Aborting controller: reset for new packages.'));\r\n\t\t\t\tcontroller.abort();\r\n\t\t\t}\r\n\t\t\tcontroller = undefined;\r\n\t\t}\r\n\r\n\t\tcontroller ??= new AbortController();\r\n\t\treturn controller;\r\n\t};\r\n\r\n\tconst onWatchEvent = ({\r\n\t\twatchPath, packageName, filePath, isInitial = false,\r\n\t}: {\r\n\t\twatchPath?: string;\r\n\t\tpackageName?: string;\r\n\t\tevent?: WatchEventType;\r\n\t\tfilePath?: string | undefined;\r\n\t\tisInitial?: boolean;\r\n\t}) => {\r\n\t\tif (!isDefined(startedDebounceMs)) {\r\n\t\t\tstartedDebounceMs = Date.now();\r\n\t\t}\r\n\r\n\t\tif (packageName && watchPath && filePath) {\r\n\t\t\tconst changedPath = normalisePatternSeparators(join(watchPath, normaliseWatchedFilePath(filePath)));\r\n\t\t\tif (ignoreGlobs?.some(glob => glob.match(changedPath))) {\r\n\t\t\t\tlogger.debug(styleText('dim', `Ignoring change '${changedPath}' (matched ignore pattern).`));\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tlogger.debug(styleText('dim', `Tracked change '${changedPath}'.`));\r\n\t\t\tconst existingPaths = changedPackagePaths.get(packageName);\r\n\t\t\tif (existingPaths) {\r\n\t\t\t\texistingPaths.add(changedPath);\r\n\t\t\t} else {\r\n\t\t\t\tchangedPackagePaths.set(packageName, new Set([changedPath]));\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (debounceTimeout) {\r\n\t\t\tclearTimeout(debounceTimeout);\r\n\t\t}\r\n\r\n\t\tconst debounceMs = isInitial ? 0 : watchConfig.debounceMs;\r\n\t\tdebounceTimeout = setTimeout(() => {\r\n\t\t\tif (closed) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tconst packageChanges: PackageChanges = new Map();\r\n\t\t\tfor (const [packageName, paths] of changedPackagePaths) {\r\n\t\t\t\tconst dedupedPaths = dedupeSharedPaths(Array.from(paths), DedupePathsBy.Child).sort();\r\n\t\t\t\tconst processedPaths = filterFilesModifiedSince(dedupedPaths, assertDefined(startedDebounceMs) - fileModifiedThresholdMs);\r\n\t\t\t\tif (processedPaths.length) {\r\n\t\t\t\t\tpackageChanges.set(packageName, processedPaths);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tstartedDebounceMs = undefined;\r\n\t\t\tchangedPackagePaths.clear();\r\n\r\n\t\t\tif (!packageChanges.size && !isInitial) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvoid onProcessPackage(\r\n\t\t\t\tpackageGraphs,\r\n\t\t\t\tpackageChanges,\r\n\t\t\t\twatchConfig,\r\n\t\t\t\t(reset: boolean) => useController(reset),\r\n\t\t\t\tlogger,\r\n\t\t\t);\r\n\t\t}, debounceMs);\r\n\t};\r\n\r\n\tconst watchers = dedupedRootPackageData.map(({\r\n\t\tname, path,\r\n\t}) => {\r\n\t\tconst watchPath = dirname(path);\r\n\r\n\t\treturn watch(\r\n\t\t\twatchPath, { recursive: true }, (event, filePath) => {\r\n\t\t\t\tonWatchEvent({\r\n\t\t\t\t\twatchPath,\r\n\t\t\t\t\tpackageName: name,\r\n\t\t\t\t\tevent,\r\n\t\t\t\t\tfilePath: filePath ?? undefined,\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t);\r\n\t});\r\n\r\n\tconst closeWatchers = () => {\r\n\t\twatchers.forEach((watcher) => {\r\n\t\t\twatcher.close();\r\n\t\t});\r\n\t\tlogger.debug(styleText('dim', 'Aborting controller: closing watchers.'));\r\n\t\tcontroller?.abort();\r\n\t\tclosed = true;\r\n\t};\r\n\r\n\tprocess.on('SIGINT', () => {\r\n\t\tlogger.debug(styleText('dim', 'Received SIGINT: closing watchers.'));\r\n\t\tcloseWatchers();\r\n\t\tprocess.exit(0);\r\n\t});\r\n\r\n\tvoid Promise.resolve(watchConfig.hooks.onInit()).then(async (onInitShellCommand) => {\r\n\t\tif (onInitShellCommand) {\r\n\t\t\tawait runSubprocess({\r\n\t\t\t\tdebugName: `on init`,\r\n\t\t\t\tshellCommand: onInitShellCommand,\r\n\t\t\t\tsignal: useController(false).signal,\r\n\t\t\t\tcwd: rootDir,\r\n\t\t\t\tlogger,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tonWatchEvent({ isInitial: true });\r\n\t});\r\n\r\n\treturn { close: () => {\r\n\t\tif (closed) {\r\n\t\t\tlogger.debug(styleText('dim', 'Watchers already closed.'));\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tlogger.debug(styleText('dim', 'Closing watchers.'));\r\n\t\tcloseWatchers();\r\n\t} };\r\n};\r\n",
|
|
39
39
|
"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",
|
|
40
40
|
"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",
|
|
41
|
-
"export const filterFilesModifiedSince = (paths: string[], sinceMs: number) => {\r\n\treturn paths.filter((path) => {\r\n\t\tconst changedFile = Bun.file(path);\r\n\t\
|
|
41
|
+
"export const filterFilesModifiedSince = (paths: string[], sinceMs: number) => {\r\n\treturn paths.filter((path) => {\r\n\t\tconst changedFile = Bun.file(path);\r\n\t\tconst isDeleted = changedFile.lastModified === 0;\r\n\t\tconst isModifiedSince = changedFile.lastModified >= sinceMs;\r\n\r\n\t\treturn isDeleted || isModifiedSince;\r\n\t});\r\n};\r\n",
|
|
42
42
|
"import { styleText } from 'node: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.groups.toReversed().concat(packageOrder.circular);\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.groups.toReversed().concat(changedPackageOrder.circular);\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",
|
|
43
43
|
"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",
|
|
44
44
|
"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",
|
|
45
45
|
"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",
|
|
46
46
|
"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",
|
|
47
47
|
"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",
|
|
48
|
+
"export const normalisePatternSeparators = (path: string) => {\r\n\treturn path.replace(/\\\\/g, '/');\r\n};\r\n",
|
|
48
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 (base.toLowerCase().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"
|
|
49
50
|
],
|
|
50
|
-
"mappings": "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",
|
|
51
|
-
"debugId": "
|
|
51
|
+
"mappings": "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",
|
|
52
|
+
"debugId": "68AF287603F1263364756E2164756E21",
|
|
52
53
|
"names": []
|
|
53
54
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load-config.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/lib/configuration/functions/load-config.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACM,yBAAyB,EAC1C,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"load-config.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/lib/configuration/functions/load-config.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACM,yBAAyB,EAC1C,MAAM,8BAA8B,CAAC;AAoCtC,eAAO,MAAM,UAAU,GAAU,oBAAoB,MAAM,GAAG,SAAS,KAAG,OAAO,CAAC,yBAAyB,CA2B1G,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-config.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/lib/configuration/functions/parse-config.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,WAAW,GAAU,MAAM,MAAM
|
|
1
|
+
{"version":3,"file":"parse-config.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/lib/configuration/functions/parse-config.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,WAAW,GAAU,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;EAU7C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-config-path.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/lib/configuration/functions/search-config-path.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"search-config-path.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/lib/configuration/functions/search-config-path.ts"],"names":[],"mappings":"AAmBA,eAAO,MAAM,gBAAgB,GAAU,eAAe,MAAM,gCA4B3D,CAAC"}
|
|
@@ -46,6 +46,10 @@ export declare const Config: z.ZodMiniObject<{
|
|
|
46
46
|
* @default 500
|
|
47
47
|
*/
|
|
48
48
|
debounceMs: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
|
|
49
|
+
/**
|
|
50
|
+
* Patterns to ignore and prevent watch updates from matching files.
|
|
51
|
+
*/
|
|
52
|
+
ignore: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniArray<z.ZodMiniString<string>>]>>;
|
|
49
53
|
/**
|
|
50
54
|
* Lifecycle hooks to tap into different stages of topological package processing and readiness.
|
|
51
55
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/lib/configuration/schemas/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAI9B,eAAO,MAAM,QAAQ;;;;;;EAMnB,CAAC;AAEH,eAAO,MAAM,MAAM;IAClB;;;;;;;;OAQG;;IAEH;;OAEG;;QAEF;;;;;;;;WAQG;;QAEH;;;WAGG;;;IAGJ;;OAEG;;QAEF;;;WAGG;;QAEH;;WAEG;;YAEF;;eAEG;;YAEH;;eAEG;;YAEH;;eAEG;;YAEH;;eAEG;;YAEH;;eAEG;;YAEH;;eAEG;;YAEH;;eAEG;;YAEH;;eAEG;;;QAGJ;;WAEG;;YAEF;;;eAGG;;YAEH;;eAEG;;YAEH;;;;eAIG;;YAEH;;;;eAIG;;;;IAIL;;;;;OAKG;;;;;;;;iBAEF,CAAC"}
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/lib/configuration/schemas/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAI9B,eAAO,MAAM,QAAQ;;;;;;EAMnB,CAAC;AAEH,eAAO,MAAM,MAAM;IAClB;;;;;;;;OAQG;;IAEH;;OAEG;;QAEF;;;;;;;;WAQG;;QAEH;;;WAGG;;;IAGJ;;OAEG;;QAEF;;;WAGG;;QAEH;;WAEG;;QAEH;;WAEG;;YAEF;;eAEG;;YAEH;;eAEG;;YAEH;;eAEG;;YAEH;;eAEG;;YAEH;;eAEG;;YAEH;;eAEG;;YAEH;;eAEG;;YAEH;;eAEG;;;QAGJ;;WAEG;;YAEF;;;eAGG;;YAEH;;eAEG;;YAEH;;;;eAIG;;YAEH;;;;eAIG;;;;IAIL;;;;;OAKG;;;;;;;;iBAEF,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export type SubprocessCallback<T> = (props: T) => string | Promise<string | undefined> |
|
|
1
|
+
export type SubprocessCallback<T> = (props: T) => string | Promise<string | undefined | void> | void;
|
|
2
2
|
//# sourceMappingURL=subprocess-callback.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subprocess-callback.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/lib/configuration/types/subprocess-callback.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"subprocess-callback.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/lib/configuration/types/subprocess-callback.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-commands-for-shell.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/lib/process/functions/get-commands-for-shell.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"get-commands-for-shell.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/lib/process/functions/get-commands-for-shell.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,mBAAmB,GAAI,cAAc,MAAM,KAAG,MAAM,EAmChE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-ps-shell-flags.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/lib/process/functions/parse-ps-shell-flags.ts"],"names":[],"mappings":"AAoBA;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAAI,OAAO,MAAM;;;;CAkC9C,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":"AAAA,eAAO,MAAM,wBAAwB,GAAI,OAAO,MAAM,EAAE,EAAE,SAAS,MAAM,
|
|
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":"AAAA,eAAO,MAAM,wBAAwB,GAAI,OAAO,MAAM,EAAE,EAAE,SAAS,MAAM,aAQxE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalise-pattern-separators.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/lib/watch/functions/normalise-pattern-separators.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,0BAA0B,GAAI,MAAM,MAAM,WAEtD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watch-package-changes.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/lib/watch/functions/watch-package-changes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"watch-package-changes.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/lib/watch/functions/watch-package-changes.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+CAA+C,CAAC;AAC1F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAGlE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AA8MvE,eAAO,MAAM,mBAAmB,GAC/B,aAAa,WAAW,EAAE,EAC1B,eAAe,aAAa,EAC5B,aAAa,oBAAoB,EACjC,SAAS,MAAM,EACf,QAAQ,MAAM;;CAkJd,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@package-pal/core",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.8",
|
|
4
4
|
"description": "Core PackagePal functionality.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"package",
|
|
@@ -13,13 +13,13 @@
|
|
|
13
13
|
"license": "MIT",
|
|
14
14
|
"type": "module",
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"@package-pal/util": "^0.0.
|
|
17
|
-
"semver": "^7.7.
|
|
18
|
-
"zod": "^4.
|
|
16
|
+
"@package-pal/util": "^0.0.9",
|
|
17
|
+
"semver": "^7.7.4",
|
|
18
|
+
"zod": "^4.3.6"
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
21
21
|
"@types/semver": "^7.7.1",
|
|
22
|
-
"@types/bun": "^1.3.
|
|
22
|
+
"@types/bun": "^1.3.9",
|
|
23
23
|
"typescript": "^5.9.3"
|
|
24
24
|
},
|
|
25
25
|
"engines": {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parse-ps-flags.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/lib/process/functions/parse-ps-flags.ts"],"names":[],"mappings":"AA6CA,eAAO,MAAM,YAAY,GAAI,OAAO,MAAM;;;CAkCzC,CAAC"}
|