@azure-tools/typespec-ts 0.54.1 → 0.54.2

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 (1003) hide show
  1. package/CHANGELOG.md +9 -0
  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.js +3 -3
  7. package/dist/src/framework/hooks/binder.js.map +1 -1
  8. package/dist/src/framework/hooks/sdk-types.d.ts +27 -0
  9. package/dist/src/framework/hooks/sdk-types.d.ts.map +1 -0
  10. package/dist/src/framework/hooks/sdk-types.js +158 -0
  11. package/dist/src/framework/hooks/sdk-types.js.map +1 -0
  12. package/dist/src/framework/hooks/use-dependencies.d.ts +4 -0
  13. package/dist/src/framework/hooks/use-dependencies.d.ts.map +1 -0
  14. package/dist/src/framework/hooks/use-dependencies.js +13 -0
  15. package/dist/src/framework/hooks/use-dependencies.js.map +1 -0
  16. package/dist/src/index.js +23 -23
  17. package/dist/src/index.js.map +1 -1
  18. package/dist/src/meta-tree.d.ts +7 -0
  19. package/dist/src/meta-tree.d.ts.map +1 -0
  20. package/dist/src/meta-tree.js +2 -0
  21. package/dist/src/meta-tree.js.map +1 -0
  22. package/dist/src/modular/build-classical-client.d.ts +6 -0
  23. package/dist/src/modular/build-classical-client.d.ts.map +1 -0
  24. package/dist/src/modular/build-classical-client.js +345 -0
  25. package/dist/src/modular/build-classical-client.js.map +1 -0
  26. package/dist/src/modular/build-classical-operation-groups.d.ts +6 -0
  27. package/dist/src/modular/build-classical-operation-groups.d.ts.map +1 -0
  28. package/dist/src/modular/build-classical-operation-groups.js +48 -0
  29. package/dist/src/modular/build-classical-operation-groups.js.map +1 -0
  30. package/dist/src/modular/build-client-context.d.ts +13 -0
  31. package/dist/src/modular/build-client-context.d.ts.map +1 -0
  32. package/dist/src/modular/build-client-context.js +246 -0
  33. package/dist/src/modular/build-client-context.js.map +1 -0
  34. package/dist/src/modular/build-modular-options.d.ts +6 -0
  35. package/dist/src/modular/build-modular-options.d.ts.map +1 -0
  36. package/dist/src/modular/build-modular-options.js +14 -0
  37. package/dist/src/modular/build-modular-options.js.map +1 -0
  38. package/dist/src/modular/build-operations.d.ts +21 -0
  39. package/dist/src/modular/build-operations.d.ts.map +1 -0
  40. package/dist/src/modular/build-operations.js +172 -0
  41. package/dist/src/modular/build-operations.js.map +1 -0
  42. package/dist/src/modular/build-project-files.d.ts +4 -0
  43. package/dist/src/modular/build-project-files.d.ts.map +1 -0
  44. package/dist/src/modular/build-project-files.js +91 -0
  45. package/dist/src/modular/build-project-files.js.map +1 -0
  46. package/dist/src/modular/build-restore-poller.d.ts +5 -0
  47. package/dist/src/modular/build-restore-poller.d.ts.map +1 -0
  48. package/dist/src/modular/build-restore-poller.js +216 -0
  49. package/dist/src/modular/build-restore-poller.js.map +1 -0
  50. package/dist/src/modular/build-root-index.d.ts +13 -0
  51. package/dist/src/modular/build-root-index.d.ts.map +1 -0
  52. package/dist/src/modular/build-root-index.js +279 -0
  53. package/dist/src/modular/build-root-index.js.map +1 -0
  54. package/dist/src/modular/build-subpath-index.d.ts +16 -0
  55. package/dist/src/modular/build-subpath-index.d.ts.map +1 -0
  56. package/dist/src/modular/build-subpath-index.js +119 -0
  57. package/dist/src/modular/build-subpath-index.js.map +1 -0
  58. package/dist/src/modular/emit-logger-file.d.ts +3 -0
  59. package/dist/src/modular/emit-logger-file.d.ts.map +1 -0
  60. package/dist/src/modular/emit-logger-file.js +18 -0
  61. package/dist/src/modular/emit-logger-file.js.map +1 -0
  62. package/dist/src/modular/emit-models-options.d.ts +5 -0
  63. package/dist/src/modular/emit-models-options.d.ts.map +1 -0
  64. package/dist/src/modular/emit-models-options.js +35 -0
  65. package/dist/src/modular/emit-models-options.js.map +1 -0
  66. package/dist/src/modular/emit-models.d.ts +23 -0
  67. package/dist/src/modular/emit-models.d.ts.map +1 -0
  68. package/dist/src/modular/emit-models.js +864 -0
  69. package/dist/src/modular/emit-models.js.map +1 -0
  70. package/dist/src/modular/emit-samples.d.ts +7 -0
  71. package/dist/src/modular/emit-samples.d.ts.map +1 -0
  72. package/dist/src/modular/emit-samples.js +500 -0
  73. package/dist/src/modular/emit-samples.js.map +1 -0
  74. package/dist/src/modular/emit-tests.d.ts +7 -0
  75. package/dist/src/modular/emit-tests.d.ts.map +1 -0
  76. package/dist/src/modular/emit-tests.js +155 -0
  77. package/dist/src/modular/emit-tests.js.map +1 -0
  78. package/dist/src/modular/helpers/classical-operation-helpers.d.ts +7 -0
  79. package/dist/src/modular/helpers/classical-operation-helpers.d.ts.map +1 -0
  80. package/dist/src/modular/helpers/classical-operation-helpers.js +258 -0
  81. package/dist/src/modular/helpers/classical-operation-helpers.js.map +1 -0
  82. package/dist/src/modular/helpers/client-helpers.d.ts +34 -0
  83. package/dist/src/modular/helpers/client-helpers.d.ts.map +1 -0
  84. package/dist/src/modular/helpers/client-helpers.js +259 -0
  85. package/dist/src/modular/helpers/client-helpers.js.map +1 -0
  86. package/dist/src/modular/helpers/client-option-helpers.d.ts +43 -0
  87. package/dist/src/modular/helpers/client-option-helpers.d.ts.map +1 -0
  88. package/dist/src/modular/helpers/client-option-helpers.js +103 -0
  89. package/dist/src/modular/helpers/client-option-helpers.js.map +1 -0
  90. package/dist/src/modular/helpers/docs-helpers.d.ts +3 -0
  91. package/dist/src/modular/helpers/docs-helpers.d.ts.map +1 -0
  92. package/dist/src/modular/helpers/docs-helpers.js +10 -0
  93. package/dist/src/modular/helpers/docs-helpers.js.map +1 -0
  94. package/dist/src/modular/helpers/example-value-helpers.d.ts +83 -0
  95. package/dist/src/modular/helpers/example-value-helpers.d.ts.map +1 -0
  96. package/dist/src/modular/helpers/example-value-helpers.js +639 -0
  97. package/dist/src/modular/helpers/example-value-helpers.js.map +1 -0
  98. package/dist/src/modular/helpers/naming-helpers.d.ts +22 -0
  99. package/dist/src/modular/helpers/naming-helpers.d.ts.map +1 -0
  100. package/dist/src/modular/helpers/naming-helpers.js +59 -0
  101. package/dist/src/modular/helpers/naming-helpers.js.map +1 -0
  102. package/dist/src/modular/helpers/operation-helpers.d.ts +105 -0
  103. package/dist/src/modular/helpers/operation-helpers.d.ts.map +1 -0
  104. package/dist/src/modular/helpers/operation-helpers.js +2328 -0
  105. package/dist/src/modular/helpers/operation-helpers.js.map +1 -0
  106. package/dist/src/modular/helpers/type-helpers.d.ts +22 -0
  107. package/dist/src/modular/helpers/type-helpers.d.ts.map +1 -0
  108. package/dist/src/modular/helpers/type-helpers.js +94 -0
  109. package/dist/src/modular/helpers/type-helpers.js.map +1 -0
  110. package/dist/src/modular/serialization/build-deserializer-function.d.ts +7 -0
  111. package/dist/src/modular/serialization/build-deserializer-function.d.ts.map +1 -0
  112. package/dist/src/modular/serialization/build-deserializer-function.js +401 -0
  113. package/dist/src/modular/serialization/build-deserializer-function.js.map +1 -0
  114. package/dist/src/modular/serialization/build-serializer-function.d.ts +7 -0
  115. package/dist/src/modular/serialization/build-serializer-function.d.ts.map +1 -0
  116. package/dist/src/modular/serialization/build-serializer-function.js +442 -0
  117. package/dist/src/modular/serialization/build-serializer-function.js.map +1 -0
  118. package/dist/src/modular/serialization/build-xml-serializer-function.d.ts +44 -0
  119. package/dist/src/modular/serialization/build-xml-serializer-function.d.ts.map +1 -0
  120. package/dist/src/modular/serialization/build-xml-serializer-function.js +729 -0
  121. package/dist/src/modular/serialization/build-xml-serializer-function.js.map +1 -0
  122. package/dist/src/modular/serialization/serialize-utils.d.ts +37 -0
  123. package/dist/src/modular/serialization/serialize-utils.d.ts.map +1 -0
  124. package/dist/src/modular/serialization/serialize-utils.js +145 -0
  125. package/dist/src/modular/serialization/serialize-utils.js.map +1 -0
  126. package/dist/src/modular/type-expressions/get-credential-expression.js +1 -1
  127. package/dist/src/modular/type-expressions/get-credential-expression.js.map +1 -1
  128. package/dist/src/modular/type-expressions/get-model-expression.js +1 -1
  129. package/dist/src/modular/type-expressions/get-model-expression.js.map +1 -1
  130. package/dist/src/rlc-common/build-client-definitions.d.ts +6 -0
  131. package/dist/src/rlc-common/build-client-definitions.d.ts.map +1 -0
  132. package/dist/src/rlc-common/build-client-definitions.js +157 -0
  133. package/dist/src/rlc-common/build-client-definitions.js.map +1 -0
  134. package/dist/src/rlc-common/build-client.d.ts +9 -0
  135. package/dist/src/rlc-common/build-client.d.ts.map +1 -0
  136. package/dist/src/rlc-common/build-client.js +391 -0
  137. package/dist/src/rlc-common/build-client.js.map +1 -0
  138. package/dist/src/rlc-common/build-index-file.d.ts +6 -0
  139. package/dist/src/rlc-common/build-index-file.d.ts.map +1 -0
  140. package/dist/src/rlc-common/build-index-file.js +241 -0
  141. package/dist/src/rlc-common/build-index-file.js.map +1 -0
  142. package/dist/src/rlc-common/build-is-unexpected-helper.d.ts +6 -0
  143. package/dist/src/rlc-common/build-is-unexpected-helper.d.ts.map +1 -0
  144. package/dist/src/rlc-common/build-is-unexpected-helper.js +223 -0
  145. package/dist/src/rlc-common/build-is-unexpected-helper.js.map +1 -0
  146. package/dist/src/rlc-common/build-logger.d.ts +6 -0
  147. package/dist/src/rlc-common/build-logger.d.ts.map +1 -0
  148. package/dist/src/rlc-common/build-logger.js +31 -0
  149. package/dist/src/rlc-common/build-logger.js.map +1 -0
  150. package/dist/src/rlc-common/build-method-shortcuts.d.ts +5 -0
  151. package/dist/src/rlc-common/build-method-shortcuts.d.ts.map +1 -0
  152. package/dist/src/rlc-common/build-method-shortcuts.js +54 -0
  153. package/dist/src/rlc-common/build-method-shortcuts.js.map +1 -0
  154. package/dist/src/rlc-common/build-object-types.d.ts +29 -0
  155. package/dist/src/rlc-common/build-object-types.d.ts.map +1 -0
  156. package/dist/src/rlc-common/build-object-types.js +412 -0
  157. package/dist/src/rlc-common/build-object-types.js.map +1 -0
  158. package/dist/src/rlc-common/build-paginate-helper.d.ts +6 -0
  159. package/dist/src/rlc-common/build-paginate-helper.d.ts.map +1 -0
  160. package/dist/src/rlc-common/build-paginate-helper.js +27 -0
  161. package/dist/src/rlc-common/build-paginate-helper.js.map +1 -0
  162. package/dist/src/rlc-common/build-parameter-types.d.ts +14 -0
  163. package/dist/src/rlc-common/build-parameter-types.d.ts.map +1 -0
  164. package/dist/src/rlc-common/build-parameter-types.js +391 -0
  165. package/dist/src/rlc-common/build-parameter-types.js.map +1 -0
  166. package/dist/src/rlc-common/build-polling-helper.d.ts +6 -0
  167. package/dist/src/rlc-common/build-polling-helper.d.ts.map +1 -0
  168. package/dist/src/rlc-common/build-polling-helper.js +61 -0
  169. package/dist/src/rlc-common/build-polling-helper.js.map +1 -0
  170. package/dist/src/rlc-common/build-response-types.d.ts +6 -0
  171. package/dist/src/rlc-common/build-response-types.d.ts.map +1 -0
  172. package/dist/src/rlc-common/build-response-types.js +143 -0
  173. package/dist/src/rlc-common/build-response-types.js.map +1 -0
  174. package/dist/src/rlc-common/build-samples.d.ts +3 -0
  175. package/dist/src/rlc-common/build-samples.d.ts.map +1 -0
  176. package/dist/src/rlc-common/build-samples.js +30 -0
  177. package/dist/src/rlc-common/build-samples.js.map +1 -0
  178. package/dist/src/rlc-common/build-schema-type.d.ts +20 -0
  179. package/dist/src/rlc-common/build-schema-type.d.ts.map +1 -0
  180. package/dist/src/rlc-common/build-schema-type.js +71 -0
  181. package/dist/src/rlc-common/build-schema-type.js.map +1 -0
  182. package/dist/src/rlc-common/build-serialize-helper.d.ts +6 -0
  183. package/dist/src/rlc-common/build-serialize-helper.d.ts.map +1 -0
  184. package/dist/src/rlc-common/build-serialize-helper.js +36 -0
  185. package/dist/src/rlc-common/build-serialize-helper.js.map +1 -0
  186. package/dist/src/rlc-common/build-top-level-index-file.d.ts +6 -0
  187. package/dist/src/rlc-common/build-top-level-index-file.d.ts.map +1 -0
  188. package/dist/src/rlc-common/build-top-level-index-file.js +48 -0
  189. package/dist/src/rlc-common/build-top-level-index-file.js.map +1 -0
  190. package/dist/src/rlc-common/helpers/api-version-util.d.ts +17 -0
  191. package/dist/src/rlc-common/helpers/api-version-util.d.ts.map +1 -0
  192. package/dist/src/rlc-common/helpers/api-version-util.js +43 -0
  193. package/dist/src/rlc-common/helpers/api-version-util.js.map +1 -0
  194. package/dist/src/rlc-common/helpers/imports-util.d.ts +18 -0
  195. package/dist/src/rlc-common/helpers/imports-util.d.ts.map +1 -0
  196. package/dist/src/rlc-common/helpers/imports-util.js +164 -0
  197. package/dist/src/rlc-common/helpers/imports-util.js.map +1 -0
  198. package/dist/src/rlc-common/helpers/name-constructors.d.ts +42 -0
  199. package/dist/src/rlc-common/helpers/name-constructors.d.ts.map +1 -0
  200. package/dist/src/rlc-common/helpers/name-constructors.js +61 -0
  201. package/dist/src/rlc-common/helpers/name-constructors.js.map +1 -0
  202. package/dist/src/rlc-common/helpers/name-utils.d.ts +37 -0
  203. package/dist/src/rlc-common/helpers/name-utils.d.ts.map +1 -0
  204. package/dist/src/rlc-common/helpers/name-utils.js +240 -0
  205. package/dist/src/rlc-common/helpers/name-utils.js.map +1 -0
  206. package/dist/src/rlc-common/helpers/operation-helpers.d.ts +16 -0
  207. package/dist/src/rlc-common/helpers/operation-helpers.d.ts.map +1 -0
  208. package/dist/src/rlc-common/helpers/operation-helpers.js +104 -0
  209. package/dist/src/rlc-common/helpers/operation-helpers.js.map +1 -0
  210. package/dist/src/rlc-common/helpers/package-util.d.ts +7 -0
  211. package/dist/src/rlc-common/helpers/package-util.d.ts.map +1 -0
  212. package/dist/src/rlc-common/helpers/package-util.js +10 -0
  213. package/dist/src/rlc-common/helpers/package-util.js.map +1 -0
  214. package/dist/src/rlc-common/helpers/path-utils.d.ts +2 -0
  215. package/dist/src/rlc-common/helpers/path-utils.d.ts.map +1 -0
  216. package/dist/src/rlc-common/helpers/path-utils.js +10 -0
  217. package/dist/src/rlc-common/helpers/path-utils.js.map +1 -0
  218. package/dist/src/rlc-common/helpers/schema-helpers.d.ts +10 -0
  219. package/dist/src/rlc-common/helpers/schema-helpers.d.ts.map +1 -0
  220. package/dist/src/rlc-common/helpers/schema-helpers.js +37 -0
  221. package/dist/src/rlc-common/helpers/schema-helpers.js.map +1 -0
  222. package/dist/src/rlc-common/helpers/shortcut-methods.d.ts +4 -0
  223. package/dist/src/rlc-common/helpers/shortcut-methods.d.ts.map +1 -0
  224. package/dist/src/rlc-common/helpers/shortcut-methods.js +49 -0
  225. package/dist/src/rlc-common/helpers/shortcut-methods.js.map +1 -0
  226. package/dist/src/rlc-common/helpers/type-util.d.ts +32 -0
  227. package/dist/src/rlc-common/helpers/type-util.d.ts.map +1 -0
  228. package/dist/src/rlc-common/helpers/type-util.js +162 -0
  229. package/dist/src/rlc-common/helpers/type-util.js.map +1 -0
  230. package/dist/src/rlc-common/helpers/value-generation-util.d.ts +12 -0
  231. package/dist/src/rlc-common/helpers/value-generation-util.d.ts.map +1 -0
  232. package/dist/src/rlc-common/helpers/value-generation-util.js +161 -0
  233. package/dist/src/rlc-common/helpers/value-generation-util.js.map +1 -0
  234. package/dist/src/rlc-common/index.d.ts +39 -39
  235. package/dist/src/rlc-common/index.d.ts.map +1 -1
  236. package/dist/src/rlc-common/index.js +39 -39
  237. package/dist/src/rlc-common/index.js.map +1 -1
  238. package/dist/src/rlc-common/metadata/build-api-extractor-config.d.ts +6 -0
  239. package/dist/src/rlc-common/metadata/build-api-extractor-config.d.ts.map +1 -0
  240. package/dist/src/rlc-common/metadata/build-api-extractor-config.js +55 -0
  241. package/dist/src/rlc-common/metadata/build-api-extractor-config.js.map +1 -0
  242. package/dist/src/rlc-common/metadata/build-changelog-file.d.ts +6 -0
  243. package/dist/src/rlc-common/metadata/build-changelog-file.d.ts.map +1 -0
  244. package/dist/src/rlc-common/metadata/build-changelog-file.js +25 -0
  245. package/dist/src/rlc-common/metadata/build-changelog-file.js.map +1 -0
  246. package/dist/src/rlc-common/metadata/build-es-lint-config.d.ts +6 -0
  247. package/dist/src/rlc-common/metadata/build-es-lint-config.d.ts.map +1 -0
  248. package/dist/src/rlc-common/metadata/build-es-lint-config.js +79 -0
  249. package/dist/src/rlc-common/metadata/build-es-lint-config.js.map +1 -0
  250. package/dist/src/rlc-common/metadata/build-license-file.d.ts +5 -0
  251. package/dist/src/rlc-common/metadata/build-license-file.d.ts.map +1 -0
  252. package/dist/src/rlc-common/metadata/build-license-file.js +32 -0
  253. package/dist/src/rlc-common/metadata/build-license-file.js.map +1 -0
  254. package/dist/src/rlc-common/metadata/build-package-file.d.ts +25 -0
  255. package/dist/src/rlc-common/metadata/build-package-file.d.ts.map +1 -0
  256. package/dist/src/rlc-common/metadata/build-package-file.js +197 -0
  257. package/dist/src/rlc-common/metadata/build-package-file.js.map +1 -0
  258. package/dist/src/rlc-common/metadata/build-readme-file.d.ts +11 -0
  259. package/dist/src/rlc-common/metadata/build-readme-file.d.ts.map +1 -0
  260. package/dist/src/rlc-common/metadata/build-readme-file.js +418 -0
  261. package/dist/src/rlc-common/metadata/build-readme-file.js.map +1 -0
  262. package/dist/src/rlc-common/metadata/build-rollup-config.d.ts +6 -0
  263. package/dist/src/rlc-common/metadata/build-rollup-config.d.ts.map +1 -0
  264. package/dist/src/rlc-common/metadata/build-rollup-config.js +140 -0
  265. package/dist/src/rlc-common/metadata/build-rollup-config.js.map +1 -0
  266. package/dist/src/rlc-common/metadata/build-sample-env-file.d.ts +6 -0
  267. package/dist/src/rlc-common/metadata/build-sample-env-file.d.ts.map +1 -0
  268. package/dist/src/rlc-common/metadata/build-sample-env-file.js +15 -0
  269. package/dist/src/rlc-common/metadata/build-sample-env-file.js.map +1 -0
  270. package/dist/src/rlc-common/metadata/build-test-config.d.ts +16 -0
  271. package/dist/src/rlc-common/metadata/build-test-config.d.ts.map +1 -0
  272. package/dist/src/rlc-common/metadata/build-test-config.js +54 -0
  273. package/dist/src/rlc-common/metadata/build-test-config.js.map +1 -0
  274. package/dist/src/rlc-common/metadata/build-ts-config.d.ts +61 -0
  275. package/dist/src/rlc-common/metadata/build-ts-config.d.ts.map +1 -0
  276. package/dist/src/rlc-common/metadata/build-ts-config.js +170 -0
  277. package/dist/src/rlc-common/metadata/build-ts-config.js.map +1 -0
  278. package/dist/src/rlc-common/metadata/build-vitest-config.d.ts +6 -0
  279. package/dist/src/rlc-common/metadata/build-vitest-config.d.ts.map +1 -0
  280. package/dist/src/rlc-common/metadata/build-vitest-config.js +26 -0
  281. package/dist/src/rlc-common/metadata/build-vitest-config.js.map +1 -0
  282. package/dist/src/rlc-common/metadata/build-warp-config.d.ts +20 -0
  283. package/dist/src/rlc-common/metadata/build-warp-config.d.ts.map +1 -0
  284. package/dist/src/rlc-common/metadata/build-warp-config.js +76 -0
  285. package/dist/src/rlc-common/metadata/build-warp-config.js.map +1 -0
  286. package/dist/src/rlc-common/metadata/package-json/azure-package-common.d.ts +51 -0
  287. package/dist/src/rlc-common/metadata/package-json/azure-package-common.d.ts.map +1 -0
  288. package/dist/src/rlc-common/metadata/package-json/azure-package-common.js +121 -0
  289. package/dist/src/rlc-common/metadata/package-json/azure-package-common.js.map +1 -0
  290. package/dist/src/rlc-common/metadata/package-json/build-azure-monorepo-package.d.ts +242 -0
  291. package/dist/src/rlc-common/metadata/package-json/build-azure-monorepo-package.d.ts.map +1 -0
  292. package/dist/src/rlc-common/metadata/package-json/build-azure-monorepo-package.js +171 -0
  293. package/dist/src/rlc-common/metadata/package-json/build-azure-monorepo-package.js.map +1 -0
  294. package/dist/src/rlc-common/metadata/package-json/build-azure-standalone-package.d.ts +8 -0
  295. package/dist/src/rlc-common/metadata/package-json/build-azure-standalone-package.d.ts.map +1 -0
  296. package/dist/src/rlc-common/metadata/package-json/build-azure-standalone-package.js +101 -0
  297. package/dist/src/rlc-common/metadata/package-json/build-azure-standalone-package.js.map +1 -0
  298. package/dist/src/rlc-common/metadata/package-json/build-flavorless-package.d.ts +57 -0
  299. package/dist/src/rlc-common/metadata/package-json/build-flavorless-package.d.ts.map +1 -0
  300. package/dist/src/rlc-common/metadata/package-json/build-flavorless-package.js +53 -0
  301. package/dist/src/rlc-common/metadata/package-json/build-flavorless-package.js.map +1 -0
  302. package/dist/src/rlc-common/metadata/package-json/package-common.d.ts +64 -0
  303. package/dist/src/rlc-common/metadata/package-json/package-common.d.ts.map +1 -0
  304. package/dist/src/rlc-common/metadata/package-json/package-common.js +180 -0
  305. package/dist/src/rlc-common/metadata/package-json/package-common.js.map +1 -0
  306. package/dist/src/rlc-common/static/paginate-content.d.ts +2 -0
  307. package/dist/src/rlc-common/static/paginate-content.d.ts.map +1 -0
  308. package/dist/src/rlc-common/static/paginate-content.js +345 -0
  309. package/dist/src/rlc-common/static/paginate-content.js.map +1 -0
  310. package/dist/src/rlc-common/static/polling-content.d.ts +2 -0
  311. package/dist/src/rlc-common/static/polling-content.d.ts.map +1 -0
  312. package/dist/src/rlc-common/static/polling-content.js +225 -0
  313. package/dist/src/rlc-common/static/polling-content.js.map +1 -0
  314. package/dist/src/rlc-common/static/sample-template.d.ts +2 -0
  315. package/dist/src/rlc-common/static/sample-template.d.ts.map +1 -0
  316. package/dist/src/rlc-common/static/sample-template.js +56 -0
  317. package/dist/src/rlc-common/static/sample-template.js.map +1 -0
  318. package/dist/src/rlc-common/static/serialize-helper.d.ts +6 -0
  319. package/dist/src/rlc-common/static/serialize-helper.d.ts.map +1 -0
  320. package/dist/src/rlc-common/static/serialize-helper.js +31 -0
  321. package/dist/src/rlc-common/static/serialize-helper.js.map +1 -0
  322. package/dist/src/rlc-common/test/build-karma-config.d.ts +6 -0
  323. package/dist/src/rlc-common/test/build-karma-config.d.ts.map +1 -0
  324. package/dist/src/rlc-common/test/build-karma-config.js +11 -0
  325. package/dist/src/rlc-common/test/build-karma-config.js.map +1 -0
  326. package/dist/src/rlc-common/test/build-recorded-client.d.ts +6 -0
  327. package/dist/src/rlc-common/test/build-recorded-client.d.ts.map +1 -0
  328. package/dist/src/rlc-common/test/build-recorded-client.js +17 -0
  329. package/dist/src/rlc-common/test/build-recorded-client.js.map +1 -0
  330. package/dist/src/rlc-common/test/build-sample-test.d.ts +6 -0
  331. package/dist/src/rlc-common/test/build-sample-test.d.ts.map +1 -0
  332. package/dist/src/rlc-common/test/build-sample-test.js +14 -0
  333. package/dist/src/rlc-common/test/build-sample-test.js.map +1 -0
  334. package/dist/src/rlc-common/test/build-snippets.d.ts +6 -0
  335. package/dist/src/rlc-common/test/build-snippets.d.ts.map +1 -0
  336. package/dist/src/rlc-common/test/build-snippets.js +26 -0
  337. package/dist/src/rlc-common/test/build-snippets.js.map +1 -0
  338. package/dist/src/rlc-common/transform-sample-groups.d.ts +9 -0
  339. package/dist/src/rlc-common/transform-sample-groups.d.ts.map +1 -0
  340. package/dist/src/rlc-common/transform-sample-groups.js +313 -0
  341. package/dist/src/rlc-common/transform-sample-groups.js.map +1 -0
  342. package/dist/src/transform/transform-api-version-info.d.ts +6 -0
  343. package/dist/src/transform/transform-api-version-info.d.ts.map +1 -0
  344. package/dist/src/transform/transform-api-version-info.js +78 -0
  345. package/dist/src/transform/transform-api-version-info.js.map +1 -0
  346. package/dist/src/transform/transform-helper-function-details.d.ts +5 -0
  347. package/dist/src/transform/transform-helper-function-details.d.ts.map +1 -0
  348. package/dist/src/transform/transform-helper-function-details.js +74 -0
  349. package/dist/src/transform/transform-helper-function-details.js.map +1 -0
  350. package/dist/src/transform/transform-parameters.d.ts +14 -0
  351. package/dist/src/transform/transform-parameters.d.ts.map +1 -0
  352. package/dist/src/transform/transform-parameters.js +201 -0
  353. package/dist/src/transform/transform-parameters.js.map +1 -0
  354. package/dist/src/transform/transform-paths.d.ts +5 -0
  355. package/dist/src/transform/transform-paths.d.ts.map +1 -0
  356. package/dist/src/transform/transform-paths.js +102 -0
  357. package/dist/src/transform/transform-paths.js.map +1 -0
  358. package/dist/src/transform/transform-responses.d.ts +5 -0
  359. package/dist/src/transform/transform-responses.d.ts.map +1 -0
  360. package/dist/src/transform/transform-responses.js +171 -0
  361. package/dist/src/transform/transform-responses.js.map +1 -0
  362. package/dist/src/transform/transform-schemas.d.ts +4 -0
  363. package/dist/src/transform/transform-schemas.d.ts.map +1 -0
  364. package/dist/src/transform/transform-schemas.js +191 -0
  365. package/dist/src/transform/transform-schemas.js.map +1 -0
  366. package/dist/src/transform/transform-telemetry-info.d.ts +4 -0
  367. package/dist/src/transform/transform-telemetry-info.d.ts.map +1 -0
  368. package/dist/src/transform/transform-telemetry-info.js +22 -0
  369. package/dist/src/transform/transform-telemetry-info.js.map +1 -0
  370. package/dist/src/transform/transform.js +10 -10
  371. package/dist/src/transform/transform.js.map +1 -1
  372. package/dist/src/transform/transfrom-rlc-options.d.ts +14 -0
  373. package/dist/src/transform/transfrom-rlc-options.d.ts.map +1 -0
  374. package/dist/src/transform/transfrom-rlc-options.js +369 -0
  375. package/dist/src/transform/transfrom-rlc-options.js.map +1 -0
  376. package/dist/src/utils/client-utils.d.ts +10 -0
  377. package/dist/src/utils/client-utils.d.ts.map +1 -0
  378. package/dist/src/utils/client-utils.js +124 -0
  379. package/dist/src/utils/client-utils.js.map +1 -0
  380. package/dist/src/utils/credential-utils.d.ts +15 -0
  381. package/dist/src/utils/credential-utils.d.ts.map +1 -0
  382. package/dist/src/utils/credential-utils.js +68 -0
  383. package/dist/src/utils/credential-utils.js.map +1 -0
  384. package/dist/src/utils/cross-language-def.d.ts +6 -0
  385. package/dist/src/utils/cross-language-def.d.ts.map +1 -0
  386. package/dist/src/utils/cross-language-def.js +59 -0
  387. package/dist/src/utils/cross-language-def.js.map +1 -0
  388. package/dist/src/utils/emit-util.d.ts +5 -0
  389. package/dist/src/utils/emit-util.d.ts.map +1 -0
  390. package/dist/src/utils/emit-util.js +71 -0
  391. package/dist/src/utils/emit-util.js.map +1 -0
  392. package/dist/src/utils/file-system-utils.d.ts +5 -0
  393. package/dist/src/utils/file-system-utils.d.ts.map +1 -0
  394. package/dist/src/utils/file-system-utils.js +59 -0
  395. package/dist/src/utils/file-system-utils.js.map +1 -0
  396. package/dist/src/utils/import-helper.d.ts +10 -0
  397. package/dist/src/utils/import-helper.d.ts.map +1 -0
  398. package/dist/src/utils/import-helper.js +51 -0
  399. package/dist/src/utils/import-helper.js.map +1 -0
  400. package/dist/src/utils/interfaces.d.ts +1 -1
  401. package/dist/src/utils/interfaces.d.ts.map +1 -1
  402. package/dist/src/utils/media-types.d.ts +28 -0
  403. package/dist/src/utils/media-types.d.ts.map +1 -0
  404. package/dist/src/utils/media-types.js +124 -0
  405. package/dist/src/utils/media-types.js.map +1 -0
  406. package/dist/src/utils/model-utils.d.ts +60 -0
  407. package/dist/src/utils/model-utils.d.ts.map +1 -0
  408. package/dist/src/utils/model-utils.js +1480 -0
  409. package/dist/src/utils/model-utils.js.map +1 -0
  410. package/dist/src/utils/namespace-utils.d.ts +6 -0
  411. package/dist/src/utils/namespace-utils.d.ts.map +1 -0
  412. package/dist/src/utils/namespace-utils.js +69 -0
  413. package/dist/src/utils/namespace-utils.js.map +1 -0
  414. package/dist/src/utils/operation-util.d.ts +97 -0
  415. package/dist/src/utils/operation-util.d.ts.map +1 -0
  416. package/dist/src/utils/operation-util.js +547 -0
  417. package/dist/src/utils/operation-util.js.map +1 -0
  418. package/dist/src/utils/parameter-utils.d.ts +9 -0
  419. package/dist/src/utils/parameter-utils.d.ts.map +1 -0
  420. package/dist/src/utils/parameter-utils.js +147 -0
  421. package/dist/src/utils/parameter-utils.js.map +1 -0
  422. package/dist/tsconfig.tsbuildinfo +1 -1
  423. package/package.json +24 -28
  424. package/src/context-manager.ts +101 -0
  425. package/src/framework/hooks/binder.ts +3 -3
  426. package/src/framework/hooks/sdk-types.ts +219 -0
  427. package/src/framework/hooks/use-dependencies.ts +16 -0
  428. package/src/index.ts +23 -23
  429. package/src/modular/build-classical-client.ts +434 -0
  430. package/src/modular/build-classical-operation-groups.ts +69 -0
  431. package/src/modular/build-client-context.ts +325 -0
  432. package/src/modular/build-operations.ts +248 -0
  433. package/src/modular/build-project-files.ts +111 -0
  434. package/src/modular/build-restore-poller.ts +242 -0
  435. package/src/modular/build-root-index.ts +407 -0
  436. package/src/modular/build-subpath-index.ts +152 -0
  437. package/src/modular/emit-logger-file.ts +23 -0
  438. package/src/modular/emit-models-options.ts +56 -0
  439. package/src/modular/emit-models.ts +1096 -0
  440. package/src/modular/emit-samples.ts +675 -0
  441. package/src/modular/emit-tests.ts +194 -0
  442. package/src/modular/helpers/classical-operation-helpers.ts +375 -0
  443. package/src/modular/helpers/client-helpers.ts +362 -0
  444. package/src/modular/helpers/example-value-helpers.ts +851 -0
  445. package/src/modular/helpers/naming-helpers.ts +84 -0
  446. package/src/modular/helpers/operation-helpers.ts +3035 -0
  447. package/src/modular/helpers/type-helpers.ts +134 -0
  448. package/src/modular/serialization/build-deserializer-function.ts +564 -0
  449. package/src/modular/serialization/build-serializer-function.ts +614 -0
  450. package/src/modular/serialization/build-xml-serializer-function.ts +951 -0
  451. package/src/modular/serialization/serialize-utils.ts +217 -0
  452. package/src/modular/type-expressions/get-credential-expression.ts +1 -1
  453. package/src/modular/type-expressions/get-model-expression.ts +1 -1
  454. package/src/rlc-common/build-client-definitions.ts +235 -0
  455. package/src/rlc-common/build-client.ts +490 -0
  456. package/src/rlc-common/build-index-file.ts +344 -0
  457. package/src/rlc-common/build-is-unexpected-helper.ts +248 -0
  458. package/src/rlc-common/build-logger.ts +43 -0
  459. package/src/rlc-common/build-method-shortcuts.ts +71 -0
  460. package/src/rlc-common/build-object-types.ts +603 -0
  461. package/src/rlc-common/build-paginate-helper.ts +31 -0
  462. package/src/rlc-common/build-parameter-types.ts +554 -0
  463. package/src/rlc-common/build-polling-helper.ts +83 -0
  464. package/src/rlc-common/build-response-types.ts +180 -0
  465. package/src/rlc-common/build-samples.ts +32 -0
  466. package/src/rlc-common/build-schema-type.ts +89 -0
  467. package/src/rlc-common/build-serialize-helper.ts +49 -0
  468. package/src/rlc-common/build-top-level-index-file.ts +58 -0
  469. package/src/rlc-common/helpers/name-constructors.ts +110 -0
  470. package/src/rlc-common/helpers/operation-helpers.ts +138 -0
  471. package/src/rlc-common/helpers/shortcut-methods.ts +58 -0
  472. package/src/rlc-common/helpers/value-generation-util.ts +234 -0
  473. package/src/rlc-common/index.ts +39 -39
  474. package/src/rlc-common/metadata/build-package-file.ts +242 -0
  475. package/src/rlc-common/metadata/build-readme-file.ts +515 -0
  476. package/src/rlc-common/metadata/build-rollup-config.ts +147 -0
  477. package/src/rlc-common/metadata/package-json/azure-package-common.ts +152 -0
  478. package/src/rlc-common/metadata/package-json/build-azure-monorepo-package.ts +199 -0
  479. package/src/rlc-common/metadata/package-json/build-azure-standalone-package.ts +123 -0
  480. package/src/rlc-common/metadata/package-json/build-flavorless-package.ts +68 -0
  481. package/src/rlc-common/test/build-snippets.ts +29 -0
  482. package/src/rlc-common/transform-sample-groups.ts +407 -0
  483. package/src/transform/transform-api-version-info.ts +103 -0
  484. package/src/transform/transform-helper-function-details.ts +88 -0
  485. package/src/transform/transform-parameters.ts +321 -0
  486. package/src/transform/transform-paths.ts +157 -0
  487. package/src/transform/transform-responses.ts +237 -0
  488. package/src/transform/transform-schemas.ts +212 -0
  489. package/src/transform/transform-telemetry-info.ts +33 -0
  490. package/src/transform/transform.ts +10 -10
  491. package/src/transform/transfrom-rlc-options.ts +461 -0
  492. package/src/utils/cross-language-def.ts +66 -0
  493. package/src/utils/import-helper.ts +59 -0
  494. package/src/utils/interfaces.ts +1 -1
  495. package/src/utils/model-utils.ts +1727 -0
  496. package/src/utils/operation-util.ts +763 -0
  497. package/src/utils/parameter-utils.ts +192 -0
  498. package/static/static-helpers/serialization/serializers.ts +1 -0
  499. package/dist/src/contextManager.d.ts +0 -75
  500. package/dist/src/contextManager.d.ts.map +0 -1
  501. package/dist/src/contextManager.js +0 -59
  502. package/dist/src/contextManager.js.map +0 -1
  503. package/dist/src/framework/hooks/sdkTypes.d.ts +0 -26
  504. package/dist/src/framework/hooks/sdkTypes.d.ts.map +0 -1
  505. package/dist/src/framework/hooks/sdkTypes.js +0 -157
  506. package/dist/src/framework/hooks/sdkTypes.js.map +0 -1
  507. package/dist/src/framework/hooks/useDependencies.d.ts +0 -4
  508. package/dist/src/framework/hooks/useDependencies.d.ts.map +0 -1
  509. package/dist/src/framework/hooks/useDependencies.js +0 -13
  510. package/dist/src/framework/hooks/useDependencies.js.map +0 -1
  511. package/dist/src/metaTree.d.ts +0 -7
  512. package/dist/src/metaTree.d.ts.map +0 -1
  513. package/dist/src/metaTree.js +0 -2
  514. package/dist/src/metaTree.js.map +0 -1
  515. package/dist/src/modular/buildClassicalClient.d.ts +0 -6
  516. package/dist/src/modular/buildClassicalClient.d.ts.map +0 -1
  517. package/dist/src/modular/buildClassicalClient.js +0 -345
  518. package/dist/src/modular/buildClassicalClient.js.map +0 -1
  519. package/dist/src/modular/buildClassicalOperationGroups.d.ts +0 -6
  520. package/dist/src/modular/buildClassicalOperationGroups.d.ts.map +0 -1
  521. package/dist/src/modular/buildClassicalOperationGroups.js +0 -48
  522. package/dist/src/modular/buildClassicalOperationGroups.js.map +0 -1
  523. package/dist/src/modular/buildClientContext.d.ts +0 -13
  524. package/dist/src/modular/buildClientContext.d.ts.map +0 -1
  525. package/dist/src/modular/buildClientContext.js +0 -246
  526. package/dist/src/modular/buildClientContext.js.map +0 -1
  527. package/dist/src/modular/buildModularOptions.d.ts +0 -6
  528. package/dist/src/modular/buildModularOptions.d.ts.map +0 -1
  529. package/dist/src/modular/buildModularOptions.js +0 -14
  530. package/dist/src/modular/buildModularOptions.js.map +0 -1
  531. package/dist/src/modular/buildOperations.d.ts +0 -21
  532. package/dist/src/modular/buildOperations.d.ts.map +0 -1
  533. package/dist/src/modular/buildOperations.js +0 -172
  534. package/dist/src/modular/buildOperations.js.map +0 -1
  535. package/dist/src/modular/buildProjectFiles.d.ts +0 -4
  536. package/dist/src/modular/buildProjectFiles.d.ts.map +0 -1
  537. package/dist/src/modular/buildProjectFiles.js +0 -91
  538. package/dist/src/modular/buildProjectFiles.js.map +0 -1
  539. package/dist/src/modular/buildRestorePoller.d.ts +0 -5
  540. package/dist/src/modular/buildRestorePoller.d.ts.map +0 -1
  541. package/dist/src/modular/buildRestorePoller.js +0 -216
  542. package/dist/src/modular/buildRestorePoller.js.map +0 -1
  543. package/dist/src/modular/buildRootIndex.d.ts +0 -13
  544. package/dist/src/modular/buildRootIndex.d.ts.map +0 -1
  545. package/dist/src/modular/buildRootIndex.js +0 -279
  546. package/dist/src/modular/buildRootIndex.js.map +0 -1
  547. package/dist/src/modular/buildSubpathIndex.d.ts +0 -16
  548. package/dist/src/modular/buildSubpathIndex.d.ts.map +0 -1
  549. package/dist/src/modular/buildSubpathIndex.js +0 -119
  550. package/dist/src/modular/buildSubpathIndex.js.map +0 -1
  551. package/dist/src/modular/emitLoggerFile.d.ts +0 -3
  552. package/dist/src/modular/emitLoggerFile.d.ts.map +0 -1
  553. package/dist/src/modular/emitLoggerFile.js +0 -18
  554. package/dist/src/modular/emitLoggerFile.js.map +0 -1
  555. package/dist/src/modular/emitModels.d.ts +0 -23
  556. package/dist/src/modular/emitModels.d.ts.map +0 -1
  557. package/dist/src/modular/emitModels.js +0 -850
  558. package/dist/src/modular/emitModels.js.map +0 -1
  559. package/dist/src/modular/emitModelsOptions.d.ts +0 -5
  560. package/dist/src/modular/emitModelsOptions.d.ts.map +0 -1
  561. package/dist/src/modular/emitModelsOptions.js +0 -35
  562. package/dist/src/modular/emitModelsOptions.js.map +0 -1
  563. package/dist/src/modular/emitSamples.d.ts +0 -7
  564. package/dist/src/modular/emitSamples.d.ts.map +0 -1
  565. package/dist/src/modular/emitSamples.js +0 -500
  566. package/dist/src/modular/emitSamples.js.map +0 -1
  567. package/dist/src/modular/emitTests.d.ts +0 -7
  568. package/dist/src/modular/emitTests.d.ts.map +0 -1
  569. package/dist/src/modular/emitTests.js +0 -155
  570. package/dist/src/modular/emitTests.js.map +0 -1
  571. package/dist/src/modular/helpers/classicalOperationHelpers.d.ts +0 -7
  572. package/dist/src/modular/helpers/classicalOperationHelpers.d.ts.map +0 -1
  573. package/dist/src/modular/helpers/classicalOperationHelpers.js +0 -258
  574. package/dist/src/modular/helpers/classicalOperationHelpers.js.map +0 -1
  575. package/dist/src/modular/helpers/clientHelpers.d.ts +0 -34
  576. package/dist/src/modular/helpers/clientHelpers.d.ts.map +0 -1
  577. package/dist/src/modular/helpers/clientHelpers.js +0 -259
  578. package/dist/src/modular/helpers/clientHelpers.js.map +0 -1
  579. package/dist/src/modular/helpers/clientOptionHelpers.d.ts +0 -43
  580. package/dist/src/modular/helpers/clientOptionHelpers.d.ts.map +0 -1
  581. package/dist/src/modular/helpers/clientOptionHelpers.js +0 -103
  582. package/dist/src/modular/helpers/clientOptionHelpers.js.map +0 -1
  583. package/dist/src/modular/helpers/docsHelpers.d.ts +0 -3
  584. package/dist/src/modular/helpers/docsHelpers.d.ts.map +0 -1
  585. package/dist/src/modular/helpers/docsHelpers.js +0 -10
  586. package/dist/src/modular/helpers/docsHelpers.js.map +0 -1
  587. package/dist/src/modular/helpers/exampleValueHelpers.d.ts +0 -83
  588. package/dist/src/modular/helpers/exampleValueHelpers.d.ts.map +0 -1
  589. package/dist/src/modular/helpers/exampleValueHelpers.js +0 -639
  590. package/dist/src/modular/helpers/exampleValueHelpers.js.map +0 -1
  591. package/dist/src/modular/helpers/namingHelpers.d.ts +0 -22
  592. package/dist/src/modular/helpers/namingHelpers.d.ts.map +0 -1
  593. package/dist/src/modular/helpers/namingHelpers.js +0 -59
  594. package/dist/src/modular/helpers/namingHelpers.js.map +0 -1
  595. package/dist/src/modular/helpers/operationHelpers.d.ts +0 -105
  596. package/dist/src/modular/helpers/operationHelpers.d.ts.map +0 -1
  597. package/dist/src/modular/helpers/operationHelpers.js +0 -2328
  598. package/dist/src/modular/helpers/operationHelpers.js.map +0 -1
  599. package/dist/src/modular/helpers/typeHelpers.d.ts +0 -22
  600. package/dist/src/modular/helpers/typeHelpers.d.ts.map +0 -1
  601. package/dist/src/modular/helpers/typeHelpers.js +0 -94
  602. package/dist/src/modular/helpers/typeHelpers.js.map +0 -1
  603. package/dist/src/modular/serialization/buildDeserializerFunction.d.ts +0 -7
  604. package/dist/src/modular/serialization/buildDeserializerFunction.d.ts.map +0 -1
  605. package/dist/src/modular/serialization/buildDeserializerFunction.js +0 -401
  606. package/dist/src/modular/serialization/buildDeserializerFunction.js.map +0 -1
  607. package/dist/src/modular/serialization/buildSerializerFunction.d.ts +0 -7
  608. package/dist/src/modular/serialization/buildSerializerFunction.d.ts.map +0 -1
  609. package/dist/src/modular/serialization/buildSerializerFunction.js +0 -444
  610. package/dist/src/modular/serialization/buildSerializerFunction.js.map +0 -1
  611. package/dist/src/modular/serialization/buildXmlSerializerFunction.d.ts +0 -44
  612. package/dist/src/modular/serialization/buildXmlSerializerFunction.d.ts.map +0 -1
  613. package/dist/src/modular/serialization/buildXmlSerializerFunction.js +0 -729
  614. package/dist/src/modular/serialization/buildXmlSerializerFunction.js.map +0 -1
  615. package/dist/src/modular/serialization/serializeUtils.d.ts +0 -37
  616. package/dist/src/modular/serialization/serializeUtils.d.ts.map +0 -1
  617. package/dist/src/modular/serialization/serializeUtils.js +0 -145
  618. package/dist/src/modular/serialization/serializeUtils.js.map +0 -1
  619. package/dist/src/rlc-common/buildClient.d.ts +0 -9
  620. package/dist/src/rlc-common/buildClient.d.ts.map +0 -1
  621. package/dist/src/rlc-common/buildClient.js +0 -391
  622. package/dist/src/rlc-common/buildClient.js.map +0 -1
  623. package/dist/src/rlc-common/buildClientDefinitions.d.ts +0 -6
  624. package/dist/src/rlc-common/buildClientDefinitions.d.ts.map +0 -1
  625. package/dist/src/rlc-common/buildClientDefinitions.js +0 -157
  626. package/dist/src/rlc-common/buildClientDefinitions.js.map +0 -1
  627. package/dist/src/rlc-common/buildIndexFile.d.ts +0 -6
  628. package/dist/src/rlc-common/buildIndexFile.d.ts.map +0 -1
  629. package/dist/src/rlc-common/buildIndexFile.js +0 -241
  630. package/dist/src/rlc-common/buildIndexFile.js.map +0 -1
  631. package/dist/src/rlc-common/buildIsUnexpectedHelper.d.ts +0 -6
  632. package/dist/src/rlc-common/buildIsUnexpectedHelper.d.ts.map +0 -1
  633. package/dist/src/rlc-common/buildIsUnexpectedHelper.js +0 -223
  634. package/dist/src/rlc-common/buildIsUnexpectedHelper.js.map +0 -1
  635. package/dist/src/rlc-common/buildLogger.d.ts +0 -6
  636. package/dist/src/rlc-common/buildLogger.d.ts.map +0 -1
  637. package/dist/src/rlc-common/buildLogger.js +0 -31
  638. package/dist/src/rlc-common/buildLogger.js.map +0 -1
  639. package/dist/src/rlc-common/buildMethodShortcuts.d.ts +0 -5
  640. package/dist/src/rlc-common/buildMethodShortcuts.d.ts.map +0 -1
  641. package/dist/src/rlc-common/buildMethodShortcuts.js +0 -54
  642. package/dist/src/rlc-common/buildMethodShortcuts.js.map +0 -1
  643. package/dist/src/rlc-common/buildObjectTypes.d.ts +0 -29
  644. package/dist/src/rlc-common/buildObjectTypes.d.ts.map +0 -1
  645. package/dist/src/rlc-common/buildObjectTypes.js +0 -412
  646. package/dist/src/rlc-common/buildObjectTypes.js.map +0 -1
  647. package/dist/src/rlc-common/buildPaginateHelper.d.ts +0 -6
  648. package/dist/src/rlc-common/buildPaginateHelper.d.ts.map +0 -1
  649. package/dist/src/rlc-common/buildPaginateHelper.js +0 -27
  650. package/dist/src/rlc-common/buildPaginateHelper.js.map +0 -1
  651. package/dist/src/rlc-common/buildParameterTypes.d.ts +0 -14
  652. package/dist/src/rlc-common/buildParameterTypes.d.ts.map +0 -1
  653. package/dist/src/rlc-common/buildParameterTypes.js +0 -391
  654. package/dist/src/rlc-common/buildParameterTypes.js.map +0 -1
  655. package/dist/src/rlc-common/buildPollingHelper.d.ts +0 -6
  656. package/dist/src/rlc-common/buildPollingHelper.d.ts.map +0 -1
  657. package/dist/src/rlc-common/buildPollingHelper.js +0 -61
  658. package/dist/src/rlc-common/buildPollingHelper.js.map +0 -1
  659. package/dist/src/rlc-common/buildResponseTypes.d.ts +0 -6
  660. package/dist/src/rlc-common/buildResponseTypes.d.ts.map +0 -1
  661. package/dist/src/rlc-common/buildResponseTypes.js +0 -143
  662. package/dist/src/rlc-common/buildResponseTypes.js.map +0 -1
  663. package/dist/src/rlc-common/buildSamples.d.ts +0 -3
  664. package/dist/src/rlc-common/buildSamples.d.ts.map +0 -1
  665. package/dist/src/rlc-common/buildSamples.js +0 -30
  666. package/dist/src/rlc-common/buildSamples.js.map +0 -1
  667. package/dist/src/rlc-common/buildSchemaType.d.ts +0 -20
  668. package/dist/src/rlc-common/buildSchemaType.d.ts.map +0 -1
  669. package/dist/src/rlc-common/buildSchemaType.js +0 -71
  670. package/dist/src/rlc-common/buildSchemaType.js.map +0 -1
  671. package/dist/src/rlc-common/buildSerializeHelper.d.ts +0 -6
  672. package/dist/src/rlc-common/buildSerializeHelper.d.ts.map +0 -1
  673. package/dist/src/rlc-common/buildSerializeHelper.js +0 -36
  674. package/dist/src/rlc-common/buildSerializeHelper.js.map +0 -1
  675. package/dist/src/rlc-common/buildTopLevelIndexFile.d.ts +0 -6
  676. package/dist/src/rlc-common/buildTopLevelIndexFile.d.ts.map +0 -1
  677. package/dist/src/rlc-common/buildTopLevelIndexFile.js +0 -48
  678. package/dist/src/rlc-common/buildTopLevelIndexFile.js.map +0 -1
  679. package/dist/src/rlc-common/helpers/apiVersionUtil.d.ts +0 -17
  680. package/dist/src/rlc-common/helpers/apiVersionUtil.d.ts.map +0 -1
  681. package/dist/src/rlc-common/helpers/apiVersionUtil.js +0 -43
  682. package/dist/src/rlc-common/helpers/apiVersionUtil.js.map +0 -1
  683. package/dist/src/rlc-common/helpers/importsUtil.d.ts +0 -18
  684. package/dist/src/rlc-common/helpers/importsUtil.d.ts.map +0 -1
  685. package/dist/src/rlc-common/helpers/importsUtil.js +0 -164
  686. package/dist/src/rlc-common/helpers/importsUtil.js.map +0 -1
  687. package/dist/src/rlc-common/helpers/nameConstructors.d.ts +0 -42
  688. package/dist/src/rlc-common/helpers/nameConstructors.d.ts.map +0 -1
  689. package/dist/src/rlc-common/helpers/nameConstructors.js +0 -61
  690. package/dist/src/rlc-common/helpers/nameConstructors.js.map +0 -1
  691. package/dist/src/rlc-common/helpers/nameUtils.d.ts +0 -37
  692. package/dist/src/rlc-common/helpers/nameUtils.d.ts.map +0 -1
  693. package/dist/src/rlc-common/helpers/nameUtils.js +0 -240
  694. package/dist/src/rlc-common/helpers/nameUtils.js.map +0 -1
  695. package/dist/src/rlc-common/helpers/operationHelpers.d.ts +0 -16
  696. package/dist/src/rlc-common/helpers/operationHelpers.d.ts.map +0 -1
  697. package/dist/src/rlc-common/helpers/operationHelpers.js +0 -104
  698. package/dist/src/rlc-common/helpers/operationHelpers.js.map +0 -1
  699. package/dist/src/rlc-common/helpers/packageUtil.d.ts +0 -7
  700. package/dist/src/rlc-common/helpers/packageUtil.d.ts.map +0 -1
  701. package/dist/src/rlc-common/helpers/packageUtil.js +0 -10
  702. package/dist/src/rlc-common/helpers/packageUtil.js.map +0 -1
  703. package/dist/src/rlc-common/helpers/pathUtils.d.ts +0 -2
  704. package/dist/src/rlc-common/helpers/pathUtils.d.ts.map +0 -1
  705. package/dist/src/rlc-common/helpers/pathUtils.js +0 -10
  706. package/dist/src/rlc-common/helpers/pathUtils.js.map +0 -1
  707. package/dist/src/rlc-common/helpers/schemaHelpers.d.ts +0 -10
  708. package/dist/src/rlc-common/helpers/schemaHelpers.d.ts.map +0 -1
  709. package/dist/src/rlc-common/helpers/schemaHelpers.js +0 -37
  710. package/dist/src/rlc-common/helpers/schemaHelpers.js.map +0 -1
  711. package/dist/src/rlc-common/helpers/shortcutMethods.d.ts +0 -4
  712. package/dist/src/rlc-common/helpers/shortcutMethods.d.ts.map +0 -1
  713. package/dist/src/rlc-common/helpers/shortcutMethods.js +0 -49
  714. package/dist/src/rlc-common/helpers/shortcutMethods.js.map +0 -1
  715. package/dist/src/rlc-common/helpers/typeUtil.d.ts +0 -32
  716. package/dist/src/rlc-common/helpers/typeUtil.d.ts.map +0 -1
  717. package/dist/src/rlc-common/helpers/typeUtil.js +0 -162
  718. package/dist/src/rlc-common/helpers/typeUtil.js.map +0 -1
  719. package/dist/src/rlc-common/helpers/valueGenerationUtil.d.ts +0 -12
  720. package/dist/src/rlc-common/helpers/valueGenerationUtil.d.ts.map +0 -1
  721. package/dist/src/rlc-common/helpers/valueGenerationUtil.js +0 -161
  722. package/dist/src/rlc-common/helpers/valueGenerationUtil.js.map +0 -1
  723. package/dist/src/rlc-common/metadata/buildApiExtractorConfig.d.ts +0 -6
  724. package/dist/src/rlc-common/metadata/buildApiExtractorConfig.d.ts.map +0 -1
  725. package/dist/src/rlc-common/metadata/buildApiExtractorConfig.js +0 -55
  726. package/dist/src/rlc-common/metadata/buildApiExtractorConfig.js.map +0 -1
  727. package/dist/src/rlc-common/metadata/buildChangelogFile.d.ts +0 -6
  728. package/dist/src/rlc-common/metadata/buildChangelogFile.d.ts.map +0 -1
  729. package/dist/src/rlc-common/metadata/buildChangelogFile.js +0 -25
  730. package/dist/src/rlc-common/metadata/buildChangelogFile.js.map +0 -1
  731. package/dist/src/rlc-common/metadata/buildESLintConfig.d.ts +0 -6
  732. package/dist/src/rlc-common/metadata/buildESLintConfig.d.ts.map +0 -1
  733. package/dist/src/rlc-common/metadata/buildESLintConfig.js +0 -79
  734. package/dist/src/rlc-common/metadata/buildESLintConfig.js.map +0 -1
  735. package/dist/src/rlc-common/metadata/buildLicenseFile.d.ts +0 -5
  736. package/dist/src/rlc-common/metadata/buildLicenseFile.d.ts.map +0 -1
  737. package/dist/src/rlc-common/metadata/buildLicenseFile.js +0 -32
  738. package/dist/src/rlc-common/metadata/buildLicenseFile.js.map +0 -1
  739. package/dist/src/rlc-common/metadata/buildPackageFile.d.ts +0 -25
  740. package/dist/src/rlc-common/metadata/buildPackageFile.d.ts.map +0 -1
  741. package/dist/src/rlc-common/metadata/buildPackageFile.js +0 -197
  742. package/dist/src/rlc-common/metadata/buildPackageFile.js.map +0 -1
  743. package/dist/src/rlc-common/metadata/buildReadmeFile.d.ts +0 -11
  744. package/dist/src/rlc-common/metadata/buildReadmeFile.d.ts.map +0 -1
  745. package/dist/src/rlc-common/metadata/buildReadmeFile.js +0 -418
  746. package/dist/src/rlc-common/metadata/buildReadmeFile.js.map +0 -1
  747. package/dist/src/rlc-common/metadata/buildRollupConfig.d.ts +0 -6
  748. package/dist/src/rlc-common/metadata/buildRollupConfig.d.ts.map +0 -1
  749. package/dist/src/rlc-common/metadata/buildRollupConfig.js +0 -140
  750. package/dist/src/rlc-common/metadata/buildRollupConfig.js.map +0 -1
  751. package/dist/src/rlc-common/metadata/buildSampleEnvFile.d.ts +0 -6
  752. package/dist/src/rlc-common/metadata/buildSampleEnvFile.d.ts.map +0 -1
  753. package/dist/src/rlc-common/metadata/buildSampleEnvFile.js +0 -15
  754. package/dist/src/rlc-common/metadata/buildSampleEnvFile.js.map +0 -1
  755. package/dist/src/rlc-common/metadata/buildTestConfig.d.ts +0 -16
  756. package/dist/src/rlc-common/metadata/buildTestConfig.d.ts.map +0 -1
  757. package/dist/src/rlc-common/metadata/buildTestConfig.js +0 -54
  758. package/dist/src/rlc-common/metadata/buildTestConfig.js.map +0 -1
  759. package/dist/src/rlc-common/metadata/buildTsConfig.d.ts +0 -61
  760. package/dist/src/rlc-common/metadata/buildTsConfig.d.ts.map +0 -1
  761. package/dist/src/rlc-common/metadata/buildTsConfig.js +0 -170
  762. package/dist/src/rlc-common/metadata/buildTsConfig.js.map +0 -1
  763. package/dist/src/rlc-common/metadata/buildVitestConfig.d.ts +0 -6
  764. package/dist/src/rlc-common/metadata/buildVitestConfig.d.ts.map +0 -1
  765. package/dist/src/rlc-common/metadata/buildVitestConfig.js +0 -26
  766. package/dist/src/rlc-common/metadata/buildVitestConfig.js.map +0 -1
  767. package/dist/src/rlc-common/metadata/buildWarpConfig.d.ts +0 -20
  768. package/dist/src/rlc-common/metadata/buildWarpConfig.d.ts.map +0 -1
  769. package/dist/src/rlc-common/metadata/buildWarpConfig.js +0 -76
  770. package/dist/src/rlc-common/metadata/buildWarpConfig.js.map +0 -1
  771. package/dist/src/rlc-common/metadata/packageJson/azurePackageCommon.d.ts +0 -51
  772. package/dist/src/rlc-common/metadata/packageJson/azurePackageCommon.d.ts.map +0 -1
  773. package/dist/src/rlc-common/metadata/packageJson/azurePackageCommon.js +0 -121
  774. package/dist/src/rlc-common/metadata/packageJson/azurePackageCommon.js.map +0 -1
  775. package/dist/src/rlc-common/metadata/packageJson/buildAzureMonorepoPackage.d.ts +0 -242
  776. package/dist/src/rlc-common/metadata/packageJson/buildAzureMonorepoPackage.d.ts.map +0 -1
  777. package/dist/src/rlc-common/metadata/packageJson/buildAzureMonorepoPackage.js +0 -171
  778. package/dist/src/rlc-common/metadata/packageJson/buildAzureMonorepoPackage.js.map +0 -1
  779. package/dist/src/rlc-common/metadata/packageJson/buildAzureStandalonePackage.d.ts +0 -8
  780. package/dist/src/rlc-common/metadata/packageJson/buildAzureStandalonePackage.d.ts.map +0 -1
  781. package/dist/src/rlc-common/metadata/packageJson/buildAzureStandalonePackage.js +0 -101
  782. package/dist/src/rlc-common/metadata/packageJson/buildAzureStandalonePackage.js.map +0 -1
  783. package/dist/src/rlc-common/metadata/packageJson/buildFlavorlessPackage.d.ts +0 -57
  784. package/dist/src/rlc-common/metadata/packageJson/buildFlavorlessPackage.d.ts.map +0 -1
  785. package/dist/src/rlc-common/metadata/packageJson/buildFlavorlessPackage.js +0 -53
  786. package/dist/src/rlc-common/metadata/packageJson/buildFlavorlessPackage.js.map +0 -1
  787. package/dist/src/rlc-common/metadata/packageJson/packageCommon.d.ts +0 -64
  788. package/dist/src/rlc-common/metadata/packageJson/packageCommon.d.ts.map +0 -1
  789. package/dist/src/rlc-common/metadata/packageJson/packageCommon.js +0 -180
  790. package/dist/src/rlc-common/metadata/packageJson/packageCommon.js.map +0 -1
  791. package/dist/src/rlc-common/static/paginateContent.d.ts +0 -2
  792. package/dist/src/rlc-common/static/paginateContent.d.ts.map +0 -1
  793. package/dist/src/rlc-common/static/paginateContent.js +0 -345
  794. package/dist/src/rlc-common/static/paginateContent.js.map +0 -1
  795. package/dist/src/rlc-common/static/pollingContent.d.ts +0 -2
  796. package/dist/src/rlc-common/static/pollingContent.d.ts.map +0 -1
  797. package/dist/src/rlc-common/static/pollingContent.js +0 -225
  798. package/dist/src/rlc-common/static/pollingContent.js.map +0 -1
  799. package/dist/src/rlc-common/static/sampleTemplate.d.ts +0 -2
  800. package/dist/src/rlc-common/static/sampleTemplate.d.ts.map +0 -1
  801. package/dist/src/rlc-common/static/sampleTemplate.js +0 -56
  802. package/dist/src/rlc-common/static/sampleTemplate.js.map +0 -1
  803. package/dist/src/rlc-common/static/serializeHelper.d.ts +0 -6
  804. package/dist/src/rlc-common/static/serializeHelper.d.ts.map +0 -1
  805. package/dist/src/rlc-common/static/serializeHelper.js +0 -31
  806. package/dist/src/rlc-common/static/serializeHelper.js.map +0 -1
  807. package/dist/src/rlc-common/test/buildKarmaConfig.d.ts +0 -6
  808. package/dist/src/rlc-common/test/buildKarmaConfig.d.ts.map +0 -1
  809. package/dist/src/rlc-common/test/buildKarmaConfig.js +0 -11
  810. package/dist/src/rlc-common/test/buildKarmaConfig.js.map +0 -1
  811. package/dist/src/rlc-common/test/buildRecordedClient.d.ts +0 -6
  812. package/dist/src/rlc-common/test/buildRecordedClient.d.ts.map +0 -1
  813. package/dist/src/rlc-common/test/buildRecordedClient.js +0 -17
  814. package/dist/src/rlc-common/test/buildRecordedClient.js.map +0 -1
  815. package/dist/src/rlc-common/test/buildSampleTest.d.ts +0 -6
  816. package/dist/src/rlc-common/test/buildSampleTest.d.ts.map +0 -1
  817. package/dist/src/rlc-common/test/buildSampleTest.js +0 -14
  818. package/dist/src/rlc-common/test/buildSampleTest.js.map +0 -1
  819. package/dist/src/rlc-common/test/buildSnippets.d.ts +0 -6
  820. package/dist/src/rlc-common/test/buildSnippets.d.ts.map +0 -1
  821. package/dist/src/rlc-common/test/buildSnippets.js +0 -26
  822. package/dist/src/rlc-common/test/buildSnippets.js.map +0 -1
  823. package/dist/src/rlc-common/transformSampleGroups.d.ts +0 -9
  824. package/dist/src/rlc-common/transformSampleGroups.d.ts.map +0 -1
  825. package/dist/src/rlc-common/transformSampleGroups.js +0 -313
  826. package/dist/src/rlc-common/transformSampleGroups.js.map +0 -1
  827. package/dist/src/transform/transformApiVersionInfo.d.ts +0 -6
  828. package/dist/src/transform/transformApiVersionInfo.d.ts.map +0 -1
  829. package/dist/src/transform/transformApiVersionInfo.js +0 -78
  830. package/dist/src/transform/transformApiVersionInfo.js.map +0 -1
  831. package/dist/src/transform/transformHelperFunctionDetails.d.ts +0 -5
  832. package/dist/src/transform/transformHelperFunctionDetails.d.ts.map +0 -1
  833. package/dist/src/transform/transformHelperFunctionDetails.js +0 -74
  834. package/dist/src/transform/transformHelperFunctionDetails.js.map +0 -1
  835. package/dist/src/transform/transformParameters.d.ts +0 -14
  836. package/dist/src/transform/transformParameters.d.ts.map +0 -1
  837. package/dist/src/transform/transformParameters.js +0 -201
  838. package/dist/src/transform/transformParameters.js.map +0 -1
  839. package/dist/src/transform/transformPaths.d.ts +0 -5
  840. package/dist/src/transform/transformPaths.d.ts.map +0 -1
  841. package/dist/src/transform/transformPaths.js +0 -102
  842. package/dist/src/transform/transformPaths.js.map +0 -1
  843. package/dist/src/transform/transformResponses.d.ts +0 -5
  844. package/dist/src/transform/transformResponses.d.ts.map +0 -1
  845. package/dist/src/transform/transformResponses.js +0 -171
  846. package/dist/src/transform/transformResponses.js.map +0 -1
  847. package/dist/src/transform/transformSchemas.d.ts +0 -4
  848. package/dist/src/transform/transformSchemas.d.ts.map +0 -1
  849. package/dist/src/transform/transformSchemas.js +0 -191
  850. package/dist/src/transform/transformSchemas.js.map +0 -1
  851. package/dist/src/transform/transformTelemetryInfo.d.ts +0 -4
  852. package/dist/src/transform/transformTelemetryInfo.d.ts.map +0 -1
  853. package/dist/src/transform/transformTelemetryInfo.js +0 -22
  854. package/dist/src/transform/transformTelemetryInfo.js.map +0 -1
  855. package/dist/src/transform/transfromRLCOptions.d.ts +0 -14
  856. package/dist/src/transform/transfromRLCOptions.d.ts.map +0 -1
  857. package/dist/src/transform/transfromRLCOptions.js +0 -369
  858. package/dist/src/transform/transfromRLCOptions.js.map +0 -1
  859. package/dist/src/utils/clientUtils.d.ts +0 -10
  860. package/dist/src/utils/clientUtils.d.ts.map +0 -1
  861. package/dist/src/utils/clientUtils.js +0 -124
  862. package/dist/src/utils/clientUtils.js.map +0 -1
  863. package/dist/src/utils/credentialUtils.d.ts +0 -15
  864. package/dist/src/utils/credentialUtils.d.ts.map +0 -1
  865. package/dist/src/utils/credentialUtils.js +0 -68
  866. package/dist/src/utils/credentialUtils.js.map +0 -1
  867. package/dist/src/utils/crossLanguageDef.d.ts +0 -6
  868. package/dist/src/utils/crossLanguageDef.d.ts.map +0 -1
  869. package/dist/src/utils/crossLanguageDef.js +0 -59
  870. package/dist/src/utils/crossLanguageDef.js.map +0 -1
  871. package/dist/src/utils/emitUtil.d.ts +0 -5
  872. package/dist/src/utils/emitUtil.d.ts.map +0 -1
  873. package/dist/src/utils/emitUtil.js +0 -71
  874. package/dist/src/utils/emitUtil.js.map +0 -1
  875. package/dist/src/utils/fileSystemUtils.d.ts +0 -5
  876. package/dist/src/utils/fileSystemUtils.d.ts.map +0 -1
  877. package/dist/src/utils/fileSystemUtils.js +0 -59
  878. package/dist/src/utils/fileSystemUtils.js.map +0 -1
  879. package/dist/src/utils/importHelper.d.ts +0 -10
  880. package/dist/src/utils/importHelper.d.ts.map +0 -1
  881. package/dist/src/utils/importHelper.js +0 -51
  882. package/dist/src/utils/importHelper.js.map +0 -1
  883. package/dist/src/utils/mediaTypes.d.ts +0 -28
  884. package/dist/src/utils/mediaTypes.d.ts.map +0 -1
  885. package/dist/src/utils/mediaTypes.js +0 -124
  886. package/dist/src/utils/mediaTypes.js.map +0 -1
  887. package/dist/src/utils/modelUtils.d.ts +0 -60
  888. package/dist/src/utils/modelUtils.d.ts.map +0 -1
  889. package/dist/src/utils/modelUtils.js +0 -1488
  890. package/dist/src/utils/modelUtils.js.map +0 -1
  891. package/dist/src/utils/namespaceUtils.d.ts +0 -6
  892. package/dist/src/utils/namespaceUtils.d.ts.map +0 -1
  893. package/dist/src/utils/namespaceUtils.js +0 -69
  894. package/dist/src/utils/namespaceUtils.js.map +0 -1
  895. package/dist/src/utils/operationUtil.d.ts +0 -97
  896. package/dist/src/utils/operationUtil.d.ts.map +0 -1
  897. package/dist/src/utils/operationUtil.js +0 -547
  898. package/dist/src/utils/operationUtil.js.map +0 -1
  899. package/dist/src/utils/parameterUtils.d.ts +0 -9
  900. package/dist/src/utils/parameterUtils.d.ts.map +0 -1
  901. package/dist/src/utils/parameterUtils.js +0 -147
  902. package/dist/src/utils/parameterUtils.js.map +0 -1
  903. package/src/contextManager.ts +0 -101
  904. package/src/framework/hooks/sdkTypes.ts +0 -218
  905. package/src/framework/hooks/useDependencies.ts +0 -16
  906. package/src/modular/buildClassicalClient.ts +0 -434
  907. package/src/modular/buildClassicalOperationGroups.ts +0 -69
  908. package/src/modular/buildClientContext.ts +0 -325
  909. package/src/modular/buildOperations.ts +0 -248
  910. package/src/modular/buildProjectFiles.ts +0 -111
  911. package/src/modular/buildRestorePoller.ts +0 -242
  912. package/src/modular/buildRootIndex.ts +0 -407
  913. package/src/modular/buildSubpathIndex.ts +0 -152
  914. package/src/modular/emitLoggerFile.ts +0 -23
  915. package/src/modular/emitModels.ts +0 -1081
  916. package/src/modular/emitModelsOptions.ts +0 -56
  917. package/src/modular/emitSamples.ts +0 -675
  918. package/src/modular/emitTests.ts +0 -194
  919. package/src/modular/helpers/classicalOperationHelpers.ts +0 -375
  920. package/src/modular/helpers/clientHelpers.ts +0 -362
  921. package/src/modular/helpers/exampleValueHelpers.ts +0 -851
  922. package/src/modular/helpers/namingHelpers.ts +0 -84
  923. package/src/modular/helpers/operationHelpers.ts +0 -3035
  924. package/src/modular/helpers/typeHelpers.ts +0 -131
  925. package/src/modular/serialization/buildDeserializerFunction.ts +0 -564
  926. package/src/modular/serialization/buildSerializerFunction.ts +0 -616
  927. package/src/modular/serialization/buildXmlSerializerFunction.ts +0 -951
  928. package/src/modular/serialization/serializeUtils.ts +0 -217
  929. package/src/rlc-common/buildClient.ts +0 -490
  930. package/src/rlc-common/buildClientDefinitions.ts +0 -235
  931. package/src/rlc-common/buildIndexFile.ts +0 -344
  932. package/src/rlc-common/buildIsUnexpectedHelper.ts +0 -248
  933. package/src/rlc-common/buildLogger.ts +0 -43
  934. package/src/rlc-common/buildMethodShortcuts.ts +0 -71
  935. package/src/rlc-common/buildObjectTypes.ts +0 -603
  936. package/src/rlc-common/buildPaginateHelper.ts +0 -31
  937. package/src/rlc-common/buildParameterTypes.ts +0 -554
  938. package/src/rlc-common/buildPollingHelper.ts +0 -83
  939. package/src/rlc-common/buildResponseTypes.ts +0 -180
  940. package/src/rlc-common/buildSamples.ts +0 -32
  941. package/src/rlc-common/buildSchemaType.ts +0 -89
  942. package/src/rlc-common/buildSerializeHelper.ts +0 -49
  943. package/src/rlc-common/buildTopLevelIndexFile.ts +0 -58
  944. package/src/rlc-common/helpers/nameConstructors.ts +0 -110
  945. package/src/rlc-common/helpers/operationHelpers.ts +0 -138
  946. package/src/rlc-common/helpers/shortcutMethods.ts +0 -58
  947. package/src/rlc-common/helpers/valueGenerationUtil.ts +0 -234
  948. package/src/rlc-common/metadata/buildPackageFile.ts +0 -242
  949. package/src/rlc-common/metadata/buildReadmeFile.ts +0 -515
  950. package/src/rlc-common/metadata/buildRollupConfig.ts +0 -147
  951. package/src/rlc-common/metadata/packageJson/azurePackageCommon.ts +0 -152
  952. package/src/rlc-common/metadata/packageJson/buildAzureMonorepoPackage.ts +0 -199
  953. package/src/rlc-common/metadata/packageJson/buildAzureStandalonePackage.ts +0 -123
  954. package/src/rlc-common/metadata/packageJson/buildFlavorlessPackage.ts +0 -68
  955. package/src/rlc-common/test/buildSnippets.ts +0 -29
  956. package/src/rlc-common/transformSampleGroups.ts +0 -407
  957. package/src/transform/transformApiVersionInfo.ts +0 -103
  958. package/src/transform/transformHelperFunctionDetails.ts +0 -88
  959. package/src/transform/transformParameters.ts +0 -321
  960. package/src/transform/transformPaths.ts +0 -157
  961. package/src/transform/transformResponses.ts +0 -237
  962. package/src/transform/transformSchemas.ts +0 -212
  963. package/src/transform/transformTelemetryInfo.ts +0 -33
  964. package/src/transform/transfromRLCOptions.ts +0 -461
  965. package/src/utils/crossLanguageDef.ts +0 -66
  966. package/src/utils/importHelper.ts +0 -59
  967. package/src/utils/modelUtils.ts +0 -1737
  968. package/src/utils/operationUtil.ts +0 -763
  969. package/src/utils/parameterUtils.ts +0 -192
  970. /package/src/{metaTree.ts → meta-tree.ts} +0 -0
  971. /package/src/modular/{buildModularOptions.ts → build-modular-options.ts} +0 -0
  972. /package/src/modular/helpers/{clientOptionHelpers.ts → client-option-helpers.ts} +0 -0
  973. /package/src/modular/helpers/{docsHelpers.ts → docs-helpers.ts} +0 -0
  974. /package/src/rlc-common/helpers/{apiVersionUtil.ts → api-version-util.ts} +0 -0
  975. /package/src/rlc-common/helpers/{importsUtil.ts → imports-util.ts} +0 -0
  976. /package/src/rlc-common/helpers/{nameUtils.ts → name-utils.ts} +0 -0
  977. /package/src/rlc-common/helpers/{packageUtil.ts → package-util.ts} +0 -0
  978. /package/src/rlc-common/helpers/{pathUtils.ts → path-utils.ts} +0 -0
  979. /package/src/rlc-common/helpers/{schemaHelpers.ts → schema-helpers.ts} +0 -0
  980. /package/src/rlc-common/helpers/{typeUtil.ts → type-util.ts} +0 -0
  981. /package/src/rlc-common/metadata/{buildApiExtractorConfig.ts → build-api-extractor-config.ts} +0 -0
  982. /package/src/rlc-common/metadata/{buildChangelogFile.ts → build-changelog-file.ts} +0 -0
  983. /package/src/rlc-common/metadata/{buildESLintConfig.ts → build-es-lint-config.ts} +0 -0
  984. /package/src/rlc-common/metadata/{buildLicenseFile.ts → build-license-file.ts} +0 -0
  985. /package/src/rlc-common/metadata/{buildSampleEnvFile.ts → build-sample-env-file.ts} +0 -0
  986. /package/src/rlc-common/metadata/{buildTestConfig.ts → build-test-config.ts} +0 -0
  987. /package/src/rlc-common/metadata/{buildTsConfig.ts → build-ts-config.ts} +0 -0
  988. /package/src/rlc-common/metadata/{buildVitestConfig.ts → build-vitest-config.ts} +0 -0
  989. /package/src/rlc-common/metadata/{buildWarpConfig.ts → build-warp-config.ts} +0 -0
  990. /package/src/rlc-common/metadata/{packageJson/packageCommon.ts → package-json/package-common.ts} +0 -0
  991. /package/src/rlc-common/static/{paginateContent.ts → paginate-content.ts} +0 -0
  992. /package/src/rlc-common/static/{pollingContent.ts → polling-content.ts} +0 -0
  993. /package/src/rlc-common/static/{sampleTemplate.ts → sample-template.ts} +0 -0
  994. /package/src/rlc-common/static/{serializeHelper.ts → serialize-helper.ts} +0 -0
  995. /package/src/rlc-common/test/{buildKarmaConfig.ts → build-karma-config.ts} +0 -0
  996. /package/src/rlc-common/test/{buildRecordedClient.ts → build-recorded-client.ts} +0 -0
  997. /package/src/rlc-common/test/{buildSampleTest.ts → build-sample-test.ts} +0 -0
  998. /package/src/utils/{clientUtils.ts → client-utils.ts} +0 -0
  999. /package/src/utils/{credentialUtils.ts → credential-utils.ts} +0 -0
  1000. /package/src/utils/{emitUtil.ts → emit-util.ts} +0 -0
  1001. /package/src/utils/{fileSystemUtils.ts → file-system-utils.ts} +0 -0
  1002. /package/src/utils/{mediaTypes.ts → media-types.ts} +0 -0
  1003. /package/src/utils/{namespaceUtils.ts → namespace-utils.ts} +0 -0
@@ -0,0 +1,1727 @@
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 "./media-types.js";
79
+
80
+ import { reportDiagnostic } from "../lib.js";
81
+ import { getModelNamespaceName } from "./namespace-utils.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
+ return type as any;
1691
+ } else if (type.name === "") {
1692
+ effective = getEffectiveModelType(program, type, (property) =>
1693
+ isSchemaProperty(program, property),
1694
+ );
1695
+ }
1696
+
1697
+ if (effective?.name) {
1698
+ return effective;
1699
+ }
1700
+ return type as Model;
1701
+ }
1702
+
1703
+ export function isBodyRequired(parameter: HttpOperationParameters) {
1704
+ return parameter.body?.type && parameter.body?.property?.optional !== true ? true : false;
1705
+ }
1706
+
1707
+ export function getCollectionFormat(
1708
+ context: SdkContext,
1709
+ param: HttpOperationPathParameter | HttpOperationQueryParameter | HttpOperationHeaderParameter,
1710
+ ): string | undefined {
1711
+ const type = param.param;
1712
+ const encode = getEncode(context.program, param.param);
1713
+ if (type.type.kind === "Model" && isArrayModelType(type.type)) {
1714
+ if (param.explode) {
1715
+ return "multi";
1716
+ }
1717
+ switch (encode?.encoding) {
1718
+ case "ArrayEncoding.pipeDelimited":
1719
+ return "pipes";
1720
+ case "ArrayEncoding.spaceDelimited":
1721
+ return "ssv";
1722
+ default:
1723
+ return "csv";
1724
+ }
1725
+ }
1726
+ return;
1727
+ }