@teambit/dependency-resolver 1.0.99 → 1.0.101
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/base-dependency.ts +11 -1
- package/dependencies/component-dependency/component-dependency-factory.ts +2 -1
- package/dependencies/component-dependency/component-dependency.ts +3 -2
- package/dependencies/constants.ts +2 -0
- package/dependencies/dependency-list.ts +19 -1
- package/dependencies/dependency.ts +2 -0
- package/dist/dependencies/base-dependency.d.ts +4 -1
- package/dist/dependencies/base-dependency.js +10 -2
- package/dist/dependencies/base-dependency.js.map +1 -1
- package/dist/dependencies/component-dependency/component-dependency-factory.js +1 -1
- package/dist/dependencies/component-dependency/component-dependency-factory.js.map +1 -1
- package/dist/dependencies/component-dependency/component-dependency.d.ts +1 -1
- package/dist/dependencies/component-dependency/component-dependency.js +2 -2
- package/dist/dependencies/component-dependency/component-dependency.js.map +1 -1
- package/dist/dependencies/constants.d.ts +2 -0
- package/dist/dependencies/constants.js +4 -2
- package/dist/dependencies/constants.js.map +1 -1
- package/dist/dependencies/dependency-list.d.ts +8 -0
- package/dist/dependencies/dependency-list.js +9 -2
- package/dist/dependencies/dependency-list.js.map +1 -1
- package/dist/dependencies/dependency.d.ts +2 -0
- package/dist/dependencies/dependency.js.map +1 -1
- package/dist/dependency-resolver.main.runtime.js +18 -0
- package/dist/dependency-resolver.main.runtime.js.map +1 -1
- package/dist/get-all-policy-pkgs.js.map +1 -1
- package/dist/manifest/deduping/dedupe-dependencies.d.ts +1 -1
- package/dist/manifest/deduping/dedupe-dependencies.js.map +1 -1
- package/dist/manifest/deduping/hoist-dependencies.js +2 -0
- package/dist/manifest/deduping/hoist-dependencies.js.map +1 -1
- package/dist/manifest/deduping/index-by-dep-id.js +9 -0
- package/dist/manifest/deduping/index-by-dep-id.js.map +1 -1
- package/dist/manifest/manifest.d.ts +5 -1
- package/dist/manifest/manifest.js +5 -1
- package/dist/manifest/manifest.js.map +1 -1
- package/dist/manifest/workspace-manifest-factory.js +3 -1
- package/dist/manifest/workspace-manifest-factory.js.map +1 -1
- package/dist/policy/env-policy/env-policy.d.ts +1 -0
- package/dist/policy/env-policy/env-policy.js +28 -8
- package/dist/policy/env-policy/env-policy.js.map +1 -1
- package/dist/policy/index.d.ts +1 -1
- package/dist/policy/index.js +6 -0
- package/dist/policy/index.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 +5 -2
- package/dist/policy/variant-policy/variant-policy.js +29 -23
- package/dist/policy/variant-policy/variant-policy.js.map +1 -1
- package/dist/{preview-1702955736433.js → preview-1703128482252.js} +2 -2
- package/dist/show-fragments/serialize-by-lifecycle.js +1 -1
- package/dist/show-fragments/serialize-by-lifecycle.js.map +1 -1
- package/manifest/deduping/dedupe-dependencies.ts +1 -1
- package/manifest/deduping/hoist-dependencies.ts +2 -0
- package/manifest/deduping/index-by-dep-id.ts +3 -0
- package/manifest/manifest.ts +9 -1
- package/manifest/workspace-manifest-factory.ts +2 -0
- package/package.json +18 -15
- package/policy/env-policy/env-policy.ts +22 -15
- package/policy/index.ts +6 -1
- package/policy/variant-policy/index.ts +1 -0
- package/policy/variant-policy/variant-policy.ts +28 -33
- package/show-fragments/serialize-by-lifecycle.ts +1 -1
|
@@ -18,6 +18,11 @@ function _variantPolicy() {
|
|
|
18
18
|
};
|
|
19
19
|
return data;
|
|
20
20
|
}
|
|
21
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
22
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
23
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
24
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
25
|
+
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
21
26
|
/**
|
|
22
27
|
* Config that is used before the new env.jsonc format was introduced.
|
|
23
28
|
*/
|
|
@@ -40,7 +45,10 @@ class EnvPolicy extends _variantPolicy().VariantPolicy {
|
|
|
40
45
|
if (includeLegacyPeersInSelfPolicy && !configObject.peers && configObject.peerDependencies) {
|
|
41
46
|
selfPeersEntries = handleLegacyPeers(configObject);
|
|
42
47
|
} else {
|
|
43
|
-
selfPeersEntries = entriesFromKey(configObject, 'peers', 'version', 'runtime',
|
|
48
|
+
selfPeersEntries = entriesFromKey(configObject, 'peers', 'version', 'runtime', {
|
|
49
|
+
source: 'env-own',
|
|
50
|
+
force: true
|
|
51
|
+
});
|
|
44
52
|
}
|
|
45
53
|
const selfPolicy = _variantPolicy().VariantPolicy.fromArray(selfPeersEntries);
|
|
46
54
|
|
|
@@ -54,10 +62,14 @@ class EnvPolicy extends _variantPolicy().VariantPolicy {
|
|
|
54
62
|
force: true,
|
|
55
63
|
hidden: false
|
|
56
64
|
});
|
|
57
|
-
const componentPeersEntries = entriesFromKey(configObject, 'peers', 'supportedRange', 'peer',
|
|
65
|
+
const componentPeersEntries = entriesFromKey(configObject, 'peers', 'supportedRange', 'peer', {
|
|
66
|
+
source: 'env'
|
|
67
|
+
});
|
|
58
68
|
const otherKeyNames = ['dev', 'runtime'];
|
|
59
69
|
const otherEntries = otherKeyNames.reduce((acc, keyName) => {
|
|
60
|
-
const currEntries = entriesFromKey(configObject, keyName, 'version', keyName,
|
|
70
|
+
const currEntries = entriesFromKey(configObject, keyName, 'version', keyName, {
|
|
71
|
+
source: 'env'
|
|
72
|
+
});
|
|
61
73
|
return acc.concat(currEntries);
|
|
62
74
|
}, []);
|
|
63
75
|
const newPolicy = _variantPolicy().VariantPolicy.fromArray(componentPeersEntries.concat(otherEntries));
|
|
@@ -74,19 +86,27 @@ function handleLegacyPeers(configObject) {
|
|
|
74
86
|
return [];
|
|
75
87
|
}
|
|
76
88
|
const entries = Object.entries(configObject.peerDependencies).map(([packageName, version]) => {
|
|
77
|
-
return (0, _variantPolicy().createVariantPolicyEntry)(packageName, version, 'runtime',
|
|
89
|
+
return (0, _variantPolicy().createVariantPolicyEntry)(packageName, version, 'runtime', {
|
|
90
|
+
source: 'env-own',
|
|
91
|
+
hidden: false,
|
|
92
|
+
force: true
|
|
93
|
+
});
|
|
78
94
|
});
|
|
79
95
|
return entries;
|
|
80
96
|
}
|
|
81
|
-
function entriesFromKey(configObject, keyName, versionKey = 'version', lifecycleType,
|
|
97
|
+
function entriesFromKey(configObject, keyName, versionKey = 'version', lifecycleType, options) {
|
|
82
98
|
const configEntries = configObject[keyName];
|
|
83
99
|
if (!configEntries) {
|
|
84
100
|
return [];
|
|
85
101
|
}
|
|
86
102
|
const entries = configEntries.map(entry => {
|
|
87
|
-
return (0, _variantPolicy().createVariantPolicyEntry)(entry.name, entry[versionKey], lifecycleType,
|
|
88
|
-
|
|
89
|
-
|
|
103
|
+
return (0, _variantPolicy().createVariantPolicyEntry)(entry.name, entry[versionKey], lifecycleType, _objectSpread(_objectSpread({}, options), {}, {
|
|
104
|
+
source: options.source ?? 'env',
|
|
105
|
+
hidden: entry.hidden,
|
|
106
|
+
// allow override the entry's force value (used for the env itself)
|
|
107
|
+
force: options.force ?? !!entry.force,
|
|
108
|
+
optional: options.optional ?? !!entry.optional
|
|
109
|
+
}));
|
|
90
110
|
});
|
|
91
111
|
return entries;
|
|
92
112
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_validateEnvPolicy","data","require","_variantPolicy","EnvPolicy","VariantPolicy","constructor","_policiesEntries","selfPolicy","fromConfigObject","configObject","includeLegacyPeersInSelfPolicy","validateEnvPolicyConfigObject","selfPeersEntries","peers","peerDependencies","handleLegacyPeers","entriesFromKey","fromArray","legacyPolicy","source","force","hidden","componentPeersEntries","otherKeyNames","otherEntries","reduce","acc","keyName","currEntries","concat","newPolicy","finalComponentPolicy","mergePolices","entries","getEmpty","exports","Object","map","packageName","version","createVariantPolicyEntry","versionKey","lifecycleType","configEntries","entry","name"],"sources":["env-policy.ts"],"sourcesContent":["import { validateEnvPolicyConfigObject } from './validate-env-policy';\nimport {\n createVariantPolicyEntry,\n DependencySource,\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};\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(_policiesEntries: VariantPolicyEntry[], readonly selfPolicy: VariantPolicy) {\n super(_policiesEntries);\n }\n\n static fromConfigObject(\n configObject,\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 if (includeLegacyPeersInSelfPolicy && !configObject.peers && configObject.peerDependencies) {\n selfPeersEntries = handleLegacyPeers(configObject);\n } else {\n selfPeersEntries = entriesFromKey(configObject, 'peers', 'version', 'runtime', 'env-own', true);\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 const componentPeersEntries = entriesFromKey(configObject, 'peers', 'supportedRange', 'peer', 'env');\n const otherKeyNames: EnvJsoncPolicyConfigKey[] = ['dev', 'runtime'];\n const otherEntries: VariantPolicyEntry[] = otherKeyNames.reduce(\n (acc: VariantPolicyEntry[], keyName: EnvJsoncPolicyConfigKey) => {\n const currEntries = entriesFromKey(configObject, keyName, 'version', keyName as DependencyLifecycleType, 'env');\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', 'env-own', false, true);\n });\n return entries;\n}\n\nfunction entriesFromKey(\n configObject: VariantPolicyConfigObject,\n keyName: EnvJsoncPolicyConfigKey,\n versionKey: VersionKeyName = 'version',\n lifecycleType: DependencyLifecycleType,\n source: DependencySource = 'env',\n force?: boolean\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(\n entry.name,\n entry[versionKey],\n lifecycleType,\n source,\n 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"],"mappings":"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"}
|
|
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","obj","key","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","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(_policiesEntries: VariantPolicyEntry[], readonly selfPolicy: VariantPolicy) {\n super(_policiesEntries);\n }\n\n static fromConfigObject(\n configObject,\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 if (includeLegacyPeersInSelfPolicy && !configObject.peers && configObject.peerDependencies) {\n selfPeersEntries = handleLegacyPeers(configObject);\n } else {\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 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 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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"}
|
package/dist/policy/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { Policy, PolicySemver, PolicyConfigKeys, PolicyConfigKeysNames, PolicyEntry } from './policy';
|
|
2
2
|
export { WorkspacePolicy, WorkspacePolicyFactory, WorkspacePolicyConfigObject, AddEntryOptions as WorkspacePolicyAddEntryOptions, WorkspacePolicyEntry, WorkspacePolicyConfigKeysNames, } from './workspace-policy';
|
|
3
|
-
export { VariantPolicy, VariantPolicyConfigObject, SerializedVariantPolicy } from './variant-policy';
|
|
3
|
+
export { VariantPolicy, VariantPolicyEntryValue, VariantPolicyConfigObject, SerializedVariantPolicy, } from './variant-policy';
|
|
4
4
|
export { EnvPolicy, EnvPolicyConfigObject } from './env-policy';
|
package/dist/policy/index.js
CHANGED
|
@@ -63,6 +63,12 @@ Object.defineProperty(exports, "VariantPolicyConfigObject", {
|
|
|
63
63
|
return _variantPolicy().VariantPolicyConfigObject;
|
|
64
64
|
}
|
|
65
65
|
});
|
|
66
|
+
Object.defineProperty(exports, "VariantPolicyEntryValue", {
|
|
67
|
+
enumerable: true,
|
|
68
|
+
get: function () {
|
|
69
|
+
return _variantPolicy().VariantPolicyEntryValue;
|
|
70
|
+
}
|
|
71
|
+
});
|
|
66
72
|
Object.defineProperty(exports, "WorkspacePolicy", {
|
|
67
73
|
enumerable: true,
|
|
68
74
|
get: function () {
|
package/dist/policy/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_policy","data","require","_workspacePolicy","_variantPolicy","_envPolicy"],"sources":["index.ts"],"sourcesContent":["export { Policy, PolicySemver, PolicyConfigKeys, PolicyConfigKeysNames, PolicyEntry } from './policy';\nexport {\n WorkspacePolicy,\n WorkspacePolicyFactory,\n WorkspacePolicyConfigObject,\n AddEntryOptions as WorkspacePolicyAddEntryOptions,\n WorkspacePolicyEntry,\n WorkspacePolicyConfigKeysNames,\n} from './workspace-policy';\nexport {
|
|
1
|
+
{"version":3,"names":["_policy","data","require","_workspacePolicy","_variantPolicy","_envPolicy"],"sources":["index.ts"],"sourcesContent":["export { Policy, PolicySemver, PolicyConfigKeys, PolicyConfigKeysNames, PolicyEntry } from './policy';\nexport {\n WorkspacePolicy,\n WorkspacePolicyFactory,\n WorkspacePolicyConfigObject,\n AddEntryOptions as WorkspacePolicyAddEntryOptions,\n WorkspacePolicyEntry,\n WorkspacePolicyConfigKeysNames,\n} from './workspace-policy';\nexport {\n VariantPolicy,\n VariantPolicyEntryValue,\n VariantPolicyConfigObject,\n SerializedVariantPolicy,\n} from './variant-policy';\n\nexport { EnvPolicy, EnvPolicyConfigObject } from './env-policy';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAAA,QAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,OAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,iBAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,gBAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAQA,SAAAG,eAAA;EAAA,MAAAH,IAAA,GAAAC,OAAA;EAAAE,cAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAOA,SAAAI,WAAA;EAAA,MAAAJ,IAAA,GAAAC,OAAA;EAAAG,UAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { VariantPolicy, VariantPolicyConfigObject, VariantPolicyFromConfigObjectOptions, SerializedVariantPolicy, VariantPolicyEntry, createVariantPolicyEntry, DependencySource, } from './variant-policy';
|
|
1
|
+
export { VariantPolicy, VariantPolicyConfigObject, VariantPolicyFromConfigObjectOptions, SerializedVariantPolicy, VariantPolicyEntry, VariantPolicyEntryValue, createVariantPolicyEntry, DependencySource, } from './variant-policy';
|
|
@@ -33,6 +33,12 @@ Object.defineProperty(exports, "VariantPolicyEntry", {
|
|
|
33
33
|
return _variantPolicy().VariantPolicyEntry;
|
|
34
34
|
}
|
|
35
35
|
});
|
|
36
|
+
Object.defineProperty(exports, "VariantPolicyEntryValue", {
|
|
37
|
+
enumerable: true,
|
|
38
|
+
get: function () {
|
|
39
|
+
return _variantPolicy().VariantPolicyEntryValue;
|
|
40
|
+
}
|
|
41
|
+
});
|
|
36
42
|
Object.defineProperty(exports, "VariantPolicyFromConfigObjectOptions", {
|
|
37
43
|
enumerable: true,
|
|
38
44
|
get: function () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_variantPolicy","data","require"],"sources":["index.ts"],"sourcesContent":["export {\n VariantPolicy,\n VariantPolicyConfigObject,\n VariantPolicyFromConfigObjectOptions,\n SerializedVariantPolicy,\n VariantPolicyEntry,\n createVariantPolicyEntry,\n DependencySource,\n} from './variant-policy';\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_variantPolicy","data","require"],"sources":["index.ts"],"sourcesContent":["export {\n VariantPolicy,\n VariantPolicyConfigObject,\n VariantPolicyFromConfigObjectOptions,\n SerializedVariantPolicy,\n VariantPolicyEntry,\n VariantPolicyEntryValue,\n createVariantPolicyEntry,\n DependencySource,\n} from './variant-policy';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAAA,eAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,cAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA"}
|
|
@@ -13,6 +13,7 @@ export declare type VariantPolicyEntryVersion = SemverVersion;
|
|
|
13
13
|
export declare type VariantPolicyEntryValue = {
|
|
14
14
|
version: VariantPolicyEntryVersion;
|
|
15
15
|
resolveFromEnv?: boolean;
|
|
16
|
+
optional?: boolean;
|
|
16
17
|
};
|
|
17
18
|
export declare type DependencySource = 'auto' | 'env' | 'env-own' | 'slots' | 'config';
|
|
18
19
|
export declare type VariantPolicyEntry = PolicyEntry & {
|
|
@@ -26,6 +27,7 @@ export declare type VariantPolicyEntry = PolicyEntry & {
|
|
|
26
27
|
* force add to component dependencies even if it's not used by the component.
|
|
27
28
|
*/
|
|
28
29
|
force?: boolean;
|
|
30
|
+
optional?: boolean;
|
|
29
31
|
};
|
|
30
32
|
export declare type SerializedVariantPolicyEntry = VariantPolicyEntry;
|
|
31
33
|
export declare type SerializedVariantPolicy = SerializedVariantPolicyEntry[];
|
|
@@ -34,6 +36,7 @@ export interface VariantPolicyFromConfigObjectOptions {
|
|
|
34
36
|
source?: DependencySource;
|
|
35
37
|
hidden?: boolean;
|
|
36
38
|
force?: boolean;
|
|
39
|
+
optional?: boolean;
|
|
37
40
|
}
|
|
38
41
|
export declare class VariantPolicy implements Policy<VariantPolicyConfigObject> {
|
|
39
42
|
private _policiesEntries;
|
|
@@ -76,11 +79,11 @@ export declare class VariantPolicy implements Policy<VariantPolicyConfigObject>
|
|
|
76
79
|
*/
|
|
77
80
|
toLegacyAutoDetectOverrides(): DependenciesOverridesData;
|
|
78
81
|
toLegacyDepsOverrides(): DependenciesOverridesData;
|
|
79
|
-
static fromConfigObject(configObject: any,
|
|
82
|
+
static fromConfigObject(configObject: any, options?: VariantPolicyFromConfigObjectOptions): VariantPolicy;
|
|
80
83
|
static fromArray(entries: VariantPolicyEntry[]): VariantPolicy;
|
|
81
84
|
static parse(serializedEntries: SerializedVariantPolicy): VariantPolicy;
|
|
82
85
|
static getEmpty(): VariantPolicy;
|
|
83
86
|
static mergePolices(policies: VariantPolicy[]): VariantPolicy;
|
|
84
87
|
}
|
|
85
|
-
export declare function createVariantPolicyEntry(depId: string, value: VariantPolicyConfigEntryValue, lifecycleType: DependencyLifecycleType,
|
|
88
|
+
export declare function createVariantPolicyEntry(depId: string, value: VariantPolicyConfigEntryValue, lifecycleType: DependencyLifecycleType, opts: VariantPolicyFromConfigObjectOptions): VariantPolicyEntry;
|
|
86
89
|
export {};
|
|
@@ -33,6 +33,11 @@ function _dependencies() {
|
|
|
33
33
|
};
|
|
34
34
|
return data;
|
|
35
35
|
}
|
|
36
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
37
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
38
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
39
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
40
|
+
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
36
41
|
/**
|
|
37
42
|
* Allowed values are valid semver values, git urls, fs path.
|
|
38
43
|
*/
|
|
@@ -187,14 +192,10 @@ class VariantPolicy {
|
|
|
187
192
|
}, res);
|
|
188
193
|
return res;
|
|
189
194
|
}
|
|
190
|
-
static fromConfigObject(configObject, {
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
} = {}) {
|
|
195
|
-
const runtimeEntries = entriesFromKey(configObject, 'dependencies', source, hidden, force);
|
|
196
|
-
const devEntries = entriesFromKey(configObject, 'devDependencies', source, hidden, force);
|
|
197
|
-
const peerEntries = entriesFromKey(configObject, 'peerDependencies', source, hidden, force);
|
|
195
|
+
static fromConfigObject(configObject, options = {}) {
|
|
196
|
+
const runtimeEntries = entriesFromKey(configObject, 'dependencies', options);
|
|
197
|
+
const devEntries = entriesFromKey(configObject, 'devDependencies', options);
|
|
198
|
+
const peerEntries = entriesFromKey(configObject, 'peerDependencies', options);
|
|
198
199
|
const entries = runtimeEntries.concat(devEntries).concat(peerEntries);
|
|
199
200
|
return new VariantPolicy(entries);
|
|
200
201
|
}
|
|
@@ -224,55 +225,60 @@ function uniqEntries(entries) {
|
|
|
224
225
|
});
|
|
225
226
|
return uniq;
|
|
226
227
|
}
|
|
227
|
-
function entriesFromKey(configObject, keyName,
|
|
228
|
+
function entriesFromKey(configObject, keyName, options) {
|
|
228
229
|
const obj = configObject[keyName];
|
|
229
230
|
if (!obj) {
|
|
230
231
|
return [];
|
|
231
232
|
}
|
|
232
233
|
const lifecycleType = _dependencies().LIFECYCLE_TYPE_BY_KEY_NAME[keyName];
|
|
233
234
|
if (Array.isArray(obj)) {
|
|
234
|
-
return entriesFromArrayKey(obj, lifecycleType,
|
|
235
|
+
return entriesFromArrayKey(obj, lifecycleType, options);
|
|
235
236
|
}
|
|
236
|
-
return entriesFromObjectKey(obj, lifecycleType,
|
|
237
|
+
return entriesFromObjectKey(obj, lifecycleType, options);
|
|
237
238
|
}
|
|
238
|
-
function entriesFromObjectKey(obj, lifecycleType,
|
|
239
|
+
function entriesFromObjectKey(obj, lifecycleType, options) {
|
|
239
240
|
if (!obj) {
|
|
240
241
|
return [];
|
|
241
242
|
}
|
|
242
243
|
const entries = Object.entries(obj).map(([depId, value]) => {
|
|
243
244
|
if (value) {
|
|
244
|
-
return createVariantPolicyEntry(depId, value, lifecycleType,
|
|
245
|
+
return createVariantPolicyEntry(depId, value, lifecycleType, _objectSpread(_objectSpread({}, options), {}, {
|
|
246
|
+
force: options.force ?? true
|
|
247
|
+
}));
|
|
245
248
|
}
|
|
246
249
|
return undefined;
|
|
247
250
|
});
|
|
248
251
|
return (0, _lodash().compact)(entries);
|
|
249
252
|
}
|
|
250
|
-
function entriesFromArrayKey(configEntries, lifecycleType,
|
|
253
|
+
function entriesFromArrayKey(configEntries, lifecycleType, options) {
|
|
251
254
|
if (!configEntries) {
|
|
252
255
|
return [];
|
|
253
256
|
}
|
|
254
257
|
const entries = configEntries.map(entry => {
|
|
255
|
-
return createVariantPolicyEntry(entry.name, entry.version, lifecycleType,
|
|
256
|
-
|
|
257
|
-
|
|
258
|
+
return createVariantPolicyEntry(entry.name, entry.version, lifecycleType, _objectSpread(_objectSpread({}, options), {}, {
|
|
259
|
+
source: options.source ?? 'config',
|
|
260
|
+
hidden: Boolean(options.hidden ?? entry.hidden),
|
|
261
|
+
// allow override the entry's force value (used for the env itself)
|
|
262
|
+
force: Boolean(options.force ?? entry.force),
|
|
263
|
+
optional: Boolean(options.optional ?? entry.optional)
|
|
264
|
+
}));
|
|
258
265
|
});
|
|
259
266
|
return entries;
|
|
260
267
|
}
|
|
261
|
-
function createVariantPolicyEntry(depId, value, lifecycleType,
|
|
268
|
+
function createVariantPolicyEntry(depId, value, lifecycleType, opts) {
|
|
262
269
|
const version = typeof value === 'string' ? value : value.version;
|
|
263
270
|
const resolveFromEnv = typeof value === 'string' ? false : value.resolveFromEnv;
|
|
271
|
+
const optional = typeof value === 'string' ? undefined : value.optional;
|
|
264
272
|
const entryValue = {
|
|
265
273
|
version,
|
|
266
274
|
resolveFromEnv
|
|
267
275
|
};
|
|
268
|
-
const entry = {
|
|
276
|
+
const entry = _objectSpread(_objectSpread({}, opts), {}, {
|
|
269
277
|
dependencyId: depId,
|
|
270
278
|
value: entryValue,
|
|
271
279
|
lifecycleType,
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
force
|
|
275
|
-
};
|
|
280
|
+
optional: optional ?? opts.optional
|
|
281
|
+
});
|
|
276
282
|
return entry;
|
|
277
283
|
}
|
|
278
284
|
|
|
@@ -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 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
|
+
{"version":3,"names":["_utils","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","obj","key","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","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","getValidSemverDepVersion","snapToSemver","serialize","toConfigObject","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","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/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 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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"}
|
|
@@ -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.101/dist/dependency-resolver.composition.js';
|
|
2
|
+
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.dependencies_dependency-resolver@1.0.101/dist/dependency-resolver.docs.mdx';
|
|
3
3
|
|
|
4
4
|
export const compositions = [compositions_0];
|
|
5
5
|
export const overview = [overview_0];
|
|
@@ -16,7 +16,7 @@ function serializeByLifecycle(deps, lifecycle) {
|
|
|
16
16
|
const longestLength = getLongestDepName(filteredByLifecycle);
|
|
17
17
|
const paddedNames = filteredByLifecycle.dependencies.map(dep => {
|
|
18
18
|
const paddedName = getNameWithVersion(dep).padEnd(longestLength + 1, '-');
|
|
19
|
-
return `${paddedName} (${dep.type})`;
|
|
19
|
+
return `${paddedName} (${dep.type})${dep.optional ? '(optional)' : ''}`;
|
|
20
20
|
});
|
|
21
21
|
return paddedNames.join('\n');
|
|
22
22
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_lodash","data","require","serializeByLifecycle","deps","lifecycle","filteredByLifecycle","filter","dep","sort","longestLength","getLongestDepName","paddedNames","dependencies","map","paddedName","getNameWithVersion","padEnd","type","join","longestDep","maxBy","length","_dep$getPackageName","_dep$getPackageName2","nameWithVersion","getPackageName","call","version","id"],"sources":["serialize-by-lifecycle.ts"],"sourcesContent":["import { maxBy } from 'lodash';\nimport type { DependencyList, DependencyLifecycleType, Dependency } from '../dependencies';\n\nexport function serializeByLifecycle(deps: DependencyList, lifecycle: DependencyLifecycleType) {\n const filteredByLifecycle = deps.filter((dep) => dep.lifecycle === lifecycle).sort();\n const longestLength = getLongestDepName(filteredByLifecycle);\n const paddedNames = filteredByLifecycle.dependencies.map((dep) => {\n const paddedName = getNameWithVersion(dep).padEnd(longestLength + 1, '-');\n return `${paddedName} (${dep.type})`;\n });\n return paddedNames.join('\\n');\n}\n\nfunction getLongestDepName(deps: DependencyList): number {\n const longestDep = maxBy(deps.dependencies, (dep) => getNameWithVersion(dep).length);\n if (!longestDep) return 50;\n return getNameWithVersion(longestDep).length;\n}\n\nfunction getNameWithVersion(dep: Dependency) {\n const nameWithVersion = dep.getPackageName?.()\n ? `${dep.getPackageName?.()}@${dep.version}`\n : `${dep.id}@${dep.version}`;\n return nameWithVersion;\n}\n"],"mappings":";;;;;;AAAA,SAAAA,QAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,OAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGO,SAASE,oBAAoBA,CAACC,IAAoB,EAAEC,SAAkC,EAAE;EAC7F,MAAMC,mBAAmB,GAAGF,IAAI,CAACG,MAAM,CAAEC,GAAG,IAAKA,GAAG,CAACH,SAAS,KAAKA,SAAS,CAAC,CAACI,IAAI,CAAC,CAAC;EACpF,MAAMC,aAAa,GAAGC,iBAAiB,CAACL,mBAAmB,CAAC;EAC5D,MAAMM,WAAW,GAAGN,mBAAmB,CAACO,YAAY,CAACC,GAAG,CAAEN,GAAG,IAAK;IAChE,MAAMO,UAAU,GAAGC,kBAAkB,CAACR,GAAG,CAAC,CAACS,MAAM,CAACP,aAAa,GAAG,CAAC,EAAE,GAAG,CAAC;IACzE,OAAQ,GAAEK,UAAW,KAAIP,GAAG,CAACU,IAAK,
|
|
1
|
+
{"version":3,"names":["_lodash","data","require","serializeByLifecycle","deps","lifecycle","filteredByLifecycle","filter","dep","sort","longestLength","getLongestDepName","paddedNames","dependencies","map","paddedName","getNameWithVersion","padEnd","type","optional","join","longestDep","maxBy","length","_dep$getPackageName","_dep$getPackageName2","nameWithVersion","getPackageName","call","version","id"],"sources":["serialize-by-lifecycle.ts"],"sourcesContent":["import { maxBy } from 'lodash';\nimport type { DependencyList, DependencyLifecycleType, Dependency } from '../dependencies';\n\nexport function serializeByLifecycle(deps: DependencyList, lifecycle: DependencyLifecycleType) {\n const filteredByLifecycle = deps.filter((dep) => dep.lifecycle === lifecycle).sort();\n const longestLength = getLongestDepName(filteredByLifecycle);\n const paddedNames = filteredByLifecycle.dependencies.map((dep) => {\n const paddedName = getNameWithVersion(dep).padEnd(longestLength + 1, '-');\n return `${paddedName} (${dep.type})${dep.optional ? '(optional)' : ''}`;\n });\n return paddedNames.join('\\n');\n}\n\nfunction getLongestDepName(deps: DependencyList): number {\n const longestDep = maxBy(deps.dependencies, (dep) => getNameWithVersion(dep).length);\n if (!longestDep) return 50;\n return getNameWithVersion(longestDep).length;\n}\n\nfunction getNameWithVersion(dep: Dependency) {\n const nameWithVersion = dep.getPackageName?.()\n ? `${dep.getPackageName?.()}@${dep.version}`\n : `${dep.id}@${dep.version}`;\n return nameWithVersion;\n}\n"],"mappings":";;;;;;AAAA,SAAAA,QAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,OAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGO,SAASE,oBAAoBA,CAACC,IAAoB,EAAEC,SAAkC,EAAE;EAC7F,MAAMC,mBAAmB,GAAGF,IAAI,CAACG,MAAM,CAAEC,GAAG,IAAKA,GAAG,CAACH,SAAS,KAAKA,SAAS,CAAC,CAACI,IAAI,CAAC,CAAC;EACpF,MAAMC,aAAa,GAAGC,iBAAiB,CAACL,mBAAmB,CAAC;EAC5D,MAAMM,WAAW,GAAGN,mBAAmB,CAACO,YAAY,CAACC,GAAG,CAAEN,GAAG,IAAK;IAChE,MAAMO,UAAU,GAAGC,kBAAkB,CAACR,GAAG,CAAC,CAACS,MAAM,CAACP,aAAa,GAAG,CAAC,EAAE,GAAG,CAAC;IACzE,OAAQ,GAAEK,UAAW,KAAIP,GAAG,CAACU,IAAK,IAAGV,GAAG,CAACW,QAAQ,GAAG,YAAY,GAAG,EAAG,EAAC;EACzE,CAAC,CAAC;EACF,OAAOP,WAAW,CAACQ,IAAI,CAAC,IAAI,CAAC;AAC/B;AAEA,SAAST,iBAAiBA,CAACP,IAAoB,EAAU;EACvD,MAAMiB,UAAU,GAAG,IAAAC,eAAK,EAAClB,IAAI,CAACS,YAAY,EAAGL,GAAG,IAAKQ,kBAAkB,CAACR,GAAG,CAAC,CAACe,MAAM,CAAC;EACpF,IAAI,CAACF,UAAU,EAAE,OAAO,EAAE;EAC1B,OAAOL,kBAAkB,CAACK,UAAU,CAAC,CAACE,MAAM;AAC9C;AAEA,SAASP,kBAAkBA,CAACR,GAAe,EAAE;EAAA,IAAAgB,mBAAA,EAAAC,oBAAA;EAC3C,MAAMC,eAAe,GAAG,CAAAF,mBAAA,GAAAhB,GAAG,CAACmB,cAAc,cAAAH,mBAAA,eAAlBA,mBAAA,CAAAI,IAAA,CAAApB,GAAqB,CAAC,GACzC,IAAAiB,oBAAA,GAAEjB,GAAG,CAACmB,cAAc,cAAAF,oBAAA,uBAAlBA,oBAAA,CAAAG,IAAA,CAAApB,GAAqB,CAAE,IAAGA,GAAG,CAACqB,OAAQ,EAAC,GACzC,GAAErB,GAAG,CAACsB,EAAG,IAAGtB,GAAG,CAACqB,OAAQ,EAAC;EAC9B,OAAOH,eAAe;AACxB"}
|
|
@@ -24,7 +24,7 @@ export type DedupedDependenciesIssues = {
|
|
|
24
24
|
};
|
|
25
25
|
|
|
26
26
|
export type DedupedDependencies = {
|
|
27
|
-
rootDependencies: ManifestDependenciesObject
|
|
27
|
+
rootDependencies: Omit<ManifestDependenciesObject, 'peerDependenciesMeta'>;
|
|
28
28
|
componentDependenciesMap: ComponentDependenciesMap;
|
|
29
29
|
issus?: DedupedDependenciesIssues;
|
|
30
30
|
};
|
|
@@ -413,6 +413,7 @@ function addToComponentDependenciesMapInDeduped(
|
|
|
413
413
|
if (!compEntry) {
|
|
414
414
|
compEntry = {
|
|
415
415
|
dependencies: {},
|
|
416
|
+
optionalDependencies: {},
|
|
416
417
|
devDependencies: {},
|
|
417
418
|
peerDependencies: {},
|
|
418
419
|
};
|
|
@@ -503,6 +504,7 @@ export function getEmptyDedupedDependencies(): DedupedDependencies {
|
|
|
503
504
|
const result: DedupedDependencies = {
|
|
504
505
|
rootDependencies: {
|
|
505
506
|
dependencies: {},
|
|
507
|
+
optionalDependencies: {},
|
|
506
508
|
devDependencies: {},
|
|
507
509
|
peerDependencies: {},
|
|
508
510
|
},
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import forEachObjIndexed from 'ramda/src/forEachObjIndexed';
|
|
2
2
|
import pick from 'ramda/src/pick';
|
|
3
|
+
import omit from 'ramda/src/omit';
|
|
3
4
|
import { LIFECYCLE_TYPE_BY_KEY_NAME } from '../../dependencies/constants';
|
|
4
5
|
import { ManifestDependenciesKeysNames, DepObjectValue } from '../manifest';
|
|
5
6
|
import { DependencyLifecycleType, SemverVersion, PackageName } from '../../dependencies';
|
|
@@ -41,6 +42,8 @@ export function indexByDepId(
|
|
|
41
42
|
componentDependenciesMap.forEach((depsObject, compPackageName) => {
|
|
42
43
|
if (hoistedDepFields) {
|
|
43
44
|
depsObject = pick(hoistedDepFields, depsObject);
|
|
45
|
+
} else {
|
|
46
|
+
depsObject = omit(['peerDependenciesMeta'], depsObject);
|
|
44
47
|
}
|
|
45
48
|
forEachObjIndexed(addSpecificLifeCycleDepsToIndex(result, compPackageName), depsObject);
|
|
46
49
|
});
|
package/manifest/manifest.ts
CHANGED
|
@@ -1,17 +1,21 @@
|
|
|
1
1
|
import { SemVer } from 'semver';
|
|
2
|
+
import { PeerDependenciesMeta } from '../dependencies/dependency-list';
|
|
2
3
|
import { PackageName, SemverVersion } from '../dependencies';
|
|
3
4
|
|
|
4
5
|
// export type ManifestDependenciesKeys = 'dependencies' | 'devDependencies' | 'peerDependencies';
|
|
5
6
|
|
|
6
7
|
export type ManifestDependenciesKeys = {
|
|
7
8
|
dependencies: 'dependencies';
|
|
9
|
+
optionalDependencies: 'optionalDependencies';
|
|
8
10
|
devDependencies: 'devDependencies';
|
|
9
11
|
peerDependencies: 'peerDependencies';
|
|
10
12
|
};
|
|
11
13
|
|
|
12
14
|
export type ManifestDependenciesKeysNames = keyof ManifestDependenciesKeys;
|
|
13
15
|
|
|
14
|
-
export type ManifestDependenciesObject = Partial<Record<ManifestDependenciesKeysNames, DepObjectValue
|
|
16
|
+
export type ManifestDependenciesObject = Partial<Record<ManifestDependenciesKeysNames, DepObjectValue>> & {
|
|
17
|
+
peerDependenciesMeta?: PeerDependenciesMeta;
|
|
18
|
+
};
|
|
15
19
|
|
|
16
20
|
export type DepObjectValue = Record<PackageName, SemverVersion>;
|
|
17
21
|
|
|
@@ -29,8 +33,10 @@ export class Manifest {
|
|
|
29
33
|
|
|
30
34
|
toJson(options: ManifestToJsonOptions = {}): Record<string, any> {
|
|
31
35
|
let dependencies = this.dependencies.dependencies || {};
|
|
36
|
+
const optionalDependencies = this.dependencies.optionalDependencies || {};
|
|
32
37
|
const devDependencies = this.dependencies.devDependencies || {};
|
|
33
38
|
const peerDependencies = this.dependencies.peerDependencies || {};
|
|
39
|
+
const peerDependenciesMeta = this.dependencies.peerDependenciesMeta || {};
|
|
34
40
|
if (options.copyPeerToRuntime) {
|
|
35
41
|
dependencies = { ...peerDependencies, ...dependencies };
|
|
36
42
|
}
|
|
@@ -38,8 +44,10 @@ export class Manifest {
|
|
|
38
44
|
name: this.name,
|
|
39
45
|
version: this.version.version,
|
|
40
46
|
dependencies,
|
|
47
|
+
optionalDependencies,
|
|
41
48
|
devDependencies,
|
|
42
49
|
peerDependencies,
|
|
50
|
+
peerDependenciesMeta,
|
|
43
51
|
};
|
|
44
52
|
// if (options.includeDir) {
|
|
45
53
|
// return {
|
|
@@ -280,8 +280,10 @@ export class WorkspaceManifestFactory {
|
|
|
280
280
|
) {
|
|
281
281
|
const blankDependencies: ManifestDependenciesObject = {
|
|
282
282
|
dependencies: {},
|
|
283
|
+
optionalDependencies: {},
|
|
283
284
|
devDependencies: {},
|
|
284
285
|
peerDependencies: {},
|
|
286
|
+
peerDependenciesMeta: {},
|
|
285
287
|
};
|
|
286
288
|
let dependencies = blankDependencies;
|
|
287
289
|
if (dedupedDependencies.componentDependenciesMap.has(packageName)) {
|