@teambit/typescript 0.0.1067 → 0.0.1069
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/{preview-1685418569798.js → preview-1685613946070.js} +2 -2
- package/dist/schema-extractor-context.js +12 -7
- package/dist/schema-extractor-context.js.map +1 -1
- package/dist/typescript.extractor.d.ts +3 -1
- package/dist/typescript.extractor.js +9 -8
- package/dist/typescript.extractor.js.map +1 -1
- package/dist/typescript.main.runtime.d.ts +6 -3
- package/dist/typescript.main.runtime.js +15 -6
- package/dist/typescript.main.runtime.js.map +1 -1
- package/package-tar/teambit-typescript-0.0.1069.tgz +0 -0
- package/package.json +20 -19
- package/package-tar/teambit-typescript-0.0.1067.tgz +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.typescript_typescript@0.0.
|
|
2
|
-
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.typescript_typescript@0.0.
|
|
1
|
+
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.typescript_typescript@0.0.1069/dist/typescript.composition.js';
|
|
2
|
+
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.typescript_typescript@0.0.1069/dist/typescript.docs.mdx';
|
|
3
3
|
|
|
4
4
|
export const compositions = [compositions_0];
|
|
5
5
|
export const overview = [overview_0];
|
|
@@ -263,18 +263,23 @@ class SchemaExtractorContext {
|
|
|
263
263
|
visitTypeDefinition() {}
|
|
264
264
|
findFileInComponent(filePath) {
|
|
265
265
|
const filePathToCompare = (0, _utils().pathNormalizeToLinux)(filePath);
|
|
266
|
+
const fileNameToCompare = (0, _path().basename)(filePathToCompare); // Get the filename from the filePath
|
|
267
|
+
|
|
266
268
|
const matchingFile = this.component.filesystem.files.find(file => {
|
|
267
269
|
const currentFilePath = (0, _utils().pathNormalizeToLinux)(file.path);
|
|
270
|
+
const currentFileName = (0, _path().basename)(currentFilePath); // Get the filename from the current file path
|
|
271
|
+
|
|
268
272
|
// TODO: fix this line to support further extensions.
|
|
269
|
-
if (currentFilePath.includes(
|
|
273
|
+
if (currentFileName === fileNameToCompare || currentFilePath.includes(fileNameToCompare)) {
|
|
270
274
|
const strings = ['ts', 'tsx', 'js', 'jsx'].map(format => {
|
|
271
|
-
if (
|
|
272
|
-
return `${
|
|
275
|
+
if (fileNameToCompare.endsWith(`.${format}`)) return fileNameToCompare;
|
|
276
|
+
return `${fileNameToCompare}.${format}`;
|
|
273
277
|
});
|
|
274
|
-
const matchesWithExtension = !!strings.find(string => string ===
|
|
278
|
+
const matchesWithExtension = !!strings.find(string => string === currentFileName);
|
|
275
279
|
// check if it is an index file export
|
|
276
280
|
const matchesIndexFile = !matchesWithExtension && ['ts', 'js'].some(format => {
|
|
277
|
-
|
|
281
|
+
const indexFilePath = (0, _path().join)(filePathToCompare, `index.${format}`);
|
|
282
|
+
return (0, _utils().pathNormalizeToLinux)(indexFilePath) === currentFilePath;
|
|
278
283
|
});
|
|
279
284
|
return matchesWithExtension || matchesIndexFile;
|
|
280
285
|
}
|
|
@@ -318,14 +323,14 @@ class SchemaExtractorContext {
|
|
|
318
323
|
}
|
|
319
324
|
async getFilePathByNode(node) {
|
|
320
325
|
const def = await this.tsserver.getDefinition(this.getPath(node), this.getLocation(node));
|
|
321
|
-
const firstDef = (0, _lodash().head)(def.body);
|
|
326
|
+
const firstDef = (0, _lodash().head)(def === null || def === void 0 ? void 0 : def.body);
|
|
322
327
|
return firstDef === null || firstDef === void 0 ? void 0 : firstDef.file;
|
|
323
328
|
}
|
|
324
329
|
async definitionInfo(node) {
|
|
325
330
|
const location = this.getLocation(node);
|
|
326
331
|
const filePath = this.getPath(node);
|
|
327
332
|
const def = await this.tsserver.getDefinition(filePath, location);
|
|
328
|
-
const firstDef = (0, _lodash().head)(def.body);
|
|
333
|
+
const firstDef = (0, _lodash().head)(def === null || def === void 0 ? void 0 : def.body);
|
|
329
334
|
return firstDef;
|
|
330
335
|
}
|
|
331
336
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["SchemaExtractorContext","mainFile","pathNormalizeToLinux","getPathRelativeToComponent","component","path","identifiers","_identifiers","internalIdentifiers","_internalIdentifiers","computed","_computed","mainFileIdentifierKey","getIdentifierKey","mainModuleIdentifiers","get","constructor","tsserver","extractor","componentDeps","formatter","Map","getComputedNodeKey","filePath","line","character","getIdentifierKeyForNode","node","getSourceFile","fileName","setComputed","location","key","set","setIdentifiers","setInternalIdentifiers","existing","uniqueIdentifiers","uniqBy","concat","k","aliasId","id","IdentifierList","computeSchema","getLocation","existingComputedSchema","computedSchema","targetSourceFile","absolutePath","sourceFile","position","getLineAndCharacterOfPosition","getStart","getLocationAsString","basePath","filesystem","files","base","relative","getSignature","getSignatureHelp","getPath","getPosition","offset","getPositionOfLineAndCharacter","getQuickInfo","err","message","Error","getQuickInfoDisplayString","quickInfo","body","displayString","typeDefinition","getTypeDefinition","visitTypeDefinition","findFileInComponent","filePathToCompare","matchingFile","find","file","currentFilePath","includes","strings","map","format","endsWith","matchesWithExtension","string","matchesIndexFile","some","parsePackageNameFromPath","parts","split","length","lastPart","replace","sep","pkgParts","startsWith","pkgName","getSourceFileInsideComponent","parseSourceFile","getSourceFileFromNode","getFilePathByNode","undefined","def","getDefinition","firstDef","head","definitionInfo","definition","startPosition","start","pos","nodeAtPos","getTokenAtPosition","visitDefinition","getTypeRefForExternalNode","visit","parent","kind","SyntaxKind","Identifier","SourceFile","references","isExported","isFromComponent","getFileIdentifiers","exportDec","specifierPathStr","ExportDeclaration","moduleSpecifier","getText","specifierPath","substring","absPath","resolve","getIdentifiers","getFileExports","filter","identifier","ExportIdentifier","isExportIdentifier","getFileInternals","computeIdentifiers","headTypeDefinition","unknownExactType","typeStr","isTypeStrFromQuickInfo","InferenceTypeSchema","info","type","parseTypeFromQuickInfo","isDefInSameLocation","loc","resolveType","internalRef","getTypeRef","ts","isTypeNode","getTypeRefForExternalPath","definitionNode","definitionNodeName","definitionInternalRef","transformer","getTransformer","schemaNode","getCompIdByPkgName","dep","packageName","componentId","nodeIdentifierKey","nodeIdentifierList","mainIdentifierList","nodeIdentifier","mainIdentifier","parsedNodeIdentifier","parsedMainIdentifier","isExportedFromMain","resolveTypeRef","sourceFilePath","TypeRefSchema","isRelativeImport","compIdByPkg","compIdByPath","getComponentIDByPath","relativeDir","lastIndexOf","absFilePath","compFilePath","idKey","exportedIdentifier","i","jsDocToDocSchema","canHaveJsDoc","jsDocs","getJsDoc","jsDoc","comment","getTextOfJSDocComment","tags","pMapSeries","tag","tagParser","DocSchema"],"sources":["schema-extractor-context.ts"],"sourcesContent":["import { TsserverClient } from '@teambit/ts-server';\nimport { getTokenAtPosition, canHaveJsDoc, getJsDoc } from 'tsutils';\nimport ts, { ExportAssignment, getTextOfJSDocComment, ExportDeclaration, Node, SyntaxKind, TypeNode } from 'typescript';\nimport { head, uniqBy } from 'lodash';\n// @ts-ignore david we should figure fix this.\n// eslint-disable-next-line import/no-unresolved\nimport protocol from 'typescript/lib/protocol';\nimport { pathNormalizeToLinux } from '@teambit/legacy/dist/utils';\nimport { resolve, sep, relative } from 'path';\nimport { Component, ComponentID } from '@teambit/component';\nimport {\n TypeRefSchema,\n SchemaNode,\n InferenceTypeSchema,\n Location,\n DocSchema,\n} from '@teambit/semantics.entities.semantic-schema';\nimport isRelativeImport from '@teambit/legacy/dist/utils/is-relative-import';\nimport { ComponentDependency } from '@teambit/dependency-resolver';\nimport { Formatter } from '@teambit/formatter';\nimport pMapSeries from 'p-map-series';\nimport { TypeScriptExtractor } from './typescript.extractor';\nimport { IdentifierList } from './identifier-list';\nimport { parseTypeFromQuickInfo } from './transformers/utils/parse-type-from-quick-info';\nimport { tagParser } from './transformers/utils/jsdoc-to-doc-schema';\nimport { Identifier } from './identifier';\nimport { ExportIdentifier } from './export-identifier';\n\nexport class SchemaExtractorContext {\n /**\n * list of all declared identifiers (exported and internal) by filename\n */\n private _identifiers = new Map<string, IdentifierList>();\n private _internalIdentifiers = new Map<string, IdentifierList>();\n\n /**\n * computed nodes by filename and (position (line:character))\n */\n private _computed = new Map<string, SchemaNode>();\n\n get mainFile() {\n return pathNormalizeToLinux(this.getPathRelativeToComponent(this.component.mainFile.path));\n }\n\n get identifiers() {\n return this._identifiers;\n }\n\n get internalIdentifiers() {\n return this._internalIdentifiers;\n }\n\n get computed() {\n return this._computed;\n }\n\n get mainFileIdentifierKey() {\n const mainFile = this.component.mainFile;\n return this.getIdentifierKey(mainFile.path);\n }\n\n get mainModuleIdentifiers() {\n return this.identifiers.get(this.mainFileIdentifierKey);\n }\n\n constructor(\n readonly tsserver: TsserverClient,\n readonly component: Component,\n readonly extractor: TypeScriptExtractor,\n readonly componentDeps: ComponentDependency[],\n readonly formatter?: Formatter\n ) {}\n\n getComputedNodeKey({ filePath, line, character }: Location) {\n return `${filePath}:${line}:${character}`;\n }\n\n getIdentifierKeyForNode(node: Node) {\n const filePath = node.getSourceFile().fileName;\n return this.getIdentifierKey(filePath);\n }\n\n getIdentifierKey(filePath: string) {\n return pathNormalizeToLinux(filePath);\n }\n\n setComputed(node: SchemaNode) {\n const { location } = node;\n const key = this.getComputedNodeKey(location);\n this.computed.set(key, node);\n }\n\n setIdentifiers(filePath: string, identifiers: IdentifierList) {\n this._identifiers.set(this.getIdentifierKey(filePath), identifiers);\n }\n\n setInternalIdentifiers(filePath: string, identifiers: IdentifierList) {\n const existing = this._internalIdentifiers.get(filePath);\n if (!existing) {\n this._internalIdentifiers.set(filePath, identifiers);\n } else {\n const uniqueIdentifiers = uniqBy(existing.identifiers.concat(identifiers.identifiers), (k) => k.aliasId || k.id);\n this._internalIdentifiers.set(filePath, new IdentifierList(uniqueIdentifiers));\n }\n }\n\n async computeSchema(node: Node) {\n const location = this.getLocation(node);\n const key = this.getComputedNodeKey(location);\n const existingComputedSchema = this.computed.get(key);\n\n if (existingComputedSchema) {\n return existingComputedSchema;\n }\n\n const computedSchema = await this.extractor.computeSchema(node, this);\n this.setComputed(computedSchema);\n return computedSchema;\n }\n\n /**\n * returns the location of a node in a source file.\n */\n getLocation(node: Node, targetSourceFile?: ts.SourceFile, absolutePath = false): Location {\n const sourceFile = targetSourceFile || node.getSourceFile();\n const position = sourceFile.getLineAndCharacterOfPosition(node.getStart());\n const line = position.line + 1;\n const character = position.character + 1;\n const filePath = absolutePath ? sourceFile.fileName : this.getPathRelativeToComponent(sourceFile.fileName);\n\n return {\n filePath: pathNormalizeToLinux(filePath),\n line,\n character,\n };\n }\n\n getLocationAsString(node: Node): string {\n const location = this.getLocation(node);\n return `${node.getSourceFile().fileName}, line: ${location.line}, character: ${location.character}`;\n }\n\n getPathRelativeToComponent(filePath: string): string {\n const basePath = this.component.filesystem.files[0].base;\n return relative(basePath, filePath);\n }\n\n /**\n * returns a signature for a node.\n */\n async getSignature(node: Node) {\n return this.tsserver.getSignatureHelp(this.getPath(node), this.getLocation(node));\n }\n\n /**\n * get the position for the tsserver.\n */\n getPosition(sourceFile: ts.SourceFile, line: number, offset: number): number {\n return sourceFile.getPositionOfLineAndCharacter(line - 1, offset - 1);\n }\n\n /**\n * get the path for a source file.\n */\n getPath(node: Node) {\n const sourceFile = node.getSourceFile();\n return sourceFile.fileName;\n }\n\n async getQuickInfo(node: Node) {\n const location = this.getLocation(node);\n try {\n return await this.tsserver.getQuickInfo(this.getPath(node), location);\n } catch (err: any) {\n if (err.message === 'No content available.') {\n throw new Error(\n `unable to get quickinfo data from tsserver at ${this.getPath(node)}, Ln ${location.line}, Col ${\n location.character\n }`\n );\n }\n throw err;\n }\n }\n\n async getQuickInfoDisplayString(node: Node): Promise<string> {\n const quickInfo = await this.getQuickInfo(node);\n return quickInfo?.body?.displayString || '';\n }\n\n /**\n * returns the type definition for a type.\n */\n typeDefinition(node: Node) {\n return this.tsserver.getTypeDefinition(this.getPath(node), this.getLocation(node));\n }\n\n visitTypeDefinition() {}\n\n findFileInComponent(filePath: string) {\n const filePathToCompare = pathNormalizeToLinux(filePath);\n const matchingFile = this.component.filesystem.files.find((file) => {\n const currentFilePath = pathNormalizeToLinux(file.path);\n // TODO: fix this line to support further extensions.\n if (currentFilePath.includes(filePathToCompare)) {\n const strings = ['ts', 'tsx', 'js', 'jsx'].map((format) => {\n if (filePathToCompare.endsWith(`.${format}`)) return filePathToCompare;\n\n return `${filePathToCompare}.${format}`;\n });\n\n const matchesWithExtension = !!strings.find((string) => string === currentFilePath);\n // check if it is an index file export\n const matchesIndexFile =\n !matchesWithExtension &&\n ['ts', 'js'].some((format) => {\n return `${filePathToCompare}/index.${format}` === currentFilePath;\n });\n\n return matchesWithExtension || matchesIndexFile;\n }\n\n return false;\n });\n\n return matchingFile;\n }\n\n private parsePackageNameFromPath(path: string) {\n const parts = path.split('node_modules');\n\n if (parts.length === 1) {\n return path;\n }\n\n const lastPart = parts[parts.length - 1].replace(sep, '');\n const pkgParts = lastPart.split('/');\n if (lastPart.startsWith('@')) {\n // scoped package\n return `${pkgParts[0]}/${pkgParts[1]}`;\n }\n const pkgName = pkgParts[0];\n if (pkgName === 'typescript') {\n // it's a built-in type, such as \"string\".\n return '';\n }\n return pkgName;\n }\n\n /**\n * return the file if part of the component.\n * otherwise, a reference to the target package and the type name.\n */\n getSourceFileInsideComponent(filePath: string) {\n const file = this.findFileInComponent(filePath);\n return file && this.extractor.parseSourceFile(file);\n }\n\n async getSourceFileFromNode(node: Node) {\n const filePath = await this.getFilePathByNode(node);\n if (!filePath) {\n return undefined;\n }\n return this.getSourceFileInsideComponent(filePath);\n }\n\n async getFilePathByNode(node: Node) {\n const def = await this.tsserver.getDefinition(this.getPath(node), this.getLocation(node));\n\n const firstDef = head(def.body);\n return firstDef?.file;\n }\n\n async definitionInfo(node: Node): Promise<protocol.DefinitionInfo | undefined> {\n const location = this.getLocation(node);\n const filePath = this.getPath(node);\n\n const def = await this.tsserver.getDefinition(filePath, location);\n\n const firstDef = head(def.body);\n\n return firstDef;\n }\n\n /**\n * get a definition for a given node.\n */\n async definition(definition: protocol.DefinitionInfo): Promise<Node | undefined> {\n const startPosition = definition.start;\n const sourceFile = this.getSourceFileInsideComponent(definition.file);\n if (!sourceFile) {\n // it might be an external reference, cant get the node\n return undefined;\n }\n const pos = this.getPosition(sourceFile, startPosition.line, startPosition.offset);\n const nodeAtPos = getTokenAtPosition(sourceFile, pos);\n return nodeAtPos;\n }\n\n /**\n * visit a definition for node - e.g. return it's schema.\n */\n async visitDefinition(node: Node): Promise<SchemaNode | undefined> {\n const definitionInfo = await this.definitionInfo(node);\n if (!definitionInfo) {\n return undefined;\n }\n\n const definition = await this.definition(definitionInfo);\n if (!definition) {\n return this.getTypeRefForExternalNode(node);\n }\n\n return this.visit(definition.parent);\n }\n\n async visit(node: Node): Promise<SchemaNode> {\n if (node.kind === SyntaxKind.Identifier && node.parent.parent.kind !== SyntaxKind.SourceFile) {\n return this.visit(node.parent);\n }\n return this.extractor.computeSchema(node, this);\n }\n\n references() {}\n\n isExported() {}\n\n isFromComponent() {}\n\n async getFileIdentifiers(exportDec: ExportDeclaration | ExportAssignment) {\n const file = exportDec.getSourceFile().fileName;\n const specifierPathStr =\n (exportDec.kind === SyntaxKind.ExportDeclaration && exportDec.moduleSpecifier?.getText()) || '';\n const specifierPath = specifierPathStr.substring(1, specifierPathStr.length - 1);\n const absPath = resolve(file, '..', specifierPath);\n const sourceFile = this.getSourceFileInsideComponent(absPath);\n if (!sourceFile) return [];\n return this.getIdentifiers(sourceFile);\n }\n\n async getFileExports(exportDec: ExportDeclaration | ExportAssignment) {\n const identifiers = await this.getFileIdentifiers(exportDec);\n return identifiers.filter((identifier) => ExportIdentifier.isExportIdentifier(identifier));\n }\n\n async getFileInternals(exportDec: ExportDeclaration | ExportAssignment) {\n const identifiers = await this.getFileIdentifiers(exportDec);\n return identifiers.filter((identifier) => !ExportIdentifier.isExportIdentifier(identifier));\n }\n\n getIdentifiers(node: Node) {\n return this.extractor.computeIdentifiers(node, this);\n }\n\n /**\n * tsserver has two different calls: \"definition\" and \"typeDefinition\".\n * normally, we need the \"typeDefinition\" to get the type data of a node.\n * sometimes, it has no data, for example when the node is of type TypeReference, and then using \"definition\" is\n * helpful. (couldn't find a rule when to use each one. e.g. \"VariableDeclaration\" sometimes has data only in\n * \"definition\" but it's not clear when/why).\n */\n async getDefinition(node: Node) {\n const typeDefinition = await this.typeDefinition(node);\n const headTypeDefinition = head(typeDefinition?.body);\n if (headTypeDefinition) {\n return headTypeDefinition;\n }\n const definition = await this.tsserver.getDefinition(node.getSourceFile().fileName, this.getLocation(node));\n return head(definition?.body);\n }\n\n // when we can't figure out the component/package/type of this node, we'll use the typeStr as the type.\n private async unknownExactType(node: Node, location: Location, typeStr = 'any', isTypeStrFromQuickInfo = true) {\n if (isTypeStrFromQuickInfo) {\n return new InferenceTypeSchema(location, typeStr || 'any');\n }\n const info = await this.getQuickInfo(node);\n const type = parseTypeFromQuickInfo(info);\n return new InferenceTypeSchema(location, type, typeStr);\n }\n\n // the reason for this check is to avoid infinite loop when calling `this.jump` with the same file+location\n private isDefInSameLocation(node: Node, definition: protocol.FileSpanWithContext) {\n if (definition.file !== node.getSourceFile().fileName) {\n return false;\n }\n const loc = this.getLocation(node);\n\n return loc.line === definition.start.line && loc.character === definition.start.offset;\n }\n\n /**\n * resolve a type by a node and its identifier.\n */\n async resolveType(\n node: Node & { type?: TypeNode },\n typeStr: string,\n isTypeStrFromQuickInfo = true\n ): Promise<SchemaNode> {\n const location = this.getLocation(node);\n\n // check if internal ref with typeInfo\n const internalRef = await this.getTypeRef(typeStr, this.getIdentifierKeyForNode(node), location);\n\n if (internalRef) return internalRef;\n\n // if a node has \"type\" prop, it has the type data of the node. this normally happens when the code has the type\n // explicitly, e.g. `const str: string` vs implicitly `const str = 'some-string'`, which the node won't have \"type\"\n if (node.type && ts.isTypeNode(node.type)) {\n return this.computeSchema(node.type);\n }\n\n const definition = await this.getDefinition(node);\n if (!definition) {\n return this.unknownExactType(node, location, typeStr, isTypeStrFromQuickInfo);\n }\n\n const file = this.findFileInComponent(definition.file);\n\n if (!file) return this.getTypeRefForExternalPath(typeStr, definition.file, location);\n\n if (this.isDefInSameLocation(node, definition)) {\n return this.unknownExactType(node, location, typeStr, isTypeStrFromQuickInfo);\n }\n\n const definitionNode = await this.definition(definition);\n\n if (!definitionNode) {\n return this.unknownExactType(node, location, typeStr, isTypeStrFromQuickInfo);\n }\n\n const definitionNodeName = definitionNode?.getText();\n\n // check if internal ref with definition info\n const definitionInternalRef = await this.getTypeRef(\n definitionNodeName,\n this.getIdentifierKeyForNode(definitionNode),\n location\n );\n\n if (definitionInternalRef) return definitionInternalRef;\n\n const transformer = this.extractor.getTransformer(definitionNode, this);\n\n if (transformer === undefined) {\n return this.unknownExactType(node, location, typeStr, isTypeStrFromQuickInfo);\n }\n const schemaNode = await this.visit(definitionNode);\n return schemaNode || this.unknownExactType(node, location, typeStr, isTypeStrFromQuickInfo);\n }\n\n private getCompIdByPkgName(pkgName: string): ComponentID | undefined {\n return this.componentDeps.find((dep) => dep.packageName === pkgName)?.componentId;\n }\n\n async getTypeRef(typeStr: string, filePath: string, location: Location): Promise<TypeRefSchema | undefined> {\n const nodeIdentifierKey = this.getIdentifierKey(filePath);\n const mainFileIdentifierKey = this.mainFileIdentifierKey;\n\n const nodeIdentifierList = this.identifiers.get(nodeIdentifierKey);\n const mainIdentifierList = this.identifiers.get(mainFileIdentifierKey);\n\n const nodeIdentifier = new Identifier(typeStr, nodeIdentifierKey);\n const mainIdentifier = new Identifier(typeStr, mainFileIdentifierKey);\n\n const parsedNodeIdentifier = nodeIdentifierList?.find(nodeIdentifier);\n const parsedMainIdentifier = mainIdentifierList?.find(mainIdentifier);\n const isExportedFromMain = parsedMainIdentifier && ExportIdentifier.isExportIdentifier(parsedMainIdentifier);\n\n if (!parsedNodeIdentifier) return undefined;\n\n const internalRef = !isExportedFromMain;\n\n if (internalRef) {\n this.setInternalIdentifiers(filePath, new IdentifierList([parsedNodeIdentifier]));\n }\n\n return this.resolveTypeRef(parsedNodeIdentifier, location, isExportedFromMain);\n }\n\n async resolveTypeRef(\n identifier: Identifier,\n location: Location,\n isExportedFromMain?: boolean\n ): Promise<TypeRefSchema> {\n const sourceFilePath = identifier.sourceFilePath;\n\n if (!sourceFilePath || isExportedFromMain) {\n return new TypeRefSchema(\n location,\n identifier.id,\n undefined,\n undefined,\n !isExportedFromMain ? this.getPathRelativeToComponent(identifier.filePath) : undefined\n );\n }\n\n if (!isRelativeImport(sourceFilePath)) {\n const pkgName = this.parsePackageNameFromPath(sourceFilePath);\n const compIdByPkg = this.getCompIdByPkgName(pkgName);\n\n const compIdByPath = await this.extractor.getComponentIDByPath(sourceFilePath);\n\n if (compIdByPath) {\n return new TypeRefSchema(location, identifier.id, compIdByPath);\n }\n\n if (compIdByPkg) {\n return new TypeRefSchema(location, identifier.id, compIdByPkg);\n }\n\n // package without comp id\n return new TypeRefSchema(location, identifier.id, undefined, pkgName);\n }\n\n const relativeDir = identifier.filePath.substring(0, identifier.filePath.lastIndexOf('/'));\n const absFilePath = resolve(relativeDir, sourceFilePath);\n const compFilePath = this.findFileInComponent(absFilePath);\n\n if (!compFilePath) {\n // @todo handle this better\n throw new Error(\n `cannot find file in component \\n absolute path: ${absFilePath}\\n source file path ${sourceFilePath}\\n identifier file path ${identifier.filePath} \\n relative dir ${relativeDir}`\n );\n return new TypeRefSchema(location, identifier.id);\n }\n\n const idKey = this.getIdentifierKey(compFilePath?.path);\n\n // if re exported from a file, recurse until definition\n const exportedIdentifier = (this.identifiers.get(idKey)?.identifiers || []).find((i) => i.id === identifier.id);\n\n if (exportedIdentifier) {\n return this.resolveTypeRef(exportedIdentifier, location, isExportedFromMain);\n }\n\n return new TypeRefSchema(location, identifier.id);\n }\n\n async getTypeRefForExternalNode(node: Node): Promise<TypeRefSchema> {\n const info = await this.getQuickInfo(node);\n const typeStr = parseTypeFromQuickInfo(info);\n const location = this.getLocation(node);\n const filePath = this.getPath(node);\n return this.getTypeRefForExternalPath(typeStr, filePath, location);\n }\n\n async getTypeRefForExternalPath(typeStr: string, filePath: string, location: Location): Promise<TypeRefSchema> {\n const compIdByPath = await this.extractor.getComponentIDByPath(filePath);\n if (compIdByPath) {\n return new TypeRefSchema(location, typeStr, compIdByPath);\n }\n const pkgName = this.parsePackageNameFromPath(filePath);\n const compIdByPkg = this.getCompIdByPkgName(pkgName);\n if (compIdByPkg) {\n return new TypeRefSchema(location, typeStr, compIdByPkg);\n }\n return new TypeRefSchema(location, typeStr, undefined, pkgName);\n }\n\n async jsDocToDocSchema(node: Node): Promise<DocSchema | undefined> {\n if (!canHaveJsDoc(node)) {\n return undefined;\n }\n const jsDocs = getJsDoc(node);\n if (!jsDocs.length) {\n return undefined;\n }\n // not sure how common it is to have multiple JSDocs. never seen it before.\n // regardless, in typescript implementation of methods like `getJSDocDeprecatedTag()`, they use the first one. (`getFirstJSDocTag()`)\n const jsDoc = jsDocs[0];\n const location = this.getLocation(jsDoc);\n const comment = getTextOfJSDocComment(jsDoc.comment);\n const tags = jsDoc.tags ? await pMapSeries(jsDoc.tags, (tag) => tagParser(tag, this, this.formatter)) : undefined;\n return new DocSchema(location, jsDoc.getText(), comment, tags);\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["SchemaExtractorContext","mainFile","pathNormalizeToLinux","getPathRelativeToComponent","component","path","identifiers","_identifiers","internalIdentifiers","_internalIdentifiers","computed","_computed","mainFileIdentifierKey","getIdentifierKey","mainModuleIdentifiers","get","constructor","tsserver","extractor","componentDeps","formatter","Map","getComputedNodeKey","filePath","line","character","getIdentifierKeyForNode","node","getSourceFile","fileName","setComputed","location","key","set","setIdentifiers","setInternalIdentifiers","existing","uniqueIdentifiers","uniqBy","concat","k","aliasId","id","IdentifierList","computeSchema","getLocation","existingComputedSchema","computedSchema","targetSourceFile","absolutePath","sourceFile","position","getLineAndCharacterOfPosition","getStart","getLocationAsString","basePath","filesystem","files","base","relative","getSignature","getSignatureHelp","getPath","getPosition","offset","getPositionOfLineAndCharacter","getQuickInfo","err","message","Error","getQuickInfoDisplayString","quickInfo","body","displayString","typeDefinition","getTypeDefinition","visitTypeDefinition","findFileInComponent","filePathToCompare","fileNameToCompare","basename","matchingFile","find","file","currentFilePath","currentFileName","includes","strings","map","format","endsWith","matchesWithExtension","string","matchesIndexFile","some","indexFilePath","join","parsePackageNameFromPath","parts","split","length","lastPart","replace","sep","pkgParts","startsWith","pkgName","getSourceFileInsideComponent","parseSourceFile","getSourceFileFromNode","getFilePathByNode","undefined","def","getDefinition","firstDef","head","definitionInfo","definition","startPosition","start","pos","nodeAtPos","getTokenAtPosition","visitDefinition","getTypeRefForExternalNode","visit","parent","kind","SyntaxKind","Identifier","SourceFile","references","isExported","isFromComponent","getFileIdentifiers","exportDec","specifierPathStr","ExportDeclaration","moduleSpecifier","getText","specifierPath","substring","absPath","resolve","getIdentifiers","getFileExports","filter","identifier","ExportIdentifier","isExportIdentifier","getFileInternals","computeIdentifiers","headTypeDefinition","unknownExactType","typeStr","isTypeStrFromQuickInfo","InferenceTypeSchema","info","type","parseTypeFromQuickInfo","isDefInSameLocation","loc","resolveType","internalRef","getTypeRef","ts","isTypeNode","getTypeRefForExternalPath","definitionNode","definitionNodeName","definitionInternalRef","transformer","getTransformer","schemaNode","getCompIdByPkgName","dep","packageName","componentId","nodeIdentifierKey","nodeIdentifierList","mainIdentifierList","nodeIdentifier","mainIdentifier","parsedNodeIdentifier","parsedMainIdentifier","isExportedFromMain","resolveTypeRef","sourceFilePath","TypeRefSchema","isRelativeImport","compIdByPkg","compIdByPath","getComponentIDByPath","relativeDir","lastIndexOf","absFilePath","compFilePath","idKey","exportedIdentifier","i","jsDocToDocSchema","canHaveJsDoc","jsDocs","getJsDoc","jsDoc","comment","getTextOfJSDocComment","tags","pMapSeries","tag","tagParser","DocSchema"],"sources":["schema-extractor-context.ts"],"sourcesContent":["import { TsserverClient } from '@teambit/ts-server';\nimport { getTokenAtPosition, canHaveJsDoc, getJsDoc } from 'tsutils';\nimport ts, { ExportAssignment, getTextOfJSDocComment, ExportDeclaration, Node, SyntaxKind, TypeNode } from 'typescript';\nimport { head, uniqBy } from 'lodash';\n// @ts-ignore david we should figure fix this.\n// eslint-disable-next-line import/no-unresolved\nimport protocol from 'typescript/lib/protocol';\nimport { pathNormalizeToLinux } from '@teambit/legacy/dist/utils';\nimport { resolve, sep, relative, basename, join } from 'path';\nimport { Component, ComponentID } from '@teambit/component';\nimport {\n TypeRefSchema,\n SchemaNode,\n InferenceTypeSchema,\n Location,\n DocSchema,\n} from '@teambit/semantics.entities.semantic-schema';\nimport isRelativeImport from '@teambit/legacy/dist/utils/is-relative-import';\nimport { ComponentDependency } from '@teambit/dependency-resolver';\nimport { Formatter } from '@teambit/formatter';\nimport pMapSeries from 'p-map-series';\nimport { TypeScriptExtractor } from './typescript.extractor';\nimport { IdentifierList } from './identifier-list';\nimport { parseTypeFromQuickInfo } from './transformers/utils/parse-type-from-quick-info';\nimport { tagParser } from './transformers/utils/jsdoc-to-doc-schema';\nimport { Identifier } from './identifier';\nimport { ExportIdentifier } from './export-identifier';\n\nexport class SchemaExtractorContext {\n /**\n * list of all declared identifiers (exported and internal) by filename\n */\n private _identifiers = new Map<string, IdentifierList>();\n private _internalIdentifiers = new Map<string, IdentifierList>();\n\n /**\n * computed nodes by filename and (position (line:character))\n */\n private _computed = new Map<string, SchemaNode>();\n\n get mainFile() {\n return pathNormalizeToLinux(this.getPathRelativeToComponent(this.component.mainFile.path));\n }\n\n get identifiers() {\n return this._identifiers;\n }\n\n get internalIdentifiers() {\n return this._internalIdentifiers;\n }\n\n get computed() {\n return this._computed;\n }\n\n get mainFileIdentifierKey() {\n const mainFile = this.component.mainFile;\n return this.getIdentifierKey(mainFile.path);\n }\n\n get mainModuleIdentifiers() {\n return this.identifiers.get(this.mainFileIdentifierKey);\n }\n\n constructor(\n readonly tsserver: TsserverClient,\n readonly component: Component,\n readonly extractor: TypeScriptExtractor,\n readonly componentDeps: ComponentDependency[],\n readonly formatter?: Formatter\n ) {}\n\n getComputedNodeKey({ filePath, line, character }: Location) {\n return `${filePath}:${line}:${character}`;\n }\n\n getIdentifierKeyForNode(node: Node) {\n const filePath = node.getSourceFile().fileName;\n return this.getIdentifierKey(filePath);\n }\n\n getIdentifierKey(filePath: string) {\n return pathNormalizeToLinux(filePath);\n }\n\n setComputed(node: SchemaNode) {\n const { location } = node;\n const key = this.getComputedNodeKey(location);\n this.computed.set(key, node);\n }\n\n setIdentifiers(filePath: string, identifiers: IdentifierList) {\n this._identifiers.set(this.getIdentifierKey(filePath), identifiers);\n }\n\n setInternalIdentifiers(filePath: string, identifiers: IdentifierList) {\n const existing = this._internalIdentifiers.get(filePath);\n if (!existing) {\n this._internalIdentifiers.set(filePath, identifiers);\n } else {\n const uniqueIdentifiers = uniqBy(existing.identifiers.concat(identifiers.identifiers), (k) => k.aliasId || k.id);\n this._internalIdentifiers.set(filePath, new IdentifierList(uniqueIdentifiers));\n }\n }\n\n async computeSchema(node: Node) {\n const location = this.getLocation(node);\n const key = this.getComputedNodeKey(location);\n const existingComputedSchema = this.computed.get(key);\n if (existingComputedSchema) {\n return existingComputedSchema;\n }\n\n const computedSchema = await this.extractor.computeSchema(node, this);\n this.setComputed(computedSchema);\n return computedSchema;\n }\n\n /**\n * returns the location of a node in a source file.\n */\n getLocation(node: Node, targetSourceFile?: ts.SourceFile, absolutePath = false): Location {\n const sourceFile = targetSourceFile || node.getSourceFile();\n const position = sourceFile.getLineAndCharacterOfPosition(node.getStart());\n const line = position.line + 1;\n const character = position.character + 1;\n const filePath = absolutePath ? sourceFile.fileName : this.getPathRelativeToComponent(sourceFile.fileName);\n\n return {\n filePath: pathNormalizeToLinux(filePath),\n line,\n character,\n };\n }\n\n getLocationAsString(node: Node): string {\n const location = this.getLocation(node);\n return `${node.getSourceFile().fileName}, line: ${location.line}, character: ${location.character}`;\n }\n\n getPathRelativeToComponent(filePath: string): string {\n const basePath = this.component.filesystem.files[0].base;\n return relative(basePath, filePath);\n }\n\n /**\n * returns a signature for a node.\n */\n async getSignature(node: Node) {\n return this.tsserver.getSignatureHelp(this.getPath(node), this.getLocation(node));\n }\n\n /**\n * get the position for the tsserver.\n */\n getPosition(sourceFile: ts.SourceFile, line: number, offset: number): number {\n return sourceFile.getPositionOfLineAndCharacter(line - 1, offset - 1);\n }\n\n /**\n * get the path for a source file.\n */\n getPath(node: Node) {\n const sourceFile = node.getSourceFile();\n return sourceFile.fileName;\n }\n\n async getQuickInfo(node: Node) {\n const location = this.getLocation(node);\n try {\n return await this.tsserver.getQuickInfo(this.getPath(node), location);\n } catch (err: any) {\n if (err.message === 'No content available.') {\n throw new Error(\n `unable to get quickinfo data from tsserver at ${this.getPath(node)}, Ln ${location.line}, Col ${\n location.character\n }`\n );\n }\n throw err;\n }\n }\n\n async getQuickInfoDisplayString(node: Node): Promise<string> {\n const quickInfo = await this.getQuickInfo(node);\n return quickInfo?.body?.displayString || '';\n }\n\n /**\n * returns the type definition for a type.\n */\n typeDefinition(node: Node) {\n return this.tsserver.getTypeDefinition(this.getPath(node), this.getLocation(node));\n }\n\n visitTypeDefinition() {}\n\n findFileInComponent(filePath: string) {\n const filePathToCompare = pathNormalizeToLinux(filePath);\n const fileNameToCompare = basename(filePathToCompare); // Get the filename from the filePath\n\n const matchingFile = this.component.filesystem.files.find((file) => {\n const currentFilePath = pathNormalizeToLinux(file.path);\n const currentFileName = basename(currentFilePath); // Get the filename from the current file path\n\n // TODO: fix this line to support further extensions.\n if (currentFileName === fileNameToCompare || currentFilePath.includes(fileNameToCompare)) {\n const strings = ['ts', 'tsx', 'js', 'jsx'].map((format) => {\n if (fileNameToCompare.endsWith(`.${format}`)) return fileNameToCompare;\n\n return `${fileNameToCompare}.${format}`;\n });\n\n const matchesWithExtension = !!strings.find((string) => string === currentFileName);\n // check if it is an index file export\n const matchesIndexFile =\n !matchesWithExtension &&\n ['ts', 'js'].some((format) => {\n const indexFilePath = join(filePathToCompare, `index.${format}`);\n return pathNormalizeToLinux(indexFilePath) === currentFilePath;\n });\n\n return matchesWithExtension || matchesIndexFile;\n }\n\n return false;\n });\n\n return matchingFile;\n }\n\n private parsePackageNameFromPath(path: string) {\n const parts = path.split('node_modules');\n\n if (parts.length === 1) {\n return path;\n }\n\n const lastPart = parts[parts.length - 1].replace(sep, '');\n const pkgParts = lastPart.split('/');\n if (lastPart.startsWith('@')) {\n // scoped package\n return `${pkgParts[0]}/${pkgParts[1]}`;\n }\n const pkgName = pkgParts[0];\n if (pkgName === 'typescript') {\n // it's a built-in type, such as \"string\".\n return '';\n }\n return pkgName;\n }\n\n /**\n * return the file if part of the component.\n * otherwise, a reference to the target package and the type name.\n */\n getSourceFileInsideComponent(filePath: string) {\n const file = this.findFileInComponent(filePath);\n return file && this.extractor.parseSourceFile(file);\n }\n\n async getSourceFileFromNode(node: Node) {\n const filePath = await this.getFilePathByNode(node);\n if (!filePath) {\n return undefined;\n }\n return this.getSourceFileInsideComponent(filePath);\n }\n\n async getFilePathByNode(node: Node) {\n const def = await this.tsserver.getDefinition(this.getPath(node), this.getLocation(node));\n\n const firstDef = head(def?.body);\n return firstDef?.file;\n }\n\n async definitionInfo(node: Node): Promise<protocol.DefinitionInfo | undefined> {\n const location = this.getLocation(node);\n const filePath = this.getPath(node);\n\n const def = await this.tsserver.getDefinition(filePath, location);\n\n const firstDef = head(def?.body);\n\n return firstDef;\n }\n\n /**\n * get a definition for a given node.\n */\n async definition(definition: protocol.DefinitionInfo): Promise<Node | undefined> {\n const startPosition = definition.start;\n const sourceFile = this.getSourceFileInsideComponent(definition.file);\n if (!sourceFile) {\n // it might be an external reference, cant get the node\n return undefined;\n }\n const pos = this.getPosition(sourceFile, startPosition.line, startPosition.offset);\n const nodeAtPos = getTokenAtPosition(sourceFile, pos);\n return nodeAtPos;\n }\n\n /**\n * visit a definition for node - e.g. return it's schema.\n */\n async visitDefinition(node: Node): Promise<SchemaNode | undefined> {\n const definitionInfo = await this.definitionInfo(node);\n if (!definitionInfo) {\n return undefined;\n }\n\n const definition = await this.definition(definitionInfo);\n if (!definition) {\n return this.getTypeRefForExternalNode(node);\n }\n\n return this.visit(definition.parent);\n }\n\n async visit(node: Node): Promise<SchemaNode> {\n if (node.kind === SyntaxKind.Identifier && node.parent.parent.kind !== SyntaxKind.SourceFile) {\n return this.visit(node.parent);\n }\n return this.extractor.computeSchema(node, this);\n }\n\n references() {}\n\n isExported() {}\n\n isFromComponent() {}\n\n async getFileIdentifiers(exportDec: ExportDeclaration | ExportAssignment) {\n const file = exportDec.getSourceFile().fileName;\n const specifierPathStr =\n (exportDec.kind === SyntaxKind.ExportDeclaration && exportDec.moduleSpecifier?.getText()) || '';\n const specifierPath = specifierPathStr.substring(1, specifierPathStr.length - 1);\n const absPath = resolve(file, '..', specifierPath);\n const sourceFile = this.getSourceFileInsideComponent(absPath);\n if (!sourceFile) return [];\n return this.getIdentifiers(sourceFile);\n }\n\n async getFileExports(exportDec: ExportDeclaration | ExportAssignment) {\n const identifiers = await this.getFileIdentifiers(exportDec);\n return identifiers.filter((identifier) => ExportIdentifier.isExportIdentifier(identifier));\n }\n\n async getFileInternals(exportDec: ExportDeclaration | ExportAssignment) {\n const identifiers = await this.getFileIdentifiers(exportDec);\n return identifiers.filter((identifier) => !ExportIdentifier.isExportIdentifier(identifier));\n }\n\n getIdentifiers(node: Node) {\n return this.extractor.computeIdentifiers(node, this);\n }\n\n /**\n * tsserver has two different calls: \"definition\" and \"typeDefinition\".\n * normally, we need the \"typeDefinition\" to get the type data of a node.\n * sometimes, it has no data, for example when the node is of type TypeReference, and then using \"definition\" is\n * helpful. (couldn't find a rule when to use each one. e.g. \"VariableDeclaration\" sometimes has data only in\n * \"definition\" but it's not clear when/why).\n */\n async getDefinition(node: Node) {\n const typeDefinition = await this.typeDefinition(node);\n const headTypeDefinition = head(typeDefinition?.body);\n if (headTypeDefinition) {\n return headTypeDefinition;\n }\n const definition = await this.tsserver.getDefinition(node.getSourceFile().fileName, this.getLocation(node));\n return head(definition?.body);\n }\n\n // when we can't figure out the component/package/type of this node, we'll use the typeStr as the type.\n private async unknownExactType(node: Node, location: Location, typeStr = 'any', isTypeStrFromQuickInfo = true) {\n if (isTypeStrFromQuickInfo) {\n return new InferenceTypeSchema(location, typeStr || 'any');\n }\n const info = await this.getQuickInfo(node);\n const type = parseTypeFromQuickInfo(info);\n return new InferenceTypeSchema(location, type, typeStr);\n }\n\n // the reason for this check is to avoid infinite loop when calling `this.jump` with the same file+location\n private isDefInSameLocation(node: Node, definition: protocol.FileSpanWithContext) {\n if (definition.file !== node.getSourceFile().fileName) {\n return false;\n }\n const loc = this.getLocation(node);\n\n return loc.line === definition.start.line && loc.character === definition.start.offset;\n }\n\n /**\n * resolve a type by a node and its identifier.\n */\n async resolveType(\n node: Node & { type?: TypeNode },\n typeStr: string,\n isTypeStrFromQuickInfo = true\n ): Promise<SchemaNode> {\n const location = this.getLocation(node);\n\n // check if internal ref with typeInfo\n const internalRef = await this.getTypeRef(typeStr, this.getIdentifierKeyForNode(node), location);\n\n if (internalRef) return internalRef;\n\n // if a node has \"type\" prop, it has the type data of the node. this normally happens when the code has the type\n // explicitly, e.g. `const str: string` vs implicitly `const str = 'some-string'`, which the node won't have \"type\"\n if (node.type && ts.isTypeNode(node.type)) {\n return this.computeSchema(node.type);\n }\n\n const definition = await this.getDefinition(node);\n if (!definition) {\n return this.unknownExactType(node, location, typeStr, isTypeStrFromQuickInfo);\n }\n\n const file = this.findFileInComponent(definition.file);\n\n if (!file) return this.getTypeRefForExternalPath(typeStr, definition.file, location);\n\n if (this.isDefInSameLocation(node, definition)) {\n return this.unknownExactType(node, location, typeStr, isTypeStrFromQuickInfo);\n }\n\n const definitionNode = await this.definition(definition);\n\n if (!definitionNode) {\n return this.unknownExactType(node, location, typeStr, isTypeStrFromQuickInfo);\n }\n\n const definitionNodeName = definitionNode?.getText();\n\n // check if internal ref with definition info\n const definitionInternalRef = await this.getTypeRef(\n definitionNodeName,\n this.getIdentifierKeyForNode(definitionNode),\n location\n );\n\n if (definitionInternalRef) return definitionInternalRef;\n\n const transformer = this.extractor.getTransformer(definitionNode, this);\n\n if (transformer === undefined) {\n return this.unknownExactType(node, location, typeStr, isTypeStrFromQuickInfo);\n }\n const schemaNode = await this.visit(definitionNode);\n return schemaNode || this.unknownExactType(node, location, typeStr, isTypeStrFromQuickInfo);\n }\n\n private getCompIdByPkgName(pkgName: string): ComponentID | undefined {\n return this.componentDeps.find((dep) => dep.packageName === pkgName)?.componentId;\n }\n\n async getTypeRef(typeStr: string, filePath: string, location: Location): Promise<TypeRefSchema | undefined> {\n const nodeIdentifierKey = this.getIdentifierKey(filePath);\n const mainFileIdentifierKey = this.mainFileIdentifierKey;\n\n const nodeIdentifierList = this.identifiers.get(nodeIdentifierKey);\n const mainIdentifierList = this.identifiers.get(mainFileIdentifierKey);\n\n const nodeIdentifier = new Identifier(typeStr, nodeIdentifierKey);\n const mainIdentifier = new Identifier(typeStr, mainFileIdentifierKey);\n\n const parsedNodeIdentifier = nodeIdentifierList?.find(nodeIdentifier);\n const parsedMainIdentifier = mainIdentifierList?.find(mainIdentifier);\n const isExportedFromMain = parsedMainIdentifier && ExportIdentifier.isExportIdentifier(parsedMainIdentifier);\n\n if (!parsedNodeIdentifier) return undefined;\n\n const internalRef = !isExportedFromMain;\n\n if (internalRef) {\n this.setInternalIdentifiers(filePath, new IdentifierList([parsedNodeIdentifier]));\n }\n\n return this.resolveTypeRef(parsedNodeIdentifier, location, isExportedFromMain);\n }\n\n async resolveTypeRef(\n identifier: Identifier,\n location: Location,\n isExportedFromMain?: boolean\n ): Promise<TypeRefSchema> {\n const sourceFilePath = identifier.sourceFilePath;\n\n if (!sourceFilePath || isExportedFromMain) {\n return new TypeRefSchema(\n location,\n identifier.id,\n undefined,\n undefined,\n !isExportedFromMain ? this.getPathRelativeToComponent(identifier.filePath) : undefined\n );\n }\n\n if (!isRelativeImport(sourceFilePath)) {\n const pkgName = this.parsePackageNameFromPath(sourceFilePath);\n const compIdByPkg = this.getCompIdByPkgName(pkgName);\n\n const compIdByPath = await this.extractor.getComponentIDByPath(sourceFilePath);\n\n if (compIdByPath) {\n return new TypeRefSchema(location, identifier.id, compIdByPath);\n }\n\n if (compIdByPkg) {\n return new TypeRefSchema(location, identifier.id, compIdByPkg);\n }\n\n // package without comp id\n return new TypeRefSchema(location, identifier.id, undefined, pkgName);\n }\n\n const relativeDir = identifier.filePath.substring(0, identifier.filePath.lastIndexOf('/'));\n const absFilePath = resolve(relativeDir, sourceFilePath);\n const compFilePath = this.findFileInComponent(absFilePath);\n if (!compFilePath) {\n // @todo handle this better\n throw new Error(\n `cannot find file in component \\n absolute path: ${absFilePath}\\n source file path ${sourceFilePath}\\n identifier file path ${identifier.filePath} \\n relative dir ${relativeDir}`\n );\n return new TypeRefSchema(location, identifier.id);\n }\n\n const idKey = this.getIdentifierKey(compFilePath?.path);\n\n // if re exported from a file, recurse until definition\n const exportedIdentifier = (this.identifiers.get(idKey)?.identifiers || []).find((i) => i.id === identifier.id);\n\n if (exportedIdentifier) {\n return this.resolveTypeRef(exportedIdentifier, location, isExportedFromMain);\n }\n\n return new TypeRefSchema(location, identifier.id);\n }\n\n async getTypeRefForExternalNode(node: Node): Promise<TypeRefSchema> {\n const info = await this.getQuickInfo(node);\n const typeStr = parseTypeFromQuickInfo(info);\n const location = this.getLocation(node);\n const filePath = this.getPath(node);\n return this.getTypeRefForExternalPath(typeStr, filePath, location);\n }\n\n async getTypeRefForExternalPath(typeStr: string, filePath: string, location: Location): Promise<TypeRefSchema> {\n const compIdByPath = await this.extractor.getComponentIDByPath(filePath);\n if (compIdByPath) {\n return new TypeRefSchema(location, typeStr, compIdByPath);\n }\n const pkgName = this.parsePackageNameFromPath(filePath);\n const compIdByPkg = this.getCompIdByPkgName(pkgName);\n if (compIdByPkg) {\n return new TypeRefSchema(location, typeStr, compIdByPkg);\n }\n return new TypeRefSchema(location, typeStr, undefined, pkgName);\n }\n\n async jsDocToDocSchema(node: Node): Promise<DocSchema | undefined> {\n if (!canHaveJsDoc(node)) {\n return undefined;\n }\n const jsDocs = getJsDoc(node);\n if (!jsDocs.length) {\n return undefined;\n }\n // not sure how common it is to have multiple JSDocs. never seen it before.\n // regardless, in typescript implementation of methods like `getJSDocDeprecatedTag()`, they use the first one. (`getFirstJSDocTag()`)\n const jsDoc = jsDocs[0];\n const location = this.getLocation(jsDoc);\n const comment = getTextOfJSDocComment(jsDoc.comment);\n const tags = jsDoc.tags ? await pMapSeries(jsDoc.tags, (tag) => tagParser(tag, this, this.formatter)) : undefined;\n return new DocSchema(location, jsDoc.getText(), comment, tags);\n }\n}\n"],"mappings":"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"}
|
|
@@ -9,6 +9,7 @@ import { EnvContext } from '@teambit/envs';
|
|
|
9
9
|
import { Formatter } from '@teambit/formatter';
|
|
10
10
|
import { Logger } from '@teambit/logger';
|
|
11
11
|
import { AspectLoaderMain } from '@teambit/aspect-loader';
|
|
12
|
+
import { ScopeMain } from '@teambit/scope';
|
|
12
13
|
import { TypescriptMain, SchemaTransformerSlot } from './typescript.main.runtime';
|
|
13
14
|
import { SchemaExtractorContext } from './schema-extractor-context';
|
|
14
15
|
import { Identifier } from './identifier';
|
|
@@ -20,9 +21,10 @@ export declare class TypeScriptExtractor implements SchemaExtractor {
|
|
|
20
21
|
private rootPath;
|
|
21
22
|
private depResolver;
|
|
22
23
|
private workspace;
|
|
24
|
+
private scope;
|
|
23
25
|
private aspectLoader;
|
|
24
26
|
private logger;
|
|
25
|
-
constructor(tsconfig: any, schemaTransformerSlot: SchemaTransformerSlot, tsMain: TypescriptMain, rootPath: string, depResolver: DependencyResolverMain, workspace: Workspace | undefined, aspectLoader: AspectLoaderMain, logger: Logger);
|
|
27
|
+
constructor(tsconfig: any, schemaTransformerSlot: SchemaTransformerSlot, tsMain: TypescriptMain, rootPath: string, depResolver: DependencyResolverMain, workspace: Workspace | undefined, scope: ScopeMain, aspectLoader: AspectLoaderMain, logger: Logger);
|
|
26
28
|
parseSourceFile(file: AbstractVinyl): SourceFile;
|
|
27
29
|
/**
|
|
28
30
|
* extract a component schema.
|
|
@@ -87,13 +87,14 @@ function _typescript2() {
|
|
|
87
87
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
88
88
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
89
89
|
class TypeScriptExtractor {
|
|
90
|
-
constructor(tsconfig, schemaTransformerSlot, tsMain, rootPath, depResolver, workspace, aspectLoader, logger) {
|
|
90
|
+
constructor(tsconfig, schemaTransformerSlot, tsMain, rootPath, depResolver, workspace, scope, aspectLoader, logger) {
|
|
91
91
|
this.tsconfig = tsconfig;
|
|
92
92
|
this.schemaTransformerSlot = schemaTransformerSlot;
|
|
93
93
|
this.tsMain = tsMain;
|
|
94
94
|
this.rootPath = rootPath;
|
|
95
95
|
this.depResolver = depResolver;
|
|
96
96
|
this.workspace = workspace;
|
|
97
|
+
this.scope = scope;
|
|
97
98
|
this.aspectLoader = aspectLoader;
|
|
98
99
|
this.logger = logger;
|
|
99
100
|
(0, _defineProperty2().default)(this, "tsserver", undefined);
|
|
@@ -112,7 +113,7 @@ class TypeScriptExtractor {
|
|
|
112
113
|
async extract(component, formatter) {
|
|
113
114
|
const tsserver = await this.getTsServer();
|
|
114
115
|
const mainFile = component.mainFile;
|
|
115
|
-
const compatibleExts = ['.tsx', '.
|
|
116
|
+
const compatibleExts = ['.tsx', '.ts', '.jsx', '.js'];
|
|
116
117
|
const internalFiles = component.filesystem.files.filter(file => compatibleExts.includes(file.extname) && file.path !== mainFile.path);
|
|
117
118
|
const allFiles = [mainFile, ...internalFiles];
|
|
118
119
|
const context = await this.createContext(tsserver, component, formatter);
|
|
@@ -184,15 +185,15 @@ class TypeScriptExtractor {
|
|
|
184
185
|
return transformer.transform(node, context);
|
|
185
186
|
}
|
|
186
187
|
async getComponentIDByPath(file) {
|
|
187
|
-
if (!this.workspace) {
|
|
188
|
-
return null;
|
|
189
|
-
}
|
|
190
188
|
const coreAspectIds = this.aspectLoader.getCoreAspectIds();
|
|
191
189
|
const matchingCoreAspect = coreAspectIds.find(c => file === (0, _aspectLoader().getCoreAspectPackageName)(c));
|
|
192
190
|
if (matchingCoreAspect) {
|
|
193
|
-
return this.workspace.resolveComponentId(matchingCoreAspect);
|
|
191
|
+
return (this.workspace || this.scope).resolveComponentId(matchingCoreAspect);
|
|
192
|
+
}
|
|
193
|
+
if (this.workspace) {
|
|
194
|
+
return this.workspace.getComponentIdByPath(file);
|
|
194
195
|
}
|
|
195
|
-
return
|
|
196
|
+
return null;
|
|
196
197
|
}
|
|
197
198
|
|
|
198
199
|
/**
|
|
@@ -220,7 +221,7 @@ class TypeScriptExtractor {
|
|
|
220
221
|
|
|
221
222
|
// When loading the env from a scope you don't have a workspace
|
|
222
223
|
const wsPath = ((_tsMain$workspace = tsMain.workspace) === null || _tsMain$workspace === void 0 ? void 0 : _tsMain$workspace.path) || '';
|
|
223
|
-
return new TypeScriptExtractor(tsconfig, tsMain.schemaTransformerSlot, tsMain, wsPath, tsMain.depResolver, tsMain.workspace, aspectLoaderMain, context.createLogger(options.name));
|
|
224
|
+
return new TypeScriptExtractor(tsconfig, tsMain.schemaTransformerSlot, tsMain, wsPath, tsMain.depResolver, tsMain.workspace, tsMain.scope, aspectLoaderMain, context.createLogger(options.name));
|
|
224
225
|
};
|
|
225
226
|
}
|
|
226
227
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["TypeScriptExtractor","constructor","tsconfig","schemaTransformerSlot","tsMain","rootPath","depResolver","workspace","aspectLoader","logger","undefined","parseSourceFile","file","sourceFile","ts","createSourceFile","path","contents","toString","ScriptTarget","Latest","extract","component","formatter","tsserver","getTsServer","mainFile","compatibleExts","internalFiles","filesystem","files","filter","includes","extname","allFiles","context","createContext","pMapSeries","ast","identifiers","computeIdentifiers","cacheKey","getIdentifierKeyForNode","setIdentifiers","IdentifierList","mainAst","moduleSchema","computeSchema","flatExportsRecursively","apiScheme","internals","computeInternalModules","location","getLocation","APISchema","id","compact","Promise","all","internalIdentifiers","entries","map","filePath","find","internalFile","fileAst","dispose","killTsServer","node","transformer","getTransformer","getIdentifiers","warn","TransformerNotFound","componentDeps","getComponentDeps","SchemaExtractorContext","deps","getDependencies","getComponentDependencies","getTsserverClient","initTsserverClient","UnImplementedSchema","getText","SyntaxKind","kind","transform","getComponentIDByPath","coreAspectIds","getCoreAspectIds","matchingCoreAspect","c","getCoreAspectPackageName","resolveComponentId","getComponentIdByPath","transformers","flatten","values","singleTransformer","predicate","from","options","getTsconfig","config","compilerOptions","getAspect","TypescriptAspect","aspectLoaderMain","AspectLoaderAspect","wsPath","createLogger","name"],"sources":["typescript.extractor.ts"],"sourcesContent":["import ts, { Node, SourceFile, SyntaxKind } from 'typescript';\nimport { getTsconfig } from 'get-tsconfig';\nimport { SchemaExtractor } from '@teambit/schema';\nimport { TsserverClient } from '@teambit/ts-server';\nimport type { Workspace } from '@teambit/workspace';\nimport { ComponentDependency, DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { SchemaNode, APISchema, ModuleSchema, UnImplementedSchema } from '@teambit/semantics.entities.semantic-schema';\nimport { Component } from '@teambit/component';\nimport { AbstractVinyl } from '@teambit/legacy/dist/consumer/component/sources';\nimport { EnvContext } from '@teambit/envs';\nimport { Formatter } from '@teambit/formatter';\nimport { Logger } from '@teambit/logger';\nimport AspectLoaderAspect, { AspectLoaderMain, getCoreAspectPackageName } from '@teambit/aspect-loader';\nimport pMapSeries from 'p-map-series';\nimport { compact, flatten } from 'lodash';\nimport { TypescriptMain, SchemaTransformerSlot } from './typescript.main.runtime';\nimport { TransformerNotFound } from './exceptions';\nimport { SchemaExtractorContext } from './schema-extractor-context';\nimport { Identifier } from './identifier';\nimport { IdentifierList } from './identifier-list';\nimport { ExtractorOptions } from './extractor-options';\nimport { TypescriptAspect } from './typescript.aspect';\n\nexport class TypeScriptExtractor implements SchemaExtractor {\n constructor(\n private tsconfig: any,\n private schemaTransformerSlot: SchemaTransformerSlot,\n private tsMain: TypescriptMain,\n private rootPath: string,\n private depResolver: DependencyResolverMain,\n private workspace: Workspace | undefined,\n private aspectLoader: AspectLoaderMain,\n private logger: Logger\n ) {}\n\n parseSourceFile(file: AbstractVinyl): SourceFile {\n const sourceFile = ts.createSourceFile(\n file.path,\n file.contents.toString('utf8'),\n ts.ScriptTarget.Latest,\n true\n /** don't pass the scriptKind, it'll be determined automatically by typescript by the filepath */\n );\n // leave this commented out, it's helpful when there are issues with ASTs. consider throwing in this case.\n // console.log(\"sourceFile Errors\", file.path, sourceFile.parseDiagnostics);\n return sourceFile;\n }\n\n /**\n * extract a component schema.\n */\n async extract(component: Component, formatter?: Formatter): Promise<APISchema> {\n const tsserver = await this.getTsServer();\n const mainFile = component.mainFile;\n const compatibleExts = ['.tsx', '.jsx', '.ts', '.js'];\n const internalFiles = component.filesystem.files.filter(\n (file) => compatibleExts.includes(file.extname) && file.path !== mainFile.path\n );\n const allFiles = [mainFile, ...internalFiles];\n\n const context = await this.createContext(tsserver, component, formatter);\n\n await pMapSeries(allFiles, async (file) => {\n const ast = this.parseSourceFile(file);\n const identifiers = await this.computeIdentifiers(ast, context); // compute for every file\n const cacheKey = context.getIdentifierKeyForNode(ast);\n context.setIdentifiers(cacheKey, new IdentifierList(identifiers));\n });\n\n const mainAst = this.parseSourceFile(mainFile);\n const moduleSchema = (await this.computeSchema(mainAst, context)) as ModuleSchema;\n moduleSchema.flatExportsRecursively();\n const apiScheme = moduleSchema;\n const internals = await this.computeInternalModules(context, internalFiles);\n\n const location = context.getLocation(mainAst);\n\n return new APISchema(location, apiScheme, internals, component.id);\n }\n\n async computeInternalModules(context: SchemaExtractorContext, internalFiles: AbstractVinyl[]) {\n const internals = compact(\n await Promise.all(\n [...context.internalIdentifiers.entries()].map(async ([filePath]) => {\n const file = internalFiles.find((internalFile) => internalFile.path === filePath);\n if (!file) return undefined;\n const fileAst = this.parseSourceFile(file);\n const moduleSchema = (await this.computeSchema(fileAst, context)) as ModuleSchema;\n moduleSchema.flatExportsRecursively();\n return moduleSchema;\n })\n )\n );\n return internals;\n }\n\n dispose() {\n if (!this.tsserver) return;\n this.tsserver.killTsServer();\n }\n\n async computeIdentifiers(node: Node, context: SchemaExtractorContext) {\n const transformer = this.getTransformer(node, context);\n let identifiers: Identifier[] = [];\n if (!transformer || !transformer.getIdentifiers) {\n this.logger.warn(new TransformerNotFound(node, context.component, context.getLocation(node)).toString());\n } else {\n identifiers = await transformer.getIdentifiers(node, context);\n }\n return identifiers;\n }\n\n private async createContext(\n tsserver: TsserverClient,\n component: Component,\n formatter?: Formatter\n ): Promise<SchemaExtractorContext> {\n const componentDeps = await this.getComponentDeps(component);\n return new SchemaExtractorContext(tsserver, component, this, componentDeps, formatter);\n }\n\n private async getComponentDeps(component: Component): Promise<ComponentDependency[]> {\n const deps = await this.depResolver.getDependencies(component);\n const componentDeps = deps.getComponentDependencies();\n return componentDeps;\n }\n\n private tsserver: TsserverClient | undefined = undefined;\n\n private async getTsServer() {\n if (!this.tsserver) {\n const tsserver = this.tsMain.getTsserverClient();\n if (tsserver) {\n this.tsserver = tsserver;\n return tsserver;\n }\n\n this.tsserver = await this.tsMain.initTsserverClient(this.rootPath);\n return this.tsserver;\n }\n\n return this.tsserver;\n }\n\n async computeSchema(node: Node, context: SchemaExtractorContext): Promise<SchemaNode> {\n const transformer = this.getTransformer(node, context);\n\n if (!transformer) {\n return new UnImplementedSchema(context.getLocation(node), node.getText(), SyntaxKind[node.kind]);\n }\n return transformer.transform(node, context);\n }\n\n async getComponentIDByPath(file: string) {\n if (!this.workspace) {\n return null;\n }\n const coreAspectIds = this.aspectLoader.getCoreAspectIds();\n const matchingCoreAspect = coreAspectIds.find((c) => file === getCoreAspectPackageName(c));\n\n if (matchingCoreAspect) {\n return this.workspace.resolveComponentId(matchingCoreAspect);\n }\n\n return this.workspace.getComponentIdByPath(file);\n }\n\n /**\n * select the correct transformer for a node.\n */\n getTransformer(node: Node, context: SchemaExtractorContext) {\n const transformers = flatten(this.schemaTransformerSlot.values());\n const transformer = transformers.find((singleTransformer) => {\n return singleTransformer.predicate(node);\n });\n if (!transformer) {\n this.logger.warn(new TransformerNotFound(node, context.component, context.getLocation(node)).toString());\n return undefined;\n }\n\n return transformer;\n }\n\n static from(options: ExtractorOptions) {\n return (context: EnvContext) => {\n const tsconfig = getTsconfig(options.tsconfig)?.config || { compilerOptions: options.compilerOptions };\n const tsMain = context.getAspect<TypescriptMain>(TypescriptAspect.id);\n const aspectLoaderMain = context.getAspect<AspectLoaderMain>(AspectLoaderAspect.id);\n\n // When loading the env from a scope you don't have a workspace\n const wsPath = tsMain.workspace?.path || '';\n return new TypeScriptExtractor(\n tsconfig,\n tsMain.schemaTransformerSlot,\n tsMain,\n wsPath,\n tsMain.depResolver,\n tsMain.workspace,\n aspectLoaderMain,\n context.createLogger(options.name)\n );\n };\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["TypeScriptExtractor","constructor","tsconfig","schemaTransformerSlot","tsMain","rootPath","depResolver","workspace","scope","aspectLoader","logger","undefined","parseSourceFile","file","sourceFile","ts","createSourceFile","path","contents","toString","ScriptTarget","Latest","extract","component","formatter","tsserver","getTsServer","mainFile","compatibleExts","internalFiles","filesystem","files","filter","includes","extname","allFiles","context","createContext","pMapSeries","ast","identifiers","computeIdentifiers","cacheKey","getIdentifierKeyForNode","setIdentifiers","IdentifierList","mainAst","moduleSchema","computeSchema","flatExportsRecursively","apiScheme","internals","computeInternalModules","location","getLocation","APISchema","id","compact","Promise","all","internalIdentifiers","entries","map","filePath","find","internalFile","fileAst","dispose","killTsServer","node","transformer","getTransformer","getIdentifiers","warn","TransformerNotFound","componentDeps","getComponentDeps","SchemaExtractorContext","deps","getDependencies","getComponentDependencies","getTsserverClient","initTsserverClient","UnImplementedSchema","getText","SyntaxKind","kind","transform","getComponentIDByPath","coreAspectIds","getCoreAspectIds","matchingCoreAspect","c","getCoreAspectPackageName","resolveComponentId","getComponentIdByPath","transformers","flatten","values","singleTransformer","predicate","from","options","getTsconfig","config","compilerOptions","getAspect","TypescriptAspect","aspectLoaderMain","AspectLoaderAspect","wsPath","createLogger","name"],"sources":["typescript.extractor.ts"],"sourcesContent":["import ts, { Node, SourceFile, SyntaxKind } from 'typescript';\nimport { getTsconfig } from 'get-tsconfig';\nimport { SchemaExtractor } from '@teambit/schema';\nimport { TsserverClient } from '@teambit/ts-server';\nimport type { Workspace } from '@teambit/workspace';\nimport { ComponentDependency, DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { SchemaNode, APISchema, ModuleSchema, UnImplementedSchema } from '@teambit/semantics.entities.semantic-schema';\nimport { Component } from '@teambit/component';\nimport { AbstractVinyl } from '@teambit/legacy/dist/consumer/component/sources';\nimport { EnvContext } from '@teambit/envs';\nimport { Formatter } from '@teambit/formatter';\nimport { Logger } from '@teambit/logger';\nimport AspectLoaderAspect, { AspectLoaderMain, getCoreAspectPackageName } from '@teambit/aspect-loader';\nimport { ScopeMain } from '@teambit/scope';\nimport pMapSeries from 'p-map-series';\nimport { compact, flatten } from 'lodash';\nimport { TypescriptMain, SchemaTransformerSlot } from './typescript.main.runtime';\nimport { TransformerNotFound } from './exceptions';\nimport { SchemaExtractorContext } from './schema-extractor-context';\nimport { Identifier } from './identifier';\nimport { IdentifierList } from './identifier-list';\nimport { ExtractorOptions } from './extractor-options';\nimport { TypescriptAspect } from './typescript.aspect';\n\nexport class TypeScriptExtractor implements SchemaExtractor {\n constructor(\n private tsconfig: any,\n private schemaTransformerSlot: SchemaTransformerSlot,\n private tsMain: TypescriptMain,\n private rootPath: string,\n private depResolver: DependencyResolverMain,\n private workspace: Workspace | undefined,\n private scope: ScopeMain,\n private aspectLoader: AspectLoaderMain,\n private logger: Logger\n ) {}\n\n parseSourceFile(file: AbstractVinyl): SourceFile {\n const sourceFile = ts.createSourceFile(\n file.path,\n file.contents.toString('utf8'),\n ts.ScriptTarget.Latest,\n true\n /** don't pass the scriptKind, it'll be determined automatically by typescript by the filepath */\n );\n // leave this commented out, it's helpful when there are issues with ASTs. consider throwing in this case.\n // console.log(\"sourceFile Errors\", file.path, sourceFile.parseDiagnostics);\n return sourceFile;\n }\n\n /**\n * extract a component schema.\n */\n async extract(component: Component, formatter?: Formatter): Promise<APISchema> {\n const tsserver = await this.getTsServer();\n const mainFile = component.mainFile;\n const compatibleExts = ['.tsx', '.ts', '.jsx', '.js'];\n const internalFiles = component.filesystem.files.filter(\n (file) => compatibleExts.includes(file.extname) && file.path !== mainFile.path\n );\n const allFiles = [mainFile, ...internalFiles];\n\n const context = await this.createContext(tsserver, component, formatter);\n\n await pMapSeries(allFiles, async (file) => {\n const ast = this.parseSourceFile(file);\n const identifiers = await this.computeIdentifiers(ast, context); // compute for every file\n const cacheKey = context.getIdentifierKeyForNode(ast);\n context.setIdentifiers(cacheKey, new IdentifierList(identifiers));\n });\n\n const mainAst = this.parseSourceFile(mainFile);\n const moduleSchema = (await this.computeSchema(mainAst, context)) as ModuleSchema;\n moduleSchema.flatExportsRecursively();\n const apiScheme = moduleSchema;\n const internals = await this.computeInternalModules(context, internalFiles);\n\n const location = context.getLocation(mainAst);\n\n return new APISchema(location, apiScheme, internals, component.id);\n }\n\n async computeInternalModules(context: SchemaExtractorContext, internalFiles: AbstractVinyl[]) {\n const internals = compact(\n await Promise.all(\n [...context.internalIdentifiers.entries()].map(async ([filePath]) => {\n const file = internalFiles.find((internalFile) => internalFile.path === filePath);\n if (!file) return undefined;\n const fileAst = this.parseSourceFile(file);\n const moduleSchema = (await this.computeSchema(fileAst, context)) as ModuleSchema;\n moduleSchema.flatExportsRecursively();\n return moduleSchema;\n })\n )\n );\n return internals;\n }\n\n dispose() {\n if (!this.tsserver) return;\n this.tsserver.killTsServer();\n }\n\n async computeIdentifiers(node: Node, context: SchemaExtractorContext) {\n const transformer = this.getTransformer(node, context);\n let identifiers: Identifier[] = [];\n if (!transformer || !transformer.getIdentifiers) {\n this.logger.warn(new TransformerNotFound(node, context.component, context.getLocation(node)).toString());\n } else {\n identifiers = await transformer.getIdentifiers(node, context);\n }\n return identifiers;\n }\n\n private async createContext(\n tsserver: TsserverClient,\n component: Component,\n formatter?: Formatter\n ): Promise<SchemaExtractorContext> {\n const componentDeps = await this.getComponentDeps(component);\n return new SchemaExtractorContext(tsserver, component, this, componentDeps, formatter);\n }\n\n private async getComponentDeps(component: Component): Promise<ComponentDependency[]> {\n const deps = await this.depResolver.getDependencies(component);\n const componentDeps = deps.getComponentDependencies();\n return componentDeps;\n }\n\n private tsserver: TsserverClient | undefined = undefined;\n\n private async getTsServer() {\n if (!this.tsserver) {\n const tsserver = this.tsMain.getTsserverClient();\n if (tsserver) {\n this.tsserver = tsserver;\n return tsserver;\n }\n\n this.tsserver = await this.tsMain.initTsserverClient(this.rootPath);\n return this.tsserver;\n }\n\n return this.tsserver;\n }\n\n async computeSchema(node: Node, context: SchemaExtractorContext): Promise<SchemaNode> {\n const transformer = this.getTransformer(node, context);\n\n if (!transformer) {\n return new UnImplementedSchema(context.getLocation(node), node.getText(), SyntaxKind[node.kind]);\n }\n return transformer.transform(node, context);\n }\n\n async getComponentIDByPath(file: string) {\n const coreAspectIds = this.aspectLoader.getCoreAspectIds();\n const matchingCoreAspect = coreAspectIds.find((c) => file === getCoreAspectPackageName(c));\n\n if (matchingCoreAspect) {\n return (this.workspace || this.scope).resolveComponentId(matchingCoreAspect);\n }\n\n if (this.workspace) {\n return this.workspace.getComponentIdByPath(file);\n }\n return null;\n }\n\n /**\n * select the correct transformer for a node.\n */\n getTransformer(node: Node, context: SchemaExtractorContext) {\n const transformers = flatten(this.schemaTransformerSlot.values());\n const transformer = transformers.find((singleTransformer) => {\n return singleTransformer.predicate(node);\n });\n if (!transformer) {\n this.logger.warn(new TransformerNotFound(node, context.component, context.getLocation(node)).toString());\n return undefined;\n }\n\n return transformer;\n }\n\n static from(options: ExtractorOptions) {\n return (context: EnvContext) => {\n const tsconfig = getTsconfig(options.tsconfig)?.config || { compilerOptions: options.compilerOptions };\n const tsMain = context.getAspect<TypescriptMain>(TypescriptAspect.id);\n const aspectLoaderMain = context.getAspect<AspectLoaderMain>(AspectLoaderAspect.id);\n\n // When loading the env from a scope you don't have a workspace\n const wsPath = tsMain.workspace?.path || '';\n return new TypeScriptExtractor(\n tsconfig,\n tsMain.schemaTransformerSlot,\n tsMain,\n wsPath,\n tsMain.depResolver,\n tsMain.workspace,\n tsMain.scope,\n aspectLoaderMain,\n context.createLogger(options.name)\n );\n };\n }\n}\n"],"mappings":"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"}
|
|
@@ -14,6 +14,7 @@ import { WorkspaceConfigFilesMain } from '@teambit/workspace-config-files';
|
|
|
14
14
|
import { WatcherMain } from '@teambit/watcher';
|
|
15
15
|
import type { Component } from '@teambit/component';
|
|
16
16
|
import { EnvsMain } from '@teambit/envs';
|
|
17
|
+
import { ScopeMain } from '@teambit/scope';
|
|
17
18
|
import { TypeScriptCompilerOptions } from './compiler-options';
|
|
18
19
|
import { SchemaTransformer } from './schema-transformer';
|
|
19
20
|
import { TsconfigPathsPerEnv, TsconfigWriter } from './tsconfig-writer';
|
|
@@ -32,11 +33,12 @@ export declare class TypescriptMain {
|
|
|
32
33
|
private logger;
|
|
33
34
|
readonly schemaTransformerSlot: SchemaTransformerSlot;
|
|
34
35
|
readonly workspace: Workspace;
|
|
36
|
+
readonly scope: ScopeMain;
|
|
35
37
|
readonly depResolver: DependencyResolverMain;
|
|
36
38
|
private envs;
|
|
37
39
|
private tsConfigWriter;
|
|
38
40
|
private aspectLoader;
|
|
39
|
-
constructor(logger: Logger, schemaTransformerSlot: SchemaTransformerSlot, workspace: Workspace, depResolver: DependencyResolverMain, envs: EnvsMain, tsConfigWriter: TsconfigWriter, aspectLoader: AspectLoaderMain);
|
|
41
|
+
constructor(logger: Logger, schemaTransformerSlot: SchemaTransformerSlot, workspace: Workspace, scope: ScopeMain, depResolver: DependencyResolverMain, envs: EnvsMain, tsConfigWriter: TsconfigWriter, aspectLoader: AspectLoaderMain);
|
|
40
42
|
private tsServer;
|
|
41
43
|
/**
|
|
42
44
|
* create a new compiler.
|
|
@@ -112,7 +114,7 @@ export declare class TypescriptMain {
|
|
|
112
114
|
static runtime: import("@teambit/harmony").RuntimeDefinition;
|
|
113
115
|
static dependencies: import("@teambit/harmony").Aspect[];
|
|
114
116
|
static slots: ((registerFn: () => string) => SlotRegistry<SchemaTransformer[]>)[];
|
|
115
|
-
static provider([schema, loggerExt, aspectLoader, workspace, cli, depResolver, envs, watcher, workspaceConfigFiles, compiler]: [
|
|
117
|
+
static provider([schema, loggerExt, aspectLoader, workspace, cli, depResolver, envs, watcher, workspaceConfigFiles, compiler, scope,]: [
|
|
116
118
|
SchemaMain,
|
|
117
119
|
LoggerMain,
|
|
118
120
|
AspectLoaderMain,
|
|
@@ -122,7 +124,8 @@ export declare class TypescriptMain {
|
|
|
122
124
|
EnvsMain,
|
|
123
125
|
WatcherMain,
|
|
124
126
|
WorkspaceConfigFilesMain,
|
|
125
|
-
CompilerMain
|
|
127
|
+
CompilerMain,
|
|
128
|
+
ScopeMain
|
|
126
129
|
], config: any, [schemaTransformerSlot]: [SchemaTransformerSlot]): Promise<TypescriptMain>;
|
|
127
130
|
}
|
|
128
131
|
export declare function runTransformersWithContext(config: TypescriptConfigMutator, transformers: TsConfigTransformer[] | undefined, context: TsConfigTransformContext): TypescriptConfigMutator;
|
|
@@ -122,6 +122,13 @@ function _envs() {
|
|
|
122
122
|
};
|
|
123
123
|
return data;
|
|
124
124
|
}
|
|
125
|
+
function _scope() {
|
|
126
|
+
const data = require("@teambit/scope");
|
|
127
|
+
_scope = function () {
|
|
128
|
+
return data;
|
|
129
|
+
};
|
|
130
|
+
return data;
|
|
131
|
+
}
|
|
125
132
|
function _typescript2() {
|
|
126
133
|
const data = require("./typescript.extractor");
|
|
127
134
|
_typescript2 = function () {
|
|
@@ -193,10 +200,11 @@ function _tsConfigWriter() {
|
|
|
193
200
|
return data;
|
|
194
201
|
}
|
|
195
202
|
class TypescriptMain {
|
|
196
|
-
constructor(logger, schemaTransformerSlot, workspace, depResolver, envs, tsConfigWriter, aspectLoader) {
|
|
203
|
+
constructor(logger, schemaTransformerSlot, workspace, scope, depResolver, envs, tsConfigWriter, aspectLoader) {
|
|
197
204
|
this.logger = logger;
|
|
198
205
|
this.schemaTransformerSlot = schemaTransformerSlot;
|
|
199
206
|
this.workspace = workspace;
|
|
207
|
+
this.scope = scope;
|
|
200
208
|
this.depResolver = depResolver;
|
|
201
209
|
this.envs = envs;
|
|
202
210
|
this.tsConfigWriter = tsConfigWriter;
|
|
@@ -229,7 +237,7 @@ class TypescriptMain {
|
|
|
229
237
|
*/
|
|
230
238
|
async initTsserverClient(projectPath, options = {}, files = []) {
|
|
231
239
|
this.tsServer = new (_tsServer().TsserverClient)(projectPath, this.logger, options, files);
|
|
232
|
-
this.tsServer.init();
|
|
240
|
+
await this.tsServer.init();
|
|
233
241
|
return this.tsServer;
|
|
234
242
|
}
|
|
235
243
|
|
|
@@ -298,7 +306,8 @@ class TypescriptMain {
|
|
|
298
306
|
* create an instance of a typescript semantic schema extractor.
|
|
299
307
|
*/
|
|
300
308
|
createSchemaExtractor(tsconfig, path) {
|
|
301
|
-
|
|
309
|
+
var _this$workspace;
|
|
310
|
+
return new (_typescript2().TypeScriptExtractor)(tsconfig, this.schemaTransformerSlot, this, path || ((_this$workspace = this.workspace) === null || _this$workspace === void 0 ? void 0 : _this$workspace.path) || '', this.depResolver, this.workspace, this.scope, this.aspectLoader, this.logger);
|
|
302
311
|
}
|
|
303
312
|
|
|
304
313
|
/**
|
|
@@ -377,13 +386,13 @@ class TypescriptMain {
|
|
|
377
386
|
results: 'succeed'
|
|
378
387
|
};
|
|
379
388
|
}
|
|
380
|
-
static async provider([schema, loggerExt, aspectLoader, workspace, cli, depResolver, envs, watcher, workspaceConfigFiles, compiler], config, [schemaTransformerSlot]) {
|
|
389
|
+
static async provider([schema, loggerExt, aspectLoader, workspace, cli, depResolver, envs, watcher, workspaceConfigFiles, compiler, scope], config, [schemaTransformerSlot]) {
|
|
381
390
|
schema.registerParser(new (_typescript5().TypeScriptParser)());
|
|
382
391
|
const logger = loggerExt.createLogger(_typescript3().TypescriptAspect.id);
|
|
383
392
|
workspaceConfigFiles.registerConfigWriter(new (_tsConfigWriter().TypescriptConfigWriter)(compiler, logger));
|
|
384
393
|
aspectLoader.registerPlugins([new (_schemaTransformer().SchemaTransformerPlugin)(schemaTransformerSlot)]);
|
|
385
394
|
const tsconfigWriter = new (_tsconfigWriter().TsconfigWriter)(workspace, logger);
|
|
386
|
-
const tsMain = new TypescriptMain(logger, schemaTransformerSlot, workspace, depResolver, envs, tsconfigWriter, aspectLoader);
|
|
395
|
+
const tsMain = new TypescriptMain(logger, schemaTransformerSlot, workspace, scope, depResolver, envs, tsconfigWriter, aspectLoader);
|
|
387
396
|
schemaTransformerSlot.register([new (_transformers().ExportDeclarationTransformer)(), new (_transformers().ExportAssignmentTransformer)(), new (_transformers().FunctionLikeTransformer)(), new (_transformers().ParameterTransformer)(), new (_transformers().SetAccessorTransformer)(), new (_transformers().GetAccessorTransformer)(), new (_transformers().IndexSignatureTransformer)(), new (_transformers().PropertyDeclarationTransformer)(), new (_transformers().VariableStatementTransformer)(), new (_transformers().VariableDeclaration)(), new (_transformers().SourceFileTransformer)(), new (_transformers().TypeAliasTransformer)(), new (_transformers().ClassDeclarationTransformer)(), new (_transformers().InterfaceDeclarationTransformer)(), new (_transformers().EnumDeclarationTransformer)(), new (_transformers().BindingElementTransformer)(), new (_transformers().IntersectionTypeTransformer)(), new (_transformers().UnionTypeTransformer)(), new (_transformers().TypeReferenceTransformer)(), new (_transformers().TypeLiteralTransformer)(), new (_transformers().LiteralTypeTransformer)(), new (_transformers().TypeQueryTransformer)(), new (_transformers().ArrayTypeTransformer)(), new (_transformers().TypeOperatorTransformer)(), new (_transformers().KeywordTypeTransformer)(), new (_transformers().TupleTypeTransformer)(), new (_transformers().ParenthesizedTypeTransformer)(), new (_transformers().TypePredicateTransformer)(), new (_transformers().IndexedAccessTypeTransformer)(), new (_transformers().TemplateLiteralTypeSpanTransformer)(), new (_transformers().TemplateLiteralTypeTransformer)(), new (_transformers().ThisTypeTransformer)(), new (_transformers().ConditionalTypeTransformer)(), new (_transformers().NamedTupleTransformer)(), new (_transformers().ConstructorTransformer)(), new (_transformers().ImportDeclarationTransformer)()]);
|
|
388
397
|
if (workspace) {
|
|
389
398
|
watcher.registerOnPreWatch(tsMain.onPreWatch.bind(tsMain));
|
|
@@ -398,7 +407,7 @@ class TypescriptMain {
|
|
|
398
407
|
}
|
|
399
408
|
exports.TypescriptMain = TypescriptMain;
|
|
400
409
|
(0, _defineProperty2().default)(TypescriptMain, "runtime", _cli().MainRuntime);
|
|
401
|
-
(0, _defineProperty2().default)(TypescriptMain, "dependencies", [_schema().SchemaAspect, _logger().LoggerAspect, _aspectLoader().default, _workspace().WorkspaceAspect, _cli().CLIAspect, _dependencyResolver().DependencyResolverAspect, _envs().default, _watcher().default, _workspaceConfigFiles().default, _compiler().CompilerAspect]);
|
|
410
|
+
(0, _defineProperty2().default)(TypescriptMain, "dependencies", [_schema().SchemaAspect, _logger().LoggerAspect, _aspectLoader().default, _workspace().WorkspaceAspect, _cli().CLIAspect, _dependencyResolver().DependencyResolverAspect, _envs().default, _watcher().default, _workspaceConfigFiles().default, _compiler().CompilerAspect, _scope().ScopeAspect]);
|
|
402
411
|
(0, _defineProperty2().default)(TypescriptMain, "slots", [_harmony().Slot.withType()]);
|
|
403
412
|
_typescript3().TypescriptAspect.addRuntime(TypescriptMain);
|
|
404
413
|
function runTransformersWithContext(config, transformers = [], context) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["TypescriptMain","constructor","logger","schemaTransformerSlot","workspace","depResolver","envs","tsConfigWriter","aspectLoader","createCompiler","options","transformers","tsModule","ts","configMutator","TypescriptConfigMutator","transformerContext","afterMutation","runTransformersWithContext","clone","TypescriptCompiler","TypescriptAspect","id","raw","getTsserverClient","tsServer","initTsserverClient","projectPath","files","TsserverClient","init","initTsserverClientFromWorkspace","Error","path","createCjsCompiler","getCjsTransformer","createEsmCompiler","getEsmTransformer","cjsTransformer","config","setModule","esmTransformer","setTarget","tsconfig","compilerOptions","module","lib","createSchemaExtractor","TypeScriptExtractor","getCjsPackageJsonProps","main","types","getEsmPackageJsonProps","type","getSupportedFilesForTsserver","components","map","c","filesystem","flat","f","filter","endsWith","cleanTsconfigJson","list","runtime","createEnvironment","execContext","getEnvExecutionContext","results","TsconfigWriter","clean","writeTsconfigJson","cleanResults","writeResults","write","onPreWatch","watchOpts","spawnTSServer","verbose","checkTypes","printTypeErrors","Boolean","onComponentChange","component","pMapSeries","file","onFileChange","provider","schema","loggerExt","cli","watcher","workspaceConfigFiles","compiler","registerParser","TypeScriptParser","createLogger","registerConfigWriter","TypescriptConfigWriter","registerPlugins","SchemaTransformerPlugin","tsconfigWriter","tsMain","register","ExportDeclarationTransformer","ExportAssignmentTransformer","FunctionLikeTransformer","ParameterTransformer","SetAccessorTransformer","GetAccessorTransformer","IndexSignatureTransformer","PropertyDeclarationTransformer","VariableStatementTransformer","VariableDeclaration","SourceFileTransformer","TypeAliasTransformer","ClassDeclarationTransformer","InterfaceDeclarationTransformer","EnumDeclarationTransformer","BindingElementTransformer","IntersectionTypeTransformer","UnionTypeTransformer","TypeReferenceTransformer","TypeLiteralTransformer","LiteralTypeTransformer","TypeQueryTransformer","ArrayTypeTransformer","TypeOperatorTransformer","KeywordTypeTransformer","TupleTypeTransformer","ParenthesizedTypeTransformer","TypePredicateTransformer","IndexedAccessTypeTransformer","TemplateLiteralTypeSpanTransformer","TemplateLiteralTypeTransformer","ThisTypeTransformer","ConditionalTypeTransformer","NamedTupleTransformer","ConstructorTransformer","ImportDeclarationTransformer","registerOnPreWatch","bind","registerOnComponentChange","registerOnComponentAdd","checkTypesCmd","CheckTypesCmd","writeTsconfigCmd","WriteTsconfigCmd","MainRuntime","SchemaAspect","LoggerAspect","AspectLoaderAspect","WorkspaceAspect","CLIAspect","DependencyResolverAspect","EnvsAspect","WatcherAspect","WorkspaceConfigFilesAspect","CompilerAspect","Slot","withType","addRuntime","context","Array","isArray","newConfig","reduce","acc","transformer"],"sources":["typescript.main.runtime.ts"],"sourcesContent":["import ts from 'typescript';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { Compiler, CompilerAspect, CompilerMain } from '@teambit/compiler';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { SchemaAspect, SchemaExtractor, SchemaMain } from '@teambit/schema';\nimport { PackageJsonProps } from '@teambit/pkg';\nimport { TypescriptConfigMutator } from '@teambit/typescript.modules.ts-config-mutator';\nimport { WorkspaceAspect } from '@teambit/workspace';\nimport type { Workspace } from '@teambit/workspace';\nimport { DependencyResolverAspect, DependencyResolverMain } from '@teambit/dependency-resolver';\nimport pMapSeries from 'p-map-series';\nimport { TsserverClient, TsserverClientOpts } from '@teambit/ts-server';\nimport AspectLoaderAspect, { AspectLoaderMain } from '@teambit/aspect-loader';\nimport WorkspaceConfigFilesAspect, { WorkspaceConfigFilesMain } from '@teambit/workspace-config-files';\nimport WatcherAspect, { WatcherMain, WatchOptions } from '@teambit/watcher';\nimport type { Component } from '@teambit/component';\nimport EnvsAspect, { EnvsMain } from '@teambit/envs';\nimport { TypeScriptExtractor } from './typescript.extractor';\nimport { TypeScriptCompilerOptions } from './compiler-options';\nimport { TypescriptAspect } from './typescript.aspect';\nimport { TypescriptCompiler } from './typescript.compiler';\nimport { TypeScriptParser } from './typescript.parser';\nimport { SchemaTransformer } from './schema-transformer';\nimport { SchemaTransformerPlugin } from './schema-transformer.plugin';\nimport {\n ExportDeclarationTransformer,\n TypeAliasTransformer,\n FunctionLikeTransformer,\n SetAccessorTransformer,\n GetAccessorTransformer,\n IndexSignatureTransformer,\n PropertyDeclarationTransformer,\n ParameterTransformer,\n VariableStatementTransformer,\n VariableDeclaration,\n SourceFileTransformer,\n ClassDeclarationTransformer,\n InterfaceDeclarationTransformer,\n EnumDeclarationTransformer,\n BindingElementTransformer,\n ExportAssignmentTransformer,\n ImportDeclarationTransformer,\n IntersectionTypeTransformer,\n UnionTypeTransformer,\n TypeReferenceTransformer,\n TypeLiteralTransformer,\n LiteralTypeTransformer,\n TypeQueryTransformer,\n ArrayTypeTransformer,\n TypeOperatorTransformer,\n KeywordTypeTransformer,\n TupleTypeTransformer,\n ParenthesizedTypeTransformer,\n TypePredicateTransformer,\n IndexedAccessTypeTransformer,\n TemplateLiteralTypeSpanTransformer,\n TemplateLiteralTypeTransformer,\n ThisTypeTransformer,\n ConditionalTypeTransformer,\n NamedTupleTransformer,\n ConstructorTransformer,\n} from './transformers';\nimport { CheckTypesCmd } from './cmds/check-types.cmd';\nimport { TsconfigPathsPerEnv, TsconfigWriter } from './tsconfig-writer';\nimport WriteTsconfigCmd from './cmds/write-tsconfig.cmd';\nimport { TypescriptConfigWriter } from './ts-config-writer';\n\nexport type TsMode = 'build' | 'dev';\n\nexport type SchemaTransformerSlot = SlotRegistry<SchemaTransformer[]>;\n\nexport type TsConfigTransformContext = {\n // mode: TsMode;\n};\n\nexport type TsconfigWriterOptions = {\n clean?: boolean;\n silent?: boolean; // no prompt\n dedupe?: boolean;\n dryRun?: boolean;\n dryRunWithTsconfig?: boolean;\n};\n\nexport type TsConfigTransformer = (\n config: TypescriptConfigMutator,\n context: TsConfigTransformContext\n) => TypescriptConfigMutator;\n\nexport class TypescriptMain {\n constructor(\n private logger: Logger,\n readonly schemaTransformerSlot: SchemaTransformerSlot,\n readonly workspace: Workspace,\n readonly depResolver: DependencyResolverMain,\n private envs: EnvsMain,\n private tsConfigWriter: TsconfigWriter,\n private aspectLoader: AspectLoaderMain\n ) {}\n\n private tsServer: TsserverClient;\n /**\n * create a new compiler.\n */\n createCompiler(\n options: TypeScriptCompilerOptions,\n transformers: TsConfigTransformer[] = [],\n tsModule = ts\n ): Compiler {\n const configMutator = new TypescriptConfigMutator(options);\n const transformerContext: TsConfigTransformContext = {};\n const afterMutation = runTransformersWithContext(configMutator.clone(), transformers, transformerContext);\n return new TypescriptCompiler(TypescriptAspect.id, this.logger, afterMutation.raw, tsModule);\n }\n\n /**\n * get TsserverClient instance if initiated already, otherwise, return undefined.\n */\n getTsserverClient(): TsserverClient | undefined {\n return this.tsServer;\n }\n\n /**\n * starts a tsserver process to communicate with its API.\n * @param projectPath absolute path of the project root directory\n * @param options TsserverClientOpts\n * @param files optionally, if check-types is enabled, provide files to open and type check.\n * @returns TsserverClient\n */\n async initTsserverClient(\n projectPath: string,\n options: TsserverClientOpts = {},\n files: string[] = []\n ): Promise<TsserverClient> {\n this.tsServer = new TsserverClient(projectPath, this.logger, options, files);\n this.tsServer.init();\n return this.tsServer;\n }\n\n /**\n * starts a tsserver process to communicate with its API. use only when running on the workspace.\n * @param options TsserverClientOpts\n * @param files optionally, if check-types is enabled, provide files to open and type check.\n * @returns TsserverClient\n */\n async initTsserverClientFromWorkspace(\n options: TsserverClientOpts = {},\n files: string[] = []\n ): Promise<TsserverClient> {\n if (!this.workspace) {\n throw new Error(`initTsserverClientFromWorkspace: workspace was not found`);\n }\n return this.initTsserverClient(this.workspace.path, options, files);\n }\n\n /**\n * Create a compiler instance and run the cjs transformer for it\n * @param options\n * @param transformers\n * @param tsModule\n * @returns\n */\n createCjsCompiler(options: TypeScriptCompilerOptions, transformers: TsConfigTransformer[] = [], tsModule = ts) {\n return this.createCompiler(options, [this.getCjsTransformer(), ...transformers], tsModule);\n }\n\n /**\n * Create a compiler instance and run the esm transformer for it\n * @param options\n * @param transformers\n * @param tsModule\n * @returns\n */\n createEsmCompiler(options: TypeScriptCompilerOptions, transformers: TsConfigTransformer[] = [], tsModule = ts) {\n return this.createCompiler(options, [this.getEsmTransformer(), ...transformers], tsModule);\n }\n\n /**\n * Create a transformer that change the ts module to CommonJS\n * @returns\n */\n getCjsTransformer(): TsConfigTransformer {\n const cjsTransformer = (config: TypescriptConfigMutator) => {\n config.setModule('CommonJS');\n return config;\n };\n return cjsTransformer;\n }\n\n /**\n * Create a transformer that change the ts module to ES2020\n * @returns\n */\n getEsmTransformer(): TsConfigTransformer {\n const esmTransformer = (config: TypescriptConfigMutator) => {\n config.setTarget('ES2017');\n config.raw.tsconfig.compilerOptions.module = 'es2020';\n config.raw.tsconfig.compilerOptions.lib = ['es2021', 'dom', 'ESNext.String', 'dom.Iterable'];\n return config;\n };\n return esmTransformer;\n }\n\n /**\n * create an instance of a typescript semantic schema extractor.\n */\n createSchemaExtractor(tsconfig: any, path?: string): SchemaExtractor {\n return new TypeScriptExtractor(\n tsconfig,\n this.schemaTransformerSlot,\n this,\n path || this.workspace.path,\n this.depResolver,\n this.workspace,\n this.aspectLoader,\n this.logger\n );\n }\n\n /**\n * add the default package json properties to the component\n * :TODO @gilad why do we need this DSL? can't I just get the args here.\n */\n getCjsPackageJsonProps(): PackageJsonProps {\n return {\n main: 'dist/{main}.js',\n types: '{main}.ts',\n };\n }\n\n /**\n * add type: module to the package.json props and the default props\n * :TODO @gilad why do we need this DSL? can't I just get the args here.\n */\n getEsmPackageJsonProps(): PackageJsonProps {\n return {\n // main: 'dist-esm/{main}.js',\n main: 'dist/{main}.js',\n type: 'module',\n types: '{main}.ts',\n };\n }\n\n getSupportedFilesForTsserver(components: Component[]): string[] {\n const files = components\n .map((c) => c.filesystem.files)\n .flat()\n .map((f) => f.path);\n return files.filter((f) => f.endsWith('.ts') || f.endsWith('.tsx'));\n }\n\n async cleanTsconfigJson(options: TsconfigWriterOptions = {}) {\n const components = await this.workspace.list();\n const runtime = await this.envs.createEnvironment(components);\n const execContext = runtime.getEnvExecutionContext();\n\n const results = await new TsconfigWriter(this.workspace, this.logger).clean(execContext, options);\n\n return results;\n }\n\n async writeTsconfigJson(options: TsconfigWriterOptions = {}): Promise<{\n cleanResults?: string[];\n writeResults: TsconfigPathsPerEnv[];\n }> {\n const components = await this.workspace.list();\n const runtime = await this.envs.createEnvironment(components);\n const execContext = runtime.getEnvExecutionContext();\n\n let cleanResults: string[] | undefined;\n if (options.clean) {\n cleanResults = await this.tsConfigWriter.clean(execContext, options);\n }\n\n const writeResults = await this.tsConfigWriter.write(execContext, options);\n\n return { writeResults, cleanResults };\n }\n\n private async onPreWatch(components: Component[], watchOpts: WatchOptions) {\n const workspace = this.workspace;\n if (!workspace || !watchOpts.spawnTSServer) {\n return;\n }\n const { verbose, checkTypes } = watchOpts;\n const files = checkTypes ? this.getSupportedFilesForTsserver(components) : [];\n const printTypeErrors = Boolean(checkTypes);\n await this.initTsserverClientFromWorkspace({ verbose, checkTypes, printTypeErrors }, files);\n }\n\n private async onComponentChange(component: Component, files: string[]) {\n if (!this.tsServer) {\n return {\n results: 'N/A',\n };\n }\n await pMapSeries(files, (file) => this.tsServer.onFileChange(file));\n return {\n results: 'succeed',\n };\n }\n\n static runtime = MainRuntime;\n static dependencies = [\n SchemaAspect,\n LoggerAspect,\n AspectLoaderAspect,\n WorkspaceAspect,\n CLIAspect,\n DependencyResolverAspect,\n EnvsAspect,\n WatcherAspect,\n WorkspaceConfigFilesAspect,\n CompilerAspect,\n ];\n static slots = [Slot.withType<SchemaTransformer[]>()];\n\n static async provider(\n [schema, loggerExt, aspectLoader, workspace, cli, depResolver, envs, watcher, workspaceConfigFiles, compiler]: [\n SchemaMain,\n LoggerMain,\n AspectLoaderMain,\n Workspace,\n CLIMain,\n DependencyResolverMain,\n EnvsMain,\n WatcherMain,\n WorkspaceConfigFilesMain,\n CompilerMain\n ],\n config,\n [schemaTransformerSlot]: [SchemaTransformerSlot]\n ) {\n schema.registerParser(new TypeScriptParser());\n const logger = loggerExt.createLogger(TypescriptAspect.id);\n workspaceConfigFiles.registerConfigWriter(new TypescriptConfigWriter(compiler, logger));\n\n aspectLoader.registerPlugins([new SchemaTransformerPlugin(schemaTransformerSlot)]);\n const tsconfigWriter = new TsconfigWriter(workspace, logger);\n const tsMain = new TypescriptMain(\n logger,\n schemaTransformerSlot,\n workspace,\n depResolver,\n envs,\n tsconfigWriter,\n aspectLoader\n );\n schemaTransformerSlot.register([\n new ExportDeclarationTransformer(),\n new ExportAssignmentTransformer(),\n new FunctionLikeTransformer(),\n new ParameterTransformer(),\n new SetAccessorTransformer(),\n new GetAccessorTransformer(),\n new IndexSignatureTransformer(),\n new PropertyDeclarationTransformer(),\n new VariableStatementTransformer(),\n new VariableDeclaration(),\n new SourceFileTransformer(),\n new TypeAliasTransformer(),\n new ClassDeclarationTransformer(),\n new InterfaceDeclarationTransformer(),\n new EnumDeclarationTransformer(),\n new BindingElementTransformer(),\n new IntersectionTypeTransformer(),\n new UnionTypeTransformer(),\n new TypeReferenceTransformer(),\n new TypeLiteralTransformer(),\n new LiteralTypeTransformer(),\n new TypeQueryTransformer(),\n new ArrayTypeTransformer(),\n new TypeOperatorTransformer(),\n new KeywordTypeTransformer(),\n new TupleTypeTransformer(),\n new ParenthesizedTypeTransformer(),\n new TypePredicateTransformer(),\n new IndexedAccessTypeTransformer(),\n new TemplateLiteralTypeSpanTransformer(),\n new TemplateLiteralTypeTransformer(),\n new ThisTypeTransformer(),\n new ConditionalTypeTransformer(),\n new NamedTupleTransformer(),\n new ConstructorTransformer(),\n new ImportDeclarationTransformer(),\n ]);\n\n if (workspace) {\n watcher.registerOnPreWatch(tsMain.onPreWatch.bind(tsMain));\n workspace.registerOnComponentChange(tsMain.onComponentChange.bind(tsMain));\n workspace.registerOnComponentAdd(tsMain.onComponentChange.bind(tsMain));\n }\n\n const checkTypesCmd = new CheckTypesCmd(tsMain, workspace, logger);\n const writeTsconfigCmd = new WriteTsconfigCmd(tsMain);\n cli.register(checkTypesCmd, writeTsconfigCmd);\n\n return tsMain;\n }\n}\n\nTypescriptAspect.addRuntime(TypescriptMain);\n\nexport function runTransformersWithContext(\n config: TypescriptConfigMutator,\n transformers: TsConfigTransformer[] = [],\n context: TsConfigTransformContext\n): TypescriptConfigMutator {\n if (!Array.isArray(transformers)) return config;\n const newConfig = transformers.reduce((acc, transformer) => {\n return transformer(acc, context);\n }, config);\n return newConfig;\n}\n\nexport default TypescriptMain;\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;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;AAEA;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;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAsCA;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;AAuBO,MAAMA,cAAc,CAAC;EAC1BC,WAAW,CACDC,MAAc,EACbC,qBAA4C,EAC5CC,SAAoB,EACpBC,WAAmC,EACpCC,IAAc,EACdC,cAA8B,EAC9BC,YAA8B,EACtC;IAAA,KAPQN,MAAc,GAAdA,MAAc;IAAA,KACbC,qBAA4C,GAA5CA,qBAA4C;IAAA,KAC5CC,SAAoB,GAApBA,SAAoB;IAAA,KACpBC,WAAmC,GAAnCA,WAAmC;IAAA,KACpCC,IAAc,GAAdA,IAAc;IAAA,KACdC,cAA8B,GAA9BA,cAA8B;IAAA,KAC9BC,YAA8B,GAA9BA,YAA8B;IAAA;EACrC;EAGH;AACF;AACA;EACEC,cAAc,CACZC,OAAkC,EAClCC,YAAmC,GAAG,EAAE,EACxCC,QAAQ,GAAGC,qBAAE,EACH;IACV,MAAMC,aAAa,GAAG,KAAIC,4CAAuB,EAACL,OAAO,CAAC;IAC1D,MAAMM,kBAA4C,GAAG,CAAC,CAAC;IACvD,MAAMC,aAAa,GAAGC,0BAA0B,CAACJ,aAAa,CAACK,KAAK,EAAE,EAAER,YAAY,EAAEK,kBAAkB,CAAC;IACzG,OAAO,KAAII,iCAAkB,EAACC,+BAAgB,CAACC,EAAE,EAAE,IAAI,CAACpB,MAAM,EAAEe,aAAa,CAACM,GAAG,EAAEX,QAAQ,CAAC;EAC9F;;EAEA;AACF;AACA;EACEY,iBAAiB,GAA+B;IAC9C,OAAO,IAAI,CAACC,QAAQ;EACtB;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;EACE,MAAMC,kBAAkB,CACtBC,WAAmB,EACnBjB,OAA2B,GAAG,CAAC,CAAC,EAChCkB,KAAe,GAAG,EAAE,EACK;IACzB,IAAI,CAACH,QAAQ,GAAG,KAAII,0BAAc,EAACF,WAAW,EAAE,IAAI,CAACzB,MAAM,EAAEQ,OAAO,EAAEkB,KAAK,CAAC;IAC5E,IAAI,CAACH,QAAQ,CAACK,IAAI,EAAE;IACpB,OAAO,IAAI,CAACL,QAAQ;EACtB;;EAEA;AACF;AACA;AACA;AACA;AACA;EACE,MAAMM,+BAA+B,CACnCrB,OAA2B,GAAG,CAAC,CAAC,EAChCkB,KAAe,GAAG,EAAE,EACK;IACzB,IAAI,CAAC,IAAI,CAACxB,SAAS,EAAE;MACnB,MAAM,IAAI4B,KAAK,CAAE,0DAAyD,CAAC;IAC7E;IACA,OAAO,IAAI,CAACN,kBAAkB,CAAC,IAAI,CAACtB,SAAS,CAAC6B,IAAI,EAAEvB,OAAO,EAAEkB,KAAK,CAAC;EACrE;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;EACEM,iBAAiB,CAACxB,OAAkC,EAAEC,YAAmC,GAAG,EAAE,EAAEC,QAAQ,GAAGC,qBAAE,EAAE;IAC7G,OAAO,IAAI,CAACJ,cAAc,CAACC,OAAO,EAAE,CAAC,IAAI,CAACyB,iBAAiB,EAAE,EAAE,GAAGxB,YAAY,CAAC,EAAEC,QAAQ,CAAC;EAC5F;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;EACEwB,iBAAiB,CAAC1B,OAAkC,EAAEC,YAAmC,GAAG,EAAE,EAAEC,QAAQ,GAAGC,qBAAE,EAAE;IAC7G,OAAO,IAAI,CAACJ,cAAc,CAACC,OAAO,EAAE,CAAC,IAAI,CAAC2B,iBAAiB,EAAE,EAAE,GAAG1B,YAAY,CAAC,EAAEC,QAAQ,CAAC;EAC5F;;EAEA;AACF;AACA;AACA;EACEuB,iBAAiB,GAAwB;IACvC,MAAMG,cAAc,GAAIC,MAA+B,IAAK;MAC1DA,MAAM,CAACC,SAAS,CAAC,UAAU,CAAC;MAC5B,OAAOD,MAAM;IACf,CAAC;IACD,OAAOD,cAAc;EACvB;;EAEA;AACF;AACA;AACA;EACED,iBAAiB,GAAwB;IACvC,MAAMI,cAAc,GAAIF,MAA+B,IAAK;MAC1DA,MAAM,CAACG,SAAS,CAAC,QAAQ,CAAC;MAC1BH,MAAM,CAAChB,GAAG,CAACoB,QAAQ,CAACC,eAAe,CAACC,MAAM,GAAG,QAAQ;MACrDN,MAAM,CAAChB,GAAG,CAACoB,QAAQ,CAACC,eAAe,CAACE,GAAG,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,eAAe,EAAE,cAAc,CAAC;MAC5F,OAAOP,MAAM;IACf,CAAC;IACD,OAAOE,cAAc;EACvB;;EAEA;AACF;AACA;EACEM,qBAAqB,CAACJ,QAAa,EAAEV,IAAa,EAAmB;IACnE,OAAO,KAAIe,kCAAmB,EAC5BL,QAAQ,EACR,IAAI,CAACxC,qBAAqB,EAC1B,IAAI,EACJ8B,IAAI,IAAI,IAAI,CAAC7B,SAAS,CAAC6B,IAAI,EAC3B,IAAI,CAAC5B,WAAW,EAChB,IAAI,CAACD,SAAS,EACd,IAAI,CAACI,YAAY,EACjB,IAAI,CAACN,MAAM,CACZ;EACH;;EAEA;AACF;AACA;AACA;EACE+C,sBAAsB,GAAqB;IACzC,OAAO;MACLC,IAAI,EAAE,gBAAgB;MACtBC,KAAK,EAAE;IACT,CAAC;EACH;;EAEA;AACF;AACA;AACA;EACEC,sBAAsB,GAAqB;IACzC,OAAO;MACL;MACAF,IAAI,EAAE,gBAAgB;MACtBG,IAAI,EAAE,QAAQ;MACdF,KAAK,EAAE;IACT,CAAC;EACH;EAEAG,4BAA4B,CAACC,UAAuB,EAAY;IAC9D,MAAM3B,KAAK,GAAG2B,UAAU,CACrBC,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAACC,UAAU,CAAC9B,KAAK,CAAC,CAC9B+B,IAAI,EAAE,CACNH,GAAG,CAAEI,CAAC,IAAKA,CAAC,CAAC3B,IAAI,CAAC;IACrB,OAAOL,KAAK,CAACiC,MAAM,CAAED,CAAC,IAAKA,CAAC,CAACE,QAAQ,CAAC,KAAK,CAAC,IAAIF,CAAC,CAACE,QAAQ,CAAC,MAAM,CAAC,CAAC;EACrE;EAEA,MAAMC,iBAAiB,CAACrD,OAA8B,GAAG,CAAC,CAAC,EAAE;IAC3D,MAAM6C,UAAU,GAAG,MAAM,IAAI,CAACnD,SAAS,CAAC4D,IAAI,EAAE;IAC9C,MAAMC,OAAO,GAAG,MAAM,IAAI,CAAC3D,IAAI,CAAC4D,iBAAiB,CAACX,UAAU,CAAC;IAC7D,MAAMY,WAAW,GAAGF,OAAO,CAACG,sBAAsB,EAAE;IAEpD,MAAMC,OAAO,GAAG,MAAM,KAAIC,gCAAc,EAAC,IAAI,CAAClE,SAAS,EAAE,IAAI,CAACF,MAAM,CAAC,CAACqE,KAAK,CAACJ,WAAW,EAAEzD,OAAO,CAAC;IAEjG,OAAO2D,OAAO;EAChB;EAEA,MAAMG,iBAAiB,CAAC9D,OAA8B,GAAG,CAAC,CAAC,EAGxD;IACD,MAAM6C,UAAU,GAAG,MAAM,IAAI,CAACnD,SAAS,CAAC4D,IAAI,EAAE;IAC9C,MAAMC,OAAO,GAAG,MAAM,IAAI,CAAC3D,IAAI,CAAC4D,iBAAiB,CAACX,UAAU,CAAC;IAC7D,MAAMY,WAAW,GAAGF,OAAO,CAACG,sBAAsB,EAAE;IAEpD,IAAIK,YAAkC;IACtC,IAAI/D,OAAO,CAAC6D,KAAK,EAAE;MACjBE,YAAY,GAAG,MAAM,IAAI,CAAClE,cAAc,CAACgE,KAAK,CAACJ,WAAW,EAAEzD,OAAO,CAAC;IACtE;IAEA,MAAMgE,YAAY,GAAG,MAAM,IAAI,CAACnE,cAAc,CAACoE,KAAK,CAACR,WAAW,EAAEzD,OAAO,CAAC;IAE1E,OAAO;MAAEgE,YAAY;MAAED;IAAa,CAAC;EACvC;EAEA,MAAcG,UAAU,CAACrB,UAAuB,EAAEsB,SAAuB,EAAE;IACzE,MAAMzE,SAAS,GAAG,IAAI,CAACA,SAAS;IAChC,IAAI,CAACA,SAAS,IAAI,CAACyE,SAAS,CAACC,aAAa,EAAE;MAC1C;IACF;IACA,MAAM;MAAEC,OAAO;MAAEC;IAAW,CAAC,GAAGH,SAAS;IACzC,MAAMjD,KAAK,GAAGoD,UAAU,GAAG,IAAI,CAAC1B,4BAA4B,CAACC,UAAU,CAAC,GAAG,EAAE;IAC7E,MAAM0B,eAAe,GAAGC,OAAO,CAACF,UAAU,CAAC;IAC3C,MAAM,IAAI,CAACjD,+BAA+B,CAAC;MAAEgD,OAAO;MAAEC,UAAU;MAAEC;IAAgB,CAAC,EAAErD,KAAK,CAAC;EAC7F;EAEA,MAAcuD,iBAAiB,CAACC,SAAoB,EAAExD,KAAe,EAAE;IACrE,IAAI,CAAC,IAAI,CAACH,QAAQ,EAAE;MAClB,OAAO;QACL4C,OAAO,EAAE;MACX,CAAC;IACH;IACA,MAAM,IAAAgB,qBAAU,EAACzD,KAAK,EAAG0D,IAAI,IAAK,IAAI,CAAC7D,QAAQ,CAAC8D,YAAY,CAACD,IAAI,CAAC,CAAC;IACnE,OAAO;MACLjB,OAAO,EAAE;IACX,CAAC;EACH;EAiBA,aAAamB,QAAQ,CACnB,CAACC,MAAM,EAAEC,SAAS,EAAElF,YAAY,EAAEJ,SAAS,EAAEuF,GAAG,EAAEtF,WAAW,EAAEC,IAAI,EAAEsF,OAAO,EAAEC,oBAAoB,EAAEC,QAAQ,CAW3G,EACDvD,MAAM,EACN,CAACpC,qBAAqB,CAA0B,EAChD;IACAsF,MAAM,CAACM,cAAc,CAAC,KAAIC,+BAAgB,GAAE,CAAC;IAC7C,MAAM9F,MAAM,GAAGwF,SAAS,CAACO,YAAY,CAAC5E,+BAAgB,CAACC,EAAE,CAAC;IAC1DuE,oBAAoB,CAACK,oBAAoB,CAAC,KAAIC,wCAAsB,EAACL,QAAQ,EAAE5F,MAAM,CAAC,CAAC;IAEvFM,YAAY,CAAC4F,eAAe,CAAC,CAAC,KAAIC,4CAAuB,EAAClG,qBAAqB,CAAC,CAAC,CAAC;IAClF,MAAMmG,cAAc,GAAG,KAAIhC,gCAAc,EAAClE,SAAS,EAAEF,MAAM,CAAC;IAC5D,MAAMqG,MAAM,GAAG,IAAIvG,cAAc,CAC/BE,MAAM,EACNC,qBAAqB,EACrBC,SAAS,EACTC,WAAW,EACXC,IAAI,EACJgG,cAAc,EACd9F,YAAY,CACb;IACDL,qBAAqB,CAACqG,QAAQ,CAAC,CAC7B,KAAIC,4CAA4B,GAAE,EAClC,KAAIC,2CAA2B,GAAE,EACjC,KAAIC,uCAAuB,GAAE,EAC7B,KAAIC,oCAAoB,GAAE,EAC1B,KAAIC,sCAAsB,GAAE,EAC5B,KAAIC,sCAAsB,GAAE,EAC5B,KAAIC,yCAAyB,GAAE,EAC/B,KAAIC,8CAA8B,GAAE,EACpC,KAAIC,4CAA4B,GAAE,EAClC,KAAIC,mCAAmB,GAAE,EACzB,KAAIC,qCAAqB,GAAE,EAC3B,KAAIC,oCAAoB,GAAE,EAC1B,KAAIC,2CAA2B,GAAE,EACjC,KAAIC,+CAA+B,GAAE,EACrC,KAAIC,0CAA0B,GAAE,EAChC,KAAIC,yCAAyB,GAAE,EAC/B,KAAIC,2CAA2B,GAAE,EACjC,KAAIC,oCAAoB,GAAE,EAC1B,KAAIC,wCAAwB,GAAE,EAC9B,KAAIC,sCAAsB,GAAE,EAC5B,KAAIC,sCAAsB,GAAE,EAC5B,KAAIC,oCAAoB,GAAE,EAC1B,KAAIC,oCAAoB,GAAE,EAC1B,KAAIC,uCAAuB,GAAE,EAC7B,KAAIC,sCAAsB,GAAE,EAC5B,KAAIC,oCAAoB,GAAE,EAC1B,KAAIC,4CAA4B,GAAE,EAClC,KAAIC,wCAAwB,GAAE,EAC9B,KAAIC,4CAA4B,GAAE,EAClC,KAAIC,kDAAkC,GAAE,EACxC,KAAIC,8CAA8B,GAAE,EACpC,KAAIC,mCAAmB,GAAE,EACzB,KAAIC,0CAA0B,GAAE,EAChC,KAAIC,qCAAqB,GAAE,EAC3B,KAAIC,sCAAsB,GAAE,EAC5B,KAAIC,4CAA4B,GAAE,CACnC,CAAC;IAEF,IAAIxI,SAAS,EAAE;MACbwF,OAAO,CAACiD,kBAAkB,CAACtC,MAAM,CAAC3B,UAAU,CAACkE,IAAI,CAACvC,MAAM,CAAC,CAAC;MAC1DnG,SAAS,CAAC2I,yBAAyB,CAACxC,MAAM,CAACpB,iBAAiB,CAAC2D,IAAI,CAACvC,MAAM,CAAC,CAAC;MAC1EnG,SAAS,CAAC4I,sBAAsB,CAACzC,MAAM,CAACpB,iBAAiB,CAAC2D,IAAI,CAACvC,MAAM,CAAC,CAAC;IACzE;IAEA,MAAM0C,aAAa,GAAG,KAAIC,2BAAa,EAAC3C,MAAM,EAAEnG,SAAS,EAAEF,MAAM,CAAC;IAClE,MAAMiJ,gBAAgB,GAAG,KAAIC,wBAAgB,EAAC7C,MAAM,CAAC;IACrDZ,GAAG,CAACa,QAAQ,CAACyC,aAAa,EAAEE,gBAAgB,CAAC;IAE7C,OAAO5C,MAAM;EACf;AACF;AAAC;AAAA,gCAtTYvG,cAAc,aAqNRqJ,kBAAW;AAAA,gCArNjBrJ,cAAc,kBAsNH,CACpBsJ,sBAAY,EACZC,sBAAY,EACZC,uBAAkB,EAClBC,4BAAe,EACfC,gBAAS,EACTC,8CAAwB,EACxBC,eAAU,EACVC,kBAAa,EACbC,+BAA0B,EAC1BC,0BAAc,CACf;AAAA,gCAjOU/J,cAAc,WAkOV,CAACgK,eAAI,CAACC,QAAQ,EAAuB,CAAC;AAsFvD5I,+BAAgB,CAAC6I,UAAU,CAAClK,cAAc,CAAC;AAEpC,SAASkB,0BAA0B,CACxCqB,MAA+B,EAC/B5B,YAAmC,GAAG,EAAE,EACxCwJ,OAAiC,EACR;EACzB,IAAI,CAACC,KAAK,CAACC,OAAO,CAAC1J,YAAY,CAAC,EAAE,OAAO4B,MAAM;EAC/C,MAAM+H,SAAS,GAAG3J,YAAY,CAAC4J,MAAM,CAAC,CAACC,GAAG,EAAEC,WAAW,KAAK;IAC1D,OAAOA,WAAW,CAACD,GAAG,EAAEL,OAAO,CAAC;EAClC,CAAC,EAAE5H,MAAM,CAAC;EACV,OAAO+H,SAAS;AAClB;AAAC,eAEctK,cAAc;AAAA"}
|
|
1
|
+
{"version":3,"names":["TypescriptMain","constructor","logger","schemaTransformerSlot","workspace","scope","depResolver","envs","tsConfigWriter","aspectLoader","createCompiler","options","transformers","tsModule","ts","configMutator","TypescriptConfigMutator","transformerContext","afterMutation","runTransformersWithContext","clone","TypescriptCompiler","TypescriptAspect","id","raw","getTsserverClient","tsServer","initTsserverClient","projectPath","files","TsserverClient","init","initTsserverClientFromWorkspace","Error","path","createCjsCompiler","getCjsTransformer","createEsmCompiler","getEsmTransformer","cjsTransformer","config","setModule","esmTransformer","setTarget","tsconfig","compilerOptions","module","lib","createSchemaExtractor","TypeScriptExtractor","getCjsPackageJsonProps","main","types","getEsmPackageJsonProps","type","getSupportedFilesForTsserver","components","map","c","filesystem","flat","f","filter","endsWith","cleanTsconfigJson","list","runtime","createEnvironment","execContext","getEnvExecutionContext","results","TsconfigWriter","clean","writeTsconfigJson","cleanResults","writeResults","write","onPreWatch","watchOpts","spawnTSServer","verbose","checkTypes","printTypeErrors","Boolean","onComponentChange","component","pMapSeries","file","onFileChange","provider","schema","loggerExt","cli","watcher","workspaceConfigFiles","compiler","registerParser","TypeScriptParser","createLogger","registerConfigWriter","TypescriptConfigWriter","registerPlugins","SchemaTransformerPlugin","tsconfigWriter","tsMain","register","ExportDeclarationTransformer","ExportAssignmentTransformer","FunctionLikeTransformer","ParameterTransformer","SetAccessorTransformer","GetAccessorTransformer","IndexSignatureTransformer","PropertyDeclarationTransformer","VariableStatementTransformer","VariableDeclaration","SourceFileTransformer","TypeAliasTransformer","ClassDeclarationTransformer","InterfaceDeclarationTransformer","EnumDeclarationTransformer","BindingElementTransformer","IntersectionTypeTransformer","UnionTypeTransformer","TypeReferenceTransformer","TypeLiteralTransformer","LiteralTypeTransformer","TypeQueryTransformer","ArrayTypeTransformer","TypeOperatorTransformer","KeywordTypeTransformer","TupleTypeTransformer","ParenthesizedTypeTransformer","TypePredicateTransformer","IndexedAccessTypeTransformer","TemplateLiteralTypeSpanTransformer","TemplateLiteralTypeTransformer","ThisTypeTransformer","ConditionalTypeTransformer","NamedTupleTransformer","ConstructorTransformer","ImportDeclarationTransformer","registerOnPreWatch","bind","registerOnComponentChange","registerOnComponentAdd","checkTypesCmd","CheckTypesCmd","writeTsconfigCmd","WriteTsconfigCmd","MainRuntime","SchemaAspect","LoggerAspect","AspectLoaderAspect","WorkspaceAspect","CLIAspect","DependencyResolverAspect","EnvsAspect","WatcherAspect","WorkspaceConfigFilesAspect","CompilerAspect","ScopeAspect","Slot","withType","addRuntime","context","Array","isArray","newConfig","reduce","acc","transformer"],"sources":["typescript.main.runtime.ts"],"sourcesContent":["import ts from 'typescript';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { Compiler, CompilerAspect, CompilerMain } from '@teambit/compiler';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { SchemaAspect, SchemaExtractor, SchemaMain } from '@teambit/schema';\nimport { PackageJsonProps } from '@teambit/pkg';\nimport { TypescriptConfigMutator } from '@teambit/typescript.modules.ts-config-mutator';\nimport { WorkspaceAspect } from '@teambit/workspace';\nimport type { Workspace } from '@teambit/workspace';\nimport { DependencyResolverAspect, DependencyResolverMain } from '@teambit/dependency-resolver';\nimport pMapSeries from 'p-map-series';\nimport { TsserverClient, TsserverClientOpts } from '@teambit/ts-server';\nimport AspectLoaderAspect, { AspectLoaderMain } from '@teambit/aspect-loader';\nimport WorkspaceConfigFilesAspect, { WorkspaceConfigFilesMain } from '@teambit/workspace-config-files';\nimport WatcherAspect, { WatcherMain, WatchOptions } from '@teambit/watcher';\nimport type { Component } from '@teambit/component';\nimport EnvsAspect, { EnvsMain } from '@teambit/envs';\nimport { ScopeMain, ScopeAspect } from '@teambit/scope';\nimport { TypeScriptExtractor } from './typescript.extractor';\nimport { TypeScriptCompilerOptions } from './compiler-options';\nimport { TypescriptAspect } from './typescript.aspect';\nimport { TypescriptCompiler } from './typescript.compiler';\nimport { TypeScriptParser } from './typescript.parser';\nimport { SchemaTransformer } from './schema-transformer';\nimport { SchemaTransformerPlugin } from './schema-transformer.plugin';\nimport {\n ExportDeclarationTransformer,\n TypeAliasTransformer,\n FunctionLikeTransformer,\n SetAccessorTransformer,\n GetAccessorTransformer,\n IndexSignatureTransformer,\n PropertyDeclarationTransformer,\n ParameterTransformer,\n VariableStatementTransformer,\n VariableDeclaration,\n SourceFileTransformer,\n ClassDeclarationTransformer,\n InterfaceDeclarationTransformer,\n EnumDeclarationTransformer,\n BindingElementTransformer,\n ExportAssignmentTransformer,\n ImportDeclarationTransformer,\n IntersectionTypeTransformer,\n UnionTypeTransformer,\n TypeReferenceTransformer,\n TypeLiteralTransformer,\n LiteralTypeTransformer,\n TypeQueryTransformer,\n ArrayTypeTransformer,\n TypeOperatorTransformer,\n KeywordTypeTransformer,\n TupleTypeTransformer,\n ParenthesizedTypeTransformer,\n TypePredicateTransformer,\n IndexedAccessTypeTransformer,\n TemplateLiteralTypeSpanTransformer,\n TemplateLiteralTypeTransformer,\n ThisTypeTransformer,\n ConditionalTypeTransformer,\n NamedTupleTransformer,\n ConstructorTransformer,\n} from './transformers';\nimport { CheckTypesCmd } from './cmds/check-types.cmd';\nimport { TsconfigPathsPerEnv, TsconfigWriter } from './tsconfig-writer';\nimport WriteTsconfigCmd from './cmds/write-tsconfig.cmd';\nimport { TypescriptConfigWriter } from './ts-config-writer';\n\nexport type TsMode = 'build' | 'dev';\n\nexport type SchemaTransformerSlot = SlotRegistry<SchemaTransformer[]>;\n\nexport type TsConfigTransformContext = {\n // mode: TsMode;\n};\n\nexport type TsconfigWriterOptions = {\n clean?: boolean;\n silent?: boolean; // no prompt\n dedupe?: boolean;\n dryRun?: boolean;\n dryRunWithTsconfig?: boolean;\n};\n\nexport type TsConfigTransformer = (\n config: TypescriptConfigMutator,\n context: TsConfigTransformContext\n) => TypescriptConfigMutator;\n\nexport class TypescriptMain {\n constructor(\n private logger: Logger,\n readonly schemaTransformerSlot: SchemaTransformerSlot,\n readonly workspace: Workspace,\n readonly scope: ScopeMain,\n readonly depResolver: DependencyResolverMain,\n private envs: EnvsMain,\n private tsConfigWriter: TsconfigWriter,\n private aspectLoader: AspectLoaderMain\n ) {}\n\n private tsServer: TsserverClient;\n /**\n * create a new compiler.\n */\n createCompiler(\n options: TypeScriptCompilerOptions,\n transformers: TsConfigTransformer[] = [],\n tsModule = ts\n ): Compiler {\n const configMutator = new TypescriptConfigMutator(options);\n const transformerContext: TsConfigTransformContext = {};\n const afterMutation = runTransformersWithContext(configMutator.clone(), transformers, transformerContext);\n return new TypescriptCompiler(TypescriptAspect.id, this.logger, afterMutation.raw, tsModule);\n }\n\n /**\n * get TsserverClient instance if initiated already, otherwise, return undefined.\n */\n getTsserverClient(): TsserverClient | undefined {\n return this.tsServer;\n }\n\n /**\n * starts a tsserver process to communicate with its API.\n * @param projectPath absolute path of the project root directory\n * @param options TsserverClientOpts\n * @param files optionally, if check-types is enabled, provide files to open and type check.\n * @returns TsserverClient\n */\n async initTsserverClient(\n projectPath: string,\n options: TsserverClientOpts = {},\n files: string[] = []\n ): Promise<TsserverClient> {\n this.tsServer = new TsserverClient(projectPath, this.logger, options, files);\n await this.tsServer.init();\n return this.tsServer;\n }\n\n /**\n * starts a tsserver process to communicate with its API. use only when running on the workspace.\n * @param options TsserverClientOpts\n * @param files optionally, if check-types is enabled, provide files to open and type check.\n * @returns TsserverClient\n */\n async initTsserverClientFromWorkspace(\n options: TsserverClientOpts = {},\n files: string[] = []\n ): Promise<TsserverClient> {\n if (!this.workspace) {\n throw new Error(`initTsserverClientFromWorkspace: workspace was not found`);\n }\n return this.initTsserverClient(this.workspace.path, options, files);\n }\n\n /**\n * Create a compiler instance and run the cjs transformer for it\n * @param options\n * @param transformers\n * @param tsModule\n * @returns\n */\n createCjsCompiler(options: TypeScriptCompilerOptions, transformers: TsConfigTransformer[] = [], tsModule = ts) {\n return this.createCompiler(options, [this.getCjsTransformer(), ...transformers], tsModule);\n }\n\n /**\n * Create a compiler instance and run the esm transformer for it\n * @param options\n * @param transformers\n * @param tsModule\n * @returns\n */\n createEsmCompiler(options: TypeScriptCompilerOptions, transformers: TsConfigTransformer[] = [], tsModule = ts) {\n return this.createCompiler(options, [this.getEsmTransformer(), ...transformers], tsModule);\n }\n\n /**\n * Create a transformer that change the ts module to CommonJS\n * @returns\n */\n getCjsTransformer(): TsConfigTransformer {\n const cjsTransformer = (config: TypescriptConfigMutator) => {\n config.setModule('CommonJS');\n return config;\n };\n return cjsTransformer;\n }\n\n /**\n * Create a transformer that change the ts module to ES2020\n * @returns\n */\n getEsmTransformer(): TsConfigTransformer {\n const esmTransformer = (config: TypescriptConfigMutator) => {\n config.setTarget('ES2017');\n config.raw.tsconfig.compilerOptions.module = 'es2020';\n config.raw.tsconfig.compilerOptions.lib = ['es2021', 'dom', 'ESNext.String', 'dom.Iterable'];\n return config;\n };\n return esmTransformer;\n }\n\n /**\n * create an instance of a typescript semantic schema extractor.\n */\n createSchemaExtractor(tsconfig: any, path?: string): SchemaExtractor {\n return new TypeScriptExtractor(\n tsconfig,\n this.schemaTransformerSlot,\n this,\n path || this.workspace?.path || '',\n this.depResolver,\n this.workspace,\n this.scope,\n this.aspectLoader,\n this.logger\n );\n }\n\n /**\n * add the default package json properties to the component\n * :TODO @gilad why do we need this DSL? can't I just get the args here.\n */\n getCjsPackageJsonProps(): PackageJsonProps {\n return {\n main: 'dist/{main}.js',\n types: '{main}.ts',\n };\n }\n\n /**\n * add type: module to the package.json props and the default props\n * :TODO @gilad why do we need this DSL? can't I just get the args here.\n */\n getEsmPackageJsonProps(): PackageJsonProps {\n return {\n // main: 'dist-esm/{main}.js',\n main: 'dist/{main}.js',\n type: 'module',\n types: '{main}.ts',\n };\n }\n\n getSupportedFilesForTsserver(components: Component[]): string[] {\n const files = components\n .map((c) => c.filesystem.files)\n .flat()\n .map((f) => f.path);\n return files.filter((f) => f.endsWith('.ts') || f.endsWith('.tsx'));\n }\n\n async cleanTsconfigJson(options: TsconfigWriterOptions = {}) {\n const components = await this.workspace.list();\n const runtime = await this.envs.createEnvironment(components);\n const execContext = runtime.getEnvExecutionContext();\n\n const results = await new TsconfigWriter(this.workspace, this.logger).clean(execContext, options);\n\n return results;\n }\n\n async writeTsconfigJson(options: TsconfigWriterOptions = {}): Promise<{\n cleanResults?: string[];\n writeResults: TsconfigPathsPerEnv[];\n }> {\n const components = await this.workspace.list();\n const runtime = await this.envs.createEnvironment(components);\n const execContext = runtime.getEnvExecutionContext();\n\n let cleanResults: string[] | undefined;\n if (options.clean) {\n cleanResults = await this.tsConfigWriter.clean(execContext, options);\n }\n\n const writeResults = await this.tsConfigWriter.write(execContext, options);\n\n return { writeResults, cleanResults };\n }\n\n private async onPreWatch(components: Component[], watchOpts: WatchOptions) {\n const workspace = this.workspace;\n if (!workspace || !watchOpts.spawnTSServer) {\n return;\n }\n const { verbose, checkTypes } = watchOpts;\n const files = checkTypes ? this.getSupportedFilesForTsserver(components) : [];\n const printTypeErrors = Boolean(checkTypes);\n await this.initTsserverClientFromWorkspace({ verbose, checkTypes, printTypeErrors }, files);\n }\n\n private async onComponentChange(component: Component, files: string[]) {\n if (!this.tsServer) {\n return {\n results: 'N/A',\n };\n }\n await pMapSeries(files, (file) => this.tsServer.onFileChange(file));\n return {\n results: 'succeed',\n };\n }\n\n static runtime = MainRuntime;\n static dependencies = [\n SchemaAspect,\n LoggerAspect,\n AspectLoaderAspect,\n WorkspaceAspect,\n CLIAspect,\n DependencyResolverAspect,\n EnvsAspect,\n WatcherAspect,\n WorkspaceConfigFilesAspect,\n CompilerAspect,\n ScopeAspect,\n ];\n static slots = [Slot.withType<SchemaTransformer[]>()];\n\n static async provider(\n [\n schema,\n loggerExt,\n aspectLoader,\n workspace,\n cli,\n depResolver,\n envs,\n watcher,\n workspaceConfigFiles,\n compiler,\n scope,\n ]: [\n SchemaMain,\n LoggerMain,\n AspectLoaderMain,\n Workspace,\n CLIMain,\n DependencyResolverMain,\n EnvsMain,\n WatcherMain,\n WorkspaceConfigFilesMain,\n CompilerMain,\n ScopeMain\n ],\n config,\n [schemaTransformerSlot]: [SchemaTransformerSlot]\n ) {\n schema.registerParser(new TypeScriptParser());\n const logger = loggerExt.createLogger(TypescriptAspect.id);\n workspaceConfigFiles.registerConfigWriter(new TypescriptConfigWriter(compiler, logger));\n\n aspectLoader.registerPlugins([new SchemaTransformerPlugin(schemaTransformerSlot)]);\n const tsconfigWriter = new TsconfigWriter(workspace, logger);\n const tsMain = new TypescriptMain(\n logger,\n schemaTransformerSlot,\n workspace,\n scope,\n depResolver,\n envs,\n tsconfigWriter,\n aspectLoader\n );\n schemaTransformerSlot.register([\n new ExportDeclarationTransformer(),\n new ExportAssignmentTransformer(),\n new FunctionLikeTransformer(),\n new ParameterTransformer(),\n new SetAccessorTransformer(),\n new GetAccessorTransformer(),\n new IndexSignatureTransformer(),\n new PropertyDeclarationTransformer(),\n new VariableStatementTransformer(),\n new VariableDeclaration(),\n new SourceFileTransformer(),\n new TypeAliasTransformer(),\n new ClassDeclarationTransformer(),\n new InterfaceDeclarationTransformer(),\n new EnumDeclarationTransformer(),\n new BindingElementTransformer(),\n new IntersectionTypeTransformer(),\n new UnionTypeTransformer(),\n new TypeReferenceTransformer(),\n new TypeLiteralTransformer(),\n new LiteralTypeTransformer(),\n new TypeQueryTransformer(),\n new ArrayTypeTransformer(),\n new TypeOperatorTransformer(),\n new KeywordTypeTransformer(),\n new TupleTypeTransformer(),\n new ParenthesizedTypeTransformer(),\n new TypePredicateTransformer(),\n new IndexedAccessTypeTransformer(),\n new TemplateLiteralTypeSpanTransformer(),\n new TemplateLiteralTypeTransformer(),\n new ThisTypeTransformer(),\n new ConditionalTypeTransformer(),\n new NamedTupleTransformer(),\n new ConstructorTransformer(),\n new ImportDeclarationTransformer(),\n ]);\n\n if (workspace) {\n watcher.registerOnPreWatch(tsMain.onPreWatch.bind(tsMain));\n workspace.registerOnComponentChange(tsMain.onComponentChange.bind(tsMain));\n workspace.registerOnComponentAdd(tsMain.onComponentChange.bind(tsMain));\n }\n\n const checkTypesCmd = new CheckTypesCmd(tsMain, workspace, logger);\n const writeTsconfigCmd = new WriteTsconfigCmd(tsMain);\n cli.register(checkTypesCmd, writeTsconfigCmd);\n\n return tsMain;\n }\n}\n\nTypescriptAspect.addRuntime(TypescriptMain);\n\nexport function runTransformersWithContext(\n config: TypescriptConfigMutator,\n transformers: TsConfigTransformer[] = [],\n context: TsConfigTransformContext\n): TypescriptConfigMutator {\n if (!Array.isArray(transformers)) return config;\n const newConfig = transformers.reduce((acc, transformer) => {\n return transformer(acc, context);\n }, config);\n return newConfig;\n}\n\nexport default TypescriptMain;\n"],"mappings":"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"}
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teambit/typescript",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.1069",
|
|
4
4
|
"homepage": "https://bit.cloud/teambit/typescript/typescript",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"componentId": {
|
|
7
7
|
"scope": "teambit.typescript",
|
|
8
8
|
"name": "typescript",
|
|
9
|
-
"version": "0.0.
|
|
9
|
+
"version": "0.0.1069"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"get-tsconfig": "4.2.0",
|
|
@@ -21,25 +21,26 @@
|
|
|
21
21
|
"core-js": "^3.0.0",
|
|
22
22
|
"@babel/runtime": "7.20.0",
|
|
23
23
|
"@teambit/harmony": "0.4.6",
|
|
24
|
-
"@teambit/compiler": "0.0.
|
|
24
|
+
"@teambit/compiler": "0.0.1069",
|
|
25
25
|
"@teambit/typescript.modules.ts-config-mutator": "0.0.76",
|
|
26
|
-
"@teambit/component": "0.0.
|
|
27
|
-
"@teambit/dependency-resolver": "0.0.
|
|
28
|
-
"@teambit/formatter": "0.0.
|
|
26
|
+
"@teambit/component": "0.0.1069",
|
|
27
|
+
"@teambit/dependency-resolver": "0.0.1069",
|
|
28
|
+
"@teambit/formatter": "0.0.620",
|
|
29
29
|
"@teambit/semantics.entities.semantic-schema": "0.0.53",
|
|
30
|
-
"@teambit/ts-server": "0.0.
|
|
31
|
-
"@teambit/aspect-loader": "0.0.
|
|
32
|
-
"@teambit/envs": "0.0.
|
|
33
|
-
"@teambit/logger": "0.0.
|
|
34
|
-
"@teambit/workspace-config-files": "0.0.
|
|
35
|
-
"@teambit/workspace": "0.0.
|
|
30
|
+
"@teambit/ts-server": "0.0.46",
|
|
31
|
+
"@teambit/aspect-loader": "0.0.1069",
|
|
32
|
+
"@teambit/envs": "0.0.1069",
|
|
33
|
+
"@teambit/logger": "0.0.814",
|
|
34
|
+
"@teambit/workspace-config-files": "0.0.49",
|
|
35
|
+
"@teambit/workspace": "0.0.1069",
|
|
36
36
|
"@teambit/bit-error": "0.0.402",
|
|
37
|
-
"@teambit/builder": "0.0.
|
|
38
|
-
"@teambit/isolator": "0.0.
|
|
39
|
-
"@teambit/schema": "0.0.
|
|
40
|
-
"@teambit/
|
|
41
|
-
"@teambit/
|
|
42
|
-
"@teambit/
|
|
37
|
+
"@teambit/builder": "0.0.1069",
|
|
38
|
+
"@teambit/isolator": "0.0.1069",
|
|
39
|
+
"@teambit/schema": "0.0.1069",
|
|
40
|
+
"@teambit/scope": "0.0.1069",
|
|
41
|
+
"@teambit/cli": "0.0.721",
|
|
42
|
+
"@teambit/pkg": "0.0.1069",
|
|
43
|
+
"@teambit/watcher": "0.0.81"
|
|
43
44
|
},
|
|
44
45
|
"devDependencies": {
|
|
45
46
|
"@types/lodash": "4.14.165",
|
|
@@ -55,7 +56,7 @@
|
|
|
55
56
|
"@teambit/typescript.aspect-docs.typescript": "0.0.153"
|
|
56
57
|
},
|
|
57
58
|
"peerDependencies": {
|
|
58
|
-
"@teambit/legacy": "1.0.
|
|
59
|
+
"@teambit/legacy": "1.0.501",
|
|
59
60
|
"react": "^16.8.0 || ^17.0.0",
|
|
60
61
|
"react-dom": "^16.8.0 || ^17.0.0"
|
|
61
62
|
},
|
|
Binary file
|