@azure-tools/typespec-ts 0.54.0 → 0.54.2

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