visualifyjs 2.5.3-2.dev → 3.0.0
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/.claude/mem/TIMELINE.md +36 -0
- package/.claude/mem/notes/2026-02-11-3d-visualization-docs-fix-external-script-solution.md +24 -0
- package/.claude/mem/notes/2026-02-11-3d-visualization-docs-fix-session-summary.md +43 -0
- package/.claude/mem/notes/2026-02-11-cli-fix-editor-command-alias.md +26 -0
- package/.claude/mem/notes/2026-02-11-phase-3-developer-experience-completed.md +51 -0
- package/.claude/mem/notes/2026-02-11-phase-4-web-workers-implementation-complete.md +59 -0
- package/.claude/mem/notes/2026-02-11-visualify-phase-2-3d-visualization-complete.md +50 -0
- package/.claude/mem/notes/2026-02-11-visualify-phase-2-committed-ready-for-phase-3.md +33 -0
- package/.claude/mem/notes/2026-02-11-visualify-phase-3-complete-developer-experience.md +52 -0
- package/.claude/mem/notes/2026-02-11-visualify-repository-cleanup-complete.md +28 -0
- package/.claude/mem/notes/2026-02-18-codebase-cleanup-docsify-plugin-documentation.md +37 -0
- package/.claude/mem/notes/2026-02-19-css-grid-layout-fix-displaycontents-on-vcontroller.md +18 -0
- package/.claude/mem/notes/2026-02-19-docsify-plugin-fixes-latex-and-visualify-code-bloc.md +26 -0
- package/.claude/mem/notes/2026-02-19-page-mode-docs-update-decisions.md +23 -0
- package/.claude/mem/notes/2026-02-19-react-context-infinite-re-render-loop-fix-pattern.md +31 -0
- package/.claude/mem/notes/2026-02-19-version-300-bump-and-build-fixes.md +32 -0
- package/.claude/mem/notes/2026-02-19-visualify-build-deployment-architecture-bug-fixes.md +25 -0
- package/.claude/mem/notes/2026-02-19-visualify-dist-iife-self-contained-build-config.md +30 -0
- package/.claude/mem/notes/2026-02-19-visualify-infinite-loop-i18n-fixes.md +31 -0
- package/.claude/mem/notes/2026-02-19-visualify-v3-bundle-splitting-docs-restructuring.md +32 -0
- package/.claude/mem/notes/2026-02-20-bundle-externalization-final-architecture.md +29 -0
- package/.claude/mem/notes/2026-02-20-chromium-page-fix-unstable-keys-and-double-event-b.md +27 -0
- package/.claude/mem/notes/2026-02-20-console-cleanup-bundle-optimization-commit.md +20 -0
- package/.claude/mem/notes/2026-02-20-dotbio-dot-plot-fix-useeffect-dependency.md +21 -0
- package/.claude/mem/notes/2026-02-20-public-folder-cleanup-and-readme-rewrite.md +25 -0
- package/.claude/mem/notes/2026-02-20-v300-release-and-beta-channel-strategy.md +29 -0
- package/.claude/mem/notes/2026-02-20-visium-background-image-unknown-legend-fix.md +19 -0
- package/.claude/mem/notes/2026-02-20-visualify-cdn-loader-bundle-externalization.md +34 -0
- package/.claude/mem/sessions/session-2026-02-20-031524.md +54 -0
- package/.claude/settings.local.json +21 -0
- package/.github/workflows/static.yml.bak +51 -51
- package/.sisyphus/boulder.json +65 -0
- package/.sisyphus/plans/phase-4-advanced-optimizations.md +217 -0
- package/LICENSE +674 -674
- package/README.md +94 -59
- package/config-overrides.js +31 -31
- package/dist/stats.html +4949 -0
- package/dist/visualify-3d.esm.js +1 -0
- package/dist/visualify-3d.js +1 -0
- package/dist/visualify-core.esm.js +1 -0
- package/dist/visualify-core.js +1 -0
- package/dist/visualify-docs.esm.js +1 -0
- package/dist/visualify-docs.js +1 -0
- package/dist/visualify-loader.js +1 -0
- package/dist/visualify-pages.esm.js +1 -0
- package/dist/visualify-pages.js +1 -0
- package/dist/visualify-portal.esm.js +1 -0
- package/dist/visualify-portal.js +1 -0
- package/dist/visualify-shared.js +26571 -0
- package/dist/visualify.js +1 -188
- package/docs/CHANGELOG.md +148 -0
- package/docs/cli/commands.md +513 -0
- package/docs/configuration/visualify-json.md +474 -0
- package/docs/docs/3d-visualization.md +374 -0
- package/docs/docs/CLI.md +303 -34
- package/docs/docs/README.md +65 -65
- package/docs/docs/Rechart/bar.md +190 -190
- package/docs/docs/Rechart/funnel.md +241 -241
- package/docs/docs/Rechart/line.md +355 -355
- package/docs/docs/Rechart/pie.md +225 -225
- package/docs/docs/Rechart/radar.md +253 -253
- package/docs/docs/Rechart/scatter.md +298 -298
- package/docs/docs/_404.md +51 -51
- package/docs/docs/_coverpage.md +11 -11
- package/docs/docs/_sidebar.md +54 -44
- package/docs/docs/components/dotBio.md +87 -34
- package/docs/docs/components/echart.md +171 -82
- package/docs/docs/components/html.md +61 -34
- package/docs/docs/components/macaron.md +156 -145
- package/docs/docs/components/markdown.md +42 -0
- package/docs/docs/components/more.md +183 -142
- package/docs/docs/components/plotly.md +132 -62
- package/docs/docs/components/scatterL.md +171 -70
- package/docs/docs/components/visium.md +112 -57
- package/docs/docs/configuration.md +121 -121
- package/docs/docs/deploy.md +31 -31
- package/docs/docs/docsify-plugin.md +655 -0
- package/docs/docs/hmr.md +165 -0
- package/docs/docs/i18n.md +332 -0
- package/docs/docs/log.md +30 -9
- package/docs/docs/more-pages.md +23 -23
- package/docs/docs/quickstart.md +148 -124
- package/docs/docs/rechart-attributes.md +74 -74
- package/docs/docs/rechart-basic-usage.md +160 -162
- package/docs/docs/theme.md +5 -5
- package/docs/docs/typescript.md +306 -0
- package/docs/docs/visual-editor.md +359 -0
- package/docs/index.html +85 -71
- package/docs/manifest.json +23 -23
- package/docs/migration/v3-migration.md +392 -0
- package/docs/static/css/fluff-stuff.css +169 -169
- package/docs/static/css/font-awesome.min.css +4 -4
- package/docs/static/css/visualify.css +6 -25
- package/docs/static/js/3d-viz-examples.js +181 -0
- package/docs/static/js/configuration.js +630 -448
- package/docs/static/js/visualify.js +1 -188
- package/package.json +106 -84
- package/rollup.config.mjs +766 -76
- package/src/_css/404.css +115 -115
- package/src/_css/App.css +37 -37
- package/src/_css/autoSuggestion.css +26 -26
- package/src/_css/circular-progress.css +32 -32
- package/src/_css/index.css +36 -36
- package/src/_css/modern.css +350 -25
- package/src/_media/corner.svg +8 -8
- package/src/_media/download.svg +3 -3
- package/src/_media/logo.svg +14 -14
- package/src/_test/App.test.js +15 -15
- package/src/_utils/reportWebVitals.js +13 -13
- package/src/a11y/README.md +177 -0
- package/src/a11y/aria-labels.js +339 -0
- package/src/a11y/color-contrast.js +535 -0
- package/src/a11y/index.js +197 -0
- package/src/a11y/keyboard-nav.js +523 -0
- package/src/a11y/styles.css +165 -0
- package/src/cli/commands/dev.js +214 -0
- package/src/cli/commands/docs.js +521 -0
- package/src/cli/commands/edit.js +379 -0
- package/src/cli/commands/init.js +213 -0
- package/src/cli/commands/portal.js +236 -0
- package/src/cli/dev-server.js +530 -0
- package/src/cli/hmr.js +456 -0
- package/src/cli/index.js +180 -0
- package/src/cli/utils/config.js +207 -0
- package/src/cli/utils/logger.js +241 -0
- package/src/config/defaults.ts +122 -0
- package/src/config/index.ts +72 -0
- package/src/config/loader.ts +478 -0
- package/src/config/schema.ts +227 -0
- package/src/config/validator.ts +337 -0
- package/src/core/appContext.js +34 -27
- package/src/core/components/Bar.js +383 -0
- package/src/core/components/Bar3D.js +473 -0
- package/src/core/components/LargeDatasetChart.js +296 -0
- package/src/core/components/Line3D.js +310 -0
- package/src/core/components/Scatter.js +392 -188
- package/src/core/components/Scatter3D.js +455 -0
- package/src/core/components/ScatterBio.js +601 -572
- package/src/core/components/Surface3D.js +326 -0
- package/src/core/components/ThreeCustom.js +648 -0
- package/src/core/components/ThreeScene.js +459 -0
- package/src/core/components/VisiumPlot.js +191 -165
- package/src/core/components/browser.js +42 -42
- package/src/core/components/dotplot.js +413 -413
- package/src/core/components/html.js +29 -29
- package/src/core/components/list.js +178 -178
- package/src/core/components/macaron.js +206 -201
- package/src/core/components/markdown.js +56 -56
- package/src/core/components/parser.scatterBio.js +582 -587
- package/src/core/components/ratio.js +82 -80
- package/src/core/components/scatterL.js +206 -173
- package/src/core/components/searchbar.js +156 -131
- package/src/core/components/selection.js +310 -193
- package/src/core/components/timeline.js +236 -281
- package/src/core/components/visium.js +114 -97
- package/src/core/data-processor.js +413 -0
- package/src/core/fetch/condfetch.js +82 -82
- package/src/core/fetch/fetch.js +92 -92
- package/src/core/fetch/json.js +29 -29
- package/src/core/fetch/vfetch.js +42 -42
- package/src/core/hmr-client.js +724 -0
- package/src/core/liveEditor.js +44 -44
- package/src/core/modules/codeEditorWithPreview.js +104 -104
- package/src/core/modules/echarts/common.js +20 -20
- package/src/core/modules/echarts/gl.js +228 -0
- package/src/core/modules/echarts/presetHandler.js +41 -41
- package/src/core/modules/echarts/presets/esodev.chromium.js +172 -172
- package/src/core/modules/echarts/presets/esodev.codex.js +130 -130
- package/src/core/modules/echarts/presets/esodev.visium.js +123 -123
- package/src/core/modules/echarts/presets/mmtrbc.js +186 -186
- package/src/core/modules/echarts.js +70 -71
- package/src/core/modules/echartsUtils.js +43 -43
- package/src/core/modules/echartswitcher.js +227 -152
- package/src/core/modules/replotly/presetHandler.js +24 -24
- package/src/core/modules/replotly/presets/minimum.js +18 -18
- package/src/core/modules/replotly/presets/mmtrbc.dot.js +114 -114
- package/src/core/modules/replotly/presets/mmtrbc.violin.js +100 -100
- package/src/core/modules/replotly.js +74 -71
- package/src/core/modules/threejs/Camera.js +373 -0
- package/src/core/modules/threejs/Lighting.js +459 -0
- package/src/core/modules/threejs/Renderer.js +364 -0
- package/src/core/modules/threejs/Scene.js +266 -0
- package/src/core/modules/threejs/index.js +155 -0
- package/src/core/pages/404.js +50 -50
- package/src/core/pages/error.js +27 -27
- package/src/core/pages/jsonPage.js +62 -62
- package/src/core/pages/loading.js +44 -44
- package/src/core/parser/echart.data.js +204 -183
- package/src/core/parser/echart.features.js +125 -125
- package/src/core/parser/echart.general.js +147 -147
- package/src/core/parser/echart.hilbert.js +57 -57
- package/src/core/parser/echart.parser.js +210 -210
- package/src/core/parser/echart.series.js +67 -67
- package/src/core/parser/echart.types.js +76 -76
- package/src/core/parser/plotly.config.js +10 -10
- package/src/core/parser/plotly.data.js +132 -132
- package/src/core/parser/plotly.layout.js +9 -9
- package/src/core/parser/plotly.violin.js +18 -18
- package/src/core/recharts.js +361 -62
- package/src/core/router/alias.js +49 -49
- package/src/core/router/jsonRouter.js +31 -31
- package/src/core/themes/modern.js +32 -32
- package/src/core/themes/themeSelector.js +33 -33
- package/src/core/visualify.js +213 -47
- package/src/core/widgets/circularProgress.js +23 -23
- package/src/core/widgets/controller.js +116 -83
- package/src/core/widgets/errorBoundary.js +36 -36
- package/src/core/widgets/footer.js +185 -177
- package/src/core/widgets/header.js +238 -234
- package/src/core/widgets/layout/Grid.js +31 -31
- package/src/core/widgets/layout.js +36 -36
- package/src/core/widgets/mapping.js +56 -42
- package/src/core/workers/data-worker.js +349 -0
- package/src/core/workers/worker-pool.js +396 -0
- package/src/docsify/bundle.js +215 -0
- package/src/docsify/markdown.js +271 -0
- package/src/docsify/plugin.js +268 -0
- package/src/editor/README.md +172 -0
- package/src/editor/components/ChartBuilder.jsx +341 -0
- package/src/editor/components/ChartTypeSidebar.jsx +91 -0
- package/src/editor/components/Editor.jsx +367 -0
- package/src/editor/components/Preview.jsx +446 -0
- package/src/editor/components/PropertyPanel.jsx +468 -0
- package/src/editor/components/StatusBar.jsx +85 -0
- package/src/editor/context/EditorContext.js +248 -0
- package/src/editor/hooks/useDebounce.js +32 -0
- package/src/editor/index.js +315 -0
- package/src/editor/styles/editor.css +637 -0
- package/src/editor/utils/chartValidator.js +263 -0
- package/src/entries/charts3d.js +70 -0
- package/src/entries/core.js +78 -0
- package/src/entries/docs.js +154 -0
- package/src/entries/pages.js +93 -0
- package/src/entries/portal.js +204 -0
- package/src/entries/shared.js +50 -0
- package/src/i18n/formatters.js +455 -0
- package/src/i18n/index.js +169 -0
- package/src/i18n/locales/ar.json +137 -0
- package/src/i18n/locales/de.json +137 -0
- package/src/i18n/locales/en.json +137 -0
- package/src/i18n/locales/es.json +137 -0
- package/src/i18n/locales/he.json +137 -0
- package/src/i18n/locales/zh.json +137 -0
- package/src/i18n/rtl.css +183 -0
- package/src/index.js +82 -62
- package/src/loader.js +103 -0
- package/src/setupTests.js +5 -5
- package/tsconfig.json +51 -0
- package/types/charts.d.ts +569 -0
- package/types/components.d.ts +441 -0
- package/types/config.d.ts +199 -0
- package/types/index.d.ts +353 -0
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Portal commands for Visualify CLI
|
|
3
|
+
* @module cli/commands/portal
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
const { Command } = require('commander');
|
|
7
|
+
const logger = require('../utils/logger');
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Valid portal actions
|
|
11
|
+
* @readonly
|
|
12
|
+
* @type {string[]}
|
|
13
|
+
*/
|
|
14
|
+
const VALID_ACTIONS = ['dev', 'build', 'rtree2d', 'mapping'];
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Legacy commands preserved for backward compatibility
|
|
18
|
+
* @readonly
|
|
19
|
+
* @type {string[]}
|
|
20
|
+
*/
|
|
21
|
+
const LEGACY_COMMANDS = ['rtree2d', 'mapping'];
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Execute the portal dev command
|
|
25
|
+
* @param {Object} options - Command options
|
|
26
|
+
* @param {boolean} options.verbose - Enable verbose logging
|
|
27
|
+
* @returns {Promise<void>}
|
|
28
|
+
*/
|
|
29
|
+
async function executePortalDev(options) {
|
|
30
|
+
try {
|
|
31
|
+
if (options.verbose) {
|
|
32
|
+
logger.enableVerbose();
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
logger.debug('Starting portal dev server');
|
|
36
|
+
logger.debug('Options:', options);
|
|
37
|
+
|
|
38
|
+
logger.header('Portal Development Server');
|
|
39
|
+
logger.info('Starting portal development server...');
|
|
40
|
+
|
|
41
|
+
// TODO: Implement actual portal dev server
|
|
42
|
+
const port = options.port || 8080;
|
|
43
|
+
logger.info(`Server will run on port ${port}`);
|
|
44
|
+
|
|
45
|
+
logger.success('Portal dev server started (stub)');
|
|
46
|
+
logger.tip('Press Ctrl+C to stop the server');
|
|
47
|
+
} catch (err) {
|
|
48
|
+
logger.error('Failed to start portal dev server:', err.message);
|
|
49
|
+
logger.debug('Stack trace:', err.stack);
|
|
50
|
+
process.exit(1);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Execute the portal build command
|
|
56
|
+
* @param {Object} options - Command options
|
|
57
|
+
* @param {boolean} options.verbose - Enable verbose logging
|
|
58
|
+
* @param {string} [options.output] - Output directory
|
|
59
|
+
* @returns {Promise<void>}
|
|
60
|
+
*/
|
|
61
|
+
async function executePortalBuild(options) {
|
|
62
|
+
try {
|
|
63
|
+
if (options.verbose) {
|
|
64
|
+
logger.enableVerbose();
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
logger.debug('Building portal');
|
|
68
|
+
logger.debug('Options:', options);
|
|
69
|
+
|
|
70
|
+
logger.header('Portal Build');
|
|
71
|
+
logger.info('Building portal for production...');
|
|
72
|
+
|
|
73
|
+
// TODO: Implement actual portal build
|
|
74
|
+
const outputDir = options.output || './dist/portal';
|
|
75
|
+
logger.info(`Output directory: ${outputDir}`);
|
|
76
|
+
|
|
77
|
+
logger.success('Portal built successfully (stub)');
|
|
78
|
+
logger.example(`npx serve ${outputDir}`, 'Serve the built portal');
|
|
79
|
+
} catch (err) {
|
|
80
|
+
logger.error('Failed to build portal:', err.message);
|
|
81
|
+
logger.debug('Stack trace:', err.stack);
|
|
82
|
+
process.exit(1);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Execute the legacy rtree2d command
|
|
88
|
+
* @param {Object} options - Command options
|
|
89
|
+
* @param {boolean} options.verbose - Enable verbose logging
|
|
90
|
+
* @returns {Promise<void>}
|
|
91
|
+
*/
|
|
92
|
+
async function executeRtree2d(options) {
|
|
93
|
+
try {
|
|
94
|
+
if (options.verbose) {
|
|
95
|
+
logger.enableVerbose();
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
logger.debug('Executing rtree2d command');
|
|
99
|
+
logger.debug('Options:', options);
|
|
100
|
+
|
|
101
|
+
logger.header('RTree2D (Legacy Command)');
|
|
102
|
+
logger.warn('This is a legacy command preserved for backward compatibility');
|
|
103
|
+
logger.info('Processing 2D R-tree visualization...');
|
|
104
|
+
|
|
105
|
+
// TODO: Implement actual rtree2d functionality
|
|
106
|
+
logger.success('RTree2D processing complete (stub)');
|
|
107
|
+
} catch (err) {
|
|
108
|
+
logger.error('Failed to execute rtree2d:', err.message);
|
|
109
|
+
logger.debug('Stack trace:', err.stack);
|
|
110
|
+
process.exit(1);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Execute the legacy mapping command
|
|
116
|
+
* @param {Object} options - Command options
|
|
117
|
+
* @param {boolean} options.verbose - Enable verbose logging
|
|
118
|
+
* @returns {Promise<void>}
|
|
119
|
+
*/
|
|
120
|
+
async function executeMapping(options) {
|
|
121
|
+
try {
|
|
122
|
+
if (options.verbose) {
|
|
123
|
+
logger.enableVerbose();
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
logger.debug('Executing mapping command');
|
|
127
|
+
logger.debug('Options:', options);
|
|
128
|
+
|
|
129
|
+
logger.header('Mapping (Legacy Command)');
|
|
130
|
+
logger.warn('This is a legacy command preserved for backward compatibility');
|
|
131
|
+
logger.info('Processing mapping visualization...');
|
|
132
|
+
|
|
133
|
+
// TODO: Implement actual mapping functionality
|
|
134
|
+
logger.success('Mapping processing complete (stub)');
|
|
135
|
+
} catch (err) {
|
|
136
|
+
logger.error('Failed to execute mapping:', err.message);
|
|
137
|
+
logger.debug('Stack trace:', err.stack);
|
|
138
|
+
process.exit(1);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* Execute the portal command with a subcommand
|
|
144
|
+
* @param {string} action - The action to perform
|
|
145
|
+
* @param {Object} options - Command options
|
|
146
|
+
* @returns {Promise<void>}
|
|
147
|
+
*/
|
|
148
|
+
async function executePortal(action, options) {
|
|
149
|
+
if (!VALID_ACTIONS.includes(action)) {
|
|
150
|
+
logger.error(`Invalid action: "${action}"`);
|
|
151
|
+
logger.tip(`Valid actions are: ${VALID_ACTIONS.join(', ')}`);
|
|
152
|
+
process.exit(1);
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
if (LEGACY_COMMANDS.includes(action)) {
|
|
156
|
+
logger.warn(`"${action}" is a legacy command`);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
switch (action) {
|
|
160
|
+
case 'dev':
|
|
161
|
+
await executePortalDev(options);
|
|
162
|
+
break;
|
|
163
|
+
case 'build':
|
|
164
|
+
await executePortalBuild(options);
|
|
165
|
+
break;
|
|
166
|
+
case 'rtree2d':
|
|
167
|
+
await executeRtree2d(options);
|
|
168
|
+
break;
|
|
169
|
+
case 'mapping':
|
|
170
|
+
await executeMapping(options);
|
|
171
|
+
break;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
/**
|
|
176
|
+
* Create and configure the portal command
|
|
177
|
+
* @returns {Command} The configured command
|
|
178
|
+
*/
|
|
179
|
+
function createPortalCommand() {
|
|
180
|
+
const command = new Command('portal')
|
|
181
|
+
.description('Portal management commands')
|
|
182
|
+
.addHelpText(
|
|
183
|
+
'after',
|
|
184
|
+
`
|
|
185
|
+
Examples:
|
|
186
|
+
$ visualify portal dev Start the portal dev server
|
|
187
|
+
$ visualify portal build Build portal for production
|
|
188
|
+
$ visualify portal rtree2d Run 2D R-tree visualization (legacy)
|
|
189
|
+
$ visualify portal mapping Run mapping visualization (legacy)
|
|
190
|
+
|
|
191
|
+
Legacy Commands:
|
|
192
|
+
rtree2d, mapping Preserved for backward compatibility
|
|
193
|
+
`
|
|
194
|
+
);
|
|
195
|
+
|
|
196
|
+
// Add subcommands
|
|
197
|
+
command
|
|
198
|
+
.command('dev')
|
|
199
|
+
.description('Start the portal development server')
|
|
200
|
+
.option('-v, --verbose', 'Enable verbose logging')
|
|
201
|
+
.option('-p, --port <number>', 'Port to run the server on', '8080')
|
|
202
|
+
.action(executePortalDev);
|
|
203
|
+
|
|
204
|
+
command
|
|
205
|
+
.command('build')
|
|
206
|
+
.description('Build portal for production')
|
|
207
|
+
.option('-v, --verbose', 'Enable verbose logging')
|
|
208
|
+
.option('-o, --output <dir>', 'Output directory for built files')
|
|
209
|
+
.action(executePortalBuild);
|
|
210
|
+
|
|
211
|
+
// Legacy commands
|
|
212
|
+
command
|
|
213
|
+
.command('rtree2d')
|
|
214
|
+
.description('2D R-tree visualization (legacy command)')
|
|
215
|
+
.option('-v, --verbose', 'Enable verbose logging')
|
|
216
|
+
.action(executeRtree2d);
|
|
217
|
+
|
|
218
|
+
command
|
|
219
|
+
.command('mapping')
|
|
220
|
+
.description('Mapping visualization (legacy command)')
|
|
221
|
+
.option('-v, --verbose', 'Enable verbose logging')
|
|
222
|
+
.action(executeMapping);
|
|
223
|
+
|
|
224
|
+
return command;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
module.exports = {
|
|
228
|
+
createPortalCommand,
|
|
229
|
+
executePortal,
|
|
230
|
+
executePortalDev,
|
|
231
|
+
executePortalBuild,
|
|
232
|
+
executeRtree2d,
|
|
233
|
+
executeMapping,
|
|
234
|
+
VALID_ACTIONS,
|
|
235
|
+
LEGACY_COMMANDS,
|
|
236
|
+
};
|