@package-pal/core 0.0.5 → 0.0.7
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 +51 -58
- package/index.js.map +9 -8
- 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/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/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 +2 -2
- 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()),
|
|
@@ -226,6 +227,7 @@ var defaultConfig = {
|
|
|
226
227
|
},
|
|
227
228
|
watch: {
|
|
228
229
|
debounceMs: 500,
|
|
230
|
+
ignore: "",
|
|
229
231
|
hooks: {
|
|
230
232
|
onInit: noOp2,
|
|
231
233
|
onBeforeProcessPackage: noOp2,
|
|
@@ -703,82 +705,57 @@ import {
|
|
|
703
705
|
Shell
|
|
704
706
|
} from "@package-pal/util";
|
|
705
707
|
|
|
706
|
-
// packages/core/src/lib/process/functions/parse-ps-flags.ts
|
|
708
|
+
// packages/core/src/lib/process/functions/parse-ps-shell-flags.ts
|
|
707
709
|
import { assertDefined as assertDefined8 } from "@package-pal/util";
|
|
708
|
-
var
|
|
710
|
+
var shellFlagsWithParams = new Set([
|
|
709
711
|
"-executionpolicy",
|
|
710
712
|
"-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"
|
|
713
|
+
"-version"
|
|
731
714
|
]);
|
|
732
|
-
var
|
|
715
|
+
var shellFlagsNoParams = new Set([
|
|
733
716
|
"-noprofile",
|
|
734
717
|
"-noninteractive",
|
|
735
|
-
"-nologo",
|
|
736
718
|
"-sta",
|
|
737
719
|
"-mta",
|
|
738
|
-
"-
|
|
739
|
-
"-command",
|
|
720
|
+
"-nologo",
|
|
740
721
|
"-help",
|
|
741
722
|
"-?",
|
|
742
|
-
"-
|
|
743
|
-
"-
|
|
744
|
-
"-whatif",
|
|
745
|
-
"-confirm",
|
|
746
|
-
"-usewindowspowershell",
|
|
747
|
-
"-noexit"
|
|
723
|
+
"-noexit",
|
|
724
|
+
"-usewindowspowerShell"
|
|
748
725
|
]);
|
|
749
|
-
var
|
|
750
|
-
const
|
|
751
|
-
const
|
|
726
|
+
var parsePsShellFlags = (input) => {
|
|
727
|
+
const isPreEncoded = input.toLowerCase().includes("-encodedcommand");
|
|
728
|
+
const tokens = input.match(/"[^"]*"|'[^']*'|\S+/g) ?? [];
|
|
729
|
+
const flags = new Set;
|
|
752
730
|
let i = 0;
|
|
753
731
|
while (i < tokens.length) {
|
|
754
732
|
const token = assertDefined8(tokens[i]);
|
|
755
733
|
const tokenLower = token.toLowerCase();
|
|
756
|
-
if (
|
|
757
|
-
|
|
758
|
-
|
|
734
|
+
if (shellFlagsWithParams.has(tokenLower)) {
|
|
735
|
+
flags.add(token);
|
|
736
|
+
if (i + 1 < tokens.length) {
|
|
737
|
+
flags.add(assertDefined8(tokens[i + 1]));
|
|
738
|
+
i++;
|
|
759
739
|
}
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
i += 1;
|
|
767
|
-
continue;
|
|
740
|
+
i++;
|
|
741
|
+
} else if (shellFlagsNoParams.has(tokenLower)) {
|
|
742
|
+
flags.add(token);
|
|
743
|
+
i++;
|
|
744
|
+
} else {
|
|
745
|
+
break;
|
|
768
746
|
}
|
|
769
|
-
break;
|
|
770
747
|
}
|
|
771
748
|
const command = tokens.slice(i).join(" ");
|
|
772
749
|
return {
|
|
773
750
|
flags,
|
|
774
|
-
command
|
|
751
|
+
command,
|
|
752
|
+
isPreEncoded
|
|
775
753
|
};
|
|
776
754
|
};
|
|
777
755
|
|
|
778
756
|
// packages/core/src/lib/process/functions/get-commands-for-shell.ts
|
|
779
|
-
var shell;
|
|
780
757
|
var getCommandsForShell = (shellCommand) => {
|
|
781
|
-
shell =
|
|
758
|
+
const shell = getShell();
|
|
782
759
|
switch (shell) {
|
|
783
760
|
case Shell.cmd:
|
|
784
761
|
return [
|
|
@@ -790,9 +767,13 @@ var getCommandsForShell = (shellCommand) => {
|
|
|
790
767
|
case Shell.powershell:
|
|
791
768
|
const {
|
|
792
769
|
flags,
|
|
793
|
-
command
|
|
794
|
-
|
|
795
|
-
|
|
770
|
+
command,
|
|
771
|
+
isPreEncoded
|
|
772
|
+
} = parsePsShellFlags(shellCommand);
|
|
773
|
+
if (isPreEncoded) {
|
|
774
|
+
return [shell, shellCommand];
|
|
775
|
+
}
|
|
776
|
+
const encodedCommand = Buffer.from(command || " ", "utf16le").toString("base64");
|
|
796
777
|
return [
|
|
797
778
|
shell,
|
|
798
779
|
...flags,
|
|
@@ -1077,6 +1058,7 @@ import {
|
|
|
1077
1058
|
isDefined as isDefined4,
|
|
1078
1059
|
runAsync as runAsync2
|
|
1079
1060
|
} from "@package-pal/util";
|
|
1061
|
+
var {Glob } = globalThis.Bun;
|
|
1080
1062
|
|
|
1081
1063
|
// packages/core/src/lib/graph/functions/merge-graphs.ts
|
|
1082
1064
|
var mergeGraphs = (a, b) => {
|
|
@@ -1255,6 +1237,11 @@ var getChangeLogic = (packageGraphs, packageChanges, lastProcessedSubgraph, conf
|
|
|
1255
1237
|
};
|
|
1256
1238
|
};
|
|
1257
1239
|
|
|
1240
|
+
// packages/core/src/lib/watch/functions/normalise-pattern-separators.ts
|
|
1241
|
+
var normalisePatternSeparators = (path) => {
|
|
1242
|
+
return path.replace(/\\/g, "/");
|
|
1243
|
+
};
|
|
1244
|
+
|
|
1258
1245
|
// packages/core/src/lib/watch/functions/normalise-watched-file-path.ts
|
|
1259
1246
|
import {
|
|
1260
1247
|
basename as basename3,
|
|
@@ -1293,8 +1280,9 @@ var onProcessPackage = async (packageGraphs, packageChanges, watchConfig, determ
|
|
|
1293
1280
|
changedPackageProcessOrder,
|
|
1294
1281
|
changedPackageSubgraph
|
|
1295
1282
|
} = getChangeLogic(packageGraphs, packageChanges, lastProcessedSubgraph, watchConfig, logger);
|
|
1296
|
-
const
|
|
1283
|
+
const isRestart = action === ChangeAction.Restart;
|
|
1297
1284
|
const isSequential = watchConfig.subprocess.concurrency === 1;
|
|
1285
|
+
const controller = determineAbortController(isRestart);
|
|
1298
1286
|
const onProcessFailure = () => {
|
|
1299
1287
|
logger.debug(styleText10("dim", "Aborting controller: process failed."));
|
|
1300
1288
|
controller.abort();
|
|
@@ -1305,8 +1293,8 @@ var onProcessPackage = async (packageGraphs, packageChanges, watchConfig, determ
|
|
|
1305
1293
|
return;
|
|
1306
1294
|
}
|
|
1307
1295
|
if (packageChanges.size) {
|
|
1308
|
-
logger.info(`${
|
|
1309
|
-
lastProcessedSubgraph = lastProcessedSubgraph ? mergeGraphs(lastProcessedSubgraph, changedPackageSubgraph) : changedPackageSubgraph;
|
|
1296
|
+
logger.info(`${isRestart ? "Restarting processing" : "Initiating partial processing"} ${isSequential ? "sequentially" : `in parallel${isDefined4(watchConfig.subprocess.concurrency) ? ` with concurrency ${watchConfig.subprocess.concurrency.toString()}` : ""}`}.`);
|
|
1297
|
+
lastProcessedSubgraph = lastProcessedSubgraph && !isRestart ? mergeGraphs(lastProcessedSubgraph, changedPackageSubgraph) : changedPackageSubgraph;
|
|
1310
1298
|
}
|
|
1311
1299
|
for (const group of changedPackageProcessOrder) {
|
|
1312
1300
|
const {
|
|
@@ -1459,6 +1447,7 @@ var watchPackageChanges = (packageData, packageGraphs, watchConfig, rootDir, log
|
|
|
1459
1447
|
let debounceTimeout;
|
|
1460
1448
|
let startedDebounceMs;
|
|
1461
1449
|
let controller;
|
|
1450
|
+
const ignoreGlobs = watchConfig.ignore ? (Array.isArray(watchConfig.ignore) ? watchConfig.ignore : [watchConfig.ignore]).map((pattern) => new Glob(pattern)) : undefined;
|
|
1462
1451
|
const changedPackagePaths = new Map;
|
|
1463
1452
|
const useController = (reset) => {
|
|
1464
1453
|
if (controller && (reset || controller.signal.aborted)) {
|
|
@@ -1484,7 +1473,11 @@ var watchPackageChanges = (packageData, packageGraphs, watchConfig, rootDir, log
|
|
|
1484
1473
|
clearTimeout(debounceTimeout);
|
|
1485
1474
|
}
|
|
1486
1475
|
if (packageName && watchPath && filePath) {
|
|
1487
|
-
const changedPath = join4(watchPath, normaliseWatchedFilePath(filePath));
|
|
1476
|
+
const changedPath = normalisePatternSeparators(join4(watchPath, normaliseWatchedFilePath(filePath)));
|
|
1477
|
+
if (ignoreGlobs?.some((glob) => glob.match(changedPath))) {
|
|
1478
|
+
logger.debug(styleText10("dim", `Ignoring change '${changedPath}' (matched ignore pattern).`));
|
|
1479
|
+
return;
|
|
1480
|
+
}
|
|
1488
1481
|
const existingPaths = changedPackagePaths.get(packageName);
|
|
1489
1482
|
if (existingPaths) {
|
|
1490
1483
|
existingPaths.add(changedPath);
|
|
@@ -1610,5 +1603,5 @@ export {
|
|
|
1610
1603
|
BumpVersionType
|
|
1611
1604
|
};
|
|
1612
1605
|
|
|
1613
|
-
//# debugId=
|
|
1606
|
+
//# debugId=A9DE039F45717FA664756E2164756E21
|
|
1614
1607
|
//# sourceMappingURL=index.js.map
|
package/index.js.map
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
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",
|
|
@@ -30,12 +30,12 @@
|
|
|
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\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 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 (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 = 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\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",
|
|
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
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\treturn changedFile.lastModified >= sinceMs;\r\n\t});\r\n};\r\n",
|
|
@@ -45,9 +45,10 @@
|
|
|
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": "A9DE039F45717FA664756E2164756E21",
|
|
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"}
|
|
@@ -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"}
|
|
@@ -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;AA8NvE,eAAO,MAAM,mBAAmB,GAC/B,aAAa,WAAW,EAAE,EAC1B,eAAe,aAAa,EAC5B,aAAa,oBAAoB,EACjC,SAAS,MAAM,EACf,QAAQ,MAAM;;CAiJd,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.7",
|
|
4
4
|
"description": "Core PackagePal functionality.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"package",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"license": "MIT",
|
|
14
14
|
"type": "module",
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"@package-pal/util": "^0.0.
|
|
16
|
+
"@package-pal/util": "^0.0.9",
|
|
17
17
|
"semver": "^7.7.3",
|
|
18
18
|
"zod": "^4.1.12"
|
|
19
19
|
},
|
|
@@ -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"}
|