@teambit/dependency-resolver 1.0.27 → 1.0.30
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.
- package/dependencies/component-dependency/component-dependency-factory.ts +7 -6
- package/dependencies/component-dependency/component-dependency.ts +1 -1
- package/dependencies/dependency-list.ts +19 -3
- package/dist/dependencies/component-dependency/component-dependency-factory.js +6 -5
- package/dist/dependencies/component-dependency/component-dependency-factory.js.map +1 -1
- package/dist/dependencies/component-dependency/component-dependency.js +1 -1
- package/dist/dependencies/component-dependency/component-dependency.js.map +1 -1
- package/dist/dependencies/dependency-list.js +18 -4
- package/dist/dependencies/dependency-list.js.map +1 -1
- package/dist/dependency-installer.js +1 -1
- package/dist/dependency-installer.js.map +1 -1
- package/dist/dependency-resolver.main.runtime.d.ts +8 -9
- package/dist/dependency-resolver.main.runtime.js +60 -33
- package/dist/dependency-resolver.main.runtime.js.map +1 -1
- package/dist/dependency-resolver.main.runtime.spec.js +5 -1
- package/dist/dependency-resolver.main.runtime.spec.js.map +1 -1
- package/dist/manifest/workspace-manifest-factory.js +3 -3
- package/dist/manifest/workspace-manifest-factory.js.map +1 -1
- package/dist/policy/env-policy/env-policy.d.ts +2 -2
- package/dist/policy/env-policy/env-policy.js +23 -3
- package/dist/policy/env-policy/env-policy.js.map +1 -1
- package/dist/policy/variant-policy/index.d.ts +1 -1
- package/dist/policy/variant-policy/index.js +6 -0
- package/dist/policy/variant-policy/index.js.map +1 -1
- package/dist/policy/variant-policy/variant-policy.d.ts +7 -1
- package/dist/policy/variant-policy/variant-policy.js +5 -1
- package/dist/policy/variant-policy/variant-policy.js.map +1 -1
- package/dist/{preview-1697628054879.js → preview-1697841196686.js} +2 -2
- package/manifest/workspace-manifest-factory.ts +4 -4
- package/package.json +20 -20
- package/policy/env-policy/env-policy.ts +22 -4
- package/policy/variant-policy/index.ts +1 -0
- package/policy/variant-policy/variant-policy.ts +11 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_utils","data","require","_lodash","_componentPackageVersion","_dependencies","VariantPolicy","constructor","_policiesEntries","uniqEntries","entries","names","map","e","dependencyId","length","find","depId","lifecycleType","matchedEntry","entry","idEqual","lifecycleEqual","byLifecycleType","filtered","filter","sortByName","sorted","sortBy","hashNameVersion","toHash","value","version","join","sha1","predicate","hiddenOnly","dep","hidden","getResolvedFromEnv","resolveFromEnv","getDepVersion","undefined","getValidSemverDepVersion","snapToSemver","serialize","toConfigObject","res","dependencies","devDependencies","peerDependencies","reduce","acc","keyName","KEY_NAME_BY_LIFECYCLE_TYPE","toVersionManifest","toNameVersionTuple","toLegacyAutoDetectOverrides","force","toLegacyDepsOverrides","used","includes","push","fromConfigObject","configObject","source","runtimeEntries","entriesFromKey","devEntries","peerEntries","concat","fromArray","parse","serializedEntries","getEmpty","mergePolices","policies","allEntries","curr","reverse","exports","uniq","uniqWith","entry1","entry2","obj","LIFECYCLE_TYPE_BY_KEY_NAME","Array","isArray","entriesFromArrayKey","entriesFromObjectKey","Object","createVariantPolicyEntry","compact","configEntries","name","entryValue"],"sources":["variant-policy.ts"],"sourcesContent":["import { sha1 } from '@teambit/legacy/dist/utils';\nimport { compact, sortBy, uniqWith } from 'lodash';\nimport { snapToSemver } from '@teambit/component-package-version';\nimport { DependenciesOverridesData } from '@teambit/legacy/dist/consumer/config/component-overrides';\nimport { Policy, PolicyConfigKeys, PolicyConfigKeysNames, PolicyEntry, SemverVersion } from '../policy';\nimport { DependencyLifecycleType, KEY_NAME_BY_LIFECYCLE_TYPE, LIFECYCLE_TYPE_BY_KEY_NAME } from '../../dependencies';\n\nexport type VariantPolicyConfigObject = Partial<Record<keyof PolicyConfigKeys, VariantPolicyLifecycleConfigObject>>;\n\ntype VariantPolicyLifecycleConfigObject = {\n [dependencyId: string]: VariantPolicyConfigEntryValue;\n};\n\ntype VariantPolicyLifecycleConfigEntryObject = {\n name: string;\n version: string;\n /**\n * hide the dependency from the component's package.json / dependencies list\n */\n hidden?: boolean;\n /**\n * force add to component dependencies even if it's not used by the component.\n */\n force?: boolean;\n};\n\nexport type VariantPolicyConfigEntryValue = VariantPolicyEntryValue | VariantPolicyEntryVersion;\n\n/**\n * Allowed values are valid semver values, git urls, fs path.\n */\nexport type VariantPolicyEntryVersion = SemverVersion;\n\nexport type VariantPolicyEntryValue = {\n version: VariantPolicyEntryVersion;\n resolveFromEnv?: boolean;\n};\n\nexport type DependencySource = 'auto' | 'env' | 'env-own' | 'slots' | 'config';\n\nexport type VariantPolicyEntry = PolicyEntry & {\n value: VariantPolicyEntryValue;\n source?: DependencySource; // determines where the dependency was resolved from, e.g. from its env, or config\n /**\n * hide the dependency from the component's package.json / dependencies list\n */\n hidden?: boolean;\n /**\n * force add to component dependencies even if it's not used by the component.\n */\n force?: boolean;\n};\n\nexport type SerializedVariantPolicyEntry = VariantPolicyEntry;\nexport type SerializedVariantPolicy = SerializedVariantPolicyEntry[];\n\nexport class VariantPolicy implements Policy<VariantPolicyConfigObject> {\n constructor(private _policiesEntries: VariantPolicyEntry[]) {\n this._policiesEntries = uniqEntries(_policiesEntries);\n }\n\n get entries(): VariantPolicyEntry[] {\n return this._policiesEntries;\n }\n\n get names(): string[] {\n return this.entries.map((e) => e.dependencyId);\n }\n\n get length(): number {\n return this.entries.length;\n }\n\n find(depId: string, lifecycleType?: DependencyLifecycleType): VariantPolicyEntry | undefined {\n const matchedEntry = this.entries.find((entry) => {\n const idEqual = entry.dependencyId === depId;\n const lifecycleEqual = lifecycleType ? entry.lifecycleType === lifecycleType : true;\n return idEqual && lifecycleEqual;\n });\n return matchedEntry;\n }\n\n byLifecycleType(lifecycleType: DependencyLifecycleType): VariantPolicy {\n const filtered = this._policiesEntries.filter((entry) => entry.lifecycleType === lifecycleType);\n return new VariantPolicy(filtered);\n }\n\n sortByName(): VariantPolicy {\n const sorted = sortBy(this.entries, ['dependencyId']);\n return new VariantPolicy(sorted);\n }\n\n /**\n * Return a hash of all the peers names and their version\n * This useful when you want to compare 2 envs\n */\n hashNameVersion(): string {\n const sorted = this.sortByName();\n const toHash = sorted.entries.map(({ dependencyId, value }) => `${dependencyId}::${value.version}`).join(':::');\n return sha1(toHash);\n }\n\n filter(predicate: (dep: VariantPolicyEntry, index?: number) => boolean): VariantPolicy {\n const filtered = this.entries.filter(predicate);\n return new VariantPolicy(filtered);\n }\n\n hiddenOnly(): VariantPolicy {\n return this.filter((dep) => !!dep.hidden);\n }\n\n /**\n * Filter only deps which should be resolved from the env\n */\n getResolvedFromEnv() {\n return this.filter((dep) => {\n return !!dep.value.resolveFromEnv;\n });\n }\n\n getDepVersion(depId: string, lifecycleType?: DependencyLifecycleType): VariantPolicyEntryVersion | undefined {\n const entry = this.find(depId, lifecycleType);\n if (!entry) {\n return undefined;\n }\n return entry.value.version;\n }\n\n getValidSemverDepVersion(\n depId: string,\n lifecycleType?: DependencyLifecycleType\n ): VariantPolicyEntryVersion | undefined {\n const version = this.getDepVersion(depId, lifecycleType);\n if (!version) return undefined;\n return snapToSemver(version);\n }\n\n serialize(): SerializedVariantPolicy {\n return this.entries;\n }\n\n toConfigObject(): VariantPolicyConfigObject {\n const res: VariantPolicyConfigObject = {\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n };\n this._policiesEntries.reduce((acc, entry) => {\n const keyName = KEY_NAME_BY_LIFECYCLE_TYPE[entry.lifecycleType];\n const value = entry.value.resolveFromEnv ? entry.value : entry.value.version;\n acc[keyName][entry.dependencyId] = value;\n return acc;\n }, res);\n return res;\n }\n\n /**\n * Create a manifest object in the form of a package.json entries\n * a.k.a { [depId]: version }\n * @returns\n */\n toVersionManifest(): { [name: string]: string } {\n return this.entries.reduce((acc, entry) => {\n acc[entry.dependencyId] = entry.value.version;\n return acc;\n }, {});\n }\n\n toNameVersionTuple(): [string, string][] {\n return this.entries.map((entry) => {\n return [entry.dependencyId, entry.value.version];\n });\n }\n\n /**\n * This used in in the legacy to apply env component policy on stuff that were auto detected\n * it will take used only entries (which means entries that component are really uses)\n * and in case of hidden deps it will mark them as removed using the \"-\" value to remove them from the component\n * @returns\n */\n toLegacyAutoDetectOverrides(): DependenciesOverridesData {\n const res: DependenciesOverridesData = {\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n };\n this._policiesEntries.reduce((acc, entry) => {\n if (entry.force) return acc;\n const keyName = KEY_NAME_BY_LIFECYCLE_TYPE[entry.lifecycleType];\n acc[keyName][entry.dependencyId] = entry.value.version;\n return acc;\n }, res);\n return res;\n }\n\n toLegacyDepsOverrides(): DependenciesOverridesData {\n const res: DependenciesOverridesData = {\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n };\n const used: string[] = [];\n this._policiesEntries.reduce((acc, entry) => {\n // entries that not marked with force, will be handled by the legacy deps resolver and will not be added to the overrides\n if (!entry.force) return acc;\n const keyName = KEY_NAME_BY_LIFECYCLE_TYPE[entry.lifecycleType];\n // We don't want the same entry to appear many times in different lifecycle types\n // this is important for example when a peer is configured by an env (on itself) which will make it a runtime dep of the env\n // but the env of the env is configure the same dep as peer in general (like with react)\n if (!used.includes(entry.dependencyId) || entry.value.version === '-') {\n acc[keyName][entry.dependencyId] = entry.value.version;\n if (entry.value.version !== '-') {\n used.push(entry.dependencyId);\n }\n }\n return acc;\n }, res);\n return res;\n }\n\n static fromConfigObject(configObject, source?: DependencySource, hidden?: boolean, force?: boolean): VariantPolicy {\n const runtimeEntries = entriesFromKey(configObject, 'dependencies', source, hidden, force);\n const devEntries = entriesFromKey(configObject, 'devDependencies', source, hidden, force);\n const peerEntries = entriesFromKey(configObject, 'peerDependencies', source, hidden, force);\n const entries = runtimeEntries.concat(devEntries).concat(peerEntries);\n return new VariantPolicy(entries);\n }\n\n static fromArray(entries: VariantPolicyEntry[]): VariantPolicy {\n return new VariantPolicy(entries);\n }\n\n static parse(serializedEntries: SerializedVariantPolicy): VariantPolicy {\n return new VariantPolicy(serializedEntries);\n }\n\n static getEmpty(): VariantPolicy {\n return new VariantPolicy([]);\n }\n\n static mergePolices(policies: VariantPolicy[]): VariantPolicy {\n let allEntries: VariantPolicyEntry[] = [];\n allEntries = policies.reduce((acc, curr) => {\n return acc.concat(curr.entries);\n }, allEntries);\n // We reverse it to make sure the latest policy will be stronger in case of conflict\n allEntries = allEntries.reverse();\n return new VariantPolicy(allEntries);\n }\n}\n\nfunction uniqEntries(entries: Array<VariantPolicyEntry>): Array<VariantPolicyEntry> {\n const uniq = uniqWith(entries, (entry1: VariantPolicyEntry, entry2: VariantPolicyEntry) => {\n return entry1.dependencyId === entry2.dependencyId && entry1.lifecycleType === entry2.lifecycleType;\n });\n return uniq;\n}\n\nfunction entriesFromKey(\n configObject: VariantPolicyConfigObject,\n keyName: PolicyConfigKeysNames,\n source?: DependencySource,\n hidden?: boolean,\n force?: boolean\n): VariantPolicyEntry[] {\n const obj = configObject[keyName];\n if (!obj) {\n return [];\n }\n const lifecycleType = LIFECYCLE_TYPE_BY_KEY_NAME[keyName];\n if (Array.isArray(obj)) {\n return entriesFromArrayKey(obj, lifecycleType, source, hidden, force);\n }\n return entriesFromObjectKey(obj, lifecycleType, source, hidden, force);\n}\n\nfunction entriesFromObjectKey(\n obj: Record<string, VariantPolicyConfigEntryValue> | undefined,\n lifecycleType: DependencyLifecycleType,\n source?: DependencySource,\n hidden?: boolean,\n force = true\n): VariantPolicyEntry[] {\n if (!obj) {\n return [];\n }\n const entries = Object.entries(obj).map(([depId, value]: [string, VariantPolicyConfigEntryValue]) => {\n if (value) {\n return createVariantPolicyEntry(depId, value, lifecycleType, source, hidden, force);\n }\n return undefined;\n });\n return compact(entries);\n}\n\nfunction entriesFromArrayKey(\n configEntries: Array<VariantPolicyLifecycleConfigEntryObject> | undefined,\n lifecycleType: DependencyLifecycleType,\n source: DependencySource = 'config',\n hidden?: boolean,\n force?: boolean\n): VariantPolicyEntry[] {\n if (!configEntries) {\n return [];\n }\n const entries = configEntries.map((entry) => {\n return createVariantPolicyEntry(\n entry.name,\n entry.version,\n lifecycleType,\n source,\n hidden ?? !!entry.hidden,\n // allow override the entry's force value (used for the env itself)\n force ?? !!entry.force\n );\n });\n return entries;\n}\n\nexport function createVariantPolicyEntry(\n depId: string,\n value: VariantPolicyConfigEntryValue,\n lifecycleType: DependencyLifecycleType,\n source?: DependencySource,\n hidden?: boolean,\n force?: boolean\n): VariantPolicyEntry {\n const version = typeof value === 'string' ? value : value.version;\n const resolveFromEnv = typeof value === 'string' ? false : value.resolveFromEnv;\n\n const entryValue: VariantPolicyEntryValue = {\n version,\n resolveFromEnv,\n };\n const entry: VariantPolicyEntry = {\n dependencyId: depId,\n value: entryValue,\n lifecycleType,\n source,\n hidden,\n force,\n };\n return entry;\n}\n"],"mappings":";;;;;;;AAAA,SAAAA,OAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,MAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,QAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,OAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,yBAAA;EAAA,MAAAH,IAAA,GAAAC,OAAA;EAAAE,wBAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGA,SAAAI,cAAA;EAAA,MAAAJ,IAAA,GAAAC,OAAA;EAAAG,aAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAuBA;AACA;AACA;;AA0BO,MAAMK,aAAa,CAA8C;EACtEC,WAAWA,CAASC,gBAAsC,EAAE;IAAA,KAAxCA,gBAAsC,GAAtCA,gBAAsC;IACxD,IAAI,CAACA,gBAAgB,GAAGC,WAAW,CAACD,gBAAgB,CAAC;EACvD;EAEA,IAAIE,OAAOA,CAAA,EAAyB;IAClC,OAAO,IAAI,CAACF,gBAAgB;EAC9B;EAEA,IAAIG,KAAKA,CAAA,EAAa;IACpB,OAAO,IAAI,CAACD,OAAO,CAACE,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAACC,YAAY,CAAC;EAChD;EAEA,IAAIC,MAAMA,CAAA,EAAW;IACnB,OAAO,IAAI,CAACL,OAAO,CAACK,MAAM;EAC5B;EAEAC,IAAIA,CAACC,KAAa,EAAEC,aAAuC,EAAkC;IAC3F,MAAMC,YAAY,GAAG,IAAI,CAACT,OAAO,CAACM,IAAI,CAAEI,KAAK,IAAK;MAChD,MAAMC,OAAO,GAAGD,KAAK,CAACN,YAAY,KAAKG,KAAK;MAC5C,MAAMK,cAAc,GAAGJ,aAAa,GAAGE,KAAK,CAACF,aAAa,KAAKA,aAAa,GAAG,IAAI;MACnF,OAAOG,OAAO,IAAIC,cAAc;IAClC,CAAC,CAAC;IACF,OAAOH,YAAY;EACrB;EAEAI,eAAeA,CAACL,aAAsC,EAAiB;IACrE,MAAMM,QAAQ,GAAG,IAAI,CAAChB,gBAAgB,CAACiB,MAAM,CAAEL,KAAK,IAAKA,KAAK,CAACF,aAAa,KAAKA,aAAa,CAAC;IAC/F,OAAO,IAAIZ,aAAa,CAACkB,QAAQ,CAAC;EACpC;EAEAE,UAAUA,CAAA,EAAkB;IAC1B,MAAMC,MAAM,GAAG,IAAAC,gBAAM,EAAC,IAAI,CAAClB,OAAO,EAAE,CAAC,cAAc,CAAC,CAAC;IACrD,OAAO,IAAIJ,aAAa,CAACqB,MAAM,CAAC;EAClC;;EAEA;AACF;AACA;AACA;EACEE,eAAeA,CAAA,EAAW;IACxB,MAAMF,MAAM,GAAG,IAAI,CAACD,UAAU,CAAC,CAAC;IAChC,MAAMI,MAAM,GAAGH,MAAM,CAACjB,OAAO,CAACE,GAAG,CAAC,CAAC;MAAEE,YAAY;MAAEiB;IAAM,CAAC,KAAM,GAAEjB,YAAa,KAAIiB,KAAK,CAACC,OAAQ,EAAC,CAAC,CAACC,IAAI,CAAC,KAAK,CAAC;IAC/G,OAAO,IAAAC,aAAI,EAACJ,MAAM,CAAC;EACrB;EAEAL,MAAMA,CAACU,SAA+D,EAAiB;IACrF,MAAMX,QAAQ,GAAG,IAAI,CAACd,OAAO,CAACe,MAAM,CAACU,SAAS,CAAC;IAC/C,OAAO,IAAI7B,aAAa,CAACkB,QAAQ,CAAC;EACpC;EAEAY,UAAUA,CAAA,EAAkB;IAC1B,OAAO,IAAI,CAACX,MAAM,CAAEY,GAAG,IAAK,CAAC,CAACA,GAAG,CAACC,MAAM,CAAC;EAC3C;;EAEA;AACF;AACA;EACEC,kBAAkBA,CAAA,EAAG;IACnB,OAAO,IAAI,CAACd,MAAM,CAAEY,GAAG,IAAK;MAC1B,OAAO,CAAC,CAACA,GAAG,CAACN,KAAK,CAACS,cAAc;IACnC,CAAC,CAAC;EACJ;EAEAC,aAAaA,CAACxB,KAAa,EAAEC,aAAuC,EAAyC;IAC3G,MAAME,KAAK,GAAG,IAAI,CAACJ,IAAI,CAACC,KAAK,EAAEC,aAAa,CAAC;IAC7C,IAAI,CAACE,KAAK,EAAE;MACV,OAAOsB,SAAS;IAClB;IACA,OAAOtB,KAAK,CAACW,KAAK,CAACC,OAAO;EAC5B;EAEAW,wBAAwBA,CACtB1B,KAAa,EACbC,aAAuC,EACA;IACvC,MAAMc,OAAO,GAAG,IAAI,CAACS,aAAa,CAACxB,KAAK,EAAEC,aAAa,CAAC;IACxD,IAAI,CAACc,OAAO,EAAE,OAAOU,SAAS;IAC9B,OAAO,IAAAE,uCAAY,EAACZ,OAAO,CAAC;EAC9B;EAEAa,SAASA,CAAA,EAA4B;IACnC,OAAO,IAAI,CAACnC,OAAO;EACrB;EAEAoC,cAAcA,CAAA,EAA8B;IAC1C,MAAMC,GAA8B,GAAG;MACrCC,YAAY,EAAE,CAAC,CAAC;MAChBC,eAAe,EAAE,CAAC,CAAC;MACnBC,gBAAgB,EAAE,CAAC;IACrB,CAAC;IACD,IAAI,CAAC1C,gBAAgB,CAAC2C,MAAM,CAAC,CAACC,GAAG,EAAEhC,KAAK,KAAK;MAC3C,MAAMiC,OAAO,GAAGC,0CAA0B,CAAClC,KAAK,CAACF,aAAa,CAAC;MAC/D,MAAMa,KAAK,GAAGX,KAAK,CAACW,KAAK,CAACS,cAAc,GAAGpB,KAAK,CAACW,KAAK,GAAGX,KAAK,CAACW,KAAK,CAACC,OAAO;MAC5EoB,GAAG,CAACC,OAAO,CAAC,CAACjC,KAAK,CAACN,YAAY,CAAC,GAAGiB,KAAK;MACxC,OAAOqB,GAAG;IACZ,CAAC,EAAEL,GAAG,CAAC;IACP,OAAOA,GAAG;EACZ;;EAEA;AACF;AACA;AACA;AACA;EACEQ,iBAAiBA,CAAA,EAA+B;IAC9C,OAAO,IAAI,CAAC7C,OAAO,CAACyC,MAAM,CAAC,CAACC,GAAG,EAAEhC,KAAK,KAAK;MACzCgC,GAAG,CAAChC,KAAK,CAACN,YAAY,CAAC,GAAGM,KAAK,CAACW,KAAK,CAACC,OAAO;MAC7C,OAAOoB,GAAG;IACZ,CAAC,EAAE,CAAC,CAAC,CAAC;EACR;EAEAI,kBAAkBA,CAAA,EAAuB;IACvC,OAAO,IAAI,CAAC9C,OAAO,CAACE,GAAG,CAAEQ,KAAK,IAAK;MACjC,OAAO,CAACA,KAAK,CAACN,YAAY,EAAEM,KAAK,CAACW,KAAK,CAACC,OAAO,CAAC;IAClD,CAAC,CAAC;EACJ;;EAEA;AACF;AACA;AACA;AACA;AACA;EACEyB,2BAA2BA,CAAA,EAA8B;IACvD,MAAMV,GAA8B,GAAG;MACrCC,YAAY,EAAE,CAAC,CAAC;MAChBC,eAAe,EAAE,CAAC,CAAC;MACnBC,gBAAgB,EAAE,CAAC;IACrB,CAAC;IACD,IAAI,CAAC1C,gBAAgB,CAAC2C,MAAM,CAAC,CAACC,GAAG,EAAEhC,KAAK,KAAK;MAC3C,IAAIA,KAAK,CAACsC,KAAK,EAAE,OAAON,GAAG;MAC3B,MAAMC,OAAO,GAAGC,0CAA0B,CAAClC,KAAK,CAACF,aAAa,CAAC;MAC/DkC,GAAG,CAACC,OAAO,CAAC,CAACjC,KAAK,CAACN,YAAY,CAAC,GAAGM,KAAK,CAACW,KAAK,CAACC,OAAO;MACtD,OAAOoB,GAAG;IACZ,CAAC,EAAEL,GAAG,CAAC;IACP,OAAOA,GAAG;EACZ;EAEAY,qBAAqBA,CAAA,EAA8B;IACjD,MAAMZ,GAA8B,GAAG;MACrCC,YAAY,EAAE,CAAC,CAAC;MAChBC,eAAe,EAAE,CAAC,CAAC;MACnBC,gBAAgB,EAAE,CAAC;IACrB,CAAC;IACD,MAAMU,IAAc,GAAG,EAAE;IACzB,IAAI,CAACpD,gBAAgB,CAAC2C,MAAM,CAAC,CAACC,GAAG,EAAEhC,KAAK,KAAK;MAC3C;MACA,IAAI,CAACA,KAAK,CAACsC,KAAK,EAAE,OAAON,GAAG;MAC5B,MAAMC,OAAO,GAAGC,0CAA0B,CAAClC,KAAK,CAACF,aAAa,CAAC;MAC/D;MACA;MACA;MACA,IAAI,CAAC0C,IAAI,CAACC,QAAQ,CAACzC,KAAK,CAACN,YAAY,CAAC,IAAIM,KAAK,CAACW,KAAK,CAACC,OAAO,KAAK,GAAG,EAAE;QACrEoB,GAAG,CAACC,OAAO,CAAC,CAACjC,KAAK,CAACN,YAAY,CAAC,GAAGM,KAAK,CAACW,KAAK,CAACC,OAAO;QACtD,IAAIZ,KAAK,CAACW,KAAK,CAACC,OAAO,KAAK,GAAG,EAAE;UAC/B4B,IAAI,CAACE,IAAI,CAAC1C,KAAK,CAACN,YAAY,CAAC;QAC/B;MACF;MACA,OAAOsC,GAAG;IACZ,CAAC,EAAEL,GAAG,CAAC;IACP,OAAOA,GAAG;EACZ;EAEA,OAAOgB,gBAAgBA,CAACC,YAAY,EAAEC,MAAyB,EAAE3B,MAAgB,EAAEoB,KAAe,EAAiB;IACjH,MAAMQ,cAAc,GAAGC,cAAc,CAACH,YAAY,EAAE,cAAc,EAAEC,MAAM,EAAE3B,MAAM,EAAEoB,KAAK,CAAC;IAC1F,MAAMU,UAAU,GAAGD,cAAc,CAACH,YAAY,EAAE,iBAAiB,EAAEC,MAAM,EAAE3B,MAAM,EAAEoB,KAAK,CAAC;IACzF,MAAMW,WAAW,GAAGF,cAAc,CAACH,YAAY,EAAE,kBAAkB,EAAEC,MAAM,EAAE3B,MAAM,EAAEoB,KAAK,CAAC;IAC3F,MAAMhD,OAAO,GAAGwD,cAAc,CAACI,MAAM,CAACF,UAAU,CAAC,CAACE,MAAM,CAACD,WAAW,CAAC;IACrE,OAAO,IAAI/D,aAAa,CAACI,OAAO,CAAC;EACnC;EAEA,OAAO6D,SAASA,CAAC7D,OAA6B,EAAiB;IAC7D,OAAO,IAAIJ,aAAa,CAACI,OAAO,CAAC;EACnC;EAEA,OAAO8D,KAAKA,CAACC,iBAA0C,EAAiB;IACtE,OAAO,IAAInE,aAAa,CAACmE,iBAAiB,CAAC;EAC7C;EAEA,OAAOC,QAAQA,CAAA,EAAkB;IAC/B,OAAO,IAAIpE,aAAa,CAAC,EAAE,CAAC;EAC9B;EAEA,OAAOqE,YAAYA,CAACC,QAAyB,EAAiB;IAC5D,IAAIC,UAAgC,GAAG,EAAE;IACzCA,UAAU,GAAGD,QAAQ,CAACzB,MAAM,CAAC,CAACC,GAAG,EAAE0B,IAAI,KAAK;MAC1C,OAAO1B,GAAG,CAACkB,MAAM,CAACQ,IAAI,CAACpE,OAAO,CAAC;IACjC,CAAC,EAAEmE,UAAU,CAAC;IACd;IACAA,UAAU,GAAGA,UAAU,CAACE,OAAO,CAAC,CAAC;IACjC,OAAO,IAAIzE,aAAa,CAACuE,UAAU,CAAC;EACtC;AACF;AAACG,OAAA,CAAA1E,aAAA,GAAAA,aAAA;AAED,SAASG,WAAWA,CAACC,OAAkC,EAA6B;EAClF,MAAMuE,IAAI,GAAG,IAAAC,kBAAQ,EAACxE,OAAO,EAAE,CAACyE,MAA0B,EAAEC,MAA0B,KAAK;IACzF,OAAOD,MAAM,CAACrE,YAAY,KAAKsE,MAAM,CAACtE,YAAY,IAAIqE,MAAM,CAACjE,aAAa,KAAKkE,MAAM,CAAClE,aAAa;EACrG,CAAC,CAAC;EACF,OAAO+D,IAAI;AACb;AAEA,SAASd,cAAcA,CACrBH,YAAuC,EACvCX,OAA8B,EAC9BY,MAAyB,EACzB3B,MAAgB,EAChBoB,KAAe,EACO;EACtB,MAAM2B,GAAG,GAAGrB,YAAY,CAACX,OAAO,CAAC;EACjC,IAAI,CAACgC,GAAG,EAAE;IACR,OAAO,EAAE;EACX;EACA,MAAMnE,aAAa,GAAGoE,0CAA0B,CAACjC,OAAO,CAAC;EACzD,IAAIkC,KAAK,CAACC,OAAO,CAACH,GAAG,CAAC,EAAE;IACtB,OAAOI,mBAAmB,CAACJ,GAAG,EAAEnE,aAAa,EAAE+C,MAAM,EAAE3B,MAAM,EAAEoB,KAAK,CAAC;EACvE;EACA,OAAOgC,oBAAoB,CAACL,GAAG,EAAEnE,aAAa,EAAE+C,MAAM,EAAE3B,MAAM,EAAEoB,KAAK,CAAC;AACxE;AAEA,SAASgC,oBAAoBA,CAC3BL,GAA8D,EAC9DnE,aAAsC,EACtC+C,MAAyB,EACzB3B,MAAgB,EAChBoB,KAAK,GAAG,IAAI,EACU;EACtB,IAAI,CAAC2B,GAAG,EAAE;IACR,OAAO,EAAE;EACX;EACA,MAAM3E,OAAO,GAAGiF,MAAM,CAACjF,OAAO,CAAC2E,GAAG,CAAC,CAACzE,GAAG,CAAC,CAAC,CAACK,KAAK,EAAEc,KAAK,CAA0C,KAAK;IACnG,IAAIA,KAAK,EAAE;MACT,OAAO6D,wBAAwB,CAAC3E,KAAK,EAAEc,KAAK,EAAEb,aAAa,EAAE+C,MAAM,EAAE3B,MAAM,EAAEoB,KAAK,CAAC;IACrF;IACA,OAAOhB,SAAS;EAClB,CAAC,CAAC;EACF,OAAO,IAAAmD,iBAAO,EAACnF,OAAO,CAAC;AACzB;AAEA,SAAS+E,mBAAmBA,CAC1BK,aAAyE,EACzE5E,aAAsC,EACtC+C,MAAwB,GAAG,QAAQ,EACnC3B,MAAgB,EAChBoB,KAAe,EACO;EACtB,IAAI,CAACoC,aAAa,EAAE;IAClB,OAAO,EAAE;EACX;EACA,MAAMpF,OAAO,GAAGoF,aAAa,CAAClF,GAAG,CAAEQ,KAAK,IAAK;IAC3C,OAAOwE,wBAAwB,CAC7BxE,KAAK,CAAC2E,IAAI,EACV3E,KAAK,CAACY,OAAO,EACbd,aAAa,EACb+C,MAAM,EACN3B,MAAM,IAAI,CAAC,CAAClB,KAAK,CAACkB,MAAM;IACxB;IACAoB,KAAK,IAAI,CAAC,CAACtC,KAAK,CAACsC,KACnB,CAAC;EACH,CAAC,CAAC;EACF,OAAOhD,OAAO;AAChB;AAEO,SAASkF,wBAAwBA,CACtC3E,KAAa,EACbc,KAAoC,EACpCb,aAAsC,EACtC+C,MAAyB,EACzB3B,MAAgB,EAChBoB,KAAe,EACK;EACpB,MAAM1B,OAAO,GAAG,OAAOD,KAAK,KAAK,QAAQ,GAAGA,KAAK,GAAGA,KAAK,CAACC,OAAO;EACjE,MAAMQ,cAAc,GAAG,OAAOT,KAAK,KAAK,QAAQ,GAAG,KAAK,GAAGA,KAAK,CAACS,cAAc;EAE/E,MAAMwD,UAAmC,GAAG;IAC1ChE,OAAO;IACPQ;EACF,CAAC;EACD,MAAMpB,KAAyB,GAAG;IAChCN,YAAY,EAAEG,KAAK;IACnBc,KAAK,EAAEiE,UAAU;IACjB9E,aAAa;IACb+C,MAAM;IACN3B,MAAM;IACNoB;EACF,CAAC;EACD,OAAOtC,KAAK;AACd"}
|
|
1
|
+
{"version":3,"names":["_utils","data","require","_lodash","_componentPackageVersion","_dependencies","VariantPolicy","constructor","_policiesEntries","uniqEntries","entries","names","map","e","dependencyId","length","find","depId","lifecycleType","matchedEntry","entry","idEqual","lifecycleEqual","byLifecycleType","filtered","filter","sortByName","sorted","sortBy","hashNameVersion","toHash","value","version","join","sha1","predicate","hiddenOnly","dep","hidden","getResolvedFromEnv","resolveFromEnv","getDepVersion","undefined","getValidSemverDepVersion","snapToSemver","serialize","toConfigObject","res","dependencies","devDependencies","peerDependencies","reduce","acc","keyName","KEY_NAME_BY_LIFECYCLE_TYPE","toVersionManifest","toNameVersionTuple","toLegacyAutoDetectOverrides","force","toLegacyDepsOverrides","used","includes","push","fromConfigObject","configObject","source","runtimeEntries","entriesFromKey","devEntries","peerEntries","concat","fromArray","parse","serializedEntries","getEmpty","mergePolices","policies","allEntries","curr","reverse","exports","uniq","uniqWith","entry1","entry2","obj","LIFECYCLE_TYPE_BY_KEY_NAME","Array","isArray","entriesFromArrayKey","entriesFromObjectKey","Object","createVariantPolicyEntry","compact","configEntries","name","entryValue"],"sources":["variant-policy.ts"],"sourcesContent":["import { sha1 } from '@teambit/legacy/dist/utils';\nimport { compact, sortBy, uniqWith } from 'lodash';\nimport { snapToSemver } from '@teambit/component-package-version';\nimport { DependenciesOverridesData } from '@teambit/legacy/dist/consumer/config/component-overrides';\nimport { Policy, PolicyConfigKeys, PolicyConfigKeysNames, PolicyEntry, SemverVersion } from '../policy';\nimport { DependencyLifecycleType, KEY_NAME_BY_LIFECYCLE_TYPE, LIFECYCLE_TYPE_BY_KEY_NAME } from '../../dependencies';\n\nexport type VariantPolicyConfigObject = Partial<Record<keyof PolicyConfigKeys, VariantPolicyLifecycleConfigObject>>;\n\ntype VariantPolicyLifecycleConfigObject = {\n [dependencyId: string]: VariantPolicyConfigEntryValue;\n};\n\ntype VariantPolicyLifecycleConfigEntryObject = {\n name: string;\n version: string;\n /**\n * hide the dependency from the component's package.json / dependencies list\n */\n hidden?: boolean;\n /**\n * force add to component dependencies even if it's not used by the component.\n */\n force?: boolean;\n};\n\nexport type VariantPolicyConfigEntryValue = VariantPolicyEntryValue | VariantPolicyEntryVersion;\n\n/**\n * Allowed values are valid semver values, git urls, fs path.\n */\nexport type VariantPolicyEntryVersion = SemverVersion;\n\nexport type VariantPolicyEntryValue = {\n version: VariantPolicyEntryVersion;\n resolveFromEnv?: boolean;\n};\n\nexport type DependencySource = 'auto' | 'env' | 'env-own' | 'slots' | 'config';\n\nexport type VariantPolicyEntry = PolicyEntry & {\n value: VariantPolicyEntryValue;\n source?: DependencySource; // determines where the dependency was resolved from, e.g. from its env, or config\n /**\n * hide the dependency from the component's package.json / dependencies list\n */\n hidden?: boolean;\n /**\n * force add to component dependencies even if it's not used by the component.\n */\n force?: boolean;\n};\n\nexport type SerializedVariantPolicyEntry = VariantPolicyEntry;\nexport type SerializedVariantPolicy = SerializedVariantPolicyEntry[];\n\nexport interface VariantPolicyFromConfigObjectOptions {\n includeLegacyPeersInSelfPolicy?: boolean;\n source?: DependencySource;\n hidden?: boolean;\n force?: boolean;\n}\n\nexport class VariantPolicy implements Policy<VariantPolicyConfigObject> {\n constructor(private _policiesEntries: VariantPolicyEntry[]) {\n this._policiesEntries = uniqEntries(_policiesEntries);\n }\n\n get entries(): VariantPolicyEntry[] {\n return this._policiesEntries;\n }\n\n get names(): string[] {\n return this.entries.map((e) => e.dependencyId);\n }\n\n get length(): number {\n return this.entries.length;\n }\n\n find(depId: string, lifecycleType?: DependencyLifecycleType): VariantPolicyEntry | undefined {\n const matchedEntry = this.entries.find((entry) => {\n const idEqual = entry.dependencyId === depId;\n const lifecycleEqual = lifecycleType ? entry.lifecycleType === lifecycleType : true;\n return idEqual && lifecycleEqual;\n });\n return matchedEntry;\n }\n\n byLifecycleType(lifecycleType: DependencyLifecycleType): VariantPolicy {\n const filtered = this._policiesEntries.filter((entry) => entry.lifecycleType === lifecycleType);\n return new VariantPolicy(filtered);\n }\n\n sortByName(): VariantPolicy {\n const sorted = sortBy(this.entries, ['dependencyId']);\n return new VariantPolicy(sorted);\n }\n\n /**\n * Return a hash of all the peers names and their version\n * This useful when you want to compare 2 envs\n */\n hashNameVersion(): string {\n const sorted = this.sortByName();\n const toHash = sorted.entries.map(({ dependencyId, value }) => `${dependencyId}::${value.version}`).join(':::');\n return sha1(toHash);\n }\n\n filter(predicate: (dep: VariantPolicyEntry, index?: number) => boolean): VariantPolicy {\n const filtered = this.entries.filter(predicate);\n return new VariantPolicy(filtered);\n }\n\n hiddenOnly(): VariantPolicy {\n return this.filter((dep) => !!dep.hidden);\n }\n\n /**\n * Filter only deps which should be resolved from the env\n */\n getResolvedFromEnv() {\n return this.filter((dep) => {\n return !!dep.value.resolveFromEnv;\n });\n }\n\n getDepVersion(depId: string, lifecycleType?: DependencyLifecycleType): VariantPolicyEntryVersion | undefined {\n const entry = this.find(depId, lifecycleType);\n if (!entry) {\n return undefined;\n }\n return entry.value.version;\n }\n\n getValidSemverDepVersion(\n depId: string,\n lifecycleType?: DependencyLifecycleType\n ): VariantPolicyEntryVersion | undefined {\n const version = this.getDepVersion(depId, lifecycleType);\n if (!version) return undefined;\n return snapToSemver(version);\n }\n\n serialize(): SerializedVariantPolicy {\n return this.entries;\n }\n\n toConfigObject(): VariantPolicyConfigObject {\n const res: VariantPolicyConfigObject = {\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n };\n this._policiesEntries.reduce((acc, entry) => {\n const keyName = KEY_NAME_BY_LIFECYCLE_TYPE[entry.lifecycleType];\n const value = entry.value.resolveFromEnv ? entry.value : entry.value.version;\n acc[keyName][entry.dependencyId] = value;\n return acc;\n }, res);\n return res;\n }\n\n /**\n * Create a manifest object in the form of a package.json entries\n * a.k.a { [depId]: version }\n * @returns\n */\n toVersionManifest(): { [name: string]: string } {\n return this.entries.reduce((acc, entry) => {\n acc[entry.dependencyId] = entry.value.version;\n return acc;\n }, {});\n }\n\n toNameVersionTuple(): [string, string][] {\n return this.entries.map((entry) => {\n return [entry.dependencyId, entry.value.version];\n });\n }\n\n /**\n * This used in in the legacy to apply env component policy on stuff that were auto detected\n * it will take used only entries (which means entries that component are really uses)\n * and in case of hidden deps it will mark them as removed using the \"-\" value to remove them from the component\n * @returns\n */\n toLegacyAutoDetectOverrides(): DependenciesOverridesData {\n const res: DependenciesOverridesData = {\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n };\n this._policiesEntries.reduce((acc, entry) => {\n if (entry.force) return acc;\n const keyName = KEY_NAME_BY_LIFECYCLE_TYPE[entry.lifecycleType];\n acc[keyName][entry.dependencyId] = entry.value.version;\n return acc;\n }, res);\n return res;\n }\n\n toLegacyDepsOverrides(): DependenciesOverridesData {\n const res: DependenciesOverridesData = {\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n };\n const used: string[] = [];\n this._policiesEntries.reduce((acc, entry) => {\n // entries that not marked with force, will be handled by the legacy deps resolver and will not be added to the overrides\n if (!entry.force) return acc;\n const keyName = KEY_NAME_BY_LIFECYCLE_TYPE[entry.lifecycleType];\n // We don't want the same entry to appear many times in different lifecycle types\n // this is important for example when a peer is configured by an env (on itself) which will make it a runtime dep of the env\n // but the env of the env is configure the same dep as peer in general (like with react)\n if (!used.includes(entry.dependencyId) || entry.value.version === '-') {\n acc[keyName][entry.dependencyId] = entry.value.version;\n if (entry.value.version !== '-') {\n used.push(entry.dependencyId);\n }\n }\n return acc;\n }, res);\n return res;\n }\n\n static fromConfigObject(\n configObject,\n { source, hidden, force }: VariantPolicyFromConfigObjectOptions = {}\n ): VariantPolicy {\n const runtimeEntries = entriesFromKey(configObject, 'dependencies', source, hidden, force);\n const devEntries = entriesFromKey(configObject, 'devDependencies', source, hidden, force);\n const peerEntries = entriesFromKey(configObject, 'peerDependencies', source, hidden, force);\n const entries = runtimeEntries.concat(devEntries).concat(peerEntries);\n return new VariantPolicy(entries);\n }\n\n static fromArray(entries: VariantPolicyEntry[]): VariantPolicy {\n return new VariantPolicy(entries);\n }\n\n static parse(serializedEntries: SerializedVariantPolicy): VariantPolicy {\n return new VariantPolicy(serializedEntries);\n }\n\n static getEmpty(): VariantPolicy {\n return new VariantPolicy([]);\n }\n\n static mergePolices(policies: VariantPolicy[]): VariantPolicy {\n let allEntries: VariantPolicyEntry[] = [];\n allEntries = policies.reduce((acc, curr) => {\n return acc.concat(curr.entries);\n }, allEntries);\n // We reverse it to make sure the latest policy will be stronger in case of conflict\n allEntries = allEntries.reverse();\n return new VariantPolicy(allEntries);\n }\n}\n\nfunction uniqEntries(entries: Array<VariantPolicyEntry>): Array<VariantPolicyEntry> {\n const uniq = uniqWith(entries, (entry1: VariantPolicyEntry, entry2: VariantPolicyEntry) => {\n return entry1.dependencyId === entry2.dependencyId && entry1.lifecycleType === entry2.lifecycleType;\n });\n return uniq;\n}\n\nfunction entriesFromKey(\n configObject: VariantPolicyConfigObject,\n keyName: PolicyConfigKeysNames,\n source?: DependencySource,\n hidden?: boolean,\n force?: boolean\n): VariantPolicyEntry[] {\n const obj = configObject[keyName];\n if (!obj) {\n return [];\n }\n const lifecycleType = LIFECYCLE_TYPE_BY_KEY_NAME[keyName];\n if (Array.isArray(obj)) {\n return entriesFromArrayKey(obj, lifecycleType, source, hidden, force);\n }\n return entriesFromObjectKey(obj, lifecycleType, source, hidden, force);\n}\n\nfunction entriesFromObjectKey(\n obj: Record<string, VariantPolicyConfigEntryValue> | undefined,\n lifecycleType: DependencyLifecycleType,\n source?: DependencySource,\n hidden?: boolean,\n force = true\n): VariantPolicyEntry[] {\n if (!obj) {\n return [];\n }\n const entries = Object.entries(obj).map(([depId, value]: [string, VariantPolicyConfigEntryValue]) => {\n if (value) {\n return createVariantPolicyEntry(depId, value, lifecycleType, source, hidden, force);\n }\n return undefined;\n });\n return compact(entries);\n}\n\nfunction entriesFromArrayKey(\n configEntries: Array<VariantPolicyLifecycleConfigEntryObject> | undefined,\n lifecycleType: DependencyLifecycleType,\n source: DependencySource = 'config',\n hidden?: boolean,\n force?: boolean\n): VariantPolicyEntry[] {\n if (!configEntries) {\n return [];\n }\n const entries = configEntries.map((entry) => {\n return createVariantPolicyEntry(\n entry.name,\n entry.version,\n lifecycleType,\n source,\n hidden ?? !!entry.hidden,\n // allow override the entry's force value (used for the env itself)\n force ?? !!entry.force\n );\n });\n return entries;\n}\n\nexport function createVariantPolicyEntry(\n depId: string,\n value: VariantPolicyConfigEntryValue,\n lifecycleType: DependencyLifecycleType,\n source?: DependencySource,\n hidden?: boolean,\n force?: boolean\n): VariantPolicyEntry {\n const version = typeof value === 'string' ? value : value.version;\n const resolveFromEnv = typeof value === 'string' ? false : value.resolveFromEnv;\n\n const entryValue: VariantPolicyEntryValue = {\n version,\n resolveFromEnv,\n };\n const entry: VariantPolicyEntry = {\n dependencyId: depId,\n value: entryValue,\n lifecycleType,\n source,\n hidden,\n force,\n };\n return entry;\n}\n"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.dependencies_dependency-resolver@1.0.
|
|
2
|
-
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.dependencies_dependency-resolver@1.0.
|
|
1
|
+
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.dependencies_dependency-resolver@1.0.30/dist/dependency-resolver.composition.js';
|
|
2
|
+
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.dependencies_dependency-resolver@1.0.30/dist/dependency-resolver.docs.mdx';
|
|
3
3
|
|
|
4
4
|
export const compositions = [compositions_0];
|
|
5
5
|
export const overview = [overview_0];
|
|
@@ -310,13 +310,13 @@ function filterComponents(dependencyList: DependencyList, componentsToFilterOut:
|
|
|
310
310
|
if (!component.id.hasVersion()) {
|
|
311
311
|
return component.id.toString() === dep.componentId.toString({ ignoreVersion: true });
|
|
312
312
|
}
|
|
313
|
-
// We are checking against both component.id
|
|
314
|
-
// Because during tag operation, the component.id
|
|
313
|
+
// We are checking against both component.id and component.state._consumer.id
|
|
314
|
+
// Because during tag operation, the component.id has the current version (before the tag)
|
|
315
315
|
// while the component.state._consumer.id has the upcoming version (the version that will be after the tag)
|
|
316
316
|
// The dependency in some cases is already updated to the upcoming version
|
|
317
317
|
return (
|
|
318
|
-
component.id.
|
|
319
|
-
component.state._consumer.id.isEqualWithoutVersion(dep.componentId
|
|
318
|
+
component.id.isEqualWithoutVersion(dep.componentId) ||
|
|
319
|
+
component.state._consumer.id.isEqualWithoutVersion(dep.componentId)
|
|
320
320
|
);
|
|
321
321
|
});
|
|
322
322
|
if (existingComponent) return false;
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teambit/dependency-resolver",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.30",
|
|
4
4
|
"homepage": "https://bit.cloud/teambit/dependencies/dependency-resolver",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"componentId": {
|
|
7
7
|
"scope": "teambit.dependencies",
|
|
8
8
|
"name": "dependency-resolver",
|
|
9
|
-
"version": "1.0.
|
|
9
|
+
"version": "1.0.30"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"cli-highlight": "2.1.9",
|
|
@@ -28,27 +28,27 @@
|
|
|
28
28
|
"semver-range-intersect": "0.3.1",
|
|
29
29
|
"core-js": "^3.0.0",
|
|
30
30
|
"@babel/runtime": "7.20.0",
|
|
31
|
+
"@teambit/bit-error": "0.0.404",
|
|
31
32
|
"@teambit/harmony": "0.4.6",
|
|
32
33
|
"@pnpm/network.ca-file": "1.0.2",
|
|
33
|
-
"@teambit/component": "1.0.27",
|
|
34
|
-
"@teambit/envs": "1.0.27",
|
|
35
|
-
"@teambit/aspect-loader": "1.0.27",
|
|
36
|
-
"@teambit/logger": "0.0.892",
|
|
37
|
-
"@teambit/bit-error": "0.0.404",
|
|
38
|
-
"@teambit/graphql": "1.0.27",
|
|
39
34
|
"@teambit/bit-roots": "0.0.133",
|
|
40
|
-
"@teambit/
|
|
41
|
-
"@teambit/
|
|
42
|
-
"@teambit/config": "0.0.815",
|
|
43
|
-
"@teambit/global-config": "0.0.801",
|
|
44
|
-
"@teambit/harmony.modules.requireable-component": "0.0.493",
|
|
35
|
+
"@teambit/component-id": "1.1.0",
|
|
36
|
+
"@teambit/component-issues": "0.0.100",
|
|
45
37
|
"@teambit/legacy-bit-id": "1.0.3",
|
|
46
|
-
"@teambit/
|
|
47
|
-
"@teambit/component
|
|
48
|
-
"@teambit/
|
|
49
|
-
"@teambit/
|
|
50
|
-
"@teambit/
|
|
51
|
-
"@teambit/
|
|
38
|
+
"@teambit/component-version": "1.0.3",
|
|
39
|
+
"@teambit/component": "1.0.30",
|
|
40
|
+
"@teambit/envs": "1.0.30",
|
|
41
|
+
"@teambit/aspect-loader": "1.0.30",
|
|
42
|
+
"@teambit/logger": "0.0.895",
|
|
43
|
+
"@teambit/graphql": "1.0.30",
|
|
44
|
+
"@teambit/bit": "1.2.10",
|
|
45
|
+
"@teambit/cli": "0.0.802",
|
|
46
|
+
"@teambit/config": "0.0.818",
|
|
47
|
+
"@teambit/global-config": "0.0.804",
|
|
48
|
+
"@teambit/harmony.modules.requireable-component": "0.0.493",
|
|
49
|
+
"@teambit/snapping": "1.0.30",
|
|
50
|
+
"@teambit/isolator": "1.0.30",
|
|
51
|
+
"@teambit/component-package-version": "0.0.428"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
54
|
"@types/react": "^17.0.8",
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
"@teambit/dependencies.aspect-docs.dependency-resolver": "0.0.171"
|
|
66
66
|
},
|
|
67
67
|
"peerDependencies": {
|
|
68
|
-
"@teambit/legacy": "1.0.
|
|
68
|
+
"@teambit/legacy": "1.0.582",
|
|
69
69
|
"react": "^16.8.0 || ^17.0.0",
|
|
70
70
|
"react-dom": "^16.8.0 || ^17.0.0"
|
|
71
71
|
},
|
|
@@ -5,6 +5,7 @@ import {
|
|
|
5
5
|
VariantPolicyEntry,
|
|
6
6
|
VariantPolicy,
|
|
7
7
|
VariantPolicyConfigObject,
|
|
8
|
+
VariantPolicyFromConfigObjectOptions,
|
|
8
9
|
} from '../variant-policy';
|
|
9
10
|
import { DependencyLifecycleType } from '../../dependencies';
|
|
10
11
|
|
|
@@ -47,15 +48,22 @@ export class EnvPolicy extends VariantPolicy {
|
|
|
47
48
|
super(_policiesEntries);
|
|
48
49
|
}
|
|
49
50
|
|
|
50
|
-
static fromConfigObject(
|
|
51
|
+
static fromConfigObject(
|
|
52
|
+
configObject,
|
|
53
|
+
{ includeLegacyPeersInSelfPolicy }: VariantPolicyFromConfigObjectOptions = {}
|
|
54
|
+
): EnvPolicy {
|
|
51
55
|
validateEnvPolicyConfigObject(configObject);
|
|
52
56
|
|
|
53
57
|
/**
|
|
54
58
|
* Calculate the policy for the env itself.
|
|
55
59
|
* Always force it for the env itself
|
|
56
60
|
*/
|
|
57
|
-
|
|
58
|
-
|
|
61
|
+
let selfPeersEntries: VariantPolicyEntry[];
|
|
62
|
+
if (includeLegacyPeersInSelfPolicy && !configObject.peers && configObject.peerDependencies) {
|
|
63
|
+
selfPeersEntries = handleLegacyPeers(configObject);
|
|
64
|
+
} else {
|
|
65
|
+
selfPeersEntries = entriesFromKey(configObject, 'peers', 'version', 'runtime', 'env-own', true);
|
|
66
|
+
}
|
|
59
67
|
const selfPolicy = VariantPolicy.fromArray(selfPeersEntries);
|
|
60
68
|
|
|
61
69
|
/**
|
|
@@ -63,7 +71,7 @@ export class EnvPolicy extends VariantPolicy {
|
|
|
63
71
|
* when we used to configure dependencies, devDependencies, peerDependencies as objects of dependencyId: version
|
|
64
72
|
* Those were always forced on the components as visible dependencies.
|
|
65
73
|
*/
|
|
66
|
-
const legacyPolicy = VariantPolicy.fromConfigObject(configObject, 'env',
|
|
74
|
+
const legacyPolicy = VariantPolicy.fromConfigObject(configObject, { source: 'env', force: true, hidden: false });
|
|
67
75
|
const componentPeersEntries = entriesFromKey(configObject, 'peers', 'supportedRange', 'peer', 'env');
|
|
68
76
|
const otherKeyNames: EnvJsoncPolicyConfigKey[] = ['dev', 'runtime'];
|
|
69
77
|
const otherEntries: VariantPolicyEntry[] = otherKeyNames.reduce(
|
|
@@ -83,6 +91,16 @@ export class EnvPolicy extends VariantPolicy {
|
|
|
83
91
|
}
|
|
84
92
|
}
|
|
85
93
|
|
|
94
|
+
function handleLegacyPeers(configObject: VariantPolicyConfigObject): VariantPolicyEntry[] {
|
|
95
|
+
if (!configObject.peerDependencies) {
|
|
96
|
+
return [];
|
|
97
|
+
}
|
|
98
|
+
const entries = Object.entries(configObject.peerDependencies).map(([packageName, version]) => {
|
|
99
|
+
return createVariantPolicyEntry(packageName, version, 'runtime', 'env-own', false, true);
|
|
100
|
+
});
|
|
101
|
+
return entries;
|
|
102
|
+
}
|
|
103
|
+
|
|
86
104
|
function entriesFromKey(
|
|
87
105
|
configObject: VariantPolicyConfigObject,
|
|
88
106
|
keyName: EnvJsoncPolicyConfigKey,
|
|
@@ -54,6 +54,13 @@ export type VariantPolicyEntry = PolicyEntry & {
|
|
|
54
54
|
export type SerializedVariantPolicyEntry = VariantPolicyEntry;
|
|
55
55
|
export type SerializedVariantPolicy = SerializedVariantPolicyEntry[];
|
|
56
56
|
|
|
57
|
+
export interface VariantPolicyFromConfigObjectOptions {
|
|
58
|
+
includeLegacyPeersInSelfPolicy?: boolean;
|
|
59
|
+
source?: DependencySource;
|
|
60
|
+
hidden?: boolean;
|
|
61
|
+
force?: boolean;
|
|
62
|
+
}
|
|
63
|
+
|
|
57
64
|
export class VariantPolicy implements Policy<VariantPolicyConfigObject> {
|
|
58
65
|
constructor(private _policiesEntries: VariantPolicyEntry[]) {
|
|
59
66
|
this._policiesEntries = uniqEntries(_policiesEntries);
|
|
@@ -218,7 +225,10 @@ export class VariantPolicy implements Policy<VariantPolicyConfigObject> {
|
|
|
218
225
|
return res;
|
|
219
226
|
}
|
|
220
227
|
|
|
221
|
-
static fromConfigObject(
|
|
228
|
+
static fromConfigObject(
|
|
229
|
+
configObject,
|
|
230
|
+
{ source, hidden, force }: VariantPolicyFromConfigObjectOptions = {}
|
|
231
|
+
): VariantPolicy {
|
|
222
232
|
const runtimeEntries = entriesFromKey(configObject, 'dependencies', source, hidden, force);
|
|
223
233
|
const devEntries = entriesFromKey(configObject, 'devDependencies', source, hidden, force);
|
|
224
234
|
const peerEntries = entriesFromKey(configObject, 'peerDependencies', source, hidden, force);
|