@teambit/dependency-resolver 0.0.1158 → 0.0.1159

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 (66) hide show
  1. package/dist/apply-updates.js +1 -3
  2. package/dist/apply-updates.js.map +1 -1
  3. package/dist/dependencies/base-dependency.js +4 -9
  4. package/dist/dependencies/base-dependency.js.map +1 -1
  5. package/dist/dependencies/component-dependency/component-dependency-factory.js +5 -11
  6. package/dist/dependencies/component-dependency/component-dependency-factory.js.map +1 -1
  7. package/dist/dependencies/component-dependency/component-dependency.js +0 -1
  8. package/dist/dependencies/component-dependency/component-dependency.js.map +1 -1
  9. package/dist/dependencies/dependency-list-factory.js +1 -2
  10. package/dist/dependencies/dependency-list-factory.js.map +1 -1
  11. package/dist/dependencies/dependency-list.js +0 -3
  12. package/dist/dependencies/dependency-list.js.map +1 -1
  13. package/dist/dependencies.service.js +5 -10
  14. package/dist/dependencies.service.js.map +1 -1
  15. package/dist/dependency-installer.js +8 -14
  16. package/dist/dependency-installer.js.map +1 -1
  17. package/dist/dependency-linker.js +5 -13
  18. package/dist/dependency-linker.js.map +1 -1
  19. package/dist/dependency-resolver.composition.js +1 -1
  20. package/dist/dependency-resolver.composition.js.map +1 -1
  21. package/dist/dependency-resolver.graphql.js +5 -10
  22. package/dist/dependency-resolver.graphql.js.map +1 -1
  23. package/dist/dependency-resolver.main.runtime.js +19 -34
  24. package/dist/dependency-resolver.main.runtime.js.map +1 -1
  25. package/dist/dependency-resolver.main.runtime.spec.js +1 -2
  26. package/dist/dependency-resolver.main.runtime.spec.js.map +1 -1
  27. package/dist/dependency-version-resolver.js +6 -11
  28. package/dist/dependency-version-resolver.js.map +1 -1
  29. package/dist/extend-with-components-from-dir.js +5 -11
  30. package/dist/extend-with-components-from-dir.js.map +1 -1
  31. package/dist/get-all-policy-pkgs.js +5 -14
  32. package/dist/get-all-policy-pkgs.js.map +1 -1
  33. package/dist/manifest/deduping/hoist-dependencies.js +5 -10
  34. package/dist/manifest/deduping/hoist-dependencies.js.map +1 -1
  35. package/dist/manifest/deduping/hoist-dependencies.spec.js +0 -1
  36. package/dist/manifest/deduping/hoist-dependencies.spec.js.map +1 -1
  37. package/dist/manifest/deduping/index-by-dep-id.js +1 -2
  38. package/dist/manifest/deduping/index-by-dep-id.js.map +1 -1
  39. package/dist/manifest/deduping/merge-with-root.js +1 -1
  40. package/dist/manifest/deduping/merge-with-root.js.map +1 -1
  41. package/dist/manifest/manifest.js +4 -9
  42. package/dist/manifest/manifest.js.map +1 -1
  43. package/dist/manifest/workspace-manifest-factory.js +7 -15
  44. package/dist/manifest/workspace-manifest-factory.js.map +1 -1
  45. package/dist/package-manager-legacy.js +5 -14
  46. package/dist/package-manager-legacy.js.map +1 -1
  47. package/dist/policy/env-policy/env-policy.js +3 -3
  48. package/dist/policy/env-policy/env-policy.js.map +1 -1
  49. package/dist/policy/env-policy/validate-env-policy.js +0 -1
  50. package/dist/policy/env-policy/validate-env-policy.js.map +1 -1
  51. package/dist/policy/variant-policy/variant-policy.js +3 -3
  52. package/dist/policy/variant-policy/variant-policy.js.map +1 -1
  53. package/dist/policy/workspace-policy/workspace-policy-factory.js +4 -10
  54. package/dist/policy/workspace-policy/workspace-policy-factory.js.map +1 -1
  55. package/dist/policy/workspace-policy/workspace-policy.js +0 -1
  56. package/dist/policy/workspace-policy/workspace-policy.js.map +1 -1
  57. package/dist/{preview-1694575035715.js → preview-1694624356552.js} +2 -2
  58. package/dist/show-fragments/dependencies.fragment.js +0 -1
  59. package/dist/show-fragments/dependencies.fragment.js.map +1 -1
  60. package/dist/show-fragments/dev-dependencies.fragment.js +0 -1
  61. package/dist/show-fragments/dev-dependencies.fragment.js.map +1 -1
  62. package/dist/show-fragments/peer-dependencies.fragment.js +0 -1
  63. package/dist/show-fragments/peer-dependencies.fragment.js.map +1 -1
  64. package/dist/show-fragments/serialize-by-lifecycle.js +0 -1
  65. package/dist/show-fragments/serialize-by-lifecycle.js.map +1 -1
  66. package/package.json +17 -19
@@ -1 +1 @@
1
- {"version":3,"names":["_chai","data","require","_constants","_hoistDependencies","DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX","generateItemsFromArrays","dependentComponentNamePrefix","ranges","lifecycleTypes","size","Array","isArray","length","items","i","item","range","origin","lifecycleType","push","generateItems","numOfItems","RUNTIME_DEP_LIFECYCLE_TYPE","fill","expectAllComponentsDependenciesMapToBeEmpty","dedupedDependencies","expect","componentDependenciesMap","to","be","empty","expectComponentDependenciesMapToBeEmpty","dependentName","get","undefined","expectComponentDependenciesMapToHave","dependecyKeyName","dependencyName","dependencyVersion","comp","Error","have","property","expectRootToHave","rootDependencies","expectRootToNotHaveDependency","dependencies","not","devDependencies","peerDependencies","expectPeerIssuesToBeEmpty","_dedupedDependencies$","issus","peerConflicts","describe","index","dependentComponentName","preservedVersion","depKeyName","KEY_NAME_BY_LIFECYCLE_TYPE","beforeEach","Map","metadata","preservedLifecycleType","set","componentItems","hoistDependencies","it","PEER_DEP_LIFECYCLE_TYPE","equal","dependencyName1","dependencyName2","items1","items2","_dedupedDependencies$2","_dedupedDependencies$3","_dedupedDependencies$4","_dedupedDependencies$5","_dedupedDependencies$6","lengthOf","packageName","conflictedComponents","DEV_DEP_LIFECYCLE_TYPE"],"sources":["hoist-dependencies.spec.ts"],"sourcesContent":["import { expect } from 'chai';\n\nimport {\n DEV_DEP_LIFECYCLE_TYPE,\n KEY_NAME_BY_LIFECYCLE_TYPE,\n PEER_DEP_LIFECYCLE_TYPE,\n RUNTIME_DEP_LIFECYCLE_TYPE,\n} from '../../dependencies/constants';\nimport { DependencyLifecycleType, SemverVersion } from '../../dependencies';\nimport { DedupedDependencies } from './dedupe-dependencies';\nimport { hoistDependencies } from './hoist-dependencies';\nimport { PackageNameIndex, PackageNameIndexComponentItem, PackageNameIndexItemMetadata } from './index-by-dep-id';\n\nconst DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX = 'dependent-component';\n\nconst generateItemsFromArrays = (\n dependentComponentNamePrefix = 'dependent-component',\n ranges: SemverVersion | SemverVersion[],\n lifecycleTypes: DependencyLifecycleType | DependencyLifecycleType[]\n): PackageNameIndexComponentItem[] => {\n let size = 1;\n if (Array.isArray(ranges)) {\n size = ranges.length;\n } else if (Array.isArray(lifecycleTypes)) {\n size = lifecycleTypes.length;\n }\n const items: PackageNameIndexComponentItem[] = [];\n for (let i = 0; i <= size - 1; i += 1) {\n const item: PackageNameIndexComponentItem = {\n range: Array.isArray(ranges) ? ranges[i] : ranges,\n origin: `${dependentComponentNamePrefix}-${i}`,\n lifecycleType: Array.isArray(lifecycleTypes) ? lifecycleTypes[i] : lifecycleTypes,\n };\n items.push(item);\n }\n return items;\n};\n\nconst generateItems = (\n numOfItems = 3,\n dependentComponentNamePrefix = DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX,\n range: SemverVersion = '1.0.0',\n lifecycleType: DependencyLifecycleType = RUNTIME_DEP_LIFECYCLE_TYPE\n): PackageNameIndexComponentItem[] => {\n const ranges = Array(numOfItems).fill(range);\n const lifecycleTypes = Array(numOfItems).fill(lifecycleType);\n return generateItemsFromArrays(dependentComponentNamePrefix, ranges, lifecycleTypes);\n};\n\nconst expectAllComponentsDependenciesMapToBeEmpty = (dedupedDependencies: DedupedDependencies) => {\n expect(dedupedDependencies.componentDependenciesMap).to.be.empty;\n};\n\nconst expectComponentDependenciesMapToBeEmpty = (dependentName: string, dedupedDependencies: DedupedDependencies) => {\n expect(dedupedDependencies.componentDependenciesMap.get(dependentName)).to.be.undefined;\n};\n\nconst expectComponentDependenciesMapToHave = (\n dedupedDependencies: DedupedDependencies,\n dependentName: string,\n dependecyKeyName: string,\n dependencyName: string,\n dependencyVersion: SemverVersion\n) => {\n const comp = dedupedDependencies.componentDependenciesMap.get(dependentName);\n if (!comp) {\n throw new Error(`component ${dependentName} does not found on dedupedDependencies components map`);\n }\n expect(comp[dependecyKeyName]).to.have.property(dependencyName, dependencyVersion);\n};\n\nconst expectRootToHave = (\n dedupedDependencies: DedupedDependencies,\n dependecyKeyName: string,\n dependencyName: string,\n dependencyVersion: SemverVersion\n) => {\n expect(dedupedDependencies.rootDependencies[dependecyKeyName]).to.have.property(dependencyName, dependencyVersion);\n};\n\nconst expectRootToNotHaveDependency = (dedupedDependencies: DedupedDependencies, dependencyName: string) => {\n expect(dedupedDependencies.rootDependencies.dependencies).to.not.have.property(dependencyName);\n expect(dedupedDependencies.rootDependencies.devDependencies).to.not.have.property(dependencyName);\n expect(dedupedDependencies.rootDependencies.peerDependencies).to.not.have.property(dependencyName);\n};\n\nconst expectPeerIssuesToBeEmpty = (dedupedDependencies: DedupedDependencies) => {\n expect(dedupedDependencies.issus?.peerConflicts).to.be.empty;\n};\n\ndescribe('hoistDependencies', () => {\n let index: PackageNameIndex;\n const dependentComponentName = 'dependent-component';\n let dedupedDependencies: DedupedDependencies;\n describe('preserved dependency', () => {\n describe('some component versions are intersect and some not', () => {\n const dependencyName = 'package-dependency';\n const preservedVersion = '^4.0.0';\n const depKeyName = KEY_NAME_BY_LIFECYCLE_TYPE[RUNTIME_DEP_LIFECYCLE_TYPE];\n beforeEach(() => {\n index = new Map();\n const metadata: PackageNameIndexItemMetadata = {\n preservedLifecycleType: RUNTIME_DEP_LIFECYCLE_TYPE,\n preservedVersion,\n };\n const items = generateItemsFromArrays(undefined, ['4.0.1', '5.0.0'], RUNTIME_DEP_LIFECYCLE_TYPE);\n index.set(dependencyName, { metadata, componentItems: items });\n dedupedDependencies = hoistDependencies(index);\n });\n it('the root manifest should have the preserved version', () => {\n expectRootToHave(dedupedDependencies, depKeyName, dependencyName, preservedVersion);\n });\n\n it('the component dependencies which intersects with the preserved should be empty', () => {\n expectComponentDependenciesMapToBeEmpty(`${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-0`, dedupedDependencies);\n });\n it('the component dependencies which not intersects with the preserved to have a proper version', () => {\n expectComponentDependenciesMapToHave(\n dedupedDependencies,\n `${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-1`,\n depKeyName,\n dependencyName,\n '5.0.0'\n );\n });\n });\n });\n\n describe('dependency that appears only once', () => {\n describe('item is exact version', () => {\n const dependencyName = 'package-dependency';\n const dependencyVersion = '1.0.0';\n beforeEach(() => {\n index = new Map();\n const item: PackageNameIndexComponentItem = {\n range: dependencyVersion,\n origin: dependentComponentName,\n lifecycleType: RUNTIME_DEP_LIFECYCLE_TYPE,\n };\n index.set(dependencyName, { metadata: {}, componentItems: [item] });\n dedupedDependencies = hoistDependencies(index);\n });\n it('the component dependencies should be empty', () => {\n expectAllComponentsDependenciesMapToBeEmpty(dedupedDependencies);\n });\n it('should hoist the dependency to the root', () => {\n expectRootToHave(\n dedupedDependencies,\n KEY_NAME_BY_LIFECYCLE_TYPE[RUNTIME_DEP_LIFECYCLE_TYPE],\n dependencyName,\n dependencyVersion\n );\n });\n });\n describe('item is range', () => {\n const dependencyName = 'package-dependency';\n const dependencyVersion = '^1.0.0';\n beforeEach(() => {\n index = new Map();\n const item: PackageNameIndexComponentItem = {\n range: dependencyVersion,\n origin: dependentComponentName,\n lifecycleType: RUNTIME_DEP_LIFECYCLE_TYPE,\n };\n index.set(dependencyName, { metadata: {}, componentItems: [item] });\n dedupedDependencies = hoistDependencies(index);\n });\n it('the component dependencies should be empty', () => {\n expectAllComponentsDependenciesMapToBeEmpty(dedupedDependencies);\n });\n it('should hoist the dependency to the root', () => {\n expectRootToHave(\n dedupedDependencies,\n KEY_NAME_BY_LIFECYCLE_TYPE[RUNTIME_DEP_LIFECYCLE_TYPE],\n dependencyName,\n dependencyVersion\n );\n });\n });\n describe('item is peer dependency with one version only', () => {\n const dependencyName = 'package-dependency';\n const dependencyVersion = '1.0.0';\n const depKeyName = KEY_NAME_BY_LIFECYCLE_TYPE[PEER_DEP_LIFECYCLE_TYPE];\n\n beforeEach(() => {\n index = new Map();\n const item: PackageNameIndexComponentItem = {\n range: dependencyVersion,\n origin: dependentComponentName,\n lifecycleType: PEER_DEP_LIFECYCLE_TYPE,\n };\n index.set(dependencyName, { metadata: {}, componentItems: [item] });\n dedupedDependencies = hoistDependencies(index);\n });\n it('the component dependencies should be empty', () => {\n expectAllComponentsDependenciesMapToBeEmpty(dedupedDependencies);\n });\n it('should not hoist the dependency to the root', () => {\n // Behavior was changed to hoist peers as well in case they are appear only with one version\n // expectRootToNotHaveDependency(dedupedDependencies, dependencyName);\n expectRootToHave(dedupedDependencies, depKeyName, dependencyName, '1.0.0');\n });\n });\n });\n\n describe('dependency that appears only as peer (in many components) with same version', () => {\n const dependencyName = 'package-dependency';\n const depKeyName = KEY_NAME_BY_LIFECYCLE_TYPE[PEER_DEP_LIFECYCLE_TYPE];\n\n describe('when there are no conflicts between versions', () => {\n beforeEach(() => {\n index = new Map();\n const items = generateItems(3, undefined, undefined, PEER_DEP_LIFECYCLE_TYPE);\n index.set(dependencyName, { metadata: {}, componentItems: items });\n dedupedDependencies = hoistDependencies(index);\n });\n it('should have the peers in each component', () => {\n expect(dedupedDependencies.componentDependenciesMap.size).to.equal(0);\n });\n it('should not hoist the dependency to the root', () => {\n expectRootToHave(dedupedDependencies, depKeyName, dependencyName, '1.0.0');\n });\n it('should not report about peer conflicts', () => {\n expectPeerIssuesToBeEmpty(dedupedDependencies);\n });\n });\n describe('when there conflicts between versions for few dependencies', () => {\n const dependencyName1 = 'package-dependency-1';\n const dependencyName2 = 'package-dependency-2';\n\n beforeEach(() => {\n index = new Map();\n const items1 = generateItemsFromArrays(undefined, ['4.0.0', '5.0.0'], PEER_DEP_LIFECYCLE_TYPE);\n const items2 = generateItemsFromArrays(undefined, ['^4.0.0', '^5.0.0'], PEER_DEP_LIFECYCLE_TYPE);\n index.set(dependencyName1, { metadata: {}, componentItems: items1 });\n index.set(dependencyName2, { metadata: {}, componentItems: items2 });\n dedupedDependencies = hoistDependencies(index);\n });\n it('should have the peers in each component', () => {\n expect(dedupedDependencies.componentDependenciesMap.size).to.equal(2);\n });\n it('should not hoist the dependency to the root', () => {\n expectRootToNotHaveDependency(dedupedDependencies, dependencyName);\n });\n it('should report about peer conflicts', () => {\n expect(dedupedDependencies.issus?.peerConflicts).to.have.lengthOf(2);\n expect(dedupedDependencies.issus?.peerConflicts[0].packageName).to.equal(dependencyName1);\n expect(dedupedDependencies.issus?.peerConflicts[0].conflictedComponents).to.have.lengthOf(2);\n expect(dedupedDependencies.issus?.peerConflicts[1].packageName).to.equal(dependencyName2);\n expect(dedupedDependencies.issus?.peerConflicts[1].conflictedComponents).to.have.lengthOf(2);\n });\n });\n });\n\n describe('dependency that appears only with exact versions', () => {\n const dependencyName = 'package-dependency';\n const depKeyName = KEY_NAME_BY_LIFECYCLE_TYPE[DEV_DEP_LIFECYCLE_TYPE];\n beforeEach(() => {\n index = new Map();\n const items = generateItemsFromArrays(\n undefined,\n ['4.0.0', '5.0.0', '4.0.0', '5.0.0', '4.0.1', '4.0.0'],\n DEV_DEP_LIFECYCLE_TYPE\n );\n index.set(dependencyName, { metadata: {}, componentItems: items });\n dedupedDependencies = hoistDependencies(index);\n });\n it('should hoist the most common version to the root', () => {\n expectRootToHave(dedupedDependencies, depKeyName, dependencyName, '4.0.0');\n });\n it('should not put the most common version in the components that has it', () => {\n expectComponentDependenciesMapToBeEmpty(`${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-0`, dedupedDependencies);\n expectComponentDependenciesMapToBeEmpty(`${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-2`, dedupedDependencies);\n expectComponentDependenciesMapToBeEmpty(`${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-5`, dedupedDependencies);\n });\n it('should put other versions in the components', () => {\n expectComponentDependenciesMapToHave(\n dedupedDependencies,\n `${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-1`,\n depKeyName,\n dependencyName,\n '5.0.0'\n );\n expectComponentDependenciesMapToHave(\n dedupedDependencies,\n `${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-3`,\n depKeyName,\n dependencyName,\n '5.0.0'\n );\n });\n });\n\n describe('dependency that appears only with ranges', () => {\n const dependencyName = 'package-dependency';\n const depKeyName = KEY_NAME_BY_LIFECYCLE_TYPE[DEV_DEP_LIFECYCLE_TYPE];\n beforeEach(() => {\n index = new Map();\n const items = generateItemsFromArrays(\n undefined,\n ['^4.0.0', '^5.0.0', '^4.0.0', '^5.0.0', '^5.0.1', '^4.0.1', '^4.0.4'],\n DEV_DEP_LIFECYCLE_TYPE\n );\n index.set(dependencyName, { metadata: {}, componentItems: items });\n dedupedDependencies = hoistDependencies(index);\n });\n it('should hoist the best range to the root', () => {\n expectRootToHave(dedupedDependencies, depKeyName, dependencyName, '>=4.0.4 <5.0.0');\n });\n it('should not put the dependency in components that matches the best range', () => {\n expectComponentDependenciesMapToBeEmpty(`${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-0`, dedupedDependencies);\n expectComponentDependenciesMapToBeEmpty(`${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-2`, dedupedDependencies);\n expectComponentDependenciesMapToBeEmpty(`${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-5`, dedupedDependencies);\n expectComponentDependenciesMapToBeEmpty(`${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-6`, dedupedDependencies);\n });\n it('should put other ranges in the components', () => {\n expectComponentDependenciesMapToHave(\n dedupedDependencies,\n `${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-1`,\n depKeyName,\n dependencyName,\n '^5.0.0'\n );\n expectComponentDependenciesMapToHave(\n dedupedDependencies,\n `${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-3`,\n depKeyName,\n dependencyName,\n '^5.0.0'\n );\n expectComponentDependenciesMapToHave(\n dedupedDependencies,\n `${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-4`,\n depKeyName,\n dependencyName,\n '^5.0.1'\n );\n });\n });\n\n describe('dependency that appears with both ranges and exact versions', () => {\n const dependencyName = 'package-dependency';\n const depKeyName = KEY_NAME_BY_LIFECYCLE_TYPE[DEV_DEP_LIFECYCLE_TYPE];\n describe('when there is a version which satisfy more components than the best range', () => {\n beforeEach(() => {\n index = new Map();\n const items = generateItemsFromArrays(\n undefined,\n ['^4.0.0', '5.0.0', '5.0.0', '5.0.0', '^4.0.4'],\n DEV_DEP_LIFECYCLE_TYPE\n );\n index.set(dependencyName, { metadata: {}, componentItems: items });\n dedupedDependencies = hoistDependencies(index);\n });\n it('should hoist the best version to the root', () => {\n expectRootToHave(dedupedDependencies, depKeyName, dependencyName, '5.0.0');\n });\n it('should not put the dependency in components that matches the best version', () => {\n expectComponentDependenciesMapToBeEmpty(`${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-1`, dedupedDependencies);\n expectComponentDependenciesMapToBeEmpty(`${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-2`, dedupedDependencies);\n expectComponentDependenciesMapToBeEmpty(`${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-3`, dedupedDependencies);\n });\n it('should put other ranges in the components', () => {\n expectComponentDependenciesMapToHave(\n dedupedDependencies,\n `${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-0`,\n depKeyName,\n dependencyName,\n '^4.0.0'\n );\n expectComponentDependenciesMapToHave(\n dedupedDependencies,\n `${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-4`,\n depKeyName,\n dependencyName,\n '^4.0.4'\n );\n });\n });\n describe('when there is a best range which satisfy more components than the most common version', () => {\n beforeEach(() => {\n index = new Map();\n const items = generateItemsFromArrays(\n undefined,\n ['^4.0.0', '^4.0.2', '5.0.0', '5.0.0', '^4.0.4'],\n DEV_DEP_LIFECYCLE_TYPE\n );\n index.set(dependencyName, { metadata: {}, componentItems: items });\n dedupedDependencies = hoistDependencies(index);\n });\n it('should hoist the best range to the root', () => {\n expectRootToHave(dedupedDependencies, depKeyName, dependencyName, '>=4.0.4 <5.0.0');\n });\n it('should not put the dependency in components that matches the best range', () => {\n expectComponentDependenciesMapToBeEmpty(`${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-0`, dedupedDependencies);\n expectComponentDependenciesMapToBeEmpty(`${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-1`, dedupedDependencies);\n expectComponentDependenciesMapToBeEmpty(`${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-4`, dedupedDependencies);\n });\n it('should put other ranges in the components', () => {\n expectComponentDependenciesMapToHave(\n dedupedDependencies,\n `${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-2`,\n depKeyName,\n dependencyName,\n '5.0.0'\n );\n expectComponentDependenciesMapToHave(\n dedupedDependencies,\n `${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-3`,\n depKeyName,\n dependencyName,\n '5.0.0'\n );\n });\n });\n describe('when there is a best range which is not the best alone but combine with version its the best', () => {\n // there is best version which matches 4 components (5.0.0)\n // there is best range which intersect 4 ranges (^4.0.5)\n // there is range that intersects 2 components and version that match 3 components (should return this version -\n // that practically matches 5 components. (^6.0.2(3) + 6.0.4(2))\n beforeEach(() => {\n index = new Map();\n const items = generateItemsFromArrays(\n undefined,\n [\n '^4.0.0',\n '^4.0.2',\n '5.0.0',\n '5.0.0',\n '^4.0.4',\n '^4.0.5',\n '5.0.0',\n '5.0.0',\n '^6.0.0',\n '^6.0.1',\n '^6.0.2',\n '6.0.4',\n '6.0.4',\n ],\n DEV_DEP_LIFECYCLE_TYPE\n );\n index.set(dependencyName, { metadata: {}, componentItems: items });\n dedupedDependencies = hoistDependencies(index);\n });\n it('should hoist the best range to the root', () => {\n expectRootToHave(dedupedDependencies, depKeyName, dependencyName, '6.0.4');\n });\n it('should not put the dependency in components that matches the best range or the combined version', () => {\n expectComponentDependenciesMapToBeEmpty(`${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-8`, dedupedDependencies);\n expectComponentDependenciesMapToBeEmpty(`${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-9`, dedupedDependencies);\n expectComponentDependenciesMapToBeEmpty(`${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-10`, dedupedDependencies);\n expectComponentDependenciesMapToBeEmpty(`${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-11`, dedupedDependencies);\n expectComponentDependenciesMapToBeEmpty(`${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-12`, dedupedDependencies);\n });\n it('should put other ranges in the components', () => {\n expectComponentDependenciesMapToHave(\n dedupedDependencies,\n `${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-0`,\n depKeyName,\n dependencyName,\n '^4.0.0'\n );\n expectComponentDependenciesMapToHave(\n dedupedDependencies,\n `${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-1`,\n depKeyName,\n dependencyName,\n '^4.0.2'\n );\n expectComponentDependenciesMapToHave(\n dedupedDependencies,\n `${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-2`,\n depKeyName,\n dependencyName,\n '5.0.0'\n );\n expectComponentDependenciesMapToHave(\n dedupedDependencies,\n `${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-3`,\n depKeyName,\n dependencyName,\n '5.0.0'\n );\n expectComponentDependenciesMapToHave(\n dedupedDependencies,\n `${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-4`,\n depKeyName,\n dependencyName,\n '^4.0.4'\n );\n expectComponentDependenciesMapToHave(\n dedupedDependencies,\n `${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-5`,\n depKeyName,\n dependencyName,\n '^4.0.5'\n );\n expectComponentDependenciesMapToHave(\n dedupedDependencies,\n `${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-6`,\n depKeyName,\n dependencyName,\n '5.0.0'\n );\n expectComponentDependenciesMapToHave(\n dedupedDependencies,\n `${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-7`,\n depKeyName,\n dependencyName,\n '5.0.0'\n );\n });\n });\n });\n});\n"],"mappings":"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"}
1
+ {"version":3,"names":["_chai","data","require","_constants","_hoistDependencies","DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX","generateItemsFromArrays","dependentComponentNamePrefix","ranges","lifecycleTypes","size","Array","isArray","length","items","i","item","range","origin","lifecycleType","push","generateItems","numOfItems","RUNTIME_DEP_LIFECYCLE_TYPE","fill","expectAllComponentsDependenciesMapToBeEmpty","dedupedDependencies","expect","componentDependenciesMap","to","be","empty","expectComponentDependenciesMapToBeEmpty","dependentName","get","undefined","expectComponentDependenciesMapToHave","dependecyKeyName","dependencyName","dependencyVersion","comp","Error","have","property","expectRootToHave","rootDependencies","expectRootToNotHaveDependency","dependencies","not","devDependencies","peerDependencies","expectPeerIssuesToBeEmpty","_dedupedDependencies$","issus","peerConflicts","describe","index","dependentComponentName","preservedVersion","depKeyName","KEY_NAME_BY_LIFECYCLE_TYPE","beforeEach","Map","metadata","preservedLifecycleType","set","componentItems","hoistDependencies","it","PEER_DEP_LIFECYCLE_TYPE","equal","dependencyName1","dependencyName2","items1","items2","_dedupedDependencies$2","_dedupedDependencies$3","_dedupedDependencies$4","_dedupedDependencies$5","_dedupedDependencies$6","lengthOf","packageName","conflictedComponents","DEV_DEP_LIFECYCLE_TYPE"],"sources":["hoist-dependencies.spec.ts"],"sourcesContent":["import { expect } from 'chai';\n\nimport {\n DEV_DEP_LIFECYCLE_TYPE,\n KEY_NAME_BY_LIFECYCLE_TYPE,\n PEER_DEP_LIFECYCLE_TYPE,\n RUNTIME_DEP_LIFECYCLE_TYPE,\n} from '../../dependencies/constants';\nimport { DependencyLifecycleType, SemverVersion } from '../../dependencies';\nimport { DedupedDependencies } from './dedupe-dependencies';\nimport { hoistDependencies } from './hoist-dependencies';\nimport { PackageNameIndex, PackageNameIndexComponentItem, PackageNameIndexItemMetadata } from './index-by-dep-id';\n\nconst DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX = 'dependent-component';\n\nconst generateItemsFromArrays = (\n dependentComponentNamePrefix = 'dependent-component',\n ranges: SemverVersion | SemverVersion[],\n lifecycleTypes: DependencyLifecycleType | DependencyLifecycleType[]\n): PackageNameIndexComponentItem[] => {\n let size = 1;\n if (Array.isArray(ranges)) {\n size = ranges.length;\n } else if (Array.isArray(lifecycleTypes)) {\n size = lifecycleTypes.length;\n }\n const items: PackageNameIndexComponentItem[] = [];\n for (let i = 0; i <= size - 1; i += 1) {\n const item: PackageNameIndexComponentItem = {\n range: Array.isArray(ranges) ? ranges[i] : ranges,\n origin: `${dependentComponentNamePrefix}-${i}`,\n lifecycleType: Array.isArray(lifecycleTypes) ? lifecycleTypes[i] : lifecycleTypes,\n };\n items.push(item);\n }\n return items;\n};\n\nconst generateItems = (\n numOfItems = 3,\n dependentComponentNamePrefix = DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX,\n range: SemverVersion = '1.0.0',\n lifecycleType: DependencyLifecycleType = RUNTIME_DEP_LIFECYCLE_TYPE\n): PackageNameIndexComponentItem[] => {\n const ranges = Array(numOfItems).fill(range);\n const lifecycleTypes = Array(numOfItems).fill(lifecycleType);\n return generateItemsFromArrays(dependentComponentNamePrefix, ranges, lifecycleTypes);\n};\n\nconst expectAllComponentsDependenciesMapToBeEmpty = (dedupedDependencies: DedupedDependencies) => {\n expect(dedupedDependencies.componentDependenciesMap).to.be.empty;\n};\n\nconst expectComponentDependenciesMapToBeEmpty = (dependentName: string, dedupedDependencies: DedupedDependencies) => {\n expect(dedupedDependencies.componentDependenciesMap.get(dependentName)).to.be.undefined;\n};\n\nconst expectComponentDependenciesMapToHave = (\n dedupedDependencies: DedupedDependencies,\n dependentName: string,\n dependecyKeyName: string,\n dependencyName: string,\n dependencyVersion: SemverVersion\n) => {\n const comp = dedupedDependencies.componentDependenciesMap.get(dependentName);\n if (!comp) {\n throw new Error(`component ${dependentName} does not found on dedupedDependencies components map`);\n }\n expect(comp[dependecyKeyName]).to.have.property(dependencyName, dependencyVersion);\n};\n\nconst expectRootToHave = (\n dedupedDependencies: DedupedDependencies,\n dependecyKeyName: string,\n dependencyName: string,\n dependencyVersion: SemverVersion\n) => {\n expect(dedupedDependencies.rootDependencies[dependecyKeyName]).to.have.property(dependencyName, dependencyVersion);\n};\n\nconst expectRootToNotHaveDependency = (dedupedDependencies: DedupedDependencies, dependencyName: string) => {\n expect(dedupedDependencies.rootDependencies.dependencies).to.not.have.property(dependencyName);\n expect(dedupedDependencies.rootDependencies.devDependencies).to.not.have.property(dependencyName);\n expect(dedupedDependencies.rootDependencies.peerDependencies).to.not.have.property(dependencyName);\n};\n\nconst expectPeerIssuesToBeEmpty = (dedupedDependencies: DedupedDependencies) => {\n expect(dedupedDependencies.issus?.peerConflicts).to.be.empty;\n};\n\ndescribe('hoistDependencies', () => {\n let index: PackageNameIndex;\n const dependentComponentName = 'dependent-component';\n let dedupedDependencies: DedupedDependencies;\n describe('preserved dependency', () => {\n describe('some component versions are intersect and some not', () => {\n const dependencyName = 'package-dependency';\n const preservedVersion = '^4.0.0';\n const depKeyName = KEY_NAME_BY_LIFECYCLE_TYPE[RUNTIME_DEP_LIFECYCLE_TYPE];\n beforeEach(() => {\n index = new Map();\n const metadata: PackageNameIndexItemMetadata = {\n preservedLifecycleType: RUNTIME_DEP_LIFECYCLE_TYPE,\n preservedVersion,\n };\n const items = generateItemsFromArrays(undefined, ['4.0.1', '5.0.0'], RUNTIME_DEP_LIFECYCLE_TYPE);\n index.set(dependencyName, { metadata, componentItems: items });\n dedupedDependencies = hoistDependencies(index);\n });\n it('the root manifest should have the preserved version', () => {\n expectRootToHave(dedupedDependencies, depKeyName, dependencyName, preservedVersion);\n });\n\n it('the component dependencies which intersects with the preserved should be empty', () => {\n expectComponentDependenciesMapToBeEmpty(`${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-0`, dedupedDependencies);\n });\n it('the component dependencies which not intersects with the preserved to have a proper version', () => {\n expectComponentDependenciesMapToHave(\n dedupedDependencies,\n `${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-1`,\n depKeyName,\n dependencyName,\n '5.0.0'\n );\n });\n });\n });\n\n describe('dependency that appears only once', () => {\n describe('item is exact version', () => {\n const dependencyName = 'package-dependency';\n const dependencyVersion = '1.0.0';\n beforeEach(() => {\n index = new Map();\n const item: PackageNameIndexComponentItem = {\n range: dependencyVersion,\n origin: dependentComponentName,\n lifecycleType: RUNTIME_DEP_LIFECYCLE_TYPE,\n };\n index.set(dependencyName, { metadata: {}, componentItems: [item] });\n dedupedDependencies = hoistDependencies(index);\n });\n it('the component dependencies should be empty', () => {\n expectAllComponentsDependenciesMapToBeEmpty(dedupedDependencies);\n });\n it('should hoist the dependency to the root', () => {\n expectRootToHave(\n dedupedDependencies,\n KEY_NAME_BY_LIFECYCLE_TYPE[RUNTIME_DEP_LIFECYCLE_TYPE],\n dependencyName,\n dependencyVersion\n );\n });\n });\n describe('item is range', () => {\n const dependencyName = 'package-dependency';\n const dependencyVersion = '^1.0.0';\n beforeEach(() => {\n index = new Map();\n const item: PackageNameIndexComponentItem = {\n range: dependencyVersion,\n origin: dependentComponentName,\n lifecycleType: RUNTIME_DEP_LIFECYCLE_TYPE,\n };\n index.set(dependencyName, { metadata: {}, componentItems: [item] });\n dedupedDependencies = hoistDependencies(index);\n });\n it('the component dependencies should be empty', () => {\n expectAllComponentsDependenciesMapToBeEmpty(dedupedDependencies);\n });\n it('should hoist the dependency to the root', () => {\n expectRootToHave(\n dedupedDependencies,\n KEY_NAME_BY_LIFECYCLE_TYPE[RUNTIME_DEP_LIFECYCLE_TYPE],\n dependencyName,\n dependencyVersion\n );\n });\n });\n describe('item is peer dependency with one version only', () => {\n const dependencyName = 'package-dependency';\n const dependencyVersion = '1.0.0';\n const depKeyName = KEY_NAME_BY_LIFECYCLE_TYPE[PEER_DEP_LIFECYCLE_TYPE];\n\n beforeEach(() => {\n index = new Map();\n const item: PackageNameIndexComponentItem = {\n range: dependencyVersion,\n origin: dependentComponentName,\n lifecycleType: PEER_DEP_LIFECYCLE_TYPE,\n };\n index.set(dependencyName, { metadata: {}, componentItems: [item] });\n dedupedDependencies = hoistDependencies(index);\n });\n it('the component dependencies should be empty', () => {\n expectAllComponentsDependenciesMapToBeEmpty(dedupedDependencies);\n });\n it('should not hoist the dependency to the root', () => {\n // Behavior was changed to hoist peers as well in case they are appear only with one version\n // expectRootToNotHaveDependency(dedupedDependencies, dependencyName);\n expectRootToHave(dedupedDependencies, depKeyName, dependencyName, '1.0.0');\n });\n });\n });\n\n describe('dependency that appears only as peer (in many components) with same version', () => {\n const dependencyName = 'package-dependency';\n const depKeyName = KEY_NAME_BY_LIFECYCLE_TYPE[PEER_DEP_LIFECYCLE_TYPE];\n\n describe('when there are no conflicts between versions', () => {\n beforeEach(() => {\n index = new Map();\n const items = generateItems(3, undefined, undefined, PEER_DEP_LIFECYCLE_TYPE);\n index.set(dependencyName, { metadata: {}, componentItems: items });\n dedupedDependencies = hoistDependencies(index);\n });\n it('should have the peers in each component', () => {\n expect(dedupedDependencies.componentDependenciesMap.size).to.equal(0);\n });\n it('should not hoist the dependency to the root', () => {\n expectRootToHave(dedupedDependencies, depKeyName, dependencyName, '1.0.0');\n });\n it('should not report about peer conflicts', () => {\n expectPeerIssuesToBeEmpty(dedupedDependencies);\n });\n });\n describe('when there conflicts between versions for few dependencies', () => {\n const dependencyName1 = 'package-dependency-1';\n const dependencyName2 = 'package-dependency-2';\n\n beforeEach(() => {\n index = new Map();\n const items1 = generateItemsFromArrays(undefined, ['4.0.0', '5.0.0'], PEER_DEP_LIFECYCLE_TYPE);\n const items2 = generateItemsFromArrays(undefined, ['^4.0.0', '^5.0.0'], PEER_DEP_LIFECYCLE_TYPE);\n index.set(dependencyName1, { metadata: {}, componentItems: items1 });\n index.set(dependencyName2, { metadata: {}, componentItems: items2 });\n dedupedDependencies = hoistDependencies(index);\n });\n it('should have the peers in each component', () => {\n expect(dedupedDependencies.componentDependenciesMap.size).to.equal(2);\n });\n it('should not hoist the dependency to the root', () => {\n expectRootToNotHaveDependency(dedupedDependencies, dependencyName);\n });\n it('should report about peer conflicts', () => {\n expect(dedupedDependencies.issus?.peerConflicts).to.have.lengthOf(2);\n expect(dedupedDependencies.issus?.peerConflicts[0].packageName).to.equal(dependencyName1);\n expect(dedupedDependencies.issus?.peerConflicts[0].conflictedComponents).to.have.lengthOf(2);\n expect(dedupedDependencies.issus?.peerConflicts[1].packageName).to.equal(dependencyName2);\n expect(dedupedDependencies.issus?.peerConflicts[1].conflictedComponents).to.have.lengthOf(2);\n });\n });\n });\n\n describe('dependency that appears only with exact versions', () => {\n const dependencyName = 'package-dependency';\n const depKeyName = KEY_NAME_BY_LIFECYCLE_TYPE[DEV_DEP_LIFECYCLE_TYPE];\n beforeEach(() => {\n index = new Map();\n const items = generateItemsFromArrays(\n undefined,\n ['4.0.0', '5.0.0', '4.0.0', '5.0.0', '4.0.1', '4.0.0'],\n DEV_DEP_LIFECYCLE_TYPE\n );\n index.set(dependencyName, { metadata: {}, componentItems: items });\n dedupedDependencies = hoistDependencies(index);\n });\n it('should hoist the most common version to the root', () => {\n expectRootToHave(dedupedDependencies, depKeyName, dependencyName, '4.0.0');\n });\n it('should not put the most common version in the components that has it', () => {\n expectComponentDependenciesMapToBeEmpty(`${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-0`, dedupedDependencies);\n expectComponentDependenciesMapToBeEmpty(`${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-2`, dedupedDependencies);\n expectComponentDependenciesMapToBeEmpty(`${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-5`, dedupedDependencies);\n });\n it('should put other versions in the components', () => {\n expectComponentDependenciesMapToHave(\n dedupedDependencies,\n `${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-1`,\n depKeyName,\n dependencyName,\n '5.0.0'\n );\n expectComponentDependenciesMapToHave(\n dedupedDependencies,\n `${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-3`,\n depKeyName,\n dependencyName,\n '5.0.0'\n );\n });\n });\n\n describe('dependency that appears only with ranges', () => {\n const dependencyName = 'package-dependency';\n const depKeyName = KEY_NAME_BY_LIFECYCLE_TYPE[DEV_DEP_LIFECYCLE_TYPE];\n beforeEach(() => {\n index = new Map();\n const items = generateItemsFromArrays(\n undefined,\n ['^4.0.0', '^5.0.0', '^4.0.0', '^5.0.0', '^5.0.1', '^4.0.1', '^4.0.4'],\n DEV_DEP_LIFECYCLE_TYPE\n );\n index.set(dependencyName, { metadata: {}, componentItems: items });\n dedupedDependencies = hoistDependencies(index);\n });\n it('should hoist the best range to the root', () => {\n expectRootToHave(dedupedDependencies, depKeyName, dependencyName, '>=4.0.4 <5.0.0');\n });\n it('should not put the dependency in components that matches the best range', () => {\n expectComponentDependenciesMapToBeEmpty(`${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-0`, dedupedDependencies);\n expectComponentDependenciesMapToBeEmpty(`${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-2`, dedupedDependencies);\n expectComponentDependenciesMapToBeEmpty(`${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-5`, dedupedDependencies);\n expectComponentDependenciesMapToBeEmpty(`${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-6`, dedupedDependencies);\n });\n it('should put other ranges in the components', () => {\n expectComponentDependenciesMapToHave(\n dedupedDependencies,\n `${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-1`,\n depKeyName,\n dependencyName,\n '^5.0.0'\n );\n expectComponentDependenciesMapToHave(\n dedupedDependencies,\n `${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-3`,\n depKeyName,\n dependencyName,\n '^5.0.0'\n );\n expectComponentDependenciesMapToHave(\n dedupedDependencies,\n `${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-4`,\n depKeyName,\n dependencyName,\n '^5.0.1'\n );\n });\n });\n\n describe('dependency that appears with both ranges and exact versions', () => {\n const dependencyName = 'package-dependency';\n const depKeyName = KEY_NAME_BY_LIFECYCLE_TYPE[DEV_DEP_LIFECYCLE_TYPE];\n describe('when there is a version which satisfy more components than the best range', () => {\n beforeEach(() => {\n index = new Map();\n const items = generateItemsFromArrays(\n undefined,\n ['^4.0.0', '5.0.0', '5.0.0', '5.0.0', '^4.0.4'],\n DEV_DEP_LIFECYCLE_TYPE\n );\n index.set(dependencyName, { metadata: {}, componentItems: items });\n dedupedDependencies = hoistDependencies(index);\n });\n it('should hoist the best version to the root', () => {\n expectRootToHave(dedupedDependencies, depKeyName, dependencyName, '5.0.0');\n });\n it('should not put the dependency in components that matches the best version', () => {\n expectComponentDependenciesMapToBeEmpty(`${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-1`, dedupedDependencies);\n expectComponentDependenciesMapToBeEmpty(`${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-2`, dedupedDependencies);\n expectComponentDependenciesMapToBeEmpty(`${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-3`, dedupedDependencies);\n });\n it('should put other ranges in the components', () => {\n expectComponentDependenciesMapToHave(\n dedupedDependencies,\n `${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-0`,\n depKeyName,\n dependencyName,\n '^4.0.0'\n );\n expectComponentDependenciesMapToHave(\n dedupedDependencies,\n `${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-4`,\n depKeyName,\n dependencyName,\n '^4.0.4'\n );\n });\n });\n describe('when there is a best range which satisfy more components than the most common version', () => {\n beforeEach(() => {\n index = new Map();\n const items = generateItemsFromArrays(\n undefined,\n ['^4.0.0', '^4.0.2', '5.0.0', '5.0.0', '^4.0.4'],\n DEV_DEP_LIFECYCLE_TYPE\n );\n index.set(dependencyName, { metadata: {}, componentItems: items });\n dedupedDependencies = hoistDependencies(index);\n });\n it('should hoist the best range to the root', () => {\n expectRootToHave(dedupedDependencies, depKeyName, dependencyName, '>=4.0.4 <5.0.0');\n });\n it('should not put the dependency in components that matches the best range', () => {\n expectComponentDependenciesMapToBeEmpty(`${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-0`, dedupedDependencies);\n expectComponentDependenciesMapToBeEmpty(`${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-1`, dedupedDependencies);\n expectComponentDependenciesMapToBeEmpty(`${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-4`, dedupedDependencies);\n });\n it('should put other ranges in the components', () => {\n expectComponentDependenciesMapToHave(\n dedupedDependencies,\n `${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-2`,\n depKeyName,\n dependencyName,\n '5.0.0'\n );\n expectComponentDependenciesMapToHave(\n dedupedDependencies,\n `${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-3`,\n depKeyName,\n dependencyName,\n '5.0.0'\n );\n });\n });\n describe('when there is a best range which is not the best alone but combine with version its the best', () => {\n // there is best version which matches 4 components (5.0.0)\n // there is best range which intersect 4 ranges (^4.0.5)\n // there is range that intersects 2 components and version that match 3 components (should return this version -\n // that practically matches 5 components. (^6.0.2(3) + 6.0.4(2))\n beforeEach(() => {\n index = new Map();\n const items = generateItemsFromArrays(\n undefined,\n [\n '^4.0.0',\n '^4.0.2',\n '5.0.0',\n '5.0.0',\n '^4.0.4',\n '^4.0.5',\n '5.0.0',\n '5.0.0',\n '^6.0.0',\n '^6.0.1',\n '^6.0.2',\n '6.0.4',\n '6.0.4',\n ],\n DEV_DEP_LIFECYCLE_TYPE\n );\n index.set(dependencyName, { metadata: {}, componentItems: items });\n dedupedDependencies = hoistDependencies(index);\n });\n it('should hoist the best range to the root', () => {\n expectRootToHave(dedupedDependencies, depKeyName, dependencyName, '6.0.4');\n });\n it('should not put the dependency in components that matches the best range or the combined version', () => {\n expectComponentDependenciesMapToBeEmpty(`${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-8`, dedupedDependencies);\n expectComponentDependenciesMapToBeEmpty(`${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-9`, dedupedDependencies);\n expectComponentDependenciesMapToBeEmpty(`${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-10`, dedupedDependencies);\n expectComponentDependenciesMapToBeEmpty(`${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-11`, dedupedDependencies);\n expectComponentDependenciesMapToBeEmpty(`${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-12`, dedupedDependencies);\n });\n it('should put other ranges in the components', () => {\n expectComponentDependenciesMapToHave(\n dedupedDependencies,\n `${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-0`,\n depKeyName,\n dependencyName,\n '^4.0.0'\n );\n expectComponentDependenciesMapToHave(\n dedupedDependencies,\n `${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-1`,\n depKeyName,\n dependencyName,\n '^4.0.2'\n );\n expectComponentDependenciesMapToHave(\n dedupedDependencies,\n `${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-2`,\n depKeyName,\n dependencyName,\n '5.0.0'\n );\n expectComponentDependenciesMapToHave(\n dedupedDependencies,\n `${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-3`,\n depKeyName,\n dependencyName,\n '5.0.0'\n );\n expectComponentDependenciesMapToHave(\n dedupedDependencies,\n `${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-4`,\n depKeyName,\n dependencyName,\n '^4.0.4'\n );\n expectComponentDependenciesMapToHave(\n dedupedDependencies,\n `${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-5`,\n depKeyName,\n dependencyName,\n '^4.0.5'\n );\n expectComponentDependenciesMapToHave(\n dedupedDependencies,\n `${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-6`,\n depKeyName,\n dependencyName,\n '5.0.0'\n );\n expectComponentDependenciesMapToHave(\n dedupedDependencies,\n `${DEFAULT_DEPENDENT_COMPONENT_NAME_PREFIX}-7`,\n depKeyName,\n dependencyName,\n '5.0.0'\n );\n });\n });\n });\n});\n"],"mappings":"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"}
@@ -1,7 +1,5 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- require("core-js/modules/es.array.iterator.js");
5
3
  Object.defineProperty(exports, "__esModule", {
6
4
  value: true
7
5
  });
@@ -27,6 +25,7 @@ function _constants() {
27
25
  };
28
26
  return data;
29
27
  }
28
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
30
29
  /**
31
30
  * This will get the map of dependencies for each component and will create a new index with the dependencyId (package name) as key
32
31
  * and all components / ranges as value
@@ -1 +1 @@
1
- {"version":3,"names":["_forEachObjIndexed","data","_interopRequireDefault","require","_pick","_constants","indexByDepId","rootPolicy","componentDependenciesMap","hoistedDepFields","result","Map","forEach","depsObject","compPackageName","pick","forEachObjIndexed","addSpecificLifeCycleDepsToIndex","addPreservedFromRoot","index","preserved","filter","entry","value","preserve","metadata","preservedVersion","version","preservedLifecycleType","lifecycleType","setMetadataToExistingIndexItem","dependencyId","depId","existingItem","get","origin","deps","depKeyName","LIFECYCLE_TYPE_BY_KEY_NAME","addComponentDepToDepIdIndex","range","_index$get","componentItem","has","item","componentItems","set","push"],"sources":["index-by-dep-id.ts"],"sourcesContent":["import forEachObjIndexed from 'ramda/src/forEachObjIndexed';\nimport pick from 'ramda/src/pick';\nimport { LIFECYCLE_TYPE_BY_KEY_NAME } from '../../dependencies/constants';\nimport { ManifestDependenciesKeysNames, DepObjectValue } from '../manifest';\nimport { DependencyLifecycleType, SemverVersion, PackageName } from '../../dependencies';\nimport { ComponentDependenciesMap } from '../workspace-manifest-factory';\nimport { WorkspacePolicy } from '../../policy';\n\nexport type PackageNameIndexItem = {\n metadata: PackageNameIndexItemMetadata;\n componentItems: PackageNameIndexComponentItem[];\n};\n\nexport type PackageNameIndexItemMetadata = {\n preservedVersion?: string;\n preservedLifecycleType?: DependencyLifecycleType;\n};\n\nexport type PackageNameIndexComponentItem = {\n range: SemverVersion;\n origin: PackageName;\n lifecycleType: DependencyLifecycleType;\n};\n\nexport type PackageNameIndex = Map<PackageName, PackageNameIndexItem>;\n\n/**\n * This will get the map of dependencies for each component and will create a new index with the dependencyId (package name) as key\n * and all components / ranges as value\n * It used as a pre processing as part of the deduping process\n *\n * @param {ComponentDependenciesMap} componentDependenciesMap\n * @returns {PackageNameIndex}\n */\nexport function indexByDepId(\n rootPolicy: WorkspacePolicy,\n componentDependenciesMap: ComponentDependenciesMap,\n hoistedDepFields?: ManifestDependenciesKeysNames[]\n): PackageNameIndex {\n const result: PackageNameIndex = new Map();\n componentDependenciesMap.forEach((depsObject, compPackageName) => {\n if (hoistedDepFields) {\n depsObject = pick(hoistedDepFields, depsObject);\n }\n forEachObjIndexed(addSpecificLifeCycleDepsToIndex(result, compPackageName), depsObject);\n });\n addPreservedFromRoot(result, rootPolicy);\n return result;\n}\n\nfunction addPreservedFromRoot(index: PackageNameIndex, rootPolicy: WorkspacePolicy): void {\n const preserved = rootPolicy.filter((entry) => !!entry.value.preserve);\n preserved.forEach((entry) => {\n const metadata: PackageNameIndexItemMetadata = {\n preservedVersion: entry.value.version,\n preservedLifecycleType: entry.lifecycleType,\n };\n setMetadataToExistingIndexItem(index, entry.dependencyId, metadata);\n });\n}\n\nfunction setMetadataToExistingIndexItem(\n index: PackageNameIndex,\n depId: PackageName,\n metadata: PackageNameIndexItemMetadata\n): void {\n const existingItem = index.get(depId);\n // only change existing items\n if (existingItem) {\n existingItem.metadata = metadata;\n }\n}\n\n/**\n * Mutate the index and add all deps from specific lifecycle type to the index\n *\n * @param {PackageNameIndex} index\n * @param {PackageName} origin\n * @returns\n */\nfunction addSpecificLifeCycleDepsToIndex(index: PackageNameIndex, origin: PackageName) {\n return (deps: DepObjectValue, depKeyName: ManifestDependenciesKeysNames) => {\n const lifecycleType = LIFECYCLE_TYPE_BY_KEY_NAME[depKeyName] as DependencyLifecycleType;\n forEachObjIndexed(addComponentDepToDepIdIndex(index, origin, lifecycleType), deps);\n };\n}\n\n/**\n * Mutate the index and add specific package into it\n *\n * @param {PackageNameIndex} index\n * @param {PackageName} origin\n * @param {DependencyLifecycleType} lifecycleType\n * @returns\n */\nfunction addComponentDepToDepIdIndex(\n index: PackageNameIndex,\n origin: PackageName,\n lifecycleType: DependencyLifecycleType\n) {\n return (range: SemverVersion, depId: PackageName) => {\n const componentItem: PackageNameIndexComponentItem = {\n origin,\n range,\n lifecycleType,\n };\n if (!index.has(depId)) {\n const item: PackageNameIndexItem = {\n componentItems: [componentItem],\n metadata: {},\n };\n index.set(depId, item);\n return;\n }\n index.get(depId)?.componentItems.push(componentItem);\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_forEachObjIndexed","data","_interopRequireDefault","require","_pick","_constants","obj","__esModule","default","indexByDepId","rootPolicy","componentDependenciesMap","hoistedDepFields","result","Map","forEach","depsObject","compPackageName","pick","forEachObjIndexed","addSpecificLifeCycleDepsToIndex","addPreservedFromRoot","index","preserved","filter","entry","value","preserve","metadata","preservedVersion","version","preservedLifecycleType","lifecycleType","setMetadataToExistingIndexItem","dependencyId","depId","existingItem","get","origin","deps","depKeyName","LIFECYCLE_TYPE_BY_KEY_NAME","addComponentDepToDepIdIndex","range","_index$get","componentItem","has","item","componentItems","set","push"],"sources":["index-by-dep-id.ts"],"sourcesContent":["import forEachObjIndexed from 'ramda/src/forEachObjIndexed';\nimport pick from 'ramda/src/pick';\nimport { LIFECYCLE_TYPE_BY_KEY_NAME } from '../../dependencies/constants';\nimport { ManifestDependenciesKeysNames, DepObjectValue } from '../manifest';\nimport { DependencyLifecycleType, SemverVersion, PackageName } from '../../dependencies';\nimport { ComponentDependenciesMap } from '../workspace-manifest-factory';\nimport { WorkspacePolicy } from '../../policy';\n\nexport type PackageNameIndexItem = {\n metadata: PackageNameIndexItemMetadata;\n componentItems: PackageNameIndexComponentItem[];\n};\n\nexport type PackageNameIndexItemMetadata = {\n preservedVersion?: string;\n preservedLifecycleType?: DependencyLifecycleType;\n};\n\nexport type PackageNameIndexComponentItem = {\n range: SemverVersion;\n origin: PackageName;\n lifecycleType: DependencyLifecycleType;\n};\n\nexport type PackageNameIndex = Map<PackageName, PackageNameIndexItem>;\n\n/**\n * This will get the map of dependencies for each component and will create a new index with the dependencyId (package name) as key\n * and all components / ranges as value\n * It used as a pre processing as part of the deduping process\n *\n * @param {ComponentDependenciesMap} componentDependenciesMap\n * @returns {PackageNameIndex}\n */\nexport function indexByDepId(\n rootPolicy: WorkspacePolicy,\n componentDependenciesMap: ComponentDependenciesMap,\n hoistedDepFields?: ManifestDependenciesKeysNames[]\n): PackageNameIndex {\n const result: PackageNameIndex = new Map();\n componentDependenciesMap.forEach((depsObject, compPackageName) => {\n if (hoistedDepFields) {\n depsObject = pick(hoistedDepFields, depsObject);\n }\n forEachObjIndexed(addSpecificLifeCycleDepsToIndex(result, compPackageName), depsObject);\n });\n addPreservedFromRoot(result, rootPolicy);\n return result;\n}\n\nfunction addPreservedFromRoot(index: PackageNameIndex, rootPolicy: WorkspacePolicy): void {\n const preserved = rootPolicy.filter((entry) => !!entry.value.preserve);\n preserved.forEach((entry) => {\n const metadata: PackageNameIndexItemMetadata = {\n preservedVersion: entry.value.version,\n preservedLifecycleType: entry.lifecycleType,\n };\n setMetadataToExistingIndexItem(index, entry.dependencyId, metadata);\n });\n}\n\nfunction setMetadataToExistingIndexItem(\n index: PackageNameIndex,\n depId: PackageName,\n metadata: PackageNameIndexItemMetadata\n): void {\n const existingItem = index.get(depId);\n // only change existing items\n if (existingItem) {\n existingItem.metadata = metadata;\n }\n}\n\n/**\n * Mutate the index and add all deps from specific lifecycle type to the index\n *\n * @param {PackageNameIndex} index\n * @param {PackageName} origin\n * @returns\n */\nfunction addSpecificLifeCycleDepsToIndex(index: PackageNameIndex, origin: PackageName) {\n return (deps: DepObjectValue, depKeyName: ManifestDependenciesKeysNames) => {\n const lifecycleType = LIFECYCLE_TYPE_BY_KEY_NAME[depKeyName] as DependencyLifecycleType;\n forEachObjIndexed(addComponentDepToDepIdIndex(index, origin, lifecycleType), deps);\n };\n}\n\n/**\n * Mutate the index and add specific package into it\n *\n * @param {PackageNameIndex} index\n * @param {PackageName} origin\n * @param {DependencyLifecycleType} lifecycleType\n * @returns\n */\nfunction addComponentDepToDepIdIndex(\n index: PackageNameIndex,\n origin: PackageName,\n lifecycleType: DependencyLifecycleType\n) {\n return (range: SemverVersion, depId: PackageName) => {\n const componentItem: PackageNameIndexComponentItem = {\n origin,\n range,\n lifecycleType,\n };\n if (!index.has(depId)) {\n const item: PackageNameIndexItem = {\n componentItems: [componentItem],\n metadata: {},\n };\n index.set(depId, item);\n return;\n }\n index.get(depId)?.componentItems.push(componentItem);\n };\n}\n"],"mappings":";;;;;;AAAA,SAAAA,mBAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,kBAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,MAAA;EAAA,MAAAH,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAC,KAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAI,WAAA;EAAA,MAAAJ,IAAA,GAAAE,OAAA;EAAAE,UAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA0E,SAAAC,uBAAAI,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAwB1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASG,YAAYA,CAC1BC,UAA2B,EAC3BC,wBAAkD,EAClDC,gBAAkD,EAChC;EAClB,MAAMC,MAAwB,GAAG,IAAIC,GAAG,CAAC,CAAC;EAC1CH,wBAAwB,CAACI,OAAO,CAAC,CAACC,UAAU,EAAEC,eAAe,KAAK;IAChE,IAAIL,gBAAgB,EAAE;MACpBI,UAAU,GAAG,IAAAE,eAAI,EAACN,gBAAgB,EAAEI,UAAU,CAAC;IACjD;IACA,IAAAG,4BAAiB,EAACC,+BAA+B,CAACP,MAAM,EAAEI,eAAe,CAAC,EAAED,UAAU,CAAC;EACzF,CAAC,CAAC;EACFK,oBAAoB,CAACR,MAAM,EAAEH,UAAU,CAAC;EACxC,OAAOG,MAAM;AACf;AAEA,SAASQ,oBAAoBA,CAACC,KAAuB,EAAEZ,UAA2B,EAAQ;EACxF,MAAMa,SAAS,GAAGb,UAAU,CAACc,MAAM,CAAEC,KAAK,IAAK,CAAC,CAACA,KAAK,CAACC,KAAK,CAACC,QAAQ,CAAC;EACtEJ,SAAS,CAACR,OAAO,CAAEU,KAAK,IAAK;IAC3B,MAAMG,QAAsC,GAAG;MAC7CC,gBAAgB,EAAEJ,KAAK,CAACC,KAAK,CAACI,OAAO;MACrCC,sBAAsB,EAAEN,KAAK,CAACO;IAChC,CAAC;IACDC,8BAA8B,CAACX,KAAK,EAAEG,KAAK,CAACS,YAAY,EAAEN,QAAQ,CAAC;EACrE,CAAC,CAAC;AACJ;AAEA,SAASK,8BAA8BA,CACrCX,KAAuB,EACvBa,KAAkB,EAClBP,QAAsC,EAChC;EACN,MAAMQ,YAAY,GAAGd,KAAK,CAACe,GAAG,CAACF,KAAK,CAAC;EACrC;EACA,IAAIC,YAAY,EAAE;IAChBA,YAAY,CAACR,QAAQ,GAAGA,QAAQ;EAClC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASR,+BAA+BA,CAACE,KAAuB,EAAEgB,MAAmB,EAAE;EACrF,OAAO,CAACC,IAAoB,EAAEC,UAAyC,KAAK;IAC1E,MAAMR,aAAa,GAAGS,uCAA0B,CAACD,UAAU,CAA4B;IACvF,IAAArB,4BAAiB,EAACuB,2BAA2B,CAACpB,KAAK,EAAEgB,MAAM,EAAEN,aAAa,CAAC,EAAEO,IAAI,CAAC;EACpF,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASG,2BAA2BA,CAClCpB,KAAuB,EACvBgB,MAAmB,EACnBN,aAAsC,EACtC;EACA,OAAO,CAACW,KAAoB,EAAER,KAAkB,KAAK;IAAA,IAAAS,UAAA;IACnD,MAAMC,aAA4C,GAAG;MACnDP,MAAM;MACNK,KAAK;MACLX;IACF,CAAC;IACD,IAAI,CAACV,KAAK,CAACwB,GAAG,CAACX,KAAK,CAAC,EAAE;MACrB,MAAMY,IAA0B,GAAG;QACjCC,cAAc,EAAE,CAACH,aAAa,CAAC;QAC/BjB,QAAQ,EAAE,CAAC;MACb,CAAC;MACDN,KAAK,CAAC2B,GAAG,CAACd,KAAK,EAAEY,IAAI,CAAC;MACtB;IACF;IACA,CAAAH,UAAA,GAAAtB,KAAK,CAACe,GAAG,CAACF,KAAK,CAAC,cAAAS,UAAA,uBAAhBA,UAAA,CAAkBI,cAAc,CAACE,IAAI,CAACL,aAAa,CAAC;EACtD,CAAC;AACH"}
@@ -1,6 +1,5 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
@@ -12,6 +11,7 @@ function _forEachObjIndexed() {
12
11
  };
13
12
  return data;
14
13
  }
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
15
  /**
16
16
  * This is the third phase of the deduping process
17
17
  * It's not exactly part of the dedupe process but its required for the bit install to work properly
@@ -1 +1 @@
1
- {"version":3,"names":["_forEachObjIndexed","data","_interopRequireDefault","require","mergeWithRootDeps","rootDependencies","dedupedDependencies","forEachObjIndexed","mergeSpecificLifeCycleRootDepsToDedupedDependencies","deps","depKeyName","mergeRootDepToDedupedDependencies","range","depId","isDepExistInAnyOfTheRootDedupedDependencies","existingRootDeps","toString","rootDedupedDeps","isDepExistInDepObject","dependencies","devDependencies","peerDependencies","depObjectValue"],"sources":["merge-with-root.ts"],"sourcesContent":["import forEachObjIndexed from 'ramda/src/forEachObjIndexed';\nimport { SemVer } from 'semver';\n\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 forEachObjIndexed(mergeSpecificLifeCycleRootDepsToDedupedDependencies(dedupedDependencies), rootDependencies);\n return dedupedDependencies;\n}\n\nfunction mergeSpecificLifeCycleRootDepsToDedupedDependencies(dedupedDependencies: DedupedDependencies) {\n return (deps: DepObjectValue, depKeyName: ManifestDependenciesKeysNames) => {\n forEachObjIndexed(mergeRootDepToDedupedDependencies(dedupedDependencies, depKeyName), deps);\n };\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":";;;;;;;AAAA,SAAAA,mBAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,kBAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASG,iBAAiBA,CAC/BC,gBAA4C,EAC5CC,mBAAwC,EACnB;EACrB,IAAAC,4BAAiB,EAACC,mDAAmD,CAACF,mBAAmB,CAAC,EAAED,gBAAgB,CAAC;EAC7G,OAAOC,mBAAmB;AAC5B;AAEA,SAASE,mDAAmDA,CAACF,mBAAwC,EAAE;EACrG,OAAO,CAACG,IAAoB,EAAEC,UAAyC,KAAK;IAC1E,IAAAH,4BAAiB,EAACI,iCAAiC,CAACL,mBAAmB,EAAEI,UAAU,CAAC,EAAED,IAAI,CAAC;EAC7F,CAAC;AACH;AAEA,SAASE,iCAAiCA,CACxCL,mBAAwC,EACxCI,UAAyC,EACzC;EACA,OAAO,CAACE,KAAa,EAAEC,KAAkB,KAAK;IAC5C;IACA,IAAIC,2CAA2C,CAACD,KAAK,EAAEP,mBAAmB,CAAC,EAAE;IAC7E,MAAMS,gBAAgB,GAAGT,mBAAmB,CAACD,gBAAgB;IAC7D,IAAIU,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,EAAEP,mBAAwC,EAAE;EAC5G,MAAMW,eAAe,GAAGX,mBAAmB,CAACD,gBAAgB;EAC5D,OACEa,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"}
1
+ {"version":3,"names":["_forEachObjIndexed","data","_interopRequireDefault","require","obj","__esModule","default","mergeWithRootDeps","rootDependencies","dedupedDependencies","forEachObjIndexed","mergeSpecificLifeCycleRootDepsToDedupedDependencies","deps","depKeyName","mergeRootDepToDedupedDependencies","range","depId","isDepExistInAnyOfTheRootDedupedDependencies","existingRootDeps","toString","rootDedupedDeps","isDepExistInDepObject","dependencies","devDependencies","peerDependencies","depObjectValue"],"sources":["merge-with-root.ts"],"sourcesContent":["import forEachObjIndexed from 'ramda/src/forEachObjIndexed';\nimport { SemVer } from 'semver';\n\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 forEachObjIndexed(mergeSpecificLifeCycleRootDepsToDedupedDependencies(dedupedDependencies), rootDependencies);\n return dedupedDependencies;\n}\n\nfunction mergeSpecificLifeCycleRootDepsToDedupedDependencies(dedupedDependencies: DedupedDependencies) {\n return (deps: DepObjectValue, depKeyName: ManifestDependenciesKeysNames) => {\n forEachObjIndexed(mergeRootDepToDedupedDependencies(dedupedDependencies, depKeyName), deps);\n };\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":";;;;;;AAAA,SAAAA,mBAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,kBAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA4D,SAAAC,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAO5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASG,iBAAiBA,CAC/BC,gBAA4C,EAC5CC,mBAAwC,EACnB;EACrB,IAAAC,4BAAiB,EAACC,mDAAmD,CAACF,mBAAmB,CAAC,EAAED,gBAAgB,CAAC;EAC7G,OAAOC,mBAAmB;AAC5B;AAEA,SAASE,mDAAmDA,CAACF,mBAAwC,EAAE;EACrG,OAAO,CAACG,IAAoB,EAAEC,UAAyC,KAAK;IAC1E,IAAAH,4BAAiB,EAACI,iCAAiC,CAACL,mBAAmB,EAAEI,UAAU,CAAC,EAAED,IAAI,CAAC;EAC7F,CAAC;AACH;AAEA,SAASE,iCAAiCA,CACxCL,mBAAwC,EACxCI,UAAyC,EACzC;EACA,OAAO,CAACE,KAAa,EAAEC,KAAkB,KAAK;IAC5C;IACA,IAAIC,2CAA2C,CAACD,KAAK,EAAEP,mBAAmB,CAAC,EAAE;IAC7E,MAAMS,gBAAgB,GAAGT,mBAAmB,CAACD,gBAAgB;IAC7D,IAAIU,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,EAAEP,mBAAwC,EAAE;EAC5G,MAAMW,eAAe,GAAGX,mBAAmB,CAACD,gBAAgB;EAC5D,OACEa,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"}
@@ -1,19 +1,14 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
6
  exports.Manifest = void 0;
8
- function _defineProperty2() {
9
- const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
- _defineProperty2 = function () {
11
- return data;
12
- };
13
- return data;
14
- }
15
7
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
16
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2().default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
8
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
9
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
10
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
11
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
17
12
  // export type ManifestDependenciesKeys = 'dependencies' | 'devDependencies' | 'peerDependencies';
18
13
 
19
14
  class Manifest {
@@ -1 +1 @@
1
- {"version":3,"names":["Manifest","constructor","name","version","dependencies","toJson","options","devDependencies","peerDependencies","copyPeerToRuntime","_objectSpread","manifest","exports"],"sources":["manifest.ts"],"sourcesContent":["import { SemVer } from 'semver';\nimport { PackageName, SemverVersion } from '../dependencies';\n\n// export type ManifestDependenciesKeys = 'dependencies' | 'devDependencies' | 'peerDependencies';\n\nexport type ManifestDependenciesKeys = {\n dependencies: 'dependencies';\n devDependencies: 'devDependencies';\n peerDependencies: 'peerDependencies';\n};\n\nexport type ManifestDependenciesKeysNames = keyof ManifestDependenciesKeys;\n\nexport type ManifestDependenciesObject = Partial<Record<ManifestDependenciesKeysNames, DepObjectValue>>;\n\nexport type DepObjectValue = Record<PackageName, SemverVersion>;\n\nexport interface ManifestToJsonOptions {\n copyPeerToRuntime?: boolean;\n}\n\nexport class Manifest {\n constructor(public name: string, public version: SemVer, public dependencies: ManifestDependenciesObject) {}\n\n // Should be implemented on sub classes\n // get dir(): string {\n // throw new GeneralError('not implemented');\n // }\n\n toJson(options: ManifestToJsonOptions = {}): Record<string, any> {\n let dependencies = this.dependencies.dependencies || {};\n const devDependencies = this.dependencies.devDependencies || {};\n const peerDependencies = this.dependencies.peerDependencies || {};\n if (options.copyPeerToRuntime) {\n dependencies = { ...peerDependencies, ...dependencies };\n }\n const manifest = {\n name: this.name,\n version: this.version.version,\n dependencies,\n devDependencies,\n peerDependencies,\n };\n // if (options.includeDir) {\n // return {\n // rootDir: this.dir,\n // manifest,\n // };\n // }\n return manifest;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAGA;;AAkBO,MAAMA,QAAQ,CAAC;EACpBC,WAAWA,CAAQC,IAAY,EAASC,OAAe,EAASC,YAAwC,EAAE;IAAA,KAAvFF,IAAY,GAAZA,IAAY;IAAA,KAASC,OAAe,GAAfA,OAAe;IAAA,KAASC,YAAwC,GAAxCA,YAAwC;EAAG;;EAE3G;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,eAAe,GAAG,IAAI,CAACH,YAAY,CAACG,eAAe,IAAI,CAAC,CAAC;IAC/D,MAAMC,gBAAgB,GAAG,IAAI,CAACJ,YAAY,CAACI,gBAAgB,IAAI,CAAC,CAAC;IACjE,IAAIF,OAAO,CAACG,iBAAiB,EAAE;MAC7BL,YAAY,GAAAM,aAAA,CAAAA,aAAA,KAAQF,gBAAgB,GAAKJ,YAAY,CAAE;IACzD;IACA,MAAMO,QAAQ,GAAG;MACfT,IAAI,EAAE,IAAI,CAACA,IAAI;MACfC,OAAO,EAAE,IAAI,CAACA,OAAO,CAACA,OAAO;MAC7BC,YAAY;MACZG,eAAe;MACfC;IACF,CAAC;IACD;IACA;IACA;IACA;IACA;IACA;IACA,OAAOG,QAAQ;EACjB;AACF;AAACC,OAAA,CAAAZ,QAAA,GAAAA,QAAA"}
1
+ {"version":3,"names":["Manifest","constructor","name","version","dependencies","toJson","options","devDependencies","peerDependencies","copyPeerToRuntime","_objectSpread","manifest","exports"],"sources":["manifest.ts"],"sourcesContent":["import { SemVer } from 'semver';\nimport { PackageName, SemverVersion } from '../dependencies';\n\n// export type ManifestDependenciesKeys = 'dependencies' | 'devDependencies' | 'peerDependencies';\n\nexport type ManifestDependenciesKeys = {\n dependencies: 'dependencies';\n devDependencies: 'devDependencies';\n peerDependencies: 'peerDependencies';\n};\n\nexport type ManifestDependenciesKeysNames = keyof ManifestDependenciesKeys;\n\nexport type ManifestDependenciesObject = Partial<Record<ManifestDependenciesKeysNames, DepObjectValue>>;\n\nexport type DepObjectValue = Record<PackageName, SemverVersion>;\n\nexport interface ManifestToJsonOptions {\n copyPeerToRuntime?: boolean;\n}\n\nexport class Manifest {\n constructor(public name: string, public version: SemVer, public dependencies: ManifestDependenciesObject) {}\n\n // Should be implemented on sub classes\n // get dir(): string {\n // throw new GeneralError('not implemented');\n // }\n\n toJson(options: ManifestToJsonOptions = {}): Record<string, any> {\n let dependencies = this.dependencies.dependencies || {};\n const devDependencies = this.dependencies.devDependencies || {};\n const peerDependencies = this.dependencies.peerDependencies || {};\n if (options.copyPeerToRuntime) {\n dependencies = { ...peerDependencies, ...dependencies };\n }\n const manifest = {\n name: this.name,\n version: this.version.version,\n dependencies,\n devDependencies,\n peerDependencies,\n };\n // if (options.includeDir) {\n // return {\n // rootDir: this.dir,\n // manifest,\n // };\n // }\n return manifest;\n }\n}\n"],"mappings":";;;;;;;;;;;AAGA;;AAkBO,MAAMA,QAAQ,CAAC;EACpBC,WAAWA,CAAQC,IAAY,EAASC,OAAe,EAASC,YAAwC,EAAE;IAAA,KAAvFF,IAAY,GAAZA,IAAY;IAAA,KAASC,OAAe,GAAfA,OAAe;IAAA,KAASC,YAAwC,GAAxCA,YAAwC;EAAG;;EAE3G;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,eAAe,GAAG,IAAI,CAACH,YAAY,CAACG,eAAe,IAAI,CAAC,CAAC;IAC/D,MAAMC,gBAAgB,GAAG,IAAI,CAACJ,YAAY,CAACI,gBAAgB,IAAI,CAAC,CAAC;IACjE,IAAIF,OAAO,CAACG,iBAAiB,EAAE;MAC7BL,YAAY,GAAAM,aAAA,CAAAA,aAAA,KAAQF,gBAAgB,GAAKJ,YAAY,CAAE;IACzD;IACA,MAAMO,QAAQ,GAAG;MACfT,IAAI,EAAE,IAAI,CAACA,IAAI;MACfC,OAAO,EAAE,IAAI,CAACA,OAAO,CAACA,OAAO;MAC7BC,YAAY;MACZG,eAAe;MACfC;IACF,CAAC;IACD;IACA;IACA;IACA;IACA;IACA;IACA,OAAOG,QAAQ;EACjB;AACF;AAACC,OAAA,CAAAZ,QAAA,GAAAA,QAAA"}
@@ -1,20 +1,9 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- require("core-js/modules/es.array.iterator.js");
5
- require("core-js/modules/es.promise.js");
6
- require("core-js/modules/es.regexp.exec.js");
7
3
  Object.defineProperty(exports, "__esModule", {
8
4
  value: true
9
5
  });
10
6
  exports.WorkspaceManifestFactory = void 0;
11
- function _defineProperty2() {
12
- const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
- _defineProperty2 = function () {
14
- return data;
15
- };
16
- return data;
17
- }
18
7
  function _componentIssues() {
19
8
  const data = require("@teambit/component-issues");
20
9
  _componentIssues = function () {
@@ -106,8 +95,12 @@ function _workspaceManifest() {
106
95
  };
107
96
  return data;
108
97
  }
98
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
109
99
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
110
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2().default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
100
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
101
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
102
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
103
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
111
104
  const DEFAULT_CREATE_OPTIONS = {
112
105
  filterComponentsFromManifests: true,
113
106
  createManifestForComponentsWithoutDependencies: true,
@@ -121,10 +114,9 @@ class WorkspaceManifestFactory {
121
114
  this.aspectLoader = aspectLoader;
122
115
  }
123
116
  async createFromComponents(name, version, rootPolicy, rootDir, components, options = DEFAULT_CREATE_OPTIONS) {
124
- var _options$hasRootCompo;
125
117
  // Make sure to take other default if passed options with only one option
126
118
  const optsWithDefaults = Object.assign({}, DEFAULT_CREATE_OPTIONS, options);
127
- const hasRootComponents = (_options$hasRootCompo = options.hasRootComponents) !== null && _options$hasRootCompo !== void 0 ? _options$hasRootCompo : this.dependencyResolver.hasRootComponents();
119
+ const hasRootComponents = options.hasRootComponents ?? this.dependencyResolver.hasRootComponents();
128
120
  const componentDependenciesMap = await this.buildComponentDependenciesMap(components, {
129
121
  filterComponentsFromManifests: optsWithDefaults.filterComponentsFromManifests,
130
122
  rootPolicy: optsWithDefaults.resolveVersionsFromDependenciesOnly ? undefined : rootPolicy,
@@ -203,7 +195,7 @@ class WorkspaceManifestFactory {
203
195
  }
204
196
  }
205
197
  const depManifestBeforeFiltering = depList.toDependenciesManifest();
206
- if (filterComponentsFromManifests !== null && filterComponentsFromManifests !== void 0 ? filterComponentsFromManifests : true) {
198
+ if (filterComponentsFromManifests ?? true) {
207
199
  depList = filterComponents(depList, components);
208
200
  }
209
201
  if (excludeExtensionsDependencies) {
@@ -1 +1 @@
1
- {"version":3,"names":["_componentIssues","data","require","_componentIdToPackageName","_interopRequireDefault","_dependencyResolver","_lodash","_semver","_pMapSeries","_componentPackageVersion","_dependencies","_policy","_componentManifest","_deduping","_updateDependencyVersion","_workspaceManifest","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","DEFAULT_CREATE_OPTIONS","filterComponentsFromManifests","createManifestForComponentsWithoutDependencies","dedupe","resolveVersionsFromDependenciesOnly","excludeExtensionsDependencies","WorkspaceManifestFactory","constructor","dependencyResolver","aspectLoader","createFromComponents","name","version","rootPolicy","rootDir","components","options","_options$hasRootCompo","optsWithDefaults","assign","hasRootComponents","componentDependenciesMap","buildComponentDependenciesMap","undefined","dependencyFilterFn","referenceLocalPackages","rootDependencies","toManifest","dependencies","dedupedDependencies","getEmptyDedupedDependencies","dep","dependencyId","dedupeDependencies","dedupePeerDependencies","mapValues","deps","excludeWorkspaceDependencies","componentsManifestsMap","getComponentsManifests","envSelfPeers","getEnvsSelfPeersPolicy","workspaceManifest","WorkspaceManifest","foundEnvs","component","values","envPolicy","peersPolicies","map","policy","selfPolicy","mergedPolicies","VariantPolicy","mergePolices","buildResultsP","packageName","componentIdToPackageName","state","_consumer","depList","getDependencies","includeHidden","additionalDeps","coreAspectIds","getCoreAspectIds","comp","toTypeArray","compIdWithoutVersion","id","split","isExtension","includes","some","c","isEqual","componentId","pkgName","getPackageName","depManifestBeforeFiltering","toDependenciesManifest","filterComponents","filterExtensions","updateDependenciesVersions","depManifest","devMissings","runtimeMissings","getMissingPackages","unresolvedRuntimeMissingRootDeps","pickBy","_version","rootPackageName","devDependencies","peerDependencies","unresolvedDevMissingRootDeps","result","Map","results","Promise","all","currResult","set","dependencyList","getPolicy","updateDependencyVersion","componentsManifests","pMapSeries","has","blankDependencies","get","getVersion","hasVersion","snapToSemver","getComponentEnvPolicy","manifest","ComponentManifest","SemVer","exports","filtered","ComponentDependency","componentsToFilterOut","_dep$getPackageName","depPkgName","call","existingComponent","find","toString","ignoreVersion","_legacy","isEqualWithoutVersion","versionSpec","startsWith","_component$state$issu","missingPackagesData","issues","getIssue","IssuesClasses","MissingPackagesDependenciesOnFs","devFiles","DependencyResolver","getDevFiles","entries","fileName","packages","uniq","difference"],"sources":["workspace-manifest-factory.ts"],"sourcesContent":["import { AspectLoaderMain } from '@teambit/aspect-loader';\nimport { IssuesClasses } from '@teambit/component-issues';\nimport { Component } from '@teambit/component';\nimport componentIdToPackageName from '@teambit/legacy/dist/utils/bit/component-id-to-package-name';\nimport { DependencyResolver } from '@teambit/legacy/dist/consumer/component/dependencies/dependency-resolver';\nimport { 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(private dependencyResolver: DependencyResolverMain, private aspectLoader: AspectLoaderMain) {}\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 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 rootPolicy = rootPolicy.filter((dep) => dep.dependencyId !== '@teambit/legacy');\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 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 buildResultsP = components.map(async (component) => {\n const packageName = componentIdToPackageName(component.state._consumer);\n let depList = await 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 (\n !comp.isExtension &&\n !coreAspectIds.includes(compIdWithoutVersion) &&\n components.some((c) => c.id.isEqual(comp.componentId))\n ) {\n const pkgName = comp.getPackageName();\n if (pkgName !== '@teambit/harmony') {\n additionalDeps[pkgName] = `workspace:*`;\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 depManifest.dependencies = {\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 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 devDependencies: {},\n peerDependencies: {},\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._legacy and component.state._consumer.id\n // Because during tag operation, the component.id._legacy 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._legacy.isEqualWithoutVersion(dep.componentId._legacy) ||\n component.state._consumer.id.isEqualWithoutVersion(dep.componentId._legacy)\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) return { devMissings: [], runtimeMissings: [] };\n // TODO: this is a hack to get it from the legacy, we should take it from the dev files aspect\n // TODO: the reason we don't is that it will make circular dependency between the dep resolver and the dev files aspect\n const devFiles = await DependencyResolver.getDevFiles(component.state._consumer);\n let devMissings: string[] = [];\n let runtimeMissings: string[] = [];\n Object.entries(missingPackagesData).forEach(([fileName, packages]) => {\n if (devFiles.includes(fileName)) {\n devMissings = uniq([...devMissings, ...packages]);\n } else {\n runtimeMissings = uniq([...runtimeMissings, ...packages]);\n }\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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"}
1
+ {"version":3,"names":["_componentIssues","data","require","_componentIdToPackageName","_interopRequireDefault","_dependencyResolver","_lodash","_semver","_pMapSeries","_componentPackageVersion","_dependencies","_policy","_componentManifest","_deduping","_updateDependencyVersion","_workspaceManifest","obj","__esModule","default","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","DEFAULT_CREATE_OPTIONS","filterComponentsFromManifests","createManifestForComponentsWithoutDependencies","dedupe","resolveVersionsFromDependenciesOnly","excludeExtensionsDependencies","WorkspaceManifestFactory","constructor","dependencyResolver","aspectLoader","createFromComponents","name","version","rootPolicy","rootDir","components","options","optsWithDefaults","assign","hasRootComponents","componentDependenciesMap","buildComponentDependenciesMap","dependencyFilterFn","referenceLocalPackages","rootDependencies","toManifest","dependencies","dedupedDependencies","getEmptyDedupedDependencies","dep","dependencyId","dedupeDependencies","dedupePeerDependencies","mapValues","deps","excludeWorkspaceDependencies","componentsManifestsMap","getComponentsManifests","envSelfPeers","getEnvsSelfPeersPolicy","workspaceManifest","WorkspaceManifest","foundEnvs","component","values","envPolicy","peersPolicies","map","policy","selfPolicy","mergedPolicies","VariantPolicy","mergePolices","buildResultsP","packageName","componentIdToPackageName","state","_consumer","depList","getDependencies","includeHidden","additionalDeps","coreAspectIds","getCoreAspectIds","comp","toTypeArray","compIdWithoutVersion","id","split","isExtension","includes","some","c","isEqual","componentId","pkgName","getPackageName","depManifestBeforeFiltering","toDependenciesManifest","filterComponents","filterExtensions","updateDependenciesVersions","depManifest","devMissings","runtimeMissings","getMissingPackages","unresolvedRuntimeMissingRootDeps","pickBy","_version","rootPackageName","devDependencies","peerDependencies","unresolvedDevMissingRootDeps","result","Map","results","Promise","all","currResult","set","dependencyList","getPolicy","updateDependencyVersion","componentsManifests","pMapSeries","has","blankDependencies","get","getVersion","hasVersion","snapToSemver","getComponentEnvPolicy","manifest","ComponentManifest","SemVer","exports","filtered","ComponentDependency","componentsToFilterOut","_dep$getPackageName","depPkgName","existingComponent","find","toString","ignoreVersion","_legacy","isEqualWithoutVersion","versionSpec","startsWith","_component$state$issu","missingPackagesData","issues","getIssue","IssuesClasses","MissingPackagesDependenciesOnFs","devFiles","DependencyResolver","getDevFiles","entries","fileName","packages","uniq","difference"],"sources":["workspace-manifest-factory.ts"],"sourcesContent":["import { AspectLoaderMain } from '@teambit/aspect-loader';\nimport { IssuesClasses } from '@teambit/component-issues';\nimport { Component } from '@teambit/component';\nimport componentIdToPackageName from '@teambit/legacy/dist/utils/bit/component-id-to-package-name';\nimport { DependencyResolver } from '@teambit/legacy/dist/consumer/component/dependencies/dependency-resolver';\nimport { 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(private dependencyResolver: DependencyResolverMain, private aspectLoader: AspectLoaderMain) {}\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 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 rootPolicy = rootPolicy.filter((dep) => dep.dependencyId !== '@teambit/legacy');\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 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 buildResultsP = components.map(async (component) => {\n const packageName = componentIdToPackageName(component.state._consumer);\n let depList = await 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 (\n !comp.isExtension &&\n !coreAspectIds.includes(compIdWithoutVersion) &&\n components.some((c) => c.id.isEqual(comp.componentId))\n ) {\n const pkgName = comp.getPackageName();\n if (pkgName !== '@teambit/harmony') {\n additionalDeps[pkgName] = `workspace:*`;\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 depManifest.dependencies = {\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 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 devDependencies: {},\n peerDependencies: {},\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._legacy and component.state._consumer.id\n // Because during tag operation, the component.id._legacy 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._legacy.isEqualWithoutVersion(dep.componentId._legacy) ||\n component.state._consumer.id.isEqualWithoutVersion(dep.componentId._legacy)\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) return { devMissings: [], runtimeMissings: [] };\n // TODO: this is a hack to get it from the legacy, we should take it from the dev files aspect\n // TODO: the reason we don't is that it will make circular dependency between the dep resolver and the dev files aspect\n const devFiles = await DependencyResolver.getDevFiles(component.state._consumer);\n let devMissings: string[] = [];\n let runtimeMissings: string[] = [];\n Object.entries(missingPackagesData).forEach(([fileName, packages]) => {\n if (devFiles.includes(fileName)) {\n devMissings = uniq([...devMissings, ...packages]);\n } else {\n runtimeMissings = uniq([...runtimeMissings, ...packages]);\n }\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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"}
@@ -1,18 +1,9 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- require("core-js/modules/es.promise.js");
5
3
  Object.defineProperty(exports, "__esModule", {
6
4
  value: true
7
5
  });
8
6
  exports.default = void 0;
9
- function _defineProperty2() {
10
- const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
- _defineProperty2 = function () {
12
- return data;
13
- };
14
- return data;
15
- }
16
7
  function _child_process() {
17
8
  const data = require("@teambit/legacy/dist/utils/child_process");
18
9
  _child_process = function () {
@@ -64,15 +55,15 @@ function _path() {
64
55
  }
65
56
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
66
57
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
67
- /* eslint-disable no-empty */
68
- /* eslint-disable @typescript-eslint/no-unused-vars */
69
- /* eslint-disable @typescript-eslint/no-non-null-assertion */
70
-
58
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
59
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
60
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
61
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } /* eslint-disable no-empty */ /* eslint-disable @typescript-eslint/no-unused-vars */ /* eslint-disable @typescript-eslint/no-non-null-assertion */
71
62
  class PackageManager {
72
63
  constructor(packageManagerName, logger) {
73
64
  this.packageManagerName = packageManagerName;
74
65
  this.logger = logger;
75
- (0, _defineProperty2().default)(this, "emitter", new (_events().EventEmitter)());
66
+ _defineProperty(this, "emitter", new (_events().EventEmitter)());
76
67
  }
77
68
  get name() {
78
69
  return this.packageManagerName;