inup 1.6.7 → 1.6.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -2
- package/dist/app/interactive-ui.js +17 -15
- package/dist/app/upgrade-runner.js +11 -16
- package/dist/cli.js +12 -13
- package/dist/features/audit/headless-audit.js +4 -11
- package/dist/features/audit/index.js +9 -9
- package/dist/features/audit/presenter.js +0 -2
- package/dist/features/audit/vulnerability-audit-controller.js +3 -3
- package/dist/features/audit/vulnerability-checker.js +1 -5
- package/dist/features/changelog/clients/github-client.js +9 -7
- package/dist/features/changelog/index.js +1 -1
- package/dist/features/changelog/services/package-metadata-service.js +1 -1
- package/dist/features/changelog/services/release-notes-service.js +3 -2
- package/dist/features/debug/index.js +2 -2
- package/dist/features/debug/perf-logger.js +14 -14
- package/dist/features/headless/headless-runner.js +22 -9
- package/dist/features/headless/index.js +1 -1
- package/dist/features/interactive/index.js +10 -10
- package/dist/features/interactive/input-handler.js +3 -3
- package/dist/features/interactive/modal/index.js +1 -1
- package/dist/features/interactive/modal/layout.js +3 -3
- package/dist/features/interactive/modal/package-info-sections/index.js +1 -1
- package/dist/features/interactive/modal/package-info-sections/release-notes.js +1 -1
- package/dist/features/interactive/modal/package-info-sections/sections.js +5 -5
- package/dist/features/interactive/modal/package-info-sections/text.js +1 -1
- package/dist/features/interactive/modal/package-info.js +15 -18
- package/dist/features/interactive/renderer/confirmation.js +6 -3
- package/dist/features/interactive/renderer/help-modal.js +3 -3
- package/dist/features/interactive/renderer/index.js +3 -3
- package/dist/features/interactive/renderer/package-list/index.js +1 -1
- package/dist/features/interactive/renderer/package-list/interface.js +9 -9
- package/dist/features/interactive/renderer/package-list/rows.js +8 -9
- package/dist/features/interactive/renderer/performance-modal.js +2 -2
- package/dist/features/interactive/renderer/version-format.js +4 -4
- package/dist/features/interactive/session/action-dispatcher.js +2 -2
- package/dist/features/interactive/session/index.js +4 -4
- package/dist/features/interactive/session/interactive-session.js +9 -8
- package/dist/features/interactive/session/selection-state-builder.js +5 -4
- package/dist/features/interactive/state/filter-manager.js +1 -1
- package/dist/features/interactive/state/index.js +7 -7
- package/dist/features/interactive/state/state-manager.js +4 -4
- package/dist/features/interactive/state/theme-manager.js +4 -6
- package/dist/features/interactive/themes-colors.js +4 -5
- package/dist/features/upgrade/package-detector.js +30 -12
- package/dist/features/upgrade/upgrader.js +28 -37
- package/dist/shared/config/project-config.js +10 -11
- package/dist/shared/config/user-config.js +8 -8
- package/dist/shared/debug-logger.js +9 -9
- package/dist/shared/exec.js +4 -4
- package/dist/shared/fs/index.js +1 -1
- package/dist/shared/fs/io.js +3 -4
- package/dist/shared/fs/paths.js +4 -4
- package/dist/shared/fs/scan.js +21 -21
- package/dist/shared/git.js +3 -3
- package/dist/shared/http/resizable-semaphore.js +3 -1
- package/dist/shared/local-env.js +7 -7
- package/dist/shared/package-manager.js +25 -24
- package/dist/shared/registry/npm-registry.js +12 -10
- package/dist/shared/registry/version-checker.js +1 -1
- package/dist/shared/terminal/cursor.js +1 -1
- package/dist/shared/terminal/index.js +5 -5
- package/dist/shared/terminal/terminal-input.js +6 -2
- package/dist/shared/terminal/text.js +1 -1
- package/dist/shared/types/index.js +1 -1
- package/dist/shared/versions.js +37 -33
- package/package.json +10 -6
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.StateManager = exports.selectionKey = exports.runInteractiveSession = exports.createUpgradeChoices = exports.createSelectionStates = exports.createPendingSelectionStates = exports.UIRenderer = exports.renderReadmeKeyTable = exports.InputHandler = exports.ConfirmationInputHandler = exports.PackageInfoModalController = void 0;
|
|
4
|
+
var controllers_1 = require("./controllers");
|
|
5
|
+
Object.defineProperty(exports, "PackageInfoModalController", { enumerable: true, get: function () { return controllers_1.PackageInfoModalController; } });
|
|
4
6
|
var input_handler_1 = require("./input-handler");
|
|
5
|
-
Object.defineProperty(exports, "InputHandler", { enumerable: true, get: function () { return input_handler_1.InputHandler; } });
|
|
6
7
|
Object.defineProperty(exports, "ConfirmationInputHandler", { enumerable: true, get: function () { return input_handler_1.ConfirmationInputHandler; } });
|
|
8
|
+
Object.defineProperty(exports, "InputHandler", { enumerable: true, get: function () { return input_handler_1.InputHandler; } });
|
|
9
|
+
var keymap_1 = require("./keymap");
|
|
10
|
+
Object.defineProperty(exports, "renderReadmeKeyTable", { enumerable: true, get: function () { return keymap_1.renderReadmeKeyTable; } });
|
|
7
11
|
var renderer_1 = require("./renderer");
|
|
8
12
|
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
13
|
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
14
|
Object.defineProperty(exports, "createPendingSelectionStates", { enumerable: true, get: function () { return session_1.createPendingSelectionStates; } });
|
|
15
|
+
Object.defineProperty(exports, "createSelectionStates", { enumerable: true, get: function () { return session_1.createSelectionStates; } });
|
|
15
16
|
Object.defineProperty(exports, "createUpgradeChoices", { enumerable: true, get: function () { return session_1.createUpgradeChoices; } });
|
|
17
|
+
Object.defineProperty(exports, "runInteractiveSession", { enumerable: true, get: function () { return session_1.runInteractiveSession; } });
|
|
16
18
|
Object.defineProperty(exports, "selectionKey", { enumerable: true, get: function () { return session_1.selectionKey; } });
|
|
17
|
-
var
|
|
18
|
-
Object.defineProperty(exports, "
|
|
19
|
-
var keymap_1 = require("./keymap");
|
|
20
|
-
Object.defineProperty(exports, "renderReadmeKeyTable", { enumerable: true, get: function () { return keymap_1.renderReadmeKeyTable; } });
|
|
19
|
+
var state_1 = require("./state");
|
|
20
|
+
Object.defineProperty(exports, "StateManager", { enumerable: true, get: function () { return state_1.StateManager; } });
|
|
21
21
|
//# sourceMappingURL=index.js.map
|
|
@@ -21,7 +21,7 @@ class InputHandler {
|
|
|
21
21
|
if (!key && !str) {
|
|
22
22
|
return;
|
|
23
23
|
}
|
|
24
|
-
if (key
|
|
24
|
+
if (key?.ctrl && key.name === 'c') {
|
|
25
25
|
this.onCancel();
|
|
26
26
|
process.exit(0);
|
|
27
27
|
}
|
|
@@ -201,7 +201,7 @@ class InputHandler {
|
|
|
201
201
|
}
|
|
202
202
|
// Normal mode (not in filter mode). Keys resolve through the keymap so that
|
|
203
203
|
// dispatch, the help overlay, the footer, and the README share one source.
|
|
204
|
-
if (!key
|
|
204
|
+
if (!key?.name) {
|
|
205
205
|
return;
|
|
206
206
|
}
|
|
207
207
|
// Enter confirms the selection (guarding against an empty selection). It runs
|
|
@@ -249,7 +249,7 @@ class ConfirmationInputHandler {
|
|
|
249
249
|
if (!key && !str) {
|
|
250
250
|
return;
|
|
251
251
|
}
|
|
252
|
-
if (key
|
|
252
|
+
if (key?.ctrl && key.name === 'c') {
|
|
253
253
|
// onConfirm runs the normal cleanup path (cursor show, raw-mode off, listener
|
|
254
254
|
// removal). The 'exit' listener registered by confirmUpgrade is a final backstop.
|
|
255
255
|
this.onConfirm(false);
|
|
@@ -14,9 +14,9 @@ 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"), exports);
|
|
18
17
|
__exportStar(require("./layout"), exports);
|
|
19
18
|
__exportStar(require("./package-info"), exports);
|
|
20
19
|
__exportStar(require("./package-info-sections"), exports);
|
|
21
20
|
__exportStar(require("./theme-selector"), exports);
|
|
21
|
+
__exportStar(require("./types"), exports);
|
|
22
22
|
//# sourceMappingURL=index.js.map
|
|
@@ -27,7 +27,7 @@ function renderModalRow(padding, modalWidth, text) {
|
|
|
27
27
|
chalk_1.default.gray('│'));
|
|
28
28
|
}
|
|
29
29
|
function renderModalSeparator(padding, modalWidth) {
|
|
30
|
-
return ' '.repeat(padding) + chalk_1.default.gray('
|
|
30
|
+
return ' '.repeat(padding) + chalk_1.default.gray(`├${'─'.repeat(modalWidth - 2)}┤`);
|
|
31
31
|
}
|
|
32
32
|
function fitModalSections(sections, maxHeight, trimOrder) {
|
|
33
33
|
const activeSections = sections.map((section) => ({ ...section, rows: [...section.rows] }));
|
|
@@ -69,7 +69,7 @@ function renderModalFrame(sections, options) {
|
|
|
69
69
|
for (let i = 0; i < topPadding; i++) {
|
|
70
70
|
lines.push('');
|
|
71
71
|
}
|
|
72
|
-
lines.push(' '.repeat(padding) + chalk_1.default.gray('
|
|
72
|
+
lines.push(' '.repeat(padding) + chalk_1.default.gray(`╭${'─'.repeat(modalWidth - 2)}╮`));
|
|
73
73
|
sections.forEach((section, index) => {
|
|
74
74
|
if (index > 0) {
|
|
75
75
|
lines.push(renderModalSeparator(padding, modalWidth));
|
|
@@ -78,7 +78,7 @@ function renderModalFrame(sections, options) {
|
|
|
78
78
|
lines.push(renderModalRow(padding, modalWidth, row));
|
|
79
79
|
});
|
|
80
80
|
});
|
|
81
|
-
lines.push(' '.repeat(padding) + chalk_1.default.gray('
|
|
81
|
+
lines.push(' '.repeat(padding) + chalk_1.default.gray(`╰${'─'.repeat(modalWidth - 2)}╯`));
|
|
82
82
|
return lines;
|
|
83
83
|
}
|
|
84
84
|
//# sourceMappingURL=layout.js.map
|
|
@@ -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("./sections"), exports);
|
|
18
17
|
__exportStar(require("./release-notes"), exports);
|
|
18
|
+
__exportStar(require("./sections"), exports);
|
|
19
19
|
//# sourceMappingURL=index.js.map
|
|
@@ -114,7 +114,7 @@ function buildReleaseNotesSections(state, modalWidth) {
|
|
|
114
114
|
});
|
|
115
115
|
return sections;
|
|
116
116
|
}
|
|
117
|
-
if (!loaded
|
|
117
|
+
if (!loaded?.has(currentVersion)) {
|
|
118
118
|
sections.push({
|
|
119
119
|
key: 'release-pending',
|
|
120
120
|
rows: [chalk_1.default.gray(`Press ←/→ to load release notes for v${currentVersion}`)],
|
|
@@ -7,18 +7,18 @@ exports.buildUsedBySections = buildUsedBySections;
|
|
|
7
7
|
exports.buildPackageInfoSections = buildPackageInfoSections;
|
|
8
8
|
const node_path_1 = __importDefault(require("node:path"));
|
|
9
9
|
const chalk_1 = __importDefault(require("chalk"));
|
|
10
|
-
const themes_colors_1 = require("../../themes-colors");
|
|
11
|
-
const audit_1 = require("../../../audit");
|
|
12
|
-
const terminal_1 = require("../../../../shared/terminal");
|
|
13
10
|
const engines_1 = require("../../../../shared/engines");
|
|
11
|
+
const terminal_1 = require("../../../../shared/terminal");
|
|
12
|
+
const audit_1 = require("../../../audit");
|
|
13
|
+
const themes_colors_1 = require("../../themes-colors");
|
|
14
14
|
const release_notes_1 = require("./release-notes");
|
|
15
15
|
function formatNumber(num) {
|
|
16
16
|
if (!num)
|
|
17
17
|
return 'N/A';
|
|
18
18
|
if (num >= 1000000)
|
|
19
|
-
return (num / 1000000).toFixed(1)
|
|
19
|
+
return `${(num / 1000000).toFixed(1)}M`;
|
|
20
20
|
if (num >= 1000)
|
|
21
|
-
return (num / 1000).toFixed(1)
|
|
21
|
+
return `${(num / 1000).toFixed(1)}K`;
|
|
22
22
|
return num.toString();
|
|
23
23
|
}
|
|
24
24
|
function getUsedByPaths(state) {
|
|
@@ -33,7 +33,7 @@ function linkifyContributorMentions(text) {
|
|
|
33
33
|
}
|
|
34
34
|
function linkifyRepositoryReferences(text, repositoryUrl) {
|
|
35
35
|
const repoBaseUrl = getRepositoryBaseUrl(repositoryUrl);
|
|
36
|
-
if (!repoBaseUrl
|
|
36
|
+
if (!repoBaseUrl?.includes('github.com')) {
|
|
37
37
|
return text;
|
|
38
38
|
}
|
|
39
39
|
return text
|
|
@@ -51,22 +51,20 @@ function renderPackageInfoModal(state, terminalWidth = 80, terminalHeight = 24,
|
|
|
51
51
|
}
|
|
52
52
|
const fixedModalHeight = maxHeight;
|
|
53
53
|
const padding = Math.floor((terminalWidth - modalWidth) / 2);
|
|
54
|
-
// Every section built by buildPackageInfoSections declares a behavior
|
|
55
|
-
// '
|
|
56
|
-
const pinnedSections = allSections.filter(
|
|
57
|
-
|
|
58
|
-
(section) => (section.behavior ?? 'pinned') === 'pinned');
|
|
59
|
-
const bodySections = allSections.filter(
|
|
60
|
-
/* v8 ignore next */
|
|
61
|
-
(section) => (section.behavior ?? 'pinned') !== 'pinned');
|
|
54
|
+
// Every section built by buildPackageInfoSections declares a behavior, so we
|
|
55
|
+
// partition directly: 'pinned' stays fixed, everything else scrolls.
|
|
56
|
+
const pinnedSections = allSections.filter((section) => section.behavior === 'pinned');
|
|
57
|
+
const bodySections = allSections.filter((section) => section.behavior !== 'pinned');
|
|
62
58
|
const minBodyRows = 3;
|
|
63
|
-
//
|
|
64
|
-
//
|
|
65
|
-
const reservedBodyRows = minBodyRows +
|
|
59
|
+
// hasScrollableBody guaranteed a 'body' section above, so bodySections is
|
|
60
|
+
// non-empty and always reserves its separator row.
|
|
61
|
+
const reservedBodyRows = minBodyRows + 1;
|
|
66
62
|
const maxPinnedHeight = Math.max(6, fixedModalHeight - reservedBodyRows);
|
|
67
63
|
const fittedPinned = (0, layout_1.fitModalSections)(pinnedSections, maxPinnedHeight, trimOrder);
|
|
68
64
|
const pinnedRowCount = (0, layout_1.getModalSectionRowCount)(fittedPinned);
|
|
69
|
-
|
|
65
|
+
// bodySections is non-empty here (see reservedBodyRows), so its separator
|
|
66
|
+
// row is always subtracted.
|
|
67
|
+
const availableForBody = Math.max(minBodyRows, fixedModalHeight - 2 - pinnedRowCount - 1);
|
|
70
68
|
const bodyRows = [];
|
|
71
69
|
bodySections.forEach((section, index) => {
|
|
72
70
|
if (index > 0) {
|
|
@@ -116,7 +114,7 @@ function renderPackageInfoModal(state, terminalWidth = 80, terminalHeight = 24,
|
|
|
116
114
|
for (let i = 0; i < topPadding; i++) {
|
|
117
115
|
lines.push('');
|
|
118
116
|
}
|
|
119
|
-
lines.push(' '.repeat(padding) + chalk_1.default.gray('
|
|
117
|
+
lines.push(' '.repeat(padding) + chalk_1.default.gray(`╭${'─'.repeat(modalWidth - 2)}╮`));
|
|
120
118
|
fittedPinned.forEach((section, sectionIndex) => {
|
|
121
119
|
if (sectionIndex > 0) {
|
|
122
120
|
lines.push((0, layout_1.renderModalSeparator)(padding, modalWidth));
|
|
@@ -138,10 +136,9 @@ function renderPackageInfoModal(state, terminalWidth = 80, terminalHeight = 24,
|
|
|
138
136
|
}
|
|
139
137
|
renderedScrollRows++;
|
|
140
138
|
}
|
|
141
|
-
const usedContentRows =
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
(resolvedFooterStatus ? 1 : 0);
|
|
139
|
+
const usedContentRows =
|
|
140
|
+
// bodySections is non-empty on this path, so its separator row always counts.
|
|
141
|
+
pinnedRowCount + 1 + renderedScrollRows + (resolvedFooterStatus ? 1 : 0);
|
|
145
142
|
const totalContentSlots = fixedModalHeight - 2;
|
|
146
143
|
// The scroll path is only entered when content overflows the frame, so the
|
|
147
144
|
// window is always full and there are never filler rows to add.
|
|
@@ -154,7 +151,7 @@ function renderPackageInfoModal(state, terminalWidth = 80, terminalHeight = 24,
|
|
|
154
151
|
if (resolvedFooterStatus) {
|
|
155
152
|
lines.push((0, layout_1.renderModalRow)(padding, modalWidth, resolvedFooterStatus));
|
|
156
153
|
}
|
|
157
|
-
lines.push(' '.repeat(padding) + chalk_1.default.gray('
|
|
154
|
+
lines.push(' '.repeat(padding) + chalk_1.default.gray(`╰${'─'.repeat(modalWidth - 2)}╯`));
|
|
158
155
|
return {
|
|
159
156
|
lines,
|
|
160
157
|
maxScrollOffset: maxScroll,
|
|
@@ -15,10 +15,13 @@ function renderConfirmation(choices) {
|
|
|
15
15
|
// Group choices by package name to show unique packages
|
|
16
16
|
const packagesByName = new Map();
|
|
17
17
|
choices.forEach((choice) => {
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
const group = packagesByName.get(choice.name);
|
|
19
|
+
if (group) {
|
|
20
|
+
group.push(choice);
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
packagesByName.set(choice.name, [choice]);
|
|
20
24
|
}
|
|
21
|
-
packagesByName.get(choice.name).push(choice);
|
|
22
25
|
});
|
|
23
26
|
let output = chalk_1.default.bold(`\n🚀 Ready to upgrade ${packagesByName.size} package(s):\n`);
|
|
24
27
|
packagesByName.forEach((packageChoices, packageName) => {
|
|
@@ -5,8 +5,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.renderHelpModal = renderHelpModal;
|
|
7
7
|
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
-
const modal_1 = require("../modal");
|
|
9
8
|
const keymap_1 = require("../keymap");
|
|
9
|
+
const modal_1 = require("../modal");
|
|
10
10
|
const themes_colors_1 = require("../themes-colors");
|
|
11
11
|
const KEY_COLUMN_WIDTH = 9;
|
|
12
12
|
/**
|
|
@@ -46,7 +46,7 @@ function renderHelpModal(terminalWidth, terminalHeight, scrollOffset = 0) {
|
|
|
46
46
|
const topPadding = Math.max(0, Math.floor((terminalHeight - fixedModalHeight) / 2));
|
|
47
47
|
for (let i = 0; i < topPadding; i++)
|
|
48
48
|
lines.push('');
|
|
49
|
-
lines.push(' '.repeat(padding) + chalk_1.default.gray('
|
|
49
|
+
lines.push(' '.repeat(padding) + chalk_1.default.gray(`╭${'─'.repeat(modalWidth - 2)}╮`));
|
|
50
50
|
for (const row of pinnedRows) {
|
|
51
51
|
lines.push((0, modal_1.renderModalRow)(padding, modalWidth, row));
|
|
52
52
|
}
|
|
@@ -64,7 +64,7 @@ function renderHelpModal(terminalWidth, terminalHeight, scrollOffset = 0) {
|
|
|
64
64
|
lines.push((0, modal_1.renderModalRow)(padding, modalWidth, ''));
|
|
65
65
|
if (footer)
|
|
66
66
|
lines.push((0, modal_1.renderModalRow)(padding, modalWidth, footer));
|
|
67
|
-
lines.push(' '.repeat(padding) + chalk_1.default.gray('
|
|
67
|
+
lines.push(' '.repeat(padding) + chalk_1.default.gray(`╰${'─'.repeat(modalWidth - 2)}╯`));
|
|
68
68
|
return {
|
|
69
69
|
lines,
|
|
70
70
|
maxScrollOffset: maxScroll,
|
|
@@ -37,9 +37,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
exports.UIRenderer = void 0;
|
|
40
|
-
const PackageList = __importStar(require("./package-list"));
|
|
41
|
-
const Confirmation = __importStar(require("./confirmation"));
|
|
42
40
|
const Modal = __importStar(require("../modal"));
|
|
41
|
+
const Confirmation = __importStar(require("./confirmation"));
|
|
42
|
+
const PackageList = __importStar(require("./package-list"));
|
|
43
43
|
/**
|
|
44
44
|
* Main UI renderer class that composes all rendering parts
|
|
45
45
|
*/
|
|
@@ -70,7 +70,7 @@ class UIRenderer {
|
|
|
70
70
|
}
|
|
71
71
|
}
|
|
72
72
|
exports.UIRenderer = UIRenderer;
|
|
73
|
+
__exportStar(require("./confirmation"), exports);
|
|
73
74
|
// Re-export all functions for direct use if needed
|
|
74
75
|
__exportStar(require("./package-list"), exports);
|
|
75
|
-
__exportStar(require("./confirmation"), exports);
|
|
76
76
|
//# sourceMappingURL=index.js.map
|
|
@@ -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("./rows"), exports);
|
|
18
17
|
__exportStar(require("./interface"), exports);
|
|
18
|
+
__exportStar(require("./rows"), exports);
|
|
19
19
|
//# sourceMappingURL=index.js.map
|
|
@@ -6,11 +6,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.renderInterface = renderInterface;
|
|
7
7
|
exports.renderPackagesTable = renderPackagesTable;
|
|
8
8
|
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
-
const version_format_1 = require("../version-format");
|
|
10
|
-
const themes_colors_1 = require("../../themes-colors");
|
|
11
9
|
const config_1 = require("../../../../shared/config");
|
|
12
|
-
const rows_1 = require("./rows");
|
|
13
10
|
const keymap_1 = require("../../keymap");
|
|
11
|
+
const themes_colors_1 = require("../../themes-colors");
|
|
12
|
+
const version_format_1 = require("../version-format");
|
|
13
|
+
const rows_1 = require("./rows");
|
|
14
14
|
function renderInterface(states, currentRow, scrollOffset, maxVisibleItems, _forceFullRender, renderableItems, activeFilterLabel, packageManager, filterMode, filterQuery, totalPackagesBeforeFilter, terminalWidth = 80, loadingProgress, auditProgress, options = {}, notice) {
|
|
15
15
|
const output = [];
|
|
16
16
|
if (packageManager) {
|
|
@@ -35,7 +35,7 @@ function renderInterface(states, currentRow, scrollOffset, maxVisibleItems, _for
|
|
|
35
35
|
output.push(fullHeaderLine + ' '.repeat(headerPadding));
|
|
36
36
|
}
|
|
37
37
|
else {
|
|
38
|
-
const headerLine =
|
|
38
|
+
const headerLine = ` ${chalk_1.default.bold.blue('🚀 ')}${(0, themes_colors_1.coloredInupLogo)()}`;
|
|
39
39
|
const fullHeaderLine = activeFilterLabel
|
|
40
40
|
? headerLine +
|
|
41
41
|
(0, themes_colors_1.getThemeColor)('textSecondary')(' - ') +
|
|
@@ -63,9 +63,9 @@ function renderInterface(states, currentRow, scrollOffset, maxVisibleItems, _for
|
|
|
63
63
|
}
|
|
64
64
|
else {
|
|
65
65
|
const hintLine = (0, keymap_1.getFooterHints)()
|
|
66
|
-
.map(({ keyLabel, label }) => chalk_1.default.bold.white(keyLabel
|
|
66
|
+
.map(({ keyLabel, label }) => chalk_1.default.bold.white(`${keyLabel} `) + (0, themes_colors_1.getThemeColor)('textSecondary')(label))
|
|
67
67
|
.join(' ');
|
|
68
|
-
output.push(
|
|
68
|
+
output.push(` ${hintLine}`);
|
|
69
69
|
}
|
|
70
70
|
const totalPackages = states.length;
|
|
71
71
|
const totalBeforeFilter = totalPackagesBeforeFilter || totalPackages;
|
|
@@ -107,7 +107,7 @@ function renderInterface(states, currentRow, scrollOffset, maxVisibleItems, _for
|
|
|
107
107
|
const matchCount = totalVisualItems > maxVisibleItems
|
|
108
108
|
? (0, themes_colors_1.getThemeColor)('textSecondary')(`Showing ${chalk_1.default.white(startItem)}-${chalk_1.default.white(endItem)} of ${chalk_1.default.white(totalPackages)} matches`)
|
|
109
109
|
: (0, themes_colors_1.getThemeColor)('textSecondary')(`Showing all ${chalk_1.default.white(totalPackages)} matches`);
|
|
110
|
-
statusLine = matchCount
|
|
110
|
+
statusLine = `${matchCount} ${chalk_1.default.bold.white('Esc ')}${chalk_1.default.gray('Clear filter')}`;
|
|
111
111
|
}
|
|
112
112
|
else {
|
|
113
113
|
if (totalVisualItems > maxVisibleItems) {
|
|
@@ -129,12 +129,12 @@ function renderInterface(states, currentRow, scrollOffset, maxVisibleItems, _for
|
|
|
129
129
|
const auditLabel = auditProgress.isRunning
|
|
130
130
|
? `Audit ${auditProgress.completed}/${auditProgress.total}`
|
|
131
131
|
: `Audit ${auditProgress.total}/${auditProgress.total}`;
|
|
132
|
-
statusLine +=
|
|
132
|
+
statusLine += ` ${(0, themes_colors_1.getThemeColor)('textSecondary')(auditLabel)}`;
|
|
133
133
|
}
|
|
134
134
|
// A one-shot notice (e.g. "nothing selected") replaces the status line for a
|
|
135
135
|
// single render so the layout height stays constant.
|
|
136
136
|
const statusContent = notice ? (0, themes_colors_1.getThemeColor)('warning')(notice) : statusLine;
|
|
137
|
-
const statusLineFull =
|
|
137
|
+
const statusLineFull = ` ${statusContent}`;
|
|
138
138
|
const statusPadding = Math.max(0, terminalWidth - version_format_1.VersionUtils.getVisualLength(statusLineFull));
|
|
139
139
|
output.push(statusLineFull + ' '.repeat(statusPadding));
|
|
140
140
|
output.push('');
|
|
@@ -8,10 +8,10 @@ exports.renderPackageLine = renderPackageLine;
|
|
|
8
8
|
exports.renderSectionHeader = renderSectionHeader;
|
|
9
9
|
exports.renderSpacer = renderSpacer;
|
|
10
10
|
const chalk_1 = __importDefault(require("chalk"));
|
|
11
|
-
const version_format_1 = require("../version-format");
|
|
12
|
-
const themes_colors_1 = require("../../themes-colors");
|
|
13
11
|
const audit_1 = require("../../../audit");
|
|
14
12
|
const health_1 = require("../../presenters/health");
|
|
13
|
+
const themes_colors_1 = require("../../themes-colors");
|
|
14
|
+
const version_format_1 = require("../version-format");
|
|
15
15
|
function padLineToWidth(line, terminalWidth) {
|
|
16
16
|
const padding = Math.max(0, terminalWidth - version_format_1.VersionUtils.getVisualLength(line));
|
|
17
17
|
return line + ' '.repeat(padding);
|
|
@@ -24,7 +24,6 @@ function getTypeBadge(type) {
|
|
|
24
24
|
return (0, themes_colors_1.getThemeColor)('textSecondary')('[P]');
|
|
25
25
|
case 'optionalDependencies':
|
|
26
26
|
return (0, themes_colors_1.getThemeColor)('textSecondary')('[O]');
|
|
27
|
-
case 'dependencies':
|
|
28
27
|
default:
|
|
29
28
|
return '';
|
|
30
29
|
}
|
|
@@ -44,10 +43,10 @@ function renderPackageLine(state, _index, isCurrentRow, terminalWidth = 80, opti
|
|
|
44
43
|
if (isCurrentRow) {
|
|
45
44
|
packageName =
|
|
46
45
|
chalk_1.default.bold((0, themes_colors_1.getThemeColor)('packageAuthor')(author)) +
|
|
47
|
-
(0, themes_colors_1.getThemeColor)('packageName')(
|
|
46
|
+
(0, themes_colors_1.getThemeColor)('packageName')(`/${packagePart}`);
|
|
48
47
|
}
|
|
49
48
|
else {
|
|
50
|
-
packageName = chalk_1.default.bold.white(author) + chalk_1.default.white(
|
|
49
|
+
packageName = chalk_1.default.bold.white(author) + chalk_1.default.white(`/${packagePart}`);
|
|
51
50
|
}
|
|
52
51
|
}
|
|
53
52
|
else {
|
|
@@ -145,7 +144,7 @@ function renderPackageLine(state, _index, isCurrentRow, terminalWidth = 80, opti
|
|
|
145
144
|
const currentPaddingText = shouldShowDashes(currentPadding)
|
|
146
145
|
? dashColor('-').repeat(currentPadding)
|
|
147
146
|
: ' '.repeat(currentPadding);
|
|
148
|
-
const currentWithPadding = currentSection
|
|
147
|
+
const currentWithPadding = `${currentSection} ${currentPaddingText}`;
|
|
149
148
|
let rangeSection = '';
|
|
150
149
|
if (isPending || isFailed || state.hasRangeUpdate) {
|
|
151
150
|
rangeSection = `${rangeDot} ${rangeVersionText}`;
|
|
@@ -154,7 +153,7 @@ function renderPackageLine(state, _index, isCurrentRow, terminalWidth = 80, opti
|
|
|
154
153
|
const rangePaddingText = shouldShowDashes(rangePadding)
|
|
155
154
|
? dashColor('-').repeat(rangePadding)
|
|
156
155
|
: ' '.repeat(rangePadding);
|
|
157
|
-
rangeSection +=
|
|
156
|
+
rangeSection += ` ${rangePaddingText}`;
|
|
158
157
|
}
|
|
159
158
|
else {
|
|
160
159
|
rangeSection = ' '.repeat(rangeColumnWidth);
|
|
@@ -167,7 +166,7 @@ function renderPackageLine(state, _index, isCurrentRow, terminalWidth = 80, opti
|
|
|
167
166
|
const latestPaddingText = shouldShowDashes(latestPadding)
|
|
168
167
|
? dashColor('-').repeat(latestPadding)
|
|
169
168
|
: ' '.repeat(latestPadding);
|
|
170
|
-
latestSection +=
|
|
169
|
+
latestSection += ` ${latestPaddingText}`;
|
|
171
170
|
}
|
|
172
171
|
else {
|
|
173
172
|
latestSection = ' '.repeat(latestColumnWidth);
|
|
@@ -176,7 +175,7 @@ function renderPackageLine(state, _index, isCurrentRow, terminalWidth = 80, opti
|
|
|
176
175
|
}
|
|
177
176
|
function renderSectionHeader(title, sectionType) {
|
|
178
177
|
const colorFn = sectionType === 'main' ? chalk_1.default.cyan : sectionType === 'peer' ? chalk_1.default.magenta : chalk_1.default.yellow;
|
|
179
|
-
return
|
|
178
|
+
return ` ${colorFn.bold(title)}`;
|
|
180
179
|
}
|
|
181
180
|
function renderSpacer() {
|
|
182
181
|
return '';
|
|
@@ -122,7 +122,7 @@ function renderPerformanceModal(snapshot, terminalWidth = 80, terminalHeight = 2
|
|
|
122
122
|
for (let i = 0; i < topPadding; i++) {
|
|
123
123
|
lines.push('');
|
|
124
124
|
}
|
|
125
|
-
lines.push(' '.repeat(padding) + chalk_1.default.gray('
|
|
125
|
+
lines.push(' '.repeat(padding) + chalk_1.default.gray(`╭${'─'.repeat(modalWidth - 2)}╮`));
|
|
126
126
|
for (const section of pinned) {
|
|
127
127
|
for (const row of section.rows) {
|
|
128
128
|
lines.push((0, modal_1.renderModalRow)(padding, modalWidth, row));
|
|
@@ -146,7 +146,7 @@ function renderPerformanceModal(snapshot, terminalWidth = 80, terminalHeight = 2
|
|
|
146
146
|
if (footer) {
|
|
147
147
|
lines.push((0, modal_1.renderModalRow)(padding, modalWidth, footer));
|
|
148
148
|
}
|
|
149
|
-
lines.push(' '.repeat(padding) + chalk_1.default.gray('
|
|
149
|
+
lines.push(' '.repeat(padding) + chalk_1.default.gray(`╰${'─'.repeat(modalWidth - 2)}╯`));
|
|
150
150
|
return {
|
|
151
151
|
lines,
|
|
152
152
|
maxScrollOffset: maxScroll,
|
|
@@ -3,13 +3,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.VersionUtils = exports.
|
|
6
|
+
exports.VersionUtils = exports.stripAnsi = exports.getVisualLength = exports.applyVersionPrefix = void 0;
|
|
7
7
|
exports.truncateMiddle = truncateMiddle;
|
|
8
8
|
exports.formatVersionDiff = formatVersionDiff;
|
|
9
9
|
const chalk_1 = __importDefault(require("chalk"));
|
|
10
10
|
const text_1 = require("../../../shared/terminal/text");
|
|
11
|
-
Object.defineProperty(exports, "stripAnsi", { enumerable: true, get: function () { return text_1.stripAnsi; } });
|
|
12
11
|
Object.defineProperty(exports, "getVisualLength", { enumerable: true, get: function () { return text_1.getVisualLength; } });
|
|
12
|
+
Object.defineProperty(exports, "stripAnsi", { enumerable: true, get: function () { return text_1.stripAnsi; } });
|
|
13
13
|
const versions_1 = require("../../../shared/versions");
|
|
14
14
|
Object.defineProperty(exports, "applyVersionPrefix", { enumerable: true, get: function () { return versions_1.applyVersionPrefix; } });
|
|
15
15
|
function truncateMiddle(str, maxLength) {
|
|
@@ -30,8 +30,8 @@ function formatVersionDiff(current, target, colorFn) {
|
|
|
30
30
|
if (current === target) {
|
|
31
31
|
return chalk_1.default.white(target);
|
|
32
32
|
}
|
|
33
|
-
const currentParts = current.split('.').map((part) => parseInt(part) || 0);
|
|
34
|
-
const targetParts = target.split('.').map((part) => parseInt(part) || 0);
|
|
33
|
+
const currentParts = current.split('.').map((part) => parseInt(part, 10) || 0);
|
|
34
|
+
const targetParts = target.split('.').map((part) => parseInt(part, 10) || 0);
|
|
35
35
|
let firstDiffSegment = -1;
|
|
36
36
|
const maxLength = Math.max(currentParts.length, targetParts.length);
|
|
37
37
|
for (let i = 0; i < maxLength; i++) {
|
|
@@ -96,7 +96,7 @@ function dispatchAction(action, ctx) {
|
|
|
96
96
|
renderInterface();
|
|
97
97
|
if (stateManager.getInfoModalSessionId() === modalSessionId &&
|
|
98
98
|
packageInfoModalController.getVersionCount(currentState) > 0) {
|
|
99
|
-
packageInfoModalController.loadVersionAtIndex(currentState, 0, () => {
|
|
99
|
+
void packageInfoModalController.loadVersionAtIndex(currentState, 0, () => {
|
|
100
100
|
if (!isResolved())
|
|
101
101
|
renderInterface();
|
|
102
102
|
});
|
|
@@ -158,7 +158,7 @@ function dispatchAction(action, ctx) {
|
|
|
158
158
|
if (newIndex >= 0) {
|
|
159
159
|
stateManager.resetInfoModalScroll();
|
|
160
160
|
if (!packageInfoModalController.isVersionLoaded(currentState, newIndex)) {
|
|
161
|
-
packageInfoModalController.loadVersionAtIndex(currentState, newIndex, () => {
|
|
161
|
+
void packageInfoModalController.loadVersionAtIndex(currentState, newIndex, () => {
|
|
162
162
|
if (!isResolved())
|
|
163
163
|
renderInterface();
|
|
164
164
|
});
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.selectionKey = exports.deduplicatePackages = exports.createUpgradeChoices = exports.createSelectionStates = exports.createPendingSelectionStates = exports.runInteractiveSession = exports.dispatchAction = void 0;
|
|
4
|
+
var action_dispatcher_1 = require("./action-dispatcher");
|
|
5
|
+
Object.defineProperty(exports, "dispatchAction", { enumerable: true, get: function () { return action_dispatcher_1.dispatchAction; } });
|
|
4
6
|
var interactive_session_1 = require("./interactive-session");
|
|
5
7
|
Object.defineProperty(exports, "runInteractiveSession", { enumerable: true, get: function () { return interactive_session_1.runInteractiveSession; } });
|
|
6
8
|
var selection_state_builder_1 = require("./selection-state-builder");
|
|
7
|
-
Object.defineProperty(exports, "createSelectionStates", { enumerable: true, get: function () { return selection_state_builder_1.createSelectionStates; } });
|
|
8
9
|
Object.defineProperty(exports, "createPendingSelectionStates", { enumerable: true, get: function () { return selection_state_builder_1.createPendingSelectionStates; } });
|
|
10
|
+
Object.defineProperty(exports, "createSelectionStates", { enumerable: true, get: function () { return selection_state_builder_1.createSelectionStates; } });
|
|
9
11
|
Object.defineProperty(exports, "createUpgradeChoices", { enumerable: true, get: function () { return selection_state_builder_1.createUpgradeChoices; } });
|
|
10
12
|
Object.defineProperty(exports, "deduplicatePackages", { enumerable: true, get: function () { return selection_state_builder_1.deduplicatePackages; } });
|
|
11
13
|
Object.defineProperty(exports, "selectionKey", { enumerable: true, get: function () { return selection_state_builder_1.selectionKey; } });
|
|
12
|
-
var action_dispatcher_1 = require("./action-dispatcher");
|
|
13
|
-
Object.defineProperty(exports, "dispatchAction", { enumerable: true, get: function () { return action_dispatcher_1.dispatchAction; } });
|
|
14
14
|
//# sourceMappingURL=index.js.map
|
|
@@ -5,15 +5,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.runInteractiveSession = runInteractiveSession;
|
|
7
7
|
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
-
const
|
|
9
|
-
const input_handler_1 = require("../input-handler");
|
|
8
|
+
const user_config_1 = require("../../../shared/config/user-config");
|
|
10
9
|
const terminal_1 = require("../../../shared/terminal");
|
|
11
10
|
const cursor_1 = require("../../../shared/terminal/cursor");
|
|
12
|
-
const themes_colors_1 = require("../themes-colors");
|
|
13
11
|
const debug_1 = require("../../debug");
|
|
14
|
-
const
|
|
12
|
+
const input_handler_1 = require("../input-handler");
|
|
15
13
|
const help_modal_1 = require("../renderer/help-modal");
|
|
16
|
-
const
|
|
14
|
+
const performance_modal_1 = require("../renderer/performance-modal");
|
|
15
|
+
const state_1 = require("../state");
|
|
16
|
+
const themes_colors_1 = require("../themes-colors");
|
|
17
17
|
const action_dispatcher_1 = require("./action-dispatcher");
|
|
18
18
|
function getTerminalHeight() {
|
|
19
19
|
if (process.stdout.isTTY && typeof process.stdout.rows === 'number' && process.stdout.rows > 0) {
|
|
@@ -52,6 +52,7 @@ async function runInteractiveSession(selectionStates, packageManager, renderer,
|
|
|
52
52
|
terminal_1.CursorUtils.exitAlternateScreen();
|
|
53
53
|
ownsAlternateScreen = false;
|
|
54
54
|
};
|
|
55
|
+
// biome-ignore lint/suspicious/noControlCharactersInRegex: matches ANSI escape sequences by design
|
|
55
56
|
const resetAnsiPattern = /\x1b\[(?:0|49)m/g;
|
|
56
57
|
const packageListRenderOptions = {
|
|
57
58
|
showPeerDependencyVulnerabilities: options.showPeerDependencyVulnerabilities,
|
|
@@ -69,9 +70,9 @@ async function runInteractiveSession(selectionStates, packageManager, renderer,
|
|
|
69
70
|
closeHelp: key('? / Esc ') + hint('Close'),
|
|
70
71
|
};
|
|
71
72
|
const buildModalHeaderLines = (shortcutLabel) => [
|
|
72
|
-
|
|
73
|
+
` ${chalk_1.default.bold('🚀 ')}${(0, themes_colors_1.coloredInupLogo)()}`,
|
|
73
74
|
'',
|
|
74
|
-
|
|
75
|
+
` ${shortcutLabel}`,
|
|
75
76
|
'',
|
|
76
77
|
];
|
|
77
78
|
const buildRemainingViewport = (terminalWidth, terminalHeight, usedLines) => {
|
|
@@ -287,7 +288,7 @@ async function runInteractiveSession(selectionStates, packageManager, renderer,
|
|
|
287
288
|
renderInterface();
|
|
288
289
|
});
|
|
289
290
|
}
|
|
290
|
-
catch
|
|
291
|
+
catch {
|
|
291
292
|
onRefreshViewReady?.(undefined);
|
|
292
293
|
process.off('exit', emergencyCleanup);
|
|
293
294
|
releaseInteractiveScreen();
|
|
@@ -53,15 +53,16 @@ function deduplicatePackages(packages) {
|
|
|
53
53
|
const uniquePackages = new Map();
|
|
54
54
|
for (const pkg of packages) {
|
|
55
55
|
const key = selectionKey(pkg.name, pkg.currentVersion, pkg.type, pkg.catalog);
|
|
56
|
-
|
|
56
|
+
const existing = uniquePackages.get(key);
|
|
57
|
+
if (existing) {
|
|
58
|
+
existing.packageJsonPaths.add(pkg.packageJsonPath);
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
57
61
|
uniquePackages.set(key, {
|
|
58
62
|
pkg,
|
|
59
63
|
packageJsonPaths: new Set([pkg.packageJsonPath]),
|
|
60
64
|
});
|
|
61
65
|
}
|
|
62
|
-
else {
|
|
63
|
-
uniquePackages.get(key).packageJsonPaths.add(pkg.packageJsonPath);
|
|
64
|
-
}
|
|
65
66
|
}
|
|
66
67
|
return new Map(Array.from(uniquePackages.entries()).sort(([, a], [, b]) => {
|
|
67
68
|
const aIsScoped = a.pkg.name.startsWith('@');
|
|
@@ -92,7 +92,7 @@ class FilterManager {
|
|
|
92
92
|
if (activeTypes.length === 0)
|
|
93
93
|
return 'None';
|
|
94
94
|
const label = activeTypes.join(', ');
|
|
95
|
-
return this.state.showOnlyVulnerable ? label
|
|
95
|
+
return this.state.showOnlyVulnerable ? `${label} (vulnerable only)` : label;
|
|
96
96
|
}
|
|
97
97
|
getFilteredStates(allStates, options = {}) {
|
|
98
98
|
let filtered = allStates;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
var state_manager_1 = require("./state-manager");
|
|
5
|
-
Object.defineProperty(exports, "StateManager", { enumerable: true, get: function () { return state_manager_1.StateManager; } });
|
|
6
|
-
var navigation_manager_1 = require("./navigation-manager");
|
|
7
|
-
Object.defineProperty(exports, "NavigationManager", { enumerable: true, get: function () { return navigation_manager_1.NavigationManager; } });
|
|
8
|
-
var modal_manager_1 = require("./modal-manager");
|
|
9
|
-
Object.defineProperty(exports, "ModalManager", { enumerable: true, get: function () { return modal_manager_1.ModalManager; } });
|
|
3
|
+
exports.StateManager = exports.NavigationManager = exports.ModalManager = exports.FilterManager = void 0;
|
|
10
4
|
var filter_manager_1 = require("./filter-manager");
|
|
11
5
|
Object.defineProperty(exports, "FilterManager", { enumerable: true, get: function () { return filter_manager_1.FilterManager; } });
|
|
6
|
+
var modal_manager_1 = require("./modal-manager");
|
|
7
|
+
Object.defineProperty(exports, "ModalManager", { enumerable: true, get: function () { return modal_manager_1.ModalManager; } });
|
|
8
|
+
var navigation_manager_1 = require("./navigation-manager");
|
|
9
|
+
Object.defineProperty(exports, "NavigationManager", { enumerable: true, get: function () { return navigation_manager_1.NavigationManager; } });
|
|
10
|
+
var state_manager_1 = require("./state-manager");
|
|
11
|
+
Object.defineProperty(exports, "StateManager", { enumerable: true, get: function () { return state_manager_1.StateManager; } });
|
|
12
12
|
//# sourceMappingURL=index.js.map
|