@teambit/api-server 0.0.122 → 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.
@@ -1 +1 @@
1
- {"version":3,"names":["_path","data","_interopRequireDefault","require","_fsExtra","_path2","_pMap","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","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","exports"],"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","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":";;;;;;;;;;;;;;;;AAAA;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;AAAyB;AAAA;AAIzB,MAAMA,iBAAiB,GAAG,eAAe;AACzC,MAAMC,aAAa,GAAG,WAAW;AAY1B,MAAMC,SAAS,CAAC;EACrBC,WAAW,CAASC,SAAoB,EAAUC,QAAsB,EAAUC,KAAgB,EAAE;IAAA,KAAhFF,SAAoB,GAApBA,SAAoB;IAAA,KAAUC,QAAsB,GAAtBA,QAAsB;IAAA,KAAUC,KAAgB,GAAhBA,KAAgB;EAAG;EAErG,MAAMC,gBAAgB,GAAG;IACvB,MAAMC,GAAG,GAAG,MAAM,IAAI,CAACJ,SAAS,CAACK,OAAO,EAAE;IAC1C,OAAOD,GAAG,CAACE,MAAM,CAAC,CAACC,GAAG,EAAEC,EAAE,KAAK;MAC7BD,GAAG,CAACC,EAAE,CAACC,sBAAsB,EAAE,CAAC,GAAG,IAAI,CAACT,SAAS,CAACU,YAAY,CAACF,EAAE,CAAC;MAClE,OAAOD,GAAG;IACZ,CAAC,EAAE,CAAC,CAAC,CAAC;EACR;EAEA,MAAMI,eAAe,CAACH,EAAU,EAAgC;IAC9D,MAAMI,MAAM,GAAG,MAAM,IAAI,CAACZ,SAAS,CAACa,kBAAkB,CAACL,EAAE,CAAC;IAC1D,MAAMM,IAAI,GAAG,MAAM,IAAI,CAACd,SAAS,CAACe,GAAG,CAACH,MAAM,CAAC;IAC7C,OAAOI,eAAI,CAACC,IAAI,CAAC,IAAI,CAACjB,SAAS,CAACU,YAAY,CAACE,MAAM,CAAC,EAAEE,IAAI,CAACI,KAAK,CAACC,SAAS,CAACC,QAAQ,CAAC;EACtF;EAEA,MAAMC,UAAU,CACdC,QAAgB,EAChB;IAAEC;EAAqE,CAAC,EACrD;IACnB,MAAMC,OAAO,GAAG,MAAM,IAAI,CAACtB,KAAK,CAACuB,WAAW,CAACH,QAAQ,EAAE;MACrDC,0BAA0B;MAC1BG,MAAM,EAAE;IACV,CAAC,CAAC;IACF,OAAO,CAACF,OAAO,CAACG,UAAU,IAAI,EAAE,EAAEC,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAACrB,EAAE,CAACsB,QAAQ,EAAE,CAAC;EAC/D;EAEA,MAAMC,YAAY,CAACvB,EAAU,EAAqE;IAChG,MAAMI,MAAM,GAAG,MAAM,IAAI,CAACZ,SAAS,CAACa,kBAAkB,CAACL,EAAE,CAAC;IAC1D,MAAMM,IAAI,GAAG,MAAM,IAAI,CAACd,SAAS,CAACe,GAAG,CAACH,MAAM,CAAC;IAC7C,MAAMoB,MAAM,GAAG,IAAI,CAAChC,SAAS,CAACU,YAAY,CAACE,MAAM,CAAC;IAClD,MAAMqB,aAAa,GAAGnB,IAAI,CAACI,KAAK,CAACgB,UAAU,CAACC,KAAK,CAACP,GAAG,CAAEQ,IAAI,IAAKA,IAAI,CAACC,QAAQ,CAAC;IAC9E,OAAO;MAAEL,MAAM;MAAEC;IAAc,CAAC;EAClC;EAEA,MAAMK,+BAA+B,CAAC9B,EAAU,EAA+C;IAC7F,MAAMI,MAAM,GAAG,MAAM,IAAI,CAACZ,SAAS,CAACa,kBAAkB,CAACL,EAAE,CAAC;IAC1D,IAAI,CAACI,MAAM,CAAC2B,UAAU,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACrC,MAAMC,OAAO,GAAG,IAAI,CAACxC,SAAS,CAACU,YAAY,CAACE,MAAM,EAAE;MAAE6B,aAAa,EAAE;IAAK,CAAC,EAAE;MAAEJ,QAAQ,EAAE;IAAK,CAAC,CAAC;IAChG;IACA,MAAMK,gBAAgB,GAAG1B,eAAI,CAACC,IAAI,CAAC,IAAI,CAACjB,SAAS,CAAC2C,KAAK,CAAC3B,IAAI,EAAEpB,iBAAiB,EAAEC,aAAa,EAAE2C,OAAO,CAAC;IACxG,MAAMI,kBAAE,CAACC,MAAM,CAACH,gBAAgB,CAAC,CAAC,CAAC;;IAEnC,MAAMI,cAAc,GAAG,MAAM,IAAI,CAAC9C,SAAS,CAAC2C,KAAK,CAACI,0BAA0B,CAACnC,MAAM,CAAC;IACpF,IAAI,CAACkC,cAAc,EAAE;MACnB,MAAM,IAAIE,KAAK,CAAE,kBAAiBpC,MAAM,CAACkB,QAAQ,EAAG,8CAA6C,CAAC;IACpG;IACA,MAAMmB,aAAa,GAAG,MAAM,IAAI,CAACjD,SAAS,CAAC2C,KAAK,CAACO,mBAAmB,CAACJ,cAAc,EAAElC,MAAM,CAACuC,OAAO,CAAW;IAC9G,IAAI,CAACF,aAAa,EAChB,MAAM,IAAID,KAAK,CAAE,wCAAuCpC,MAAM,CAACkB,QAAQ,EAAG,2BAA0B,CAAC;IACvG,MAAMsB,WAAW,GAAG,MAAMH,aAAa,CAACI,uBAAuB,CAAC,IAAI,CAACrD,SAAS,CAAC2C,KAAK,CAACW,WAAW,CAACC,OAAO,CAAC;IACzG,MAAM/B,OAA2C,GAAG,CAAC,CAAC;IACtD,MAAMgC,OAAO,CAACC,GAAG,CACfL,WAAW,CAACxB,GAAG,CAAC,MAAOQ,IAAI,IAAK;MAC9B,MAAMsB,QAAQ,GAAG1C,eAAI,CAACC,IAAI,CAACyB,gBAAgB,EAAEN,IAAI,CAACC,QAAQ,CAAC;MAC3D,MAAMO,kBAAE,CAACe,UAAU,CAACD,QAAQ,EAAEtB,IAAI,CAACwB,QAAQ,CAAC;MAC5CpC,OAAO,CAAC,IAAAqC,sBAAa,EAACrB,OAAO,EAAEJ,IAAI,CAACC,QAAQ,CAAC,CAAC,GAAGqB,QAAQ;IAC3D,CAAC,CAAC,CACH;IACD,OAAOlC,OAAO;EAChB;EAEA,MAAMsC,6CAA6C,CACjDC,SAAoB,EACyB;IAC7C,MAAMnD,MAAM,GAAGmD,SAAS,CAACvD,EAAE;IAC3B,IAAI,CAACI,MAAM,CAAC2B,UAAU,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACrC,MAAMC,OAAO,GAAGuB,SAAS,CAACvB,OAAO;IACjC,MAAME,gBAAgB,GAAG1B,eAAI,CAACC,IAAI,CAAC,IAAI,CAACjB,SAAS,CAAC2C,KAAK,CAAC3B,IAAI,EAAEpB,iBAAiB,EAAEC,aAAa,EAAE2C,OAAO,CAAC;IACxG,MAAMI,kBAAE,CAACC,MAAM,CAACH,gBAAgB,CAAC,CAAC,CAAC;;IAEnC,MAAMU,WAAW,GAAG,MAAMW,SAAS,CAACC,YAAY,EAAE;IAElD,MAAMxC,OAA2C,GAAG,CAAC,CAAC;IACtD,MAAMgC,OAAO,CAACC,GAAG,CACfL,WAAW,CAACxB,GAAG,CAAC,MAAOQ,IAAI,IAAK;MAC9B,MAAMsB,QAAQ,GAAG1C,eAAI,CAACC,IAAI,CAACyB,gBAAgB,EAAEN,IAAI,CAACC,QAAQ,CAAC;MAC3D,MAAMO,kBAAE,CAACe,UAAU,CAACD,QAAQ,EAAEtB,IAAI,CAACwB,QAAQ,CAAC;MAC5CpC,OAAO,CAAC,IAAAqC,sBAAa,EAACrB,OAAO,EAAEJ,IAAI,CAACC,QAAQ,CAAC,CAAC,GAAGqB,QAAQ;IAC3D,CAAC,CAAC,CACH;IACD,OAAOlC,OAAO;EAChB;EAEA,MAAMyC,gBAAgB,GAA2B;IAC/C,MAAM7D,GAAG,GAAG,MAAM,IAAI,CAACJ,SAAS,CAACK,OAAO,EAAE;IAC1C,MAAMmB,OAAsB,GAAG,CAAC,CAAC;IACjC,MAAM,IAAA0C,eAAI,EACR9D,GAAG,EACH,MAAOI,EAAE,IAAK;MACZ,MAAMuD,SAAS,GAAG,MAAM,IAAI,CAAC/D,SAAS,CAACmE,oBAAoB,CAAC3D,EAAE,CAAC;MAC/D,MAAM4D,iBAAiB,GAAG,MAAM,IAAI,CAACN,6CAA6C,CAACC,SAAS,CAAC;MAC7F,MAAMM,KAAK,GAAG7D,EAAE,CAACC,sBAAsB,EAAE;MACzCe,OAAO,CAAC6C,KAAK,CAAC,GAAG;QACfC,WAAW,EAAEP,SAAS,CAACQ,cAAc,EAAE;QACvCH,iBAAiB;QACjB5B,OAAO,EAAEuB,SAAS,CAACvB;MACrB,CAAC;IACH,CAAC,EACD;MAAEgC,WAAW,EAAE;IAAG,CAAC,CACpB;IAED,OAAOhD,OAAO;EAChB;EAEA,MAAMiD,0CAA0C,GAAgD;IAC9F,MAAMrE,GAAG,GAAG,MAAM,IAAI,CAACJ,SAAS,CAACK,OAAO,EAAE;IAC1C,IAAImB,OAAO,GAAG,CAAC,CAAC;IAChB,MAAM,IAAA0C,eAAI,EACR9D,GAAG,EACH,MAAOI,EAAE,IAAK;MACZ,MAAM6D,KAAK,GAAG7D,EAAE,CAACC,sBAAsB,EAAE;MACzC,MAAMiE,WAAW,GAAG,MAAM,IAAI,CAACpC,+BAA+B,CAAC+B,KAAK,CAAC;MACrE7C,OAAO,mCAAQA,OAAO,GAAKkD,WAAW,CAAE;IAC1C,CAAC,EACD;MAAEF,WAAW,EAAE;IAAG,CAAC,CACpB;IACD,OAAOhD,OAAO;EAChB;EAEAmD,kBAAkB,GAAW;IAC3B,OAAO,IAAI,CAAC3E,SAAS,CAAC4E,gBAAgB,EAAE,CAACC,IAAI;EAC/C;EAEA,MAAMC,SAAS,CAACC,OAAO,GAAG,EAAE,EAAE;IAC5B,MAAMC,MAAM,GAAG;MAAED,OAAO;MAAEE,KAAK,EAAE;IAAM,CAAC;IACxC,OAAO,IAAI,CAACjF,SAAS,CAACkF,QAAQ,EAAE,GAAG,IAAI,CAACjF,QAAQ,CAACkF,GAAG,CAACH,MAAM,CAAC,GAAG,IAAI,CAAC/E,QAAQ,CAACmF,IAAI,CAACJ,MAAM,CAAC;EAC3F;EAEA,MAAMG,GAAG,CAACJ,OAAO,GAAG,EAAE,EAAqB;IACzC,MAAMC,MAAM,GAAG;MAAED,OAAO;MAAEE,KAAK,EAAE;IAAM,CAAC;IACxC,MAAMzD,OAAO,GAAG,MAAM,IAAI,CAACvB,QAAQ,CAACkF,GAAG,CAACH,MAAM,CAAC;IAC/C,OAAO,CAAC,CAAAxD,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE6D,gBAAgB,KAAI,EAAE,EAAEzD,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAACrB,EAAE,CAACsB,QAAQ,EAAE,CAAC;EACtE;EAEA,MAAMsD,IAAI,CAACL,OAAO,GAAG,EAAE,EAAqB;IAC1C,MAAMC,MAAM,GAAG;MAAED,OAAO;MAAEE,KAAK,EAAE;IAAM,CAAC;IACxC,MAAMzD,OAAO,GAAG,MAAM,IAAI,CAACvB,QAAQ,CAACmF,IAAI,CAACJ,MAAM,CAAC;IAChD,OAAO,CAAC,CAAAxD,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE8D,iBAAiB,KAAI,EAAE,EAAE1D,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAACrB,EAAE,CAACsB,QAAQ,EAAE,CAAC;EACvE;AACF;AAAC"}
@@ -1 +1 @@
1
- {"version":3,"names":["_harmony","data","require","ApiServerAspect","Aspect","create","id","exports"],"sources":["api-server.aspect.ts"],"sourcesContent":["import { Aspect } from '@teambit/harmony';\n\nexport const ApiServerAspect = Aspect.create({\n id: 'teambit.harmony/api-server',\n});\n"],"mappings":";;;;;;AAAA,SAAAA,SAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,QAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEO,MAAME,eAAe,GAAGC,iBAAM,CAACC,MAAM,CAAC;EAC3CC,EAAE,EAAE;AACN,CAAC,CAAC;AAACC,OAAA,CAAAJ,eAAA,GAAAA,eAAA"}
1
+ {"version":3,"names":["ApiServerAspect","Aspect","create","id"],"sources":["api-server.aspect.ts"],"sourcesContent":["import { Aspect } from '@teambit/harmony';\n\nexport const ApiServerAspect = Aspect.create({\n id: 'teambit.harmony/api-server',\n});\n"],"mappings":";;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEO,MAAMA,eAAe,GAAGC,iBAAM,CAACC,MAAM,CAAC;EAC3CC,EAAE,EAAE;AACN,CAAC,CAAC;AAAC"}
@@ -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
- constructor(workspace: Workspace, logger: Logger, express: ExpressMain, watcher: WatcherMain);
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":["_cli","data","require","_express","_logger","_lanes","_interopRequireDefault","_snapping","_watcher","_workspace","_apiServer","_cli2","_server","_ide","_apiForIde","_sseEvents","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","exports","_defineProperty2","default","CLIAspect","WorkspaceAspect","LoggerAspect","ExpressAspect","WatcherAspect","SnappingAspect","LanesAspect","MainRuntime","addRuntime","_default"],"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
+ {"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":";;;;;;;;;;;;;;;;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;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,EACpBC,SAAsB,EAC9B;IAAA,KALQJ,SAAoB,GAApBA,SAAoB;IAAA,KACpBC,MAAc,GAAdA,MAAc;IAAA,KACdC,OAAoB,GAApBA,OAAoB;IAAA,KACpBC,OAAoB,GAApBA,OAAoB;IAAA,KACpBC,SAAsB,GAAtBA,SAAsB;EAC7B;EAEH,MAAMC,YAAY,CAACC,OAAyB,EAAE;IAC5C,MAAMC,IAAI,GAAGD,OAAO,CAACC,IAAI,IAAI,IAAI;IACjC,MAAM,IAAI,CAACL,OAAO,CAACM,MAAM,CAACD,IAAI,CAAC;IAC/B,IAAI,CAAC,IAAI,CAACP,SAAS,EAAE;MACnB,MAAM,IAAIS,KAAK,CAAE,mDAAkDC,OAAO,CAACC,GAAG,EAAG,qBAAoB,CAAC;IACxG;IAEA,IAAI,CAACX,SAAS,CAACY,yBAAyB,CACtC,OACEC,SAAoB,EACpBC,KAAe,EACfC,YAAuB,KACpB;MACH,IAAAC,gCAAmB,EAAC,mBAAmB,EAAE;QACvCC,EAAE,EAAEJ,SAAS,CAACI,EAAE,CAACC,sBAAsB,EAAE;QACzCJ,KAAK;QACLC;MACF,CAAC,CAAC;IACJ,CAAC,CACF;IAED,IAAI,CAACf,SAAS,CAACmB,sBAAsB,CAAC,YAAY;MAChD,IAAAH,gCAAmB,EAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;IAC3C,CAAC,CAAC;IAEF,IAAI,CAACZ,SAAS,CAACgB,mBAAmB,CAAC,YAAY;MAC7C,IAAAJ,gCAAmB,EAAC,eAAe,EAAE,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC;IAEF,IAAI,CAACb,OAAO,CACTkB,KAAK,CAAC;MACLC,UAAU,EAAE;IACd,CAAC,CAAC,CACDC,KAAK,CAAEC,GAAG,IAAK;MACd;MACA,IAAI,CAACvB,MAAM,CAACwB,KAAK,CAAC,wBAAwB,EAAED,GAAG,CAAC;IAClD,CAAC,CAAC;;IAEJ;IACA,OAAO,IAAIE,OAAO,CAAC,MAAM;MACvB,IAAI,CAACzB,MAAM,CAAC0B,cAAc,CAAE,mCAAkCpB,IAAK,EAAC,CAAC;IACvE,CAAC,CAAC;EACJ;EAaA,aAAaqB,QAAQ,CAAC,CAACC,GAAG,EAAE7B,SAAS,EAAE8B,UAAU,EAAE5B,OAAO,EAAEC,OAAO,EAAE4B,QAAQ,EAAEC,KAAK,EAAE5B,SAAS,CAS9F,EAAE;IACD,MAAMH,MAAM,GAAG6B,UAAU,CAACG,YAAY,CAACC,4BAAe,CAACjB,EAAE,CAAC;IAC1D,MAAMkB,SAAS,GAAG,IAAIrC,aAAa,CAACE,SAAS,EAAEC,MAAM,EAAEC,OAAO,EAAEC,OAAO,EAAEC,SAAS,CAAC;IACnFyB,GAAG,CAACO,QAAQ,CAAC,KAAIC,mBAAS,EAACF,SAAS,CAAC,CAAC;IAEtC,MAAMG,QAAQ,GAAG,KAAIC,gBAAQ,EAACtC,MAAM,EAAE4B,GAAG,CAAC;IAC1C,MAAMW,SAAS,GAAG,KAAIC,sBAAS,EAACzC,SAAS,EAAE+B,QAAQ,EAAEC,KAAK,CAAC;IAC3D,MAAMU,WAAW,GAAG,KAAIC,eAAQ,EAAC1C,MAAM,EAAEuC,SAAS,CAAC;IACnD,MAAMI,cAAc,GAAG,KAAIC,2BAAc,EAAC5C,MAAM,EAAE4B,GAAG,CAAC;IACtD;IACA,IAAI7B,SAAS,EAAE;MACbE,OAAO,CAACkC,QAAQ,CAAC,CAACE,QAAQ,EAAEI,WAAW,EAAEE,cAAc,CAAC,CAAC;IAC3D;IAEA,OAAOT,SAAS;EAClB;AACF;AAAC;AAAA,gCAzFYrC,aAAa,kBAqDF,CACpBgD,gBAAS,EACTC,oBAAe,EACfC,sBAAY,EACZC,wBAAa,EACbC,kBAAa,EACbC,mBAAc,EACdC,gBAAW,EACXC,kBAAa,CACd;AAAA,gCA9DUvD,aAAa,aA+DPwD,kBAAW;AA4B9BpB,4BAAe,CAACqB,UAAU,CAACzD,aAAa,CAAC;AAAC,eAE3BA,aAAa;AAAA"}
@@ -1 +1 @@
1
- {"version":3,"names":["_prettyTime","data","_interopRequireDefault","require","CLIRoute","constructor","logger","cli","_defineProperty2","default","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","exports"],"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,SAAAA,YAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,WAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMG,QAAQ,CAAkB;EACrCC,WAAWA,CAASC,MAAc,EAAUC,GAAY,EAAE;IAAA,KAAtCD,MAAc,GAAdA,MAAc;IAAA,KAAUC,GAAY,GAAZA,GAAY;IAAA,IAAAC,gBAAA,GAAAC,OAAA,kBAE/C,MAAM;IAAA,IAAAD,gBAAA,GAAAC,OAAA,iBACP,WAAW;IAAA,IAAAD,gBAAA,GAAAC,OAAA,uBAEL,CACZ,OAAOC,GAAY,EAAEC,GAAa,EAAEC,IAAI,KAAK;MAC3C,IAAI,CAACN,MAAM,CAACO,KAAK,CAAE,+BAA8BH,GAAG,CAACI,MAAM,CAACC,GAAI,EAAC,CAAC;MAClE,IAAI;QACF,MAAMC,OAAO,GAAG,IAAI,CAACT,GAAG,CAACU,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,CAACtB,MAAM,CAACuB,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,CAAC,CAAC;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,CAACxB,MAAM,CAAC8B,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,CAAC/B,MAAM,CAACgC,KAAK,CAAE,YAAW5B,GAAG,CAACI,MAAM,CAACC,GAAI,cAAa,EAAEsB,GAAG,CAAC;QAChE,IAAI,CAAC/B,MAAM,CAACiC,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;AAACI,OAAA,CAAArC,QAAA,GAAAA,QAAA"}
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 +1 @@
1
- {"version":3,"names":["_prettyTime","data","_interopRequireDefault","require","IDERoute","constructor","logger","apiForIDE","_defineProperty2","default","req","res","debug","params","method","Error","body","args","console","length","startTask","process","hrtime","result","duration","prettyTime","consoleSuccess","json","err","error","consoleFailure","message","status","jsonp","exports"],"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,SAAAA,YAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,WAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMG,QAAQ,CAAkB;EACrCC,WAAWA,CAASC,MAAc,EAAUC,SAAoB,EAAE;IAAA,KAA9CD,MAAc,GAAdA,MAAc;IAAA,KAAUC,SAAoB,GAApBA,SAAoB;IAAA,IAAAC,gBAAA,GAAAC,OAAA,kBAEvD,MAAM;IAAA,IAAAD,gBAAA,GAAAC,OAAA,iBACP,cAAc;IAAA,IAAAD,gBAAA,GAAAC,OAAA,uBAER,CACZ,OAAOC,GAAY,EAAEC,GAAa,KAAK;MACrC,IAAI,CAACL,MAAM,CAACM,KAAK,CAAE,4BAA2BF,GAAG,CAACG,MAAM,CAACC,MAAO,EAAC,CAAC;MAClE,IAAI;QACF,IAAI,CAAC,IAAI,CAACP,SAAS,CAACG,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,CAACV,MAAM,CAACY,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,CAAC,CAAC;QAClC,MAAMC,MAAM,GAAG,MAAM,IAAI,CAAChB,SAAS,CAACG,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,CAACd,MAAM,CAACoB,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,CAACtB,MAAM,CAACuB,KAAK,CAAE,iBAAgBnB,GAAG,CAACG,MAAM,CAACC,MAAO,aAAY,EAAEc,GAAG,CAAC;QACvE,IAAI,CAACtB,MAAM,CAACwB,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;AAACG,OAAA,CAAA9B,QAAA,GAAAA,QAAA"}
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/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["_apiServer","data","require","_default","ApiServerAspect","exports","default"],"sources":["index.ts"],"sourcesContent":["import { ApiServerAspect } from './api-server.aspect';\n\nexport type { ApiServerMain } from './api-server.main.runtime';\nexport default ApiServerAspect;\nexport { ApiServerAspect };\n"],"mappings":";;;;;;;;;;;;AAAA,SAAAA,WAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,UAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAsD,IAAAE,QAAA,GAGvCC,4BAAe;AAAAC,OAAA,CAAAC,OAAA,GAAAH,QAAA"}
1
+ {"version":3,"names":["ApiServerAspect"],"sources":["index.ts"],"sourcesContent":["import { ApiServerAspect } from './api-server.aspect';\n\nexport type { ApiServerMain } from './api-server.main.runtime';\nexport default ApiServerAspect;\nexport { ApiServerAspect };\n"],"mappings":";;;;;;;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAAsD,eAGvCA,4BAAe;AAAA"}
@@ -1 +1 @@
1
- {"version":3,"names":["ServerCmd","constructor","apiServer","_defineProperty2","default","report","args","options","runApiServer","exports"],"sources":["server.cmd.ts"],"sourcesContent":["// eslint-disable-next-line max-classes-per-file\nimport { Command, CommandOptions } from '@teambit/cli';\nimport { ApiServerMain } from './api-server.main.runtime';\n\nexport class ServerCmd implements Command {\n name = 'server';\n description = 'EXPERIMENTAL. communicate with bit cli program via http requests';\n alias = '';\n commands: Command[] = [];\n group = 'general';\n options = [['p', 'port [port]', 'port to run the server on']] as CommandOptions;\n\n constructor(private apiServer: ApiServerMain) {}\n\n async report(args, options: { port: number }): Promise<string> {\n await this.apiServer.runApiServer(options);\n return 'server is running successfully'; // should never get here, the previous line is blocking\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;AAAA;;AAIO,MAAMA,SAAS,CAAoB;EAQxCC,WAAWA,CAASC,SAAwB,EAAE;IAAA,KAA1BA,SAAwB,GAAxBA,SAAwB;IAAA,IAAAC,gBAAA,GAAAC,OAAA,gBAPrC,QAAQ;IAAA,IAAAD,gBAAA,GAAAC,OAAA,uBACD,kEAAkE;IAAA,IAAAD,gBAAA,GAAAC,OAAA,iBACxE,EAAE;IAAA,IAAAD,gBAAA,GAAAC,OAAA,oBACY,EAAE;IAAA,IAAAD,gBAAA,GAAAC,OAAA,iBAChB,SAAS;IAAA,IAAAD,gBAAA,GAAAC,OAAA,mBACP,CAAC,CAAC,GAAG,EAAE,aAAa,EAAE,2BAA2B,CAAC,CAAC;EAEd;EAE/C,MAAMC,MAAMA,CAACC,IAAI,EAAEC,OAAyB,EAAmB;IAC7D,MAAM,IAAI,CAACL,SAAS,CAACM,YAAY,CAACD,OAAO,CAAC;IAC1C,OAAO,gCAAgC,CAAC,CAAC;EAC3C;AACF;AAACE,OAAA,CAAAT,SAAA,GAAAA,SAAA"}
1
+ {"version":3,"names":["ServerCmd","constructor","apiServer","report","args","options","runApiServer"],"sources":["server.cmd.ts"],"sourcesContent":["// eslint-disable-next-line max-classes-per-file\nimport { Command, CommandOptions } from '@teambit/cli';\nimport { ApiServerMain } from './api-server.main.runtime';\n\nexport class ServerCmd implements Command {\n name = 'server';\n description = 'EXPERIMENTAL. communicate with bit cli program via http requests';\n alias = '';\n commands: Command[] = [];\n group = 'general';\n options = [['p', 'port [port]', 'port to run the server on']] as CommandOptions;\n\n constructor(private apiServer: ApiServerMain) {}\n\n async report(args, options: { port: number }): Promise<string> {\n await this.apiServer.runApiServer(options);\n return 'server is running successfully'; // should never get here, the previous line is blocking\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;AAAA;;AAIO,MAAMA,SAAS,CAAoB;EAQxCC,WAAW,CAASC,SAAwB,EAAE;IAAA,KAA1BA,SAAwB,GAAxBA,SAAwB;IAAA,8CAPrC,QAAQ;IAAA,qDACD,kEAAkE;IAAA,+CACxE,EAAE;IAAA,kDACY,EAAE;IAAA,+CAChB,SAAS;IAAA,iDACP,CAAC,CAAC,GAAG,EAAE,aAAa,EAAE,2BAA2B,CAAC,CAAC;EAEd;EAE/C,MAAMC,MAAM,CAACC,IAAI,EAAEC,OAAyB,EAAmB;IAC7D,MAAM,IAAI,CAACH,SAAS,CAACI,YAAY,CAACD,OAAO,CAAC;IAC1C,OAAO,gCAAgC,CAAC,CAAC;EAC3C;AACF;AAAC"}
@@ -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","_defineProperty2","default","request","debug","params","headers","Connection","writeHead","clientId","Date","now","newClient","id","push","on","filter","exports"],"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,mBAAmBA,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,WAAWA,CAASC,MAAc,EAAUC,GAAY,EAAE;IAAA,KAAtCD,MAAc,GAAdA,MAAc;IAAA,KAAUC,GAAY,GAAZA,GAAY;IAAA,IAAAC,gBAAA,GAAAC,OAAA,kBAE/C,KAAK;IAAA,IAAAD,gBAAA,GAAAC,OAAA,iBACN,aAAa;IAAA,IAAAD,gBAAA,GAAAC,OAAA,uBAEP,CACZ,OAAOC,OAAgB,EAAEV,QAAkB,KAAK;MAC9C,IAAI,CAACM,MAAM,CAACK,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;MACDd,QAAQ,CAACe,SAAS,CAAC,GAAG,EAAEF,OAAO,CAAC;MAEhC,MAAMG,QAAQ,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC;MAE3B,MAAMC,SAAS,GAAG;QAChBC,EAAE,EAAEJ,QAAQ;QACZhB;MACF,CAAC;MAEDN,OAAO,CAAC2B,IAAI,CAACF,SAAS,CAAC;MAEvBT,OAAO,CAACY,EAAE,CAAC,OAAO,EAAE,MAAM;QACxB,IAAI,CAAChB,MAAM,CAACK,KAAK,CAAE,GAAEK,QAAS,wBAAuB,CAAC;QACtDtB,OAAO,GAAGA,OAAO,CAAC6B,MAAM,CAAExB,MAAM,IAAKA,MAAM,CAACqB,EAAE,KAAKJ,QAAQ,CAAC;MAC9D,CAAC,CAAC;IACJ,CAAC,CACF;EA7B0D;AA8B7D;AAACQ,OAAA,CAAApB,cAAA,GAAAA,cAAA"}
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"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/api-server",
3
- "version": "0.0.122",
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.122"
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.682",
19
- "@teambit/snapping": "0.0.425",
20
- "@teambit/workspace": "0.0.1110",
21
- "@teambit/cli": "0.0.742",
22
- "@teambit/component": "0.0.1110",
23
- "@teambit/express": "0.0.840",
24
- "@teambit/logger": "0.0.835",
25
- "@teambit/watcher": "0.0.122"
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.522",
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
  },