@unisphere/nx 1.10.0 → 1.12.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.
@@ -1 +1 @@
1
- {"version":3,"file":"add-package.d.ts","sourceRoot":"","sources":["../../../src/generators/add-package/add-package.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,IAAI,EAAiB,MAAM,YAAY,CAAC;AAE7E,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AA+GrD,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,yBAAyB,uBAyGnC;AAED,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"add-package.d.ts","sourceRoot":"","sources":["../../../src/generators/add-package/add-package.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,IAAI,EAA2B,MAAM,YAAY,CAAC;AAEvF,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAoJrD,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,yBAAyB,uBA6GnC;AAED,eAAe,mBAAmB,CAAC"}
@@ -5,6 +5,36 @@ const tslib_1 = require("tslib");
5
5
  const devkit_1 = require("@nx/devkit");
6
6
  const path = tslib_1.__importStar(require("path"));
7
7
  const utils_1 = require("../utils");
8
+ /**
9
+ * Resolves the @unisphere/runtime version from the workspace's root package.json
10
+ * Falls back to a default version if not found
11
+ */
12
+ function resolveUnisphereRuntimeVersion(tree) {
13
+ const defaultVersion = '^1.54.1';
14
+ try {
15
+ // Try to read the workspace root package.json
16
+ const packageJsonPath = 'package.json';
17
+ if (!tree.exists(packageJsonPath)) {
18
+ devkit_1.logger.warn(`Could not find package.json at workspace root. Using default @unisphere/runtime version: ${defaultVersion}`);
19
+ return defaultVersion;
20
+ }
21
+ const packageJson = (0, devkit_1.readJson)(tree, packageJsonPath);
22
+ // Check in dependencies
23
+ if (packageJson.dependencies?.['@unisphere/runtime']) {
24
+ return packageJson.dependencies['@unisphere/runtime'];
25
+ }
26
+ // Check in devDependencies
27
+ if (packageJson.devDependencies?.['@unisphere/runtime']) {
28
+ return packageJson.devDependencies['@unisphere/runtime'];
29
+ }
30
+ devkit_1.logger.warn(`@unisphere/runtime not found in workspace package.json. Using default version: ${defaultVersion}`);
31
+ return defaultVersion;
32
+ }
33
+ catch (error) {
34
+ devkit_1.logger.warn(`Error reading package.json: ${error}. Using default @unisphere/runtime version: ${defaultVersion}`);
35
+ return defaultVersion;
36
+ }
37
+ }
8
38
  function generateDemoComponent(tree, projectRoot, vars) {
9
39
  // path: packages/<pkg>/src/lib/panel-demo.tsx
10
40
  const targetPath = `${projectRoot}/src/lib/${vars['packageName__lowerDashCase']}-demo.tsx`;
@@ -121,6 +151,8 @@ async function addPackageGenerator(tree, options) {
121
151
  }
122
152
  const transformedPackageName = (0, devkit_1.names)(userInputPackageName);
123
153
  const githubUrl = `https://github.com/${companyName}/${experienceName}`;
154
+ // Resolve @unisphere/runtime version from workspace package.json
155
+ const unisphereRuntimeVersion = resolveUnisphereRuntimeVersion(tree);
124
156
  // Prepare template variables
125
157
  const templateVariables = {
126
158
  scope: options.scope,
@@ -128,6 +160,7 @@ async function addPackageGenerator(tree, options) {
128
160
  distributionChannel,
129
161
  githubUrl,
130
162
  companyName,
163
+ unisphereRuntimeVersion,
131
164
  ...(0, utils_1.createNameTransforms)(userInputPackageName, 'packageName'),
132
165
  ...(0, utils_1.createNameTransforms)(experienceName, 'experienceName'),
133
166
  ...(0, utils_1.createNameTransforms)(packageJsonName, 'packageJsonName'),
@@ -10,7 +10,7 @@
10
10
  },
11
11
  "types": "./index.esm.d.ts",
12
12
  "dependencies": {
13
- "@unisphere/runtime": "^1.54.1"
13
+ "@unisphere/runtime": "<%= unisphereRuntimeVersion %>"
14
14
  },
15
15
  "publishConfig": {
16
16
  <% if (distributionChannel === 'github') { %>
@@ -1 +1 @@
1
- {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../src/generators/unisphere-migrate/generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAuB,MAAM,YAAY,CAAC;AAIvD;;;;;;;;;;;GAWG;AACH,wBAA8B,sBAAsB,CAAC,IAAI,EAAE,IAAI,iBAiH9D"}
1
+ {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../src/generators/unisphere-migrate/generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAmC,MAAM,YAAY,CAAC;AAKnE;;;;;;;;;;;GAWG;AACH,wBAA8B,sBAAsB,CAAC,IAAI,EAAE,IAAI,iBA6K9D"}
@@ -4,6 +4,7 @@ exports.default = unisphereManualMigrate;
4
4
  const devkit_1 = require("@nx/devkit");
5
5
  const fs_1 = require("fs");
6
6
  const path_1 = require("path");
7
+ const child_process_1 = require("child_process");
7
8
  /**
8
9
  * Unisphere Migrate Generator
9
10
  *
@@ -77,9 +78,64 @@ async function unisphereManualMigrate(tree) {
77
78
  throw error;
78
79
  }
79
80
  }
80
- // Step 2: Format files
81
+ // Step 2: Apply package.json updates
82
+ if (packageUpdates?.packages && Object.keys(packageUpdates.packages).length > 0) {
83
+ devkit_1.logger.info('');
84
+ devkit_1.logger.info('='.repeat(70));
85
+ devkit_1.logger.info('📦 APPLYING PACKAGE UPDATES');
86
+ devkit_1.logger.info('='.repeat(70));
87
+ devkit_1.logger.info('');
88
+ // Resolve "latest" versions to actual version with ^
89
+ const resolvedVersions = {};
90
+ const packagesToResolve = Object.entries(packageUpdates.packages)
91
+ .filter(([, config]) => config.version === 'latest')
92
+ .map(([pkgName]) => pkgName);
93
+ if (packagesToResolve.length > 0) {
94
+ devkit_1.logger.info('🔍 Resolving "latest" versions...');
95
+ for (const pkgName of packagesToResolve) {
96
+ try {
97
+ const result = (0, child_process_1.execSync)(`npm view ${pkgName} version`, { encoding: 'utf-8' });
98
+ const latestVersion = result.trim();
99
+ resolvedVersions[pkgName] = `^${latestVersion}`;
100
+ devkit_1.logger.info(` • ${pkgName}: latest → ^${latestVersion}`);
101
+ }
102
+ catch (error) {
103
+ devkit_1.logger.warn(` ⚠️ Could not resolve latest version for ${pkgName}, keeping "latest"`);
104
+ resolvedVersions[pkgName] = 'latest';
105
+ }
106
+ }
107
+ devkit_1.logger.info('');
108
+ }
109
+ (0, devkit_1.updateJson)(tree, 'package.json', (json) => {
110
+ const deps = json.dependencies || {};
111
+ const devDeps = json.devDependencies || {};
112
+ Object.entries(packageUpdates.packages).forEach(([pkgName, config]) => {
113
+ // Use resolved version for "latest", otherwise use as-is
114
+ const version = resolvedVersions[pkgName] || config.version;
115
+ const alwaysAdd = config.alwaysAddToPackageJson !== false;
116
+ if (deps[pkgName]) {
117
+ deps[pkgName] = version;
118
+ devkit_1.logger.info(` ✅ Updated ${pkgName} to ${version} (dependencies)`);
119
+ }
120
+ else if (devDeps[pkgName]) {
121
+ devDeps[pkgName] = version;
122
+ devkit_1.logger.info(` ✅ Updated ${pkgName} to ${version} (devDependencies)`);
123
+ }
124
+ else if (alwaysAdd) {
125
+ deps[pkgName] = version;
126
+ devkit_1.logger.info(` ➕ Added ${pkgName}@${version} (dependencies)`);
127
+ }
128
+ });
129
+ return json;
130
+ });
131
+ devkit_1.logger.info('');
132
+ devkit_1.logger.info('✅ Package updates applied');
133
+ devkit_1.logger.info('⚠️ Run "npm install" to install updated packages');
134
+ devkit_1.logger.info('');
135
+ }
136
+ // Step 3: Format files
81
137
  await (0, devkit_1.formatFiles)(tree);
82
- // Step 3: Show final summary message
138
+ // Step 4: Show final summary message
83
139
  devkit_1.logger.info('');
84
140
  devkit_1.logger.info('='.repeat(70));
85
141
  devkit_1.logger.info('✅ ALL MIGRATIONS COMPLETED');
@@ -9,7 +9,10 @@ npx nx g @unisphere/nx:unisphere-migrate
9
9
  Or using the local path:
10
10
 
11
11
  ```bash
12
- npx nx g /path/to/unisphere-nx-workspace-plugin/packages/nx:unisphere-migrate
12
+ npx nx g {path}/unisphere-nx-workspace-plugin/packages/nx:unisphere-migrate
13
13
  ```
14
14
 
15
15
  This will run ALL migrations defined in migrations.json manually.
16
+
17
+
18
+ npx nx g /home/tokomeno/kaltura/unisphere/pl/unisphere-nx-workspace-plugin/packages/nx:unisphere-migrate
@@ -0,0 +1,92 @@
1
+ # Unisphere Nx Workspace Upgrade Guide
2
+
3
+ This guide walks you through upgrading your Unisphere workspace to the latest version with Nx 22, React 19, MUI v7, and Node.js 24.
4
+
5
+ ## Prerequisites
6
+
7
+ ### Upgrade to Nx 22 First
8
+
9
+ Before running Unisphere migrations, upgrade your workspace to Nx 22:
10
+
11
+ ```bash
12
+ npx nx migrate latest
13
+ npx nx migrate --run-migrations
14
+ npm install
15
+ ```
16
+
17
+ Verify the upgrade works:
18
+ ```bash
19
+ npm run check
20
+ ```
21
+
22
+ For detailed Nx upgrade instructions, see the [official Nx migration guide](https://nx.dev/recipes/tips-n-tricks/advanced-update).
23
+
24
+ ### Other Prerequisites
25
+
26
+ - Ensure you have Node.js 24.x installed (check with `nvm list` or install via `nvm install 24`)
27
+ - Ensure your workspace is committed to git before starting
28
+
29
+ ## Upgrade Steps
30
+
31
+ ### Step 1: Install latest @unisphere/nx
32
+
33
+ ```bash
34
+ npm i @unisphere/nx@latest
35
+ ```
36
+
37
+ ### Step 2: Run all migrations
38
+
39
+ This will upgrade MUI to v7, update configurations, fix dependencies, and apply all necessary changes:
40
+
41
+ ```bash
42
+ npx nx g @unisphere/nx:unisphere-migrate
43
+ ```
44
+
45
+ ### Step 3: Clean node_modules
46
+
47
+ ```bash
48
+ rm -rf node_modules
49
+ ```
50
+
51
+ ### Step 4: Verify Node.js 24 is installed
52
+
53
+ ```bash
54
+ node -v # Should show v24.x.x
55
+ ```
56
+
57
+ If not installed, run:
58
+ ```bash
59
+ nvm install 24
60
+ ```
61
+
62
+ ### Step 5: Switch to Node.js 24
63
+
64
+ ```bash
65
+ nvm use
66
+ ```
67
+
68
+ ### Step 6: Fresh install with Node.js 24
69
+
70
+ ```bash
71
+ npm i
72
+ ```
73
+
74
+ ### Step 7: Fix React-related issues (if any)
75
+
76
+ If you encounter React 19 compatibility issues, you may need to:
77
+ - Run `react-codemod` for automatic fixes
78
+ - Fix TypeScript type issues manually
79
+ - Update component patterns that changed in React 19
80
+
81
+ ### Step 8: Verify everything builds
82
+
83
+ ```bash
84
+ npm run check
85
+ ```
86
+
87
+ ## What Changed
88
+
89
+ - **React**: Upgraded to v19
90
+ - **MUI**: Upgraded to v7
91
+ - **Node.js**: Updated to v24
92
+ - **All @unisphere and @kaltura packages**: Updated to latest versions
@@ -57,14 +57,14 @@
57
57
  "1.9.0": {
58
58
  "version": "1.9.0",
59
59
  "cli": "nx",
60
- "postUpdateMessage": "\n🎉 Migration to @unisphere/nx 1.9.0 completed successfully!\n\n📋 Summary of changes:\n Upgraded to Nx 22\n • Upgraded MUI to v7\n • Updated Node.js to version 24 (.nvmrc)\n • Updated all @unisphere and @kaltura packages\n • Upgraded to React 19\n\n⚠️ Important next steps:\n 1. Install dependencies: npm install\n 2. Ensure you have Node.js 24.x installed (check with: node --version)\n 3. Review and test your application\n 4. Commit the changes\n\nFor more information, visit: https://github.com/your-org/unisphere\n",
60
+ "postUpdateMessage": "\n🎉 Migration to @unisphere/nx 1.9.0 completed successfully!\n\n📋 Summary of changes:\n • Upgraded MUI to v7\n • Updated Node.js to version 24 (.nvmrc)\n • Updated all @unisphere and @kaltura packages\n • Upgraded to React 19\n\n⚠️ Important next steps:\n 1. Ensure you have Node.js 24.x and run nvm use\n 2. Remove node_modules and Install dependencies: npm install\n 3. Review and test your application\n 4. Commit the changes\n",
61
61
  "packages": {
62
62
  "@mui/material": {
63
- "version": "^7.3.1",
63
+ "version": "^7.3.4",
64
64
  "alwaysAddToPackageJson": false
65
65
  },
66
66
  "@mui/icons-material": {
67
- "version": "^7.3.1",
67
+ "version": "^7.3.4",
68
68
  "alwaysAddToPackageJson": false
69
69
  },
70
70
  "@kaltura/ds-react-bits": {
@@ -128,7 +128,7 @@
128
128
  "alwaysAddToPackageJson": false
129
129
  },
130
130
  "@types/node": {
131
- "version": "^20.19.1",
131
+ "@types/node": "24.3.2",
132
132
  "alwaysAddToPackageJson": false
133
133
  },
134
134
  "@types/react": {
package/generators.json CHANGED
@@ -20,11 +20,6 @@
20
20
  "schema": "./dist/generators/add-visual/schema.json",
21
21
  "description": "add-visual generator"
22
22
  },
23
- "migrate-to-1-1-5": {
24
- "factory": "./dist/generators/migrate-to-1-1-5/migrate-to-1-1-5",
25
- "schema": "./dist/generators/migrate-to-1-1-5/schema.json",
26
- "description": "Migrates your project to @unisphere/nx v1.1.5 with package updates, WidgetName renaming, and React 19 preparation"
27
- },
28
23
  "unisphere-migrate": {
29
24
  "factory": "./dist/generators/unisphere-migrate/generator",
30
25
  "schema": "./dist/generators/unisphere-migrate/schema.json",
package/migrations.json CHANGED
@@ -57,14 +57,14 @@
57
57
  "1.9.0": {
58
58
  "version": "1.9.0",
59
59
  "cli": "nx",
60
- "postUpdateMessage": "\n🎉 Migration to @unisphere/nx 1.9.0 completed successfully!\n\n📋 Summary of changes:\n Upgraded to Nx 22\n • Upgraded MUI to v7\n • Updated Node.js to version 24 (.nvmrc)\n • Updated all @unisphere and @kaltura packages\n • Upgraded to React 19\n\n⚠️ Important next steps:\n 1. Install dependencies: npm install\n 2. Ensure you have Node.js 24.x installed (check with: node --version)\n 3. Review and test your application\n 4. Commit the changes\n\nFor more information, visit: https://github.com/your-org/unisphere\n",
60
+ "postUpdateMessage": "\n🎉 Migration to @unisphere/nx 1.9.0 completed successfully!\n\n📋 Summary of changes:\n • Upgraded MUI to v7\n • Updated Node.js to version 24 (.nvmrc)\n • Updated all @unisphere and @kaltura packages\n • Upgraded to React 19\n\n⚠️ Important next steps:\n 1. Ensure you have Node.js 24.x and run nvm use\n 2. Remove node_modules and Install dependencies: npm install\n 3. Review and test your application\n 4. Commit the changes\n",
61
61
  "packages": {
62
62
  "@mui/material": {
63
- "version": "^7.3.1",
63
+ "version": "^7.3.4",
64
64
  "alwaysAddToPackageJson": false
65
65
  },
66
66
  "@mui/icons-material": {
67
- "version": "^7.3.1",
67
+ "version": "^7.3.4",
68
68
  "alwaysAddToPackageJson": false
69
69
  },
70
70
  "@kaltura/ds-react-bits": {
@@ -128,7 +128,7 @@
128
128
  "alwaysAddToPackageJson": false
129
129
  },
130
130
  "@types/node": {
131
- "version": "^20.19.1",
131
+ "@types/node": "24.3.2",
132
132
  "alwaysAddToPackageJson": false
133
133
  },
134
134
  "@types/react": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unisphere/nx",
3
- "version": "1.10.0",
3
+ "version": "1.12.0",
4
4
  "private": false,
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",
@@ -1,3 +0,0 @@
1
- import { Tree } from '@nx/devkit';
2
- export default function migrateGenerator(tree: Tree): Promise<void>;
3
- //# sourceMappingURL=migrate-to-1-1-5.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"migrate-to-1-1-5.d.ts","sourceRoot":"","sources":["../../../src/generators/migrate-to-1-1-5/migrate-to-1-1-5.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAU,MAAM,YAAY,CAAC;AAiB1C,wBAA8B,gBAAgB,CAAC,IAAI,EAAE,IAAI,iBA4CxD"}
@@ -1,49 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = migrateGenerator;
4
- const tslib_1 = require("tslib");
5
- const devkit_1 = require("@nx/devkit");
6
- const update_packages_1 = tslib_1.__importDefault(require("./update-packages"));
7
- const rename_widgetname_to_widgetname_1 = tslib_1.__importDefault(require("../../migrations/update-1-1-5/rename-widgetname-to-widgetname"));
8
- const fix_playground_apps_1 = tslib_1.__importDefault(require("../../migrations/update-1-1-5/fix-playground-apps"));
9
- const sync_package_json_files_1 = tslib_1.__importDefault(require("../../migrations/update-1-1-5/sync-package-json-files"));
10
- const move_runtime_info_to_core_1 = tslib_1.__importDefault(require("../../migrations/update-1-1-5/move-runtime-info-to-core"));
11
- // import updateLanguagesMigration from '../../migrations/update-1-1-5/_update-languages';
12
- const update_npmrc_1 = tslib_1.__importDefault(require("../../migrations/update-1-1-5/update-npmrc"));
13
- const check_nx_version_1 = tslib_1.__importDefault(require("../../migrations/update-1-1-5/check-nx-version"));
14
- const update_nvmrc_1 = tslib_1.__importDefault(require("../../migrations/update-1-1-5/update-nvmrc"));
15
- const fix_dependency_versions_1 = tslib_1.__importDefault(require("../../migrations/update-1-1-5/fix-dependency-versions"));
16
- const update_github_workflow_1 = tslib_1.__importDefault(require("../../migrations/update-1-1-5/update-github-workflow"));
17
- async function migrateGenerator(tree) {
18
- try {
19
- (0, check_nx_version_1.default)(tree);
20
- await (0, update_packages_1.default)(tree);
21
- await (0, update_nvmrc_1.default)(tree);
22
- await (0, fix_dependency_versions_1.default)(tree);
23
- await (0, update_github_workflow_1.default)(tree);
24
- await (0, rename_widgetname_to_widgetname_1.default)(tree);
25
- await (0, fix_playground_apps_1.default)(tree);
26
- await (0, move_runtime_info_to_core_1.default)(tree);
27
- // await updateLanguagesMigration(tree);
28
- await (0, update_npmrc_1.default)(tree);
29
- await (0, sync_package_json_files_1.default)(tree);
30
- devkit_1.logger.info('');
31
- devkit_1.logger.warn('═══════════════════════════════════════════════════════════════');
32
- devkit_1.logger.warn('✅ Migrations completed!');
33
- devkit_1.logger.warn('═══════════════════════════════════════════════════════════════');
34
- devkit_1.logger.warn('');
35
- devkit_1.logger.warn('📋 Next steps:');
36
- devkit_1.logger.warn('1. Review the changes made to package.json files');
37
- devkit_1.logger.warn('2. Remove node_modules: rm -rf node_modules');
38
- devkit_1.logger.warn('3. Install dependencies: npm install');
39
- devkit_1.logger.warn('4. Update old react code manually or run the codemod:');
40
- devkit_1.logger.warn(' npx codemod@latest react/19/migration-recipe --target ./src');
41
- devkit_1.logger.warn('5. Run npm run check to see if there are any errors');
42
- devkit_1.logger.warn('');
43
- devkit_1.logger.warn('═══════════════════════════════════════════════════════════════');
44
- }
45
- catch (error) {
46
- devkit_1.logger.error(`❌ Migration failed: ${error?.message || 'Unknown error'}`);
47
- throw error;
48
- }
49
- }
@@ -1,9 +0,0 @@
1
- To run the migration locally
2
-
3
- `
4
- npx nx generate {path-to-repo}/unisphere-nx-workspace-plugin/packages/nx:migrate-to-1-1-5
5
- `
6
-
7
-
8
- npx nx generate /home/tokomeno/kaltura/unisphere/pl/unisphere-nx-workspace-plugin/packages/nx:migrate-to-1-1-5
9
-
@@ -1 +0,0 @@
1
- export interface MigrateTo115GeneratorSchema {}
@@ -1,10 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/schema",
3
- "cli": "nx",
4
- "$id": "migrate-to-1-1-5",
5
- "title": "Migrate to @unisphere/nx v1.1.5",
6
- "description": "Migrates your project to @unisphere/nx v1.1.5 with package updates, WidgetName renaming, and React 19 preparation",
7
- "type": "object",
8
- "properties": {},
9
- "additionalProperties": false
10
- }
@@ -1,3 +0,0 @@
1
- import { Tree } from '@nx/devkit';
2
- export default function updatePackages(tree: Tree): Promise<void>;
3
- //# sourceMappingURL=update-packages.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"update-packages.d.ts","sourceRoot":"","sources":["../../../src/generators/migrate-to-1-1-5/update-packages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,IAAI,EAAU,MAAM,YAAY,CAAC;AAqBvD,wBAA8B,cAAc,CAAC,IAAI,EAAE,IAAI,iBA2GtD"}
@@ -1,205 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = updatePackages;
4
- const devkit_1 = require("@nx/devkit");
5
- const child_process_1 = require("child_process");
6
- /**
7
- * Fetches the latest version of a package from npm registry
8
- */
9
- async function getLatestVersion(packageName) {
10
- try {
11
- const result = (0, child_process_1.execSync)(`npm view ${packageName} version`, {
12
- encoding: 'utf8',
13
- stdio: ['pipe', 'pipe', 'pipe'],
14
- });
15
- return result.trim();
16
- }
17
- catch (error) {
18
- devkit_1.logger.warn(`Failed to fetch latest version for ${packageName}, keeping 'latest'`);
19
- return 'latest';
20
- }
21
- }
22
- async function updatePackages(tree) {
23
- // Read the current package.json
24
- const packageJsonContent = tree.read('package.json', 'utf-8');
25
- if (!packageJsonContent) {
26
- devkit_1.logger.error('No package.json found');
27
- return;
28
- }
29
- const packageJson = JSON.parse(packageJsonContent);
30
- // Get the 1.1.5 package updates
31
- devkit_1.logger.info('Fetching latest versions from npm registry...');
32
- // Resolve all 'latest' versions to actual version numbers
33
- const resolvedPackageUpdates = { ...packageUpdates };
34
- for (const [packageName, config] of Object.entries(packageUpdates.packages)) {
35
- if (config.version === 'latest') {
36
- const latestVersion = await getLatestVersion(packageName);
37
- resolvedPackageUpdates.packages[packageName] = {
38
- ...config,
39
- version: `^${latestVersion}`, // Add ^ prefix to latest versions
40
- };
41
- }
42
- }
43
- devkit_1.logger.info('Updating packages based on migrations.json...');
44
- let hasChanges = false;
45
- // Process each package update
46
- for (const [packageName, updateConfig] of Object.entries(resolvedPackageUpdates.packages)) {
47
- const { version, alwaysAddToPackageJson, addToPackageJson } = updateConfig;
48
- // Check if package exists in any dependency type
49
- const existsInDependencies = packageJson.dependencies && packageJson.dependencies[packageName];
50
- const existsInDevDependencies = packageJson.devDependencies && packageJson.devDependencies[packageName];
51
- const existsInOptionalDependencies = packageJson.optionalDependencies &&
52
- packageJson.optionalDependencies[packageName];
53
- const existsInPeerDependencies = packageJson.peerDependencies && packageJson.peerDependencies[packageName];
54
- const packageExists = existsInDependencies ||
55
- existsInDevDependencies ||
56
- existsInOptionalDependencies ||
57
- existsInPeerDependencies;
58
- // If alwaysAddToPackageJson is false, only update if package already exists
59
- if (alwaysAddToPackageJson === false && !packageExists) {
60
- devkit_1.logger.info(`Skipping ${packageName} (not installed, alwaysAddToPackageJson: false)`);
61
- continue;
62
- }
63
- // Update existing packages in their current location
64
- if (existsInDependencies) {
65
- devkit_1.logger.info(`Updating ${packageName} to ${version} in dependencies`);
66
- packageJson.dependencies[packageName] = version;
67
- hasChanges = true;
68
- }
69
- else if (existsInDevDependencies) {
70
- devkit_1.logger.info(`Updating ${packageName} to ${version} in devDependencies`);
71
- packageJson.devDependencies[packageName] = version;
72
- hasChanges = true;
73
- }
74
- else if (existsInOptionalDependencies) {
75
- devkit_1.logger.info(`Updating ${packageName} to ${version} in optionalDependencies`);
76
- packageJson.optionalDependencies[packageName] = version;
77
- hasChanges = true;
78
- }
79
- else if (existsInPeerDependencies) {
80
- devkit_1.logger.info(`Updating ${packageName} to ${version} in peerDependencies`);
81
- packageJson.peerDependencies[packageName] = version;
82
- hasChanges = true;
83
- }
84
- else if (alwaysAddToPackageJson !== false && addToPackageJson) {
85
- // Add new package to specified location if alwaysAddToPackageJson is not false
86
- const targetDeps = addToPackageJson;
87
- if (!packageJson[targetDeps]) {
88
- packageJson[targetDeps] = {};
89
- }
90
- devkit_1.logger.info(`Adding ${packageName} to ${version} in ${targetDeps}`);
91
- packageJson[targetDeps][packageName] = version;
92
- hasChanges = true;
93
- }
94
- }
95
- if (hasChanges) {
96
- // Write the updated package.json
97
- tree.write('package.json', JSON.stringify(packageJson, null, 2) + '\n');
98
- devkit_1.logger.info('✅ Package.json updated successfully!');
99
- devkit_1.logger.info('');
100
- devkit_1.logger.info('📦 Updated packages based on migrations.json packageJsonUpdates->1.1.5');
101
- devkit_1.logger.info('');
102
- devkit_1.logger.info('🔄 Run "npm install" to install the updated packages');
103
- }
104
- else {
105
- devkit_1.logger.info('No packages needed to be updated');
106
- }
107
- await (0, devkit_1.formatFiles)(tree);
108
- }
109
- var packageUpdates = {
110
- packages: {
111
- '@kaltura/ds-react-bits': {
112
- version: 'latest',
113
- alwaysAddToPackageJson: false,
114
- },
115
- '@kaltura/ds-react-icons': {
116
- version: 'latest',
117
- alwaysAddToPackageJson: false,
118
- },
119
- '@kaltura/ds-react-theme': {
120
- version: 'latest',
121
- alwaysAddToPackageJson: false,
122
- },
123
- '@kaltura/ds-react-utils': {
124
- version: 'latest',
125
- alwaysAddToPackageJson: false,
126
- },
127
- '@unisphere/cli': {
128
- version: 'latest',
129
- alwaysAddToPackageJson: false,
130
- },
131
- '@unisphere/core': {
132
- version: 'latest',
133
- alwaysAddToPackageJson: false,
134
- },
135
- '@unisphere/notifications-core': {
136
- version: 'latest',
137
- alwaysAddToPackageJson: false,
138
- },
139
- '@unisphere/notifications-runtime-react': {
140
- version: 'latest',
141
- alwaysAddToPackageJson: false,
142
- },
143
- '@unisphere/nx': {
144
- version: 'latest',
145
- alwaysAddToPackageJson: false,
146
- },
147
- '@unisphere/runtime': {
148
- version: 'latest',
149
- alwaysAddToPackageJson: false,
150
- },
151
- '@unisphere/runtime-js': {
152
- version: 'latest',
153
- alwaysAddToPackageJson: false,
154
- },
155
- '@unisphere/runtime-react': {
156
- version: 'latest',
157
- alwaysAddToPackageJson: false,
158
- },
159
- '@unisphere/ui-i18n-react': {
160
- version: 'latest',
161
- alwaysAddToPackageJson: false,
162
- },
163
- react: {
164
- version: '^19.0.0',
165
- alwaysAddToPackageJson: false,
166
- },
167
- 'react-dom': {
168
- version: '^19.0.0',
169
- alwaysAddToPackageJson: false,
170
- },
171
- '@types/node': {
172
- version: '^20.19.1',
173
- alwaysAddToPackageJson: false,
174
- },
175
- '@types/react': {
176
- version: '^19.0.0',
177
- alwaysAddToPackageJson: false,
178
- },
179
- '@types/react-dom': {
180
- version: '^19.0.0',
181
- alwaysAddToPackageJson: false,
182
- },
183
- '@swc/helpers': {
184
- version: '~0.5.17',
185
- alwaysAddToPackageJson: false,
186
- },
187
- 'react-codemod': {
188
- version: '^5.4.4',
189
- alwaysAddToPackageJson: false,
190
- },
191
- '@nx/nx-linux-x64-gnu': {
192
- version: '22.0.1',
193
- addToPackageJson: 'optionalDependencies',
194
- alwaysAddToPackageJson: false,
195
- },
196
- '@emotion/react': {
197
- version: '11.14.0',
198
- alwaysAddToPackageJson: false,
199
- },
200
- '@emotion/styled': {
201
- version: '11.14.1',
202
- alwaysAddToPackageJson: false,
203
- },
204
- },
205
- };