@typespec/http-client-csharp 0.1.9 → 1.0.0-alpha.20250314.6

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 (274) hide show
  1. package/dist/emitter/src/constants.d.ts +11 -0
  2. package/dist/emitter/src/constants.d.ts.map +1 -0
  3. package/dist/emitter/src/constants.js +23 -0
  4. package/dist/emitter/src/constants.js.map +1 -0
  5. package/dist/emitter/src/emitter.d.ts +19 -0
  6. package/dist/emitter/src/emitter.d.ts.map +1 -0
  7. package/dist/emitter/src/emitter.js +212 -0
  8. package/dist/emitter/src/emitter.js.map +1 -0
  9. package/dist/emitter/src/index.d.ts +12 -0
  10. package/dist/emitter/src/index.d.ts.map +1 -0
  11. package/dist/emitter/src/index.js +11 -0
  12. package/dist/emitter/src/index.js.map +1 -0
  13. package/dist/emitter/src/lib/client-model-builder.d.ts +10 -0
  14. package/dist/emitter/src/lib/client-model-builder.d.ts.map +1 -0
  15. package/dist/emitter/src/lib/client-model-builder.js +150 -0
  16. package/dist/emitter/src/lib/client-model-builder.js.map +1 -0
  17. package/dist/emitter/src/lib/decorators.d.ts +10 -0
  18. package/dist/emitter/src/lib/decorators.d.ts.map +1 -0
  19. package/dist/emitter/src/lib/decorators.js +17 -0
  20. package/dist/emitter/src/lib/decorators.js.map +1 -0
  21. package/dist/emitter/src/lib/example-converter.d.ts +7 -0
  22. package/dist/emitter/src/lib/example-converter.d.ts.map +1 -0
  23. package/dist/emitter/src/lib/example-converter.js +131 -0
  24. package/dist/emitter/src/lib/example-converter.js.map +1 -0
  25. package/dist/emitter/src/lib/lib.d.ts +32 -0
  26. package/dist/emitter/src/lib/lib.d.ts.map +1 -0
  27. package/dist/emitter/src/lib/lib.js +116 -0
  28. package/dist/emitter/src/lib/lib.js.map +1 -0
  29. package/dist/emitter/src/lib/logger-level.d.ts +10 -0
  30. package/dist/emitter/src/lib/logger-level.d.ts.map +1 -0
  31. package/dist/emitter/src/lib/logger-level.js +13 -0
  32. package/dist/emitter/src/lib/logger-level.js.map +1 -0
  33. package/dist/emitter/src/lib/logger.d.ts +21 -0
  34. package/dist/emitter/src/lib/logger.d.ts.map +1 -0
  35. package/dist/emitter/src/lib/logger.js +67 -0
  36. package/dist/emitter/src/lib/logger.js.map +1 -0
  37. package/dist/emitter/src/lib/model.d.ts +8 -0
  38. package/dist/emitter/src/lib/model.d.ts.map +1 -0
  39. package/dist/emitter/src/lib/model.js +37 -0
  40. package/dist/emitter/src/lib/model.js.map +1 -0
  41. package/dist/emitter/src/lib/operation-converter.d.ts +8 -0
  42. package/dist/emitter/src/lib/operation-converter.d.ts.map +1 -0
  43. package/dist/emitter/src/lib/operation-converter.js +341 -0
  44. package/dist/emitter/src/lib/operation-converter.js.map +1 -0
  45. package/dist/emitter/src/lib/service-authentication.d.ts +5 -0
  46. package/dist/emitter/src/lib/service-authentication.d.ts.map +1 -0
  47. package/dist/emitter/src/lib/service-authentication.js +123 -0
  48. package/dist/emitter/src/lib/service-authentication.js.map +1 -0
  49. package/dist/emitter/src/lib/type-converter.d.ts +8 -0
  50. package/dist/emitter/src/lib/type-converter.d.ts.map +1 -0
  51. package/dist/emitter/src/lib/type-converter.js +335 -0
  52. package/dist/emitter/src/lib/type-converter.js.map +1 -0
  53. package/dist/emitter/src/lib/typespec-server.d.ts +10 -0
  54. package/dist/emitter/src/lib/typespec-server.d.ts.map +1 -0
  55. package/dist/emitter/src/lib/typespec-server.js +90 -0
  56. package/dist/emitter/src/lib/typespec-server.js.map +1 -0
  57. package/dist/emitter/src/lib/utils.d.ts +21 -0
  58. package/dist/emitter/src/lib/utils.d.ts.map +1 -0
  59. package/dist/emitter/src/lib/utils.js +105 -0
  60. package/dist/emitter/src/lib/utils.js.map +1 -0
  61. package/dist/emitter/src/options.d.ts +77 -0
  62. package/dist/emitter/src/options.d.ts.map +1 -0
  63. package/dist/emitter/src/options.js +89 -0
  64. package/dist/emitter/src/options.js.map +1 -0
  65. package/dist/emitter/src/sdk-context-options.d.ts +9 -0
  66. package/dist/emitter/src/sdk-context-options.d.ts.map +1 -0
  67. package/dist/emitter/src/sdk-context-options.js +31 -0
  68. package/dist/emitter/src/sdk-context-options.js.map +1 -0
  69. package/dist/emitter/src/sdk-context.d.ts +20 -0
  70. package/dist/emitter/src/sdk-context.d.ts.map +1 -0
  71. package/dist/emitter/src/sdk-context.js +4 -0
  72. package/dist/emitter/src/sdk-context.js.map +1 -0
  73. package/dist/emitter/src/tsdoc-metadata.json +11 -0
  74. package/dist/emitter/src/type/client-kind.d.ts +5 -0
  75. package/dist/emitter/src/type/client-kind.d.ts.map +1 -0
  76. package/dist/emitter/src/type/client-kind.js +8 -0
  77. package/dist/emitter/src/type/client-kind.js.map +1 -0
  78. package/dist/emitter/src/type/code-model.d.ts +12 -0
  79. package/dist/emitter/src/type/code-model.d.ts.map +1 -0
  80. package/dist/emitter/src/type/code-model.js +4 -0
  81. package/dist/emitter/src/type/code-model.js.map +1 -0
  82. package/dist/emitter/src/type/collection-format.d.ts +13 -0
  83. package/dist/emitter/src/type/collection-format.d.ts.map +1 -0
  84. package/dist/emitter/src/type/collection-format.js +22 -0
  85. package/dist/emitter/src/type/collection-format.js.map +1 -0
  86. package/dist/emitter/src/type/configuration.d.ts +7 -0
  87. package/dist/emitter/src/type/configuration.d.ts.map +1 -0
  88. package/dist/emitter/src/type/configuration.js +4 -0
  89. package/dist/emitter/src/type/configuration.js.map +1 -0
  90. package/dist/emitter/src/type/external-docs.d.ts +5 -0
  91. package/dist/emitter/src/type/external-docs.d.ts.map +1 -0
  92. package/dist/emitter/src/type/external-docs.js +4 -0
  93. package/dist/emitter/src/type/external-docs.js.map +1 -0
  94. package/dist/emitter/src/type/http-response-header.d.ts +9 -0
  95. package/dist/emitter/src/type/http-response-header.d.ts.map +1 -0
  96. package/dist/emitter/src/type/http-response-header.js +4 -0
  97. package/dist/emitter/src/type/http-response-header.js.map +1 -0
  98. package/dist/emitter/src/type/input-api-key-auth.d.ts +7 -0
  99. package/dist/emitter/src/type/input-api-key-auth.d.ts.map +1 -0
  100. package/dist/emitter/src/type/input-api-key-auth.js +4 -0
  101. package/dist/emitter/src/type/input-api-key-auth.js.map +1 -0
  102. package/dist/emitter/src/type/input-auth.d.ts +7 -0
  103. package/dist/emitter/src/type/input-auth.d.ts.map +1 -0
  104. package/dist/emitter/src/type/input-auth.js +4 -0
  105. package/dist/emitter/src/type/input-auth.js.map +1 -0
  106. package/dist/emitter/src/type/input-client.d.ts +17 -0
  107. package/dist/emitter/src/type/input-client.d.ts.map +1 -0
  108. package/dist/emitter/src/type/input-client.js +4 -0
  109. package/dist/emitter/src/type/input-client.js.map +1 -0
  110. package/dist/emitter/src/type/input-constant.d.ts +6 -0
  111. package/dist/emitter/src/type/input-constant.d.ts.map +1 -0
  112. package/dist/emitter/src/type/input-constant.js +4 -0
  113. package/dist/emitter/src/type/input-constant.js.map +1 -0
  114. package/dist/emitter/src/type/input-examples.d.ts +77 -0
  115. package/dist/emitter/src/type/input-examples.d.ts.map +1 -0
  116. package/dist/emitter/src/type/input-examples.js +4 -0
  117. package/dist/emitter/src/type/input-examples.js.map +1 -0
  118. package/dist/emitter/src/type/input-oauth2-auth.d.ts +4 -0
  119. package/dist/emitter/src/type/input-oauth2-auth.d.ts.map +1 -0
  120. package/dist/emitter/src/type/input-oauth2-auth.js +4 -0
  121. package/dist/emitter/src/type/input-oauth2-auth.js.map +1 -0
  122. package/dist/emitter/src/type/input-operation-parameter-kind.d.ts +9 -0
  123. package/dist/emitter/src/type/input-operation-parameter-kind.d.ts.map +1 -0
  124. package/dist/emitter/src/type/input-operation-parameter-kind.js +12 -0
  125. package/dist/emitter/src/type/input-operation-parameter-kind.js.map +1 -0
  126. package/dist/emitter/src/type/input-operation.d.ts +36 -0
  127. package/dist/emitter/src/type/input-operation.d.ts.map +1 -0
  128. package/dist/emitter/src/type/input-operation.js +4 -0
  129. package/dist/emitter/src/type/input-operation.js.map +1 -0
  130. package/dist/emitter/src/type/input-parameter.d.ts +30 -0
  131. package/dist/emitter/src/type/input-parameter.d.ts.map +1 -0
  132. package/dist/emitter/src/type/input-parameter.js +4 -0
  133. package/dist/emitter/src/type/input-parameter.js.map +1 -0
  134. package/dist/emitter/src/type/input-type.d.ts +120 -0
  135. package/dist/emitter/src/type/input-type.d.ts.map +1 -0
  136. package/dist/emitter/src/type/input-type.js +21 -0
  137. package/dist/emitter/src/type/input-type.js.map +1 -0
  138. package/dist/emitter/src/type/literal-type-context.d.ts +8 -0
  139. package/dist/emitter/src/type/literal-type-context.d.ts.map +1 -0
  140. package/dist/emitter/src/type/literal-type-context.js +4 -0
  141. package/dist/emitter/src/type/literal-type-context.js.map +1 -0
  142. package/dist/emitter/src/type/operation-final-state-via.d.ts +12 -0
  143. package/dist/emitter/src/type/operation-final-state-via.d.ts.map +1 -0
  144. package/dist/emitter/src/type/operation-final-state-via.js +36 -0
  145. package/dist/emitter/src/type/operation-final-state-via.js.map +1 -0
  146. package/dist/emitter/src/type/operation-long-running.d.ts +8 -0
  147. package/dist/emitter/src/type/operation-long-running.d.ts.map +1 -0
  148. package/dist/emitter/src/type/operation-long-running.js +4 -0
  149. package/dist/emitter/src/type/operation-long-running.js.map +1 -0
  150. package/dist/emitter/src/type/operation-paging.d.ts +19 -0
  151. package/dist/emitter/src/type/operation-paging.d.ts.map +1 -0
  152. package/dist/emitter/src/type/operation-paging.js +4 -0
  153. package/dist/emitter/src/type/operation-paging.js.map +1 -0
  154. package/dist/emitter/src/type/operation-response.d.ts +10 -0
  155. package/dist/emitter/src/type/operation-response.d.ts.map +1 -0
  156. package/dist/emitter/src/type/operation-response.js +4 -0
  157. package/dist/emitter/src/type/operation-response.js.map +1 -0
  158. package/dist/emitter/src/type/protocols.d.ts +3 -0
  159. package/dist/emitter/src/type/protocols.d.ts.map +1 -0
  160. package/dist/emitter/src/type/protocols.js +4 -0
  161. package/dist/emitter/src/type/protocols.js.map +1 -0
  162. package/dist/emitter/src/type/request-location.d.ts +12 -0
  163. package/dist/emitter/src/type/request-location.d.ts.map +1 -0
  164. package/dist/emitter/src/type/request-location.js +19 -0
  165. package/dist/emitter/src/type/request-location.js.map +1 -0
  166. package/dist/emitter/src/type/request-method.d.ts +13 -0
  167. package/dist/emitter/src/type/request-method.d.ts.map +1 -0
  168. package/dist/emitter/src/type/request-method.js +40 -0
  169. package/dist/emitter/src/type/request-method.js.map +1 -0
  170. package/dist/emitter/src/type/response-location.d.ts +6 -0
  171. package/dist/emitter/src/type/response-location.d.ts.map +1 -0
  172. package/dist/emitter/src/type/response-location.js +9 -0
  173. package/dist/emitter/src/type/response-location.js.map +1 -0
  174. package/dist/emitter/src/type/validation-type.d.ts +6 -0
  175. package/dist/emitter/src/type/validation-type.d.ts.map +1 -0
  176. package/dist/emitter/src/type/validation-type.js +9 -0
  177. package/dist/emitter/src/type/validation-type.js.map +1 -0
  178. package/dist/generator/CommandLine.dll +0 -0
  179. package/dist/generator/Humanizer.dll +0 -0
  180. package/dist/generator/Microsoft.Bcl.AsyncInterfaces.dll +0 -0
  181. package/dist/generator/Microsoft.Build.Framework.dll +0 -0
  182. package/dist/generator/Microsoft.Build.dll +0 -0
  183. package/dist/generator/Microsoft.CodeAnalysis.CSharp.Workspaces.dll +0 -0
  184. package/dist/generator/Microsoft.CodeAnalysis.CSharp.dll +0 -0
  185. package/dist/generator/Microsoft.CodeAnalysis.Workspaces.dll +0 -0
  186. package/dist/generator/Microsoft.CodeAnalysis.dll +0 -0
  187. package/dist/generator/Microsoft.Extensions.Logging.Abstractions.dll +0 -0
  188. package/dist/generator/Microsoft.NET.StringTools.dll +0 -0
  189. package/dist/generator/Microsoft.TypeSpec.Generator +0 -0
  190. package/dist/generator/Microsoft.TypeSpec.Generator.ClientModel.StubLibrary.deps.json +826 -0
  191. package/dist/generator/Microsoft.TypeSpec.Generator.ClientModel.StubLibrary.dll +0 -0
  192. package/dist/generator/Microsoft.TypeSpec.Generator.ClientModel.StubLibrary.pdb +0 -0
  193. package/dist/generator/Microsoft.TypeSpec.Generator.ClientModel.deps.json +809 -0
  194. package/dist/generator/Microsoft.TypeSpec.Generator.ClientModel.dll +0 -0
  195. package/dist/generator/Microsoft.TypeSpec.Generator.ClientModel.pdb +0 -0
  196. package/dist/generator/Microsoft.TypeSpec.Generator.Input.dll +0 -0
  197. package/dist/generator/Microsoft.TypeSpec.Generator.Input.pdb +0 -0
  198. package/dist/generator/Microsoft.TypeSpec.Generator.deps.json +758 -0
  199. package/dist/generator/Microsoft.TypeSpec.Generator.dll +0 -0
  200. package/dist/generator/Microsoft.TypeSpec.Generator.pdb +0 -0
  201. package/dist/generator/Microsoft.TypeSpec.Generator.runtimeconfig.json +12 -0
  202. package/dist/generator/NuGet.Common.dll +0 -0
  203. package/dist/generator/NuGet.Configuration.dll +0 -0
  204. package/dist/generator/NuGet.Frameworks.dll +0 -0
  205. package/dist/generator/System.ClientModel.dll +0 -0
  206. package/dist/generator/System.ComponentModel.Composition.dll +0 -0
  207. package/dist/generator/System.Composition.AttributedModel.dll +0 -0
  208. package/dist/generator/System.Composition.Convention.dll +0 -0
  209. package/dist/generator/System.Composition.Hosting.dll +0 -0
  210. package/dist/generator/System.Composition.Runtime.dll +0 -0
  211. package/dist/generator/System.Composition.TypedParts.dll +0 -0
  212. package/dist/generator/System.Configuration.ConfigurationManager.dll +0 -0
  213. package/dist/generator/System.Diagnostics.EventLog.dll +0 -0
  214. package/dist/generator/System.IO.Pipelines.dll +0 -0
  215. package/dist/generator/System.Memory.Data.dll +0 -0
  216. package/dist/generator/System.Reflection.MetadataLoadContext.dll +0 -0
  217. package/dist/generator/System.Security.Cryptography.ProtectedData.dll +0 -0
  218. package/dist/generator/cs/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll +0 -0
  219. package/dist/generator/cs/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
  220. package/dist/generator/cs/Microsoft.CodeAnalysis.Workspaces.resources.dll +0 -0
  221. package/dist/generator/cs/Microsoft.CodeAnalysis.resources.dll +0 -0
  222. package/dist/generator/de/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll +0 -0
  223. package/dist/generator/de/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
  224. package/dist/generator/de/Microsoft.CodeAnalysis.Workspaces.resources.dll +0 -0
  225. package/dist/generator/de/Microsoft.CodeAnalysis.resources.dll +0 -0
  226. package/dist/generator/es/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll +0 -0
  227. package/dist/generator/es/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
  228. package/dist/generator/es/Microsoft.CodeAnalysis.Workspaces.resources.dll +0 -0
  229. package/dist/generator/es/Microsoft.CodeAnalysis.resources.dll +0 -0
  230. package/dist/generator/fr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll +0 -0
  231. package/dist/generator/fr/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
  232. package/dist/generator/fr/Microsoft.CodeAnalysis.Workspaces.resources.dll +0 -0
  233. package/dist/generator/fr/Microsoft.CodeAnalysis.resources.dll +0 -0
  234. package/dist/generator/it/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll +0 -0
  235. package/dist/generator/it/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
  236. package/dist/generator/it/Microsoft.CodeAnalysis.Workspaces.resources.dll +0 -0
  237. package/dist/generator/it/Microsoft.CodeAnalysis.resources.dll +0 -0
  238. package/dist/generator/ja/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll +0 -0
  239. package/dist/generator/ja/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
  240. package/dist/generator/ja/Microsoft.CodeAnalysis.Workspaces.resources.dll +0 -0
  241. package/dist/generator/ja/Microsoft.CodeAnalysis.resources.dll +0 -0
  242. package/dist/generator/ko/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll +0 -0
  243. package/dist/generator/ko/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
  244. package/dist/generator/ko/Microsoft.CodeAnalysis.Workspaces.resources.dll +0 -0
  245. package/dist/generator/ko/Microsoft.CodeAnalysis.resources.dll +0 -0
  246. package/dist/generator/pl/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll +0 -0
  247. package/dist/generator/pl/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
  248. package/dist/generator/pl/Microsoft.CodeAnalysis.Workspaces.resources.dll +0 -0
  249. package/dist/generator/pl/Microsoft.CodeAnalysis.resources.dll +0 -0
  250. package/dist/generator/pt-BR/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll +0 -0
  251. package/dist/generator/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
  252. package/dist/generator/pt-BR/Microsoft.CodeAnalysis.Workspaces.resources.dll +0 -0
  253. package/dist/generator/pt-BR/Microsoft.CodeAnalysis.resources.dll +0 -0
  254. package/dist/generator/ru/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll +0 -0
  255. package/dist/generator/ru/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
  256. package/dist/generator/ru/Microsoft.CodeAnalysis.Workspaces.resources.dll +0 -0
  257. package/dist/generator/ru/Microsoft.CodeAnalysis.resources.dll +0 -0
  258. package/dist/generator/runtimes/win/lib/net8.0/System.Diagnostics.EventLog.Messages.dll +0 -0
  259. package/dist/generator/runtimes/win/lib/net8.0/System.Diagnostics.EventLog.dll +0 -0
  260. package/dist/generator/tr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll +0 -0
  261. package/dist/generator/tr/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
  262. package/dist/generator/tr/Microsoft.CodeAnalysis.Workspaces.resources.dll +0 -0
  263. package/dist/generator/tr/Microsoft.CodeAnalysis.resources.dll +0 -0
  264. package/dist/generator/zh-Hans/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll +0 -0
  265. package/dist/generator/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
  266. package/dist/generator/zh-Hans/Microsoft.CodeAnalysis.Workspaces.resources.dll +0 -0
  267. package/dist/generator/zh-Hans/Microsoft.CodeAnalysis.resources.dll +0 -0
  268. package/dist/generator/zh-Hant/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll +0 -0
  269. package/dist/generator/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll +0 -0
  270. package/dist/generator/zh-Hant/Microsoft.CodeAnalysis.Workspaces.resources.dll +0 -0
  271. package/dist/generator/zh-Hant/Microsoft.CodeAnalysis.resources.dll +0 -0
  272. package/package.json +41 -41
  273. package/readme.md +16 -12
  274. package/LICENSE +0 -21
@@ -0,0 +1,335 @@
1
+ // Copyright (c) Microsoft Corporation. All rights reserved.
2
+ // Licensed under the MIT License. See License.txt in the project root for license information.
3
+ import { getAccessOverride, isReadOnly, } from "@azure-tools/typespec-client-generator-core";
4
+ import { NoTarget } from "@typespec/compiler";
5
+ export function fromSdkType(sdkContext, sdkType, literalTypeContext) {
6
+ if (sdkContext.__typeCache.types.has(sdkType)) {
7
+ return sdkContext.__typeCache.types.get(sdkType);
8
+ }
9
+ let retVar;
10
+ switch (sdkType.kind) {
11
+ case "nullable":
12
+ const inputType = fromSdkType(sdkContext, sdkType.type);
13
+ retVar = {
14
+ kind: "nullable",
15
+ type: inputType,
16
+ namespace: sdkType.namespace,
17
+ };
18
+ break;
19
+ case "model":
20
+ retVar = fromSdkModelType(sdkContext, sdkType);
21
+ break;
22
+ case "enum":
23
+ retVar = fromSdkEnumType(sdkContext, sdkType);
24
+ break;
25
+ case "enumvalue":
26
+ retVar = fromSdkEnumValueTypeToConstantType(sdkContext, sdkType, literalTypeContext);
27
+ break;
28
+ case "dict":
29
+ retVar = fromSdkDictionaryType(sdkContext, sdkType);
30
+ break;
31
+ case "array":
32
+ retVar = fromSdkArrayType(sdkContext, sdkType);
33
+ break;
34
+ case "constant":
35
+ retVar = fromSdkConstantType(sdkContext, sdkType, literalTypeContext);
36
+ break;
37
+ case "union":
38
+ retVar = fromUnionType(sdkContext, sdkType);
39
+ break;
40
+ case "utcDateTime":
41
+ case "offsetDateTime":
42
+ retVar = fromSdkDateTimeType(sdkContext, sdkType);
43
+ break;
44
+ case "duration":
45
+ retVar = fromSdkDurationType(sdkContext, sdkType);
46
+ break;
47
+ case "tuple":
48
+ retVar = fromTupleType(sdkContext, sdkType);
49
+ break;
50
+ // TODO -- endpoint and credential are handled separately in emitter, since we have specific locations for them in input model.
51
+ // We can handle unify the way we handle them in the future, probably by chaning the input model schema and do the conversion in generator.
52
+ case "endpoint":
53
+ retVar = fromSdkEndpointType();
54
+ break;
55
+ case "credential":
56
+ sdkContext.logger.reportDiagnostic({
57
+ code: "unsupported-sdk-type",
58
+ format: { sdkType: "Credential" },
59
+ target: NoTarget,
60
+ });
61
+ return { kind: "unknown", name: "credential", crossLanguageDefinitionId: "" };
62
+ default:
63
+ retVar = fromSdkBuiltInType(sdkContext, sdkType);
64
+ break;
65
+ }
66
+ updateSdkTypeReferences(sdkContext, sdkType, retVar);
67
+ return retVar;
68
+ }
69
+ function updateTypeCache(sdkContext, typeName, type) {
70
+ if (type.kind === "model") {
71
+ sdkContext.__typeCache.models.set(typeName, type);
72
+ }
73
+ else if (type.kind === "enum") {
74
+ sdkContext.__typeCache.enums.set(typeName, type);
75
+ }
76
+ }
77
+ function updateSdkTypeReferences(sdkContext, sdkType, inputType) {
78
+ sdkContext.__typeCache.types.set(sdkType, inputType);
79
+ if ("crossLanguageDefinitionId" in sdkType) {
80
+ sdkContext.__typeCache.crossLanguageDefinitionIds.set(sdkType.crossLanguageDefinitionId, sdkType.__raw);
81
+ }
82
+ }
83
+ export function fromSdkModelType(sdkContext, modelType) {
84
+ const modelTypeName = modelType.name;
85
+ let inputModelType = sdkContext.__typeCache.models.get(modelTypeName);
86
+ if (!inputModelType) {
87
+ inputModelType = {
88
+ kind: "model",
89
+ name: modelTypeName,
90
+ namespace: modelType.namespace,
91
+ crossLanguageDefinitionId: modelType.crossLanguageDefinitionId,
92
+ access: getAccessOverride(sdkContext, modelType.__raw),
93
+ usage: modelType.usage,
94
+ deprecation: modelType.deprecation,
95
+ doc: modelType.doc,
96
+ summary: modelType.summary,
97
+ discriminatorValue: modelType.discriminatorValue,
98
+ decorators: modelType.decorators,
99
+ };
100
+ updateTypeCache(sdkContext, modelTypeName, inputModelType);
101
+ inputModelType.additionalProperties = modelType.additionalProperties
102
+ ? fromSdkType(sdkContext, modelType.additionalProperties)
103
+ : undefined;
104
+ const propertiesDict = new Map();
105
+ for (const property of modelType.properties) {
106
+ if (property.kind !== "property") {
107
+ continue;
108
+ }
109
+ const ourProperty = fromSdkModelProperty(sdkContext, property, {
110
+ modelName: modelTypeName,
111
+ usage: modelType.usage,
112
+ namespace: modelType.namespace,
113
+ });
114
+ propertiesDict.set(property, ourProperty);
115
+ }
116
+ inputModelType.discriminatorProperty = modelType.discriminatorProperty
117
+ ? propertiesDict.get(modelType.discriminatorProperty)
118
+ : undefined;
119
+ inputModelType.baseModel = modelType.baseModel
120
+ ? fromSdkModelType(sdkContext, modelType.baseModel)
121
+ : undefined;
122
+ inputModelType.properties = Array.from(propertiesDict.values()).flat();
123
+ if (modelType.discriminatedSubtypes) {
124
+ const discriminatedSubtypes = {};
125
+ for (const key in modelType.discriminatedSubtypes) {
126
+ const subtype = modelType.discriminatedSubtypes[key];
127
+ discriminatedSubtypes[key] = fromSdkModelType(sdkContext, subtype);
128
+ }
129
+ inputModelType.discriminatedSubtypes = discriminatedSubtypes;
130
+ }
131
+ }
132
+ return inputModelType;
133
+ function fromSdkModelProperty(sdkContext, property, literalTypeContext) {
134
+ let targetType = property.type;
135
+ if (targetType.kind === "model") {
136
+ const body = targetType.properties.find((x) => x.kind === "body");
137
+ if (body)
138
+ targetType = body.type;
139
+ }
140
+ const serializedName = property.serializedName;
141
+ literalTypeContext.propertyName = serializedName;
142
+ const modelProperty = {
143
+ kind: property.kind,
144
+ name: property.name,
145
+ serializedName: serializedName,
146
+ summary: property.summary,
147
+ doc: property.doc,
148
+ type: fromSdkType(sdkContext, targetType, property.discriminator ? undefined : literalTypeContext),
149
+ optional: property.optional,
150
+ readOnly: isReadOnly(property),
151
+ discriminator: property.discriminator,
152
+ flatten: property.flatten,
153
+ decorators: property.decorators,
154
+ crossLanguageDefinitionId: property.crossLanguageDefinitionId,
155
+ serializationOptions: property.serializationOptions,
156
+ };
157
+ return modelProperty;
158
+ }
159
+ }
160
+ export function fromSdkEnumType(sdkContext, enumType, addToCollection = true) {
161
+ const enumName = enumType.name;
162
+ let inputEnumType = sdkContext.__typeCache.enums.get(enumName);
163
+ if (!inputEnumType) {
164
+ const values = [];
165
+ inputEnumType = {
166
+ kind: "enum",
167
+ name: enumName,
168
+ crossLanguageDefinitionId: enumType.crossLanguageDefinitionId,
169
+ valueType: fromSdkBuiltInType(sdkContext, enumType.valueType),
170
+ values: values,
171
+ access: getAccessOverride(sdkContext, enumType.__raw),
172
+ namespace: enumType.namespace,
173
+ deprecation: enumType.deprecation,
174
+ summary: enumType.summary,
175
+ doc: enumType.doc,
176
+ isFixed: enumType.isFixed,
177
+ isFlags: enumType.isFlags,
178
+ usage: enumType.usage,
179
+ decorators: enumType.decorators,
180
+ };
181
+ if (addToCollection) {
182
+ updateTypeCache(sdkContext, enumName, inputEnumType);
183
+ }
184
+ for (const v of enumType.values) {
185
+ values.push(fromSdkEnumValueType(sdkContext, v));
186
+ }
187
+ }
188
+ return inputEnumType;
189
+ }
190
+ function fromSdkDateTimeType(sdkContext, dateTimeType) {
191
+ return {
192
+ kind: dateTimeType.kind,
193
+ name: dateTimeType.name,
194
+ encode: dateTimeType.encode,
195
+ wireType: fromSdkBuiltInType(sdkContext, dateTimeType.wireType),
196
+ crossLanguageDefinitionId: dateTimeType.crossLanguageDefinitionId,
197
+ baseType: dateTimeType.baseType
198
+ ? fromSdkDateTimeType(sdkContext, dateTimeType.baseType)
199
+ : undefined,
200
+ decorators: dateTimeType.decorators,
201
+ };
202
+ }
203
+ function fromSdkDurationType(sdkContext, durationType) {
204
+ return {
205
+ kind: durationType.kind,
206
+ name: durationType.name,
207
+ encode: durationType.encode,
208
+ wireType: fromSdkBuiltInType(sdkContext, durationType.wireType),
209
+ crossLanguageDefinitionId: durationType.crossLanguageDefinitionId,
210
+ baseType: durationType.baseType
211
+ ? fromSdkDurationType(sdkContext, durationType.baseType)
212
+ : undefined,
213
+ decorators: durationType.decorators,
214
+ };
215
+ }
216
+ function fromTupleType(sdkContext, tupleType) {
217
+ return {
218
+ kind: "unknown",
219
+ name: "tuple",
220
+ crossLanguageDefinitionId: "",
221
+ decorators: tupleType.decorators,
222
+ };
223
+ }
224
+ function fromSdkBuiltInType(sdkContext, builtInType) {
225
+ return {
226
+ kind: builtInType.kind,
227
+ name: builtInType.name,
228
+ encode: builtInType.encode !== builtInType.kind ? builtInType.encode : undefined,
229
+ crossLanguageDefinitionId: builtInType.crossLanguageDefinitionId,
230
+ baseType: builtInType.baseType
231
+ ? fromSdkBuiltInType(sdkContext, builtInType.baseType)
232
+ : undefined,
233
+ decorators: builtInType.decorators,
234
+ };
235
+ }
236
+ function fromUnionType(sdkContext, union) {
237
+ const variantTypes = [];
238
+ for (const value of union.variantTypes) {
239
+ const variantType = fromSdkType(sdkContext, value);
240
+ variantTypes.push(variantType);
241
+ }
242
+ return {
243
+ kind: "union",
244
+ name: union.name,
245
+ variantTypes: variantTypes,
246
+ namespace: union.namespace,
247
+ decorators: union.decorators,
248
+ };
249
+ }
250
+ function fromSdkConstantType(sdkContext, constantType, literalTypeContext) {
251
+ return {
252
+ kind: constantType.kind,
253
+ valueType: constantType.valueType.kind === "boolean" || literalTypeContext === undefined
254
+ ? fromSdkBuiltInType(sdkContext, constantType.valueType)
255
+ : convertConstantToEnum(sdkContext, constantType, literalTypeContext),
256
+ value: constantType.value,
257
+ decorators: constantType.decorators,
258
+ };
259
+ function convertConstantToEnum(sdkContext, constantType, literalTypeContext) {
260
+ const enumName = `${literalTypeContext.modelName}_${literalTypeContext.propertyName}`;
261
+ const enumValueName = constantType.value === null ? "Null" : constantType.value.toString();
262
+ const values = [];
263
+ const enumType = {
264
+ kind: "enum",
265
+ name: enumName,
266
+ valueType: fromSdkBuiltInType(sdkContext, constantType.valueType),
267
+ values: values,
268
+ crossLanguageDefinitionId: "",
269
+ access: undefined,
270
+ namespace: literalTypeContext.namespace,
271
+ doc: `The ${enumName}`,
272
+ isFixed: false,
273
+ isFlags: false,
274
+ usage: literalTypeContext.usage,
275
+ decorators: constantType.decorators,
276
+ };
277
+ updateTypeCache(sdkContext, enumName, enumType);
278
+ values.push({
279
+ kind: "enumvalue",
280
+ name: enumValueName,
281
+ value: constantType.value,
282
+ doc: enumValueName,
283
+ valueType: enumType.valueType,
284
+ enumType: enumType,
285
+ });
286
+ return enumType;
287
+ }
288
+ }
289
+ function fromSdkEnumValueTypeToConstantType(sdkContext, enumValueType, literalTypeContext) {
290
+ return {
291
+ kind: "constant",
292
+ valueType: enumValueType.valueType.kind === "boolean" || literalTypeContext === undefined
293
+ ? fromSdkBuiltInType(sdkContext, enumValueType.valueType)
294
+ : fromSdkEnumType(sdkContext, enumValueType.enumType),
295
+ value: enumValueType.value,
296
+ decorators: enumValueType.decorators,
297
+ };
298
+ }
299
+ function fromSdkEnumValueType(sdkContext, enumValueType) {
300
+ return {
301
+ kind: "enumvalue",
302
+ name: enumValueType.name,
303
+ value: enumValueType.value,
304
+ valueType: fromSdkBuiltInType(sdkContext, enumValueType.valueType),
305
+ enumType: fromSdkEnumType(sdkContext, enumValueType.enumType),
306
+ summary: enumValueType.summary,
307
+ doc: enumValueType.doc,
308
+ decorators: enumValueType.decorators,
309
+ };
310
+ }
311
+ function fromSdkDictionaryType(sdkContext, dictionaryType) {
312
+ return {
313
+ kind: "dict",
314
+ keyType: fromSdkType(sdkContext, dictionaryType.keyType),
315
+ valueType: fromSdkType(sdkContext, dictionaryType.valueType),
316
+ decorators: dictionaryType.decorators,
317
+ };
318
+ }
319
+ function fromSdkArrayType(sdkContext, arrayType) {
320
+ return {
321
+ kind: "array",
322
+ name: arrayType.name,
323
+ valueType: fromSdkType(sdkContext, arrayType.valueType),
324
+ crossLanguageDefinitionId: arrayType.crossLanguageDefinitionId,
325
+ decorators: arrayType.decorators,
326
+ };
327
+ }
328
+ function fromSdkEndpointType() {
329
+ return {
330
+ kind: "string",
331
+ name: "string",
332
+ crossLanguageDefinitionId: "TypeSpec.string",
333
+ };
334
+ }
335
+ //# sourceMappingURL=type-converter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-converter.js","sourceRoot":"","sources":["../../../../emitter/src/lib/type-converter.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,+FAA+F;AAE/F,OAAO,EAeL,iBAAiB,EACjB,UAAU,GACX,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAAS,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAkBrD,MAAM,UAAU,WAAW,CACzB,UAAgC,EAChC,OAAgB,EAChB,kBAAuC;IAEvC,IAAI,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9C,OAAO,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC;IACpD,CAAC;IAED,IAAI,MAAiB,CAAC;IACtB,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,UAAU;YACb,MAAM,SAAS,GAAG,WAAW,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;YACxD,MAAM,GAAG;gBACP,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,SAAS;gBACf,SAAS,EAAE,OAAO,CAAC,SAAS;aAC7B,CAAC;YACF,MAAM;QACR,KAAK,OAAO;YACV,MAAM,GAAG,gBAAgB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAC/C,MAAM;QACR,KAAK,MAAM;YACT,MAAM,GAAG,eAAe,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAC9C,MAAM;QACR,KAAK,WAAW;YACd,MAAM,GAAG,kCAAkC,CAAC,UAAU,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC;YACrF,MAAM;QACR,KAAK,MAAM;YACT,MAAM,GAAG,qBAAqB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACpD,MAAM;QACR,KAAK,OAAO;YACV,MAAM,GAAG,gBAAgB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAC/C,MAAM;QACR,KAAK,UAAU;YACb,MAAM,GAAG,mBAAmB,CAAC,UAAU,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC;YACtE,MAAM;QACR,KAAK,OAAO;YACV,MAAM,GAAG,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAC5C,MAAM;QACR,KAAK,aAAa,CAAC;QACnB,KAAK,gBAAgB;YACnB,MAAM,GAAG,mBAAmB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAClD,MAAM;QACR,KAAK,UAAU;YACb,MAAM,GAAG,mBAAmB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAClD,MAAM;QACR,KAAK,OAAO;YACV,MAAM,GAAG,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAC5C,MAAM;QACR,+HAA+H;QAC/H,2IAA2I;QAC3I,KAAK,UAAU;YACb,MAAM,GAAG,mBAAmB,EAAE,CAAC;YAC/B,MAAM;QACR,KAAK,YAAY;YACf,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC;gBACjC,IAAI,EAAE,sBAAsB;gBAC5B,MAAM,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE;gBACjC,MAAM,EAAE,QAAQ;aACjB,CAAC,CAAC;YACH,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,yBAAyB,EAAE,EAAE,EAAE,CAAC;QAChF;YACE,MAAM,GAAG,kBAAkB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACjD,MAAM;IACV,CAAC;IAED,uBAAuB,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACrD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,eAAe,CAAC,UAAgC,EAAE,QAAgB,EAAE,IAAe;IAC1F,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC1B,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACpD,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAChC,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACnD,CAAC;AACH,CAAC;AAED,SAAS,uBAAuB,CAC9B,UAAgC,EAChC,OAAgB,EAChB,SAAoB;IAEpB,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACrD,IAAI,2BAA2B,IAAI,OAAO,EAAE,CAAC;QAC3C,UAAU,CAAC,WAAW,CAAC,0BAA0B,CAAC,GAAG,CACnD,OAAO,CAAC,yBAAyB,EACjC,OAAO,CAAC,KAAK,CACd,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,UAAgC,EAChC,SAAuB;IAEvB,MAAM,aAAa,GAAG,SAAS,CAAC,IAAI,CAAC;IACrC,IAAI,cAAc,GAAG,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IACtE,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,cAAc,GAAG;YACf,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,aAAa;YACnB,SAAS,EAAE,SAAS,CAAC,SAAS;YAC9B,yBAAyB,EAAE,SAAS,CAAC,yBAAyB;YAC9D,MAAM,EAAE,iBAAiB,CAAC,UAAU,EAAE,SAAS,CAAC,KAAc,CAAC;YAC/D,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,WAAW,EAAE,SAAS,CAAC,WAAW;YAClC,GAAG,EAAE,SAAS,CAAC,GAAG;YAClB,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,kBAAkB,EAAE,SAAS,CAAC,kBAAkB;YAChD,UAAU,EAAE,SAAS,CAAC,UAAU;SACf,CAAC;QAEpB,eAAe,CAAC,UAAU,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC;QAE3D,cAAc,CAAC,oBAAoB,GAAG,SAAS,CAAC,oBAAoB;YAClE,CAAC,CAAC,WAAW,CAAC,UAAU,EAAE,SAAS,CAAC,oBAAoB,CAAC;YACzD,CAAC,CAAC,SAAS,CAAC;QAEd,MAAM,cAAc,GAAG,IAAI,GAAG,EAA4C,CAAC;QAC3E,KAAK,MAAM,QAAQ,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;YAC5C,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBACjC,SAAS;YACX,CAAC;YACD,MAAM,WAAW,GAAG,oBAAoB,CAAC,UAAU,EAAE,QAAQ,EAAE;gBAC7D,SAAS,EAAE,aAAa;gBACxB,KAAK,EAAE,SAAS,CAAC,KAAK;gBACtB,SAAS,EAAE,SAAS,CAAC,SAAS;aACT,CAAC,CAAC;YACzB,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAC5C,CAAC;QAED,cAAc,CAAC,qBAAqB,GAAG,SAAS,CAAC,qBAAqB;YACpE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,qBAAqB,CAAC;YACrD,CAAC,CAAC,SAAS,CAAC;QAEd,cAAc,CAAC,SAAS,GAAG,SAAS,CAAC,SAAS;YAC5C,CAAC,CAAC,gBAAgB,CAAC,UAAU,EAAE,SAAS,CAAC,SAAS,CAAC;YACnD,CAAC,CAAC,SAAS,CAAC;QAEd,cAAc,CAAC,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAEvE,IAAI,SAAS,CAAC,qBAAqB,EAAE,CAAC;YACpC,MAAM,qBAAqB,GAAmC,EAAE,CAAC;YACjE,KAAK,MAAM,GAAG,IAAI,SAAS,CAAC,qBAAqB,EAAE,CAAC;gBAClD,MAAM,OAAO,GAAG,SAAS,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;gBACrD,qBAAqB,CAAC,GAAG,CAAC,GAAG,gBAAgB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACrE,CAAC;YACD,cAAc,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;QAC/D,CAAC;IACH,CAAC;IAED,OAAO,cAAc,CAAC;IAEtB,SAAS,oBAAoB,CAC3B,UAAgC,EAChC,QAAkC,EAClC,kBAAsC;QAEtC,IAAI,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC;QAC/B,IAAI,UAAU,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAChC,MAAM,IAAI,GAAG,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;YAClE,IAAI,IAAI;gBAAE,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC;QACnC,CAAC;QAED,MAAM,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC;QAC/C,kBAAkB,CAAC,YAAY,GAAG,cAAc,CAAC;QAEjD,MAAM,aAAa,GAAuB;YACxC,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,cAAc,EAAE,cAAc;YAC9B,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,GAAG,EAAE,QAAQ,CAAC,GAAG;YACjB,IAAI,EAAE,WAAW,CACf,UAAU,EACV,UAAU,EACV,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB,CACxD;YACD,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC;YAC9B,aAAa,EAAE,QAAQ,CAAC,aAAa;YACrC,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,yBAAyB,EAAE,QAAQ,CAAC,yBAAyB;YAC7D,oBAAoB,EAAE,QAAQ,CAAC,oBAAoB;SACpD,CAAC;QAEF,OAAO,aAAa,CAAC;IACvB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,UAAgC,EAChC,QAAqB,EACrB,kBAA2B,IAAI;IAE/B,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC/B,IAAI,aAAa,GAAG,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC/D,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,MAAM,GAAyB,EAAE,CAAC;QACxC,aAAa,GAAG;YACd,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,QAAQ;YACd,yBAAyB,EAAE,QAAQ,CAAC,yBAAyB;YAC7D,SAAS,EAAE,kBAAkB,CAAC,UAAU,EAAE,QAAQ,CAAC,SAAS,CAAC;YAC7D,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,iBAAiB,CAAC,UAAU,EAAE,QAAQ,CAAC,KAAY,CAAC;YAC5D,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,GAAG,EAAE,QAAQ,CAAC,GAAG;YACjB,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,UAAU,EAAE,QAAQ,CAAC,UAAU;SAChC,CAAC;QACF,IAAI,eAAe,EAAE,CAAC;YACpB,eAAe,CAAC,UAAU,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;QACvD,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,SAAS,mBAAmB,CAC1B,UAAgC,EAChC,YAA6B;IAE7B,OAAO;QACL,IAAI,EAAE,YAAY,CAAC,IAAI;QACvB,IAAI,EAAE,YAAY,CAAC,IAAI;QACvB,MAAM,EAAE,YAAY,CAAC,MAAM;QAC3B,QAAQ,EAAE,kBAAkB,CAAC,UAAU,EAAE,YAAY,CAAC,QAAQ,CAAC;QAC/D,yBAAyB,EAAE,YAAY,CAAC,yBAAyB;QACjE,QAAQ,EAAE,YAAY,CAAC,QAAQ;YAC7B,CAAC,CAAC,mBAAmB,CAAC,UAAU,EAAE,YAAY,CAAC,QAAQ,CAAC;YACxD,CAAC,CAAC,SAAS;QACb,UAAU,EAAE,YAAY,CAAC,UAAU;KACpC,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAC1B,UAAgC,EAChC,YAA6B;IAE7B,OAAO;QACL,IAAI,EAAE,YAAY,CAAC,IAAI;QACvB,IAAI,EAAE,YAAY,CAAC,IAAI;QACvB,MAAM,EAAE,YAAY,CAAC,MAAM;QAC3B,QAAQ,EAAE,kBAAkB,CAAC,UAAU,EAAE,YAAY,CAAC,QAAQ,CAAC;QAC/D,yBAAyB,EAAE,YAAY,CAAC,yBAAyB;QACjE,QAAQ,EAAE,YAAY,CAAC,QAAQ;YAC7B,CAAC,CAAC,mBAAmB,CAAC,UAAU,EAAE,YAAY,CAAC,QAAQ,CAAC;YACxD,CAAC,CAAC,SAAS;QACb,UAAU,EAAE,YAAY,CAAC,UAAU;KACpC,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,UAAgC,EAAE,SAAuB;IAC9E,OAAO;QACL,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,OAAO;QACb,yBAAyB,EAAE,EAAE;QAC7B,UAAU,EAAE,SAAS,CAAC,UAAU;KACjC,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CACzB,UAAgC,EAChC,WAA2B;IAE3B,OAAO;QACL,IAAI,EAAE,WAAW,CAAC,IAAI;QACtB,IAAI,EAAE,WAAW,CAAC,IAAI;QACtB,MAAM,EAAE,WAAW,CAAC,MAAM,KAAK,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QAChF,yBAAyB,EAAE,WAAW,CAAC,yBAAyB;QAChE,QAAQ,EAAE,WAAW,CAAC,QAAQ;YAC5B,CAAC,CAAC,kBAAkB,CAAC,UAAU,EAAE,WAAW,CAAC,QAAQ,CAAC;YACtD,CAAC,CAAC,SAAS;QACb,UAAU,EAAE,WAAW,CAAC,UAAU;KACnC,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,UAAgC,EAAE,KAAmB;IAC1E,MAAM,YAAY,GAAgB,EAAE,CAAC;IACrC,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;QACvC,MAAM,WAAW,GAAG,WAAW,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QACnD,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACjC,CAAC;IAED,OAAO;QACL,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,YAAY,EAAE,YAAY;QAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,UAAU,EAAE,KAAK,CAAC,UAAU;KAC7B,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAC1B,UAAgC,EAChC,YAA6B,EAC7B,kBAAuC;IAEvC,OAAO;QACL,IAAI,EAAE,YAAY,CAAC,IAAI;QACvB,SAAS,EACP,YAAY,CAAC,SAAS,CAAC,IAAI,KAAK,SAAS,IAAI,kBAAkB,KAAK,SAAS;YAC3E,CAAC,CAAC,kBAAkB,CAAC,UAAU,EAAE,YAAY,CAAC,SAAS,CAAC;YACxD,CAAC,CAAC,qBAAqB,CAAC,UAAU,EAAE,YAAY,EAAE,kBAAkB,CAAC;QACzE,KAAK,EAAE,YAAY,CAAC,KAAK;QACzB,UAAU,EAAE,YAAY,CAAC,UAAU;KACpC,CAAC;IAEF,SAAS,qBAAqB,CAC5B,UAAgC,EAChC,YAA6B,EAC7B,kBAAsC;QAEtC,MAAM,QAAQ,GAAG,GAAG,kBAAkB,CAAC,SAAS,IAAI,kBAAkB,CAAC,YAAY,EAAE,CAAC;QACtF,MAAM,aAAa,GAAG,YAAY,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC3F,MAAM,MAAM,GAAyB,EAAE,CAAC;QACxC,MAAM,QAAQ,GAAkB;YAC9B,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,QAAQ;YACd,SAAS,EAAE,kBAAkB,CAAC,UAAU,EAAE,YAAY,CAAC,SAAS,CAAC;YACjE,MAAM,EAAE,MAAM;YACd,yBAAyB,EAAE,EAAE;YAC7B,MAAM,EAAE,SAAS;YACjB,SAAS,EAAE,kBAAkB,CAAC,SAAS;YACvC,GAAG,EAAE,OAAO,QAAQ,EAAE;YACtB,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,kBAAkB,CAAC,KAAK;YAC/B,UAAU,EAAE,YAAY,CAAC,UAAU;SACpC,CAAC;QAEF,eAAe,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAEhD,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,aAAa;YACnB,KAAK,EAAE,YAAY,CAAC,KAAwB;YAC5C,GAAG,EAAE,aAAa;YAClB,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC;AAED,SAAS,kCAAkC,CACzC,UAAgC,EAChC,aAA+B,EAC/B,kBAAuC;IAEvC,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,SAAS,EACP,aAAa,CAAC,SAAS,CAAC,IAAI,KAAK,SAAS,IAAI,kBAAkB,KAAK,SAAS;YAC5E,CAAC,CAAC,kBAAkB,CAAC,UAAU,EAAE,aAAa,CAAC,SAAS,CAAC;YACzD,CAAC,CAAC,eAAe,CAAC,UAAU,EAAE,aAAa,CAAC,QAAQ,CAAC;QACzD,KAAK,EAAE,aAAa,CAAC,KAAK;QAC1B,UAAU,EAAE,aAAa,CAAC,UAAU;KACrC,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAC3B,UAAgC,EAChC,aAA+B;IAE/B,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,aAAa,CAAC,IAAI;QACxB,KAAK,EAAE,aAAa,CAAC,KAAK;QAC1B,SAAS,EAAE,kBAAkB,CAAC,UAAU,EAAE,aAAa,CAAC,SAAS,CAAC;QAClE,QAAQ,EAAE,eAAe,CAAC,UAAU,EAAE,aAAa,CAAC,QAAQ,CAAC;QAC7D,OAAO,EAAE,aAAa,CAAC,OAAO;QAC9B,GAAG,EAAE,aAAa,CAAC,GAAG;QACtB,UAAU,EAAE,aAAa,CAAC,UAAU;KACrC,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAC5B,UAAgC,EAChC,cAAiC;IAEjC,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,WAAW,CAAC,UAAU,EAAE,cAAc,CAAC,OAAO,CAAC;QACxD,SAAS,EAAE,WAAW,CAAC,UAAU,EAAE,cAAc,CAAC,SAAS,CAAC;QAC5D,UAAU,EAAE,cAAc,CAAC,UAAU;KACtC,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CACvB,UAAgC,EAChC,SAAuB;IAEvB,OAAO;QACL,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,SAAS,EAAE,WAAW,CAAC,UAAU,EAAE,SAAS,CAAC,SAAS,CAAC;QACvD,yBAAyB,EAAE,SAAS,CAAC,yBAAyB;QAC9D,UAAU,EAAE,SAAS,CAAC,UAAU;KACjC,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB;IAC1B,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,QAAQ;QACd,yBAAyB,EAAE,iBAAiB;KAC7C,CAAC;AACJ,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { HttpServer } from "@typespec/http";
2
+ import { CSharpEmitterContext } from "../sdk-context.js";
3
+ import { InputParameter } from "../type/input-parameter.js";
4
+ export interface TypeSpecServer {
5
+ url: string;
6
+ description?: string;
7
+ parameters: InputParameter[];
8
+ }
9
+ export declare function resolveServers(sdkContext: CSharpEmitterContext, servers: HttpServer[]): TypeSpecServer[];
10
+ //# sourceMappingURL=typespec-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typespec-server.d.ts","sourceRoot":"","sources":["../../../../emitter/src/lib/typespec-server.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAGzD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAK5D,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,cAAc,EAAE,CAAC;CAC9B;AAED,wBAAgB,cAAc,CAC5B,UAAU,EAAE,oBAAoB,EAChC,OAAO,EAAE,UAAU,EAAE,GACpB,cAAc,EAAE,CAmFlB"}
@@ -0,0 +1,90 @@
1
+ // Copyright (c) Microsoft Corporation. All rights reserved.
2
+ // Licensed under the MIT License. See License.txt in the project root for license information.
3
+ import { getDoc, getSummary } from "@typespec/compiler";
4
+ import { getExtensions } from "@typespec/openapi";
5
+ import { InputOperationParameterKind } from "../type/input-operation-parameter-kind.js";
6
+ import { RequestLocation } from "../type/request-location.js";
7
+ import { getDefaultValue, getInputType } from "./model.js";
8
+ export function resolveServers(sdkContext, servers) {
9
+ return servers.map((server) => {
10
+ const parameters = [];
11
+ let url = server.url;
12
+ const endpoint = url.replace("http://", "").replace("https://", "").split("/")[0];
13
+ for (const [name, prop] of server.parameters) {
14
+ const isEndpoint = endpoint === `{${name}}`;
15
+ let defaultValue = undefined;
16
+ const value = prop.default ? getDefaultValue(prop.default) : "";
17
+ const inputType = isEndpoint
18
+ ? {
19
+ kind: "url",
20
+ name: "url",
21
+ crossLanguageDefinitionId: "TypeSpec.url",
22
+ }
23
+ : getInputType(sdkContext, prop);
24
+ if (value) {
25
+ defaultValue = {
26
+ Type: inputType,
27
+ Value: value,
28
+ };
29
+ }
30
+ const variable = {
31
+ Name: name,
32
+ NameInRequest: name,
33
+ Summary: getSummary(sdkContext.program, prop),
34
+ Doc: getDoc(sdkContext.program, prop),
35
+ Type: inputType,
36
+ Location: RequestLocation.Uri,
37
+ IsApiVersion: name.toLowerCase() === "apiversion" || name.toLowerCase() === "api-version",
38
+ IsResourceParameter: false,
39
+ IsContentType: false,
40
+ IsRequired: true,
41
+ IsEndpoint: isEndpoint,
42
+ SkipUrlEncoding:
43
+ // TODO: update this when https://github.com/Azure/typespec-azure/issues/1022 is resolved
44
+ getExtensions(sdkContext.program, prop).get("x-ms-skip-url-encoding") === true,
45
+ Explode: false,
46
+ Kind: InputOperationParameterKind.Client,
47
+ DefaultValue: defaultValue,
48
+ };
49
+ parameters.push(variable);
50
+ }
51
+ /* add default server. */
52
+ if (server.url && parameters.length === 0) {
53
+ const variable = {
54
+ Name: "host",
55
+ NameInRequest: "host",
56
+ Doc: server.description,
57
+ Type: {
58
+ kind: "string",
59
+ name: "string",
60
+ crossLanguageDefinitionId: "TypeSpec.string",
61
+ },
62
+ Location: RequestLocation.Uri,
63
+ IsApiVersion: false,
64
+ IsResourceParameter: false,
65
+ IsContentType: false,
66
+ IsRequired: true,
67
+ IsEndpoint: true,
68
+ SkipUrlEncoding: false,
69
+ Explode: false,
70
+ Kind: InputOperationParameterKind.Client,
71
+ DefaultValue: {
72
+ Type: {
73
+ kind: "string",
74
+ name: "string",
75
+ crossLanguageDefinitionId: "TypeSpec.string",
76
+ },
77
+ Value: server.url,
78
+ },
79
+ };
80
+ url = `{host}`;
81
+ parameters.push(variable);
82
+ }
83
+ return {
84
+ url: url,
85
+ description: server.description,
86
+ parameters,
87
+ };
88
+ });
89
+ }
90
+ //# sourceMappingURL=typespec-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typespec-server.js","sourceRoot":"","sources":["../../../../emitter/src/lib/typespec-server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { SpawnOptions } from "child_process";
2
+ import { CSharpEmitterContext } from "../sdk-context.js";
3
+ export declare function execCSharpGenerator(context: CSharpEmitterContext, options: {
4
+ generatorPath: string;
5
+ outputFolder: string;
6
+ pluginName: string;
7
+ newProject: boolean;
8
+ debug: boolean;
9
+ }): Promise<{
10
+ exitCode: number;
11
+ stderr: string;
12
+ proc: any;
13
+ }>;
14
+ export declare function execAsync(command: string, args?: string[], options?: SpawnOptions): Promise<{
15
+ exitCode: number;
16
+ stdio: string;
17
+ stdout: string;
18
+ stderr: string;
19
+ proc: any;
20
+ }>;
21
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../emitter/src/lib/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAS,YAAY,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEzD,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,oBAAoB,EAC7B,OAAO,EAAE;IACP,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE,OAAO,CAAC;CAChB,GACA,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,GAAG,CAAA;CAAE,CAAC,CAkD1D;AAiCD,wBAAsB,SAAS,CAC7B,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,MAAM,EAAO,EACnB,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,GAAG,CAAA;CAAE,CAAC,CA6BzF"}
@@ -0,0 +1,105 @@
1
+ import { NoTarget } from "@typespec/compiler";
2
+ import { spawn } from "child_process";
3
+ export async function execCSharpGenerator(context, options) {
4
+ const command = "dotnet";
5
+ const args = [
6
+ "--roll-forward",
7
+ "Major",
8
+ options.generatorPath,
9
+ options.outputFolder,
10
+ "-p",
11
+ options.pluginName,
12
+ ];
13
+ if (options.newProject) {
14
+ args.push("--new-project");
15
+ }
16
+ if (options.debug) {
17
+ args.push("--debug");
18
+ }
19
+ context.logger.info(`${command} ${args.join(" ")}`);
20
+ const child = spawn(command, args, { stdio: "pipe" });
21
+ const stderr = [];
22
+ return new Promise((resolve, reject) => {
23
+ let buffer = "";
24
+ child.stdout?.on("data", (data) => {
25
+ buffer += data.toString();
26
+ let index;
27
+ while ((index = buffer.indexOf("\n")) !== -1) {
28
+ const message = buffer.slice(0, index);
29
+ buffer = buffer.slice(index + 1);
30
+ processJsonRpc(context, message);
31
+ }
32
+ });
33
+ child.stderr?.on("data", (data) => {
34
+ stderr.push(data);
35
+ });
36
+ child.on("error", (error) => {
37
+ reject(error);
38
+ });
39
+ child.on("exit", (exitCode) => {
40
+ resolve({
41
+ exitCode: exitCode ?? -1,
42
+ stderr: Buffer.concat(stderr).toString(),
43
+ proc: child,
44
+ });
45
+ });
46
+ });
47
+ }
48
+ function processJsonRpc(context, message) {
49
+ const response = JSON.parse(message);
50
+ const method = response.method;
51
+ const params = response.params;
52
+ switch (method) {
53
+ case "trace":
54
+ context.logger.trace(params.level, params.message);
55
+ break;
56
+ case "diagnostic":
57
+ let crossLanguageDefinitionId;
58
+ if ("crossLanguageDefinitionId" in params) {
59
+ crossLanguageDefinitionId = params.crossLanguageDefinitionId;
60
+ }
61
+ context.logger.reportDiagnostic({
62
+ code: params.code,
63
+ format: {
64
+ message: params.message,
65
+ },
66
+ target: findTarget(crossLanguageDefinitionId) ?? NoTarget,
67
+ });
68
+ break;
69
+ }
70
+ function findTarget(crossLanguageDefinitionId) {
71
+ if (crossLanguageDefinitionId === undefined) {
72
+ return undefined;
73
+ }
74
+ return context.__typeCache.crossLanguageDefinitionIds.get(crossLanguageDefinitionId);
75
+ }
76
+ }
77
+ export async function execAsync(command, args = [], options = {}) {
78
+ const child = spawn(command, args, options);
79
+ return new Promise((resolve, reject) => {
80
+ child.on("error", (error) => {
81
+ reject(error);
82
+ });
83
+ const stdio = [];
84
+ const stdout = [];
85
+ const stderr = [];
86
+ child.stdout?.on("data", (data) => {
87
+ stdout.push(data);
88
+ stdio.push(data);
89
+ });
90
+ child.stderr?.on("data", (data) => {
91
+ stderr.push(data);
92
+ stdio.push(data);
93
+ });
94
+ child.on("exit", (exitCode) => {
95
+ resolve({
96
+ exitCode: exitCode ?? -1,
97
+ stdio: Buffer.concat(stdio).toString(),
98
+ stdout: Buffer.concat(stdout).toString(),
99
+ stderr: Buffer.concat(stderr).toString(),
100
+ proc: child,
101
+ });
102
+ });
103
+ });
104
+ }
105
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../emitter/src/lib/utils.ts"],"names":[],"mappings":"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"}