inup 1.5.4 → 1.5.6

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.
Files changed (65) hide show
  1. package/README.md +24 -10
  2. package/dist/cli.js +20 -22
  3. package/dist/config/constants.js +4 -2
  4. package/dist/config/package-meta.js +10 -0
  5. package/dist/config/project-config.js +6 -1
  6. package/dist/core/package-detector.js +8 -4
  7. package/dist/core/upgrade-runner.js +7 -10
  8. package/dist/core/upgrader.js +6 -8
  9. package/dist/features/changelog/clients/github-client.js +5 -6
  10. package/dist/features/changelog/services/changelog-service.js +2 -4
  11. package/dist/features/changelog/services/package-metadata-service.js +6 -11
  12. package/dist/features/changelog/services/release-notes-service.js +4 -2
  13. package/dist/features/debug/services/performance-tracker.js +6 -8
  14. package/dist/index.js +1 -2
  15. package/dist/interactive-ui.js +30 -587
  16. package/dist/services/background-audit.js +3 -5
  17. package/dist/services/cache-manager.js +5 -7
  18. package/dist/services/http/inflight.js +22 -0
  19. package/dist/services/http/retry.js +30 -0
  20. package/dist/services/jsdelivr/client.js +191 -0
  21. package/dist/services/jsdelivr/manifest.js +136 -0
  22. package/dist/services/jsdelivr-registry.js +6 -392
  23. package/dist/services/npm-registry.js +12 -81
  24. package/dist/services/persistent-cache.js +8 -13
  25. package/dist/types/domain.js +3 -0
  26. package/dist/types/streaming.js +3 -0
  27. package/dist/types/ui.js +3 -0
  28. package/dist/types.js +17 -0
  29. package/dist/ui/controllers/package-info-modal-controller.js +22 -31
  30. package/dist/ui/controllers/vulnerability-audit-controller.js +17 -8
  31. package/dist/ui/index.js +3 -0
  32. package/dist/ui/input-handler.js +62 -77
  33. package/dist/ui/keymap.js +208 -0
  34. package/dist/ui/modal/package-info-sections/release-notes.js +161 -0
  35. package/dist/ui/modal/package-info-sections/sections.js +150 -0
  36. package/dist/ui/modal/package-info-sections/text.js +75 -0
  37. package/dist/ui/modal/package-info-sections.js +15 -368
  38. package/dist/ui/modal/package-info.js +1 -1
  39. package/dist/ui/renderer/help-modal.js +75 -0
  40. package/dist/ui/renderer/index.js +2 -5
  41. package/dist/ui/renderer/package-list/interface.js +184 -0
  42. package/dist/ui/renderer/package-list/rows.js +172 -0
  43. package/dist/ui/renderer/package-list.js +15 -462
  44. package/dist/ui/session/action-dispatcher.js +233 -0
  45. package/dist/ui/session/index.js +13 -0
  46. package/dist/ui/session/interactive-session.js +280 -0
  47. package/dist/ui/session/selection-state-builder.js +144 -0
  48. package/dist/ui/state/filter-manager.js +17 -6
  49. package/dist/ui/state/modal-manager.js +35 -0
  50. package/dist/ui/state/navigation-manager.js +33 -4
  51. package/dist/ui/state/state-manager.js +68 -3
  52. package/dist/ui/state/theme-manager.js +1 -0
  53. package/dist/ui/themes-colors.js +8 -0
  54. package/dist/ui/themes.js +11 -19
  55. package/dist/ui/utils/cursor.js +3 -4
  56. package/dist/ui/utils/index.js +6 -1
  57. package/dist/ui/utils/text.js +3 -2
  58. package/dist/ui/utils/version.js +60 -86
  59. package/dist/utils/config.js +13 -1
  60. package/dist/utils/filesystem/io.js +87 -0
  61. package/dist/utils/filesystem/paths.js +19 -0
  62. package/dist/utils/filesystem/scan.js +205 -0
  63. package/dist/utils/filesystem.js +17 -335
  64. package/dist/utils/version.js +31 -1
  65. package/package.json +10 -9
@@ -33,10 +33,40 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.extractMajorVersion = extractMajorVersion;
37
+ exports.toComparableVersion = toComparableVersion;
38
+ exports.versionIdentity = versionIdentity;
39
+ exports.parseVersions = parseVersions;
36
40
  exports.isVersionOutdated = isVersionOutdated;
37
41
  exports.getOptimizedRangeVersion = getOptimizedRangeVersion;
38
42
  exports.findClosestMinorVersion = findClosestMinorVersion;
39
43
  const semver = __importStar(require("semver"));
44
+ function extractMajorVersion(version) {
45
+ if (!version)
46
+ return null;
47
+ const coerced = semver.coerce(version);
48
+ if (!coerced)
49
+ return null;
50
+ return semver.major(coerced).toString();
51
+ }
52
+ function toComparableVersion(version) {
53
+ const validVersion = semver.valid(version);
54
+ if (validVersion)
55
+ return validVersion;
56
+ const coerced = semver.coerce(version);
57
+ return coerced ? coerced.version : null;
58
+ }
59
+ function versionIdentity(version) {
60
+ const comparable = toComparableVersion(version);
61
+ return comparable ?? `raw:${version}`;
62
+ }
63
+ function parseVersions(raw) {
64
+ const data = JSON.parse(raw);
65
+ const allVersions = Object.keys(data.versions || {}).filter((v) => /^[0-9]+\.[0-9]+\.[0-9]+$/.test(v));
66
+ const sortedVersions = allVersions.sort(semver.rcompare);
67
+ const latestVersion = sortedVersions.length > 0 ? sortedVersions[0] : 'unknown';
68
+ return { latestVersion, allVersions };
69
+ }
40
70
  /**
41
71
  * Checks if a version is outdated compared to the latest version.
42
72
  * Handles version prefixes (^, ~, >=, etc.) by coercing them to valid semver.
@@ -55,7 +85,7 @@ function isVersionOutdated(current, latest) {
55
85
  /**
56
86
  * Get the optimized range version for a package
57
87
  */
58
- function getOptimizedRangeVersion(packageName, currentRange, allVersions, latestVersion) {
88
+ function getOptimizedRangeVersion(_packageName, currentRange, allVersions, latestVersion) {
59
89
  try {
60
90
  // Find the highest version that satisfies the current range
61
91
  const satisfyingVersions = allVersions.filter((version) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "inup",
3
- "version": "1.5.4",
3
+ "version": "1.5.6",
4
4
  "description": "Interactive dependency upgrader for npm, yarn, pnpm & bun. Zero-config, monorepo-ready. Upgrade-interactive for every package manager.",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -43,20 +43,20 @@
43
43
  "README.md"
44
44
  ],
45
45
  "devDependencies": {
46
- "@types/node": "^24.12.2",
46
+ "@types/node": "^24.12.4",
47
47
  "@types/semver": "^7.7.1",
48
- "@vitest/coverage-v8": "^4.1.4",
49
- "prettier": "^3.8.2",
50
- "typescript": "^6.0.2",
51
- "vitest": "^4.1.4"
48
+ "@vitest/coverage-v8": "^4.1.7",
49
+ "prettier": "^3.8.3",
50
+ "typescript": "^6.0.3",
51
+ "vitest": "^4.1.7"
52
52
  },
53
53
  "dependencies": {
54
54
  "chalk": "^5.6.2",
55
55
  "commander": "^14.0.3",
56
56
  "env-paths": "^4.0.0",
57
57
  "nanospinner": "^1.2.2",
58
- "semver": "^7.7.4",
59
- "undici": "^8.1.0"
58
+ "semver": "^7.8.1",
59
+ "undici": "^8.3.0"
60
60
  },
61
61
  "engines": {
62
62
  "node": ">=20.0.0"
@@ -75,6 +75,7 @@
75
75
  "demo:setup": "cd docs/demo-project && pnpm install",
76
76
  "test": "vitest run",
77
77
  "test:watch": "vitest",
78
- "test:coverage": "vitest run --coverage"
78
+ "test:coverage": "vitest run --coverage",
79
+ "docs:keys": "UPDATE_README=1 vitest run keymap-readme"
79
80
  }
80
81
  }