@azure-tools/typespec-ts 0.55.0-dev.1 → 0.55.0-dev.3

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 (1025) hide show
  1. package/README.md +96 -24
  2. package/dist/src/context-manager.d.ts +75 -0
  3. package/dist/src/context-manager.d.ts.map +1 -0
  4. package/dist/src/context-manager.js +59 -0
  5. package/dist/src/context-manager.js.map +1 -0
  6. package/dist/src/framework/hooks/binder.d.ts.map +1 -1
  7. package/dist/src/framework/hooks/binder.js +6 -7
  8. package/dist/src/framework/hooks/binder.js.map +1 -1
  9. package/dist/src/framework/hooks/sdk-types.d.ts +26 -0
  10. package/dist/src/framework/hooks/sdk-types.d.ts.map +1 -0
  11. package/dist/src/framework/hooks/sdk-types.js +157 -0
  12. package/dist/src/framework/hooks/sdk-types.js.map +1 -0
  13. package/dist/src/framework/hooks/use-dependencies.d.ts +4 -0
  14. package/dist/src/framework/hooks/use-dependencies.d.ts.map +1 -0
  15. package/dist/src/framework/hooks/use-dependencies.js +13 -0
  16. package/dist/src/framework/hooks/use-dependencies.js.map +1 -0
  17. package/dist/src/framework/load-static-helpers.d.ts.map +1 -1
  18. package/dist/src/framework/load-static-helpers.js +7 -8
  19. package/dist/src/framework/load-static-helpers.js.map +1 -1
  20. package/dist/src/index.d.ts.map +1 -1
  21. package/dist/src/index.js +40 -40
  22. package/dist/src/index.js.map +1 -1
  23. package/dist/src/lib.js +30 -31
  24. package/dist/src/lib.js.map +1 -1
  25. package/dist/src/meta-tree.d.ts +7 -0
  26. package/dist/src/meta-tree.d.ts.map +1 -0
  27. package/dist/src/meta-tree.js +2 -0
  28. package/dist/src/meta-tree.js.map +1 -0
  29. package/dist/src/modular/build-classical-client.d.ts +6 -0
  30. package/dist/src/modular/build-classical-client.d.ts.map +1 -0
  31. package/dist/src/modular/build-classical-client.js +345 -0
  32. package/dist/src/modular/build-classical-client.js.map +1 -0
  33. package/dist/src/modular/build-classical-operation-groups.d.ts +6 -0
  34. package/dist/src/modular/build-classical-operation-groups.d.ts.map +1 -0
  35. package/dist/src/modular/build-classical-operation-groups.js +48 -0
  36. package/dist/src/modular/build-classical-operation-groups.js.map +1 -0
  37. package/dist/src/modular/build-client-context.d.ts +13 -0
  38. package/dist/src/modular/build-client-context.d.ts.map +1 -0
  39. package/dist/src/modular/build-client-context.js +246 -0
  40. package/dist/src/modular/build-client-context.js.map +1 -0
  41. package/dist/src/modular/build-modular-options.d.ts +6 -0
  42. package/dist/src/modular/build-modular-options.d.ts.map +1 -0
  43. package/dist/src/modular/build-modular-options.js +14 -0
  44. package/dist/src/modular/build-modular-options.js.map +1 -0
  45. package/dist/src/modular/build-operations.d.ts +21 -0
  46. package/dist/src/modular/build-operations.d.ts.map +1 -0
  47. package/dist/src/modular/build-operations.js +172 -0
  48. package/dist/src/modular/build-operations.js.map +1 -0
  49. package/dist/src/modular/build-project-files.d.ts +4 -0
  50. package/dist/src/modular/build-project-files.d.ts.map +1 -0
  51. package/dist/src/modular/build-project-files.js +91 -0
  52. package/dist/src/modular/build-project-files.js.map +1 -0
  53. package/dist/src/modular/build-restore-poller.d.ts +5 -0
  54. package/dist/src/modular/build-restore-poller.d.ts.map +1 -0
  55. package/dist/src/modular/build-restore-poller.js +216 -0
  56. package/dist/src/modular/build-restore-poller.js.map +1 -0
  57. package/dist/src/modular/build-root-index.d.ts +13 -0
  58. package/dist/src/modular/build-root-index.d.ts.map +1 -0
  59. package/dist/src/modular/build-root-index.js +278 -0
  60. package/dist/src/modular/build-root-index.js.map +1 -0
  61. package/dist/src/modular/build-subpath-index.d.ts +16 -0
  62. package/dist/src/modular/build-subpath-index.d.ts.map +1 -0
  63. package/dist/src/modular/build-subpath-index.js +119 -0
  64. package/dist/src/modular/build-subpath-index.js.map +1 -0
  65. package/dist/src/modular/emit-logger-file.d.ts +3 -0
  66. package/dist/src/modular/emit-logger-file.d.ts.map +1 -0
  67. package/dist/src/modular/emit-logger-file.js +18 -0
  68. package/dist/src/modular/emit-logger-file.js.map +1 -0
  69. package/dist/src/modular/emit-models-options.d.ts +5 -0
  70. package/dist/src/modular/emit-models-options.d.ts.map +1 -0
  71. package/dist/src/modular/emit-models-options.js +35 -0
  72. package/dist/src/modular/emit-models-options.js.map +1 -0
  73. package/dist/src/modular/emit-models.d.ts +23 -0
  74. package/dist/src/modular/emit-models.d.ts.map +1 -0
  75. package/dist/src/modular/emit-models.js +849 -0
  76. package/dist/src/modular/emit-models.js.map +1 -0
  77. package/dist/src/modular/emit-samples.d.ts +7 -0
  78. package/dist/src/modular/emit-samples.d.ts.map +1 -0
  79. package/dist/src/modular/emit-samples.js +499 -0
  80. package/dist/src/modular/emit-samples.js.map +1 -0
  81. package/dist/src/modular/emit-tests.d.ts +7 -0
  82. package/dist/src/modular/emit-tests.d.ts.map +1 -0
  83. package/dist/src/modular/emit-tests.js +155 -0
  84. package/dist/src/modular/emit-tests.js.map +1 -0
  85. package/dist/src/modular/helpers/classical-operation-helpers.d.ts +7 -0
  86. package/dist/src/modular/helpers/classical-operation-helpers.d.ts.map +1 -0
  87. package/dist/src/modular/helpers/classical-operation-helpers.js +258 -0
  88. package/dist/src/modular/helpers/classical-operation-helpers.js.map +1 -0
  89. package/dist/src/modular/helpers/client-helpers.d.ts +34 -0
  90. package/dist/src/modular/helpers/client-helpers.d.ts.map +1 -0
  91. package/dist/src/modular/helpers/client-helpers.js +259 -0
  92. package/dist/src/modular/helpers/client-helpers.js.map +1 -0
  93. package/dist/src/modular/helpers/client-option-helpers.d.ts +43 -0
  94. package/dist/src/modular/helpers/client-option-helpers.d.ts.map +1 -0
  95. package/dist/src/modular/helpers/client-option-helpers.js +103 -0
  96. package/dist/src/modular/helpers/client-option-helpers.js.map +1 -0
  97. package/dist/src/modular/helpers/docs-helpers.d.ts +3 -0
  98. package/dist/src/modular/helpers/docs-helpers.d.ts.map +1 -0
  99. package/dist/src/modular/helpers/docs-helpers.js +10 -0
  100. package/dist/src/modular/helpers/docs-helpers.js.map +1 -0
  101. package/dist/src/modular/helpers/example-value-helpers.d.ts +83 -0
  102. package/dist/src/modular/helpers/example-value-helpers.d.ts.map +1 -0
  103. package/dist/src/modular/helpers/example-value-helpers.js +639 -0
  104. package/dist/src/modular/helpers/example-value-helpers.js.map +1 -0
  105. package/dist/src/modular/helpers/naming-helpers.d.ts +22 -0
  106. package/dist/src/modular/helpers/naming-helpers.d.ts.map +1 -0
  107. package/dist/src/modular/helpers/naming-helpers.js +59 -0
  108. package/dist/src/modular/helpers/naming-helpers.js.map +1 -0
  109. package/dist/src/modular/helpers/operation-helpers.d.ts +105 -0
  110. package/dist/src/modular/helpers/operation-helpers.d.ts.map +1 -0
  111. package/dist/src/modular/helpers/operation-helpers.js +2328 -0
  112. package/dist/src/modular/helpers/operation-helpers.js.map +1 -0
  113. package/dist/src/modular/helpers/type-helpers.d.ts +22 -0
  114. package/dist/src/modular/helpers/type-helpers.d.ts.map +1 -0
  115. package/dist/src/modular/helpers/type-helpers.js +94 -0
  116. package/dist/src/modular/helpers/type-helpers.js.map +1 -0
  117. package/dist/src/modular/serialization/build-deserializer-function.d.ts +7 -0
  118. package/dist/src/modular/serialization/build-deserializer-function.d.ts.map +1 -0
  119. package/dist/src/modular/serialization/build-deserializer-function.js +401 -0
  120. package/dist/src/modular/serialization/build-deserializer-function.js.map +1 -0
  121. package/dist/src/modular/serialization/build-serializer-function.d.ts +7 -0
  122. package/dist/src/modular/serialization/build-serializer-function.d.ts.map +1 -0
  123. package/dist/src/modular/serialization/build-serializer-function.js +442 -0
  124. package/dist/src/modular/serialization/build-serializer-function.js.map +1 -0
  125. package/dist/src/modular/serialization/build-xml-serializer-function.d.ts +44 -0
  126. package/dist/src/modular/serialization/build-xml-serializer-function.d.ts.map +1 -0
  127. package/dist/src/modular/serialization/build-xml-serializer-function.js +729 -0
  128. package/dist/src/modular/serialization/build-xml-serializer-function.js.map +1 -0
  129. package/dist/src/modular/serialization/serialize-utils.d.ts +37 -0
  130. package/dist/src/modular/serialization/serialize-utils.d.ts.map +1 -0
  131. package/dist/src/modular/serialization/serialize-utils.js +145 -0
  132. package/dist/src/modular/serialization/serialize-utils.js.map +1 -0
  133. package/dist/src/modular/type-expressions/get-credential-expression.js +1 -1
  134. package/dist/src/modular/type-expressions/get-credential-expression.js.map +1 -1
  135. package/dist/src/modular/type-expressions/get-model-expression.js +1 -1
  136. package/dist/src/modular/type-expressions/get-model-expression.js.map +1 -1
  137. package/dist/src/rlc-common/build-client-definitions.d.ts +6 -0
  138. package/dist/src/rlc-common/build-client-definitions.d.ts.map +1 -0
  139. package/dist/src/rlc-common/build-client-definitions.js +157 -0
  140. package/dist/src/rlc-common/build-client-definitions.js.map +1 -0
  141. package/dist/src/rlc-common/build-client.d.ts +9 -0
  142. package/dist/src/rlc-common/build-client.d.ts.map +1 -0
  143. package/dist/src/rlc-common/build-client.js +391 -0
  144. package/dist/src/rlc-common/build-client.js.map +1 -0
  145. package/dist/src/rlc-common/build-index-file.d.ts +6 -0
  146. package/dist/src/rlc-common/build-index-file.d.ts.map +1 -0
  147. package/dist/src/rlc-common/build-index-file.js +241 -0
  148. package/dist/src/rlc-common/build-index-file.js.map +1 -0
  149. package/dist/src/rlc-common/build-is-unexpected-helper.d.ts +6 -0
  150. package/dist/src/rlc-common/build-is-unexpected-helper.d.ts.map +1 -0
  151. package/dist/src/rlc-common/build-is-unexpected-helper.js +223 -0
  152. package/dist/src/rlc-common/build-is-unexpected-helper.js.map +1 -0
  153. package/dist/src/rlc-common/build-logger.d.ts +6 -0
  154. package/dist/src/rlc-common/build-logger.d.ts.map +1 -0
  155. package/dist/src/rlc-common/build-logger.js +31 -0
  156. package/dist/src/rlc-common/build-logger.js.map +1 -0
  157. package/dist/src/rlc-common/build-method-shortcuts.d.ts +5 -0
  158. package/dist/src/rlc-common/build-method-shortcuts.d.ts.map +1 -0
  159. package/dist/src/rlc-common/build-method-shortcuts.js +54 -0
  160. package/dist/src/rlc-common/build-method-shortcuts.js.map +1 -0
  161. package/dist/src/rlc-common/build-object-types.d.ts +29 -0
  162. package/dist/src/rlc-common/build-object-types.d.ts.map +1 -0
  163. package/dist/src/rlc-common/build-object-types.js +412 -0
  164. package/dist/src/rlc-common/build-object-types.js.map +1 -0
  165. package/dist/src/rlc-common/build-paginate-helper.d.ts +6 -0
  166. package/dist/src/rlc-common/build-paginate-helper.d.ts.map +1 -0
  167. package/dist/src/rlc-common/build-paginate-helper.js +27 -0
  168. package/dist/src/rlc-common/build-paginate-helper.js.map +1 -0
  169. package/dist/src/rlc-common/build-parameter-types.d.ts +14 -0
  170. package/dist/src/rlc-common/build-parameter-types.d.ts.map +1 -0
  171. package/dist/src/rlc-common/build-parameter-types.js +391 -0
  172. package/dist/src/rlc-common/build-parameter-types.js.map +1 -0
  173. package/dist/src/rlc-common/build-polling-helper.d.ts +6 -0
  174. package/dist/src/rlc-common/build-polling-helper.d.ts.map +1 -0
  175. package/dist/src/rlc-common/build-polling-helper.js +61 -0
  176. package/dist/src/rlc-common/build-polling-helper.js.map +1 -0
  177. package/dist/src/rlc-common/build-response-types.d.ts +6 -0
  178. package/dist/src/rlc-common/build-response-types.d.ts.map +1 -0
  179. package/dist/src/rlc-common/build-response-types.js +143 -0
  180. package/dist/src/rlc-common/build-response-types.js.map +1 -0
  181. package/dist/src/rlc-common/build-samples.d.ts +3 -0
  182. package/dist/src/rlc-common/build-samples.d.ts.map +1 -0
  183. package/dist/src/rlc-common/build-samples.js +30 -0
  184. package/dist/src/rlc-common/build-samples.js.map +1 -0
  185. package/dist/src/rlc-common/build-schema-type.d.ts +20 -0
  186. package/dist/src/rlc-common/build-schema-type.d.ts.map +1 -0
  187. package/dist/src/rlc-common/build-schema-type.js +71 -0
  188. package/dist/src/rlc-common/build-schema-type.js.map +1 -0
  189. package/dist/src/rlc-common/build-serialize-helper.d.ts +6 -0
  190. package/dist/src/rlc-common/build-serialize-helper.d.ts.map +1 -0
  191. package/dist/src/rlc-common/build-serialize-helper.js +36 -0
  192. package/dist/src/rlc-common/build-serialize-helper.js.map +1 -0
  193. package/dist/src/rlc-common/build-top-level-index-file.d.ts +6 -0
  194. package/dist/src/rlc-common/build-top-level-index-file.d.ts.map +1 -0
  195. package/dist/src/rlc-common/build-top-level-index-file.js +48 -0
  196. package/dist/src/rlc-common/build-top-level-index-file.js.map +1 -0
  197. package/dist/src/rlc-common/helpers/api-version-util.d.ts +17 -0
  198. package/dist/src/rlc-common/helpers/api-version-util.d.ts.map +1 -0
  199. package/dist/src/rlc-common/helpers/api-version-util.js +43 -0
  200. package/dist/src/rlc-common/helpers/api-version-util.js.map +1 -0
  201. package/dist/src/rlc-common/helpers/imports-util.d.ts +18 -0
  202. package/dist/src/rlc-common/helpers/imports-util.d.ts.map +1 -0
  203. package/dist/src/rlc-common/helpers/imports-util.js +164 -0
  204. package/dist/src/rlc-common/helpers/imports-util.js.map +1 -0
  205. package/dist/src/rlc-common/helpers/name-constructors.d.ts +42 -0
  206. package/dist/src/rlc-common/helpers/name-constructors.d.ts.map +1 -0
  207. package/dist/src/rlc-common/helpers/name-constructors.js +61 -0
  208. package/dist/src/rlc-common/helpers/name-constructors.js.map +1 -0
  209. package/dist/src/rlc-common/helpers/name-utils.d.ts +37 -0
  210. package/dist/src/rlc-common/helpers/name-utils.d.ts.map +1 -0
  211. package/dist/src/rlc-common/helpers/name-utils.js +240 -0
  212. package/dist/src/rlc-common/helpers/name-utils.js.map +1 -0
  213. package/dist/src/rlc-common/helpers/operation-helpers.d.ts +16 -0
  214. package/dist/src/rlc-common/helpers/operation-helpers.d.ts.map +1 -0
  215. package/dist/src/rlc-common/helpers/operation-helpers.js +104 -0
  216. package/dist/src/rlc-common/helpers/operation-helpers.js.map +1 -0
  217. package/dist/src/rlc-common/helpers/package-util.d.ts +7 -0
  218. package/dist/src/rlc-common/helpers/package-util.d.ts.map +1 -0
  219. package/dist/src/rlc-common/helpers/package-util.js +10 -0
  220. package/dist/src/rlc-common/helpers/package-util.js.map +1 -0
  221. package/dist/src/rlc-common/helpers/path-utils.d.ts +2 -0
  222. package/dist/src/rlc-common/helpers/path-utils.d.ts.map +1 -0
  223. package/dist/src/rlc-common/helpers/path-utils.js +9 -0
  224. package/dist/src/rlc-common/helpers/path-utils.js.map +1 -0
  225. package/dist/src/rlc-common/helpers/schema-helpers.d.ts +10 -0
  226. package/dist/src/rlc-common/helpers/schema-helpers.d.ts.map +1 -0
  227. package/dist/src/rlc-common/helpers/schema-helpers.js +37 -0
  228. package/dist/src/rlc-common/helpers/schema-helpers.js.map +1 -0
  229. package/dist/src/rlc-common/helpers/shortcut-methods.d.ts +4 -0
  230. package/dist/src/rlc-common/helpers/shortcut-methods.d.ts.map +1 -0
  231. package/dist/src/rlc-common/helpers/shortcut-methods.js +49 -0
  232. package/dist/src/rlc-common/helpers/shortcut-methods.js.map +1 -0
  233. package/dist/src/rlc-common/helpers/type-util.d.ts +32 -0
  234. package/dist/src/rlc-common/helpers/type-util.d.ts.map +1 -0
  235. package/dist/src/rlc-common/helpers/type-util.js +162 -0
  236. package/dist/src/rlc-common/helpers/type-util.js.map +1 -0
  237. package/dist/src/rlc-common/helpers/value-generation-util.d.ts +12 -0
  238. package/dist/src/rlc-common/helpers/value-generation-util.d.ts.map +1 -0
  239. package/dist/src/rlc-common/helpers/value-generation-util.js +161 -0
  240. package/dist/src/rlc-common/helpers/value-generation-util.js.map +1 -0
  241. package/dist/src/rlc-common/index.d.ts +39 -39
  242. package/dist/src/rlc-common/index.d.ts.map +1 -1
  243. package/dist/src/rlc-common/index.js +39 -39
  244. package/dist/src/rlc-common/index.js.map +1 -1
  245. package/dist/src/rlc-common/metadata/build-api-extractor-config.d.ts +6 -0
  246. package/dist/src/rlc-common/metadata/build-api-extractor-config.d.ts.map +1 -0
  247. package/dist/src/rlc-common/metadata/build-api-extractor-config.js +55 -0
  248. package/dist/src/rlc-common/metadata/build-api-extractor-config.js.map +1 -0
  249. package/dist/src/rlc-common/metadata/build-changelog-file.d.ts +6 -0
  250. package/dist/src/rlc-common/metadata/build-changelog-file.d.ts.map +1 -0
  251. package/dist/src/rlc-common/metadata/build-changelog-file.js +25 -0
  252. package/dist/src/rlc-common/metadata/build-changelog-file.js.map +1 -0
  253. package/dist/src/rlc-common/metadata/build-es-lint-config.d.ts +6 -0
  254. package/dist/src/rlc-common/metadata/build-es-lint-config.d.ts.map +1 -0
  255. package/dist/src/rlc-common/metadata/build-es-lint-config.js +79 -0
  256. package/dist/src/rlc-common/metadata/build-es-lint-config.js.map +1 -0
  257. package/dist/src/rlc-common/metadata/build-license-file.d.ts +5 -0
  258. package/dist/src/rlc-common/metadata/build-license-file.d.ts.map +1 -0
  259. package/dist/src/rlc-common/metadata/build-license-file.js +32 -0
  260. package/dist/src/rlc-common/metadata/build-license-file.js.map +1 -0
  261. package/dist/src/rlc-common/metadata/build-package-file.d.ts +25 -0
  262. package/dist/src/rlc-common/metadata/build-package-file.d.ts.map +1 -0
  263. package/dist/src/rlc-common/metadata/build-package-file.js +197 -0
  264. package/dist/src/rlc-common/metadata/build-package-file.js.map +1 -0
  265. package/dist/src/rlc-common/metadata/build-readme-file.d.ts +11 -0
  266. package/dist/src/rlc-common/metadata/build-readme-file.d.ts.map +1 -0
  267. package/dist/src/rlc-common/metadata/build-readme-file.js +418 -0
  268. package/dist/src/rlc-common/metadata/build-readme-file.js.map +1 -0
  269. package/dist/src/rlc-common/metadata/build-rollup-config.d.ts +6 -0
  270. package/dist/src/rlc-common/metadata/build-rollup-config.d.ts.map +1 -0
  271. package/dist/src/rlc-common/metadata/build-rollup-config.js +140 -0
  272. package/dist/src/rlc-common/metadata/build-rollup-config.js.map +1 -0
  273. package/dist/src/rlc-common/metadata/build-sample-env-file.d.ts +6 -0
  274. package/dist/src/rlc-common/metadata/build-sample-env-file.d.ts.map +1 -0
  275. package/dist/src/rlc-common/metadata/build-sample-env-file.js +15 -0
  276. package/dist/src/rlc-common/metadata/build-sample-env-file.js.map +1 -0
  277. package/dist/src/rlc-common/metadata/build-test-config.d.ts +16 -0
  278. package/dist/src/rlc-common/metadata/build-test-config.d.ts.map +1 -0
  279. package/dist/src/rlc-common/metadata/build-test-config.js +54 -0
  280. package/dist/src/rlc-common/metadata/build-test-config.js.map +1 -0
  281. package/dist/src/rlc-common/metadata/build-ts-config.d.ts +61 -0
  282. package/dist/src/rlc-common/metadata/build-ts-config.d.ts.map +1 -0
  283. package/dist/src/rlc-common/metadata/build-ts-config.js +170 -0
  284. package/dist/src/rlc-common/metadata/build-ts-config.js.map +1 -0
  285. package/dist/src/rlc-common/metadata/build-vitest-config.d.ts +6 -0
  286. package/dist/src/rlc-common/metadata/build-vitest-config.d.ts.map +1 -0
  287. package/dist/src/rlc-common/metadata/build-vitest-config.js +26 -0
  288. package/dist/src/rlc-common/metadata/build-vitest-config.js.map +1 -0
  289. package/dist/src/rlc-common/metadata/build-warp-config.d.ts +20 -0
  290. package/dist/src/rlc-common/metadata/build-warp-config.d.ts.map +1 -0
  291. package/dist/src/rlc-common/metadata/build-warp-config.js +76 -0
  292. package/dist/src/rlc-common/metadata/build-warp-config.js.map +1 -0
  293. package/dist/src/rlc-common/metadata/package-json/azure-package-common.d.ts +51 -0
  294. package/dist/src/rlc-common/metadata/package-json/azure-package-common.d.ts.map +1 -0
  295. package/dist/src/rlc-common/metadata/package-json/azure-package-common.js +121 -0
  296. package/dist/src/rlc-common/metadata/package-json/azure-package-common.js.map +1 -0
  297. package/dist/src/rlc-common/metadata/package-json/build-azure-monorepo-package.d.ts +242 -0
  298. package/dist/src/rlc-common/metadata/package-json/build-azure-monorepo-package.d.ts.map +1 -0
  299. package/dist/src/rlc-common/metadata/package-json/build-azure-monorepo-package.js +171 -0
  300. package/dist/src/rlc-common/metadata/package-json/build-azure-monorepo-package.js.map +1 -0
  301. package/dist/src/rlc-common/metadata/package-json/build-azure-standalone-package.d.ts +8 -0
  302. package/dist/src/rlc-common/metadata/package-json/build-azure-standalone-package.d.ts.map +1 -0
  303. package/dist/src/rlc-common/metadata/package-json/build-azure-standalone-package.js +101 -0
  304. package/dist/src/rlc-common/metadata/package-json/build-azure-standalone-package.js.map +1 -0
  305. package/dist/src/rlc-common/metadata/package-json/build-flavorless-package.d.ts +57 -0
  306. package/dist/src/rlc-common/metadata/package-json/build-flavorless-package.d.ts.map +1 -0
  307. package/dist/src/rlc-common/metadata/package-json/build-flavorless-package.js +53 -0
  308. package/dist/src/rlc-common/metadata/package-json/build-flavorless-package.js.map +1 -0
  309. package/dist/src/rlc-common/metadata/package-json/package-common.d.ts +64 -0
  310. package/dist/src/rlc-common/metadata/package-json/package-common.d.ts.map +1 -0
  311. package/dist/src/rlc-common/metadata/package-json/package-common.js +180 -0
  312. package/dist/src/rlc-common/metadata/package-json/package-common.js.map +1 -0
  313. package/dist/src/rlc-common/static/paginate-content.d.ts +2 -0
  314. package/dist/src/rlc-common/static/paginate-content.d.ts.map +1 -0
  315. package/dist/src/rlc-common/static/paginate-content.js +345 -0
  316. package/dist/src/rlc-common/static/paginate-content.js.map +1 -0
  317. package/dist/src/rlc-common/static/polling-content.d.ts +2 -0
  318. package/dist/src/rlc-common/static/polling-content.d.ts.map +1 -0
  319. package/dist/src/rlc-common/static/polling-content.js +225 -0
  320. package/dist/src/rlc-common/static/polling-content.js.map +1 -0
  321. package/dist/src/rlc-common/static/sample-template.d.ts +2 -0
  322. package/dist/src/rlc-common/static/sample-template.d.ts.map +1 -0
  323. package/dist/src/rlc-common/static/sample-template.js +56 -0
  324. package/dist/src/rlc-common/static/sample-template.js.map +1 -0
  325. package/dist/src/rlc-common/static/serialize-helper.d.ts +6 -0
  326. package/dist/src/rlc-common/static/serialize-helper.d.ts.map +1 -0
  327. package/dist/src/rlc-common/static/serialize-helper.js +31 -0
  328. package/dist/src/rlc-common/static/serialize-helper.js.map +1 -0
  329. package/dist/src/rlc-common/test/build-karma-config.d.ts +6 -0
  330. package/dist/src/rlc-common/test/build-karma-config.d.ts.map +1 -0
  331. package/dist/src/rlc-common/test/build-karma-config.js +11 -0
  332. package/dist/src/rlc-common/test/build-karma-config.js.map +1 -0
  333. package/dist/src/rlc-common/test/build-recorded-client.d.ts +6 -0
  334. package/dist/src/rlc-common/test/build-recorded-client.d.ts.map +1 -0
  335. package/dist/src/rlc-common/test/build-recorded-client.js +17 -0
  336. package/dist/src/rlc-common/test/build-recorded-client.js.map +1 -0
  337. package/dist/src/rlc-common/test/build-sample-test.d.ts +6 -0
  338. package/dist/src/rlc-common/test/build-sample-test.d.ts.map +1 -0
  339. package/dist/src/rlc-common/test/build-sample-test.js +14 -0
  340. package/dist/src/rlc-common/test/build-sample-test.js.map +1 -0
  341. package/dist/src/rlc-common/test/build-snippets.d.ts +6 -0
  342. package/dist/src/rlc-common/test/build-snippets.d.ts.map +1 -0
  343. package/dist/src/rlc-common/test/build-snippets.js +26 -0
  344. package/dist/src/rlc-common/test/build-snippets.js.map +1 -0
  345. package/dist/src/rlc-common/transform-sample-groups.d.ts +9 -0
  346. package/dist/src/rlc-common/transform-sample-groups.d.ts.map +1 -0
  347. package/dist/src/rlc-common/transform-sample-groups.js +313 -0
  348. package/dist/src/rlc-common/transform-sample-groups.js.map +1 -0
  349. package/dist/src/transform/transform-api-version-info.d.ts +6 -0
  350. package/dist/src/transform/transform-api-version-info.d.ts.map +1 -0
  351. package/dist/src/transform/transform-api-version-info.js +78 -0
  352. package/dist/src/transform/transform-api-version-info.js.map +1 -0
  353. package/dist/src/transform/transform-helper-function-details.d.ts +5 -0
  354. package/dist/src/transform/transform-helper-function-details.d.ts.map +1 -0
  355. package/dist/src/transform/transform-helper-function-details.js +74 -0
  356. package/dist/src/transform/transform-helper-function-details.js.map +1 -0
  357. package/dist/src/transform/transform-parameters.d.ts +14 -0
  358. package/dist/src/transform/transform-parameters.d.ts.map +1 -0
  359. package/dist/src/transform/transform-parameters.js +201 -0
  360. package/dist/src/transform/transform-parameters.js.map +1 -0
  361. package/dist/src/transform/transform-paths.d.ts +5 -0
  362. package/dist/src/transform/transform-paths.d.ts.map +1 -0
  363. package/dist/src/transform/transform-paths.js +102 -0
  364. package/dist/src/transform/transform-paths.js.map +1 -0
  365. package/dist/src/transform/transform-responses.d.ts +5 -0
  366. package/dist/src/transform/transform-responses.d.ts.map +1 -0
  367. package/dist/src/transform/transform-responses.js +171 -0
  368. package/dist/src/transform/transform-responses.js.map +1 -0
  369. package/dist/src/transform/transform-schemas.d.ts +4 -0
  370. package/dist/src/transform/transform-schemas.d.ts.map +1 -0
  371. package/dist/src/transform/transform-schemas.js +191 -0
  372. package/dist/src/transform/transform-schemas.js.map +1 -0
  373. package/dist/src/transform/transform-telemetry-info.d.ts +4 -0
  374. package/dist/src/transform/transform-telemetry-info.d.ts.map +1 -0
  375. package/dist/src/transform/transform-telemetry-info.js +22 -0
  376. package/dist/src/transform/transform-telemetry-info.js.map +1 -0
  377. package/dist/src/transform/transform.d.ts.map +1 -1
  378. package/dist/src/transform/transform.js +12 -13
  379. package/dist/src/transform/transform.js.map +1 -1
  380. package/dist/src/transform/transfrom-rlc-options.d.ts +14 -0
  381. package/dist/src/transform/transfrom-rlc-options.d.ts.map +1 -0
  382. package/dist/src/transform/transfrom-rlc-options.js +369 -0
  383. package/dist/src/transform/transfrom-rlc-options.js.map +1 -0
  384. package/dist/src/utils/client-utils.d.ts +10 -0
  385. package/dist/src/utils/client-utils.d.ts.map +1 -0
  386. package/dist/src/utils/client-utils.js +124 -0
  387. package/dist/src/utils/client-utils.js.map +1 -0
  388. package/dist/src/utils/credential-utils.d.ts +15 -0
  389. package/dist/src/utils/credential-utils.d.ts.map +1 -0
  390. package/dist/src/utils/credential-utils.js +68 -0
  391. package/dist/src/utils/credential-utils.js.map +1 -0
  392. package/dist/src/utils/cross-language-def.d.ts +6 -0
  393. package/dist/src/utils/cross-language-def.d.ts.map +1 -0
  394. package/dist/src/utils/cross-language-def.js +59 -0
  395. package/dist/src/utils/cross-language-def.js.map +1 -0
  396. package/dist/src/utils/emit-util.d.ts +5 -0
  397. package/dist/src/utils/emit-util.d.ts.map +1 -0
  398. package/dist/src/utils/emit-util.js +70 -0
  399. package/dist/src/utils/emit-util.js.map +1 -0
  400. package/dist/src/utils/file-system-utils.d.ts +5 -0
  401. package/dist/src/utils/file-system-utils.d.ts.map +1 -0
  402. package/dist/src/utils/file-system-utils.js +58 -0
  403. package/dist/src/utils/file-system-utils.js.map +1 -0
  404. package/dist/src/utils/import-helper.d.ts +10 -0
  405. package/dist/src/utils/import-helper.d.ts.map +1 -0
  406. package/dist/src/utils/import-helper.js +51 -0
  407. package/dist/src/utils/import-helper.js.map +1 -0
  408. package/dist/src/utils/interfaces.d.ts +1 -1
  409. package/dist/src/utils/interfaces.d.ts.map +1 -1
  410. package/dist/src/utils/media-types.d.ts +28 -0
  411. package/dist/src/utils/media-types.d.ts.map +1 -0
  412. package/dist/src/utils/media-types.js +124 -0
  413. package/dist/src/utils/media-types.js.map +1 -0
  414. package/dist/src/utils/model-utils.d.ts +60 -0
  415. package/dist/src/utils/model-utils.d.ts.map +1 -0
  416. package/dist/src/utils/model-utils.js +1480 -0
  417. package/dist/src/utils/model-utils.js.map +1 -0
  418. package/dist/src/utils/namespace-utils.d.ts +6 -0
  419. package/dist/src/utils/namespace-utils.d.ts.map +1 -0
  420. package/dist/src/utils/namespace-utils.js +69 -0
  421. package/dist/src/utils/namespace-utils.js.map +1 -0
  422. package/dist/src/utils/operation-util.d.ts +97 -0
  423. package/dist/src/utils/operation-util.d.ts.map +1 -0
  424. package/dist/src/utils/operation-util.js +547 -0
  425. package/dist/src/utils/operation-util.js.map +1 -0
  426. package/dist/src/utils/parameter-utils.d.ts +9 -0
  427. package/dist/src/utils/parameter-utils.d.ts.map +1 -0
  428. package/dist/src/utils/parameter-utils.js +147 -0
  429. package/dist/src/utils/parameter-utils.js.map +1 -0
  430. package/dist/src/utils/resolve-project-root.d.ts.map +1 -1
  431. package/dist/src/utils/resolve-project-root.js +1 -3
  432. package/dist/src/utils/resolve-project-root.js.map +1 -1
  433. package/dist/tsconfig.tsbuildinfo +1 -1
  434. package/package.json +28 -32
  435. package/src/context-manager.ts +101 -0
  436. package/src/framework/hooks/binder.ts +6 -7
  437. package/src/framework/hooks/sdk-types.ts +218 -0
  438. package/src/framework/hooks/use-dependencies.ts +16 -0
  439. package/src/framework/load-static-helpers.ts +7 -8
  440. package/src/index.ts +46 -41
  441. package/src/lib.ts +31 -31
  442. package/src/modular/build-classical-client.ts +434 -0
  443. package/src/modular/build-classical-operation-groups.ts +69 -0
  444. package/src/modular/build-client-context.ts +325 -0
  445. package/src/modular/build-operations.ts +248 -0
  446. package/src/modular/build-project-files.ts +118 -0
  447. package/src/modular/build-restore-poller.ts +242 -0
  448. package/src/modular/build-root-index.ts +406 -0
  449. package/src/modular/build-subpath-index.ts +152 -0
  450. package/src/modular/emit-logger-file.ts +23 -0
  451. package/src/modular/emit-models-options.ts +56 -0
  452. package/src/modular/emit-models.ts +1080 -0
  453. package/src/modular/emit-samples.ts +674 -0
  454. package/src/modular/emit-tests.ts +198 -0
  455. package/src/modular/helpers/classical-operation-helpers.ts +375 -0
  456. package/src/modular/helpers/client-helpers.ts +362 -0
  457. package/src/modular/helpers/example-value-helpers.ts +851 -0
  458. package/src/modular/helpers/naming-helpers.ts +84 -0
  459. package/src/modular/helpers/operation-helpers.ts +3035 -0
  460. package/src/modular/helpers/type-helpers.ts +134 -0
  461. package/src/modular/serialization/build-deserializer-function.ts +564 -0
  462. package/src/modular/serialization/build-serializer-function.ts +614 -0
  463. package/src/modular/serialization/build-xml-serializer-function.ts +951 -0
  464. package/src/modular/serialization/serialize-utils.ts +217 -0
  465. package/src/modular/type-expressions/get-credential-expression.ts +1 -1
  466. package/src/modular/type-expressions/get-model-expression.ts +1 -1
  467. package/src/rlc-common/build-client-definitions.ts +235 -0
  468. package/src/rlc-common/build-client.ts +490 -0
  469. package/src/rlc-common/build-index-file.ts +344 -0
  470. package/src/rlc-common/build-is-unexpected-helper.ts +248 -0
  471. package/src/rlc-common/build-logger.ts +43 -0
  472. package/src/rlc-common/build-method-shortcuts.ts +71 -0
  473. package/src/rlc-common/build-object-types.ts +603 -0
  474. package/src/rlc-common/build-paginate-helper.ts +31 -0
  475. package/src/rlc-common/build-parameter-types.ts +554 -0
  476. package/src/rlc-common/build-polling-helper.ts +83 -0
  477. package/src/rlc-common/build-response-types.ts +180 -0
  478. package/src/rlc-common/build-samples.ts +32 -0
  479. package/src/rlc-common/build-schema-type.ts +89 -0
  480. package/src/rlc-common/build-serialize-helper.ts +49 -0
  481. package/src/rlc-common/build-top-level-index-file.ts +58 -0
  482. package/src/rlc-common/helpers/name-constructors.ts +110 -0
  483. package/src/rlc-common/helpers/operation-helpers.ts +138 -0
  484. package/src/rlc-common/helpers/path-utils.ts +8 -0
  485. package/src/rlc-common/helpers/shortcut-methods.ts +58 -0
  486. package/src/rlc-common/helpers/value-generation-util.ts +234 -0
  487. package/src/rlc-common/index.ts +39 -39
  488. package/src/rlc-common/metadata/build-package-file.ts +242 -0
  489. package/src/rlc-common/metadata/build-readme-file.ts +515 -0
  490. package/src/rlc-common/metadata/build-rollup-config.ts +147 -0
  491. package/src/rlc-common/metadata/package-json/azure-package-common.ts +152 -0
  492. package/src/rlc-common/metadata/package-json/build-azure-monorepo-package.ts +199 -0
  493. package/src/rlc-common/metadata/package-json/build-azure-standalone-package.ts +123 -0
  494. package/src/rlc-common/metadata/package-json/build-flavorless-package.ts +68 -0
  495. package/src/rlc-common/test/build-snippets.ts +29 -0
  496. package/src/rlc-common/transform-sample-groups.ts +407 -0
  497. package/src/transform/transform-api-version-info.ts +103 -0
  498. package/src/transform/transform-helper-function-details.ts +88 -0
  499. package/src/transform/transform-parameters.ts +321 -0
  500. package/src/transform/transform-paths.ts +157 -0
  501. package/src/transform/transform-responses.ts +237 -0
  502. package/src/transform/transform-schemas.ts +212 -0
  503. package/src/transform/transform-telemetry-info.ts +33 -0
  504. package/src/transform/transform.ts +12 -13
  505. package/src/transform/transfrom-rlc-options.ts +461 -0
  506. package/src/utils/cross-language-def.ts +66 -0
  507. package/src/utils/emit-util.ts +91 -0
  508. package/src/utils/file-system-utils.ts +68 -0
  509. package/src/utils/import-helper.ts +59 -0
  510. package/src/utils/interfaces.ts +1 -1
  511. package/src/utils/model-utils.ts +1727 -0
  512. package/src/utils/operation-util.ts +763 -0
  513. package/src/utils/parameter-utils.ts +192 -0
  514. package/src/utils/resolve-project-root.ts +1 -3
  515. package/static/static-helpers/serialization/serializers.ts +1 -0
  516. package/dist/src/contextManager.d.ts +0 -75
  517. package/dist/src/contextManager.d.ts.map +0 -1
  518. package/dist/src/contextManager.js +0 -59
  519. package/dist/src/contextManager.js.map +0 -1
  520. package/dist/src/framework/hooks/sdkTypes.d.ts +0 -26
  521. package/dist/src/framework/hooks/sdkTypes.d.ts.map +0 -1
  522. package/dist/src/framework/hooks/sdkTypes.js +0 -157
  523. package/dist/src/framework/hooks/sdkTypes.js.map +0 -1
  524. package/dist/src/framework/hooks/useDependencies.d.ts +0 -4
  525. package/dist/src/framework/hooks/useDependencies.d.ts.map +0 -1
  526. package/dist/src/framework/hooks/useDependencies.js +0 -13
  527. package/dist/src/framework/hooks/useDependencies.js.map +0 -1
  528. package/dist/src/metaTree.d.ts +0 -7
  529. package/dist/src/metaTree.d.ts.map +0 -1
  530. package/dist/src/metaTree.js +0 -2
  531. package/dist/src/metaTree.js.map +0 -1
  532. package/dist/src/modular/buildClassicalClient.d.ts +0 -6
  533. package/dist/src/modular/buildClassicalClient.d.ts.map +0 -1
  534. package/dist/src/modular/buildClassicalClient.js +0 -345
  535. package/dist/src/modular/buildClassicalClient.js.map +0 -1
  536. package/dist/src/modular/buildClassicalOperationGroups.d.ts +0 -6
  537. package/dist/src/modular/buildClassicalOperationGroups.d.ts.map +0 -1
  538. package/dist/src/modular/buildClassicalOperationGroups.js +0 -48
  539. package/dist/src/modular/buildClassicalOperationGroups.js.map +0 -1
  540. package/dist/src/modular/buildClientContext.d.ts +0 -13
  541. package/dist/src/modular/buildClientContext.d.ts.map +0 -1
  542. package/dist/src/modular/buildClientContext.js +0 -246
  543. package/dist/src/modular/buildClientContext.js.map +0 -1
  544. package/dist/src/modular/buildModularOptions.d.ts +0 -6
  545. package/dist/src/modular/buildModularOptions.d.ts.map +0 -1
  546. package/dist/src/modular/buildModularOptions.js +0 -14
  547. package/dist/src/modular/buildModularOptions.js.map +0 -1
  548. package/dist/src/modular/buildOperations.d.ts +0 -21
  549. package/dist/src/modular/buildOperations.d.ts.map +0 -1
  550. package/dist/src/modular/buildOperations.js +0 -172
  551. package/dist/src/modular/buildOperations.js.map +0 -1
  552. package/dist/src/modular/buildProjectFiles.d.ts +0 -4
  553. package/dist/src/modular/buildProjectFiles.d.ts.map +0 -1
  554. package/dist/src/modular/buildProjectFiles.js +0 -91
  555. package/dist/src/modular/buildProjectFiles.js.map +0 -1
  556. package/dist/src/modular/buildRestorePoller.d.ts +0 -5
  557. package/dist/src/modular/buildRestorePoller.d.ts.map +0 -1
  558. package/dist/src/modular/buildRestorePoller.js +0 -216
  559. package/dist/src/modular/buildRestorePoller.js.map +0 -1
  560. package/dist/src/modular/buildRootIndex.d.ts +0 -13
  561. package/dist/src/modular/buildRootIndex.d.ts.map +0 -1
  562. package/dist/src/modular/buildRootIndex.js +0 -279
  563. package/dist/src/modular/buildRootIndex.js.map +0 -1
  564. package/dist/src/modular/buildSubpathIndex.d.ts +0 -16
  565. package/dist/src/modular/buildSubpathIndex.d.ts.map +0 -1
  566. package/dist/src/modular/buildSubpathIndex.js +0 -119
  567. package/dist/src/modular/buildSubpathIndex.js.map +0 -1
  568. package/dist/src/modular/emitLoggerFile.d.ts +0 -3
  569. package/dist/src/modular/emitLoggerFile.d.ts.map +0 -1
  570. package/dist/src/modular/emitLoggerFile.js +0 -18
  571. package/dist/src/modular/emitLoggerFile.js.map +0 -1
  572. package/dist/src/modular/emitModels.d.ts +0 -23
  573. package/dist/src/modular/emitModels.d.ts.map +0 -1
  574. package/dist/src/modular/emitModels.js +0 -850
  575. package/dist/src/modular/emitModels.js.map +0 -1
  576. package/dist/src/modular/emitModelsOptions.d.ts +0 -5
  577. package/dist/src/modular/emitModelsOptions.d.ts.map +0 -1
  578. package/dist/src/modular/emitModelsOptions.js +0 -35
  579. package/dist/src/modular/emitModelsOptions.js.map +0 -1
  580. package/dist/src/modular/emitSamples.d.ts +0 -7
  581. package/dist/src/modular/emitSamples.d.ts.map +0 -1
  582. package/dist/src/modular/emitSamples.js +0 -500
  583. package/dist/src/modular/emitSamples.js.map +0 -1
  584. package/dist/src/modular/emitTests.d.ts +0 -7
  585. package/dist/src/modular/emitTests.d.ts.map +0 -1
  586. package/dist/src/modular/emitTests.js +0 -155
  587. package/dist/src/modular/emitTests.js.map +0 -1
  588. package/dist/src/modular/helpers/classicalOperationHelpers.d.ts +0 -7
  589. package/dist/src/modular/helpers/classicalOperationHelpers.d.ts.map +0 -1
  590. package/dist/src/modular/helpers/classicalOperationHelpers.js +0 -258
  591. package/dist/src/modular/helpers/classicalOperationHelpers.js.map +0 -1
  592. package/dist/src/modular/helpers/clientHelpers.d.ts +0 -34
  593. package/dist/src/modular/helpers/clientHelpers.d.ts.map +0 -1
  594. package/dist/src/modular/helpers/clientHelpers.js +0 -259
  595. package/dist/src/modular/helpers/clientHelpers.js.map +0 -1
  596. package/dist/src/modular/helpers/clientOptionHelpers.d.ts +0 -43
  597. package/dist/src/modular/helpers/clientOptionHelpers.d.ts.map +0 -1
  598. package/dist/src/modular/helpers/clientOptionHelpers.js +0 -103
  599. package/dist/src/modular/helpers/clientOptionHelpers.js.map +0 -1
  600. package/dist/src/modular/helpers/docsHelpers.d.ts +0 -3
  601. package/dist/src/modular/helpers/docsHelpers.d.ts.map +0 -1
  602. package/dist/src/modular/helpers/docsHelpers.js +0 -10
  603. package/dist/src/modular/helpers/docsHelpers.js.map +0 -1
  604. package/dist/src/modular/helpers/exampleValueHelpers.d.ts +0 -83
  605. package/dist/src/modular/helpers/exampleValueHelpers.d.ts.map +0 -1
  606. package/dist/src/modular/helpers/exampleValueHelpers.js +0 -639
  607. package/dist/src/modular/helpers/exampleValueHelpers.js.map +0 -1
  608. package/dist/src/modular/helpers/namingHelpers.d.ts +0 -22
  609. package/dist/src/modular/helpers/namingHelpers.d.ts.map +0 -1
  610. package/dist/src/modular/helpers/namingHelpers.js +0 -59
  611. package/dist/src/modular/helpers/namingHelpers.js.map +0 -1
  612. package/dist/src/modular/helpers/operationHelpers.d.ts +0 -105
  613. package/dist/src/modular/helpers/operationHelpers.d.ts.map +0 -1
  614. package/dist/src/modular/helpers/operationHelpers.js +0 -2328
  615. package/dist/src/modular/helpers/operationHelpers.js.map +0 -1
  616. package/dist/src/modular/helpers/typeHelpers.d.ts +0 -22
  617. package/dist/src/modular/helpers/typeHelpers.d.ts.map +0 -1
  618. package/dist/src/modular/helpers/typeHelpers.js +0 -94
  619. package/dist/src/modular/helpers/typeHelpers.js.map +0 -1
  620. package/dist/src/modular/serialization/buildDeserializerFunction.d.ts +0 -7
  621. package/dist/src/modular/serialization/buildDeserializerFunction.d.ts.map +0 -1
  622. package/dist/src/modular/serialization/buildDeserializerFunction.js +0 -401
  623. package/dist/src/modular/serialization/buildDeserializerFunction.js.map +0 -1
  624. package/dist/src/modular/serialization/buildSerializerFunction.d.ts +0 -7
  625. package/dist/src/modular/serialization/buildSerializerFunction.d.ts.map +0 -1
  626. package/dist/src/modular/serialization/buildSerializerFunction.js +0 -444
  627. package/dist/src/modular/serialization/buildSerializerFunction.js.map +0 -1
  628. package/dist/src/modular/serialization/buildXmlSerializerFunction.d.ts +0 -44
  629. package/dist/src/modular/serialization/buildXmlSerializerFunction.d.ts.map +0 -1
  630. package/dist/src/modular/serialization/buildXmlSerializerFunction.js +0 -729
  631. package/dist/src/modular/serialization/buildXmlSerializerFunction.js.map +0 -1
  632. package/dist/src/modular/serialization/serializeUtils.d.ts +0 -37
  633. package/dist/src/modular/serialization/serializeUtils.d.ts.map +0 -1
  634. package/dist/src/modular/serialization/serializeUtils.js +0 -145
  635. package/dist/src/modular/serialization/serializeUtils.js.map +0 -1
  636. package/dist/src/rlc-common/buildClient.d.ts +0 -9
  637. package/dist/src/rlc-common/buildClient.d.ts.map +0 -1
  638. package/dist/src/rlc-common/buildClient.js +0 -391
  639. package/dist/src/rlc-common/buildClient.js.map +0 -1
  640. package/dist/src/rlc-common/buildClientDefinitions.d.ts +0 -6
  641. package/dist/src/rlc-common/buildClientDefinitions.d.ts.map +0 -1
  642. package/dist/src/rlc-common/buildClientDefinitions.js +0 -157
  643. package/dist/src/rlc-common/buildClientDefinitions.js.map +0 -1
  644. package/dist/src/rlc-common/buildIndexFile.d.ts +0 -6
  645. package/dist/src/rlc-common/buildIndexFile.d.ts.map +0 -1
  646. package/dist/src/rlc-common/buildIndexFile.js +0 -241
  647. package/dist/src/rlc-common/buildIndexFile.js.map +0 -1
  648. package/dist/src/rlc-common/buildIsUnexpectedHelper.d.ts +0 -6
  649. package/dist/src/rlc-common/buildIsUnexpectedHelper.d.ts.map +0 -1
  650. package/dist/src/rlc-common/buildIsUnexpectedHelper.js +0 -223
  651. package/dist/src/rlc-common/buildIsUnexpectedHelper.js.map +0 -1
  652. package/dist/src/rlc-common/buildLogger.d.ts +0 -6
  653. package/dist/src/rlc-common/buildLogger.d.ts.map +0 -1
  654. package/dist/src/rlc-common/buildLogger.js +0 -31
  655. package/dist/src/rlc-common/buildLogger.js.map +0 -1
  656. package/dist/src/rlc-common/buildMethodShortcuts.d.ts +0 -5
  657. package/dist/src/rlc-common/buildMethodShortcuts.d.ts.map +0 -1
  658. package/dist/src/rlc-common/buildMethodShortcuts.js +0 -54
  659. package/dist/src/rlc-common/buildMethodShortcuts.js.map +0 -1
  660. package/dist/src/rlc-common/buildObjectTypes.d.ts +0 -29
  661. package/dist/src/rlc-common/buildObjectTypes.d.ts.map +0 -1
  662. package/dist/src/rlc-common/buildObjectTypes.js +0 -412
  663. package/dist/src/rlc-common/buildObjectTypes.js.map +0 -1
  664. package/dist/src/rlc-common/buildPaginateHelper.d.ts +0 -6
  665. package/dist/src/rlc-common/buildPaginateHelper.d.ts.map +0 -1
  666. package/dist/src/rlc-common/buildPaginateHelper.js +0 -27
  667. package/dist/src/rlc-common/buildPaginateHelper.js.map +0 -1
  668. package/dist/src/rlc-common/buildParameterTypes.d.ts +0 -14
  669. package/dist/src/rlc-common/buildParameterTypes.d.ts.map +0 -1
  670. package/dist/src/rlc-common/buildParameterTypes.js +0 -391
  671. package/dist/src/rlc-common/buildParameterTypes.js.map +0 -1
  672. package/dist/src/rlc-common/buildPollingHelper.d.ts +0 -6
  673. package/dist/src/rlc-common/buildPollingHelper.d.ts.map +0 -1
  674. package/dist/src/rlc-common/buildPollingHelper.js +0 -61
  675. package/dist/src/rlc-common/buildPollingHelper.js.map +0 -1
  676. package/dist/src/rlc-common/buildResponseTypes.d.ts +0 -6
  677. package/dist/src/rlc-common/buildResponseTypes.d.ts.map +0 -1
  678. package/dist/src/rlc-common/buildResponseTypes.js +0 -143
  679. package/dist/src/rlc-common/buildResponseTypes.js.map +0 -1
  680. package/dist/src/rlc-common/buildSamples.d.ts +0 -3
  681. package/dist/src/rlc-common/buildSamples.d.ts.map +0 -1
  682. package/dist/src/rlc-common/buildSamples.js +0 -30
  683. package/dist/src/rlc-common/buildSamples.js.map +0 -1
  684. package/dist/src/rlc-common/buildSchemaType.d.ts +0 -20
  685. package/dist/src/rlc-common/buildSchemaType.d.ts.map +0 -1
  686. package/dist/src/rlc-common/buildSchemaType.js +0 -71
  687. package/dist/src/rlc-common/buildSchemaType.js.map +0 -1
  688. package/dist/src/rlc-common/buildSerializeHelper.d.ts +0 -6
  689. package/dist/src/rlc-common/buildSerializeHelper.d.ts.map +0 -1
  690. package/dist/src/rlc-common/buildSerializeHelper.js +0 -36
  691. package/dist/src/rlc-common/buildSerializeHelper.js.map +0 -1
  692. package/dist/src/rlc-common/buildTopLevelIndexFile.d.ts +0 -6
  693. package/dist/src/rlc-common/buildTopLevelIndexFile.d.ts.map +0 -1
  694. package/dist/src/rlc-common/buildTopLevelIndexFile.js +0 -48
  695. package/dist/src/rlc-common/buildTopLevelIndexFile.js.map +0 -1
  696. package/dist/src/rlc-common/helpers/apiVersionUtil.d.ts +0 -17
  697. package/dist/src/rlc-common/helpers/apiVersionUtil.d.ts.map +0 -1
  698. package/dist/src/rlc-common/helpers/apiVersionUtil.js +0 -43
  699. package/dist/src/rlc-common/helpers/apiVersionUtil.js.map +0 -1
  700. package/dist/src/rlc-common/helpers/importsUtil.d.ts +0 -18
  701. package/dist/src/rlc-common/helpers/importsUtil.d.ts.map +0 -1
  702. package/dist/src/rlc-common/helpers/importsUtil.js +0 -164
  703. package/dist/src/rlc-common/helpers/importsUtil.js.map +0 -1
  704. package/dist/src/rlc-common/helpers/nameConstructors.d.ts +0 -42
  705. package/dist/src/rlc-common/helpers/nameConstructors.d.ts.map +0 -1
  706. package/dist/src/rlc-common/helpers/nameConstructors.js +0 -61
  707. package/dist/src/rlc-common/helpers/nameConstructors.js.map +0 -1
  708. package/dist/src/rlc-common/helpers/nameUtils.d.ts +0 -37
  709. package/dist/src/rlc-common/helpers/nameUtils.d.ts.map +0 -1
  710. package/dist/src/rlc-common/helpers/nameUtils.js +0 -240
  711. package/dist/src/rlc-common/helpers/nameUtils.js.map +0 -1
  712. package/dist/src/rlc-common/helpers/operationHelpers.d.ts +0 -16
  713. package/dist/src/rlc-common/helpers/operationHelpers.d.ts.map +0 -1
  714. package/dist/src/rlc-common/helpers/operationHelpers.js +0 -104
  715. package/dist/src/rlc-common/helpers/operationHelpers.js.map +0 -1
  716. package/dist/src/rlc-common/helpers/packageUtil.d.ts +0 -7
  717. package/dist/src/rlc-common/helpers/packageUtil.d.ts.map +0 -1
  718. package/dist/src/rlc-common/helpers/packageUtil.js +0 -10
  719. package/dist/src/rlc-common/helpers/packageUtil.js.map +0 -1
  720. package/dist/src/rlc-common/helpers/pathUtils.d.ts +0 -2
  721. package/dist/src/rlc-common/helpers/pathUtils.d.ts.map +0 -1
  722. package/dist/src/rlc-common/helpers/pathUtils.js +0 -10
  723. package/dist/src/rlc-common/helpers/pathUtils.js.map +0 -1
  724. package/dist/src/rlc-common/helpers/schemaHelpers.d.ts +0 -10
  725. package/dist/src/rlc-common/helpers/schemaHelpers.d.ts.map +0 -1
  726. package/dist/src/rlc-common/helpers/schemaHelpers.js +0 -37
  727. package/dist/src/rlc-common/helpers/schemaHelpers.js.map +0 -1
  728. package/dist/src/rlc-common/helpers/shortcutMethods.d.ts +0 -4
  729. package/dist/src/rlc-common/helpers/shortcutMethods.d.ts.map +0 -1
  730. package/dist/src/rlc-common/helpers/shortcutMethods.js +0 -49
  731. package/dist/src/rlc-common/helpers/shortcutMethods.js.map +0 -1
  732. package/dist/src/rlc-common/helpers/typeUtil.d.ts +0 -32
  733. package/dist/src/rlc-common/helpers/typeUtil.d.ts.map +0 -1
  734. package/dist/src/rlc-common/helpers/typeUtil.js +0 -162
  735. package/dist/src/rlc-common/helpers/typeUtil.js.map +0 -1
  736. package/dist/src/rlc-common/helpers/valueGenerationUtil.d.ts +0 -12
  737. package/dist/src/rlc-common/helpers/valueGenerationUtil.d.ts.map +0 -1
  738. package/dist/src/rlc-common/helpers/valueGenerationUtil.js +0 -161
  739. package/dist/src/rlc-common/helpers/valueGenerationUtil.js.map +0 -1
  740. package/dist/src/rlc-common/metadata/buildApiExtractorConfig.d.ts +0 -6
  741. package/dist/src/rlc-common/metadata/buildApiExtractorConfig.d.ts.map +0 -1
  742. package/dist/src/rlc-common/metadata/buildApiExtractorConfig.js +0 -55
  743. package/dist/src/rlc-common/metadata/buildApiExtractorConfig.js.map +0 -1
  744. package/dist/src/rlc-common/metadata/buildChangelogFile.d.ts +0 -6
  745. package/dist/src/rlc-common/metadata/buildChangelogFile.d.ts.map +0 -1
  746. package/dist/src/rlc-common/metadata/buildChangelogFile.js +0 -25
  747. package/dist/src/rlc-common/metadata/buildChangelogFile.js.map +0 -1
  748. package/dist/src/rlc-common/metadata/buildESLintConfig.d.ts +0 -6
  749. package/dist/src/rlc-common/metadata/buildESLintConfig.d.ts.map +0 -1
  750. package/dist/src/rlc-common/metadata/buildESLintConfig.js +0 -79
  751. package/dist/src/rlc-common/metadata/buildESLintConfig.js.map +0 -1
  752. package/dist/src/rlc-common/metadata/buildLicenseFile.d.ts +0 -5
  753. package/dist/src/rlc-common/metadata/buildLicenseFile.d.ts.map +0 -1
  754. package/dist/src/rlc-common/metadata/buildLicenseFile.js +0 -32
  755. package/dist/src/rlc-common/metadata/buildLicenseFile.js.map +0 -1
  756. package/dist/src/rlc-common/metadata/buildPackageFile.d.ts +0 -25
  757. package/dist/src/rlc-common/metadata/buildPackageFile.d.ts.map +0 -1
  758. package/dist/src/rlc-common/metadata/buildPackageFile.js +0 -197
  759. package/dist/src/rlc-common/metadata/buildPackageFile.js.map +0 -1
  760. package/dist/src/rlc-common/metadata/buildReadmeFile.d.ts +0 -11
  761. package/dist/src/rlc-common/metadata/buildReadmeFile.d.ts.map +0 -1
  762. package/dist/src/rlc-common/metadata/buildReadmeFile.js +0 -418
  763. package/dist/src/rlc-common/metadata/buildReadmeFile.js.map +0 -1
  764. package/dist/src/rlc-common/metadata/buildRollupConfig.d.ts +0 -6
  765. package/dist/src/rlc-common/metadata/buildRollupConfig.d.ts.map +0 -1
  766. package/dist/src/rlc-common/metadata/buildRollupConfig.js +0 -140
  767. package/dist/src/rlc-common/metadata/buildRollupConfig.js.map +0 -1
  768. package/dist/src/rlc-common/metadata/buildSampleEnvFile.d.ts +0 -6
  769. package/dist/src/rlc-common/metadata/buildSampleEnvFile.d.ts.map +0 -1
  770. package/dist/src/rlc-common/metadata/buildSampleEnvFile.js +0 -15
  771. package/dist/src/rlc-common/metadata/buildSampleEnvFile.js.map +0 -1
  772. package/dist/src/rlc-common/metadata/buildTestConfig.d.ts +0 -16
  773. package/dist/src/rlc-common/metadata/buildTestConfig.d.ts.map +0 -1
  774. package/dist/src/rlc-common/metadata/buildTestConfig.js +0 -54
  775. package/dist/src/rlc-common/metadata/buildTestConfig.js.map +0 -1
  776. package/dist/src/rlc-common/metadata/buildTsConfig.d.ts +0 -61
  777. package/dist/src/rlc-common/metadata/buildTsConfig.d.ts.map +0 -1
  778. package/dist/src/rlc-common/metadata/buildTsConfig.js +0 -170
  779. package/dist/src/rlc-common/metadata/buildTsConfig.js.map +0 -1
  780. package/dist/src/rlc-common/metadata/buildVitestConfig.d.ts +0 -6
  781. package/dist/src/rlc-common/metadata/buildVitestConfig.d.ts.map +0 -1
  782. package/dist/src/rlc-common/metadata/buildVitestConfig.js +0 -26
  783. package/dist/src/rlc-common/metadata/buildVitestConfig.js.map +0 -1
  784. package/dist/src/rlc-common/metadata/buildWarpConfig.d.ts +0 -20
  785. package/dist/src/rlc-common/metadata/buildWarpConfig.d.ts.map +0 -1
  786. package/dist/src/rlc-common/metadata/buildWarpConfig.js +0 -76
  787. package/dist/src/rlc-common/metadata/buildWarpConfig.js.map +0 -1
  788. package/dist/src/rlc-common/metadata/packageJson/azurePackageCommon.d.ts +0 -51
  789. package/dist/src/rlc-common/metadata/packageJson/azurePackageCommon.d.ts.map +0 -1
  790. package/dist/src/rlc-common/metadata/packageJson/azurePackageCommon.js +0 -121
  791. package/dist/src/rlc-common/metadata/packageJson/azurePackageCommon.js.map +0 -1
  792. package/dist/src/rlc-common/metadata/packageJson/buildAzureMonorepoPackage.d.ts +0 -242
  793. package/dist/src/rlc-common/metadata/packageJson/buildAzureMonorepoPackage.d.ts.map +0 -1
  794. package/dist/src/rlc-common/metadata/packageJson/buildAzureMonorepoPackage.js +0 -171
  795. package/dist/src/rlc-common/metadata/packageJson/buildAzureMonorepoPackage.js.map +0 -1
  796. package/dist/src/rlc-common/metadata/packageJson/buildAzureStandalonePackage.d.ts +0 -8
  797. package/dist/src/rlc-common/metadata/packageJson/buildAzureStandalonePackage.d.ts.map +0 -1
  798. package/dist/src/rlc-common/metadata/packageJson/buildAzureStandalonePackage.js +0 -101
  799. package/dist/src/rlc-common/metadata/packageJson/buildAzureStandalonePackage.js.map +0 -1
  800. package/dist/src/rlc-common/metadata/packageJson/buildFlavorlessPackage.d.ts +0 -57
  801. package/dist/src/rlc-common/metadata/packageJson/buildFlavorlessPackage.d.ts.map +0 -1
  802. package/dist/src/rlc-common/metadata/packageJson/buildFlavorlessPackage.js +0 -53
  803. package/dist/src/rlc-common/metadata/packageJson/buildFlavorlessPackage.js.map +0 -1
  804. package/dist/src/rlc-common/metadata/packageJson/packageCommon.d.ts +0 -64
  805. package/dist/src/rlc-common/metadata/packageJson/packageCommon.d.ts.map +0 -1
  806. package/dist/src/rlc-common/metadata/packageJson/packageCommon.js +0 -180
  807. package/dist/src/rlc-common/metadata/packageJson/packageCommon.js.map +0 -1
  808. package/dist/src/rlc-common/static/paginateContent.d.ts +0 -2
  809. package/dist/src/rlc-common/static/paginateContent.d.ts.map +0 -1
  810. package/dist/src/rlc-common/static/paginateContent.js +0 -345
  811. package/dist/src/rlc-common/static/paginateContent.js.map +0 -1
  812. package/dist/src/rlc-common/static/pollingContent.d.ts +0 -2
  813. package/dist/src/rlc-common/static/pollingContent.d.ts.map +0 -1
  814. package/dist/src/rlc-common/static/pollingContent.js +0 -225
  815. package/dist/src/rlc-common/static/pollingContent.js.map +0 -1
  816. package/dist/src/rlc-common/static/sampleTemplate.d.ts +0 -2
  817. package/dist/src/rlc-common/static/sampleTemplate.d.ts.map +0 -1
  818. package/dist/src/rlc-common/static/sampleTemplate.js +0 -56
  819. package/dist/src/rlc-common/static/sampleTemplate.js.map +0 -1
  820. package/dist/src/rlc-common/static/serializeHelper.d.ts +0 -6
  821. package/dist/src/rlc-common/static/serializeHelper.d.ts.map +0 -1
  822. package/dist/src/rlc-common/static/serializeHelper.js +0 -31
  823. package/dist/src/rlc-common/static/serializeHelper.js.map +0 -1
  824. package/dist/src/rlc-common/test/buildKarmaConfig.d.ts +0 -6
  825. package/dist/src/rlc-common/test/buildKarmaConfig.d.ts.map +0 -1
  826. package/dist/src/rlc-common/test/buildKarmaConfig.js +0 -11
  827. package/dist/src/rlc-common/test/buildKarmaConfig.js.map +0 -1
  828. package/dist/src/rlc-common/test/buildRecordedClient.d.ts +0 -6
  829. package/dist/src/rlc-common/test/buildRecordedClient.d.ts.map +0 -1
  830. package/dist/src/rlc-common/test/buildRecordedClient.js +0 -17
  831. package/dist/src/rlc-common/test/buildRecordedClient.js.map +0 -1
  832. package/dist/src/rlc-common/test/buildSampleTest.d.ts +0 -6
  833. package/dist/src/rlc-common/test/buildSampleTest.d.ts.map +0 -1
  834. package/dist/src/rlc-common/test/buildSampleTest.js +0 -14
  835. package/dist/src/rlc-common/test/buildSampleTest.js.map +0 -1
  836. package/dist/src/rlc-common/test/buildSnippets.d.ts +0 -6
  837. package/dist/src/rlc-common/test/buildSnippets.d.ts.map +0 -1
  838. package/dist/src/rlc-common/test/buildSnippets.js +0 -26
  839. package/dist/src/rlc-common/test/buildSnippets.js.map +0 -1
  840. package/dist/src/rlc-common/transformSampleGroups.d.ts +0 -9
  841. package/dist/src/rlc-common/transformSampleGroups.d.ts.map +0 -1
  842. package/dist/src/rlc-common/transformSampleGroups.js +0 -313
  843. package/dist/src/rlc-common/transformSampleGroups.js.map +0 -1
  844. package/dist/src/transform/transformApiVersionInfo.d.ts +0 -6
  845. package/dist/src/transform/transformApiVersionInfo.d.ts.map +0 -1
  846. package/dist/src/transform/transformApiVersionInfo.js +0 -78
  847. package/dist/src/transform/transformApiVersionInfo.js.map +0 -1
  848. package/dist/src/transform/transformHelperFunctionDetails.d.ts +0 -5
  849. package/dist/src/transform/transformHelperFunctionDetails.d.ts.map +0 -1
  850. package/dist/src/transform/transformHelperFunctionDetails.js +0 -74
  851. package/dist/src/transform/transformHelperFunctionDetails.js.map +0 -1
  852. package/dist/src/transform/transformParameters.d.ts +0 -14
  853. package/dist/src/transform/transformParameters.d.ts.map +0 -1
  854. package/dist/src/transform/transformParameters.js +0 -201
  855. package/dist/src/transform/transformParameters.js.map +0 -1
  856. package/dist/src/transform/transformPaths.d.ts +0 -5
  857. package/dist/src/transform/transformPaths.d.ts.map +0 -1
  858. package/dist/src/transform/transformPaths.js +0 -102
  859. package/dist/src/transform/transformPaths.js.map +0 -1
  860. package/dist/src/transform/transformResponses.d.ts +0 -5
  861. package/dist/src/transform/transformResponses.d.ts.map +0 -1
  862. package/dist/src/transform/transformResponses.js +0 -171
  863. package/dist/src/transform/transformResponses.js.map +0 -1
  864. package/dist/src/transform/transformSchemas.d.ts +0 -4
  865. package/dist/src/transform/transformSchemas.d.ts.map +0 -1
  866. package/dist/src/transform/transformSchemas.js +0 -191
  867. package/dist/src/transform/transformSchemas.js.map +0 -1
  868. package/dist/src/transform/transformTelemetryInfo.d.ts +0 -4
  869. package/dist/src/transform/transformTelemetryInfo.d.ts.map +0 -1
  870. package/dist/src/transform/transformTelemetryInfo.js +0 -22
  871. package/dist/src/transform/transformTelemetryInfo.js.map +0 -1
  872. package/dist/src/transform/transfromRLCOptions.d.ts +0 -14
  873. package/dist/src/transform/transfromRLCOptions.d.ts.map +0 -1
  874. package/dist/src/transform/transfromRLCOptions.js +0 -369
  875. package/dist/src/transform/transfromRLCOptions.js.map +0 -1
  876. package/dist/src/utils/clientUtils.d.ts +0 -10
  877. package/dist/src/utils/clientUtils.d.ts.map +0 -1
  878. package/dist/src/utils/clientUtils.js +0 -124
  879. package/dist/src/utils/clientUtils.js.map +0 -1
  880. package/dist/src/utils/credentialUtils.d.ts +0 -15
  881. package/dist/src/utils/credentialUtils.d.ts.map +0 -1
  882. package/dist/src/utils/credentialUtils.js +0 -68
  883. package/dist/src/utils/credentialUtils.js.map +0 -1
  884. package/dist/src/utils/crossLanguageDef.d.ts +0 -6
  885. package/dist/src/utils/crossLanguageDef.d.ts.map +0 -1
  886. package/dist/src/utils/crossLanguageDef.js +0 -59
  887. package/dist/src/utils/crossLanguageDef.js.map +0 -1
  888. package/dist/src/utils/dirname.d.ts +0 -9
  889. package/dist/src/utils/dirname.d.ts.map +0 -1
  890. package/dist/src/utils/dirname.js +0 -12
  891. package/dist/src/utils/dirname.js.map +0 -1
  892. package/dist/src/utils/emitUtil.d.ts +0 -5
  893. package/dist/src/utils/emitUtil.d.ts.map +0 -1
  894. package/dist/src/utils/emitUtil.js +0 -71
  895. package/dist/src/utils/emitUtil.js.map +0 -1
  896. package/dist/src/utils/fileSystemUtils.d.ts +0 -5
  897. package/dist/src/utils/fileSystemUtils.d.ts.map +0 -1
  898. package/dist/src/utils/fileSystemUtils.js +0 -59
  899. package/dist/src/utils/fileSystemUtils.js.map +0 -1
  900. package/dist/src/utils/importHelper.d.ts +0 -10
  901. package/dist/src/utils/importHelper.d.ts.map +0 -1
  902. package/dist/src/utils/importHelper.js +0 -51
  903. package/dist/src/utils/importHelper.js.map +0 -1
  904. package/dist/src/utils/mediaTypes.d.ts +0 -28
  905. package/dist/src/utils/mediaTypes.d.ts.map +0 -1
  906. package/dist/src/utils/mediaTypes.js +0 -124
  907. package/dist/src/utils/mediaTypes.js.map +0 -1
  908. package/dist/src/utils/modelUtils.d.ts +0 -60
  909. package/dist/src/utils/modelUtils.d.ts.map +0 -1
  910. package/dist/src/utils/modelUtils.js +0 -1488
  911. package/dist/src/utils/modelUtils.js.map +0 -1
  912. package/dist/src/utils/namespaceUtils.d.ts +0 -6
  913. package/dist/src/utils/namespaceUtils.d.ts.map +0 -1
  914. package/dist/src/utils/namespaceUtils.js +0 -69
  915. package/dist/src/utils/namespaceUtils.js.map +0 -1
  916. package/dist/src/utils/operationUtil.d.ts +0 -97
  917. package/dist/src/utils/operationUtil.d.ts.map +0 -1
  918. package/dist/src/utils/operationUtil.js +0 -547
  919. package/dist/src/utils/operationUtil.js.map +0 -1
  920. package/dist/src/utils/parameterUtils.d.ts +0 -9
  921. package/dist/src/utils/parameterUtils.d.ts.map +0 -1
  922. package/dist/src/utils/parameterUtils.js +0 -147
  923. package/dist/src/utils/parameterUtils.js.map +0 -1
  924. package/src/contextManager.ts +0 -101
  925. package/src/framework/hooks/sdkTypes.ts +0 -218
  926. package/src/framework/hooks/useDependencies.ts +0 -16
  927. package/src/modular/buildClassicalClient.ts +0 -434
  928. package/src/modular/buildClassicalOperationGroups.ts +0 -69
  929. package/src/modular/buildClientContext.ts +0 -325
  930. package/src/modular/buildOperations.ts +0 -248
  931. package/src/modular/buildProjectFiles.ts +0 -111
  932. package/src/modular/buildRestorePoller.ts +0 -242
  933. package/src/modular/buildRootIndex.ts +0 -407
  934. package/src/modular/buildSubpathIndex.ts +0 -152
  935. package/src/modular/emitLoggerFile.ts +0 -23
  936. package/src/modular/emitModels.ts +0 -1081
  937. package/src/modular/emitModelsOptions.ts +0 -56
  938. package/src/modular/emitSamples.ts +0 -675
  939. package/src/modular/emitTests.ts +0 -194
  940. package/src/modular/helpers/classicalOperationHelpers.ts +0 -375
  941. package/src/modular/helpers/clientHelpers.ts +0 -362
  942. package/src/modular/helpers/exampleValueHelpers.ts +0 -851
  943. package/src/modular/helpers/namingHelpers.ts +0 -84
  944. package/src/modular/helpers/operationHelpers.ts +0 -3035
  945. package/src/modular/helpers/typeHelpers.ts +0 -131
  946. package/src/modular/serialization/buildDeserializerFunction.ts +0 -564
  947. package/src/modular/serialization/buildSerializerFunction.ts +0 -616
  948. package/src/modular/serialization/buildXmlSerializerFunction.ts +0 -951
  949. package/src/modular/serialization/serializeUtils.ts +0 -217
  950. package/src/rlc-common/buildClient.ts +0 -490
  951. package/src/rlc-common/buildClientDefinitions.ts +0 -235
  952. package/src/rlc-common/buildIndexFile.ts +0 -344
  953. package/src/rlc-common/buildIsUnexpectedHelper.ts +0 -248
  954. package/src/rlc-common/buildLogger.ts +0 -43
  955. package/src/rlc-common/buildMethodShortcuts.ts +0 -71
  956. package/src/rlc-common/buildObjectTypes.ts +0 -603
  957. package/src/rlc-common/buildPaginateHelper.ts +0 -31
  958. package/src/rlc-common/buildParameterTypes.ts +0 -554
  959. package/src/rlc-common/buildPollingHelper.ts +0 -83
  960. package/src/rlc-common/buildResponseTypes.ts +0 -180
  961. package/src/rlc-common/buildSamples.ts +0 -32
  962. package/src/rlc-common/buildSchemaType.ts +0 -89
  963. package/src/rlc-common/buildSerializeHelper.ts +0 -49
  964. package/src/rlc-common/buildTopLevelIndexFile.ts +0 -58
  965. package/src/rlc-common/helpers/nameConstructors.ts +0 -110
  966. package/src/rlc-common/helpers/operationHelpers.ts +0 -138
  967. package/src/rlc-common/helpers/pathUtils.ts +0 -10
  968. package/src/rlc-common/helpers/shortcutMethods.ts +0 -58
  969. package/src/rlc-common/helpers/valueGenerationUtil.ts +0 -234
  970. package/src/rlc-common/metadata/buildPackageFile.ts +0 -242
  971. package/src/rlc-common/metadata/buildReadmeFile.ts +0 -515
  972. package/src/rlc-common/metadata/buildRollupConfig.ts +0 -147
  973. package/src/rlc-common/metadata/packageJson/azurePackageCommon.ts +0 -152
  974. package/src/rlc-common/metadata/packageJson/buildAzureMonorepoPackage.ts +0 -199
  975. package/src/rlc-common/metadata/packageJson/buildAzureStandalonePackage.ts +0 -123
  976. package/src/rlc-common/metadata/packageJson/buildFlavorlessPackage.ts +0 -68
  977. package/src/rlc-common/test/buildSnippets.ts +0 -29
  978. package/src/rlc-common/transformSampleGroups.ts +0 -407
  979. package/src/transform/transformApiVersionInfo.ts +0 -103
  980. package/src/transform/transformHelperFunctionDetails.ts +0 -88
  981. package/src/transform/transformParameters.ts +0 -321
  982. package/src/transform/transformPaths.ts +0 -157
  983. package/src/transform/transformResponses.ts +0 -237
  984. package/src/transform/transformSchemas.ts +0 -212
  985. package/src/transform/transformTelemetryInfo.ts +0 -33
  986. package/src/transform/transfromRLCOptions.ts +0 -461
  987. package/src/utils/crossLanguageDef.ts +0 -66
  988. package/src/utils/dirname.ts +0 -12
  989. package/src/utils/emitUtil.ts +0 -92
  990. package/src/utils/fileSystemUtils.ts +0 -69
  991. package/src/utils/importHelper.ts +0 -59
  992. package/src/utils/modelUtils.ts +0 -1737
  993. package/src/utils/operationUtil.ts +0 -763
  994. package/src/utils/parameterUtils.ts +0 -192
  995. /package/src/{metaTree.ts → meta-tree.ts} +0 -0
  996. /package/src/modular/{buildModularOptions.ts → build-modular-options.ts} +0 -0
  997. /package/src/modular/helpers/{clientOptionHelpers.ts → client-option-helpers.ts} +0 -0
  998. /package/src/modular/helpers/{docsHelpers.ts → docs-helpers.ts} +0 -0
  999. /package/src/rlc-common/helpers/{apiVersionUtil.ts → api-version-util.ts} +0 -0
  1000. /package/src/rlc-common/helpers/{importsUtil.ts → imports-util.ts} +0 -0
  1001. /package/src/rlc-common/helpers/{nameUtils.ts → name-utils.ts} +0 -0
  1002. /package/src/rlc-common/helpers/{packageUtil.ts → package-util.ts} +0 -0
  1003. /package/src/rlc-common/helpers/{schemaHelpers.ts → schema-helpers.ts} +0 -0
  1004. /package/src/rlc-common/helpers/{typeUtil.ts → type-util.ts} +0 -0
  1005. /package/src/rlc-common/metadata/{buildApiExtractorConfig.ts → build-api-extractor-config.ts} +0 -0
  1006. /package/src/rlc-common/metadata/{buildChangelogFile.ts → build-changelog-file.ts} +0 -0
  1007. /package/src/rlc-common/metadata/{buildESLintConfig.ts → build-es-lint-config.ts} +0 -0
  1008. /package/src/rlc-common/metadata/{buildLicenseFile.ts → build-license-file.ts} +0 -0
  1009. /package/src/rlc-common/metadata/{buildSampleEnvFile.ts → build-sample-env-file.ts} +0 -0
  1010. /package/src/rlc-common/metadata/{buildTestConfig.ts → build-test-config.ts} +0 -0
  1011. /package/src/rlc-common/metadata/{buildTsConfig.ts → build-ts-config.ts} +0 -0
  1012. /package/src/rlc-common/metadata/{buildVitestConfig.ts → build-vitest-config.ts} +0 -0
  1013. /package/src/rlc-common/metadata/{buildWarpConfig.ts → build-warp-config.ts} +0 -0
  1014. /package/src/rlc-common/metadata/{packageJson/packageCommon.ts → package-json/package-common.ts} +0 -0
  1015. /package/src/rlc-common/static/{paginateContent.ts → paginate-content.ts} +0 -0
  1016. /package/src/rlc-common/static/{pollingContent.ts → polling-content.ts} +0 -0
  1017. /package/src/rlc-common/static/{sampleTemplate.ts → sample-template.ts} +0 -0
  1018. /package/src/rlc-common/static/{serializeHelper.ts → serialize-helper.ts} +0 -0
  1019. /package/src/rlc-common/test/{buildKarmaConfig.ts → build-karma-config.ts} +0 -0
  1020. /package/src/rlc-common/test/{buildRecordedClient.ts → build-recorded-client.ts} +0 -0
  1021. /package/src/rlc-common/test/{buildSampleTest.ts → build-sample-test.ts} +0 -0
  1022. /package/src/utils/{clientUtils.ts → client-utils.ts} +0 -0
  1023. /package/src/utils/{credentialUtils.ts → credential-utils.ts} +0 -0
  1024. /package/src/utils/{mediaTypes.ts → media-types.ts} +0 -0
  1025. /package/src/utils/{namespaceUtils.ts → namespace-utils.ts} +0 -0
@@ -1,1737 +0,0 @@
1
- // Copyright (c) Microsoft Corporation.
2
- // Licensed under the MIT License.
3
-
4
- import { getUnionAsEnum } from "@azure-tools/typespec-azure-core";
5
- import {
6
- getDefaultApiVersion,
7
- getWireName,
8
- isApiVersion,
9
- } from "@azure-tools/typespec-client-generator-core";
10
- import {
11
- Discriminator,
12
- EncodeData,
13
- Enum,
14
- EnumMember,
15
- Model,
16
- ModelProperty,
17
- NoTarget,
18
- Program,
19
- Scalar,
20
- Service,
21
- Type,
22
- Union,
23
- UnionVariant,
24
- Value,
25
- getDiscriminator,
26
- getDoc,
27
- getEffectiveModelType,
28
- getEncode,
29
- getFormat,
30
- getFriendlyName,
31
- getLifecycleVisibilityEnum,
32
- getMaxLength,
33
- getMaxValue,
34
- getMinLength,
35
- getMinValue,
36
- getPattern,
37
- getProperty,
38
- getPropertyType,
39
- getSummary,
40
- getVisibilityForClass,
41
- isArrayModelType,
42
- isNeverType,
43
- isNullType,
44
- isNumericType,
45
- isRecordModelType,
46
- isSecret,
47
- isStringType,
48
- isTemplateDeclaration,
49
- isUnknownType,
50
- listServices,
51
- } from "@typespec/compiler";
52
- import {
53
- HttpOperation,
54
- HttpOperationHeaderParameter,
55
- HttpOperationParameters,
56
- HttpOperationPathParameter,
57
- HttpOperationQueryParameter,
58
- Visibility,
59
- getHeaderFieldName,
60
- getHttpFileModel,
61
- getHttpPart,
62
- getPathParamName,
63
- getQueryParamName,
64
- isBody,
65
- isStatusCode,
66
- } from "@typespec/http";
67
- import {
68
- ArraySchema,
69
- DictionarySchema,
70
- NameType,
71
- ObjectSchema,
72
- Schema,
73
- SchemaContext,
74
- isArraySchema,
75
- normalizeName,
76
- } from "../rlc-common/index.js";
77
- import { GetSchemaOptions, SdkContext } from "./interfaces.js";
78
- import { KnownMediaType, hasMediaType, isMediaTypeMultipartFormData } from "./mediaTypes.js";
79
-
80
- import { reportDiagnostic } from "../lib.js";
81
- import { getModelNamespaceName } from "./namespaceUtils.js";
82
-
83
- export const BINARY_TYPE_UNION =
84
- "string | Uint8Array | ReadableStream<Uint8Array> | NodeReadableStream";
85
-
86
- export const BINARY_AND_FILE_TYPE_UNION = `${BINARY_TYPE_UNION} | File`;
87
-
88
- export function getBinaryType(usage: SchemaContext[]) {
89
- return usage.includes(SchemaContext.Output) ? "Uint8Array" : BINARY_TYPE_UNION;
90
- }
91
-
92
- export function isByteOrByteUnion(dpgContext: SdkContext, type: Type) {
93
- const schema = getSchemaForType(dpgContext, type);
94
- return isBytesType(schema) || isBytesUnion(schema);
95
- }
96
-
97
- function isBytesType(schema: any) {
98
- return schema.type === "string" && (schema.format === "bytes" || schema.format === "binary");
99
- }
100
-
101
- function isBytesUnion(schema: any) {
102
- if (!Array.isArray(schema.enum)) {
103
- return false;
104
- }
105
- for (const ele of schema.enum) {
106
- if (isBytesType(ele)) {
107
- return true;
108
- }
109
- }
110
- return false;
111
- }
112
-
113
- function refineByteType(schema: any) {
114
- schema.typeName = getBinaryType([SchemaContext.Input, SchemaContext.Exception]);
115
- schema.outputTypeName = getBinaryType([SchemaContext.Output]);
116
- return schema;
117
- }
118
-
119
- export function enrichBinaryTypeInBody(schema: any) {
120
- if (isBytesType(schema)) {
121
- refineByteType(schema);
122
- } else if (isBytesUnion(schema)) {
123
- const inputType: string[] = [];
124
- for (const item of schema.enum) {
125
- if (isBytesType(item)) {
126
- refineByteType(item);
127
- }
128
- // ignore the string type for input because we already have it in bytes union
129
- if (getTypeName(item, [SchemaContext.Input]) !== "string") {
130
- inputType.push(getTypeName(item, [SchemaContext.Input]));
131
- }
132
- }
133
- // refine the input type
134
- schema.typeName = inputType.join(" | ");
135
- }
136
- return schema;
137
- }
138
-
139
- export function getSchemaForType(
140
- dpgContext: SdkContext,
141
- typeInput: Type,
142
- options?: GetSchemaOptions,
143
- ): any {
144
- const program = dpgContext.program;
145
- const { usage } = options ?? {};
146
- const type = getEffectiveModelFromType(dpgContext, typeInput);
147
-
148
- const builtinType = getSchemaForLiteral(type);
149
- if (builtinType !== undefined) {
150
- // add in description elements for types derived from primitive types (SecureString, etc.)
151
- const doc = getDoc(program, type);
152
- if (doc) {
153
- builtinType.description = doc;
154
- }
155
- return builtinType;
156
- }
157
-
158
- if (type.kind === "ModelProperty") {
159
- return getSchemaForType(dpgContext, type.type, options);
160
- }
161
-
162
- if (type.kind === "Model") {
163
- const httpPart = getHttpPart(program, type);
164
- if (httpPart) {
165
- const fileModel = getHttpFileModel(program, httpPart.type);
166
- if (fileModel) {
167
- const schema: any = getSchemaForType(dpgContext, fileModel.contents, options);
168
- return {
169
- ...schema,
170
- multipartOptions: {
171
- filenameSchema: {
172
- required: !fileModel.filename.optional,
173
- ...getSchemaForType(dpgContext, fileModel.filename, options),
174
- },
175
- contentTypeSchema: {
176
- required: !fileModel.contentType.optional,
177
- ...getSchemaForType(dpgContext, fileModel.contentType, options),
178
- },
179
- },
180
- };
181
- } else {
182
- // extract body if required
183
- const body =
184
- (httpPart.type.kind === "Model" &&
185
- [...httpPart.type.properties.values()].find((x) => isBody(program, x))) ||
186
- httpPart.type;
187
- return getSchemaForType(dpgContext, body, options);
188
- }
189
- }
190
-
191
- const schema = getSchemaForModel(dpgContext, type, options) as any;
192
- if (isAnonymousObjectSchema(schema)) {
193
- if (Object.keys(schema.properties ?? {}).length === 0) {
194
- // Handle empty anonymous model as Record
195
- schema.typeName = schema.type === "object" ? "Record<string, unknown>" : "unknown";
196
- if (usage && usage.includes(SchemaContext.Output)) {
197
- schema.outputTypeName = schema.type === "object" ? "Record<string, any>" : "any";
198
- }
199
- schema.type = "unknown";
200
- } else {
201
- // Handle non-empty anonymous model as inline model
202
- if (usage && usage.includes(SchemaContext.Output)) {
203
- schema.outputTypeName = getModelInlineSigniture(schema, {
204
- usage: [SchemaContext.Output],
205
- });
206
- }
207
- schema.typeName = getModelInlineSigniture(schema, {
208
- usage: [SchemaContext.Input],
209
- multipart:
210
- options?.isRequestBody && isMediaTypeMultipartFormData(options?.mediaTypes ?? []),
211
- });
212
- schema.type = "object";
213
- }
214
- } else if (!isArrayModelType(type) && !isRecordModelType(type)) {
215
- if (usage && usage.includes(SchemaContext.Output)) {
216
- schema.outputTypeName = `${schema.name}Output`;
217
- }
218
- schema.typeName = `${schema.name}`;
219
- }
220
- schema.usage = usage;
221
- return schema;
222
- } else if (type.kind === "Union") {
223
- return getSchemaForUnion(dpgContext, type, options);
224
- } else if (type.kind === "UnionVariant") {
225
- return getSchemaForUnionVariant(dpgContext, type, options);
226
- } else if (type.kind === "Enum") {
227
- return getSchemaForEnum(dpgContext, type);
228
- } else if (type.kind === "Scalar") {
229
- return getSchemaForScalar(dpgContext, type, options);
230
- } else if (type.kind === "EnumMember") {
231
- return getSchemaForEnumMember(program, type);
232
- }
233
- if (isUnknownType(type)) {
234
- const returnType: any = { name: "unknown", type: "unknown" };
235
- if (usage && usage.includes(SchemaContext.Output)) {
236
- returnType.outputTypeName = "any";
237
- returnType.typeName = "unknown";
238
- }
239
- return returnType;
240
- }
241
- if (isNeverType(type)) {
242
- return { name: "never", type: "never" };
243
- }
244
- if (isNullType(type)) {
245
- return { name: "null", type: "null" };
246
- }
247
- if (type.kind === "Intrinsic" && type.name === "void") {
248
- return { name: "void", type: "void" };
249
- }
250
- reportDiagnostic(program, {
251
- code: "invalid-schema",
252
- format: {
253
- type: type.kind,
254
- property: options?.relevantProperty?.name ?? "",
255
- },
256
- target: type,
257
- });
258
- return undefined;
259
- }
260
- export function getEffectiveModelFromType(context: SdkContext, type: Type): Type {
261
- /**
262
- * If type is an anonymous model, tries to find a named model that has the same
263
- * set of properties when non-schema properties are excluded.
264
- */
265
- if (type.kind === "Model" && type.name === "") {
266
- const effective = getEffectiveModelType(context.program, type, (property) =>
267
- isSchemaProperty(context.program, property),
268
- );
269
- if (effective.name) {
270
- return effective;
271
- }
272
- }
273
- return type;
274
- }
275
- export function includeDerivedModel(model: Model, needRef: boolean = false): boolean {
276
- return (
277
- !needRef &&
278
- !isTemplateDeclaration(model) &&
279
- (!model.templateMapper ||
280
- !model.templateMapper.args ||
281
- model.templateMapper.args?.length === 0 ||
282
- model.derivedModels.length > 0)
283
- );
284
- }
285
-
286
- function applyEncoding(
287
- dpgContext: SdkContext,
288
- typespecType: Scalar | ModelProperty,
289
- target: any = {},
290
- ) {
291
- const encodeData = getEncode(dpgContext.program, typespecType);
292
- if (encodeData) {
293
- const newTarget = { ...target };
294
- const newType = getSchemaForScalar(dpgContext, encodeData.type);
295
- newTarget["type"] = newType["type"];
296
- newTarget["typeName"] = newType["typeName"];
297
- newTarget["outputTypeName"] = newType["outputTypeName"];
298
- // If the target already has a format it takes priority. (e.g. int32)
299
- newTarget["format"] = mergeFormatAndEncoding(
300
- newTarget.format,
301
- encodeData.encoding,
302
- newType["format"],
303
- );
304
- return newTarget;
305
- }
306
- return target;
307
- }
308
-
309
- function mergeFormatAndEncoding(
310
- format: string | undefined,
311
- encoding: string | undefined,
312
- encodeAsFormat: string | undefined,
313
- ): string | undefined {
314
- switch (format) {
315
- case undefined:
316
- return encodeAsFormat ?? encoding ?? format;
317
- case "date-time":
318
- return encoding;
319
- case "duration":
320
- default:
321
- return encodeAsFormat ?? encoding ?? format;
322
- }
323
- }
324
-
325
- function getSchemaForScalar(dpgContext: SdkContext, scalar: Scalar, options?: GetSchemaOptions) {
326
- let result = {} as any;
327
- const isStd = dpgContext.program.checker.isStdType(scalar);
328
- const {
329
- relevantProperty,
330
- isRequestBody,
331
- isParentRequestBody,
332
- mediaTypes: contentTypes,
333
- } = options ?? {};
334
- if (isStd) {
335
- result = getSchemaForStdScalar(dpgContext.program, scalar, {
336
- relevantProperty,
337
- });
338
- } else if (scalar.baseScalar) {
339
- result = getSchemaForScalar(dpgContext, scalar.baseScalar);
340
- }
341
-
342
- if (isBinaryAsRequestBody()) {
343
- // bytes in the body of application/octet-stream is the raw binary payload/file
344
- result.typeName = BINARY_TYPE_UNION;
345
- result.outputTypeName = "Uint8Array";
346
- return result;
347
- } else if (isFormDataBytesInRequestBody()) {
348
- // bytes inside a multipart part (for now) is assumed to be file
349
- result.typeName = BINARY_AND_FILE_TYPE_UNION;
350
- result.outputTypeName = "Uint8Array";
351
- return result;
352
- } else {
353
- // for other cases we would trust the @encode decorator if not present we would treat it as string
354
- const withDecorators = applyEncoding(
355
- dpgContext,
356
- scalar,
357
- result ? applyIntrinsicDecorators(dpgContext.program, scalar, result) : undefined,
358
- );
359
- if (withDecorators.type === "string" && withDecorators.format === "binary") {
360
- withDecorators.typeName = BINARY_TYPE_UNION;
361
- withDecorators.outputTypeName = "Uint8Array";
362
- }
363
- return withDecorators;
364
- }
365
-
366
- function isBinaryAsRequestBody() {
367
- return (
368
- hasMediaType(KnownMediaType.Binary, contentTypes) && isRequestBody && isBytesType(result)
369
- );
370
- }
371
-
372
- function isFormDataBytesInRequestBody() {
373
- return (
374
- hasMediaType(KnownMediaType.MultipartFormData, contentTypes) &&
375
- isParentRequestBody &&
376
- isBytesType(result)
377
- );
378
- }
379
- }
380
-
381
- function getSchemaForUnion(dpgContext: SdkContext, union: Union, options?: GetSchemaOptions) {
382
- const [asEnum, _] = getUnionAsEnum(union);
383
- const variants = Array.from(union.variants.values());
384
-
385
- const values = [];
386
- let namedUnionMember = false;
387
-
388
- if (!(options?.needRef && union.name && !asEnum)) {
389
- if (asEnum?.open && asEnum.members.size > 0) {
390
- for (const [_, member] of asEnum.members.entries()) {
391
- const memberType = getSchemaForType(dpgContext, member.type, {
392
- ...options,
393
- needRef: options?.needRef ?? false,
394
- });
395
- values.push(memberType);
396
- if (memberType.name) {
397
- namedUnionMember = true;
398
- }
399
- }
400
- } else {
401
- for (const variant of variants) {
402
- // We already know it's not a model type
403
- const variantType = getSchemaForType(dpgContext, variant.type, {
404
- ...options,
405
- needRef: isAnonymousModelType(variant.type) ? false : true,
406
- });
407
- values.push(variantType);
408
- if (variantType.typeName) {
409
- namedUnionMember = true;
410
- }
411
- }
412
- }
413
- }
414
-
415
- const schema: any = {};
416
- if (values.length > 0) {
417
- schema.enum = values;
418
- const unionAlias =
419
- asEnum?.open && asEnum?.kind && !namedUnionMember
420
- ? asEnum.kind + (asEnum.nullable ? " | null" : "")
421
- : values.map((item) => `${getTypeName(item, [SchemaContext.Input]) ?? item}`).join(" | ");
422
- const outputUnionAlias =
423
- asEnum?.open && asEnum?.kind && !namedUnionMember
424
- ? asEnum.kind + (asEnum.nullable ? " | null" : "")
425
- : values.map((item) => `${getTypeName(item, [SchemaContext.Output]) ?? item}`).join(" | ");
426
- schema.alias = unionAlias;
427
- schema.outputAlias = outputUnionAlias;
428
- }
429
- if (!union.expression) {
430
- const unionName = union.name ? normalizeName(union.name, NameType.Interface) : undefined;
431
- schema.name = unionName;
432
- schema.type = "object";
433
- schema.typeName = unionName;
434
- schema.outputTypeName = unionName + "Output";
435
- } else if (union.expression && !union.name) {
436
- schema.type = "union";
437
- schema.typeName = schema.alias;
438
- schema.outputTypeName = schema.outputAlias;
439
- delete schema.alias;
440
- delete schema.outputAlias;
441
- } else {
442
- schema.type = "union";
443
- schema.typeName = union.name ?? schema.alias;
444
- schema.outputTypeName = union.name ? union.name + "Output" : schema.outputAlias;
445
- delete schema.alias;
446
- delete schema.outputAlias;
447
- }
448
-
449
- return schema;
450
- }
451
-
452
- function getSchemaForUnionVariant(
453
- dpgContext: SdkContext,
454
- variant: UnionVariant,
455
- options?: GetSchemaOptions,
456
- ): Schema {
457
- return getSchemaForType(dpgContext, variant.type, options);
458
- }
459
-
460
- // An openapi "string" can be defined in several different ways in typespec
461
- function isOasString(type: Type): boolean {
462
- if (type.kind === "String") {
463
- // A string literal
464
- return true;
465
- } else if (type.kind === "Scalar" && type.name === "string") {
466
- // string type
467
- return true;
468
- } else if (type.kind === "Union") {
469
- // A union where all variants are an OasString
470
- for (const variant of type.variants) {
471
- if (!isOasString(variant[1].type)) {
472
- return false;
473
- }
474
- }
475
- return true;
476
- } else if (type.kind === "UnionVariant") {
477
- // A union variant where the type is an OasString
478
- return isOasString(type.type);
479
- }
480
- return false;
481
- }
482
-
483
- function isStringLiteral(type: Type): boolean {
484
- if (type.kind === "Union") {
485
- // A union where all variants are an OasString
486
- for (const variant of type.variants) {
487
- if (!isStringLiteral(variant[1].type)) {
488
- return false;
489
- }
490
- }
491
- return true;
492
- }
493
- return (
494
- type.kind === "String" ||
495
- (type.kind === "EnumMember" && typeof (type.value ?? type.name) === "string") ||
496
- (type.kind === "UnionVariant" && type.type.kind === "String")
497
- );
498
- }
499
-
500
- // Return any string literal values for type
501
- function getStringValues(type: Type): string[] {
502
- switch (type.kind) {
503
- case "String":
504
- return [type.value];
505
- case "Union":
506
- return [...type.variants.values()]
507
- .flatMap((x) => getStringValues(x.type))
508
- .filter((x) => x !== undefined);
509
- case "EnumMember":
510
- return typeof type.value !== "number" ? [type.value ?? type.name] : [];
511
- case "UnionVariant":
512
- return getStringValues(type.type);
513
- default:
514
- return [];
515
- }
516
- }
517
- function validateDiscriminator(
518
- program: Program,
519
- discriminator: Discriminator,
520
- derivedModels: readonly Model[],
521
- ): boolean {
522
- const { propertyName } = discriminator;
523
- const retVals = derivedModels.map((t) => {
524
- const prop = getProperty(t, propertyName);
525
- if (!prop) {
526
- reportDiagnostic(program, {
527
- code: "discriminator",
528
- messageId: "missing",
529
- target: t,
530
- });
531
- return false;
532
- }
533
- let retval = true;
534
- if (!isOasString(prop.type) && prop.type.kind !== "EnumMember" && prop.type.kind !== "Enum") {
535
- reportDiagnostic(program, {
536
- code: "discriminator",
537
- messageId: "type",
538
- target: prop,
539
- });
540
- retval = false;
541
- }
542
- if (prop.optional) {
543
- reportDiagnostic(program, {
544
- code: "discriminator",
545
- messageId: "required",
546
- target: prop,
547
- });
548
- retval = false;
549
- }
550
- return retval;
551
- });
552
- // Map of discriminator value to the model in which it is declared
553
- const discriminatorValues = new Map<string, string>();
554
- for (const t of derivedModels) {
555
- // Get the discriminator property directly in the child model
556
- const prop = t.properties?.get(propertyName);
557
- // Issue warning diagnostic if discriminator property missing or is not a string literal
558
- if (!prop || !isStringLiteral(prop.type)) {
559
- reportDiagnostic(program, {
560
- code: "discriminator-value",
561
- messageId: "literal",
562
- target: prop || t,
563
- });
564
- }
565
- if (prop) {
566
- const vals = getStringValues(prop.type);
567
- vals.forEach((val) => {
568
- if (discriminatorValues.has(val)) {
569
- reportDiagnostic(program, {
570
- code: "discriminator",
571
- messageId: "duplicate",
572
- format: {
573
- val: val,
574
- model1: discriminatorValues.get(val)!,
575
- model2: t.name,
576
- },
577
- target: prop,
578
- });
579
- retVals.push(false);
580
- } else {
581
- discriminatorValues.set(val, t.name);
582
- }
583
- });
584
- }
585
- }
586
- return retVals.every((v) => v);
587
- }
588
-
589
- function getSchemaForModel(dpgContext: SdkContext, model: Model, options?: GetSchemaOptions) {
590
- const { usage, needRef, isRequestBody, mediaTypes: contentTypes } = options ?? {};
591
- if (isArrayModelType(model)) {
592
- return getSchemaForArrayModel(dpgContext, model, options);
593
- }
594
-
595
- const program = dpgContext.program;
596
- const isMultipartBody = isMediaTypeMultipartFormData(contentTypes ?? []);
597
- const isCoreModel = isAzureCoreErrorType(program, model);
598
- const modelSchema: ObjectSchema = {
599
- name: getModelName(dpgContext, model),
600
- type: "object",
601
- isMultipartBody,
602
- description: getDoc(program, model) ?? "",
603
- fromCore: isCoreModel,
604
- };
605
- // normalized the output name
606
- modelSchema.name = normalizeName(modelSchema.name, NameType.Interface, true /** shouldGuard */);
607
-
608
- if (model.name === "Record" && isRecordModelType(model)) {
609
- return getSchemaForRecordModel(dpgContext, model, { usage });
610
- }
611
- modelSchema.typeName = modelSchema.name;
612
- if (usage && usage.includes(SchemaContext.Output)) {
613
- modelSchema.outputTypeName = modelSchema.name + "Output";
614
- }
615
-
616
- modelSchema.properties = {};
617
-
618
- // getSchemaOrRef on all children to push them into components.schemas
619
- const discriminator = getDiscriminator(program, model);
620
- // should respect needRef for derived models unless there's a discriminator in base model
621
- const derivedModels = model.derivedModels.filter((dm) => {
622
- return includeDerivedModel(dm, discriminator ? false : needRef);
623
- });
624
- if (derivedModels.length > 0) {
625
- modelSchema.children = {
626
- all: [],
627
- immediate: [],
628
- };
629
- }
630
- for (const child of derivedModels) {
631
- const childSchema = getSchemaForType(dpgContext, child, {
632
- usage,
633
- needRef: true,
634
- });
635
- for (const [name, prop] of child.properties) {
636
- if (name === discriminator?.propertyName) {
637
- const propSchema = getSchemaForType(dpgContext, prop.type, {
638
- usage,
639
- needRef: !isAnonymousModelType(prop.type),
640
- relevantProperty: prop,
641
- });
642
- childSchema.discriminatorValue = propSchema.type.replace(/"/g, "");
643
- break;
644
- }
645
- }
646
- modelSchema.children?.all?.push(childSchema);
647
- modelSchema.children?.immediate?.push(childSchema);
648
- }
649
-
650
- // Enable option `isPolyParent` and discriminator only when it has valid children
651
- if (
652
- discriminator &&
653
- modelSchema?.children?.all?.length &&
654
- modelSchema?.children?.all?.length > 0
655
- ) {
656
- if (!validateDiscriminator(program, discriminator, derivedModels)) {
657
- // appropriate diagnostic is generated in the validate function
658
- return {};
659
- }
660
-
661
- const { propertyName } = discriminator;
662
-
663
- modelSchema.discriminator = {
664
- name: propertyName,
665
- type: "string",
666
- description: `Discriminator property for ${model.name}.`,
667
- };
668
- modelSchema.discriminatorValue = propertyName;
669
- modelSchema.isPolyParent = true;
670
- }
671
-
672
- // applyExternalDocs(model, modelSchema);
673
- if (needRef) {
674
- return modelSchema;
675
- }
676
- if (isRecordModelType(model)) {
677
- modelSchema.parents = {
678
- all: [getSchemaForRecordModel(dpgContext, model, { usage })],
679
- immediate: [getSchemaForRecordModel(dpgContext, model, { usage })],
680
- };
681
- }
682
- for (const [propName, prop] of model.properties) {
683
- const restApiName = getWireName(dpgContext, prop);
684
- const name = `"${restApiName ?? propName}"`;
685
- if (!isSchemaProperty(program, prop)) {
686
- continue;
687
- }
688
-
689
- const propSchema = getSchemaForType(dpgContext, prop.type, {
690
- usage,
691
- needRef: isAnonymousModelType(prop.type) ? false : true,
692
- relevantProperty: prop,
693
- isParentRequestBody: isRequestBody,
694
- isRequestBody: false,
695
- mediaTypes: contentTypes,
696
- });
697
-
698
- if (propSchema === undefined) {
699
- continue;
700
- }
701
- if (!prop.optional) {
702
- propSchema.required = true;
703
- }
704
- const propertyDescription = getFormattedPropertyDoc(program, prop, propSchema);
705
- propSchema.usage = usage;
706
- // Use the description from ModelProperty not derived from Model Type
707
- propSchema.description = propertyDescription;
708
- modelSchema.properties[name] = propSchema;
709
- // if this property is a discriminator property, remove it to keep autorest validation happy
710
- const { propertyName } = getDiscriminator(program, model) || {};
711
- if (propertyName && name === `"${propertyName}"` && modelSchema.discriminator) {
712
- modelSchema.discriminator = {
713
- ...modelSchema.discriminator,
714
- ...{
715
- type: propSchema.typeName ?? propSchema.type,
716
- typeName: propSchema.typeName,
717
- outputTypeName: propSchema.outputTypeName,
718
- },
719
- };
720
- continue;
721
- }
722
-
723
- // Apply decorators on the property to the type's schema
724
- const newPropSchema = applyIntrinsicDecorators(program, prop, propSchema);
725
- if (newPropSchema === undefined) {
726
- continue;
727
- }
728
- // Use the description from ModelProperty not devired from Model Type
729
- newPropSchema.description = propertyDescription;
730
-
731
- // Should the property be marked as readOnly?
732
- const vis = getSdkVisibility(program, prop);
733
- if (vis && vis.includes(Visibility.Read)) {
734
- const mutability = [];
735
- if (vis.includes(Visibility.Read)) {
736
- if (vis.length > 1) {
737
- mutability.push(SchemaContext.Output);
738
- } else {
739
- newPropSchema["readOnly"] = true;
740
- }
741
- }
742
- if (vis.includes(Visibility.Create) || vis.includes(Visibility.Update)) {
743
- mutability.push(SchemaContext.Input);
744
- }
745
-
746
- if (mutability.length > 0) {
747
- newPropSchema["usage"] = mutability;
748
- }
749
- }
750
- modelSchema.properties[name] = newPropSchema;
751
- }
752
-
753
- if (model.baseModel) {
754
- if (modelSchema.parents === undefined) {
755
- modelSchema.parents = {
756
- all: [],
757
- immediate: [],
758
- };
759
- }
760
- modelSchema.parents.all?.push(
761
- getSchemaForType(dpgContext, model.baseModel, {
762
- usage,
763
- needRef: true,
764
- }),
765
- );
766
- modelSchema.parents.immediate?.push(
767
- getSchemaForType(dpgContext, model.baseModel, {
768
- usage,
769
- needRef: true,
770
- }),
771
- );
772
- }
773
- return modelSchema;
774
- }
775
-
776
- function getSdkVisibility(program: Program, type: ModelProperty): Visibility[] | undefined {
777
- const lifecycle = getLifecycleVisibilityEnum(program);
778
- const visibility = getVisibilityForClass(program, type, lifecycle);
779
- if (visibility) {
780
- const result: Visibility[] = [];
781
- if (lifecycle.members.get("Read") && visibility.has(lifecycle.members.get("Read")!)) {
782
- result.push(Visibility.Read);
783
- }
784
- if (lifecycle.members.get("Create") && visibility.has(lifecycle.members.get("Create")!)) {
785
- result.push(Visibility.Create);
786
- }
787
- if (lifecycle.members.get("Update") && visibility.has(lifecycle.members.get("Update")!)) {
788
- result.push(Visibility.Update);
789
- }
790
- if (lifecycle.members.get("Delete") && visibility.has(lifecycle.members.get("Delete")!)) {
791
- result.push(Visibility.Delete);
792
- }
793
- if (lifecycle.members.get("Query") && visibility.has(lifecycle.members.get("Query")!)) {
794
- result.push(Visibility.Query);
795
- }
796
- return result;
797
- }
798
- return undefined;
799
- }
800
- /**
801
- * Return the model name for a given model
802
- */
803
- function getModelName(dpgContext: SdkContext, model: Model) {
804
- const { program } = dpgContext;
805
-
806
- // 1. check if this is an anonymous model
807
- if (model.name === "") {
808
- return "";
809
- }
810
-
811
- // 2. check if there's a friendly name
812
- const friendlyName = getFriendlyName(program, model);
813
- if (friendlyName) {
814
- return friendlyName;
815
- }
816
-
817
- // 3. check if this is an Azure Core error model
818
- const isCoreModel = isAzureCoreErrorType(program, model);
819
- if (isCoreModel) {
820
- return model.name;
821
- }
822
-
823
- // 4. check if this is a model with template arguments
824
- let name = model.name;
825
- if (model.templateMapper?.args) {
826
- // const isPage = getPagedResult(program, model);
827
- const templateTypeNames = model.templateMapper.args
828
- .map((arg) => (arg.entityKind === "Indeterminate" ? arg.type : arg))
829
- .map((arg: any) => {
830
- switch (arg.kind) {
831
- case "Model":
832
- case "Enum":
833
- case "Union":
834
- case "Scalar":
835
- return arg.name ?? "";
836
- case "String":
837
- case "Boolean":
838
- case "Number":
839
- return arg.value ?? "";
840
- default:
841
- return "";
842
- }
843
- })
844
- .filter((arg) => arg !== "")
845
- .join(" ");
846
- name = normalizeName(`${name} ${templateTypeNames}`, NameType.Interface);
847
- }
848
- let fullNamespacePrefix = getModelNamespaceName(dpgContext, model.namespace!)
849
- .map((nsName) => {
850
- return normalizeName(nsName, NameType.Interface);
851
- })
852
- .join("");
853
- if (
854
- fullNamespacePrefix.startsWith("AzureResourceManager") ||
855
- fullNamespacePrefix.startsWith("AzureCore") ||
856
- fullNamespacePrefix.startsWith("TypeSpecRest") ||
857
- fullNamespacePrefix.startsWith("TypeSpecHttp")
858
- ) {
859
- fullNamespacePrefix = "";
860
- }
861
- // 5. check if this model should be namespaced
862
- return dpgContext.rlcOptions?.enableModelNamespace ? `${fullNamespacePrefix}${name}` : name;
863
- }
864
-
865
- // Map an typespec type to an OA schema. Returns undefined when the resulting
866
- // OA schema is just a regular object schema.
867
- function getSchemaForLiteral(type: Type): any {
868
- switch (type.kind) {
869
- case "Number":
870
- return { type: `${type.value}`, isConstant: true };
871
- case "String":
872
- return { type: `"${type.value}"`, isConstant: true };
873
- case "Boolean":
874
- return { type: `${type.value}`, isConstant: true };
875
- }
876
- if (type.kind === undefined) {
877
- if (typeof type === "string") {
878
- return { type: `"${type}"` };
879
- } else if (typeof type === "number" || typeof type === "boolean") {
880
- return { type: `${type}` };
881
- }
882
- }
883
- return undefined;
884
- }
885
- function applyIntrinsicDecorators(
886
- program: Program,
887
- type: Scalar | ModelProperty,
888
- target: any,
889
- ): any {
890
- const newTarget = { ...target };
891
- const docStr = getDoc(program, type);
892
- const isString = isStringType(program, getPropertyType(type));
893
- const isNumeric = isNumericType(program, getPropertyType(type));
894
-
895
- if (isString && !target?.documentation && docStr) {
896
- newTarget.description = docStr;
897
- }
898
-
899
- const summaryStr = getSummary(program, type);
900
- if (isString && !target.summary && summaryStr) {
901
- newTarget.summary = summaryStr;
902
- }
903
-
904
- const formatStr = getFormat(program, type);
905
- if (isString && !target.format && formatStr) {
906
- newTarget.format = formatStr;
907
- }
908
-
909
- const pattern = getPattern(program, type);
910
- if (isString && !target.pattern && pattern) {
911
- newTarget.pattern = pattern;
912
- }
913
-
914
- const minLength = getMinLength(program, type);
915
- if (isString && !target.minLength && minLength !== undefined) {
916
- newTarget.minLength = minLength;
917
- }
918
-
919
- const maxLength = getMaxLength(program, type);
920
- if (isString && !target.maxLength && maxLength !== undefined) {
921
- newTarget.maxLength = maxLength;
922
- }
923
-
924
- const minValue = getMinValue(program, type);
925
- if (isNumeric && !target.minimum && minValue !== undefined) {
926
- newTarget.minimum = minValue;
927
- }
928
-
929
- const maxValue = getMaxValue(program, type);
930
- if (isNumeric && !target.maximum && maxValue !== undefined) {
931
- newTarget.maximum = maxValue;
932
- }
933
-
934
- if (isSecret(program, type)) {
935
- newTarget.format = "password";
936
- newTarget["x-ms-secret"] = true;
937
- }
938
-
939
- return newTarget;
940
- }
941
-
942
- function getSchemaForEnumMember(program: Program, e: EnumMember) {
943
- const value = e.value ?? e.name;
944
- const type = enumMemberType(e) === "string" ? `"${value}"` : `${value}`;
945
- return { type, description: getDoc(program, e), isConstant: true };
946
- }
947
-
948
- function getSchemaForEnum(dpgContext: SdkContext, e: Enum) {
949
- const values = [];
950
- const memberValues = Array.from(e.members.values());
951
- if (memberValues.length === 0) {
952
- return {};
953
- }
954
- const type = enumMemberType(memberValues[0]!);
955
- for (const option of memberValues) {
956
- if (type !== enumMemberType(option)) {
957
- reportDiagnostic(dpgContext.program, {
958
- code: "union-unsupported",
959
- target: e,
960
- });
961
- continue;
962
- }
963
-
964
- values.push(getSchemaForType(dpgContext, option));
965
- }
966
-
967
- const schema: any = {
968
- type: "object",
969
- name: e.name,
970
- typeName: normalizeName(e.name, NameType.Interface),
971
- outputTypeName: normalizeName(e.name, NameType.Interface) + "Output",
972
- description: getDoc(dpgContext.program, e),
973
- memberType: type,
974
- };
975
-
976
- if (values.length > 0) {
977
- schema.enum = values;
978
- const unionAlias = values
979
- .map((item) => `${getTypeName(item, [SchemaContext.Input]) ?? item}`)
980
- .join(" | ");
981
- schema.alias = unionAlias;
982
- schema.outputAlias = unionAlias;
983
- }
984
- return schema;
985
- }
986
-
987
- function enumMemberType(member: EnumMember) {
988
- const memberValue = member.value;
989
- if (typeof memberValue === "number") {
990
- return "number";
991
- }
992
- return "string";
993
- }
994
- /**
995
- * Map TypeSpec intrinsic models to open api definitions
996
- */
997
- function getSchemaForArrayModel(dpgContext: SdkContext, type: Model, options?: GetSchemaOptions) {
998
- const { program } = dpgContext;
999
- const { indexer } = type;
1000
- const { usage, isParentRequestBody, mediaTypes: contentTypes } = options ?? {};
1001
- let schema: any = {};
1002
- if (!indexer) {
1003
- return schema;
1004
- }
1005
- if (isArrayModelType(type)) {
1006
- schema = {
1007
- type: "array",
1008
- items: getSchemaForType(dpgContext, indexer.value!, {
1009
- usage,
1010
- isRequestBody: false,
1011
- mediaTypes: contentTypes,
1012
- // special handling for array in formdata
1013
- isParentRequestBody: hasMediaType(KnownMediaType.MultipartFormData, contentTypes)
1014
- ? isParentRequestBody
1015
- : false,
1016
- needRef: !isAnonymousModelType(indexer.value!),
1017
- }),
1018
- description: getDoc(program, type),
1019
- };
1020
- if (
1021
- !program.checker.isStdType(indexer.value) &&
1022
- !isUnknownType(indexer.value!) &&
1023
- indexer.value?.kind &&
1024
- schema.items.name &&
1025
- !schema.items.enum
1026
- ) {
1027
- schema.typeName = `Array<${schema.items.name}>`;
1028
- if (usage && usage.includes(SchemaContext.Output)) {
1029
- schema.outputTypeName = `Array<${schema.items.name}Output>`;
1030
- }
1031
- } else {
1032
- if (schema.items.typeName) {
1033
- if (schema.items.type === "dictionary") {
1034
- schema.typeName = `${schema.items.typeName}[]`;
1035
- if (usage && usage.includes(SchemaContext.Output)) {
1036
- schema.outputTypeName = `(${schema.items.outputTypeName})[]`;
1037
- }
1038
- } else if (schema.items.type === "union") {
1039
- schema.typeName = `(${schema.items.typeName})[]`;
1040
- if (usage && usage.includes(SchemaContext.Output)) {
1041
- schema.outputTypeName = `(${schema.items.outputTypeName})[]`;
1042
- }
1043
- } else if (
1044
- schema.items.typeName.includes(BINARY_TYPE_UNION) &&
1045
- schema.items.type === "string"
1046
- ) {
1047
- schema.typeName = `(${schema.items.typeName})[]`;
1048
- if (usage && usage.includes(SchemaContext.Output)) {
1049
- schema.outputTypeName = `(${schema.items.outputTypeName})[]`;
1050
- }
1051
- } else if (isAnonymousObjectSchema(schema.items)) {
1052
- schema.typeName = `${schema.items.typeName}[]`;
1053
- if (usage && usage.includes(SchemaContext.Output)) {
1054
- schema.outputTypeName = `${schema.items.outputTypeName}[]`;
1055
- }
1056
- } else {
1057
- schema.typeName = schema.items.typeName
1058
- .split("|")
1059
- .map((typeName: string) => {
1060
- return `${typeName}[]`;
1061
- })
1062
- .join(" | ");
1063
- if (schema.items.outputTypeName && usage && usage.includes(SchemaContext.Output)) {
1064
- schema.outputTypeName = schema.items.outputTypeName
1065
- .split("|")
1066
- .map((typeName: string) => {
1067
- return `${typeName}[]`;
1068
- })
1069
- .join(" | ");
1070
- }
1071
- }
1072
- } else if (schema.items?.type?.includes("|")) {
1073
- schema.typeName = `(${schema.items.type})[]`;
1074
- } else {
1075
- schema.typeName = `${schema.items.type}[]`;
1076
- }
1077
- }
1078
- schema.usage = usage;
1079
- return schema;
1080
- }
1081
- }
1082
-
1083
- function getSchemaForRecordModel(dpgContext: SdkContext, type: Model, options?: GetSchemaOptions) {
1084
- const { program } = dpgContext;
1085
- const { indexer } = type;
1086
- const { usage } = options ?? {};
1087
- let schema: any = {};
1088
- if (!indexer) {
1089
- return schema;
1090
- }
1091
- if (isRecordModelType(type)) {
1092
- const valueType = getSchemaForType(dpgContext, indexer?.value, {
1093
- usage,
1094
- needRef: !isAnonymousModelType(indexer.value),
1095
- });
1096
- schema = {
1097
- type: "dictionary",
1098
- additionalProperties: valueType,
1099
- description: getDoc(program, type),
1100
- };
1101
- if (
1102
- !program.checker.isStdType(indexer.value) &&
1103
- !isUnknownType(indexer.value!) &&
1104
- !isUnionType(indexer.value!)
1105
- ) {
1106
- schema.typeName = `Record<string, ${valueType.typeName}>`;
1107
- schema.valueTypeName = valueType.name;
1108
- if (usage && usage.includes(SchemaContext.Output)) {
1109
- schema.outputTypeName = `Record<string, ${valueType.outputTypeName}>`;
1110
- schema.outputValueTypeName = `${valueType.outputTypeName}`;
1111
- }
1112
- } else if (isUnknownType(indexer.value!)) {
1113
- schema.typeName = `Record<string, ${valueType.typeName ?? valueType.type}>`;
1114
- if (usage && usage.includes(SchemaContext.Output)) {
1115
- schema.outputTypeName = `Record<string, ${valueType.outputTypeName ?? valueType.type}>`;
1116
- }
1117
- } else {
1118
- schema.typeName = `Record<string, ${getTypeName(valueType, [SchemaContext.Input])}>`;
1119
- schema.outputTypeName = `Record<string, ${getTypeName(valueType, [SchemaContext.Output])}>`;
1120
- }
1121
- schema.usage = usage;
1122
- return schema;
1123
- }
1124
- }
1125
-
1126
- function isUnionType(type: Type) {
1127
- return type.kind === "Union";
1128
- }
1129
-
1130
- export function isObjectOrDictType(schema: Schema) {
1131
- return (
1132
- (schema.type === "object" && (schema as ObjectSchema).properties !== undefined) ||
1133
- schema.type === "dictionary"
1134
- );
1135
- }
1136
-
1137
- export function isArrayType(schema: Schema) {
1138
- return schema.type === "array";
1139
- }
1140
-
1141
- function getSchemaForStdScalar(program: Program, type: Scalar, options?: GetSchemaOptions) {
1142
- const { relevantProperty } = options ?? {};
1143
- if (!program.checker.isStdType(type)) {
1144
- return undefined;
1145
- }
1146
-
1147
- /**
1148
- * lookup for @encode decorator
1149
- * if absent use typespec type (or default way of serializing that type)
1150
- * if present respect type provided in @encode
1151
- */
1152
- let format = undefined;
1153
- if (relevantProperty) {
1154
- const encodeData = getEncode(program, relevantProperty);
1155
- if (encodeData && isEncodeTypeEffective(type, encodeData)) {
1156
- type = encodeData.type;
1157
- format = encodeData.encoding;
1158
- }
1159
- }
1160
- const name = type.name;
1161
- const description = getSummary(program, type);
1162
- switch (name) {
1163
- case "bytes":
1164
- return { type: "string", format: "bytes", description };
1165
- case "integer":
1166
- return applyIntrinsicDecorators(program, type, {
1167
- type: "number",
1168
- });
1169
- case "int8":
1170
- return applyIntrinsicDecorators(program, type, {
1171
- type: "number",
1172
- format: "int8",
1173
- });
1174
- case "int16":
1175
- return applyIntrinsicDecorators(program, type, {
1176
- type: "number",
1177
- format: "int16",
1178
- });
1179
- case "int32":
1180
- return applyIntrinsicDecorators(program, type, {
1181
- type: "number",
1182
- format: "int32",
1183
- });
1184
- case "int64":
1185
- return applyIntrinsicDecorators(program, type, {
1186
- type: "number",
1187
- format: "int64",
1188
- });
1189
- case "safeint":
1190
- return applyIntrinsicDecorators(program, type, {
1191
- type: "number",
1192
- format: "safeint",
1193
- });
1194
- case "numeric":
1195
- return applyIntrinsicDecorators(program, type, {
1196
- type: "number",
1197
- });
1198
- case "uint8":
1199
- return applyIntrinsicDecorators(program, type, {
1200
- type: "number",
1201
- format: "uint8",
1202
- });
1203
- case "uint16":
1204
- return applyIntrinsicDecorators(program, type, {
1205
- type: "number",
1206
- format: "uint16",
1207
- });
1208
- case "uint32":
1209
- return applyIntrinsicDecorators(program, type, {
1210
- type: "number",
1211
- format: "uint32",
1212
- });
1213
- case "uint64":
1214
- return applyIntrinsicDecorators(program, type, {
1215
- type: "number",
1216
- format: "uint64",
1217
- });
1218
- case "float64":
1219
- return applyIntrinsicDecorators(program, type, {
1220
- type: "number",
1221
- format: "float64",
1222
- });
1223
- case "float32":
1224
- return applyIntrinsicDecorators(program, type, {
1225
- type: "number",
1226
- format: "float32",
1227
- });
1228
- case "float":
1229
- return applyIntrinsicDecorators(program, type, {
1230
- type: "number",
1231
- format: "float",
1232
- });
1233
- case "decimal":
1234
- reportDiagnostic(program, {
1235
- code: "decimal-to-number",
1236
- format: {
1237
- propertyName: relevantProperty?.name ?? "",
1238
- },
1239
- target: relevantProperty ?? NoTarget,
1240
- });
1241
- return applyIntrinsicDecorators(program, type, {
1242
- type: "number",
1243
- format: "decimal",
1244
- description: "decimal",
1245
- });
1246
- case "decimal128":
1247
- reportDiagnostic(program, {
1248
- code: "decimal-to-number",
1249
- format: {
1250
- propertyName: relevantProperty?.name ?? "",
1251
- },
1252
- target: relevantProperty ?? NoTarget,
1253
- });
1254
- return applyIntrinsicDecorators(program, type, {
1255
- type: "number",
1256
- format: "decimal128",
1257
- description: "decimal128",
1258
- });
1259
- case "string":
1260
- if (format === "binary") {
1261
- return {
1262
- type: "string",
1263
- format: "binary",
1264
- description,
1265
- typeName: BINARY_TYPE_UNION,
1266
- outputTypeName: "Uint8Array",
1267
- };
1268
- }
1269
- return applyIntrinsicDecorators(program, type, {
1270
- type: "string",
1271
- });
1272
- case "boolean":
1273
- return { type: "boolean", description };
1274
- case "plainDate":
1275
- return {
1276
- type: "string",
1277
- format,
1278
- description,
1279
- typeName: "string",
1280
- outputTypeName: "string",
1281
- };
1282
- case "utcDateTime":
1283
- return {
1284
- type: "string",
1285
- format,
1286
- description,
1287
- typeName: "Date | string",
1288
- outputTypeName: "string",
1289
- };
1290
- case "offsetDateTime":
1291
- return {
1292
- type: "string",
1293
- format: "date-time",
1294
- description,
1295
- typeName: "string",
1296
- outputTypeName: "string",
1297
- };
1298
- case "plainTime":
1299
- return {
1300
- type: "string",
1301
- format: "time",
1302
- description,
1303
- typeName: "string",
1304
- outputTypeName: "string",
1305
- };
1306
- case "duration":
1307
- return { type: "string", format, description };
1308
- case "url":
1309
- return { type: "string", format: "uri" };
1310
- }
1311
- }
1312
-
1313
- function isEncodeTypeEffective(type: Scalar, encodeData: EncodeData | undefined) {
1314
- if (!encodeData) {
1315
- return false;
1316
- }
1317
- const datetimeTypes = ["plaindate", "utcdatetime", "offsetdatetime", "plaintime"];
1318
- if (datetimeTypes.includes(type.name.toLowerCase()) && encodeData.type.name === "string") {
1319
- return false;
1320
- }
1321
- return true;
1322
- }
1323
-
1324
- export function getTypeName(schema: Schema, usage?: SchemaContext[]): string {
1325
- // TODO: Handle more cases
1326
- return getPriorityName(schema, usage) ?? schema.type ?? "any";
1327
- }
1328
-
1329
- export function getImportedModelName(schema: Schema, usage?: SchemaContext[]): string[] {
1330
- switch (schema.type) {
1331
- case "array": {
1332
- const ret = new Set<string>();
1333
- [(schema as ArraySchema).items]
1334
- .filter((i?: Schema) => !!i)
1335
- .forEach((i?: Schema) => getImportedModelName(i!, usage).forEach((it) => ret.add(it)));
1336
- return [...ret];
1337
- }
1338
- case "object": {
1339
- if (isAnonymousObjectSchema(schema)) {
1340
- const ret = new Set<string>();
1341
- const properties = (schema as ObjectSchema).properties ?? {};
1342
- for (const name in properties) {
1343
- if (!properties[name]) {
1344
- continue;
1345
- }
1346
- getImportedModelName(properties[name]!, usage).forEach((it) => ret.add(it));
1347
- }
1348
- return [...ret];
1349
- }
1350
- return getPriorityName(schema, usage) ? [getPriorityName(schema, usage)] : [];
1351
- }
1352
- case "dictionary": {
1353
- const ret = new Set<string>();
1354
- [(schema as DictionarySchema).additionalProperties]
1355
- .filter((i?: Schema) => !!i)
1356
- .forEach((i?: Schema) => getImportedModelName(i!, usage).forEach((it) => ret.add(it)));
1357
-
1358
- return [...ret];
1359
- }
1360
- case "union": {
1361
- const ret = new Set<string>();
1362
- ((schema as Schema).enum ?? [])
1363
- .filter((i?: Schema) => !!i)
1364
- .forEach((i?: Schema) => getImportedModelName(i!, usage).forEach((it) => ret.add(it)));
1365
-
1366
- return [...ret];
1367
- }
1368
- default:
1369
- return [];
1370
- }
1371
- }
1372
-
1373
- function getPriorityName(schema: Schema, usage?: SchemaContext[]): string {
1374
- return usage && usage.includes(SchemaContext.Input) && !usage.includes(SchemaContext.Output)
1375
- ? (schema.typeName ?? schema.name)
1376
- : (schema.outputTypeName ?? schema.typeName ?? schema.name);
1377
- }
1378
-
1379
- function getEnumStringDescription(type: any) {
1380
- if (
1381
- (type.name === "string" ||
1382
- type.alias === "string" ||
1383
- type.name === "number" ||
1384
- type.alias === "number" ||
1385
- type.name === "boolean" ||
1386
- type.alias === "boolean") &&
1387
- type.enum &&
1388
- type.enum.length > 0
1389
- ) {
1390
- return `Possible values: ${type.enum
1391
- .map((e: Schema) => {
1392
- return e.type;
1393
- })
1394
- .join(", ")}`;
1395
- }
1396
- return undefined;
1397
- }
1398
-
1399
- function getBinaryDescription(type: any) {
1400
- if (type?.typeName?.includes(BINARY_TYPE_UNION)) {
1401
- return `Value may contain any sequence of octets`;
1402
- }
1403
- return undefined;
1404
- }
1405
-
1406
- function getDecimalDescription(type: any) {
1407
- if ((type.format === "decimal" || type.format === "decimal128") && type.type === "number") {
1408
- return `NOTE: This property is represented as a 'number' in JavaScript, but it corresponds to a 'decimal' type in other languages.
1409
- Due to the inherent limitations of floating-point arithmetic in JavaScript, precision issues may arise when performing arithmetic operations.
1410
- If your application requires high precision for arithmetic operations or when round-tripping data back to other languages, consider using a library like decimal.js, which provides an arbitrary-precision Decimal type.
1411
- For simpler cases, where you need to control the number of decimal places for display purposes, you can use the 'toFixed()' method. However, be aware that 'toFixed()' returns a string and may not be suitable for all arithmetic precision requirements.
1412
- Always be cautious with direct arithmetic operations and consider implementing appropriate rounding strategies to maintain accuracy.
1413
- `;
1414
- }
1415
- return undefined;
1416
- }
1417
-
1418
- export function getFormattedPropertyDoc(
1419
- program: Program,
1420
- type: ModelProperty | Type,
1421
- schemaType: any,
1422
- sperator: string = "\n\n",
1423
- ) {
1424
- const propertyDoc = getDoc(program, type);
1425
- const enhancedDocFromType =
1426
- getEnumStringDescription(schemaType) ??
1427
- getDecimalDescription(schemaType) ??
1428
- getBinaryDescription(schemaType);
1429
- if (propertyDoc && enhancedDocFromType) {
1430
- return `${propertyDoc}${sperator}${enhancedDocFromType}`;
1431
- }
1432
- return propertyDoc ?? enhancedDocFromType;
1433
- }
1434
-
1435
- export function getBodyType(route: HttpOperation): Type | undefined {
1436
- const bodyModel = route.parameters.body?.type;
1437
- return bodyModel;
1438
- }
1439
-
1440
- export function getValueTypeValue(
1441
- value: Value,
1442
- ): string | boolean | null | number | Array<unknown> | object | undefined {
1443
- switch (value.valueKind) {
1444
- case "ArrayValue":
1445
- return value.values.map((x) => getValueTypeValue(x));
1446
- case "BooleanValue":
1447
- case "StringValue":
1448
- case "NullValue":
1449
- return value.value;
1450
- case "NumericValue":
1451
- return value.value.asNumber();
1452
- case "EnumValue":
1453
- return value.value.value ?? value.value.name;
1454
- case "ObjectValue":
1455
- return Object.fromEntries(
1456
- [...value.properties.keys()].map((x) => [
1457
- x,
1458
- getValueTypeValue(value.properties.get(x)!.value),
1459
- ]),
1460
- );
1461
- default:
1462
- // TODO: handle scalar value
1463
- return undefined;
1464
- }
1465
- }
1466
-
1467
- /**
1468
- * Predict if the default value exists in param, we would follow the rules:
1469
- * 1. If we have specific default literal in param
1470
- * 2. If we take the default api-version value into considerations
1471
- * @param program
1472
- * @param dpgContext
1473
- * @param param The param to predict
1474
- * @returns
1475
- */
1476
- export function predictDefaultValue(dpgContext: SdkContext, param?: ModelProperty) {
1477
- if (!param) {
1478
- return;
1479
- }
1480
- const program = dpgContext.program;
1481
- const specificDefault = param.defaultValue ? getValueTypeValue(param.defaultValue) : undefined;
1482
- if (specificDefault) {
1483
- if (typeof specificDefault === "object") {
1484
- reportDiagnostic(program, {
1485
- code: "default-value-object",
1486
- format: {
1487
- propertyName: param.name,
1488
- },
1489
- target: param,
1490
- });
1491
- return specificDefault.toString();
1492
- }
1493
- return specificDefault;
1494
- }
1495
- const serviceNamespace = getDefaultService(
1496
- program,
1497
- dpgContext.rlcOptions?.isModularLibrary,
1498
- )?.type;
1499
- if (!serviceNamespace) {
1500
- return;
1501
- }
1502
- const defaultApiVersion = getDefaultApiVersionString(dpgContext);
1503
- if (param && isApiVersion(dpgContext, param) && defaultApiVersion) {
1504
- return defaultApiVersion;
1505
- }
1506
- return;
1507
- }
1508
-
1509
- export function getDefaultService(
1510
- program: Program,
1511
- isModularLibrary: boolean = true,
1512
- ): Service | undefined {
1513
- const services = listServices(program);
1514
- if (!services || services.length === 0) {
1515
- reportDiagnostic(program, {
1516
- code: "no-service-defined",
1517
- target: NoTarget,
1518
- });
1519
- }
1520
- if (services.length > 1 && !isModularLibrary) {
1521
- reportDiagnostic(program, {
1522
- code: "more-than-one-service",
1523
- target: NoTarget,
1524
- });
1525
- }
1526
- return services[0];
1527
- }
1528
- /**
1529
- * Return the default api version from the program; undefined if no default
1530
- */
1531
- export function getDefaultApiVersionString(dpgContext: SdkContext): string | undefined {
1532
- const program = dpgContext.program;
1533
- const isModularLibrary = dpgContext.rlcOptions?.isModularLibrary;
1534
- return getDefaultService(program, isModularLibrary)
1535
- ? getDefaultApiVersion(dpgContext, getDefaultService(program, isModularLibrary)!.type)?.value
1536
- : undefined;
1537
- }
1538
-
1539
- export function trimUsage(model: any) {
1540
- if (typeof model !== "object") {
1541
- return model;
1542
- }
1543
- const tmpModel = Object.assign({}, model);
1544
- const tmpModelKeys = Object.keys(tmpModel).filter((item) => {
1545
- return item !== "usage";
1546
- });
1547
- const ordered = tmpModelKeys.sort().reduce((obj, key) => {
1548
- (obj as any)[key] = trimUsage(tmpModel[key]);
1549
- return obj;
1550
- }, {});
1551
- return ordered;
1552
- }
1553
-
1554
- export function isAzureCoreErrorType(program: Program, t?: Type): boolean {
1555
- if (!t || t.kind !== "Model") {
1556
- return false;
1557
- }
1558
- const effective = getEffectiveSchemaType(program, t);
1559
- if (!["error", "errorresponse", "innererror"].includes(effective.name.toLowerCase())) {
1560
- return false;
1561
- }
1562
- return isAzureCoreFoundationsNamespace(effective);
1563
- }
1564
-
1565
- function isAzureCoreFoundationsNamespace(t?: Type, skipFoundation: boolean = false): boolean {
1566
- const namespaces = (skipFoundation ? ".Azure.Core" : ".Azure.Core.Foundations").split(".");
1567
- while (
1568
- namespaces.length > 0 &&
1569
- (t?.kind === "Model" || t?.kind === "Enum" || t?.kind === "Union" || t?.kind === "Namespace") &&
1570
- t.namespace?.name === namespaces.pop()
1571
- ) {
1572
- t = t.namespace;
1573
- }
1574
- return namespaces.length == 0;
1575
- }
1576
-
1577
- // Check if the schema is an anonymous object
1578
- export function isAnonymousObjectSchema(schema: Schema) {
1579
- return schema.name === "" && schema.type === "object";
1580
- }
1581
-
1582
- // Check if the type is an anonymous model
1583
- export function isAnonymousModelType(type: Type) {
1584
- if (type.kind === "Model") {
1585
- return type.name === "";
1586
- }
1587
- return false;
1588
- }
1589
-
1590
- /**
1591
- * Get the inline signiture of the model
1592
- * @param schema object schema detail
1593
- * @param options other optional parameters
1594
- * @returns
1595
- */
1596
- export function getModelInlineSigniture(
1597
- schema: ObjectSchema,
1598
- options: {
1599
- importedModels?: Set<string>;
1600
- usage?: SchemaContext[];
1601
- multipart?: boolean;
1602
- } = {},
1603
- ) {
1604
- if (options.multipart) {
1605
- return getMultipartInlineSignature(schema, options.importedModels, options.usage);
1606
- }
1607
-
1608
- let schemaSignature = `{`;
1609
- for (const propName in schema.properties) {
1610
- const propType = schema.properties[propName]!;
1611
- const propTypeName = getTypeName(propType, options.usage);
1612
- if (!propType || !propTypeName) {
1613
- continue;
1614
- }
1615
- if (options.importedModels) {
1616
- const importNames = getImportedModelName(propType);
1617
- if (importNames) {
1618
- importNames!.forEach(options.importedModels.add, options.importedModels);
1619
- }
1620
- }
1621
- const isOptional = propType.required ? "" : "?";
1622
- schemaSignature += `${propName}${isOptional}: ${propTypeName};`;
1623
- }
1624
-
1625
- schemaSignature += `}`;
1626
- return schemaSignature;
1627
- }
1628
-
1629
- function getMultipartInlineSignature(
1630
- schema: ObjectSchema,
1631
- importedModels?: Set<string>,
1632
- usage?: SchemaContext[],
1633
- ): string {
1634
- const types = Object.entries(schema.properties ?? {})
1635
- .map(([propertyName, property]) => {
1636
- let schema: Schema;
1637
-
1638
- // Flatten arrays for file uploads
1639
- if (
1640
- isArraySchema(property) &&
1641
- property.items &&
1642
- getTypeName(property.items, usage).includes(BINARY_AND_FILE_TYPE_UNION)
1643
- ) {
1644
- schema = property.items;
1645
- } else {
1646
- schema = property;
1647
- }
1648
-
1649
- const typeName = getTypeName(schema, usage);
1650
- if (!typeName) {
1651
- return undefined;
1652
- }
1653
-
1654
- const importNames = getImportedModelName(schema);
1655
- if (importedModels && importNames) {
1656
- importNames.forEach(importedModels.add.bind(importedModels));
1657
- }
1658
-
1659
- if (typeName.includes("File")) {
1660
- return `{ name: ${propertyName}, body: ${typeName}, filename?: string, contentType?: string }`;
1661
- } else {
1662
- return `{ name: ${propertyName}, body: ${typeName} }`;
1663
- }
1664
- })
1665
- .filter(Boolean)
1666
- .join(" | ");
1667
-
1668
- return `FormData | Array<${types}>`;
1669
- }
1670
-
1671
- /**
1672
- * A "schema property" here is a property that is emitted to OpenAPI schema.
1673
- *
1674
- * Headers, parameters, status codes are not schema properties even they are
1675
- * represented as properties in typespec.
1676
- */
1677
- export function isSchemaProperty(program: Program, property: ModelProperty): boolean {
1678
- const headerInfo = getHeaderFieldName(program, property);
1679
- const queryInfo = getQueryParamName(program, property);
1680
- const pathInfo = getPathParamName(program, property);
1681
- const statusCodeInfo = isStatusCode(program, property);
1682
- const isNonVisibility = getSdkVisibility(program, property)?.includes(Visibility.None);
1683
- return !(headerInfo || queryInfo || pathInfo || statusCodeInfo || isNonVisibility);
1684
- }
1685
-
1686
- export function getEffectiveSchemaType(program: Program, type: Model | Union): Model {
1687
- // If type is an anonymous model, tries to find a named model that has the same properties
1688
- let effective: Model | undefined = undefined;
1689
- if (type.kind === "Union") {
1690
- const nonNullOptions = [...type.variants.values()]
1691
- .map((x) => x.type)
1692
- .filter((t) => !isNullType(t));
1693
- if (
1694
- nonNullOptions.length === 1 &&
1695
- nonNullOptions[0]?.kind === "Model" &&
1696
- nonNullOptions[0]?.name === ""
1697
- ) {
1698
- effective = getEffectiveModelType(program, nonNullOptions[0]);
1699
- }
1700
- return type as any;
1701
- } else if (type.name === "") {
1702
- effective = getEffectiveModelType(program, type, (property) =>
1703
- isSchemaProperty(program, property),
1704
- );
1705
- }
1706
-
1707
- if (effective?.name) {
1708
- return effective;
1709
- }
1710
- return type as Model;
1711
- }
1712
-
1713
- export function isBodyRequired(parameter: HttpOperationParameters) {
1714
- return parameter.body?.type && parameter.body?.property?.optional !== true ? true : false;
1715
- }
1716
-
1717
- export function getCollectionFormat(
1718
- context: SdkContext,
1719
- param: HttpOperationPathParameter | HttpOperationQueryParameter | HttpOperationHeaderParameter,
1720
- ): string | undefined {
1721
- const type = param.param;
1722
- const encode = getEncode(context.program, param.param);
1723
- if (type.type.kind === "Model" && isArrayModelType(type.type)) {
1724
- if (param.explode) {
1725
- return "multi";
1726
- }
1727
- switch (encode?.encoding) {
1728
- case "ArrayEncoding.pipeDelimited":
1729
- return "pipes";
1730
- case "ArrayEncoding.spaceDelimited":
1731
- return "ssv";
1732
- default:
1733
- return "csv";
1734
- }
1735
- }
1736
- return;
1737
- }