@teambit/dependency-resolver 1.0.529 → 1.0.531

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.
@@ -1,5 +1,5 @@
1
1
  import { VariantPolicyEntry, VariantPolicy, VariantPolicyConfigObject, VariantPolicyFromConfigObjectOptions } from '../variant-policy';
2
- type EnvJsoncPolicyEntry = {
2
+ export type EnvJsoncPolicyEntry = {
3
3
  name: string;
4
4
  version: string;
5
5
  /**
@@ -33,4 +33,3 @@ export declare class EnvPolicy extends VariantPolicy {
33
33
  static fromConfigObject(configObject: EnvPolicyConfigObject, { includeLegacyPeersInSelfPolicy }?: VariantPolicyFromConfigObjectOptions): EnvPolicy;
34
34
  static getEmpty(): EnvPolicy;
35
35
  }
36
- export {};
@@ -105,6 +105,9 @@ function entriesFromKey(configObject, keyName, versionKey = 'version', lifecycle
105
105
  return [];
106
106
  }
107
107
  const entries = configEntries.map(entry => {
108
+ if (!entry[versionKey]) {
109
+ throw new Error(`env.jsonc: "policy.${keyName}" entry must be a property with a "${versionKey}" field. got "${entry}"`);
110
+ }
108
111
  return (0, _variantPolicy().createVariantPolicyEntry)(entry.name, entry[versionKey], lifecycleType, _objectSpread(_objectSpread({}, options), {}, {
109
112
  source: options.source ?? 'env',
110
113
  hidden: entry.hidden,
@@ -1 +1 @@
1
- {"version":3,"names":["_validateEnvPolicy","data","require","_variantPolicy","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","EnvPolicy","VariantPolicy","constructor","_policiesEntries","selfPolicy","fromConfigObject","configObject","includeLegacyPeersInSelfPolicy","validateEnvPolicyConfigObject","selfPeersEntries","peers","peerDependencies","handleLegacyPeers","entriesFromKey","source","force","fromArray","legacyPolicy","hidden","componentPeersEntries","otherKeyNames","otherEntries","reduce","acc","keyName","currEntries","concat","newPolicy","finalComponentPolicy","mergePolices","entries","getEmpty","exports","map","packageName","version","createVariantPolicyEntry","versionKey","lifecycleType","options","configEntries","entry","name","optional"],"sources":["env-policy.ts"],"sourcesContent":["import { validateEnvPolicyConfigObject } from './validate-env-policy';\nimport {\n createVariantPolicyEntry,\n VariantPolicyEntry,\n VariantPolicy,\n VariantPolicyConfigObject,\n VariantPolicyFromConfigObjectOptions,\n} from '../variant-policy';\nimport { DependencyLifecycleType } from '../../dependencies';\n\ntype EnvJsoncPolicyEntry = {\n name: string;\n version: string;\n /**\n * hide the dependency from the component's package.json / dependencies list\n */\n hidden?: boolean;\n /**\n * force add to component dependencies even if it's not used by the component.\n */\n force?: boolean;\n optional?: boolean;\n};\n\nexport type EnvJsoncPolicyPeerEntry = EnvJsoncPolicyEntry & {\n supportedRange: string;\n};\n\nexport type VersionKeyName = 'version' | 'supportedRange';\n\nexport type EnvJsoncPolicyConfigKey = 'peers' | 'dev' | 'runtime';\n\nexport type EnvPolicyEnvJsoncConfigObject = {\n peers?: EnvJsoncPolicyPeerEntry[];\n dev?: EnvJsoncPolicyEntry[];\n runtime?: EnvJsoncPolicyEntry[];\n};\n\n/**\n * Config that is used before the new env.jsonc format was introduced.\n */\nexport type EnvPolicyLegacyConfigObject = Pick<EnvPolicyEnvJsoncConfigObject, 'peers'> & VariantPolicyConfigObject;\n\nexport type EnvPolicyConfigObject = EnvPolicyEnvJsoncConfigObject | EnvPolicyLegacyConfigObject;\n\nexport class EnvPolicy extends VariantPolicy {\n constructor(\n _policiesEntries: VariantPolicyEntry[],\n readonly selfPolicy: VariantPolicy\n ) {\n super(_policiesEntries);\n }\n\n static fromConfigObject(\n configObject: EnvPolicyConfigObject,\n { includeLegacyPeersInSelfPolicy }: VariantPolicyFromConfigObjectOptions = {}\n ): EnvPolicy {\n validateEnvPolicyConfigObject(configObject);\n\n /**\n * Calculate the policy for the env itself.\n * Always force it for the env itself\n */\n let selfPeersEntries: VariantPolicyEntry[];\n // @ts-ignore TODO: need to fix this, the | confusing the compiler\n if (includeLegacyPeersInSelfPolicy && !configObject.peers && configObject.peerDependencies) {\n // @ts-ignore TODO: need to fix this, the | confusing the compiler\n selfPeersEntries = handleLegacyPeers(configObject);\n } else {\n // @ts-ignore TODO: need to fix this, the | confusing the compiler\n selfPeersEntries = entriesFromKey(configObject, 'peers', 'version', 'runtime', {\n source: 'env-own',\n force: true,\n });\n }\n const selfPolicy = VariantPolicy.fromArray(selfPeersEntries);\n\n /**\n * Legacy policy used by the old getDependencies function on the env aspect.\n * when we used to configure dependencies, devDependencies, peerDependencies as objects of dependencyId: version\n * Those were always forced on the components as visible dependencies.\n */\n const legacyPolicy = VariantPolicy.fromConfigObject(configObject, { source: 'env', force: true, hidden: false });\n // @ts-ignore TODO: need to fix this, the | confusing the compiler\n const componentPeersEntries = entriesFromKey(configObject, 'peers', 'supportedRange', 'peer', { source: 'env' });\n const otherKeyNames: EnvJsoncPolicyConfigKey[] = ['dev', 'runtime'];\n const otherEntries: VariantPolicyEntry[] = otherKeyNames.reduce(\n (acc: VariantPolicyEntry[], keyName: EnvJsoncPolicyConfigKey) => {\n // @ts-ignore TODO: need to fix this, the | confusing the compiler\n const currEntries = entriesFromKey(configObject, keyName, 'version', keyName as DependencyLifecycleType, {\n source: 'env',\n });\n return acc.concat(currEntries);\n },\n []\n );\n const newPolicy = VariantPolicy.fromArray(componentPeersEntries.concat(otherEntries));\n const finalComponentPolicy = VariantPolicy.mergePolices([legacyPolicy, newPolicy]);\n return new EnvPolicy(finalComponentPolicy.entries, selfPolicy);\n }\n\n static getEmpty(): EnvPolicy {\n return new EnvPolicy([], VariantPolicy.getEmpty());\n }\n}\n\nfunction handleLegacyPeers(configObject: VariantPolicyConfigObject): VariantPolicyEntry[] {\n if (!configObject.peerDependencies) {\n return [];\n }\n const entries = Object.entries(configObject.peerDependencies).map(([packageName, version]) => {\n return createVariantPolicyEntry(packageName, version, 'runtime', {\n source: 'env-own',\n hidden: false,\n force: true,\n });\n });\n return entries;\n}\n\nfunction entriesFromKey(\n configObject: VariantPolicyConfigObject,\n keyName: EnvJsoncPolicyConfigKey,\n versionKey: VersionKeyName = 'version',\n lifecycleType: DependencyLifecycleType,\n options: VariantPolicyFromConfigObjectOptions\n): VariantPolicyEntry[] {\n const configEntries: Array<EnvJsoncPolicyPeerEntry | EnvJsoncPolicyEntry> = configObject[keyName];\n if (!configEntries) {\n return [];\n }\n const entries = configEntries.map((entry) => {\n return createVariantPolicyEntry(entry.name, entry[versionKey], lifecycleType, {\n ...options,\n source: options.source ?? 'env',\n hidden: entry.hidden,\n // allow override the entry's force value (used for the env itself)\n force: options.force ?? !!entry.force,\n optional: options.optional ?? !!entry.optional,\n });\n });\n return entries;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_validateEnvPolicy","data","require","_variantPolicy","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","EnvPolicy","VariantPolicy","constructor","_policiesEntries","selfPolicy","fromConfigObject","configObject","includeLegacyPeersInSelfPolicy","validateEnvPolicyConfigObject","selfPeersEntries","peers","peerDependencies","handleLegacyPeers","entriesFromKey","source","force","fromArray","legacyPolicy","hidden","componentPeersEntries","otherKeyNames","otherEntries","reduce","acc","keyName","currEntries","concat","newPolicy","finalComponentPolicy","mergePolices","entries","getEmpty","exports","map","packageName","version","createVariantPolicyEntry","versionKey","lifecycleType","options","configEntries","entry","Error","name","optional"],"sources":["env-policy.ts"],"sourcesContent":["import { validateEnvPolicyConfigObject } from './validate-env-policy';\nimport {\n createVariantPolicyEntry,\n VariantPolicyEntry,\n VariantPolicy,\n VariantPolicyConfigObject,\n VariantPolicyFromConfigObjectOptions,\n} from '../variant-policy';\nimport { DependencyLifecycleType } from '../../dependencies';\n\nexport type EnvJsoncPolicyEntry = {\n name: string;\n version: string;\n /**\n * hide the dependency from the component's package.json / dependencies list\n */\n hidden?: boolean;\n /**\n * force add to component dependencies even if it's not used by the component.\n */\n force?: boolean;\n optional?: boolean;\n};\n\nexport type EnvJsoncPolicyPeerEntry = EnvJsoncPolicyEntry & {\n supportedRange: string;\n};\n\nexport type VersionKeyName = 'version' | 'supportedRange';\n\nexport type EnvJsoncPolicyConfigKey = 'peers' | 'dev' | 'runtime';\n\nexport type EnvPolicyEnvJsoncConfigObject = {\n peers?: EnvJsoncPolicyPeerEntry[];\n dev?: EnvJsoncPolicyEntry[];\n runtime?: EnvJsoncPolicyEntry[];\n};\n\n/**\n * Config that is used before the new env.jsonc format was introduced.\n */\nexport type EnvPolicyLegacyConfigObject = Pick<EnvPolicyEnvJsoncConfigObject, 'peers'> & VariantPolicyConfigObject;\n\nexport type EnvPolicyConfigObject = EnvPolicyEnvJsoncConfigObject | EnvPolicyLegacyConfigObject;\n\nexport class EnvPolicy extends VariantPolicy {\n constructor(\n _policiesEntries: VariantPolicyEntry[],\n readonly selfPolicy: VariantPolicy\n ) {\n super(_policiesEntries);\n }\n\n static fromConfigObject(\n configObject: EnvPolicyConfigObject,\n { includeLegacyPeersInSelfPolicy }: VariantPolicyFromConfigObjectOptions = {}\n ): EnvPolicy {\n validateEnvPolicyConfigObject(configObject);\n\n /**\n * Calculate the policy for the env itself.\n * Always force it for the env itself\n */\n let selfPeersEntries: VariantPolicyEntry[];\n // @ts-ignore TODO: need to fix this, the | confusing the compiler\n if (includeLegacyPeersInSelfPolicy && !configObject.peers && configObject.peerDependencies) {\n // @ts-ignore TODO: need to fix this, the | confusing the compiler\n selfPeersEntries = handleLegacyPeers(configObject);\n } else {\n // @ts-ignore TODO: need to fix this, the | confusing the compiler\n selfPeersEntries = entriesFromKey(configObject, 'peers', 'version', 'runtime', {\n source: 'env-own',\n force: true,\n });\n }\n const selfPolicy = VariantPolicy.fromArray(selfPeersEntries);\n\n /**\n * Legacy policy used by the old getDependencies function on the env aspect.\n * when we used to configure dependencies, devDependencies, peerDependencies as objects of dependencyId: version\n * Those were always forced on the components as visible dependencies.\n */\n const legacyPolicy = VariantPolicy.fromConfigObject(configObject, { source: 'env', force: true, hidden: false });\n // @ts-ignore TODO: need to fix this, the | confusing the compiler\n const componentPeersEntries = entriesFromKey(configObject, 'peers', 'supportedRange', 'peer', { source: 'env' });\n const otherKeyNames: EnvJsoncPolicyConfigKey[] = ['dev', 'runtime'];\n const otherEntries: VariantPolicyEntry[] = otherKeyNames.reduce(\n (acc: VariantPolicyEntry[], keyName: EnvJsoncPolicyConfigKey) => {\n // @ts-ignore TODO: need to fix this, the | confusing the compiler\n const currEntries = entriesFromKey(configObject, keyName, 'version', keyName as DependencyLifecycleType, {\n source: 'env',\n });\n return acc.concat(currEntries);\n },\n []\n );\n const newPolicy = VariantPolicy.fromArray(componentPeersEntries.concat(otherEntries));\n const finalComponentPolicy = VariantPolicy.mergePolices([legacyPolicy, newPolicy]);\n return new EnvPolicy(finalComponentPolicy.entries, selfPolicy);\n }\n\n static getEmpty(): EnvPolicy {\n return new EnvPolicy([], VariantPolicy.getEmpty());\n }\n}\n\nfunction handleLegacyPeers(configObject: VariantPolicyConfigObject): VariantPolicyEntry[] {\n if (!configObject.peerDependencies) {\n return [];\n }\n const entries = Object.entries(configObject.peerDependencies).map(([packageName, version]) => {\n return createVariantPolicyEntry(packageName, version, 'runtime', {\n source: 'env-own',\n hidden: false,\n force: true,\n });\n });\n return entries;\n}\n\nfunction entriesFromKey(\n configObject: VariantPolicyConfigObject,\n keyName: EnvJsoncPolicyConfigKey,\n versionKey: VersionKeyName = 'version',\n lifecycleType: DependencyLifecycleType,\n options: VariantPolicyFromConfigObjectOptions\n): VariantPolicyEntry[] {\n const configEntries: Array<EnvJsoncPolicyPeerEntry | EnvJsoncPolicyEntry> = configObject[keyName];\n if (!configEntries) {\n return [];\n }\n const entries = configEntries.map((entry) => {\n if (!entry[versionKey]) {\n throw new Error(\n `env.jsonc: \"policy.${keyName}\" entry must be a property with a \"${versionKey}\" field. got \"${entry}\"`\n );\n }\n return createVariantPolicyEntry(entry.name, entry[versionKey], lifecycleType, {\n ...options,\n source: options.source ?? 'env',\n hidden: entry.hidden,\n // allow override the entry's force value (used for the env itself)\n force: options.force ?? !!entry.force,\n optional: options.optional ?? !!entry.optional,\n });\n });\n return entries;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -15,6 +15,27 @@ function validateEnvPolicyConfigObject(configObject) {
15
15
  if (configObject.peers) {
16
16
  validateEnvPeers(configObject.peers);
17
17
  }
18
+ const envJsoncPolicyFields = ['dev', 'runtime', 'peers'];
19
+ envJsoncPolicyFields.forEach(key => {
20
+ if (!configObject[key]) {
21
+ return;
22
+ }
23
+ configObject[key].forEach(policyEntry => {
24
+ validateEnvJsoncPolicyEntry(policyEntry, key);
25
+ });
26
+ });
27
+ }
28
+ function validateEnvJsoncPolicyEntry(policyEntry, key) {
29
+ const prefix = `error: failed validating the env.jsonc file. policy.${key} entry`;
30
+ if (typeof policyEntry !== 'object') {
31
+ throw new (_bitError().BitError)(`${prefix} must be an object, got type "${typeof policyEntry}" value: "${policyEntry}"`);
32
+ }
33
+ const mandatoryFields = ['name', 'version'];
34
+ mandatoryFields.forEach(field => {
35
+ if (!policyEntry[field]) {
36
+ throw new (_bitError().BitError)(`${prefix} must have a "${field}" property`);
37
+ }
38
+ });
18
39
  }
19
40
  function validateEnvPeers(peers) {
20
41
  for (const peer of peers) {
@@ -1 +1 @@
1
- {"version":3,"names":["_bitError","data","require","validateEnvPolicyConfigObject","configObject","peers","validateEnvPeers","peer","supportedRange","BitError","name","version"],"sources":["validate-env-policy.ts"],"sourcesContent":["import { BitError } from '@teambit/bit-error';\nimport type { EnvJsoncPolicyPeerEntry, EnvPolicyConfigObject } from './env-policy';\n\nexport function validateEnvPolicyConfigObject(configObject: EnvPolicyConfigObject) {\n if (configObject.peers) {\n validateEnvPeers(configObject.peers);\n }\n}\n\nfunction validateEnvPeers(peers: EnvJsoncPolicyPeerEntry[]) {\n for (const peer of peers) {\n if (peer.supportedRange === '') {\n throw new BitError(`Peer \"${peer.name}\" has an empty supportedRange`);\n }\n if (peer.supportedRange == null) {\n throw new BitError(`Peer \"${peer.name}\" has no supportedRange set`);\n }\n if (peer.version === '') {\n throw new BitError(`Peer \"${peer.name}\" has an empty version`);\n }\n if (peer.version == null) {\n throw new BitError(`Peer \"${peer.name}\" has no version set`);\n }\n }\n}\n"],"mappings":";;;;;;AAAA,SAAAA,UAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,SAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGO,SAASE,6BAA6BA,CAACC,YAAmC,EAAE;EACjF,IAAIA,YAAY,CAACC,KAAK,EAAE;IACtBC,gBAAgB,CAACF,YAAY,CAACC,KAAK,CAAC;EACtC;AACF;AAEA,SAASC,gBAAgBA,CAACD,KAAgC,EAAE;EAC1D,KAAK,MAAME,IAAI,IAAIF,KAAK,EAAE;IACxB,IAAIE,IAAI,CAACC,cAAc,KAAK,EAAE,EAAE;MAC9B,MAAM,KAAIC,oBAAQ,EAAC,SAASF,IAAI,CAACG,IAAI,+BAA+B,CAAC;IACvE;IACA,IAAIH,IAAI,CAACC,cAAc,IAAI,IAAI,EAAE;MAC/B,MAAM,KAAIC,oBAAQ,EAAC,SAASF,IAAI,CAACG,IAAI,6BAA6B,CAAC;IACrE;IACA,IAAIH,IAAI,CAACI,OAAO,KAAK,EAAE,EAAE;MACvB,MAAM,KAAIF,oBAAQ,EAAC,SAASF,IAAI,CAACG,IAAI,wBAAwB,CAAC;IAChE;IACA,IAAIH,IAAI,CAACI,OAAO,IAAI,IAAI,EAAE;MACxB,MAAM,KAAIF,oBAAQ,EAAC,SAASF,IAAI,CAACG,IAAI,sBAAsB,CAAC;IAC9D;EACF;AACF","ignoreList":[]}
1
+ {"version":3,"names":["_bitError","data","require","validateEnvPolicyConfigObject","configObject","peers","validateEnvPeers","envJsoncPolicyFields","forEach","key","policyEntry","validateEnvJsoncPolicyEntry","prefix","BitError","mandatoryFields","field","peer","supportedRange","name","version"],"sources":["validate-env-policy.ts"],"sourcesContent":["import { BitError } from '@teambit/bit-error';\nimport type {\n EnvJsoncPolicyConfigKey,\n EnvJsoncPolicyEntry,\n EnvJsoncPolicyPeerEntry,\n EnvPolicyConfigObject,\n} from './env-policy';\n\nexport function validateEnvPolicyConfigObject(configObject: EnvPolicyConfigObject) {\n if (configObject.peers) {\n validateEnvPeers(configObject.peers);\n }\n const envJsoncPolicyFields: EnvJsoncPolicyConfigKey[] = ['dev', 'runtime', 'peers'];\n envJsoncPolicyFields.forEach((key) => {\n if (!configObject[key]) {\n return;\n }\n configObject[key].forEach((policyEntry: EnvJsoncPolicyEntry) => {\n validateEnvJsoncPolicyEntry(policyEntry, key);\n });\n });\n}\n\nfunction validateEnvJsoncPolicyEntry(policyEntry: EnvJsoncPolicyEntry, key: string) {\n const prefix = `error: failed validating the env.jsonc file. policy.${key} entry`;\n if (typeof policyEntry !== 'object') {\n throw new BitError(`${prefix} must be an object, got type \"${typeof policyEntry}\" value: \"${policyEntry}\"`);\n }\n const mandatoryFields = ['name', 'version'];\n mandatoryFields.forEach((field) => {\n if (!policyEntry[field]) {\n throw new BitError(`${prefix} must have a \"${field}\" property`);\n }\n });\n}\n\nfunction validateEnvPeers(peers: EnvJsoncPolicyPeerEntry[]) {\n for (const peer of peers) {\n if (peer.supportedRange === '') {\n throw new BitError(`Peer \"${peer.name}\" has an empty supportedRange`);\n }\n if (peer.supportedRange == null) {\n throw new BitError(`Peer \"${peer.name}\" has no supportedRange set`);\n }\n if (peer.version === '') {\n throw new BitError(`Peer \"${peer.name}\" has an empty version`);\n }\n if (peer.version == null) {\n throw new BitError(`Peer \"${peer.name}\" has no version set`);\n }\n }\n}\n"],"mappings":";;;;;;AAAA,SAAAA,UAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,SAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAQO,SAASE,6BAA6BA,CAACC,YAAmC,EAAE;EACjF,IAAIA,YAAY,CAACC,KAAK,EAAE;IACtBC,gBAAgB,CAACF,YAAY,CAACC,KAAK,CAAC;EACtC;EACA,MAAME,oBAA+C,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC;EACnFA,oBAAoB,CAACC,OAAO,CAAEC,GAAG,IAAK;IACpC,IAAI,CAACL,YAAY,CAACK,GAAG,CAAC,EAAE;MACtB;IACF;IACAL,YAAY,CAACK,GAAG,CAAC,CAACD,OAAO,CAAEE,WAAgC,IAAK;MAC9DC,2BAA2B,CAACD,WAAW,EAAED,GAAG,CAAC;IAC/C,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ;AAEA,SAASE,2BAA2BA,CAACD,WAAgC,EAAED,GAAW,EAAE;EAClF,MAAMG,MAAM,GAAG,uDAAuDH,GAAG,QAAQ;EACjF,IAAI,OAAOC,WAAW,KAAK,QAAQ,EAAE;IACnC,MAAM,KAAIG,oBAAQ,EAAC,GAAGD,MAAM,iCAAiC,OAAOF,WAAW,aAAaA,WAAW,GAAG,CAAC;EAC7G;EACA,MAAMI,eAAe,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC;EAC3CA,eAAe,CAACN,OAAO,CAAEO,KAAK,IAAK;IACjC,IAAI,CAACL,WAAW,CAACK,KAAK,CAAC,EAAE;MACvB,MAAM,KAAIF,oBAAQ,EAAC,GAAGD,MAAM,iBAAiBG,KAAK,YAAY,CAAC;IACjE;EACF,CAAC,CAAC;AACJ;AAEA,SAAST,gBAAgBA,CAACD,KAAgC,EAAE;EAC1D,KAAK,MAAMW,IAAI,IAAIX,KAAK,EAAE;IACxB,IAAIW,IAAI,CAACC,cAAc,KAAK,EAAE,EAAE;MAC9B,MAAM,KAAIJ,oBAAQ,EAAC,SAASG,IAAI,CAACE,IAAI,+BAA+B,CAAC;IACvE;IACA,IAAIF,IAAI,CAACC,cAAc,IAAI,IAAI,EAAE;MAC/B,MAAM,KAAIJ,oBAAQ,EAAC,SAASG,IAAI,CAACE,IAAI,6BAA6B,CAAC;IACrE;IACA,IAAIF,IAAI,CAACG,OAAO,KAAK,EAAE,EAAE;MACvB,MAAM,KAAIN,oBAAQ,EAAC,SAASG,IAAI,CAACE,IAAI,wBAAwB,CAAC;IAChE;IACA,IAAIF,IAAI,CAACG,OAAO,IAAI,IAAI,EAAE;MACxB,MAAM,KAAIN,oBAAQ,EAAC,SAASG,IAAI,CAACE,IAAI,sBAAsB,CAAC;IAC9D;EACF;AACF","ignoreList":[]}
@@ -266,6 +266,9 @@ function entriesFromArrayKey(configEntries, lifecycleType, options) {
266
266
  return entries;
267
267
  }
268
268
  function createVariantPolicyEntry(depId, value, lifecycleType, opts) {
269
+ if (!value) {
270
+ throw new Error(`createVariantPolicyEntry, value is missing for ${depId}`);
271
+ }
269
272
  const version = typeof value === 'string' ? value : value.version;
270
273
  const resolveFromEnv = typeof value === 'string' ? false : value.resolveFromEnv;
271
274
  const optional = typeof value === 'string' ? undefined : value.optional;
@@ -1 +1 @@
1
- {"version":3,"names":["_toolboxCrypto","data","require","_lodash","_componentPackageVersion","_dependencies","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","VariantPolicy","constructor","_policiesEntries","uniqEntries","entries","names","map","dependencyId","find","depId","lifecycleType","matchedEntry","entry","idEqual","lifecycleEqual","byLifecycleType","filtered","sortByName","sorted","sortBy","hashNameVersion","toHash","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","fromConfigObject","configObject","options","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","createVariantPolicyEntry","compact","configEntries","name","source","Boolean","optional","opts","entryValue"],"sources":["variant-policy.ts"],"sourcesContent":["import { sha1 } from '@teambit/toolbox.crypto.sha1';\nimport { compact, sortBy, uniqWith } from 'lodash';\nimport { snapToSemver } from '@teambit/component-package-version';\nimport { DependenciesOverridesData } from '@teambit/legacy.consumer-config';\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 optional?: 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 optional?: 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 optional?: 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 optional?: 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(configObject, options: VariantPolicyFromConfigObjectOptions = {}): VariantPolicy {\n const runtimeEntries = entriesFromKey(configObject, 'dependencies', options);\n const devEntries = entriesFromKey(configObject, 'devDependencies', options);\n const peerEntries = entriesFromKey(configObject, 'peerDependencies', options);\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 options: VariantPolicyFromConfigObjectOptions\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, options);\n }\n return entriesFromObjectKey(obj, lifecycleType, options);\n}\n\nfunction entriesFromObjectKey(\n obj: Record<string, VariantPolicyConfigEntryValue> | undefined,\n lifecycleType: DependencyLifecycleType,\n options: VariantPolicyFromConfigObjectOptions\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, {\n ...options,\n force: options.force ?? true,\n });\n }\n return undefined;\n });\n return compact(entries);\n}\n\nfunction entriesFromArrayKey(\n configEntries: Array<VariantPolicyLifecycleConfigEntryObject> | undefined,\n lifecycleType: DependencyLifecycleType,\n options: VariantPolicyFromConfigObjectOptions\n): VariantPolicyEntry[] {\n if (!configEntries) {\n return [];\n }\n const entries = configEntries.map((entry) => {\n return createVariantPolicyEntry(entry.name, entry.version, lifecycleType, {\n ...options,\n source: options.source ?? 'config',\n hidden: Boolean(options.hidden ?? entry.hidden),\n // allow override the entry's force value (used for the env itself)\n force: Boolean(options.force ?? entry.force),\n optional: Boolean(options.optional ?? entry.optional),\n });\n });\n return entries;\n}\n\nexport function createVariantPolicyEntry(\n depId: string,\n value: VariantPolicyConfigEntryValue,\n lifecycleType: DependencyLifecycleType,\n opts: VariantPolicyFromConfigObjectOptions\n): VariantPolicyEntry {\n const version = typeof value === 'string' ? value : value.version;\n const resolveFromEnv = typeof value === 'string' ? false : value.resolveFromEnv;\n const optional = typeof value === 'string' ? undefined : value.optional;\n\n const entryValue: VariantPolicyEntryValue = {\n version,\n resolveFromEnv,\n };\n const entry: VariantPolicyEntry = {\n ...opts,\n dependencyId: depId,\n value: entryValue,\n lifecycleType,\n optional: optional ?? opts.optional,\n };\n return entry;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_toolboxCrypto","data","require","_lodash","_componentPackageVersion","_dependencies","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","VariantPolicy","constructor","_policiesEntries","uniqEntries","entries","names","map","dependencyId","find","depId","lifecycleType","matchedEntry","entry","idEqual","lifecycleEqual","byLifecycleType","filtered","sortByName","sorted","sortBy","hashNameVersion","toHash","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","fromConfigObject","configObject","options","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","createVariantPolicyEntry","compact","configEntries","name","source","Boolean","optional","opts","Error","entryValue"],"sources":["variant-policy.ts"],"sourcesContent":["import { sha1 } from '@teambit/toolbox.crypto.sha1';\nimport { compact, sortBy, uniqWith } from 'lodash';\nimport { snapToSemver } from '@teambit/component-package-version';\nimport { DependenciesOverridesData } from '@teambit/legacy.consumer-config';\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 optional?: 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 optional?: 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 optional?: 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 optional?: 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(configObject, options: VariantPolicyFromConfigObjectOptions = {}): VariantPolicy {\n const runtimeEntries = entriesFromKey(configObject, 'dependencies', options);\n const devEntries = entriesFromKey(configObject, 'devDependencies', options);\n const peerEntries = entriesFromKey(configObject, 'peerDependencies', options);\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 options: VariantPolicyFromConfigObjectOptions\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, options);\n }\n return entriesFromObjectKey(obj, lifecycleType, options);\n}\n\nfunction entriesFromObjectKey(\n obj: Record<string, VariantPolicyConfigEntryValue> | undefined,\n lifecycleType: DependencyLifecycleType,\n options: VariantPolicyFromConfigObjectOptions\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, {\n ...options,\n force: options.force ?? true,\n });\n }\n return undefined;\n });\n return compact(entries);\n}\n\nfunction entriesFromArrayKey(\n configEntries: Array<VariantPolicyLifecycleConfigEntryObject> | undefined,\n lifecycleType: DependencyLifecycleType,\n options: VariantPolicyFromConfigObjectOptions\n): VariantPolicyEntry[] {\n if (!configEntries) {\n return [];\n }\n const entries = configEntries.map((entry) => {\n return createVariantPolicyEntry(entry.name, entry.version, lifecycleType, {\n ...options,\n source: options.source ?? 'config',\n hidden: Boolean(options.hidden ?? entry.hidden),\n // allow override the entry's force value (used for the env itself)\n force: Boolean(options.force ?? entry.force),\n optional: Boolean(options.optional ?? entry.optional),\n });\n });\n return entries;\n}\n\nexport function createVariantPolicyEntry(\n depId: string,\n value: VariantPolicyConfigEntryValue,\n lifecycleType: DependencyLifecycleType,\n opts: VariantPolicyFromConfigObjectOptions\n): VariantPolicyEntry {\n if (!value) {\n throw new Error(`createVariantPolicyEntry, value is missing for ${depId}`);\n }\n const version = typeof value === 'string' ? value : value.version;\n const resolveFromEnv = typeof value === 'string' ? false : value.resolveFromEnv;\n const optional = typeof value === 'string' ? undefined : value.optional;\n\n const entryValue: VariantPolicyEntryValue = {\n version,\n resolveFromEnv,\n };\n const entry: VariantPolicyEntry = {\n ...opts,\n dependencyId: depId,\n value: entryValue,\n lifecycleType,\n optional: optional ?? opts.optional,\n };\n return entry;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
- import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.dependencies_dependency-resolver@1.0.529/dist/dependency-resolver.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.dependencies_dependency-resolver@1.0.529/dist/dependency-resolver.docs.mdx';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.dependencies_dependency-resolver@1.0.531/dist/dependency-resolver.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.dependencies_dependency-resolver@1.0.531/dist/dependency-resolver.docs.mdx';
3
3
 
4
4
  export const compositions = [compositions_0];
5
5
  export const overview = [overview_0];
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/dependency-resolver",
3
- "version": "1.0.529",
3
+ "version": "1.0.531",
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.529"
9
+ "version": "1.0.531"
10
10
  },
11
11
  "dependencies": {
12
12
  "chalk": "2.4.2",
@@ -33,26 +33,26 @@
33
33
  "@teambit/legacy-bit-id": "1.1.1",
34
34
  "@teambit/component-version": "1.0.3",
35
35
  "@teambit/toolbox.object.sorter": "0.0.2",
36
- "@teambit/component": "1.0.529",
37
- "@teambit/envs": "1.0.529",
38
- "@teambit/dependencies": "1.0.529",
39
- "@teambit/aspect-loader": "1.0.529",
40
- "@teambit/logger": "0.0.1199",
41
- "@teambit/objects": "0.0.36",
36
+ "@teambit/component": "1.0.531",
37
+ "@teambit/envs": "1.0.531",
38
+ "@teambit/dependencies": "1.0.531",
39
+ "@teambit/aspect-loader": "1.0.531",
40
+ "@teambit/logger": "0.0.1201",
41
+ "@teambit/objects": "0.0.38",
42
42
  "@teambit/toolbox.path.path": "0.0.6",
43
43
  "@teambit/pkg.modules.component-package-name": "0.0.32",
44
- "@teambit/graphql": "1.0.529",
45
- "@teambit/cli": "0.0.1106",
44
+ "@teambit/graphql": "1.0.531",
45
+ "@teambit/cli": "0.0.1108",
46
46
  "@teambit/component.sources": "0.0.77",
47
- "@teambit/config": "0.0.1280",
48
- "@teambit/global-config": "0.0.1109",
47
+ "@teambit/config": "0.0.1282",
48
+ "@teambit/global-config": "0.0.1111",
49
49
  "@teambit/harmony.modules.feature-toggle": "0.0.16",
50
50
  "@teambit/harmony.modules.requireable-component": "0.0.500",
51
51
  "@teambit/legacy.constants": "0.0.8",
52
52
  "@teambit/legacy.consumer-component": "0.0.26",
53
53
  "@teambit/legacy.extension-data": "0.0.27",
54
54
  "@teambit/scope.network": "0.0.25",
55
- "@teambit/snapping": "1.0.529",
55
+ "@teambit/snapping": "1.0.531",
56
56
  "@teambit/workspace.modules.node-modules-linker": "0.0.253",
57
57
  "@teambit/component-issues": "0.0.153",
58
58
  "@teambit/component-package-version": "0.0.435",
@@ -8,7 +8,7 @@ import {
8
8
  } from '../variant-policy';
9
9
  import { DependencyLifecycleType } from '../../dependencies';
10
10
 
11
- type EnvJsoncPolicyEntry = {
11
+ export type EnvJsoncPolicyEntry = {
12
12
  name: string;
13
13
  version: string;
14
14
  /**
@@ -130,6 +130,11 @@ function entriesFromKey(
130
130
  return [];
131
131
  }
132
132
  const entries = configEntries.map((entry) => {
133
+ if (!entry[versionKey]) {
134
+ throw new Error(
135
+ `env.jsonc: "policy.${keyName}" entry must be a property with a "${versionKey}" field. got "${entry}"`
136
+ );
137
+ }
133
138
  return createVariantPolicyEntry(entry.name, entry[versionKey], lifecycleType, {
134
139
  ...options,
135
140
  source: options.source ?? 'env',
@@ -1,10 +1,37 @@
1
1
  import { BitError } from '@teambit/bit-error';
2
- import type { EnvJsoncPolicyPeerEntry, EnvPolicyConfigObject } from './env-policy';
2
+ import type {
3
+ EnvJsoncPolicyConfigKey,
4
+ EnvJsoncPolicyEntry,
5
+ EnvJsoncPolicyPeerEntry,
6
+ EnvPolicyConfigObject,
7
+ } from './env-policy';
3
8
 
4
9
  export function validateEnvPolicyConfigObject(configObject: EnvPolicyConfigObject) {
5
10
  if (configObject.peers) {
6
11
  validateEnvPeers(configObject.peers);
7
12
  }
13
+ const envJsoncPolicyFields: EnvJsoncPolicyConfigKey[] = ['dev', 'runtime', 'peers'];
14
+ envJsoncPolicyFields.forEach((key) => {
15
+ if (!configObject[key]) {
16
+ return;
17
+ }
18
+ configObject[key].forEach((policyEntry: EnvJsoncPolicyEntry) => {
19
+ validateEnvJsoncPolicyEntry(policyEntry, key);
20
+ });
21
+ });
22
+ }
23
+
24
+ function validateEnvJsoncPolicyEntry(policyEntry: EnvJsoncPolicyEntry, key: string) {
25
+ const prefix = `error: failed validating the env.jsonc file. policy.${key} entry`;
26
+ if (typeof policyEntry !== 'object') {
27
+ throw new BitError(`${prefix} must be an object, got type "${typeof policyEntry}" value: "${policyEntry}"`);
28
+ }
29
+ const mandatoryFields = ['name', 'version'];
30
+ mandatoryFields.forEach((field) => {
31
+ if (!policyEntry[field]) {
32
+ throw new BitError(`${prefix} must have a "${field}" property`);
33
+ }
34
+ });
8
35
  }
9
36
 
10
37
  function validateEnvPeers(peers: EnvJsoncPolicyPeerEntry[]) {
@@ -330,6 +330,9 @@ export function createVariantPolicyEntry(
330
330
  lifecycleType: DependencyLifecycleType,
331
331
  opts: VariantPolicyFromConfigObjectOptions
332
332
  ): VariantPolicyEntry {
333
+ if (!value) {
334
+ throw new Error(`createVariantPolicyEntry, value is missing for ${depId}`);
335
+ }
333
336
  const version = typeof value === 'string' ? value : value.version;
334
337
  const resolveFromEnv = typeof value === 'string' ? false : value.resolveFromEnv;
335
338
  const optional = typeof value === 'string' ? undefined : value.optional;