@nx/devkit 0.0.0-pr-32947-aa25f06 → 0.0.0-pr-32978-f3ca7f3

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 (44) hide show
  1. package/package.json +4 -3
  2. package/public-api.d.ts +1 -1
  3. package/public-api.d.ts.map +1 -1
  4. package/public-api.js +2 -1
  5. package/src/generators/plugin-migrations/executor-to-plugin-migrator.d.ts +2 -2
  6. package/src/generators/plugin-migrations/executor-to-plugin-migrator.d.ts.map +1 -1
  7. package/src/generators/target-defaults-utils.d.ts.map +1 -1
  8. package/src/utils/add-plugin.d.ts +2 -2
  9. package/src/utils/add-plugin.d.ts.map +1 -1
  10. package/src/utils/calculate-hash-for-create-nodes.d.ts +3 -3
  11. package/src/utils/calculate-hash-for-create-nodes.d.ts.map +1 -1
  12. package/src/utils/catalog/errors.d.ts +10 -0
  13. package/src/utils/catalog/errors.d.ts.map +1 -0
  14. package/src/utils/catalog/errors.js +19 -0
  15. package/src/utils/catalog/index.d.ts +12 -0
  16. package/src/utils/catalog/index.d.ts.map +1 -0
  17. package/src/utils/catalog/index.js +52 -0
  18. package/src/utils/catalog/manager-factory.d.ts +6 -0
  19. package/src/utils/catalog/manager-factory.d.ts.map +1 -0
  20. package/src/utils/catalog/manager-factory.js +24 -0
  21. package/src/utils/catalog/manager.d.ts +50 -0
  22. package/src/utils/catalog/manager.d.ts.map +1 -0
  23. package/src/utils/catalog/manager.js +2 -0
  24. package/src/utils/catalog/pnpm-manager.d.ts +26 -0
  25. package/src/utils/catalog/pnpm-manager.d.ts.map +1 -0
  26. package/src/utils/catalog/pnpm-manager.js +258 -0
  27. package/src/utils/catalog/types.d.ts +18 -0
  28. package/src/utils/catalog/types.d.ts.map +1 -0
  29. package/src/utils/catalog/types.js +10 -0
  30. package/src/utils/catalog/unsupported-manager.d.ts +38 -0
  31. package/src/utils/catalog/unsupported-manager.d.ts.map +1 -0
  32. package/src/utils/catalog/unsupported-manager.js +58 -0
  33. package/src/utils/find-plugin-for-config-file.d.ts.map +1 -1
  34. package/src/utils/get-named-inputs.d.ts +2 -2
  35. package/src/utils/get-named-inputs.d.ts.map +1 -1
  36. package/src/utils/package-json.d.ts +55 -1
  37. package/src/utils/package-json.d.ts.map +1 -1
  38. package/src/utils/package-json.js +225 -42
  39. package/src/utils/replace-project-configuration-with-plugin.d.ts +2 -2
  40. package/src/utils/replace-project-configuration-with-plugin.d.ts.map +1 -1
  41. package/src/utils/replace-project-configuration-with-plugin.js +8 -8
  42. package/src/utils/semver.d.ts +2 -0
  43. package/src/utils/semver.d.ts.map +1 -1
  44. package/src/utils/semver.js +26 -5
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nx/devkit",
3
- "version": "0.0.0-pr-32947-aa25f06",
3
+ "version": "0.0.0-pr-32978-f3ca7f3",
4
4
  "private": false,
5
5
  "description": "The Nx Devkit is used to customize Nx for different technologies and use cases. It contains many utility functions for reading and writing files, updating configuration, working with Abstract Syntax Trees(ASTs), and more. Learn more about [extending Nx by leveraging the Nx Devkit](https://nx.dev/extending-nx/intro/getting-started) on our docs.",
6
6
  "repository": {
@@ -28,6 +28,7 @@
28
28
  },
29
29
  "homepage": "https://nx.dev",
30
30
  "dependencies": {
31
+ "@zkochan/js-yaml": "0.0.7",
31
32
  "ejs": "^3.1.7",
32
33
  "tslib": "^2.3.0",
33
34
  "semver": "^7.5.3",
@@ -37,10 +38,10 @@
37
38
  },
38
39
  "devDependencies": {
39
40
  "jest": "^29.4.1",
40
- "nx": "0.0.0-pr-32947-aa25f06"
41
+ "nx": "0.0.0-pr-32978-f3ca7f3"
41
42
  },
42
43
  "peerDependencies": {
43
- "nx": ">= -1 <= 1"
44
+ "nx": "0.0.0-pr-32978-f3ca7f3"
44
45
  },
45
46
  "publishConfig": {
46
47
  "access": "public"
package/public-api.d.ts CHANGED
@@ -39,7 +39,7 @@ export { readTargetOptions } from './src/executors/read-target-options';
39
39
  /**
40
40
  * @category Utils
41
41
  */
42
- export { addDependenciesToPackageJson, removeDependenciesFromPackageJson, ensurePackage, NX_VERSION, } from './src/utils/package-json';
42
+ export { addDependenciesToPackageJson, removeDependenciesFromPackageJson, ensurePackage, getDependencyVersionFromPackageJson, NX_VERSION, } from './src/utils/package-json';
43
43
  /**
44
44
  * @category Utils
45
45
  */
@@ -1 +1 @@
1
- {"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../../../packages/devkit/public-api.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;GAEG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAE5D;;GAEG;AACH,OAAO,EACL,aAAa,EACb,iBAAiB,GAClB,MAAM,iCAAiC,CAAC;AAEzC;;GAEG;AACH,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE3D;;GAEG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAE/E;;GAEG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAExE;;GAEG;AACH,OAAO,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAEhF,OAAO,EACL,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,qCAAqC,CAAC;AAE7C;;GAEG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAExE;;GAEG;AACH,OAAO,EACL,4BAA4B,EAC5B,iCAAiC,EACjC,aAAa,EACb,UAAU,GACX,MAAM,0BAA0B,CAAC;AAElC;;GAEG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAExE;;GAEG;AACH,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C;;GAEG;AACH,OAAO,EACL,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,kCAAkC,CAAC;AAE1C;;GAEG;AACH,YAAY,EACV,YAAY,EACZ,cAAc,EACd,eAAe,GAChB,MAAM,2BAA2B,CAAC;AAEnC;;GAEG;AACH,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE7E;;GAEG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D;;GAEG;AACH,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAErE;;GAEG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAEpE;;GAEG;AACH,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../../../packages/devkit/public-api.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;GAEG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAE5D;;GAEG;AACH,OAAO,EACL,aAAa,EACb,iBAAiB,GAClB,MAAM,iCAAiC,CAAC;AAEzC;;GAEG;AACH,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE3D;;GAEG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAE/E;;GAEG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAExE;;GAEG;AACH,OAAO,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAEhF,OAAO,EACL,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,qCAAqC,CAAC;AAE7C;;GAEG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAExE;;GAEG;AACH,OAAO,EACL,4BAA4B,EAC5B,iCAAiC,EACjC,aAAa,EACb,mCAAmC,EACnC,UAAU,GACX,MAAM,0BAA0B,CAAC;AAElC;;GAEG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAExE;;GAEG;AACH,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C;;GAEG;AACH,OAAO,EACL,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,kCAAkC,CAAC;AAE1C;;GAEG;AACH,YAAY,EACV,YAAY,EACZ,cAAc,EACd,eAAe,GAChB,MAAM,2BAA2B,CAAC;AAEnC;;GAEG;AACH,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE7E;;GAEG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D;;GAEG;AACH,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAErE;;GAEG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAEpE;;GAEG;AACH,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC"}
package/public-api.js CHANGED
@@ -9,7 +9,7 @@
9
9
  * a. We might need to duplicate code instead of importing from nx until all supported versions of nx contain the file.
10
10
  */
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.moveFilesToNewDirectory = exports.convertNxExecutor = exports.convertNxGenerator = exports.offsetFromRoot = exports.ChangeType = exports.applyChangesToString = exports.extractLayoutDirectory = exports.getWorkspaceLayout = exports.names = exports.installPackagesTask = exports.NX_VERSION = exports.ensurePackage = exports.removeDependenciesFromPackageJson = exports.addDependenciesToPackageJson = exports.readTargetOptions = exports.targetToTargetString = exports.parseTargetString = exports.visitNotIgnoredFiles = exports.runTasksInSerial = exports.updateTsConfigsToJs = exports.toJS = exports.OverwriteStrategy = exports.generateFiles = exports.formatFiles = void 0;
12
+ exports.moveFilesToNewDirectory = exports.convertNxExecutor = exports.convertNxGenerator = exports.offsetFromRoot = exports.ChangeType = exports.applyChangesToString = exports.extractLayoutDirectory = exports.getWorkspaceLayout = exports.names = exports.installPackagesTask = exports.NX_VERSION = exports.getDependencyVersionFromPackageJson = exports.ensurePackage = exports.removeDependenciesFromPackageJson = exports.addDependenciesToPackageJson = exports.readTargetOptions = exports.targetToTargetString = exports.parseTargetString = exports.visitNotIgnoredFiles = exports.runTasksInSerial = exports.updateTsConfigsToJs = exports.toJS = exports.OverwriteStrategy = exports.generateFiles = exports.formatFiles = void 0;
13
13
  /**
14
14
  * @category Generators
15
15
  */
@@ -56,6 +56,7 @@ var package_json_1 = require("./src/utils/package-json");
56
56
  Object.defineProperty(exports, "addDependenciesToPackageJson", { enumerable: true, get: function () { return package_json_1.addDependenciesToPackageJson; } });
57
57
  Object.defineProperty(exports, "removeDependenciesFromPackageJson", { enumerable: true, get: function () { return package_json_1.removeDependenciesFromPackageJson; } });
58
58
  Object.defineProperty(exports, "ensurePackage", { enumerable: true, get: function () { return package_json_1.ensurePackage; } });
59
+ Object.defineProperty(exports, "getDependencyVersionFromPackageJson", { enumerable: true, get: function () { return package_json_1.getDependencyVersionFromPackageJson; } });
59
60
  Object.defineProperty(exports, "NX_VERSION", { enumerable: true, get: function () { return package_json_1.NX_VERSION; } });
60
61
  /**
61
62
  * @category Utils
@@ -1,5 +1,5 @@
1
1
  import type { ProjectConfiguration } from 'nx/src/config/workspace-json-project-json';
2
- import { type CreateNodes, type CreateNodesV2, type ProjectGraph, type TargetConfiguration, type Tree } from 'nx/src/devkit-exports';
2
+ import { type CreateNodesV2, type ProjectGraph, type TargetConfiguration, type Tree } from 'nx/src/devkit-exports';
3
3
  import { logger as devkitLogger } from 'nx/src/devkit-exports';
4
4
  export type InferredTargetConfiguration = TargetConfiguration & {
5
5
  name: string;
@@ -20,7 +20,7 @@ export declare function migrateProjectExecutorsToPlugin<T>(tree: Tree, projectGr
20
20
  skipProjectFilter?: SkipProjectFilter;
21
21
  skipTargetFilter?: SkipTargetFilter;
22
22
  }>, specificProjectToMigrate?: string, logger?: typeof devkitLogger): Promise<Map<string, Record<string, string>>>;
23
- export declare function migrateProjectExecutorsToPluginV1<T>(tree: Tree, projectGraph: ProjectGraph, pluginPath: string, createNodes: CreateNodes<T>, defaultPluginOptions: T, migrations: Array<{
23
+ export declare function migrateProjectExecutorsToPluginV1<T>(tree: Tree, projectGraph: ProjectGraph, pluginPath: string, createNodes: CreateNodesV2<T>, defaultPluginOptions: T, migrations: Array<{
24
24
  executors: string[];
25
25
  targetPluginOptionMapper: (targetName: string) => Partial<T>;
26
26
  postTargetTransformer: PostTargetTransformer;
@@ -1 +1 @@
1
- {"version":3,"file":"executor-to-plugin-migrator.d.ts","sourceRoot":"","sources":["../../../../../../packages/devkit/src/generators/plugin-migrations/executor-to-plugin-migrator.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,oBAAoB,EACrB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAKL,KAAK,WAAW,EAChB,KAAK,aAAa,EAGlB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,IAAI,EACV,MAAM,uBAAuB,CAAC;AAW/B,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE/D,MAAM,MAAM,2BAA2B,GAAG,mBAAmB,GAAG;IAC9D,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,KAAK,qBAAqB,GAAG,CAC3B,mBAAmB,EAAE,mBAAmB,EACxC,IAAI,EAAE,IAAI,EACV,cAAc,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EACrD,2BAA2B,EAAE,2BAA2B,KACrD,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;AACxD,KAAK,gBAAgB,GAAG,CACtB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACtC,oBAAoB,EAAE,oBAAoB,KACvC,KAAK,GAAG,MAAM,CAAC;AACpB,KAAK,iBAAiB,GAAG,CACvB,oBAAoB,EAAE,oBAAoB,KACvC,KAAK,GAAG,MAAM,CAAC;AAsSpB,qBAAa,uBAAwB,SAAQ,KAAK;;CAIjD;AAED,wBAAsB,+BAA+B,CAAC,CAAC,EACrD,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC,EAC/B,oBAAoB,EAAE,CAAC,EACvB,UAAU,EAAE,KAAK,CAAC;IAChB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,wBAAwB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC7D,qBAAqB,EAAE,qBAAqB,CAAC;IAC7C,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC,CAAC,EACF,wBAAwB,CAAC,EAAE,MAAM,EACjC,MAAM,CAAC,EAAE,OAAO,YAAY,GAC3B,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAc9C;AAED,wBAAsB,iCAAiC,CAAC,CAAC,EACvD,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,EAC3B,oBAAoB,EAAE,CAAC,EACvB,UAAU,EAAE,KAAK,CAAC;IAChB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,wBAAwB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC7D,qBAAqB,EAAE,qBAAqB,CAAC;IAC7C,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC,CAAC,EACF,wBAAwB,CAAC,EAAE,MAAM,GAChC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAa9C"}
1
+ {"version":3,"file":"executor-to-plugin-migrator.d.ts","sourceRoot":"","sources":["../../../../../../packages/devkit/src/generators/plugin-migrations/executor-to-plugin-migrator.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,oBAAoB,EACrB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAKL,KAAK,aAAa,EAGlB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,IAAI,EACV,MAAM,uBAAuB,CAAC;AAW/B,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE/D,MAAM,MAAM,2BAA2B,GAAG,mBAAmB,GAAG;IAC9D,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,KAAK,qBAAqB,GAAG,CAC3B,mBAAmB,EAAE,mBAAmB,EACxC,IAAI,EAAE,IAAI,EACV,cAAc,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EACrD,2BAA2B,EAAE,2BAA2B,KACrD,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;AACxD,KAAK,gBAAgB,GAAG,CACtB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACtC,oBAAoB,EAAE,oBAAoB,KACvC,KAAK,GAAG,MAAM,CAAC;AACpB,KAAK,iBAAiB,GAAG,CACvB,oBAAoB,EAAE,oBAAoB,KACvC,KAAK,GAAG,MAAM,CAAC;AAsSpB,qBAAa,uBAAwB,SAAQ,KAAK;;CAIjD;AAED,wBAAsB,+BAA+B,CAAC,CAAC,EACrD,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC,EAC/B,oBAAoB,EAAE,CAAC,EACvB,UAAU,EAAE,KAAK,CAAC;IAChB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,wBAAwB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC7D,qBAAqB,EAAE,qBAAqB,CAAC;IAC7C,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC,CAAC,EACF,wBAAwB,CAAC,EAAE,MAAM,EACjC,MAAM,CAAC,EAAE,OAAO,YAAY,GAC3B,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAc9C;AAED,wBAAsB,iCAAiC,CAAC,CAAC,EACvD,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC,EAC7B,oBAAoB,EAAE,CAAC,EACvB,UAAU,EAAE,KAAK,CAAC;IAChB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,wBAAwB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC7D,qBAAqB,EAAE,qBAAqB,CAAC;IAC7C,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC,CAAC,EACF,wBAAwB,CAAC,EAAE,MAAM,GAChC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAa9C"}
@@ -1 +1 @@
1
- {"version":3,"file":"target-defaults-utils.d.ts","sourceRoot":"","sources":["../../../../../packages/devkit/src/generators/target-defaults-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,IAAI,EAGV,MAAM,uBAAuB,CAAC;AAG/B,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,MAAM,EACpB,eAAe,SAAU,GACxB,IAAI,CAYN;AAED,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,mBAAmB,EAAE,MAAM,GAC1B,OAAO,CAAC,IAAI,CAAC,CAgEf"}
1
+ {"version":3,"file":"target-defaults-utils.d.ts","sourceRoot":"","sources":["../../../../../packages/devkit/src/generators/target-defaults-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,IAAI,EAGV,MAAM,uBAAuB,CAAC;AAG/B,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,MAAM,EACpB,eAAe,SAAU,GACxB,IAAI,CAYN;AAED,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,mBAAmB,EAAE,MAAM,GAC1B,OAAO,CAAC,IAAI,CAAC,CAgEf"}
@@ -1,4 +1,4 @@
1
- import { CreateNodes, CreateNodesV2, ProjectGraph, Tree } from 'nx/src/devkit-exports';
1
+ import { CreateNodesV2, ProjectGraph, Tree } from 'nx/src/devkit-exports';
2
2
  /**
3
3
  * Iterates through various forms of plugin options to find the one which does not conflict with the current graph
4
4
 
@@ -9,6 +9,6 @@ export declare function addPlugin<PluginOptions>(tree: Tree, graph: ProjectGraph
9
9
  * Iterates through various forms of plugin options to find the one which does not conflict with the current graph
10
10
 
11
11
  */
12
- export declare function addPluginV1<PluginOptions>(tree: Tree, graph: ProjectGraph, pluginName: string, createNodesTuple: CreateNodes<PluginOptions>, options: Partial<Record<keyof PluginOptions, PluginOptions[keyof PluginOptions][]>>, shouldUpdatePackageJsonScripts: boolean): Promise<void>;
12
+ export declare function addPluginV1<PluginOptions>(tree: Tree, graph: ProjectGraph, pluginName: string, createNodesTuple: CreateNodesV2<PluginOptions>, options: Partial<Record<keyof PluginOptions, PluginOptions[keyof PluginOptions][]>>, shouldUpdatePackageJsonScripts: boolean): Promise<void>;
13
13
  export declare function generateCombinations<T>(input: Record<string, T[]>): Record<string, T>[];
14
14
  //# sourceMappingURL=add-plugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"add-plugin.d.ts","sourceRoot":"","sources":["../../../../../packages/devkit/src/utils/add-plugin.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,WAAW,EACX,aAAa,EAEb,YAAY,EAGZ,IAAI,EAGL,MAAM,uBAAuB,CAAC;AAQ/B;;;GAGG;AACH,wBAAsB,SAAS,CAAC,aAAa,EAC3C,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,YAAY,EACnB,UAAU,EAAE,MAAM,EAClB,gBAAgB,EAAE,aAAa,CAAC,aAAa,CAAC,EAC9C,OAAO,EAAE,OAAO,CACd,MAAM,CAAC,MAAM,aAAa,EAAE,aAAa,CAAC,MAAM,aAAa,CAAC,EAAE,CAAC,CAClE,EACD,8BAA8B,EAAE,OAAO,GACtC,OAAO,CAAC,IAAI,CAAC,CAmBf;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,aAAa,EAC7C,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,YAAY,EACnB,UAAU,EAAE,MAAM,EAClB,gBAAgB,EAAE,WAAW,CAAC,aAAa,CAAC,EAC5C,OAAO,EAAE,OAAO,CACd,MAAM,CAAC,MAAM,aAAa,EAAE,aAAa,CAAC,MAAM,aAAa,CAAC,EAAE,CAAC,CAClE,EACD,8BAA8B,EAAE,OAAO,GACtC,OAAO,CAAC,IAAI,CAAC,CAmBf;AAoUD,wBAAgB,oBAAoB,CAAC,CAAC,EACpC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,GACzB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAarB"}
1
+ {"version":3,"file":"add-plugin.d.ts","sourceRoot":"","sources":["../../../../../packages/devkit/src/utils/add-plugin.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,aAAa,EAEb,YAAY,EAGZ,IAAI,EAGL,MAAM,uBAAuB,CAAC;AAQ/B;;;GAGG;AACH,wBAAsB,SAAS,CAAC,aAAa,EAC3C,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,YAAY,EACnB,UAAU,EAAE,MAAM,EAClB,gBAAgB,EAAE,aAAa,CAAC,aAAa,CAAC,EAC9C,OAAO,EAAE,OAAO,CACd,MAAM,CAAC,MAAM,aAAa,EAAE,aAAa,CAAC,MAAM,aAAa,CAAC,EAAE,CAAC,CAClE,EACD,8BAA8B,EAAE,OAAO,GACtC,OAAO,CAAC,IAAI,CAAC,CAmBf;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,aAAa,EAC7C,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,YAAY,EACnB,UAAU,EAAE,MAAM,EAClB,gBAAgB,EAAE,aAAa,CAAC,aAAa,CAAC,EAC9C,OAAO,EAAE,OAAO,CACd,MAAM,CAAC,MAAM,aAAa,EAAE,aAAa,CAAC,MAAM,aAAa,CAAC,EAAE,CAAC,CAClE,EACD,8BAA8B,EAAE,OAAO,GACtC,OAAO,CAAC,IAAI,CAAC,CAmBf;AAoUD,wBAAgB,oBAAoB,CAAC,CAAC,EACpC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,GACzB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAarB"}
@@ -1,4 +1,4 @@
1
- import { CreateNodesContext, CreateNodesContextV2 } from 'nx/src/devkit-exports';
2
- export declare function calculateHashForCreateNodes(projectRoot: string, options: object, context: CreateNodesContext | CreateNodesContextV2, additionalGlobs?: string[]): Promise<string>;
3
- export declare function calculateHashesForCreateNodes(projectRoots: string[], options: object, context: CreateNodesContext | CreateNodesContextV2, additionalGlobs?: string[][]): Promise<string[]>;
1
+ import { CreateNodesContextV2 } from 'nx/src/devkit-exports';
2
+ export declare function calculateHashForCreateNodes(projectRoot: string, options: object, context: CreateNodesContextV2, additionalGlobs?: string[]): Promise<string>;
3
+ export declare function calculateHashesForCreateNodes(projectRoots: string[], options: object, context: CreateNodesContextV2, additionalGlobs?: string[][]): Promise<string[]>;
4
4
  //# sourceMappingURL=calculate-hash-for-create-nodes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"calculate-hash-for-create-nodes.d.ts","sourceRoot":"","sources":["../../../../../packages/devkit/src/utils/calculate-hash-for-create-nodes.ts"],"names":[],"mappings":"AACA,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EAErB,MAAM,uBAAuB,CAAC;AAQ/B,wBAAsB,2BAA2B,CAC/C,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,kBAAkB,GAAG,oBAAoB,EAClD,eAAe,GAAE,MAAM,EAAO,GAC7B,OAAO,CAAC,MAAM,CAAC,CAQjB;AAED,wBAAsB,6BAA6B,CACjD,YAAY,EAAE,MAAM,EAAE,EACtB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,kBAAkB,GAAG,oBAAoB,EAClD,eAAe,GAAE,MAAM,EAAE,EAAO,GAC/B,OAAO,CAAC,MAAM,EAAE,CAAC,CAkBnB"}
1
+ {"version":3,"file":"calculate-hash-for-create-nodes.d.ts","sourceRoot":"","sources":["../../../../../packages/devkit/src/utils/calculate-hash-for-create-nodes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAa,MAAM,uBAAuB,CAAC;AAQxE,wBAAsB,2BAA2B,CAC/C,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,oBAAoB,EAC7B,eAAe,GAAE,MAAM,EAAO,GAC7B,OAAO,CAAC,MAAM,CAAC,CAQjB;AAED,wBAAsB,6BAA6B,CACjD,YAAY,EAAE,MAAM,EAAE,EACtB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,oBAAoB,EAC7B,eAAe,GAAE,MAAM,EAAE,EAAO,GAC/B,OAAO,CAAC,MAAM,EAAE,CAAC,CAkBnB"}
@@ -0,0 +1,10 @@
1
+ import type { CatalogError } from './types';
2
+ export declare class CatalogValidationError extends Error {
3
+ readonly catalogError: CatalogError;
4
+ constructor(catalogError: CatalogError, message?: string);
5
+ }
6
+ export declare class CatalogUnsupportedError extends Error {
7
+ readonly packageManager: string;
8
+ constructor(packageManager: string, operation: string);
9
+ }
10
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../../../../packages/devkit/src/utils/catalog/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,qBAAa,sBAAuB,SAAQ,KAAK;aACnB,YAAY,EAAE,YAAY;gBAA1B,YAAY,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,MAAM;CAIzE;AAED,qBAAa,uBAAwB,SAAQ,KAAK;aACpB,cAAc,EAAE,MAAM;gBAAtB,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;CAMtE"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CatalogUnsupportedError = exports.CatalogValidationError = void 0;
4
+ class CatalogValidationError extends Error {
5
+ constructor(catalogError, message) {
6
+ super(message || catalogError.message);
7
+ this.catalogError = catalogError;
8
+ this.name = 'CatalogValidationError';
9
+ }
10
+ }
11
+ exports.CatalogValidationError = CatalogValidationError;
12
+ class CatalogUnsupportedError extends Error {
13
+ constructor(packageManager, operation) {
14
+ super(`Tried to ${operation} but Nx doesn't support catalogs for the current package manager (${packageManager})`);
15
+ this.packageManager = packageManager;
16
+ this.name = 'CatalogUnsupportedError';
17
+ }
18
+ }
19
+ exports.CatalogUnsupportedError = CatalogUnsupportedError;
@@ -0,0 +1,12 @@
1
+ import { type Tree } from 'nx/src/devkit-exports';
2
+ import { getCatalogManager } from './manager-factory';
3
+ import type { CatalogError } from './types';
4
+ import type { CatalogManager } from './manager';
5
+ export { getCatalogManager };
6
+ /**
7
+ * Detects which packages in a package.json use catalog references
8
+ * Returns Map of package name -> catalog name (undefined for default catalog)
9
+ */
10
+ export declare function getCatalogDependenciesFromPackageJson(tree: Tree, packageJsonPath: string, manager: CatalogManager): Map<string, string | undefined>;
11
+ export declare function formatCatalogError(error: CatalogError): string;
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/devkit/src/utils/catalog/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEhD,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAE7B;;;GAGG;AACH,wBAAgB,qCAAqC,CACnD,IAAI,EAAE,IAAI,EACV,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,cAAc,GACtB,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAmCjC;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAW9D"}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getCatalogManager = void 0;
4
+ exports.getCatalogDependenciesFromPackageJson = getCatalogDependenciesFromPackageJson;
5
+ exports.formatCatalogError = formatCatalogError;
6
+ const devkit_exports_1 = require("nx/src/devkit-exports");
7
+ const manager_factory_1 = require("./manager-factory");
8
+ Object.defineProperty(exports, "getCatalogManager", { enumerable: true, get: function () { return manager_factory_1.getCatalogManager; } });
9
+ /**
10
+ * Detects which packages in a package.json use catalog references
11
+ * Returns Map of package name -> catalog name (undefined for default catalog)
12
+ */
13
+ function getCatalogDependenciesFromPackageJson(tree, packageJsonPath, manager) {
14
+ const catalogDeps = new Map();
15
+ if (!tree.exists(packageJsonPath)) {
16
+ return catalogDeps;
17
+ }
18
+ if (!manager.supportsCatalogs()) {
19
+ return catalogDeps;
20
+ }
21
+ try {
22
+ const packageJson = (0, devkit_exports_1.readJson)(tree, packageJsonPath);
23
+ const allDependencies = {
24
+ ...packageJson.dependencies,
25
+ ...packageJson.devDependencies,
26
+ ...packageJson.peerDependencies,
27
+ ...packageJson.optionalDependencies,
28
+ };
29
+ for (const [packageName, version] of Object.entries(allDependencies || {})) {
30
+ if (manager.isCatalogReference(version)) {
31
+ const catalogRef = manager.parseCatalogReference(version);
32
+ if (catalogRef) {
33
+ catalogDeps.set(packageName, catalogRef.catalogName);
34
+ }
35
+ }
36
+ }
37
+ }
38
+ catch (error) {
39
+ // If we can't read the package.json, return empty map
40
+ }
41
+ return catalogDeps;
42
+ }
43
+ function formatCatalogError(error) {
44
+ let message = error.message;
45
+ if (error.suggestions && error.suggestions.length > 0) {
46
+ message += '\n\nSuggestions:';
47
+ error.suggestions.forEach((suggestion) => {
48
+ message += `\n • ${suggestion}`;
49
+ });
50
+ }
51
+ return message;
52
+ }
@@ -0,0 +1,6 @@
1
+ import type { CatalogManager } from './manager';
2
+ /**
3
+ * Factory function to get the appropriate catalog manager based on the package manager
4
+ */
5
+ export declare function getCatalogManager(workspaceRoot: string): CatalogManager;
6
+ //# sourceMappingURL=manager-factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager-factory.d.ts","sourceRoot":"","sources":["../../../../../../packages/devkit/src/utils/catalog/manager-factory.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAShD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,cAAc,CAevE"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getCatalogManager = getCatalogManager;
4
+ const devkit_exports_1 = require("nx/src/devkit-exports");
5
+ const pnpm_manager_1 = require("./pnpm-manager");
6
+ const unsupported_manager_1 = require("./unsupported-manager");
7
+ /**
8
+ * Factory function to get the appropriate catalog manager based on the package manager
9
+ */
10
+ function getCatalogManager(workspaceRoot) {
11
+ const packageManager = (0, devkit_exports_1.detectPackageManager)(workspaceRoot);
12
+ switch (packageManager) {
13
+ case 'pnpm':
14
+ return new pnpm_manager_1.PnpmCatalogManager();
15
+ case 'npm':
16
+ return new unsupported_manager_1.NpmCatalogManager();
17
+ case 'yarn':
18
+ return new unsupported_manager_1.YarnCatalogManager();
19
+ case 'bun':
20
+ return new unsupported_manager_1.BunCatalogManager();
21
+ default:
22
+ return new unsupported_manager_1.UnknownCatalogManager();
23
+ }
24
+ }
@@ -0,0 +1,50 @@
1
+ import type { Tree } from 'nx/src/devkit-exports';
2
+ import type { PnpmWorkspaceYaml } from 'nx/src/utils/pnpm-workspace';
3
+ import type { CatalogError, CatalogReference } from './types';
4
+ /**
5
+ * Interface for catalog managers that handle package manager-specific catalog implementations.
6
+ */
7
+ export interface CatalogManager {
8
+ readonly name: string;
9
+ /**
10
+ * Check if this package manager supports catalogs.
11
+ */
12
+ supportsCatalogs(): boolean;
13
+ isCatalogReference(version: string): boolean;
14
+ parseCatalogReference(version: string): CatalogReference | null;
15
+ /**
16
+ * Get catalog definitions from the workspace.
17
+ */
18
+ getCatalogDefinitions(workspaceRoot: string): PnpmWorkspaceYaml | null;
19
+ getCatalogDefinitions(tree: Tree): PnpmWorkspaceYaml | null;
20
+ /**
21
+ * Resolve a catalog reference to an actual version.
22
+ */
23
+ resolveCatalogReference(workspaceRoot: string, packageName: string, version: string): string | null;
24
+ resolveCatalogReference(tree: Tree, packageName: string, version: string): string | null;
25
+ /**
26
+ * Check that a catalog reference is valid.
27
+ */
28
+ validateCatalogReference(workspaceRoot: string, packageName: string, version: string): {
29
+ isValid: boolean;
30
+ error?: CatalogError;
31
+ };
32
+ validateCatalogReference(tree: Tree, packageName: string, version: string): {
33
+ isValid: boolean;
34
+ error?: CatalogError;
35
+ };
36
+ /**
37
+ * Updates catalog definitions for specified packages in their respective catalogs.
38
+ */
39
+ updateCatalogVersions(tree: Tree, updates: Array<{
40
+ packageName: string;
41
+ version: string;
42
+ catalogName?: string;
43
+ }>): void;
44
+ updateCatalogVersions(workspaceRoot: string, updates: Array<{
45
+ packageName: string;
46
+ version: string;
47
+ catalogName?: string;
48
+ }>): void;
49
+ }
50
+ //# sourceMappingURL=manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../../../../packages/devkit/src/utils/catalog/manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,gBAAgB,IAAI,OAAO,CAAC;IAE5B,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IAE7C,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAAC;IAEhE;;OAEG;IACH,qBAAqB,CAAC,aAAa,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAAC;IACvE,qBAAqB,CAAC,IAAI,EAAE,IAAI,GAAG,iBAAiB,GAAG,IAAI,CAAC;IAE5D;;OAEG;IACH,uBAAuB,CACrB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GACd,MAAM,GAAG,IAAI,CAAC;IACjB,uBAAuB,CACrB,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GACd,MAAM,GAAG,IAAI,CAAC;IAEjB;;OAEG;IACH,wBAAwB,CACtB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GACd;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,YAAY,CAAA;KAAE,CAAC;IAC9C,wBAAwB,CACtB,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GACd;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,YAAY,CAAA;KAAE,CAAC;IAE9C;;OAEG;IACH,qBAAqB,CACnB,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,KAAK,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC,GACD,IAAI,CAAC;IACR,qBAAqB,CACnB,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,KAAK,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC,GACD,IAAI,CAAC;CACT"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,26 @@
1
+ import { type Tree } from 'nx/src/devkit-exports';
2
+ import type { PnpmWorkspaceYaml } from 'nx/src/utils/pnpm-workspace';
3
+ import type { CatalogManager } from './manager';
4
+ import { type CatalogError, type CatalogReference } from './types';
5
+ /**
6
+ * PNPM-specific catalog manager implementation
7
+ */
8
+ export declare class PnpmCatalogManager implements CatalogManager {
9
+ readonly name = "pnpm";
10
+ readonly catalogProtocol = "catalog:";
11
+ supportsCatalogs(): boolean;
12
+ isCatalogReference(version: string): boolean;
13
+ parseCatalogReference(version: string): CatalogReference | null;
14
+ getCatalogDefinitions(treeOrRoot: Tree | string): PnpmWorkspaceYaml | null;
15
+ resolveCatalogReference(treeOrRoot: Tree | string, packageName: string, version: string): string | null;
16
+ validateCatalogReference(treeOrRoot: Tree | string, packageName: string, version: string): {
17
+ isValid: boolean;
18
+ error?: CatalogError;
19
+ };
20
+ updateCatalogVersions(treeOrRoot: Tree | string, updates: Array<{
21
+ packageName: string;
22
+ version: string;
23
+ catalogName?: string;
24
+ }>): void;
25
+ }
26
+ //# sourceMappingURL=pnpm-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pnpm-manager.d.ts","sourceRoot":"","sources":["../../../../../../packages/devkit/src/utils/catalog/pnpm-manager.ts"],"names":[],"mappings":"AAGA,OAAO,EAAU,KAAK,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,KAAK,EAEV,iBAAiB,EAClB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EACL,KAAK,YAAY,EAEjB,KAAK,gBAAgB,EACtB,MAAM,SAAS,CAAC;AAEjB;;GAEG;AACH,qBAAa,kBAAmB,YAAW,cAAc;IACvD,QAAQ,CAAC,IAAI,UAAU;IACvB,QAAQ,CAAC,eAAe,cAAc;IAEtC,gBAAgB,IAAI,OAAO;IAI3B,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAI5C,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI;IAa/D,qBAAqB,CAAC,UAAU,EAAE,IAAI,GAAG,MAAM,GAAG,iBAAiB,GAAG,IAAI;IAe1E,uBAAuB,CACrB,UAAU,EAAE,IAAI,GAAG,MAAM,EACzB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GACd,MAAM,GAAG,IAAI;IAqBhB,wBAAwB,CACtB,UAAU,EAAE,IAAI,GAAG,MAAM,EACzB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GACd;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,YAAY,CAAA;KAAE;IAqH7C,qBAAqB,CACnB,UAAU,EAAE,IAAI,GAAG,MAAM,EACzB,OAAO,EAAE,KAAK,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC,GACD,IAAI;CAuER"}
@@ -0,0 +1,258 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PnpmCatalogManager = void 0;
4
+ const js_yaml_1 = require("@zkochan/js-yaml");
5
+ const node_fs_1 = require("node:fs");
6
+ const node_path_1 = require("node:path");
7
+ const devkit_exports_1 = require("nx/src/devkit-exports");
8
+ const devkit_internals_1 = require("nx/src/devkit-internals");
9
+ const types_1 = require("./types");
10
+ /**
11
+ * PNPM-specific catalog manager implementation
12
+ */
13
+ class PnpmCatalogManager {
14
+ constructor() {
15
+ this.name = 'pnpm';
16
+ this.catalogProtocol = 'catalog:';
17
+ }
18
+ supportsCatalogs() {
19
+ return true;
20
+ }
21
+ isCatalogReference(version) {
22
+ return version.startsWith(this.catalogProtocol);
23
+ }
24
+ parseCatalogReference(version) {
25
+ if (!this.isCatalogReference(version)) {
26
+ return null;
27
+ }
28
+ const catalogName = version.substring(this.catalogProtocol.length);
29
+ return {
30
+ catalogName: catalogName || undefined,
31
+ isDefaultCatalog: catalogName === '',
32
+ };
33
+ }
34
+ getCatalogDefinitions(treeOrRoot) {
35
+ if (typeof treeOrRoot === 'string') {
36
+ const pnpmWorkspacePath = (0, node_path_1.join)(treeOrRoot, 'pnpm-workspace.yaml');
37
+ if (!(0, node_fs_1.existsSync)(pnpmWorkspacePath)) {
38
+ return null;
39
+ }
40
+ return readYamlFileFromFs(pnpmWorkspacePath);
41
+ }
42
+ else {
43
+ if (!treeOrRoot.exists('pnpm-workspace.yaml')) {
44
+ return null;
45
+ }
46
+ return readYamlFileFromTree(treeOrRoot, 'pnpm-workspace.yaml');
47
+ }
48
+ }
49
+ resolveCatalogReference(treeOrRoot, packageName, version) {
50
+ const catalogRef = this.parseCatalogReference(version);
51
+ if (!catalogRef) {
52
+ return null;
53
+ }
54
+ const workspaceConfig = this.getCatalogDefinitions(treeOrRoot);
55
+ if (!workspaceConfig) {
56
+ return null;
57
+ }
58
+ let catalogToUse;
59
+ if (catalogRef.isDefaultCatalog) {
60
+ catalogToUse = workspaceConfig.catalog;
61
+ }
62
+ else if (catalogRef.catalogName) {
63
+ catalogToUse = workspaceConfig.catalogs?.[catalogRef.catalogName];
64
+ }
65
+ return catalogToUse?.[packageName] || null;
66
+ }
67
+ validateCatalogReference(treeOrRoot, packageName, version) {
68
+ const catalogRef = this.parseCatalogReference(version);
69
+ if (!catalogRef) {
70
+ return {
71
+ isValid: false,
72
+ error: {
73
+ type: types_1.CatalogErrorType.INVALID_SYNTAX,
74
+ message: `Invalid catalog reference syntax: "${version}". Expected format: "catalog:" or "catalog:name"`,
75
+ },
76
+ };
77
+ }
78
+ const workspaceConfig = this.getCatalogDefinitions(treeOrRoot);
79
+ if (!workspaceConfig) {
80
+ return {
81
+ isValid: false,
82
+ error: {
83
+ type: types_1.CatalogErrorType.WORKSPACE_NOT_FOUND,
84
+ message: 'No pnpm-workspace.yaml found in workspace root',
85
+ suggestions: [
86
+ 'Create a pnpm-workspace.yaml file in your workspace root',
87
+ ],
88
+ },
89
+ };
90
+ }
91
+ let catalogToUse;
92
+ if (catalogRef.isDefaultCatalog) {
93
+ catalogToUse = workspaceConfig.catalog;
94
+ if (!catalogToUse) {
95
+ const availableCatalogs = Object.keys(workspaceConfig.catalogs || {});
96
+ const suggestions = [
97
+ 'Define a default catalog in pnpm-workspace.yaml under the "catalog" key',
98
+ ];
99
+ if (availableCatalogs.length > 0) {
100
+ suggestions.push(`Or select from the available named catalogs: ${availableCatalogs
101
+ .map((c) => `"catalog:${c}"`)
102
+ .join(', ')}`);
103
+ }
104
+ return {
105
+ isValid: false,
106
+ error: {
107
+ type: types_1.CatalogErrorType.CATALOG_NOT_FOUND,
108
+ message: 'No default catalog defined in pnpm-workspace.yaml',
109
+ suggestions,
110
+ },
111
+ };
112
+ }
113
+ }
114
+ else if (catalogRef.catalogName) {
115
+ catalogToUse = workspaceConfig.catalogs?.[catalogRef.catalogName];
116
+ if (!catalogToUse) {
117
+ const availableCatalogs = Object.keys(workspaceConfig.catalogs || {});
118
+ const hasDefaultCatalog = !!workspaceConfig.catalog;
119
+ const suggestions = [
120
+ 'Define the catalog in pnpm-workspace.yaml under the "catalogs" key',
121
+ ];
122
+ if (availableCatalogs.length > 0) {
123
+ suggestions.push(`Or select from the available named catalogs: ${availableCatalogs
124
+ .map((c) => `"catalog:${c}"`)
125
+ .join(', ')}`);
126
+ }
127
+ if (hasDefaultCatalog) {
128
+ suggestions.push('Or use the default catalog: "catalog:"');
129
+ }
130
+ return {
131
+ isValid: false,
132
+ error: {
133
+ type: types_1.CatalogErrorType.CATALOG_NOT_FOUND,
134
+ message: `Catalog "${catalogRef.catalogName}" not found in pnpm-workspace.yaml`,
135
+ catalogName: catalogRef.catalogName,
136
+ suggestions,
137
+ },
138
+ };
139
+ }
140
+ }
141
+ if (!catalogToUse[packageName]) {
142
+ const catalogName = catalogRef.isDefaultCatalog
143
+ ? 'default catalog'
144
+ : `catalog '${catalogRef.catalogName}'`;
145
+ const availablePackages = Object.keys(catalogToUse);
146
+ const suggestions = [
147
+ `Add "${packageName}" to ${catalogName} in pnpm-workspace.yaml`,
148
+ ];
149
+ if (availablePackages.length > 0) {
150
+ suggestions.push(`Or select from the available packages in ${catalogName}: ${availablePackages
151
+ .map((p) => `"${p}"`)
152
+ .join(', ')}`);
153
+ }
154
+ return {
155
+ isValid: false,
156
+ error: {
157
+ type: types_1.CatalogErrorType.PACKAGE_NOT_FOUND,
158
+ message: `Package "${packageName}" not found in ${catalogName}`,
159
+ packageName,
160
+ catalogName: catalogRef.catalogName,
161
+ suggestions,
162
+ },
163
+ };
164
+ }
165
+ return { isValid: true };
166
+ }
167
+ updateCatalogVersions(treeOrRoot, updates) {
168
+ let checkExists;
169
+ let readYaml;
170
+ let writeYaml;
171
+ if (typeof treeOrRoot === 'string') {
172
+ const workspaceYamlPath = (0, node_path_1.join)(treeOrRoot, 'pnpm-workspace.yaml');
173
+ checkExists = () => (0, node_fs_1.existsSync)(workspaceYamlPath);
174
+ readYaml = () => (0, node_fs_1.readFileSync)(workspaceYamlPath, 'utf-8');
175
+ writeYaml = (content) => (0, node_fs_1.writeFileSync)(workspaceYamlPath, content, 'utf-8');
176
+ }
177
+ else {
178
+ checkExists = () => treeOrRoot.exists('pnpm-workspace.yaml');
179
+ readYaml = () => treeOrRoot.read('pnpm-workspace.yaml', 'utf-8');
180
+ writeYaml = (content) => treeOrRoot.write('pnpm-workspace.yaml', content);
181
+ }
182
+ if (!checkExists()) {
183
+ devkit_exports_1.output.warn({
184
+ title: 'No pnpm-workspace.yaml found',
185
+ bodyLines: [
186
+ 'Cannot update catalog versions without a pnpm-workspace.yaml file.',
187
+ 'Create a pnpm-workspace.yaml file to use catalogs.',
188
+ ],
189
+ });
190
+ return;
191
+ }
192
+ try {
193
+ const workspaceContent = readYaml();
194
+ const workspaceData = (0, js_yaml_1.load)(workspaceContent) || {};
195
+ let hasChanges = false;
196
+ for (const update of updates) {
197
+ const { packageName, version, catalogName } = update;
198
+ let targetCatalog;
199
+ if (catalogName) {
200
+ // Named catalog
201
+ workspaceData.catalogs ??= {};
202
+ workspaceData.catalogs[catalogName] ??= {};
203
+ targetCatalog = workspaceData.catalogs[catalogName];
204
+ }
205
+ else {
206
+ // Default catalog
207
+ workspaceData.catalog ??= {};
208
+ targetCatalog = workspaceData.catalog;
209
+ }
210
+ if (targetCatalog[packageName] !== version) {
211
+ targetCatalog[packageName] = version;
212
+ hasChanges = true;
213
+ }
214
+ }
215
+ if (hasChanges) {
216
+ writeYaml((0, js_yaml_1.dump)(workspaceData, {
217
+ indent: 2,
218
+ quotingType: '"',
219
+ forceQuotes: true,
220
+ }));
221
+ }
222
+ }
223
+ catch (error) {
224
+ devkit_exports_1.output.error({
225
+ title: 'Failed to update catalog versions',
226
+ bodyLines: [error instanceof Error ? error.message : String(error)],
227
+ });
228
+ throw error;
229
+ }
230
+ }
231
+ }
232
+ exports.PnpmCatalogManager = PnpmCatalogManager;
233
+ function readYamlFileFromFs(path) {
234
+ try {
235
+ return (0, devkit_internals_1.readYamlFile)(path);
236
+ }
237
+ catch (error) {
238
+ devkit_exports_1.output.warn({
239
+ title: 'Unable to parse pnpm-workspace.yaml',
240
+ bodyLines: [error.toString()],
241
+ });
242
+ return null;
243
+ }
244
+ }
245
+ function readYamlFileFromTree(tree, path) {
246
+ const content = tree.read(path, 'utf-8');
247
+ const { load } = require('@zkochan/js-yaml');
248
+ try {
249
+ return load(content, { filename: path });
250
+ }
251
+ catch (error) {
252
+ devkit_exports_1.output.warn({
253
+ title: 'Unable to parse pnpm-workspace.yaml',
254
+ bodyLines: [error.toString()],
255
+ });
256
+ return null;
257
+ }
258
+ }