@package-pal/core 0.0.7 → 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 CHANGED
@@ -178,22 +178,12 @@ var isRootDir = (path) => {
178
178
  // packages/core/src/lib/configuration/functions/search-config-path.ts
179
179
  var dirDistLimit = 25;
180
180
  var checkForConfigInDir = async (dir) => {
181
- return new Promise((resolve) => {
182
- let pending = CONFIG_SUPPORTED_NAMES.length;
183
- for (const name of CONFIG_SUPPORTED_NAMES) {
184
- const pathToCheck = join(dir, name);
185
- Bun.file(pathToCheck).exists().then((exists) => {
186
- pending--;
187
- if (exists) {
188
- resolve(pathToCheck);
189
- return;
190
- }
191
- if (!pending) {
192
- resolve(undefined);
193
- }
194
- });
195
- }
196
- });
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;
197
187
  };
198
188
  var searchConfigPath = async (pathOverride) => {
199
189
  let activeDir = process.cwd();
@@ -1089,7 +1079,9 @@ var ChangeAction = {
1089
1079
  var filterFilesModifiedSince = (paths, sinceMs) => {
1090
1080
  return paths.filter((path) => {
1091
1081
  const changedFile = Bun.file(path);
1092
- return changedFile.lastModified >= sinceMs;
1082
+ const isDeleted = changedFile.lastModified === 0;
1083
+ const isModifiedSince = changedFile.lastModified >= sinceMs;
1084
+ return isDeleted || isModifiedSince;
1093
1085
  });
1094
1086
  };
1095
1087
 
@@ -1297,16 +1289,7 @@ var onProcessPackage = async (packageGraphs, packageChanges, watchConfig, determ
1297
1289
  lastProcessedSubgraph = lastProcessedSubgraph && !isRestart ? mergeGraphs(lastProcessedSubgraph, changedPackageSubgraph) : changedPackageSubgraph;
1298
1290
  }
1299
1291
  for (const group of changedPackageProcessOrder) {
1300
- const {
1301
- promise: longRunningParallelProcessReady,
1302
- resolve: matchedParallelLongReadyRunningOutput
1303
- } = getDeferredPromise();
1304
- let matchedLongRunningOutputCount = 0;
1305
1292
  await runAsync2(group.map((packageName) => async () => {
1306
- const {
1307
- promise: longRunningSequentialProcessReady,
1308
- resolve: matchedSequentialLongRunningReadyOutput
1309
- } = getDeferredPromise();
1310
1293
  const packageNode = assertDefined12(packageGraphs.dependencies.get(packageName));
1311
1294
  const changedPaths = packageChanges.get(packageName) ?? [];
1312
1295
  const processPackageProps = {
@@ -1334,6 +1317,10 @@ var onProcessPackage = async (packageGraphs, packageChanges, watchConfig, determ
1334
1317
  const longRunningOutputErroredText = watchConfig.subprocess.matchLongRunningOutputAsErrored;
1335
1318
  const readyMatcher = longRunningOutputReadyText ? getStringMatcher(longRunningOutputReadyText) : undefined;
1336
1319
  const erroredMatcher = longRunningOutputErroredText ? getStringMatcher(longRunningOutputErroredText) : undefined;
1320
+ const {
1321
+ promise: packageReady,
1322
+ resolve: resolvePackageReady
1323
+ } = getDeferredPromise();
1337
1324
  let ready = false;
1338
1325
  let errored = false;
1339
1326
  const exit = runSubprocess({
@@ -1347,11 +1334,8 @@ var onProcessPackage = async (packageGraphs, packageChanges, watchConfig, determ
1347
1334
  const matchedReadyText = readyMatcher?.push(chunk).matched();
1348
1335
  if (matchedReadyText) {
1349
1336
  ready = true;
1350
- matchedLongRunningOutputCount++;
1351
- logger.debug(`'${packageName}' (${matchedLongRunningOutputCount.toString()}/${group.length.toString()}) subprocess matched ready text '${matchedReadyText}'.`);
1352
- if (isSequential && matchedLongRunningOutputCount) {
1353
- matchedSequentialLongRunningReadyOutput();
1354
- }
1337
+ logger.debug(`'${packageName}' subprocess matched ready text '${matchedReadyText}'.`);
1338
+ resolvePackageReady();
1355
1339
  }
1356
1340
  }
1357
1341
  if (!errored) {
@@ -1378,20 +1362,13 @@ var onProcessPackage = async (packageGraphs, packageChanges, watchConfig, determ
1378
1362
  });
1379
1363
  }
1380
1364
  }
1381
- if (!isSequential && matchedLongRunningOutputCount === group.length) {
1382
- matchedParallelLongReadyRunningOutput();
1383
- }
1384
1365
  }
1385
1366
  }).then((exitState) => {
1386
1367
  if (exitState === ExitState.Errored) {
1387
1368
  onProcessFailure();
1388
1369
  }
1389
1370
  });
1390
- await Promise.race([
1391
- longRunningParallelProcessReady,
1392
- longRunningSequentialProcessReady,
1393
- exit
1394
- ]);
1371
+ await Promise.race([packageReady, exit]);
1395
1372
  }
1396
1373
  const afterProcessPackageShellCommand = await watchConfig.hooks.onAfterProcessPackage(processPackageProps);
1397
1374
  if (afterProcessPackageShellCommand) {
@@ -1469,15 +1446,13 @@ var watchPackageChanges = (packageData, packageGraphs, watchConfig, rootDir, log
1469
1446
  if (!isDefined4(startedDebounceMs)) {
1470
1447
  startedDebounceMs = Date.now();
1471
1448
  }
1472
- if (debounceTimeout) {
1473
- clearTimeout(debounceTimeout);
1474
- }
1475
1449
  if (packageName && watchPath && filePath) {
1476
1450
  const changedPath = normalisePatternSeparators(join4(watchPath, normaliseWatchedFilePath(filePath)));
1477
1451
  if (ignoreGlobs?.some((glob) => glob.match(changedPath))) {
1478
1452
  logger.debug(styleText10("dim", `Ignoring change '${changedPath}' (matched ignore pattern).`));
1479
1453
  return;
1480
1454
  }
1455
+ logger.debug(styleText10("dim", `Tracked change '${changedPath}'.`));
1481
1456
  const existingPaths = changedPackagePaths.get(packageName);
1482
1457
  if (existingPaths) {
1483
1458
  existingPaths.add(changedPath);
@@ -1485,6 +1460,9 @@ var watchPackageChanges = (packageData, packageGraphs, watchConfig, rootDir, log
1485
1460
  changedPackagePaths.set(packageName, new Set([changedPath]));
1486
1461
  }
1487
1462
  }
1463
+ if (debounceTimeout) {
1464
+ clearTimeout(debounceTimeout);
1465
+ }
1488
1466
  const debounceMs = isInitial ? 0 : watchConfig.debounceMs;
1489
1467
  debounceTimeout = setTimeout(() => {
1490
1468
  if (closed) {
@@ -1603,5 +1581,5 @@ export {
1603
1581
  BumpVersionType
1604
1582
  };
1605
1583
 
1606
- //# debugId=A9DE039F45717FA664756E2164756E21
1584
+ //# debugId=68AF287603F1263364756E2164756E21
1607
1585
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -13,7 +13,7 @@
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\treturn new Promise<string | undefined>((resolve) => {\r\n\t\tlet pending = CONFIG_SUPPORTED_NAMES.length;\r\n\r\n\t\tfor (const name of CONFIG_SUPPORTED_NAMES) {\r\n\t\t\tconst pathToCheck = join(dir, name);\r\n\r\n\t\t\tvoid Bun.file(pathToCheck).exists()\r\n\t\t\t\t.then((exists) => {\r\n\t\t\t\t\tpending--;\r\n\r\n\t\t\t\t\tif (exists) {\r\n\t\t\t\t\t\tresolve(pathToCheck);\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (!pending) {\r\n\t\t\t\t\t\tresolve(undefined);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t}\r\n\t});\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",
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,7 +23,7 @@
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: investigate file.text() hangs for non-existent file???\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",
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",
@@ -35,10 +35,10 @@
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 { 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",
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\treturn changedFile.lastModified >= sinceMs;\r\n\t});\r\n};\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\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",
@@ -48,7 +48,7 @@
48
48
  "export const normalisePatternSeparators = (path: string) => {\r\n\treturn path.replace(/\\\\/g, '/');\r\n};\r\n",
49
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"
50
50
  ],
51
- "mappings": "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",
52
- "debugId": "A9DE039F45717FA664756E2164756E21",
51
+ "mappings": "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",
52
+ "debugId": "68AF287603F1263364756E2164756E21",
53
53
  "names": []
54
54
  }
@@ -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":"AAiCA,eAAO,MAAM,gBAAgB,GAAU,eAAe,MAAM,gCA4B3D,CAAC"}
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"}
@@ -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,aAKxE,CAAC"}
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"}
@@ -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":"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"}
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.7",
3
+ "version": "0.0.8",
4
4
  "description": "Core PackagePal functionality.",
5
5
  "keywords": [
6
6
  "package",
@@ -14,12 +14,12 @@
14
14
  "type": "module",
15
15
  "dependencies": {
16
16
  "@package-pal/util": "^0.0.9",
17
- "semver": "^7.7.3",
18
- "zod": "^4.1.12"
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.0",
22
+ "@types/bun": "^1.3.9",
23
23
  "typescript": "^5.9.3"
24
24
  },
25
25
  "engines": {