@package-pal/core 0.0.11 → 0.0.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.js CHANGED
@@ -12,9 +12,6 @@ var BumpVersionType = {
12
12
  // packages/core/src/lib/package/types/package-adapter.ts
13
13
  class PackageAdapter {
14
14
  }
15
- // packages/core/src/lib/api.ts
16
- import { isDefined as isDefined4 } from "@package-pal/util";
17
-
18
15
  // packages/core/src/lib/configuration/functions/check-bun.ts
19
16
  var checkBun = () => {
20
17
  if (!Bun) {
@@ -290,10 +287,13 @@ var trackPackageEntryDependencies = ({
290
287
  }
291
288
  };
292
289
  var generateReverseGraph = (packages, packageGraph) => {
293
- const reversePackageGraph = new Map(packages.map((packageData) => [packageData.name, {
294
- packageData,
295
- pointsToPackages: new Set
296
- }]));
290
+ const reversePackageGraph = new Map;
291
+ for (const packageData of packages) {
292
+ reversePackageGraph.set(packageData.name, {
293
+ packageData,
294
+ pointsToPackages: new Set
295
+ });
296
+ }
297
297
  for (const packageData of packages) {
298
298
  const packageNode = assertDefined2(packageGraph.get(packageData.name));
299
299
  for (const dependency of packageNode.pointsToPackages) {
@@ -351,14 +351,14 @@ var dfsTraverseGraphPaths = function* (graph, traverseFromPackages, options = {}
351
351
  if (localVisited.has(node)) {
352
352
  const idx = path.indexOf(node);
353
353
  if (idx !== -1) {
354
- yield [...path.slice(idx), node];
354
+ yield path.slice(idx).concat(node);
355
355
  }
356
356
  continue;
357
357
  }
358
358
  if (useGlobalVisited && globalVisited.has(node)) {
359
359
  continue;
360
360
  }
361
- const newPath = [...path, node];
361
+ const newPath = path.concat(node);
362
362
  const newLocalVisited = new Set(localVisited);
363
363
  newLocalVisited.add(node);
364
364
  const neighbours = graph.get(node)?.pointsToPackages;
@@ -390,7 +390,7 @@ import { assertDefined as assertDefined5 } from "@package-pal/util";
390
390
  import { assertDefined as assertDefined4 } from "@package-pal/util";
391
391
  var dfsTraverseGraph = function* (graph, traverseFromPackages) {
392
392
  const visited = new Set;
393
- const stack = Array.isArray(traverseFromPackages) ? [...traverseFromPackages] : [traverseFromPackages];
393
+ const stack = Array.isArray(traverseFromPackages) ? traverseFromPackages.slice() : [traverseFromPackages];
394
394
  while (stack.length) {
395
395
  const activePackage = assertDefined4(stack.pop());
396
396
  if (visited.has(activePackage)) {
@@ -519,13 +519,20 @@ var getCircularDependencies = (inDegree) => {
519
519
  };
520
520
  var generateTopologicalSortedGroups = (packageGraph, logger) => {
521
521
  logger?.debug(styleText4("dim", "Generating topological sorted groups..."));
522
- const graphEntries = Array.from(packageGraph.entries());
523
- const inDegree = new Map(graphEntries.map(([packageName]) => [packageName, 0]));
524
- const graph = new Map(graphEntries.map(([packageName]) => [packageName, new Set]));
525
- for (const [packageName, node] of graphEntries) {
522
+ const inDegree = new Map;
523
+ const graph = new Map;
524
+ for (const [packageName] of packageGraph) {
525
+ inDegree.set(packageName, 0);
526
+ graph.set(packageName, new Set);
527
+ }
528
+ for (const [packageName, node] of packageGraph) {
526
529
  for (const dependencyName of node.pointsToPackages) {
527
- assertDefined7(graph.get(dependencyName)).add(packageName);
528
- inDegree.set(packageName, assertDefined7(inDegree.get(packageName)) + 1);
530
+ const adj = graph.get(dependencyName);
531
+ if (adj) {
532
+ adj.add(packageName);
533
+ }
534
+ const currentDeg = inDegree.get(packageName) ?? 0;
535
+ inDegree.set(packageName, currentDeg + 1);
529
536
  }
530
537
  }
531
538
  const result = [];
@@ -564,14 +571,56 @@ var generateTopologicalSortedGroups = (packageGraph, logger) => {
564
571
  };
565
572
  };
566
573
 
567
- // packages/core/src/lib/package/functions/load-packages.ts
574
+ // packages/core/src/lib/package/functions/bump-package-version.ts
568
575
  import { styleText as styleText5 } from "util";
576
+ import { isDefined as isDefined2 } from "@package-pal/util";
577
+ import { inc } from "semver";
578
+ var bumpPackageVersion = async (options) => {
579
+ const exact = isDefined2(options.exact) ? options.exact : options.config.version.exact;
580
+ const preId = isDefined2(options.preId) ? options.preId : options.config.version.preId;
581
+ const {
582
+ packageName,
583
+ type,
584
+ packageGraphs,
585
+ adapter,
586
+ config: { logger }
587
+ } = options;
588
+ logger.debug(styleText5("dim", `Bumping package '${packageName}'...`));
589
+ const packageNode = packageGraphs.dependencies.get(packageName);
590
+ if (!packageNode) {
591
+ throw new Error(`Package '${packageName}' not found.`);
592
+ }
593
+ const currentVersion = packageNode.packageData.version ?? "1.0.0";
594
+ const bumpedVersion = inc(currentVersion, type, undefined, preId);
595
+ if (!bumpedVersion) {
596
+ throw new Error(`Package '${packageName}' version '${currentVersion}' is invalid.`);
597
+ }
598
+ logger.info(`Updating '${packageName}' version: ${currentVersion} \u2192 ${bumpedVersion}.`);
599
+ await adapter.bumpOwnVersion(packageNode.packageData, bumpedVersion, logger);
600
+ const dependentWrites = [];
601
+ for (const dependent of dfsTraverseGraph(packageGraphs.dependents, packageName)) {
602
+ dependentWrites.push((async () => {
603
+ const updated = await adapter.bumpDependencyVersion(dependent, packageName, bumpedVersion, exact, logger);
604
+ if (updated) {
605
+ logger.debug(styleText5("dim", `Updated dependency '${packageName}' in '${dependent.name}'.`));
606
+ }
607
+ })());
608
+ }
609
+ await Promise.all(dependentWrites);
610
+ };
611
+
612
+ // packages/core/src/lib/package/functions/load-packages.ts
613
+ import { styleText as styleText6 } from "util";
569
614
  var loadPackages = async (rootDir, packagePatterns, adapter, logger) => {
570
- const patternContent = packagePatterns.map((pattern) => `'${pattern}'`).join(", ");
571
- logger.debug(styleText5("dim", `Loading packages matching pattern/s ${patternContent}...${rootDir ? ` from ${rootDir}` : ""}`));
615
+ let resolvedPatterns = packagePatterns;
616
+ if (packagePatterns.length === 1 && packagePatterns[0] === "packages/*") {
617
+ resolvedPatterns = adapter.defaultPatterns;
618
+ }
619
+ const patternContent = resolvedPatterns.map((pattern) => `'${pattern}'`).join(", ");
620
+ logger.debug(styleText6("dim", `Loading packages matching pattern/s ${patternContent}...${rootDir ? ` from ${rootDir}` : ""}`));
572
621
  const packages = [];
573
622
  const seen = new Set;
574
- for await (const packageData of adapter.scanPackages(Array.from(new Set(packagePatterns)), logger, rootDir)) {
623
+ for await (const packageData of adapter.scanPackages(Array.from(new Set(resolvedPatterns)), logger, rootDir)) {
575
624
  if (seen.has(packageData.name)) {
576
625
  continue;
577
626
  }
@@ -592,7 +641,7 @@ import {
592
641
  } from "@package-pal/util";
593
642
 
594
643
  // packages/core/src/lib/process/functions/run-subprocess.ts
595
- import { styleText as styleText6 } from "util";
644
+ import { styleText as styleText7 } from "util";
596
645
 
597
646
  // packages/core/src/lib/process/types/exit-state.ts
598
647
  var ExitState = {
@@ -888,7 +937,7 @@ var cancelCodes = new Set([
888
937
  ]);
889
938
  var runSubprocess = async (opts) => {
890
939
  if (opts.signal?.aborted) {
891
- opts.logger?.debug(styleText6("dim", `Skipped '${opts.debugName}' subprocess command; signal already cancelled.`));
940
+ opts.logger?.debug(styleText7("dim", `Skipped '${opts.debugName}' subprocess command; signal already cancelled.`));
892
941
  return ExitState.Cancelled;
893
942
  }
894
943
  const {
@@ -915,11 +964,11 @@ var runSubprocess = async (opts) => {
915
964
  const [readStdout, readStderr] = [{
916
965
  source: subprocess.stdout,
917
966
  type: StdType.Out,
918
- writer: getLineBufferedWriter(styleText6("dim", `[O-${pid}]`.padEnd(minPrefixLen, " ")))
967
+ writer: getLineBufferedWriter(styleText7("dim", `[O-${pid}]`.padEnd(minPrefixLen, " ")))
919
968
  }, {
920
969
  source: subprocess.stderr,
921
970
  type: StdType.Err,
922
- writer: getLineBufferedWriter(styleText6("yellow", styleText6("dim", `[E-${pid}]`.padEnd(minPrefixLen, " "))), undefined, process.stderr.write.bind(process.stderr))
971
+ writer: getLineBufferedWriter(styleText7("yellow", styleText7("dim", `[E-${pid}]`.padEnd(minPrefixLen, " "))), undefined, process.stderr.write.bind(process.stderr))
923
972
  }].map(async ({
924
973
  source,
925
974
  type,
@@ -938,7 +987,7 @@ var runSubprocess = async (opts) => {
938
987
  writer.flush();
939
988
  });
940
989
  const executedCommand = commands.join(" ");
941
- opts.logger?.debug(styleText6("dim", `Started '${opts.debugName}' subprocess command '${opts.shellCommand}' (${executedCommand}) with PID ${pid}.`));
990
+ opts.logger?.debug(styleText7("dim", `Started '${opts.debugName}' subprocess command '${opts.shellCommand}' (${executedCommand}) with PID ${pid}.`));
942
991
  const [
943
992
  ,
944
993
  ,
@@ -948,14 +997,14 @@ var runSubprocess = async (opts) => {
948
997
  readStderr,
949
998
  subprocess.exited.then((exitCode) => {
950
999
  if (cancelCodes.has(exitCode)) {
951
- opts.logger?.debug(styleText6("dim", `Cancelled '${opts.debugName}' subprocess command; PID ${pid} exited.`));
1000
+ opts.logger?.debug(styleText7("dim", `Cancelled '${opts.debugName}' subprocess command; PID ${pid} exited.`));
952
1001
  return ExitState.Cancelled;
953
1002
  }
954
1003
  if (exitCode !== 0) {
955
- opts.logger?.error(styleText6("red", `'${opts.debugName}' command '${opts.shellCommand}' (${executedCommand}) with PID ${pid} failed with exit code ${exitCode.toString()}.`));
1004
+ opts.logger?.error(styleText7("red", `'${opts.debugName}' command '${opts.shellCommand}' (${executedCommand}) with PID ${pid} failed with exit code ${exitCode.toString()}.`));
956
1005
  return ExitState.Errored;
957
1006
  }
958
- opts.logger?.debug(styleText6("dim", `Completed '${opts.debugName}' subprocess command; PID ${pid} exited.`));
1007
+ opts.logger?.debug(styleText7("dim", `Completed '${opts.debugName}' subprocess command; PID ${pid} exited.`));
959
1008
  return ExitState.Completed;
960
1009
  })
961
1010
  ]);
@@ -1008,14 +1057,14 @@ import {
1008
1057
  dirname as dirname6,
1009
1058
  join as join3
1010
1059
  } from "path";
1011
- import { styleText as styleText8 } from "util";
1060
+ import { styleText as styleText9 } from "util";
1012
1061
  import {
1013
1062
  assertDefined as assertDefined12,
1014
1063
  getDeferredPromise,
1015
1064
  getStringMatcher,
1016
- isDefined as isDefined3,
1065
+ isDefined as isDefined4,
1017
1066
  normalisePath,
1018
- runAsync as runAsync2
1067
+ runAsync as runAsync3
1019
1068
  } from "@package-pal/util";
1020
1069
  var {Glob } = globalThis.Bun;
1021
1070
 
@@ -1054,7 +1103,20 @@ var DedupePathsBy = {
1054
1103
  import { sep } from "path";
1055
1104
  import { assertDefined as assertDefined9 } from "@package-pal/util";
1056
1105
  var dedupeSharedPaths = (paths, by) => {
1057
- const sorted = paths.toSorted((a, b) => a.split(sep).length - b.split(sep).length);
1106
+ const mapped = paths.map((path) => {
1107
+ let count = 0;
1108
+ for (const char of path) {
1109
+ if (char === sep) {
1110
+ count++;
1111
+ }
1112
+ }
1113
+ return {
1114
+ path,
1115
+ count
1116
+ };
1117
+ });
1118
+ mapped.sort((a, b) => a.count - b.count);
1119
+ const sorted = mapped.map((item) => item.path);
1058
1120
  const deduped = [];
1059
1121
  if (by === DedupePathsBy.Parent) {
1060
1122
  for (const path of sorted) {
@@ -1080,8 +1142,9 @@ var dedupeSharedPaths = (paths, by) => {
1080
1142
 
1081
1143
  // packages/core/src/lib/watch/functions/filter-files-modified-since.ts
1082
1144
  import { stat } from "fs/promises";
1145
+ import { runAsync as runAsync2 } from "@package-pal/util";
1083
1146
  var filterFilesModifiedSince = async (paths, sinceMs) => {
1084
- const results = await Promise.all(paths.map(async (path) => {
1147
+ const tasks = paths.map((path) => async () => {
1085
1148
  try {
1086
1149
  const s = await stat(path);
1087
1150
  const isModifiedSince = s.mtimeMs >= sinceMs;
@@ -1089,22 +1152,23 @@ var filterFilesModifiedSince = async (paths, sinceMs) => {
1089
1152
  } catch {
1090
1153
  return path;
1091
1154
  }
1092
- }));
1155
+ });
1156
+ const results = await runAsync2(tasks, 20);
1093
1157
  return results.filter((path) => path !== null);
1094
1158
  };
1095
1159
 
1096
1160
  // packages/core/src/lib/watch/functions/get-change-logic.ts
1097
- import { styleText as styleText7 } from "util";
1161
+ import { styleText as styleText8 } from "util";
1098
1162
  import { assertDefined as assertDefined11 } from "@package-pal/util";
1099
1163
 
1100
1164
  // packages/core/src/lib/graph/functions/generate-topological-ranking-range.ts
1101
- import { isDefined as isDefined2 } from "@package-pal/util";
1165
+ import { isDefined as isDefined3 } from "@package-pal/util";
1102
1166
  var generateTopologicalRankingRange = (graph, ranking) => {
1103
1167
  let min = Infinity;
1104
1168
  let max = -Infinity;
1105
1169
  for (const key of graph.keys()) {
1106
1170
  const rank = ranking.get(key);
1107
- if (!isDefined2(rank)) {
1171
+ if (!isDefined3(rank)) {
1108
1172
  continue;
1109
1173
  }
1110
1174
  if (rank < min) {
@@ -1195,8 +1259,8 @@ var getChangeLogic = (packageGraphs, packageChanges, lastProcessedSubgraph, conf
1195
1259
  const changedPackages = Array.from(packageChanges.keys());
1196
1260
  const changedFilePaths = Array.from(packageChanges.values()).flat();
1197
1261
  if (packageChanges.size) {
1198
- logger?.debug(styleText7("dim", `Changes detected in ${changedPackages.map((packageName) => `'${packageName}'`).join(", ")}.`));
1199
- logger?.debug(styleText7("dim", `Changed file paths: ${changedFilePaths.map((filePath) => `'${filePath}'`).join(", ")}.`));
1262
+ logger?.debug(styleText8("dim", `Changes detected in ${changedPackages.map((packageName) => `'${packageName}'`).join(", ")}.`));
1263
+ logger?.debug(styleText8("dim", `Changed file paths: ${changedFilePaths.map((filePath) => `'${filePath}'`).join(", ")}.`));
1200
1264
  }
1201
1265
  const packageOrder = generateTopologicalSortedGroups(packageGraphs.dependents, logger);
1202
1266
  const packageProcessOrder = packageOrder.circular.length > 0 ? packageOrder.groups.toReversed().concat([packageOrder.circular]) : packageOrder.groups.toReversed();
@@ -1207,9 +1271,9 @@ var getChangeLogic = (packageGraphs, packageChanges, lastProcessedSubgraph, conf
1207
1271
  const isSubgraphOfPrevious = !!lastProcessedSubgraph && isSubgraph(lastProcessedSubgraph, changedPackageSubgraph);
1208
1272
  const isDisjointFromPrevious = !lastProcessedSubgraph || !isSubgraphOfPrevious && isDisjoint(lastProcessedSubgraph, changedPackageSubgraph);
1209
1273
  const isRankedGreaterThanOrEqualToPrevious = !!lastProcessedSubgraph && !isSubgraphOfPrevious && isRankedGreaterThanOrEqual(lastProcessedSubgraph, changedPackageSubgraph, packageRankings);
1210
- logger?.debug(styleText7("dim", `Changes are subgraph of previous: ${isSubgraphOfPrevious.toString()}.`));
1211
- logger?.debug(styleText7("dim", `Changes are disjoint from previous: ${isDisjointFromPrevious.toString()}.`));
1212
- logger?.debug(styleText7("dim", `Changes are ranked greater than or equal to previous: ${isRankedGreaterThanOrEqualToPrevious.toString()}.`));
1274
+ logger?.debug(styleText8("dim", `Changes are subgraph of previous: ${isSubgraphOfPrevious.toString()}.`));
1275
+ logger?.debug(styleText8("dim", `Changes are disjoint from previous: ${isDisjointFromPrevious.toString()}.`));
1276
+ logger?.debug(styleText8("dim", `Changes are ranked greater than or equal to previous: ${isRankedGreaterThanOrEqualToPrevious.toString()}.`));
1213
1277
  let action = ChangeAction.Restart;
1214
1278
  if (!packageChanges.size) {
1215
1279
  action = ChangeAction.Ignore;
@@ -1229,7 +1293,7 @@ var getChangeLogic = (packageGraphs, packageChanges, lastProcessedSubgraph, conf
1229
1293
  });
1230
1294
  }
1231
1295
  }
1232
- logger?.debug(styleText7("dim", `Determined change action: ${action}.`));
1296
+ logger?.debug(styleText8("dim", `Determined change action: ${action}.`));
1233
1297
  return {
1234
1298
  changedPackageProcessOrder,
1235
1299
  changedPackageSubgraph,
@@ -1256,8 +1320,9 @@ var removeTrailing = [
1256
1320
  var normaliseWatchedFilePath = (filePath) => {
1257
1321
  const dir = dirname5(filePath);
1258
1322
  let base = basename3(filePath);
1323
+ const baseLower = base.toLowerCase();
1259
1324
  for (const trailing of removeTrailing) {
1260
- if (base.toLowerCase().endsWith(trailing)) {
1325
+ if (baseLower.endsWith(trailing)) {
1261
1326
  const sliceStart = base.startsWith(".") ? 1 : 0;
1262
1327
  base = base.slice(sliceStart, -trailing.length);
1263
1328
  break;
@@ -1278,7 +1343,7 @@ var onProcessPackage = async (packageGraphs, packageChanges, watchConfig, determ
1278
1343
  const isSequential = watchConfig.subprocess.concurrency === 1;
1279
1344
  const controller = determineAbortController(isRestart);
1280
1345
  const onProcessFailure = () => {
1281
- logger.debug(styleText8("dim", "Aborting controller: process failed."));
1346
+ logger.debug(styleText9("dim", "Aborting controller: process failed."));
1282
1347
  controller.abort();
1283
1348
  state.lastProcessedSubgraph = undefined;
1284
1349
  };
@@ -1287,11 +1352,11 @@ var onProcessPackage = async (packageGraphs, packageChanges, watchConfig, determ
1287
1352
  return;
1288
1353
  }
1289
1354
  if (packageChanges.size) {
1290
- logger.info(`${isRestart ? "Restarting processing" : "Initiating partial processing"} ${isSequential ? "sequentially" : `in parallel${isDefined3(watchConfig.subprocess.concurrency) ? ` with concurrency ${watchConfig.subprocess.concurrency.toString()}` : ""}`}.`);
1355
+ logger.info(`${isRestart ? "Restarting processing" : "Initiating partial processing"} ${isSequential ? "sequentially" : `in parallel${isDefined4(watchConfig.subprocess.concurrency) ? ` with concurrency ${watchConfig.subprocess.concurrency.toString()}` : ""}`}.`);
1291
1356
  state.lastProcessedSubgraph = state.lastProcessedSubgraph && !isRestart ? mergeGraphs(state.lastProcessedSubgraph, changedPackageSubgraph) : changedPackageSubgraph;
1292
1357
  }
1293
1358
  for (const group of changedPackageProcessOrder) {
1294
- await runAsync2(group.map((packageName) => async () => {
1359
+ await runAsync3(group.map((packageName) => async () => {
1295
1360
  const packageNode = assertDefined12(packageGraphs.dependencies.get(packageName));
1296
1361
  const changedPaths = packageChanges.get(packageName) ?? [];
1297
1362
  const processPackageProps = {
@@ -1343,7 +1408,7 @@ var onProcessPackage = async (packageGraphs, packageChanges, watchConfig, determ
1343
1408
  if (!errored) {
1344
1409
  const matchedErrorText = erroredMatcher?.push(chunk).matched();
1345
1410
  if (matchedErrorText) {
1346
- logger.error(styleText8("red", `'${packageName}' subprocess matched error text '${matchedErrorText}'.`));
1411
+ logger.error(styleText9("red", `'${packageName}' subprocess matched error text '${matchedErrorText}'.`));
1347
1412
  errored = true;
1348
1413
  Promise.resolve(watchConfig.hooks.onProcessPackageError(processPackageProps)).then((processPackageErrorCommand) => {
1349
1414
  if (!processPackageErrorCommand) {
@@ -1421,7 +1486,7 @@ var onProcessPackage = async (packageGraphs, packageChanges, watchConfig, determ
1421
1486
  };
1422
1487
  var watchPackageChanges = (packageData, packageGraphs, watchConfig, rootDir, logger) => {
1423
1488
  const dedupedRootPackageData = dedupeSharedPaths(packageData.map((packageData2) => packageData2.path), DedupePathsBy.Parent).map((packagePath) => assertDefined12(packageData.find((data) => data.path === packagePath)));
1424
- logger.debug(styleText8("dim", `Starting ${dedupedRootPackageData.length.toString()} watchers for ${packageData.length.toString()} packages.`));
1489
+ logger.debug(styleText9("dim", `Starting ${dedupedRootPackageData.length.toString()} watchers for ${packageData.length.toString()} packages.`));
1425
1490
  let closed = false;
1426
1491
  const state = { lastProcessedSubgraph: undefined };
1427
1492
  let debounceTimeout;
@@ -1432,7 +1497,7 @@ var watchPackageChanges = (packageData, packageGraphs, watchConfig, rootDir, log
1432
1497
  const useController = (reset) => {
1433
1498
  if (controller && (reset || controller.signal.aborted)) {
1434
1499
  if (reset) {
1435
- logger.debug(styleText8("dim", "Aborting controller: reset for new packages."));
1500
+ logger.debug(styleText9("dim", "Aborting controller: reset for new packages."));
1436
1501
  controller.abort();
1437
1502
  }
1438
1503
  controller = undefined;
@@ -1446,16 +1511,16 @@ var watchPackageChanges = (packageData, packageGraphs, watchConfig, rootDir, log
1446
1511
  filePath,
1447
1512
  isInitial = false
1448
1513
  }) => {
1449
- if (!isDefined3(startedDebounceMs)) {
1514
+ if (!isDefined4(startedDebounceMs)) {
1450
1515
  startedDebounceMs = Date.now();
1451
1516
  }
1452
1517
  if (packageName && watchPath && filePath) {
1453
1518
  const changedPath = normalisePath(join3(watchPath, normaliseWatchedFilePath(filePath)));
1454
1519
  if (ignoreGlobs?.some((glob) => glob.match(changedPath))) {
1455
- logger.debug(styleText8("dim", `Ignoring change '${changedPath}' (matched ignore pattern).`));
1520
+ logger.debug(styleText9("dim", `Ignoring change '${changedPath}' (matched ignore pattern).`));
1456
1521
  return;
1457
1522
  }
1458
- logger.debug(styleText8("dim", `Tracked change '${changedPath}'.`));
1523
+ logger.debug(styleText9("dim", `Tracked change '${changedPath}'.`));
1459
1524
  const existingPaths = changedPackagePaths.get(packageName);
1460
1525
  if (existingPaths) {
1461
1526
  existingPaths.add(changedPath);
@@ -1507,12 +1572,12 @@ var watchPackageChanges = (packageData, packageGraphs, watchConfig, rootDir, log
1507
1572
  watchers.forEach((watcher) => {
1508
1573
  watcher.close();
1509
1574
  });
1510
- logger.debug(styleText8("dim", "Aborting controller: closing watchers."));
1575
+ logger.debug(styleText9("dim", "Aborting controller: closing watchers."));
1511
1576
  controller?.abort();
1512
1577
  closed = true;
1513
1578
  };
1514
1579
  process.on("SIGINT", () => {
1515
- logger.debug(styleText8("dim", "Received SIGINT: closing watchers."));
1580
+ logger.debug(styleText9("dim", "Received SIGINT: closing watchers."));
1516
1581
  closeWatchers();
1517
1582
  process.exit(0);
1518
1583
  });
@@ -1530,10 +1595,10 @@ var watchPackageChanges = (packageData, packageGraphs, watchConfig, rootDir, log
1530
1595
  });
1531
1596
  return { close: () => {
1532
1597
  if (closed) {
1533
- logger.debug(styleText8("dim", "Watchers already closed."));
1598
+ logger.debug(styleText9("dim", "Watchers already closed."));
1534
1599
  return;
1535
1600
  }
1536
- logger.debug(styleText8("dim", "Closing watchers."));
1601
+ logger.debug(styleText9("dim", "Closing watchers."));
1537
1602
  closeWatchers();
1538
1603
  } };
1539
1604
  };
@@ -1560,18 +1625,9 @@ var getPackageCircularDependencyPaths = (options) => {
1560
1625
  checkBun();
1561
1626
  return generatePackageCircularDependencyPaths(options.packageGraphs, options.packageOrder, options.config.logger);
1562
1627
  };
1563
- var bumpPackageVersion = (options) => {
1628
+ var bumpPackageVersion2 = (options) => {
1564
1629
  checkBun();
1565
- const exact = isDefined4(options.exact) ? options.exact : options.config.version.exact;
1566
- const preId = isDefined4(options.preId) ? options.preId : options.config.version.preId;
1567
- return options.adapter.updateVersion({
1568
- packageName: options.packageName,
1569
- type: options.type,
1570
- packageGraphs: options.packageGraphs,
1571
- preId,
1572
- exact,
1573
- logger: options.config.logger
1574
- });
1630
+ return bumpPackageVersion(options);
1575
1631
  };
1576
1632
  var watchPackages = (options) => {
1577
1633
  checkBun();
@@ -1591,10 +1647,10 @@ export {
1591
1647
  getPackageCircularDependencyPaths,
1592
1648
  forEachPackage,
1593
1649
  dfsTraverseGraph2 as dfsTraverseGraph,
1594
- bumpPackageVersion,
1650
+ bumpPackageVersion2 as bumpPackageVersion,
1595
1651
  PackageAdapter,
1596
1652
  BumpVersionType
1597
1653
  };
1598
1654
 
1599
- //# debugId=2C554E09012C798F64756E2164756E21
1655
+ //# debugId=C18A12C7802A030C64756E2164756E21
1600
1656
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1,10 +1,9 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["..\\..\\packages\\core\\src\\lib\\types\\bump-version-type.ts", "..\\..\\packages\\core\\src\\lib\\package\\types\\package-adapter.ts", "..\\..\\packages\\core\\src\\lib\\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\\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\\run-for-each-package.ts", "..\\..\\packages\\core\\src\\lib\\process\\functions\\run-subprocess.ts", "..\\..\\packages\\core\\src\\lib\\process\\types\\exit-state.ts", "..\\..\\packages\\core\\src\\lib\\process\\types\\std-type.ts", "..\\..\\packages\\core\\src\\lib\\process\\functions\\get-commands-for-shell.ts", "..\\..\\packages\\core\\src\\lib\\types\\shell.ts", "..\\..\\packages\\core\\src\\lib\\process\\functions\\get-shell.ts", "..\\..\\packages\\core\\src\\lib\\process\\functions\\parse-ps-shell-flags.ts", "..\\..\\packages\\core\\src\\lib\\process\\functions\\strip-clixml.ts", "..\\..\\packages\\core\\src\\lib\\process\\functions\\get-line-buffered-writer.ts", "..\\..\\packages\\core\\src\\lib\\process\\functions\\read-stream.ts", "..\\..\\packages\\core\\src\\lib\\watch\\functions\\watch-package-changes.ts", "..\\..\\packages\\core\\src\\lib\\graph\\functions\\merge-graphs.ts", "..\\..\\packages\\core\\src\\lib\\watch\\types\\change-action.ts", "..\\..\\packages\\core\\src\\lib\\watch\\types\\dedupe-paths-by.ts", "..\\..\\packages\\core\\src\\lib\\watch\\functions\\dedupe-shared-paths.ts", "..\\..\\packages\\core\\src\\lib\\watch\\functions\\filter-files-modified-since.ts", "..\\..\\packages\\core\\src\\lib\\watch\\functions\\get-change-logic.ts", "..\\..\\packages\\core\\src\\lib\\graph\\functions\\generate-topological-ranking-range.ts", "..\\..\\packages\\core\\src\\lib\\graph\\functions\\generate-topological-ranking.ts", "..\\..\\packages\\core\\src\\lib\\graph\\functions\\is-disjoint.ts", "..\\..\\packages\\core\\src\\lib\\graph\\functions\\is-ranked-greater-than-or-equal.ts", "..\\..\\packages\\core\\src\\lib\\graph\\functions\\is-subgraph.ts", "..\\..\\packages\\core\\src\\lib\\watch\\functions\\normalise-watched-file-path.ts"],
3
+ "sources": ["..\\..\\packages\\core\\src\\lib\\types\\bump-version-type.ts", "..\\..\\packages\\core\\src\\lib\\package\\types\\package-adapter.ts", "..\\..\\packages\\core\\src\\lib\\configuration\\functions\\check-bun.ts", "..\\..\\packages\\core\\src\\lib\\configuration\\functions\\load-config.ts", "..\\..\\packages\\core\\src\\lib\\configuration\\functions\\get-default-logger.ts", "..\\..\\packages\\core\\src\\lib\\configuration\\schemas\\config.ts", "..\\..\\packages\\core\\src\\lib\\configuration\\functions\\z-loose-function.ts", "..\\..\\packages\\core\\src\\lib\\configuration\\functions\\z-loose-object-without-index-signature.ts", "..\\..\\packages\\core\\src\\lib\\configuration\\functions\\validate-config-path.ts", "..\\..\\packages\\core\\src\\lib\\configuration\\types\\supported-config-type.ts", "..\\..\\packages\\core\\src\\lib\\configuration\\functions\\parse-config.ts", "..\\..\\packages\\core\\src\\lib\\configuration\\functions\\search-config-path.ts", "..\\..\\packages\\core\\src\\lib\\configuration\\functions\\is-root-dir.ts", "..\\..\\packages\\core\\src\\lib\\graph\\functions\\generate-graphs.ts", "..\\..\\packages\\core\\src\\lib\\graph\\functions\\generate-package-circular-dependency-paths.ts", "..\\..\\packages\\core\\src\\lib\\graph\\functions\\dfs-traverse-graph-paths.ts", "..\\..\\packages\\core\\src\\lib\\graph\\functions\\extract-subgraph.ts", "..\\..\\packages\\core\\src\\lib\\graph\\functions\\dfs-traverse-graph.ts", "..\\..\\packages\\core\\src\\lib\\graph\\functions\\generate-topological-sorted-groups.ts", "..\\..\\packages\\core\\src\\lib\\package\\functions\\bump-package-version.ts", "..\\..\\packages\\core\\src\\lib\\package\\functions\\load-packages.ts", "..\\..\\packages\\core\\src\\lib\\package\\functions\\run-for-each-package.ts", "..\\..\\packages\\core\\src\\lib\\process\\functions\\run-subprocess.ts", "..\\..\\packages\\core\\src\\lib\\process\\types\\exit-state.ts", "..\\..\\packages\\core\\src\\lib\\process\\types\\std-type.ts", "..\\..\\packages\\core\\src\\lib\\process\\functions\\get-commands-for-shell.ts", "..\\..\\packages\\core\\src\\lib\\types\\shell.ts", "..\\..\\packages\\core\\src\\lib\\process\\functions\\get-shell.ts", "..\\..\\packages\\core\\src\\lib\\process\\functions\\parse-ps-shell-flags.ts", "..\\..\\packages\\core\\src\\lib\\process\\functions\\strip-clixml.ts", "..\\..\\packages\\core\\src\\lib\\process\\functions\\get-line-buffered-writer.ts", "..\\..\\packages\\core\\src\\lib\\process\\functions\\read-stream.ts", "..\\..\\packages\\core\\src\\lib\\watch\\functions\\watch-package-changes.ts", "..\\..\\packages\\core\\src\\lib\\graph\\functions\\merge-graphs.ts", "..\\..\\packages\\core\\src\\lib\\watch\\types\\change-action.ts", "..\\..\\packages\\core\\src\\lib\\watch\\types\\dedupe-paths-by.ts", "..\\..\\packages\\core\\src\\lib\\watch\\functions\\dedupe-shared-paths.ts", "..\\..\\packages\\core\\src\\lib\\watch\\functions\\filter-files-modified-since.ts", "..\\..\\packages\\core\\src\\lib\\watch\\functions\\get-change-logic.ts", "..\\..\\packages\\core\\src\\lib\\graph\\functions\\generate-topological-ranking-range.ts", "..\\..\\packages\\core\\src\\lib\\graph\\functions\\generate-topological-ranking.ts", "..\\..\\packages\\core\\src\\lib\\graph\\functions\\is-disjoint.ts", "..\\..\\packages\\core\\src\\lib\\graph\\functions\\is-ranked-greater-than-or-equal.ts", "..\\..\\packages\\core\\src\\lib\\graph\\functions\\is-subgraph.ts", "..\\..\\packages\\core\\src\\lib\\watch\\functions\\normalise-watched-file-path.ts", "..\\..\\packages\\core\\src\\lib\\api.ts"],
4
4
  "sourcesContent": [
5
5
  "import type { ValueOf } from '@package-pal/util';\r\n\r\nexport const BumpVersionType = {\r\n\tMajor: 'major',\r\n\tMinor: 'minor',\r\n\tPatch: 'patch',\r\n\tPremajor: 'premajor',\r\n\tPreminor: 'preminor',\r\n\tPrepatch: 'prepatch',\r\n\tPrerelease: 'prerelease',\r\n} as const;\r\n\r\nexport type BumpVersionType = ValueOf<typeof BumpVersionType>;\r\n",
6
- "import type { Logger } from '../../configuration/types/logger.ts';\r\nimport type { PackageGraphs } from '../../graph/types/package-graphs.ts';\r\nimport type { BumpVersionType } from '../../types/bump-version-type.ts';\r\nimport type { PackageData } from './package-data.ts';\r\n\r\nexport abstract class PackageAdapter {\r\n\t/**\r\n\t * Unique identifier for the adapter (e.g., 'package-json', 'msbuild').\r\n\t */\r\n\tabstract readonly name: string;\r\n\r\n\t/**\r\n\t * Glob pattern matching project manifests (e.g., 'package.json', '*.*proj').\r\n\t */\r\n\tabstract readonly manifestPattern: string;\r\n\r\n\t/**\r\n\t * Returns true if this adapter detects that it should be used for the current workspace/CWD.\r\n\t */\r\n\tabstract detect(cwd: string): Promise<boolean>;\r\n\r\n\t/**\r\n\t * Scans and parses all package manifests within the specified patterns.\r\n\t * Each adapter chooses the most optimized way to scan and yield packages.\r\n\t */\r\n\tabstract scanPackages(\r\n\t\tpatterns: string[],\r\n\t\tlogger: Logger,\r\n\t\tcwd?: string,\r\n\t): AsyncIterable<PackageData>;\r\n\r\n\t/**\r\n\t * Bumps a package's own version and updates any dependents' manifests.\r\n\t */\r\n\tabstract updateVersion(options: {\r\n\t\tpackageName: string;\r\n\t\ttype: BumpVersionType;\r\n\t\tpackageGraphs: PackageGraphs;\r\n\t\tpreId: string | undefined;\r\n\t\texact: boolean | undefined;\r\n\t\tlogger: Logger;\r\n\t}): Promise<void>;\r\n}\r\nexport type { PackageAdapter as IPackageAdapter };\r\n",
7
- "import { isDefined } from '@package-pal/util';\r\nimport { checkBun } from './configuration/functions/check-bun.ts';\r\nimport { loadConfig } from './configuration/functions/load-config.ts';\r\nimport type { ActivatedConfigAndRootDir } from './configuration/types/activated-config.ts';\r\nimport { generateGraphs } from './graph/functions/generate-graphs.ts';\r\nimport { generatePackageCircularDependencyPaths } from './graph/functions/generate-package-circular-dependency-paths.ts';\r\nimport { generateTopologicalSortedGroups } from './graph/functions/generate-topological-sorted-groups.ts';\r\nimport type { PackageGraphs } from './graph/types/package-graphs.ts';\r\nimport type { PackageOrder } from './graph/types/package-order.ts';\r\nimport { loadPackages } from './package/functions/load-packages.ts';\r\nimport { runForEachPackage } from './package/functions/run-for-each-package.ts';\r\nimport type { PackageData } from './package/types/package-data.ts';\r\nimport type { BumpPackageVersionOptions } from './types/bump-package-version-options.ts';\r\nimport type { ForEachPackageOptions } from './types/for-each-package-options.ts';\r\nimport type { GetConfigOptions } from './types/get-config-options.ts';\r\nimport type { GetPackageCircularDependencyPathsOptions } from './types/get-package-circular-dependency-paths-options.ts';\r\nimport type { GetPackageDataOptions } from './types/get-package-data-options.ts';\r\nimport type { GetPackageGraphOptions } from './types/get-package-graph-options.ts';\r\nimport type { GetPackageOrderOptions } from './types/get-package-order-options.ts';\r\nimport type { WatchPackagesOptions } from './types/watch-packages-options.ts';\r\nimport { watchPackageChanges } from './watch/functions/watch-package-changes.ts';\r\n\r\n/**\r\n * Searches upward from the current directory for a config file until one is found or the root is reached.\r\n * If found, the config is loaded and merged with default values.\r\n */\r\nexport const readPackagePalConfig = (options?: GetConfigOptions): Promise<ActivatedConfigAndRootDir> => {\r\n\tcheckBun();\r\n\treturn loadConfig(options?.overrideConfigPath);\r\n};\r\n\r\n/**\r\n * Finds and reads all package files that match the given glob patterns.\r\n */\r\nexport const readPackageData = async (options: GetPackageDataOptions): Promise<PackageData[]> => {\r\n\tcheckBun();\r\n\tconst packagePatterns = Array.isArray(options.config.packages) ? options.config.packages : [options.config.packages];\r\n\treturn loadPackages(\r\n\t\toptions.rootDir, packagePatterns, options.adapter, options.config.logger,\r\n\t);\r\n};\r\n\r\n/**\r\n * Computes dependency graphs for all packages.\r\n */\r\nexport const getPackageGraphs = (options: GetPackageGraphOptions): PackageGraphs => {\r\n\tcheckBun();\r\n\treturn generateGraphs(options.packageData, options.config.logger);\r\n};\r\n\r\n/**\r\n * Computes topologically sorted groups of packages.\r\n * Actions must be performed on each group sequentially,\r\n * but packages within the same group can be processed in parallel.\r\n */\r\nexport const getPackageOrder = (options: GetPackageOrderOptions): PackageOrder => {\r\n\tcheckBun();\r\n\treturn generateTopologicalSortedGroups(options.packageGraphs.dependencies, options.config.logger);\r\n};\r\n\r\n/**\r\n * Detects circular dependencies between packages and computes paths representing each cycle.\r\n */\r\nexport const getPackageCircularDependencyPaths = (options: GetPackageCircularDependencyPathsOptions): string[][] => {\r\n\tcheckBun();\r\n\treturn generatePackageCircularDependencyPaths(\r\n\t\toptions.packageGraphs,\r\n\t\toptions.packageOrder,\r\n\t\toptions.config.logger,\r\n\t);\r\n};\r\n\r\n/**\r\n * Bumps the source package version and updates any dependents if the new version\r\n * is no longer semver-compatible, preserving original version prefixes (e.g., `^`, `~`).\r\n * Does not publish.\r\n */\r\nexport const bumpPackageVersion = (options: BumpPackageVersionOptions): Promise<void> => {\r\n\tcheckBun();\r\n\tconst exact = isDefined(options.exact) ? options.exact : options.config.version.exact;\r\n\tconst preId = isDefined(options.preId) ? options.preId : options.config.version.preId;\r\n\treturn options.adapter.updateVersion({\r\n\t\tpackageName: options.packageName,\r\n\t\ttype: options.type,\r\n\t\tpackageGraphs: options.packageGraphs,\r\n\t\tpreId,\r\n\t\texact,\r\n\t\tlogger: options.config.logger,\r\n\t});\r\n};\r\n\r\n/**\r\n * Watches package source file changes, and triggers respective hooks defined in config.\r\n */\r\nexport const watchPackages = (options: WatchPackagesOptions): void => {\r\n\tcheckBun();\r\n\twatchPackageChanges(\r\n\t\toptions.packageData,\r\n\t\toptions.packageGraphs,\r\n\t\toptions.config.watch,\r\n\t\toptions.rootDir,\r\n\t\toptions.config.logger,\r\n\t);\r\n};\r\n\r\n/**\r\n * Run a command for each package.\r\n */\r\nexport const forEachPackage = (options: ForEachPackageOptions): Promise<void> => {\r\n\tcheckBun();\r\n\treturn runForEachPackage(\r\n\t\toptions.packageGraphs,\r\n\t\toptions.packageOrder,\r\n\t\toptions.getCommand,\r\n\t\toptions.config.logger,\r\n\t\toptions.topological,\r\n\t\toptions.concurrency,\r\n\t);\r\n};\r\n",
6
+ "import type { Logger } from '../../configuration/types/logger.ts';\r\nimport type { PackageData } from './package-data.ts';\r\n\r\nexport abstract class PackageAdapter {\r\n\t/**\r\n\t * Unique identifier for the adapter (e.g., 'package-json', 'msbuild').\r\n\t */\r\n\tabstract readonly name: string;\r\n\r\n\t/**\r\n\t * Glob pattern matching project manifests (e.g., 'package.json', '*.*proj').\r\n\t */\r\n\tabstract readonly manifestPattern: string;\r\n\r\n\t/**\r\n\t * Default package glob patterns to use if none are specified.\r\n\t */\r\n\tabstract readonly defaultPatterns: string[];\r\n\r\n\t/**\r\n\t * Returns true if this adapter detects that it should be used for the current workspace/CWD.\r\n\t */\r\n\tabstract detect(cwd: string): Promise<boolean>;\r\n\r\n\t/**\r\n\t * Scans and parses all package manifests within the specified patterns.\r\n\t * Each adapter chooses the most optimized way to scan and yield packages.\r\n\t */\r\n\tabstract scanPackages(\r\n\t\tpatterns: string[],\r\n\t\tlogger: Logger,\r\n\t\tcwd?: string,\r\n\t): AsyncIterable<PackageData>;\r\n\r\n\t/**\r\n\t * Bumps a package's own version in its manifest.\r\n\t */\r\n\tabstract bumpOwnVersion(\r\n\t\tpackageData: PackageData,\r\n\t\tnewVersion: string,\r\n\t\tlogger: Logger,\r\n\t): Promise<void>;\r\n\r\n\t/**\r\n\t * Updates a dependent package's manifest to point to the new dependency version.\r\n\t * Returns true if a modification was made.\r\n\t */\r\n\tabstract bumpDependencyVersion(\r\n\t\tdependentPackageData: PackageData,\r\n\t\ttargetDependencyName: string,\r\n\t\tnewVersion: string,\r\n\t\texact: boolean,\r\n\t\tlogger: Logger,\r\n\t): Promise<boolean>;\r\n}\r\n",
8
7
  "export const checkBun = () => {\r\n\t// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\r\n\tif (!Bun) {\r\n\t\tthrow new Error('This package must be run using the Bun runtime (see https://bun.com/).');\r\n\t}\r\n};\r\n",
9
8
  "import { dirname } from 'path';\r\nimport { cwd } from 'process';\r\nimport { styleText } from 'util';\r\nimport {\r\n\tdeepMergeDefined, formatSimpleLogObject, noOp,\r\n} from '@package-pal/util';\r\nimport type {\r\n\tActivatedConfig, ActivatedConfigAndRootDir,\r\n} from '../types/activated-config.ts';\r\nimport type { Logger } from '../types/logger.ts';\r\nimport { getDefaultLogger } from './get-default-logger.ts';\r\nimport { parseConfig } from './parse-config.ts';\r\nimport { searchConfigPath } from './search-config-path.ts';\r\n\r\nconst defaultConfig: ActivatedConfig = {\r\n\tadapter: 'auto',\r\n\tpackages: 'packages/*',\r\n\tversion: {\r\n\t\tpreId: '',\r\n\t\texact: false,\r\n\t},\r\n\twatch: {\r\n\t\tdebounceMs: 500,\r\n\t\tignore: '',\r\n\t\thooks: {\r\n\t\t\tonInit: noOp,\r\n\t\t\tonBeforeProcessPackage: noOp,\r\n\t\t\tonProcessPackage: noOp,\r\n\t\t\tonProcessPackageError: noOp,\r\n\t\t\tonAfterProcessPackage: noOp,\r\n\t\t\tonBeforePackagesReady: noOp,\r\n\t\t\tonPackagesReady: noOp,\r\n\t\t\tonAfterPackagesReady: noOp,\r\n\t\t},\r\n\t\tsubprocess: {\r\n\t\t\tpartialProcessing: false,\r\n\t\t\tconcurrency: null,\r\n\t\t\tmatchLongRunningOutputAsReady: null,\r\n\t\t\tmatchLongRunningOutputAsErrored: null,\r\n\t\t},\r\n\t},\r\n\tlogger: getDefaultLogger('info'),\r\n\tlogLevel: 'info',\r\n};\r\n\r\nexport const loadConfig = async (overrideConfigPath: string | undefined): Promise<ActivatedConfigAndRootDir> => {\r\n\tconst path = await searchConfigPath(overrideConfigPath);\r\n\r\n\tif (!path) {\r\n\t\tdefaultConfig.logger.debug('No config file found. Defaults will be applied.');\r\n\t\treturn {\r\n\t\t\tconfig: defaultConfig,\r\n\t\t\trootDir: cwd(),\r\n\t\t};\r\n\t}\r\n\r\n\tconst parsedConfig = await parseConfig(path);\r\n\tconst parsedLogger = parsedConfig['logger' as keyof typeof parsedConfig] as Logger | undefined;\r\n\tconst logger = parsedLogger ?? (!parsedConfig.logLevel || parsedConfig.logLevel === defaultConfig.logLevel ? defaultConfig.logger : getDefaultLogger(parsedConfig.logLevel));\r\n\tlogger.debug(`Successfully loaded config file '${path}'.`);\r\n\tlogger.debug(styleText('dim', styleText('bgGray', 'User config:')), `\\n${styleText('dim', formatSimpleLogObject(parsedConfig))}`);\r\n\r\n\tlogger.debug(styleText('dim', styleText('bgGray', 'Default config:')), `\\n${styleText('dim', formatSimpleLogObject(defaultConfig))}`);\r\n\tconst activatedConfig = deepMergeDefined(defaultConfig, parsedConfig);\r\n\t// @ts-expect-error Override readonly.\r\n\tactivatedConfig.logger = logger;\r\n\tlogger.debug(styleText('dim', styleText('bgGray', 'Activated config:')), `\\n${styleText('dim', formatSimpleLogObject(activatedConfig))}`);\r\n\r\n\treturn {\r\n\t\tconfig: activatedConfig,\r\n\t\trootDir: dirname(path),\r\n\t};\r\n};\r\n",
10
9
  "import {\r\n\tassertDefined, noOp,\r\n} from '@package-pal/util';\r\nimport type { SchemaLogLevel } from '../types/config.ts';\r\nimport type { Logger } from '../types/logger.ts';\r\n\r\nconst levelOrder: Record<SchemaLogLevel, number> = {\r\n\tdebug: 0,\r\n\tinfo: 1,\r\n\twarn: 2,\r\n\terror: 3,\r\n\tsilent: Infinity,\r\n};\r\n\r\nexport const getDefaultLogger = (logLevel: SchemaLogLevel): Logger => {\r\n\tconst level = assertDefined(levelOrder[logLevel]);\r\n\r\n\treturn {\r\n\t\tdebug: level <= levelOrder.debug ? console.debug : noOp,\r\n\t\tinfo: level <= levelOrder.info ? console.info : noOp,\r\n\t\twarn: level <= levelOrder.warn ? console.warn : noOp,\r\n\t\terror: level <= levelOrder.error ? console.error : noOp,\r\n\t};\r\n};\r\n",
@@ -16,13 +15,14 @@
16
15
  "import { Config } from '../schemas/config.ts';\r\nimport type { SchemaConfig } from '../types/config.ts';\r\nimport { validateConfigPath } from './validate-config-path.ts';\r\n\r\nexport const parseConfig = async (path: string) => {\r\n\tconst result = validateConfigPath(path);\r\n\r\n\tif (!result.valid) {\r\n\t\tthrow new Error(result.errorMessage);\r\n\t}\r\n\r\n\tconst module = await import(path) as { default?: SchemaConfig };\r\n\tconst base = (module.default ?? module) as SchemaConfig;\r\n\treturn Config.parse(base);\r\n};\r\n",
17
16
  "import {\r\n\tisAbsolute, join, dirname,\r\n} from 'path';\r\nimport { isDefined } from '@package-pal/util';\r\nimport { isRootDir } from './is-root-dir.ts';\r\nimport { CONFIG_SUPPORTED_NAMES } from './validate-config-path.ts';\r\n\r\nconst dirDistLimit = 25;\r\n\r\nconst checkForConfigInDir = async (dir: string) => {\r\n\tconst checks = await Promise.all(CONFIG_SUPPORTED_NAMES.map(name => Bun.file(join(dir, name)).exists()\r\n\t\t.then(exists => ({\r\n\t\t\tname,\r\n\t\t\texists,\r\n\t\t}))));\r\n\tconst found = checks.find(c => c.exists);\r\n\treturn found ? join(dir, found.name) : undefined;\r\n};\r\n\r\nexport const searchConfigPath = async (pathOverride?: string) => {\r\n\tlet activeDir = process.cwd();\r\n\r\n\tif (isDefined(pathOverride)) {\r\n\t\tif (isAbsolute(pathOverride)) {\r\n\t\t\treturn pathOverride;\r\n\t\t}\r\n\r\n\t\treturn join(activeDir, pathOverride);\r\n\t}\r\n\r\n\tlet trackDist = 0;\r\n\twhile (!isRootDir(activeDir)) {\r\n\t\tif (trackDist > dirDistLimit) {\r\n\t\t\tthrow new Error(`Maximum config search directory distance reached (${dirDistLimit.toString()}).`);\r\n\t\t}\r\n\r\n\t\tconst configPath = await checkForConfigInDir(activeDir);\r\n\r\n\t\tif (configPath) {\r\n\t\t\treturn configPath;\r\n\t\t}\r\n\r\n\t\ttrackDist++;\r\n\t\tactiveDir = dirname(activeDir);\r\n\t}\r\n\r\n\treturn checkForConfigInDir(activeDir);\r\n};\r\n",
18
17
  "import { dirname } from 'path';\r\n\r\nexport const isRootDir = (path: string) => {\r\n\treturn dirname(path) === path;\r\n};\r\n",
19
- "import { styleText } from 'util';\r\nimport { assertDefined } from '@package-pal/util';\r\nimport type { Logger } from '../../configuration/types/logger.ts';\r\nimport type { PackageData } from '../../package/types/package-data.ts';\r\nimport type { PackageGraph } from '../types/package-graph.ts';\r\n\r\ninterface TrackPackageOptions {\r\n\ttrackedDependencies: Set<string>;\r\n\tpackageNames: Set<string>;\r\n\tpackageData: PackageData;\r\n}\r\n\r\nconst trackPackageEntryDependencies = ({\r\n\ttrackedDependencies,\r\n\tpackageNames,\r\n\tpackageData,\r\n}: TrackPackageOptions) => {\r\n\tfor (const trackPackageName of packageData.localDependencies ?? []) {\r\n\t\tif (!packageNames.has(trackPackageName)) {\r\n\t\t\tcontinue;\r\n\t\t}\r\n\r\n\t\ttrackedDependencies.add(trackPackageName);\r\n\t}\r\n};\r\n\r\nconst generateReverseGraph = (packages: PackageData[], packageGraph: PackageGraph) => {\r\n\tconst reversePackageGraph: PackageGraph = new Map(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",
18
+ "import { styleText } from 'util';\r\nimport { assertDefined } from '@package-pal/util';\r\nimport type { Logger } from '../../configuration/types/logger.ts';\r\nimport type { PackageData } from '../../package/types/package-data.ts';\r\nimport type { PackageGraph } from '../types/package-graph.ts';\r\n\r\ninterface TrackPackageOptions {\r\n\ttrackedDependencies: Set<string>;\r\n\tpackageNames: Set<string>;\r\n\tpackageData: PackageData;\r\n}\r\n\r\nconst trackPackageEntryDependencies = ({\r\n\ttrackedDependencies,\r\n\tpackageNames,\r\n\tpackageData,\r\n}: TrackPackageOptions) => {\r\n\tfor (const trackPackageName of packageData.localDependencies ?? []) {\r\n\t\tif (!packageNames.has(trackPackageName)) {\r\n\t\t\tcontinue;\r\n\t\t}\r\n\r\n\t\ttrackedDependencies.add(trackPackageName);\r\n\t}\r\n};\r\n\r\nconst generateReverseGraph = (packages: PackageData[], packageGraph: PackageGraph) => {\r\n\tconst reversePackageGraph: PackageGraph = new Map();\r\n\tfor (const packageData of packages) {\r\n\t\treversePackageGraph.set(packageData.name, {\r\n\t\t\tpackageData: packageData,\r\n\t\t\tpointsToPackages: new Set<string>(),\r\n\t\t});\r\n\t}\r\n\r\n\tfor (const packageData of packages) {\r\n\t\tconst packageNode = assertDefined(packageGraph.get(packageData.name));\r\n\r\n\t\tfor (const dependency of packageNode.pointsToPackages) {\r\n\t\t\tconst reverseNode = assertDefined(reversePackageGraph.get(dependency));\r\n\t\t\treverseNode.pointsToPackages.add(packageData.name);\r\n\t\t}\r\n\t}\r\n\r\n\treturn reversePackageGraph;\r\n};\r\n\r\nexport const generateGraphs = (packages: PackageData[], logger: Logger) => {\r\n\tlogger.debug(styleText('dim', `Generating package graphs for ${packages.length.toString()} packages...`));\r\n\tconst packageNames = new Set(packages.map(packageData => packageData.name));\r\n\tconst packageGraph: PackageGraph = new Map();\r\n\r\n\tfor (const packageData of packages) {\r\n\t\tconst trackedDependencies = new Set<string>();\r\n\r\n\t\ttrackPackageEntryDependencies({\r\n\t\t\ttrackedDependencies,\r\n\t\t\tpackageNames,\r\n\t\t\tpackageData,\r\n\t\t});\r\n\r\n\t\tpackageGraph.set(packageData.name, {\r\n\t\t\tpackageData: packageData,\r\n\t\t\tpointsToPackages: trackedDependencies,\r\n\t\t});\r\n\t}\r\n\r\n\tconst reversePackageGraph = generateReverseGraph(packages, packageGraph);\r\n\r\n\treturn {\r\n\t\tdependencies: packageGraph,\r\n\t\tdependents: reversePackageGraph,\r\n\t};\r\n};\r\n",
20
19
  "import { styleText } from 'util';\r\nimport { assertDefined } from '@package-pal/util';\r\nimport type { Logger } from '../../configuration/types/logger.ts';\r\nimport type { PackageGraph } from '../types/package-graph.ts';\r\nimport type { PackageGraphs } from '../types/package-graphs.ts';\r\nimport type { PackageOrder } from '../types/package-order.ts';\r\nimport { dfsTraverseGraphPaths } from './dfs-traverse-graph-paths.ts';\r\nimport { extractSubgraph } from './extract-subgraph.ts';\r\n\r\nconst findStronglyConnectedComponents = (graph: PackageGraph) => {\r\n\tlet index = 0;\r\n\tconst indices = new Map<string, number>();\r\n\tconst lowlinks = new Map<string, number>();\r\n\tconst stack: string[] = [];\r\n\tconst onStack = new Set<string>();\r\n\tconst sccs: string[][] = [];\r\n\r\n\tconst strongConnect = (node: string) => {\r\n\t\tindices.set(node, index);\r\n\t\tlowlinks.set(node, index);\r\n\t\tindex++;\r\n\t\tstack.push(node);\r\n\t\tonStack.add(node);\r\n\r\n\t\tconst neighbors = graph.get(node)?.pointsToPackages ?? new Set();\r\n\t\tfor (const neighbor of neighbors) {\r\n\t\t\tif (!indices.has(neighbor)) {\r\n\t\t\t\tstrongConnect(neighbor);\r\n\t\t\t\tlowlinks.set(node, Math.min(assertDefined(lowlinks.get(node)), assertDefined(lowlinks.get(neighbor))));\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tif (onStack.has(neighbor)) {\r\n\t\t\t\tlowlinks.set(node, Math.min(assertDefined(lowlinks.get(node)), assertDefined(indices.get(neighbor))));\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (lowlinks.get(node) === indices.get(node)) {\r\n\t\t\tconst scc: string[] = [];\r\n\t\t\tlet stackNode = assertDefined(stack.pop());\r\n\t\t\tonStack.delete(stackNode);\r\n\t\t\tscc.push(stackNode);\r\n\r\n\t\t\twhile (stackNode !== node) {\r\n\t\t\t\tstackNode = assertDefined(stack.pop());\r\n\t\t\t\tonStack.delete(stackNode);\r\n\t\t\t\tscc.push(stackNode);\r\n\t\t\t}\r\n\r\n\t\t\tconst firstNode = scc[0];\r\n\t\t\tconst isSelfCycle = !!firstNode && (graph.get(firstNode)?.pointsToPackages.has(firstNode) ?? false);\r\n\r\n\t\t\tif (scc.length > 1 || isSelfCycle) {\r\n\t\t\t\tsccs.push(scc);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\tfor (const node of graph.keys()) {\r\n\t\tif (!indices.has(node)) {\r\n\t\t\tstrongConnect(node);\r\n\t\t}\r\n\t}\r\n\r\n\treturn sccs;\r\n};\r\n\r\nconst findSampleCyclePath = (scc: string[], graph: PackageGraph) => {\r\n\tconst sccSet = new Set(scc);\r\n\r\n\treturn assertDefined(dfsTraverseGraphPaths(graph, scc).find((path) => {\r\n\t\tconst lastPackage = path[path.length - 1];\r\n\t\treturn path.length >= 2 && lastPackage && sccSet.has(lastPackage);\r\n\t}));\r\n};\r\n\r\nexport const generatePackageCircularDependencyPaths = (\r\n\t{ dependents }: PackageGraphs,\r\n\tpackageSorted: PackageOrder,\r\n\tlogger: Logger,\r\n) => {\r\n\tlogger.debug(styleText('dim', 'Generating circular dependency paths...'));\r\n\tconst subgraph = extractSubgraph(dependents, packageSorted.circular);\r\n\tconst scss = findStronglyConnectedComponents(subgraph);\r\n\tconst sampleCycles = scss.map(scc => findSampleCyclePath(scc, subgraph).reverse());\r\n\r\n\tif (sampleCycles.length) {\r\n\t\tconst sampleCycleContents = sampleCycles\r\n\t\t\t.map((cycle, index) => {\r\n\t\t\t\treturn `\\t${(index + 1).toString()}. ` + cycle.map(name => `'${name}'`).join(' → ');\r\n\t\t\t})\r\n\t\t\t.join('\\n');\r\n\t\tlogger.warn(styleText('yellow', `${sampleCycles.length.toString()} cyclic paths found:\\n${sampleCycleContents}`));\r\n\t} else {\r\n\t\tlogger.debug(styleText('dim', `No cyclic paths found.`));\r\n\t}\r\n\r\n\treturn sampleCycles;\r\n};\r\n",
21
- "import { assertDefined } from '@package-pal/util';\r\nimport type { PackageGraph } from '../types/package-graph';\r\n\r\n// eslint-disable-next-line @stylistic/object-curly-newline\r\nexport interface DfsTraverseGraphPathsOptions {\r\n\t/**\r\n\t * Whether to use a global visited set to skip already visited nodes across different paths.\r\n\t * @default true\r\n\t */\r\n\tuseGlobalVisited?: boolean; }\r\n\r\nexport const dfsTraverseGraphPaths = function* (\r\n\tgraph: PackageGraph,\r\n\ttraverseFromPackages: string | string[],\r\n\toptions: DfsTraverseGraphPathsOptions = {},\r\n): Generator<string[]> {\r\n\tconst { useGlobalVisited = true } = options;\r\n\tconst globalVisited = new Set<string>();\r\n\tconst startPackages = Array.isArray(traverseFromPackages) ? traverseFromPackages : [traverseFromPackages];\r\n\r\n\tfor (const start of startPackages) {\r\n\t\tconst stack: {\r\n\t\t\tnode: string;\r\n\t\t\tpath: string[];\r\n\t\t\tlocalVisited: Set<string>;\r\n\t\t}[] = [{\r\n\t\t\tnode: start,\r\n\t\t\tpath: [],\r\n\t\t\tlocalVisited: new Set(),\r\n\t\t}];\r\n\r\n\t\twhile (stack.length) {\r\n\t\t\tconst {\r\n\t\t\t\tnode, path, localVisited,\r\n\t\t\t} = assertDefined(stack.pop());\r\n\r\n\t\t\tif (localVisited.has(node)) {\r\n\t\t\t\tconst idx = path.indexOf(node);\r\n\t\t\t\tif (idx !== -1) {\r\n\t\t\t\t\tyield [...path.slice(idx), node];\r\n\t\t\t\t}\r\n\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tif (useGlobalVisited && globalVisited.has(node)) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tconst newPath = [...path, node];\r\n\t\t\tconst newLocalVisited = new Set(localVisited);\r\n\t\t\tnewLocalVisited.add(node);\r\n\r\n\t\t\tconst neighbours = graph.get(node)?.pointsToPackages;\r\n\t\t\tlet pushed = false;\r\n\r\n\t\t\tif (neighbours) {\r\n\t\t\t\tfor (const neighbour of neighbours) {\r\n\t\t\t\t\tstack.push({\r\n\t\t\t\t\t\tnode: neighbour,\r\n\t\t\t\t\t\tpath: newPath,\r\n\t\t\t\t\t\tlocalVisited: newLocalVisited,\r\n\t\t\t\t\t});\r\n\t\t\t\t\tpushed = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (!pushed) {\r\n\t\t\t\tyield newPath;\r\n\t\t\t}\r\n\r\n\t\t\tif (useGlobalVisited) {\r\n\t\t\t\tglobalVisited.add(node);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n};\r\n",
20
+ "import { assertDefined } from '@package-pal/util';\r\nimport type { PackageGraph } from '../types/package-graph';\r\n\r\n// eslint-disable-next-line @stylistic/object-curly-newline\r\nexport interface DfsTraverseGraphPathsOptions {\r\n\t/**\r\n\t * Whether to use a global visited set to skip already visited nodes across different paths.\r\n\t * @default true\r\n\t */\r\n\tuseGlobalVisited?: boolean; }\r\n\r\nexport const dfsTraverseGraphPaths = function* (\r\n\tgraph: PackageGraph,\r\n\ttraverseFromPackages: string | string[],\r\n\toptions: DfsTraverseGraphPathsOptions = {},\r\n): Generator<string[]> {\r\n\tconst { useGlobalVisited = true } = options;\r\n\tconst globalVisited = new Set<string>();\r\n\tconst startPackages = Array.isArray(traverseFromPackages) ? traverseFromPackages : [traverseFromPackages];\r\n\r\n\tfor (const start of startPackages) {\r\n\t\tconst stack: {\r\n\t\t\tnode: string;\r\n\t\t\tpath: string[];\r\n\t\t\tlocalVisited: Set<string>;\r\n\t\t}[] = [{\r\n\t\t\tnode: start,\r\n\t\t\tpath: [],\r\n\t\t\tlocalVisited: new Set(),\r\n\t\t}];\r\n\r\n\t\twhile (stack.length) {\r\n\t\t\tconst {\r\n\t\t\t\tnode, path, localVisited,\r\n\t\t\t} = assertDefined(stack.pop());\r\n\r\n\t\t\tif (localVisited.has(node)) {\r\n\t\t\t\tconst idx = path.indexOf(node);\r\n\t\t\t\tif (idx !== -1) {\r\n\t\t\t\t\tyield path.slice(idx).concat(node);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tif (useGlobalVisited && globalVisited.has(node)) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tconst newPath = path.concat(node);\r\n\t\t\tconst newLocalVisited = new Set(localVisited);\r\n\t\t\tnewLocalVisited.add(node);\r\n\r\n\t\t\tconst neighbours = graph.get(node)?.pointsToPackages;\r\n\t\t\tlet pushed = false;\r\n\r\n\t\t\tif (neighbours) {\r\n\t\t\t\tfor (const neighbour of neighbours) {\r\n\t\t\t\t\tstack.push({\r\n\t\t\t\t\t\tnode: neighbour,\r\n\t\t\t\t\t\tpath: newPath,\r\n\t\t\t\t\t\tlocalVisited: newLocalVisited,\r\n\t\t\t\t\t});\r\n\t\t\t\t\tpushed = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (!pushed) {\r\n\t\t\t\tyield newPath;\r\n\t\t\t}\r\n\r\n\t\t\tif (useGlobalVisited) {\r\n\t\t\t\tglobalVisited.add(node);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n};\r\n",
22
21
  "import { assertDefined } from '@package-pal/util';\r\nimport type { PackageGraph } from '../types/package-graph.ts';\r\nimport { dfsTraverseGraph } from './dfs-traverse-graph.ts';\r\n\r\nexport const extractSubgraph = (graph: PackageGraph, fromPackages: string | string[]) => {\r\n\tconst reachablePackages = new Set(dfsTraverseGraph(graph, fromPackages).map(packageData => packageData.name));\r\n\tconst subgraph: PackageGraph = new Map();\r\n\r\n\tfor (const packageName of reachablePackages) {\r\n\t\tconst node = assertDefined(graph.get(packageName));\r\n\t\tconst filteredNeighbours = new Set<string>();\r\n\r\n\t\tfor (const dep of node.pointsToPackages) {\r\n\t\t\tif (reachablePackages.has(dep)) {\r\n\t\t\t\tfilteredNeighbours.add(dep);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tsubgraph.set(packageName, {\r\n\t\t\tpackageData: node.packageData,\r\n\t\t\tpointsToPackages: filteredNeighbours,\r\n\t\t});\r\n\t}\r\n\r\n\treturn subgraph;\r\n};\r\n",
23
- "import { assertDefined } from '@package-pal/util';\r\nimport type { PackageData } from '../../package/types/package-data.ts';\r\nimport type { PackageGraph } from '../types/package-graph.ts';\r\n\r\nexport const dfsTraverseGraph = function* (graph: PackageGraph, traverseFromPackages: string | string[]): Generator<Readonly<PackageData>, void, undefined> {\r\n\tconst visited = new Set<string>();\r\n\tconst stack = Array.isArray(traverseFromPackages) ? [...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
- "import { styleText } from 'util';\r\nimport { assertDefined } from '@package-pal/util';\r\nimport type { Logger } from '../../configuration/types/logger.ts';\r\nimport type { PackageGraph } from '../types/package-graph.ts';\r\nimport type { PackageOrder } from '../types/package-order.ts';\r\n\r\nconst getCircularDependencies = (inDegree: Map<string, number>) => {\r\n\treturn Array.from(inDegree.keys()).sort((a, b) => {\r\n\t\tconst degA = assertDefined(inDegree.get(a));\r\n\t\tconst degB = assertDefined(inDegree.get(b));\r\n\t\tif (degB !== degA) {\r\n\t\t\treturn degB - degA;\r\n\t\t}\r\n\t\treturn a.localeCompare(b);\r\n\t});\r\n};\r\n\r\nexport const generateTopologicalSortedGroups = (packageGraph: PackageGraph, logger?: Logger): PackageOrder => {\r\n\tlogger?.debug(styleText('dim', 'Generating topological sorted groups...'));\r\n\tconst 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
- "import { styleText } from 'util';\r\nimport type { Logger } from '../../configuration/types/logger.ts';\r\nimport type { PackageAdapter } from '../types/package-adapter.ts';\r\nimport type { PackageData } from '../types/package-data.ts';\r\n\r\nexport const loadPackages = async (\r\n\trootDir: string,\r\n\tpackagePatterns: string[],\r\n\tadapter: PackageAdapter,\r\n\tlogger: Logger,\r\n) => {\r\n\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 adapter.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",
22
+ "import { assertDefined } from '@package-pal/util';\r\nimport type { PackageData } from '../../package/types/package-data.ts';\r\nimport type { PackageGraph } from '../types/package-graph.ts';\r\n\r\nexport const dfsTraverseGraph = function* (graph: PackageGraph, traverseFromPackages: string | string[]): Generator<Readonly<PackageData>, void, undefined> {\r\n\tconst visited = new Set<string>();\r\n\tconst stack = Array.isArray(traverseFromPackages) ? traverseFromPackages.slice() : [traverseFromPackages];\r\n\r\n\twhile (stack.length) {\r\n\t\tconst activePackage = assertDefined(stack.pop());\r\n\t\tif (visited.has(activePackage)) {\r\n\t\t\tcontinue;\r\n\t\t}\r\n\r\n\t\tvisited.add(activePackage);\r\n\r\n\t\tconst node = graph.get(activePackage);\r\n\t\tif (!node) {\r\n\t\t\tcontinue;\r\n\t\t}\r\n\r\n\t\tyield node.packageData;\r\n\r\n\t\tfor (const dep of node.pointsToPackages) {\r\n\t\t\tif (!visited.has(dep)) {\r\n\t\t\t\tstack.push(dep);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n};\r\n",
23
+ "import { styleText } from 'util';\r\nimport { assertDefined } from '@package-pal/util';\r\nimport type { Logger } from '../../configuration/types/logger.ts';\r\nimport type { PackageGraph } from '../types/package-graph.ts';\r\nimport type { PackageOrder } from '../types/package-order.ts';\r\n\r\nconst getCircularDependencies = (inDegree: Map<string, number>) => {\r\n\treturn Array.from(inDegree.keys()).sort((a, b) => {\r\n\t\tconst degA = assertDefined(inDegree.get(a));\r\n\t\tconst degB = assertDefined(inDegree.get(b));\r\n\t\tif (degB !== degA) {\r\n\t\t\treturn degB - degA;\r\n\t\t}\r\n\t\treturn a.localeCompare(b);\r\n\t});\r\n};\r\n\r\nexport const generateTopologicalSortedGroups = (packageGraph: PackageGraph, logger?: Logger): PackageOrder => {\r\n\tlogger?.debug(styleText('dim', 'Generating topological sorted groups...'));\r\n\tconst inDegree = new Map<string, number>();\r\n\tconst graph = new Map<string, Set<string>>();\r\n\r\n\tfor (const [packageName] of packageGraph) {\r\n\t\tinDegree.set(packageName, 0);\r\n\t\tgraph.set(packageName, new Set<string>());\r\n\t}\r\n\r\n\tfor (const [packageName, node] of packageGraph) {\r\n\t\tfor (const dependencyName of node.pointsToPackages) {\r\n\t\t\tconst adj = graph.get(dependencyName);\r\n\t\t\tif (adj) {\r\n\t\t\t\tadj.add(packageName);\r\n\t\t\t}\r\n\t\t\tconst currentDeg = inDegree.get(packageName) ?? 0;\r\n\t\t\tinDegree.set(packageName, currentDeg + 1);\r\n\t\t}\r\n\t}\r\n\r\n\tconst result: string[][] = [];\r\n\tlet ready: string[] = [];\r\n\r\n\tfor (const [packageName, deg] of inDegree) {\r\n\t\tif (deg === 0) {\r\n\t\t\tready.push(packageName);\r\n\t\t}\r\n\t}\r\n\r\n\twhile (ready.length > 0) {\r\n\t\tresult.push(ready);\r\n\t\tconst nextReady: string[] = [];\r\n\r\n\t\tfor (const packageName of ready) {\r\n\t\t\tinDegree.delete(packageName);\r\n\t\t\tconst dependentPackages = graph.get(packageName);\r\n\r\n\t\t\tif (!dependentPackages) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tfor (const dependentPackage of dependentPackages) {\r\n\t\t\t\tinDegree.set(dependentPackage, assertDefined(inDegree.get(dependentPackage)) - 1);\r\n\t\t\t\tif (inDegree.get(dependentPackage) === 0) {\r\n\t\t\t\t\tnextReady.push(dependentPackage);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tready = nextReady;\r\n\t}\r\n\r\n\tlogger?.debug(styleText('dim', `Sorted packages into ${result.length.toString()} sequential groups of parallelizable dependencies.`));\r\n\r\n\tconst circular = getCircularDependencies(inDegree);\r\n\tif (circular.length) {\r\n\t\tlogger?.warn(styleText('yellow', `${circular.length.toString()} packages could not be sorted due to circular dependencies. Correct ordering cannot be guaranteed.`));\r\n\t}\r\n\r\n\treturn {\r\n\t\tgroups: result.map(group => group.sort()),\r\n\t\tcircular,\r\n\t};\r\n};\r\n",
24
+ "import { styleText } from 'util';\r\nimport { isDefined } from '@package-pal/util';\r\nimport { inc } from 'semver';\r\nimport { dfsTraverseGraph } from '../../graph/functions/dfs-traverse-graph.ts';\r\nimport type { BumpPackageVersionOptions } from '../../types/bump-package-version-options.ts';\r\n\r\nexport const bumpPackageVersion = async (options: BumpPackageVersionOptions): Promise<void> => {\r\n\tconst exact = isDefined(options.exact) ? options.exact : options.config.version.exact;\r\n\tconst preId = isDefined(options.preId) ? options.preId : options.config.version.preId;\r\n\tconst {\r\n\t\tpackageName, type, packageGraphs, adapter, config: { logger },\r\n\t} = options;\r\n\r\n\tlogger.debug(styleText('dim', `Bumping package '${packageName}'...`));\r\n\tconst packageNode = packageGraphs.dependencies.get(packageName);\r\n\tif (!packageNode) {\r\n\t\tthrow new Error(`Package '${packageName}' not found.`);\r\n\t}\r\n\r\n\tconst currentVersion = packageNode.packageData.version ?? '1.0.0';\r\n\tconst bumpedVersion = inc(\r\n\t\tcurrentVersion, type, undefined, preId,\r\n\t);\r\n\tif (!bumpedVersion) {\r\n\t\tthrow new Error(`Package '${packageName}' version '${currentVersion}' is invalid.`);\r\n\t}\r\n\r\n\tlogger.info(`Updating '${packageName}' version: ${currentVersion} → ${bumpedVersion}.`);\r\n\tawait adapter.bumpOwnVersion(\r\n\t\tpackageNode.packageData, bumpedVersion, logger,\r\n\t);\r\n\r\n\tconst dependentWrites: Promise<void>[] = [];\r\n\tfor (const dependent of dfsTraverseGraph(packageGraphs.dependents, packageName)) {\r\n\t\tdependentWrites.push((async () => {\r\n\t\t\tconst updated = await adapter.bumpDependencyVersion(\r\n\t\t\t\tdependent, packageName, bumpedVersion, exact, logger,\r\n\t\t\t);\r\n\t\t\tif (updated) {\r\n\t\t\t\tlogger.debug(styleText('dim', `Updated dependency '${packageName}' in '${dependent.name}'.`));\r\n\t\t\t}\r\n\t\t})());\r\n\t}\r\n\r\n\tawait Promise.all(dependentWrites);\r\n};\r\n",
25
+ "import { styleText } from 'util';\r\nimport type { Logger } from '../../configuration/types/logger.ts';\r\nimport type { PackageAdapter } from '../types/package-adapter.ts';\r\nimport type { PackageData } from '../types/package-data.ts';\r\n\r\nexport const loadPackages = async (\r\n\trootDir: string,\r\n\tpackagePatterns: string[],\r\n\tadapter: PackageAdapter,\r\n\tlogger: Logger,\r\n) => {\r\n\tlet resolvedPatterns = packagePatterns;\r\n\tif (\r\n\t\tpackagePatterns.length === 1\r\n\t\t&& packagePatterns[0] === 'packages/*'\r\n\t) {\r\n\t\tresolvedPatterns = adapter.defaultPatterns;\r\n\t}\r\n\r\n\tconst patternContent = resolvedPatterns.map(pattern => `'${pattern}'`).join(', ');\r\n\tlogger.debug(styleText('dim', `Loading packages matching pattern/s ${patternContent}...${rootDir ? ` from ${rootDir}` : ''}`));\r\n\tconst packages: PackageData[] = [];\r\n\tconst seen = new Set<string>();\r\n\r\n\tfor await (const packageData of adapter.scanPackages(\r\n\t\tArray.from(new Set(resolvedPatterns)), logger, rootDir,\r\n\t)) {\r\n\t\tif (seen.has(packageData.name)) {\r\n\t\t\tcontinue;\r\n\t\t}\r\n\r\n\t\tseen.add(packageData.name);\r\n\t\tpackages.push(packageData);\r\n\t}\r\n\r\n\tif (!packages.length) {\r\n\t\tthrow new Error(`No packages found for pattern/s ${patternContent}.`);\r\n\t}\r\n\r\n\treturn packages;\r\n};\r\n",
26
26
  "import { dirname } from 'path';\r\nimport {\r\n\tassertDefined, runAsync,\r\n} from '@package-pal/util';\r\nimport type { Logger } from '../../configuration/types/logger.ts';\r\nimport type { PackageGraphs } from '../../graph/types/package-graphs.ts';\r\nimport type { PackageOrder } from '../../graph/types/package-order.ts';\r\nimport { runSubprocess } from '../../process/functions/run-subprocess.ts';\r\nimport { ExitState } from '../../process/types/exit-state.ts';\r\nimport type { ForEachCommandCallback } from '../../types/for-each-command-callback.ts';\r\n\r\nexport const runForEachPackage = async (\r\n\tpackageGraphs: PackageGraphs,\r\n\tpackageOrder: PackageOrder,\r\n\tgetCommand: ForEachCommandCallback,\r\n\tlogger: Logger,\r\n\ttopological = true,\r\n\tconcurrency?: number,\r\n) => {\r\n\tconst controller = new AbortController();\r\n\tlet processPackageOrder = packageOrder.circular.length > 0\r\n\t\t? packageOrder.groups.concat([packageOrder.circular])\r\n\t\t: packageOrder.groups;\r\n\tif (!topological) {\r\n\t\tprocessPackageOrder = [processPackageOrder.flat()];\r\n\t}\r\n\r\n\tfor (const group of processPackageOrder) {\r\n\t\tawait runAsync(group.map(packageName => async () => {\r\n\t\t\tconst packageNode = assertDefined(packageGraphs.dependencies.get(packageName));\r\n\t\t\tconst processPackageProps = {\r\n\t\t\t\tname: packageName,\r\n\t\t\t\tdir: packageNode.packageData.dir,\r\n\t\t\t};\r\n\t\t\tconst processPackageCwd = dirname(packageNode.packageData.path);\r\n\r\n\t\t\tconst shellCommand = await getCommand(processPackageProps);\r\n\t\t\tif (!shellCommand) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tconst exitState = await runSubprocess({\r\n\t\t\t\tdebugName: `run for ${packageName}`,\r\n\t\t\t\tshellCommand: shellCommand,\r\n\t\t\t\tcwd: processPackageCwd,\r\n\t\t\t\tenv: {\r\n\t\t\t\t\tPP_PACKAGE_NAME: packageName,\r\n\t\t\t\t\tPP_PACKAGE_DIR: processPackageProps.dir,\r\n\t\t\t\t},\r\n\t\t\t\tsignal: controller.signal,\r\n\t\t\t\tlogger,\r\n\t\t\t});\r\n\r\n\t\t\tif (exitState === ExitState.Errored) {\r\n\t\t\t\tcontroller.abort();\r\n\t\t\t\tthrow new Error('Command failed.');\r\n\t\t\t}\r\n\t\t}),\r\n\t\tconcurrency);\r\n\t}\r\n};\r\n",
27
27
  "import { styleText } from 'util';\r\nimport type { Logger } from '../../configuration/types/logger.ts';\r\nimport { ExitState } from '../types/exit-state.ts';\r\nimport { StdType } from '../types/std-type.ts';\r\nimport { getCommandsForShell } from './get-commands-for-shell.ts';\r\nimport { getLineBufferedWriter } from './get-line-buffered-writer.ts';\r\nimport { readStream } from './read-stream.ts';\r\n\r\nconst sigintCode = 130;\r\nconst sigtermCode = 143;\r\nconst sigkillCode = 137;\r\nconst cancelCodes = new Set([\r\n\tsigintCode,\r\n\tsigtermCode,\r\n\tsigkillCode,\r\n]);\r\n\r\nexport const runSubprocess = async (opts: {\r\n\tdebugName: string;\r\n\tshellCommand: string;\r\n\tcwd?: string;\r\n\tenv?: Record<string, string | undefined>;\r\n\tsignal?: AbortSignal;\r\n\tlogger?: Logger;\r\n\tonStdChunk?: (chunk: string, type: StdType) => void;\r\n}) => {\r\n\tif (opts.signal?.aborted) {\r\n\t\topts.logger?.debug(styleText('dim', `Skipped '${opts.debugName}' subprocess command; signal already cancelled.`));\r\n\t\treturn ExitState.Cancelled;\r\n\t}\r\n\r\n\tconst {\r\n\t\tcommands, stderrProcessor,\r\n\t} = getCommandsForShell(opts.shellCommand);\r\n\tconst baseSubprocessOpts = {\r\n\t\tstdout: 'pipe',\r\n\t\tstderr: 'pipe',\r\n\t\tstdin: 'ignore',\r\n\t\tenv: {\r\n\t\t\t...process.env,\r\n\t\t\t...opts.env,\r\n\t\t},\r\n\t} as const;\r\n\tconst subprocessOpts = {\r\n\t\t...baseSubprocessOpts,\r\n\t\t...(opts.cwd ? { cwd: opts.cwd } : {}),\r\n\t\t...(opts.signal ? { signal: opts.signal } : {}),\r\n\t};\r\n\r\n\tconst subprocess = Bun.spawn(commands, subprocessOpts);\r\n\tconst pid = subprocess.pid.toString();\r\n\tconst minPrefixLen = 14;\r\n\r\n\tconst [readStdout, readStderr] = (\r\n\t\t[{\r\n\t\t\tsource: subprocess.stdout,\r\n\t\t\ttype: StdType.Out,\r\n\t\t\twriter: getLineBufferedWriter(styleText('dim', `[O-${pid}]`.padEnd(minPrefixLen, ' '))),\r\n\t\t}, {\r\n\t\t\tsource: subprocess.stderr,\r\n\t\t\ttype: StdType.Err,\r\n\t\t\twriter: getLineBufferedWriter(\r\n\t\t\t\tstyleText('yellow', styleText('dim', `[E-${pid}]`.padEnd(minPrefixLen, ' '))),\r\n\t\t\t\tundefined,\r\n\t\t\t\tprocess.stderr.write.bind(process.stderr),\r\n\t\t\t),\r\n\t\t}] as const\r\n\t).map(async ({\r\n\t\tsource, type, writer,\r\n\t}) => {\r\n\t\tawait readStream(source, (chunk) => {\r\n\t\t\tconst processedChunk = type === StdType.Err ? stderrProcessor(chunk) : chunk;\r\n\r\n\t\t\t// Skip writing if the processor suppressed the chunk entirely (e.g. PowerShell CLIXML header)\r\n\t\t\tif (processedChunk === '' && chunk !== '') {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\twriter.write(processedChunk);\r\n\r\n\t\t\tif (opts.onStdChunk) {\r\n\t\t\t\topts.onStdChunk(processedChunk, type);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\twriter.flush();\r\n\t}) as [Promise<void>, Promise<void>];\r\n\r\n\tconst executedCommand = commands.join(' ');\r\n\topts.logger?.debug(styleText('dim', `Started '${opts.debugName}' subprocess command '${opts.shellCommand}' (${executedCommand}) with PID ${pid}.`));\r\n\r\n\tconst [\r\n\t\t,,exitState,\r\n\t] = await Promise.all([\r\n\t\treadStdout,\r\n\t\treadStderr,\r\n\t\tsubprocess.exited.then((exitCode) => {\r\n\t\t\tif (cancelCodes.has(exitCode)) {\r\n\t\t\t\topts.logger?.debug(styleText('dim', `Cancelled '${opts.debugName}' subprocess command; PID ${pid} exited.`));\r\n\t\t\t\treturn ExitState.Cancelled;\r\n\t\t\t}\r\n\r\n\t\t\tif (exitCode !== 0) {\r\n\t\t\t\topts.logger?.error(styleText('red', `'${opts.debugName}' command '${opts.shellCommand}' (${executedCommand}) with PID ${pid} failed with exit code ${exitCode.toString()}.`));\r\n\t\t\t\treturn ExitState.Errored;\r\n\t\t\t}\r\n\r\n\t\t\topts.logger?.debug(styleText('dim', `Completed '${opts.debugName}' subprocess command; PID ${pid} exited.`));\r\n\t\t\treturn ExitState.Completed;\r\n\t\t}),\r\n\t]);\r\n\r\n\treturn exitState;\r\n};\r\n",
28
28
  "import type { ValueOf } from '@package-pal/util';\r\n\r\nexport const ExitState = {\r\n\tCompleted: 'Completed',\r\n\tErrored: 'Errored',\r\n\tCancelled: 'Cancelled',\r\n} as const;\r\n\r\nexport type ExitState = ValueOf<typeof ExitState>;\r\n",
@@ -38,17 +38,18 @@
38
38
  "import type { PackageGraph } from '../types/package-graph.ts';\r\n\r\nexport const mergeGraphs = (a: PackageGraph, b: PackageGraph) => {\r\n\tconst merged: PackageGraph = new Map();\r\n\r\n\tfor (const [name, node] of a) {\r\n\t\tmerged.set(name, {\r\n\t\t\tpackageData: node.packageData,\r\n\t\t\tpointsToPackages: new Set(node.pointsToPackages),\r\n\t\t});\r\n\t}\r\n\r\n\tfor (const [name, node] of b) {\r\n\t\tmerged.set(name, {\r\n\t\t\tpackageData: node.packageData,\r\n\t\t\tpointsToPackages: new Set(node.pointsToPackages),\r\n\t\t});\r\n\t}\r\n\r\n\treturn merged;\r\n};\r\n",
39
39
  "import type { ValueOf } from '@package-pal/util';\r\n\r\nexport const ChangeAction = {\r\n\tIgnore: 'Ignore',\r\n\tPartial: 'Partial',\r\n\tRestart: 'Restart',\r\n} as const;\r\n\r\nexport type ChangeAction = ValueOf<typeof ChangeAction>;\r\n",
40
40
  "import type { ValueOf } from '@package-pal/util';\r\n\r\nexport const DedupePathsBy = {\r\n\tParent: 'parent',\r\n\tChild: 'child',\r\n} as const;\r\n\r\nexport type DedupePathsBy = ValueOf<typeof DedupePathsBy>;\r\n",
41
- "import { sep } from 'path';\r\nimport { assertDefined } from '@package-pal/util';\r\nimport { DedupePathsBy } from '../types/dedupe-paths-by.ts';\r\n\r\nexport const dedupeSharedPaths = (paths: string[], by: DedupePathsBy) => {\r\n\tconst sorted = paths.toSorted((a, b) => a.split(sep).length - b.split(sep).length);\r\n\tconst deduped: string[] = [];\r\n\r\n\tif (by === DedupePathsBy.Parent) {\r\n\t\tfor (const path of sorted) {\r\n\t\t\tif (!deduped.some(base => path.startsWith(base + sep))) {\r\n\t\t\t\tdeduped.push(path);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn deduped;\r\n\t}\r\n\r\n\tfor (const path of sorted) {\r\n\t\tfor (let i = deduped.length - 1; i >= 0; i--) {\r\n\t\t\tconst base = assertDefined(deduped[i]);\r\n\t\t\tif (path.startsWith(base + sep)) {\r\n\t\t\t\tdeduped.splice(i, 1);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (!deduped.some(base => base.startsWith(path + sep))) {\r\n\t\t\tdeduped.push(path);\r\n\t\t}\r\n\t}\r\n\r\n\treturn Array.from(new Set(deduped));\r\n};\r\n",
42
- "import { stat } from 'fs/promises';\r\n\r\nexport const filterFilesModifiedSince = async (paths: string[], sinceMs: number): Promise<string[]> => {\r\n\tconst results = await Promise.all(paths.map(async (path) => {\r\n\t\ttry {\r\n\t\t\tconst s = await stat(path);\r\n\t\t\tconst isModifiedSince = s.mtimeMs >= sinceMs;\r\n\t\t\treturn isModifiedSince ? path : null;\r\n\t\t} catch {\r\n\t\t\t// File does not exist (deleted)\r\n\t\t\treturn path;\r\n\t\t}\r\n\t}));\r\n\treturn results.filter((path): path is string => path !== null);\r\n};\r\n",
41
+ "import { sep } from 'path';\r\nimport { assertDefined } from '@package-pal/util';\r\nimport { DedupePathsBy } from '../types/dedupe-paths-by.ts';\r\n\r\nexport const dedupeSharedPaths = (paths: string[], by: DedupePathsBy) => {\r\n\tconst mapped = paths.map((path) => {\r\n\t\tlet count = 0;\r\n\t\tfor (const char of path) {\r\n\t\t\tif (char === sep) {\r\n\t\t\t\tcount++;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn {\r\n\t\t\tpath,\r\n\t\t\tcount,\r\n\t\t};\r\n\t});\r\n\tmapped.sort((a, b) => a.count - b.count);\r\n\tconst sorted = mapped.map(item => item.path);\r\n\tconst deduped: string[] = [];\r\n\r\n\tif (by === DedupePathsBy.Parent) {\r\n\t\tfor (const path of sorted) {\r\n\t\t\tif (!deduped.some(base => path.startsWith(base + sep))) {\r\n\t\t\t\tdeduped.push(path);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn deduped;\r\n\t}\r\n\r\n\tfor (const path of sorted) {\r\n\t\tfor (let i = deduped.length - 1; i >= 0; i--) {\r\n\t\t\tconst base = assertDefined(deduped[i]);\r\n\t\t\tif (path.startsWith(base + sep)) {\r\n\t\t\t\tdeduped.splice(i, 1);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (!deduped.some(base => base.startsWith(path + sep))) {\r\n\t\t\tdeduped.push(path);\r\n\t\t}\r\n\t}\r\n\r\n\treturn Array.from(new Set(deduped));\r\n};\r\n",
42
+ "import { stat } from 'fs/promises';\r\nimport { runAsync } from '@package-pal/util';\r\n\r\nexport const filterFilesModifiedSince = async (paths: string[], sinceMs: number): Promise<string[]> => {\r\n\tconst tasks = paths.map(path => async () => {\r\n\t\ttry {\r\n\t\t\tconst s = await stat(path);\r\n\t\t\tconst isModifiedSince = s.mtimeMs >= sinceMs;\r\n\t\t\treturn isModifiedSince ? path : null;\r\n\t\t} catch {\r\n\t\t\t// File does not exist (deleted)\r\n\t\t\treturn path;\r\n\t\t}\r\n\t});\r\n\r\n\tconst results = await runAsync(tasks, 20);\r\n\treturn results.filter((path): path is string => path !== null);\r\n};\r\n",
43
43
  "import { styleText } from 'util';\r\nimport { assertDefined } from '@package-pal/util';\r\nimport type { ActivatedWatchConfig } from '../../configuration/types/activated-config.ts';\r\nimport type { Logger } from '../../configuration/types/logger.ts';\r\nimport { extractSubgraph } from '../../graph/functions/extract-subgraph.ts';\r\nimport { generateTopologicalRankingRange } from '../../graph/functions/generate-topological-ranking-range.ts';\r\nimport { generateTopologicalRanking } from '../../graph/functions/generate-topological-ranking.ts';\r\nimport { generateTopologicalSortedGroups } from '../../graph/functions/generate-topological-sorted-groups.ts';\r\nimport { isDisjoint } from '../../graph/functions/is-disjoint.ts';\r\nimport { isRankedGreaterThanOrEqual } from '../../graph/functions/is-ranked-greater-than-or-equal.ts';\r\nimport { isSubgraph } from '../../graph/functions/is-subgraph.ts';\r\nimport type { PackageGraph } from '../../graph/types/package-graph.ts';\r\nimport type { PackageGraphs } from '../../graph/types/package-graphs.ts';\r\nimport { ChangeAction } from '../types/change-action.ts';\r\nimport type { PackageChanges } from '../types/package-changes.ts';\r\n\r\nexport const getChangeLogic = (\r\n\tpackageGraphs: PackageGraphs,\r\n\tpackageChanges: PackageChanges,\r\n\tlastProcessedSubgraph: PackageGraph | undefined,\r\n\tconfig: ActivatedWatchConfig,\r\n\tlogger?: Logger,\r\n) => {\r\n\tconst changedPackages = Array.from(packageChanges.keys());\r\n\tconst changedFilePaths = Array.from(packageChanges.values()).flat();\r\n\r\n\tif (packageChanges.size) {\r\n\t\tlogger?.debug(styleText('dim', `Changes detected in ${changedPackages.map(packageName => `'${packageName}'`).join(', ')}.`));\r\n\t\tlogger?.debug(styleText('dim', `Changed file paths: ${changedFilePaths.map(filePath => `'${filePath}'`).join(', ')}.`));\r\n\t}\r\n\r\n\tconst packageOrder = generateTopologicalSortedGroups(packageGraphs.dependents, logger);\r\n\tconst packageProcessOrder = packageOrder.circular.length > 0\r\n\t\t? packageOrder.groups.toReversed().concat([packageOrder.circular])\r\n\t\t: packageOrder.groups.toReversed();\r\n\tconst packageRankings = generateTopologicalRanking(packageProcessOrder);\r\n\r\n\tconst changedPackageSubgraph = extractSubgraph(packageGraphs.dependents, changedPackages);\r\n\tconst changedPackageOrder = generateTopologicalSortedGroups(changedPackageSubgraph, logger);\r\n\tconst changedPackageProcessOrder = changedPackageOrder.circular.length > 0\r\n\t\t? changedPackageOrder.groups.toReversed().concat([changedPackageOrder.circular])\r\n\t\t: changedPackageOrder.groups.toReversed();\r\n\r\n\tconst isSubgraphOfPrevious = !!lastProcessedSubgraph && isSubgraph(lastProcessedSubgraph, changedPackageSubgraph);\r\n\tconst isDisjointFromPrevious = !lastProcessedSubgraph || (!isSubgraphOfPrevious && isDisjoint(lastProcessedSubgraph, changedPackageSubgraph));\r\n\tconst isRankedGreaterThanOrEqualToPrevious = !!lastProcessedSubgraph && !isSubgraphOfPrevious && isRankedGreaterThanOrEqual(\r\n\t\tlastProcessedSubgraph, changedPackageSubgraph, packageRankings,\r\n\t);\r\n\r\n\tlogger?.debug(styleText('dim', `Changes are subgraph of previous: ${isSubgraphOfPrevious.toString()}.`));\r\n\tlogger?.debug(styleText('dim', `Changes are disjoint from previous: ${isDisjointFromPrevious.toString()}.`));\r\n\tlogger?.debug(styleText('dim', `Changes are ranked greater than or equal to previous: ${isRankedGreaterThanOrEqualToPrevious.toString()}.`));\r\n\r\n\tlet action: ChangeAction = ChangeAction.Restart;\r\n\tif (!packageChanges.size) {\r\n\t\taction = ChangeAction.Ignore;\r\n\t} else if (!config.subprocess.partialProcessing) {\r\n\t\taction = ChangeAction.Restart;\r\n\t} else if (isSubgraphOfPrevious) {\r\n\t\taction = ChangeAction.Ignore;\r\n\t} else if (isDisjointFromPrevious || isRankedGreaterThanOrEqualToPrevious) {\r\n\t\taction = ChangeAction.Partial;\r\n\t}\r\n\r\n\tif (action === ChangeAction.Partial && isRankedGreaterThanOrEqualToPrevious) {\r\n\t\tconst [prevMinRank] = generateTopologicalRankingRange(assertDefined(lastProcessedSubgraph), packageRankings);\r\n\r\n\t\tfor (let i = 0; i < changedPackageProcessOrder.length; i++) {\r\n\t\t\tchangedPackageProcessOrder[i] = assertDefined(changedPackageProcessOrder[i]).filter((packageName) => {\r\n\t\t\t\tconst rank = packageRankings.get(packageName);\r\n\t\t\t\treturn rank !== undefined && rank >= prevMinRank;\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tlogger?.debug(styleText('dim', `Determined change action: ${action}.`));\r\n\r\n\treturn {\r\n\t\tchangedPackageProcessOrder,\r\n\t\tchangedPackageSubgraph,\r\n\t\taction,\r\n\t};\r\n};\r\n",
44
44
  "import { isDefined } from '@package-pal/util';\r\nimport type { PackageGraph } from '../types/package-graph.ts';\r\n\r\nexport const generateTopologicalRankingRange = (graph: PackageGraph, ranking: ReadonlyMap<string, number>) => {\r\n\tlet min = Infinity;\r\n\tlet max = -Infinity;\r\n\r\n\tfor (const key of graph.keys()) {\r\n\t\tconst rank = ranking.get(key);\r\n\t\tif (!isDefined(rank)) {\r\n\t\t\tcontinue;\r\n\t\t}\r\n\r\n\t\tif (rank < min) {\r\n\t\t\tmin = rank;\r\n\t\t}\r\n\r\n\t\tif (rank > max) {\r\n\t\t\tmax = rank;\r\n\t\t}\r\n\t}\r\n\r\n\tif (min === Infinity) {\r\n\t\treturn [-1, -1] as const;\r\n\t}\r\n\r\n\treturn [min, max] as const;\r\n};\r\n",
45
45
  "import { assertDefined } from '@package-pal/util';\r\n\r\nexport const generateTopologicalRanking = (packageProcessOrder: string[][]) => {\r\n\tconst rankMap = new Map<string, number>();\r\n\r\n\tfor (let i = 0; i < packageProcessOrder.length; i++) {\r\n\t\tfor (const packageName of assertDefined(packageProcessOrder[i])) {\r\n\t\t\trankMap.set(packageName, i);\r\n\t\t}\r\n\t}\r\n\r\n\treturn rankMap as ReadonlyMap<string, number>;\r\n};\r\n",
46
46
  "import type { PackageGraph } from '../types/package-graph.ts';\r\n\r\nexport const isDisjoint = (a: PackageGraph, b: PackageGraph): boolean => {\r\n\tfor (const key of a.keys()) {\r\n\t\tif (b.has(key)) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\treturn true;\r\n};\r\n",
47
47
  "import type { PackageGraph } from '../types/package-graph.ts';\r\nimport { generateTopologicalRankingRange } from './generate-topological-ranking-range.ts';\r\n\r\nexport const isRankedGreaterThanOrEqual = (\r\n\ta: PackageGraph, b: PackageGraph, ranking: ReadonlyMap<string, number>,\r\n) => {\r\n\tconst [prevMin] = generateTopologicalRankingRange(a, ranking);\r\n\r\n\tfor (const key of b.keys()) {\r\n\t\tconst rank = ranking.get(key);\r\n\t\tif (rank !== undefined && rank < prevMin) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\treturn true;\r\n};\r\n",
48
48
  "import type { PackageData } from '../../package/types/package-data.ts';\r\nimport type { PackageGraph } from '../types/package-graph.ts';\r\n\r\nconst recordEqual = (a?: Record<string, unknown>, b?: Record<string, unknown>): boolean => {\r\n\tif (!a && !b) {\r\n\t\treturn true;\r\n\t}\r\n\r\n\tif (!a || !b) {\r\n\t\treturn false;\r\n\t}\r\n\r\n\tconst aKeys = Object.keys(a);\r\n\tconst bKeys = Object.keys(b);\r\n\tif (aKeys.length !== bKeys.length) {\r\n\t\treturn false;\r\n\t}\r\n\r\n\treturn aKeys.every(key => b[key] === a[key]);\r\n};\r\n\r\nconst isPackageDataLooseEqual = (a: PackageData, b: PackageData): boolean => {\r\n\treturn a.name === b.name\r\n\t\t&& recordEqual(a.dependencies, b.dependencies)\r\n\t\t&& recordEqual(a.peerDependencies, b.peerDependencies)\r\n\t\t&& recordEqual(a.devDependencies, b.devDependencies);\r\n};\r\n\r\nexport const isSubgraph = (a: PackageGraph, b: PackageGraph) => {\r\n\tfor (const [key, nodeB] of b) {\r\n\t\tconst nodeA = a.get(key);\r\n\t\tif (!nodeA) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tif (!isPackageDataLooseEqual(nodeA.packageData, nodeB.packageData)) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tfor (const dep of nodeB.pointsToPackages) {\r\n\t\t\tif (!nodeA.pointsToPackages.has(dep)) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn true;\r\n};\r\n",
49
- "import {\r\n\tbasename, dirname, join,\r\n} from 'path';\r\n\r\nconst removeTrailing = [\r\n\t'~',\r\n\t'.tmp',\r\n\t'.temp',\r\n\t'.bak',\r\n\t'.backup',\r\n\t'.swp',\r\n\t'.swo',\r\n\t'.swn',\r\n];\r\n\r\nexport const normaliseWatchedFilePath = (filePath: string) => {\r\n\tconst dir = dirname(filePath);\r\n\tlet base = basename(filePath);\r\n\r\n\tfor (const trailing of removeTrailing) {\r\n\t\tif (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
+ "import {\r\n\tbasename, dirname, join,\r\n} from 'path';\r\n\r\nconst removeTrailing = [\r\n\t'~',\r\n\t'.tmp',\r\n\t'.temp',\r\n\t'.bak',\r\n\t'.backup',\r\n\t'.swp',\r\n\t'.swo',\r\n\t'.swn',\r\n];\r\n\r\nexport const normaliseWatchedFilePath = (filePath: string) => {\r\n\tconst dir = dirname(filePath);\r\n\tlet base = basename(filePath);\r\n\tconst baseLower = base.toLowerCase();\r\n\r\n\tfor (const trailing of removeTrailing) {\r\n\t\tif (baseLower.endsWith(trailing)) {\r\n\t\t\tconst sliceStart = base.startsWith('.') ? 1 : 0;\r\n\t\t\tbase = base.slice(sliceStart, -trailing.length);\r\n\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\r\n\treturn join(dir, base);\r\n};\r\n",
50
+ "import { checkBun } from './configuration/functions/check-bun.ts';\r\nimport { loadConfig } from './configuration/functions/load-config.ts';\r\nimport type { ActivatedConfigAndRootDir } from './configuration/types/activated-config.ts';\r\nimport { generateGraphs } from './graph/functions/generate-graphs.ts';\r\nimport { generatePackageCircularDependencyPaths } from './graph/functions/generate-package-circular-dependency-paths.ts';\r\nimport { generateTopologicalSortedGroups } from './graph/functions/generate-topological-sorted-groups.ts';\r\nimport type { PackageGraphs } from './graph/types/package-graphs.ts';\r\nimport type { PackageOrder } from './graph/types/package-order.ts';\r\nimport { bumpPackageVersion as doBumpPackageVersion } from './package/functions/bump-package-version.ts';\r\nimport { loadPackages } from './package/functions/load-packages.ts';\r\nimport { runForEachPackage } from './package/functions/run-for-each-package.ts';\r\nimport type { PackageData } from './package/types/package-data.ts';\r\nimport type { BumpPackageVersionOptions } from './types/bump-package-version-options.ts';\r\nimport type { ForEachPackageOptions } from './types/for-each-package-options.ts';\r\nimport type { GetConfigOptions } from './types/get-config-options.ts';\r\nimport type { GetPackageCircularDependencyPathsOptions } from './types/get-package-circular-dependency-paths-options.ts';\r\nimport type { GetPackageDataOptions } from './types/get-package-data-options.ts';\r\nimport type { GetPackageGraphOptions } from './types/get-package-graph-options.ts';\r\nimport type { GetPackageOrderOptions } from './types/get-package-order-options.ts';\r\nimport type { WatchPackagesOptions } from './types/watch-packages-options.ts';\r\nimport { watchPackageChanges } from './watch/functions/watch-package-changes.ts';\r\n\r\n/**\r\n * Searches upward from the current directory for a config file until one is found or the root is reached.\r\n * If found, the config is loaded and merged with default values.\r\n */\r\nexport const readPackagePalConfig = (options?: GetConfigOptions): Promise<ActivatedConfigAndRootDir> => {\r\n\tcheckBun();\r\n\treturn loadConfig(options?.overrideConfigPath);\r\n};\r\n\r\n/**\r\n * Finds and reads all package files that match the given glob patterns.\r\n */\r\nexport const readPackageData = async (options: GetPackageDataOptions): Promise<PackageData[]> => {\r\n\tcheckBun();\r\n\tconst packagePatterns = Array.isArray(options.config.packages) ? options.config.packages : [options.config.packages];\r\n\treturn loadPackages(\r\n\t\toptions.rootDir, packagePatterns, options.adapter, options.config.logger,\r\n\t);\r\n};\r\n\r\n/**\r\n * Computes dependency graphs for all packages.\r\n */\r\nexport const getPackageGraphs = (options: GetPackageGraphOptions): PackageGraphs => {\r\n\tcheckBun();\r\n\treturn generateGraphs(options.packageData, options.config.logger);\r\n};\r\n\r\n/**\r\n * Computes topologically sorted groups of packages.\r\n * Actions must be performed on each group sequentially,\r\n * but packages within the same group can be processed in parallel.\r\n */\r\nexport const getPackageOrder = (options: GetPackageOrderOptions): PackageOrder => {\r\n\tcheckBun();\r\n\treturn generateTopologicalSortedGroups(options.packageGraphs.dependencies, options.config.logger);\r\n};\r\n\r\n/**\r\n * Detects circular dependencies between packages and computes paths representing each cycle.\r\n */\r\nexport const getPackageCircularDependencyPaths = (options: GetPackageCircularDependencyPathsOptions): string[][] => {\r\n\tcheckBun();\r\n\treturn generatePackageCircularDependencyPaths(\r\n\t\toptions.packageGraphs,\r\n\t\toptions.packageOrder,\r\n\t\toptions.config.logger,\r\n\t);\r\n};\r\n\r\n/**\r\n * Bumps the source package version and updates any dependents if the new version\r\n * is no longer semver-compatible, preserving original version prefixes (e.g., `^`, `~`).\r\n * Does not publish.\r\n */\r\nexport const bumpPackageVersion = (options: BumpPackageVersionOptions): Promise<void> => {\r\n\tcheckBun();\r\n\treturn doBumpPackageVersion(options);\r\n};\r\n\r\n/**\r\n * Watches package source file changes, and triggers respective hooks defined in config.\r\n */\r\nexport const watchPackages = (options: WatchPackagesOptions): void => {\r\n\tcheckBun();\r\n\twatchPackageChanges(\r\n\t\toptions.packageData,\r\n\t\toptions.packageGraphs,\r\n\t\toptions.config.watch,\r\n\t\toptions.rootDir,\r\n\t\toptions.config.logger,\r\n\t);\r\n};\r\n\r\n/**\r\n * Run a command for each package.\r\n */\r\nexport const forEachPackage = (options: ForEachPackageOptions): Promise<void> => {\r\n\tcheckBun();\r\n\treturn runForEachPackage(\r\n\t\toptions.packageGraphs,\r\n\t\toptions.packageOrder,\r\n\t\toptions.getCommand,\r\n\t\toptions.config.logger,\r\n\t\toptions.topological,\r\n\t\toptions.concurrency,\r\n\t);\r\n};\r\n"
50
51
  ],
51
- "mappings": "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",
52
- "debugId": "2C554E09012C798F64756E2164756E21",
52
+ "mappings": ";;AAEO,IAAM,kBAAkB;AAAA,EAC9B,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,YAAY;AACb;;ACPO,MAAe,eAAe;AAmDrC;;ACtDO,IAAM,WAAW,MAAM;AAAA,EAE7B,IAAI,CAAC,KAAK;AAAA,IACT,MAAM,IAAI,MAAM,wEAAwE;AAAA,EACzF;AAAA;;;ACJD,oBAAS;AACT;AACA;AACA;AAAA;AAAA;AAAA,UAC0C;AAAA;;;ACJ1C;AAAA;AAAA;AAAA;AAMA,IAAM,aAA6C;AAAA,EAClD,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ;AACT;AAEO,IAAM,mBAAmB,CAAC,aAAqC;AAAA,EACrE,MAAM,QAAQ,cAAc,WAAW,SAAS;AAAA,EAEhD,OAAO;AAAA,IACN,OAAO,SAAS,WAAW,QAAQ,QAAQ,QAAQ;AAAA,IACnD,MAAM,SAAS,WAAW,OAAO,QAAQ,OAAO;AAAA,IAChD,MAAM,SAAS,WAAW,OAAO,QAAQ,OAAO;AAAA,IAChD,OAAO,SAAS,WAAW,QAAQ,QAAQ,QAAQ;AAAA,EACpD;AAAA;;;ACtBD;;;ACAA;AAEO,IAAM,iBAAiB,MAA+B;AAAA,EAC5D,OAAO,EAAE,UAAU,CAAC,KAAc,QAAQ;AAAA,IACzC,IAAI,OAAO,QAAQ,YAAY;AAAA,MAC9B,IAAI,OAAO,KAAK;AAAA,QACf,SAAS;AAAA,QACT,MAAM;AAAA,QACN,OAAO;AAAA,MACR,CAAC;AAAA,MACD,OAAO,EAAE;AAAA,IACV;AAAA,IAEA,OAAO;AAAA,GACP;AAAA;;;ACdF;AAGO,IAAM,oCAAoC,CAChD,OACA,WACwB;AAAA,EACxB,OAAS,eAAY,OAAO,MAAM;AAAA;;;AFH5B,IAAM,WAAa,QAAK;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,CAAC;AAEM,IAAM,SAAW,UAAO;AAAA,EAK9B,SAAW,YAAW,QAAK;AAAA,IAC1B;AAAA,IACA;AAAA,IACA;AAAA,EACD,CAAC,CAAC;AAAA,EAUF,UAAY,YAAW,SAAM,CAAG,UAAO,GAAK,SAAQ,UAAO,CAAC,CAAC,CAAC,CAAC;AAAA,EAI/D,SAAW,YAAW,UAAO;AAAA,IAU5B,OAAS,YAAW,UAAO,CAAC;AAAA,IAK5B,OAAS,YAAW,WAAQ,CAAC;AAAA,EAC9B,CAAC,CAAC;AAAA,EAIF,OAAS,YAAS,kCAAkC;AAAA,IAKnD,YAAc,YAAW,UAAO,CAAC;AAAA,IAIjC,QAAU,YAAW,SAAM,CAAG,UAAO,GAAK,SAAQ,UAAO,CAAC,CAAC,CAAC,CAAC;AAAA,IAI7D,OAAS,YAAW,UAAO;AAAA,MAI1B,QAAU,YAAS,eAAe,CAAC;AAAA,MAInC,wBAA0B,YAAS,eAAe,CAAC;AAAA,MAInD,kBAAoB,YAAS,eAAe,CAAC;AAAA,MAI7C,uBAAyB,YAAS,eAAe,CAAC;AAAA,MAIlD,uBAAyB,YAAS,eAAe,CAAC;AAAA,MAIlD,uBAAyB,YAAS,eAAe,CAAC;AAAA,MAIlD,iBAAmB,YAAS,eAAe,CAAC;AAAA,MAI5C,sBAAwB,YAAS,eAAe,CAAC;AAAA,IAClD,CAAC,CAAC;AAAA,IAIF,YAAc,YAAW,UAAO;AAAA,MAK/B,mBAAqB,YAAW,WAAQ,CAAC;AAAA,MAIzC,aAAe,WAAU,UAAO,CAAC;AAAA,MAMjC,+BAAiC,WAAU,SAAM,CAAG,UAAO,GAAK,SAAQ,UAAO,CAAC,CAAC,CAAC,CAAC;AAAA,MAMnF,iCAAmC,WAAU,SAAM,CAAG,UAAO,GAAK,SAAQ,UAAO,CAAC,CAAC,CAAC,CAAC;AAAA,IACtF,CAAC,CAAC;AAAA,EACH,CAAC,CAAC;AAAA,EAOF,UAAY,YAAS,QAAQ;AAC9B,CAAC;;;AGxID;AAAA;AAAA;AAAA;;;ACEO,IAAM,sBAAsB;AAAA,EAClC,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,KAAK;AAAA,EACL,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,KAAK;AACN;;;ADHO,IAAM,6BAA6B;AAEnC,IAAM,yBAAyB,OAAO,OAAO,mBAAmB;AAEhE,IAAM,yBAAyB,uBAAuB,IAAI,UAAQ,GAAG,8BAA8B,MAAe;AAElH,IAAM,qBAAqB,CAAC,SAAyC;AAAA,EAC3E,MAAM,OAAO,SAAS,IAAI;AAAA,EAC1B,MAAM,YAAY,QAAQ,IAAI;AAAA,EAC9B,MAAM,OAAO,uBAAuB,KAAK,YAAU,IAAI,aAAa,SAAS;AAAA,EAE7E,IAAI,CAAC,KAAK,WAAW,0BAA0B,KAAK,CAAC,MAAM;AAAA,IAC1D,OAAO;AAAA,MACN,OAAO;AAAA,MACP,cAAc,IAAI,2CAA2C,uBAAuB,KAAK,IAAI;AAAA,IAC9F;AAAA,EACD;AAAA,EAEA,OAAO;AAAA,IACN,OAAO;AAAA,IACP;AAAA,IACA;AAAA,EACD;AAAA;;;AExBM,IAAM,cAAc,OAAO,SAAiB;AAAA,EAClD,MAAM,SAAS,mBAAmB,IAAI;AAAA,EAEtC,IAAI,CAAC,OAAO,OAAO;AAAA,IAClB,MAAM,IAAI,MAAM,OAAO,YAAY;AAAA,EACpC;AAAA,EAEA,MAAM,SAAS,MAAa;AAAA,EAC5B,MAAM,OAAQ,OAAO,WAAW;AAAA,EAChC,OAAO,OAAO,MAAM,IAAI;AAAA;;;ACbzB;AAAA;AAAA;AAAA,aACmB;AAAA;AAEnB;;;ACHA;AAEO,IAAM,YAAY,CAAC,SAAiB;AAAA,EAC1C,OAAO,QAAQ,IAAI,MAAM;AAAA;;;ADI1B,IAAM,eAAe;AAErB,IAAM,sBAAsB,OAAO,QAAgB;AAAA,EAClD,MAAM,SAAS,MAAM,QAAQ,IAAI,uBAAuB,IAAI,UAAQ,IAAI,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE,OAAO,EACnG,KAAK,aAAW;AAAA,IAChB;AAAA,IACA;AAAA,EACD,EAAE,CAAC,CAAC;AAAA,EACL,MAAM,QAAQ,OAAO,KAAK,OAAK,EAAE,MAAM;AAAA,EACvC,OAAO,QAAQ,KAAK,KAAK,MAAM,IAAI,IAAI;AAAA;AAGjC,IAAM,mBAAmB,OAAO,iBAA0B;AAAA,EAChE,IAAI,YAAY,QAAQ,IAAI;AAAA,EAE5B,IAAI,UAAU,YAAY,GAAG;AAAA,IAC5B,IAAI,WAAW,YAAY,GAAG;AAAA,MAC7B,OAAO;AAAA,IACR;AAAA,IAEA,OAAO,KAAK,WAAW,YAAY;AAAA,EACpC;AAAA,EAEA,IAAI,YAAY;AAAA,EAChB,OAAO,CAAC,UAAU,SAAS,GAAG;AAAA,IAC7B,IAAI,YAAY,cAAc;AAAA,MAC7B,MAAM,IAAI,MAAM,qDAAqD,aAAa,SAAS,KAAK;AAAA,IACjG;AAAA,IAEA,MAAM,aAAa,MAAM,oBAAoB,SAAS;AAAA,IAEtD,IAAI,YAAY;AAAA,MACf,OAAO;AAAA,IACR;AAAA,IAEA;AAAA,IACA,YAAY,SAAQ,SAAS;AAAA,EAC9B;AAAA,EAEA,OAAO,oBAAoB,SAAS;AAAA;;;ARhCrC,IAAM,gBAAiC;AAAA,EACtC,SAAS;AAAA,EACT,UAAU;AAAA,EACV,SAAS;AAAA,IACR,OAAO;AAAA,IACP,OAAO;AAAA,EACR;AAAA,EACA,OAAO;AAAA,IACN,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,OAAO;AAAA,MACN,QAAQ;AAAA,MACR,wBAAwB;AAAA,MACxB,kBAAkB;AAAA,MAClB,uBAAuB;AAAA,MACvB,uBAAuB;AAAA,MACvB,uBAAuB;AAAA,MACvB,iBAAiB;AAAA,MACjB,sBAAsB;AAAA,IACvB;AAAA,IACA,YAAY;AAAA,MACX,mBAAmB;AAAA,MACnB,aAAa;AAAA,MACb,+BAA+B;AAAA,MAC/B,iCAAiC;AAAA,IAClC;AAAA,EACD;AAAA,EACA,QAAQ,iBAAiB,MAAM;AAAA,EAC/B,UAAU;AACX;AAEO,IAAM,aAAa,OAAO,uBAA+E;AAAA,EAC/G,MAAM,OAAO,MAAM,iBAAiB,kBAAkB;AAAA,EAEtD,IAAI,CAAC,MAAM;AAAA,IACV,cAAc,OAAO,MAAM,iDAAiD;AAAA,IAC5E,OAAO;AAAA,MACN,QAAQ;AAAA,MACR,SAAS,IAAI;AAAA,IACd;AAAA,EACD;AAAA,EAEA,MAAM,eAAe,MAAM,YAAY,IAAI;AAAA,EAC3C,MAAM,eAAe,aAAa;AAAA,EAClC,MAAM,SAAS,iBAAiB,CAAC,aAAa,YAAY,aAAa,aAAa,cAAc,WAAW,cAAc,SAAS,iBAAiB,aAAa,QAAQ;AAAA,EAC1K,OAAO,MAAM,oCAAoC,QAAQ;AAAA,EACzD,OAAO,MAAM,UAAU,OAAO,UAAU,UAAU,cAAc,CAAC,GAAG;AAAA,EAAK,UAAU,OAAO,sBAAsB,YAAY,CAAC,GAAG;AAAA,EAEhI,OAAO,MAAM,UAAU,OAAO,UAAU,UAAU,iBAAiB,CAAC,GAAG;AAAA,EAAK,UAAU,OAAO,sBAAsB,aAAa,CAAC,GAAG;AAAA,EACpI,MAAM,kBAAkB,iBAAiB,eAAe,YAAY;AAAA,EAEpE,gBAAgB,SAAS;AAAA,EACzB,OAAO,MAAM,UAAU,OAAO,UAAU,UAAU,mBAAmB,CAAC,GAAG;AAAA,EAAK,UAAU,OAAO,sBAAsB,eAAe,CAAC,GAAG;AAAA,EAExI,OAAO;AAAA,IACN,QAAQ;AAAA,IACR,SAAS,SAAQ,IAAI;AAAA,EACtB;AAAA;;;AUvED,sBAAS;AACT,0BAAS;AAWT,IAAM,gCAAgC;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,MAC0B;AAAA,EAC1B,WAAW,oBAAoB,YAAY,qBAAqB,CAAC,GAAG;AAAA,IACnE,IAAI,CAAC,aAAa,IAAI,gBAAgB,GAAG;AAAA,MACxC;AAAA,IACD;AAAA,IAEA,oBAAoB,IAAI,gBAAgB;AAAA,EACzC;AAAA;AAGD,IAAM,uBAAuB,CAAC,UAAyB,iBAA+B;AAAA,EACrF,MAAM,sBAAoC,IAAI;AAAA,EAC9C,WAAW,eAAe,UAAU;AAAA,IACnC,oBAAoB,IAAI,YAAY,MAAM;AAAA,MACzC;AAAA,MACA,kBAAkB,IAAI;AAAA,IACvB,CAAC;AAAA,EACF;AAAA,EAEA,WAAW,eAAe,UAAU;AAAA,IACnC,MAAM,cAAc,eAAc,aAAa,IAAI,YAAY,IAAI,CAAC;AAAA,IAEpE,WAAW,cAAc,YAAY,kBAAkB;AAAA,MACtD,MAAM,cAAc,eAAc,oBAAoB,IAAI,UAAU,CAAC;AAAA,MACrE,YAAY,iBAAiB,IAAI,YAAY,IAAI;AAAA,IAClD;AAAA,EACD;AAAA,EAEA,OAAO;AAAA;AAGD,IAAM,iBAAiB,CAAC,UAAyB,WAAmB;AAAA,EAC1E,OAAO,MAAM,WAAU,OAAO,iCAAiC,SAAS,OAAO,SAAS,eAAe,CAAC;AAAA,EACxG,MAAM,eAAe,IAAI,IAAI,SAAS,IAAI,iBAAe,YAAY,IAAI,CAAC;AAAA,EAC1E,MAAM,eAA6B,IAAI;AAAA,EAEvC,WAAW,eAAe,UAAU;AAAA,IACnC,MAAM,sBAAsB,IAAI;AAAA,IAEhC,8BAA8B;AAAA,MAC7B;AAAA,MACA;AAAA,MACA;AAAA,IACD,CAAC;AAAA,IAED,aAAa,IAAI,YAAY,MAAM;AAAA,MAClC;AAAA,MACA,kBAAkB;AAAA,IACnB,CAAC;AAAA,EACF;AAAA,EAEA,MAAM,sBAAsB,qBAAqB,UAAU,YAAY;AAAA,EAEvE,OAAO;AAAA,IACN,cAAc;AAAA,IACd,YAAY;AAAA,EACb;AAAA;;;ACxED,sBAAS;AACT,0BAAS;;;ACDT,0BAAS;AAWF,IAAM,wBAAwB,UAAU,CAC9C,OACA,sBACA,UAAwC,CAAC,GACnB;AAAA,EACtB,QAAQ,mBAAmB,SAAS;AAAA,EACpC,MAAM,gBAAgB,IAAI;AAAA,EAC1B,MAAM,gBAAgB,MAAM,QAAQ,oBAAoB,IAAI,uBAAuB,CAAC,oBAAoB;AAAA,EAExG,WAAW,SAAS,eAAe;AAAA,IAClC,MAAM,QAIA,CAAC;AAAA,MACN,MAAM;AAAA,MACN,MAAM,CAAC;AAAA,MACP,cAAc,IAAI;AAAA,IACnB,CAAC;AAAA,IAED,OAAO,MAAM,QAAQ;AAAA,MACpB;AAAA,QACC;AAAA,QAAM;AAAA,QAAM;AAAA,UACT,eAAc,MAAM,IAAI,CAAC;AAAA,MAE7B,IAAI,aAAa,IAAI,IAAI,GAAG;AAAA,QAC3B,MAAM,MAAM,KAAK,QAAQ,IAAI;AAAA,QAC7B,IAAI,QAAQ,IAAI;AAAA,UACf,MAAM,KAAK,MAAM,GAAG,EAAE,OAAO,IAAI;AAAA,QAClC;AAAA,QAEA;AAAA,MACD;AAAA,MAEA,IAAI,oBAAoB,cAAc,IAAI,IAAI,GAAG;AAAA,QAChD;AAAA,MACD;AAAA,MAEA,MAAM,UAAU,KAAK,OAAO,IAAI;AAAA,MAChC,MAAM,kBAAkB,IAAI,IAAI,YAAY;AAAA,MAC5C,gBAAgB,IAAI,IAAI;AAAA,MAExB,MAAM,aAAa,MAAM,IAAI,IAAI,GAAG;AAAA,MACpC,IAAI,SAAS;AAAA,MAEb,IAAI,YAAY;AAAA,QACf,WAAW,aAAa,YAAY;AAAA,UACnC,MAAM,KAAK;AAAA,YACV,MAAM;AAAA,YACN,MAAM;AAAA,YACN,cAAc;AAAA,UACf,CAAC;AAAA,UACD,SAAS;AAAA,QACV;AAAA,MACD;AAAA,MAEA,IAAI,CAAC,QAAQ;AAAA,QACZ,MAAM;AAAA,MACP;AAAA,MAEA,IAAI,kBAAkB;AAAA,QACrB,cAAc,IAAI,IAAI;AAAA,MACvB;AAAA,IACD;AAAA,EACD;AAAA;;;AC3ED,0BAAS;;;ACAT,0BAAS;AAIF,IAAM,mBAAmB,UAAU,CAAC,OAAqB,sBAA4F;AAAA,EAC3J,MAAM,UAAU,IAAI;AAAA,EACpB,MAAM,QAAQ,MAAM,QAAQ,oBAAoB,IAAI,qBAAqB,MAAM,IAAI,CAAC,oBAAoB;AAAA,EAExG,OAAO,MAAM,QAAQ;AAAA,IACpB,MAAM,gBAAgB,eAAc,MAAM,IAAI,CAAC;AAAA,IAC/C,IAAI,QAAQ,IAAI,aAAa,GAAG;AAAA,MAC/B;AAAA,IACD;AAAA,IAEA,QAAQ,IAAI,aAAa;AAAA,IAEzB,MAAM,OAAO,MAAM,IAAI,aAAa;AAAA,IACpC,IAAI,CAAC,MAAM;AAAA,MACV;AAAA,IACD;AAAA,IAEA,MAAM,KAAK;AAAA,IAEX,WAAW,OAAO,KAAK,kBAAkB;AAAA,MACxC,IAAI,CAAC,QAAQ,IAAI,GAAG,GAAG;AAAA,QACtB,MAAM,KAAK,GAAG;AAAA,MACf;AAAA,IACD;AAAA,EACD;AAAA;;;ADxBM,IAAM,kBAAkB,CAAC,OAAqB,iBAAoC;AAAA,EACxF,MAAM,oBAAoB,IAAI,IAAI,iBAAiB,OAAO,YAAY,EAAE,IAAI,iBAAe,YAAY,IAAI,CAAC;AAAA,EAC5G,MAAM,WAAyB,IAAI;AAAA,EAEnC,WAAW,eAAe,mBAAmB;AAAA,IAC5C,MAAM,OAAO,eAAc,MAAM,IAAI,WAAW,CAAC;AAAA,IACjD,MAAM,qBAAqB,IAAI;AAAA,IAE/B,WAAW,OAAO,KAAK,kBAAkB;AAAA,MACxC,IAAI,kBAAkB,IAAI,GAAG,GAAG;AAAA,QAC/B,mBAAmB,IAAI,GAAG;AAAA,MAC3B;AAAA,IACD;AAAA,IAEA,SAAS,IAAI,aAAa;AAAA,MACzB,aAAa,KAAK;AAAA,MAClB,kBAAkB;AAAA,IACnB,CAAC;AAAA,EACF;AAAA,EAEA,OAAO;AAAA;;;AFfR,IAAM,kCAAkC,CAAC,UAAwB;AAAA,EAChE,IAAI,QAAQ;AAAA,EACZ,MAAM,UAAU,IAAI;AAAA,EACpB,MAAM,WAAW,IAAI;AAAA,EACrB,MAAM,QAAkB,CAAC;AAAA,EACzB,MAAM,UAAU,IAAI;AAAA,EACpB,MAAM,OAAmB,CAAC;AAAA,EAE1B,MAAM,gBAAgB,CAAC,SAAiB;AAAA,IACvC,QAAQ,IAAI,MAAM,KAAK;AAAA,IACvB,SAAS,IAAI,MAAM,KAAK;AAAA,IACxB;AAAA,IACA,MAAM,KAAK,IAAI;AAAA,IACf,QAAQ,IAAI,IAAI;AAAA,IAEhB,MAAM,YAAY,MAAM,IAAI,IAAI,GAAG,oBAAoB,IAAI;AAAA,IAC3D,WAAW,YAAY,WAAW;AAAA,MACjC,IAAI,CAAC,QAAQ,IAAI,QAAQ,GAAG;AAAA,QAC3B,cAAc,QAAQ;AAAA,QACtB,SAAS,IAAI,MAAM,KAAK,IAAI,eAAc,SAAS,IAAI,IAAI,CAAC,GAAG,eAAc,SAAS,IAAI,QAAQ,CAAC,CAAC,CAAC;AAAA,QACrG;AAAA,MACD;AAAA,MAEA,IAAI,QAAQ,IAAI,QAAQ,GAAG;AAAA,QAC1B,SAAS,IAAI,MAAM,KAAK,IAAI,eAAc,SAAS,IAAI,IAAI,CAAC,GAAG,eAAc,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC;AAAA,MACrG;AAAA,IACD;AAAA,IAEA,IAAI,SAAS,IAAI,IAAI,MAAM,QAAQ,IAAI,IAAI,GAAG;AAAA,MAC7C,MAAM,MAAgB,CAAC;AAAA,MACvB,IAAI,YAAY,eAAc,MAAM,IAAI,CAAC;AAAA,MACzC,QAAQ,OAAO,SAAS;AAAA,MACxB,IAAI,KAAK,SAAS;AAAA,MAElB,OAAO,cAAc,MAAM;AAAA,QAC1B,YAAY,eAAc,MAAM,IAAI,CAAC;AAAA,QACrC,QAAQ,OAAO,SAAS;AAAA,QACxB,IAAI,KAAK,SAAS;AAAA,MACnB;AAAA,MAEA,MAAM,YAAY,IAAI;AAAA,MACtB,MAAM,cAAc,CAAC,CAAC,cAAc,MAAM,IAAI,SAAS,GAAG,iBAAiB,IAAI,SAAS,KAAK;AAAA,MAE7F,IAAI,IAAI,SAAS,KAAK,aAAa;AAAA,QAClC,KAAK,KAAK,GAAG;AAAA,MACd;AAAA,IACD;AAAA;AAAA,EAGD,WAAW,QAAQ,MAAM,KAAK,GAAG;AAAA,IAChC,IAAI,CAAC,QAAQ,IAAI,IAAI,GAAG;AAAA,MACvB,cAAc,IAAI;AAAA,IACnB;AAAA,EACD;AAAA,EAEA,OAAO;AAAA;AAGR,IAAM,sBAAsB,CAAC,KAAe,UAAwB;AAAA,EACnE,MAAM,SAAS,IAAI,IAAI,GAAG;AAAA,EAE1B,OAAO,eAAc,sBAAsB,OAAO,GAAG,EAAE,KAAK,CAAC,SAAS;AAAA,IACrE,MAAM,cAAc,KAAK,KAAK,SAAS;AAAA,IACvC,OAAO,KAAK,UAAU,KAAK,eAAe,OAAO,IAAI,WAAW;AAAA,GAChE,CAAC;AAAA;AAGI,IAAM,yCAAyC,GACnD,cACF,eACA,WACI;AAAA,EACJ,OAAO,MAAM,WAAU,OAAO,yCAAyC,CAAC;AAAA,EACxE,MAAM,WAAW,gBAAgB,YAAY,cAAc,QAAQ;AAAA,EACnE,MAAM,OAAO,gCAAgC,QAAQ;AAAA,EACrD,MAAM,eAAe,KAAK,IAAI,SAAO,oBAAoB,KAAK,QAAQ,EAAE,QAAQ,CAAC;AAAA,EAEjF,IAAI,aAAa,QAAQ;AAAA,IACxB,MAAM,sBAAsB,aAC1B,IAAI,CAAC,OAAO,UAAU;AAAA,MACtB,OAAO,KAAM,QAAQ,GAAG,SAAS,QAAQ,MAAM,IAAI,UAAQ,IAAI,OAAO,EAAE,KAAK,UAAI;AAAA,KACjF,EACA,KAAK;AAAA,CAAI;AAAA,IACX,OAAO,KAAK,WAAU,UAAU,GAAG,aAAa,OAAO,SAAS;AAAA,EAA0B,qBAAqB,CAAC;AAAA,EACjH,EAAO;AAAA,IACN,OAAO,MAAM,WAAU,OAAO,wBAAwB,CAAC;AAAA;AAAA,EAGxD,OAAO;AAAA;;;AIjGR,sBAAS;AACT,0BAAS;AAKT,IAAM,0BAA0B,CAAC,aAAkC;AAAA,EAClE,OAAO,MAAM,KAAK,SAAS,KAAK,CAAC,EAAE,KAAK,CAAC,GAAG,MAAM;AAAA,IACjD,MAAM,OAAO,eAAc,SAAS,IAAI,CAAC,CAAC;AAAA,IAC1C,MAAM,OAAO,eAAc,SAAS,IAAI,CAAC,CAAC;AAAA,IAC1C,IAAI,SAAS,MAAM;AAAA,MAClB,OAAO,OAAO;AAAA,IACf;AAAA,IACA,OAAO,EAAE,cAAc,CAAC;AAAA,GACxB;AAAA;AAGK,IAAM,kCAAkC,CAAC,cAA4B,WAAkC;AAAA,EAC7G,QAAQ,MAAM,WAAU,OAAO,yCAAyC,CAAC;AAAA,EACzE,MAAM,WAAW,IAAI;AAAA,EACrB,MAAM,QAAQ,IAAI;AAAA,EAElB,YAAY,gBAAgB,cAAc;AAAA,IACzC,SAAS,IAAI,aAAa,CAAC;AAAA,IAC3B,MAAM,IAAI,aAAa,IAAI,GAAa;AAAA,EACzC;AAAA,EAEA,YAAY,aAAa,SAAS,cAAc;AAAA,IAC/C,WAAW,kBAAkB,KAAK,kBAAkB;AAAA,MACnD,MAAM,MAAM,MAAM,IAAI,cAAc;AAAA,MACpC,IAAI,KAAK;AAAA,QACR,IAAI,IAAI,WAAW;AAAA,MACpB;AAAA,MACA,MAAM,aAAa,SAAS,IAAI,WAAW,KAAK;AAAA,MAChD,SAAS,IAAI,aAAa,aAAa,CAAC;AAAA,IACzC;AAAA,EACD;AAAA,EAEA,MAAM,SAAqB,CAAC;AAAA,EAC5B,IAAI,QAAkB,CAAC;AAAA,EAEvB,YAAY,aAAa,QAAQ,UAAU;AAAA,IAC1C,IAAI,QAAQ,GAAG;AAAA,MACd,MAAM,KAAK,WAAW;AAAA,IACvB;AAAA,EACD;AAAA,EAEA,OAAO,MAAM,SAAS,GAAG;AAAA,IACxB,OAAO,KAAK,KAAK;AAAA,IACjB,MAAM,YAAsB,CAAC;AAAA,IAE7B,WAAW,eAAe,OAAO;AAAA,MAChC,SAAS,OAAO,WAAW;AAAA,MAC3B,MAAM,oBAAoB,MAAM,IAAI,WAAW;AAAA,MAE/C,IAAI,CAAC,mBAAmB;AAAA,QACvB;AAAA,MACD;AAAA,MAEA,WAAW,oBAAoB,mBAAmB;AAAA,QACjD,SAAS,IAAI,kBAAkB,eAAc,SAAS,IAAI,gBAAgB,CAAC,IAAI,CAAC;AAAA,QAChF,IAAI,SAAS,IAAI,gBAAgB,MAAM,GAAG;AAAA,UACzC,UAAU,KAAK,gBAAgB;AAAA,QAChC;AAAA,MACD;AAAA,IACD;AAAA,IAEA,QAAQ;AAAA,EACT;AAAA,EAEA,QAAQ,MAAM,WAAU,OAAO,wBAAwB,OAAO,OAAO,SAAS,qDAAqD,CAAC;AAAA,EAEpI,MAAM,WAAW,wBAAwB,QAAQ;AAAA,EACjD,IAAI,SAAS,QAAQ;AAAA,IACpB,QAAQ,KAAK,WAAU,UAAU,GAAG,SAAS,OAAO,SAAS,qGAAqG,CAAC;AAAA,EACpK;AAAA,EAEA,OAAO;AAAA,IACN,QAAQ,OAAO,IAAI,WAAS,MAAM,KAAK,CAAC;AAAA,IACxC;AAAA,EACD;AAAA;;;AChFD,sBAAS;AACT,sBAAS;AACT;AAIO,IAAM,qBAAqB,OAAO,YAAsD;AAAA,EAC9F,MAAM,QAAQ,WAAU,QAAQ,KAAK,IAAI,QAAQ,QAAQ,QAAQ,OAAO,QAAQ;AAAA,EAChF,MAAM,QAAQ,WAAU,QAAQ,KAAK,IAAI,QAAQ,QAAQ,QAAQ,OAAO,QAAQ;AAAA,EAChF;AAAA,IACC;AAAA,IAAa;AAAA,IAAM;AAAA,IAAe;AAAA,IAAS,UAAU;AAAA,MAClD;AAAA,EAEJ,OAAO,MAAM,WAAU,OAAO,oBAAoB,iBAAiB,CAAC;AAAA,EACpE,MAAM,cAAc,cAAc,aAAa,IAAI,WAAW;AAAA,EAC9D,IAAI,CAAC,aAAa;AAAA,IACjB,MAAM,IAAI,MAAM,YAAY,yBAAyB;AAAA,EACtD;AAAA,EAEA,MAAM,iBAAiB,YAAY,YAAY,WAAW;AAAA,EAC1D,MAAM,gBAAgB,IACrB,gBAAgB,MAAM,WAAW,KAClC;AAAA,EACA,IAAI,CAAC,eAAe;AAAA,IACnB,MAAM,IAAI,MAAM,YAAY,yBAAyB,6BAA6B;AAAA,EACnF;AAAA,EAEA,OAAO,KAAK,aAAa,yBAAyB,yBAAmB,gBAAgB;AAAA,EACrF,MAAM,QAAQ,eACb,YAAY,aAAa,eAAe,MACzC;AAAA,EAEA,MAAM,kBAAmC,CAAC;AAAA,EAC1C,WAAW,aAAa,iBAAiB,cAAc,YAAY,WAAW,GAAG;AAAA,IAChF,gBAAgB,MAAM,YAAY;AAAA,MACjC,MAAM,UAAU,MAAM,QAAQ,sBAC7B,WAAW,aAAa,eAAe,OAAO,MAC/C;AAAA,MACA,IAAI,SAAS;AAAA,QACZ,OAAO,MAAM,WAAU,OAAO,uBAAuB,oBAAoB,UAAU,QAAQ,CAAC;AAAA,MAC7F;AAAA,OACE,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,QAAQ,IAAI,eAAe;AAAA;;;AC5ClC,sBAAS;AAKF,IAAM,eAAe,OAC3B,SACA,iBACA,SACA,WACI;AAAA,EACJ,IAAI,mBAAmB;AAAA,EACvB,IACC,gBAAgB,WAAW,KACxB,gBAAgB,OAAO,cACzB;AAAA,IACD,mBAAmB,QAAQ;AAAA,EAC5B;AAAA,EAEA,MAAM,iBAAiB,iBAAiB,IAAI,aAAW,IAAI,UAAU,EAAE,KAAK,IAAI;AAAA,EAChF,OAAO,MAAM,WAAU,OAAO,uCAAuC,oBAAoB,UAAU,SAAS,YAAY,IAAI,CAAC;AAAA,EAC7H,MAAM,WAA0B,CAAC;AAAA,EACjC,MAAM,OAAO,IAAI;AAAA,EAEjB,iBAAiB,eAAe,QAAQ,aACvC,MAAM,KAAK,IAAI,IAAI,gBAAgB,CAAC,GAAG,QAAQ,OAChD,GAAG;AAAA,IACF,IAAI,KAAK,IAAI,YAAY,IAAI,GAAG;AAAA,MAC/B;AAAA,IACD;AAAA,IAEA,KAAK,IAAI,YAAY,IAAI;AAAA,IACzB,SAAS,KAAK,WAAW;AAAA,EAC1B;AAAA,EAEA,IAAI,CAAC,SAAS,QAAQ;AAAA,IACrB,MAAM,IAAI,MAAM,mCAAmC,iBAAiB;AAAA,EACrE;AAAA,EAEA,OAAO;AAAA;;;ACvCR,oBAAS;AACT;AAAA,mBACC;AAAA;AAAA;;;ACFD,sBAAS;;;ACEF,IAAM,YAAY;AAAA,EACxB,WAAW;AAAA,EACX,SAAS;AAAA,EACT,WAAW;AACZ;;;ACJO,IAAM,UAAU;AAAA,EACtB,KAAK;AAAA,EACL,KAAK;AACN;;;ACLA;;;ACEO,IAAM,QAAQ;AAAA,EACpB,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,KAAK;AAAA,EACL,MAAM;AAAA,EACN,MAAM;AAAA,EACN,YAAY;AAAA,EACZ,KAAK;AACN;;;ACVA;AACA,qBAAS;AACT;AAAA;AAAA;AAAA;AAKA,IAAI,cAA4B;AAEhC,IAAM,aAAa,CAAC,UAAiB;AAAA,EACpC,cAAc;AAAA,EACd,OAAO;AAAA;AAGR,IAAM,WAAW,CAAC,cAAgD;AAAA,EACjE,IAAI,CAAC,WAAW;AAAA,IACf,OAAO,MAAM;AAAA,EACd;AAAA,EAEA,MAAM,OAAO,UAAS,SAAS,EAC7B,QAAQ,WAAW,EAAE,EACrB,YAAY;AAAA,EAEd,QAAQ;AAAA,SACF;AAAA,MACJ,OAAO,MAAM;AAAA,SAET;AAAA,MACJ,OAAO,MAAM;AAAA,SAET;AAAA,MACJ,OAAO,MAAM;AAAA,SAET;AAAA,MACJ,OAAO,MAAM;AAAA;AAAA,MAGb,OAAO,MAAM;AAAA;AAAA;AAIT,IAAM,WAAW,MAAa;AAAA,EACpC,IAAI,gBAAgB,MAAM;AAAA,IACzB,OAAO;AAAA,EACR;AAAA,EAEA,IAAI,IAAI,aAAa;AAAA,IACpB,OAAO,WAAW,MAAM,GAAG;AAAA,EAC5B;AAAA,EAEA,IAAI,IAAI,cAAc;AAAA,IACrB,OAAO,WAAW,MAAM,IAAI;AAAA,EAC7B;AAAA,EAEA,IAAI,IAAI,cAAc;AAAA,IACrB,OAAO,WAAW,MAAM,IAAI;AAAA,EAC7B;AAAA,EAEA,MAAM,YAAY,aAAa;AAAA,EAC/B,IAAI,WAAW;AAAA,IACd,KAAK,IAAI,WAAW,IAAI,iBAAiB,IAAI,MAAM,MAAM,IAAI,GAAG;AAAA,MAC/D,OAAO,WAAW,MAAM,IAAI;AAAA,IAC7B;AAAA,IAEA,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG;AAAA,MAC1B,OAAO,WAAW,MAAM,IAAI;AAAA,IAC7B;AAAA,IAEA,IAAI,IAAI,MAAM,MAAM,UAAU,GAAG;AAAA,MAChC,OAAO,WAAW,MAAM,UAAU;AAAA,IACnC;AAAA,IAEA,OAAO,WAAW,MAAM,GAAG;AAAA,EAC5B;AAAA,EAEA,IAAI,IAAI,OAAO;AAAA,IACd,OAAO,WAAW,SAAS,IAAI,KAAK,CAAC;AAAA,EACtC;AAAA,EAEA,IAAI;AAAA,IACH,MAAM,YAAY,SAAS,EAAE;AAAA,IAC7B,IAAI,WAAW;AAAA,MACd,OAAO,WAAW,SAAS,SAAS,CAAC;AAAA,IACtC;AAAA,IACC,MAAM;AAAA,EAIR,OAAO,WAAW,MAAM,EAAE;AAAA;;;ACxF3B,IAAM,uBAAuB,IAAI,IAAI;AAAA,EACpC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,CAAC;AAED,IAAM,qBAAqB,IAAI,IAAI;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,CAAC;AAKM,IAAM,oBAAoB,CAAC,UAAkB;AAAA,EACnD,MAAM,QAAQ,IAAI;AAAA,EAElB,MAAM,aAAa;AAAA,EACnB,IAAI;AAAA,EAEJ,QAAQ,QAAQ,WAAW,KAAK,KAAK,OAAO,MAAM;AAAA,IACjD,MAAM,QAAQ,MAAM;AAAA,IACpB,MAAM,aAAa,MAAM,YAAY;AAAA,IAErC,IAAI,qBAAqB,IAAI,UAAU,GAAG;AAAA,MACzC,MAAM,IAAI,KAAK;AAAA,MAEf,MAAM,YAAY,WAAW,KAAK,KAAK;AAAA,MACvC,IAAI,WAAW;AAAA,QACd,MAAM,IAAI,UAAU,EAAE;AAAA,MACvB;AAAA,IACD,EAAO,SAAI,mBAAmB,IAAI,UAAU,GAAG;AAAA,MAC9C,MAAM,IAAI,KAAK;AAAA,IAChB,EAAO;AAAA,MACN,MAAM,gBAAe,MAAM,KAAK,KAAK,EAAE,KAAK,UAAQ,KAAK,YAAY,MAAM,iBAAiB;AAAA,MAC5F,OAAO;AAAA,QACN;AAAA,QACA,SAAS,MAAM,MAAM,MAAM,KAAK;AAAA,QAChC;AAAA,MACD;AAAA;AAAA,EAEF;AAAA,EAEA,MAAM,eAAe,MAAM,KAAK,KAAK,EAAE,KAAK,UAAQ,KAAK,YAAY,MAAM,iBAAiB;AAAA,EAC5F,OAAO;AAAA,IACN;AAAA,IACA,SAAS;AAAA,IACT;AAAA,EACD;AAAA;;;ACrDM,IAAM,uBAAuB,MAAM;AAAA,EACzC,IAAI,SAAS;AAAA,EAEb,OAAO,CAAC,UAA0B;AAAA,IACjC,UAAU;AAAA,IAGV,IAAI,CAAC,OAAO,SAAS,GAAG,KAAK,CAAC,OAAO,SAAS,WAAW,GAAG;AAAA,MAC3D,MAAM,MAAM;AAAA,MACZ,SAAS;AAAA,MACT,OAAO;AAAA,IACR;AAAA,IAMA,MAAM,kBAAkB,OAAO,SAAS,WAAW;AAAA,IACnD,MAAM,gBAAgB,4BAA4B,KAAK,MAAM;AAAA,IAE7D,IAAI,CAAC,mBAAmB,CAAC,eAAe;AAAA,MACvC,MAAM,MAAM;AAAA,MACZ,SAAS;AAAA,MACT,OAAO;AAAA,IACR;AAAA,IAGA,SAAS,OACP,QAAQ,cAAc,EAAE,EACxB,QAAQ,qCAAqC,EAAE;AAAA,IAEjD,IAAI,SAAS;AAAA,IAEb,SAAS,OAAO,QAAQ,iCAAiC,CAAC,GAAW,QAAgB;AAAA,MACpF,UAAU;AAAA,MACV,OAAO;AAAA,KACP;AAAA,IAGD,IAAI,OAAO,SAAS,SAAS,GAAG;AAAA,MAE/B,UAAU,OAAO,QAAQ,YAAY,EAAE;AAAA,MACvC,SAAS;AAAA,IACV;AAAA,IAEA,IAAI,CAAC;AAAA,MAAQ,OAAO;AAAA,IAEpB,OAAO,OACL,QAAQ,qBAAqB,CAAC,GAAW,QAAgB,OAAO,aAAa,SAAS,KAAK,EAAE,CAAC,CAAC,EAC/F,QAAQ,YAAY,EAAE;AAAA;AAAA;;;AJ1CnB,IAAM,sBAAsB,CAAC,iBAAwC;AAAA,EAC3E,MAAM,QAAQ,SAAS;AAAA,EAEvB,QAAQ;AAAA,SACF,MAAM;AAAA,MACV,OAAO;AAAA,QACN,UAAU;AAAA,UACT;AAAA,UACA;AAAA,UACA;AAAA,QACD;AAAA,QACA,iBAAiB;AAAA,MAClB;AAAA,SAEI,MAAM;AAAA,SACN,MAAM;AAAA,MACV;AAAA,QACC;AAAA,QAAO;AAAA,QAAS;AAAA,UACb,kBAAkB,YAAY;AAAA,MAElC,IAAI,cAAc;AAAA,QACjB,OAAO;AAAA,UACN,UAAU,CAAC,OAAO,GAAG,KAAK;AAAA,UAC1B,iBAAiB,qBAAqB;AAAA,QACvC;AAAA,MACD;AAAA,MAEA,MAAM,iBAAiB,OAAO,KAAK,WAAW,KAAK,SAAS,EAAE,SAAS,QAAQ;AAAA,MAC/E,OAAO;AAAA,QACN,UAAU;AAAA,UACT;AAAA,UACA,GAAG;AAAA,UACH,GAAI,iBAAiB,CAAC,mBAAmB,cAAc,IAAI,CAAC;AAAA,QAC7D;AAAA,QACA,iBAAiB,qBAAqB;AAAA,MACvC;AAAA;AAAA,MAGA,OAAO;AAAA,QACN,UAAU;AAAA,UACT;AAAA,UACA;AAAA,UACA;AAAA,QACD;AAAA,QACA,iBAAiB;AAAA,MAClB;AAAA;AAAA;;;AKxDH,qBAAS;AAKF,IAAM,wBAAwB,CACpC,QACA,QAA+B,WAC/B,QAAiC,QAAQ,OAAO,MAAM,KAAK,QAAQ,MAAM,MACrE;AAAA,EACJ,IAAI,SAAS;AAAA,EAEb,OAAO;AAAA,IACN,OAAO,CAAC,UAAyB;AAAA,MAChC,IAAI,UAAU,MAAM;AAAA,QACnB,IAAI,OAAO,SAAS,GAAG;AAAA,UACtB,MAAM,GAAG,SAAS,MAAM,MAAM;AAAA,CAAK;AAAA,UACnC,SAAS;AAAA,QACV;AAAA,QACA;AAAA,MACD;AAAA,MAEA,UAAU;AAAA,MACV,IAAI,QAAQ;AAAA,MACZ,IAAI,eAAe,OAAO,QAAQ;AAAA,CAAI;AAAA,MAEtC,OAAO,iBAAiB,IAAI;AAAA,QAC3B,IAAI,MAAM;AAAA,QAGV,IAAI,MAAM,SAAS,OAAO,MAAM,OAAO,MAAM;AAAA,UAC5C;AAAA,QACD;AAAA,QAEA,MAAM,OAAO,OAAO,MAAM,OAAO,GAAG;AAAA,QACpC,MAAM,GAAG,SAAS,MAAM,IAAI;AAAA,CAAK;AAAA,QAEjC,QAAQ,eAAe;AAAA,QACvB,eAAe,OAAO,QAAQ;AAAA,GAAM,KAAK;AAAA,MAC1C;AAAA,MAGA,SAAS,OAAO,MAAM,KAAK;AAAA;AAAA,IAE5B,KAAK,GAAG;AAAA,MACP,KAAK,MAAM,IAAI;AAAA;AAAA,EAEjB;AAAA;;;AC/CM,IAAM,aAAa,OAAO,QAAoC,QAAiC;AAAA,EACrG,MAAM,UAAU,IAAI;AAAA,EACpB,MAAM,SAAS,OAAO,UAAU;AAAA,EAEhC,IAAI;AAAA,IACH,IAAI,SAAS,MAAM,OAAO,KAAK;AAAA,IAC/B,OAAO,CAAC,OAAO,MAAM;AAAA,MACpB,IAAI,QAAQ,OAAO,OAAO,OAAO,EAAE,QAAQ,KAAK,CAAC,CAAC;AAAA,MAClD,SAAS,MAAM,OAAO,KAAK;AAAA,IAC5B;AAAA,YACC;AAAA,IACD,OAAO,YAAY;AAAA;AAAA,EAGpB,MAAM,QAAQ,QAAQ,OAAO;AAAA,EAC7B,IAAI,OAAO;AAAA,IACV,IAAI,KAAK;AAAA,EACV;AAAA;;;ATTD,IAAM,aAAa;AACnB,IAAM,cAAc;AACpB,IAAM,cAAc;AACpB,IAAM,cAAc,IAAI,IAAI;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AACD,CAAC;AAEM,IAAM,gBAAgB,OAAO,SAQ9B;AAAA,EACL,IAAI,KAAK,QAAQ,SAAS;AAAA,IACzB,KAAK,QAAQ,MAAM,WAAU,OAAO,YAAY,KAAK,0DAA0D,CAAC;AAAA,IAChH,OAAO,UAAU;AAAA,EAClB;AAAA,EAEA;AAAA,IACC;AAAA,IAAU;AAAA,MACP,oBAAoB,KAAK,YAAY;AAAA,EACzC,MAAM,qBAAqB;AAAA,IAC1B,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,KAAK;AAAA,SACD,QAAQ;AAAA,SACR,KAAK;AAAA,IACT;AAAA,EACD;AAAA,EACA,MAAM,iBAAiB;AAAA,OACnB;AAAA,OACC,KAAK,MAAM,EAAE,KAAK,KAAK,IAAI,IAAI,CAAC;AAAA,OAChC,KAAK,SAAS,EAAE,QAAQ,KAAK,OAAO,IAAI,CAAC;AAAA,EAC9C;AAAA,EAEA,MAAM,aAAa,IAAI,MAAM,UAAU,cAAc;AAAA,EACrD,MAAM,MAAM,WAAW,IAAI,SAAS;AAAA,EACpC,MAAM,eAAe;AAAA,EAErB,OAAO,YAAY,cAClB,CAAC;AAAA,IACA,QAAQ,WAAW;AAAA,IACnB,MAAM,QAAQ;AAAA,IACd,QAAQ,sBAAsB,WAAU,OAAO,MAAM,OAAO,OAAO,cAAc,GAAG,CAAC,CAAC;AAAA,EACvF,GAAG;AAAA,IACF,QAAQ,WAAW;AAAA,IACnB,MAAM,QAAQ;AAAA,IACd,QAAQ,sBACP,WAAU,UAAU,WAAU,OAAO,MAAM,OAAO,OAAO,cAAc,GAAG,CAAC,CAAC,GAC5E,WACA,QAAQ,OAAO,MAAM,KAAK,QAAQ,MAAM,CACzC;AAAA,EACD,CAAC,EACA,IAAI;AAAA,IACL;AAAA,IAAQ;AAAA,IAAM;AAAA,QACT;AAAA,IACL,MAAM,WAAW,QAAQ,CAAC,UAAU;AAAA,MACnC,MAAM,iBAAiB,SAAS,QAAQ,MAAM,gBAAgB,KAAK,IAAI;AAAA,MAGvE,IAAI,mBAAmB,MAAM,UAAU,IAAI;AAAA,QAC1C;AAAA,MACD;AAAA,MAEA,OAAO,MAAM,cAAc;AAAA,MAE3B,IAAI,KAAK,YAAY;AAAA,QACpB,KAAK,WAAW,gBAAgB,IAAI;AAAA,MACrC;AAAA,KACA;AAAA,IAED,OAAO,MAAM;AAAA,GACb;AAAA,EAED,MAAM,kBAAkB,SAAS,KAAK,GAAG;AAAA,EACzC,KAAK,QAAQ,MAAM,WAAU,OAAO,YAAY,KAAK,kCAAkC,KAAK,kBAAkB,6BAA6B,MAAM,CAAC;AAAA,EAElJ;AAAA;AAAA;AAAA,IACG;AAAA,MACC,MAAM,QAAQ,IAAI;AAAA,IACrB;AAAA,IACA;AAAA,IACA,WAAW,OAAO,KAAK,CAAC,aAAa;AAAA,MACpC,IAAI,YAAY,IAAI,QAAQ,GAAG;AAAA,QAC9B,KAAK,QAAQ,MAAM,WAAU,OAAO,cAAc,KAAK,sCAAsC,aAAa,CAAC;AAAA,QAC3G,OAAO,UAAU;AAAA,MAClB;AAAA,MAEA,IAAI,aAAa,GAAG;AAAA,QACnB,KAAK,QAAQ,MAAM,WAAU,OAAO,IAAI,KAAK,uBAAuB,KAAK,kBAAkB,6BAA6B,6BAA6B,SAAS,SAAS,IAAI,CAAC;AAAA,QAC5K,OAAO,UAAU;AAAA,MAClB;AAAA,MAEA,KAAK,QAAQ,MAAM,WAAU,OAAO,cAAc,KAAK,sCAAsC,aAAa,CAAC;AAAA,MAC3G,OAAO,UAAU;AAAA,KACjB;AAAA,EACF,CAAC;AAAA,EAED,OAAO;AAAA;;;ADrGD,IAAM,oBAAoB,OAChC,eACA,cACA,YACA,QACA,cAAc,MACd,gBACI;AAAA,EACJ,MAAM,aAAa,IAAI;AAAA,EACvB,IAAI,sBAAsB,aAAa,SAAS,SAAS,IACtD,aAAa,OAAO,OAAO,CAAC,aAAa,QAAQ,CAAC,IAClD,aAAa;AAAA,EAChB,IAAI,CAAC,aAAa;AAAA,IACjB,sBAAsB,CAAC,oBAAoB,KAAK,CAAC;AAAA,EAClD;AAAA,EAEA,WAAW,SAAS,qBAAqB;AAAA,IACxC,MAAM,SAAS,MAAM,IAAI,iBAAe,YAAY;AAAA,MACnD,MAAM,cAAc,eAAc,cAAc,aAAa,IAAI,WAAW,CAAC;AAAA,MAC7E,MAAM,sBAAsB;AAAA,QAC3B,MAAM;AAAA,QACN,KAAK,YAAY,YAAY;AAAA,MAC9B;AAAA,MACA,MAAM,oBAAoB,SAAQ,YAAY,YAAY,IAAI;AAAA,MAE9D,MAAM,eAAe,MAAM,WAAW,mBAAmB;AAAA,MACzD,IAAI,CAAC,cAAc;AAAA,QAClB;AAAA,MACD;AAAA,MAEA,MAAM,YAAY,MAAM,cAAc;AAAA,QACrC,WAAW,WAAW;AAAA,QACtB;AAAA,QACA,KAAK;AAAA,QACL,KAAK;AAAA,UACJ,iBAAiB;AAAA,UACjB,gBAAgB,oBAAoB;AAAA,QACrC;AAAA,QACA,QAAQ,WAAW;AAAA,QACnB;AAAA,MACD,CAAC;AAAA,MAED,IAAI,cAAc,UAAU,SAAS;AAAA,QACpC,WAAW,MAAM;AAAA,QACjB,MAAM,IAAI,MAAM,iBAAiB;AAAA,MAClC;AAAA,KACA,GACD,WAAW;AAAA,EACZ;AAAA;;;AW3DD;AAAA;AAAA;AAGA;AAAA,aACC;AAAA,UAAS;AAAA;AAEV,sBAAS;AACT;AAAA,mBACC;AAAA;AAAA;AAAA,eAGA;AAAA;AAAA,cAEA;AAAA;AAED;;;ACbO,IAAM,cAAc,CAAC,GAAiB,MAAoB;AAAA,EAChE,MAAM,SAAuB,IAAI;AAAA,EAEjC,YAAY,MAAM,SAAS,GAAG;AAAA,IAC7B,OAAO,IAAI,MAAM;AAAA,MAChB,aAAa,KAAK;AAAA,MAClB,kBAAkB,IAAI,IAAI,KAAK,gBAAgB;AAAA,IAChD,CAAC;AAAA,EACF;AAAA,EAEA,YAAY,MAAM,SAAS,GAAG;AAAA,IAC7B,OAAO,IAAI,MAAM;AAAA,MAChB,aAAa,KAAK;AAAA,MAClB,kBAAkB,IAAI,IAAI,KAAK,gBAAgB;AAAA,IAChD,CAAC;AAAA,EACF;AAAA,EAEA,OAAO;AAAA;;;ACjBD,IAAM,eAAe;AAAA,EAC3B,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,SAAS;AACV;;;ACJO,IAAM,gBAAgB;AAAA,EAC5B,QAAQ;AAAA,EACR,OAAO;AACR;;;ACLA;AACA,0BAAS;AAGF,IAAM,oBAAoB,CAAC,OAAiB,OAAsB;AAAA,EACxE,MAAM,SAAS,MAAM,IAAI,CAAC,SAAS;AAAA,IAClC,IAAI,QAAQ;AAAA,IACZ,WAAW,QAAQ,MAAM;AAAA,MACxB,IAAI,SAAS,KAAK;AAAA,QACjB;AAAA,MACD;AAAA,IACD;AAAA,IACA,OAAO;AAAA,MACN;AAAA,MACA;AAAA,IACD;AAAA,GACA;AAAA,EACD,OAAO,KAAK,CAAC,GAAG,MAAM,EAAE,QAAQ,EAAE,KAAK;AAAA,EACvC,MAAM,SAAS,OAAO,IAAI,UAAQ,KAAK,IAAI;AAAA,EAC3C,MAAM,UAAoB,CAAC;AAAA,EAE3B,IAAI,OAAO,cAAc,QAAQ;AAAA,IAChC,WAAW,QAAQ,QAAQ;AAAA,MAC1B,IAAI,CAAC,QAAQ,KAAK,UAAQ,KAAK,WAAW,OAAO,GAAG,CAAC,GAAG;AAAA,QACvD,QAAQ,KAAK,IAAI;AAAA,MAClB;AAAA,IACD;AAAA,IAEA,OAAO;AAAA,EACR;AAAA,EAEA,WAAW,QAAQ,QAAQ;AAAA,IAC1B,SAAS,IAAI,QAAQ,SAAS,EAAG,KAAK,GAAG,KAAK;AAAA,MAC7C,MAAM,OAAO,eAAc,QAAQ,EAAE;AAAA,MACrC,IAAI,KAAK,WAAW,OAAO,GAAG,GAAG;AAAA,QAChC,QAAQ,OAAO,GAAG,CAAC;AAAA,MACpB;AAAA,IACD;AAAA,IAEA,IAAI,CAAC,QAAQ,KAAK,UAAQ,KAAK,WAAW,OAAO,GAAG,CAAC,GAAG;AAAA,MACvD,QAAQ,KAAK,IAAI;AAAA,IAClB;AAAA,EACD;AAAA,EAEA,OAAO,MAAM,KAAK,IAAI,IAAI,OAAO,CAAC;AAAA;;;AC5CnC;AACA,qBAAS;AAEF,IAAM,2BAA2B,OAAO,OAAiB,YAAuC;AAAA,EACtG,MAAM,QAAQ,MAAM,IAAI,UAAQ,YAAY;AAAA,IAC3C,IAAI;AAAA,MACH,MAAM,IAAI,MAAM,KAAK,IAAI;AAAA,MACzB,MAAM,kBAAkB,EAAE,WAAW;AAAA,MACrC,OAAO,kBAAkB,OAAO;AAAA,MAC/B,MAAM;AAAA,MAEP,OAAO;AAAA;AAAA,GAER;AAAA,EAED,MAAM,UAAU,MAAM,UAAS,OAAO,EAAE;AAAA,EACxC,OAAO,QAAQ,OAAO,CAAC,SAAyB,SAAS,IAAI;AAAA;;;AChB9D,sBAAS;AACT,0BAAS;;;ACDT,sBAAS;AAGF,IAAM,kCAAkC,CAAC,OAAqB,YAAyC;AAAA,EAC7G,IAAI,MAAM;AAAA,EACV,IAAI,MAAM;AAAA,EAEV,WAAW,OAAO,MAAM,KAAK,GAAG;AAAA,IAC/B,MAAM,OAAO,QAAQ,IAAI,GAAG;AAAA,IAC5B,IAAI,CAAC,WAAU,IAAI,GAAG;AAAA,MACrB;AAAA,IACD;AAAA,IAEA,IAAI,OAAO,KAAK;AAAA,MACf,MAAM;AAAA,IACP;AAAA,IAEA,IAAI,OAAO,KAAK;AAAA,MACf,MAAM;AAAA,IACP;AAAA,EACD;AAAA,EAEA,IAAI,QAAQ,UAAU;AAAA,IACrB,OAAO,CAAC,IAAI,EAAE;AAAA,EACf;AAAA,EAEA,OAAO,CAAC,KAAK,GAAG;AAAA;;;AC1BjB,0BAAS;AAEF,IAAM,6BAA6B,CAAC,wBAAoC;AAAA,EAC9E,MAAM,UAAU,IAAI;AAAA,EAEpB,SAAS,IAAI,EAAG,IAAI,oBAAoB,QAAQ,KAAK;AAAA,IACpD,WAAW,eAAe,gBAAc,oBAAoB,EAAE,GAAG;AAAA,MAChE,QAAQ,IAAI,aAAa,CAAC;AAAA,IAC3B;AAAA,EACD;AAAA,EAEA,OAAO;AAAA;;;ACTD,IAAM,aAAa,CAAC,GAAiB,MAA6B;AAAA,EACxE,WAAW,OAAO,EAAE,KAAK,GAAG;AAAA,IAC3B,IAAI,EAAE,IAAI,GAAG,GAAG;AAAA,MACf,OAAO;AAAA,IACR;AAAA,EACD;AAAA,EAEA,OAAO;AAAA;;;ACND,IAAM,6BAA6B,CACzC,GAAiB,GAAiB,YAC9B;AAAA,EACJ,OAAO,WAAW,gCAAgC,GAAG,OAAO;AAAA,EAE5D,WAAW,OAAO,EAAE,KAAK,GAAG;AAAA,IAC3B,MAAM,OAAO,QAAQ,IAAI,GAAG;AAAA,IAC5B,IAAI,SAAS,aAAa,OAAO,SAAS;AAAA,MACzC,OAAO;AAAA,IACR;AAAA,EACD;AAAA,EAEA,OAAO;AAAA;;;ACZR,IAAM,cAAc,CAAC,GAA6B,MAAyC;AAAA,EAC1F,IAAI,CAAC,KAAK,CAAC,GAAG;AAAA,IACb,OAAO;AAAA,EACR;AAAA,EAEA,IAAI,CAAC,KAAK,CAAC,GAAG;AAAA,IACb,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,QAAQ,OAAO,KAAK,CAAC;AAAA,EAC3B,MAAM,QAAQ,OAAO,KAAK,CAAC;AAAA,EAC3B,IAAI,MAAM,WAAW,MAAM,QAAQ;AAAA,IAClC,OAAO;AAAA,EACR;AAAA,EAEA,OAAO,MAAM,MAAM,SAAO,EAAE,SAAS,EAAE,IAAI;AAAA;AAG5C,IAAM,0BAA0B,CAAC,GAAgB,MAA4B;AAAA,EAC5E,OAAO,EAAE,SAAS,EAAE,QAChB,YAAY,EAAE,cAAc,EAAE,YAAY,KAC1C,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,KAClD,YAAY,EAAE,iBAAiB,EAAE,eAAe;AAAA;AAG9C,IAAM,aAAa,CAAC,GAAiB,MAAoB;AAAA,EAC/D,YAAY,KAAK,UAAU,GAAG;AAAA,IAC7B,MAAM,QAAQ,EAAE,IAAI,GAAG;AAAA,IACvB,IAAI,CAAC,OAAO;AAAA,MACX,OAAO;AAAA,IACR;AAAA,IAEA,IAAI,CAAC,wBAAwB,MAAM,aAAa,MAAM,WAAW,GAAG;AAAA,MACnE,OAAO;AAAA,IACR;AAAA,IAEA,WAAW,OAAO,MAAM,kBAAkB;AAAA,MACzC,IAAI,CAAC,MAAM,iBAAiB,IAAI,GAAG,GAAG;AAAA,QACrC,OAAO;AAAA,MACR;AAAA,IACD;AAAA,EACD;AAAA,EAEA,OAAO;AAAA;;;AL9BD,IAAM,iBAAiB,CAC7B,eACA,gBACA,uBACA,QACA,WACI;AAAA,EACJ,MAAM,kBAAkB,MAAM,KAAK,eAAe,KAAK,CAAC;AAAA,EACxD,MAAM,mBAAmB,MAAM,KAAK,eAAe,OAAO,CAAC,EAAE,KAAK;AAAA,EAElE,IAAI,eAAe,MAAM;AAAA,IACxB,QAAQ,MAAM,WAAU,OAAO,uBAAuB,gBAAgB,IAAI,iBAAe,IAAI,cAAc,EAAE,KAAK,IAAI,IAAI,CAAC;AAAA,IAC3H,QAAQ,MAAM,WAAU,OAAO,uBAAuB,iBAAiB,IAAI,cAAY,IAAI,WAAW,EAAE,KAAK,IAAI,IAAI,CAAC;AAAA,EACvH;AAAA,EAEA,MAAM,eAAe,gCAAgC,cAAc,YAAY,MAAM;AAAA,EACrF,MAAM,sBAAsB,aAAa,SAAS,SAAS,IACxD,aAAa,OAAO,WAAW,EAAE,OAAO,CAAC,aAAa,QAAQ,CAAC,IAC/D,aAAa,OAAO,WAAW;AAAA,EAClC,MAAM,kBAAkB,2BAA2B,mBAAmB;AAAA,EAEtE,MAAM,yBAAyB,gBAAgB,cAAc,YAAY,eAAe;AAAA,EACxF,MAAM,sBAAsB,gCAAgC,wBAAwB,MAAM;AAAA,EAC1F,MAAM,6BAA6B,oBAAoB,SAAS,SAAS,IACtE,oBAAoB,OAAO,WAAW,EAAE,OAAO,CAAC,oBAAoB,QAAQ,CAAC,IAC7E,oBAAoB,OAAO,WAAW;AAAA,EAEzC,MAAM,uBAAuB,CAAC,CAAC,yBAAyB,WAAW,uBAAuB,sBAAsB;AAAA,EAChH,MAAM,yBAAyB,CAAC,yBAA0B,CAAC,wBAAwB,WAAW,uBAAuB,sBAAsB;AAAA,EAC3I,MAAM,uCAAuC,CAAC,CAAC,yBAAyB,CAAC,wBAAwB,2BAChG,uBAAuB,wBAAwB,eAChD;AAAA,EAEA,QAAQ,MAAM,WAAU,OAAO,qCAAqC,qBAAqB,SAAS,IAAI,CAAC;AAAA,EACvG,QAAQ,MAAM,WAAU,OAAO,uCAAuC,uBAAuB,SAAS,IAAI,CAAC;AAAA,EAC3G,QAAQ,MAAM,WAAU,OAAO,yDAAyD,qCAAqC,SAAS,IAAI,CAAC;AAAA,EAE3I,IAAI,SAAuB,aAAa;AAAA,EACxC,IAAI,CAAC,eAAe,MAAM;AAAA,IACzB,SAAS,aAAa;AAAA,EACvB,EAAO,SAAI,CAAC,OAAO,WAAW,mBAAmB;AAAA,IAChD,SAAS,aAAa;AAAA,EACvB,EAAO,SAAI,sBAAsB;AAAA,IAChC,SAAS,aAAa;AAAA,EACvB,EAAO,SAAI,0BAA0B,sCAAsC;AAAA,IAC1E,SAAS,aAAa;AAAA,EACvB;AAAA,EAEA,IAAI,WAAW,aAAa,WAAW,sCAAsC;AAAA,IAC5E,OAAO,eAAe,gCAAgC,gBAAc,qBAAqB,GAAG,eAAe;AAAA,IAE3G,SAAS,IAAI,EAAG,IAAI,2BAA2B,QAAQ,KAAK;AAAA,MAC3D,2BAA2B,KAAK,gBAAc,2BAA2B,EAAE,EAAE,OAAO,CAAC,gBAAgB;AAAA,QACpG,MAAM,OAAO,gBAAgB,IAAI,WAAW;AAAA,QAC5C,OAAO,SAAS,aAAa,QAAQ;AAAA,OACrC;AAAA,IACF;AAAA,EACD;AAAA,EAEA,QAAQ,MAAM,WAAU,OAAO,6BAA6B,SAAS,CAAC;AAAA,EAEtE,OAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA;;;AMjFD;AAAA,cACC;AAAA,aAAU;AAAA,UAAS;AAAA;AAGpB,IAAM,iBAAiB;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD;AAEO,IAAM,2BAA2B,CAAC,aAAqB;AAAA,EAC7D,MAAM,MAAM,SAAQ,QAAQ;AAAA,EAC5B,IAAI,OAAO,UAAS,QAAQ;AAAA,EAC5B,MAAM,YAAY,KAAK,YAAY;AAAA,EAEnC,WAAW,YAAY,gBAAgB;AAAA,IACtC,IAAI,UAAU,SAAS,QAAQ,GAAG;AAAA,MACjC,MAAM,aAAa,KAAK,WAAW,GAAG,IAAI,IAAI;AAAA,MAC9C,OAAO,KAAK,MAAM,YAAY,CAAC,SAAS,MAAM;AAAA,MAC9C;AAAA,IACD;AAAA,EACD;AAAA,EAEA,OAAO,MAAK,KAAK,IAAI;AAAA;;;AZItB,IAAM,0BAA0B;AAEhC,IAAM,mBAAmB,OACxB,eACA,gBACA,aACA,0BACA,OACA,WACI;AAAA,EACJ;AAAA,IACC;AAAA,IACA;AAAA,IACA;AAAA,MACG,eACH,eAAe,gBAAgB,MAAM,uBAAuB,aAAa,MAC1E;AAAA,EACA,MAAM,YAAY,WAAW,aAAa;AAAA,EAC1C,MAAM,eAAe,YAAY,WAAW,gBAAgB;AAAA,EAC5D,MAAM,aAAa,yBAAyB,SAAS;AAAA,EAErD,MAAM,mBAAmB,MAAM;AAAA,IAC9B,OAAO,MAAM,WAAU,OAAO,sCAAsC,CAAC;AAAA,IACrE,WAAW,MAAM;AAAA,IACjB,MAAM,wBAAwB;AAAA;AAAA,EAG/B,IAAI,WAAW,aAAa,UAAU,eAAe,MAAM;AAAA,IAC1D,OAAO,KAAK,4FAA4F;AAAA,IACxG;AAAA,EACD;AAAA,EAEA,IAAI,eAAe,MAAM;AAAA,IACxB,OAAO,KAAK,GAAG,YACZ,0BACA,mCACF,eACG,iBACA,cACD,WAAU,YAAY,WAAW,WAAW,IACzC,qBAAqB,YAAY,WAAW,YAAY,SAAS,MACjE,OAEH;AAAA,IAEH,MAAM,wBAAwB,MAAM,yBAAyB,CAAC,YAAY,YAAY,MAAM,uBAAuB,sBAAsB,IAAI;AAAA,EAC9I;AAAA,EAEA,WAAW,SAAS,4BAA4B;AAAA,IAC/C,MAAM,UAAS,MAAM,IAAI,iBAAe,YAAY;AAAA,MACnD,MAAM,cAAc,gBAAc,cAAc,aAAa,IAAI,WAAW,CAAC;AAAA,MAC7E,MAAM,eAAe,eAAe,IAAI,WAAW,KAAK,CAAC;AAAA,MACzD,MAAM,sBAAsB;AAAA,QAC3B,MAAM;AAAA,QACN,KAAK,YAAY,YAAY;AAAA,QAC7B,WAAW;AAAA,QACX,cAAc;AAAA,QACd,mBAAmB;AAAA,QACnB,QAAQ,WAAW;AAAA,MACpB;AAAA,MACA,MAAM,oBAAoB,SAAQ,YAAY,YAAY,IAAI;AAAA,MAE9D,MAAM,mCAAmC,MAAM,YAAY,MAAM,uBAAuB,mBAAmB;AAAA,MAC3G,IAAI,kCAAkC;AAAA,QACrC,MAAM,cAAc;AAAA,UACnB,WAAW,kBAAkB;AAAA,UAC7B,cAAc;AAAA,UACd,KAAK;AAAA,UACL,QAAQ,WAAW;AAAA,UACnB;AAAA,QACD,CAAC;AAAA,MACF;AAAA,MAEA,MAAM,6BAA6B,MAAM,YAAY,MAAM,iBAAiB,mBAAmB;AAAA,MAC/F,IAAI,4BAA4B;AAAA,QAC/B,MAAM,6BAA6B,YAAY,WAAW;AAAA,QAC1D,MAAM,+BAA+B,YAAY,WAAW;AAAA,QAC5D,MAAM,eAAe,6BAA6B,iBAAiB,0BAA0B,IAAI;AAAA,QACjG,MAAM,iBAAiB,+BAA+B,iBAAiB,4BAA4B,IAAI;AAAA,QAEvG;AAAA,UACC,SAAS;AAAA,UAAc,SAAS;AAAA,YAC7B,mBAAmB;AAAA,QAEvB,IAAI,QAAQ;AAAA,QACZ,IAAI,UAAU;AAAA,QAEd,MAAM,OAAO,cAAc;AAAA,UAC1B,WAAW,WAAW;AAAA,UACtB,cAAc;AAAA,UACd,KAAK;AAAA,UACL,QAAQ,WAAW;AAAA,UACnB;AAAA,UACA,YAAY,CAAC,UAAkB;AAAA,YAC9B,IAAI,CAAC,OAAO;AAAA,cACX,MAAM,mBAAmB,cAAc,KAAK,KAAK,EAAE,QAAQ;AAAA,cAE3D,IAAI,kBAAkB;AAAA,gBACrB,QAAQ;AAAA,gBACR,OAAO,MAAM,IAAI,+CAA+C,oBAAoB;AAAA,gBACpF,oBAAoB;AAAA,cACrB;AAAA,YACD;AAAA,YAEA,IAAI,CAAC,SAAS;AAAA,cACb,MAAM,mBAAmB,gBAAgB,KAAK,KAAK,EAAE,QAAQ;AAAA,cAE7D,IAAI,kBAAkB;AAAA,gBACrB,OAAO,MAAM,WAAU,OAAO,IAAI,+CAA+C,oBAAoB,CAAC;AAAA,gBACtG,UAAU;AAAA,gBAEL,QAAQ,QAAQ,YAAY,MAAM,sBAAsB,mBAAmB,CAAC,EAAE,KAAK,CAAC,+BAA+B;AAAA,kBACvH,IAAI,CAAC,4BAA4B;AAAA,oBAChC,iBAAiB;AAAA,oBACjB;AAAA,kBACD;AAAA,kBAEA,OAAO,cAAc;AAAA,oBACpB,WAAW,iBAAiB;AAAA,oBAC5B,cAAc;AAAA,oBACd,KAAK;AAAA,oBACL,QAAQ,WAAW;AAAA,oBACnB;AAAA,kBACD,CAAC;AAAA,iBACD,EACC,KAAK,CAAC,cAAc;AAAA,kBACpB,IAAI,cAAc,UAAU,SAAS;AAAA,oBACpC,iBAAiB;AAAA,kBAClB;AAAA,iBACA;AAAA,cACH;AAAA,YACD;AAAA;AAAA,QAEF,CAAC,EAAE,KAAK,CAAC,cAAc;AAAA,UACtB,IAAI,cAAc,UAAU,SAAS;AAAA,YACpC,iBAAiB;AAAA,UAClB;AAAA,SACA;AAAA,QAED,MAAM,QAAQ,KAAK,CAAC,cAAc,IAAI,CAAC;AAAA,MACxC;AAAA,MAEA,MAAM,kCAAkC,MAAM,YAAY,MAAM,sBAAsB,mBAAmB;AAAA,MACzG,IAAI,iCAAiC;AAAA,QACpC,MAAM,cAAc;AAAA,UACnB,WAAW,iBAAiB;AAAA,UAC5B,cAAc;AAAA,UACd,KAAK;AAAA,UACL,QAAQ,WAAW;AAAA,UACnB;AAAA,QACD,CAAC;AAAA,MACF;AAAA,KACA,GAAG,YAAY,WAAW,WAAW;AAAA,EACvC;AAAA,EAEA,IAAI,eAAe,MAAM;AAAA,IACxB,OAAO,KAAK,cAAc,WAAW,OAAO,UAAU,iCAAiC,cAAc;AAAA,EACtG;AAAA,EAEA,MAAM,qBAAqB;AAAA,IAC1B,cAAc;AAAA,IACd,mBAAmB;AAAA,IACnB,QAAQ,WAAW;AAAA,EACpB;AAAA,EAEA,MAAM,kCAAkC,MAAM,YAAY,MAAM,sBAAsB,kBAAkB;AAAA,EACxG,IAAI,iCAAiC;AAAA,IACpC,MAAM,cAAc;AAAA,MACnB,WAAW;AAAA,MACX,cAAc;AAAA,MACd,QAAQ,WAAW;AAAA,MACnB;AAAA,IACD,CAAC;AAAA,EACF;AAAA,EAEA,MAAM,4BAA4B,MAAM,YAAY,MAAM,gBAAgB,kBAAkB;AAAA,EAC5F,IAAI,2BAA2B;AAAA,IAC9B,MAAM,cAAc;AAAA,MACnB,WAAW;AAAA,MACX,cAAc;AAAA,MACd,QAAQ,WAAW;AAAA,MACnB;AAAA,IACD,CAAC;AAAA,EACF;AAAA,EAEA,MAAM,iCAAiC,MAAM,YAAY,MAAM,qBAAqB,kBAAkB;AAAA,EACtG,IAAI,gCAAgC;AAAA,IACnC,MAAM,cAAc;AAAA,MACnB,WAAW;AAAA,MACX,cAAc;AAAA,MACd;AAAA,IACD,CAAC;AAAA,EACF;AAAA;AAGM,IAAM,sBAAsB,CAClC,aACA,eACA,aACA,SACA,WACI;AAAA,EACJ,MAAM,yBAAyB,kBAAkB,YAAY,IAAI,kBAAe,aAAY,IAAI,GAAG,cAAc,MAAM,EACrH,IAAI,iBAAe,gBAAc,YAAY,KAAK,UAAQ,KAAK,SAAS,WAAW,CAAC,CAAC;AAAA,EACvF,OAAO,MAAM,WAAU,OAAO,YAAY,uBAAuB,OAAO,SAAS,kBAAkB,YAAY,OAAO,SAAS,aAAa,CAAC;AAAA,EAE7I,IAAI,SAAS;AAAA,EACb,MAAM,QAAQ,EAAE,uBAAuB,UAAsC;AAAA,EAC7E,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,MAAM,cAAc,YAAY,UAAU,MAAM,QAAQ,YAAY,MAAM,IAAI,YAAY,SAAS,CAAC,YAAY,MAAM,GAAG,IAAI,aAAW,IAAI,KAAK,OAAO,CAAC,IAAI;AAAA,EAC7J,MAAM,sBAAsB,IAAI;AAAA,EAEhC,MAAM,gBAAgB,CAAC,UAAmB;AAAA,IACzC,IAAI,eAAe,SAAS,WAAW,OAAO,UAAU;AAAA,MACvD,IAAI,OAAO;AAAA,QACV,OAAO,MAAM,WAAU,OAAO,8CAA8C,CAAC;AAAA,QAC7E,WAAW,MAAM;AAAA,MAClB;AAAA,MACA,aAAa;AAAA,IACd;AAAA,IAEA,eAAe,IAAI;AAAA,IACnB,OAAO;AAAA;AAAA,EAGR,MAAM,eAAe;AAAA,IACpB;AAAA,IAAW;AAAA,IAAa;AAAA,IAAU,YAAY;AAAA,QAOzC;AAAA,IACL,IAAI,CAAC,WAAU,iBAAiB,GAAG;AAAA,MAClC,oBAAoB,KAAK,IAAI;AAAA,IAC9B;AAAA,IAEA,IAAI,eAAe,aAAa,UAAU;AAAA,MACzC,MAAM,cAAc,cAAc,MAAK,WAAW,yBAAyB,QAAQ,CAAC,CAAC;AAAA,MACrF,IAAI,aAAa,KAAK,UAAQ,KAAK,MAAM,WAAW,CAAC,GAAG;AAAA,QACvD,OAAO,MAAM,WAAU,OAAO,oBAAoB,wCAAwC,CAAC;AAAA,QAC3F;AAAA,MACD;AAAA,MAEA,OAAO,MAAM,WAAU,OAAO,mBAAmB,eAAe,CAAC;AAAA,MACjE,MAAM,gBAAgB,oBAAoB,IAAI,WAAW;AAAA,MACzD,IAAI,eAAe;AAAA,QAClB,cAAc,IAAI,WAAW;AAAA,MAC9B,EAAO;AAAA,QACN,oBAAoB,IAAI,aAAa,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC;AAAA;AAAA,IAE7D;AAAA,IAEA,IAAI,iBAAiB;AAAA,MACpB,aAAa,eAAe;AAAA,IAC7B;AAAA,IAEA,MAAM,aAAa,YAAY,IAAI,YAAY;AAAA,IAC/C,kBAAkB,WAAW,MAAM;AAAA,OAC5B,YAAY;AAAA,QACjB,IAAI,QAAQ;AAAA,UACX;AAAA,QACD;AAAA,QAEA,MAAM,iBAAiC,IAAI;AAAA,QAC3C,YAAY,cAAa,UAAU,qBAAqB;AAAA,UACvD,MAAM,eAAe,kBAAkB,MAAM,KAAK,KAAK,GAAG,cAAc,KAAK,EAAE,KAAK;AAAA,UACpF,MAAM,iBAAiB,MAAM,yBAAyB,cAAc,gBAAc,iBAAiB,IAAI,uBAAuB;AAAA,UAC9H,IAAI,eAAe,QAAQ;AAAA,YAC1B,eAAe,IAAI,cAAa,cAAc;AAAA,UAC/C;AAAA,QACD;AAAA,QAEA,oBAAoB;AAAA,QACpB,oBAAoB,MAAM;AAAA,QAE1B,IAAI,CAAC,eAAe,QAAQ,CAAC,WAAW;AAAA,UACvC;AAAA,QACD;AAAA,QAEK,iBACJ,eACA,gBACA,aACA,CAAC,UAAmB,cAAc,KAAK,GACvC,OACA,MACD;AAAA,SACE;AAAA,OACD,UAAU;AAAA;AAAA,EAGd,MAAM,WAAW,uBAAuB,IAAI;AAAA,IAC3C;AAAA,IAAM;AAAA,QACD;AAAA,IACL,MAAM,YAAY,SAAQ,IAAI;AAAA,IAE9B,OAAO,MACN,WAAW,EAAE,WAAW,KAAK,GAAG,CAAC,OAAO,aAAa;AAAA,MACpD,aAAa;AAAA,QACZ;AAAA,QACA,aAAa;AAAA,QACb;AAAA,QACA,UAAU,YAAY;AAAA,MACvB,CAAC;AAAA,KAEH;AAAA,GACA;AAAA,EAED,MAAM,gBAAgB,MAAM;AAAA,IAC3B,SAAS,QAAQ,CAAC,YAAY;AAAA,MAC7B,QAAQ,MAAM;AAAA,KACd;AAAA,IACD,OAAO,MAAM,WAAU,OAAO,wCAAwC,CAAC;AAAA,IACvE,YAAY,MAAM;AAAA,IAClB,SAAS;AAAA;AAAA,EAGV,QAAQ,GAAG,UAAU,MAAM;AAAA,IAC1B,OAAO,MAAM,WAAU,OAAO,oCAAoC,CAAC;AAAA,IACnE,cAAc;AAAA,IACd,QAAQ,KAAK,CAAC;AAAA,GACd;AAAA,EAEI,QAAQ,QAAQ,YAAY,MAAM,OAAO,CAAC,EAAE,KAAK,OAAO,uBAAuB;AAAA,IACnF,IAAI,oBAAoB;AAAA,MACvB,MAAM,cAAc;AAAA,QACnB,WAAW;AAAA,QACX,cAAc;AAAA,QACd,QAAQ,cAAc,KAAK,EAAE;AAAA,QAC7B,KAAK;AAAA,QACL;AAAA,MACD,CAAC;AAAA,IACF;AAAA,IAEA,aAAa,EAAE,WAAW,KAAK,CAAC;AAAA,GAChC;AAAA,EAED,OAAO,EAAE,OAAO,MAAM;AAAA,IACrB,IAAI,QAAQ;AAAA,MACX,OAAO,MAAM,WAAU,OAAO,0BAA0B,CAAC;AAAA,MACzD;AAAA,IACD;AAAA,IAEA,OAAO,MAAM,WAAU,OAAO,mBAAmB,CAAC;AAAA,IAClD,cAAc;AAAA,IACb;AAAA;;;AanWI,IAAM,uBAAuB,CAAC,YAAmE;AAAA,EACvG,SAAS;AAAA,EACT,OAAO,WAAW,SAAS,kBAAkB;AAAA;AAMvC,IAAM,kBAAkB,OAAO,YAA2D;AAAA,EAChG,SAAS;AAAA,EACT,MAAM,kBAAkB,MAAM,QAAQ,QAAQ,OAAO,QAAQ,IAAI,QAAQ,OAAO,WAAW,CAAC,QAAQ,OAAO,QAAQ;AAAA,EACnH,OAAO,aACN,QAAQ,SAAS,iBAAiB,QAAQ,SAAS,QAAQ,OAAO,MACnE;AAAA;AAMM,IAAM,mBAAmB,CAAC,YAAmD;AAAA,EACnF,SAAS;AAAA,EACT,OAAO,eAAe,QAAQ,aAAa,QAAQ,OAAO,MAAM;AAAA;AAQ1D,IAAM,kBAAkB,CAAC,YAAkD;AAAA,EACjF,SAAS;AAAA,EACT,OAAO,gCAAgC,QAAQ,cAAc,cAAc,QAAQ,OAAO,MAAM;AAAA;AAM1F,IAAM,oCAAoC,CAAC,YAAkE;AAAA,EACnH,SAAS;AAAA,EACT,OAAO,uCACN,QAAQ,eACR,QAAQ,cACR,QAAQ,OAAO,MAChB;AAAA;AAQM,IAAM,sBAAqB,CAAC,YAAsD;AAAA,EACxF,SAAS;AAAA,EACT,OAAO,mBAAqB,OAAO;AAAA;AAM7B,IAAM,gBAAgB,CAAC,YAAwC;AAAA,EACrE,SAAS;AAAA,EACT,oBACC,QAAQ,aACR,QAAQ,eACR,QAAQ,OAAO,OACf,QAAQ,SACR,QAAQ,OAAO,MAChB;AAAA;AAMM,IAAM,iBAAiB,CAAC,YAAkD;AAAA,EAChF,SAAS;AAAA,EACT,OAAO,kBACN,QAAQ,eACR,QAAQ,cACR,QAAQ,YACR,QAAQ,OAAO,QACf,QAAQ,aACR,QAAQ,WACT;AAAA;",
53
+ "debugId": "C18A12C7802A030C64756E2164756E21",
53
54
  "names": []
54
55
  }
package/lib/api.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../packages/core/src/lib/api.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAC;AAI3F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAGnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AACzF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,KAAK,EAAE,wCAAwC,EAAE,MAAM,0DAA0D,CAAC;AACzH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AACnF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AACnF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAG9E;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAAI,UAAU,gBAAgB,KAAG,OAAO,CAAC,yBAAyB,CAGlG,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,GAAU,SAAS,qBAAqB,KAAG,OAAO,CAAC,WAAW,EAAE,CAM3F,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAAI,SAAS,sBAAsB,KAAG,aAGlE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAI,SAAS,sBAAsB,KAAG,YAGjE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iCAAiC,GAAI,SAAS,wCAAwC,KAAG,MAAM,EAAE,EAO7G,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAAI,SAAS,yBAAyB,KAAG,OAAO,CAAC,IAAI,CAYnF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,GAAI,SAAS,oBAAoB,KAAG,IAS7D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,GAAI,SAAS,qBAAqB,KAAG,OAAO,CAAC,IAAI,CAU3E,CAAC"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../packages/core/src/lib/api.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAC;AAI3F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAInE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AACzF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,KAAK,EAAE,wCAAwC,EAAE,MAAM,0DAA0D,CAAC;AACzH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AACnF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AACnF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAG9E;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAAI,UAAU,gBAAgB,KAAG,OAAO,CAAC,yBAAyB,CAGlG,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,GAAU,SAAS,qBAAqB,KAAG,OAAO,CAAC,WAAW,EAAE,CAM3F,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAAI,SAAS,sBAAsB,KAAG,aAGlE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAI,SAAS,sBAAsB,KAAG,YAGjE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iCAAiC,GAAI,SAAS,wCAAwC,KAAG,MAAM,EAAE,EAO7G,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAAI,SAAS,yBAAyB,KAAG,OAAO,CAAC,IAAI,CAGnF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,GAAI,SAAS,oBAAoB,KAAG,IAS7D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,GAAI,SAAS,qBAAqB,KAAG,OAAO,CAAC,IAAI,CAU3E,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"generate-graphs.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/lib/graph/functions/generate-graphs.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAwC9D,eAAO,MAAM,cAAc,GAAI,UAAU,WAAW,EAAE,EAAE,QAAQ,MAAM;;;CA0BrE,CAAC"}
1
+ {"version":3,"file":"generate-graphs.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/lib/graph/functions/generate-graphs.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AA2C9D,eAAO,MAAM,cAAc,GAAI,UAAU,WAAW,EAAE,EAAE,QAAQ,MAAM;;;CA0BrE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"generate-topological-sorted-groups.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/lib/graph/functions/generate-topological-sorted-groups.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAa9D,eAAO,MAAM,+BAA+B,GAAI,cAAc,YAAY,EAAE,SAAS,MAAM,KAAG,YAwD7F,CAAC"}
1
+ {"version":3,"file":"generate-topological-sorted-groups.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/lib/graph/functions/generate-topological-sorted-groups.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAa9D,eAAO,MAAM,+BAA+B,GAAI,cAAc,YAAY,EAAE,SAAS,MAAM,KAAG,YAgE7F,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { BumpPackageVersionOptions } from '../../types/bump-package-version-options.ts';
2
+ export declare const bumpPackageVersion: (options: BumpPackageVersionOptions) => Promise<void>;
3
+ //# sourceMappingURL=bump-package-version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bump-package-version.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/lib/package/functions/bump-package-version.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,6CAA6C,CAAC;AAE7F,eAAO,MAAM,kBAAkB,GAAU,SAAS,yBAAyB,KAAG,OAAO,CAAC,IAAI,CAuCzF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"load-packages.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/lib/package/functions/load-packages.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D,eAAO,MAAM,YAAY,GACxB,SAAS,MAAM,EACf,iBAAiB,MAAM,EAAE,EACzB,SAAS,cAAc,EACvB,QAAQ,MAAM,2BAuBd,CAAC"}
1
+ {"version":3,"file":"load-packages.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/lib/package/functions/load-packages.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D,eAAO,MAAM,YAAY,GACxB,SAAS,MAAM,EACf,iBAAiB,MAAM,EAAE,EACzB,SAAS,cAAc,EACvB,QAAQ,MAAM,2BA+Bd,CAAC"}
@@ -1,6 +1,4 @@
1
1
  import type { Logger } from '../../configuration/types/logger.ts';
2
- import type { PackageGraphs } from '../../graph/types/package-graphs.ts';
3
- import type { BumpVersionType } from '../../types/bump-version-type.ts';
4
2
  import type { PackageData } from './package-data.ts';
5
3
  export declare abstract class PackageAdapter {
6
4
  /**
@@ -11,6 +9,10 @@ export declare abstract class PackageAdapter {
11
9
  * Glob pattern matching project manifests (e.g., 'package.json', '*.*proj').
12
10
  */
13
11
  abstract readonly manifestPattern: string;
12
+ /**
13
+ * Default package glob patterns to use if none are specified.
14
+ */
15
+ abstract readonly defaultPatterns: string[];
14
16
  /**
15
17
  * Returns true if this adapter detects that it should be used for the current workspace/CWD.
16
18
  */
@@ -21,16 +23,13 @@ export declare abstract class PackageAdapter {
21
23
  */
22
24
  abstract scanPackages(patterns: string[], logger: Logger, cwd?: string): AsyncIterable<PackageData>;
23
25
  /**
24
- * Bumps a package's own version and updates any dependents' manifests.
26
+ * Bumps a package's own version in its manifest.
27
+ */
28
+ abstract bumpOwnVersion(packageData: PackageData, newVersion: string, logger: Logger): Promise<void>;
29
+ /**
30
+ * Updates a dependent package's manifest to point to the new dependency version.
31
+ * Returns true if a modification was made.
25
32
  */
26
- abstract updateVersion(options: {
27
- packageName: string;
28
- type: BumpVersionType;
29
- packageGraphs: PackageGraphs;
30
- preId: string | undefined;
31
- exact: boolean | undefined;
32
- logger: Logger;
33
- }): Promise<void>;
33
+ abstract bumpDependencyVersion(dependentPackageData: PackageData, targetDependencyName: string, newVersion: string, exact: boolean, logger: Logger): Promise<boolean>;
34
34
  }
35
- export type { PackageAdapter as IPackageAdapter };
36
35
  //# sourceMappingURL=package-adapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"package-adapter.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/lib/package/types/package-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,8BAAsB,cAAc;IACnC;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAE/B;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IAE1C;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAE9C;;;OAGG;IACH,QAAQ,CAAC,YAAY,CACpB,QAAQ,EAAE,MAAM,EAAE,EAClB,MAAM,EAAE,MAAM,EACd,GAAG,CAAC,EAAE,MAAM,GACV,aAAa,CAAC,WAAW,CAAC;IAE7B;;OAEG;IACH,QAAQ,CAAC,aAAa,CAAC,OAAO,EAAE;QAC/B,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,eAAe,CAAC;QACtB,aAAa,EAAE,aAAa,CAAC;QAC7B,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;QAC1B,KAAK,EAAE,OAAO,GAAG,SAAS,CAAC;QAC3B,MAAM,EAAE,MAAM,CAAC;KACf,GAAG,OAAO,CAAC,IAAI,CAAC;CACjB;AACD,YAAY,EAAE,cAAc,IAAI,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"package-adapter.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/lib/package/types/package-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,8BAAsB,cAAc;IACnC;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAE/B;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IAE1C;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC;IAE5C;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAE9C;;;OAGG;IACH,QAAQ,CAAC,YAAY,CACpB,QAAQ,EAAE,MAAM,EAAE,EAClB,MAAM,EAAE,MAAM,EACd,GAAG,CAAC,EAAE,MAAM,GACV,aAAa,CAAC,WAAW,CAAC;IAE7B;;OAEG;IACH,QAAQ,CAAC,cAAc,CACtB,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC;IAEhB;;;OAGG;IACH,QAAQ,CAAC,qBAAqB,CAC7B,oBAAoB,EAAE,WAAW,EACjC,oBAAoB,EAAE,MAAM,EAC5B,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,MAAM,GACZ,OAAO,CAAC,OAAO,CAAC;CACnB"}
@@ -1 +1 @@
1
- {"version":3,"file":"dedupe-shared-paths.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/lib/watch/functions/dedupe-shared-paths.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,eAAO,MAAM,iBAAiB,GAAI,OAAO,MAAM,EAAE,EAAE,IAAI,aAAa,aA4BnE,CAAC"}
1
+ {"version":3,"file":"dedupe-shared-paths.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/lib/watch/functions/dedupe-shared-paths.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,eAAO,MAAM,iBAAiB,GAAI,OAAO,MAAM,EAAE,EAAE,IAAI,aAAa,aAyCnE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"filter-files-modified-since.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/lib/watch/functions/filter-files-modified-since.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,wBAAwB,GAAU,OAAO,MAAM,EAAE,EAAE,SAAS,MAAM,KAAG,OAAO,CAAC,MAAM,EAAE,CAYjG,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":"AAGA,eAAO,MAAM,wBAAwB,GAAU,OAAO,MAAM,EAAE,EAAE,SAAS,MAAM,KAAG,OAAO,CAAC,MAAM,EAAE,CAcjG,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"normalise-watched-file-path.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/lib/watch/functions/normalise-watched-file-path.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,wBAAwB,GAAI,UAAU,MAAM,WAaxD,CAAC"}
1
+ {"version":3,"file":"normalise-watched-file-path.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/lib/watch/functions/normalise-watched-file-path.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,wBAAwB,GAAI,UAAU,MAAM,WAcxD,CAAC"}
package/package.json CHANGED
@@ -1,25 +1,24 @@
1
1
  {
2
2
  "name": "@package-pal/core",
3
- "version": "0.0.11",
3
+ "version": "0.0.12",
4
4
  "description": "Core PackagePal functionality.",
5
5
  "keywords": [
6
6
  "package",
7
7
  "pal",
8
- "monorepo",
9
- "dependencies",
10
- "deps",
8
+ "ppal",
11
9
  "core"
12
10
  ],
13
11
  "license": "MIT",
14
12
  "type": "module",
15
13
  "dependencies": {
16
14
  "@package-pal/util": "^0.0.11",
17
- "zod": "^4.4.3"
15
+ "zod": "^4.4.3",
16
+ "semver": "^7.8.4"
18
17
  },
19
18
  "devDependencies": {
20
- "@types/semver": "^7.7.1",
21
19
  "@types/bun": "^1.3.14",
22
- "typescript": "^6.0.3"
20
+ "typescript": "^6.0.3",
21
+ "@types/semver": "^7.7.1"
23
22
  },
24
23
  "engines": {
25
24
  "bun": ">=1.3.0"