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