@teambit/api-server 0.0.112 → 0.0.114

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,7 @@
1
1
  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
+ import { LanesMain } from '@teambit/lanes';
4
5
  declare type PathFromLastSnap = {
5
6
  [relativeToWorkspace: PathLinux]: string;
6
7
  };
@@ -12,12 +13,16 @@ declare type InitSCMEntry = {
12
13
  declare type DataToInitSCM = {
13
14
  [compId: string]: InitSCMEntry;
14
15
  };
15
- export declare class APIForVSCode {
16
+ export declare class APIForIDE {
16
17
  private workspace;
17
18
  private snapping;
18
- constructor(workspace: Workspace, snapping: SnappingMain);
19
+ private lanes;
20
+ constructor(workspace: Workspace, snapping: SnappingMain, lanes: LanesMain);
19
21
  listIdsWithPaths(): Promise<{}>;
20
22
  getMainFilePath(id: string): Promise<PathOsBasedAbsolute>;
23
+ importLane(laneName: string, { skipDependencyInstallation }: {
24
+ skipDependencyInstallation?: boolean;
25
+ }): Promise<string[]>;
21
26
  getCompFiles(id: string): Promise<{
22
27
  dirAbs: string;
23
28
  filesRelative: PathOsBasedRelative[];
@@ -6,7 +6,7 @@ require("core-js/modules/es.promise.js");
6
6
  Object.defineProperty(exports, "__esModule", {
7
7
  value: true
8
8
  });
9
- exports.APIForVSCode = void 0;
9
+ exports.APIForIDE = void 0;
10
10
  function _defineProperty2() {
11
11
  const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
12
12
  _defineProperty2 = function () {
@@ -46,10 +46,11 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
46
46
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2().default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
47
47
  const FILES_HISTORY_DIR = 'files-history';
48
48
  const LAST_SNAP_DIR = 'last-snap';
49
- class APIForVSCode {
50
- constructor(workspace, snapping) {
49
+ class APIForIDE {
50
+ constructor(workspace, snapping, lanes) {
51
51
  this.workspace = workspace;
52
52
  this.snapping = snapping;
53
+ this.lanes = lanes;
53
54
  }
54
55
  async listIdsWithPaths() {
55
56
  const ids = await this.workspace.listIds();
@@ -63,6 +64,15 @@ class APIForVSCode {
63
64
  const comp = await this.workspace.get(compId);
64
65
  return _path().default.join(this.workspace.componentDir(compId), comp.state._consumer.mainFile);
65
66
  }
67
+ async importLane(laneName, {
68
+ skipDependencyInstallation
69
+ }) {
70
+ const results = await this.lanes.switchLanes(laneName, {
71
+ skipDependencyInstallation,
72
+ getAll: true
73
+ });
74
+ return (results.components || []).map(c => c.id.toString());
75
+ }
66
76
  async getCompFiles(id) {
67
77
  const compId = await this.workspace.resolveComponentId(id);
68
78
  const comp = await this.workspace.get(compId);
@@ -172,6 +182,6 @@ class APIForVSCode {
172
182
  return ((results === null || results === void 0 ? void 0 : results.snappedComponents) || []).map(c => c.id.toString());
173
183
  }
174
184
  }
175
- exports.APIForVSCode = APIForVSCode;
185
+ exports.APIForIDE = APIForIDE;
176
186
 
177
- //# sourceMappingURL=api-for-vscode.js.map
187
+ //# sourceMappingURL=api-for-ide.js.map
@@ -0,0 +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,6 +1,7 @@
1
1
  import { CLIMain } from '@teambit/cli';
2
2
  import { ExpressMain } from '@teambit/express';
3
3
  import { Logger, LoggerMain } from '@teambit/logger';
4
+ import { LanesMain } from '@teambit/lanes';
4
5
  import { SnappingMain } from '@teambit/snapping';
5
6
  import { WatcherMain } from '@teambit/watcher';
6
7
  import { Workspace } from '@teambit/workspace';
@@ -15,13 +16,14 @@ export declare class ApiServerMain {
15
16
  }): Promise<unknown>;
16
17
  static dependencies: import("@teambit/harmony").Aspect[];
17
18
  static runtime: import("@teambit/harmony").RuntimeDefinition;
18
- static provider([cli, workspace, loggerMain, express, watcher, snapping]: [
19
+ static provider([cli, workspace, loggerMain, express, watcher, snapping, lanes]: [
19
20
  CLIMain,
20
21
  Workspace,
21
22
  LoggerMain,
22
23
  ExpressMain,
23
24
  WatcherMain,
24
- SnappingMain
25
+ SnappingMain,
26
+ LanesMain
25
27
  ]): Promise<ApiServerMain>;
26
28
  }
27
29
  export default ApiServerMain;
@@ -35,6 +35,13 @@ function _logger() {
35
35
  };
36
36
  return data;
37
37
  }
38
+ function _lanes() {
39
+ const data = _interopRequireDefault(require("@teambit/lanes"));
40
+ _lanes = function () {
41
+ return data;
42
+ };
43
+ return data;
44
+ }
38
45
  function _snapping() {
39
46
  const data = _interopRequireDefault(require("@teambit/snapping"));
40
47
  _snapping = function () {
@@ -77,16 +84,16 @@ function _server() {
77
84
  };
78
85
  return data;
79
86
  }
80
- function _vscode() {
81
- const data = require("./vscode.route");
82
- _vscode = function () {
87
+ function _ide() {
88
+ const data = require("./ide.route");
89
+ _ide = function () {
83
90
  return data;
84
91
  };
85
92
  return data;
86
93
  }
87
- function _apiForVscode() {
88
- const data = require("./api-for-vscode");
89
- _apiForVscode = function () {
94
+ function _apiForIde() {
95
+ const data = require("./api-for-ide");
96
+ _apiForIde = function () {
90
97
  return data;
91
98
  };
92
99
  return data;
@@ -133,13 +140,13 @@ class ApiServerMain {
133
140
  this.logger.consoleSuccess(`Bit Server is listening on port ${port}`);
134
141
  });
135
142
  }
136
- static async provider([cli, workspace, loggerMain, express, watcher, snapping]) {
143
+ static async provider([cli, workspace, loggerMain, express, watcher, snapping, lanes]) {
137
144
  const logger = loggerMain.createLogger(_apiServer().ApiServerAspect.id);
138
145
  const apiServer = new ApiServerMain(workspace, logger, express, watcher);
139
146
  cli.register(new (_server().ServerCmd)(apiServer));
140
147
  const cliRoute = new (_cli2().CLIRoute)(logger, cli);
141
- const apiForVscode = new (_apiForVscode().APIForVSCode)(workspace, snapping);
142
- const vscodeRoute = new (_vscode().VSCodeRoute)(logger, apiForVscode);
148
+ const apiForIDE = new (_apiForIde().APIForIDE)(workspace, snapping, lanes);
149
+ const vscodeRoute = new (_ide().IDERoute)(logger, apiForIDE);
143
150
  const sseEventsRoute = new (_sseEvents().SSEEventsRoute)(logger, cli);
144
151
  // register only when the workspace is available. don't register this on a remote-scope, for security reasons.
145
152
  if (workspace) {
@@ -149,7 +156,7 @@ class ApiServerMain {
149
156
  }
150
157
  }
151
158
  exports.ApiServerMain = ApiServerMain;
152
- (0, _defineProperty2().default)(ApiServerMain, "dependencies", [_cli().CLIAspect, _workspace().default, _logger().LoggerAspect, _express().ExpressAspect, _watcher().default, _snapping().default]);
159
+ (0, _defineProperty2().default)(ApiServerMain, "dependencies", [_cli().CLIAspect, _workspace().default, _logger().LoggerAspect, _express().ExpressAspect, _watcher().default, _snapping().default, _lanes().default]);
153
160
  (0, _defineProperty2().default)(ApiServerMain, "runtime", _cli().MainRuntime);
154
161
  _apiServer().ApiServerAspect.addRuntime(ApiServerMain);
155
162
  var _default = ApiServerMain;
@@ -1 +1 @@
1
- {"version":3,"names":["ApiServerMain","constructor","workspace","logger","express","watcher","runApiServer","options","port","listen","Error","process","cwd","registerOnComponentChange","component","files","removedFiles","sendEventsToClients","id","toStringWithoutVersion","registerOnBitmapChange","watch","preCompile","catch","err","error","Promise","consoleSuccess","provider","cli","loggerMain","snapping","createLogger","ApiServerAspect","apiServer","register","ServerCmd","cliRoute","CLIRoute","apiForVscode","APIForVSCode","vscodeRoute","VSCodeRoute","sseEventsRoute","SSEEventsRoute","CLIAspect","WorkspaceAspect","LoggerAspect","ExpressAspect","WatcherAspect","SnappingAspect","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 SnappingAspect, { SnappingMain } from '@teambit/snapping';\nimport WatcherAspect, { WatcherMain } from '@teambit/watcher';\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 { VSCodeRoute } from './vscode.route';\nimport { APIForVSCode } from './api-for-vscode';\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 ) {}\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.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 = [CLIAspect, WorkspaceAspect, LoggerAspect, ExpressAspect, WatcherAspect, SnappingAspect];\n static runtime = MainRuntime;\n static async provider([cli, workspace, loggerMain, express, watcher, snapping]: [\n CLIMain,\n Workspace,\n LoggerMain,\n ExpressMain,\n WatcherMain,\n SnappingMain\n ]) {\n const logger = loggerMain.createLogger(ApiServerAspect.id);\n const apiServer = new ApiServerMain(workspace, logger, express, watcher);\n cli.register(new ServerCmd(apiServer));\n\n const cliRoute = new CLIRoute(logger, cli);\n const apiForVscode = new APIForVSCode(workspace, snapping);\n const vscodeRoute = new VSCodeRoute(logger, apiForVscode);\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","runApiServer","options","port","listen","Error","process","cwd","registerOnComponentChange","component","files","removedFiles","sendEventsToClients","id","toStringWithoutVersion","registerOnBitmapChange","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","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 { 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 ) {}\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.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 ];\n static runtime = MainRuntime;\n static async provider([cli, workspace, loggerMain, express, watcher, snapping, lanes]: [\n CLIMain,\n Workspace,\n LoggerMain,\n ExpressMain,\n WatcherMain,\n SnappingMain,\n LanesMain\n ]) {\n const logger = loggerMain.createLogger(ApiServerAspect.id);\n const apiServer = new ApiServerMain(workspace, logger, express, watcher);\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,19 +1,19 @@
1
1
  import { Route, Request, Response } from '@teambit/express';
2
2
  import { Logger } from '@teambit/logger';
3
- import { APIForVSCode } from './api-for-vscode';
3
+ import { APIForIDE } from './api-for-ide';
4
4
  /**
5
5
  * example usage:
6
- * post to http://localhost:3000/api/vscode/list-dirs
6
+ * post to http://localhost:3000/api/ide/list-dirs
7
7
  * with the following json as the body
8
8
  *
9
9
  {
10
10
  "args": ["some-args"]
11
11
  }
12
12
  */
13
- export declare class VSCodeRoute implements Route {
13
+ export declare class IDERoute implements Route {
14
14
  private logger;
15
- private apiForVscode;
16
- constructor(logger: Logger, apiForVscode: APIForVSCode);
15
+ private apiForIDE;
16
+ constructor(logger: Logger, apiForIDE: APIForIDE);
17
17
  method: string;
18
18
  route: string;
19
19
  middlewares: ((req: Request, res: Response) => Promise<void>)[];
@@ -6,7 +6,7 @@ require("core-js/modules/es.promise.js");
6
6
  Object.defineProperty(exports, "__esModule", {
7
7
  value: true
8
8
  });
9
- exports.VSCodeRoute = void 0;
9
+ exports.IDERoute = void 0;
10
10
  function _defineProperty2() {
11
11
  const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
12
12
  _defineProperty2 = function () {
@@ -23,43 +23,43 @@ function _prettyTime() {
23
23
  }
24
24
  /**
25
25
  * example usage:
26
- * post to http://localhost:3000/api/vscode/list-dirs
26
+ * post to http://localhost:3000/api/ide/list-dirs
27
27
  * with the following json as the body
28
28
  *
29
29
  {
30
30
  "args": ["some-args"]
31
31
  }
32
32
  */
33
- class VSCodeRoute {
34
- constructor(logger, apiForVscode) {
33
+ class IDERoute {
34
+ constructor(logger, apiForIDE) {
35
35
  this.logger = logger;
36
- this.apiForVscode = apiForVscode;
36
+ this.apiForIDE = apiForIDE;
37
37
  (0, _defineProperty2().default)(this, "method", 'post');
38
- (0, _defineProperty2().default)(this, "route", '/vscode/:method');
38
+ (0, _defineProperty2().default)(this, "route", '/ide/:method');
39
39
  (0, _defineProperty2().default)(this, "middlewares", [async (req, res) => {
40
- this.logger.debug(`api-vscode: got request for ${req.params.method}`);
40
+ this.logger.debug(`api-IDE: got request for ${req.params.method}`);
41
41
  try {
42
- if (!this.apiForVscode[req.params.method]) {
42
+ if (!this.apiForIDE[req.params.method]) {
43
43
  throw new Error(`API "${req.params.method}" was not found`);
44
44
  }
45
45
  const body = req.body;
46
46
  const {
47
47
  args
48
48
  } = body;
49
- this.logger.console(`started a new api-vscode call: ${req.params.method}, total: ${(args === null || args === void 0 ? void 0 : args.length) || 0} args`);
49
+ this.logger.console(`started a new api-IDE call: ${req.params.method}, total: ${(args === null || args === void 0 ? void 0 : args.length) || 0} args`);
50
50
  const startTask = process.hrtime();
51
- const result = await this.apiForVscode[req.params.method](...args);
51
+ const result = await this.apiForIDE[req.params.method](...args);
52
52
  const duration = (0, _prettyTime().default)(process.hrtime(startTask));
53
- this.logger.consoleSuccess(`api-vscode call: ${req.params.method} had been completed in ${duration}`);
53
+ this.logger.consoleSuccess(`api-IDE call: ${req.params.method} had been completed in ${duration}`);
54
54
  res.json(result);
55
55
  } catch (err) {
56
- this.logger.error(`api-vscode call: ${req.params.method} had failed`, err);
57
- this.logger.consoleFailure(`api-vscode call: ${req.params.method} had failed. ${err.message}`);
56
+ this.logger.error(`api-IDE call: ${req.params.method} had failed`, err);
57
+ this.logger.consoleFailure(`api-IDE call: ${req.params.method} had failed. ${err.message}`);
58
58
  res.status(500).jsonp(err.message);
59
59
  }
60
60
  }]);
61
61
  }
62
62
  }
63
- exports.VSCodeRoute = VSCodeRoute;
63
+ exports.IDERoute = IDERoute;
64
64
 
65
- //# sourceMappingURL=vscode.route.js.map
65
+ //# sourceMappingURL=ide.route.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["IDERoute","constructor","logger","apiForIDE","req","res","debug","params","method","Error","body","args","console","length","startTask","process","hrtime","result","duration","prettyTime","consoleSuccess","json","err","error","consoleFailure","message","status","jsonp"],"sources":["ide.route.ts"],"sourcesContent":["import prettyTime from 'pretty-time';\nimport { Route, Request, Response } from '@teambit/express';\nimport { Logger } from '@teambit/logger';\nimport { APIForIDE } from './api-for-ide';\n\n/**\n * example usage:\n * post to http://localhost:3000/api/ide/list-dirs\n * with the following json as the body\n *\n{\n \"args\": [\"some-args\"]\n}\n */\nexport class IDERoute implements Route {\n constructor(private logger: Logger, private apiForIDE: APIForIDE) {}\n\n method = 'post';\n route = '/ide/:method';\n\n middlewares = [\n async (req: Request, res: Response) => {\n this.logger.debug(`api-IDE: got request for ${req.params.method}`);\n try {\n if (!this.apiForIDE[req.params.method]) {\n throw new Error(`API \"${req.params.method}\" was not found`);\n }\n const body = req.body;\n const { args } = body;\n this.logger.console(`started a new api-IDE call: ${req.params.method}, total: ${args?.length || 0} args`);\n const startTask = process.hrtime();\n const result = await this.apiForIDE[req.params.method](...args);\n const duration = prettyTime(process.hrtime(startTask));\n this.logger.consoleSuccess(`api-IDE call: ${req.params.method} had been completed in ${duration}`);\n res.json(result);\n } catch (err: any) {\n this.logger.error(`api-IDE call: ${req.params.method} had failed`, err);\n this.logger.consoleFailure(`api-IDE call: ${req.params.method} had failed. ${err.message}`);\n res.status(500).jsonp(err.message);\n }\n },\n ];\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,QAAQ,CAAkB;EACrCC,WAAW,CAASC,MAAc,EAAUC,SAAoB,EAAE;IAAA,KAA9CD,MAAc,GAAdA,MAAc;IAAA,KAAUC,SAAoB,GAApBA,SAAoB;IAAA,gDAEvD,MAAM;IAAA,+CACP,cAAc;IAAA,qDAER,CACZ,OAAOC,GAAY,EAAEC,GAAa,KAAK;MACrC,IAAI,CAACH,MAAM,CAACI,KAAK,CAAE,4BAA2BF,GAAG,CAACG,MAAM,CAACC,MAAO,EAAC,CAAC;MAClE,IAAI;QACF,IAAI,CAAC,IAAI,CAACL,SAAS,CAACC,GAAG,CAACG,MAAM,CAACC,MAAM,CAAC,EAAE;UACtC,MAAM,IAAIC,KAAK,CAAE,QAAOL,GAAG,CAACG,MAAM,CAACC,MAAO,iBAAgB,CAAC;QAC7D;QACA,MAAME,IAAI,GAAGN,GAAG,CAACM,IAAI;QACrB,MAAM;UAAEC;QAAK,CAAC,GAAGD,IAAI;QACrB,IAAI,CAACR,MAAM,CAACU,OAAO,CAAE,+BAA8BR,GAAG,CAACG,MAAM,CAACC,MAAO,YAAW,CAAAG,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEE,MAAM,KAAI,CAAE,OAAM,CAAC;QACzG,MAAMC,SAAS,GAAGC,OAAO,CAACC,MAAM,EAAE;QAClC,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACd,SAAS,CAACC,GAAG,CAACG,MAAM,CAACC,MAAM,CAAC,CAAC,GAAGG,IAAI,CAAC;QAC/D,MAAMO,QAAQ,GAAG,IAAAC,qBAAU,EAACJ,OAAO,CAACC,MAAM,CAACF,SAAS,CAAC,CAAC;QACtD,IAAI,CAACZ,MAAM,CAACkB,cAAc,CAAE,iBAAgBhB,GAAG,CAACG,MAAM,CAACC,MAAO,0BAAyBU,QAAS,EAAC,CAAC;QAClGb,GAAG,CAACgB,IAAI,CAACJ,MAAM,CAAC;MAClB,CAAC,CAAC,OAAOK,GAAQ,EAAE;QACjB,IAAI,CAACpB,MAAM,CAACqB,KAAK,CAAE,iBAAgBnB,GAAG,CAACG,MAAM,CAACC,MAAO,aAAY,EAAEc,GAAG,CAAC;QACvE,IAAI,CAACpB,MAAM,CAACsB,cAAc,CAAE,iBAAgBpB,GAAG,CAACG,MAAM,CAACC,MAAO,gBAAec,GAAG,CAACG,OAAQ,EAAC,CAAC;QAC3FpB,GAAG,CAACqB,MAAM,CAAC,GAAG,CAAC,CAACC,KAAK,CAACL,GAAG,CAACG,OAAO,CAAC;MACpC;IACF,CAAC,CACF;EA1BkE;AA2BrE;AAAC"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/api-server",
3
- "version": "0.0.112",
3
+ "version": "0.0.114",
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.112"
9
+ "version": "0.0.114"
10
10
  },
11
11
  "dependencies": {
12
12
  "fs-extra": "10.0.0",
@@ -15,13 +15,14 @@
15
15
  "core-js": "^3.0.0",
16
16
  "@babel/runtime": "7.20.0",
17
17
  "@teambit/harmony": "0.4.6",
18
- "@teambit/snapping": "0.0.415",
19
- "@teambit/workspace": "0.0.1100",
20
- "@teambit/cli": "0.0.738",
21
- "@teambit/component": "0.0.1100",
22
- "@teambit/express": "0.0.836",
23
- "@teambit/logger": "0.0.831",
24
- "@teambit/watcher": "0.0.112"
18
+ "@teambit/lanes": "0.0.674",
19
+ "@teambit/snapping": "0.0.417",
20
+ "@teambit/workspace": "0.0.1102",
21
+ "@teambit/cli": "0.0.739",
22
+ "@teambit/component": "0.0.1102",
23
+ "@teambit/express": "0.0.837",
24
+ "@teambit/logger": "0.0.832",
25
+ "@teambit/watcher": "0.0.114"
25
26
  },
26
27
  "devDependencies": {
27
28
  "@types/fs-extra": "9.0.7",
@@ -33,7 +34,7 @@
33
34
  "@types/testing-library__jest-dom": "5.9.5"
34
35
  },
35
36
  "peerDependencies": {
36
- "@teambit/legacy": "1.0.519",
37
+ "@teambit/legacy": "1.0.520",
37
38
  "react": "^16.8.0 || ^17.0.0",
38
39
  "react-dom": "^16.8.0 || ^17.0.0"
39
40
  },
@@ -1 +0,0 @@
1
- {"version":3,"names":["FILES_HISTORY_DIR","LAST_SNAP_DIR","APIForVSCode","constructor","workspace","snapping","listIdsWithPaths","ids","listIds","reduce","acc","id","toStringWithoutVersion","componentDir","getMainFilePath","compId","resolveComponentId","comp","get","path","join","state","_consumer","mainFile","getCompFiles","dirAbs","filesRelative","filesystem","files","map","file","relative","getCompFilesDirPathFromLastSnap","hasVersion","compDir","ignoreVersion","filePathsRootDir","scope","fs","remove","modelComponent","getBitObjectModelComponent","Error","toString","versionObject","getBitObjectVersion","version","sourceFiles","modelFilesToSourceFiles","legacyScope","objects","results","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","c","snappedComponents"],"sources":["api-for-vscode.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';\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 APIForVSCode {\n constructor(private workspace: Workspace, private snapping: SnappingMain) {}\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 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 +0,0 @@
1
- {"version":3,"names":["VSCodeRoute","constructor","logger","apiForVscode","req","res","debug","params","method","Error","body","args","console","length","startTask","process","hrtime","result","duration","prettyTime","consoleSuccess","json","err","error","consoleFailure","message","status","jsonp"],"sources":["vscode.route.ts"],"sourcesContent":["import prettyTime from 'pretty-time';\nimport { Route, Request, Response } from '@teambit/express';\nimport { Logger } from '@teambit/logger';\nimport { APIForVSCode } from './api-for-vscode';\n\n/**\n * example usage:\n * post to http://localhost:3000/api/vscode/list-dirs\n * with the following json as the body\n *\n{\n \"args\": [\"some-args\"]\n}\n */\nexport class VSCodeRoute implements Route {\n constructor(private logger: Logger, private apiForVscode: APIForVSCode) {}\n\n method = 'post';\n route = '/vscode/:method';\n\n middlewares = [\n async (req: Request, res: Response) => {\n this.logger.debug(`api-vscode: got request for ${req.params.method}`);\n try {\n if (!this.apiForVscode[req.params.method]) {\n throw new Error(`API \"${req.params.method}\" was not found`);\n }\n const body = req.body;\n const { args } = body;\n this.logger.console(`started a new api-vscode call: ${req.params.method}, total: ${args?.length || 0} args`);\n const startTask = process.hrtime();\n const result = await this.apiForVscode[req.params.method](...args);\n const duration = prettyTime(process.hrtime(startTask));\n this.logger.consoleSuccess(`api-vscode call: ${req.params.method} had been completed in ${duration}`);\n res.json(result);\n } catch (err: any) {\n this.logger.error(`api-vscode call: ${req.params.method} had failed`, err);\n this.logger.consoleFailure(`api-vscode call: ${req.params.method} had failed. ${err.message}`);\n res.status(500).jsonp(err.message);\n }\n },\n ];\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,WAAW,CAAkB;EACxCC,WAAW,CAASC,MAAc,EAAUC,YAA0B,EAAE;IAAA,KAApDD,MAAc,GAAdA,MAAc;IAAA,KAAUC,YAA0B,GAA1BA,YAA0B;IAAA,gDAE7D,MAAM;IAAA,+CACP,iBAAiB;IAAA,qDAEX,CACZ,OAAOC,GAAY,EAAEC,GAAa,KAAK;MACrC,IAAI,CAACH,MAAM,CAACI,KAAK,CAAE,+BAA8BF,GAAG,CAACG,MAAM,CAACC,MAAO,EAAC,CAAC;MACrE,IAAI;QACF,IAAI,CAAC,IAAI,CAACL,YAAY,CAACC,GAAG,CAACG,MAAM,CAACC,MAAM,CAAC,EAAE;UACzC,MAAM,IAAIC,KAAK,CAAE,QAAOL,GAAG,CAACG,MAAM,CAACC,MAAO,iBAAgB,CAAC;QAC7D;QACA,MAAME,IAAI,GAAGN,GAAG,CAACM,IAAI;QACrB,MAAM;UAAEC;QAAK,CAAC,GAAGD,IAAI;QACrB,IAAI,CAACR,MAAM,CAACU,OAAO,CAAE,kCAAiCR,GAAG,CAACG,MAAM,CAACC,MAAO,YAAW,CAAAG,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEE,MAAM,KAAI,CAAE,OAAM,CAAC;QAC5G,MAAMC,SAAS,GAAGC,OAAO,CAACC,MAAM,EAAE;QAClC,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACd,YAAY,CAACC,GAAG,CAACG,MAAM,CAACC,MAAM,CAAC,CAAC,GAAGG,IAAI,CAAC;QAClE,MAAMO,QAAQ,GAAG,IAAAC,qBAAU,EAACJ,OAAO,CAACC,MAAM,CAACF,SAAS,CAAC,CAAC;QACtD,IAAI,CAACZ,MAAM,CAACkB,cAAc,CAAE,oBAAmBhB,GAAG,CAACG,MAAM,CAACC,MAAO,0BAAyBU,QAAS,EAAC,CAAC;QACrGb,GAAG,CAACgB,IAAI,CAACJ,MAAM,CAAC;MAClB,CAAC,CAAC,OAAOK,GAAQ,EAAE;QACjB,IAAI,CAACpB,MAAM,CAACqB,KAAK,CAAE,oBAAmBnB,GAAG,CAACG,MAAM,CAACC,MAAO,aAAY,EAAEc,GAAG,CAAC;QAC1E,IAAI,CAACpB,MAAM,CAACsB,cAAc,CAAE,oBAAmBpB,GAAG,CAACG,MAAM,CAACC,MAAO,gBAAec,GAAG,CAACG,OAAQ,EAAC,CAAC;QAC9FpB,GAAG,CAACqB,MAAM,CAAC,GAAG,CAAC,CAACC,KAAK,CAACL,GAAG,CAACG,OAAO,CAAC;MACpC;IACF,CAAC,CACF;EA1BwE;AA2B3E;AAAC"}