@teambit/snapping 1.0.1235 → 1.0.1237
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/dist/generate-comp-from-scope.d.ts +2 -1
- package/dist/generate-comp-from-scope.js +2 -2
- package/dist/generate-comp-from-scope.js.map +1 -1
- package/dist/plus-range-versions.d.ts +11 -0
- package/dist/plus-range-versions.js +109 -0
- package/dist/plus-range-versions.js.map +1 -0
- package/dist/plus-range-versions.spec.d.ts +1 -0
- package/dist/plus-range-versions.spec.js +140 -0
- package/dist/plus-range-versions.spec.js.map +1 -0
- package/dist/snapping.main.runtime.d.ts +10 -0
- package/dist/snapping.main.runtime.js +102 -26
- package/dist/snapping.main.runtime.js.map +1 -1
- package/dist/version-maker.js +16 -5
- package/dist/version-maker.js.map +1 -1
- package/package.json +43 -42
- /package/dist/{preview-1792442853086.js → preview-1792532220087.js} +0 -0
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ComponentID } from '@teambit/component-id';
|
|
2
2
|
import type { ScopeMain } from '@teambit/scope';
|
|
3
|
+
import type { DependenciesOverridesData } from '@teambit/legacy.consumer-config';
|
|
3
4
|
import type { Component } from '@teambit/component';
|
|
4
5
|
import type { DependenciesMain } from '@teambit/dependencies';
|
|
5
6
|
import type { DependencyResolverMain, VariantPolicyConfigArr } from '@teambit/dependency-resolver';
|
|
@@ -30,4 +31,4 @@ export type CompData = {
|
|
|
30
31
|
* ConsumerComponent.
|
|
31
32
|
*/
|
|
32
33
|
export declare function generateCompFromScope(scope: ScopeMain, depsResolver: DependencyResolverMain, compData: CompData, snapping: SnappingMain): Promise<Component>;
|
|
33
|
-
export declare function addDeps(component: Component, snapData: SnapDataParsed, scope: ScopeMain, deps: DependenciesMain, depsResolver: DependencyResolverMain, snapping: SnappingMain, autoDetect?: VariantPolicyConfigArr): Promise<void>;
|
|
34
|
+
export declare function addDeps(component: Component, snapData: SnapDataParsed, scope: ScopeMain, deps: DependenciesMain, depsResolver: DependencyResolverMain, snapping: SnappingMain, autoDetect?: VariantPolicyConfigArr, autoDetectOverrides?: DependenciesOverridesData): Promise<void>;
|
|
@@ -121,7 +121,7 @@ async function getCompDeps(scope, depsResolver, newDeps) {
|
|
|
121
121
|
compPeerDeps
|
|
122
122
|
};
|
|
123
123
|
}
|
|
124
|
-
async function addDeps(component, snapData, scope, deps, depsResolver, snapping, autoDetect) {
|
|
124
|
+
async function addDeps(component, snapData, scope, deps, depsResolver, snapping, autoDetect, autoDetectOverrides) {
|
|
125
125
|
const newDeps = snapData.newDependencies || [];
|
|
126
126
|
const updateDeps = snapData.dependencies || [];
|
|
127
127
|
const packageDeps = newDeps.filter(dep => !dep.isComponent);
|
|
@@ -188,7 +188,7 @@ async function addDeps(component, snapData, scope, deps, depsResolver, snapping,
|
|
|
188
188
|
|
|
189
189
|
// add the dependencies to the legacy ConsumerComponent object
|
|
190
190
|
// it takes care of both: given dependencies (from the cli) and the overrides, which are coming from the env.
|
|
191
|
-
await deps.loadDependenciesFromScope(consumerComponent, dependenciesData);
|
|
191
|
+
await deps.loadDependenciesFromScope(consumerComponent, dependenciesData, autoDetectOverrides);
|
|
192
192
|
await snapping.UpdateDepsAspectsSaveIntoDepsResolver(component, updateDeps);
|
|
193
193
|
}
|
|
194
194
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_componentId","data","require","_legacy","_component","_legacy2","_legacy3","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","generateCompFromScope","scope","depsResolver","compData","snapping","files","Error","map","file","SourceFile","base","path","contents","Buffer","from","content","test","id","componentId","extensions","ExtensionDataList","fromConfigObject","aspects","compDeps","getCompDeps","newDependencies","consumerComponent","ConsumerComponent","mainFile","name","fullName","schema","CURRENT_SCHEMA","overrides","ComponentOverrides","loadNewFromScope","defaultScope","log","message","date","Date","now","toString","username","email","_addFlattenedDependenciesToComponents","version","filesBitObject","legacyScope","sources","consumerComponentToVersion","modelComponent","findOrAddComponent","hash","objects","writeObjectsToTheFS","f","component","getManyByLegacy","newDeps","compIdsData","dep","isComponent","compIdsDataParsed","ComponentID","fromString","compIds","changeVersion","comps","getMany","toDependency","depId","comp","find","c","isEqualWithoutVersion","pkgName","getPackageName","Dependency","type","compDevDeps","compPeerDeps","addDeps","snapData","deps","autoDetect","updateDeps","dependencies","packageDeps","toPackageObj","pkgs","reduce","acc","curr","getPkgObj","allAutoDeps","depType","manipulateCurrentPkgs","removeDependencies","pkg","found","d","startsWith","replace","manipulateCurrentDeps","currentCompDeps","afterRemoval","includes","toStringWithoutVersion","foundInAutoDeps","packageName","undefined","state","_consumer","dependenciesData","allDependencies","get","devDependencies","peerDependencies","allPackagesDependencies","packageDependencies","devPackageDependencies","peerPackageDependencies","loadDependenciesFromScope","UpdateDepsAspectsSaveIntoDepsResolver"],"sources":["generate-comp-from-scope.ts"],"sourcesContent":["import { ComponentID } from '@teambit/component-id';\nimport { Dependency, ConsumerComponent, CURRENT_SCHEMA } from '@teambit/legacy.consumer-component';\nimport { SourceFile } from '@teambit/component.sources';\nimport type { ScopeMain } from '@teambit/scope';\nimport { ComponentOverrides } from '@teambit/legacy.consumer-config';\nimport { ExtensionDataList } from '@teambit/legacy.extension-data';\nimport type { Component } from '@teambit/component';\nimport type { DependenciesMain } from '@teambit/dependencies';\nimport type { DependencyResolverMain, VariantPolicyConfigArr } from '@teambit/dependency-resolver';\nimport type { FileData, SnappingMain, SnapDataParsed } from './snapping.main.runtime';\n\nexport type NewDependency = {\n id: string; // component-id or package-name. e.g. \"teambit.react/react\" or \"lodash\".\n version?: string; // version of the package. e.g. \"2.0.3\". for packages, it is mandatory.\n isComponent?: boolean; // default true. if false, it's a package dependency\n type?: 'runtime' | 'dev' | 'peer'; // default \"runtime\".\n};\n\nexport type NewDependencies = NewDependency[];\n\nexport type CompData = {\n componentId: ComponentID;\n dependencies: string[];\n aspects: Record<string, any> | undefined;\n message: string | undefined;\n files: FileData[] | undefined;\n mainFile?: string;\n newDependencies?: NewDependencies;\n};\n\n/**\n * normally new components are created from a workspace. the files are in the filesystem and the ConsumerComponent\n * object is created from the files.\n * here, we need to create the ConsumerComponent object \"on the fly\". we don't have workspace, only scope. the files\n * are in-memory (we got them from snap-from-scope command).\n * the way how it is done is by creating a minimal ConsumerComponent object, then convert `Version` object from it,\n * write the version and files into the scope as objects, so then it's possible to load Component object using the\n * ConsumerComponent.\n */\nexport async function generateCompFromScope(\n scope: ScopeMain,\n depsResolver: DependencyResolverMain,\n compData: CompData,\n snapping: SnappingMain\n): Promise<Component> {\n if (!compData.files) throw new Error('generateComp: files are missing');\n const files = compData.files.map((file) => {\n return new SourceFile({ base: '.', path: file.path, contents: Buffer.from(file.content), test: false });\n });\n const id = compData.componentId;\n const extensions = ExtensionDataList.fromConfigObject(compData.aspects || {});\n const { compDeps } = await getCompDeps(scope, depsResolver, compData.newDependencies || []);\n\n const consumerComponent = new ConsumerComponent({\n mainFile: compData.mainFile || 'index.ts',\n name: compData.componentId.fullName,\n scope: compData.componentId.scope,\n files,\n schema: CURRENT_SCHEMA,\n overrides: await ComponentOverrides.loadNewFromScope(id, files, extensions, compDeps),\n defaultScope: compData.componentId.scope,\n extensions,\n // the dummy data here are not important. this Version object will be discarded later.\n log: {\n message: compData.message || '',\n date: Date.now().toString(),\n username: '',\n email: '',\n },\n });\n // this is needed, otherwise in case of updating envs/aspects, the version-validator throws\n // an error saying \"the extension ${extensionId.toString()} is missing from the flattenedDependencies\"\n await snapping._addFlattenedDependenciesToComponents([consumerComponent]);\n\n const { version, files: filesBitObject } =\n await scope.legacyScope.sources.consumerComponentToVersion(consumerComponent);\n const modelComponent = await scope.legacyScope.sources.findOrAddComponent(consumerComponent);\n consumerComponent.version = version.hash().toString();\n await scope.legacyScope.objects.writeObjectsToTheFS([version, modelComponent, ...filesBitObject.map((f) => f.file)]);\n const component = await scope.getManyByLegacy([consumerComponent]);\n\n return component[0];\n}\n\nasync function getCompDeps(scope: ScopeMain, depsResolver: DependencyResolverMain, newDeps: NewDependencies) {\n const compIdsData = newDeps.filter((dep) => dep.isComponent);\n const compIdsDataParsed = compIdsData.map((data) => ({\n ...data,\n id: ComponentID.fromString(data.id),\n }));\n const compIds = compIdsDataParsed.map((dep) => (dep.version ? dep.id.changeVersion(dep.version) : dep.id));\n const comps = await scope.getMany(compIds);\n const toDependency = (depId: ComponentID) => {\n const comp = comps.find((c) => c.id.isEqualWithoutVersion(depId));\n if (!comp) throw new Error(`unable to find the specified dependency ${depId.toString()} in the scope`);\n const pkgName = depsResolver.getPackageName(comp);\n return new Dependency(comp.id, [], pkgName);\n };\n const compDeps = compIdsDataParsed.filter((c) => c.type === 'runtime').map((dep) => toDependency(dep.id));\n const compDevDeps = compIdsDataParsed.filter((c) => c.type === 'dev').map((dep) => toDependency(dep.id));\n const compPeerDeps = compIdsDataParsed.filter((c) => c.type === 'peer').map((dep) => toDependency(dep.id));\n return { compDeps, compDevDeps, compPeerDeps };\n}\n\nexport async function addDeps(\n component: Component,\n snapData: SnapDataParsed,\n scope: ScopeMain,\n deps: DependenciesMain,\n depsResolver: DependencyResolverMain,\n snapping: SnappingMain,\n autoDetect?: VariantPolicyConfigArr\n) {\n const newDeps = snapData.newDependencies || [];\n const updateDeps = snapData.dependencies || [];\n const packageDeps = newDeps.filter((dep) => !dep.isComponent);\n const { compDeps, compDevDeps, compPeerDeps } = await getCompDeps(scope, depsResolver, newDeps);\n const toPackageObj = (pkgs: Array<{ id: string; version?: string }>) => {\n return pkgs.reduce((acc, curr) => {\n if (!curr.version) throw new Error(`please specify a version for the package dependency: \"${curr.id}\"`);\n acc[curr.id] = curr.version;\n return acc;\n }, {});\n };\n const getPkgObj = (type: 'runtime' | 'dev' | 'peer') => {\n return toPackageObj(packageDeps.filter((dep) => dep.type === type));\n };\n const allAutoDeps: { [pkgName: string]: string } = {};\n ['dependencies', 'devDependencies', 'peerDependencies'].forEach((depType) => {\n autoDetect?.[depType]?.forEach((dep) => {\n allAutoDeps[dep.name] = dep.version;\n });\n });\n\n const manipulateCurrentPkgs = (pkgs: Record<string, string>) => {\n snapData.removeDependencies?.forEach((pkg) => {\n delete pkgs[pkg];\n });\n Object.keys(pkgs).forEach((pkg) => {\n const found = updateDeps.find((d) => d.startsWith(`${pkg}@`));\n if (found) {\n pkgs[pkg] = found.replace(`${pkg}@`, '');\n }\n });\n return pkgs;\n };\n const manipulateCurrentDeps = (currentCompDeps: Dependency[]) => {\n const afterRemoval = currentCompDeps.filter(\n (dep) => !snapData.removeDependencies?.includes(dep.id.toStringWithoutVersion())\n );\n afterRemoval.forEach((dep) => {\n const found = updateDeps.find((d) => d.startsWith(`${dep.id.toStringWithoutVersion()}@`));\n if (found) {\n dep.id = dep.id.changeVersion(found.replace(`${dep.id.toStringWithoutVersion()}@`, ''));\n }\n const foundInAutoDeps = dep.packageName ? allAutoDeps[dep.packageName] : undefined;\n if (foundInAutoDeps) {\n dep.id = dep.id.changeVersion(allAutoDeps[dep.packageName!]);\n }\n });\n return afterRemoval;\n };\n\n const consumerComponent = component.state._consumer as ConsumerComponent;\n\n const dependenciesData = {\n allDependencies: {\n dependencies: [...compDeps, ...manipulateCurrentDeps(consumerComponent.dependencies.get())],\n devDependencies: [...compDevDeps, ...manipulateCurrentDeps(consumerComponent.devDependencies.get())],\n peerDependencies: [...compPeerDeps, ...manipulateCurrentDeps(consumerComponent.peerDependencies.get())],\n },\n allPackagesDependencies: {\n packageDependencies: { ...manipulateCurrentPkgs(consumerComponent.packageDependencies), ...getPkgObj('runtime') },\n devPackageDependencies: {\n ...manipulateCurrentPkgs(consumerComponent.devPackageDependencies),\n ...getPkgObj('dev'),\n },\n peerPackageDependencies: {\n ...manipulateCurrentPkgs(consumerComponent.peerPackageDependencies),\n ...getPkgObj('peer'),\n },\n },\n };\n\n // add the dependencies to the legacy ConsumerComponent object\n // it takes care of both: given dependencies (from the cli) and the overrides, which are coming from the env.\n await deps.loadDependenciesFromScope(consumerComponent, dependenciesData);\n\n await snapping.UpdateDepsAspectsSaveIntoDepsResolver(component, updateDeps);\n}\n"],"mappings":";;;;;;;AAAA,SAAAA,aAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,YAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,QAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,OAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,WAAA;EAAA,MAAAH,IAAA,GAAAC,OAAA;EAAAE,UAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAI,SAAA;EAAA,MAAAJ,IAAA,GAAAC,OAAA;EAAAG,QAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAK,SAAA;EAAA,MAAAL,IAAA,GAAAC,OAAA;EAAAI,QAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAmE,SAAAM,QAAAC,CAAA,EAAAC,CAAA,QAAAC,CAAA,GAAAC,MAAA,CAAAC,IAAA,CAAAJ,CAAA,OAAAG,MAAA,CAAAE,qBAAA,QAAAC,CAAA,GAAAH,MAAA,CAAAE,qBAAA,CAAAL,CAAA,GAAAC,CAAA,KAAAK,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAN,CAAA,WAAAE,MAAA,CAAAK,wBAAA,CAAAR,CAAA,EAAAC,CAAA,EAAAQ,UAAA,OAAAP,CAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,CAAA,EAAAI,CAAA,YAAAJ,CAAA;AAAA,SAAAU,cAAAZ,CAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAY,SAAA,CAAAC,MAAA,EAAAb,CAAA,UAAAC,CAAA,WAAAW,SAAA,CAAAZ,CAAA,IAAAY,SAAA,CAAAZ,CAAA,QAAAA,CAAA,OAAAF,OAAA,CAAAI,MAAA,CAAAD,CAAA,OAAAa,OAAA,WAAAd,CAAA,IAAAe,eAAA,CAAAhB,CAAA,EAAAC,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAE,MAAA,CAAAc,yBAAA,GAAAd,MAAA,CAAAe,gBAAA,CAAAlB,CAAA,EAAAG,MAAA,CAAAc,yBAAA,CAAAf,CAAA,KAAAH,OAAA,CAAAI,MAAA,CAAAD,CAAA,GAAAa,OAAA,WAAAd,CAAA,IAAAE,MAAA,CAAAgB,cAAA,CAAAnB,CAAA,EAAAC,CAAA,EAAAE,MAAA,CAAAK,wBAAA,CAAAN,CAAA,EAAAD,CAAA,iBAAAD,CAAA;AAAA,SAAAgB,gBAAAhB,CAAA,EAAAC,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAmB,cAAA,CAAAnB,CAAA,MAAAD,CAAA,GAAAG,MAAA,CAAAgB,cAAA,CAAAnB,CAAA,EAAAC,CAAA,IAAAoB,KAAA,EAAAnB,CAAA,EAAAO,UAAA,MAAAa,YAAA,MAAAC,QAAA,UAAAvB,CAAA,CAAAC,CAAA,IAAAC,CAAA,EAAAF,CAAA;AAAA,SAAAoB,eAAAlB,CAAA,QAAAsB,CAAA,GAAAC,YAAA,CAAAvB,CAAA,uCAAAsB,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAvB,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAF,CAAA,GAAAE,CAAA,CAAAwB,MAAA,CAAAC,WAAA,kBAAA3B,CAAA,QAAAwB,CAAA,GAAAxB,CAAA,CAAA4B,IAAA,CAAA1B,CAAA,EAAAD,CAAA,uCAAAuB,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAA5B,CAAA,GAAA6B,MAAA,GAAAC,MAAA,EAAA7B,CAAA;AAyBnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,eAAe8B,qBAAqBA,CACzCC,KAAgB,EAChBC,YAAoC,EACpCC,QAAkB,EAClBC,QAAsB,EACF;EACpB,IAAI,CAACD,QAAQ,CAACE,KAAK,EAAE,MAAM,IAAIC,KAAK,CAAC,iCAAiC,CAAC;EACvE,MAAMD,KAAK,GAAGF,QAAQ,CAACE,KAAK,CAACE,GAAG,CAAEC,IAAI,IAAK;IACzC,OAAO,KAAIC,uBAAU,EAAC;MAAEC,IAAI,EAAE,GAAG;MAAEC,IAAI,EAAEH,IAAI,CAACG,IAAI;MAAEC,QAAQ,EAAEC,MAAM,CAACC,IAAI,CAACN,IAAI,CAACO,OAAO,CAAC;MAAEC,IAAI,EAAE;IAAM,CAAC,CAAC;EACzG,CAAC,CAAC;EACF,MAAMC,EAAE,GAAGd,QAAQ,CAACe,WAAW;EAC/B,MAAMC,UAAU,GAAGC,4BAAiB,CAACC,gBAAgB,CAAClB,QAAQ,CAACmB,OAAO,IAAI,CAAC,CAAC,CAAC;EAC7E,MAAM;IAAEC;EAAS,CAAC,GAAG,MAAMC,WAAW,CAACvB,KAAK,EAAEC,YAAY,EAAEC,QAAQ,CAACsB,eAAe,IAAI,EAAE,CAAC;EAE3F,MAAMC,iBAAiB,GAAG,KAAIC,2BAAiB,EAAC;IAC9CC,QAAQ,EAAEzB,QAAQ,CAACyB,QAAQ,IAAI,UAAU;IACzCC,IAAI,EAAE1B,QAAQ,CAACe,WAAW,CAACY,QAAQ;IACnC7B,KAAK,EAAEE,QAAQ,CAACe,WAAW,CAACjB,KAAK;IACjCI,KAAK;IACL0B,MAAM,EAAEC,wBAAc;IACtBC,SAAS,EAAE,MAAMC,6BAAkB,CAACC,gBAAgB,CAAClB,EAAE,EAAEZ,KAAK,EAAEc,UAAU,EAAEI,QAAQ,CAAC;IACrFa,YAAY,EAAEjC,QAAQ,CAACe,WAAW,CAACjB,KAAK;IACxCkB,UAAU;IACV;IACAkB,GAAG,EAAE;MACHC,OAAO,EAAEnC,QAAQ,CAACmC,OAAO,IAAI,EAAE;MAC/BC,IAAI,EAAEC,IAAI,CAACC,GAAG,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC;MAC3BC,QAAQ,EAAE,EAAE;MACZC,KAAK,EAAE;IACT;EACF,CAAC,CAAC;EACF;EACA;EACA,MAAMxC,QAAQ,CAACyC,qCAAqC,CAAC,CAACnB,iBAAiB,CAAC,CAAC;EAEzE,MAAM;IAAEoB,OAAO;IAAEzC,KAAK,EAAE0C;EAAe,CAAC,GACtC,MAAM9C,KAAK,CAAC+C,WAAW,CAACC,OAAO,CAACC,0BAA0B,CAACxB,iBAAiB,CAAC;EAC/E,MAAMyB,cAAc,GAAG,MAAMlD,KAAK,CAAC+C,WAAW,CAACC,OAAO,CAACG,kBAAkB,CAAC1B,iBAAiB,CAAC;EAC5FA,iBAAiB,CAACoB,OAAO,GAAGA,OAAO,CAACO,IAAI,CAAC,CAAC,CAACX,QAAQ,CAAC,CAAC;EACrD,MAAMzC,KAAK,CAAC+C,WAAW,CAACM,OAAO,CAACC,mBAAmB,CAAC,CAACT,OAAO,EAAEK,cAAc,EAAE,GAAGJ,cAAc,CAACxC,GAAG,CAAEiD,CAAC,IAAKA,CAAC,CAAChD,IAAI,CAAC,CAAC,CAAC;EACpH,MAAMiD,SAAS,GAAG,MAAMxD,KAAK,CAACyD,eAAe,CAAC,CAAChC,iBAAiB,CAAC,CAAC;EAElE,OAAO+B,SAAS,CAAC,CAAC,CAAC;AACrB;AAEA,eAAejC,WAAWA,CAACvB,KAAgB,EAAEC,YAAoC,EAAEyD,OAAwB,EAAE;EAC3G,MAAMC,WAAW,GAAGD,OAAO,CAACpF,MAAM,CAAEsF,GAAG,IAAKA,GAAG,CAACC,WAAW,CAAC;EAC5D,MAAMC,iBAAiB,GAAGH,WAAW,CAACrD,GAAG,CAAE9C,IAAI,IAAAmB,aAAA,CAAAA,aAAA,KAC1CnB,IAAI;IACPwD,EAAE,EAAE+C,0BAAW,CAACC,UAAU,CAACxG,IAAI,CAACwD,EAAE;EAAC,EACnC,CAAC;EACH,MAAMiD,OAAO,GAAGH,iBAAiB,CAACxD,GAAG,CAAEsD,GAAG,IAAMA,GAAG,CAACf,OAAO,GAAGe,GAAG,CAAC5C,EAAE,CAACkD,aAAa,CAACN,GAAG,CAACf,OAAO,CAAC,GAAGe,GAAG,CAAC5C,EAAG,CAAC;EAC1G,MAAMmD,KAAK,GAAG,MAAMnE,KAAK,CAACoE,OAAO,CAACH,OAAO,CAAC;EAC1C,MAAMI,YAAY,GAAIC,KAAkB,IAAK;IAC3C,MAAMC,IAAI,GAAGJ,KAAK,CAACK,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACzD,EAAE,CAAC0D,qBAAqB,CAACJ,KAAK,CAAC,CAAC;IACjE,IAAI,CAACC,IAAI,EAAE,MAAM,IAAIlE,KAAK,CAAC,2CAA2CiE,KAAK,CAAC7B,QAAQ,CAAC,CAAC,eAAe,CAAC;IACtG,MAAMkC,OAAO,GAAG1E,YAAY,CAAC2E,cAAc,CAACL,IAAI,CAAC;IACjD,OAAO,KAAIM,oBAAU,EAACN,IAAI,CAACvD,EAAE,EAAE,EAAE,EAAE2D,OAAO,CAAC;EAC7C,CAAC;EACD,MAAMrD,QAAQ,GAAGwC,iBAAiB,CAACxF,MAAM,CAAEmG,CAAC,IAAKA,CAAC,CAACK,IAAI,KAAK,SAAS,CAAC,CAACxE,GAAG,CAAEsD,GAAG,IAAKS,YAAY,CAACT,GAAG,CAAC5C,EAAE,CAAC,CAAC;EACzG,MAAM+D,WAAW,GAAGjB,iBAAiB,CAACxF,MAAM,CAAEmG,CAAC,IAAKA,CAAC,CAACK,IAAI,KAAK,KAAK,CAAC,CAACxE,GAAG,CAAEsD,GAAG,IAAKS,YAAY,CAACT,GAAG,CAAC5C,EAAE,CAAC,CAAC;EACxG,MAAMgE,YAAY,GAAGlB,iBAAiB,CAACxF,MAAM,CAAEmG,CAAC,IAAKA,CAAC,CAACK,IAAI,KAAK,MAAM,CAAC,CAACxE,GAAG,CAAEsD,GAAG,IAAKS,YAAY,CAACT,GAAG,CAAC5C,EAAE,CAAC,CAAC;EAC1G,OAAO;IAAEM,QAAQ;IAAEyD,WAAW;IAAEC;EAAa,CAAC;AAChD;AAEO,eAAeC,OAAOA,CAC3BzB,SAAoB,EACpB0B,QAAwB,EACxBlF,KAAgB,EAChBmF,IAAsB,EACtBlF,YAAoC,EACpCE,QAAsB,EACtBiF,UAAmC,EACnC;EACA,MAAM1B,OAAO,GAAGwB,QAAQ,CAAC1D,eAAe,IAAI,EAAE;EAC9C,MAAM6D,UAAU,GAAGH,QAAQ,CAACI,YAAY,IAAI,EAAE;EAC9C,MAAMC,WAAW,GAAG7B,OAAO,CAACpF,MAAM,CAAEsF,GAAG,IAAK,CAACA,GAAG,CAACC,WAAW,CAAC;EAC7D,MAAM;IAAEvC,QAAQ;IAAEyD,WAAW;IAAEC;EAAa,CAAC,GAAG,MAAMzD,WAAW,CAACvB,KAAK,EAAEC,YAAY,EAAEyD,OAAO,CAAC;EAC/F,MAAM8B,YAAY,GAAIC,IAA6C,IAAK;IACtE,OAAOA,IAAI,CAACC,MAAM,CAAC,CAACC,GAAG,EAAEC,IAAI,KAAK;MAChC,IAAI,CAACA,IAAI,CAAC/C,OAAO,EAAE,MAAM,IAAIxC,KAAK,CAAC,yDAAyDuF,IAAI,CAAC5E,EAAE,GAAG,CAAC;MACvG2E,GAAG,CAACC,IAAI,CAAC5E,EAAE,CAAC,GAAG4E,IAAI,CAAC/C,OAAO;MAC3B,OAAO8C,GAAG;IACZ,CAAC,EAAE,CAAC,CAAC,CAAC;EACR,CAAC;EACD,MAAME,SAAS,GAAIf,IAAgC,IAAK;IACtD,OAAOU,YAAY,CAACD,WAAW,CAACjH,MAAM,CAAEsF,GAAG,IAAKA,GAAG,CAACkB,IAAI,KAAKA,IAAI,CAAC,CAAC;EACrE,CAAC;EACD,MAAMgB,WAA0C,GAAG,CAAC,CAAC;EACrD,CAAC,cAAc,EAAE,iBAAiB,EAAE,kBAAkB,CAAC,CAAChH,OAAO,CAAEiH,OAAO,IAAK;IAC3EX,UAAU,GAAGW,OAAO,CAAC,EAAEjH,OAAO,CAAE8E,GAAG,IAAK;MACtCkC,WAAW,CAAClC,GAAG,CAAChC,IAAI,CAAC,GAAGgC,GAAG,CAACf,OAAO;IACrC,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF,MAAMmD,qBAAqB,GAAIP,IAA4B,IAAK;IAC9DP,QAAQ,CAACe,kBAAkB,EAAEnH,OAAO,CAAEoH,GAAG,IAAK;MAC5C,OAAOT,IAAI,CAACS,GAAG,CAAC;IAClB,CAAC,CAAC;IACFhI,MAAM,CAACC,IAAI,CAACsH,IAAI,CAAC,CAAC3G,OAAO,CAAEoH,GAAG,IAAK;MACjC,MAAMC,KAAK,GAAGd,UAAU,CAACb,IAAI,CAAE4B,CAAC,IAAKA,CAAC,CAACC,UAAU,CAAC,GAAGH,GAAG,GAAG,CAAC,CAAC;MAC7D,IAAIC,KAAK,EAAE;QACTV,IAAI,CAACS,GAAG,CAAC,GAAGC,KAAK,CAACG,OAAO,CAAC,GAAGJ,GAAG,GAAG,EAAE,EAAE,CAAC;MAC1C;IACF,CAAC,CAAC;IACF,OAAOT,IAAI;EACb,CAAC;EACD,MAAMc,qBAAqB,GAAIC,eAA6B,IAAK;IAC/D,MAAMC,YAAY,GAAGD,eAAe,CAAClI,MAAM,CACxCsF,GAAG,IAAK,CAACsB,QAAQ,CAACe,kBAAkB,EAAES,QAAQ,CAAC9C,GAAG,CAAC5C,EAAE,CAAC2F,sBAAsB,CAAC,CAAC,CACjF,CAAC;IACDF,YAAY,CAAC3H,OAAO,CAAE8E,GAAG,IAAK;MAC5B,MAAMuC,KAAK,GAAGd,UAAU,CAACb,IAAI,CAAE4B,CAAC,IAAKA,CAAC,CAACC,UAAU,CAAC,GAAGzC,GAAG,CAAC5C,EAAE,CAAC2F,sBAAsB,CAAC,CAAC,GAAG,CAAC,CAAC;MACzF,IAAIR,KAAK,EAAE;QACTvC,GAAG,CAAC5C,EAAE,GAAG4C,GAAG,CAAC5C,EAAE,CAACkD,aAAa,CAACiC,KAAK,CAACG,OAAO,CAAC,GAAG1C,GAAG,CAAC5C,EAAE,CAAC2F,sBAAsB,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;MACzF;MACA,MAAMC,eAAe,GAAGhD,GAAG,CAACiD,WAAW,GAAGf,WAAW,CAAClC,GAAG,CAACiD,WAAW,CAAC,GAAGC,SAAS;MAClF,IAAIF,eAAe,EAAE;QACnBhD,GAAG,CAAC5C,EAAE,GAAG4C,GAAG,CAAC5C,EAAE,CAACkD,aAAa,CAAC4B,WAAW,CAAClC,GAAG,CAACiD,WAAW,CAAE,CAAC;MAC9D;IACF,CAAC,CAAC;IACF,OAAOJ,YAAY;EACrB,CAAC;EAED,MAAMhF,iBAAiB,GAAG+B,SAAS,CAACuD,KAAK,CAACC,SAA8B;EAExE,MAAMC,gBAAgB,GAAG;IACvBC,eAAe,EAAE;MACf5B,YAAY,EAAE,CAAC,GAAGhE,QAAQ,EAAE,GAAGiF,qBAAqB,CAAC9E,iBAAiB,CAAC6D,YAAY,CAAC6B,GAAG,CAAC,CAAC,CAAC,CAAC;MAC3FC,eAAe,EAAE,CAAC,GAAGrC,WAAW,EAAE,GAAGwB,qBAAqB,CAAC9E,iBAAiB,CAAC2F,eAAe,CAACD,GAAG,CAAC,CAAC,CAAC,CAAC;MACpGE,gBAAgB,EAAE,CAAC,GAAGrC,YAAY,EAAE,GAAGuB,qBAAqB,CAAC9E,iBAAiB,CAAC4F,gBAAgB,CAACF,GAAG,CAAC,CAAC,CAAC;IACxG,CAAC;IACDG,uBAAuB,EAAE;MACvBC,mBAAmB,EAAA5I,aAAA,CAAAA,aAAA,KAAOqH,qBAAqB,CAACvE,iBAAiB,CAAC8F,mBAAmB,CAAC,GAAK1B,SAAS,CAAC,SAAS,CAAC,CAAE;MACjH2B,sBAAsB,EAAA7I,aAAA,CAAAA,aAAA,KACjBqH,qBAAqB,CAACvE,iBAAiB,CAAC+F,sBAAsB,CAAC,GAC/D3B,SAAS,CAAC,KAAK,CAAC,CACpB;MACD4B,uBAAuB,EAAA9I,aAAA,CAAAA,aAAA,KAClBqH,qBAAqB,CAACvE,iBAAiB,CAACgG,uBAAuB,CAAC,GAChE5B,SAAS,CAAC,MAAM,CAAC;IAExB;EACF,CAAC;;EAED;EACA;EACA,MAAMV,IAAI,CAACuC,yBAAyB,CAACjG,iBAAiB,EAAEwF,gBAAgB,CAAC;EAEzE,MAAM9G,QAAQ,CAACwH,qCAAqC,CAACnE,SAAS,EAAE6B,UAAU,CAAC;AAC7E","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_componentId","data","require","_legacy","_component","_legacy2","_legacy3","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","generateCompFromScope","scope","depsResolver","compData","snapping","files","Error","map","file","SourceFile","base","path","contents","Buffer","from","content","test","id","componentId","extensions","ExtensionDataList","fromConfigObject","aspects","compDeps","getCompDeps","newDependencies","consumerComponent","ConsumerComponent","mainFile","name","fullName","schema","CURRENT_SCHEMA","overrides","ComponentOverrides","loadNewFromScope","defaultScope","log","message","date","Date","now","toString","username","email","_addFlattenedDependenciesToComponents","version","filesBitObject","legacyScope","sources","consumerComponentToVersion","modelComponent","findOrAddComponent","hash","objects","writeObjectsToTheFS","f","component","getManyByLegacy","newDeps","compIdsData","dep","isComponent","compIdsDataParsed","ComponentID","fromString","compIds","changeVersion","comps","getMany","toDependency","depId","comp","find","c","isEqualWithoutVersion","pkgName","getPackageName","Dependency","type","compDevDeps","compPeerDeps","addDeps","snapData","deps","autoDetect","autoDetectOverrides","updateDeps","dependencies","packageDeps","toPackageObj","pkgs","reduce","acc","curr","getPkgObj","allAutoDeps","depType","manipulateCurrentPkgs","removeDependencies","pkg","found","d","startsWith","replace","manipulateCurrentDeps","currentCompDeps","afterRemoval","includes","toStringWithoutVersion","foundInAutoDeps","packageName","undefined","state","_consumer","dependenciesData","allDependencies","get","devDependencies","peerDependencies","allPackagesDependencies","packageDependencies","devPackageDependencies","peerPackageDependencies","loadDependenciesFromScope","UpdateDepsAspectsSaveIntoDepsResolver"],"sources":["generate-comp-from-scope.ts"],"sourcesContent":["import { ComponentID } from '@teambit/component-id';\nimport { Dependency, ConsumerComponent, CURRENT_SCHEMA } from '@teambit/legacy.consumer-component';\nimport { SourceFile } from '@teambit/component.sources';\nimport type { ScopeMain } from '@teambit/scope';\nimport type { DependenciesOverridesData } from '@teambit/legacy.consumer-config';\nimport { ComponentOverrides } from '@teambit/legacy.consumer-config';\nimport { ExtensionDataList } from '@teambit/legacy.extension-data';\nimport type { Component } from '@teambit/component';\nimport type { DependenciesMain } from '@teambit/dependencies';\nimport type { DependencyResolverMain, VariantPolicyConfigArr } from '@teambit/dependency-resolver';\nimport type { FileData, SnappingMain, SnapDataParsed } from './snapping.main.runtime';\n\nexport type NewDependency = {\n id: string; // component-id or package-name. e.g. \"teambit.react/react\" or \"lodash\".\n version?: string; // version of the package. e.g. \"2.0.3\". for packages, it is mandatory.\n isComponent?: boolean; // default true. if false, it's a package dependency\n type?: 'runtime' | 'dev' | 'peer'; // default \"runtime\".\n};\n\nexport type NewDependencies = NewDependency[];\n\nexport type CompData = {\n componentId: ComponentID;\n dependencies: string[];\n aspects: Record<string, any> | undefined;\n message: string | undefined;\n files: FileData[] | undefined;\n mainFile?: string;\n newDependencies?: NewDependencies;\n};\n\n/**\n * normally new components are created from a workspace. the files are in the filesystem and the ConsumerComponent\n * object is created from the files.\n * here, we need to create the ConsumerComponent object \"on the fly\". we don't have workspace, only scope. the files\n * are in-memory (we got them from snap-from-scope command).\n * the way how it is done is by creating a minimal ConsumerComponent object, then convert `Version` object from it,\n * write the version and files into the scope as objects, so then it's possible to load Component object using the\n * ConsumerComponent.\n */\nexport async function generateCompFromScope(\n scope: ScopeMain,\n depsResolver: DependencyResolverMain,\n compData: CompData,\n snapping: SnappingMain\n): Promise<Component> {\n if (!compData.files) throw new Error('generateComp: files are missing');\n const files = compData.files.map((file) => {\n return new SourceFile({ base: '.', path: file.path, contents: Buffer.from(file.content), test: false });\n });\n const id = compData.componentId;\n const extensions = ExtensionDataList.fromConfigObject(compData.aspects || {});\n const { compDeps } = await getCompDeps(scope, depsResolver, compData.newDependencies || []);\n\n const consumerComponent = new ConsumerComponent({\n mainFile: compData.mainFile || 'index.ts',\n name: compData.componentId.fullName,\n scope: compData.componentId.scope,\n files,\n schema: CURRENT_SCHEMA,\n overrides: await ComponentOverrides.loadNewFromScope(id, files, extensions, compDeps),\n defaultScope: compData.componentId.scope,\n extensions,\n // the dummy data here are not important. this Version object will be discarded later.\n log: {\n message: compData.message || '',\n date: Date.now().toString(),\n username: '',\n email: '',\n },\n });\n // this is needed, otherwise in case of updating envs/aspects, the version-validator throws\n // an error saying \"the extension ${extensionId.toString()} is missing from the flattenedDependencies\"\n await snapping._addFlattenedDependenciesToComponents([consumerComponent]);\n\n const { version, files: filesBitObject } =\n await scope.legacyScope.sources.consumerComponentToVersion(consumerComponent);\n const modelComponent = await scope.legacyScope.sources.findOrAddComponent(consumerComponent);\n consumerComponent.version = version.hash().toString();\n await scope.legacyScope.objects.writeObjectsToTheFS([version, modelComponent, ...filesBitObject.map((f) => f.file)]);\n const component = await scope.getManyByLegacy([consumerComponent]);\n\n return component[0];\n}\n\nasync function getCompDeps(scope: ScopeMain, depsResolver: DependencyResolverMain, newDeps: NewDependencies) {\n const compIdsData = newDeps.filter((dep) => dep.isComponent);\n const compIdsDataParsed = compIdsData.map((data) => ({\n ...data,\n id: ComponentID.fromString(data.id),\n }));\n const compIds = compIdsDataParsed.map((dep) => (dep.version ? dep.id.changeVersion(dep.version) : dep.id));\n const comps = await scope.getMany(compIds);\n const toDependency = (depId: ComponentID) => {\n const comp = comps.find((c) => c.id.isEqualWithoutVersion(depId));\n if (!comp) throw new Error(`unable to find the specified dependency ${depId.toString()} in the scope`);\n const pkgName = depsResolver.getPackageName(comp);\n return new Dependency(comp.id, [], pkgName);\n };\n const compDeps = compIdsDataParsed.filter((c) => c.type === 'runtime').map((dep) => toDependency(dep.id));\n const compDevDeps = compIdsDataParsed.filter((c) => c.type === 'dev').map((dep) => toDependency(dep.id));\n const compPeerDeps = compIdsDataParsed.filter((c) => c.type === 'peer').map((dep) => toDependency(dep.id));\n return { compDeps, compDevDeps, compPeerDeps };\n}\n\nexport async function addDeps(\n component: Component,\n snapData: SnapDataParsed,\n scope: ScopeMain,\n deps: DependenciesMain,\n depsResolver: DependencyResolverMain,\n snapping: SnappingMain,\n autoDetect?: VariantPolicyConfigArr,\n autoDetectOverrides?: DependenciesOverridesData\n) {\n const newDeps = snapData.newDependencies || [];\n const updateDeps = snapData.dependencies || [];\n const packageDeps = newDeps.filter((dep) => !dep.isComponent);\n const { compDeps, compDevDeps, compPeerDeps } = await getCompDeps(scope, depsResolver, newDeps);\n const toPackageObj = (pkgs: Array<{ id: string; version?: string }>) => {\n return pkgs.reduce((acc, curr) => {\n if (!curr.version) throw new Error(`please specify a version for the package dependency: \"${curr.id}\"`);\n acc[curr.id] = curr.version;\n return acc;\n }, {});\n };\n const getPkgObj = (type: 'runtime' | 'dev' | 'peer') => {\n return toPackageObj(packageDeps.filter((dep) => dep.type === type));\n };\n const allAutoDeps: { [pkgName: string]: string } = {};\n ['dependencies', 'devDependencies', 'peerDependencies'].forEach((depType) => {\n autoDetect?.[depType]?.forEach((dep) => {\n allAutoDeps[dep.name] = dep.version;\n });\n });\n\n const manipulateCurrentPkgs = (pkgs: Record<string, string>) => {\n snapData.removeDependencies?.forEach((pkg) => {\n delete pkgs[pkg];\n });\n Object.keys(pkgs).forEach((pkg) => {\n const found = updateDeps.find((d) => d.startsWith(`${pkg}@`));\n if (found) {\n pkgs[pkg] = found.replace(`${pkg}@`, '');\n }\n });\n return pkgs;\n };\n const manipulateCurrentDeps = (currentCompDeps: Dependency[]) => {\n const afterRemoval = currentCompDeps.filter(\n (dep) => !snapData.removeDependencies?.includes(dep.id.toStringWithoutVersion())\n );\n afterRemoval.forEach((dep) => {\n const found = updateDeps.find((d) => d.startsWith(`${dep.id.toStringWithoutVersion()}@`));\n if (found) {\n dep.id = dep.id.changeVersion(found.replace(`${dep.id.toStringWithoutVersion()}@`, ''));\n }\n const foundInAutoDeps = dep.packageName ? allAutoDeps[dep.packageName] : undefined;\n if (foundInAutoDeps) {\n dep.id = dep.id.changeVersion(allAutoDeps[dep.packageName!]);\n }\n });\n return afterRemoval;\n };\n\n const consumerComponent = component.state._consumer as ConsumerComponent;\n\n const dependenciesData = {\n allDependencies: {\n dependencies: [...compDeps, ...manipulateCurrentDeps(consumerComponent.dependencies.get())],\n devDependencies: [...compDevDeps, ...manipulateCurrentDeps(consumerComponent.devDependencies.get())],\n peerDependencies: [...compPeerDeps, ...manipulateCurrentDeps(consumerComponent.peerDependencies.get())],\n },\n allPackagesDependencies: {\n packageDependencies: { ...manipulateCurrentPkgs(consumerComponent.packageDependencies), ...getPkgObj('runtime') },\n devPackageDependencies: {\n ...manipulateCurrentPkgs(consumerComponent.devPackageDependencies),\n ...getPkgObj('dev'),\n },\n peerPackageDependencies: {\n ...manipulateCurrentPkgs(consumerComponent.peerPackageDependencies),\n ...getPkgObj('peer'),\n },\n },\n };\n\n // add the dependencies to the legacy ConsumerComponent object\n // it takes care of both: given dependencies (from the cli) and the overrides, which are coming from the env.\n await deps.loadDependenciesFromScope(consumerComponent, dependenciesData, autoDetectOverrides);\n\n await snapping.UpdateDepsAspectsSaveIntoDepsResolver(component, updateDeps);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ConsumerComponent } from '@teambit/legacy.consumer-component';
|
|
2
|
+
/**
|
|
3
|
+
* returns a description of every "+^"/"+~" version the component uses: in its dependencies (e.g. an env.jsonc
|
|
4
|
+
* supportedRange or `bit deps set`), in its dependency-resolver policy, and in its own env.jsonc if it's an env.
|
|
5
|
+
*/
|
|
6
|
+
export declare function getPlusRangeVersionsUsage(component: ConsumerComponent): string[];
|
|
7
|
+
/**
|
|
8
|
+
* "+^" and "+~" are not supported by older bit versions (including the one bit.cloud may run), which write them
|
|
9
|
+
* as is to the package.json. until it's safe to use them, they're blocked from leaving the workspace.
|
|
10
|
+
*/
|
|
11
|
+
export declare function throwForPlusRangeVersions(components: ConsumerComponent[]): void;
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getPlusRangeVersionsUsage = getPlusRangeVersionsUsage;
|
|
7
|
+
exports.throwForPlusRangeVersions = throwForPlusRangeVersions;
|
|
8
|
+
function _commentJson() {
|
|
9
|
+
const data = require("comment-json");
|
|
10
|
+
_commentJson = function () {
|
|
11
|
+
return data;
|
|
12
|
+
};
|
|
13
|
+
return data;
|
|
14
|
+
}
|
|
15
|
+
function _bitError() {
|
|
16
|
+
const data = require("@teambit/bit-error");
|
|
17
|
+
_bitError = function () {
|
|
18
|
+
return data;
|
|
19
|
+
};
|
|
20
|
+
return data;
|
|
21
|
+
}
|
|
22
|
+
function _legacy() {
|
|
23
|
+
const data = require("@teambit/legacy.constants");
|
|
24
|
+
_legacy = function () {
|
|
25
|
+
return data;
|
|
26
|
+
};
|
|
27
|
+
return data;
|
|
28
|
+
}
|
|
29
|
+
function _dependencyResolver() {
|
|
30
|
+
const data = require("@teambit/dependency-resolver");
|
|
31
|
+
_dependencyResolver = function () {
|
|
32
|
+
return data;
|
|
33
|
+
};
|
|
34
|
+
return data;
|
|
35
|
+
}
|
|
36
|
+
function _harmonyModules() {
|
|
37
|
+
const data = require("@teambit/harmony.modules.feature-toggle");
|
|
38
|
+
_harmonyModules = function () {
|
|
39
|
+
return data;
|
|
40
|
+
};
|
|
41
|
+
return data;
|
|
42
|
+
}
|
|
43
|
+
const isPlusRangeVersion = version => version !== _legacy().MANUALLY_ADD_DEPENDENCY && (0, _dependencyResolver().isPlusVersion)(version);
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* returns a description of every "+^"/"+~" version the component uses: in its dependencies (e.g. an env.jsonc
|
|
47
|
+
* supportedRange or `bit deps set`), in its dependency-resolver policy, and in its own env.jsonc if it's an env.
|
|
48
|
+
*/
|
|
49
|
+
function getPlusRangeVersionsUsage(component) {
|
|
50
|
+
const usages = [];
|
|
51
|
+
component.getAllDependencies().forEach(dep => {
|
|
52
|
+
if (isPlusRangeVersion(dep.versionRange)) usages.push(`${dep.packageName || dep.id.toStringWithoutVersion()}: "${dep.versionRange}"`);
|
|
53
|
+
});
|
|
54
|
+
const policy = component.extensions.findCoreExtension(_dependencyResolver().DependencyResolverAspect.id)?.data?.policy || [];
|
|
55
|
+
policy.forEach(entry => {
|
|
56
|
+
if (isPlusRangeVersion(entry.value?.version)) usages.push(`${entry.dependencyId}: "${entry.value.version}"`);
|
|
57
|
+
});
|
|
58
|
+
const envJsonc = component.files.find(file => ['env.jsonc', 'env.json'].includes(file.relative));
|
|
59
|
+
if (envJsonc) {
|
|
60
|
+
let envJsoncPolicy;
|
|
61
|
+
try {
|
|
62
|
+
envJsoncPolicy = (0, _commentJson().parse)(envJsonc.contents.toString())?.policy;
|
|
63
|
+
} catch {
|
|
64
|
+
// an invalid env.jsonc is reported when the env is loaded
|
|
65
|
+
}
|
|
66
|
+
const addUsage = (field, name, version) => {
|
|
67
|
+
if (isPlusRangeVersion(version)) usages.push(`env.jsonc policy.${field} ${name}: "${version}"`);
|
|
68
|
+
};
|
|
69
|
+
Object.entries(envJsoncPolicy || {}).forEach(([field, entries]) => {
|
|
70
|
+
if (Array.isArray(entries)) {
|
|
71
|
+
entries.forEach(entry => {
|
|
72
|
+
addUsage(field, entry?.name, entry?.version);
|
|
73
|
+
addUsage(field, entry?.name, entry?.supportedRange);
|
|
74
|
+
});
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
// the legacy format, e.g. "peerDependencies": { "pkg": "1.0.0" } or { "pkg": { "version": "1.0.0" } }
|
|
78
|
+
Object.entries(entries || {}).forEach(([name, value]) => {
|
|
79
|
+
addUsage(field, name, typeof value === 'string' ? value : value?.version);
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
return [...new Set(usages)];
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* "+^" and "+~" are not supported by older bit versions (including the one bit.cloud may run), which write them
|
|
88
|
+
* as is to the package.json. until it's safe to use them, they're blocked from leaving the workspace.
|
|
89
|
+
*/
|
|
90
|
+
function throwForPlusRangeVersions(components) {
|
|
91
|
+
if ((0, _harmonyModules().isFeatureEnabled)(_harmonyModules().PLUS_RANGE_VERSIONS_FEATURE)) return;
|
|
92
|
+
const usagePerComp = components.map(component => ({
|
|
93
|
+
id: component.id.toStringWithoutVersion(),
|
|
94
|
+
usages: getPlusRangeVersionsUsage(component)
|
|
95
|
+
})).filter(({
|
|
96
|
+
usages
|
|
97
|
+
}) => usages.length);
|
|
98
|
+
if (!usagePerComp.length) return;
|
|
99
|
+
const details = usagePerComp.map(({
|
|
100
|
+
id,
|
|
101
|
+
usages
|
|
102
|
+
}) => `${id}\n${usages.map(u => ` ${u}`).join('\n')}`).join('\n');
|
|
103
|
+
throw new (_bitError().BitError)(`the following components use "+^"/"+~" versions, which are not supported yet:
|
|
104
|
+
${details}
|
|
105
|
+
older bit versions, including the one that builds and releases on bit.cloud, write them as is to the package.json.
|
|
106
|
+
use "+" or a semver range instead. to use them anyway, run "bit config set features=${_harmonyModules().PLUS_RANGE_VERSIONS_FEATURE}"`);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
//# sourceMappingURL=plus-range-versions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_commentJson","data","require","_bitError","_legacy","_dependencyResolver","_harmonyModules","isPlusRangeVersion","version","MANUALLY_ADD_DEPENDENCY","isPlusVersion","getPlusRangeVersionsUsage","component","usages","getAllDependencies","forEach","dep","versionRange","push","packageName","id","toStringWithoutVersion","policy","extensions","findCoreExtension","DependencyResolverAspect","entry","value","dependencyId","envJsonc","files","find","file","includes","relative","envJsoncPolicy","parse","contents","toString","addUsage","field","name","Object","entries","Array","isArray","supportedRange","Set","throwForPlusRangeVersions","components","isFeatureEnabled","PLUS_RANGE_VERSIONS_FEATURE","usagePerComp","map","filter","length","details","u","join","BitError"],"sources":["plus-range-versions.ts"],"sourcesContent":["import { parse } from 'comment-json';\nimport { BitError } from '@teambit/bit-error';\nimport { MANUALLY_ADD_DEPENDENCY } from '@teambit/legacy.constants';\nimport type { ConsumerComponent } from '@teambit/legacy.consumer-component';\nimport { DependencyResolverAspect, isPlusVersion } from '@teambit/dependency-resolver';\nimport { PLUS_RANGE_VERSIONS_FEATURE, isFeatureEnabled } from '@teambit/harmony.modules.feature-toggle';\n\nconst isPlusRangeVersion = (version?: string) => version !== MANUALLY_ADD_DEPENDENCY && isPlusVersion(version);\n\n/**\n * returns a description of every \"+^\"/\"+~\" version the component uses: in its dependencies (e.g. an env.jsonc\n * supportedRange or `bit deps set`), in its dependency-resolver policy, and in its own env.jsonc if it's an env.\n */\nexport function getPlusRangeVersionsUsage(component: ConsumerComponent): string[] {\n const usages: string[] = [];\n component.getAllDependencies().forEach((dep) => {\n if (isPlusRangeVersion(dep.versionRange))\n usages.push(`${dep.packageName || dep.id.toStringWithoutVersion()}: \"${dep.versionRange}\"`);\n });\n const policy = component.extensions.findCoreExtension(DependencyResolverAspect.id)?.data?.policy || [];\n policy.forEach((entry) => {\n if (isPlusRangeVersion(entry.value?.version)) usages.push(`${entry.dependencyId}: \"${entry.value.version}\"`);\n });\n const envJsonc = component.files.find((file) => ['env.jsonc', 'env.json'].includes(file.relative));\n if (envJsonc) {\n let envJsoncPolicy: Record<string, any> | undefined;\n try {\n envJsoncPolicy = (parse(envJsonc.contents.toString()) as Record<string, any>)?.policy;\n } catch {\n // an invalid env.jsonc is reported when the env is loaded\n }\n const addUsage = (field: string, name: string, version: any) => {\n if (isPlusRangeVersion(version)) usages.push(`env.jsonc policy.${field} ${name}: \"${version}\"`);\n };\n Object.entries(envJsoncPolicy || {}).forEach(([field, entries]) => {\n if (Array.isArray(entries)) {\n entries.forEach((entry) => {\n addUsage(field, entry?.name, entry?.version);\n addUsage(field, entry?.name, entry?.supportedRange);\n });\n return;\n }\n // the legacy format, e.g. \"peerDependencies\": { \"pkg\": \"1.0.0\" } or { \"pkg\": { \"version\": \"1.0.0\" } }\n Object.entries(entries || {}).forEach(([name, value]: [string, any]) => {\n addUsage(field, name, typeof value === 'string' ? value : value?.version);\n });\n });\n }\n return [...new Set(usages)];\n}\n\n/**\n * \"+^\" and \"+~\" are not supported by older bit versions (including the one bit.cloud may run), which write them\n * as is to the package.json. until it's safe to use them, they're blocked from leaving the workspace.\n */\nexport function throwForPlusRangeVersions(components: ConsumerComponent[]) {\n if (isFeatureEnabled(PLUS_RANGE_VERSIONS_FEATURE)) return;\n const usagePerComp = components\n .map((component) => ({ id: component.id.toStringWithoutVersion(), usages: getPlusRangeVersionsUsage(component) }))\n .filter(({ usages }) => usages.length);\n if (!usagePerComp.length) return;\n const details = usagePerComp.map(({ id, usages }) => `${id}\\n${usages.map((u) => ` ${u}`).join('\\n')}`).join('\\n');\n throw new BitError(`the following components use \"+^\"/\"+~\" versions, which are not supported yet:\n${details}\nolder bit versions, including the one that builds and releases on bit.cloud, write them as is to the package.json.\nuse \"+\" or a semver range instead. to use them anyway, run \"bit config set features=${PLUS_RANGE_VERSIONS_FEATURE}\"`);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function _chai() {
|
|
4
|
+
const data = require("chai");
|
|
5
|
+
_chai = function () {
|
|
6
|
+
return data;
|
|
7
|
+
};
|
|
8
|
+
return data;
|
|
9
|
+
}
|
|
10
|
+
function _componentId() {
|
|
11
|
+
const data = require("@teambit/component-id");
|
|
12
|
+
_componentId = function () {
|
|
13
|
+
return data;
|
|
14
|
+
};
|
|
15
|
+
return data;
|
|
16
|
+
}
|
|
17
|
+
function _legacy() {
|
|
18
|
+
const data = require("@teambit/legacy.extension-data");
|
|
19
|
+
_legacy = function () {
|
|
20
|
+
return data;
|
|
21
|
+
};
|
|
22
|
+
return data;
|
|
23
|
+
}
|
|
24
|
+
function _dependencyResolver() {
|
|
25
|
+
const data = require("@teambit/dependency-resolver");
|
|
26
|
+
_dependencyResolver = function () {
|
|
27
|
+
return data;
|
|
28
|
+
};
|
|
29
|
+
return data;
|
|
30
|
+
}
|
|
31
|
+
function _plusRangeVersions() {
|
|
32
|
+
const data = require("./plus-range-versions");
|
|
33
|
+
_plusRangeVersions = function () {
|
|
34
|
+
return data;
|
|
35
|
+
};
|
|
36
|
+
return data;
|
|
37
|
+
}
|
|
38
|
+
function createComponent({
|
|
39
|
+
depVersionRange,
|
|
40
|
+
policyVersion,
|
|
41
|
+
envJsonc
|
|
42
|
+
}) {
|
|
43
|
+
const policy = policyVersion ? [{
|
|
44
|
+
dependencyId: 'my-pkg',
|
|
45
|
+
lifecycleType: 'runtime',
|
|
46
|
+
value: {
|
|
47
|
+
version: policyVersion
|
|
48
|
+
}
|
|
49
|
+
}] : [];
|
|
50
|
+
const extensions = new (_legacy().ExtensionDataList)(new (_legacy().ExtensionDataEntry)(undefined, undefined, _dependencyResolver().DependencyResolverAspect.id, undefined, {
|
|
51
|
+
policy
|
|
52
|
+
}));
|
|
53
|
+
const files = envJsonc ? [{
|
|
54
|
+
relative: 'env.jsonc',
|
|
55
|
+
contents: Buffer.from(JSON.stringify(envJsonc))
|
|
56
|
+
}] : [];
|
|
57
|
+
return {
|
|
58
|
+
id: _componentId().ComponentID.fromString('my-scope/my-comp@0.0.1'),
|
|
59
|
+
getAllDependencies: () => [{
|
|
60
|
+
id: _componentId().ComponentID.fromString('my-scope/dep@0.0.1'),
|
|
61
|
+
packageName: '@my-scope/dep',
|
|
62
|
+
versionRange: depVersionRange
|
|
63
|
+
}],
|
|
64
|
+
extensions,
|
|
65
|
+
files
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
describe('getPlusRangeVersionsUsage()', () => {
|
|
69
|
+
it('should find a "+^" range of a dependency', () => {
|
|
70
|
+
(0, _chai().expect)((0, _plusRangeVersions().getPlusRangeVersionsUsage)(createComponent({
|
|
71
|
+
depVersionRange: '+^'
|
|
72
|
+
}))).to.deep.equal(['@my-scope/dep: "+^"']);
|
|
73
|
+
});
|
|
74
|
+
it('should find a "+~" version in the policy', () => {
|
|
75
|
+
(0, _chai().expect)((0, _plusRangeVersions().getPlusRangeVersionsUsage)(createComponent({
|
|
76
|
+
policyVersion: '+~'
|
|
77
|
+
}))).to.deep.equal(['my-pkg: "+~"']);
|
|
78
|
+
});
|
|
79
|
+
it('should find a "+^" supportedRange in the env.jsonc of an env', () => {
|
|
80
|
+
const envJsonc = {
|
|
81
|
+
policy: {
|
|
82
|
+
peers: [{
|
|
83
|
+
name: 'my-pkg',
|
|
84
|
+
version: '+',
|
|
85
|
+
supportedRange: '+^'
|
|
86
|
+
}]
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
(0, _chai().expect)((0, _plusRangeVersions().getPlusRangeVersionsUsage)(createComponent({
|
|
90
|
+
envJsonc
|
|
91
|
+
}))).to.deep.equal(['env.jsonc policy.peers my-pkg: "+^"']);
|
|
92
|
+
});
|
|
93
|
+
it('should find a "+^" version in the legacy format of the env.jsonc policy', () => {
|
|
94
|
+
const envJsonc = {
|
|
95
|
+
policy: {
|
|
96
|
+
peerDependencies: {
|
|
97
|
+
'my-pkg': '+^',
|
|
98
|
+
'other-pkg': {
|
|
99
|
+
version: '+~'
|
|
100
|
+
},
|
|
101
|
+
'ok-pkg': '+'
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
(0, _chai().expect)((0, _plusRangeVersions().getPlusRangeVersionsUsage)(createComponent({
|
|
106
|
+
envJsonc
|
|
107
|
+
}))).to.deep.equal(['env.jsonc policy.peerDependencies my-pkg: "+^"', 'env.jsonc policy.peerDependencies other-pkg: "+~"']);
|
|
108
|
+
});
|
|
109
|
+
it('should ignore "+" and regular versions', () => {
|
|
110
|
+
const envJsonc = {
|
|
111
|
+
policy: {
|
|
112
|
+
peers: [{
|
|
113
|
+
name: 'my-pkg',
|
|
114
|
+
version: '+',
|
|
115
|
+
supportedRange: '^1.0.0'
|
|
116
|
+
}]
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
const component = createComponent({
|
|
120
|
+
depVersionRange: '+',
|
|
121
|
+
policyVersion: '1.0.0',
|
|
122
|
+
envJsonc
|
|
123
|
+
});
|
|
124
|
+
(0, _chai().expect)((0, _plusRangeVersions().getPlusRangeVersionsUsage)(component)).to.deep.equal([]);
|
|
125
|
+
});
|
|
126
|
+
});
|
|
127
|
+
describe('throwForPlusRangeVersions()', () => {
|
|
128
|
+
it('should throw when the feature is not enabled', () => {
|
|
129
|
+
(0, _chai().expect)(() => (0, _plusRangeVersions().throwForPlusRangeVersions)([createComponent({
|
|
130
|
+
depVersionRange: '+^'
|
|
131
|
+
})])).to.throw('plus-range-versions');
|
|
132
|
+
});
|
|
133
|
+
it('should not throw when no "+^"/"+~" is used', () => {
|
|
134
|
+
(0, _chai().expect)(() => (0, _plusRangeVersions().throwForPlusRangeVersions)([createComponent({
|
|
135
|
+
depVersionRange: '+'
|
|
136
|
+
})])).to.not.throw();
|
|
137
|
+
});
|
|
138
|
+
});
|
|
139
|
+
|
|
140
|
+
//# sourceMappingURL=plus-range-versions.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_chai","data","require","_componentId","_legacy","_dependencyResolver","_plusRangeVersions","createComponent","depVersionRange","policyVersion","envJsonc","policy","dependencyId","lifecycleType","value","version","extensions","ExtensionDataList","ExtensionDataEntry","undefined","DependencyResolverAspect","id","files","relative","contents","Buffer","from","JSON","stringify","ComponentID","fromString","getAllDependencies","packageName","versionRange","describe","it","expect","getPlusRangeVersionsUsage","to","deep","equal","peers","name","supportedRange","peerDependencies","component","throwForPlusRangeVersions","throw","not"],"sources":["plus-range-versions.spec.ts"],"sourcesContent":["import { expect } from 'chai';\nimport { ComponentID } from '@teambit/component-id';\nimport { ExtensionDataList, ExtensionDataEntry } from '@teambit/legacy.extension-data';\nimport { DependencyResolverAspect } from '@teambit/dependency-resolver';\nimport type { ConsumerComponent } from '@teambit/legacy.consumer-component';\nimport { getPlusRangeVersionsUsage, throwForPlusRangeVersions } from './plus-range-versions';\n\nfunction createComponent({\n depVersionRange,\n policyVersion,\n envJsonc,\n}: {\n depVersionRange?: string;\n policyVersion?: string;\n envJsonc?: Record<string, any>;\n}): ConsumerComponent {\n const policy = policyVersion\n ? [{ dependencyId: 'my-pkg', lifecycleType: 'runtime', value: { version: policyVersion } }]\n : [];\n const extensions = new ExtensionDataList(\n new ExtensionDataEntry(undefined, undefined, DependencyResolverAspect.id, undefined, { policy })\n );\n const files = envJsonc ? [{ relative: 'env.jsonc', contents: Buffer.from(JSON.stringify(envJsonc)) }] : [];\n return {\n id: ComponentID.fromString('my-scope/my-comp@0.0.1'),\n getAllDependencies: () => [\n { id: ComponentID.fromString('my-scope/dep@0.0.1'), packageName: '@my-scope/dep', versionRange: depVersionRange },\n ],\n extensions,\n files,\n } as any;\n}\n\ndescribe('getPlusRangeVersionsUsage()', () => {\n it('should find a \"+^\" range of a dependency', () => {\n expect(getPlusRangeVersionsUsage(createComponent({ depVersionRange: '+^' }))).to.deep.equal([\n '@my-scope/dep: \"+^\"',\n ]);\n });\n it('should find a \"+~\" version in the policy', () => {\n expect(getPlusRangeVersionsUsage(createComponent({ policyVersion: '+~' }))).to.deep.equal(['my-pkg: \"+~\"']);\n });\n it('should find a \"+^\" supportedRange in the env.jsonc of an env', () => {\n const envJsonc = { policy: { peers: [{ name: 'my-pkg', version: '+', supportedRange: '+^' }] } };\n expect(getPlusRangeVersionsUsage(createComponent({ envJsonc }))).to.deep.equal([\n 'env.jsonc policy.peers my-pkg: \"+^\"',\n ]);\n });\n it('should find a \"+^\" version in the legacy format of the env.jsonc policy', () => {\n const envJsonc = {\n policy: { peerDependencies: { 'my-pkg': '+^', 'other-pkg': { version: '+~' }, 'ok-pkg': '+' } },\n };\n expect(getPlusRangeVersionsUsage(createComponent({ envJsonc }))).to.deep.equal([\n 'env.jsonc policy.peerDependencies my-pkg: \"+^\"',\n 'env.jsonc policy.peerDependencies other-pkg: \"+~\"',\n ]);\n });\n it('should ignore \"+\" and regular versions', () => {\n const envJsonc = { policy: { peers: [{ name: 'my-pkg', version: '+', supportedRange: '^1.0.0' }] } };\n const component = createComponent({ depVersionRange: '+', policyVersion: '1.0.0', envJsonc });\n expect(getPlusRangeVersionsUsage(component)).to.deep.equal([]);\n });\n});\n\ndescribe('throwForPlusRangeVersions()', () => {\n it('should throw when the feature is not enabled', () => {\n expect(() => throwForPlusRangeVersions([createComponent({ depVersionRange: '+^' })])).to.throw(\n 'plus-range-versions'\n );\n });\n it('should not throw when no \"+^\"/\"+~\" is used', () => {\n expect(() => throwForPlusRangeVersions([createComponent({ depVersionRange: '+' })])).to.not.throw();\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -143,6 +143,14 @@ export declare class SnappingMain {
|
|
|
143
143
|
batchId: string;
|
|
144
144
|
}>;
|
|
145
145
|
private addAspectsFromConfigObject;
|
|
146
|
+
/**
|
|
147
|
+
* re-calculate the dependencies policy of the component and its overrides from its config and env, the same way a
|
|
148
|
+
* workspace calculates them when it loads a component, rather than keeping the ones of the version it was loaded from.
|
|
149
|
+
* returns the policy and the overrides of the auto-detected dependencies (versions only, see
|
|
150
|
+
* ApplyOverrides.autoDetectOverrides), which include the deps of the merge-config, same as
|
|
151
|
+
* workspace.getAutoDetectOverrides().
|
|
152
|
+
*/
|
|
153
|
+
private recalcDependenciesPolicy;
|
|
146
154
|
snapFromScope(snapDataPerCompRaw: SnapDataPerCompRaw[], params: {
|
|
147
155
|
push?: boolean;
|
|
148
156
|
ignoreIssues?: string;
|
|
@@ -151,6 +159,7 @@ export declare class SnappingMain {
|
|
|
151
159
|
tag?: boolean;
|
|
152
160
|
updatedLegacyComponents?: ConsumerComponent[];
|
|
153
161
|
loadAspectOnlyForIds?: ComponentIdList;
|
|
162
|
+
recalcDependencies?: boolean;
|
|
154
163
|
} & Partial<BasicTagParams>): Promise<SnapFromScopeResults>;
|
|
155
164
|
/**
|
|
156
165
|
* save the local changes of a component(s) into the scope. snap can be done on main or on a lane.
|
|
@@ -277,6 +286,7 @@ export declare class SnappingMain {
|
|
|
277
286
|
* 2. save all dependencies data from the legacy into DependencyResolver aspect.
|
|
278
287
|
*/
|
|
279
288
|
UpdateDepsAspectsSaveIntoDepsResolver(component: Component, updatedIds: string[]): Promise<void>;
|
|
289
|
+
private updateAspectsVersions;
|
|
280
290
|
/**
|
|
281
291
|
* a new or modified workspace-root component joins every tag and snap of its members. they record
|
|
282
292
|
* the root at the version that has their files (see VersionMaker.recordWorkspaceRoot), and a build
|