@cyber-harbour/ui 1.0.74 → 1.0.75
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 +76 -0
- package/bin/switch-ui-lib.js +196 -0
- package/dist/index.js +90 -90
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +6 -6
- package/dist/index.mjs.map +1 -1
- package/package.json +12 -2
- package/.env.example +0 -0
- package/src/Core/Alert/Alert.tsx +0 -87
- package/src/Core/Alert/index.ts +0 -1
- package/src/Core/Box/Box.tsx +0 -46
- package/src/Core/Box/index.ts +0 -1
- package/src/Core/Button/Button.tsx +0 -208
- package/src/Core/Button/index.ts +0 -1
- package/src/Core/Checkbox/Checkbox.tsx +0 -73
- package/src/Core/Checkbox/index.ts +0 -1
- package/src/Core/ContentLoader/ContentLoader.tsx +0 -13
- package/src/Core/ContentLoader/index.ts +0 -1
- package/src/Core/ContextMenu/ContextMenu.tsx +0 -153
- package/src/Core/ContextMenu/ContextMenuDelimiter.tsx +0 -13
- package/src/Core/ContextMenu/index.ts +0 -3
- package/src/Core/ContextMenu/useContextMenuControl.ts +0 -21
- package/src/Core/Drawer/Drawer.tsx +0 -118
- package/src/Core/Drawer/index.ts +0 -1
- package/src/Core/EmptyData/EmptyData.tsx +0 -44
- package/src/Core/EmptyData/index.ts +0 -1
- package/src/Core/Flex/FlexContainer.tsx +0 -94
- package/src/Core/Flex/FlexItem.tsx +0 -58
- package/src/Core/Flex/index.ts +0 -4
- package/src/Core/Header/Header.tsx +0 -37
- package/src/Core/Header/HeaderDelimeter.tsx +0 -12
- package/src/Core/Header/HeaderSection.tsx +0 -37
- package/src/Core/Header/index.ts +0 -3
- package/src/Core/IconComponents/AlertIcon.tsx +0 -18
- package/src/Core/IconComponents/AndroidIcon.tsx +0 -28
- package/src/Core/IconComponents/ApiIcon.tsx +0 -26
- package/src/Core/IconComponents/ArrowCircleTopRightIcon.tsx +0 -27
- package/src/Core/IconComponents/ArrowRightIcon.tsx +0 -23
- package/src/Core/IconComponents/BallsMenu.tsx +0 -15
- package/src/Core/IconComponents/BugReportIcon.tsx +0 -16
- package/src/Core/IconComponents/BusIcon.tsx +0 -24
- package/src/Core/IconComponents/CalendarIcon.tsx +0 -26
- package/src/Core/IconComponents/CarIcon.tsx +0 -16
- package/src/Core/IconComponents/Check.tsx +0 -16
- package/src/Core/IconComponents/ChevronDown.tsx +0 -18
- package/src/Core/IconComponents/ChevronLeftIcon.tsx +0 -23
- package/src/Core/IconComponents/ChevronRightIcon.tsx +0 -23
- package/src/Core/IconComponents/ChevronUp.tsx +0 -18
- package/src/Core/IconComponents/CloseCircleIcon.tsx +0 -24
- package/src/Core/IconComponents/ClosedLockIcon.tsx +0 -22
- package/src/Core/IconComponents/Cross.tsx +0 -16
- package/src/Core/IconComponents/DataSetsIcon.tsx +0 -26
- package/src/Core/IconComponents/DeepSearchIcon.tsx +0 -16
- package/src/Core/IconComponents/DisabledVisibleIcon.tsx +0 -26
- package/src/Core/IconComponents/DocsIcon.tsx +0 -26
- package/src/Core/IconComponents/DownloadIcon.tsx +0 -26
- package/src/Core/IconComponents/EditUserIcon.tsx +0 -26
- package/src/Core/IconComponents/EnableVisibleIcon.tsx +0 -22
- package/src/Core/IconComponents/EnterArrowLeftIcon.tsx +0 -16
- package/src/Core/IconComponents/FileIcon.tsx +0 -16
- package/src/Core/IconComponents/FiltersIcon.tsx +0 -38
- package/src/Core/IconComponents/FlashIcon.tsx +0 -16
- package/src/Core/IconComponents/FolderAlertIcon.tsx +0 -32
- package/src/Core/IconComponents/FolderInfoIcon.tsx +0 -28
- package/src/Core/IconComponents/HomepageIcon.tsx +0 -16
- package/src/Core/IconComponents/InfoCircleFilled.tsx +0 -18
- package/src/Core/IconComponents/InfoCircleIcon.tsx +0 -23
- package/src/Core/IconComponents/IosIcon.tsx +0 -20
- package/src/Core/IconComponents/MapRadarIcon.tsx +0 -22
- package/src/Core/IconComponents/MaximizeIcon.tsx +0 -28
- package/src/Core/IconComponents/MicrosoftIcon.tsx +0 -28
- package/src/Core/IconComponents/MoonIcon.tsx +0 -16
- package/src/Core/IconComponents/OpenLockIcon.tsx +0 -30
- package/src/Core/IconComponents/OrganizationIcon.tsx +0 -26
- package/src/Core/IconComponents/PassportIcon.tsx +0 -796
- package/src/Core/IconComponents/PasswordFinderIcon.tsx +0 -22
- package/src/Core/IconComponents/PencilIcon.tsx +0 -16
- package/src/Core/IconComponents/PhonebookIcon.tsx +0 -22
- package/src/Core/IconComponents/PlaneIcon.tsx +0 -17
- package/src/Core/IconComponents/Plus.tsx +0 -20
- package/src/Core/IconComponents/PointIcon.tsx +0 -16
- package/src/Core/IconComponents/PrintIcon.tsx +0 -16
- package/src/Core/IconComponents/Profiler2Icon.tsx +0 -30
- package/src/Core/IconComponents/ProfilerIcon.tsx +0 -22
- package/src/Core/IconComponents/RelationIcon.tsx +0 -28
- package/src/Core/IconComponents/RelationPointsIcon.tsx +0 -36
- package/src/Core/IconComponents/RotateLeftIcon.tsx +0 -24
- package/src/Core/IconComponents/RotateRightIcon.tsx +0 -24
- package/src/Core/IconComponents/SandBoxIcon.tsx +0 -16
- package/src/Core/IconComponents/SearchIcon.tsx +0 -14
- package/src/Core/IconComponents/ShipIcon.tsx +0 -32
- package/src/Core/IconComponents/StatisticIcon.tsx +0 -26
- package/src/Core/IconComponents/SunIcon.tsx +0 -49
- package/src/Core/IconComponents/Unfold.tsx +0 -20
- package/src/Core/IconComponents/UpRightArrowCircleIcon.tsx +0 -22
- package/src/Core/IconComponents/UserInCircle.tsx +0 -24
- package/src/Core/IconComponents/Users.tsx +0 -36
- package/src/Core/IconComponents/VectorIcon.tsx +0 -17
- package/src/Core/IconComponents/WayIcon.tsx +0 -24
- package/src/Core/IconComponents/index.ts +0 -66
- package/src/Core/Input/Input.tsx +0 -245
- package/src/Core/Input/index.ts +0 -1
- package/src/Core/Label/Label.tsx +0 -139
- package/src/Core/Label/index.ts +0 -1
- package/src/Core/Line/Line.tsx +0 -26
- package/src/Core/Line/index.ts +0 -1
- package/src/Core/LinerProgress/LinerProgress.tsx +0 -47
- package/src/Core/LinerProgress/index.ts +0 -1
- package/src/Core/ListMenu/ListMenu.tsx +0 -31
- package/src/Core/ListMenu/ListMenuItem.tsx +0 -105
- package/src/Core/ListMenu/ListMenuSection.tsx +0 -54
- package/src/Core/ListMenu/index.ts +0 -3
- package/src/Core/Modal/Modal.tsx +0 -116
- package/src/Core/Modal/index.ts +0 -1
- package/src/Core/Overlay/Overlay.tsx +0 -94
- package/src/Core/Overlay/index.ts +0 -1
- package/src/Core/Pagination/Pagination.tsx +0 -139
- package/src/Core/Pagination/index.ts +0 -1
- package/src/Core/RowActionsMenu/RowActionsMenu.tsx +0 -153
- package/src/Core/RowActionsMenu/index.ts +0 -1
- package/src/Core/Select/Select.tsx +0 -197
- package/src/Core/Select/index.ts +0 -1
- package/src/Core/Sidebar/Sidebar.tsx +0 -80
- package/src/Core/Sidebar/SidebarContext.tsx +0 -13
- package/src/Core/Sidebar/SidebarDelimeter.tsx +0 -35
- package/src/Core/Sidebar/SidebarItem.tsx +0 -137
- package/src/Core/Sidebar/SidebarSection.tsx +0 -31
- package/src/Core/Sidebar/index.ts +0 -5
- package/src/Core/Switch/Switch.tsx +0 -71
- package/src/Core/Switch/index.ts +0 -1
- package/src/Core/Table/Cell.tsx +0 -42
- package/src/Core/Table/Row.tsx +0 -3
- package/src/Core/Table/Table.tsx +0 -94
- package/src/Core/Table/index.ts +0 -1
- package/src/Core/Tag/Tag.tsx +0 -144
- package/src/Core/Tag/index.ts +0 -1
- package/src/Core/Tooltip/Tooltip.tsx +0 -103
- package/src/Core/Tooltip/index.ts +0 -1
- package/src/Core/Typography/Typography.tsx +0 -70
- package/src/Core/Typography/index.ts +0 -1
- package/src/Core/index.ts +0 -27
- package/src/FullscreenCard/FullscreenCard.tsx +0 -56
- package/src/FullscreenCard/index.ts +0 -1
- package/src/Graph2D/Graph2D.tsx +0 -1837
- package/src/Graph2D/GraphLoader.tsx +0 -68
- package/src/Graph2D/icons/eye_light.png +0 -0
- package/src/Graph2D/icons/eye_light_hover.png +0 -0
- package/src/Graph2D/icons/group_light.png +0 -0
- package/src/Graph2D/icons/group_light_hover.png +0 -0
- package/src/Graph2D/index.ts +0 -2
- package/src/Graph2D/json_test.json +0 -44444
- package/src/Graph2D/types.ts +0 -122
- package/src/Layouts/Container/Container.tsx +0 -33
- package/src/Layouts/Container/index.ts +0 -1
- package/src/Layouts/PageLayout/PageLayout.tsx +0 -63
- package/src/Layouts/PageLayout/index.ts +0 -1
- package/src/Layouts/index.ts +0 -2
- package/src/Theme/Breakpoint.tsx +0 -50
- package/src/Theme/GlobalStyle.tsx +0 -18
- package/src/Theme/ThemeProvider.tsx +0 -30
- package/src/Theme/componentFabric.tsx +0 -159
- package/src/Theme/index.ts +0 -8
- package/src/Theme/styled.d.ts +0 -7
- package/src/Theme/themes/config.ts +0 -41
- package/src/Theme/themes/dark.ts +0 -1005
- package/src/Theme/themes/index.ts +0 -2
- package/src/Theme/themes/light.ts +0 -1004
- package/src/Theme/types.ts +0 -362
- package/src/Theme/useTheme.tsx +0 -7
- package/src/Theme/utils.ts +0 -205
- package/src/custom.d.ts +0 -19
- package/src/index.ts +0 -5
- package/src/utils.ts +0 -30
- package/tsconfig.paths.json +0 -5
- package/tsup.config.ts +0 -30
- package/tsup.dev.config.ts +0 -10
package/README.md
CHANGED
|
@@ -66,3 +66,79 @@ The project uses various optimizations for efficient building:
|
|
|
66
66
|
- Inline source maps for easier debugging
|
|
67
67
|
- No minification for faster builds
|
|
68
68
|
- No type generation for speed
|
|
69
|
+
|
|
70
|
+
## UI Library Switch Tool
|
|
71
|
+
|
|
72
|
+
Цей інструмент дозволяє легко перемикатися між локальною версією UI бібліотеки та версією з NPM.
|
|
73
|
+
|
|
74
|
+
### Використання
|
|
75
|
+
|
|
76
|
+
#### Варіант 1: Через npx (рекомендований)
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
npx @cyber-harbour/ui switch-ui-lib
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
#### Варіант 2: Через npm скрипт
|
|
83
|
+
|
|
84
|
+
Додайте скрипт в package.json вашого проекту:
|
|
85
|
+
|
|
86
|
+
```json
|
|
87
|
+
{
|
|
88
|
+
"scripts": {
|
|
89
|
+
"switch-ui": "npx @cyber-harbour/ui switch-ui-lib"
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
Потім запускайте:
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
npm run switch-ui
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### Налаштування
|
|
101
|
+
|
|
102
|
+
#### Змінні середовища
|
|
103
|
+
|
|
104
|
+
Створіть файл `.env` або `.env.local` в корені вашого проекту:
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
UI_LIBRARY_PATH=/path/to/your/ui-kit
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
Якщо змінна не встановлена, скрипт спробує знайти UI бібліотеку в папці `ui-kit` поруч з вашим проектом.
|
|
111
|
+
|
|
112
|
+
#### Структура проектів
|
|
113
|
+
|
|
114
|
+
Рекомендована структура:
|
|
115
|
+
|
|
116
|
+
```
|
|
117
|
+
projects/
|
|
118
|
+
├── ui-kit/ # UI бібліотека
|
|
119
|
+
├── my-app/ # Ваш проект
|
|
120
|
+
└── another-app/ # Інший проект
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
### Що робить скрипт
|
|
124
|
+
|
|
125
|
+
#### Локальна версія
|
|
126
|
+
|
|
127
|
+
- Видаляє NPM версію пакету
|
|
128
|
+
- Створює npm link для React та React DOM
|
|
129
|
+
- Створює глобальний link для UI бібліотеки
|
|
130
|
+
- Підключає локальну версію через npm link
|
|
131
|
+
|
|
132
|
+
#### NPM версія
|
|
133
|
+
|
|
134
|
+
- Видаляє всі npm links
|
|
135
|
+
- Встановлює останню версію з NPM
|
|
136
|
+
|
|
137
|
+
### Залежності
|
|
138
|
+
|
|
139
|
+
Скрипт потребує:
|
|
140
|
+
|
|
141
|
+
- `prompts` - для інтерактивного вибору
|
|
142
|
+
- `dotenv` - для читання змінних середовища (опційно)
|
|
143
|
+
|
|
144
|
+
Ці пакети автоматично встановлюються разом з UI бібліотекою.
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
const prompts = require('prompts');
|
|
4
|
+
const { execSync } = require('child_process');
|
|
5
|
+
const path = require('path');
|
|
6
|
+
const fs = require('fs');
|
|
7
|
+
|
|
8
|
+
// Load .env and .env.local files from current working directory
|
|
9
|
+
try {
|
|
10
|
+
require('dotenv').config({ path: path.join(process.cwd(), '.env') });
|
|
11
|
+
require('dotenv').config({ path: path.join(process.cwd(), '.env.local'), override: true });
|
|
12
|
+
} catch (error) {
|
|
13
|
+
// dotenv might not be available in the consuming project
|
|
14
|
+
console.log('💡 Для кращої роботи встановіть dotenv: npm install --save-dev dotenv');
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
const packageName = '@cyber-harbour/ui';
|
|
18
|
+
|
|
19
|
+
function findProjectRoot() {
|
|
20
|
+
let currentDir = process.cwd();
|
|
21
|
+
|
|
22
|
+
while (currentDir !== path.dirname(currentDir)) {
|
|
23
|
+
const packageJsonPath = path.join(currentDir, 'package.json');
|
|
24
|
+
if (fs.existsSync(packageJsonPath)) {
|
|
25
|
+
return currentDir;
|
|
26
|
+
}
|
|
27
|
+
currentDir = path.dirname(currentDir);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
return process.cwd();
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
function getLocalPath() {
|
|
34
|
+
// Спочатку перевіряємо змінну середовища
|
|
35
|
+
if (process.env.UI_LIBRARY_PATH) {
|
|
36
|
+
return process.env.UI_LIBRARY_PATH;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// Якщо змінної немає, пропонуємо стандартний шлях
|
|
40
|
+
const projectRoot = findProjectRoot();
|
|
41
|
+
const parentDir = path.dirname(projectRoot);
|
|
42
|
+
const defaultPath = path.join(parentDir, 'ui-kit');
|
|
43
|
+
|
|
44
|
+
return defaultPath;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
const projectRoot = findProjectRoot();
|
|
48
|
+
const localPath = getLocalPath();
|
|
49
|
+
const pkgPath = path.resolve(projectRoot, `node_modules/${packageName}/package.json`);
|
|
50
|
+
|
|
51
|
+
function isUsingLocalVersion() {
|
|
52
|
+
try {
|
|
53
|
+
const realPath = fs.realpathSync(pkgPath);
|
|
54
|
+
return realPath.startsWith(path.resolve(localPath));
|
|
55
|
+
} catch {
|
|
56
|
+
return false;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
function isUsingNpmVersion() {
|
|
61
|
+
try {
|
|
62
|
+
const realPath = fs.realpathSync(pkgPath);
|
|
63
|
+
return !realPath.includes('..') && realPath.includes('node_modules');
|
|
64
|
+
} catch {
|
|
65
|
+
return false;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
function checkLocalPathExists() {
|
|
70
|
+
if (!fs.existsSync(localPath)) {
|
|
71
|
+
console.log(`⚠️ Локальний шлях не знайдено: ${localPath}`);
|
|
72
|
+
console.log('💡 Встановіть змінну середовища UI_LIBRARY_PATH або перевірте шлях');
|
|
73
|
+
return false;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
const localPackageJson = path.join(localPath, 'package.json');
|
|
77
|
+
if (!fs.existsSync(localPackageJson)) {
|
|
78
|
+
console.log(`⚠️ package.json не знайдено в: ${localPath}`);
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
return true;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
async function main() {
|
|
86
|
+
console.log(`🏠 Проект: ${projectRoot}`);
|
|
87
|
+
console.log(`📦 Пакет: ${packageName}`);
|
|
88
|
+
console.log(`🔧 Локальний шлях: ${localPath}`);
|
|
89
|
+
console.log('');
|
|
90
|
+
|
|
91
|
+
const response = await prompts({
|
|
92
|
+
type: 'select',
|
|
93
|
+
name: 'mode',
|
|
94
|
+
message: 'Що підключити?',
|
|
95
|
+
choices: [
|
|
96
|
+
{ title: `Локальну бібліотеку (${localPath})`, value: 'local' },
|
|
97
|
+
{ title: 'Публічну версію з NPM', value: 'npm' },
|
|
98
|
+
],
|
|
99
|
+
});
|
|
100
|
+
|
|
101
|
+
const { mode } = response;
|
|
102
|
+
|
|
103
|
+
if (mode === 'local') {
|
|
104
|
+
if (!checkLocalPathExists()) {
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
if (isUsingLocalVersion()) {
|
|
109
|
+
console.log('✅ Вже підключено локально.');
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
try {
|
|
114
|
+
// Спочатку видаляємо існуючий пакет
|
|
115
|
+
console.log('🔄 Видаляємо існуючий пакет...');
|
|
116
|
+
try {
|
|
117
|
+
execSync(`npm uninstall ${packageName}`, { stdio: 'inherit', cwd: projectRoot });
|
|
118
|
+
} catch {
|
|
119
|
+
// Ігноруємо помилку якщо пакет не встановлений
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
// Копіюємо React і React DOM з основного проекту в UI бібліотеку
|
|
123
|
+
console.log('🔄 Копіюємо React в UI бібліотеку...');
|
|
124
|
+
try {
|
|
125
|
+
execSync('npm link react react-dom', {
|
|
126
|
+
stdio: 'inherit',
|
|
127
|
+
cwd: localPath,
|
|
128
|
+
});
|
|
129
|
+
} catch (error) {
|
|
130
|
+
console.log("⚠️ Не вдалося зв'язати React (це може бути нормально)");
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
// Створюємо глобальний лінк в локальній бібліотеці
|
|
134
|
+
console.log('🔄 Створюємо глобальний лінк...');
|
|
135
|
+
execSync('npm link', {
|
|
136
|
+
stdio: 'inherit',
|
|
137
|
+
cwd: localPath,
|
|
138
|
+
});
|
|
139
|
+
|
|
140
|
+
// Лінкуємо локальну бібліотеку до проекту
|
|
141
|
+
console.log('🔄 Підключаємо локальну версію...');
|
|
142
|
+
execSync(`npm link ${packageName}`, { stdio: 'inherit', cwd: projectRoot });
|
|
143
|
+
|
|
144
|
+
console.log('✅ Успішно підключено локальну версію через npm link.');
|
|
145
|
+
} catch (error) {
|
|
146
|
+
console.error('❌ Помилка при підключенні локальної версії:', error.message);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
if (mode === 'npm') {
|
|
151
|
+
if (isUsingNpmVersion()) {
|
|
152
|
+
console.log('✅ Вже використовується версія з NPM.');
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
try {
|
|
157
|
+
// Видаляємо лінк якщо він існує
|
|
158
|
+
console.log('🔄 Видаляємо лінки...');
|
|
159
|
+
try {
|
|
160
|
+
execSync(`npm unlink ${packageName}`, { stdio: 'inherit', cwd: projectRoot });
|
|
161
|
+
} catch {
|
|
162
|
+
// Ігноруємо помилку якщо лінк не існує
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
// Видаляємо лінк React з UI бібліотеки
|
|
166
|
+
if (checkLocalPathExists()) {
|
|
167
|
+
console.log('🔄 Видаляємо React лінки з UI бібліотеки...');
|
|
168
|
+
try {
|
|
169
|
+
execSync('npm unlink react react-dom', {
|
|
170
|
+
stdio: 'inherit',
|
|
171
|
+
cwd: localPath,
|
|
172
|
+
});
|
|
173
|
+
} catch {
|
|
174
|
+
// Ігноруємо помилку якщо лінк не існує
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
// Встановлюємо пакет з NPM
|
|
179
|
+
console.log('🔄 Встановлюємо версію з NPM...');
|
|
180
|
+
execSync(`npm install ${packageName}`, { stdio: 'inherit', cwd: projectRoot });
|
|
181
|
+
console.log('✅ Успішно підключено версію з NPM.');
|
|
182
|
+
} catch (error) {
|
|
183
|
+
console.error('❌ Помилка при підключенні версії з NPM:', error.message);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
// Перевіряємо чи prompts доступний
|
|
189
|
+
try {
|
|
190
|
+
require.resolve('prompts');
|
|
191
|
+
main().catch(console.error);
|
|
192
|
+
} catch (error) {
|
|
193
|
+
console.error('❌ Помилка: пакет "prompts" не знайдено.');
|
|
194
|
+
console.log('💡 Встановіть prompts: npm install --save-dev prompts');
|
|
195
|
+
process.exit(1);
|
|
196
|
+
}
|