inup 1.6.5 → 1.6.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +16 -0
- package/dist/{interactive-ui.js → app/interactive-ui.js} +32 -21
- package/dist/{core → app}/upgrade-runner.js +12 -11
- package/dist/cli.js +12 -10
- package/dist/{services → features/audit}/background-audit.js +2 -2
- package/dist/features/{headless/vulnerability-audit.js → audit/headless-audit.js} +9 -5
- package/dist/features/audit/index.js +36 -0
- package/dist/{ui/presenters/vulnerability.js → features/audit/presenter.js} +1 -1
- package/dist/{ui/controllers → features/audit}/vulnerability-audit-controller.js +12 -6
- package/dist/{services → features/audit}/vulnerability-checker.js +11 -8
- package/dist/features/changelog/clients/github-client.js +35 -17
- package/dist/features/changelog/clients/npm-registry-client.js +16 -2
- package/dist/features/changelog/index.js +1 -1
- package/dist/features/changelog/services/package-metadata-service.js +6 -2
- package/dist/features/changelog/services/release-notes-service.js +6 -10
- package/dist/features/changelog/types.js +3 -0
- package/dist/features/debug/index.js +3 -4
- package/dist/features/debug/{services/perf-logger.js → perf-logger.js} +1 -1
- package/dist/features/debug/types.js +3 -0
- package/dist/features/headless/headless-runner.js +11 -11
- package/dist/features/headless/index.js +1 -4
- package/dist/features/headless/report.js +2 -0
- package/dist/features/interactive/controllers/index.js +6 -0
- package/dist/{ui → features/interactive}/controllers/package-info-modal-controller.js +3 -3
- package/dist/features/interactive/index.js +21 -0
- package/dist/{ui → features/interactive}/input-handler.js +3 -3
- package/dist/{ui → features/interactive}/modal/layout.js +2 -2
- package/dist/{ui/renderer/package-list.js → features/interactive/modal/package-info-sections/index.js} +3 -3
- package/dist/{ui → features/interactive}/modal/package-info-sections/sections.js +53 -22
- package/dist/{ui → features/interactive}/modal/package-info-sections/text.js +5 -5
- package/dist/{ui → features/interactive}/modal/package-info.js +31 -13
- package/dist/features/interactive/modal/types.js +3 -0
- package/dist/{ui → features/interactive}/presenters/health.js +2 -2
- package/dist/{ui → features/interactive}/renderer/index.js +0 -1
- package/dist/{types.js → features/interactive/renderer/package-list/index.js} +3 -4
- package/dist/{ui → features/interactive}/renderer/package-list/interface.js +9 -10
- package/dist/{ui → features/interactive}/renderer/package-list/rows.js +24 -17
- package/dist/features/{debug → interactive}/renderer/performance-modal.js +1 -1
- package/dist/{ui/utils/version.js → features/interactive/renderer/version-format.js} +6 -10
- package/dist/{ui → features/interactive}/session/index.js +2 -1
- package/dist/{ui → features/interactive}/session/interactive-session.js +39 -19
- package/dist/{ui → features/interactive}/session/selection-state-builder.js +20 -5
- package/dist/{ui → features/interactive}/state/filter-manager.js +2 -2
- package/dist/{ui → features/interactive}/state/state-manager.js +6 -4
- package/dist/{ui → features/interactive}/state/theme-manager.js +8 -4
- package/dist/{ui → features/interactive}/themes-colors.js +5 -2
- package/dist/features/upgrade/index.js +8 -0
- package/dist/{core → features/upgrade}/package-detector.js +74 -33
- package/dist/{core → features/upgrade}/upgrader.js +72 -14
- package/dist/index.js +2 -2
- package/dist/{config → shared/config}/package-meta.js +1 -1
- package/dist/{config → shared/config}/project-config.js +4 -1
- package/dist/{utils/config.js → shared/config/user-config.js} +3 -3
- package/dist/{ui/modal/package-info-sections.js → shared/fs/index.js} +4 -3
- package/dist/{utils/filesystem → shared/fs}/paths.js +3 -3
- package/dist/{utils/filesystem → shared/fs}/scan.js +5 -2
- package/dist/{services → shared}/http/etag-store.js +56 -4
- package/dist/{utils → shared}/local-env.js +1 -1
- package/dist/{services/package-manager-detector.js → shared/package-manager.js} +1 -1
- package/dist/shared/pnpm-catalogs.js +138 -0
- package/dist/{services → shared/registry}/npm-registry.js +48 -29
- package/dist/shared/registry/registry-config.js +76 -0
- package/dist/{services → shared/registry}/version-checker.js +24 -25
- package/dist/{ui/utils → shared/terminal}/index.js +4 -6
- package/dist/{ui/utils → shared/terminal}/terminal-input.js +2 -1
- package/dist/shared/terminal/text.js +48 -0
- package/dist/shared/types/index.js +20 -0
- package/dist/{utils/version.js → shared/versions.js} +12 -1
- package/package.json +15 -6
- package/dist/core/index.js +0 -23
- package/dist/features/changelog/types/changelog.types.js +0 -3
- package/dist/features/debug/types/debug.types.js +0 -3
- package/dist/services/index.js +0 -25
- package/dist/ui/controllers/index.js +0 -8
- package/dist/ui/index.js +0 -27
- package/dist/ui/presenters/index.js +0 -11
- package/dist/ui/utils/text.js +0 -76
- package/dist/utils/filesystem.js +0 -20
- package/dist/utils/index.js +0 -34
- /package/dist/{ui/modal → features/audit}/types.js +0 -0
- /package/dist/features/debug/{services/performance-tracker.js → performance-tracker.js} +0 -0
- /package/dist/{ui → features/interactive}/keymap.js +0 -0
- /package/dist/{ui → features/interactive}/modal/index.js +0 -0
- /package/dist/{ui → features/interactive}/modal/package-info-sections/release-notes.js +0 -0
- /package/dist/{ui → features/interactive}/modal/theme-selector.js +0 -0
- /package/dist/{ui → features/interactive}/renderer/confirmation.js +0 -0
- /package/dist/{ui → features/interactive}/renderer/help-modal.js +0 -0
- /package/dist/{ui → features/interactive}/session/action-dispatcher.js +0 -0
- /package/dist/{ui → features/interactive}/state/index.js +0 -0
- /package/dist/{ui → features/interactive}/state/modal-manager.js +0 -0
- /package/dist/{ui → features/interactive}/state/navigation-manager.js +0 -0
- /package/dist/{ui → features/interactive}/themes.js +0 -0
- /package/dist/{config → shared/config}/constants.js +0 -0
- /package/dist/{config → shared/config}/index.js +0 -0
- /package/dist/{utils → shared}/debug-logger.js +0 -0
- /package/dist/{utils → shared}/engines.js +0 -0
- /package/dist/{utils → shared}/exec.js +0 -0
- /package/dist/{utils/filesystem → shared/fs}/io.js +0 -0
- /package/dist/{utils → shared}/git.js +0 -0
- /package/dist/{services → shared}/http/adaptive-controller.js +0 -0
- /package/dist/{services → shared}/http/inflight.js +0 -0
- /package/dist/{services → shared}/http/resizable-semaphore.js +0 -0
- /package/dist/{services → shared}/http/retry.js +0 -0
- /package/dist/{utils → shared}/manifest.js +0 -0
- /package/dist/{utils → shared/terminal}/color.js +0 -0
- /package/dist/{ui/utils → shared/terminal}/cursor.js +0 -0
- /package/dist/{types → shared/types}/domain.js +0 -0
- /package/dist/{types → shared/types}/streaming.js +0 -0
- /package/dist/{types → shared/types}/ui.js +0 -0
|
@@ -14,6 +14,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./types
|
|
17
|
+
__exportStar(require("./types"), exports);
|
|
18
18
|
__exportStar(require("./services/changelog-service"), exports);
|
|
19
19
|
//# sourceMappingURL=index.js.map
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.PackageMetadataService = void 0;
|
|
4
4
|
const npm_registry_client_1 = require("../clients/npm-registry-client");
|
|
5
5
|
const package_metadata_1 = require("../parsers/package-metadata");
|
|
6
|
-
const inflight_1 = require("../../../
|
|
6
|
+
const inflight_1 = require("../../../shared/http/inflight");
|
|
7
7
|
class PackageMetadataService {
|
|
8
8
|
npmRegistryClient;
|
|
9
9
|
cache = new Map();
|
|
@@ -16,7 +16,11 @@ class PackageMetadataService {
|
|
|
16
16
|
this.inFlight.clear();
|
|
17
17
|
}
|
|
18
18
|
getCached(packageName, version) {
|
|
19
|
-
for (const key of [
|
|
19
|
+
for (const key of [
|
|
20
|
+
this.getCacheKey(packageName, version),
|
|
21
|
+
this.getCacheKey(packageName),
|
|
22
|
+
packageName,
|
|
23
|
+
]) {
|
|
20
24
|
if (this.cache.has(key)) {
|
|
21
25
|
return this.cache.get(key) ?? null;
|
|
22
26
|
}
|
|
@@ -39,7 +39,6 @@ const github_client_1 = require("../clients/github-client");
|
|
|
39
39
|
const changelog_parser_1 = require("../parsers/changelog-parser");
|
|
40
40
|
const github_release_html_parser_1 = require("../parsers/github-release-html-parser");
|
|
41
41
|
const RELEASE_NOTES_FETCH_TIMEOUT_MS = 5000;
|
|
42
|
-
const PREFER_GITHUB_RELEASE_PAGE = true;
|
|
43
42
|
class ReleaseNotesService {
|
|
44
43
|
metadataService;
|
|
45
44
|
githubClient;
|
|
@@ -91,15 +90,12 @@ class ReleaseNotesService {
|
|
|
91
90
|
return null;
|
|
92
91
|
}
|
|
93
92
|
getGitHubSources(repoUrl, version, signal) {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
() => this.fetchGitHubReleaseNotes(repoUrl, version, signal),
|
|
101
|
-
() => this.fetchGitHubReleasePageNotes(repoUrl, version, signal),
|
|
102
|
-
];
|
|
93
|
+
// Scraped release page first (richer content than the API body), then the
|
|
94
|
+
// release API by tag.
|
|
95
|
+
const directReleaseSources = [
|
|
96
|
+
() => this.fetchGitHubReleasePageNotes(repoUrl, version, signal),
|
|
97
|
+
() => this.fetchGitHubReleaseNotes(repoUrl, version, signal),
|
|
98
|
+
];
|
|
103
99
|
return [
|
|
104
100
|
...directReleaseSources,
|
|
105
101
|
() => this.fetchGitHubReleaseListNotes(repoUrl, version, signal),
|
|
@@ -14,8 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./types
|
|
18
|
-
__exportStar(require("./
|
|
19
|
-
__exportStar(require("./
|
|
20
|
-
__exportStar(require("./renderer/performance-modal"), exports);
|
|
17
|
+
__exportStar(require("./types"), exports);
|
|
18
|
+
__exportStar(require("./performance-tracker"), exports);
|
|
19
|
+
__exportStar(require("./perf-logger"), exports);
|
|
21
20
|
//# sourceMappingURL=index.js.map
|
|
@@ -6,7 +6,7 @@ exports.getPerfDir = getPerfDir;
|
|
|
6
6
|
exports.writePerfLog = writePerfLog;
|
|
7
7
|
const fs_1 = require("fs");
|
|
8
8
|
const path_1 = require("path");
|
|
9
|
-
const adaptive_controller_1 = require("
|
|
9
|
+
const adaptive_controller_1 = require("../../shared/http/adaptive-controller");
|
|
10
10
|
/**
|
|
11
11
|
* Performance debug logger.
|
|
12
12
|
*
|
|
@@ -5,11 +5,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.HeadlessRunner = void 0;
|
|
7
7
|
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
const vulnerability_audit_1 = require("./vulnerability-audit");
|
|
8
|
+
const upgrade_1 = require("../upgrade");
|
|
9
|
+
const package_manager_1 = require("../../shared/package-manager");
|
|
10
|
+
const versions_1 = require("../../shared/versions");
|
|
11
|
+
const audit_1 = require("../audit");
|
|
13
12
|
const report_1 = require("./report");
|
|
14
13
|
const debug_1 = require("../../features/debug");
|
|
15
14
|
/**
|
|
@@ -26,7 +25,7 @@ class HeadlessRunner {
|
|
|
26
25
|
options;
|
|
27
26
|
constructor(options) {
|
|
28
27
|
this.options = options;
|
|
29
|
-
this.detector = new
|
|
28
|
+
this.detector = new upgrade_1.PackageDetector(options);
|
|
30
29
|
}
|
|
31
30
|
async run(options) {
|
|
32
31
|
try {
|
|
@@ -52,7 +51,7 @@ class HeadlessRunner {
|
|
|
52
51
|
}
|
|
53
52
|
// Audit the current versions (one bulk request, best-effort) and cross-reference each
|
|
54
53
|
// advisory against the upgrade targets, so the report says whether upgrading *fixes* it.
|
|
55
|
-
const vulnerabilities = await (0,
|
|
54
|
+
const vulnerabilities = await (0, audit_1.auditVulnerabilities)(outdated);
|
|
56
55
|
// Build the report from the *pre-apply* outdated set: it describes what this run addressed.
|
|
57
56
|
const report = (0, report_1.buildHeadlessReport)(packages, outdated, vulnerabilities);
|
|
58
57
|
// --apply writes the bumps + lockfile. The scan above already honored .inuprc
|
|
@@ -89,7 +88,7 @@ class HeadlessRunner {
|
|
|
89
88
|
const packageManager = this.resolvePackageManager();
|
|
90
89
|
// With --json, run the upgrader quietly: its own progress + the install child's stdout go to
|
|
91
90
|
// stderr, leaving stdout for the JSON document only.
|
|
92
|
-
const upgrader = new
|
|
91
|
+
const upgrader = new upgrade_1.PackageUpgrader(packageManager, { quiet: json });
|
|
93
92
|
await upgrader.upgradePackages(choices, outdated);
|
|
94
93
|
}
|
|
95
94
|
/**
|
|
@@ -113,7 +112,7 @@ class HeadlessRunner {
|
|
|
113
112
|
continue;
|
|
114
113
|
const targetVersionWithPrefix = saveExact
|
|
115
114
|
? targetVersion
|
|
116
|
-
: (0,
|
|
115
|
+
: (0, versions_1.applyVersionPrefix)(pkg.currentVersion, targetVersion);
|
|
117
116
|
choices.push({
|
|
118
117
|
name: pkg.name,
|
|
119
118
|
packageJsonPath: pkg.packageJsonPath,
|
|
@@ -121,6 +120,7 @@ class HeadlessRunner {
|
|
|
121
120
|
upgradeType: useLatest ? 'latest' : 'range',
|
|
122
121
|
targetVersion: targetVersionWithPrefix,
|
|
123
122
|
currentVersionSpecifier: pkg.currentVersion,
|
|
123
|
+
catalog: pkg.catalog,
|
|
124
124
|
});
|
|
125
125
|
}
|
|
126
126
|
return choices;
|
|
@@ -129,8 +129,8 @@ class HeadlessRunner {
|
|
|
129
129
|
resolvePackageManager() {
|
|
130
130
|
const cwd = this.options?.cwd || process.cwd();
|
|
131
131
|
return this.options?.packageManager
|
|
132
|
-
?
|
|
133
|
-
:
|
|
132
|
+
? package_manager_1.PackageManagerDetector.getInfo(this.options.packageManager)
|
|
133
|
+
: package_manager_1.PackageManagerDetector.detect(cwd);
|
|
134
134
|
}
|
|
135
135
|
}
|
|
136
136
|
exports.HeadlessRunner = HeadlessRunner;
|
|
@@ -14,13 +14,10 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.renderPlainReport = exports.buildHeadlessReport = exports.
|
|
17
|
+
exports.renderPlainReport = exports.buildHeadlessReport = exports.HeadlessRunner = void 0;
|
|
18
18
|
__exportStar(require("./types"), exports);
|
|
19
19
|
var headless_runner_1 = require("./headless-runner");
|
|
20
20
|
Object.defineProperty(exports, "HeadlessRunner", { enumerable: true, get: function () { return headless_runner_1.HeadlessRunner; } });
|
|
21
|
-
var vulnerability_audit_1 = require("./vulnerability-audit");
|
|
22
|
-
Object.defineProperty(exports, "auditVulnerabilities", { enumerable: true, get: function () { return vulnerability_audit_1.auditVulnerabilities; } });
|
|
23
|
-
Object.defineProperty(exports, "upgradeClears", { enumerable: true, get: function () { return vulnerability_audit_1.upgradeClears; } });
|
|
24
21
|
var report_1 = require("./report");
|
|
25
22
|
Object.defineProperty(exports, "buildHeadlessReport", { enumerable: true, get: function () { return report_1.buildHeadlessReport; } });
|
|
26
23
|
Object.defineProperty(exports, "renderPlainReport", { enumerable: true, get: function () { return report_1.renderPlainReport; } });
|
|
@@ -23,6 +23,8 @@ function buildHeadlessReport(all, outdated, vulnerabilities) {
|
|
|
23
23
|
packageJsonPath: pkg.packageJsonPath,
|
|
24
24
|
hasMajorUpdate: pkg.hasMajorUpdate,
|
|
25
25
|
};
|
|
26
|
+
if (pkg.catalog)
|
|
27
|
+
entry.catalog = pkg.catalog;
|
|
26
28
|
if (pkg.deprecated)
|
|
27
29
|
entry.deprecated = pkg.deprecated;
|
|
28
30
|
if (pkg.enginesNode)
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PackageInfoModalController = void 0;
|
|
4
|
+
var package_info_modal_controller_1 = require("./package-info-modal-controller");
|
|
5
|
+
Object.defineProperty(exports, "PackageInfoModalController", { enumerable: true, get: function () { return package_info_modal_controller_1.PackageInfoModalController; } });
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -35,7 +35,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.PackageInfoModalController = void 0;
|
|
37
37
|
const semver = __importStar(require("semver"));
|
|
38
|
-
const
|
|
38
|
+
const changelog_1 = require("../../changelog");
|
|
39
39
|
const RELEASE_NOTES_LOAD_DEBOUNCE_MS = 120;
|
|
40
40
|
class PackageInfoModalController {
|
|
41
41
|
abortController = null;
|
|
@@ -62,7 +62,7 @@ class PackageInfoModalController {
|
|
|
62
62
|
this.cancel();
|
|
63
63
|
const controller = new AbortController();
|
|
64
64
|
this.abortController = controller;
|
|
65
|
-
const metadata = await
|
|
65
|
+
const metadata = await changelog_1.changelogFetcher.fetchPackageMetadata(state.name, state.latestVersion, controller.signal);
|
|
66
66
|
if (!metadata) {
|
|
67
67
|
return null;
|
|
68
68
|
}
|
|
@@ -142,7 +142,7 @@ class PackageInfoModalController {
|
|
|
142
142
|
state.releaseNotesLoadingVersion = version;
|
|
143
143
|
onLoaded(); // Re-render to show loading indicator
|
|
144
144
|
try {
|
|
145
|
-
const notes = await
|
|
145
|
+
const notes = await changelog_1.changelogFetcher.fetchReleaseNotesForVersion(state.name, version, this.abortController?.signal);
|
|
146
146
|
loadedNotes.set(version, notes);
|
|
147
147
|
return true;
|
|
148
148
|
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.renderReadmeKeyTable = exports.PackageInfoModalController = exports.selectionKey = exports.createUpgradeChoices = exports.createPendingSelectionStates = exports.createSelectionStates = exports.runInteractiveSession = exports.StateManager = exports.UIRenderer = exports.ConfirmationInputHandler = exports.InputHandler = void 0;
|
|
4
|
+
var input_handler_1 = require("./input-handler");
|
|
5
|
+
Object.defineProperty(exports, "InputHandler", { enumerable: true, get: function () { return input_handler_1.InputHandler; } });
|
|
6
|
+
Object.defineProperty(exports, "ConfirmationInputHandler", { enumerable: true, get: function () { return input_handler_1.ConfirmationInputHandler; } });
|
|
7
|
+
var renderer_1 = require("./renderer");
|
|
8
|
+
Object.defineProperty(exports, "UIRenderer", { enumerable: true, get: function () { return renderer_1.UIRenderer; } });
|
|
9
|
+
var state_1 = require("./state");
|
|
10
|
+
Object.defineProperty(exports, "StateManager", { enumerable: true, get: function () { return state_1.StateManager; } });
|
|
11
|
+
var session_1 = require("./session");
|
|
12
|
+
Object.defineProperty(exports, "runInteractiveSession", { enumerable: true, get: function () { return session_1.runInteractiveSession; } });
|
|
13
|
+
Object.defineProperty(exports, "createSelectionStates", { enumerable: true, get: function () { return session_1.createSelectionStates; } });
|
|
14
|
+
Object.defineProperty(exports, "createPendingSelectionStates", { enumerable: true, get: function () { return session_1.createPendingSelectionStates; } });
|
|
15
|
+
Object.defineProperty(exports, "createUpgradeChoices", { enumerable: true, get: function () { return session_1.createUpgradeChoices; } });
|
|
16
|
+
Object.defineProperty(exports, "selectionKey", { enumerable: true, get: function () { return session_1.selectionKey; } });
|
|
17
|
+
var controllers_1 = require("./controllers");
|
|
18
|
+
Object.defineProperty(exports, "PackageInfoModalController", { enumerable: true, get: function () { return controllers_1.PackageInfoModalController; } });
|
|
19
|
+
var keymap_1 = require("./keymap");
|
|
20
|
+
Object.defineProperty(exports, "renderReadmeKeyTable", { enumerable: true, get: function () { return keymap_1.renderReadmeKeyTable; } });
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ConfirmationInputHandler = exports.InputHandler = void 0;
|
|
4
|
-
const
|
|
4
|
+
const terminal_1 = require("../../shared/terminal");
|
|
5
5
|
const keymap_1 = require("./keymap");
|
|
6
6
|
class InputHandler {
|
|
7
7
|
stateManager;
|
|
@@ -235,7 +235,7 @@ class InputHandler {
|
|
|
235
235
|
this.onAction({ type: 'resize', height });
|
|
236
236
|
}
|
|
237
237
|
cleanup() {
|
|
238
|
-
|
|
238
|
+
terminal_1.CursorUtils.cleanup();
|
|
239
239
|
}
|
|
240
240
|
}
|
|
241
241
|
exports.InputHandler = InputHandler;
|
|
@@ -275,7 +275,7 @@ class ConfirmationInputHandler {
|
|
|
275
275
|
}
|
|
276
276
|
}
|
|
277
277
|
cleanup() {
|
|
278
|
-
|
|
278
|
+
terminal_1.CursorUtils.cleanup();
|
|
279
279
|
}
|
|
280
280
|
}
|
|
281
281
|
exports.ConfirmationInputHandler = ConfirmationInputHandler;
|
|
@@ -11,12 +11,12 @@ exports.getModalSectionRowCount = getModalSectionRowCount;
|
|
|
11
11
|
exports.getModalFrameHeight = getModalFrameHeight;
|
|
12
12
|
exports.renderModalFrame = renderModalFrame;
|
|
13
13
|
const chalk_1 = __importDefault(require("chalk"));
|
|
14
|
-
const
|
|
14
|
+
const terminal_1 = require("../../../shared/terminal");
|
|
15
15
|
function getModalWidth(terminalWidth, minWidth, maxWidth) {
|
|
16
16
|
return Math.min(Math.max(minWidth, terminalWidth - 6), maxWidth);
|
|
17
17
|
}
|
|
18
18
|
function renderModalRow(padding, modalWidth, text) {
|
|
19
|
-
const rowLength = (0,
|
|
19
|
+
const rowLength = (0, terminal_1.getVisualLength)(text);
|
|
20
20
|
const rowPadding = Math.max(0, modalWidth - 4 - rowLength);
|
|
21
21
|
return (' '.repeat(padding) +
|
|
22
22
|
chalk_1.default.gray('│') +
|
|
@@ -14,6 +14,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./
|
|
18
|
-
__exportStar(require("./
|
|
19
|
-
//# sourceMappingURL=
|
|
17
|
+
__exportStar(require("./sections"), exports);
|
|
18
|
+
__exportStar(require("./release-notes"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -8,9 +8,9 @@ exports.buildPackageInfoSections = buildPackageInfoSections;
|
|
|
8
8
|
const node_path_1 = __importDefault(require("node:path"));
|
|
9
9
|
const chalk_1 = __importDefault(require("chalk"));
|
|
10
10
|
const themes_colors_1 = require("../../themes-colors");
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
const
|
|
11
|
+
const audit_1 = require("../../../audit");
|
|
12
|
+
const terminal_1 = require("../../../../shared/terminal");
|
|
13
|
+
const engines_1 = require("../../../../shared/engines");
|
|
14
14
|
const release_notes_1 = require("./release-notes");
|
|
15
15
|
function formatNumber(num) {
|
|
16
16
|
if (!num)
|
|
@@ -22,10 +22,15 @@ function formatNumber(num) {
|
|
|
22
22
|
return num.toString();
|
|
23
23
|
}
|
|
24
24
|
function getUsedByPaths(state) {
|
|
25
|
+
// Catalog entries live in pnpm-workspace.yaml; the interesting "used by"
|
|
26
|
+
// answer is the member packages that reference the catalog entry.
|
|
27
|
+
if (state.catalog && state.catalogReferencedBy?.length) {
|
|
28
|
+
return state.catalogReferencedBy;
|
|
29
|
+
}
|
|
25
30
|
return state.packageJsonPaths ?? [state.packageJsonPath];
|
|
26
31
|
}
|
|
27
32
|
function buildTabBarSuffix(activeTab, usedByCount) {
|
|
28
|
-
const styleFor = (tab) => tab === activeTab ? chalk_1.default.bold.underline : chalk_1.default.gray;
|
|
33
|
+
const styleFor = (tab) => (tab === activeTab ? chalk_1.default.bold.underline : chalk_1.default.gray);
|
|
29
34
|
const usedByLabel = `Used by${usedByCount > 0 ? ` (${usedByCount})` : ''}`;
|
|
30
35
|
return (' ' +
|
|
31
36
|
chalk_1.default.gray('[ ') +
|
|
@@ -40,14 +45,16 @@ function buildUsedBySections(state, modalWidth) {
|
|
|
40
45
|
const contentWidth = Math.max(10, modalWidth - 4);
|
|
41
46
|
const formatRelative = (absolutePath) => {
|
|
42
47
|
const display = node_path_1.default.relative(cwd, absolutePath) || absolutePath;
|
|
43
|
-
return (0,
|
|
48
|
+
return (0, terminal_1.truncatePlainText)(display, contentWidth);
|
|
44
49
|
};
|
|
45
|
-
|
|
50
|
+
const sections = [
|
|
46
51
|
{
|
|
47
52
|
key: 'used-by-summary',
|
|
48
53
|
rows: [
|
|
49
54
|
chalk_1.default.bold(`${paths.length} package.json file${paths.length === 1 ? '' : 's'} depend on ${state.name}`),
|
|
50
|
-
chalk_1.default.gray(
|
|
55
|
+
chalk_1.default.gray(state.catalog
|
|
56
|
+
? `Type: ${state.type} • via catalog:${state.catalog}`
|
|
57
|
+
: `Type: ${state.type}`),
|
|
51
58
|
],
|
|
52
59
|
required: true,
|
|
53
60
|
behavior: 'pinned',
|
|
@@ -58,6 +65,25 @@ function buildUsedBySections(state, modalWidth) {
|
|
|
58
65
|
behavior: 'body',
|
|
59
66
|
},
|
|
60
67
|
];
|
|
68
|
+
// For catalog entries, also show what else the catalog pins — the whole
|
|
69
|
+
// point of a catalog is that these versions move together.
|
|
70
|
+
if (state.catalog && state.catalogEntries?.length) {
|
|
71
|
+
sections.push({
|
|
72
|
+
key: 'catalog-contents',
|
|
73
|
+
rows: [
|
|
74
|
+
chalk_1.default.bold(`Catalog "${state.catalog}"`) + chalk_1.default.gray(' — pnpm-workspace.yaml'),
|
|
75
|
+
...state.catalogEntries.map((entry) => {
|
|
76
|
+
const isCurrent = entry.name === state.name;
|
|
77
|
+
const label = (0, terminal_1.truncatePlainText)(`${entry.name}: ${entry.range}`, contentWidth - 2);
|
|
78
|
+
return isCurrent
|
|
79
|
+
? `${(0, themes_colors_1.getThemeColor)('packageName')('▸')} ${chalk_1.default.bold(label)}`
|
|
80
|
+
: `${chalk_1.default.gray('•')} ${label}`;
|
|
81
|
+
}),
|
|
82
|
+
],
|
|
83
|
+
behavior: 'body',
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
return sections;
|
|
61
87
|
}
|
|
62
88
|
function buildPackageInfoSections(state, modalWidth, activeTab) {
|
|
63
89
|
const title = chalk_1.default.bold('Package: ') +
|
|
@@ -82,6 +108,11 @@ function buildPackageInfoSections(state, modalWidth, activeTab) {
|
|
|
82
108
|
key: 'meta',
|
|
83
109
|
rows: [
|
|
84
110
|
`Current: ${currentVersion} Target: ${targetVersion}`,
|
|
111
|
+
...(state.catalog
|
|
112
|
+
? [
|
|
113
|
+
(0, themes_colors_1.getThemeColor)('textSecondary')(`Catalog: ${state.catalog} — range lives in pnpm-workspace.yaml`),
|
|
114
|
+
]
|
|
115
|
+
: []),
|
|
85
116
|
...(state.weeklyDownloads !== undefined
|
|
86
117
|
? [(0, themes_colors_1.getThemeColor)('primary')(`Downloads/week: ${formatNumber(state.weeklyDownloads)}`)]
|
|
87
118
|
: []),
|
|
@@ -95,13 +126,13 @@ function buildPackageInfoSections(state, modalWidth, activeTab) {
|
|
|
95
126
|
// Wrap (don't truncate) so a deprecation URL stays whole and clickable —
|
|
96
127
|
// truncation with "..." produces a dead link. `wrapPlainText` breaks on
|
|
97
128
|
// spaces only, so the URL keeps its own intact line. No emoji marker:
|
|
98
|
-
//
|
|
99
|
-
//
|
|
100
|
-
for (const line of (0,
|
|
129
|
+
// terminal fonts disagree on whether such glyphs render one or two columns
|
|
130
|
+
// wide, which throws off the modal's border alignment.
|
|
131
|
+
for (const line of (0, terminal_1.wrapPlainText)(`Deprecated: ${state.deprecated}`, warningContentWidth)) {
|
|
101
132
|
warningRows.push((0, themes_colors_1.getThemeColor)('warning')(line));
|
|
102
133
|
}
|
|
103
134
|
}
|
|
104
|
-
const engineWarning = (0,
|
|
135
|
+
const engineWarning = (0, engines_1.checkNodeEngineCompatibility)(state.enginesNode);
|
|
105
136
|
if (engineWarning) {
|
|
106
137
|
warningRows.push((0, themes_colors_1.getThemeColor)('warning')(`Hold: ${engineWarning}`));
|
|
107
138
|
}
|
|
@@ -116,7 +147,7 @@ function buildPackageInfoSections(state, modalWidth, activeTab) {
|
|
|
116
147
|
sections.push({
|
|
117
148
|
key: 'homepage',
|
|
118
149
|
rows: [
|
|
119
|
-
`Homepage: ${chalk_1.default.underline((0, themes_colors_1.getThemeColor)('primary')((0,
|
|
150
|
+
`Homepage: ${chalk_1.default.underline((0, themes_colors_1.getThemeColor)('primary')((0, terminal_1.truncatePlainText)(state.homepage, modalWidth - 14)))}`,
|
|
120
151
|
],
|
|
121
152
|
behavior: 'pinned',
|
|
122
153
|
});
|
|
@@ -124,30 +155,30 @@ function buildPackageInfoSections(state, modalWidth, activeTab) {
|
|
|
124
155
|
if (state.description) {
|
|
125
156
|
sections.push({
|
|
126
157
|
key: 'description',
|
|
127
|
-
rows: (0,
|
|
158
|
+
rows: (0, terminal_1.wrapPlainText)(state.description, modalWidth - 4)
|
|
128
159
|
.slice(0, 4)
|
|
129
160
|
.map((line, index, rows) => index === rows.length - 1 && rows.length === 4
|
|
130
|
-
? (0,
|
|
161
|
+
? (0, terminal_1.truncatePlainText)(line, modalWidth - 4)
|
|
131
162
|
: line),
|
|
132
163
|
behavior: 'pinned',
|
|
133
164
|
});
|
|
134
165
|
}
|
|
135
166
|
if (state.vulnerability && state.vulnerability.count > 0) {
|
|
136
|
-
const representative = (0,
|
|
137
|
-
const severityColor = (0,
|
|
167
|
+
const representative = (0, audit_1.selectRepresentativeAdvisory)(state.vulnerability);
|
|
168
|
+
const severityColor = (0, audit_1.getVulnerabilitySeverityColor)(state.vulnerability.highestSeverity);
|
|
138
169
|
const vulnerabilityRows = [
|
|
139
170
|
chalk_1.default.red.bold(`${state.vulnerability.count} known vulnerabilit${state.vulnerability.count === 1 ? 'y' : 'ies'} (${severityColor(state.vulnerability.highestSeverity.toUpperCase())})`),
|
|
140
171
|
];
|
|
141
172
|
if (representative) {
|
|
142
173
|
const severityLabel = ` ${severityColor(`[${representative.severity.toUpperCase()}]`)} `;
|
|
143
|
-
const availableTitleWidth = Math.max(0, modalWidth - 4 - (0,
|
|
144
|
-
vulnerabilityRows.push(`${severityLabel}${(0,
|
|
174
|
+
const availableTitleWidth = Math.max(0, modalWidth - 4 - (0, terminal_1.getVisualLength)(severityLabel));
|
|
175
|
+
vulnerabilityRows.push(`${severityLabel}${(0, terminal_1.truncatePlainText)(representative.title, availableTitleWidth)}`);
|
|
145
176
|
}
|
|
146
177
|
const detailsUrl = state.vulnerability.detailsUrl || representative?.url;
|
|
147
178
|
if (detailsUrl) {
|
|
148
|
-
const linkPrefix = ` ${(0,
|
|
149
|
-
const availableLinkWidth = Math.max(0, modalWidth - 4 - (0,
|
|
150
|
-
vulnerabilityRows.push(`${linkPrefix}${chalk_1.default.underline((0, themes_colors_1.getThemeColor)('primary')((0,
|
|
179
|
+
const linkPrefix = ` ${(0, audit_1.getVulnerabilityLinkLabel)(detailsUrl)} `;
|
|
180
|
+
const availableLinkWidth = Math.max(0, modalWidth - 4 - (0, terminal_1.getVisualLength)(linkPrefix));
|
|
181
|
+
vulnerabilityRows.push(`${linkPrefix}${chalk_1.default.underline((0, themes_colors_1.getThemeColor)('primary')((0, terminal_1.truncatePlainText)(detailsUrl, availableLinkWidth)))}`);
|
|
151
182
|
}
|
|
152
183
|
if (state.vulnerability.count > 1) {
|
|
153
184
|
vulnerabilityRows.push(chalk_1.default.gray(` ... and ${state.vulnerability.count - 1} more`));
|
|
@@ -163,7 +194,7 @@ function buildPackageInfoSections(state, modalWidth, activeTab) {
|
|
|
163
194
|
sections.push({
|
|
164
195
|
key: 'changelog',
|
|
165
196
|
rows: [
|
|
166
|
-
`Changelog: ${chalk_1.default.underline((0, themes_colors_1.getThemeColor)('primary')((0,
|
|
197
|
+
`Changelog: ${chalk_1.default.underline((0, themes_colors_1.getThemeColor)('primary')((0, terminal_1.truncatePlainText)(state.repository, modalWidth - 15)))}`,
|
|
167
198
|
],
|
|
168
199
|
behavior: 'pinned',
|
|
169
200
|
});
|
|
@@ -8,7 +8,7 @@ exports.linkifyRepositoryReferences = linkifyRepositoryReferences;
|
|
|
8
8
|
exports.linkifyMarkdownText = linkifyMarkdownText;
|
|
9
9
|
exports.pushWrappedLines = pushWrappedLines;
|
|
10
10
|
exports.isLowSignalTrailerLine = isLowSignalTrailerLine;
|
|
11
|
-
const
|
|
11
|
+
const terminal_1 = require("../../../../shared/terminal");
|
|
12
12
|
function formatTerminalLink(label, url) {
|
|
13
13
|
return `]8;;${url}${label}]8;;`;
|
|
14
14
|
}
|
|
@@ -48,16 +48,16 @@ function linkifyMarkdownText(text, repositoryUrl) {
|
|
|
48
48
|
return linkifyRepositoryReferences(linkifyContributorMentions(text), repositoryUrl);
|
|
49
49
|
}
|
|
50
50
|
function pushWrappedLines(lines, text, width, firstPrefix, restPrefix = firstPrefix, style) {
|
|
51
|
-
const firstWidth = Math.max(1, width - (0,
|
|
52
|
-
const restWidth = Math.max(1, width - (0,
|
|
53
|
-
const segments = (0,
|
|
51
|
+
const firstWidth = Math.max(1, width - (0, terminal_1.getVisualLength)(firstPrefix));
|
|
52
|
+
const restWidth = Math.max(1, width - (0, terminal_1.getVisualLength)(restPrefix));
|
|
53
|
+
const segments = (0, terminal_1.wrapPlainText)(text, firstWidth);
|
|
54
54
|
if (segments.length === 0) {
|
|
55
55
|
lines.push(firstPrefix.trimEnd());
|
|
56
56
|
return;
|
|
57
57
|
}
|
|
58
58
|
lines.push(firstPrefix + (style ? style(segments[0]) : segments[0]));
|
|
59
59
|
for (let i = 1; i < segments.length; i++) {
|
|
60
|
-
const wrappedSegments = (0,
|
|
60
|
+
const wrappedSegments = (0, terminal_1.wrapPlainText)(segments[i], restWidth);
|
|
61
61
|
for (const segment of wrappedSegments) {
|
|
62
62
|
lines.push(restPrefix + (style ? style(segment) : segment));
|
|
63
63
|
}
|
|
@@ -51,14 +51,22 @@ function renderPackageInfoModal(state, terminalWidth = 80, terminalHeight = 24,
|
|
|
51
51
|
}
|
|
52
52
|
const fixedModalHeight = maxHeight;
|
|
53
53
|
const padding = Math.floor((terminalWidth - modalWidth) / 2);
|
|
54
|
-
|
|
55
|
-
|
|
54
|
+
// Every section built by buildPackageInfoSections declares a behavior; the
|
|
55
|
+
// '?? pinned' fallbacks are type-level safety nets for hand-built sections.
|
|
56
|
+
const pinnedSections = allSections.filter(
|
|
57
|
+
/* v8 ignore next */
|
|
58
|
+
(section) => (section.behavior ?? 'pinned') === 'pinned');
|
|
59
|
+
const bodySections = allSections.filter(
|
|
60
|
+
/* v8 ignore next */
|
|
61
|
+
(section) => (section.behavior ?? 'pinned') !== 'pinned');
|
|
56
62
|
const minBodyRows = 3;
|
|
57
|
-
|
|
63
|
+
// Reaching this point requires a 'body' section (hasScrollableBody above),
|
|
64
|
+
// so bodySections is never empty here; the ':0' arms are unreachable.
|
|
65
|
+
const reservedBodyRows = minBodyRows + (bodySections.length > 0 ? 1 : /* v8 ignore next */ 0);
|
|
58
66
|
const maxPinnedHeight = Math.max(6, fixedModalHeight - reservedBodyRows);
|
|
59
67
|
const fittedPinned = (0, layout_1.fitModalSections)(pinnedSections, maxPinnedHeight, trimOrder);
|
|
60
68
|
const pinnedRowCount = (0, layout_1.getModalSectionRowCount)(fittedPinned);
|
|
61
|
-
const availableForBody = Math.max(minBodyRows, fixedModalHeight - 2 - pinnedRowCount - (bodySections.length > 0 ? 1 : 0));
|
|
69
|
+
const availableForBody = Math.max(minBodyRows, fixedModalHeight - 2 - pinnedRowCount - (bodySections.length > 0 ? 1 : /* v8 ignore next */ 0));
|
|
62
70
|
const bodyRows = [];
|
|
63
71
|
bodySections.forEach((section, index) => {
|
|
64
72
|
if (index > 0) {
|
|
@@ -91,11 +99,17 @@ function renderPackageInfoModal(state, terminalWidth = 80, terminalHeight = 24,
|
|
|
91
99
|
? clampedOffset < maxScroll
|
|
92
100
|
? chalk_1.default.gray(`Lines ${clampedOffset + 1}-${Math.min(clampedOffset + visibleBodyRows, totalScrollableRows)} of ${totalScrollableRows}`)
|
|
93
101
|
: chalk_1.default.gray('End of release notes')
|
|
94
|
-
:
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
102
|
+
: // A truthy hint footer shrinks visibleBodyRows, which forces
|
|
103
|
+
// maxScroll ≥ 1 whenever the scroll path is entered — so this arm can
|
|
104
|
+
// only resolve to the hints when maxScroll is 0, which cannot happen.
|
|
105
|
+
// Kept as a safety net for future layout changes.
|
|
106
|
+
/* v8 ignore start */
|
|
107
|
+
canGoNewer || canGoOlder
|
|
108
|
+
? chalk_1.default.gray([canGoNewer ? '← newer version' : null, canGoOlder ? '→ older version' : null]
|
|
109
|
+
.filter((hint) => Boolean(hint))
|
|
110
|
+
.join(' · '))
|
|
111
|
+
: null;
|
|
112
|
+
/* v8 ignore stop */
|
|
99
113
|
const visibleSlice = bodyRows.slice(clampedOffset, clampedOffset + visibleBodyRows);
|
|
100
114
|
const lines = [];
|
|
101
115
|
const topPadding = Math.max(0, Math.floor((terminalHeight - fixedModalHeight) / 2));
|
|
@@ -111,9 +125,9 @@ function renderPackageInfoModal(state, terminalWidth = 80, terminalHeight = 24,
|
|
|
111
125
|
lines.push((0, layout_1.renderModalRow)(padding, modalWidth, row));
|
|
112
126
|
}
|
|
113
127
|
});
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
128
|
+
// bodySections is never empty on the scroll path (see above), so a
|
|
129
|
+
// separator between the pinned rows and the body is always drawn.
|
|
130
|
+
lines.push((0, layout_1.renderModalSeparator)(padding, modalWidth));
|
|
117
131
|
let renderedScrollRows = 0;
|
|
118
132
|
for (const entry of visibleSlice) {
|
|
119
133
|
if (entry.row === '__SEPARATOR__') {
|
|
@@ -125,14 +139,18 @@ function renderPackageInfoModal(state, terminalWidth = 80, terminalHeight = 24,
|
|
|
125
139
|
renderedScrollRows++;
|
|
126
140
|
}
|
|
127
141
|
const usedContentRows = pinnedRowCount +
|
|
128
|
-
(bodySections.length > 0 ? 1 : 0) +
|
|
142
|
+
(bodySections.length > 0 ? 1 : /* v8 ignore next */ 0) +
|
|
129
143
|
renderedScrollRows +
|
|
130
144
|
(resolvedFooterStatus ? 1 : 0);
|
|
131
145
|
const totalContentSlots = fixedModalHeight - 2;
|
|
146
|
+
// The scroll path is only entered when content overflows the frame, so the
|
|
147
|
+
// window is always full and there are never filler rows to add.
|
|
148
|
+
/* v8 ignore start */
|
|
132
149
|
const emptyRows = Math.max(0, totalContentSlots - usedContentRows);
|
|
133
150
|
for (let i = 0; i < emptyRows; i++) {
|
|
134
151
|
lines.push((0, layout_1.renderModalRow)(padding, modalWidth, ''));
|
|
135
152
|
}
|
|
153
|
+
/* v8 ignore stop */
|
|
136
154
|
if (resolvedFooterStatus) {
|
|
137
155
|
lines.push((0, layout_1.renderModalRow)(padding, modalWidth, resolvedFooterStatus));
|
|
138
156
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getHealthBadge = getHealthBadge;
|
|
4
|
-
const
|
|
4
|
+
const engines_1 = require("../../../shared/engines");
|
|
5
5
|
const themes_colors_1 = require("../themes-colors");
|
|
6
6
|
/**
|
|
7
7
|
* A compact badge flagging a package's health in the list:
|
|
@@ -16,7 +16,7 @@ function getHealthBadge(state) {
|
|
|
16
16
|
if (state.deprecated) {
|
|
17
17
|
return (0, themes_colors_1.getThemeColor)('warning')('[DEPR]');
|
|
18
18
|
}
|
|
19
|
-
if ((0,
|
|
19
|
+
if ((0, engines_1.checkNodeEngineCompatibility)(state.enginesNode)) {
|
|
20
20
|
return (0, themes_colors_1.getThemeColor)('warning')('[ENG]');
|
|
21
21
|
}
|
|
22
22
|
return '';
|
|
@@ -73,5 +73,4 @@ exports.UIRenderer = UIRenderer;
|
|
|
73
73
|
// Re-export all functions for direct use if needed
|
|
74
74
|
__exportStar(require("./package-list"), exports);
|
|
75
75
|
__exportStar(require("./confirmation"), exports);
|
|
76
|
-
__exportStar(require("../modal"), exports);
|
|
77
76
|
//# sourceMappingURL=index.js.map
|
|
@@ -14,7 +14,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./
|
|
18
|
-
__exportStar(require("./
|
|
19
|
-
|
|
20
|
-
//# sourceMappingURL=types.js.map
|
|
17
|
+
__exportStar(require("./rows"), exports);
|
|
18
|
+
__exportStar(require("./interface"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|