@nx/js 0.0.0-pr-32490-e4fdfa9 → 0.0.0-pr-32868-a65a4a2

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.
Files changed (34) hide show
  1. package/README.md +1 -1
  2. package/migrations.json +20 -1
  3. package/package.json +4 -4
  4. package/spec/src/migrations/update-21-5-0/migrate-development-custom-condition.spec.d.ts +2 -0
  5. package/spec/src/migrations/update-21-5-0/migrate-development-custom-condition.spec.d.ts.map +1 -0
  6. package/spec/src/release/utils/semver.spec.d.ts +2 -0
  7. package/spec/src/release/utils/semver.spec.d.ts.map +1 -0
  8. package/src/generators/init/files/ts-solution/tsconfig.base.json__tmpl__ +1 -1
  9. package/src/generators/init/init.d.ts.map +1 -1
  10. package/src/generators/init/init.js +2 -0
  11. package/src/generators/library/library.d.ts +1 -1
  12. package/src/generators/library/library.d.ts.map +1 -1
  13. package/src/generators/library/library.js +7 -6
  14. package/src/generators/setup-build/generator.d.ts.map +1 -1
  15. package/src/generators/setup-build/generator.js +1 -4
  16. package/src/generators/typescript-sync/typescript-sync.js +5 -3
  17. package/src/migrations/update-21-5-0/migrate-development-custom-condition.d.ts +3 -0
  18. package/src/migrations/update-21-5-0/migrate-development-custom-condition.d.ts.map +1 -0
  19. package/src/migrations/update-21-5-0/migrate-development-custom-condition.js +147 -0
  20. package/src/plugins/typescript/plugin.js +0 -3
  21. package/src/release/utils/semver.d.ts +3 -0
  22. package/src/release/utils/semver.d.ts.map +1 -0
  23. package/src/release/utils/semver.js +14 -0
  24. package/src/release/version-actions.d.ts.map +1 -1
  25. package/src/release/version-actions.js +20 -0
  26. package/src/utils/package-json/update-package-json.d.ts +1 -1
  27. package/src/utils/package-json/update-package-json.d.ts.map +1 -1
  28. package/src/utils/package-json/update-package-json.js +6 -7
  29. package/src/utils/typescript/ts-solution-setup.d.ts +12 -0
  30. package/src/utils/typescript/ts-solution-setup.d.ts.map +1 -1
  31. package/src/utils/typescript/ts-solution-setup.js +69 -0
  32. package/src/utils/versions.d.ts +1 -1
  33. package/src/utils/versions.js +1 -1
  34. package/spec/tsconfig.spec.tsbuildinfo +0 -1
package/README.md CHANGED
@@ -22,7 +22,7 @@
22
22
 
23
23
  # Nx: Smart Repos · Fast Builds
24
24
 
25
- An AI-first build platform that connects everything from your editor to CI. Helping you deliver fast, without breaking things.
25
+ Get to green PRs in half the time. Nx optimizes your builds, scales your CI, and fixes failed PRs. Built for developers and AI agents.
26
26
 
27
27
  This package is a [JavaScript/TypeScript plugin for Nx](https://nx.dev/js/overview).
28
28
 
package/migrations.json CHANGED
@@ -1,5 +1,11 @@
1
1
  {
2
- "generators": {},
2
+ "generators": {
3
+ "migrate-development-custom-condition": {
4
+ "version": "21.5.0-beta.2",
5
+ "description": "Migrate the legacy 'development' custom condition to a workspace-unique custom condition name.",
6
+ "factory": "./src/migrations/update-21-5-0/migrate-development-custom-condition"
7
+ }
8
+ },
3
9
  "packageJsonUpdates": {
4
10
  "19.0.0": {
5
11
  "version": "19.0.0-beta.0",
@@ -96,6 +102,19 @@
96
102
  "alwaysAddToPackageJson": false
97
103
  }
98
104
  }
105
+ },
106
+ "21.5.0": {
107
+ "version": "21.5.0-beta.2",
108
+ "x-prompt": "Do you want to update to TypeScript v5.9?",
109
+ "requires": {
110
+ "typescript": ">=5.8.0 <5.9.0"
111
+ },
112
+ "packages": {
113
+ "typescript": {
114
+ "version": "~5.9.2",
115
+ "alwaysAddToPackageJson": false
116
+ }
117
+ }
99
118
  }
100
119
  }
101
120
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nx/js",
3
- "version": "0.0.0-pr-32490-e4fdfa9",
3
+ "version": "0.0.0-pr-32868-a65a4a2",
4
4
  "private": false,
5
5
  "description": "The JS plugin for Nx contains executors and generators that provide the best experience for developing JavaScript and TypeScript projects. ",
6
6
  "repository": {
@@ -39,8 +39,8 @@
39
39
  "@babel/preset-env": "^7.23.2",
40
40
  "@babel/preset-typescript": "^7.22.5",
41
41
  "@babel/runtime": "^7.22.6",
42
- "@nx/devkit": "0.0.0-pr-32490-e4fdfa9",
43
- "@nx/workspace": "0.0.0-pr-32490-e4fdfa9",
42
+ "@nx/devkit": "0.0.0-pr-32868-a65a4a2",
43
+ "@nx/workspace": "0.0.0-pr-32868-a65a4a2",
44
44
  "@zkochan/js-yaml": "0.0.7",
45
45
  "babel-plugin-const-enum": "^1.0.1",
46
46
  "babel-plugin-macros": "^3.1.0",
@@ -63,7 +63,7 @@
63
63
  "tslib": "^2.3.0"
64
64
  },
65
65
  "devDependencies": {
66
- "nx": "0.0.0-pr-32490-e4fdfa9"
66
+ "nx": "0.0.0-pr-32868-a65a4a2"
67
67
  },
68
68
  "peerDependencies": {
69
69
  "verdaccio": "^6.0.5"
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=migrate-development-custom-condition.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate-development-custom-condition.spec.d.ts","sourceRoot":"","sources":["../../../../../../../packages/js/src/migrations/update-21-5-0/migrate-development-custom-condition.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=semver.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semver.spec.d.ts","sourceRoot":"","sources":["../../../../../../../packages/js/src/release/utils/semver.spec.ts"],"names":[],"mappings":""}
@@ -18,6 +18,6 @@
18
18
  "skipLibCheck": true,
19
19
  "strict": true,
20
20
  "target": "es2022",
21
- "customConditions": ["development"]
21
+ "customConditions": ["<%= customCondition %>"]
22
22
  }
23
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../../../../packages/js/src/generators/init/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,iBAAiB,EAIjB,IAAI,EACL,MAAM,YAAY,CAAC;AAoBpB,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAoCtC,wBAAsB,aAAa,CACjC,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC,iBAAiB,CAAC,CAS5B;AAED,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC,iBAAiB,CAAC,CA8H5B;AAED,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../../../../packages/js/src/generators/init/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,iBAAiB,EAIjB,IAAI,EACL,MAAM,YAAY,CAAC;AAuBpB,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAoCtC,wBAAsB,aAAa,CACjC,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC,iBAAiB,CAAC,CAS5B;AAED,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC,iBAAiB,CAAC,CAgI5B;AAED,eAAe,aAAa,CAAC"}
@@ -87,8 +87,10 @@ async function initGeneratorInternal(tree, schema) {
87
87
  if (schema.addTsConfigBase && !(0, ts_config_1.getRootTsConfigFileName)(tree)) {
88
88
  if (schema.addTsPlugin) {
89
89
  const platform = schema.platform ?? 'node';
90
+ const customCondition = (0, ts_solution_setup_1.getCustomConditionName)(tree);
90
91
  (0, devkit_1.generateFiles)(tree, (0, path_1.join)(__dirname, './files/ts-solution'), '.', {
91
92
  platform,
93
+ customCondition,
92
94
  tmpl: '',
93
95
  });
94
96
  }
@@ -2,7 +2,7 @@ import { GeneratorCallback, Tree } from '@nx/devkit';
2
2
  import type { LibraryGeneratorSchema, NormalizedLibraryGeneratorOptions } from './schema';
3
3
  export declare function libraryGenerator(tree: Tree, schema: LibraryGeneratorSchema): Promise<GeneratorCallback>;
4
4
  export declare function libraryGeneratorInternal(tree: Tree, schema: LibraryGeneratorSchema): Promise<GeneratorCallback>;
5
- export type AddLintOptions = Pick<NormalizedLibraryGeneratorOptions, 'name' | 'linter' | 'projectRoot' | 'unitTestRunner' | 'js' | 'setParserOptionsProject' | 'rootProject' | 'bundler' | 'addPlugin'>;
5
+ export type AddLintOptions = Pick<NormalizedLibraryGeneratorOptions, 'name' | 'linter' | 'projectRoot' | 'unitTestRunner' | 'js' | 'setParserOptionsProject' | 'rootProject' | 'bundler' | 'addPlugin' | 'isUsingTsSolutionConfig'>;
6
6
  export declare function addLint(tree: Tree, options: AddLintOptions): Promise<GeneratorCallback>;
7
7
  export default libraryGenerator;
8
8
  //# sourceMappingURL=library.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"library.d.ts","sourceRoot":"","sources":["../../../../../../packages/js/src/generators/library/library.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,iBAAiB,EAYjB,IAAI,EAKL,MAAM,YAAY,CAAC;AAyCpB,OAAO,KAAK,EAEV,sBAAsB,EACtB,iCAAiC,EAClC,MAAM,UAAU,CAAC;AASlB,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,sBAAsB,8BAO/B;AAED,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,sBAAsB,8BAsL/B;AA4HD,MAAM,MAAM,cAAc,GAAG,IAAI,CAC/B,iCAAiC,EAC/B,MAAM,GACN,QAAQ,GACR,aAAa,GACb,gBAAgB,GAChB,IAAI,GACJ,yBAAyB,GACzB,aAAa,GACb,SAAS,GACT,WAAW,CACd,CAAC;AAEF,wBAAsB,OAAO,CAC3B,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,iBAAiB,CAAC,CAqG5B;AA4vBD,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"library.d.ts","sourceRoot":"","sources":["../../../../../../packages/js/src/generators/library/library.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,iBAAiB,EAYjB,IAAI,EAKL,MAAM,YAAY,CAAC;AA0CpB,OAAO,KAAK,EAEV,sBAAsB,EACtB,iCAAiC,EAClC,MAAM,UAAU,CAAC;AASlB,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,sBAAsB,8BAO/B;AAED,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,sBAAsB,8BAsL/B;AA4HD,MAAM,MAAM,cAAc,GAAG,IAAI,CAC/B,iCAAiC,EAC/B,MAAM,GACN,QAAQ,GACR,aAAa,GACb,gBAAgB,GAChB,IAAI,GACJ,yBAAyB,GACzB,aAAa,GACb,SAAS,GACT,WAAW,GACX,yBAAyB,CAC5B,CAAC;AAEF,wBAAsB,OAAO,CAC3B,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,iBAAiB,CAAC,CA4G5B;AAivBD,eAAe,gBAAgB,CAAC"}
@@ -272,7 +272,7 @@ async function addLint(tree, options) {
272
272
  // Since the build target is inferred now, we need to let the generator know to add @nx/dependency-checks regardless.
273
273
  addPackageJsonDependencyChecks: options.bundler !== 'none',
274
274
  });
275
- const { addOverrideToLintConfig, lintConfigHasOverride, isEslintConfigSupported, updateOverrideInLintConfig,
275
+ const { addOverrideToLintConfig, lintConfigHasOverride, isEslintConfigSupported, updateOverrideInLintConfig, addIgnoresToLintConfig,
276
276
  // nx-ignore-next-line
277
277
  } = require('@nx/eslint/src/generators/utils/eslint-file');
278
278
  // if config is not supported, we don't need to do anything
@@ -334,6 +334,10 @@ async function addLint(tree, options) {
334
334
  return o;
335
335
  });
336
336
  }
337
+ // Add out-tsc ignore pattern when using TS solution setup
338
+ if (options.isUsingTsSolutionConfig) {
339
+ addIgnoresToLintConfig(tree, options.projectRoot, ['**/out-tsc']);
340
+ }
337
341
  return task;
338
342
  }
339
343
  function addBabelRc(tree, options) {
@@ -432,8 +436,6 @@ function createFiles(tree, options) {
432
436
  };
433
437
  if (options.isUsingTsSolutionConfig &&
434
438
  !['none', 'rollup', 'vite'].includes(options.bundler)) {
435
- // the file must exist in the TS solution setup
436
- const tsconfigBase = (0, devkit_1.readJson)(tree, 'tsconfig.base.json');
437
439
  return (0, update_package_json_1.getUpdatedPackageJsonContent)(updatedPackageJson, {
438
440
  main: (0, path_1.join)(options.projectRoot, 'src/index.ts'),
439
441
  outputPath: (0, devkit_1.joinPathFragments)(options.projectRoot, 'dist'),
@@ -442,7 +444,7 @@ function createFiles(tree, options) {
442
444
  generateExportsField: true,
443
445
  packageJsonPath,
444
446
  format: ['esm'],
445
- skipDevelopmentExports: !tsconfigBase.compilerOptions?.customConditions?.includes('development'),
447
+ developmentConditionName: (0, ts_solution_setup_1.getDefinedCustomConditionName)(tree),
446
448
  });
447
449
  }
448
450
  return updatedPackageJson;
@@ -465,7 +467,6 @@ function createFiles(tree, options) {
465
467
  }
466
468
  if (options.isUsingTsSolutionConfig &&
467
469
  !['none', 'rollup', 'vite'].includes(options.bundler)) {
468
- const tsconfigBase = (0, devkit_1.readJson)(tree, 'tsconfig.base.json');
469
470
  packageJson = (0, update_package_json_1.getUpdatedPackageJsonContent)(packageJson, {
470
471
  main: (0, path_1.join)(options.projectRoot, 'src/index.ts'),
471
472
  outputPath: (0, devkit_1.joinPathFragments)(options.projectRoot, 'dist'),
@@ -474,7 +475,7 @@ function createFiles(tree, options) {
474
475
  generateExportsField: true,
475
476
  packageJsonPath,
476
477
  format: ['esm'],
477
- skipDevelopmentExports: !tsconfigBase.compilerOptions?.customConditions?.includes('development'),
478
+ developmentConditionName: (0, ts_solution_setup_1.getDefinedCustomConditionName)(tree),
478
479
  });
479
480
  }
480
481
  if (!options.useProjectJson && options.name !== options.importPath) {
@@ -1 +1 @@
1
- {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../../../../packages/js/src/generators/setup-build/generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAWL,KAAK,iBAAiB,EAEtB,KAAK,IAAI,EACV,MAAM,YAAY,CAAC;AAoBpB,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAIrD,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,iBAAiB,CAAC,CAkL5B;AAED,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../../../../packages/js/src/generators/setup-build/generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAWL,KAAK,iBAAiB,EAEtB,KAAK,IAAI,EACV,MAAM,YAAY,CAAC;AAqBpB,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAIrD,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,iBAAiB,CAAC,CAkL5B;AAED,eAAe,mBAAmB,CAAC"}
@@ -232,9 +232,6 @@ function updatePackageJson(tree, projectName, projectRoot, main, outputPath, roo
232
232
  version: '0.0.1',
233
233
  };
234
234
  }
235
- // the file must exist in the TS solution setup, which is the only case this
236
- // function is called
237
- const tsconfigBase = (0, devkit_1.readJson)(tree, 'tsconfig.base.json');
238
235
  packageJson = (0, update_package_json_1.getUpdatedPackageJsonContent)(packageJson, {
239
236
  main,
240
237
  outputPath,
@@ -243,7 +240,7 @@ function updatePackageJson(tree, projectName, projectRoot, main, outputPath, roo
243
240
  packageJsonPath,
244
241
  rootDir,
245
242
  format,
246
- skipDevelopmentExports: !tsconfigBase.compilerOptions?.customConditions?.includes('development'),
243
+ developmentConditionName: (0, ts_solution_setup_1.getDefinedCustomConditionName)(tree),
247
244
  });
248
245
  (0, devkit_1.writeJson)(tree, packageJsonPath, packageJson);
249
246
  }
@@ -221,9 +221,6 @@ function updateTsConfigReferences(tree, tsSysFromTree, tsconfigInfoCaches, tsCon
221
221
  references.push(ref);
222
222
  newReferencesSet.add(normalizedPath);
223
223
  }
224
- if (!newReferencesSet.has(normalizedPath)) {
225
- addChangedFile(changedFiles, tsConfigPath, resolvedRefPath, 'stale');
226
- }
227
224
  }
228
225
  for (const dep of dependencies) {
229
226
  // Ensure the project reference for the target is set if we can find the
@@ -280,6 +277,11 @@ function updateTsConfigReferences(tree, tsSysFromTree, tsconfigInfoCaches, tsCon
280
277
  addChangedFile(changedFiles, tsConfigPath, toFullProjectReferencePath(referencePath), 'missing');
281
278
  }
282
279
  }
280
+ for (const ref of originalReferencesSet) {
281
+ if (!newReferencesSet.has(ref)) {
282
+ addChangedFile(changedFiles, tsConfigPath, toFullProjectReferencePath((0, devkit_1.joinPathFragments)(projectRoot, ref)), 'stale');
283
+ }
284
+ }
283
285
  hasChanges ||= newReferencesSet.size !== originalReferencesSet.size;
284
286
  if (hasChanges) {
285
287
  patchTsconfigJsonReferences(tree, tsconfigInfoCaches, tsConfigPath, references);
@@ -0,0 +1,3 @@
1
+ import { type Tree } from '@nx/devkit';
2
+ export default function (tree: Tree): Promise<void>;
3
+ //# sourceMappingURL=migrate-development-custom-condition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate-development-custom-condition.d.ts","sourceRoot":"","sources":["../../../../../../packages/js/src/migrations/update-21-5-0/migrate-development-custom-condition.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,IAAI,EAEV,MAAM,YAAY,CAAC;AAIpB,yBAA+B,IAAI,EAAE,IAAI,iBAkBxC"}
@@ -0,0 +1,147 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = default_1;
4
+ const devkit_1 = require("@nx/devkit");
5
+ const ts_solution_setup_1 = require("../../utils/typescript/ts-solution-setup");
6
+ async function default_1(tree) {
7
+ if (!isDevelopmentCustomConditionDefined(tree)) {
8
+ return;
9
+ }
10
+ const packageJsonFiles = await getPackageJsonFiles(tree);
11
+ if (!(await doDevelopmentExportsPointToTsFiles(tree, packageJsonFiles))) {
12
+ return;
13
+ }
14
+ // Get the new custom condition name
15
+ const newCustomCondition = (0, ts_solution_setup_1.getCustomConditionName)(tree, {
16
+ skipDevelopmentFallback: true,
17
+ });
18
+ updateTsconfigBaseCustomCondition(tree, newCustomCondition);
19
+ await updatePackageJsonExports(tree, newCustomCondition, packageJsonFiles);
20
+ await (0, devkit_1.formatFiles)(tree);
21
+ }
22
+ /**
23
+ * Check if the development custom condition is defined in the repo:
24
+ * - Both tsconfig.base.json and tsconfig.json exist
25
+ * - customConditions is set in tsconfig.base.json
26
+ * - There's a single custom condition and it's named 'development'
27
+ */
28
+ function isDevelopmentCustomConditionDefined(tree) {
29
+ if (!tree.exists('tsconfig.base.json') || !tree.exists('tsconfig.json')) {
30
+ // if any of them don't exist, it means the repo is not using or has deviated
31
+ // from the TS solution setup, let's leave things as is
32
+ return false;
33
+ }
34
+ const tsconfigBase = (0, devkit_1.readJson)(tree, 'tsconfig.base.json');
35
+ const customConditions = tsconfigBase.compilerOptions?.customConditions;
36
+ if (!Array.isArray(customConditions) ||
37
+ customConditions.length !== 1 ||
38
+ customConditions[0] !== 'development') {
39
+ // no custom conditions, or more than one, or not named 'development', this
40
+ // means the repo is not using or has deviated from the TS solution setup
41
+ return false;
42
+ }
43
+ return true;
44
+ }
45
+ /**
46
+ * Validate that all 'development' conditional exports in workspace package.json files
47
+ * point to TypeScript files (.ts, .tsx, .mts, .cts)
48
+ */
49
+ async function doDevelopmentExportsPointToTsFiles(tree, packageJsonFiles) {
50
+ for (const filePath of packageJsonFiles) {
51
+ try {
52
+ const packageJson = (0, devkit_1.readJson)(tree, filePath);
53
+ if (!packageJson.exports || typeof packageJson.exports !== 'object') {
54
+ continue;
55
+ }
56
+ if (!checkExportsRecursively(packageJson.exports)) {
57
+ return false;
58
+ }
59
+ }
60
+ catch {
61
+ continue;
62
+ }
63
+ }
64
+ return true;
65
+ }
66
+ /**
67
+ * Check if the `development` conditional exports in the package.json file
68
+ * point to TS files.
69
+ */
70
+ function checkExportsRecursively(exports) {
71
+ if (typeof exports !== 'object' ||
72
+ exports === null ||
73
+ Array.isArray(exports)) {
74
+ // there's no conditional exports, so we're good
75
+ return true;
76
+ }
77
+ for (const [key, value] of Object.entries(exports)) {
78
+ if (key === 'development') {
79
+ // check if the development export points to a TS file
80
+ if (typeof value !== 'string' || !isTypeScriptFile(value)) {
81
+ return false;
82
+ }
83
+ }
84
+ else {
85
+ // recursively check nested objects
86
+ if (!checkExportsRecursively(value)) {
87
+ return false;
88
+ }
89
+ }
90
+ }
91
+ return true;
92
+ }
93
+ function isTypeScriptFile(filePath) {
94
+ return /\.m?ts$|\.tsx$|\.cts$/.test(filePath);
95
+ }
96
+ function updateTsconfigBaseCustomCondition(tree, newCustomCondition) {
97
+ (0, devkit_1.updateJson)(tree, 'tsconfig.base.json', (json) => {
98
+ json.compilerOptions.customConditions =
99
+ json.compilerOptions.customConditions.map((condition) => condition === 'development' ? newCustomCondition : condition);
100
+ return json;
101
+ });
102
+ }
103
+ async function updatePackageJsonExports(tree, newCustomCondition, packageJsonFiles) {
104
+ for (const filePath of packageJsonFiles) {
105
+ try {
106
+ const packageJson = (0, devkit_1.readJson)(tree, filePath);
107
+ if (!packageJson.exports || typeof packageJson.exports !== 'object') {
108
+ continue;
109
+ }
110
+ const updatedExports = updateExportsRecursively(packageJson.exports, newCustomCondition);
111
+ if (JSON.stringify(updatedExports) !== JSON.stringify(packageJson.exports)) {
112
+ (0, devkit_1.updateJson)(tree, filePath, (json) => {
113
+ json.exports = updatedExports;
114
+ return json;
115
+ });
116
+ devkit_1.logger.info(`Updated exports in ${filePath}`);
117
+ }
118
+ }
119
+ catch (error) {
120
+ continue;
121
+ }
122
+ }
123
+ }
124
+ function updateExportsRecursively(exports, newCustomCondition) {
125
+ if (typeof exports !== 'object' ||
126
+ exports === null ||
127
+ Array.isArray(exports)) {
128
+ // no conditional exports, nothing to do
129
+ return exports;
130
+ }
131
+ const updated = {};
132
+ for (const [key, value] of Object.entries(exports)) {
133
+ if (key === 'development') {
134
+ // Replace 'development' key with new custom condition
135
+ updated[newCustomCondition] = value;
136
+ }
137
+ else {
138
+ // Recursively process nested objects
139
+ updated[key] = updateExportsRecursively(value, newCustomCondition);
140
+ }
141
+ }
142
+ return updated;
143
+ }
144
+ async function getPackageJsonFiles(tree) {
145
+ const packageJsonFiles = await (0, devkit_1.globAsync)(tree, ['**/package.json']);
146
+ return packageJsonFiles.filter((file) => file !== 'package.json');
147
+ }
@@ -173,9 +173,6 @@ async function getConfigFileHash(configFilePath, workspaceRoot, projectRoot, opt
173
173
  lockFileHash,
174
174
  optionsHash,
175
175
  ...(packageJson ? [(0, file_hasher_1.hashObject)(packageJson)] : []),
176
- // change this to bust the cache when making changes that would yield
177
- // different results for the same hash
178
- (0, file_hasher_1.hashObject)({ bust: 3 }),
179
176
  ]);
180
177
  }
181
178
  function checkIfConfigFileShouldBeProject(configFilePath, projectRoot, context) {
@@ -0,0 +1,3 @@
1
+ export declare function isValidRange(range: string): boolean;
2
+ export declare function isMatchingDependencyRange(version: string, range: string): boolean;
3
+ //# sourceMappingURL=semver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semver.d.ts","sourceRoot":"","sources":["../../../../../../packages/js/src/release/utils/semver.ts"],"names":[],"mappings":"AAEA,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,WAIzC;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,WAGvE"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isValidRange = isValidRange;
4
+ exports.isMatchingDependencyRange = isMatchingDependencyRange;
5
+ const semver_1 = require("semver");
6
+ function isValidRange(range) {
7
+ // valid() will return null if a range (including ~,^,*) is used
8
+ // Check that it is null, and therefore a range
9
+ return !(0, semver_1.valid)(range) && (0, semver_1.validRange)(range) !== null;
10
+ }
11
+ function isMatchingDependencyRange(version, range) {
12
+ const coercedVersion = (0, semver_1.coerce)(version, { includePrerelease: true })?.version;
13
+ return isValidRange(range) && (0, semver_1.satisfies)(coercedVersion, range);
14
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"version-actions.d.ts","sourceRoot":"","sources":["../../../../../packages/js/src/release/version-actions.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,YAAY,EAEZ,IAAI,EAGL,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,yBAAyB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACvE,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AAK3E,eAAO,MAAM,yBAAyB,EAAE,yBAmBvC,CAAC;AAKF,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,cAAc;IAC1D,sBAAsB,WAAoB;IAEpC,oCAAoC,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC;QAC9D,cAAc,EAAE,MAAM,CAAC;QACvB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IAkBI,8BAA8B,CAClC,IAAI,EAAE,IAAI,EACV,8BAA8B,EAAE,6BAA6B,CAAC,gCAAgC,CAAC,GAC9F,OAAO,CAAC;QACT,cAAc,EAAE,MAAM,CAAC;QACvB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IAkEI,8BAA8B,CAClC,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,YAAY,EAC1B,qBAAqB,EAAE,MAAM,GAC5B,OAAO,CAAC;QACT,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;KACrC,CAAC;IA+BI,oBAAoB,CACxB,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,EAAE,CAAC;IAcd,yBAAyB,CAC7B,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,YAAY,EAC1B,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC3C,OAAO,CAAC,MAAM,EAAE,CAAC;IA+DpB,OAAO,CAAC,yBAAyB;CAyClC"}
1
+ {"version":3,"file":"version-actions.d.ts","sourceRoot":"","sources":["../../../../../packages/js/src/release/version-actions.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,YAAY,EAEZ,IAAI,EAGL,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,yBAAyB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACvE,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AAM3E,eAAO,MAAM,yBAAyB,EAAE,yBAmBvC,CAAC;AAKF,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,cAAc;IAC1D,sBAAsB,WAAoB;IAEpC,oCAAoC,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC;QAC9D,cAAc,EAAE,MAAM,CAAC;QACvB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IAkBI,8BAA8B,CAClC,IAAI,EAAE,IAAI,EACV,8BAA8B,EAAE,6BAA6B,CAAC,gCAAgC,CAAC,GAC9F,OAAO,CAAC;QACT,cAAc,EAAE,MAAM,CAAC;QACvB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IAkEI,8BAA8B,CAClC,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,YAAY,EAC1B,qBAAqB,EAAE,MAAM,GAC5B,OAAO,CAAC;QACT,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;KACrC,CAAC;IA+BI,oBAAoB,CACxB,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,EAAE,CAAC;IAcd,yBAAyB,CAC7B,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,YAAY,EAC1B,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC3C,OAAO,CAAC,MAAM,EAAE,CAAC;IAuFpB,OAAO,CAAC,yBAAyB;CAyClC"}
@@ -8,6 +8,7 @@ const release_1 = require("nx/release");
8
8
  const npm_config_1 = require("../utils/npm-config");
9
9
  const update_lock_file_1 = require("./utils/update-lock-file");
10
10
  const chalk = require("chalk");
11
+ const semver_1 = require("./utils/semver");
11
12
  const afterAllProjectsVersioned = async (cwd, { rootVersionActionsOptions, ...opts }) => {
12
13
  return {
13
14
  changedFiles: await (0, update_lock_file_1.updateLockFile)(cwd, {
@@ -136,6 +137,13 @@ class JsVersionActions extends release_1.VersionActions {
136
137
  'peerDependencies',
137
138
  'optionalDependencies',
138
139
  ];
140
+ // TODO(v22): Flip this to all by default
141
+ const preserveMatchingDependencyRanges = this.finalConfigForProject.preserveMatchingDependencyRanges === true
142
+ ? dependencyTypes
143
+ : this.finalConfigForProject.preserveMatchingDependencyRanges ===
144
+ false
145
+ ? []
146
+ : this.finalConfigForProject.preserveMatchingDependencyRanges || [];
139
147
  for (const depType of dependencyTypes) {
140
148
  if (json[depType]) {
141
149
  for (const [dep, version] of Object.entries(dependenciesToUpdate)) {
@@ -153,6 +161,18 @@ class JsVersionActions extends release_1.VersionActions {
153
161
  numDependenciesToUpdate--;
154
162
  continue;
155
163
  }
164
+ else if (preserveMatchingDependencyRanges.includes(depType) &&
165
+ !this.isLocalDependencyProtocol(currentVersion)) {
166
+ // If the dependency is specified using a range, do some additional processing to determine whether to update the version
167
+ if ((0, semver_1.isValidRange)(currentVersion) &&
168
+ !(0, semver_1.isMatchingDependencyRange)(version, currentVersion)) {
169
+ throw new Error(`"preserveMatchingDependencyRanges" is enabled for "${depType}" and the new version "${version}" is outside the current range for "${packageName}" in manifest "${manifestToUpdate.manifestPath}". Please update the range before releasing.`);
170
+ }
171
+ else if ((0, semver_1.isValidRange)(currentVersion)) {
172
+ // it is a range, but it is valid
173
+ continue;
174
+ }
175
+ }
156
176
  json[depType][packageName] = version;
157
177
  }
158
178
  }
@@ -19,7 +19,7 @@ export interface UpdatePackageJsonOption {
19
19
  buildableProjectDepsInPackageJsonType?: 'dependencies' | 'peerDependencies';
20
20
  generateLockfile?: boolean;
21
21
  packageJsonPath?: string;
22
- skipDevelopmentExports?: boolean;
22
+ developmentConditionName?: string | null;
23
23
  }
24
24
  export declare function updatePackageJson(options: UpdatePackageJsonOption, context: ExecutorContext, target: ProjectGraphProjectNode, dependencies: DependentBuildableProjectNode[], fileMap?: ProjectFileMap): void;
25
25
  interface Exports {
@@ -1 +1 @@
1
- {"version":3,"file":"update-package-json.d.ts","sourceRoot":"","sources":["../../../../../../packages/js/src/utils/package-json/update-package-json.ts"],"names":[],"mappings":"AAQA,OAAO,EAEL,eAAe,EAIf,cAAc,EAGd,uBAAuB,EAIxB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AAIxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAK7D,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,KAAK,CAAC;AAE5C,MAAM,WAAW,uBAAuB;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;IACjC,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,yBAAyB,CAAC,EAAE,IAAI,MAAM,EAAE,CAAC;IACzC,yBAAyB,CAAC,EAAE,IAAI,MAAM,EAAE,CAAC;IACzC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,uCAAuC,CAAC,EAAE,OAAO,CAAC;IAClD,qCAAqC,CAAC,EAAE,cAAc,GAAG,kBAAkB,CAAC;IAC5E,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,uBAAuB,EAChC,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,uBAAuB,EAC/B,YAAY,EAAE,6BAA6B,EAAE,EAC7C,OAAO,GAAE,cAAqB,GAC7B,IAAI,CAsFN;AAiFD,UAAU,OAAO;IACf,GAAG,EAAE,MAAM,CAAC;IAEZ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB;AAED,wBAAgB,UAAU,CACxB,OAAO,EAAE,IAAI,CACX,uBAAuB,EACrB,MAAM,GACN,SAAS,GACT,aAAa,GACb,gBAAgB,GAChB,uBAAuB,GACvB,YAAY,GACZ,iBAAiB,CACpB,GAAG;IACF,OAAO,EAAE,MAAM,CAAC;CACjB,GACA,OAAO,CAgCT;AAED,wBAAgB,4BAA4B,CAC1C,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,uBAAuB,GAC/B,WAAW,CAqGb;AA2CD,wBAAgB,YAAY,CAC1B,OAAO,EAAE,IAAI,CACX,uBAAuB,EACrB,MAAM,GACN,SAAS,GACT,aAAa,GACb,gBAAgB,GAChB,YAAY,GACZ,iBAAiB,CACpB,GACA,MAAM,CAWR"}
1
+ {"version":3,"file":"update-package-json.d.ts","sourceRoot":"","sources":["../../../../../../packages/js/src/utils/package-json/update-package-json.ts"],"names":[],"mappings":"AAQA,OAAO,EAEL,eAAe,EAIf,cAAc,EAGd,uBAAuB,EAIxB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AAIxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAK7D,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,KAAK,CAAC;AAE5C,MAAM,WAAW,uBAAuB;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;IACjC,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,yBAAyB,CAAC,EAAE,IAAI,MAAM,EAAE,CAAC;IACzC,yBAAyB,CAAC,EAAE,IAAI,MAAM,EAAE,CAAC;IACzC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,uCAAuC,CAAC,EAAE,OAAO,CAAC;IAClD,qCAAqC,CAAC,EAAE,cAAc,GAAG,kBAAkB,CAAC;IAC5E,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wBAAwB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1C;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,uBAAuB,EAChC,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,uBAAuB,EAC/B,YAAY,EAAE,6BAA6B,EAAE,EAC7C,OAAO,GAAE,cAAqB,GAC7B,IAAI,CAmFN;AAiFD,UAAU,OAAO;IACf,GAAG,EAAE,MAAM,CAAC;IAEZ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB;AAED,wBAAgB,UAAU,CACxB,OAAO,EAAE,IAAI,CACX,uBAAuB,EACrB,MAAM,GACN,SAAS,GACT,aAAa,GACb,gBAAgB,GAChB,uBAAuB,GACvB,YAAY,GACZ,iBAAiB,CACpB,GAAG;IACF,OAAO,EAAE,MAAM,CAAC;CACjB,GACA,OAAO,CAgCT;AAED,wBAAgB,4BAA4B,CAC1C,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,uBAAuB,GAC/B,WAAW,CAuGb;AA2CD,wBAAgB,YAAY,CAC1B,OAAO,EAAE,IAAI,CACX,uBAAuB,EACrB,MAAM,GACN,SAAS,GACT,aAAa,GACb,gBAAgB,GAChB,YAAY,GACZ,iBAAiB,CACpB,GACA,MAAM,CAWR"}
@@ -50,10 +50,7 @@ function updatePackageJson(options, context, target, dependencies, fileMap = nul
50
50
  options.format = ['cjs'];
51
51
  }
52
52
  // update package specific settings
53
- packageJson = getUpdatedPackageJsonContent(packageJson, {
54
- skipDevelopmentExports: true,
55
- ...options,
56
- });
53
+ packageJson = getUpdatedPackageJsonContent(packageJson, options);
57
54
  // save files
58
55
  (0, devkit_1.writeJsonFile)(`${options.outputPath}/package.json`, packageJson);
59
56
  if (options.generateLockfile) {
@@ -149,16 +146,18 @@ function getUpdatedPackageJsonContent(packageJson, options) {
149
146
  packageJson.exports ??=
150
147
  typeof packageJson.exports === 'string' ? {} : { ...packageJson.exports };
151
148
  packageJson.exports['./package.json'] ??= './package.json';
152
- if (!options.skipDevelopmentExports && (hasCjsFormat || hasEsmFormat)) {
149
+ if (options.developmentConditionName && (hasCjsFormat || hasEsmFormat)) {
153
150
  packageJson.exports['.'] ??= {};
154
151
  const developmentExports = getDevelopmentExports(options);
155
152
  for (const [exportEntry, filePath] of Object.entries(developmentExports)) {
156
153
  if (!packageJson.exports[exportEntry]) {
157
154
  packageJson.exports[exportEntry] ??= {};
158
- packageJson.exports[exportEntry]['development'] ??= filePath;
155
+ packageJson.exports[exportEntry][options.developmentConditionName] ??=
156
+ filePath;
159
157
  }
160
158
  else if (typeof packageJson.exports[exportEntry] === 'object') {
161
- packageJson.exports[exportEntry].development ??= filePath;
159
+ packageJson.exports[exportEntry][options.developmentConditionName] ??=
160
+ filePath;
162
161
  }
163
162
  }
164
163
  }
@@ -8,4 +8,16 @@ export declare function updateTsconfigFiles(tree: Tree, projectRoot: string, run
8
8
  export declare function addProjectToTsSolutionWorkspace(tree: Tree, projectDir: string): Promise<void>;
9
9
  export declare function getProjectType(tree: Tree, projectRoot: string, projectType?: 'library' | 'application'): 'library' | 'application';
10
10
  export declare function getProjectSourceRoot(project: ProjectConfiguration, tree?: Tree): string;
11
+ /**
12
+ * Get the already defined or expected custom condition name. In case it's not
13
+ * yet defined, it returns the workspace package name or '@nx/source' in case
14
+ * it's not defined.
15
+ */
16
+ export declare function getCustomConditionName(tree: Tree, options?: {
17
+ skipDevelopmentFallback?: boolean;
18
+ }): string;
19
+ /**
20
+ * Get the already defined custom condition name or null if none is defined.
21
+ */
22
+ export declare function getDefinedCustomConditionName(tree: Tree): string | null;
11
23
  //# sourceMappingURL=ts-solution-setup.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ts-solution-setup.d.ts","sourceRoot":"","sources":["../../../../../../packages/js/src/utils/typescript/ts-solution-setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,oBAAoB,EAGzB,KAAK,IAAI,EAGV,MAAM,YAAY,CAAC;AAWpB,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAU3D;AAED,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,OAAO,EACnB,WAAW,CAAC,EAAE,OAAO,GACpB,OAAO,CAsBT;AAED,wBAAgB,sBAAsB,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,OAAO,CAO3D;AAuDD,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,GACpB,IAAI,CAsBN;AAED,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,MAAM,EACnB,IAAI,CAAC,EAAE,IAAI,GACV,MAAM,GAAG,IAAI,CAOf;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,MAAM,EACnB,uBAAuB,EAAE,MAAM,EAC/B,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,CAAC,EAC5D,OAAO,GAAE,MAAM,EAAO,EACtB,OAAO,SAAQ,QAoFhB;AAED,wBAAsB,+BAA+B,CACnD,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,MAAM,iBAqDnB;AAED,wBAAgB,cAAc,CAC5B,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,SAAS,GAAG,aAAa,GACtC,SAAS,GAAG,aAAa,CAoB3B;AAED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,oBAAoB,EAC7B,IAAI,CAAC,EAAE,IAAI,GACV,MAAM,CAgBR"}
1
+ {"version":3,"file":"ts-solution-setup.d.ts","sourceRoot":"","sources":["../../../../../../packages/js/src/utils/typescript/ts-solution-setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,oBAAoB,EAGzB,KAAK,IAAI,EAGV,MAAM,YAAY,CAAC;AAWpB,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAU3D;AAED,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,OAAO,EACnB,WAAW,CAAC,EAAE,OAAO,GACpB,OAAO,CAsBT;AAED,wBAAgB,sBAAsB,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,OAAO,CAO3D;AAuDD,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,GACpB,IAAI,CAsBN;AAED,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,MAAM,EACnB,IAAI,CAAC,EAAE,IAAI,GACV,MAAM,GAAG,IAAI,CAOf;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,MAAM,EACnB,uBAAuB,EAAE,MAAM,EAC/B,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,CAAC,EAC5D,OAAO,GAAE,MAAM,EAAO,EACtB,OAAO,SAAQ,QAoFhB;AAED,wBAAsB,+BAA+B,CACnD,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,MAAM,iBAqDnB;AAED,wBAAgB,cAAc,CAC5B,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,SAAS,GAAG,aAAa,GACtC,SAAS,GAAG,aAAa,CAoB3B;AAED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,oBAAoB,EAC7B,IAAI,CAAC,EAAE,IAAI,GACV,MAAM,CAgBR;AAKD;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,IAAI,EACV,OAAO,GAAE;IAAE,uBAAuB,CAAC,EAAE,OAAO,CAAA;CAAO,GAClD,MAAM,CAqCR;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAqCvE"}