@teambit/dependency-resolver 1.0.666 → 1.0.668

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 (105) hide show
  1. package/dependencies/base-dependency.ts +2 -2
  2. package/dependencies/component-dependency/component-dependency-factory.ts +6 -5
  3. package/dependencies/component-dependency/component-dependency.ts +2 -2
  4. package/dependencies/constants.ts +1 -1
  5. package/dependencies/dependency-factory.ts +3 -3
  6. package/dependencies/dependency-list-factory.ts +3 -3
  7. package/dependencies/dependency-list.ts +7 -1
  8. package/dist/apply-updates.d.ts +3 -3
  9. package/dist/apply-updates.js.map +1 -1
  10. package/dist/dependencies/base-dependency.d.ts +2 -2
  11. package/dist/dependencies/base-dependency.js.map +1 -1
  12. package/dist/dependencies/component-dependency/component-dependency-factory.d.ts +4 -4
  13. package/dist/dependencies/component-dependency/component-dependency-factory.js.map +1 -1
  14. package/dist/dependencies/component-dependency/component-dependency.d.ts +2 -2
  15. package/dist/dependencies/component-dependency/component-dependency.js.map +1 -1
  16. package/dist/dependencies/constants.d.ts +1 -1
  17. package/dist/dependencies/constants.js.map +1 -1
  18. package/dist/dependencies/dependency-factory.d.ts +3 -3
  19. package/dist/dependencies/dependency-factory.js.map +1 -1
  20. package/dist/dependencies/dependency-list-factory.d.ts +3 -3
  21. package/dist/dependencies/dependency-list-factory.js.map +1 -1
  22. package/dist/dependencies/dependency-list.d.ts +1 -1
  23. package/dist/dependencies/dependency-list.js.map +1 -1
  24. package/dist/dependencies.service.d.ts +2 -2
  25. package/dist/dependencies.service.js.map +1 -1
  26. package/dist/dependency-env.d.ts +2 -2
  27. package/dist/dependency-env.js.map +1 -1
  28. package/dist/dependency-installer.d.ts +8 -8
  29. package/dist/dependency-installer.js.map +1 -1
  30. package/dist/dependency-linker.d.ts +6 -6
  31. package/dist/dependency-linker.js.map +1 -1
  32. package/dist/dependency-resolver-workspace-config.d.ts +3 -3
  33. package/dist/dependency-resolver-workspace-config.js.map +1 -1
  34. package/dist/dependency-resolver.graphql.d.ts +2 -2
  35. package/dist/dependency-resolver.graphql.js.map +1 -1
  36. package/dist/dependency-resolver.main.runtime.d.ts +27 -23
  37. package/dist/dependency-resolver.main.runtime.js.map +1 -1
  38. package/dist/dependency-version-resolver.d.ts +2 -2
  39. package/dist/dependency-version-resolver.js.map +1 -1
  40. package/dist/get-all-policy-pkgs.d.ts +4 -4
  41. package/dist/get-all-policy-pkgs.js.map +1 -1
  42. package/dist/manifest/component-manifest.d.ts +5 -4
  43. package/dist/manifest/component-manifest.js.map +1 -1
  44. package/dist/manifest/deduping/dedupe-dependencies.d.ts +4 -4
  45. package/dist/manifest/deduping/dedupe-dependencies.js.map +1 -1
  46. package/dist/manifest/deduping/hoist-dependencies.d.ts +2 -2
  47. package/dist/manifest/deduping/hoist-dependencies.js.map +1 -1
  48. package/dist/manifest/deduping/hoist-dependencies.spec.js.map +1 -1
  49. package/dist/manifest/deduping/index-by-dep-id.d.ts +4 -4
  50. package/dist/manifest/deduping/index-by-dep-id.js.map +1 -1
  51. package/dist/manifest/deduping/merge-with-root.d.ts +2 -2
  52. package/dist/manifest/deduping/merge-with-root.js.map +1 -1
  53. package/dist/manifest/manifest.d.ts +3 -3
  54. package/dist/manifest/manifest.js.map +1 -1
  55. package/dist/manifest/update-dependency-version.d.ts +2 -2
  56. package/dist/manifest/update-dependency-version.js.map +1 -1
  57. package/dist/manifest/update-dependency-version.spec.js.map +1 -1
  58. package/dist/manifest/workspace-manifest-factory.d.ts +8 -8
  59. package/dist/manifest/workspace-manifest-factory.js.map +1 -1
  60. package/dist/manifest/workspace-manifest.d.ts +5 -4
  61. package/dist/manifest/workspace-manifest.js.map +1 -1
  62. package/dist/package-manager.d.ts +5 -5
  63. package/dist/package-manager.js.map +1 -1
  64. package/dist/policy/env-policy/env-policy.d.ts +2 -1
  65. package/dist/policy/env-policy/env-policy.js.map +1 -1
  66. package/dist/policy/policy.d.ts +1 -1
  67. package/dist/policy/policy.js.map +1 -1
  68. package/dist/policy/variant-policy/variant-policy.d.ts +3 -3
  69. package/dist/policy/variant-policy/variant-policy.js.map +1 -1
  70. package/dist/policy/workspace-policy/exceptions/entry-already-exist.d.ts +1 -1
  71. package/dist/policy/workspace-policy/exceptions/entry-already-exist.js.map +1 -1
  72. package/dist/policy/workspace-policy/workspace-policy-factory.d.ts +2 -1
  73. package/dist/policy/workspace-policy/workspace-policy-factory.js.map +1 -1
  74. package/dist/policy/workspace-policy/workspace-policy.d.ts +2 -2
  75. package/dist/policy/workspace-policy/workspace-policy.js.map +1 -1
  76. package/dist/{preview-1753803956605.js → preview-1753833698619.js} +2 -2
  77. package/dist/show-fragments/dependencies.fragment.d.ts +2 -2
  78. package/dist/show-fragments/dependencies.fragment.js.map +1 -1
  79. package/dist/show-fragments/dev-dependencies.fragment.d.ts +2 -2
  80. package/dist/show-fragments/dev-dependencies.fragment.js.map +1 -1
  81. package/dist/show-fragments/peer-dependencies.fragment.d.ts +2 -2
  82. package/dist/show-fragments/peer-dependencies.fragment.js.map +1 -1
  83. package/dist/types.d.ts +4 -4
  84. package/dist/types.js.map +1 -1
  85. package/manifest/component-manifest.ts +5 -4
  86. package/manifest/deduping/dedupe-dependencies.ts +4 -4
  87. package/manifest/deduping/hoist-dependencies.spec.ts +3 -3
  88. package/manifest/deduping/hoist-dependencies.ts +3 -3
  89. package/manifest/deduping/index-by-dep-id.ts +4 -4
  90. package/manifest/deduping/merge-with-root.ts +4 -4
  91. package/manifest/manifest.ts +3 -3
  92. package/manifest/update-dependency-version.spec.ts +1 -1
  93. package/manifest/update-dependency-version.ts +2 -2
  94. package/manifest/workspace-manifest-factory.ts +12 -8
  95. package/manifest/workspace-manifest.ts +5 -4
  96. package/package.json +23 -23
  97. package/policy/env-policy/env-policy.ts +3 -4
  98. package/policy/policy.ts +1 -1
  99. package/policy/variant-policy/variant-policy.ts +4 -3
  100. package/policy/workspace-policy/exceptions/entry-already-exist.ts +1 -1
  101. package/policy/workspace-policy/workspace-policy-factory.ts +4 -3
  102. package/policy/workspace-policy/workspace-policy.ts +3 -2
  103. package/show-fragments/dependencies.fragment.ts +2 -2
  104. package/show-fragments/dev-dependencies.fragment.ts +2 -2
  105. package/show-fragments/peer-dependencies.fragment.ts +2 -2
@@ -1 +1 @@
1
- {"version":3,"names":["_lodash","data","require","mergeWithRootDeps","rootDependencies","dedupedDependencies","forEach","deps","depKeyName","mergeRootDepToDedupedDependencies","range","depId","isDepExistInAnyOfTheRootDedupedDependencies","existingRootDeps","toString","rootDedupedDeps","isDepExistInDepObject","dependencies","devDependencies","peerDependencies","depObjectValue"],"sources":["merge-with-root.ts"],"sourcesContent":["import { SemVer } from 'semver';\nimport { forEach } from 'lodash';\nimport { PackageName } from '../../dependencies';\nimport { ManifestDependenciesObject, ManifestDependenciesKeysNames, DepObjectValue } from '../manifest';\nimport { DedupedDependencies } from './dedupe-dependencies';\n\n/**\n * This is the third phase of the deduping process\n * It's not exactly part of the dedupe process but its required for the bit install to work properly\n * it will take the deduped dependencies and will add them missing deps from the provided root deps\n * it used for installing deps in the root level before any component use it\n * otherwise they won't be install, and you will need to re-run install after writing the require statement in the code\n *\n * @returns {DedupedDependencies}\n */\nexport function mergeWithRootDeps(\n rootDependencies: ManifestDependenciesObject,\n dedupedDependencies: DedupedDependencies\n): DedupedDependencies {\n forEach(rootDependencies, (deps: any, depKeyName: any) => {\n forEach(deps, mergeRootDepToDedupedDependencies(dedupedDependencies, depKeyName));\n });\n return dedupedDependencies;\n}\n\nfunction mergeRootDepToDedupedDependencies(\n dedupedDependencies: DedupedDependencies,\n depKeyName: ManifestDependenciesKeysNames\n) {\n return (range: SemVer, depId: PackageName) => {\n // Do not add it if it's already exist from the components calculation\n if (isDepExistInAnyOfTheRootDedupedDependencies(depId, dedupedDependencies)) return;\n const existingRootDeps = dedupedDependencies.rootDependencies;\n if (existingRootDeps[depKeyName]) {\n // @ts-ignore - for some reason ts thinks it might be undefined\n existingRootDeps[depKeyName][depId] = range.toString();\n } else {\n existingRootDeps[depKeyName] = {\n [depId]: range.toString(),\n };\n }\n };\n}\n\nfunction isDepExistInAnyOfTheRootDedupedDependencies(depId: string, dedupedDependencies: DedupedDependencies) {\n const rootDedupedDeps = dedupedDependencies.rootDependencies;\n return (\n isDepExistInDepObject(depId, rootDedupedDeps.dependencies) ||\n isDepExistInDepObject(depId, rootDedupedDeps.devDependencies) ||\n isDepExistInDepObject(depId, rootDedupedDeps.peerDependencies)\n );\n}\n\nfunction isDepExistInDepObject(depId: string, depObjectValue: DepObjectValue = {}) {\n return !!depObjectValue[depId];\n}\n"],"mappings":";;;;;;AACA,SAAAA,QAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,OAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASE,iBAAiBA,CAC/BC,gBAA4C,EAC5CC,mBAAwC,EACnB;EACrB,IAAAC,iBAAO,EAACF,gBAAgB,EAAE,CAACG,IAAS,EAAEC,UAAe,KAAK;IACxD,IAAAF,iBAAO,EAACC,IAAI,EAAEE,iCAAiC,CAACJ,mBAAmB,EAAEG,UAAU,CAAC,CAAC;EACnF,CAAC,CAAC;EACF,OAAOH,mBAAmB;AAC5B;AAEA,SAASI,iCAAiCA,CACxCJ,mBAAwC,EACxCG,UAAyC,EACzC;EACA,OAAO,CAACE,KAAa,EAAEC,KAAkB,KAAK;IAC5C;IACA,IAAIC,2CAA2C,CAACD,KAAK,EAAEN,mBAAmB,CAAC,EAAE;IAC7E,MAAMQ,gBAAgB,GAAGR,mBAAmB,CAACD,gBAAgB;IAC7D,IAAIS,gBAAgB,CAACL,UAAU,CAAC,EAAE;MAChC;MACAK,gBAAgB,CAACL,UAAU,CAAC,CAACG,KAAK,CAAC,GAAGD,KAAK,CAACI,QAAQ,CAAC,CAAC;IACxD,CAAC,MAAM;MACLD,gBAAgB,CAACL,UAAU,CAAC,GAAG;QAC7B,CAACG,KAAK,GAAGD,KAAK,CAACI,QAAQ,CAAC;MAC1B,CAAC;IACH;EACF,CAAC;AACH;AAEA,SAASF,2CAA2CA,CAACD,KAAa,EAAEN,mBAAwC,EAAE;EAC5G,MAAMU,eAAe,GAAGV,mBAAmB,CAACD,gBAAgB;EAC5D,OACEY,qBAAqB,CAACL,KAAK,EAAEI,eAAe,CAACE,YAAY,CAAC,IAC1DD,qBAAqB,CAACL,KAAK,EAAEI,eAAe,CAACG,eAAe,CAAC,IAC7DF,qBAAqB,CAACL,KAAK,EAAEI,eAAe,CAACI,gBAAgB,CAAC;AAElE;AAEA,SAASH,qBAAqBA,CAACL,KAAa,EAAES,cAA8B,GAAG,CAAC,CAAC,EAAE;EACjF,OAAO,CAAC,CAACA,cAAc,CAACT,KAAK,CAAC;AAChC","ignoreList":[]}
1
+ {"version":3,"names":["_lodash","data","require","mergeWithRootDeps","rootDependencies","dedupedDependencies","forEach","deps","depKeyName","mergeRootDepToDedupedDependencies","range","depId","isDepExistInAnyOfTheRootDedupedDependencies","existingRootDeps","toString","rootDedupedDeps","isDepExistInDepObject","dependencies","devDependencies","peerDependencies","depObjectValue"],"sources":["merge-with-root.ts"],"sourcesContent":["import type { SemVer } from 'semver';\nimport { forEach } from 'lodash';\nimport type { PackageName } from '../../dependencies';\nimport type { ManifestDependenciesObject, ManifestDependenciesKeysNames, DepObjectValue } from '../manifest';\nimport type { DedupedDependencies } from './dedupe-dependencies';\n\n/**\n * This is the third phase of the deduping process\n * It's not exactly part of the dedupe process but its required for the bit install to work properly\n * it will take the deduped dependencies and will add them missing deps from the provided root deps\n * it used for installing deps in the root level before any component use it\n * otherwise they won't be install, and you will need to re-run install after writing the require statement in the code\n *\n * @returns {DedupedDependencies}\n */\nexport function mergeWithRootDeps(\n rootDependencies: ManifestDependenciesObject,\n dedupedDependencies: DedupedDependencies\n): DedupedDependencies {\n forEach(rootDependencies, (deps: any, depKeyName: any) => {\n forEach(deps, mergeRootDepToDedupedDependencies(dedupedDependencies, depKeyName));\n });\n return dedupedDependencies;\n}\n\nfunction mergeRootDepToDedupedDependencies(\n dedupedDependencies: DedupedDependencies,\n depKeyName: ManifestDependenciesKeysNames\n) {\n return (range: SemVer, depId: PackageName) => {\n // Do not add it if it's already exist from the components calculation\n if (isDepExistInAnyOfTheRootDedupedDependencies(depId, dedupedDependencies)) return;\n const existingRootDeps = dedupedDependencies.rootDependencies;\n if (existingRootDeps[depKeyName]) {\n // @ts-ignore - for some reason ts thinks it might be undefined\n existingRootDeps[depKeyName][depId] = range.toString();\n } else {\n existingRootDeps[depKeyName] = {\n [depId]: range.toString(),\n };\n }\n };\n}\n\nfunction isDepExistInAnyOfTheRootDedupedDependencies(depId: string, dedupedDependencies: DedupedDependencies) {\n const rootDedupedDeps = dedupedDependencies.rootDependencies;\n return (\n isDepExistInDepObject(depId, rootDedupedDeps.dependencies) ||\n isDepExistInDepObject(depId, rootDedupedDeps.devDependencies) ||\n isDepExistInDepObject(depId, rootDedupedDeps.peerDependencies)\n );\n}\n\nfunction isDepExistInDepObject(depId: string, depObjectValue: DepObjectValue = {}) {\n return !!depObjectValue[depId];\n}\n"],"mappings":";;;;;;AACA,SAAAA,QAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,OAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASE,iBAAiBA,CAC/BC,gBAA4C,EAC5CC,mBAAwC,EACnB;EACrB,IAAAC,iBAAO,EAACF,gBAAgB,EAAE,CAACG,IAAS,EAAEC,UAAe,KAAK;IACxD,IAAAF,iBAAO,EAACC,IAAI,EAAEE,iCAAiC,CAACJ,mBAAmB,EAAEG,UAAU,CAAC,CAAC;EACnF,CAAC,CAAC;EACF,OAAOH,mBAAmB;AAC5B;AAEA,SAASI,iCAAiCA,CACxCJ,mBAAwC,EACxCG,UAAyC,EACzC;EACA,OAAO,CAACE,KAAa,EAAEC,KAAkB,KAAK;IAC5C;IACA,IAAIC,2CAA2C,CAACD,KAAK,EAAEN,mBAAmB,CAAC,EAAE;IAC7E,MAAMQ,gBAAgB,GAAGR,mBAAmB,CAACD,gBAAgB;IAC7D,IAAIS,gBAAgB,CAACL,UAAU,CAAC,EAAE;MAChC;MACAK,gBAAgB,CAACL,UAAU,CAAC,CAACG,KAAK,CAAC,GAAGD,KAAK,CAACI,QAAQ,CAAC,CAAC;IACxD,CAAC,MAAM;MACLD,gBAAgB,CAACL,UAAU,CAAC,GAAG;QAC7B,CAACG,KAAK,GAAGD,KAAK,CAACI,QAAQ,CAAC;MAC1B,CAAC;IACH;EACF,CAAC;AACH;AAEA,SAASF,2CAA2CA,CAACD,KAAa,EAAEN,mBAAwC,EAAE;EAC5G,MAAMU,eAAe,GAAGV,mBAAmB,CAACD,gBAAgB;EAC5D,OACEY,qBAAqB,CAACL,KAAK,EAAEI,eAAe,CAACE,YAAY,CAAC,IAC1DD,qBAAqB,CAACL,KAAK,EAAEI,eAAe,CAACG,eAAe,CAAC,IAC7DF,qBAAqB,CAACL,KAAK,EAAEI,eAAe,CAACI,gBAAgB,CAAC;AAElE;AAEA,SAASH,qBAAqBA,CAACL,KAAa,EAAES,cAA8B,GAAG,CAAC,CAAC,EAAE;EACjF,OAAO,CAAC,CAACA,cAAc,CAACT,KAAK,CAAC;AAChC","ignoreList":[]}
@@ -1,6 +1,6 @@
1
- import { SemVer } from 'semver';
2
- import { PeerDependenciesMeta } from '../dependencies/dependency-list';
3
- import { PackageName, SemverVersion } from '../dependencies';
1
+ import type { SemVer } from 'semver';
2
+ import type { PeerDependenciesMeta } from '../dependencies/dependency-list';
3
+ import type { PackageName, SemverVersion } from '../dependencies';
4
4
  export type ManifestDependenciesKeys = {
5
5
  dependencies: 'dependencies';
6
6
  optionalDependencies: 'optionalDependencies';
@@ -1 +1 @@
1
- {"version":3,"names":["Manifest","constructor","name","version","dependencies","toJson","options","optionalDependencies","devDependencies","peerDependencies","peerDependenciesMeta","copyPeerToRuntime","_objectSpread","manifest","exports"],"sources":["manifest.ts"],"sourcesContent":["import { SemVer } from 'semver';\nimport { PeerDependenciesMeta } from '../dependencies/dependency-list';\nimport { PackageName, SemverVersion } from '../dependencies';\n\n// export type ManifestDependenciesKeys = 'dependencies' | 'devDependencies' | 'peerDependencies';\n\nexport type ManifestDependenciesKeys = {\n dependencies: 'dependencies';\n optionalDependencies: 'optionalDependencies';\n devDependencies: 'devDependencies';\n peerDependencies: 'peerDependencies';\n};\n\nexport type ManifestDependenciesKeysNames = keyof ManifestDependenciesKeys;\n\nexport type ManifestDependenciesObject = Partial<Record<ManifestDependenciesKeysNames, DepObjectValue>> & {\n peerDependenciesMeta?: PeerDependenciesMeta;\n};\n\nexport type DepObjectValue = Record<PackageName, SemverVersion>;\n\nexport interface ManifestToJsonOptions {\n copyPeerToRuntime?: boolean;\n}\n\nexport class Manifest {\n constructor(\n public name: string,\n public version: SemVer,\n public dependencies: ManifestDependenciesObject\n ) {}\n\n // Should be implemented on sub classes\n // get dir(): string {\n // throw new BitError('not implemented');\n // }\n\n toJson(options: ManifestToJsonOptions = {}): Record<string, any> {\n let dependencies = this.dependencies.dependencies || {};\n const optionalDependencies = this.dependencies.optionalDependencies || {};\n const devDependencies = this.dependencies.devDependencies || {};\n const peerDependencies = this.dependencies.peerDependencies || {};\n const peerDependenciesMeta = this.dependencies.peerDependenciesMeta || {};\n if (options.copyPeerToRuntime) {\n dependencies = { ...peerDependencies, ...dependencies };\n }\n const manifest = {\n name: this.name,\n version: this.version.version,\n dependencies,\n optionalDependencies,\n devDependencies,\n peerDependencies,\n peerDependenciesMeta,\n };\n // if (options.includeDir) {\n // return {\n // rootDir: this.dir,\n // manifest,\n // };\n // }\n return manifest;\n }\n}\n"],"mappings":";;;;;;;;;;;AAIA;;AAqBO,MAAMA,QAAQ,CAAC;EACpBC,WAAWA,CACFC,IAAY,EACZC,OAAe,EACfC,YAAwC,EAC/C;IAAA,KAHOF,IAAY,GAAZA,IAAY;IAAA,KACZC,OAAe,GAAfA,OAAe;IAAA,KACfC,YAAwC,GAAxCA,YAAwC;EAC9C;;EAEH;EACA;EACA;EACA;;EAEAC,MAAMA,CAACC,OAA8B,GAAG,CAAC,CAAC,EAAuB;IAC/D,IAAIF,YAAY,GAAG,IAAI,CAACA,YAAY,CAACA,YAAY,IAAI,CAAC,CAAC;IACvD,MAAMG,oBAAoB,GAAG,IAAI,CAACH,YAAY,CAACG,oBAAoB,IAAI,CAAC,CAAC;IACzE,MAAMC,eAAe,GAAG,IAAI,CAACJ,YAAY,CAACI,eAAe,IAAI,CAAC,CAAC;IAC/D,MAAMC,gBAAgB,GAAG,IAAI,CAACL,YAAY,CAACK,gBAAgB,IAAI,CAAC,CAAC;IACjE,MAAMC,oBAAoB,GAAG,IAAI,CAACN,YAAY,CAACM,oBAAoB,IAAI,CAAC,CAAC;IACzE,IAAIJ,OAAO,CAACK,iBAAiB,EAAE;MAC7BP,YAAY,GAAAQ,aAAA,CAAAA,aAAA,KAAQH,gBAAgB,GAAKL,YAAY,CAAE;IACzD;IACA,MAAMS,QAAQ,GAAG;MACfX,IAAI,EAAE,IAAI,CAACA,IAAI;MACfC,OAAO,EAAE,IAAI,CAACA,OAAO,CAACA,OAAO;MAC7BC,YAAY;MACZG,oBAAoB;MACpBC,eAAe;MACfC,gBAAgB;MAChBC;IACF,CAAC;IACD;IACA;IACA;IACA;IACA;IACA;IACA,OAAOG,QAAQ;EACjB;AACF;AAACC,OAAA,CAAAd,QAAA,GAAAA,QAAA","ignoreList":[]}
1
+ {"version":3,"names":["Manifest","constructor","name","version","dependencies","toJson","options","optionalDependencies","devDependencies","peerDependencies","peerDependenciesMeta","copyPeerToRuntime","_objectSpread","manifest","exports"],"sources":["manifest.ts"],"sourcesContent":["import type { SemVer } from 'semver';\nimport type { PeerDependenciesMeta } from '../dependencies/dependency-list';\nimport type { PackageName, SemverVersion } from '../dependencies';\n\n// export type ManifestDependenciesKeys = 'dependencies' | 'devDependencies' | 'peerDependencies';\n\nexport type ManifestDependenciesKeys = {\n dependencies: 'dependencies';\n optionalDependencies: 'optionalDependencies';\n devDependencies: 'devDependencies';\n peerDependencies: 'peerDependencies';\n};\n\nexport type ManifestDependenciesKeysNames = keyof ManifestDependenciesKeys;\n\nexport type ManifestDependenciesObject = Partial<Record<ManifestDependenciesKeysNames, DepObjectValue>> & {\n peerDependenciesMeta?: PeerDependenciesMeta;\n};\n\nexport type DepObjectValue = Record<PackageName, SemverVersion>;\n\nexport interface ManifestToJsonOptions {\n copyPeerToRuntime?: boolean;\n}\n\nexport class Manifest {\n constructor(\n public name: string,\n public version: SemVer,\n public dependencies: ManifestDependenciesObject\n ) {}\n\n // Should be implemented on sub classes\n // get dir(): string {\n // throw new BitError('not implemented');\n // }\n\n toJson(options: ManifestToJsonOptions = {}): Record<string, any> {\n let dependencies = this.dependencies.dependencies || {};\n const optionalDependencies = this.dependencies.optionalDependencies || {};\n const devDependencies = this.dependencies.devDependencies || {};\n const peerDependencies = this.dependencies.peerDependencies || {};\n const peerDependenciesMeta = this.dependencies.peerDependenciesMeta || {};\n if (options.copyPeerToRuntime) {\n dependencies = { ...peerDependencies, ...dependencies };\n }\n const manifest = {\n name: this.name,\n version: this.version.version,\n dependencies,\n optionalDependencies,\n devDependencies,\n peerDependencies,\n peerDependenciesMeta,\n };\n // if (options.includeDir) {\n // return {\n // rootDir: this.dir,\n // manifest,\n // };\n // }\n return manifest;\n }\n}\n"],"mappings":";;;;;;;;;;;AAIA;;AAqBO,MAAMA,QAAQ,CAAC;EACpBC,WAAWA,CACFC,IAAY,EACZC,OAAe,EACfC,YAAwC,EAC/C;IAAA,KAHOF,IAAY,GAAZA,IAAY;IAAA,KACZC,OAAe,GAAfA,OAAe;IAAA,KACfC,YAAwC,GAAxCA,YAAwC;EAC9C;;EAEH;EACA;EACA;EACA;;EAEAC,MAAMA,CAACC,OAA8B,GAAG,CAAC,CAAC,EAAuB;IAC/D,IAAIF,YAAY,GAAG,IAAI,CAACA,YAAY,CAACA,YAAY,IAAI,CAAC,CAAC;IACvD,MAAMG,oBAAoB,GAAG,IAAI,CAACH,YAAY,CAACG,oBAAoB,IAAI,CAAC,CAAC;IACzE,MAAMC,eAAe,GAAG,IAAI,CAACJ,YAAY,CAACI,eAAe,IAAI,CAAC,CAAC;IAC/D,MAAMC,gBAAgB,GAAG,IAAI,CAACL,YAAY,CAACK,gBAAgB,IAAI,CAAC,CAAC;IACjE,MAAMC,oBAAoB,GAAG,IAAI,CAACN,YAAY,CAACM,oBAAoB,IAAI,CAAC,CAAC;IACzE,IAAIJ,OAAO,CAACK,iBAAiB,EAAE;MAC7BP,YAAY,GAAAQ,aAAA,CAAAA,aAAA,KAAQH,gBAAgB,GAAKL,YAAY,CAAE;IACzD;IACA,MAAMS,QAAQ,GAAG;MACfX,IAAI,EAAE,IAAI,CAACA,IAAI;MACfC,OAAO,EAAE,IAAI,CAACA,OAAO,CAACA,OAAO;MAC7BC,YAAY;MACZG,oBAAoB;MACpBC,eAAe;MACfC,gBAAgB;MAChBC;IACF,CAAC;IACD;IACA;IACA;IACA;IACA;IACA;IACA,OAAOG,QAAQ;EACjB;AACF;AAACC,OAAA,CAAAd,QAAA,GAAAA,QAAA","ignoreList":[]}
@@ -1,5 +1,5 @@
1
- import { Dependency } from '../dependencies';
2
- import { VariantPolicy, WorkspacePolicy } from '../policy';
1
+ import type { Dependency } from '../dependencies';
2
+ import type { VariantPolicy, WorkspacePolicy } from '../policy';
3
3
  /**
4
4
  * This will create a function that will modify the version of the component dependencies before calling the package manager install
5
5
  * It's important for this use case:
@@ -1 +1 @@
1
- {"version":3,"names":["_componentPackageVersion","data","require","updateDependencyVersion","dependency","rootPolicy","variantPolicy","getPackageName","packageName","variantVersion","getDepVersion","lifecycle","specialChars","variantVersionWithoutSpecialChar","includes","undefined","version","getValidSemverDepVersion","snapToSemver","setVersion"],"sources":["update-dependency-version.ts"],"sourcesContent":["import { snapToSemver } from '@teambit/component-package-version';\nimport { Dependency } from '../dependencies';\nimport { VariantPolicy, WorkspacePolicy } from '../policy';\n\n/**\n * This will create a function that will modify the version of the component dependencies before calling the package manager install\n * It's important for this use case:\n * between 2 bit components we are not allowing a range, only a specific version as dependency\n * therefor, when resolve a component dependency we take the version from the actual installed version in the file system\n * imagine the following case\n * I have in my policy my-dep:0.0.10\n * during installation it is installed (hoisted to the root)\n * now i'm changing it to be ^0.0.11\n * On the next bit install, when I will look at the component deps I'll see it with version 0.0.10 always (that's resolved from the FS)\n * so the version ^0.0.11 will be never installed.\n * For installation purpose we want a different resolve method, we want to take the version from the policies so we will install the correct one\n * this function will get the root deps / policy, and a function to merge the component policies (by the dep resolver extension).\n * it will then search for the dep version in the component policy, than in the workspace policy and take it from there\n * now in the described case, it will be change to ^0.0.11 and will be install correctly\n * then on the next calculation for tagging it will have the installed version\n *\n * @param {Component} component\n * @param {ManifestDependenciesObject} rootDependencies\n * @param {MergeDependenciesFunc} mergeDependenciesFunc\n * @returns {DepVersionModifierFunc}\n */\nexport function updateDependencyVersion(\n dependency: Dependency,\n rootPolicy?: WorkspacePolicy,\n variantPolicy?: VariantPolicy\n): void {\n if (dependency.getPackageName) {\n const packageName = dependency.getPackageName();\n const variantVersion = variantPolicy?.getDepVersion(packageName, dependency.lifecycle);\n const specialChars = ['-', '+', '*'];\n const variantVersionWithoutSpecialChar =\n variantVersion && !specialChars.includes(variantVersion) ? variantVersion : undefined;\n const version =\n variantVersionWithoutSpecialChar ||\n rootPolicy?.getValidSemverDepVersion(packageName, dependency.lifecycle === 'peer' ? 'peer' : 'runtime') ||\n snapToSemver(dependency.version) ||\n '0.0.1-new';\n\n dependency.setVersion(version);\n }\n}\n"],"mappings":";;;;;;AAAA,SAAAA,yBAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,wBAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASE,uBAAuBA,CACrCC,UAAsB,EACtBC,UAA4B,EAC5BC,aAA6B,EACvB;EACN,IAAIF,UAAU,CAACG,cAAc,EAAE;IAC7B,MAAMC,WAAW,GAAGJ,UAAU,CAACG,cAAc,CAAC,CAAC;IAC/C,MAAME,cAAc,GAAGH,aAAa,EAAEI,aAAa,CAACF,WAAW,EAAEJ,UAAU,CAACO,SAAS,CAAC;IACtF,MAAMC,YAAY,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACpC,MAAMC,gCAAgC,GACpCJ,cAAc,IAAI,CAACG,YAAY,CAACE,QAAQ,CAACL,cAAc,CAAC,GAAGA,cAAc,GAAGM,SAAS;IACvF,MAAMC,OAAO,GACXH,gCAAgC,IAChCR,UAAU,EAAEY,wBAAwB,CAACT,WAAW,EAAEJ,UAAU,CAACO,SAAS,KAAK,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,IACvG,IAAAO,uCAAY,EAACd,UAAU,CAACY,OAAO,CAAC,IAChC,WAAW;IAEbZ,UAAU,CAACe,UAAU,CAACH,OAAO,CAAC;EAChC;AACF","ignoreList":[]}
1
+ {"version":3,"names":["_componentPackageVersion","data","require","updateDependencyVersion","dependency","rootPolicy","variantPolicy","getPackageName","packageName","variantVersion","getDepVersion","lifecycle","specialChars","variantVersionWithoutSpecialChar","includes","undefined","version","getValidSemverDepVersion","snapToSemver","setVersion"],"sources":["update-dependency-version.ts"],"sourcesContent":["import { snapToSemver } from '@teambit/component-package-version';\nimport type { Dependency } from '../dependencies';\nimport type { VariantPolicy, WorkspacePolicy } from '../policy';\n\n/**\n * This will create a function that will modify the version of the component dependencies before calling the package manager install\n * It's important for this use case:\n * between 2 bit components we are not allowing a range, only a specific version as dependency\n * therefor, when resolve a component dependency we take the version from the actual installed version in the file system\n * imagine the following case\n * I have in my policy my-dep:0.0.10\n * during installation it is installed (hoisted to the root)\n * now i'm changing it to be ^0.0.11\n * On the next bit install, when I will look at the component deps I'll see it with version 0.0.10 always (that's resolved from the FS)\n * so the version ^0.0.11 will be never installed.\n * For installation purpose we want a different resolve method, we want to take the version from the policies so we will install the correct one\n * this function will get the root deps / policy, and a function to merge the component policies (by the dep resolver extension).\n * it will then search for the dep version in the component policy, than in the workspace policy and take it from there\n * now in the described case, it will be change to ^0.0.11 and will be install correctly\n * then on the next calculation for tagging it will have the installed version\n *\n * @param {Component} component\n * @param {ManifestDependenciesObject} rootDependencies\n * @param {MergeDependenciesFunc} mergeDependenciesFunc\n * @returns {DepVersionModifierFunc}\n */\nexport function updateDependencyVersion(\n dependency: Dependency,\n rootPolicy?: WorkspacePolicy,\n variantPolicy?: VariantPolicy\n): void {\n if (dependency.getPackageName) {\n const packageName = dependency.getPackageName();\n const variantVersion = variantPolicy?.getDepVersion(packageName, dependency.lifecycle);\n const specialChars = ['-', '+', '*'];\n const variantVersionWithoutSpecialChar =\n variantVersion && !specialChars.includes(variantVersion) ? variantVersion : undefined;\n const version =\n variantVersionWithoutSpecialChar ||\n rootPolicy?.getValidSemverDepVersion(packageName, dependency.lifecycle === 'peer' ? 'peer' : 'runtime') ||\n snapToSemver(dependency.version) ||\n '0.0.1-new';\n\n dependency.setVersion(version);\n }\n}\n"],"mappings":";;;;;;AAAA,SAAAA,yBAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,wBAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASE,uBAAuBA,CACrCC,UAAsB,EACtBC,UAA4B,EAC5BC,aAA6B,EACvB;EACN,IAAIF,UAAU,CAACG,cAAc,EAAE;IAC7B,MAAMC,WAAW,GAAGJ,UAAU,CAACG,cAAc,CAAC,CAAC;IAC/C,MAAME,cAAc,GAAGH,aAAa,EAAEI,aAAa,CAACF,WAAW,EAAEJ,UAAU,CAACO,SAAS,CAAC;IACtF,MAAMC,YAAY,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACpC,MAAMC,gCAAgC,GACpCJ,cAAc,IAAI,CAACG,YAAY,CAACE,QAAQ,CAACL,cAAc,CAAC,GAAGA,cAAc,GAAGM,SAAS;IACvF,MAAMC,OAAO,GACXH,gCAAgC,IAChCR,UAAU,EAAEY,wBAAwB,CAACT,WAAW,EAAEJ,UAAU,CAACO,SAAS,KAAK,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,IACvG,IAAAO,uCAAY,EAACd,UAAU,CAACY,OAAO,CAAC,IAChC,WAAW;IAEbZ,UAAU,CAACe,UAAU,CAACH,OAAO,CAAC;EAChC;AACF","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_updateDependencyVersion","data","require","describe","it","dependency","getPackageName","lifecycle","version","setVersion","jest","fn","rootPolicy","getValidSemverDepVersion","pkgName","undefined","variationPolicy","getDepVersion","updateDependencyVersion","expect","toHaveBeenCalledWith"],"sources":["update-dependency-version.spec.ts"],"sourcesContent":["import { updateDependencyVersion } from './update-dependency-version';\nimport { DependencyLifecycleType } from '../dependencies';\n\ndescribe('updateDependencyVersion()', function () {\n it('should pick version from root policy, when no variation policy is present', function () {\n const dependency = {\n getPackageName: () => 'foo',\n lifecycle: 'dev',\n version: '1.0.0',\n // @ts-ignore\n setVersion: jest.fn(),\n } as any; // eslint-disable-line\n const rootPolicy = {\n // @ts-ignore\n getValidSemverDepVersion: jest.fn((pkgName: string, lifecycle: DependencyLifecycleType) =>\n lifecycle === 'runtime' ? '2.0.0' : undefined\n ),\n } as any; // eslint-disable-line\n const variationPolicy = {\n getDepVersion: () => undefined,\n } as any; // eslint-disable-line\n updateDependencyVersion(dependency, rootPolicy, variationPolicy);\n // The lifecycle type is changed to runtime\n // root policies don't have a separate property for dev dependencies\n // both runtime and dev dependencies are specified through \"dependencies\"\n expect(rootPolicy.getValidSemverDepVersion).toHaveBeenCalledWith('foo', 'runtime');\n expect(dependency.setVersion).toHaveBeenCalledWith('2.0.0');\n });\n});\n"],"mappings":";;AAAA,SAAAA,yBAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,wBAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGAE,QAAQ,CAAC,2BAA2B,EAAE,YAAY;EAChDC,EAAE,CAAC,2EAA2E,EAAE,YAAY;IAC1F,MAAMC,UAAU,GAAG;MACjBC,cAAc,EAAEA,CAAA,KAAM,KAAK;MAC3BC,SAAS,EAAE,KAAK;MAChBC,OAAO,EAAE,OAAO;MAChB;MACAC,UAAU,EAAEC,IAAI,CAACC,EAAE,CAAC;IACtB,CAAQ,CAAC,CAAC;IACV,MAAMC,UAAU,GAAG;MACjB;MACAC,wBAAwB,EAAEH,IAAI,CAACC,EAAE,CAAC,CAACG,OAAe,EAAEP,SAAkC,KACpFA,SAAS,KAAK,SAAS,GAAG,OAAO,GAAGQ,SACtC;IACF,CAAQ,CAAC,CAAC;IACV,MAAMC,eAAe,GAAG;MACtBC,aAAa,EAAEA,CAAA,KAAMF;IACvB,CAAQ,CAAC,CAAC;IACV,IAAAG,kDAAuB,EAACb,UAAU,EAAEO,UAAU,EAAEI,eAAe,CAAC;IAChE;IACA;IACA;IACAG,MAAM,CAACP,UAAU,CAACC,wBAAwB,CAAC,CAACO,oBAAoB,CAAC,KAAK,EAAE,SAAS,CAAC;IAClFD,MAAM,CAACd,UAAU,CAACI,UAAU,CAAC,CAACW,oBAAoB,CAAC,OAAO,CAAC;EAC7D,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_updateDependencyVersion","data","require","describe","it","dependency","getPackageName","lifecycle","version","setVersion","jest","fn","rootPolicy","getValidSemverDepVersion","pkgName","undefined","variationPolicy","getDepVersion","updateDependencyVersion","expect","toHaveBeenCalledWith"],"sources":["update-dependency-version.spec.ts"],"sourcesContent":["import { updateDependencyVersion } from './update-dependency-version';\nimport type { DependencyLifecycleType } from '../dependencies';\n\ndescribe('updateDependencyVersion()', function () {\n it('should pick version from root policy, when no variation policy is present', function () {\n const dependency = {\n getPackageName: () => 'foo',\n lifecycle: 'dev',\n version: '1.0.0',\n // @ts-ignore\n setVersion: jest.fn(),\n } as any; // eslint-disable-line\n const rootPolicy = {\n // @ts-ignore\n getValidSemverDepVersion: jest.fn((pkgName: string, lifecycle: DependencyLifecycleType) =>\n lifecycle === 'runtime' ? '2.0.0' : undefined\n ),\n } as any; // eslint-disable-line\n const variationPolicy = {\n getDepVersion: () => undefined,\n } as any; // eslint-disable-line\n updateDependencyVersion(dependency, rootPolicy, variationPolicy);\n // The lifecycle type is changed to runtime\n // root policies don't have a separate property for dev dependencies\n // both runtime and dev dependencies are specified through \"dependencies\"\n expect(rootPolicy.getValidSemverDepVersion).toHaveBeenCalledWith('foo', 'runtime');\n expect(dependency.setVersion).toHaveBeenCalledWith('2.0.0');\n });\n});\n"],"mappings":";;AAAA,SAAAA,yBAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,wBAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGAE,QAAQ,CAAC,2BAA2B,EAAE,YAAY;EAChDC,EAAE,CAAC,2EAA2E,EAAE,YAAY;IAC1F,MAAMC,UAAU,GAAG;MACjBC,cAAc,EAAEA,CAAA,KAAM,KAAK;MAC3BC,SAAS,EAAE,KAAK;MAChBC,OAAO,EAAE,OAAO;MAChB;MACAC,UAAU,EAAEC,IAAI,CAACC,EAAE,CAAC;IACtB,CAAQ,CAAC,CAAC;IACV,MAAMC,UAAU,GAAG;MACjB;MACAC,wBAAwB,EAAEH,IAAI,CAACC,EAAE,CAAC,CAACG,OAAe,EAAEP,SAAkC,KACpFA,SAAS,KAAK,SAAS,GAAG,OAAO,GAAGQ,SACtC;IACF,CAAQ,CAAC,CAAC;IACV,MAAMC,eAAe,GAAG;MACtBC,aAAa,EAAEA,CAAA,KAAMF;IACvB,CAAQ,CAAC,CAAC;IACV,IAAAG,kDAAuB,EAACb,UAAU,EAAEO,UAAU,EAAEI,eAAe,CAAC;IAChE;IACA;IACA;IACAG,MAAM,CAACP,UAAU,CAACC,wBAAwB,CAAC,CAACO,oBAAoB,CAAC,KAAK,EAAE,SAAS,CAAC;IAClFD,MAAM,CAACd,UAAU,CAACI,UAAU,CAAC,CAACW,oBAAoB,CAAC,OAAO,CAAC;EAC7D,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -1,12 +1,12 @@
1
- import { AspectLoaderMain } from '@teambit/aspect-loader';
2
- import { Component } from '@teambit/component';
1
+ import type { AspectLoaderMain } from '@teambit/aspect-loader';
2
+ import type { Component } from '@teambit/component';
3
3
  import { SemVer } from 'semver';
4
- import { DependencyList, PackageName } from '../dependencies';
5
- import { WorkspacePolicy } from '../policy';
6
- import { DependencyResolverMain } from '../dependency-resolver.main.runtime';
7
- import { ComponentsManifestsMap } from '../types';
8
- import { DedupedDependencies } from './deduping';
9
- import { ManifestToJsonOptions, ManifestDependenciesObject } from './manifest';
4
+ import type { DependencyList, PackageName } from '../dependencies';
5
+ import type { WorkspacePolicy } from '../policy';
6
+ import type { DependencyResolverMain } from '../dependency-resolver.main.runtime';
7
+ import type { ComponentsManifestsMap } from '../types';
8
+ import type { DedupedDependencies } from './deduping';
9
+ import type { ManifestToJsonOptions, ManifestDependenciesObject } from './manifest';
10
10
  import { WorkspaceManifest } from './workspace-manifest';
11
11
  export type DepsFilterFn = (dependencies: DependencyList) => DependencyList;
12
12
  export type ComponentDependenciesMap = Map<PackageName, ManifestDependenciesObject>;
@@ -1 +1 @@
1
- {"version":3,"names":["_aspectLoader","data","require","_componentIssues","_pkgModules","_lodash","_semver","_pMapSeries","_interopRequireDefault","_componentPackageVersion","_dependencies","_policy","_componentManifest","_deduping","_updateDependencyVersion","_workspaceManifest","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","DEFAULT_CREATE_OPTIONS","filterComponentsFromManifests","createManifestForComponentsWithoutDependencies","dedupe","resolveVersionsFromDependenciesOnly","excludeExtensionsDependencies","WorkspaceManifestFactory","constructor","dependencyResolver","aspectLoader","createFromComponents","name","version","rootPolicy","rootDir","components","options","optsWithDefaults","assign","hasRootComponents","filterOutCoreAspects","componentDependenciesMap","buildComponentDependenciesMap","undefined","dependencyFilterFn","referenceLocalPackages","rootDependencies","toManifest","dependencies","dedupedDependencies","getEmptyDedupedDependencies","dedupeDependencies","dedupePeerDependencies","mapValues","deps","excludeWorkspaceDependencies","componentsManifestsMap","getComponentsManifests","envSelfPeers","getEnvsSelfPeersPolicy","workspaceManifest","WorkspaceManifest","coreAspectIds","getCoreAspectIds","coreAspectPkgNames","Set","map","coreAspectId","getCoreAspectPackageName","add","dep","has","dependencyId","foundEnvs","component","values","envPolicy","peersPolicies","policy","selfPolicy","mergedPolicies","VariantPolicy","mergePolices","packageNames","getPackageName","buildResultsP","packageName","componentIdToPackageName","state","_consumer","depList","getDependencies","includeHidden","additionalDeps","comp","toTypeArray","compIdWithoutVersion","id","split","isExtension","includes","componentInWorkspace","find","c","isEqual","componentId","pkgName","depManifestBeforeFiltering","toDependenciesManifest","filterComponents","filterExtensions","updateDependenciesVersions","depManifest","devMissings","runtimeMissings","getMissingPackages","unresolvedRuntimeMissingRootDeps","pickBy","_version","rootPackageName","devDependencies","peerDependencies","unresolvedDevMissingRootDeps","defaultPeerDependencies","_getDefaultPeerDependencies","result","Map","results","Promise","all","currResult","set","packageNamesFromWorkspace","getComponentEnvPolicy","selfPolicyWithoutLocal","fromPairs","toNameVersionTuple","dependencyList","getPolicy","updateDependencyVersion","componentsManifests","pMapSeries","blankDependencies","optionalDependencies","peerDependenciesMeta","get","getVersion","hasVersion","snapToSemver","manifest","ComponentManifest","SemVer","exports","filtered","ComponentDependency","componentsToFilterOut","depPkgName","some","existingComponent","toString","ignoreVersion","isEqualWithoutVersion","versionSpec","startsWith","missingPackagesData","issues","getIssue","IssuesClasses","MissingPackagesDependenciesOnFs","isDevFile","missingPackages","uniq","difference"],"sources":["workspace-manifest-factory.ts"],"sourcesContent":["import { AspectLoaderMain, getCoreAspectPackageName } from '@teambit/aspect-loader';\nimport { IssuesClasses } from '@teambit/component-issues';\nimport { Component } from '@teambit/component';\nimport { componentIdToPackageName } from '@teambit/pkg.modules.component-package-name';\nimport { fromPairs, pickBy, mapValues, uniq, difference } from 'lodash';\nimport { SemVer } from 'semver';\nimport pMapSeries from 'p-map-series';\nimport { snapToSemver } from '@teambit/component-package-version';\nimport { ComponentDependency, DependencyList, PackageName } from '../dependencies';\nimport { VariantPolicy, WorkspacePolicy, EnvPolicy } from '../policy';\nimport { DependencyResolverMain } from '../dependency-resolver.main.runtime';\nimport { ComponentsManifestsMap } from '../types';\nimport { ComponentManifest } from './component-manifest';\nimport { dedupeDependencies, DedupedDependencies, getEmptyDedupedDependencies } from './deduping';\nimport { ManifestToJsonOptions, ManifestDependenciesObject, DepObjectValue } from './manifest';\nimport { updateDependencyVersion } from './update-dependency-version';\nimport { WorkspaceManifest } from './workspace-manifest';\n\nexport type DepsFilterFn = (dependencies: DependencyList) => DependencyList;\n\nexport type ComponentDependenciesMap = Map<PackageName, ManifestDependenciesObject>;\nexport interface WorkspaceManifestToJsonOptions extends ManifestToJsonOptions {\n includeDir?: boolean;\n}\n\nexport type CreateFromComponentsOptions = {\n filterComponentsFromManifests: boolean;\n createManifestForComponentsWithoutDependencies: boolean;\n dedupe?: boolean;\n dependencyFilterFn?: DepsFilterFn;\n resolveVersionsFromDependenciesOnly?: boolean;\n referenceLocalPackages?: boolean;\n hasRootComponents?: boolean;\n excludeExtensionsDependencies?: boolean;\n};\n\nconst DEFAULT_CREATE_OPTIONS: CreateFromComponentsOptions = {\n filterComponentsFromManifests: true,\n createManifestForComponentsWithoutDependencies: true,\n dedupe: true,\n resolveVersionsFromDependenciesOnly: false,\n excludeExtensionsDependencies: false,\n};\nexport class WorkspaceManifestFactory {\n constructor(\n private dependencyResolver: DependencyResolverMain,\n private aspectLoader: AspectLoaderMain\n ) {}\n\n async createFromComponents(\n name: string,\n version: SemVer,\n rootPolicy: WorkspacePolicy,\n rootDir: string,\n components: Component[],\n options: CreateFromComponentsOptions = DEFAULT_CREATE_OPTIONS\n ): Promise<WorkspaceManifest> {\n // Make sure to take other default if passed options with only one option\n const optsWithDefaults = Object.assign({}, DEFAULT_CREATE_OPTIONS, options);\n const hasRootComponents = options.hasRootComponents ?? this.dependencyResolver.hasRootComponents();\n rootPolicy = this.filterOutCoreAspects(rootPolicy);\n const componentDependenciesMap: ComponentDependenciesMap = await this.buildComponentDependenciesMap(components, {\n filterComponentsFromManifests: optsWithDefaults.filterComponentsFromManifests,\n rootPolicy: optsWithDefaults.resolveVersionsFromDependenciesOnly ? undefined : rootPolicy,\n dependencyFilterFn: optsWithDefaults.dependencyFilterFn,\n excludeExtensionsDependencies: optsWithDefaults.excludeExtensionsDependencies,\n referenceLocalPackages: optsWithDefaults.referenceLocalPackages && hasRootComponents,\n rootDependencies: hasRootComponents ? rootPolicy.toManifest().dependencies : undefined,\n });\n let dedupedDependencies = getEmptyDedupedDependencies();\n if (hasRootComponents) {\n const { rootDependencies } = dedupeDependencies(rootPolicy, componentDependenciesMap, {\n dedupePeerDependencies: hasRootComponents,\n });\n // We hoist dependencies in order for the IDE to work.\n // For runtime, the peer dependencies are installed inside:\n // <ws root>/node_module/<comp name>/node_module/<comp name>/node_modules\n dedupedDependencies.rootDependencies = mapValues(\n rootDependencies,\n (deps) => deps && excludeWorkspaceDependencies(deps)\n );\n dedupedDependencies.componentDependenciesMap = componentDependenciesMap;\n } else if (options.dedupe) {\n dedupedDependencies = dedupeDependencies(rootPolicy, componentDependenciesMap);\n } else {\n dedupedDependencies.rootDependencies = rootPolicy.toManifest();\n dedupedDependencies.componentDependenciesMap = componentDependenciesMap;\n }\n const componentsManifestsMap = await this.getComponentsManifests(\n dedupedDependencies,\n components,\n optsWithDefaults.createManifestForComponentsWithoutDependencies\n );\n const envSelfPeers = this.getEnvsSelfPeersPolicy(componentsManifestsMap);\n const workspaceManifest = new WorkspaceManifest(\n name,\n version,\n dedupedDependencies.rootDependencies,\n envSelfPeers,\n rootDir,\n componentsManifestsMap\n );\n return workspaceManifest;\n }\n\n private filterOutCoreAspects(rootPolicy: WorkspacePolicy) {\n const coreAspectIds = this.aspectLoader.getCoreAspectIds();\n const coreAspectPkgNames = new Set(coreAspectIds.map((coreAspectId) => getCoreAspectPackageName(coreAspectId)));\n coreAspectPkgNames.add('@teambit/legacy');\n return rootPolicy.filter((dep) => !coreAspectPkgNames.has(dep.dependencyId));\n }\n\n private getEnvsSelfPeersPolicy(componentsManifestsMap: ComponentsManifestsMap) {\n const foundEnvs: EnvPolicy[] = [];\n for (const component of componentsManifestsMap.values()) {\n foundEnvs.push(component.envPolicy);\n }\n const peersPolicies = foundEnvs.map((policy) => policy.selfPolicy);\n // TODO: At the moment we are just merge everything, so in case of conflicts one will be taken\n // TODO: once we have root for each env, we should know to handle it differently\n const mergedPolicies = VariantPolicy.mergePolices(peersPolicies);\n return mergedPolicies;\n }\n\n /**\n * Get the components and build a map with the package name (from the component) as key and the dependencies as values\n *\n * @param {Component[]} components\n * @param {boolean} [filterComponentsFromManifests=true] - filter existing components from the dep graphs\n * @returns\n */\n private async buildComponentDependenciesMap(\n components: Component[],\n {\n dependencyFilterFn,\n filterComponentsFromManifests,\n excludeExtensionsDependencies,\n referenceLocalPackages,\n rootDependencies,\n rootPolicy,\n }: {\n dependencyFilterFn?: DepsFilterFn;\n filterComponentsFromManifests?: boolean;\n excludeExtensionsDependencies?: boolean;\n referenceLocalPackages?: boolean;\n rootDependencies?: Record<string, string>;\n rootPolicy?: WorkspacePolicy;\n }\n ): Promise<ComponentDependenciesMap> {\n const packageNames = components.map((component) => this.dependencyResolver.getPackageName(component));\n const buildResultsP = components.map(async (component) => {\n const packageName = componentIdToPackageName(component.state._consumer);\n let depList = this.dependencyResolver.getDependencies(component, { includeHidden: true });\n const additionalDeps = {};\n if (referenceLocalPackages) {\n const coreAspectIds = this.aspectLoader.getCoreAspectIds();\n for (const comp of depList.toTypeArray('component') as ComponentDependency[]) {\n const [compIdWithoutVersion] = comp.id.split('@');\n if (!comp.isExtension && !coreAspectIds.includes(compIdWithoutVersion)) {\n const componentInWorkspace = components.find((c) => c.id.isEqual(comp.componentId));\n if (componentInWorkspace) {\n const pkgName = this.dependencyResolver.getPackageName(componentInWorkspace);\n if (pkgName !== '@teambit/harmony') {\n additionalDeps[pkgName] = `workspace:*`;\n }\n }\n }\n }\n }\n const depManifestBeforeFiltering = depList.toDependenciesManifest();\n\n if (filterComponentsFromManifests ?? true) {\n depList = filterComponents(depList, components);\n }\n if (excludeExtensionsDependencies) {\n depList = filterExtensions(depList);\n }\n // Remove bit bin from dep list\n depList = depList.filter((dep) => dep.id !== '@teambit/legacy');\n if (dependencyFilterFn) {\n depList = dependencyFilterFn(depList);\n }\n await this.updateDependenciesVersions(component, rootPolicy, depList);\n const depManifest = depList.toDependenciesManifest();\n const { devMissings, runtimeMissings } = await getMissingPackages(component);\n // Only add missing root deps that are not already in the component manifest\n // We are using depManifestBeforeFiltering to support (rare) cases when a dependency is both:\n // a component in the workspace (bitmap) and a dependency in the workspace.jsonc / package.json\n // this happens for the bit repo itself for the @teambit/component-version component\n // in this case we don't want to add that to the manifest when it's missing, because it will be linked from the\n // workspace\n const unresolvedRuntimeMissingRootDeps = pickBy(rootDependencies, (_version, rootPackageName) => {\n return (\n runtimeMissings.includes(rootPackageName) &&\n !depManifestBeforeFiltering.dependencies[rootPackageName] &&\n !depManifestBeforeFiltering.devDependencies[rootPackageName] &&\n !depManifestBeforeFiltering.peerDependencies[rootPackageName]\n );\n });\n // Only add missing root deps that are not already in the component manifest\n const unresolvedDevMissingRootDeps = pickBy(rootDependencies, (_version, rootPackageName) => {\n return (\n devMissings.includes(rootPackageName) &&\n !depManifestBeforeFiltering.dependencies[rootPackageName] &&\n !depManifestBeforeFiltering.devDependencies[rootPackageName] &&\n !depManifestBeforeFiltering.peerDependencies[rootPackageName]\n );\n });\n\n const defaultPeerDependencies = await this._getDefaultPeerDependencies(component, packageNames);\n\n depManifest.dependencies = {\n ...defaultPeerDependencies,\n ...unresolvedRuntimeMissingRootDeps,\n ...additionalDeps,\n ...depManifest.dependencies,\n };\n\n depManifest.devDependencies = {\n ...unresolvedDevMissingRootDeps,\n ...depManifest.devDependencies,\n };\n\n return { packageName, depManifest };\n });\n const result: ComponentDependenciesMap = new Map();\n\n if (buildResultsP.length) {\n const results = await Promise.all(buildResultsP);\n results.forEach((currResult) => {\n result.set(currResult.packageName, currResult.depManifest);\n });\n }\n\n return result;\n }\n\n private async _getDefaultPeerDependencies(\n component: Component,\n packageNamesFromWorkspace: string[]\n ): Promise<Record<string, string>> {\n const envPolicy = await this.dependencyResolver.getComponentEnvPolicy(component);\n const selfPolicyWithoutLocal = envPolicy.selfPolicy.filter(\n (dep) => !packageNamesFromWorkspace.includes(dep.dependencyId)\n );\n return fromPairs(selfPolicyWithoutLocal.toNameVersionTuple());\n }\n\n private async updateDependenciesVersions(\n component: Component,\n rootPolicy: WorkspacePolicy | undefined,\n dependencyList: DependencyList\n ): Promise<void> {\n // If root policy is not passed, it means that installation happens in a capsule\n // and we only resolve versions from the dependencies, not any policies.\n const mergedPolicies = rootPolicy && (await this.dependencyResolver.getPolicy(component));\n dependencyList.forEach((dep) => {\n updateDependencyVersion(dep, rootPolicy, mergedPolicies);\n });\n }\n\n /**\n * Get the components manifests based on the calculated dedupedDependencies\n *\n * @param {DedupedDependencies} dedupedDependencies\n * @param {Component[]} components\n * @returns {ComponentsManifestsMap}\n */\n async getComponentsManifests(\n dedupedDependencies: DedupedDependencies,\n components: Component[],\n createManifestForComponentsWithoutDependencies = true\n ): Promise<ComponentsManifestsMap> {\n const componentsManifests: ComponentsManifestsMap = new Map();\n // don't use Promise.all, along the road this code might import an env from a remote, which can't be done in parallel.\n // otherwise, it may import the same component multiple times, and if fails, the ref (remote-lane) files may be corrupted.\n await pMapSeries(components, async (component) => {\n const packageName = componentIdToPackageName(component.state._consumer);\n if (\n dedupedDependencies.componentDependenciesMap.has(packageName) ||\n createManifestForComponentsWithoutDependencies\n ) {\n const blankDependencies: ManifestDependenciesObject = {\n dependencies: {},\n optionalDependencies: {},\n devDependencies: {},\n peerDependencies: {},\n peerDependenciesMeta: {},\n };\n let dependencies = blankDependencies;\n if (dedupedDependencies.componentDependenciesMap.has(packageName)) {\n dependencies = dedupedDependencies.componentDependenciesMap.get(packageName) as ManifestDependenciesObject;\n }\n\n const getVersion = (): string => {\n if (!component.id.hasVersion()) return '0.0.1-new';\n return snapToSemver(component.id.version as string);\n };\n\n const version = getVersion();\n const envPolicy = await this.dependencyResolver.getComponentEnvPolicy(component);\n const manifest = new ComponentManifest(packageName, new SemVer(version), dependencies, component, envPolicy);\n componentsManifests.set(packageName, manifest);\n }\n });\n return componentsManifests;\n }\n}\n\nfunction filterExtensions(dependencyList: DependencyList): DependencyList {\n const filtered = dependencyList.filter((dep) => {\n if (!(dep instanceof ComponentDependency)) {\n return true;\n }\n return !dep.isExtension;\n });\n return filtered;\n}\n\nfunction filterComponents(dependencyList: DependencyList, componentsToFilterOut: Component[]): DependencyList {\n const filtered = dependencyList.filter((dep) => {\n if (!(dep instanceof ComponentDependency)) {\n const depPkgName = dep.getPackageName?.();\n if (!depPkgName) return true;\n // If the package is already in the workspace as a local component,\n // then we don't want to install that package as a dependency to node_modules.\n // Otherwise, it would rewrite the local component inside the root node_modules that is created by bit link.\n return !componentsToFilterOut.some(\n (component) => depPkgName === componentIdToPackageName(component.state._consumer)\n );\n }\n // Remove dependencies which has no version (they are new in the workspace)\n if (!dep.componentId.hasVersion()) return false;\n const existingComponent = componentsToFilterOut.find((component) => {\n // For new components, the component has no version but the dependency id has version 0.0.1\n if (!component.id.hasVersion()) {\n return component.id.toString() === dep.componentId.toString({ ignoreVersion: true });\n }\n // We are checking against both component.id and component.state._consumer.id\n // Because during tag operation, the component.id has the current version (before the tag)\n // while the component.state._consumer.id has the upcoming version (the version that will be after the tag)\n // The dependency in some cases is already updated to the upcoming version\n return (\n component.id.isEqualWithoutVersion(dep.componentId) ||\n component.state._consumer.id.isEqualWithoutVersion(dep.componentId)\n );\n });\n if (existingComponent) return false;\n return true;\n });\n return filtered;\n}\n\nfunction excludeWorkspaceDependencies(deps: DepObjectValue): DepObjectValue {\n return pickBy(deps, (versionSpec) => !versionSpec.startsWith('file:') && !versionSpec.startsWith('workspace:'));\n}\n\nasync function getMissingPackages(component: Component): Promise<{ devMissings: string[]; runtimeMissings: string[] }> {\n const missingPackagesData = component.state.issues.getIssue(IssuesClasses.MissingPackagesDependenciesOnFs)?.data;\n if (!missingPackagesData?.length) return { devMissings: [], runtimeMissings: [] };\n\n let devMissings: string[] = [];\n let runtimeMissings: string[] = [];\n\n missingPackagesData.forEach((data) => {\n if (data.isDevFile) {\n devMissings.push(...data.missingPackages);\n } else {\n runtimeMissings.push(...data.missingPackages);\n }\n });\n devMissings = uniq(devMissings);\n runtimeMissings = uniq(runtimeMissings);\n\n // Remove dev missing which are also runtime missing\n devMissings = difference(devMissings, runtimeMissings);\n return {\n devMissings,\n runtimeMissings,\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_aspectLoader","data","require","_componentIssues","_pkgModules","_lodash","_semver","_pMapSeries","_interopRequireDefault","_componentPackageVersion","_dependencies","_policy","_componentManifest","_deduping","_updateDependencyVersion","_workspaceManifest","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","DEFAULT_CREATE_OPTIONS","filterComponentsFromManifests","createManifestForComponentsWithoutDependencies","dedupe","resolveVersionsFromDependenciesOnly","excludeExtensionsDependencies","WorkspaceManifestFactory","constructor","dependencyResolver","aspectLoader","createFromComponents","name","version","rootPolicy","rootDir","components","options","optsWithDefaults","assign","hasRootComponents","filterOutCoreAspects","componentDependenciesMap","buildComponentDependenciesMap","undefined","dependencyFilterFn","referenceLocalPackages","rootDependencies","toManifest","dependencies","dedupedDependencies","getEmptyDedupedDependencies","dedupeDependencies","dedupePeerDependencies","mapValues","deps","excludeWorkspaceDependencies","componentsManifestsMap","getComponentsManifests","envSelfPeers","getEnvsSelfPeersPolicy","workspaceManifest","WorkspaceManifest","coreAspectIds","getCoreAspectIds","coreAspectPkgNames","Set","map","coreAspectId","getCoreAspectPackageName","add","dep","has","dependencyId","foundEnvs","component","values","envPolicy","peersPolicies","policy","selfPolicy","mergedPolicies","VariantPolicy","mergePolices","packageNames","getPackageName","buildResultsP","packageName","componentIdToPackageName","state","_consumer","depList","getDependencies","includeHidden","additionalDeps","comp","toTypeArray","compIdWithoutVersion","id","split","isExtension","includes","componentInWorkspace","find","c","isEqual","componentId","pkgName","depManifestBeforeFiltering","toDependenciesManifest","filterComponents","filterExtensions","updateDependenciesVersions","depManifest","devMissings","runtimeMissings","getMissingPackages","unresolvedRuntimeMissingRootDeps","pickBy","_version","rootPackageName","devDependencies","peerDependencies","unresolvedDevMissingRootDeps","defaultPeerDependencies","_getDefaultPeerDependencies","result","Map","results","Promise","all","currResult","set","packageNamesFromWorkspace","getComponentEnvPolicy","selfPolicyWithoutLocal","fromPairs","toNameVersionTuple","dependencyList","getPolicy","updateDependencyVersion","componentsManifests","pMapSeries","blankDependencies","optionalDependencies","peerDependenciesMeta","get","getVersion","hasVersion","snapToSemver","manifest","ComponentManifest","SemVer","exports","filtered","ComponentDependency","componentsToFilterOut","depPkgName","some","existingComponent","toString","ignoreVersion","isEqualWithoutVersion","versionSpec","startsWith","missingPackagesData","issues","getIssue","IssuesClasses","MissingPackagesDependenciesOnFs","isDevFile","missingPackages","uniq","difference"],"sources":["workspace-manifest-factory.ts"],"sourcesContent":["import type { AspectLoaderMain } from '@teambit/aspect-loader';\nimport { getCoreAspectPackageName } from '@teambit/aspect-loader';\nimport { IssuesClasses } from '@teambit/component-issues';\nimport type { Component } from '@teambit/component';\nimport { componentIdToPackageName } from '@teambit/pkg.modules.component-package-name';\nimport { fromPairs, pickBy, mapValues, uniq, difference } from 'lodash';\nimport { SemVer } from 'semver';\nimport pMapSeries from 'p-map-series';\nimport { snapToSemver } from '@teambit/component-package-version';\nimport type { DependencyList, PackageName } from '../dependencies';\nimport { ComponentDependency } from '../dependencies';\nimport type { WorkspacePolicy, EnvPolicy } from '../policy';\nimport { VariantPolicy } from '../policy';\nimport type { DependencyResolverMain } from '../dependency-resolver.main.runtime';\nimport type { ComponentsManifestsMap } from '../types';\nimport { ComponentManifest } from './component-manifest';\nimport type { DedupedDependencies } from './deduping';\nimport { dedupeDependencies, getEmptyDedupedDependencies } from './deduping';\nimport type { ManifestToJsonOptions, ManifestDependenciesObject, DepObjectValue } from './manifest';\nimport { updateDependencyVersion } from './update-dependency-version';\nimport { WorkspaceManifest } from './workspace-manifest';\n\nexport type DepsFilterFn = (dependencies: DependencyList) => DependencyList;\n\nexport type ComponentDependenciesMap = Map<PackageName, ManifestDependenciesObject>;\nexport interface WorkspaceManifestToJsonOptions extends ManifestToJsonOptions {\n includeDir?: boolean;\n}\n\nexport type CreateFromComponentsOptions = {\n filterComponentsFromManifests: boolean;\n createManifestForComponentsWithoutDependencies: boolean;\n dedupe?: boolean;\n dependencyFilterFn?: DepsFilterFn;\n resolveVersionsFromDependenciesOnly?: boolean;\n referenceLocalPackages?: boolean;\n hasRootComponents?: boolean;\n excludeExtensionsDependencies?: boolean;\n};\n\nconst DEFAULT_CREATE_OPTIONS: CreateFromComponentsOptions = {\n filterComponentsFromManifests: true,\n createManifestForComponentsWithoutDependencies: true,\n dedupe: true,\n resolveVersionsFromDependenciesOnly: false,\n excludeExtensionsDependencies: false,\n};\nexport class WorkspaceManifestFactory {\n constructor(\n private dependencyResolver: DependencyResolverMain,\n private aspectLoader: AspectLoaderMain\n ) {}\n\n async createFromComponents(\n name: string,\n version: SemVer,\n rootPolicy: WorkspacePolicy,\n rootDir: string,\n components: Component[],\n options: CreateFromComponentsOptions = DEFAULT_CREATE_OPTIONS\n ): Promise<WorkspaceManifest> {\n // Make sure to take other default if passed options with only one option\n const optsWithDefaults = Object.assign({}, DEFAULT_CREATE_OPTIONS, options);\n const hasRootComponents = options.hasRootComponents ?? this.dependencyResolver.hasRootComponents();\n rootPolicy = this.filterOutCoreAspects(rootPolicy);\n const componentDependenciesMap: ComponentDependenciesMap = await this.buildComponentDependenciesMap(components, {\n filterComponentsFromManifests: optsWithDefaults.filterComponentsFromManifests,\n rootPolicy: optsWithDefaults.resolveVersionsFromDependenciesOnly ? undefined : rootPolicy,\n dependencyFilterFn: optsWithDefaults.dependencyFilterFn,\n excludeExtensionsDependencies: optsWithDefaults.excludeExtensionsDependencies,\n referenceLocalPackages: optsWithDefaults.referenceLocalPackages && hasRootComponents,\n rootDependencies: hasRootComponents ? rootPolicy.toManifest().dependencies : undefined,\n });\n let dedupedDependencies = getEmptyDedupedDependencies();\n if (hasRootComponents) {\n const { rootDependencies } = dedupeDependencies(rootPolicy, componentDependenciesMap, {\n dedupePeerDependencies: hasRootComponents,\n });\n // We hoist dependencies in order for the IDE to work.\n // For runtime, the peer dependencies are installed inside:\n // <ws root>/node_module/<comp name>/node_module/<comp name>/node_modules\n dedupedDependencies.rootDependencies = mapValues(\n rootDependencies,\n (deps) => deps && excludeWorkspaceDependencies(deps)\n );\n dedupedDependencies.componentDependenciesMap = componentDependenciesMap;\n } else if (options.dedupe) {\n dedupedDependencies = dedupeDependencies(rootPolicy, componentDependenciesMap);\n } else {\n dedupedDependencies.rootDependencies = rootPolicy.toManifest();\n dedupedDependencies.componentDependenciesMap = componentDependenciesMap;\n }\n const componentsManifestsMap = await this.getComponentsManifests(\n dedupedDependencies,\n components,\n optsWithDefaults.createManifestForComponentsWithoutDependencies\n );\n const envSelfPeers = this.getEnvsSelfPeersPolicy(componentsManifestsMap);\n const workspaceManifest = new WorkspaceManifest(\n name,\n version,\n dedupedDependencies.rootDependencies,\n envSelfPeers,\n rootDir,\n componentsManifestsMap\n );\n return workspaceManifest;\n }\n\n private filterOutCoreAspects(rootPolicy: WorkspacePolicy) {\n const coreAspectIds = this.aspectLoader.getCoreAspectIds();\n const coreAspectPkgNames = new Set(coreAspectIds.map((coreAspectId) => getCoreAspectPackageName(coreAspectId)));\n coreAspectPkgNames.add('@teambit/legacy');\n return rootPolicy.filter((dep) => !coreAspectPkgNames.has(dep.dependencyId));\n }\n\n private getEnvsSelfPeersPolicy(componentsManifestsMap: ComponentsManifestsMap) {\n const foundEnvs: EnvPolicy[] = [];\n for (const component of componentsManifestsMap.values()) {\n foundEnvs.push(component.envPolicy);\n }\n const peersPolicies = foundEnvs.map((policy) => policy.selfPolicy);\n // TODO: At the moment we are just merge everything, so in case of conflicts one will be taken\n // TODO: once we have root for each env, we should know to handle it differently\n const mergedPolicies = VariantPolicy.mergePolices(peersPolicies);\n return mergedPolicies;\n }\n\n /**\n * Get the components and build a map with the package name (from the component) as key and the dependencies as values\n *\n * @param {Component[]} components\n * @param {boolean} [filterComponentsFromManifests=true] - filter existing components from the dep graphs\n * @returns\n */\n private async buildComponentDependenciesMap(\n components: Component[],\n {\n dependencyFilterFn,\n filterComponentsFromManifests,\n excludeExtensionsDependencies,\n referenceLocalPackages,\n rootDependencies,\n rootPolicy,\n }: {\n dependencyFilterFn?: DepsFilterFn;\n filterComponentsFromManifests?: boolean;\n excludeExtensionsDependencies?: boolean;\n referenceLocalPackages?: boolean;\n rootDependencies?: Record<string, string>;\n rootPolicy?: WorkspacePolicy;\n }\n ): Promise<ComponentDependenciesMap> {\n const packageNames = components.map((component) => this.dependencyResolver.getPackageName(component));\n const buildResultsP = components.map(async (component) => {\n const packageName = componentIdToPackageName(component.state._consumer);\n let depList = this.dependencyResolver.getDependencies(component, { includeHidden: true });\n const additionalDeps = {};\n if (referenceLocalPackages) {\n const coreAspectIds = this.aspectLoader.getCoreAspectIds();\n for (const comp of depList.toTypeArray('component') as ComponentDependency[]) {\n const [compIdWithoutVersion] = comp.id.split('@');\n if (!comp.isExtension && !coreAspectIds.includes(compIdWithoutVersion)) {\n const componentInWorkspace = components.find((c) => c.id.isEqual(comp.componentId));\n if (componentInWorkspace) {\n const pkgName = this.dependencyResolver.getPackageName(componentInWorkspace);\n if (pkgName !== '@teambit/harmony') {\n additionalDeps[pkgName] = `workspace:*`;\n }\n }\n }\n }\n }\n const depManifestBeforeFiltering = depList.toDependenciesManifest();\n\n if (filterComponentsFromManifests ?? true) {\n depList = filterComponents(depList, components);\n }\n if (excludeExtensionsDependencies) {\n depList = filterExtensions(depList);\n }\n // Remove bit bin from dep list\n depList = depList.filter((dep) => dep.id !== '@teambit/legacy');\n if (dependencyFilterFn) {\n depList = dependencyFilterFn(depList);\n }\n await this.updateDependenciesVersions(component, rootPolicy, depList);\n const depManifest = depList.toDependenciesManifest();\n const { devMissings, runtimeMissings } = await getMissingPackages(component);\n // Only add missing root deps that are not already in the component manifest\n // We are using depManifestBeforeFiltering to support (rare) cases when a dependency is both:\n // a component in the workspace (bitmap) and a dependency in the workspace.jsonc / package.json\n // this happens for the bit repo itself for the @teambit/component-version component\n // in this case we don't want to add that to the manifest when it's missing, because it will be linked from the\n // workspace\n const unresolvedRuntimeMissingRootDeps = pickBy(rootDependencies, (_version, rootPackageName) => {\n return (\n runtimeMissings.includes(rootPackageName) &&\n !depManifestBeforeFiltering.dependencies[rootPackageName] &&\n !depManifestBeforeFiltering.devDependencies[rootPackageName] &&\n !depManifestBeforeFiltering.peerDependencies[rootPackageName]\n );\n });\n // Only add missing root deps that are not already in the component manifest\n const unresolvedDevMissingRootDeps = pickBy(rootDependencies, (_version, rootPackageName) => {\n return (\n devMissings.includes(rootPackageName) &&\n !depManifestBeforeFiltering.dependencies[rootPackageName] &&\n !depManifestBeforeFiltering.devDependencies[rootPackageName] &&\n !depManifestBeforeFiltering.peerDependencies[rootPackageName]\n );\n });\n\n const defaultPeerDependencies = await this._getDefaultPeerDependencies(component, packageNames);\n\n depManifest.dependencies = {\n ...defaultPeerDependencies,\n ...unresolvedRuntimeMissingRootDeps,\n ...additionalDeps,\n ...depManifest.dependencies,\n };\n\n depManifest.devDependencies = {\n ...unresolvedDevMissingRootDeps,\n ...depManifest.devDependencies,\n };\n\n return { packageName, depManifest };\n });\n const result: ComponentDependenciesMap = new Map();\n\n if (buildResultsP.length) {\n const results = await Promise.all(buildResultsP);\n results.forEach((currResult) => {\n result.set(currResult.packageName, currResult.depManifest);\n });\n }\n\n return result;\n }\n\n private async _getDefaultPeerDependencies(\n component: Component,\n packageNamesFromWorkspace: string[]\n ): Promise<Record<string, string>> {\n const envPolicy = await this.dependencyResolver.getComponentEnvPolicy(component);\n const selfPolicyWithoutLocal = envPolicy.selfPolicy.filter(\n (dep) => !packageNamesFromWorkspace.includes(dep.dependencyId)\n );\n return fromPairs(selfPolicyWithoutLocal.toNameVersionTuple());\n }\n\n private async updateDependenciesVersions(\n component: Component,\n rootPolicy: WorkspacePolicy | undefined,\n dependencyList: DependencyList\n ): Promise<void> {\n // If root policy is not passed, it means that installation happens in a capsule\n // and we only resolve versions from the dependencies, not any policies.\n const mergedPolicies = rootPolicy && (await this.dependencyResolver.getPolicy(component));\n dependencyList.forEach((dep) => {\n updateDependencyVersion(dep, rootPolicy, mergedPolicies);\n });\n }\n\n /**\n * Get the components manifests based on the calculated dedupedDependencies\n *\n * @param {DedupedDependencies} dedupedDependencies\n * @param {Component[]} components\n * @returns {ComponentsManifestsMap}\n */\n async getComponentsManifests(\n dedupedDependencies: DedupedDependencies,\n components: Component[],\n createManifestForComponentsWithoutDependencies = true\n ): Promise<ComponentsManifestsMap> {\n const componentsManifests: ComponentsManifestsMap = new Map();\n // don't use Promise.all, along the road this code might import an env from a remote, which can't be done in parallel.\n // otherwise, it may import the same component multiple times, and if fails, the ref (remote-lane) files may be corrupted.\n await pMapSeries(components, async (component) => {\n const packageName = componentIdToPackageName(component.state._consumer);\n if (\n dedupedDependencies.componentDependenciesMap.has(packageName) ||\n createManifestForComponentsWithoutDependencies\n ) {\n const blankDependencies: ManifestDependenciesObject = {\n dependencies: {},\n optionalDependencies: {},\n devDependencies: {},\n peerDependencies: {},\n peerDependenciesMeta: {},\n };\n let dependencies = blankDependencies;\n if (dedupedDependencies.componentDependenciesMap.has(packageName)) {\n dependencies = dedupedDependencies.componentDependenciesMap.get(packageName) as ManifestDependenciesObject;\n }\n\n const getVersion = (): string => {\n if (!component.id.hasVersion()) return '0.0.1-new';\n return snapToSemver(component.id.version as string);\n };\n\n const version = getVersion();\n const envPolicy = await this.dependencyResolver.getComponentEnvPolicy(component);\n const manifest = new ComponentManifest(packageName, new SemVer(version), dependencies, component, envPolicy);\n componentsManifests.set(packageName, manifest);\n }\n });\n return componentsManifests;\n }\n}\n\nfunction filterExtensions(dependencyList: DependencyList): DependencyList {\n const filtered = dependencyList.filter((dep) => {\n if (!(dep instanceof ComponentDependency)) {\n return true;\n }\n return !dep.isExtension;\n });\n return filtered;\n}\n\nfunction filterComponents(dependencyList: DependencyList, componentsToFilterOut: Component[]): DependencyList {\n const filtered = dependencyList.filter((dep) => {\n if (!(dep instanceof ComponentDependency)) {\n const depPkgName = dep.getPackageName?.();\n if (!depPkgName) return true;\n // If the package is already in the workspace as a local component,\n // then we don't want to install that package as a dependency to node_modules.\n // Otherwise, it would rewrite the local component inside the root node_modules that is created by bit link.\n return !componentsToFilterOut.some(\n (component) => depPkgName === componentIdToPackageName(component.state._consumer)\n );\n }\n // Remove dependencies which has no version (they are new in the workspace)\n if (!dep.componentId.hasVersion()) return false;\n const existingComponent = componentsToFilterOut.find((component) => {\n // For new components, the component has no version but the dependency id has version 0.0.1\n if (!component.id.hasVersion()) {\n return component.id.toString() === dep.componentId.toString({ ignoreVersion: true });\n }\n // We are checking against both component.id and component.state._consumer.id\n // Because during tag operation, the component.id has the current version (before the tag)\n // while the component.state._consumer.id has the upcoming version (the version that will be after the tag)\n // The dependency in some cases is already updated to the upcoming version\n return (\n component.id.isEqualWithoutVersion(dep.componentId) ||\n component.state._consumer.id.isEqualWithoutVersion(dep.componentId)\n );\n });\n if (existingComponent) return false;\n return true;\n });\n return filtered;\n}\n\nfunction excludeWorkspaceDependencies(deps: DepObjectValue): DepObjectValue {\n return pickBy(deps, (versionSpec) => !versionSpec.startsWith('file:') && !versionSpec.startsWith('workspace:'));\n}\n\nasync function getMissingPackages(component: Component): Promise<{ devMissings: string[]; runtimeMissings: string[] }> {\n const missingPackagesData = component.state.issues.getIssue(IssuesClasses.MissingPackagesDependenciesOnFs)?.data;\n if (!missingPackagesData?.length) return { devMissings: [], runtimeMissings: [] };\n\n let devMissings: string[] = [];\n let runtimeMissings: string[] = [];\n\n missingPackagesData.forEach((data) => {\n if (data.isDevFile) {\n devMissings.push(...data.missingPackages);\n } else {\n runtimeMissings.push(...data.missingPackages);\n }\n });\n devMissings = uniq(devMissings);\n runtimeMissings = uniq(runtimeMissings);\n\n // Remove dev missing which are also runtime missing\n devMissings = difference(devMissings, runtimeMissings);\n return {\n devMissings,\n runtimeMissings,\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,8 @@
1
- import { SemVer } from 'semver';
2
- import { VariantPolicy } from '../policy';
3
- import { ComponentsManifestsMap } from '../types';
4
- import { Manifest, ManifestToJsonOptions, ManifestDependenciesObject } from './manifest';
1
+ import type { SemVer } from 'semver';
2
+ import type { VariantPolicy } from '../policy';
3
+ import type { ComponentsManifestsMap } from '../types';
4
+ import type { ManifestToJsonOptions, ManifestDependenciesObject } from './manifest';
5
+ import { Manifest } from './manifest';
5
6
  export interface WorkspaceManifestToJsonOptions extends ManifestToJsonOptions {
6
7
  installPeersFromEnvs?: boolean;
7
8
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_manifest","data","require","WorkspaceManifest","Manifest","constructor","name","version","dependencies","envSelfPeersPolicy","rootDir","componentsManifestsMap","dir","getComponentMap","toJson","options","manifest","installPeersFromEnvs","peersManifest","toVersionManifest","Object","assign","toJsonWithDir","exports"],"sources":["workspace-manifest.ts"],"sourcesContent":["import { SemVer } from 'semver';\nimport { VariantPolicy } from '../policy';\n\nimport { ComponentsManifestsMap } from '../types';\nimport { Manifest, ManifestToJsonOptions, ManifestDependenciesObject } from './manifest';\n\nexport interface WorkspaceManifestToJsonOptions extends ManifestToJsonOptions {\n installPeersFromEnvs?: boolean;\n}\n\nexport class WorkspaceManifest extends Manifest {\n constructor(\n // TODO: please prefer readonly on public\n public name: string,\n public version: SemVer,\n public dependencies: ManifestDependenciesObject,\n private envSelfPeersPolicy: VariantPolicy | undefined,\n private rootDir: string,\n public componentsManifestsMap: ComponentsManifestsMap\n ) {\n super(name, version, dependencies);\n }\n\n get dir() {\n return this.rootDir;\n }\n\n getComponentMap() {}\n\n toJson(options: WorkspaceManifestToJsonOptions = {}): Record<string, any> {\n const manifest = super.toJson(options);\n if (options.installPeersFromEnvs) {\n const peersManifest = this.envSelfPeersPolicy?.toVersionManifest();\n manifest.dependencies = manifest.dependencies || {};\n Object.assign(manifest.dependencies, peersManifest);\n }\n return manifest;\n }\n\n toJsonWithDir(options: WorkspaceManifestToJsonOptions = {}): { rootDir: string; manifest: Record<string, any> } {\n return {\n manifest: this.toJson(options),\n rootDir: this.rootDir,\n };\n }\n}\n"],"mappings":";;;;;;AAIA,SAAAA,UAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,SAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAMO,MAAME,iBAAiB,SAASC,oBAAQ,CAAC;EAC9CC,WAAWA;EACT;EACOC,IAAY,EACZC,OAAe,EACfC,YAAwC,EACvCC,kBAA6C,EAC7CC,OAAe,EAChBC,sBAA8C,EACrD;IACA,KAAK,CAACL,IAAI,EAAEC,OAAO,EAAEC,YAAY,CAAC;IAAC,KAP5BF,IAAY,GAAZA,IAAY;IAAA,KACZC,OAAe,GAAfA,OAAe;IAAA,KACfC,YAAwC,GAAxCA,YAAwC;IAAA,KACvCC,kBAA6C,GAA7CA,kBAA6C;IAAA,KAC7CC,OAAe,GAAfA,OAAe;IAAA,KAChBC,sBAA8C,GAA9CA,sBAA8C;EAGvD;EAEA,IAAIC,GAAGA,CAAA,EAAG;IACR,OAAO,IAAI,CAACF,OAAO;EACrB;EAEAG,eAAeA,CAAA,EAAG,CAAC;EAEnBC,MAAMA,CAACC,OAAuC,GAAG,CAAC,CAAC,EAAuB;IACxE,MAAMC,QAAQ,GAAG,KAAK,CAACF,MAAM,CAACC,OAAO,CAAC;IACtC,IAAIA,OAAO,CAACE,oBAAoB,EAAE;MAChC,MAAMC,aAAa,GAAG,IAAI,CAACT,kBAAkB,EAAEU,iBAAiB,CAAC,CAAC;MAClEH,QAAQ,CAACR,YAAY,GAAGQ,QAAQ,CAACR,YAAY,IAAI,CAAC,CAAC;MACnDY,MAAM,CAACC,MAAM,CAACL,QAAQ,CAACR,YAAY,EAAEU,aAAa,CAAC;IACrD;IACA,OAAOF,QAAQ;EACjB;EAEAM,aAAaA,CAACP,OAAuC,GAAG,CAAC,CAAC,EAAsD;IAC9G,OAAO;MACLC,QAAQ,EAAE,IAAI,CAACF,MAAM,CAACC,OAAO,CAAC;MAC9BL,OAAO,EAAE,IAAI,CAACA;IAChB,CAAC;EACH;AACF;AAACa,OAAA,CAAApB,iBAAA,GAAAA,iBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_manifest","data","require","WorkspaceManifest","Manifest","constructor","name","version","dependencies","envSelfPeersPolicy","rootDir","componentsManifestsMap","dir","getComponentMap","toJson","options","manifest","installPeersFromEnvs","peersManifest","toVersionManifest","Object","assign","toJsonWithDir","exports"],"sources":["workspace-manifest.ts"],"sourcesContent":["import type { SemVer } from 'semver';\nimport type { VariantPolicy } from '../policy';\n\nimport type { ComponentsManifestsMap } from '../types';\nimport type { ManifestToJsonOptions, ManifestDependenciesObject } from './manifest';\nimport { Manifest } from './manifest';\n\nexport interface WorkspaceManifestToJsonOptions extends ManifestToJsonOptions {\n installPeersFromEnvs?: boolean;\n}\n\nexport class WorkspaceManifest extends Manifest {\n constructor(\n // TODO: please prefer readonly on public\n public name: string,\n public version: SemVer,\n public dependencies: ManifestDependenciesObject,\n private envSelfPeersPolicy: VariantPolicy | undefined,\n private rootDir: string,\n public componentsManifestsMap: ComponentsManifestsMap\n ) {\n super(name, version, dependencies);\n }\n\n get dir() {\n return this.rootDir;\n }\n\n getComponentMap() {}\n\n toJson(options: WorkspaceManifestToJsonOptions = {}): Record<string, any> {\n const manifest = super.toJson(options);\n if (options.installPeersFromEnvs) {\n const peersManifest = this.envSelfPeersPolicy?.toVersionManifest();\n manifest.dependencies = manifest.dependencies || {};\n Object.assign(manifest.dependencies, peersManifest);\n }\n return manifest;\n }\n\n toJsonWithDir(options: WorkspaceManifestToJsonOptions = {}): { rootDir: string; manifest: Record<string, any> } {\n return {\n manifest: this.toJson(options),\n rootDir: this.rootDir,\n };\n }\n}\n"],"mappings":";;;;;;AAKA,SAAAA,UAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,SAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAMO,MAAME,iBAAiB,SAASC,oBAAQ,CAAC;EAC9CC,WAAWA;EACT;EACOC,IAAY,EACZC,OAAe,EACfC,YAAwC,EACvCC,kBAA6C,EAC7CC,OAAe,EAChBC,sBAA8C,EACrD;IACA,KAAK,CAACL,IAAI,EAAEC,OAAO,EAAEC,YAAY,CAAC;IAAC,KAP5BF,IAAY,GAAZA,IAAY;IAAA,KACZC,OAAe,GAAfA,OAAe;IAAA,KACfC,YAAwC,GAAxCA,YAAwC;IAAA,KACvCC,kBAA6C,GAA7CA,kBAA6C;IAAA,KAC7CC,OAAe,GAAfA,OAAe;IAAA,KAChBC,sBAA8C,GAA9CA,sBAA8C;EAGvD;EAEA,IAAIC,GAAGA,CAAA,EAAG;IACR,OAAO,IAAI,CAACF,OAAO;EACrB;EAEAG,eAAeA,CAAA,EAAG,CAAC;EAEnBC,MAAMA,CAACC,OAAuC,GAAG,CAAC,CAAC,EAAuB;IACxE,MAAMC,QAAQ,GAAG,KAAK,CAACF,MAAM,CAACC,OAAO,CAAC;IACtC,IAAIA,OAAO,CAACE,oBAAoB,EAAE;MAChC,MAAMC,aAAa,GAAG,IAAI,CAACT,kBAAkB,EAAEU,iBAAiB,CAAC,CAAC;MAClEH,QAAQ,CAACR,YAAY,GAAGQ,QAAQ,CAACR,YAAY,IAAI,CAAC,CAAC;MACnDY,MAAM,CAACC,MAAM,CAACL,QAAQ,CAACR,YAAY,EAAEU,aAAa,CAAC;IACrD;IACA,OAAOF,QAAQ;EACjB;EAEAM,aAAaA,CAACP,OAAuC,GAAG,CAAC,CAAC,EAAsD;IAC9G,OAAO;MACLC,QAAQ,EAAE,IAAI,CAACF,MAAM,CAACC,OAAO,CAAC;MAC9BL,OAAO,EAAE,IAAI,CAACA;IAChB,CAAC;EACH;AACF;AAACa,OAAA,CAAApB,iBAAA,GAAAA,iBAAA","ignoreList":[]}
@@ -1,10 +1,10 @@
1
1
  import { PeerDependencyIssuesByProjects } from '@pnpm/core';
2
- import { PeerDependencyRules, ProjectManifest, DependencyManifest } from '@pnpm/types';
3
- import { ComponentID, ComponentMap } from '@teambit/component';
2
+ import type { PeerDependencyRules, ProjectManifest, DependencyManifest } from '@pnpm/types';
3
+ import type { ComponentID, ComponentMap } from '@teambit/component';
4
4
  import { type DependenciesGraph } from '@teambit/objects';
5
- import { Registries } from '@teambit/pkg.entities.registry';
6
- import { DepsFilterFn } from './manifest';
7
- import { NetworkConfig, ProxyConfig } from './dependency-resolver.main.runtime';
5
+ import type { Registries } from '@teambit/pkg.entities.registry';
6
+ import type { DepsFilterFn } from './manifest';
7
+ import type { NetworkConfig, ProxyConfig } from './dependency-resolver.main.runtime';
8
8
  export { PeerDependencyIssuesByProjects };
9
9
  export type PackageImportMethod = 'auto' | 'hardlink' | 'copy' | 'clone';
10
10
  export type PackageManagerInstallOptions = {
@@ -1 +1 @@
1
- {"version":3,"names":["_core","data","require"],"sources":["package-manager.ts"],"sourcesContent":["import { PeerDependencyIssuesByProjects } from '@pnpm/core';\nimport { PeerDependencyRules, ProjectManifest, DependencyManifest } from '@pnpm/types';\nimport { ComponentID, ComponentMap } from '@teambit/component';\nimport { type DependenciesGraph } from '@teambit/objects';\nimport { Registries } from '@teambit/pkg.entities.registry';\nimport { DepsFilterFn } from './manifest';\nimport { NetworkConfig, ProxyConfig } from './dependency-resolver.main.runtime';\n\nexport { PeerDependencyIssuesByProjects };\n\nexport type PackageImportMethod = 'auto' | 'hardlink' | 'copy' | 'clone';\n\nexport type PackageManagerInstallOptions = {\n cacheRootDir?: string;\n /**\n * decide whether to dedup dependencies.\n */\n dedupe?: boolean;\n\n copyPeerToRuntimeOnRoot?: boolean;\n\n copyPeerToRuntimeOnComponents?: boolean;\n\n excludeLinksFromLockfile?: boolean;\n\n installPeersFromEnvs?: boolean;\n\n dependencyFilterFn?: DepsFilterFn;\n\n overrides?: Record<string, string>;\n\n lockfileOnly?: boolean;\n\n /**\n * When false, the package manager will not write the node_modules directory\n */\n enableModulesDir?: boolean;\n\n nodeLinker?: 'hoisted' | 'isolated';\n\n packageManagerConfigRootDir?: string;\n\n packageImportMethod?: PackageImportMethod;\n\n rootComponents?: boolean;\n\n rootComponentsForCapsules?: boolean;\n\n useNesting?: boolean;\n\n keepExistingModulesDir?: boolean;\n\n sideEffectsCache?: boolean;\n\n engineStrict?: boolean;\n\n nodeVersion?: string;\n\n peerDependencyRules?: PeerDependencyRules;\n\n includeOptionalDeps?: boolean;\n\n updateAll?: boolean;\n\n hidePackageManagerOutput?: boolean;\n\n pruneNodeModules?: boolean;\n\n hasRootComponents?: boolean;\n\n neverBuiltDependencies?: string[];\n\n preferOffline?: boolean;\n\n nmSelfReferences?: boolean;\n\n /**\n * e.g. when running `bit install` through the web or the IDE, not from the CLI.\n */\n optimizeReportForNonTerminal?: boolean;\n\n /**\n * Sets the frequency of updating the progress output in milliseconds.\n * E.g., if this is set to 1000, then the progress will be updated every second.\n */\n throttleProgress?: number;\n\n hideProgressPrefix?: boolean;\n\n hideLifecycleOutput?: boolean;\n\n /**\n * Do installation using lockfile only. Ignore the component manifests.\n */\n ignorePackageManifest?: boolean;\n\n /**\n * When enabled, installation by the package manager will be skipped\n * but all the options will be calculated and the rebuild function will be returned.\n * We use this option for a performance optimization in Ripple CI.\n */\n dryRun?: boolean;\n\n dedupeInjectedDeps?: boolean;\n\n /**\n * When this is set to true, pnpm will hoist workspace packages to node_modules/.pnpm/node_modules.\n * This is something we need in capsules.\n */\n hoistWorkspacePackages?: boolean;\n\n /**\n * Tells pnpm which packages should be hoisted to node_modules/.pnpm/node_modules.\n * By default, all packages are hoisted - however, if you know that only some flawed packages have phantom dependencies,\n * you can use this option to exclusively hoist the phantom dependencies (recommended).\n */\n hoistPatterns?: string[];\n\n /**\n * When true, dependencies from the workspace are hoisted to node_modules/.pnpm/node_modules\n * even if they are found in the root node_modules\n */\n hoistInjectedDependencies?: boolean;\n\n /**\n * Tells pnpm to automatically install peer dependencies. It is true by default.\n */\n autoInstallPeers?: boolean;\n\n /**\n * Tells the package manager to return the list of dependencies that has to be built.\n * This is used by Ripple CI.\n */\n returnListOfDepsRequiringBuild?: boolean;\n\n dependenciesGraph?: DependenciesGraph;\n\n forcedHarmonyVersion?: string;\n};\n\nexport type PackageManagerGetPeerDependencyIssuesOptions = PackageManagerInstallOptions;\n\nexport type ResolvedPackageVersion = {\n packageName: string;\n version: string | null;\n wantedRange?: string;\n isSemver: boolean;\n resolvedVia?: string;\n manifest?: DependencyManifest;\n};\n\nexport type PackageManagerResolveRemoteVersionOptions = {\n rootDir: string;\n cacheRootDir?: string;\n packageManagerConfigRootDir?: string;\n fullMetadata?: boolean;\n // fetchToCache?: boolean;\n // update?: boolean;\n};\n\nexport interface InstallationContext {\n rootDir: string;\n manifests: Record<string, ProjectManifest>;\n componentDirectoryMap: ComponentMap<string>;\n}\n\nexport interface PackageManager {\n /**\n * Name of the package manager\n */\n name: string;\n /**\n * install dependencies\n * @param componentDirectoryMap\n */\n install(\n context: InstallationContext,\n options: PackageManagerInstallOptions\n ): Promise<{ dependenciesChanged: boolean }>;\n\n pruneModules?(rootDir: string): Promise<void>;\n\n resolveRemoteVersion(\n packageName: string,\n options: PackageManagerResolveRemoteVersionOptions\n ): Promise<ResolvedPackageVersion>;\n\n getPeerDependencyIssues?(\n rootDir: string,\n manifests: Record<string, ProjectManifest>,\n options: PackageManagerGetPeerDependencyIssuesOptions\n ): Promise<PeerDependencyIssuesByProjects>;\n\n getInjectedDirs?(rootDir: string, componentDir: string, packageName: string): Promise<string[]>;\n\n getRegistries?(): Promise<Registries>;\n\n getProxyConfig?(): Promise<ProxyConfig>;\n\n getNetworkConfig?(): Promise<NetworkConfig>;\n\n /**\n * Specify if the package manager can be run with deduping on existing worksapce (which already contains root dependencies)\n * again, with a different context.\n * If the package manager is not capable of doing so, we want to disable the deduping.\n */\n supportsDedupingOnExistingRoot?: () => boolean;\n\n /**\n * Returns \"dependencies\" entries for \".bit_roots\".\n * These entries tell the package manager from where to the local components should be installed.\n */\n getWorkspaceDepsOfBitRoots(manifests: ProjectManifest[]): Record<string, string>;\n\n findUsages?(depName: string, opts: { lockfileDir: string; depth?: number }): Promise<string>;\n\n calcDependenciesGraph?(options: CalcDepsGraphOptions): Promise<DependenciesGraph | undefined>;\n}\n\nexport interface CalcDepsGraphOptions {\n componentRelativeDir: string;\n componentIdByPkgName: ComponentIdByPkgName;\n rootDir: string;\n componentRootDir?: string;\n pkgName?: string;\n}\n\nexport type ComponentIdByPkgName = Map<string, ComponentID>;\n"],"mappings":";;;;;;;;;;;AAAA,SAAAA,MAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,KAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA","ignoreList":[]}
1
+ {"version":3,"names":["_core","data","require"],"sources":["package-manager.ts"],"sourcesContent":["import { PeerDependencyIssuesByProjects } from '@pnpm/core';\nimport type { PeerDependencyRules, ProjectManifest, DependencyManifest } from '@pnpm/types';\nimport type { ComponentID, ComponentMap } from '@teambit/component';\nimport { type DependenciesGraph } from '@teambit/objects';\nimport type { Registries } from '@teambit/pkg.entities.registry';\nimport type { DepsFilterFn } from './manifest';\nimport type { NetworkConfig, ProxyConfig } from './dependency-resolver.main.runtime';\n\nexport { PeerDependencyIssuesByProjects };\n\nexport type PackageImportMethod = 'auto' | 'hardlink' | 'copy' | 'clone';\n\nexport type PackageManagerInstallOptions = {\n cacheRootDir?: string;\n /**\n * decide whether to dedup dependencies.\n */\n dedupe?: boolean;\n\n copyPeerToRuntimeOnRoot?: boolean;\n\n copyPeerToRuntimeOnComponents?: boolean;\n\n excludeLinksFromLockfile?: boolean;\n\n installPeersFromEnvs?: boolean;\n\n dependencyFilterFn?: DepsFilterFn;\n\n overrides?: Record<string, string>;\n\n lockfileOnly?: boolean;\n\n /**\n * When false, the package manager will not write the node_modules directory\n */\n enableModulesDir?: boolean;\n\n nodeLinker?: 'hoisted' | 'isolated';\n\n packageManagerConfigRootDir?: string;\n\n packageImportMethod?: PackageImportMethod;\n\n rootComponents?: boolean;\n\n rootComponentsForCapsules?: boolean;\n\n useNesting?: boolean;\n\n keepExistingModulesDir?: boolean;\n\n sideEffectsCache?: boolean;\n\n engineStrict?: boolean;\n\n nodeVersion?: string;\n\n peerDependencyRules?: PeerDependencyRules;\n\n includeOptionalDeps?: boolean;\n\n updateAll?: boolean;\n\n hidePackageManagerOutput?: boolean;\n\n pruneNodeModules?: boolean;\n\n hasRootComponents?: boolean;\n\n neverBuiltDependencies?: string[];\n\n preferOffline?: boolean;\n\n nmSelfReferences?: boolean;\n\n /**\n * e.g. when running `bit install` through the web or the IDE, not from the CLI.\n */\n optimizeReportForNonTerminal?: boolean;\n\n /**\n * Sets the frequency of updating the progress output in milliseconds.\n * E.g., if this is set to 1000, then the progress will be updated every second.\n */\n throttleProgress?: number;\n\n hideProgressPrefix?: boolean;\n\n hideLifecycleOutput?: boolean;\n\n /**\n * Do installation using lockfile only. Ignore the component manifests.\n */\n ignorePackageManifest?: boolean;\n\n /**\n * When enabled, installation by the package manager will be skipped\n * but all the options will be calculated and the rebuild function will be returned.\n * We use this option for a performance optimization in Ripple CI.\n */\n dryRun?: boolean;\n\n dedupeInjectedDeps?: boolean;\n\n /**\n * When this is set to true, pnpm will hoist workspace packages to node_modules/.pnpm/node_modules.\n * This is something we need in capsules.\n */\n hoistWorkspacePackages?: boolean;\n\n /**\n * Tells pnpm which packages should be hoisted to node_modules/.pnpm/node_modules.\n * By default, all packages are hoisted - however, if you know that only some flawed packages have phantom dependencies,\n * you can use this option to exclusively hoist the phantom dependencies (recommended).\n */\n hoistPatterns?: string[];\n\n /**\n * When true, dependencies from the workspace are hoisted to node_modules/.pnpm/node_modules\n * even if they are found in the root node_modules\n */\n hoistInjectedDependencies?: boolean;\n\n /**\n * Tells pnpm to automatically install peer dependencies. It is true by default.\n */\n autoInstallPeers?: boolean;\n\n /**\n * Tells the package manager to return the list of dependencies that has to be built.\n * This is used by Ripple CI.\n */\n returnListOfDepsRequiringBuild?: boolean;\n\n dependenciesGraph?: DependenciesGraph;\n\n forcedHarmonyVersion?: string;\n};\n\nexport type PackageManagerGetPeerDependencyIssuesOptions = PackageManagerInstallOptions;\n\nexport type ResolvedPackageVersion = {\n packageName: string;\n version: string | null;\n wantedRange?: string;\n isSemver: boolean;\n resolvedVia?: string;\n manifest?: DependencyManifest;\n};\n\nexport type PackageManagerResolveRemoteVersionOptions = {\n rootDir: string;\n cacheRootDir?: string;\n packageManagerConfigRootDir?: string;\n fullMetadata?: boolean;\n // fetchToCache?: boolean;\n // update?: boolean;\n};\n\nexport interface InstallationContext {\n rootDir: string;\n manifests: Record<string, ProjectManifest>;\n componentDirectoryMap: ComponentMap<string>;\n}\n\nexport interface PackageManager {\n /**\n * Name of the package manager\n */\n name: string;\n /**\n * install dependencies\n * @param componentDirectoryMap\n */\n install(\n context: InstallationContext,\n options: PackageManagerInstallOptions\n ): Promise<{ dependenciesChanged: boolean }>;\n\n pruneModules?(rootDir: string): Promise<void>;\n\n resolveRemoteVersion(\n packageName: string,\n options: PackageManagerResolveRemoteVersionOptions\n ): Promise<ResolvedPackageVersion>;\n\n getPeerDependencyIssues?(\n rootDir: string,\n manifests: Record<string, ProjectManifest>,\n options: PackageManagerGetPeerDependencyIssuesOptions\n ): Promise<PeerDependencyIssuesByProjects>;\n\n getInjectedDirs?(rootDir: string, componentDir: string, packageName: string): Promise<string[]>;\n\n getRegistries?(): Promise<Registries>;\n\n getProxyConfig?(): Promise<ProxyConfig>;\n\n getNetworkConfig?(): Promise<NetworkConfig>;\n\n /**\n * Specify if the package manager can be run with deduping on existing worksapce (which already contains root dependencies)\n * again, with a different context.\n * If the package manager is not capable of doing so, we want to disable the deduping.\n */\n supportsDedupingOnExistingRoot?: () => boolean;\n\n /**\n * Returns \"dependencies\" entries for \".bit_roots\".\n * These entries tell the package manager from where to the local components should be installed.\n */\n getWorkspaceDepsOfBitRoots(manifests: ProjectManifest[]): Record<string, string>;\n\n findUsages?(depName: string, opts: { lockfileDir: string; depth?: number }): Promise<string>;\n\n calcDependenciesGraph?(options: CalcDepsGraphOptions): Promise<DependenciesGraph | undefined>;\n}\n\nexport interface CalcDepsGraphOptions {\n componentRelativeDir: string;\n componentIdByPkgName: ComponentIdByPkgName;\n rootDir: string;\n componentRootDir?: string;\n pkgName?: string;\n}\n\nexport type ComponentIdByPkgName = Map<string, ComponentID>;\n"],"mappings":";;;;;;;;;;;AAAA,SAAAA,MAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,KAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA","ignoreList":[]}
@@ -1,4 +1,5 @@
1
- import { VariantPolicyEntry, VariantPolicy, VariantPolicyConfigObject, VariantPolicyFromConfigObjectOptions } from '../variant-policy';
1
+ import type { VariantPolicyEntry, VariantPolicyConfigObject, VariantPolicyFromConfigObjectOptions } from '../variant-policy';
2
+ import { VariantPolicy } from '../variant-policy';
2
3
  export type EnvJsoncPolicyEntry = {
3
4
  name: string;
4
5
  version: string;
@@ -1 +1 @@
1
- {"version":3,"names":["_validateEnvPolicy","data","require","_variantPolicy","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","EnvPolicy","VariantPolicy","constructor","_policiesEntries","selfPolicy","fromConfigObject","configObject","includeLegacyPeersInSelfPolicy","validateEnvPolicyConfigObject","selfPeersEntries","peers","peerDependencies","handleLegacyPeers","entriesFromKey","source","force","fromArray","legacyPolicy","hidden","componentPeersEntries","otherKeyNames","otherEntries","reduce","acc","keyName","currEntries","concat","newPolicy","finalComponentPolicy","mergePolices","entries","getEmpty","exports","map","packageName","version","createVariantPolicyEntry","versionKey","lifecycleType","options","configEntries","entry","Error","name","optional"],"sources":["env-policy.ts"],"sourcesContent":["import { validateEnvPolicyConfigObject } from './validate-env-policy';\nimport {\n createVariantPolicyEntry,\n VariantPolicyEntry,\n VariantPolicy,\n VariantPolicyConfigObject,\n VariantPolicyFromConfigObjectOptions,\n} from '../variant-policy';\nimport { DependencyLifecycleType } from '../../dependencies';\n\nexport type EnvJsoncPolicyEntry = {\n name: string;\n version: string;\n /**\n * hide the dependency from the component's package.json / dependencies list\n */\n hidden?: boolean;\n /**\n * force add to component dependencies even if it's not used by the component.\n */\n force?: boolean;\n optional?: boolean;\n};\n\nexport type EnvJsoncPolicyPeerEntry = EnvJsoncPolicyEntry & {\n supportedRange: string;\n};\n\nexport type VersionKeyName = 'version' | 'supportedRange';\n\nexport type EnvJsoncPolicyConfigKey = 'peers' | 'dev' | 'runtime';\n\nexport type EnvPolicyEnvJsoncConfigObject = {\n peers?: EnvJsoncPolicyPeerEntry[];\n dev?: EnvJsoncPolicyEntry[];\n runtime?: EnvJsoncPolicyEntry[];\n};\n\n/**\n * Config that is used before the new env.jsonc format was introduced.\n */\nexport type EnvPolicyLegacyConfigObject = Pick<EnvPolicyEnvJsoncConfigObject, 'peers'> & VariantPolicyConfigObject;\n\nexport type EnvPolicyConfigObject = EnvPolicyEnvJsoncConfigObject | EnvPolicyLegacyConfigObject;\n\nexport class EnvPolicy extends VariantPolicy {\n constructor(\n _policiesEntries: VariantPolicyEntry[],\n readonly selfPolicy: VariantPolicy\n ) {\n super(_policiesEntries);\n }\n\n static fromConfigObject(\n configObject: EnvPolicyConfigObject,\n { includeLegacyPeersInSelfPolicy }: VariantPolicyFromConfigObjectOptions = {}\n ): EnvPolicy {\n validateEnvPolicyConfigObject(configObject);\n\n /**\n * Calculate the policy for the env itself.\n * Always force it for the env itself\n */\n let selfPeersEntries: VariantPolicyEntry[];\n // @ts-ignore TODO: need to fix this, the | confusing the compiler\n if (includeLegacyPeersInSelfPolicy && !configObject.peers && configObject.peerDependencies) {\n // @ts-ignore TODO: need to fix this, the | confusing the compiler\n selfPeersEntries = handleLegacyPeers(configObject);\n } else {\n // @ts-ignore TODO: need to fix this, the | confusing the compiler\n selfPeersEntries = entriesFromKey(configObject, 'peers', 'version', 'runtime', {\n source: 'env-own',\n force: true,\n });\n }\n const selfPolicy = VariantPolicy.fromArray(selfPeersEntries);\n\n /**\n * Legacy policy used by the old getDependencies function on the env aspect.\n * when we used to configure dependencies, devDependencies, peerDependencies as objects of dependencyId: version\n * Those were always forced on the components as visible dependencies.\n */\n const legacyPolicy = VariantPolicy.fromConfigObject(configObject, { source: 'env', force: true, hidden: false });\n // @ts-ignore TODO: need to fix this, the | confusing the compiler\n const componentPeersEntries = entriesFromKey(configObject, 'peers', 'supportedRange', 'peer', { source: 'env' });\n const otherKeyNames: EnvJsoncPolicyConfigKey[] = ['dev', 'runtime'];\n const otherEntries: VariantPolicyEntry[] = otherKeyNames.reduce(\n (acc: VariantPolicyEntry[], keyName: EnvJsoncPolicyConfigKey) => {\n // @ts-ignore TODO: need to fix this, the | confusing the compiler\n const currEntries = entriesFromKey(configObject, keyName, 'version', keyName as DependencyLifecycleType, {\n source: 'env',\n });\n return acc.concat(currEntries);\n },\n []\n );\n const newPolicy = VariantPolicy.fromArray(componentPeersEntries.concat(otherEntries));\n const finalComponentPolicy = VariantPolicy.mergePolices([legacyPolicy, newPolicy]);\n return new EnvPolicy(finalComponentPolicy.entries, selfPolicy);\n }\n\n static getEmpty(): EnvPolicy {\n return new EnvPolicy([], VariantPolicy.getEmpty());\n }\n}\n\nfunction handleLegacyPeers(configObject: VariantPolicyConfigObject): VariantPolicyEntry[] {\n if (!configObject.peerDependencies) {\n return [];\n }\n const entries = Object.entries(configObject.peerDependencies).map(([packageName, version]) => {\n return createVariantPolicyEntry(packageName, version, 'runtime', {\n source: 'env-own',\n hidden: false,\n force: true,\n });\n });\n return entries;\n}\n\nfunction entriesFromKey(\n configObject: VariantPolicyConfigObject,\n keyName: EnvJsoncPolicyConfigKey,\n versionKey: VersionKeyName = 'version',\n lifecycleType: DependencyLifecycleType,\n options: VariantPolicyFromConfigObjectOptions\n): VariantPolicyEntry[] {\n const configEntries: Array<EnvJsoncPolicyPeerEntry | EnvJsoncPolicyEntry> = configObject[keyName];\n if (!configEntries) {\n return [];\n }\n const entries = configEntries.map((entry) => {\n if (!entry[versionKey]) {\n throw new Error(\n `env.jsonc: \"policy.${keyName}\" entry must be a property with a \"${versionKey}\" field. got \"${entry}\"`\n );\n }\n return createVariantPolicyEntry(entry.name, entry[versionKey], lifecycleType, {\n ...options,\n source: options.source ?? 'env',\n hidden: entry.hidden,\n // allow override the entry's force value (used for the env itself)\n force: options.force ?? !!entry.force,\n optional: options.optional ?? !!entry.optional,\n });\n });\n return entries;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_validateEnvPolicy","data","require","_variantPolicy","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","EnvPolicy","VariantPolicy","constructor","_policiesEntries","selfPolicy","fromConfigObject","configObject","includeLegacyPeersInSelfPolicy","validateEnvPolicyConfigObject","selfPeersEntries","peers","peerDependencies","handleLegacyPeers","entriesFromKey","source","force","fromArray","legacyPolicy","hidden","componentPeersEntries","otherKeyNames","otherEntries","reduce","acc","keyName","currEntries","concat","newPolicy","finalComponentPolicy","mergePolices","entries","getEmpty","exports","map","packageName","version","createVariantPolicyEntry","versionKey","lifecycleType","options","configEntries","entry","Error","name","optional"],"sources":["env-policy.ts"],"sourcesContent":["import { validateEnvPolicyConfigObject } from './validate-env-policy';\nimport type {\n VariantPolicyEntry,\n VariantPolicyConfigObject,\n VariantPolicyFromConfigObjectOptions,\n} from '../variant-policy';\nimport { createVariantPolicyEntry, VariantPolicy } from '../variant-policy';\nimport type { DependencyLifecycleType } from '../../dependencies';\n\nexport type EnvJsoncPolicyEntry = {\n name: string;\n version: string;\n /**\n * hide the dependency from the component's package.json / dependencies list\n */\n hidden?: boolean;\n /**\n * force add to component dependencies even if it's not used by the component.\n */\n force?: boolean;\n optional?: boolean;\n};\n\nexport type EnvJsoncPolicyPeerEntry = EnvJsoncPolicyEntry & {\n supportedRange: string;\n};\n\nexport type VersionKeyName = 'version' | 'supportedRange';\n\nexport type EnvJsoncPolicyConfigKey = 'peers' | 'dev' | 'runtime';\n\nexport type EnvPolicyEnvJsoncConfigObject = {\n peers?: EnvJsoncPolicyPeerEntry[];\n dev?: EnvJsoncPolicyEntry[];\n runtime?: EnvJsoncPolicyEntry[];\n};\n\n/**\n * Config that is used before the new env.jsonc format was introduced.\n */\nexport type EnvPolicyLegacyConfigObject = Pick<EnvPolicyEnvJsoncConfigObject, 'peers'> & VariantPolicyConfigObject;\n\nexport type EnvPolicyConfigObject = EnvPolicyEnvJsoncConfigObject | EnvPolicyLegacyConfigObject;\n\nexport class EnvPolicy extends VariantPolicy {\n constructor(\n _policiesEntries: VariantPolicyEntry[],\n readonly selfPolicy: VariantPolicy\n ) {\n super(_policiesEntries);\n }\n\n static fromConfigObject(\n configObject: EnvPolicyConfigObject,\n { includeLegacyPeersInSelfPolicy }: VariantPolicyFromConfigObjectOptions = {}\n ): EnvPolicy {\n validateEnvPolicyConfigObject(configObject);\n\n /**\n * Calculate the policy for the env itself.\n * Always force it for the env itself\n */\n let selfPeersEntries: VariantPolicyEntry[];\n // @ts-ignore TODO: need to fix this, the | confusing the compiler\n if (includeLegacyPeersInSelfPolicy && !configObject.peers && configObject.peerDependencies) {\n // @ts-ignore TODO: need to fix this, the | confusing the compiler\n selfPeersEntries = handleLegacyPeers(configObject);\n } else {\n // @ts-ignore TODO: need to fix this, the | confusing the compiler\n selfPeersEntries = entriesFromKey(configObject, 'peers', 'version', 'runtime', {\n source: 'env-own',\n force: true,\n });\n }\n const selfPolicy = VariantPolicy.fromArray(selfPeersEntries);\n\n /**\n * Legacy policy used by the old getDependencies function on the env aspect.\n * when we used to configure dependencies, devDependencies, peerDependencies as objects of dependencyId: version\n * Those were always forced on the components as visible dependencies.\n */\n const legacyPolicy = VariantPolicy.fromConfigObject(configObject, { source: 'env', force: true, hidden: false });\n // @ts-ignore TODO: need to fix this, the | confusing the compiler\n const componentPeersEntries = entriesFromKey(configObject, 'peers', 'supportedRange', 'peer', { source: 'env' });\n const otherKeyNames: EnvJsoncPolicyConfigKey[] = ['dev', 'runtime'];\n const otherEntries: VariantPolicyEntry[] = otherKeyNames.reduce(\n (acc: VariantPolicyEntry[], keyName: EnvJsoncPolicyConfigKey) => {\n // @ts-ignore TODO: need to fix this, the | confusing the compiler\n const currEntries = entriesFromKey(configObject, keyName, 'version', keyName as DependencyLifecycleType, {\n source: 'env',\n });\n return acc.concat(currEntries);\n },\n []\n );\n const newPolicy = VariantPolicy.fromArray(componentPeersEntries.concat(otherEntries));\n const finalComponentPolicy = VariantPolicy.mergePolices([legacyPolicy, newPolicy]);\n return new EnvPolicy(finalComponentPolicy.entries, selfPolicy);\n }\n\n static getEmpty(): EnvPolicy {\n return new EnvPolicy([], VariantPolicy.getEmpty());\n }\n}\n\nfunction handleLegacyPeers(configObject: VariantPolicyConfigObject): VariantPolicyEntry[] {\n if (!configObject.peerDependencies) {\n return [];\n }\n const entries = Object.entries(configObject.peerDependencies).map(([packageName, version]) => {\n return createVariantPolicyEntry(packageName, version, 'runtime', {\n source: 'env-own',\n hidden: false,\n force: true,\n });\n });\n return entries;\n}\n\nfunction entriesFromKey(\n configObject: VariantPolicyConfigObject,\n keyName: EnvJsoncPolicyConfigKey,\n versionKey: VersionKeyName = 'version',\n lifecycleType: DependencyLifecycleType,\n options: VariantPolicyFromConfigObjectOptions\n): VariantPolicyEntry[] {\n const configEntries: Array<EnvJsoncPolicyPeerEntry | EnvJsoncPolicyEntry> = configObject[keyName];\n if (!configEntries) {\n return [];\n }\n const entries = configEntries.map((entry) => {\n if (!entry[versionKey]) {\n throw new Error(\n `env.jsonc: \"policy.${keyName}\" entry must be a property with a \"${versionKey}\" field. got \"${entry}\"`\n );\n }\n return createVariantPolicyEntry(entry.name, entry[versionKey], lifecycleType, {\n ...options,\n source: options.source ?? 'env',\n hidden: entry.hidden,\n // allow override the entry's force value (used for the env itself)\n force: options.force ?? !!entry.force,\n optional: options.optional ?? !!entry.optional,\n });\n });\n return entries;\n}\n"],"mappings":";;;;;;AAAA,SAAAA,mBAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,kBAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAMA,SAAAE,eAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,cAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA4E,SAAAG,QAAAC,CAAA,EAAAC,CAAA,QAAAC,CAAA,GAAAC,MAAA,CAAAC,IAAA,CAAAJ,CAAA,OAAAG,MAAA,CAAAE,qBAAA,QAAAC,CAAA,GAAAH,MAAA,CAAAE,qBAAA,CAAAL,CAAA,GAAAC,CAAA,KAAAK,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAN,CAAA,WAAAE,MAAA,CAAAK,wBAAA,CAAAR,CAAA,EAAAC,CAAA,EAAAQ,UAAA,OAAAP,CAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,CAAA,EAAAI,CAAA,YAAAJ,CAAA;AAAA,SAAAU,cAAAZ,CAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAY,SAAA,CAAAC,MAAA,EAAAb,CAAA,UAAAC,CAAA,WAAAW,SAAA,CAAAZ,CAAA,IAAAY,SAAA,CAAAZ,CAAA,QAAAA,CAAA,OAAAF,OAAA,CAAAI,MAAA,CAAAD,CAAA,OAAAa,OAAA,WAAAd,CAAA,IAAAe,eAAA,CAAAhB,CAAA,EAAAC,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAE,MAAA,CAAAc,yBAAA,GAAAd,MAAA,CAAAe,gBAAA,CAAAlB,CAAA,EAAAG,MAAA,CAAAc,yBAAA,CAAAf,CAAA,KAAAH,OAAA,CAAAI,MAAA,CAAAD,CAAA,GAAAa,OAAA,WAAAd,CAAA,IAAAE,MAAA,CAAAgB,cAAA,CAAAnB,CAAA,EAAAC,CAAA,EAAAE,MAAA,CAAAK,wBAAA,CAAAN,CAAA,EAAAD,CAAA,iBAAAD,CAAA;AAAA,SAAAgB,gBAAAhB,CAAA,EAAAC,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAmB,cAAA,CAAAnB,CAAA,MAAAD,CAAA,GAAAG,MAAA,CAAAgB,cAAA,CAAAnB,CAAA,EAAAC,CAAA,IAAAoB,KAAA,EAAAnB,CAAA,EAAAO,UAAA,MAAAa,YAAA,MAAAC,QAAA,UAAAvB,CAAA,CAAAC,CAAA,IAAAC,CAAA,EAAAF,CAAA;AAAA,SAAAoB,eAAAlB,CAAA,QAAAsB,CAAA,GAAAC,YAAA,CAAAvB,CAAA,uCAAAsB,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAvB,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAF,CAAA,GAAAE,CAAA,CAAAwB,MAAA,CAAAC,WAAA,kBAAA3B,CAAA,QAAAwB,CAAA,GAAAxB,CAAA,CAAA4B,IAAA,CAAA1B,CAAA,EAAAD,CAAA,uCAAAuB,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAA5B,CAAA,GAAA6B,MAAA,GAAAC,MAAA,EAAA7B,CAAA;AA+B5E;AACA;AACA;;AAKO,MAAM8B,SAAS,SAASC,8BAAa,CAAC;EAC3CC,WAAWA,CACTC,gBAAsC,EAC7BC,UAAyB,EAClC;IACA,KAAK,CAACD,gBAAgB,CAAC;IAAC,KAFfC,UAAyB,GAAzBA,UAAyB;EAGpC;EAEA,OAAOC,gBAAgBA,CACrBC,YAAmC,EACnC;IAAEC;EAAqE,CAAC,GAAG,CAAC,CAAC,EAClE;IACX,IAAAC,kDAA6B,EAACF,YAAY,CAAC;;IAE3C;AACJ;AACA;AACA;IACI,IAAIG,gBAAsC;IAC1C;IACA,IAAIF,8BAA8B,IAAI,CAACD,YAAY,CAACI,KAAK,IAAIJ,YAAY,CAACK,gBAAgB,EAAE;MAC1F;MACAF,gBAAgB,GAAGG,iBAAiB,CAACN,YAAY,CAAC;IACpD,CAAC,MAAM;MACL;MACAG,gBAAgB,GAAGI,cAAc,CAACP,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE;QAC7EQ,MAAM,EAAE,SAAS;QACjBC,KAAK,EAAE;MACT,CAAC,CAAC;IACJ;IACA,MAAMX,UAAU,GAAGH,8BAAa,CAACe,SAAS,CAACP,gBAAgB,CAAC;;IAE5D;AACJ;AACA;AACA;AACA;IACI,MAAMQ,YAAY,GAAGhB,8BAAa,CAACI,gBAAgB,CAACC,YAAY,EAAE;MAAEQ,MAAM,EAAE,KAAK;MAAEC,KAAK,EAAE,IAAI;MAAEG,MAAM,EAAE;IAAM,CAAC,CAAC;IAChH;IACA,MAAMC,qBAAqB,GAAGN,cAAc,CAACP,YAAY,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE;MAAEQ,MAAM,EAAE;IAAM,CAAC,CAAC;IAChH,MAAMM,aAAwC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC;IACnE,MAAMC,YAAkC,GAAGD,aAAa,CAACE,MAAM,CAC7D,CAACC,GAAyB,EAAEC,OAAgC,KAAK;MAC/D;MACA,MAAMC,WAAW,GAAGZ,cAAc,CAACP,YAAY,EAAEkB,OAAO,EAAE,SAAS,EAAEA,OAAO,EAA6B;QACvGV,MAAM,EAAE;MACV,CAAC,CAAC;MACF,OAAOS,GAAG,CAACG,MAAM,CAACD,WAAW,CAAC;IAChC,CAAC,EACD,EACF,CAAC;IACD,MAAME,SAAS,GAAG1B,8BAAa,CAACe,SAAS,CAACG,qBAAqB,CAACO,MAAM,CAACL,YAAY,CAAC,CAAC;IACrF,MAAMO,oBAAoB,GAAG3B,8BAAa,CAAC4B,YAAY,CAAC,CAACZ,YAAY,EAAEU,SAAS,CAAC,CAAC;IAClF,OAAO,IAAI3B,SAAS,CAAC4B,oBAAoB,CAACE,OAAO,EAAE1B,UAAU,CAAC;EAChE;EAEA,OAAO2B,QAAQA,CAAA,EAAc;IAC3B,OAAO,IAAI/B,SAAS,CAAC,EAAE,EAAEC,8BAAa,CAAC8B,QAAQ,CAAC,CAAC,CAAC;EACpD;AACF;AAACC,OAAA,CAAAhC,SAAA,GAAAA,SAAA;AAED,SAASY,iBAAiBA,CAACN,YAAuC,EAAwB;EACxF,IAAI,CAACA,YAAY,CAACK,gBAAgB,EAAE;IAClC,OAAO,EAAE;EACX;EACA,MAAMmB,OAAO,GAAG3D,MAAM,CAAC2D,OAAO,CAACxB,YAAY,CAACK,gBAAgB,CAAC,CAACsB,GAAG,CAAC,CAAC,CAACC,WAAW,EAAEC,OAAO,CAAC,KAAK;IAC5F,OAAO,IAAAC,yCAAwB,EAACF,WAAW,EAAEC,OAAO,EAAE,SAAS,EAAE;MAC/DrB,MAAM,EAAE,SAAS;MACjBI,MAAM,EAAE,KAAK;MACbH,KAAK,EAAE;IACT,CAAC,CAAC;EACJ,CAAC,CAAC;EACF,OAAOe,OAAO;AAChB;AAEA,SAASjB,cAAcA,CACrBP,YAAuC,EACvCkB,OAAgC,EAChCa,UAA0B,GAAG,SAAS,EACtCC,aAAsC,EACtCC,OAA6C,EACvB;EACtB,MAAMC,aAAmE,GAAGlC,YAAY,CAACkB,OAAO,CAAC;EACjG,IAAI,CAACgB,aAAa,EAAE;IAClB,OAAO,EAAE;EACX;EACA,MAAMV,OAAO,GAAGU,aAAa,CAACP,GAAG,CAAEQ,KAAK,IAAK;IAC3C,IAAI,CAACA,KAAK,CAACJ,UAAU,CAAC,EAAE;MACtB,MAAM,IAAIK,KAAK,CACb,sBAAsBlB,OAAO,sCAAsCa,UAAU,iBAAiBI,KAAK,GACrG,CAAC;IACH;IACA,OAAO,IAAAL,yCAAwB,EAACK,KAAK,CAACE,IAAI,EAAEF,KAAK,CAACJ,UAAU,CAAC,EAAEC,aAAa,EAAA1D,aAAA,CAAAA,aAAA,KACvE2D,OAAO;MACVzB,MAAM,EAAEyB,OAAO,CAACzB,MAAM,IAAI,KAAK;MAC/BI,MAAM,EAAEuB,KAAK,CAACvB,MAAM;MACpB;MACAH,KAAK,EAAEwB,OAAO,CAACxB,KAAK,IAAI,CAAC,CAAC0B,KAAK,CAAC1B,KAAK;MACrC6B,QAAQ,EAAEL,OAAO,CAACK,QAAQ,IAAI,CAAC,CAACH,KAAK,CAACG;IAAQ,EAC/C,CAAC;EACJ,CAAC,CAAC;EACF,OAAOd,OAAO;AAChB","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { DependencyLifecycleType } from '../dependencies';
1
+ import type { DependencyLifecycleType } from '../dependencies';
2
2
  /**
3
3
  * Allowed values are valid semver values
4
4
  */
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["policy.ts"],"sourcesContent":["import { DependencyLifecycleType } from '../dependencies';\n\n// TODO: add DetailedDependencyPolicy once support the force prop\n// export type DependencyPolicy = SemverVersionRule | DetailedDependencyPolicy;\n\n/**\n * Allowed values are valid semver values\n */\nexport type SemverVersion = string;\n\nexport type GitUrlVersion = string;\n\nexport type FileSystemPath = string;\n\nexport type RemoveDepSign = '-';\n\n/**\n * Allowed values are valid semver values and the \"-\" sign.\n */\nexport type PolicySemver = SemverVersion | RemoveDepSign;\n/**\n * Allowed values are valid semver values, git urls, fs path and the \"-\" sign.\n */\nexport type PolicyVersion = PolicySemver | GitUrlVersion | FileSystemPath;\n\n// TODO: think if it might need to be in another place and just reference there\nexport type PolicyConfigKeys = {\n dependencies: 'dependencies';\n devDependencies: 'devDependencies';\n peerDependencies: 'peerDependencies';\n};\n\nexport type PolicyConfigKeysNames = keyof PolicyConfigKeys;\n\nexport interface Policy<T> {\n toConfigObject(): T;\n}\n\nexport type PolicyEntry = {\n dependencyId: string;\n lifecycleType: DependencyLifecycleType;\n // TODO: try to add this as generic?\n // value: any,\n};\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["policy.ts"],"sourcesContent":["import type { DependencyLifecycleType } from '../dependencies';\n\n// TODO: add DetailedDependencyPolicy once support the force prop\n// export type DependencyPolicy = SemverVersionRule | DetailedDependencyPolicy;\n\n/**\n * Allowed values are valid semver values\n */\nexport type SemverVersion = string;\n\nexport type GitUrlVersion = string;\n\nexport type FileSystemPath = string;\n\nexport type RemoveDepSign = '-';\n\n/**\n * Allowed values are valid semver values and the \"-\" sign.\n */\nexport type PolicySemver = SemverVersion | RemoveDepSign;\n/**\n * Allowed values are valid semver values, git urls, fs path and the \"-\" sign.\n */\nexport type PolicyVersion = PolicySemver | GitUrlVersion | FileSystemPath;\n\n// TODO: think if it might need to be in another place and just reference there\nexport type PolicyConfigKeys = {\n dependencies: 'dependencies';\n devDependencies: 'devDependencies';\n peerDependencies: 'peerDependencies';\n};\n\nexport type PolicyConfigKeysNames = keyof PolicyConfigKeys;\n\nexport interface Policy<T> {\n toConfigObject(): T;\n}\n\nexport type PolicyEntry = {\n dependencyId: string;\n lifecycleType: DependencyLifecycleType;\n // TODO: try to add this as generic?\n // value: any,\n};\n"],"mappings":"","ignoreList":[]}
@@ -1,6 +1,6 @@
1
- import { DependenciesOverridesData } from '@teambit/legacy.consumer-config';
2
- import { Policy, PolicyConfigKeys, PolicyConfigKeysNames, PolicyEntry, SemverVersion } from '../policy';
3
- import { DependencyLifecycleType } from '../../dependencies';
1
+ import type { DependenciesOverridesData } from '@teambit/legacy.consumer-config';
2
+ import type { Policy, PolicyConfigKeys, PolicyConfigKeysNames, PolicyEntry, SemverVersion } from '../policy';
3
+ import type { DependencyLifecycleType } from '../../dependencies';
4
4
  export type VariantPolicyConfigObject = Partial<Record<keyof PolicyConfigKeys, VariantPolicyLifecycleConfigObject>>;
5
5
  type VariantPolicyLifecycleConfigObject = {
6
6
  [dependencyId: string]: VariantPolicyConfigEntryValue;