@teambit/api-server 0.0.124 → 0.0.126

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.
@@ -2,6 +2,9 @@ import { CompFiles, Workspace, FilesStatus } from '@teambit/workspace';
2
2
  import { PathLinux, PathOsBasedAbsolute, PathOsBasedRelative } from '@teambit/legacy/dist/utils/path';
3
3
  import { SnappingMain } from '@teambit/snapping';
4
4
  import { LanesMain } from '@teambit/lanes';
5
+ import { InstallMain } from '@teambit/install';
6
+ import { ExportMain } from '@teambit/export';
7
+ import { CheckoutMain } from '@teambit/checkout';
5
8
  declare type PathFromLastSnap = {
6
9
  [relativeToWorkspace: PathLinux]: string;
7
10
  };
@@ -17,7 +20,10 @@ export declare class APIForIDE {
17
20
  private workspace;
18
21
  private snapping;
19
22
  private lanes;
20
- constructor(workspace: Workspace, snapping: SnappingMain, lanes: LanesMain);
23
+ private installer;
24
+ private exporter;
25
+ private checkout;
26
+ constructor(workspace: Workspace, snapping: SnappingMain, lanes: LanesMain, installer: InstallMain, exporter: ExportMain, checkout: CheckoutMain);
21
27
  listIdsWithPaths(): Promise<{}>;
22
28
  getMainFilePath(id: string): Promise<PathOsBasedAbsolute>;
23
29
  importLane(laneName: string, { skipDependencyInstallation }: {
@@ -33,6 +39,17 @@ export declare class APIForIDE {
33
39
  getCompFilesDirPathFromLastSnapUsingCompFiles(compFiles: CompFiles): Promise<{
34
40
  [relativePath: string]: string;
35
41
  }>;
42
+ install(): Promise<import("@teambit/component").ComponentMap<string>>;
43
+ export(): Promise<{
44
+ componentsIds: string[];
45
+ removedIds: string[];
46
+ exportedLanes: string[];
47
+ }>;
48
+ checkoutHead(): Promise<{
49
+ succeed: string[] | undefined;
50
+ skipped: string[] | undefined;
51
+ failed: string[] | undefined;
52
+ }>;
36
53
  getDataToInitSCM(): Promise<DataToInitSCM>;
37
54
  getCompFilesDirPathFromLastSnapForAllComps(): Promise<{
38
55
  [relativePath: string]: string;
@@ -47,10 +47,13 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
47
47
  const FILES_HISTORY_DIR = 'files-history';
48
48
  const LAST_SNAP_DIR = 'last-snap';
49
49
  class APIForIDE {
50
- constructor(workspace, snapping, lanes) {
50
+ constructor(workspace, snapping, lanes, installer, exporter, checkout) {
51
51
  this.workspace = workspace;
52
52
  this.snapping = snapping;
53
53
  this.lanes = lanes;
54
+ this.installer = installer;
55
+ this.exporter = exporter;
56
+ this.checkout = checkout;
54
57
  }
55
58
  async listIdsWithPaths() {
56
59
  const ids = await this.workspace.listIds();
@@ -126,6 +129,40 @@ class APIForIDE {
126
129
  }));
127
130
  return results;
128
131
  }
132
+ async install() {
133
+ return this.installer.install(undefined, {
134
+ optimizeReportForNonTerminal: true
135
+ });
136
+ }
137
+ async export() {
138
+ const {
139
+ componentsIds,
140
+ removedIds,
141
+ exportedLanes
142
+ } = await this.exporter.export();
143
+ return {
144
+ componentsIds: componentsIds.map(c => c.toString()),
145
+ removedIds: removedIds.map(c => c.toString()),
146
+ exportedLanes: exportedLanes.map(l => l.id())
147
+ };
148
+ }
149
+ async checkoutHead() {
150
+ const {
151
+ components,
152
+ failedComponents
153
+ } = await this.checkout.checkout({
154
+ head: true,
155
+ skipNpmInstall: true,
156
+ ids: await this.workspace.listIds()
157
+ });
158
+ const skipped = failedComponents === null || failedComponents === void 0 ? void 0 : failedComponents.filter(f => f.unchangedLegitimately).map(f => f.id.toString());
159
+ const failed = failedComponents === null || failedComponents === void 0 ? void 0 : failedComponents.filter(f => !f.unchangedLegitimately).map(f => f.id.toString());
160
+ return {
161
+ succeed: components === null || components === void 0 ? void 0 : components.map(c => c.id.toString()),
162
+ skipped,
163
+ failed
164
+ };
165
+ }
129
166
  async getDataToInitSCM() {
130
167
  const ids = await this.workspace.listIds();
131
168
  const results = {};
@@ -1 +1 @@
1
- {"version":3,"names":["FILES_HISTORY_DIR","LAST_SNAP_DIR","APIForIDE","constructor","workspace","snapping","lanes","listIdsWithPaths","ids","listIds","reduce","acc","id","toStringWithoutVersion","componentDir","getMainFilePath","compId","resolveComponentId","comp","get","path","join","state","_consumer","mainFile","importLane","laneName","skipDependencyInstallation","results","switchLanes","getAll","components","map","c","toString","getCompFiles","dirAbs","filesRelative","filesystem","files","file","relative","getCompFilesDirPathFromLastSnap","hasVersion","compDir","ignoreVersion","filePathsRootDir","scope","fs","remove","modelComponent","getBitObjectModelComponent","Error","versionObject","getBitObjectVersion","version","sourceFiles","modelFilesToSourceFiles","legacyScope","objects","Promise","all","filePath","outputFile","contents","pathJoinLinux","getCompFilesDirPathFromLastSnapUsingCompFiles","compFiles","getHeadFiles","getDataToInitSCM","pMap","getFilesModification","pathsFromLastSnap","idStr","filesStatus","getFilesStatus","concurrency","getCompFilesDirPathFromLastSnapForAllComps","compResults","getCurrentLaneName","getCurrentLaneId","name","tagOrSnap","message","params","build","isOnMain","tag","snap","taggedComponents","snappedComponents"],"sources":["api-for-ide.ts"],"sourcesContent":["import path from 'path';\nimport fs from 'fs-extra';\nimport { CompFiles, Workspace, FilesStatus } from '@teambit/workspace';\nimport { PathLinux, PathOsBasedAbsolute, PathOsBasedRelative, pathJoinLinux } from '@teambit/legacy/dist/utils/path';\nimport pMap from 'p-map';\nimport { SnappingMain } from '@teambit/snapping';\nimport { LanesMain } from '@teambit/lanes';\n\nconst FILES_HISTORY_DIR = 'files-history';\nconst LAST_SNAP_DIR = 'last-snap';\n\ntype PathFromLastSnap = { [relativeToWorkspace: PathLinux]: string };\n\ntype InitSCMEntry = {\n filesStatus: FilesStatus;\n pathsFromLastSnap: PathFromLastSnap;\n compDir: PathLinux;\n};\n\ntype DataToInitSCM = { [compId: string]: InitSCMEntry };\n\nexport class APIForIDE {\n constructor(private workspace: Workspace, private snapping: SnappingMain, private lanes: LanesMain) {}\n\n async listIdsWithPaths() {\n const ids = await this.workspace.listIds();\n return ids.reduce((acc, id) => {\n acc[id.toStringWithoutVersion()] = this.workspace.componentDir(id);\n return acc;\n }, {});\n }\n\n async getMainFilePath(id: string): Promise<PathOsBasedAbsolute> {\n const compId = await this.workspace.resolveComponentId(id);\n const comp = await this.workspace.get(compId);\n return path.join(this.workspace.componentDir(compId), comp.state._consumer.mainFile);\n }\n\n async importLane(\n laneName: string,\n { skipDependencyInstallation }: { skipDependencyInstallation?: boolean }\n ): Promise<string[]> {\n const results = await this.lanes.switchLanes(laneName, {\n skipDependencyInstallation,\n getAll: true,\n });\n return (results.components || []).map((c) => c.id.toString());\n }\n\n async getCompFiles(id: string): Promise<{ dirAbs: string; filesRelative: PathOsBasedRelative[] }> {\n const compId = await this.workspace.resolveComponentId(id);\n const comp = await this.workspace.get(compId);\n const dirAbs = this.workspace.componentDir(compId);\n const filesRelative = comp.state.filesystem.files.map((file) => file.relative);\n return { dirAbs, filesRelative };\n }\n\n async getCompFilesDirPathFromLastSnap(id: string): Promise<{ [relativePath: string]: string }> {\n const compId = await this.workspace.resolveComponentId(id);\n if (!compId.hasVersion()) return {}; // it's a new component.\n const compDir = this.workspace.componentDir(compId, { ignoreVersion: true }, { relative: true });\n // const dirName = filenamify(compId.toString(), { replacement: '_' });\n const filePathsRootDir = path.join(this.workspace.scope.path, FILES_HISTORY_DIR, LAST_SNAP_DIR, compDir);\n await fs.remove(filePathsRootDir); // in case it has old data\n\n const modelComponent = await this.workspace.scope.getBitObjectModelComponent(compId);\n if (!modelComponent) {\n throw new Error(`unable to find ${compId.toString()} in the local scope, please run \"bit import\"`);\n }\n const versionObject = await this.workspace.scope.getBitObjectVersion(modelComponent, compId.version as string);\n if (!versionObject)\n throw new Error(`unable to find the Version object of ${compId.toString()}, please run \"bit import\"`);\n const sourceFiles = await versionObject.modelFilesToSourceFiles(this.workspace.scope.legacyScope.objects);\n const results: { [relativePath: string]: string } = {};\n await Promise.all(\n sourceFiles.map(async (file) => {\n const filePath = path.join(filePathsRootDir, file.relative);\n await fs.outputFile(filePath, file.contents);\n results[pathJoinLinux(compDir, file.relative)] = filePath;\n })\n );\n return results;\n }\n\n async getCompFilesDirPathFromLastSnapUsingCompFiles(\n compFiles: CompFiles\n ): Promise<{ [relativePath: string]: string }> {\n const compId = compFiles.id;\n if (!compId.hasVersion()) return {}; // it's a new component.\n const compDir = compFiles.compDir;\n const filePathsRootDir = path.join(this.workspace.scope.path, FILES_HISTORY_DIR, LAST_SNAP_DIR, compDir);\n await fs.remove(filePathsRootDir); // in case it has old data\n\n const sourceFiles = await compFiles.getHeadFiles();\n\n const results: { [relativePath: string]: string } = {};\n await Promise.all(\n sourceFiles.map(async (file) => {\n const filePath = path.join(filePathsRootDir, file.relative);\n await fs.outputFile(filePath, file.contents);\n results[pathJoinLinux(compDir, file.relative)] = filePath;\n })\n );\n return results;\n }\n\n async getDataToInitSCM(): Promise<DataToInitSCM> {\n const ids = await this.workspace.listIds();\n const results: DataToInitSCM = {};\n await pMap(\n ids,\n async (id) => {\n const compFiles = await this.workspace.getFilesModification(id);\n const pathsFromLastSnap = await this.getCompFilesDirPathFromLastSnapUsingCompFiles(compFiles);\n const idStr = id.toStringWithoutVersion();\n results[idStr] = {\n filesStatus: compFiles.getFilesStatus(),\n pathsFromLastSnap,\n compDir: compFiles.compDir,\n };\n },\n { concurrency: 30 }\n );\n\n return results;\n }\n\n async getCompFilesDirPathFromLastSnapForAllComps(): Promise<{ [relativePath: string]: string }> {\n const ids = await this.workspace.listIds();\n let results = {};\n await pMap(\n ids,\n async (id) => {\n const idStr = id.toStringWithoutVersion();\n const compResults = await this.getCompFilesDirPathFromLastSnap(idStr);\n results = { ...results, ...compResults };\n },\n { concurrency: 30 }\n );\n return results;\n }\n\n getCurrentLaneName(): string {\n return this.workspace.getCurrentLaneId().name;\n }\n\n async tagOrSnap(message = '') {\n const params = { message, build: false };\n return this.workspace.isOnMain() ? this.snapping.tag(params) : this.snapping.snap(params);\n }\n\n async tag(message = ''): Promise<string[]> {\n const params = { message, build: false };\n const results = await this.snapping.tag(params);\n return (results?.taggedComponents || []).map((c) => c.id.toString());\n }\n\n async snap(message = ''): Promise<string[]> {\n const params = { message, build: false };\n const results = await this.snapping.snap(params);\n return (results?.snappedComponents || []).map((c) => c.id.toString());\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["FILES_HISTORY_DIR","LAST_SNAP_DIR","APIForIDE","constructor","workspace","snapping","lanes","installer","exporter","checkout","listIdsWithPaths","ids","listIds","reduce","acc","id","toStringWithoutVersion","componentDir","getMainFilePath","compId","resolveComponentId","comp","get","path","join","state","_consumer","mainFile","importLane","laneName","skipDependencyInstallation","results","switchLanes","getAll","components","map","c","toString","getCompFiles","dirAbs","filesRelative","filesystem","files","file","relative","getCompFilesDirPathFromLastSnap","hasVersion","compDir","ignoreVersion","filePathsRootDir","scope","fs","remove","modelComponent","getBitObjectModelComponent","Error","versionObject","getBitObjectVersion","version","sourceFiles","modelFilesToSourceFiles","legacyScope","objects","Promise","all","filePath","outputFile","contents","pathJoinLinux","getCompFilesDirPathFromLastSnapUsingCompFiles","compFiles","getHeadFiles","install","undefined","optimizeReportForNonTerminal","export","componentsIds","removedIds","exportedLanes","l","checkoutHead","failedComponents","head","skipNpmInstall","skipped","filter","f","unchangedLegitimately","failed","succeed","getDataToInitSCM","pMap","getFilesModification","pathsFromLastSnap","idStr","filesStatus","getFilesStatus","concurrency","getCompFilesDirPathFromLastSnapForAllComps","compResults","getCurrentLaneName","getCurrentLaneId","name","tagOrSnap","message","params","build","isOnMain","tag","snap","taggedComponents","snappedComponents"],"sources":["api-for-ide.ts"],"sourcesContent":["import path from 'path';\nimport fs from 'fs-extra';\nimport { CompFiles, Workspace, FilesStatus } from '@teambit/workspace';\nimport { PathLinux, PathOsBasedAbsolute, PathOsBasedRelative, pathJoinLinux } from '@teambit/legacy/dist/utils/path';\nimport pMap from 'p-map';\nimport { SnappingMain } from '@teambit/snapping';\nimport { LanesMain } from '@teambit/lanes';\nimport { InstallMain } from '@teambit/install';\nimport { ExportMain } from '@teambit/export';\nimport { CheckoutMain } from '@teambit/checkout';\n\nconst FILES_HISTORY_DIR = 'files-history';\nconst LAST_SNAP_DIR = 'last-snap';\n\ntype PathFromLastSnap = { [relativeToWorkspace: PathLinux]: string };\n\ntype InitSCMEntry = {\n filesStatus: FilesStatus;\n pathsFromLastSnap: PathFromLastSnap;\n compDir: PathLinux;\n};\n\ntype DataToInitSCM = { [compId: string]: InitSCMEntry };\n\nexport class APIForIDE {\n constructor(\n private workspace: Workspace,\n private snapping: SnappingMain,\n private lanes: LanesMain,\n private installer: InstallMain,\n private exporter: ExportMain,\n private checkout: CheckoutMain\n ) {}\n\n async listIdsWithPaths() {\n const ids = await this.workspace.listIds();\n return ids.reduce((acc, id) => {\n acc[id.toStringWithoutVersion()] = this.workspace.componentDir(id);\n return acc;\n }, {});\n }\n\n async getMainFilePath(id: string): Promise<PathOsBasedAbsolute> {\n const compId = await this.workspace.resolveComponentId(id);\n const comp = await this.workspace.get(compId);\n return path.join(this.workspace.componentDir(compId), comp.state._consumer.mainFile);\n }\n\n async importLane(\n laneName: string,\n { skipDependencyInstallation }: { skipDependencyInstallation?: boolean }\n ): Promise<string[]> {\n const results = await this.lanes.switchLanes(laneName, {\n skipDependencyInstallation,\n getAll: true,\n });\n return (results.components || []).map((c) => c.id.toString());\n }\n\n async getCompFiles(id: string): Promise<{ dirAbs: string; filesRelative: PathOsBasedRelative[] }> {\n const compId = await this.workspace.resolveComponentId(id);\n const comp = await this.workspace.get(compId);\n const dirAbs = this.workspace.componentDir(compId);\n const filesRelative = comp.state.filesystem.files.map((file) => file.relative);\n return { dirAbs, filesRelative };\n }\n\n async getCompFilesDirPathFromLastSnap(id: string): Promise<{ [relativePath: string]: string }> {\n const compId = await this.workspace.resolveComponentId(id);\n if (!compId.hasVersion()) return {}; // it's a new component.\n const compDir = this.workspace.componentDir(compId, { ignoreVersion: true }, { relative: true });\n // const dirName = filenamify(compId.toString(), { replacement: '_' });\n const filePathsRootDir = path.join(this.workspace.scope.path, FILES_HISTORY_DIR, LAST_SNAP_DIR, compDir);\n await fs.remove(filePathsRootDir); // in case it has old data\n\n const modelComponent = await this.workspace.scope.getBitObjectModelComponent(compId);\n if (!modelComponent) {\n throw new Error(`unable to find ${compId.toString()} in the local scope, please run \"bit import\"`);\n }\n const versionObject = await this.workspace.scope.getBitObjectVersion(modelComponent, compId.version as string);\n if (!versionObject)\n throw new Error(`unable to find the Version object of ${compId.toString()}, please run \"bit import\"`);\n const sourceFiles = await versionObject.modelFilesToSourceFiles(this.workspace.scope.legacyScope.objects);\n const results: { [relativePath: string]: string } = {};\n await Promise.all(\n sourceFiles.map(async (file) => {\n const filePath = path.join(filePathsRootDir, file.relative);\n await fs.outputFile(filePath, file.contents);\n results[pathJoinLinux(compDir, file.relative)] = filePath;\n })\n );\n return results;\n }\n\n async getCompFilesDirPathFromLastSnapUsingCompFiles(\n compFiles: CompFiles\n ): Promise<{ [relativePath: string]: string }> {\n const compId = compFiles.id;\n if (!compId.hasVersion()) return {}; // it's a new component.\n const compDir = compFiles.compDir;\n const filePathsRootDir = path.join(this.workspace.scope.path, FILES_HISTORY_DIR, LAST_SNAP_DIR, compDir);\n await fs.remove(filePathsRootDir); // in case it has old data\n\n const sourceFiles = await compFiles.getHeadFiles();\n\n const results: { [relativePath: string]: string } = {};\n await Promise.all(\n sourceFiles.map(async (file) => {\n const filePath = path.join(filePathsRootDir, file.relative);\n await fs.outputFile(filePath, file.contents);\n results[pathJoinLinux(compDir, file.relative)] = filePath;\n })\n );\n return results;\n }\n\n async install() {\n return this.installer.install(undefined, { optimizeReportForNonTerminal: true });\n }\n\n async export() {\n const { componentsIds, removedIds, exportedLanes } = await this.exporter.export();\n return {\n componentsIds: componentsIds.map((c) => c.toString()),\n removedIds: removedIds.map((c) => c.toString()),\n exportedLanes: exportedLanes.map((l) => l.id()),\n };\n }\n\n async checkoutHead() {\n const { components, failedComponents } = await this.checkout.checkout({\n head: true,\n skipNpmInstall: true,\n ids: await this.workspace.listIds(),\n });\n const skipped = failedComponents?.filter((f) => f.unchangedLegitimately).map((f) => f.id.toString());\n const failed = failedComponents?.filter((f) => !f.unchangedLegitimately).map((f) => f.id.toString());\n return {\n succeed: components?.map((c) => c.id.toString()),\n skipped,\n failed,\n };\n }\n\n async getDataToInitSCM(): Promise<DataToInitSCM> {\n const ids = await this.workspace.listIds();\n const results: DataToInitSCM = {};\n await pMap(\n ids,\n async (id) => {\n const compFiles = await this.workspace.getFilesModification(id);\n const pathsFromLastSnap = await this.getCompFilesDirPathFromLastSnapUsingCompFiles(compFiles);\n const idStr = id.toStringWithoutVersion();\n results[idStr] = {\n filesStatus: compFiles.getFilesStatus(),\n pathsFromLastSnap,\n compDir: compFiles.compDir,\n };\n },\n { concurrency: 30 }\n );\n\n return results;\n }\n\n async getCompFilesDirPathFromLastSnapForAllComps(): Promise<{ [relativePath: string]: string }> {\n const ids = await this.workspace.listIds();\n let results = {};\n await pMap(\n ids,\n async (id) => {\n const idStr = id.toStringWithoutVersion();\n const compResults = await this.getCompFilesDirPathFromLastSnap(idStr);\n results = { ...results, ...compResults };\n },\n { concurrency: 30 }\n );\n return results;\n }\n\n getCurrentLaneName(): string {\n return this.workspace.getCurrentLaneId().name;\n }\n\n async tagOrSnap(message = '') {\n const params = { message, build: false };\n return this.workspace.isOnMain() ? this.snapping.tag(params) : this.snapping.snap(params);\n }\n\n async tag(message = ''): Promise<string[]> {\n const params = { message, build: false };\n const results = await this.snapping.tag(params);\n return (results?.taggedComponents || []).map((c) => c.id.toString());\n }\n\n async snap(message = ''): Promise<string[]> {\n const params = { message, build: false };\n const results = await this.snapping.snap(params);\n return (results?.snappedComponents || []).map((c) => c.id.toString());\n }\n}\n"],"mappings":"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"}
@@ -4,6 +4,8 @@ import { Logger, LoggerMain } from '@teambit/logger';
4
4
  import { LanesMain } from '@teambit/lanes';
5
5
  import { SnappingMain } from '@teambit/snapping';
6
6
  import { WatcherMain } from '@teambit/watcher';
7
+ import { ExportMain } from '@teambit/export';
8
+ import { CheckoutMain } from '@teambit/checkout';
7
9
  import { InstallMain } from '@teambit/install';
8
10
  import { Workspace } from '@teambit/workspace';
9
11
  export declare class ApiServerMain {
@@ -18,7 +20,7 @@ export declare class ApiServerMain {
18
20
  }): Promise<unknown>;
19
21
  static dependencies: import("@teambit/harmony").Aspect[];
20
22
  static runtime: import("@teambit/harmony").RuntimeDefinition;
21
- static provider([cli, workspace, loggerMain, express, watcher, snapping, lanes, installer]: [
23
+ static provider([cli, workspace, loggerMain, express, watcher, snapping, lanes, installer, exporter, checkout,]: [
22
24
  CLIMain,
23
25
  Workspace,
24
26
  LoggerMain,
@@ -26,7 +28,9 @@ export declare class ApiServerMain {
26
28
  WatcherMain,
27
29
  SnappingMain,
28
30
  LanesMain,
29
- InstallMain
31
+ InstallMain,
32
+ ExportMain,
33
+ CheckoutMain
30
34
  ]): Promise<ApiServerMain>;
31
35
  }
32
36
  export default ApiServerMain;
@@ -56,6 +56,20 @@ function _watcher() {
56
56
  };
57
57
  return data;
58
58
  }
59
+ function _export() {
60
+ const data = require("@teambit/export");
61
+ _export = function () {
62
+ return data;
63
+ };
64
+ return data;
65
+ }
66
+ function _checkout() {
67
+ const data = _interopRequireDefault(require("@teambit/checkout"));
68
+ _checkout = function () {
69
+ return data;
70
+ };
71
+ return data;
72
+ }
59
73
  function _install() {
60
74
  const data = _interopRequireDefault(require("@teambit/install"));
61
75
  _install = function () {
@@ -151,12 +165,12 @@ class ApiServerMain {
151
165
  this.logger.consoleSuccess(`Bit Server is listening on port ${port}`);
152
166
  });
153
167
  }
154
- static async provider([cli, workspace, loggerMain, express, watcher, snapping, lanes, installer]) {
168
+ static async provider([cli, workspace, loggerMain, express, watcher, snapping, lanes, installer, exporter, checkout]) {
155
169
  const logger = loggerMain.createLogger(_apiServer().ApiServerAspect.id);
156
170
  const apiServer = new ApiServerMain(workspace, logger, express, watcher, installer);
157
171
  cli.register(new (_server().ServerCmd)(apiServer));
158
172
  const cliRoute = new (_cli2().CLIRoute)(logger, cli);
159
- const apiForIDE = new (_apiForIde().APIForIDE)(workspace, snapping, lanes);
173
+ const apiForIDE = new (_apiForIde().APIForIDE)(workspace, snapping, lanes, installer, exporter, checkout);
160
174
  const vscodeRoute = new (_ide().IDERoute)(logger, apiForIDE);
161
175
  const sseEventsRoute = new (_sseEvents().SSEEventsRoute)(logger, cli);
162
176
  // register only when the workspace is available. don't register this on a remote-scope, for security reasons.
@@ -167,7 +181,7 @@ class ApiServerMain {
167
181
  }
168
182
  }
169
183
  exports.ApiServerMain = ApiServerMain;
170
- (0, _defineProperty2().default)(ApiServerMain, "dependencies", [_cli().CLIAspect, _workspace().default, _logger().LoggerAspect, _express().ExpressAspect, _watcher().default, _snapping().default, _lanes().default, _install().default]);
184
+ (0, _defineProperty2().default)(ApiServerMain, "dependencies", [_cli().CLIAspect, _workspace().default, _logger().LoggerAspect, _express().ExpressAspect, _watcher().default, _snapping().default, _lanes().default, _install().default, _export().ExportAspect, _checkout().default]);
171
185
  (0, _defineProperty2().default)(ApiServerMain, "runtime", _cli().MainRuntime);
172
186
  _apiServer().ApiServerAspect.addRuntime(ApiServerMain);
173
187
  var _default = ApiServerMain;
@@ -1 +1 @@
1
- {"version":3,"names":["ApiServerMain","constructor","workspace","logger","express","watcher","installer","runApiServer","options","port","listen","Error","process","cwd","registerOnComponentChange","component","files","removedFiles","sendEventsToClients","id","toStringWithoutVersion","registerOnBitmapChange","registerPostInstall","watch","preCompile","catch","err","error","Promise","consoleSuccess","provider","cli","loggerMain","snapping","lanes","createLogger","ApiServerAspect","apiServer","register","ServerCmd","cliRoute","CLIRoute","apiForIDE","APIForIDE","vscodeRoute","IDERoute","sseEventsRoute","SSEEventsRoute","CLIAspect","WorkspaceAspect","LoggerAspect","ExpressAspect","WatcherAspect","SnappingAspect","LanesAspect","InstallAspect","MainRuntime","addRuntime"],"sources":["api-server.main.runtime.ts"],"sourcesContent":["import { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { ExpressAspect, ExpressMain } from '@teambit/express';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport LanesAspect, { LanesMain } from '@teambit/lanes';\nimport SnappingAspect, { SnappingMain } from '@teambit/snapping';\nimport WatcherAspect, { WatcherMain } from '@teambit/watcher';\nimport InstallAspect, { InstallMain } from '@teambit/install';\nimport { Component } from '@teambit/component';\nimport WorkspaceAspect, { Workspace } from '@teambit/workspace';\nimport { ApiServerAspect } from './api-server.aspect';\nimport { CLIRoute } from './cli.route';\nimport { ServerCmd } from './server.cmd';\nimport { IDERoute } from './ide.route';\nimport { APIForIDE } from './api-for-ide';\nimport { SSEEventsRoute, sendEventsToClients } from './sse-events.route';\n\nexport class ApiServerMain {\n constructor(\n private workspace: Workspace,\n private logger: Logger,\n private express: ExpressMain,\n private watcher: WatcherMain,\n private installer: InstallMain\n ) {}\n\n async runApiServer(options: { port: number }) {\n const port = options.port || 3000;\n await this.express.listen(port);\n if (!this.workspace) {\n throw new Error(`unable to run bit-server, the current directory ${process.cwd()} is not a workspace`);\n }\n\n this.workspace.registerOnComponentChange(\n async (\n component: Component,\n files: string[], // os absolute paths\n removedFiles?: string[] // os absolute paths\n ) => {\n sendEventsToClients('onComponentChange', {\n id: component.id.toStringWithoutVersion(),\n files,\n removedFiles,\n });\n }\n );\n\n this.workspace.registerOnBitmapChange(async () => {\n sendEventsToClients('onBitmapChange', {});\n });\n\n this.installer.registerPostInstall(async () => {\n sendEventsToClients('onPostInstall', {});\n });\n\n this.watcher\n .watch({\n preCompile: false,\n })\n .catch((err) => {\n // don't throw an error, we don't want to break the \"run\" process\n this.logger.error('watcher found an error', err);\n });\n\n // never ending promise to not exit the process (is there a better way?)\n return new Promise(() => {\n this.logger.consoleSuccess(`Bit Server is listening on port ${port}`);\n });\n }\n\n static dependencies = [\n CLIAspect,\n WorkspaceAspect,\n LoggerAspect,\n ExpressAspect,\n WatcherAspect,\n SnappingAspect,\n LanesAspect,\n InstallAspect,\n ];\n static runtime = MainRuntime;\n static async provider([cli, workspace, loggerMain, express, watcher, snapping, lanes, installer]: [\n CLIMain,\n Workspace,\n LoggerMain,\n ExpressMain,\n WatcherMain,\n SnappingMain,\n LanesMain,\n InstallMain\n ]) {\n const logger = loggerMain.createLogger(ApiServerAspect.id);\n const apiServer = new ApiServerMain(workspace, logger, express, watcher, installer);\n cli.register(new ServerCmd(apiServer));\n\n const cliRoute = new CLIRoute(logger, cli);\n const apiForIDE = new APIForIDE(workspace, snapping, lanes);\n const vscodeRoute = new IDERoute(logger, apiForIDE);\n const sseEventsRoute = new SSEEventsRoute(logger, cli);\n // register only when the workspace is available. don't register this on a remote-scope, for security reasons.\n if (workspace) {\n express.register([cliRoute, vscodeRoute, sseEventsRoute]);\n }\n\n return apiServer;\n }\n}\n\nApiServerAspect.addRuntime(ApiServerMain);\n\nexport default ApiServerMain;\n"],"mappings":"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"}
1
+ {"version":3,"names":["ApiServerMain","constructor","workspace","logger","express","watcher","installer","runApiServer","options","port","listen","Error","process","cwd","registerOnComponentChange","component","files","removedFiles","sendEventsToClients","id","toStringWithoutVersion","registerOnBitmapChange","registerPostInstall","watch","preCompile","catch","err","error","Promise","consoleSuccess","provider","cli","loggerMain","snapping","lanes","exporter","checkout","createLogger","ApiServerAspect","apiServer","register","ServerCmd","cliRoute","CLIRoute","apiForIDE","APIForIDE","vscodeRoute","IDERoute","sseEventsRoute","SSEEventsRoute","CLIAspect","WorkspaceAspect","LoggerAspect","ExpressAspect","WatcherAspect","SnappingAspect","LanesAspect","InstallAspect","ExportAspect","CheckoutAspect","MainRuntime","addRuntime"],"sources":["api-server.main.runtime.ts"],"sourcesContent":["import { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { ExpressAspect, ExpressMain } from '@teambit/express';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport LanesAspect, { LanesMain } from '@teambit/lanes';\nimport SnappingAspect, { SnappingMain } from '@teambit/snapping';\nimport WatcherAspect, { WatcherMain } from '@teambit/watcher';\nimport { ExportAspect, ExportMain } from '@teambit/export';\nimport CheckoutAspect, { CheckoutMain } from '@teambit/checkout';\nimport InstallAspect, { InstallMain } from '@teambit/install';\nimport { Component } from '@teambit/component';\nimport WorkspaceAspect, { Workspace } from '@teambit/workspace';\nimport { ApiServerAspect } from './api-server.aspect';\nimport { CLIRoute } from './cli.route';\nimport { ServerCmd } from './server.cmd';\nimport { IDERoute } from './ide.route';\nimport { APIForIDE } from './api-for-ide';\nimport { SSEEventsRoute, sendEventsToClients } from './sse-events.route';\n\nexport class ApiServerMain {\n constructor(\n private workspace: Workspace,\n private logger: Logger,\n private express: ExpressMain,\n private watcher: WatcherMain,\n private installer: InstallMain\n ) {}\n\n async runApiServer(options: { port: number }) {\n const port = options.port || 3000;\n await this.express.listen(port);\n if (!this.workspace) {\n throw new Error(`unable to run bit-server, the current directory ${process.cwd()} is not a workspace`);\n }\n\n this.workspace.registerOnComponentChange(\n async (\n component: Component,\n files: string[], // os absolute paths\n removedFiles?: string[] // os absolute paths\n ) => {\n sendEventsToClients('onComponentChange', {\n id: component.id.toStringWithoutVersion(),\n files,\n removedFiles,\n });\n }\n );\n\n this.workspace.registerOnBitmapChange(async () => {\n sendEventsToClients('onBitmapChange', {});\n });\n\n this.installer.registerPostInstall(async () => {\n sendEventsToClients('onPostInstall', {});\n });\n\n this.watcher\n .watch({\n preCompile: false,\n })\n .catch((err) => {\n // don't throw an error, we don't want to break the \"run\" process\n this.logger.error('watcher found an error', err);\n });\n\n // never ending promise to not exit the process (is there a better way?)\n return new Promise(() => {\n this.logger.consoleSuccess(`Bit Server is listening on port ${port}`);\n });\n }\n\n static dependencies = [\n CLIAspect,\n WorkspaceAspect,\n LoggerAspect,\n ExpressAspect,\n WatcherAspect,\n SnappingAspect,\n LanesAspect,\n InstallAspect,\n ExportAspect,\n CheckoutAspect,\n ];\n static runtime = MainRuntime;\n static async provider([\n cli,\n workspace,\n loggerMain,\n express,\n watcher,\n snapping,\n lanes,\n installer,\n exporter,\n checkout,\n ]: [\n CLIMain,\n Workspace,\n LoggerMain,\n ExpressMain,\n WatcherMain,\n SnappingMain,\n LanesMain,\n InstallMain,\n ExportMain,\n CheckoutMain\n ]) {\n const logger = loggerMain.createLogger(ApiServerAspect.id);\n const apiServer = new ApiServerMain(workspace, logger, express, watcher, installer);\n cli.register(new ServerCmd(apiServer));\n\n const cliRoute = new CLIRoute(logger, cli);\n const apiForIDE = new APIForIDE(workspace, snapping, lanes, installer, exporter, checkout);\n const vscodeRoute = new IDERoute(logger, apiForIDE);\n const sseEventsRoute = new SSEEventsRoute(logger, cli);\n // register only when the workspace is available. don't register this on a remote-scope, for security reasons.\n if (workspace) {\n express.register([cliRoute, vscodeRoute, sseEventsRoute]);\n }\n\n return apiServer;\n }\n}\n\nApiServerAspect.addRuntime(ApiServerMain);\n\nexport default ApiServerMain;\n"],"mappings":"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"}
@@ -19,5 +19,5 @@ export declare class CLIRoute implements Route {
19
19
  constructor(logger: Logger, cli: CLIMain);
20
20
  method: string;
21
21
  route: string;
22
- middlewares: ((req: Request, res: Response, next: any) => Promise<void>)[];
22
+ middlewares: ((req: Request, res: Response) => Promise<void>)[];
23
23
  }
package/dist/cli.route.js CHANGED
@@ -38,7 +38,7 @@ class CLIRoute {
38
38
  this.cli = cli;
39
39
  (0, _defineProperty2().default)(this, "method", 'post');
40
40
  (0, _defineProperty2().default)(this, "route", '/cli/:cmd');
41
- (0, _defineProperty2().default)(this, "middlewares", [async (req, res, next) => {
41
+ (0, _defineProperty2().default)(this, "middlewares", [async (req, res) => {
42
42
  this.logger.debug(`cli server: got request for ${req.params.cmd}`);
43
43
  try {
44
44
  const command = this.cli.getCommand(req.params.cmd);
@@ -59,7 +59,11 @@ class CLIRoute {
59
59
  } catch (err) {
60
60
  this.logger.error(`command "${req.params.cmd}" had failed`, err);
61
61
  this.logger.consoleFailure(`command "${req.params.cmd}" had failed. ${err.message}`);
62
- next(err);
62
+ res.status(500);
63
+ res.jsonp({
64
+ message: err.message,
65
+ error: err
66
+ });
63
67
  }
64
68
  }]);
65
69
  }
@@ -1 +1 @@
1
- {"version":3,"names":["CLIRoute","constructor","logger","cli","req","res","next","debug","params","cmd","command","getCommand","Error","json","body","args","options","optsToString","Object","keys","map","key","join","console","startTask","process","hrtime","result","duration","prettyTime","consoleSuccess","err","error","consoleFailure","message"],"sources":["cli.route.ts"],"sourcesContent":["import { CLIMain } from '@teambit/cli';\nimport prettyTime from 'pretty-time';\nimport { Route, Request, Response } from '@teambit/express';\nimport { Logger } from '@teambit/logger';\n\n/**\n * example usage:\n * post to http://localhost:3000/api/cli/list\n * with the following json as the body\n *\n{\n \"args\": [\"teambit.workspace\"],\n \"options\": {\n \"ids\": true\n }\n}\n */\nexport class CLIRoute implements Route {\n constructor(private logger: Logger, private cli: CLIMain) {}\n\n method = 'post';\n route = '/cli/:cmd';\n\n middlewares = [\n async (req: Request, res: Response, next) => {\n this.logger.debug(`cli server: got request for ${req.params.cmd}`);\n try {\n const command = this.cli.getCommand(req.params.cmd);\n if (!command) throw new Error(`command \"${req.params.cmd}\" was not found`);\n if (!command.json) throw new Error(`command \"${req.params.cmd}\" does not have a json method`);\n const body = req.body;\n const { args, options } = body;\n const optsToString = Object.keys(options || {})\n .map((key) => `--${key}`)\n .join(' ');\n this.logger.console(`started a new command: ${req.params.cmd} ${(args || []).join(' ')} ${optsToString}`);\n const startTask = process.hrtime();\n const result = await command?.json(args || [], options || {});\n const duration = prettyTime(process.hrtime(startTask));\n this.logger.consoleSuccess(`command \"${req.params.cmd}\" had been completed in ${duration}`);\n res.json(result);\n } catch (err: any) {\n this.logger.error(`command \"${req.params.cmd}\" had failed`, err);\n this.logger.consoleFailure(`command \"${req.params.cmd}\" had failed. ${err.message}`);\n next(err);\n }\n },\n ];\n}\n"],"mappings":";;;;;;;;;;;;;;;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,QAAQ,CAAkB;EACrCC,WAAW,CAASC,MAAc,EAAUC,GAAY,EAAE;IAAA,KAAtCD,MAAc,GAAdA,MAAc;IAAA,KAAUC,GAAY,GAAZA,GAAY;IAAA,gDAE/C,MAAM;IAAA,+CACP,WAAW;IAAA,qDAEL,CACZ,OAAOC,GAAY,EAAEC,GAAa,EAAEC,IAAI,KAAK;MAC3C,IAAI,CAACJ,MAAM,CAACK,KAAK,CAAE,+BAA8BH,GAAG,CAACI,MAAM,CAACC,GAAI,EAAC,CAAC;MAClE,IAAI;QACF,MAAMC,OAAO,GAAG,IAAI,CAACP,GAAG,CAACQ,UAAU,CAACP,GAAG,CAACI,MAAM,CAACC,GAAG,CAAC;QACnD,IAAI,CAACC,OAAO,EAAE,MAAM,IAAIE,KAAK,CAAE,YAAWR,GAAG,CAACI,MAAM,CAACC,GAAI,iBAAgB,CAAC;QAC1E,IAAI,CAACC,OAAO,CAACG,IAAI,EAAE,MAAM,IAAID,KAAK,CAAE,YAAWR,GAAG,CAACI,MAAM,CAACC,GAAI,+BAA8B,CAAC;QAC7F,MAAMK,IAAI,GAAGV,GAAG,CAACU,IAAI;QACrB,MAAM;UAAEC,IAAI;UAAEC;QAAQ,CAAC,GAAGF,IAAI;QAC9B,MAAMG,YAAY,GAAGC,MAAM,CAACC,IAAI,CAACH,OAAO,IAAI,CAAC,CAAC,CAAC,CAC5CI,GAAG,CAAEC,GAAG,IAAM,KAAIA,GAAI,EAAC,CAAC,CACxBC,IAAI,CAAC,GAAG,CAAC;QACZ,IAAI,CAACpB,MAAM,CAACqB,OAAO,CAAE,0BAAyBnB,GAAG,CAACI,MAAM,CAACC,GAAI,IAAG,CAACM,IAAI,IAAI,EAAE,EAAEO,IAAI,CAAC,GAAG,CAAE,IAAGL,YAAa,EAAC,CAAC;QACzG,MAAMO,SAAS,GAAGC,OAAO,CAACC,MAAM,EAAE;QAClC,MAAMC,MAAM,GAAG,OAAMjB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEG,IAAI,CAACE,IAAI,IAAI,EAAE,EAAEC,OAAO,IAAI,CAAC,CAAC,CAAC;QAC7D,MAAMY,QAAQ,GAAG,IAAAC,qBAAU,EAACJ,OAAO,CAACC,MAAM,CAACF,SAAS,CAAC,CAAC;QACtD,IAAI,CAACtB,MAAM,CAAC4B,cAAc,CAAE,YAAW1B,GAAG,CAACI,MAAM,CAACC,GAAI,2BAA0BmB,QAAS,EAAC,CAAC;QAC3FvB,GAAG,CAACQ,IAAI,CAACc,MAAM,CAAC;MAClB,CAAC,CAAC,OAAOI,GAAQ,EAAE;QACjB,IAAI,CAAC7B,MAAM,CAAC8B,KAAK,CAAE,YAAW5B,GAAG,CAACI,MAAM,CAACC,GAAI,cAAa,EAAEsB,GAAG,CAAC;QAChE,IAAI,CAAC7B,MAAM,CAAC+B,cAAc,CAAE,YAAW7B,GAAG,CAACI,MAAM,CAACC,GAAI,iBAAgBsB,GAAG,CAACG,OAAQ,EAAC,CAAC;QACpF5B,IAAI,CAACyB,GAAG,CAAC;MACX;IACF,CAAC,CACF;EA7B0D;AA8B7D;AAAC"}
1
+ {"version":3,"names":["CLIRoute","constructor","logger","cli","req","res","debug","params","cmd","command","getCommand","Error","json","body","args","options","optsToString","Object","keys","map","key","join","console","startTask","process","hrtime","result","duration","prettyTime","consoleSuccess","err","error","consoleFailure","message","status","jsonp"],"sources":["cli.route.ts"],"sourcesContent":["import { CLIMain } from '@teambit/cli';\nimport prettyTime from 'pretty-time';\nimport { Route, Request, Response } from '@teambit/express';\nimport { Logger } from '@teambit/logger';\n\n/**\n * example usage:\n * post to http://localhost:3000/api/cli/list\n * with the following json as the body\n *\n{\n \"args\": [\"teambit.workspace\"],\n \"options\": {\n \"ids\": true\n }\n}\n */\nexport class CLIRoute implements Route {\n constructor(private logger: Logger, private cli: CLIMain) {}\n\n method = 'post';\n route = '/cli/:cmd';\n\n middlewares = [\n async (req: Request, res: Response) => {\n this.logger.debug(`cli server: got request for ${req.params.cmd}`);\n try {\n const command = this.cli.getCommand(req.params.cmd);\n if (!command) throw new Error(`command \"${req.params.cmd}\" was not found`);\n if (!command.json) throw new Error(`command \"${req.params.cmd}\" does not have a json method`);\n const body = req.body;\n const { args, options } = body;\n const optsToString = Object.keys(options || {})\n .map((key) => `--${key}`)\n .join(' ');\n this.logger.console(`started a new command: ${req.params.cmd} ${(args || []).join(' ')} ${optsToString}`);\n const startTask = process.hrtime();\n const result = await command?.json(args || [], options || {});\n const duration = prettyTime(process.hrtime(startTask));\n this.logger.consoleSuccess(`command \"${req.params.cmd}\" had been completed in ${duration}`);\n res.json(result);\n } catch (err: any) {\n this.logger.error(`command \"${req.params.cmd}\" had failed`, err);\n this.logger.consoleFailure(`command \"${req.params.cmd}\" had failed. ${err.message}`);\n res.status(500);\n res.jsonp({\n message: err.message,\n error: err,\n });\n }\n },\n ];\n}\n"],"mappings":";;;;;;;;;;;;;;;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,QAAQ,CAAkB;EACrCC,WAAW,CAASC,MAAc,EAAUC,GAAY,EAAE;IAAA,KAAtCD,MAAc,GAAdA,MAAc;IAAA,KAAUC,GAAY,GAAZA,GAAY;IAAA,gDAE/C,MAAM;IAAA,+CACP,WAAW;IAAA,qDAEL,CACZ,OAAOC,GAAY,EAAEC,GAAa,KAAK;MACrC,IAAI,CAACH,MAAM,CAACI,KAAK,CAAE,+BAA8BF,GAAG,CAACG,MAAM,CAACC,GAAI,EAAC,CAAC;MAClE,IAAI;QACF,MAAMC,OAAO,GAAG,IAAI,CAACN,GAAG,CAACO,UAAU,CAACN,GAAG,CAACG,MAAM,CAACC,GAAG,CAAC;QACnD,IAAI,CAACC,OAAO,EAAE,MAAM,IAAIE,KAAK,CAAE,YAAWP,GAAG,CAACG,MAAM,CAACC,GAAI,iBAAgB,CAAC;QAC1E,IAAI,CAACC,OAAO,CAACG,IAAI,EAAE,MAAM,IAAID,KAAK,CAAE,YAAWP,GAAG,CAACG,MAAM,CAACC,GAAI,+BAA8B,CAAC;QAC7F,MAAMK,IAAI,GAAGT,GAAG,CAACS,IAAI;QACrB,MAAM;UAAEC,IAAI;UAAEC;QAAQ,CAAC,GAAGF,IAAI;QAC9B,MAAMG,YAAY,GAAGC,MAAM,CAACC,IAAI,CAACH,OAAO,IAAI,CAAC,CAAC,CAAC,CAC5CI,GAAG,CAAEC,GAAG,IAAM,KAAIA,GAAI,EAAC,CAAC,CACxBC,IAAI,CAAC,GAAG,CAAC;QACZ,IAAI,CAACnB,MAAM,CAACoB,OAAO,CAAE,0BAAyBlB,GAAG,CAACG,MAAM,CAACC,GAAI,IAAG,CAACM,IAAI,IAAI,EAAE,EAAEO,IAAI,CAAC,GAAG,CAAE,IAAGL,YAAa,EAAC,CAAC;QACzG,MAAMO,SAAS,GAAGC,OAAO,CAACC,MAAM,EAAE;QAClC,MAAMC,MAAM,GAAG,OAAMjB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEG,IAAI,CAACE,IAAI,IAAI,EAAE,EAAEC,OAAO,IAAI,CAAC,CAAC,CAAC;QAC7D,MAAMY,QAAQ,GAAG,IAAAC,qBAAU,EAACJ,OAAO,CAACC,MAAM,CAACF,SAAS,CAAC,CAAC;QACtD,IAAI,CAACrB,MAAM,CAAC2B,cAAc,CAAE,YAAWzB,GAAG,CAACG,MAAM,CAACC,GAAI,2BAA0BmB,QAAS,EAAC,CAAC;QAC3FtB,GAAG,CAACO,IAAI,CAACc,MAAM,CAAC;MAClB,CAAC,CAAC,OAAOI,GAAQ,EAAE;QACjB,IAAI,CAAC5B,MAAM,CAAC6B,KAAK,CAAE,YAAW3B,GAAG,CAACG,MAAM,CAACC,GAAI,cAAa,EAAEsB,GAAG,CAAC;QAChE,IAAI,CAAC5B,MAAM,CAAC8B,cAAc,CAAE,YAAW5B,GAAG,CAACG,MAAM,CAACC,GAAI,iBAAgBsB,GAAG,CAACG,OAAQ,EAAC,CAAC;QACpF5B,GAAG,CAAC6B,MAAM,CAAC,GAAG,CAAC;QACf7B,GAAG,CAAC8B,KAAK,CAAC;UACRF,OAAO,EAAEH,GAAG,CAACG,OAAO;UACpBF,KAAK,EAAED;QACT,CAAC,CAAC;MACJ;IACF,CAAC,CACF;EAjC0D;AAkC7D;AAAC"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/api-server",
3
- "version": "0.0.124",
3
+ "version": "0.0.126",
4
4
  "homepage": "https://bit.cloud/teambit/harmony/api-server",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.harmony",
8
8
  "name": "api-server",
9
- "version": "0.0.124"
9
+ "version": "0.0.126"
10
10
  },
11
11
  "dependencies": {
12
12
  "fs-extra": "10.0.0",
@@ -15,15 +15,17 @@
15
15
  "core-js": "^3.0.0",
16
16
  "@babel/runtime": "7.20.0",
17
17
  "@teambit/harmony": "0.4.6",
18
- "@teambit/lanes": "0.0.684",
19
- "@teambit/snapping": "0.0.427",
20
- "@teambit/workspace": "0.0.1112",
21
- "@teambit/cli": "0.0.744",
22
- "@teambit/component": "0.0.1112",
23
- "@teambit/express": "0.0.842",
24
- "@teambit/install": "0.0.203",
25
- "@teambit/logger": "0.0.837",
26
- "@teambit/watcher": "0.0.124"
18
+ "@teambit/checkout": "0.0.283",
19
+ "@teambit/export": "0.0.1114",
20
+ "@teambit/install": "0.0.205",
21
+ "@teambit/lanes": "0.0.686",
22
+ "@teambit/snapping": "0.0.429",
23
+ "@teambit/workspace": "0.0.1114",
24
+ "@teambit/cli": "0.0.746",
25
+ "@teambit/component": "0.0.1114",
26
+ "@teambit/express": "0.0.844",
27
+ "@teambit/logger": "0.0.839",
28
+ "@teambit/watcher": "0.0.126"
27
29
  },
28
30
  "devDependencies": {
29
31
  "@types/fs-extra": "9.0.7",
@@ -35,7 +37,7 @@
35
37
  "@types/testing-library__jest-dom": "5.9.5"
36
38
  },
37
39
  "peerDependencies": {
38
- "@teambit/legacy": "1.0.524",
40
+ "@teambit/legacy": "1.0.526",
39
41
  "react": "^16.8.0 || ^17.0.0",
40
42
  "react-dom": "^16.8.0 || ^17.0.0"
41
43
  },