@teambit/builder 0.0.984 → 0.0.985
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/builder.service.tsx +5 -5
- package/dist/builder.service.js +2 -2
- package/dist/builder.service.js.map +1 -1
- package/dist/{preview-1676345410142.js → preview-1676431915606.js} +2 -2
- package/package-tar/teambit-builder-0.0.985.tgz +0 -0
- package/package.json +17 -17
- package/package-tar/teambit-builder-0.0.984.tgz +0 -0
package/builder.service.tsx
CHANGED
|
@@ -30,11 +30,11 @@ export type BuilderServiceOptions = {
|
|
|
30
30
|
dev?: boolean;
|
|
31
31
|
};
|
|
32
32
|
|
|
33
|
-
type BuilderTransformationMap = ServiceTransformationMap
|
|
33
|
+
type BuilderTransformationMap = ServiceTransformationMap & {
|
|
34
34
|
getBuildPipe: () => BuildTask[];
|
|
35
35
|
getTagPipe: () => BuildTask[];
|
|
36
36
|
getSnapPipe: () => BuildTask[];
|
|
37
|
-
}
|
|
37
|
+
};
|
|
38
38
|
|
|
39
39
|
export type EnvsBuildContext = { [envId: string]: BuildContext };
|
|
40
40
|
|
|
@@ -155,16 +155,16 @@ export class BuilderService implements EnvService<BuildServiceResults, BuilderDe
|
|
|
155
155
|
},
|
|
156
156
|
getTagPipe: () => {
|
|
157
157
|
// TODO: refactor after defining for an env property
|
|
158
|
-
const pipeline = env.
|
|
158
|
+
const pipeline = env.tag();
|
|
159
159
|
if (!pipeline || !pipeline.compute) return [];
|
|
160
160
|
return pipeline?.compute(envContext);
|
|
161
161
|
},
|
|
162
162
|
getSnapPipe: () => {
|
|
163
|
-
const pipeline = env.
|
|
163
|
+
const pipeline = env.snap();
|
|
164
164
|
if (!pipeline || !pipeline.compute) return [];
|
|
165
165
|
return pipeline?.compute(envContext);
|
|
166
166
|
},
|
|
167
|
-
}
|
|
167
|
+
};
|
|
168
168
|
}
|
|
169
169
|
|
|
170
170
|
private renderOnePipe(pipeName, tasks) {
|
package/dist/builder.service.js
CHANGED
|
@@ -158,12 +158,12 @@ class BuilderService {
|
|
|
158
158
|
},
|
|
159
159
|
getTagPipe: () => {
|
|
160
160
|
// TODO: refactor after defining for an env property
|
|
161
|
-
const pipeline = env.
|
|
161
|
+
const pipeline = env.tag();
|
|
162
162
|
if (!pipeline || !pipeline.compute) return [];
|
|
163
163
|
return pipeline === null || pipeline === void 0 ? void 0 : pipeline.compute(envContext);
|
|
164
164
|
},
|
|
165
165
|
getSnapPipe: () => {
|
|
166
|
-
const pipeline = env.
|
|
166
|
+
const pipeline = env.snap();
|
|
167
167
|
if (!pipeline || !pipeline.compute) return [];
|
|
168
168
|
return pipeline === null || pipeline === void 0 ? void 0 : pipeline.compute(envContext);
|
|
169
169
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["pipeNames","getBuildPipe","getTagPipe","getSnapPipe","BuilderService","constructor","isolator","logger","taskSlot","pipeNameOnEnv","displayPipeName","artifactFactory","scope","runOnce","envsExecutionContext","options","envs","map","executionContext","envDefinition","tasksQueue","calculatePipelineOrder","tasks","skipTests","validate","info","toString","title","length","longProcessLogger","createLongProcessLogger","consoleTitle","envsBuildContext","pMapSeries","componentIds","components","component","id","originalSeeders","originalSeedersOfThisEnv","filter","compId","find","seeder","isEqual","capsuleNetwork","isolateComponents","getExistingAsIs","seedersOnly","_originalSeeders","console","seedersCapsules","graphCapsules","buildContext","Object","assign","previousTasksResults","pipeName","dev","laneId","legacyScope","currentLaneId","buildPipe","BuildPipe","buildResults","execute","end","hasErrors","consoleFailure","consoleSuccess","render","env","pipes","getDescriptor","BuilderAspect","renderOnePipe","transform","envContext","build","undefined","pipeline","compute","snap","tag","task","index","keys","pipeFuncName","getTasksNamesByPipeFunc","BuildTaskHelper","serializeId","getCurrentPipeTasks"],"sources":["builder.service.tsx"],"sourcesContent":["import { EnvService, ExecutionContext, EnvDefinition, Env, EnvContext, ServiceTransformationMap } from '@teambit/envs';\nimport React from 'react';\nimport { ScopeMain } from '@teambit/scope';\nimport pMapSeries from 'p-map-series';\nimport { Text, Newline } from 'ink';\nimport { Logger } from '@teambit/logger';\nimport { IsolatorMain } from '@teambit/isolator';\nimport { Component, ComponentID } from '@teambit/component';\nimport { BuildPipe, TaskResults } from './build-pipe';\nimport { TaskResultsList } from './task-results-list';\nimport { TaskSlot } from './builder.main.runtime';\nimport { BuildContext, BuildTask, BuildTaskHelper } from './build-task';\nimport { ArtifactFactory } from './artifact';\nimport { calculatePipelineOrder } from './build-pipeline-order';\nimport { BuilderAspect } from './builder.aspect';\n\nexport type BuildServiceResults = {\n id: string;\n buildResults: TaskResultsList;\n components: Component[];\n errors?: [];\n};\n\nexport type BuilderServiceOptions = {\n seedersOnly?: boolean;\n originalSeeders?: ComponentID[];\n tasks?: string[];\n skipTests?: boolean;\n previousTasksResults?: TaskResults[];\n dev?: boolean;\n};\n\ntype BuilderTransformationMap = ServiceTransformationMap & {\n getBuildPipe: () => BuildTask[];\n getTagPipe: () => BuildTask[];\n getSnapPipe: () => BuildTask[];\n}\n\nexport type EnvsBuildContext = { [envId: string]: BuildContext };\n\nconst pipeNames = {\n getBuildPipe: 'build',\n getTagPipe: 'tag',\n getSnapPipe: 'snap',\n};\n\nexport type PipeName = 'build' | 'tag' | 'snap';\n\nexport type BuilderDescriptor = Array<{ pipeName: PipeName; tasks: string[] }>;\n\ntype PipeFunctionNames = keyof typeof pipeNames;\nexport class BuilderService implements EnvService<BuildServiceResults, BuilderDescriptor> {\n name = 'builder';\n\n constructor(\n /**\n * isolator extension.\n */\n private isolator: IsolatorMain,\n\n /**\n * logger extension.\n */\n private logger: Logger,\n\n /**\n * task slot (e.g tasks registered by other extensions.).\n */\n private taskSlot: TaskSlot,\n\n /**\n * a method with such name should be implemented on the env in order to run the pipe tasks.\n */\n private pipeNameOnEnv: PipeFunctionNames,\n\n /**\n * pipe name to display on the console during the execution\n */\n private displayPipeName: PipeName,\n private artifactFactory: ArtifactFactory,\n private scope: ScopeMain\n ) {}\n\n /**\n * runs all tasks for all envs\n */\n async runOnce(envsExecutionContext: ExecutionContext[], options: BuilderServiceOptions): Promise<TaskResultsList> {\n const envs = envsExecutionContext.map((executionContext) => executionContext.envDefinition);\n const tasksQueue = calculatePipelineOrder(\n this.taskSlot,\n envs,\n this.pipeNameOnEnv,\n options.tasks,\n options.skipTests\n );\n tasksQueue.validate();\n this.logger.info(`going to run tasks in the following order:\\n${tasksQueue.toString()}`);\n const title = `running ${this.displayPipeName} pipe for ${envs.length} environments, total ${tasksQueue.length} tasks`;\n const longProcessLogger = this.logger.createLongProcessLogger(title);\n this.logger.consoleTitle(title);\n const envsBuildContext: EnvsBuildContext = {};\n await pMapSeries(envsExecutionContext, async (executionContext) => {\n const componentIds = executionContext.components.map((component) => component.id);\n const { originalSeeders } = options;\n const originalSeedersOfThisEnv = componentIds.filter((compId) =>\n originalSeeders ? originalSeeders.find((seeder) => compId.isEqual(seeder)) : true\n );\n const capsuleNetwork = await this.isolator.isolateComponents(componentIds, {\n getExistingAsIs: true,\n seedersOnly: options.seedersOnly,\n });\n capsuleNetwork._originalSeeders = originalSeedersOfThisEnv;\n this.logger.console(\n `generated graph for env \"${executionContext.id}\", originalSeedersOfThisEnv: ${originalSeedersOfThisEnv.length}, graphOfThisEnv: ${capsuleNetwork.seedersCapsules.length}, graph total: ${capsuleNetwork.graphCapsules.length}`\n );\n const buildContext = Object.assign(executionContext, {\n capsuleNetwork,\n previousTasksResults: [],\n pipeName: this.displayPipeName,\n dev: options.dev,\n laneId: this.scope.legacyScope.currentLaneId,\n });\n envsBuildContext[executionContext.id] = buildContext;\n });\n const buildPipe = new BuildPipe(\n tasksQueue,\n envsBuildContext,\n this.logger,\n this.artifactFactory,\n options.previousTasksResults\n );\n const buildResults = await buildPipe.execute();\n longProcessLogger.end();\n buildResults.hasErrors() ? this.logger.consoleFailure() : this.logger.consoleSuccess();\n\n return buildResults;\n }\n\n render(env: EnvDefinition) {\n const pipes = this.getDescriptor(env);\n\n return (\n <Text key={BuilderAspect.id}>{pipes.map(({ pipeName, tasks }) => this.renderOnePipe(pipeName, tasks))}</Text>\n );\n }\n\n transform(env: Env, envContext: EnvContext): BuilderTransformationMap | undefined {\n if (!env?.build) return undefined;\n return {\n getBuildPipe: () => {\n // TODO: refactor after defining for an env property\n const pipeline = env.build();\n if (!pipeline || !pipeline.compute) return [];\n return pipeline?.compute(envContext);\n },\n getTagPipe: () => {\n // TODO: refactor after defining for an env property\n const pipeline = env.snap();\n if (!pipeline || !pipeline.compute) return [];\n return pipeline?.compute(envContext);\n },\n getSnapPipe: () => {\n const pipeline = env.tag();\n if (!pipeline || !pipeline.compute) return [];\n return pipeline?.compute(envContext);\n },\n }\n }\n\n private renderOnePipe(pipeName, tasks) {\n if (!tasks || !tasks.length) return null;\n return (\n <Text key={pipeName}>\n <Text underline color=\"green\">\n {pipeName} pipe\n </Text>\n <Newline />\n <Text color=\"cyan\">total {tasks.length} tasks are configured to be executed in the following order</Text>\n <Newline />\n {tasks.map((task, index) => (\n <Text key={index}>\n <Text>\n {index + 1}. {task}\n </Text>\n <Newline />\n </Text>\n ))}\n <Newline />\n </Text>\n );\n }\n\n getDescriptor(env: EnvDefinition) {\n // @ts-ignore\n const tasks = Object.keys(pipeNames).map((pipeFuncName: PipeFunctionNames) => {\n const tasksQueue = this.getTasksNamesByPipeFunc(env, pipeFuncName);\n return { pipeName: pipeNames[pipeFuncName], tasks: tasksQueue };\n });\n return tasks as BuilderDescriptor;\n }\n\n private getTasksNamesByPipeFunc(env: EnvDefinition, pipeFuncName: PipeFunctionNames): string[] {\n const tasksQueue = calculatePipelineOrder(this.taskSlot, [env], pipeFuncName).map(({ task }) =>\n BuildTaskHelper.serializeId(task)\n );\n return tasksQueue;\n }\n\n getCurrentPipeTasks(env: EnvDefinition) {\n return this.getTasksNamesByPipeFunc(env, this.pipeNameOnEnv);\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["pipeNames","getBuildPipe","getTagPipe","getSnapPipe","BuilderService","constructor","isolator","logger","taskSlot","pipeNameOnEnv","displayPipeName","artifactFactory","scope","runOnce","envsExecutionContext","options","envs","map","executionContext","envDefinition","tasksQueue","calculatePipelineOrder","tasks","skipTests","validate","info","toString","title","length","longProcessLogger","createLongProcessLogger","consoleTitle","envsBuildContext","pMapSeries","componentIds","components","component","id","originalSeeders","originalSeedersOfThisEnv","filter","compId","find","seeder","isEqual","capsuleNetwork","isolateComponents","getExistingAsIs","seedersOnly","_originalSeeders","console","seedersCapsules","graphCapsules","buildContext","Object","assign","previousTasksResults","pipeName","dev","laneId","legacyScope","currentLaneId","buildPipe","BuildPipe","buildResults","execute","end","hasErrors","consoleFailure","consoleSuccess","render","env","pipes","getDescriptor","BuilderAspect","renderOnePipe","transform","envContext","build","undefined","pipeline","compute","tag","snap","task","index","keys","pipeFuncName","getTasksNamesByPipeFunc","BuildTaskHelper","serializeId","getCurrentPipeTasks"],"sources":["builder.service.tsx"],"sourcesContent":["import { EnvService, ExecutionContext, EnvDefinition, Env, EnvContext, ServiceTransformationMap } from '@teambit/envs';\nimport React from 'react';\nimport { ScopeMain } from '@teambit/scope';\nimport pMapSeries from 'p-map-series';\nimport { Text, Newline } from 'ink';\nimport { Logger } from '@teambit/logger';\nimport { IsolatorMain } from '@teambit/isolator';\nimport { Component, ComponentID } from '@teambit/component';\nimport { BuildPipe, TaskResults } from './build-pipe';\nimport { TaskResultsList } from './task-results-list';\nimport { TaskSlot } from './builder.main.runtime';\nimport { BuildContext, BuildTask, BuildTaskHelper } from './build-task';\nimport { ArtifactFactory } from './artifact';\nimport { calculatePipelineOrder } from './build-pipeline-order';\nimport { BuilderAspect } from './builder.aspect';\n\nexport type BuildServiceResults = {\n id: string;\n buildResults: TaskResultsList;\n components: Component[];\n errors?: [];\n};\n\nexport type BuilderServiceOptions = {\n seedersOnly?: boolean;\n originalSeeders?: ComponentID[];\n tasks?: string[];\n skipTests?: boolean;\n previousTasksResults?: TaskResults[];\n dev?: boolean;\n};\n\ntype BuilderTransformationMap = ServiceTransformationMap & {\n getBuildPipe: () => BuildTask[];\n getTagPipe: () => BuildTask[];\n getSnapPipe: () => BuildTask[];\n};\n\nexport type EnvsBuildContext = { [envId: string]: BuildContext };\n\nconst pipeNames = {\n getBuildPipe: 'build',\n getTagPipe: 'tag',\n getSnapPipe: 'snap',\n};\n\nexport type PipeName = 'build' | 'tag' | 'snap';\n\nexport type BuilderDescriptor = Array<{ pipeName: PipeName; tasks: string[] }>;\n\ntype PipeFunctionNames = keyof typeof pipeNames;\nexport class BuilderService implements EnvService<BuildServiceResults, BuilderDescriptor> {\n name = 'builder';\n\n constructor(\n /**\n * isolator extension.\n */\n private isolator: IsolatorMain,\n\n /**\n * logger extension.\n */\n private logger: Logger,\n\n /**\n * task slot (e.g tasks registered by other extensions.).\n */\n private taskSlot: TaskSlot,\n\n /**\n * a method with such name should be implemented on the env in order to run the pipe tasks.\n */\n private pipeNameOnEnv: PipeFunctionNames,\n\n /**\n * pipe name to display on the console during the execution\n */\n private displayPipeName: PipeName,\n private artifactFactory: ArtifactFactory,\n private scope: ScopeMain\n ) {}\n\n /**\n * runs all tasks for all envs\n */\n async runOnce(envsExecutionContext: ExecutionContext[], options: BuilderServiceOptions): Promise<TaskResultsList> {\n const envs = envsExecutionContext.map((executionContext) => executionContext.envDefinition);\n const tasksQueue = calculatePipelineOrder(\n this.taskSlot,\n envs,\n this.pipeNameOnEnv,\n options.tasks,\n options.skipTests\n );\n tasksQueue.validate();\n this.logger.info(`going to run tasks in the following order:\\n${tasksQueue.toString()}`);\n const title = `running ${this.displayPipeName} pipe for ${envs.length} environments, total ${tasksQueue.length} tasks`;\n const longProcessLogger = this.logger.createLongProcessLogger(title);\n this.logger.consoleTitle(title);\n const envsBuildContext: EnvsBuildContext = {};\n await pMapSeries(envsExecutionContext, async (executionContext) => {\n const componentIds = executionContext.components.map((component) => component.id);\n const { originalSeeders } = options;\n const originalSeedersOfThisEnv = componentIds.filter((compId) =>\n originalSeeders ? originalSeeders.find((seeder) => compId.isEqual(seeder)) : true\n );\n const capsuleNetwork = await this.isolator.isolateComponents(componentIds, {\n getExistingAsIs: true,\n seedersOnly: options.seedersOnly,\n });\n capsuleNetwork._originalSeeders = originalSeedersOfThisEnv;\n this.logger.console(\n `generated graph for env \"${executionContext.id}\", originalSeedersOfThisEnv: ${originalSeedersOfThisEnv.length}, graphOfThisEnv: ${capsuleNetwork.seedersCapsules.length}, graph total: ${capsuleNetwork.graphCapsules.length}`\n );\n const buildContext = Object.assign(executionContext, {\n capsuleNetwork,\n previousTasksResults: [],\n pipeName: this.displayPipeName,\n dev: options.dev,\n laneId: this.scope.legacyScope.currentLaneId,\n });\n envsBuildContext[executionContext.id] = buildContext;\n });\n const buildPipe = new BuildPipe(\n tasksQueue,\n envsBuildContext,\n this.logger,\n this.artifactFactory,\n options.previousTasksResults\n );\n const buildResults = await buildPipe.execute();\n longProcessLogger.end();\n buildResults.hasErrors() ? this.logger.consoleFailure() : this.logger.consoleSuccess();\n\n return buildResults;\n }\n\n render(env: EnvDefinition) {\n const pipes = this.getDescriptor(env);\n\n return (\n <Text key={BuilderAspect.id}>{pipes.map(({ pipeName, tasks }) => this.renderOnePipe(pipeName, tasks))}</Text>\n );\n }\n\n transform(env: Env, envContext: EnvContext): BuilderTransformationMap | undefined {\n if (!env?.build) return undefined;\n return {\n getBuildPipe: () => {\n // TODO: refactor after defining for an env property\n const pipeline = env.build();\n if (!pipeline || !pipeline.compute) return [];\n return pipeline?.compute(envContext);\n },\n getTagPipe: () => {\n // TODO: refactor after defining for an env property\n const pipeline = env.tag();\n if (!pipeline || !pipeline.compute) return [];\n return pipeline?.compute(envContext);\n },\n getSnapPipe: () => {\n const pipeline = env.snap();\n if (!pipeline || !pipeline.compute) return [];\n return pipeline?.compute(envContext);\n },\n };\n }\n\n private renderOnePipe(pipeName, tasks) {\n if (!tasks || !tasks.length) return null;\n return (\n <Text key={pipeName}>\n <Text underline color=\"green\">\n {pipeName} pipe\n </Text>\n <Newline />\n <Text color=\"cyan\">total {tasks.length} tasks are configured to be executed in the following order</Text>\n <Newline />\n {tasks.map((task, index) => (\n <Text key={index}>\n <Text>\n {index + 1}. {task}\n </Text>\n <Newline />\n </Text>\n ))}\n <Newline />\n </Text>\n );\n }\n\n getDescriptor(env: EnvDefinition) {\n // @ts-ignore\n const tasks = Object.keys(pipeNames).map((pipeFuncName: PipeFunctionNames) => {\n const tasksQueue = this.getTasksNamesByPipeFunc(env, pipeFuncName);\n return { pipeName: pipeNames[pipeFuncName], tasks: tasksQueue };\n });\n return tasks as BuilderDescriptor;\n }\n\n private getTasksNamesByPipeFunc(env: EnvDefinition, pipeFuncName: PipeFunctionNames): string[] {\n const tasksQueue = calculatePipelineOrder(this.taskSlot, [env], pipeFuncName).map(({ task }) =>\n BuildTaskHelper.serializeId(task)\n );\n return tasksQueue;\n }\n\n getCurrentPipeTasks(env: EnvDefinition) {\n return this.getTasksNamesByPipeFunc(env, this.pipeNameOnEnv);\n }\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.pipelines_builder@0.0.
|
|
2
|
-
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.pipelines_builder@0.0.
|
|
1
|
+
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.pipelines_builder@0.0.985/dist/builder.composition.js';
|
|
2
|
+
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.pipelines_builder@0.0.985/dist/builder.docs.mdx';
|
|
3
3
|
|
|
4
4
|
export const compositions = [compositions_0];
|
|
5
5
|
export const overview = [overview_0];
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teambit/builder",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.985",
|
|
4
4
|
"homepage": "https://bit.dev/teambit/pipelines/builder",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"componentId": {
|
|
7
7
|
"scope": "teambit.pipelines",
|
|
8
8
|
"name": "builder",
|
|
9
|
-
"version": "0.0.
|
|
9
|
+
"version": "0.0.985"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"p-map-series": "2.1.0",
|
|
@@ -26,20 +26,20 @@
|
|
|
26
26
|
"@babel/runtime": "7.20.0",
|
|
27
27
|
"@teambit/graph.cleargraph": "0.0.1",
|
|
28
28
|
"@teambit/harmony": "0.4.6",
|
|
29
|
-
"@teambit/component": "0.0.
|
|
30
|
-
"@teambit/envs": "0.0.
|
|
31
|
-
"@teambit/logger": "0.0.
|
|
32
|
-
"@teambit/tester": "0.0.
|
|
33
|
-
"@teambit/isolator": "0.0.
|
|
34
|
-
"@teambit/lane-id": "0.0.
|
|
35
|
-
"@teambit/cli": "0.0.
|
|
36
|
-
"@teambit/workspace": "0.0.
|
|
37
|
-
"@teambit/aspect-loader": "0.0.
|
|
38
|
-
"@teambit/aspect": "0.0.
|
|
39
|
-
"@teambit/generator": "0.0.
|
|
40
|
-
"@teambit/graphql": "0.0.
|
|
41
|
-
"@teambit/scope": "0.0.
|
|
42
|
-
"@teambit/express": "0.0.
|
|
29
|
+
"@teambit/component": "0.0.985",
|
|
30
|
+
"@teambit/envs": "0.0.985",
|
|
31
|
+
"@teambit/logger": "0.0.755",
|
|
32
|
+
"@teambit/tester": "0.0.985",
|
|
33
|
+
"@teambit/isolator": "0.0.985",
|
|
34
|
+
"@teambit/lane-id": "0.0.179",
|
|
35
|
+
"@teambit/cli": "0.0.662",
|
|
36
|
+
"@teambit/workspace": "0.0.985",
|
|
37
|
+
"@teambit/aspect-loader": "0.0.985",
|
|
38
|
+
"@teambit/aspect": "0.0.985",
|
|
39
|
+
"@teambit/generator": "0.0.985",
|
|
40
|
+
"@teambit/graphql": "0.0.985",
|
|
41
|
+
"@teambit/scope": "0.0.985",
|
|
42
|
+
"@teambit/express": "0.0.760",
|
|
43
43
|
"@teambit/bit-error": "0.0.402",
|
|
44
44
|
"@teambit/component-id": "0.0.426"
|
|
45
45
|
},
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
"@teambit/pipelines.aspect-docs.builder": "0.0.151"
|
|
59
59
|
},
|
|
60
60
|
"peerDependencies": {
|
|
61
|
-
"@teambit/legacy": "1.0.
|
|
61
|
+
"@teambit/legacy": "1.0.443",
|
|
62
62
|
"react": "^16.8.0 || ^17.0.0",
|
|
63
63
|
"react-dom": "^16.8.0 || ^17.0.0"
|
|
64
64
|
},
|
|
Binary file
|