@teambit/typescript 0.0.721 → 0.0.724
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/schema-extractor-context.js.map +1 -1
- package/dist/schema-transformer.plugin.d.ts +1 -1
- package/dist/schema-transformer.plugin.js +3 -1
- package/dist/schema-transformer.plugin.js.map +1 -1
- package/dist/typescript.extractor.js.map +1 -1
- package/package-tar/teambit-typescript-0.0.724.tgz +0 -0
- package/package.json +14 -14
- package/{preview-1651202606218.js → preview-1651548276454.js} +2 -2
- package/package-tar/teambit-typescript-0.0.721.tgz +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["schema-extractor-context.ts"],"names":["SchemaExtractorContext","constructor","tsserver","component","extractor","undefined","computeSchema","node","getLocation","targetSourceFile","sourceFile","getSourceFile","position","getLineAndCharacterOfPosition","pos","line","character","getSignature","getSignatureHelp","getPath","getPosition","offset","getPositionOfLineAndCharacter","fileName","createRef","getQuickInfo","typeDefinition","getTypeDefinition","visitTypeDefinition","findFileInComponent","filePath","filesystem","files","find","file","path","includes","strings","map","format","endsWith","string","parseSourceFile","definition","def","getDefinition","firstDef","body","startPosition","start","nodeAtPos","visitDefinition","visit","parent","references","isExported","isFromComponent","getFileExports","exportDec","specifierPathStr","moduleSpecifier","getText","specifierPath","substring","length","absPath","computeExportedIdentifiers","setExports","exports","_exports","getExportedIdentifiers","isNative","typeName","jump","resolveType","typeStr","type","TypeRefSchema","typeDef","Promise","all","headDef"],"mappings":"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","sourcesContent":["import { TsserverClient } from '@teambit/ts-server';\nimport ts, { ExportDeclaration, Node } from 'typescript';\nimport { getTokenAtPosition } from 'tsutils';\nimport { head } from 'lodash';\nimport type { AbstractVinyl } from '@teambit/legacy/dist/consumer/component/sources';\nimport { resolve } from 'path';\nimport { Component } from '@teambit/component';\nimport { TypeRefSchema, SchemaNode } from '@teambit/semantics.entities.semantic-schema';\nimport { TypeScriptExtractor } from './typescript.extractor';\nimport { ExportList } from './export-list';\n\nexport class SchemaExtractorContext {\n constructor(\n readonly tsserver: TsserverClient,\n readonly component: Component,\n readonly extractor: TypeScriptExtractor\n ) {}\n\n computeSchema(node: Node) {\n return this.extractor.computeSchema(node, this);\n }\n\n getLocation(node: Node, targetSourceFile?: ts.SourceFile) {\n const sourceFile = targetSourceFile || node.getSourceFile();\n const position = sourceFile.getLineAndCharacterOfPosition(node.pos);\n const line = position.line + 1;\n const character = position.character + 2; // need to verify why a 2 char difference here.\n\n return {\n line,\n character,\n };\n }\n\n async getSignature(node: Node) {\n return this.tsserver.getSignatureHelp(this.getPath(node), this.getLocation(node));\n }\n\n getPosition(sourceFile: ts.SourceFile, line: number, offset: number): number {\n return sourceFile.getPositionOfLineAndCharacter(line - 1, offset - 2);\n }\n\n getPath(node: Node) {\n const sourceFile = node.getSourceFile();\n return sourceFile.fileName;\n }\n\n createRef() {\n return {};\n }\n\n getQuickInfo(node: Node) {\n return this.tsserver.getQuickInfo(this.getPath(node), this.getLocation(node));\n }\n\n typeDefinition(node: Node) {\n return this.tsserver.getTypeDefinition(this.getPath(node), this.getLocation(node));\n }\n\n visitTypeDefinition() {}\n\n private findFileInComponent(filePath: string) {\n return this.component.filesystem.files.find((file) => {\n // TODO: fix this line to support further extensions.\n if (file.path.includes(filePath)) {\n const strings = ['ts', 'tsx', 'js', 'jsx'].map((format) => {\n if (filePath.endsWith(format)) return filePath;\n return `${filePath}.${format}`;\n });\n\n return strings.find((string) => string === file.path);\n }\n\n return false;\n });\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 private getSourceFile(filePath: string) {\n const file = this.findFileInComponent(filePath);\n if (!file) return undefined;\n return this.extractor.parseSourceFile(file);\n }\n\n async definition(node: Node): Promise<Node | undefined> {\n const def = await this.tsserver.getDefinition(this.getPath(node), this.getLocation(node));\n\n const firstDef = head(def.body);\n if (!firstDef) return undefined;\n\n const startPosition = firstDef.start;\n const sourceFile = this.getSourceFile(firstDef.file);\n if (!sourceFile) return undefined; // learn how to return a reference to a different component here.\n const pos = this.getPosition(sourceFile, startPosition.line, startPosition.offset);\n const nodeAtPos = getTokenAtPosition(sourceFile, pos);\n return nodeAtPos;\n }\n\n async visitDefinition(node: Node): Promise<SchemaNode | undefined> {\n const definition = await this.definition(node);\n if (!definition) return undefined;\n return this.visit(definition.parent);\n }\n\n async visit(node: Node): Promise<SchemaNode | undefined> {\n return this.extractor.computeSchema(node, this);\n }\n\n references() {}\n\n isExported() {}\n\n isFromComponent() {}\n\n async getFileExports(exportDec: ExportDeclaration) {\n const file = exportDec.getSourceFile().fileName;\n const specifierPathStr = exportDec.moduleSpecifier?.getText() || '';\n const specifierPath = specifierPathStr.substring(1, specifierPathStr.length - 1);\n const absPath = resolve(file, '..', specifierPath);\n const sourceFile = this.getSourceFile(absPath);\n if (!sourceFile) return [];\n return this.extractor.computeExportedIdentifiers(sourceFile, this);\n }\n\n _exports: ExportList | undefined = undefined;\n\n setExports(exports: ExportList) {\n this._exports = exports;\n return this;\n }\n\n getExportedIdentifiers(node: Node) {\n return this.extractor.computeExportedIdentifiers(node, this);\n }\n\n private isNative(typeName: string) {\n return ['string', 'number', 'bool', 'boolean', 'object', 'any', 'void'].includes(typeName);\n }\n\n async jump(file: AbstractVinyl, start: any) {\n const sourceFile = this.extractor.parseSourceFile(file);\n const pos = this.getPosition(sourceFile, start.line, start.offset);\n const nodeAtPos = getTokenAtPosition(sourceFile, pos);\n if (!nodeAtPos) return undefined;\n return this.visit(nodeAtPos);\n }\n\n async resolveType(node: Node, typeStr: string, type = true): Promise<TypeRefSchema> {\n if (this.isNative(typeStr)) return new TypeRefSchema(typeStr);\n if (this._exports?.includes(typeStr)) return new TypeRefSchema(typeStr);\n\n const typeDef = type\n ? await this.tsserver.getDefinition(node.getSourceFile().fileName, this.getLocation(node))\n : await this.typeDefinition(node);\n\n const def = await Promise.all(\n typeDef?.body?.map(async (definition) => {\n const file = this.findFileInComponent(definition.file);\n // TODO: find component id is exists, otherwise add the package name.\n if (!file) return new TypeRefSchema(typeStr, undefined, '');\n if (file) return new TypeRefSchema(typeStr, undefined, undefined, this.jump(file, definition.start));\n return undefined;\n }) || []\n );\n\n const headDef = head(def);\n if (headDef) return headDef;\n return new TypeRefSchema('any');\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["schema-extractor-context.ts"],"names":["SchemaExtractorContext","constructor","tsserver","component","extractor","undefined","computeSchema","node","getLocation","targetSourceFile","sourceFile","getSourceFile","position","getLineAndCharacterOfPosition","pos","line","character","getSignature","getSignatureHelp","getPath","getPosition","offset","getPositionOfLineAndCharacter","fileName","createRef","getQuickInfo","typeDefinition","getTypeDefinition","visitTypeDefinition","findFileInComponent","filePath","filesystem","files","find","file","path","includes","strings","map","format","endsWith","string","parseSourceFile","definition","def","getDefinition","firstDef","body","startPosition","start","nodeAtPos","visitDefinition","visit","parent","references","isExported","isFromComponent","getFileExports","exportDec","specifierPathStr","moduleSpecifier","getText","specifierPath","substring","length","absPath","computeExportedIdentifiers","setExports","exports","_exports","getExportedIdentifiers","isNative","typeName","jump","resolveType","typeStr","type","TypeRefSchema","typeDef","Promise","all","headDef"],"mappings":"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","sourcesContent":["import { TsserverClient } from '@teambit/ts-server';\nimport ts, { ExportDeclaration, Node } from 'typescript';\nimport { getTokenAtPosition } from 'tsutils';\nimport { head } from 'lodash';\n// @ts-ignore david we should figure fix this.\nimport type { AbstractVinyl } from '@teambit/legacy/dist/consumer/component/sources';\nimport { resolve } from 'path';\nimport { Component } from '@teambit/component';\nimport { TypeRefSchema, SchemaNode } from '@teambit/semantics.entities.semantic-schema';\nimport { TypeScriptExtractor } from './typescript.extractor';\nimport { ExportList } from './export-list';\n\nexport class SchemaExtractorContext {\n constructor(\n readonly tsserver: TsserverClient,\n readonly component: Component,\n readonly extractor: TypeScriptExtractor\n ) {}\n\n computeSchema(node: Node) {\n return this.extractor.computeSchema(node, this);\n }\n\n getLocation(node: Node, targetSourceFile?: ts.SourceFile) {\n const sourceFile = targetSourceFile || node.getSourceFile();\n const position = sourceFile.getLineAndCharacterOfPosition(node.pos);\n const line = position.line + 1;\n const character = position.character + 2; // need to verify why a 2 char difference here.\n\n return {\n line,\n character,\n };\n }\n\n async getSignature(node: Node) {\n return this.tsserver.getSignatureHelp(this.getPath(node), this.getLocation(node));\n }\n\n getPosition(sourceFile: ts.SourceFile, line: number, offset: number): number {\n return sourceFile.getPositionOfLineAndCharacter(line - 1, offset - 2);\n }\n\n getPath(node: Node) {\n const sourceFile = node.getSourceFile();\n return sourceFile.fileName;\n }\n\n createRef() {\n return {};\n }\n\n getQuickInfo(node: Node) {\n return this.tsserver.getQuickInfo(this.getPath(node), this.getLocation(node));\n }\n\n typeDefinition(node: Node) {\n return this.tsserver.getTypeDefinition(this.getPath(node), this.getLocation(node));\n }\n\n visitTypeDefinition() {}\n\n private findFileInComponent(filePath: string) {\n return this.component.filesystem.files.find((file) => {\n // TODO: fix this line to support further extensions.\n if (file.path.includes(filePath)) {\n const strings = ['ts', 'tsx', 'js', 'jsx'].map((format) => {\n if (filePath.endsWith(format)) return filePath;\n return `${filePath}.${format}`;\n });\n\n return strings.find((string) => string === file.path);\n }\n\n return false;\n });\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 private getSourceFile(filePath: string) {\n const file = this.findFileInComponent(filePath);\n if (!file) return undefined;\n return this.extractor.parseSourceFile(file);\n }\n\n async definition(node: Node): Promise<Node | undefined> {\n const def = await this.tsserver.getDefinition(this.getPath(node), this.getLocation(node));\n\n const firstDef = head(def.body);\n if (!firstDef) return undefined;\n\n const startPosition = firstDef.start;\n const sourceFile = this.getSourceFile(firstDef.file);\n if (!sourceFile) return undefined; // learn how to return a reference to a different component here.\n const pos = this.getPosition(sourceFile, startPosition.line, startPosition.offset);\n const nodeAtPos = getTokenAtPosition(sourceFile, pos);\n return nodeAtPos;\n }\n\n async visitDefinition(node: Node): Promise<SchemaNode | undefined> {\n const definition = await this.definition(node);\n if (!definition) return undefined;\n return this.visit(definition.parent);\n }\n\n async visit(node: Node): Promise<SchemaNode | undefined> {\n return this.extractor.computeSchema(node, this);\n }\n\n references() {}\n\n isExported() {}\n\n isFromComponent() {}\n\n async getFileExports(exportDec: ExportDeclaration) {\n const file = exportDec.getSourceFile().fileName;\n const specifierPathStr = exportDec.moduleSpecifier?.getText() || '';\n const specifierPath = specifierPathStr.substring(1, specifierPathStr.length - 1);\n const absPath = resolve(file, '..', specifierPath);\n const sourceFile = this.getSourceFile(absPath);\n if (!sourceFile) return [];\n return this.extractor.computeExportedIdentifiers(sourceFile, this);\n }\n\n _exports: ExportList | undefined = undefined;\n\n setExports(exports: ExportList) {\n this._exports = exports;\n return this;\n }\n\n getExportedIdentifiers(node: Node) {\n return this.extractor.computeExportedIdentifiers(node, this);\n }\n\n private isNative(typeName: string) {\n return ['string', 'number', 'bool', 'boolean', 'object', 'any', 'void'].includes(typeName);\n }\n\n async jump(file: AbstractVinyl, start: any) {\n const sourceFile = this.extractor.parseSourceFile(file);\n const pos = this.getPosition(sourceFile, start.line, start.offset);\n const nodeAtPos = getTokenAtPosition(sourceFile, pos);\n if (!nodeAtPos) return undefined;\n return this.visit(nodeAtPos);\n }\n\n async resolveType(node: Node, typeStr: string, type = true): Promise<TypeRefSchema> {\n if (this.isNative(typeStr)) return new TypeRefSchema(typeStr);\n if (this._exports?.includes(typeStr)) return new TypeRefSchema(typeStr);\n\n const typeDef = type\n ? await this.tsserver.getDefinition(node.getSourceFile().fileName, this.getLocation(node))\n : await this.typeDefinition(node);\n\n const def = await Promise.all(\n typeDef?.body?.map(async (definition) => {\n const file = this.findFileInComponent(definition.file);\n // TODO: find component id is exists, otherwise add the package name.\n if (!file) return new TypeRefSchema(typeStr, undefined, '');\n if (file) return new TypeRefSchema(typeStr, undefined, undefined, this.jump(file, definition.start));\n return undefined;\n }) || []\n );\n\n const headDef = head(def);\n if (headDef) return headDef;\n return new TypeRefSchema('any');\n }\n}\n"]}
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
|
|
5
|
+
require("core-js/modules/es.promise.js");
|
|
6
|
+
|
|
5
7
|
Object.defineProperty(exports, "__esModule", {
|
|
6
8
|
value: true
|
|
7
9
|
});
|
|
@@ -24,7 +26,7 @@ class SchemaTransformerPlugin {
|
|
|
24
26
|
(0, _defineProperty2().default)(this, "runtimes", ['main']);
|
|
25
27
|
}
|
|
26
28
|
|
|
27
|
-
register(object) {
|
|
29
|
+
async register(object) {
|
|
28
30
|
return this.schemaTransformerSlot.register([object]);
|
|
29
31
|
}
|
|
30
32
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["schema-transformer.plugin.ts"],"names":["SchemaTransformerPlugin","constructor","schemaTransformerSlot","register","object"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["schema-transformer.plugin.ts"],"names":["SchemaTransformerPlugin","constructor","schemaTransformerSlot","register","object"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAGO,MAAMA,uBAAN,CAA0D;AAC/DC,EAAAA,WAAW,CAASC,qBAAT,EAAuD;AAAA,SAA9CA,qBAA8C,GAA9CA,qBAA8C;AAAA,qDAExD,sBAFwD;AAAA,sDAIvD,CAAC,MAAD,CAJuD;AAAE;;AAMtD,QAARC,QAAQ,CAACC,MAAD,EAAc;AAC1B,WAAO,KAAKF,qBAAL,CAA2BC,QAA3B,CAAoC,CAACC,MAAD,CAApC,CAAP;AACD;;AAT8D","sourcesContent":["import { PluginDefinition } from '@teambit/aspect-loader';\nimport { SchemaTransformerSlot } from './typescript.main.runtime';\n\nexport class SchemaTransformerPlugin implements PluginDefinition {\n constructor(private schemaTransformerSlot: SchemaTransformerSlot) {}\n\n pattern = '*.schema-extractor.*';\n\n runtimes = ['main'];\n\n async register(object: any) {\n return this.schemaTransformerSlot.register([object]);\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["typescript.extractor.ts"],"names":["TypeScriptExtractor","constructor","tsconfig","schemaTransformerSlot","tsMain","rootPath","undefined","parseSourceFile","file","ts","createSourceFile","path","contents","toString","ScriptTarget","Latest","compilerOptions","extract","component","tsserver","getTsServer","mainFile","mainAst","context","createContext","exportNames","computeExportedIdentifiers","setExports","ExportList","computeSchema","SemanticSchema","from","node","transformer","getTransformer","getIdentifiers","TransformerNotFound","SchemaExtractorContext","getTsserverClient","initTsserverClient","transform","transformers","values","find","singleTransformer","predicate"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;
|
|
1
|
+
{"version":3,"sources":["typescript.extractor.ts"],"names":["TypeScriptExtractor","constructor","tsconfig","schemaTransformerSlot","tsMain","rootPath","undefined","parseSourceFile","file","ts","createSourceFile","path","contents","toString","ScriptTarget","Latest","compilerOptions","extract","component","tsserver","getTsServer","mainFile","mainAst","context","createContext","exportNames","computeExportedIdentifiers","setExports","ExportList","computeSchema","SemanticSchema","from","node","transformer","getTransformer","getIdentifiers","TransformerNotFound","SchemaExtractorContext","getTsserverClient","initTsserverClient","transform","transformers","values","find","singleTransformer","predicate"],"mappings":"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","sourcesContent":["import ts, { Node } from 'typescript';\nimport { SchemaExtractor } from '@teambit/schema';\nimport { TsserverClient } from '@teambit/ts-server';\nimport { SchemaNode, SemanticSchema } from '@teambit/semantics.entities.semantic-schema';\nimport { Component } from '@teambit/component';\n// @ts-ignore david what to do?\nimport { AbstractVinyl } from '@teambit/legacy/dist/consumer/component/sources';\nimport { flatten } from 'lodash';\nimport { TypescriptMain, SchemaTransformerSlot } from './typescript.main.runtime';\nimport { TransformerNotFound } from './exceptions';\nimport { SchemaExtractorContext } from './schema-extractor-context';\nimport { ExportList } from './export-list';\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 ) {}\n\n parseSourceFile(file: AbstractVinyl) {\n return ts.createSourceFile(\n file.path,\n file.contents.toString('utf8'),\n ts.ScriptTarget.Latest,\n true,\n this.tsconfig.compilerOptions\n );\n }\n\n /**\n * extract a component schema.\n */\n async extract(component: Component) {\n const tsserver = await this.getTsServer();\n const mainFile = component.mainFile;\n const mainAst = this.parseSourceFile(mainFile);\n const context = this.createContext(tsserver, component);\n const exportNames = await this.computeExportedIdentifiers(mainAst, context);\n context.setExports(new ExportList(exportNames));\n await this.computeSchema(mainAst, context); // TODO: create the schema\n\n return SemanticSchema.from({});\n }\n\n async computeExportedIdentifiers(node: Node, context: SchemaExtractorContext) {\n const transformer = this.getTransformer(node, context.component);\n if (!transformer || !transformer.getIdentifiers) throw new TransformerNotFound(node, context.component);\n return transformer.getIdentifiers(node, context);\n }\n\n private createContext(tsserver: TsserverClient, component: Component): SchemaExtractorContext {\n return new SchemaExtractorContext(tsserver, component, this);\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 | undefined> {\n const transformer = this.getTransformer(node, context.component);\n if (!transformer) return undefined;\n return transformer.transform(node, context);\n }\n\n /**\n * select the correct transformer for a node.\n */\n private getTransformer(node: Node, component: Component) {\n const transformers = flatten(this.schemaTransformerSlot.values());\n const transformer = transformers.find((singleTransformer) => singleTransformer.predicate(node));\n\n if (!transformer) throw new TransformerNotFound(node, component);\n\n return transformer;\n }\n}\n"]}
|
|
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.724",
|
|
4
4
|
"homepage": "https://bit.dev/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.724"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"lodash": "4.17.21",
|
|
@@ -18,20 +18,20 @@
|
|
|
18
18
|
"@babel/runtime": "7.12.18",
|
|
19
19
|
"core-js": "^3.0.0",
|
|
20
20
|
"@teambit/harmony": "0.3.3",
|
|
21
|
-
"@teambit/compiler": "0.0.
|
|
21
|
+
"@teambit/compiler": "0.0.724",
|
|
22
22
|
"@teambit/typescript.modules.ts-config-mutator": "0.0.68",
|
|
23
|
-
"@teambit/component": "0.0.
|
|
23
|
+
"@teambit/component": "0.0.724",
|
|
24
24
|
"@teambit/semantics.entities.semantic-schema": "0.0.7",
|
|
25
25
|
"@teambit/ts-server": "0.0.32",
|
|
26
|
-
"@teambit/aspect-loader": "0.0.
|
|
26
|
+
"@teambit/aspect-loader": "0.0.724",
|
|
27
27
|
"@teambit/bit-error": "0.0.394",
|
|
28
|
-
"@teambit/builder": "0.0.
|
|
29
|
-
"@teambit/isolator": "0.0.
|
|
30
|
-
"@teambit/logger": "0.0.
|
|
31
|
-
"@teambit/schema": "0.0.
|
|
32
|
-
"@teambit/cli": "0.0.
|
|
33
|
-
"@teambit/pkg": "0.0.
|
|
34
|
-
"@teambit/workspace": "0.0.
|
|
28
|
+
"@teambit/builder": "0.0.724",
|
|
29
|
+
"@teambit/isolator": "0.0.724",
|
|
30
|
+
"@teambit/logger": "0.0.575",
|
|
31
|
+
"@teambit/schema": "0.0.724",
|
|
32
|
+
"@teambit/cli": "0.0.483",
|
|
33
|
+
"@teambit/pkg": "0.0.724",
|
|
34
|
+
"@teambit/workspace": "0.0.724"
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
|
37
37
|
"@types/lodash": "4.14.165",
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"@teambit/typescript.aspect-docs.typescript": "0.0.137"
|
|
48
48
|
},
|
|
49
49
|
"peerDependencies": {
|
|
50
|
-
"@teambit/legacy": "1.0.
|
|
50
|
+
"@teambit/legacy": "1.0.262",
|
|
51
51
|
"react-dom": "^16.8.0 || ^17.0.0",
|
|
52
52
|
"react": "^16.8.0 || ^17.0.0"
|
|
53
53
|
},
|
|
@@ -75,7 +75,7 @@
|
|
|
75
75
|
"react": "-"
|
|
76
76
|
},
|
|
77
77
|
"peerDependencies": {
|
|
78
|
-
"@teambit/legacy": "1.0.
|
|
78
|
+
"@teambit/legacy": "1.0.262",
|
|
79
79
|
"react-dom": "^16.8.0 || ^17.0.0",
|
|
80
80
|
"react": "^16.8.0 || ^17.0.0"
|
|
81
81
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const compositions = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.typescript_typescript@0.0.
|
|
2
|
-
export const overview = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.typescript_typescript@0.0.
|
|
1
|
+
export const compositions = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.typescript_typescript@0.0.724/dist/typescript.composition.js')]
|
|
2
|
+
export const overview = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.typescript_typescript@0.0.724/dist/typescript.docs.mdx')]
|
|
Binary file
|