karakum 1.0.0-alpha.9 → 1.0.0-alpha.90

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.
Files changed (275) hide show
  1. package/README.md +8 -1
  2. package/kotlin/karakum-bin.mjs +5 -0
  3. package/kotlin/karakum-types.d.ts +55 -0
  4. package/kotlin/karakum.d.mts +409 -0
  5. package/kotlin/karakum.mjs +14153 -0
  6. package/kotlin/karakum.mjs.map +1 -0
  7. package/kotlin/kotlin-js-core.mjs +4 -0
  8. package/kotlin/kotlin-js-core.mjs.map +1 -0
  9. package/kotlin/kotlin-js.mjs +244 -0
  10. package/kotlin/kotlin-js.mjs.map +1 -0
  11. package/kotlin/kotlin-kotlin-stdlib.mjs +7424 -0
  12. package/kotlin/kotlin-kotlin-stdlib.mjs.map +1 -0
  13. package/kotlin/kotlin-node.mjs +4 -0
  14. package/kotlin/kotlin-node.mjs.map +1 -0
  15. package/kotlin/kotlin-plugins-js-plain-objects-runtime.mjs +4 -0
  16. package/kotlin/kotlin-plugins-js-plain-objects-runtime.mjs.map +1 -0
  17. package/kotlin/kotlin-typescript.mjs +4 -0
  18. package/kotlin/kotlin-typescript.mjs.map +1 -0
  19. package/kotlin/kotlin-web.mjs +4 -0
  20. package/kotlin/kotlin-web.mjs.map +1 -0
  21. package/kotlin/kotlin_org_jetbrains_kotlin_kotlin_dom_api_compat.mjs +4 -0
  22. package/kotlin/kotlin_org_jetbrains_kotlin_kotlin_dom_api_compat.mjs.map +1 -0
  23. package/kotlin/kotlinx-atomicfu.mjs +111 -0
  24. package/kotlin/kotlinx-atomicfu.mjs.map +1 -0
  25. package/kotlin/kotlinx-coroutines-core.mjs +2915 -0
  26. package/kotlin/kotlinx-coroutines-core.mjs.map +1 -0
  27. package/kotlin/seskar-core.mjs +4 -0
  28. package/kotlin/seskar-core.mjs.map +1 -0
  29. package/package.json +21 -28
  30. package/build/cli.d.ts +0 -2
  31. package/build/cli.js +0 -19
  32. package/build/cli.js.map +0 -1
  33. package/build/configuration/configuration.d.ts +0 -19
  34. package/build/configuration/configuration.js +0 -3
  35. package/build/configuration/configuration.js.map +0 -1
  36. package/build/converter/annotation.d.ts +0 -3
  37. package/build/converter/annotation.js +0 -3
  38. package/build/converter/annotation.js.map +0 -1
  39. package/build/converter/constants.d.ts +0 -1
  40. package/build/converter/constants.js +0 -34
  41. package/build/converter/constants.js.map +0 -1
  42. package/build/converter/context.d.ts +0 -5
  43. package/build/converter/context.js +0 -16
  44. package/build/converter/context.js.map +0 -1
  45. package/build/converter/inheritanceModifier.d.ts +0 -3
  46. package/build/converter/inheritanceModifier.js +0 -3
  47. package/build/converter/inheritanceModifier.js.map +0 -1
  48. package/build/converter/nameResolver.d.ts +0 -3
  49. package/build/converter/nameResolver.js +0 -3
  50. package/build/converter/nameResolver.js.map +0 -1
  51. package/build/converter/nameResolvers/resolveCallSignatureParameterName.d.ts +0 -3
  52. package/build/converter/nameResolvers/resolveCallSignatureParameterName.js +0 -29
  53. package/build/converter/nameResolvers/resolveCallSignatureParameterName.js.map +0 -1
  54. package/build/converter/nameResolvers/resolveClassMethodParameterName.d.ts +0 -3
  55. package/build/converter/nameResolvers/resolveClassMethodParameterName.js +0 -34
  56. package/build/converter/nameResolvers/resolveClassMethodParameterName.js.map +0 -1
  57. package/build/converter/nameResolvers/resolveClassMethodReturnTypeName.d.ts +0 -3
  58. package/build/converter/nameResolvers/resolveClassMethodReturnTypeName.js +0 -29
  59. package/build/converter/nameResolvers/resolveClassMethodReturnTypeName.js.map +0 -1
  60. package/build/converter/nameResolvers/resolveConstructorParameterName.d.ts +0 -3
  61. package/build/converter/nameResolvers/resolveConstructorParameterName.js +0 -29
  62. package/build/converter/nameResolvers/resolveConstructorParameterName.js.map +0 -1
  63. package/build/converter/nameResolvers/resolveFunctionParameterName.d.ts +0 -3
  64. package/build/converter/nameResolvers/resolveFunctionParameterName.js +0 -27
  65. package/build/converter/nameResolvers/resolveFunctionParameterName.js.map +0 -1
  66. package/build/converter/nameResolvers/resolveFunctionReturnTypeName.d.ts +0 -3
  67. package/build/converter/nameResolvers/resolveFunctionReturnTypeName.js +0 -22
  68. package/build/converter/nameResolvers/resolveFunctionReturnTypeName.js.map +0 -1
  69. package/build/converter/nameResolvers/resolveFunctionTypeAliasParameterName.d.ts +0 -3
  70. package/build/converter/nameResolvers/resolveFunctionTypeAliasParameterName.js +0 -29
  71. package/build/converter/nameResolvers/resolveFunctionTypeAliasParameterName.js.map +0 -1
  72. package/build/converter/nameResolvers/resolveInterfaceMethodParameterName.d.ts +0 -3
  73. package/build/converter/nameResolvers/resolveInterfaceMethodParameterName.js +0 -34
  74. package/build/converter/nameResolvers/resolveInterfaceMethodParameterName.js.map +0 -1
  75. package/build/converter/nameResolvers/resolveInterfaceMethodReturnTypeName.d.ts +0 -3
  76. package/build/converter/nameResolvers/resolveInterfaceMethodReturnTypeName.js +0 -29
  77. package/build/converter/nameResolvers/resolveInterfaceMethodReturnTypeName.js.map +0 -1
  78. package/build/converter/nameResolvers/resolveTypeAliasPropertyName.d.ts +0 -3
  79. package/build/converter/nameResolvers/resolveTypeAliasPropertyName.js +0 -29
  80. package/build/converter/nameResolvers/resolveTypeAliasPropertyName.js.map +0 -1
  81. package/build/converter/plugin.d.ts +0 -11
  82. package/build/converter/plugin.js +0 -13
  83. package/build/converter/plugin.js.map +0 -1
  84. package/build/converter/plugins/AnnotationsPlugin.d.ts +0 -15
  85. package/build/converter/plugins/AnnotationsPlugin.js +0 -40
  86. package/build/converter/plugins/AnnotationsPlugin.js.map +0 -1
  87. package/build/converter/plugins/CheckCoveragePlugin.d.ts +0 -23
  88. package/build/converter/plugins/CheckCoveragePlugin.js +0 -79
  89. package/build/converter/plugins/CheckCoveragePlugin.js.map +0 -1
  90. package/build/converter/plugins/CheckKindsPlugin.d.ts +0 -10
  91. package/build/converter/plugins/CheckKindsPlugin.js +0 -92
  92. package/build/converter/plugins/CheckKindsPlugin.js.map +0 -1
  93. package/build/converter/plugins/CommentsPlugin.d.ts +0 -16
  94. package/build/converter/plugins/CommentsPlugin.js +0 -61
  95. package/build/converter/plugins/CommentsPlugin.js.map +0 -1
  96. package/build/converter/plugins/ConfigurationPlugin.d.ts +0 -18
  97. package/build/converter/plugins/ConfigurationPlugin.js +0 -28
  98. package/build/converter/plugins/ConfigurationPlugin.js.map +0 -1
  99. package/build/converter/plugins/InheritanceModifierPlugin.d.ts +0 -19
  100. package/build/converter/plugins/InheritanceModifierPlugin.js +0 -36
  101. package/build/converter/plugins/InheritanceModifierPlugin.js.map +0 -1
  102. package/build/converter/plugins/NullableUnionTypePlugin.d.ts +0 -14
  103. package/build/converter/plugins/NullableUnionTypePlugin.js +0 -78
  104. package/build/converter/plugins/NullableUnionTypePlugin.js.map +0 -1
  105. package/build/converter/plugins/TypeLiteralPlugin.d.ts +0 -18
  106. package/build/converter/plugins/TypeLiteralPlugin.js +0 -149
  107. package/build/converter/plugins/TypeLiteralPlugin.js.map +0 -1
  108. package/build/converter/plugins/TypeScriptPlugin.d.ts +0 -21
  109. package/build/converter/plugins/TypeScriptPlugin.js +0 -69
  110. package/build/converter/plugins/TypeScriptPlugin.js.map +0 -1
  111. package/build/converter/plugins/convertArrayType.d.ts +0 -2
  112. package/build/converter/plugins/convertArrayType.js +0 -17
  113. package/build/converter/plugins/convertArrayType.js.map +0 -1
  114. package/build/converter/plugins/convertCallSignature.d.ts +0 -2
  115. package/build/converter/plugins/convertCallSignature.js +0 -31
  116. package/build/converter/plugins/convertCallSignature.js.map +0 -1
  117. package/build/converter/plugins/convertClassDeclaration.d.ts +0 -2
  118. package/build/converter/plugins/convertClassDeclaration.js +0 -56
  119. package/build/converter/plugins/convertClassDeclaration.js.map +0 -1
  120. package/build/converter/plugins/convertConstructorDeclaration.d.ts +0 -2
  121. package/build/converter/plugins/convertConstructorDeclaration.js +0 -23
  122. package/build/converter/plugins/convertConstructorDeclaration.js.map +0 -1
  123. package/build/converter/plugins/convertEnumDeclaration.d.ts +0 -2
  124. package/build/converter/plugins/convertEnumDeclaration.js +0 -28
  125. package/build/converter/plugins/convertEnumDeclaration.js.map +0 -1
  126. package/build/converter/plugins/convertEnumMember.d.ts +0 -2
  127. package/build/converter/plugins/convertEnumMember.js +0 -19
  128. package/build/converter/plugins/convertEnumMember.js.map +0 -1
  129. package/build/converter/plugins/convertExpressionWithTypeArguments.d.ts +0 -2
  130. package/build/converter/plugins/convertExpressionWithTypeArguments.js +0 -18
  131. package/build/converter/plugins/convertExpressionWithTypeArguments.js.map +0 -1
  132. package/build/converter/plugins/convertFunctionDeclaration.d.ts +0 -2
  133. package/build/converter/plugins/convertFunctionDeclaration.js +0 -54
  134. package/build/converter/plugins/convertFunctionDeclaration.js.map +0 -1
  135. package/build/converter/plugins/convertFunctionType.d.ts +0 -2
  136. package/build/converter/plugins/convertFunctionType.js +0 -25
  137. package/build/converter/plugins/convertFunctionType.js.map +0 -1
  138. package/build/converter/plugins/convertHeritageClause.d.ts +0 -2
  139. package/build/converter/plugins/convertHeritageClause.js +0 -19
  140. package/build/converter/plugins/convertHeritageClause.js.map +0 -1
  141. package/build/converter/plugins/convertImportType.d.ts +0 -2
  142. package/build/converter/plugins/convertImportType.js +0 -23
  143. package/build/converter/plugins/convertImportType.js.map +0 -1
  144. package/build/converter/plugins/convertIndexedAccessTypeNode.d.ts +0 -2
  145. package/build/converter/plugins/convertIndexedAccessTypeNode.js +0 -22
  146. package/build/converter/plugins/convertIndexedAccessTypeNode.js.map +0 -1
  147. package/build/converter/plugins/convertInterfaceDeclaration.d.ts +0 -2
  148. package/build/converter/plugins/convertInterfaceDeclaration.js +0 -54
  149. package/build/converter/plugins/convertInterfaceDeclaration.js.map +0 -1
  150. package/build/converter/plugins/convertIntersectionType.d.ts +0 -2
  151. package/build/converter/plugins/convertIntersectionType.js +0 -16
  152. package/build/converter/plugins/convertIntersectionType.js.map +0 -1
  153. package/build/converter/plugins/convertLiteralType.d.ts +0 -2
  154. package/build/converter/plugins/convertLiteralType.js +0 -17
  155. package/build/converter/plugins/convertLiteralType.js.map +0 -1
  156. package/build/converter/plugins/convertMethodDeclaration.d.ts +0 -2
  157. package/build/converter/plugins/convertMethodDeclaration.js +0 -28
  158. package/build/converter/plugins/convertMethodDeclaration.js.map +0 -1
  159. package/build/converter/plugins/convertMethodSignature.d.ts +0 -2
  160. package/build/converter/plugins/convertMethodSignature.js +0 -28
  161. package/build/converter/plugins/convertMethodSignature.js.map +0 -1
  162. package/build/converter/plugins/convertModuleBlock.d.ts +0 -2
  163. package/build/converter/plugins/convertModuleBlock.js +0 -19
  164. package/build/converter/plugins/convertModuleBlock.js.map +0 -1
  165. package/build/converter/plugins/convertModuleDeclaration.d.ts +0 -2
  166. package/build/converter/plugins/convertModuleDeclaration.js +0 -24
  167. package/build/converter/plugins/convertModuleDeclaration.js.map +0 -1
  168. package/build/converter/plugins/convertNodeWithTypeArguments.d.ts +0 -2
  169. package/build/converter/plugins/convertNodeWithTypeArguments.js +0 -11
  170. package/build/converter/plugins/convertNodeWithTypeArguments.js.map +0 -1
  171. package/build/converter/plugins/convertParameterDeclaration.d.ts +0 -21
  172. package/build/converter/plugins/convertParameterDeclaration.js +0 -144
  173. package/build/converter/plugins/convertParameterDeclaration.js.map +0 -1
  174. package/build/converter/plugins/convertParenthesizedType.d.ts +0 -2
  175. package/build/converter/plugins/convertParenthesizedType.js +0 -17
  176. package/build/converter/plugins/convertParenthesizedType.js.map +0 -1
  177. package/build/converter/plugins/convertPrefixUnaryExpression.d.ts +0 -2
  178. package/build/converter/plugins/convertPrefixUnaryExpression.js +0 -40
  179. package/build/converter/plugins/convertPrefixUnaryExpression.js.map +0 -1
  180. package/build/converter/plugins/convertPrimitive.d.ts +0 -5
  181. package/build/converter/plugins/convertPrimitive.js +0 -16
  182. package/build/converter/plugins/convertPrimitive.js.map +0 -1
  183. package/build/converter/plugins/convertPropertyAccessExpression.d.ts +0 -2
  184. package/build/converter/plugins/convertPropertyAccessExpression.js +0 -17
  185. package/build/converter/plugins/convertPropertyAccessExpression.js.map +0 -1
  186. package/build/converter/plugins/convertPropertyDeclaration.d.ts +0 -2
  187. package/build/converter/plugins/convertPropertyDeclaration.js +0 -67
  188. package/build/converter/plugins/convertPropertyDeclaration.js.map +0 -1
  189. package/build/converter/plugins/convertPropertySignature.d.ts +0 -2
  190. package/build/converter/plugins/convertPropertySignature.js +0 -67
  191. package/build/converter/plugins/convertPropertySignature.js.map +0 -1
  192. package/build/converter/plugins/convertQualifiedName.d.ts +0 -2
  193. package/build/converter/plugins/convertQualifiedName.js +0 -17
  194. package/build/converter/plugins/convertQualifiedName.js.map +0 -1
  195. package/build/converter/plugins/convertReadonlyArrayType.d.ts +0 -2
  196. package/build/converter/plugins/convertReadonlyArrayType.js +0 -41
  197. package/build/converter/plugins/convertReadonlyArrayType.js.map +0 -1
  198. package/build/converter/plugins/convertStringUnionTypeAliasDeclaration.d.ts +0 -2
  199. package/build/converter/plugins/convertStringUnionTypeAliasDeclaration.js +0 -80
  200. package/build/converter/plugins/convertStringUnionTypeAliasDeclaration.js.map +0 -1
  201. package/build/converter/plugins/convertTypeAliasDeclaration.d.ts +0 -2
  202. package/build/converter/plugins/convertTypeAliasDeclaration.js +0 -94
  203. package/build/converter/plugins/convertTypeAliasDeclaration.js.map +0 -1
  204. package/build/converter/plugins/convertTypeOperator.d.ts +0 -2
  205. package/build/converter/plugins/convertTypeOperator.js +0 -42
  206. package/build/converter/plugins/convertTypeOperator.js.map +0 -1
  207. package/build/converter/plugins/convertTypeParameterDeclaration.d.ts +0 -2
  208. package/build/converter/plugins/convertTypeParameterDeclaration.js +0 -21
  209. package/build/converter/plugins/convertTypeParameterDeclaration.js.map +0 -1
  210. package/build/converter/plugins/convertTypePredicate.d.ts +0 -2
  211. package/build/converter/plugins/convertTypePredicate.js +0 -18
  212. package/build/converter/plugins/convertTypePredicate.js.map +0 -1
  213. package/build/converter/plugins/convertTypeReferenceNode.d.ts +0 -2
  214. package/build/converter/plugins/convertTypeReferenceNode.js +0 -18
  215. package/build/converter/plugins/convertTypeReferenceNode.js.map +0 -1
  216. package/build/converter/plugins/convertUnionType.d.ts +0 -2
  217. package/build/converter/plugins/convertUnionType.js +0 -16
  218. package/build/converter/plugins/convertUnionType.js.map +0 -1
  219. package/build/converter/plugins/convertVariableDeclaration.d.ts +0 -2
  220. package/build/converter/plugins/convertVariableDeclaration.js +0 -50
  221. package/build/converter/plugins/convertVariableDeclaration.js.map +0 -1
  222. package/build/converter/plugins/convertVariableStatement.d.ts +0 -2
  223. package/build/converter/plugins/convertVariableStatement.js +0 -43
  224. package/build/converter/plugins/convertVariableStatement.js.map +0 -1
  225. package/build/converter/render.d.ts +0 -6
  226. package/build/converter/render.js +0 -22
  227. package/build/converter/render.js.map +0 -1
  228. package/build/defaultPlugins.d.ts +0 -6
  229. package/build/defaultPlugins.js +0 -135
  230. package/build/defaultPlugins.js.map +0 -1
  231. package/build/index.d.ts +0 -17
  232. package/build/index.js +0 -27
  233. package/build/index.js.map +0 -1
  234. package/build/preprocessor/createTransformer.d.ts +0 -2
  235. package/build/preprocessor/createTransformer.js +0 -23
  236. package/build/preprocessor/createTransformer.js.map +0 -1
  237. package/build/preprocessor/preprocessor.d.ts +0 -2
  238. package/build/preprocessor/preprocessor.js +0 -14
  239. package/build/preprocessor/preprocessor.js.map +0 -1
  240. package/build/preprocessor/transformers/mergeInterfacesTransformer.d.ts +0 -2
  241. package/build/preprocessor/transformers/mergeInterfacesTransformer.js +0 -33
  242. package/build/preprocessor/transformers/mergeInterfacesTransformer.js.map +0 -1
  243. package/build/process.d.ts +0 -7
  244. package/build/process.js +0 -187
  245. package/build/process.js.map +0 -1
  246. package/build/structure/createGeneratedFile.d.ts +0 -2
  247. package/build/structure/createGeneratedFile.js +0 -16
  248. package/build/structure/createGeneratedFile.js.map +0 -1
  249. package/build/structure/createTargetFile.d.ts +0 -2
  250. package/build/structure/createTargetFile.js +0 -30
  251. package/build/structure/createTargetFile.js.map +0 -1
  252. package/build/structure/generateImports.d.ts +0 -2
  253. package/build/structure/generateImports.js +0 -19
  254. package/build/structure/generateImports.js.map +0 -1
  255. package/build/structure/generateOutputFileInfo.d.ts +0 -9
  256. package/build/structure/generateOutputFileInfo.js +0 -51
  257. package/build/structure/generateOutputFileInfo.js.map +0 -1
  258. package/build/structure/prepareFileStructure.d.ts +0 -11
  259. package/build/structure/prepareFileStructure.js +0 -141
  260. package/build/structure/prepareFileStructure.js.map +0 -1
  261. package/build/utils/fileName.d.ts +0 -4
  262. package/build/utils/fileName.js +0 -47
  263. package/build/utils/fileName.js.map +0 -1
  264. package/build/utils/findClosest.d.ts +0 -3
  265. package/build/utils/findClosest.js +0 -12
  266. package/build/utils/findClosest.js.map +0 -1
  267. package/build/utils/setParentNodes.d.ts +0 -2
  268. package/build/utils/setParentNodes.js +0 -12
  269. package/build/utils/setParentNodes.js.map +0 -1
  270. package/build/utils/strings.d.ts +0 -3
  271. package/build/utils/strings.js +0 -19
  272. package/build/utils/strings.js.map +0 -1
  273. package/build/utils/traverse.d.ts +0 -2
  274. package/build/utils/traverse.js +0 -11
  275. package/build/utils/traverse.js.map +0 -1
package/README.md CHANGED
@@ -1,3 +1,10 @@
1
+ [![GitHub Licence](https://img.shields.io/github/license/karakum-team/karakum)](https://github.com/karakum-team/karakum/blob/master/LICENSE)
2
+ [![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/karakum-team/karakum/ci.yml)](https://github.com/karakum-team/karakum/actions/workflows/ci.yml)
3
+ [![npm](https://img.shields.io/npm/v/karakum)](https://www.npmjs.com/package/karakum)
4
+ [![Maven Central](https://img.shields.io/maven-central/v/io.github.sgrishchenko/karakum)](https://central.sonatype.com/artifact/io.github.sgrishchenko/karakum)
5
+ [![Gradle Plugin Portal](https://img.shields.io/gradle-plugin-portal/v/io.github.sgrishchenko.karakum)](https://plugins.gradle.org/plugin/io.github.sgrishchenko.karakum)
6
+
7
+
1
8
  # Karakum
2
9
 
3
10
  Converter of TypeScript declaration files to Kotlin declarations.
@@ -14,7 +21,7 @@ Gradle plugin for Kotlin Gradle projects:
14
21
 
15
22
  ```kotlin
16
23
  plugins {
17
- id("io.github.sgrishchenko.karakum") version "1.0.0-alpha.9"
24
+ id("io.github.sgrishchenko.karakum") version "1.0.0-alpha.90"
18
25
  }
19
26
  ```
20
27
 
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env node
2
+
3
+ import {cli} from "./karakum.mjs"
4
+
5
+ await cli()
@@ -0,0 +1,55 @@
1
+ import {
2
+ CompilerOptions,
3
+ Program,
4
+ SourceFile,
5
+ CommentRange,
6
+ Symbol as TsSymbol,
7
+
8
+ Declaration,
9
+ NamedDeclaration,
10
+ ModuleDeclaration,
11
+ ParameterDeclaration,
12
+ TypeParameterDeclaration,
13
+ SignatureDeclarationBase,
14
+
15
+ Node,
16
+ TypeNode,
17
+ UnionTypeNode,
18
+ TypeReferenceNode,
19
+
20
+ HeritageClause
21
+ } from "typescript"
22
+
23
+ type Symbol = symbol
24
+ export type Many<T> = T | T[]
25
+ export type ReadonlyRecord<K extends PropertyKey, V> = Readonly<Record<K, V>>
26
+ export type Rule = string | ReadonlyRecord<string, string>
27
+ export type Tuple2<A, B> = [A, B]
28
+
29
+ export type Granularity = "bundle" | "file" | "top-level"
30
+ export type NamespaceStrategy = "ignore" | "object" | "package"
31
+ export type ConflictResolutionStrategy = "join" | "replace" | "error"
32
+ export type InputResolutionStrategy = "node" | "plain"
33
+
34
+ export type ParameterDeclarationStrategy = "function" | "lambda"
35
+
36
+ export type AnonymousDeclaration = string | {
37
+ name: string,
38
+ declaration: string,
39
+ reference: string,
40
+ }
41
+
42
+ export type InjectionType =
43
+ | "MEMBER"
44
+ | "STATIC_MEMBER"
45
+
46
+ | "PARAMETER"
47
+ | "TYPE_PARAMETER"
48
+
49
+ | "HERITAGE_CLAUSE"
50
+
51
+ export type Render<TNode extends Node> = (node: TNode) => string
52
+
53
+ export declare interface UnionService {
54
+ readonly uncoveredUnionParents: Map<TsSymbol, Array<string>>
55
+ }
@@ -0,0 +1,409 @@
1
+ import {
2
+ CompilerOptions,
3
+ Program,
4
+ SourceFile,
5
+ CommentRange,
6
+ Symbol as TsSymbol,
7
+
8
+ Declaration,
9
+ NamedDeclaration,
10
+ ModuleDeclaration,
11
+ ParameterDeclaration,
12
+ TypeParameterDeclaration,
13
+ SignatureDeclarationBase,
14
+
15
+ Node,
16
+ TypeNode,
17
+ UnionTypeNode,
18
+ TypeReferenceNode,
19
+
20
+ HeritageClause
21
+ } from "typescript"
22
+
23
+ type Symbol = symbol
24
+ export type Many<T> = T | T[]
25
+ export type ReadonlyRecord<K extends PropertyKey, V> = Readonly<Record<K, V>>
26
+ export type Rule = string | ReadonlyRecord<string, string>
27
+ export type Tuple2<A, B> = [A, B]
28
+
29
+ export type Granularity = "bundle" | "file" | "top-level"
30
+ export type NamespaceStrategy = "ignore" | "object" | "package"
31
+ export type ConflictResolutionStrategy = "join" | "replace" | "error"
32
+ export type InputResolutionStrategy = "node" | "plain"
33
+
34
+ export type ParameterDeclarationStrategy = "function" | "lambda"
35
+
36
+ export type AnonymousDeclaration = string | {
37
+ name: string,
38
+ declaration: string,
39
+ reference: string,
40
+ }
41
+
42
+ export type InjectionType =
43
+ | "MEMBER"
44
+ | "STATIC_MEMBER"
45
+
46
+ | "PARAMETER"
47
+ | "TYPE_PARAMETER"
48
+
49
+ | "HERITAGE_CLAUSE"
50
+
51
+ export type Render<TNode extends Node> = (node: TNode) => string
52
+
53
+ export declare interface UnionService {
54
+ readonly uncoveredUnionParents: Map<TsSymbol, Array<string>>
55
+ }
56
+
57
+ type Nullable<T> = T | null | undefined
58
+ declare function KtSingleton<T>(): T & (abstract new() => any);
59
+ export declare function cli(): Promise<void>;
60
+ export declare interface SchemaConfiguration {
61
+ readonly inputRoots?: Nullable<Many<string>>;
62
+ readonly inputResolutionStrategy?: Nullable<InputResolutionStrategy>;
63
+ readonly input?: Nullable<Many<string>>;
64
+ readonly output?: Nullable<string>;
65
+ readonly ignoreInput?: Nullable<Many<string>>;
66
+ readonly ignoreOutput?: Nullable<Many<string>>;
67
+ readonly libraryName?: Nullable<string>;
68
+ readonly libraryNameOutputPrefix?: Nullable<boolean>;
69
+ readonly granularity?: Nullable<Granularity>;
70
+ readonly plugins?: Nullable<Many<any>>;
71
+ readonly injections?: Nullable<Many<any>>;
72
+ readonly annotations?: Nullable<Many<any>>;
73
+ readonly nameResolvers?: Nullable<Many<any>>;
74
+ readonly inheritanceModifiers?: Nullable<Many<any>>;
75
+ readonly varianceModifiers?: Nullable<Many<any>>;
76
+ readonly moduleNameMapper?: Nullable<ReadonlyRecord<string, string>>;
77
+ readonly packageNameMapper?: Nullable<ReadonlyRecord<string, string>>;
78
+ readonly importInjector?: Nullable<ReadonlyRecord<string, Array<string>>>;
79
+ readonly importMapper?: Nullable<any>;
80
+ readonly namespaceStrategy?: Nullable<ReadonlyRecord<string, NamespaceStrategy>>;
81
+ readonly conflictResolutionStrategy?: Nullable<ReadonlyRecord<string, ConflictResolutionStrategy>>;
82
+ readonly compilerOptions?: Nullable<any>;
83
+ readonly disclaimer?: Nullable<string>;
84
+ readonly verbose?: Nullable<boolean>;
85
+ readonly cwd?: Nullable<string>;
86
+ }
87
+ export declare interface PartialConfiguration extends SchemaConfiguration {
88
+ readonly plugins?: Nullable<Many<Plugin>>;
89
+ readonly injections?: Nullable<Many<Injection>>;
90
+ readonly annotations?: Nullable<Many<(p0: Node, p1: AnnotationContext) => Nullable<string>>>;
91
+ readonly nameResolvers?: Nullable<Many<(p0: Node, p1: Context) => Nullable<string>>>;
92
+ readonly inheritanceModifiers?: Nullable<Many<(p0: Node, p1: InheritanceModifierContext) => Nullable<string>>>;
93
+ readonly varianceModifiers?: Nullable<Many<(p0: Node, p1: Context) => Nullable<string>>>;
94
+ readonly importMapper?: Nullable<Record<string, Rule>>;
95
+ readonly compilerOptions?: Nullable<CompilerOptions>;
96
+ }
97
+ export declare interface Configuration {
98
+ readonly inputRoots: Array<string>;
99
+ readonly inputResolutionStrategy: InputResolutionStrategy;
100
+ readonly input: Array<string>;
101
+ readonly inputFileNames: Array<string>;
102
+ readonly output: string;
103
+ readonly outputFileName?: Nullable<string>;
104
+ readonly ignoreInput: Array<string>;
105
+ readonly ignoreOutput: Array<string>;
106
+ readonly libraryName: string;
107
+ readonly libraryNameOutputPrefix: boolean;
108
+ readonly granularity: Granularity;
109
+ readonly plugins: Array<Plugin>;
110
+ readonly injections: Array<Injection>;
111
+ readonly annotations: Array<(p0: Node, p1: AnnotationContext) => Nullable<string>>;
112
+ readonly nameResolvers: Array<(p0: Node, p1: Context) => Nullable<string>>;
113
+ readonly inheritanceModifiers: Array<(p0: Node, p1: InheritanceModifierContext) => Nullable<string>>;
114
+ readonly varianceModifiers: Array<(p0: Node, p1: Context) => Nullable<string>>;
115
+ readonly moduleNameMapper: ReadonlyRecord<string, string>;
116
+ readonly packageNameMapper: ReadonlyRecord<string, string>;
117
+ readonly importInjector: ReadonlyRecord<string, Array<string>>;
118
+ readonly importMapper: ReadonlyRecord<string, Rule>;
119
+ readonly namespaceStrategy: ReadonlyRecord<string, NamespaceStrategy>;
120
+ readonly conflictResolutionStrategy: ReadonlyRecord<string, ConflictResolutionStrategy>;
121
+ readonly compilerOptions: CompilerOptions;
122
+ readonly disclaimer: string;
123
+ readonly verbose: boolean;
124
+ readonly cwd: string;
125
+ readonly inputCwd: string;
126
+ }
127
+ export declare interface AnnotationContext extends Context {
128
+ readonly isAnonymousDeclaration: boolean;
129
+ }
130
+ export declare interface ContextKey<T extends any> {
131
+ }
132
+ export declare interface Context {
133
+ registerService<T extends any>(key: ContextKey<T>, service: T): void;
134
+ lookupService<T extends any>(key: ContextKey<T>): Nullable<T>;
135
+ requireService<T extends any>(key: ContextKey<T>): T;
136
+ }
137
+ export declare function ContextKey<T extends any>(): ContextKey<T>;
138
+ export declare interface GeneratedFile {
139
+ readonly fileName: string;
140
+ readonly body: string;
141
+ }
142
+ export declare interface DerivedFile extends GeneratedFile {
143
+ readonly package: Array<string>;
144
+ readonly imports: Array<string>;
145
+ }
146
+ export declare interface InheritanceModifierContext extends Context {
147
+ readonly signature?: Nullable<Array<ParameterInfo>>;
148
+ readonly getter?: Nullable<boolean>;
149
+ readonly setter?: Nullable<boolean>;
150
+ }
151
+ export declare interface InjectionContext extends Context {
152
+ readonly type: InjectionType;
153
+ }
154
+ export declare interface Injection extends Plugin {
155
+ inject(node: Node, context: InjectionContext, render: Render<Node>): Nullable<Array<string>>;
156
+ }
157
+ export declare interface Plugin {
158
+ setup(context: Context): void;
159
+ traverse(node: Node, context: Context): void;
160
+ render(node: Node, context: Context, next: Render<Node>): Nullable<string>;
161
+ generate(context: Context, render: Render<Node>): Array<GeneratedFile>;
162
+ }
163
+ export declare function ifPresent(part: Nullable<string>, render: (p0: string) => string): string;
164
+ export declare function renderNullable(node: Nullable<TypeNode>, isNullable: boolean, context: Context, render: Render<Node>): string;
165
+ export declare function extractTypeParameters(node: Node, context: Context): Array<Tuple2<Node, Declaration>>;
166
+ export declare function renderDeclaration(result: Array<Tuple2<Node, Declaration>>, render: Render<Node>): string;
167
+ export declare function renderReference(result: Array<Tuple2<Node, Declaration>>, render: Render<Node>): string;
168
+ export declare const annotationServiceKey: { get(): ContextKey<AnnotationService>; };
169
+ export declare class AnnotationService {
170
+ private constructor();
171
+ resolveAnonymousAnnotations(node: Node, context: Context): Array<string>;
172
+ resolveAnnotations(node: Node, context: Context): Array<string>;
173
+ }
174
+ export declare namespace AnnotationService {
175
+ /** @deprecated $metadata$ is used for internal purposes, please don't use it in your code, because it can be removed at any moment */
176
+ namespace $metadata$ {
177
+ const constructor: abstract new () => AnnotationService;
178
+ }
179
+ }
180
+ export declare interface AnonymousDeclarationContext extends Context {
181
+ resolveName(node: Node): string;
182
+ }
183
+ export declare function createAnonymousDeclarationPlugin(render: (p0: Node, p1: AnonymousDeclarationContext, p2: Render<Node>) => Nullable<AnonymousDeclaration>): Plugin;
184
+ export declare interface CheckCoverageResult {
185
+ readonly coveredNodes: number;
186
+ readonly uncoveredNodes: number;
187
+ }
188
+ export declare const checkCoverageServiceKey: { get(): ContextKey<CheckCoverageService>; };
189
+ export declare class CheckCoverageService {
190
+ private constructor();
191
+ register(node: Node): void;
192
+ cover(node: Node): void;
193
+ deepCover(node: Node): void;
194
+ emit(callback: (p0: Node) => void): CheckCoverageResult;
195
+ }
196
+ export declare namespace CheckCoverageService {
197
+ /** @deprecated $metadata$ is used for internal purposes, please don't use it in your code, because it can be removed at any moment */
198
+ namespace $metadata$ {
199
+ const constructor: abstract new () => CheckCoverageService;
200
+ }
201
+ }
202
+ export declare const commentServiceKey: { get(): ContextKey<CommentService>; };
203
+ export declare class CommentService {
204
+ private constructor();
205
+ renderLeadingComments(node: Node): Nullable<string>;
206
+ renderTrailingComments(node: Node): Nullable<string>;
207
+ renderComments(sourceFile: SourceFile, commentRanges: Array<CommentRange>): string;
208
+ }
209
+ export declare namespace CommentService {
210
+ /** @deprecated $metadata$ is used for internal purposes, please don't use it in your code, because it can be removed at any moment */
211
+ namespace $metadata$ {
212
+ const constructor: abstract new () => CommentService;
213
+ }
214
+ }
215
+ export declare const configurationServiceKey: { get(): ContextKey<ConfigurationService>; };
216
+ export declare class ConfigurationService {
217
+ private constructor();
218
+ get configuration(): Configuration;
219
+ }
220
+ export declare namespace ConfigurationService {
221
+ /** @deprecated $metadata$ is used for internal purposes, please don't use it in your code, because it can be removed at any moment */
222
+ namespace $metadata$ {
223
+ const constructor: abstract new () => ConfigurationService;
224
+ }
225
+ }
226
+ export declare const declarationMergingServiceKey: { get(): ContextKey<DeclarationMergingService>; };
227
+ export declare class DeclarationMergingService {
228
+ private constructor();
229
+ isCovered(node: NamedDeclaration): boolean;
230
+ cover(node: NamedDeclaration): void;
231
+ getTypeParameters(node: NamedDeclaration): Nullable<Array<TypeParameterDeclaration>>;
232
+ getHeritageClauses(node: NamedDeclaration): Nullable<Array<HeritageClause>>;
233
+ getMembers(node: NamedDeclaration, context: Context): Nullable<Array<NamedDeclaration>>;
234
+ }
235
+ export declare namespace DeclarationMergingService {
236
+ /** @deprecated $metadata$ is used for internal purposes, please don't use it in your code, because it can be removed at any moment */
237
+ namespace $metadata$ {
238
+ const constructor: abstract new () => DeclarationMergingService;
239
+ }
240
+ }
241
+ export declare const importInfoServiceKey: { get(): ContextKey<ImportInfoService>; };
242
+ export declare class ImportInfoService {
243
+ private constructor();
244
+ resolveImports(sourceFileName: string, node: Nullable<ModuleDeclaration>): Array<string>;
245
+ }
246
+ export declare namespace ImportInfoService {
247
+ /** @deprecated $metadata$ is used for internal purposes, please don't use it in your code, because it can be removed at any moment */
248
+ namespace $metadata$ {
249
+ const constructor: abstract new () => ImportInfoService;
250
+ }
251
+ }
252
+ export declare const inheritanceModifierServiceKey: { get(): ContextKey<InheritanceModifierService>; };
253
+ export declare class InheritanceModifierService {
254
+ private constructor();
255
+ resolveSignatureInheritanceModifier(node: Node, signature: Array<ParameterInfo>, context: Context): Nullable<string>;
256
+ resolveGetterInheritanceModifier(node: Node, context: Context): Nullable<string>;
257
+ resolveSetterInheritanceModifier(node: Node, context: Context): Nullable<string>;
258
+ resolveInheritanceModifier(node: Node, context: Context): Nullable<string>;
259
+ }
260
+ export declare namespace InheritanceModifierService {
261
+ /** @deprecated $metadata$ is used for internal purposes, please don't use it in your code, because it can be removed at any moment */
262
+ namespace $metadata$ {
263
+ const constructor: abstract new () => InheritanceModifierService;
264
+ }
265
+ }
266
+ export declare const injectionServiceKey: { get(): ContextKey<InjectionService>; };
267
+ export declare class InjectionService {
268
+ private constructor();
269
+ resolveInjections(node: Node, type: InjectionType, context: Context, render: Render<Node>): Array<string>;
270
+ }
271
+ export declare namespace InjectionService {
272
+ /** @deprecated $metadata$ is used for internal purposes, please don't use it in your code, because it can be removed at any moment */
273
+ namespace $metadata$ {
274
+ const constructor: abstract new () => InjectionService;
275
+ }
276
+ }
277
+ export declare const nameResolverServiceKey: { get(): ContextKey<NameResolverService>; };
278
+ export declare class NameResolverService {
279
+ private constructor();
280
+ tryResolveName(node: Node, context: Context): Nullable<string>;
281
+ resolveName(node: Node, context: Context): string;
282
+ }
283
+ export declare namespace NameResolverService {
284
+ /** @deprecated $metadata$ is used for internal purposes, please don't use it in your code, because it can be removed at any moment */
285
+ namespace $metadata$ {
286
+ const constructor: abstract new () => NameResolverService;
287
+ }
288
+ }
289
+ export declare const namespaceInfoServiceKey: { get(): ContextKey<NamespaceInfoService>; };
290
+ export declare class NamespaceInfoService {
291
+ private constructor();
292
+ resolveNamespaceStrategy(node: ModuleDeclaration): Nullable<NamespaceStrategy>;
293
+ }
294
+ export declare namespace NamespaceInfoService {
295
+ /** @deprecated $metadata$ is used for internal purposes, please don't use it in your code, because it can be removed at any moment */
296
+ namespace $metadata$ {
297
+ const constructor: abstract new () => NamespaceInfoService;
298
+ }
299
+ }
300
+ export declare const typeScriptServiceKey: { get(): ContextKey<TypeScriptService>; };
301
+ export declare class TypeScriptService {
302
+ private constructor();
303
+ get program(): Program;
304
+ printNode(node: Node): string;
305
+ getParent(node: Node): Nullable<Node>;
306
+ findClosest(rootNode: Nullable<Node>, predicate: (p0: Node) => boolean): Nullable<Node>;
307
+ findClosestNamespace(rootNode: Nullable<Node>): Nullable<ModuleDeclaration>;
308
+ resolveType(node: TypeNode): Nullable<Node>;
309
+ }
310
+ export declare namespace TypeScriptService {
311
+ /** @deprecated $metadata$ is used for internal purposes, please don't use it in your code, because it can be removed at any moment */
312
+ namespace $metadata$ {
313
+ const constructor: abstract new () => TypeScriptService;
314
+ }
315
+ }
316
+ export declare const varianceModifierServiceKey: { get(): ContextKey<VarianceModifierService>; };
317
+ export declare class VarianceModifierService {
318
+ private constructor();
319
+ resolveVarianceModifier(node: Node, context: Context): Nullable<string>;
320
+ }
321
+ export declare namespace VarianceModifierService {
322
+ /** @deprecated $metadata$ is used for internal purposes, please don't use it in your code, because it can be removed at any moment */
323
+ namespace $metadata$ {
324
+ const constructor: abstract new () => VarianceModifierService;
325
+ }
326
+ }
327
+ export declare const unionServiceKey: { get(): ContextKey<UnionService>; };
328
+ export declare class UnionService {
329
+ private constructor();
330
+ isCovered(node: NamedDeclaration): boolean;
331
+ cover(node: NamedDeclaration): void;
332
+ register(union: UnionTypeNode, reference: TypeReferenceNode): void;
333
+ getParents(node: NamedDeclaration): Array<string>;
334
+ }
335
+ export declare namespace UnionService {
336
+ /** @deprecated $metadata$ is used for internal purposes, please don't use it in your code, because it can be removed at any moment */
337
+ namespace $metadata$ {
338
+ const constructor: abstract new () => UnionService;
339
+ }
340
+ }
341
+ export declare class UnionInjection implements Injection {
342
+ constructor();
343
+ setup(context: Context): void;
344
+ traverse(node: Node, context: Context): void;
345
+ render(node: Node, context: Context, next: Render<Node>): Nullable<string>;
346
+ inject(node: Node, context: InjectionContext, render: Render<Node>): Nullable<Array<string>>;
347
+ generate(context: Context, render: Render<Node>): Array<GeneratedFile>;
348
+ }
349
+ export declare namespace UnionInjection {
350
+ /** @deprecated $metadata$ is used for internal purposes, please don't use it in your code, because it can be removed at any moment */
351
+ namespace $metadata$ {
352
+ const constructor: abstract new () => UnionInjection;
353
+ }
354
+ }
355
+ export declare interface ParameterDeclarationsConfiguration {
356
+ readonly strategy: ParameterDeclarationStrategy;
357
+ readonly defaultValue?: Nullable<string>;
358
+ readonly template: (p0: string, p1: Array<ParameterInfo>) => string;
359
+ }
360
+ export declare interface ParameterDeclarationConfiguration {
361
+ readonly strategy: ParameterDeclarationStrategy;
362
+ readonly defaultValue?: Nullable<string>;
363
+ readonly inheritanceModifier?: Nullable<string>;
364
+ readonly type?: Nullable<TypeNode>;
365
+ readonly nullable: boolean;
366
+ }
367
+ export declare interface ParameterInfo {
368
+ readonly parameter: ParameterDeclaration;
369
+ readonly type?: Nullable<TypeNode>;
370
+ readonly nullable: boolean;
371
+ readonly optional: boolean;
372
+ }
373
+ export declare function convertParameterDeclarations(node: SignatureDeclarationBase, context: Context, render: Render<Node>, configuration: ParameterDeclarationsConfiguration): string;
374
+ export declare function convertParameterDeclarationWithFixedType(node: ParameterDeclaration, context: Context, render: Render<Node>, configuration: ParameterDeclarationConfiguration): string;
375
+ export declare function generate(partialConfiguration: PartialConfiguration): Promise<void>;
376
+ export declare function parseArgs(args: Array<string>): Promise<PartialConfiguration>;
377
+ export declare interface DerivedDeclaration {
378
+ readonly sourceFileName: string;
379
+ readonly namespace?: Nullable<ModuleDeclaration>;
380
+ readonly fileName: string;
381
+ readonly body: string;
382
+ }
383
+ export declare function generateDerivedDeclarations(declarations: Array<DerivedDeclaration>, context: Context): Array<DerivedFile>;
384
+ export declare class DeepMap<K, V> {
385
+ constructor();
386
+ clear(): void;
387
+ delete(key: Array<K>): void;
388
+ get(key: Array<K>): Nullable<V>;
389
+ has(key: Array<K>): boolean;
390
+ set(key: Array<K>, value: V): void;
391
+ entries(): Array<Tuple2<Array<K>, V>>;
392
+ keys(): Array<Array<K>>;
393
+ values(): Array<V>;
394
+ }
395
+ export declare namespace DeepMap {
396
+ /** @deprecated $metadata$ is used for internal purposes, please don't use it in your code, because it can be removed at any moment */
397
+ namespace $metadata$ {
398
+ const constructor: abstract new <K, V>() => DeepMap<K, V>;
399
+ }
400
+ }
401
+ export declare function capitalize(string: string): string;
402
+ export declare function camelize(string: string): string;
403
+ export declare function isValidIdentifier(string: string): boolean;
404
+ export declare function escapeIdentifier(string: string): string;
405
+ /** @deprecated Prefer escapeIdentifier */
406
+ export declare function identifier(string: string): string;
407
+ /** @deprecated Prefer escapeIdentifier */
408
+ export declare function constIdentifier(string: string): string;
409
+ export declare function traverse(rootNode: Node, handler: (p0: Node) => void): void;