@teambit/api-server 0.0.121 → 0.0.123
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api-server.main.runtime.d.ts +6 -3
- package/dist/api-server.main.runtime.js +15 -4
- package/dist/api-server.main.runtime.js.map +1 -1
- package/dist/sse-events.route.d.ts +1 -1
- package/dist/sse-events.route.js.map +1 -1
- package/package-tar/teambit-api-server-0.0.123.tgz +0 -0
- package/package.json +12 -11
- package/package-tar/teambit-api-server-0.0.121.tgz +0 -0
- /package/dist/{preview-1689585411475.js → preview-1689823719636.js} +0 -0
|
@@ -4,26 +4,29 @@ 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 { InstallMain } from '@teambit/install';
|
|
7
8
|
import { Workspace } from '@teambit/workspace';
|
|
8
9
|
export declare class ApiServerMain {
|
|
9
10
|
private workspace;
|
|
10
11
|
private logger;
|
|
11
12
|
private express;
|
|
12
13
|
private watcher;
|
|
13
|
-
|
|
14
|
+
private installer;
|
|
15
|
+
constructor(workspace: Workspace, logger: Logger, express: ExpressMain, watcher: WatcherMain, installer: InstallMain);
|
|
14
16
|
runApiServer(options: {
|
|
15
17
|
port: number;
|
|
16
18
|
}): Promise<unknown>;
|
|
17
19
|
static dependencies: import("@teambit/harmony").Aspect[];
|
|
18
20
|
static runtime: import("@teambit/harmony").RuntimeDefinition;
|
|
19
|
-
static provider([cli, workspace, loggerMain, express, watcher, snapping, lanes]: [
|
|
21
|
+
static provider([cli, workspace, loggerMain, express, watcher, snapping, lanes, installer]: [
|
|
20
22
|
CLIMain,
|
|
21
23
|
Workspace,
|
|
22
24
|
LoggerMain,
|
|
23
25
|
ExpressMain,
|
|
24
26
|
WatcherMain,
|
|
25
27
|
SnappingMain,
|
|
26
|
-
LanesMain
|
|
28
|
+
LanesMain,
|
|
29
|
+
InstallMain
|
|
27
30
|
]): Promise<ApiServerMain>;
|
|
28
31
|
}
|
|
29
32
|
export default ApiServerMain;
|
|
@@ -56,6 +56,13 @@ function _watcher() {
|
|
|
56
56
|
};
|
|
57
57
|
return data;
|
|
58
58
|
}
|
|
59
|
+
function _install() {
|
|
60
|
+
const data = _interopRequireDefault(require("@teambit/install"));
|
|
61
|
+
_install = function () {
|
|
62
|
+
return data;
|
|
63
|
+
};
|
|
64
|
+
return data;
|
|
65
|
+
}
|
|
59
66
|
function _workspace() {
|
|
60
67
|
const data = _interopRequireDefault(require("@teambit/workspace"));
|
|
61
68
|
_workspace = function () {
|
|
@@ -106,11 +113,12 @@ function _sseEvents() {
|
|
|
106
113
|
return data;
|
|
107
114
|
}
|
|
108
115
|
class ApiServerMain {
|
|
109
|
-
constructor(workspace, logger, express, watcher) {
|
|
116
|
+
constructor(workspace, logger, express, watcher, installer) {
|
|
110
117
|
this.workspace = workspace;
|
|
111
118
|
this.logger = logger;
|
|
112
119
|
this.express = express;
|
|
113
120
|
this.watcher = watcher;
|
|
121
|
+
this.installer = installer;
|
|
114
122
|
}
|
|
115
123
|
async runApiServer(options) {
|
|
116
124
|
const port = options.port || 3000;
|
|
@@ -128,6 +136,9 @@ class ApiServerMain {
|
|
|
128
136
|
this.workspace.registerOnBitmapChange(async () => {
|
|
129
137
|
(0, _sseEvents().sendEventsToClients)('onBitmapChange', {});
|
|
130
138
|
});
|
|
139
|
+
this.installer.registerPostInstall(async () => {
|
|
140
|
+
(0, _sseEvents().sendEventsToClients)('onPostInstall', {});
|
|
141
|
+
});
|
|
131
142
|
this.watcher.watch({
|
|
132
143
|
preCompile: false
|
|
133
144
|
}).catch(err => {
|
|
@@ -140,9 +151,9 @@ class ApiServerMain {
|
|
|
140
151
|
this.logger.consoleSuccess(`Bit Server is listening on port ${port}`);
|
|
141
152
|
});
|
|
142
153
|
}
|
|
143
|
-
static async provider([cli, workspace, loggerMain, express, watcher, snapping, lanes]) {
|
|
154
|
+
static async provider([cli, workspace, loggerMain, express, watcher, snapping, lanes, installer]) {
|
|
144
155
|
const logger = loggerMain.createLogger(_apiServer().ApiServerAspect.id);
|
|
145
|
-
const apiServer = new ApiServerMain(workspace, logger, express, watcher);
|
|
156
|
+
const apiServer = new ApiServerMain(workspace, logger, express, watcher, installer);
|
|
146
157
|
cli.register(new (_server().ServerCmd)(apiServer));
|
|
147
158
|
const cliRoute = new (_cli2().CLIRoute)(logger, cli);
|
|
148
159
|
const apiForIDE = new (_apiForIde().APIForIDE)(workspace, snapping, lanes);
|
|
@@ -156,7 +167,7 @@ class ApiServerMain {
|
|
|
156
167
|
}
|
|
157
168
|
}
|
|
158
169
|
exports.ApiServerMain = ApiServerMain;
|
|
159
|
-
(0, _defineProperty2().default)(ApiServerMain, "dependencies", [_cli().CLIAspect, _workspace().default, _logger().LoggerAspect, _express().ExpressAspect, _watcher().default, _snapping().default, _lanes().default]);
|
|
170
|
+
(0, _defineProperty2().default)(ApiServerMain, "dependencies", [_cli().CLIAspect, _workspace().default, _logger().LoggerAspect, _express().ExpressAspect, _watcher().default, _snapping().default, _lanes().default, _install().default]);
|
|
160
171
|
(0, _defineProperty2().default)(ApiServerMain, "runtime", _cli().MainRuntime);
|
|
161
172
|
_apiServer().ApiServerAspect.addRuntime(ApiServerMain);
|
|
162
173
|
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","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":";;;;;;;;;;;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEO,MAAMA,aAAa,CAAC;EACzBC,WAAW,CACDC,SAAoB,EACpBC,MAAc,EACdC,OAAoB,EACpBC,OAAoB,
|
|
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,7 +1,7 @@
|
|
|
1
1
|
import { CLIMain } from '@teambit/cli';
|
|
2
2
|
import { Route, Request, Response } from '@teambit/express';
|
|
3
3
|
import { Logger } from '@teambit/logger';
|
|
4
|
-
declare type EventName = 'onComponentChange' | 'onBitmapChange';
|
|
4
|
+
declare type EventName = 'onComponentChange' | 'onBitmapChange' | 'onPostInstall';
|
|
5
5
|
export declare function sendEventsToClients(eventName: EventName, data: any): void;
|
|
6
6
|
/**
|
|
7
7
|
* Server-Sent Events (SSE).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["clients","sendEventsToClients","eventName","data","forEach","client","response","write","JSON","stringify","SSEEventsRoute","constructor","logger","cli","request","debug","params","headers","Connection","writeHead","clientId","Date","now","newClient","id","push","on","filter"],"sources":["sse-events.route.ts"],"sourcesContent":["import { CLIMain } from '@teambit/cli';\nimport { Route, Request, Response } from '@teambit/express';\nimport { Logger } from '@teambit/logger';\n\ntype CLIENT = {\n id: number;\n response: Response;\n};\n\nlet clients: CLIENT[] = [];\n\ntype EventName = 'onComponentChange' | 'onBitmapChange';\n\nexport function sendEventsToClients(eventName: EventName, data: any) {\n clients.forEach((client) => client.response.write(`event:${eventName}\\ndata: ${JSON.stringify(data)}\\n\\n`));\n}\n\n/**\n * Server-Sent Events (SSE).\n */\nexport class SSEEventsRoute implements Route {\n constructor(private logger: Logger, private cli: CLIMain) {}\n\n method = 'get';\n route = '/sse-events';\n\n middlewares = [\n async (request: Request, response: Response) => {\n this.logger.debug(`sse-events: got request for ${request.params}`);\n const headers = {\n 'Content-Type': 'text/event-stream',\n Connection: 'keep-alive',\n 'Cache-Control': 'no-cache',\n };\n response.writeHead(200, headers);\n\n const clientId = Date.now();\n\n const newClient = {\n id: clientId,\n response,\n };\n\n clients.push(newClient);\n\n request.on('close', () => {\n this.logger.debug(`${clientId} SSE Connection closed`);\n clients = clients.filter((client) => client.id !== clientId);\n });\n },\n ];\n}\n"],"mappings":";;;;;;;;;;;;;;;;AASA,IAAIA,OAAiB,GAAG,EAAE;AAInB,SAASC,mBAAmB,CAACC,SAAoB,EAAEC,IAAS,EAAE;EACnEH,OAAO,CAACI,OAAO,CAAEC,MAAM,IAAKA,MAAM,CAACC,QAAQ,CAACC,KAAK,CAAE,SAAQL,SAAU,WAAUM,IAAI,CAACC,SAAS,CAACN,IAAI,CAAE,MAAK,CAAC,CAAC;AAC7G;;AAEA;AACA;AACA;AACO,MAAMO,cAAc,CAAkB;EAC3CC,WAAW,CAASC,MAAc,EAAUC,GAAY,EAAE;IAAA,KAAtCD,MAAc,GAAdA,MAAc;IAAA,KAAUC,GAAY,GAAZA,GAAY;IAAA,gDAE/C,KAAK;IAAA,+CACN,aAAa;IAAA,qDAEP,CACZ,OAAOC,OAAgB,EAAER,QAAkB,KAAK;MAC9C,IAAI,CAACM,MAAM,CAACG,KAAK,CAAE,+BAA8BD,OAAO,CAACE,MAAO,EAAC,CAAC;MAClE,MAAMC,OAAO,GAAG;QACd,cAAc,EAAE,mBAAmB;QACnCC,UAAU,EAAE,YAAY;QACxB,eAAe,EAAE;MACnB,CAAC;MACDZ,QAAQ,CAACa,SAAS,CAAC,GAAG,EAAEF,OAAO,CAAC;MAEhC,MAAMG,QAAQ,GAAGC,IAAI,CAACC,GAAG,EAAE;MAE3B,MAAMC,SAAS,GAAG;QAChBC,EAAE,EAAEJ,QAAQ;QACZd;MACF,CAAC;MAEDN,OAAO,CAACyB,IAAI,CAACF,SAAS,CAAC;MAEvBT,OAAO,CAACY,EAAE,CAAC,OAAO,EAAE,MAAM;QACxB,IAAI,CAACd,MAAM,CAACG,KAAK,CAAE,GAAEK,QAAS,wBAAuB,CAAC;QACtDpB,OAAO,GAAGA,OAAO,CAAC2B,MAAM,CAAEtB,MAAM,IAAKA,MAAM,CAACmB,EAAE,KAAKJ,QAAQ,CAAC;MAC9D,CAAC,CAAC;IACJ,CAAC,CACF;EA7B0D;AA8B7D;AAAC"}
|
|
1
|
+
{"version":3,"names":["clients","sendEventsToClients","eventName","data","forEach","client","response","write","JSON","stringify","SSEEventsRoute","constructor","logger","cli","request","debug","params","headers","Connection","writeHead","clientId","Date","now","newClient","id","push","on","filter"],"sources":["sse-events.route.ts"],"sourcesContent":["import { CLIMain } from '@teambit/cli';\nimport { Route, Request, Response } from '@teambit/express';\nimport { Logger } from '@teambit/logger';\n\ntype CLIENT = {\n id: number;\n response: Response;\n};\n\nlet clients: CLIENT[] = [];\n\ntype EventName = 'onComponentChange' | 'onBitmapChange' | 'onPostInstall';\n\nexport function sendEventsToClients(eventName: EventName, data: any) {\n clients.forEach((client) => client.response.write(`event:${eventName}\\ndata: ${JSON.stringify(data)}\\n\\n`));\n}\n\n/**\n * Server-Sent Events (SSE).\n */\nexport class SSEEventsRoute implements Route {\n constructor(private logger: Logger, private cli: CLIMain) {}\n\n method = 'get';\n route = '/sse-events';\n\n middlewares = [\n async (request: Request, response: Response) => {\n this.logger.debug(`sse-events: got request for ${request.params}`);\n const headers = {\n 'Content-Type': 'text/event-stream',\n Connection: 'keep-alive',\n 'Cache-Control': 'no-cache',\n };\n response.writeHead(200, headers);\n\n const clientId = Date.now();\n\n const newClient = {\n id: clientId,\n response,\n };\n\n clients.push(newClient);\n\n request.on('close', () => {\n this.logger.debug(`${clientId} SSE Connection closed`);\n clients = clients.filter((client) => client.id !== clientId);\n });\n },\n ];\n}\n"],"mappings":";;;;;;;;;;;;;;;;AASA,IAAIA,OAAiB,GAAG,EAAE;AAInB,SAASC,mBAAmB,CAACC,SAAoB,EAAEC,IAAS,EAAE;EACnEH,OAAO,CAACI,OAAO,CAAEC,MAAM,IAAKA,MAAM,CAACC,QAAQ,CAACC,KAAK,CAAE,SAAQL,SAAU,WAAUM,IAAI,CAACC,SAAS,CAACN,IAAI,CAAE,MAAK,CAAC,CAAC;AAC7G;;AAEA;AACA;AACA;AACO,MAAMO,cAAc,CAAkB;EAC3CC,WAAW,CAASC,MAAc,EAAUC,GAAY,EAAE;IAAA,KAAtCD,MAAc,GAAdA,MAAc;IAAA,KAAUC,GAAY,GAAZA,GAAY;IAAA,gDAE/C,KAAK;IAAA,+CACN,aAAa;IAAA,qDAEP,CACZ,OAAOC,OAAgB,EAAER,QAAkB,KAAK;MAC9C,IAAI,CAACM,MAAM,CAACG,KAAK,CAAE,+BAA8BD,OAAO,CAACE,MAAO,EAAC,CAAC;MAClE,MAAMC,OAAO,GAAG;QACd,cAAc,EAAE,mBAAmB;QACnCC,UAAU,EAAE,YAAY;QACxB,eAAe,EAAE;MACnB,CAAC;MACDZ,QAAQ,CAACa,SAAS,CAAC,GAAG,EAAEF,OAAO,CAAC;MAEhC,MAAMG,QAAQ,GAAGC,IAAI,CAACC,GAAG,EAAE;MAE3B,MAAMC,SAAS,GAAG;QAChBC,EAAE,EAAEJ,QAAQ;QACZd;MACF,CAAC;MAEDN,OAAO,CAACyB,IAAI,CAACF,SAAS,CAAC;MAEvBT,OAAO,CAACY,EAAE,CAAC,OAAO,EAAE,MAAM;QACxB,IAAI,CAACd,MAAM,CAACG,KAAK,CAAE,GAAEK,QAAS,wBAAuB,CAAC;QACtDpB,OAAO,GAAGA,OAAO,CAAC2B,MAAM,CAAEtB,MAAM,IAAKA,MAAM,CAACmB,EAAE,KAAKJ,QAAQ,CAAC;MAC9D,CAAC,CAAC;IACJ,CAAC,CACF;EA7B0D;AA8B7D;AAAC"}
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teambit/api-server",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.123",
|
|
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.
|
|
9
|
+
"version": "0.0.123"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"fs-extra": "10.0.0",
|
|
@@ -15,14 +15,15 @@
|
|
|
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.
|
|
19
|
-
"@teambit/snapping": "0.0.
|
|
20
|
-
"@teambit/workspace": "0.0.
|
|
21
|
-
"@teambit/cli": "0.0.
|
|
22
|
-
"@teambit/component": "0.0.
|
|
23
|
-
"@teambit/express": "0.0.
|
|
24
|
-
"@teambit/
|
|
25
|
-
"@teambit/
|
|
18
|
+
"@teambit/lanes": "0.0.683",
|
|
19
|
+
"@teambit/snapping": "0.0.426",
|
|
20
|
+
"@teambit/workspace": "0.0.1111",
|
|
21
|
+
"@teambit/cli": "0.0.743",
|
|
22
|
+
"@teambit/component": "0.0.1111",
|
|
23
|
+
"@teambit/express": "0.0.841",
|
|
24
|
+
"@teambit/install": "0.0.202",
|
|
25
|
+
"@teambit/logger": "0.0.836",
|
|
26
|
+
"@teambit/watcher": "0.0.123"
|
|
26
27
|
},
|
|
27
28
|
"devDependencies": {
|
|
28
29
|
"@types/fs-extra": "9.0.7",
|
|
@@ -34,7 +35,7 @@
|
|
|
34
35
|
"@types/testing-library__jest-dom": "5.9.5"
|
|
35
36
|
},
|
|
36
37
|
"peerDependencies": {
|
|
37
|
-
"@teambit/legacy": "1.0.
|
|
38
|
+
"@teambit/legacy": "1.0.523",
|
|
38
39
|
"react": "^16.8.0 || ^17.0.0",
|
|
39
40
|
"react-dom": "^16.8.0 || ^17.0.0"
|
|
40
41
|
},
|
|
Binary file
|
|
File without changes
|