@unisphere/nx 1.20.0 → 1.21.2

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-application.d.ts","sourceRoot":"","sources":["../../../src/generators/add-application/add-application.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,IAAI,EAAiB,MAAM,YAAY,CAAC;AAE7E,OAAO,EAAE,6BAA6B,EAAE,MAAM,UAAU,CAAC;AA0EzD,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,6BAA6B,uBA6HvC;AAED,eAAe,uBAAuB,CAAC"}
1
+ {"version":3,"file":"add-application.d.ts","sourceRoot":"","sources":["../../../src/generators/add-application/add-application.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,IAAI,EAAiB,MAAM,YAAY,CAAC;AAE7E,OAAO,EAAE,6BAA6B,EAAE,MAAM,UAAU,CAAC;AA0EzD,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,6BAA6B,uBAgIvC;AAED,eAAe,uBAAuB,CAAC"}
@@ -84,6 +84,8 @@ async function addApplicationGenerator(tree, options) {
84
84
  // Prepare template variables
85
85
  const hasDs = selectedDependencies.includes('ds');
86
86
  const hasMui = selectedDependencies.includes('mui') || hasDs;
87
+ // Find types package (or fallback to core)
88
+ const typesPackageInfo = (0, utils_1.findTypesOrCorePackageInfo)(tree);
87
89
  const templateVariables = {
88
90
  htmlPageTitle: options.servingType === 'local-dev-playground'
89
91
  ? `${options.runtimeName || 'Runtime'} - Local Dev Application`
@@ -95,7 +97,7 @@ async function addApplicationGenerator(tree, options) {
95
97
  ...(0, utils_1.createNameTransforms)(widgetName, 'widgetName'),
96
98
  ...(0, utils_1.createNameTransforms)(options.runtimeName || 'runtime', 'runtimeName'),
97
99
  tmpl: '',
98
- coreAlias: (0, utils_1.findCorePackageAlias)(tree),
100
+ typesAlias: typesPackageInfo.alias,
99
101
  };
100
102
  const projectRoot = `unisphere/applications/${userInputApplicationName}`;
101
103
  // Check if the application already exists
@@ -8,7 +8,7 @@ import { ConfigurationProvider } from './configuration-provider';
8
8
  import { UnisphereProvider, UnisphereRuntimeVisual } from '@unisphere/runtime-react';
9
9
  import { UnisphereWorkspaceConfig } from '@unisphere/runtime';
10
10
  import { UnisphereWorkspaceType } from '@unisphere/runtime';
11
- import { <%= runtimeName__pascalCase %>Runtime } from '<%= coreAlias %>';
11
+ import { <%= runtimeName__pascalCase %>Runtime } from '<%= typesAlias %>';
12
12
 
13
13
 
14
14
  const Hihi: React.FC = () => {
@@ -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,EAA2B,MAAM,YAAY,CAAC;AAEvF,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAyJrD,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,yBAAyB,uBA0HnC;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;AAyJrD,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,yBAAyB,uBAgInC;AAED,eAAe,mBAAmB,CAAC"}
@@ -159,6 +159,9 @@ async function addPackageGenerator(tree, options) {
159
159
  const githubUrl = `https://github.com/${companyName}/${experienceName}`;
160
160
  // Resolve @unisphere/runtime version from workspace package.json
161
161
  const unisphereRuntimeVersion = resolveUnisphereRuntimeVersion(tree);
162
+ // Determine which dependencies are selected
163
+ const hasDs = selectedDependencies.includes('ds');
164
+ const hasReact = selectedDependencies.includes('react') || hasDs;
162
165
  // Prepare template variables
163
166
  const templateVariables = {
164
167
  scope: options.scope,
@@ -167,6 +170,8 @@ async function addPackageGenerator(tree, options) {
167
170
  githubUrl,
168
171
  companyName,
169
172
  unisphereRuntimeVersion,
173
+ hasDs,
174
+ hasReact,
170
175
  ...(0, utils_1.createNameTransforms)(userInputPackageName, 'packageName'),
171
176
  ...(0, utils_1.createNameTransforms)(experienceName, 'experienceName'),
172
177
  ...(0, utils_1.createNameTransforms)(packageJsonName, 'packageJsonName'),
@@ -3,10 +3,10 @@
3
3
  "compilerOptions": {
4
4
  "outDir": "../../../dist/out-tsc",
5
5
  "types": [
6
- "node",
7
- "@kaltura/ds-react-theme/src/lib/theme.d.ts",
6
+ "node"<% if (hasDs) { %>,
7
+ "@kaltura/ds-react-theme/src/lib/theme.d.ts"<% } %><% if (hasReact) { %>,
8
8
  "@nx/react/typings/cssmodule.d.ts",
9
- "@nx/react/typings/image.d.ts"
9
+ "@nx/react/typings/image.d.ts"<% } %>
10
10
  ]
11
11
  },
12
12
  "exclude": [
@@ -19,5 +19,5 @@
19
19
  "**/*.spec.jsx",
20
20
  "**/*.test.jsx"
21
21
  ],
22
- "include": ["src/**/*.js", "src/**/*.jsx", "src/**/*.ts", "src/**/*.tsx", "src/index.ts.template"]
22
+ "include": ["src/**/*.js", "src/**/*.jsx", "src/**/*.ts", "src/**/*.tsx"]
23
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"add-runtime.d.ts","sourceRoot":"","sources":["../../../src/generators/add-runtime/add-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,IAAI,EAAiB,MAAM,YAAY,CAAC;AAE7E,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AA6CrD,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,yBAAyB,uBAiInC;AAED,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"add-runtime.d.ts","sourceRoot":"","sources":["../../../src/generators/add-runtime/add-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,IAAI,EAAiB,MAAM,YAAY,CAAC;AAE7E,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AA6CrD,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,yBAAyB,uBAwInC;AAED,eAAe,mBAAmB,CAAC"}
@@ -7,14 +7,14 @@ const path = tslib_1.__importStar(require("path"));
7
7
  const utils_1 = require("../utils");
8
8
  const dependency_config_1 = require("../dependency-config");
9
9
  const add_application_1 = require("../add-application/add-application");
10
- function updateCoreIndexExport(tree, runtimeName) {
11
- const coreIndexPath = 'unisphere/packages/core/src/index.ts';
12
- if (!tree.exists(coreIndexPath)) {
13
- throw new Error(`Core index file not found at ${coreIndexPath}`);
10
+ function updateTypesIndexExport(tree, runtimeName, basePath) {
11
+ const indexPath = `${basePath}/src/index.ts`;
12
+ if (!tree.exists(indexPath)) {
13
+ throw new Error(`Index file not found at ${indexPath}`);
14
14
  }
15
- const currentContent = tree.read(coreIndexPath, 'utf-8');
15
+ const currentContent = tree.read(indexPath, 'utf-8');
16
16
  if (!currentContent) {
17
- throw new Error(`Failed to read content from ${coreIndexPath}`);
17
+ throw new Error(`Failed to read content from ${indexPath}`);
18
18
  }
19
19
  const exportLine = `export * from './lib/${runtimeName}-runtime';`;
20
20
  // Check if the export already exists
@@ -23,9 +23,11 @@ function updateCoreIndexExport(tree, runtimeName) {
23
23
  }
24
24
  // Add the export at the end of the file
25
25
  const updatedContent = currentContent + '\n' + exportLine;
26
- tree.write(coreIndexPath, updatedContent);
26
+ tree.write(indexPath, updatedContent);
27
27
  }
28
28
  async function addRuntimeGenerator(tree, options) {
29
+ // Normalize standalone option - Nx list prompts may return string labels instead of boolean values
30
+ let isStandalone = options?.standalone === 'yes' ? true : false;
29
31
  // Validate and read .unisphere configuration
30
32
  const unisphereConfig = (0, utils_1.validateUnisphereConfig)(tree);
31
33
  // Validate dependencies
@@ -37,11 +39,12 @@ async function addRuntimeGenerator(tree, options) {
37
39
  // Validate and correct runtime naming for React/DS dependencies
38
40
  let userInputRuntimeName = (0, devkit_1.names)(options.name).fileName;
39
41
  userInputRuntimeName = (0, dependency_config_1.validateReactNaming)(userInputRuntimeName, selectedDependencies);
40
- const coreAlias = (0, utils_1.findCorePackageAlias)(tree);
42
+ // Find types package (or fallback to core)
43
+ const typesPackageInfo = (0, utils_1.findTypesOrCorePackageInfo)(tree);
41
44
  // Prepare template variables
42
45
  const templateVariables = {
43
46
  companyName,
44
- coreAlias,
47
+ typesAlias: typesPackageInfo.alias,
45
48
  // Add all name transformations
46
49
  ...(0, utils_1.createNameTransforms)(userInputRuntimeName, 'runtimeName'),
47
50
  ...(0, utils_1.createNameTransforms)(widgetName, 'widgetName'),
@@ -53,18 +56,19 @@ async function addRuntimeGenerator(tree, options) {
53
56
  throw new Error(`Runtime "${userInputRuntimeName}" already exists at ${projectRoot}.\n` +
54
57
  'Please choose a different runtime name or remove the existing runtime first.');
55
58
  }
56
- // Check if the core runtime types file already exists
57
- const coreRuntimeTypesPath = `unisphere/packages/core/src/lib/${userInputRuntimeName}-runtime/runtime-types.ts`;
58
- if (tree.exists(coreRuntimeTypesPath)) {
59
- throw new Error(`Runtime types file "${userInputRuntimeName}-runtime/runtime-types.ts" already exists in core package.\n` +
59
+ // Check if the runtime types file already exists in types/core package
60
+ const runtimeTypesPath = `${typesPackageInfo.basePath}/src/lib/${userInputRuntimeName}-runtime/runtime-types.ts`;
61
+ if (tree.exists(runtimeTypesPath)) {
62
+ const packageName = typesPackageInfo.hasTypesPackage ? 'types' : 'core';
63
+ throw new Error(`Runtime types file "${userInputRuntimeName}-runtime/runtime-types.ts" already exists in ${packageName} package.\n` +
60
64
  'Please choose a different runtime name or remove the existing file first.');
61
65
  }
62
66
  // Generate files from templates for the runtime
63
67
  (0, devkit_1.generateFiles)(tree, path.join(__dirname, 'templates/new-runtime'), projectRoot, templateVariables);
64
- // Generate the runtime types file in the core package using template
65
- (0, devkit_1.generateFiles)(tree, path.join(__dirname, 'templates/core-templates'), 'unisphere/packages/core/src/lib', templateVariables);
66
- // Update core index.ts to export the new runtime types
67
- updateCoreIndexExport(tree, userInputRuntimeName);
68
+ // Generate the runtime types file in the types/core package using template
69
+ (0, devkit_1.generateFiles)(tree, path.join(__dirname, 'templates/core-templates'), `${typesPackageInfo.basePath}/src/lib`, templateVariables);
70
+ // Update types/core index.ts to export the new runtime types
71
+ updateTypesIndexExport(tree, userInputRuntimeName, typesPackageInfo.basePath);
68
72
  // Update .unisphere configuration
69
73
  (0, utils_1.updateUnisphereConfig)(tree, 'runtimes', userInputRuntimeName, {
70
74
  sourceRoot: `unisphere/runtimes/${userInputRuntimeName}`,
@@ -83,13 +87,14 @@ async function addRuntimeGenerator(tree, options) {
83
87
  // if (packageResult && typeof packageResult === 'function') {
84
88
  // packageResult();
85
89
  // }
86
- // Handle loadedByExternalHost usage - create package and dev application
87
- if (options.standalone === true) {
88
- // Create an dev application without prompts
90
+ // Handle standalone usage - create dev application
91
+ if (isStandalone === true) {
92
+ // Create a dev application without prompts
89
93
  const applicationResult = await (0, add_application_1.addApplicationGenerator)(tree, {
90
94
  name: `${userInputRuntimeName}-dev`,
91
95
  servingType: 'local-dev-playground',
92
96
  runtimeName: userInputRuntimeName,
97
+ dependencies: selectedDependencies, // Pass same dependencies as runtime
93
98
  });
94
99
  // Execute the application generation callback if it exists
95
100
  if (applicationResult && typeof applicationResult === 'function') {
@@ -106,8 +111,8 @@ async function addRuntimeGenerator(tree, options) {
106
111
  devkit_1.logger.info('');
107
112
  devkit_1.logger.info(`🚀 Runtime Name: ${userInputRuntimeName}`);
108
113
  devkit_1.logger.info(`📁 Location: ${projectRoot}`);
109
- devkit_1.logger.info(`🔧 Standalone: ${options.standalone ? 'Yes' : 'No'}`);
110
- if (options.standalone === true) {
114
+ devkit_1.logger.info(`🔧 Standalone: ${isStandalone ? 'Yes' : 'No'}`);
115
+ if (isStandalone === true) {
111
116
  devkit_1.logger.info('');
112
117
  devkit_1.logger.info('📦 Additional components created:');
113
118
  devkit_1.logger.info(` • Dev Application: ${userInputRuntimeName}-dev`);
@@ -1,5 +1,5 @@
1
1
  export interface AddRuntimeGeneratorSchema {
2
2
  name: string;
3
- standalone: boolean;
3
+ standalone: string;
4
4
  dependencies?: string[];
5
5
  }
@@ -11,18 +11,18 @@
11
11
  "x-prompt": "What's the runtime name? (letters, numbers, dashes and spaces allowed)"
12
12
  },
13
13
  "standalone": {
14
- "type": "boolean",
14
+ "type": "string",
15
15
  "description": "Is this experience being loaded by the host application, or by another experience (not this one)?",
16
16
  "x-prompt": {
17
17
  "message": "Is this experience being loaded by the host application, or by another experience (not this one)?",
18
18
  "type": "list",
19
19
  "items": [
20
20
  {
21
- "value": true,
21
+ "value": "yes",
22
22
  "label": "Yes -loaded by host application"
23
23
  },
24
24
  {
25
- "value": false,
25
+ "value": "no",
26
26
  "label": "No - loaded by another experience"
27
27
  }
28
28
  ]
@@ -1,6 +1,5 @@
1
1
  import * as ReactDOM from 'react-dom/client';
2
2
  import { Root } from 'react-dom/client';
3
- import { ThemeProvider } from '@kaltura/ds-react-theme';
4
3
  import {
5
4
  CreateElementOptions,
6
5
  UnisphereRuntimeBase,
@@ -10,12 +9,9 @@ import {
10
9
  <%= runtimeName__pascalCase %>RuntimeName,
11
10
  <%= runtimeName__pascalCase %>RuntimeSettings,
12
11
  <%= runtimeName__camelCase %>RuntimeSettingsSchema,
13
- } from '<%= coreAlias %>';
14
- import {
15
- ScopedUnisphereWorkspaceProvider
16
- } from '@unisphere/runtime-react';
12
+ } from '<%= typesAlias %>';
17
13
  import { HtmlDomRuntimeVisual } from '@unisphere/runtime';
18
- import { widgetName } from '<%= coreAlias %>'
14
+ import { widgetName } from '<%= typesAlias %>'
19
15
 
20
16
  export class Runtime
21
17
  extends UnisphereRuntimeBase<<%= runtimeName__pascalCase %>RuntimeSettings, Root>
@@ -1 +1 @@
1
- {"version":3,"file":"add-visual.d.ts","sourceRoot":"","sources":["../../../src/generators/add-visual/add-visual.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,IAAI,EAAE,MAAM,YAAY,CAAC;AAqB9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAkUpD;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,IAAI,CAAC,CAmEf;AAED,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"add-visual.d.ts","sourceRoot":"","sources":["../../../src/generators/add-visual/add-visual.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,IAAI,EAAE,MAAM,YAAY,CAAC;AAsB9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAuUpD;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,IAAI,CAAC,CAoEf;AAED,eAAe,kBAAkB,CAAC"}
@@ -12,7 +12,7 @@ const visual_utils_1 = require("./visual-utils");
12
12
  */
13
13
  function addImportToRuntime(sourceFilePath, tree, vars, project) {
14
14
  const sourceFile = (0, visual_utils_1.loadSourceFile)(tree, sourceFilePath, project);
15
- const { visualName__humanReadable: humanName, runtimeVisualSettings, runtimeVisualSchema, coreAlias, } = vars;
15
+ const { visualName__humanReadable: humanName, runtimeVisualSettings, runtimeVisualSchema, typesAlias, } = vars;
16
16
  // Check if import already exists to prevent duplicates
17
17
  const alreadyExists = sourceFile
18
18
  .getImportDeclarations()
@@ -26,13 +26,13 @@ function addImportToRuntime(sourceFilePath, tree, vars, project) {
26
26
  sourceFile.addImportDeclaration({
27
27
  kind: ts_morph_1.StructureKind.ImportDeclaration,
28
28
  namedImports: [runtimeVisualSettings, runtimeVisualSchema],
29
- moduleSpecifier: coreAlias,
29
+ moduleSpecifier: typesAlias,
30
30
  }); // Explicit cast for clarity
31
31
  (0, visual_utils_1.saveSourceFile)(tree, sourceFilePath, sourceFile.getFullText());
32
32
  console.log(`✅ Added import for visual ${humanName}`);
33
33
  }
34
- function updateRuntimeIndexExport(tree, runtimeName, visualName) {
35
- const runtimeIndexPath = `unisphere/packages/core/src/lib/${runtimeName}-runtime/index.ts`;
34
+ function updateRuntimeIndexExport(tree, runtimeName, visualName, typesPackageInfo) {
35
+ const runtimeIndexPath = `${typesPackageInfo.basePath}/src/lib/${runtimeName}-runtime/index.ts`;
36
36
  if (!tree.exists(runtimeIndexPath)) {
37
37
  throw new Error(`Runtime index file not found at ${runtimeIndexPath}`);
38
38
  }
@@ -117,7 +117,7 @@ function addVisualTypesToConstructor(sourceFilePath, tree, vars, project, isSing
117
117
  * Adds a private render method to the main class in the runtime file.
118
118
  * Uses Nx's generateFiles for proper template processing.
119
119
  */
120
- function addRenderMethod(sourceFilePath, tree, vars, project) {
120
+ function addRenderMethod(sourceFilePath, tree, vars, project, typesPackageInfo) {
121
121
  const sourceFile = (0, visual_utils_1.loadSourceFile)(tree, sourceFilePath, project);
122
122
  const methodName = `_render${vars.visualName__pascalCase}`;
123
123
  const clazz = (0, visual_utils_1.findFirstClass)(sourceFile);
@@ -135,7 +135,7 @@ function addRenderMethod(sourceFilePath, tree, vars, project) {
135
135
  ...vars,
136
136
  tmpl: '', // This removes the .template extension
137
137
  });
138
- updateRuntimeIndexExport(tree, vars.runtimeName__lowerDashCase, vars.visualName__lowerDashCase);
138
+ updateRuntimeIndexExport(tree, vars.runtimeName__lowerDashCase, vars.visualName__lowerDashCase, typesPackageInfo);
139
139
  // Read the processed template content
140
140
  const processedContent = (0, visual_utils_1.readTreeFile)(tree, `${tempDir}/render-method`);
141
141
  // Clean up the temporary file
@@ -165,14 +165,15 @@ function addRenderMethod(sourceFilePath, tree, vars, project) {
165
165
  console.log(`✅ Added render method ${methodName}.`);
166
166
  }
167
167
  /**
168
- * Adds an interface and schema definition to the core runtime types file.
168
+ * Adds an interface and schema definition to the types/core runtime types file.
169
169
  */
170
- function createVisualTypes(tree, vars) {
171
- // Check if the core runtime types file already exists
172
- const visualTypesPath = `unisphere/packages/core/src/lib/${vars.runtimeName__lowerDashCase}-runtime/${vars.visualName__lowerDashCase}-visual-types.ts`;
170
+ function createVisualTypes(tree, vars, typesPackageInfo) {
171
+ // Check if the runtime types file already exists
172
+ const visualTypesPath = `${typesPackageInfo.basePath}/src/lib/${vars.runtimeName__lowerDashCase}-runtime/${vars.visualName__lowerDashCase}-visual-types.ts`;
173
+ const packageName = typesPackageInfo.hasTypesPackage ? 'types' : 'core';
173
174
  if (tree.exists(visualTypesPath)) {
174
- throw new Error(`Visual types file "${vars.visualName__lowerDashCase}-visual-types.ts" already exists in core package.\n` +
175
- 'Please choose a different runtime name or remove the existing file first.');
175
+ throw new Error(`Visual types file "${vars.visualName__lowerDashCase}-visual-types.ts" already exists in ${packageName} package.\n` +
176
+ 'Please choose a different visual name or remove the existing file first.');
176
177
  }
177
178
  const { runtimeVisualSettings: interfaceName, runtimeVisualSchema: schemaName, visualName__humanReadable: humanName, } = vars;
178
179
  // Construct the new interface and schema content.
@@ -207,8 +208,8 @@ async function addVisualGenerator(tree, options) {
207
208
  // Validate runtime existence and get source root path.
208
209
  const runtimeSourceRoot = (0, utils_1.validateRuntimeExists)(tree, runtimeName);
209
210
  const runtimeTSxPath = `${runtimeSourceRoot}/src/lib/runtime.tsx`;
210
- // Get core package alias and compute various name transforms.
211
- const coreAlias = (0, utils_1.findCorePackageAlias)(tree);
211
+ // Find types package (or fallback to core)
212
+ const typesPackageInfo = (0, utils_1.findTypesOrCorePackageInfo)(tree);
212
213
  const runtimeNames = (0, utils_1.createNameTransforms)(runtimeName, 'runtimeName');
213
214
  const visualNames = (0, utils_1.createNameTransforms)(visualName, 'visualName');
214
215
  const widgetNames = (0, utils_1.createNameTransforms)(widgetName, 'widgetName');
@@ -222,7 +223,7 @@ async function addVisualGenerator(tree, options) {
222
223
  ...widgetNames,
223
224
  runtimeVisualSettings,
224
225
  runtimeVisualSchema,
225
- coreAlias,
226
+ typesAlias: typesPackageInfo.alias,
226
227
  };
227
228
  // Ensure the target runtime file exists before proceeding.
228
229
  if (!tree.exists(runtimeTSxPath)) {
@@ -237,9 +238,9 @@ async function addVisualGenerator(tree, options) {
237
238
  addImportToRuntime(runtimeTSxPath, tree, templateVariables, project);
238
239
  addVisualTypesToConstructor(runtimeTSxPath, tree, templateVariables, project, isSingleOccurrence);
239
240
  addSwitchCaseToRuntime(runtimeTSxPath, tree, templateVariables, project);
240
- addRenderMethod(runtimeTSxPath, tree, templateVariables, project);
241
- // 'project' parameter is not needed here as addVariablesInCore directly writes to the tree.
242
- createVisualTypes(tree, templateVariables);
241
+ addRenderMethod(runtimeTSxPath, tree, templateVariables, project, typesPackageInfo);
242
+ // 'project' parameter is not needed here as createVisualTypes directly writes to the tree.
243
+ createVisualTypes(tree, templateVariables, typesPackageInfo);
243
244
  // Format all modified files for consistent code style.
244
245
  await (0, devkit_1.formatFiles)(tree);
245
246
  // Log success and summary information to the console.
@@ -1 +1 @@
1
- {"version":3,"file":"dependency-config.d.ts","sourceRoot":"","sources":["../../src/generators/dependency-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAU,MAAM,YAAY,CAAC;AAI1C;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CACjC,MAAM,EACN;IAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAgDjE,CAAC;AAEF;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,oBAAoB,EAAE,MAAM,EAAE,GAAG,IAAI,CAkBrE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,oBAAoB,EAAE,MAAM,EAAE,GAC7B,MAAM,CAiBR;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,IAAI,EACV,oBAAoB,EAAE,MAAM,EAAE,GAC7B,IAAI,CA0CN"}
1
+ {"version":3,"file":"dependency-config.d.ts","sourceRoot":"","sources":["../../src/generators/dependency-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAU,MAAM,YAAY,CAAC;AAI1C;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CACjC,MAAM,EACN;IAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAgDjE,CAAC;AAEF;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,oBAAoB,EAAE,MAAM,EAAE,GAAG,IAAI,CAkBrE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,oBAAoB,EAAE,MAAM,EAAE,GAC7B,MAAM,CAiBR;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,IAAI,EACV,oBAAoB,EAAE,MAAM,EAAE,GAC7B,IAAI,CA4EN"}
@@ -100,6 +100,32 @@ function installSelectedDependencies(tree, selectedDependencies) {
100
100
  if (!selectedDependencies || selectedDependencies.length === 0) {
101
101
  return;
102
102
  }
103
+ // Track processed packages to avoid duplicates (e.g., 'ds' and 'mui' both include @mui/material)
104
+ const processedPackages = new Set();
105
+ let hasPackagesToInstall = false;
106
+ // First pass: check if there's anything to install
107
+ for (const dep of selectedDependencies) {
108
+ const depConfig = exports.DEPENDENCY_MAP[dep];
109
+ if (!depConfig)
110
+ continue;
111
+ for (const packageName of depConfig.packages) {
112
+ if (processedPackages.has(packageName))
113
+ continue;
114
+ processedPackages.add(packageName);
115
+ if (!(0, utils_1.isPackageInstalled)(tree, packageName)) {
116
+ hasPackagesToInstall = true;
117
+ break;
118
+ }
119
+ }
120
+ if (hasPackagesToInstall)
121
+ break;
122
+ }
123
+ // If nothing to install, return silently
124
+ if (!hasPackagesToInstall) {
125
+ return;
126
+ }
127
+ // Reset for second pass
128
+ processedPackages.clear();
103
129
  devkit_1.logger.info('');
104
130
  devkit_1.logger.info('📦 Installing selected dependencies...');
105
131
  for (const dep of selectedDependencies) {
@@ -109,12 +135,16 @@ function installSelectedDependencies(tree, selectedDependencies) {
109
135
  continue;
110
136
  }
111
137
  for (const packageName of depConfig.packages) {
138
+ // Skip if already processed (avoid duplicates)
139
+ if (processedPackages.has(packageName)) {
140
+ continue;
141
+ }
142
+ processedPackages.add(packageName);
112
143
  const installedVersion = (0, utils_1.isPackageInstalled)(tree, packageName);
113
144
  if (installedVersion) {
114
- devkit_1.logger.info(`✅ ${packageName}@${installedVersion} already installed`);
145
+ // Already installed, skip silently
115
146
  continue;
116
147
  }
117
- // Determine version to install from defaultVersions map or fallback
118
148
  const version = depConfig.defaultVersions?.[packageName] || '^1.0.0';
119
149
  const installCommand = `npm install ${packageName}@${version}`;
120
150
  devkit_1.logger.info(` Installing ${packageName}@${version}...`);
@@ -8,6 +8,24 @@ export declare function updateTsConfigPaths(tree: Tree, pathKey: string, pathVal
8
8
  export declare function updateUnisphereConfig(tree: Tree, elementType: 'packages' | 'runtimes' | 'applications', elementName: string, elementConfig: Record<string, any>): void;
9
9
  export declare function validateRuntimeExists(tree: Tree, runtimeName: string): string;
10
10
  export declare function findCorePackageAlias(tree: Tree): string;
11
+ /**
12
+ * Tries to find the types package alias in tsconfig.base.json
13
+ * Returns null if types package is not found
14
+ */
15
+ export declare function findTypesPackageAlias(tree: Tree): string | null;
16
+ export interface TypesPackageInfo {
17
+ /** The tsconfig alias for the package (e.g., "@mycompany/types" or "@mycompany/core") */
18
+ alias: string;
19
+ /** The base path to the package (e.g., "unisphere/packages/types" or "unisphere/packages/core") */
20
+ basePath: string;
21
+ /** Whether the types package exists (true) or falling back to core (false) */
22
+ hasTypesPackage: boolean;
23
+ }
24
+ /**
25
+ * Finds the types package if it exists, otherwise falls back to core package.
26
+ * Returns info about which package to use for runtime types.
27
+ */
28
+ export declare function findTypesOrCorePackageInfo(tree: Tree): TypesPackageInfo;
11
29
  type NameTransformations<Prefix extends string> = {
12
30
  [K in `${Prefix}` | `${Prefix}__lowerDashCase` | `${Prefix}__camelCase` | `${Prefix}__pascalCase` | `${Prefix}__constantCase` | `${Prefix}__humanReadable`]: string;
13
31
  };
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/generators/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EAKL,MAAM,YAAY,CAAC;AAGpB,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,IAAI,GAAG,eAAe,CAmDnE;AAGD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,QA4BjF;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,UAAU,GAAG,UAAU,GAAG,cAAc,EACrD,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QA2BnC;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CA6C7E;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CA8BvD;AAGD,KAAK,mBAAmB,CAAC,MAAM,SAAS,MAAM,IAAI;KAC/C,CAAC,IACE,GAAG,MAAM,EAAE,GACX,GAAG,MAAM,iBAAiB,GAC1B,GAAG,MAAM,aAAa,GACtB,GAAG,MAAM,cAAc,GACvB,GAAG,MAAM,gBAAgB,GACzB,GAAG,MAAM,iBAAiB,GAAG,MAAM;CACxC,CAAC;AAKF,wBAAgB,oBAAoB,CAAC,MAAM,SAAS,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAczH;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,CAwBlF;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAgB7E"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/generators/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EAKL,MAAM,YAAY,CAAC;AAGpB,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,IAAI,GAAG,eAAe,CAmDnE;AAGD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,QA4BjF;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,UAAU,GAAG,UAAU,GAAG,cAAc,EACrD,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QA2BnC;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CA6C7E;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CA8BvD;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAuB/D;AAED,MAAM,WAAW,gBAAgB;IAC/B,yFAAyF;IACzF,KAAK,EAAE,MAAM,CAAC;IACd,mGAAmG;IACnG,QAAQ,EAAE,MAAM,CAAC;IACjB,8EAA8E;IAC9E,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,IAAI,GAAG,gBAAgB,CAkBvE;AAGD,KAAK,mBAAmB,CAAC,MAAM,SAAS,MAAM,IAAI;KAC/C,CAAC,IACE,GAAG,MAAM,EAAE,GACX,GAAG,MAAM,iBAAiB,GAC1B,GAAG,MAAM,aAAa,GACtB,GAAG,MAAM,cAAc,GACvB,GAAG,MAAM,gBAAgB,GACzB,GAAG,MAAM,iBAAiB,GAAG,MAAM;CACxC,CAAC;AAKF,wBAAgB,oBAAoB,CAAC,MAAM,SAAS,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAczH;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,CAwBlF;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAgB7E"}
@@ -5,6 +5,8 @@ exports.updateTsConfigPaths = updateTsConfigPaths;
5
5
  exports.updateUnisphereConfig = updateUnisphereConfig;
6
6
  exports.validateRuntimeExists = validateRuntimeExists;
7
7
  exports.findCorePackageAlias = findCorePackageAlias;
8
+ exports.findTypesPackageAlias = findTypesPackageAlias;
9
+ exports.findTypesOrCorePackageInfo = findTypesOrCorePackageInfo;
8
10
  exports.createNameTransforms = createNameTransforms;
9
11
  exports.isPackageInstalled = isPackageInstalled;
10
12
  exports.checkIfRuntimeExists = checkIfRuntimeExists;
@@ -144,6 +146,52 @@ function findCorePackageAlias(tree) {
144
146
  throw new Error(`Failed to read tsconfig.base.json: ${error instanceof Error ? error.message : 'Unknown error'}`);
145
147
  }
146
148
  }
149
+ /**
150
+ * Tries to find the types package alias in tsconfig.base.json
151
+ * Returns null if types package is not found
152
+ */
153
+ function findTypesPackageAlias(tree) {
154
+ if (!tree.exists('tsconfig.base.json')) {
155
+ return null;
156
+ }
157
+ try {
158
+ const tsconfigBase = (0, devkit_1.readJson)(tree, 'tsconfig.base.json');
159
+ if (!tsconfigBase.compilerOptions?.paths) {
160
+ return null;
161
+ }
162
+ // Find the key that has the value "unisphere/packages/types/src/index.ts"
163
+ for (const [key, paths] of Object.entries(tsconfigBase.compilerOptions.paths)) {
164
+ if (Array.isArray(paths) && paths.includes('unisphere/packages/types/src/index.ts')) {
165
+ return key;
166
+ }
167
+ }
168
+ return null;
169
+ }
170
+ catch {
171
+ return null;
172
+ }
173
+ }
174
+ /**
175
+ * Finds the types package if it exists, otherwise falls back to core package.
176
+ * Returns info about which package to use for runtime types.
177
+ */
178
+ function findTypesOrCorePackageInfo(tree) {
179
+ const typesAlias = findTypesPackageAlias(tree);
180
+ if (typesAlias) {
181
+ return {
182
+ alias: typesAlias,
183
+ basePath: 'unisphere/packages/types',
184
+ hasTypesPackage: true,
185
+ };
186
+ }
187
+ // Fallback to core package
188
+ const coreAlias = findCorePackageAlias(tree);
189
+ return {
190
+ alias: coreAlias,
191
+ basePath: 'unisphere/packages/core',
192
+ hasTypesPackage: false,
193
+ };
194
+ }
147
195
  function createNameTransforms(baseName, prefix) {
148
196
  const nameVariants = (0, devkit_1.names)(baseName); // Assuming 'names' function is available and returns NameVariants
149
197
  const humanReadable = baseName
@@ -1,55 +1,55 @@
1
1
  {
2
- "migrations": {
2
+ "generators": {
3
3
  "check-nx-version": {
4
4
  "version": "1.9.0",
5
5
  "description": "Checks that Nx version is 22 or higher",
6
- "implementation": "./dist/migrations/update-1-1-5/check-nx-version.js",
6
+ "factory": "./dist/migrations/update-1-1-5/check-nx-version.js",
7
7
  "cli": {
8
- "postUpgradeMessage": "✅ Nx version check completed. Your project is using Nx 22 or higher."
8
+ "postUpdateMessage": "✅ Nx version check completed. Your project is using Nx 22 or higher."
9
9
  }
10
10
  },
11
11
  "rename-widgetname-to-widgetname": {
12
12
  "version": "1.9.0",
13
13
  "description": "Changes the executor name from WidgetName to widgetName",
14
- "implementation": "./dist/migrations/update-1-1-5/rename-widgetname-to-widgetname.js"
14
+ "factory": "./dist/migrations/update-1-1-5/rename-widgetname-to-widgetname.js"
15
15
  },
16
16
  "fix-playground-apps": {
17
17
  "version": "1.9.0",
18
18
  "description": "Fixes playground apps",
19
- "implementation": "./dist/migrations/update-1-1-5/fix-playground-apps.js"
19
+ "factory": "./dist/migrations/update-1-1-5/fix-playground-apps.js"
20
20
  },
21
21
  "move-runtime-info-to-core": {
22
22
  "version": "1.9.0",
23
23
  "description": "Moves runtime-information.ts and runtime-settings.ts to core package",
24
- "implementation": "./dist/migrations/update-1-1-5/move-runtime-info-to-core.js"
24
+ "factory": "./dist/migrations/update-1-1-5/move-runtime-info-to-core.js"
25
25
  },
26
26
  "sync-package-json-files": {
27
27
  "version": "1.9.0",
28
28
  "description": "Syncs package json files",
29
- "implementation": "./dist/migrations/update-1-1-5/sync-package-json-files.js"
29
+ "factory": "./dist/migrations/update-1-1-5/sync-package-json-files.js"
30
30
  },
31
31
  "update-nvmrc": {
32
32
  "version": "1.9.0",
33
33
  "description": "Updates .nvmrc to Node 24 (creates if missing)",
34
- "implementation": "./dist/migrations/update-1-1-5/update-nvmrc.js",
34
+ "factory": "./dist/migrations/update-1-1-5/update-nvmrc.js",
35
35
  "cli": {
36
- "postUpgradeMessage": "✅ .nvmrc has been updated to Node 24. Please ensure you have Node.js 24.x installed."
36
+ "postUpdateMessage": "✅ .nvmrc has been updated to Node 24. Please ensure you have Node.js 24.x installed."
37
37
  }
38
38
  },
39
39
  "fix-dependency-versions": {
40
40
  "version": "1.9.0",
41
41
  "description": "Removes ^ from @changesets/cli version in package.json",
42
- "implementation": "./dist/migrations/update-1-1-5/fix-dependency-versions.js",
42
+ "factory": "./dist/migrations/update-1-1-5/fix-dependency-versions.js",
43
43
  "cli": {
44
- "postUpgradeMessage": "✅ @changesets/cli version has been pinned to exact version (^ removed)."
44
+ "postUpdateMessage": "✅ @changesets/cli version has been pinned to exact version (^ removed)."
45
45
  }
46
46
  },
47
47
  "update-github-workflow": {
48
48
  "version": "1.9.0",
49
49
  "description": "Updates .github/workflows/cicd.yml from template",
50
- "implementation": "./dist/migrations/update-1-1-5/update-github-workflow.js",
50
+ "factory": "./dist/migrations/update-1-1-5/update-github-workflow.js",
51
51
  "cli": {
52
- "postUpgradeMessage": "✅ GitHub workflow updated to use Node.js 24. Review .github/workflows/cicd.yml if you have custom changes."
52
+ "postUpdateMessage": "✅ GitHub workflow updated to use Node.js 24. Review .github/workflows/cicd.yml if you have custom changes."
53
53
  }
54
54
  }
55
55
  },
@@ -163,4 +163,4 @@
163
163
  }
164
164
  }
165
165
  }
166
- }
166
+ }
package/migrations.json CHANGED
@@ -1,55 +1,55 @@
1
1
  {
2
- "migrations": {
2
+ "generators": {
3
3
  "check-nx-version": {
4
4
  "version": "1.9.0",
5
5
  "description": "Checks that Nx version is 22 or higher",
6
- "implementation": "./dist/migrations/update-1-1-5/check-nx-version.js",
6
+ "factory": "./dist/migrations/update-1-1-5/check-nx-version.js",
7
7
  "cli": {
8
- "postUpgradeMessage": "✅ Nx version check completed. Your project is using Nx 22 or higher."
8
+ "postUpdateMessage": "✅ Nx version check completed. Your project is using Nx 22 or higher."
9
9
  }
10
10
  },
11
11
  "rename-widgetname-to-widgetname": {
12
12
  "version": "1.9.0",
13
13
  "description": "Changes the executor name from WidgetName to widgetName",
14
- "implementation": "./dist/migrations/update-1-1-5/rename-widgetname-to-widgetname.js"
14
+ "factory": "./dist/migrations/update-1-1-5/rename-widgetname-to-widgetname.js"
15
15
  },
16
16
  "fix-playground-apps": {
17
17
  "version": "1.9.0",
18
18
  "description": "Fixes playground apps",
19
- "implementation": "./dist/migrations/update-1-1-5/fix-playground-apps.js"
19
+ "factory": "./dist/migrations/update-1-1-5/fix-playground-apps.js"
20
20
  },
21
21
  "move-runtime-info-to-core": {
22
22
  "version": "1.9.0",
23
23
  "description": "Moves runtime-information.ts and runtime-settings.ts to core package",
24
- "implementation": "./dist/migrations/update-1-1-5/move-runtime-info-to-core.js"
24
+ "factory": "./dist/migrations/update-1-1-5/move-runtime-info-to-core.js"
25
25
  },
26
26
  "sync-package-json-files": {
27
27
  "version": "1.9.0",
28
28
  "description": "Syncs package json files",
29
- "implementation": "./dist/migrations/update-1-1-5/sync-package-json-files.js"
29
+ "factory": "./dist/migrations/update-1-1-5/sync-package-json-files.js"
30
30
  },
31
31
  "update-nvmrc": {
32
32
  "version": "1.9.0",
33
33
  "description": "Updates .nvmrc to Node 24 (creates if missing)",
34
- "implementation": "./dist/migrations/update-1-1-5/update-nvmrc.js",
34
+ "factory": "./dist/migrations/update-1-1-5/update-nvmrc.js",
35
35
  "cli": {
36
- "postUpgradeMessage": "✅ .nvmrc has been updated to Node 24. Please ensure you have Node.js 24.x installed."
36
+ "postUpdateMessage": "✅ .nvmrc has been updated to Node 24. Please ensure you have Node.js 24.x installed."
37
37
  }
38
38
  },
39
39
  "fix-dependency-versions": {
40
40
  "version": "1.9.0",
41
41
  "description": "Removes ^ from @changesets/cli version in package.json",
42
- "implementation": "./dist/migrations/update-1-1-5/fix-dependency-versions.js",
42
+ "factory": "./dist/migrations/update-1-1-5/fix-dependency-versions.js",
43
43
  "cli": {
44
- "postUpgradeMessage": "✅ @changesets/cli version has been pinned to exact version (^ removed)."
44
+ "postUpdateMessage": "✅ @changesets/cli version has been pinned to exact version (^ removed)."
45
45
  }
46
46
  },
47
47
  "update-github-workflow": {
48
48
  "version": "1.9.0",
49
49
  "description": "Updates .github/workflows/cicd.yml from template",
50
- "implementation": "./dist/migrations/update-1-1-5/update-github-workflow.js",
50
+ "factory": "./dist/migrations/update-1-1-5/update-github-workflow.js",
51
51
  "cli": {
52
- "postUpgradeMessage": "✅ GitHub workflow updated to use Node.js 24. Review .github/workflows/cicd.yml if you have custom changes."
52
+ "postUpdateMessage": "✅ GitHub workflow updated to use Node.js 24. Review .github/workflows/cicd.yml if you have custom changes."
53
53
  }
54
54
  }
55
55
  },
@@ -163,4 +163,4 @@
163
163
  }
164
164
  }
165
165
  }
166
- }
166
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unisphere/nx",
3
- "version": "1.20.0",
3
+ "version": "1.21.2",
4
4
  "private": false,
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",