@azure-tools/rlc-common 1.0.0-beta.1

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 (209) hide show
  1. package/.rush/temp/package-deps_build.json +45 -0
  2. package/.rush/temp/shrinkwrap-deps.json +72 -0
  3. package/CHANGELOG.md +3 -0
  4. package/dist/buildClient.js +198 -0
  5. package/dist/buildClient.js.map +1 -0
  6. package/dist/buildClientDefinitions.js +160 -0
  7. package/dist/buildClientDefinitions.js.map +1 -0
  8. package/dist/buildIndexFile.js +150 -0
  9. package/dist/buildIndexFile.js.map +1 -0
  10. package/dist/buildIsUnexpectedHelper.js +219 -0
  11. package/dist/buildIsUnexpectedHelper.js.map +1 -0
  12. package/dist/buildMethodShortcuts.js +50 -0
  13. package/dist/buildMethodShortcuts.js.map +1 -0
  14. package/dist/buildObjectTypes.js +250 -0
  15. package/dist/buildObjectTypes.js.map +1 -0
  16. package/dist/buildPaginateHelper.js +30 -0
  17. package/dist/buildPaginateHelper.js.map +1 -0
  18. package/dist/buildParameterTypes.js +287 -0
  19. package/dist/buildParameterTypes.js.map +1 -0
  20. package/dist/buildPollingHelper.js +21 -0
  21. package/dist/buildPollingHelper.js.map +1 -0
  22. package/dist/buildResponseTypes.js +122 -0
  23. package/dist/buildResponseTypes.js.map +1 -0
  24. package/dist/buildSchemaType.js +44 -0
  25. package/dist/buildSchemaType.js.map +1 -0
  26. package/dist/buildTopLevelIndexFile.js +45 -0
  27. package/dist/buildTopLevelIndexFile.js.map +1 -0
  28. package/dist/helpers/nameConstructors.js +41 -0
  29. package/dist/helpers/nameConstructors.js.map +1 -0
  30. package/dist/helpers/nameUtils.js +196 -0
  31. package/dist/helpers/nameUtils.js.map +1 -0
  32. package/dist/helpers/operationHelpers.js +83 -0
  33. package/dist/helpers/operationHelpers.js.map +1 -0
  34. package/dist/helpers/schemaHelpers.js +27 -0
  35. package/dist/helpers/schemaHelpers.js.map +1 -0
  36. package/dist/helpers/shortcutMethods.js +46 -0
  37. package/dist/helpers/shortcutMethods.js.map +1 -0
  38. package/dist/index.js +44 -0
  39. package/dist/index.js.map +1 -0
  40. package/dist/interfaces.js +18 -0
  41. package/dist/interfaces.js.map +1 -0
  42. package/dist/metadata/buildApiExtractorConfig.js +56 -0
  43. package/dist/metadata/buildApiExtractorConfig.js.map +1 -0
  44. package/dist/metadata/buildESLintConfig.js +33 -0
  45. package/dist/metadata/buildESLintConfig.js.map +1 -0
  46. package/dist/metadata/buildLicenseFile.js +41 -0
  47. package/dist/metadata/buildLicenseFile.js.map +1 -0
  48. package/dist/metadata/buildPackageFile.js +232 -0
  49. package/dist/metadata/buildPackageFile.js.map +1 -0
  50. package/dist/metadata/buildReadmeFile.js +170 -0
  51. package/dist/metadata/buildReadmeFile.js.map +1 -0
  52. package/dist/metadata/buildRollupConfig.js +144 -0
  53. package/dist/metadata/buildRollupConfig.js.map +1 -0
  54. package/dist/metadata/buildTsConfig.js +72 -0
  55. package/dist/metadata/buildTsConfig.js.map +1 -0
  56. package/dist/package.json +1 -0
  57. package/dist/static/paginateContent.js +214 -0
  58. package/dist/static/paginateContent.js.map +1 -0
  59. package/dist/static/pollingContent.js +78 -0
  60. package/dist/static/pollingContent.js.map +1 -0
  61. package/dist/test/buildEnvFile.js +31 -0
  62. package/dist/test/buildEnvFile.js.map +1 -0
  63. package/dist/test/buildKarmaConfig.js +19 -0
  64. package/dist/test/buildKarmaConfig.js.map +1 -0
  65. package/dist/test/buildRecordedClient.js +22 -0
  66. package/dist/test/buildRecordedClient.js.map +1 -0
  67. package/dist/test/buildSampleTest.js +19 -0
  68. package/dist/test/buildSampleTest.js.map +1 -0
  69. package/dist/test/template.js +192 -0
  70. package/dist/test/template.js.map +1 -0
  71. package/dist-esm/buildClient.js +191 -0
  72. package/dist-esm/buildClient.js.map +1 -0
  73. package/dist-esm/buildClientDefinitions.js +155 -0
  74. package/dist-esm/buildClientDefinitions.js.map +1 -0
  75. package/dist-esm/buildIndexFile.js +145 -0
  76. package/dist-esm/buildIndexFile.js.map +1 -0
  77. package/dist-esm/buildIsUnexpectedHelper.js +215 -0
  78. package/dist-esm/buildIsUnexpectedHelper.js.map +1 -0
  79. package/dist-esm/buildMethodShortcuts.js +46 -0
  80. package/dist-esm/buildMethodShortcuts.js.map +1 -0
  81. package/dist-esm/buildObjectTypes.js +249 -0
  82. package/dist-esm/buildObjectTypes.js.map +1 -0
  83. package/dist-esm/buildPaginateHelper.js +26 -0
  84. package/dist-esm/buildPaginateHelper.js.map +1 -0
  85. package/dist-esm/buildParameterTypes.js +288 -0
  86. package/dist-esm/buildParameterTypes.js.map +1 -0
  87. package/dist-esm/buildPollingHelper.js +17 -0
  88. package/dist-esm/buildPollingHelper.js.map +1 -0
  89. package/dist-esm/buildResponseTypes.js +127 -0
  90. package/dist-esm/buildResponseTypes.js.map +1 -0
  91. package/dist-esm/buildSchemaType.js +39 -0
  92. package/dist-esm/buildSchemaType.js.map +1 -0
  93. package/dist-esm/buildTopLevelIndexFile.js +41 -0
  94. package/dist-esm/buildTopLevelIndexFile.js.map +1 -0
  95. package/dist-esm/helpers/nameConstructors.js +34 -0
  96. package/dist-esm/helpers/nameConstructors.js.map +1 -0
  97. package/dist-esm/helpers/nameUtils.js +187 -0
  98. package/dist-esm/helpers/nameUtils.js.map +1 -0
  99. package/dist-esm/helpers/operationHelpers.js +72 -0
  100. package/dist-esm/helpers/operationHelpers.js.map +1 -0
  101. package/dist-esm/helpers/schemaHelpers.js +21 -0
  102. package/dist-esm/helpers/schemaHelpers.js.map +1 -0
  103. package/dist-esm/helpers/shortcutMethods.js +42 -0
  104. package/dist-esm/helpers/shortcutMethods.js.map +1 -0
  105. package/dist-esm/index.js +28 -0
  106. package/dist-esm/index.js.map +1 -0
  107. package/dist-esm/interfaces.js +15 -0
  108. package/dist-esm/interfaces.js.map +1 -0
  109. package/dist-esm/metadata/buildApiExtractorConfig.js +51 -0
  110. package/dist-esm/metadata/buildApiExtractorConfig.js.map +1 -0
  111. package/dist-esm/metadata/buildESLintConfig.js +28 -0
  112. package/dist-esm/metadata/buildESLintConfig.js.map +1 -0
  113. package/dist-esm/metadata/buildLicenseFile.js +36 -0
  114. package/dist-esm/metadata/buildLicenseFile.js.map +1 -0
  115. package/dist-esm/metadata/buildPackageFile.js +234 -0
  116. package/dist-esm/metadata/buildPackageFile.js.map +1 -0
  117. package/dist-esm/metadata/buildReadmeFile.js +167 -0
  118. package/dist-esm/metadata/buildReadmeFile.js.map +1 -0
  119. package/dist-esm/metadata/buildRollupConfig.js +139 -0
  120. package/dist-esm/metadata/buildRollupConfig.js.map +1 -0
  121. package/dist-esm/metadata/buildTsConfig.js +67 -0
  122. package/dist-esm/metadata/buildTsConfig.js.map +1 -0
  123. package/dist-esm/package.json +1 -0
  124. package/dist-esm/static/paginateContent.js +211 -0
  125. package/dist-esm/static/paginateContent.js.map +1 -0
  126. package/dist-esm/static/pollingContent.js +75 -0
  127. package/dist-esm/static/pollingContent.js.map +1 -0
  128. package/dist-esm/test/buildEnvFile.js +24 -0
  129. package/dist-esm/test/buildEnvFile.js.map +1 -0
  130. package/dist-esm/test/buildKarmaConfig.js +14 -0
  131. package/dist-esm/test/buildKarmaConfig.js.map +1 -0
  132. package/dist-esm/test/buildRecordedClient.js +17 -0
  133. package/dist-esm/test/buildRecordedClient.js.map +1 -0
  134. package/dist-esm/test/buildSampleTest.js +14 -0
  135. package/dist-esm/test/buildSampleTest.js.map +1 -0
  136. package/dist-esm/test/template.js +189 -0
  137. package/dist-esm/test/template.js.map +1 -0
  138. package/package.json +40 -0
  139. package/publishPackage.js +11 -0
  140. package/rlc-common.build.log +2 -0
  141. package/src/buildClient.ts +251 -0
  142. package/src/buildClientDefinitions.ts +231 -0
  143. package/src/buildIndexFile.ts +172 -0
  144. package/src/buildIsUnexpectedHelper.ts +240 -0
  145. package/src/buildMethodShortcuts.ts +75 -0
  146. package/src/buildObjectTypes.ts +393 -0
  147. package/src/buildPaginateHelper.ts +33 -0
  148. package/src/buildParameterTypes.ts +435 -0
  149. package/src/buildPollingHelper.ts +18 -0
  150. package/src/buildResponseTypes.ts +169 -0
  151. package/src/buildSchemaType.ts +56 -0
  152. package/src/buildTopLevelIndexFile.ts +46 -0
  153. package/src/helpers/nameConstructors.ts +93 -0
  154. package/src/helpers/nameUtils.ts +227 -0
  155. package/src/helpers/operationHelpers.ts +103 -0
  156. package/src/helpers/schemaHelpers.ts +25 -0
  157. package/src/helpers/shortcutMethods.ts +60 -0
  158. package/src/index.ts +28 -0
  159. package/src/interfaces.ts +212 -0
  160. package/src/metadata/buildApiExtractorConfig.ts +59 -0
  161. package/src/metadata/buildESLintConfig.ts +34 -0
  162. package/src/metadata/buildLicenseFile.ts +39 -0
  163. package/src/metadata/buildPackageFile.ts +271 -0
  164. package/src/metadata/buildReadmeFile.ts +231 -0
  165. package/src/metadata/buildRollupConfig.ts +147 -0
  166. package/src/metadata/buildTsConfig.ts +79 -0
  167. package/src/static/paginateContent.ts +210 -0
  168. package/src/static/pollingContent.ts +74 -0
  169. package/src/test/buildEnvFile.ts +26 -0
  170. package/src/test/buildKarmaConfig.ts +15 -0
  171. package/src/test/buildRecordedClient.ts +18 -0
  172. package/src/test/buildSampleTest.ts +15 -0
  173. package/src/test/template.ts +192 -0
  174. package/tsconfig-cjs.json +9 -0
  175. package/tsconfig-common.json +13 -0
  176. package/tsconfig.json +13 -0
  177. package/types/buildClient.d.ts +2 -0
  178. package/types/buildClientDefinitions.d.ts +5 -0
  179. package/types/buildIndexFile.d.ts +5 -0
  180. package/types/buildIsUnexpectedHelper.d.ts +5 -0
  181. package/types/buildMethodShortcuts.d.ts +4 -0
  182. package/types/buildObjectTypes.d.ts +14 -0
  183. package/types/buildPaginateHelper.d.ts +5 -0
  184. package/types/buildParameterTypes.d.ts +5 -0
  185. package/types/buildPollingHelper.d.ts +5 -0
  186. package/types/buildResponseTypes.d.ts +5 -0
  187. package/types/buildSchemaType.d.ts +19 -0
  188. package/types/buildTopLevelIndexFile.d.ts +5 -0
  189. package/types/helpers/nameConstructors.d.ts +28 -0
  190. package/types/helpers/nameUtils.d.ts +25 -0
  191. package/types/helpers/operationHelpers.d.ts +9 -0
  192. package/types/helpers/schemaHelpers.d.ts +4 -0
  193. package/types/helpers/shortcutMethods.d.ts +3 -0
  194. package/types/index.d.ts +25 -0
  195. package/types/interfaces.d.ts +186 -0
  196. package/types/metadata/buildApiExtractorConfig.d.ts +5 -0
  197. package/types/metadata/buildESLintConfig.d.ts +5 -0
  198. package/types/metadata/buildLicenseFile.d.ts +5 -0
  199. package/types/metadata/buildPackageFile.d.ts +5 -0
  200. package/types/metadata/buildReadmeFile.d.ts +5 -0
  201. package/types/metadata/buildRollupConfig.d.ts +5 -0
  202. package/types/metadata/buildTsConfig.d.ts +5 -0
  203. package/types/static/paginateContent.d.ts +1 -0
  204. package/types/static/pollingContent.d.ts +1 -0
  205. package/types/test/buildEnvFile.d.ts +9 -0
  206. package/types/test/buildKarmaConfig.d.ts +5 -0
  207. package/types/test/buildRecordedClient.d.ts +5 -0
  208. package/types/test/buildSampleTest.d.ts +5 -0
  209. package/types/test/template.d.ts +5 -0
@@ -0,0 +1,45 @@
1
+ {
2
+ "files": {
3
+ "packages/rlc-common/.rush/temp/shrinkwrap-deps.json": "c223396b7a3330aefd2e3cf84f3e592ab3fc6c63",
4
+ "packages/rlc-common/CHANGELOG.md": "b4485b7c99af565e46f75a78db9228762c3abab3",
5
+ "packages/rlc-common/package.json": "b7f50bc99bde67b8f6463d0f7791ca354c586ff3",
6
+ "packages/rlc-common/publishPackage.js": "3512e26d1199937b1962f3b4189aa9c506d9da1a",
7
+ "packages/rlc-common/src/buildClient.ts": "877de59ce8138efcf089a3e87807770c751c9ae5",
8
+ "packages/rlc-common/src/buildClientDefinitions.ts": "9f2772347ca4ef8539bb55339000ed00a53db077",
9
+ "packages/rlc-common/src/buildIndexFile.ts": "51d58678165108fc34e3e3a9fa23e6ec1f7be7a1",
10
+ "packages/rlc-common/src/buildIsUnexpectedHelper.ts": "a082e70dc1360a141c8427a064bc23586a6af4ae",
11
+ "packages/rlc-common/src/buildMethodShortcuts.ts": "5a4f96895b17402b9570c2600b227421035db052",
12
+ "packages/rlc-common/src/buildObjectTypes.ts": "1fa988b1adc981eab3d3642e6f38c674989a2f3f",
13
+ "packages/rlc-common/src/buildPaginateHelper.ts": "bfa91271cfd4c5411331db01d667cd82f0096e2b",
14
+ "packages/rlc-common/src/buildParameterTypes.ts": "6786c32af1d31189f61e99d7ab8e44ad2aa40629",
15
+ "packages/rlc-common/src/buildPollingHelper.ts": "1aeeef5b9cc4f9098632b7fb79ba01aa5e686d43",
16
+ "packages/rlc-common/src/buildResponseTypes.ts": "e6cfeb8281e55b7280ac2ff004965faa583b5096",
17
+ "packages/rlc-common/src/buildSchemaType.ts": "e12fb652013da355ad611006984987b6d25e677e",
18
+ "packages/rlc-common/src/buildTopLevelIndexFile.ts": "f51e4a47d71e46c27337cf5c95f54f1d7027d5c8",
19
+ "packages/rlc-common/src/helpers/nameConstructors.ts": "869688f10a5a79260f087fbcb6906ac8b4e45ebb",
20
+ "packages/rlc-common/src/helpers/nameUtils.ts": "8dd38a55e04af709699fbf25c0b775f2a75dee47",
21
+ "packages/rlc-common/src/helpers/operationHelpers.ts": "063fbc346d1c457c33faa24fee73634b3de4ad06",
22
+ "packages/rlc-common/src/helpers/schemaHelpers.ts": "c600e089f770a376cf5499294c7ec64a939747d5",
23
+ "packages/rlc-common/src/helpers/shortcutMethods.ts": "5f83fcf81df3f0a64d0a35deaf56b951ab119539",
24
+ "packages/rlc-common/src/index.ts": "72222a5889cd28a0bfb52cdd417f607513201817",
25
+ "packages/rlc-common/src/interfaces.ts": "c59ebfe045c9c4f0ee7606fe8b020854244805b7",
26
+ "packages/rlc-common/src/metadata/buildApiExtractorConfig.ts": "4bcc63b3551d923d2881adb015b23978a2539e14",
27
+ "packages/rlc-common/src/metadata/buildESLintConfig.ts": "b0530cba08bf5e29cc1d307b93363f66c1e6b81d",
28
+ "packages/rlc-common/src/metadata/buildLicenseFile.ts": "ce4083770e48d3b0dd670f7efc324a7fed10dac4",
29
+ "packages/rlc-common/src/metadata/buildPackageFile.ts": "e5f742816af929fa597183e2a788683488877a86",
30
+ "packages/rlc-common/src/metadata/buildReadmeFile.ts": "298f6012f1f3228652992cd160f6162a1ff3fa5a",
31
+ "packages/rlc-common/src/metadata/buildRollupConfig.ts": "56a0ac2b69266d8a3192981abc4c09fcde444634",
32
+ "packages/rlc-common/src/metadata/buildTsConfig.ts": "861d8af19f1e8658b7fef02b51c63d4f006c76f3",
33
+ "packages/rlc-common/src/static/paginateContent.ts": "eba259fe2bf92d05b8b09381a642631f2158389f",
34
+ "packages/rlc-common/src/static/pollingContent.ts": "5cde360e86c9b58a7cd368a664b2063988891a56",
35
+ "packages/rlc-common/src/test/buildEnvFile.ts": "4759b68f0216d2e060810b045baf47b6d5ecf849",
36
+ "packages/rlc-common/src/test/buildKarmaConfig.ts": "494c6a2b6621fe162d4e9c29706a4ceead343555",
37
+ "packages/rlc-common/src/test/buildRecordedClient.ts": "fb4b5bb7f98d42fe15dd040a8ddbdf2b00a7cebe",
38
+ "packages/rlc-common/src/test/buildSampleTest.ts": "5a96d955be175e1f2d38caaafd8c5d6d3410256e",
39
+ "packages/rlc-common/src/test/template.ts": "0c85c103a31087c0244072ffce05bdd0435cb985",
40
+ "packages/rlc-common/tsconfig-cjs.json": "dc2e21bca1015edfa25099555abdf3ee2266c7da",
41
+ "packages/rlc-common/tsconfig-common.json": "84c874d137a56103d2fa8b5ab33744e25540874c",
42
+ "packages/rlc-common/tsconfig.json": "2ce338052b40a33cef04fa132458b8630ae1a809"
43
+ },
44
+ "arguments": "rimraf dist/* dist-esm/* types/* && tsc -p tsconfig.json && tsc -p tsconfig-cjs.json && node publishPackage.js "
45
+ }
@@ -0,0 +1,72 @@
1
+ {
2
+ "@cspotcode/source-map-support@0.8.1": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==",
3
+ "@jridgewell/resolve-uri@3.1.0": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
4
+ "@jridgewell/sourcemap-codec@1.4.14": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==",
5
+ "@jridgewell/trace-mapping@0.3.9": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
6
+ "@nodelib/fs.scandir@2.1.5": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
7
+ "@nodelib/fs.stat@2.0.5": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
8
+ "@nodelib/fs.walk@1.2.8": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
9
+ "@ts-morph/common@0.16.0": "sha512-SgJpzkTgZKLKqQniCjLaE3c2L2sdL7UShvmTmPBejAKd2OKV/yfMpQ2IWpAuA+VY5wy7PkSUaEObIqEK6afFuw==",
10
+ "@tsconfig/node10@1.0.9": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==",
11
+ "@tsconfig/node12@1.0.11": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==",
12
+ "@tsconfig/node14@1.0.3": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==",
13
+ "@tsconfig/node16@1.0.3": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==",
14
+ "@types/fs-extra@8.1.2": "sha512-SvSrYXfWSc7R4eqnOzbQF4TZmfpNSM9FrSWLU3EUnWBuyZqNBOrv1B1JA3byUDPUl9z4Ab3jeZG2eDdySlgNMg==",
15
+ "@types/lodash@4.14.186": "sha512-eHcVlLXP0c2FlMPm56ITode2AgLMSa6aJ05JTTbYbI+7EMkCEE5qk2E41d5g2lCVTqRe0GnnRFurmlCsDODrPw==",
16
+ "@types/node@18.8.4": "sha512-WdlVphvfR/GJCLEMbNA8lJ0lhFNBj4SW3O+O5/cEGw9oYrv0al9zTwuQsq+myDUXgNx2jgBynoVgZ2MMJ6pbow==",
17
+ "acorn-walk@8.2.0": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==",
18
+ "acorn@8.8.0": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==",
19
+ "arg@4.1.3": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
20
+ "balanced-match@1.0.2": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
21
+ "brace-expansion@1.1.11": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
22
+ "brace-expansion@2.0.1": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
23
+ "braces@3.0.2": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
24
+ "code-block-writer@11.0.3": "sha512-NiujjUFB4SwScJq2bwbYUtXbZhBSlY6vYzm++3Q6oC+U+injTqfPYFK8wS9COOmb2lueqp0ZRB4nK1VYeHgNyw==",
25
+ "concat-map@0.0.1": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
26
+ "create-require@1.1.1": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
27
+ "diff@4.0.2": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
28
+ "fast-glob@3.2.12": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==",
29
+ "fastq@1.13.0": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==",
30
+ "fill-range@7.0.1": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
31
+ "fs-extra@10.1.0": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
32
+ "fs.realpath@1.0.0": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
33
+ "glob-parent@5.1.2": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
34
+ "glob@7.2.3": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
35
+ "graceful-fs@4.2.10": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==",
36
+ "handlebars@4.7.7": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==",
37
+ "inflight@1.0.6": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
38
+ "inherits@2.0.4": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
39
+ "is-extglob@2.1.1": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
40
+ "is-glob@4.0.3": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
41
+ "is-number@7.0.0": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
42
+ "jsonfile@6.1.0": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
43
+ "lodash@4.17.21": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
44
+ "make-error@1.3.6": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
45
+ "merge2@1.4.1": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
46
+ "micromatch@4.0.5": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
47
+ "minimatch@3.1.2": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
48
+ "minimatch@5.1.0": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==",
49
+ "minimist@1.2.7": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==",
50
+ "mkdirp@1.0.4": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
51
+ "neo-async@2.6.2": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
52
+ "once@1.4.0": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
53
+ "path-browserify@1.0.1": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==",
54
+ "path-is-absolute@1.0.1": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
55
+ "picomatch@2.3.1": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
56
+ "prettier@2.7.1": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==",
57
+ "queue-microtask@1.2.3": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
58
+ "reusify@1.0.4": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
59
+ "rimraf@3.0.2": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
60
+ "run-parallel@1.2.0": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
61
+ "source-map@0.6.1": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
62
+ "to-regex-range@5.0.1": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
63
+ "ts-morph@15.1.0": "sha512-RBsGE2sDzUXFTnv8Ba22QfeuKbgvAGJFuTN7HfmIRUkgT/NaVLfDM/8OFm2NlFkGlWEXdpW5OaFIp1jvqdDuOg==",
64
+ "ts-node@10.9.1_ba95c5ae7655382c4a8bc860e411d66d": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==",
65
+ "typescript@4.8.4": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==",
66
+ "uglify-js@3.17.3": "sha512-JmMFDME3iufZnBpyKL+uS78LRiC+mK55zWfM5f/pWBJfpOttXAqYfdDGRukYhJuyRinvPVAtUhvy7rlDybNtFg==",
67
+ "universalify@2.0.0": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
68
+ "v8-compile-cache-lib@3.0.1": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==",
69
+ "wordwrap@1.0.0": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==",
70
+ "wrappy@1.0.2": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
71
+ "yn@3.1.1": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q=="
72
+ }
package/CHANGELOG.md ADDED
@@ -0,0 +1,3 @@
1
+ ## 1.0.0-beta.1 (2022-10-13)
2
+
3
+ - Initial preview release of the Autorest Typescript/Javascript RLC Common libraries.
@@ -0,0 +1,198 @@
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT License.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.buildClient = void 0;
6
+ const ts_morph_1 = require("ts-morph");
7
+ const path = require("path");
8
+ const nameUtils_js_1 = require("./helpers/nameUtils.js");
9
+ const schemaHelpers_js_1 = require("./helpers/schemaHelpers.js");
10
+ const buildMethodShortcuts_js_1 = require("./buildMethodShortcuts.js");
11
+ function buildClient(model) {
12
+ var _a;
13
+ const name = (0, nameUtils_js_1.normalizeName)(model.libraryName, nameUtils_js_1.NameType.File);
14
+ const { srcPath } = model;
15
+ const project = new ts_morph_1.Project();
16
+ const filePath = path.join(srcPath, `${name}.ts`);
17
+ const clientFile = project.createSourceFile(filePath, undefined, {
18
+ overwrite: true
19
+ });
20
+ // Get all paths
21
+ const clientName = model.libraryName;
22
+ const urlParameters = (_a = model === null || model === void 0 ? void 0 : model.urlInfo) === null || _a === void 0 ? void 0 : _a.urlParameters;
23
+ if (!model.options) {
24
+ return undefined;
25
+ }
26
+ const { multiClient, batch } = model.options;
27
+ const { addCredentials, credentialScopes, credentialKeyHeaderName } = model.options;
28
+ const credentialTypes = credentialScopes && credentialScopes.length > 0 ? ["TokenCredential"] : [];
29
+ if (credentialKeyHeaderName) {
30
+ credentialTypes.push("KeyCredential");
31
+ }
32
+ const commonClientParams = [
33
+ ...(urlParameters !== null && urlParameters !== void 0 ? urlParameters : []),
34
+ ...(addCredentials === false ||
35
+ !isSecurityInfoDefined(credentialScopes, credentialKeyHeaderName)
36
+ ? []
37
+ : [{ name: "credentials", type: credentialTypes.join(" | ") }])
38
+ ];
39
+ const clientInterfaceName = clientName.endsWith("Client")
40
+ ? `${clientName}`
41
+ : `${clientName}Client`;
42
+ const functionStatement = {
43
+ isExported: true,
44
+ name: `createClient`,
45
+ parameters: [
46
+ ...commonClientParams,
47
+ { name: "options", type: "ClientOptions = {}" }
48
+ ],
49
+ docs: [
50
+ {
51
+ description: `Initialize a new instance of the class ${clientInterfaceName} class. \n` +
52
+ commonClientParams
53
+ .map((param) => {
54
+ var _a;
55
+ return `@param ${param.name} type: ${param.type} ${(_a = param.description) !== null && _a !== void 0 ? _a : ""}`;
56
+ })
57
+ .join("\n")
58
+ }
59
+ ],
60
+ returnType: clientInterfaceName,
61
+ isDefaultExport: false,
62
+ statements: getClientFactoryBody(model, clientInterfaceName)
63
+ };
64
+ if (!multiClient || !batch || batch.length === 1) {
65
+ functionStatement.isDefaultExport = true;
66
+ }
67
+ clientFile.addFunction(functionStatement);
68
+ clientFile.addImportDeclarations([
69
+ {
70
+ namedImports: ["getClient", "ClientOptions"],
71
+ moduleSpecifier: "@azure-rest/core-client"
72
+ }
73
+ ]);
74
+ if (addCredentials &&
75
+ isSecurityInfoDefined(credentialScopes, credentialKeyHeaderName)) {
76
+ clientFile.addImportDeclarations([
77
+ {
78
+ namedImports: credentialTypes,
79
+ moduleSpecifier: "@azure/core-auth"
80
+ }
81
+ ]);
82
+ }
83
+ clientFile.addImportDeclarations([
84
+ {
85
+ namedImports: [`${clientInterfaceName}`],
86
+ moduleSpecifier: "./clientDefinitions"
87
+ }
88
+ ]);
89
+ return { path: filePath, content: clientFile.getFullText() };
90
+ }
91
+ exports.buildClient = buildClient;
92
+ function isSecurityInfoDefined(credentialScopes, credentialKeyHeaderName) {
93
+ return ((credentialScopes && credentialScopes.length > 0) || credentialKeyHeaderName);
94
+ }
95
+ function getClientFactoryBody(model, clientTypeName) {
96
+ var _a;
97
+ if (!model.options || !model.options.packageDetails || !model.urlInfo) {
98
+ return "";
99
+ }
100
+ const { includeShortcuts, packageDetails } = model.options;
101
+ let clientPackageName = (_a = packageDetails.nameWithoutScope) !== null && _a !== void 0 ? _a : "";
102
+ const packageVersion = packageDetails.version;
103
+ const { endpoint, urlParameters } = model.urlInfo;
104
+ let baseUrl;
105
+ if (urlParameters && endpoint) {
106
+ let parsedEndpoint = endpoint;
107
+ urlParameters.forEach((urlParameter) => {
108
+ parsedEndpoint = parsedEndpoint.replace(`{${urlParameter.name}}`, `\${${urlParameter.name}}`);
109
+ });
110
+ baseUrl = `options.baseUrl ?? \`${parsedEndpoint}\``;
111
+ }
112
+ else {
113
+ baseUrl = `options.baseUrl ?? "${endpoint}"`;
114
+ }
115
+ const apiVersion = getApiVersion(model);
116
+ let apiVersionStatement = "";
117
+ if (apiVersion) {
118
+ apiVersionStatement = `options.apiVersion = options.apiVersion ?? "${apiVersion}"`;
119
+ }
120
+ if (!clientPackageName.endsWith("-rest")) {
121
+ clientPackageName = clientPackageName + "-rest";
122
+ }
123
+ const userAgentInfoStatement = "const userAgentInfo = `azsdk-js-" +
124
+ clientPackageName +
125
+ "/" +
126
+ packageVersion +
127
+ "`;";
128
+ const userAgentPrefix = "options.userAgentOptions && options.userAgentOptions.userAgentPrefix ? `${options.userAgentOptions.userAgentPrefix} ${userAgentInfo}`: `${userAgentInfo}`;";
129
+ const userAgentStatement = {
130
+ kind: ts_morph_1.StructureKind.VariableStatement,
131
+ declarationKind: ts_morph_1.VariableDeclarationKind.Const,
132
+ declarations: [{ name: "userAgentPrefix", initializer: userAgentPrefix }]
133
+ };
134
+ const userAgentOptionsStatement = `options = {
135
+ ...options,
136
+ userAgentOptions: {
137
+ userAgentPrefix
138
+ }
139
+ }`;
140
+ const baseUrlStatement = {
141
+ kind: ts_morph_1.StructureKind.VariableStatement,
142
+ declarationKind: ts_morph_1.VariableDeclarationKind.Const,
143
+ declarations: [{ name: "baseUrl", initializer: baseUrl }]
144
+ };
145
+ const { credentialScopes, credentialKeyHeaderName } = model.options;
146
+ const scopesString = credentialScopes && credentialScopes.length
147
+ ? credentialScopes.map((cs) => `"${cs}"`).join(", ")
148
+ : "";
149
+ const scopes = scopesString ? `scopes: [${scopesString}],` : "";
150
+ const apiKeyHeaderName = credentialKeyHeaderName
151
+ ? `apiKeyHeaderName: "${credentialKeyHeaderName}",`
152
+ : "";
153
+ const credentials = scopes || apiKeyHeaderName
154
+ ? `options = {
155
+ ...options,
156
+ credentials: {
157
+ ${scopes}
158
+ ${apiKeyHeaderName}
159
+ },
160
+ }`
161
+ : "";
162
+ const getClient = `const client = getClient(
163
+ baseUrl, ${credentials ? "credentials," : ""} options
164
+ ) as ${clientTypeName};
165
+ `;
166
+ let returnStatement = `return client;`;
167
+ if (includeShortcuts) {
168
+ const shortcutImplementations = (0, buildMethodShortcuts_js_1.buildMethodShortcutImplementation)(model.paths);
169
+ const shortcutBody = Object.keys(shortcutImplementations).map((key) => {
170
+ // If the operation group has an empty name, it means its operations are client
171
+ // level operations so we need to spread the definitions. Otherwise they are
172
+ // within an operation group so we add them as key: value
173
+ return `${key && key !== "client" ? `"${key}":` : "..."} {${shortcutImplementations[key].join()}}`;
174
+ });
175
+ returnStatement = `return { ...client, ${shortcutBody.join()} };`;
176
+ }
177
+ return [
178
+ baseUrlStatement,
179
+ apiVersionStatement,
180
+ credentials,
181
+ userAgentInfoStatement,
182
+ userAgentStatement,
183
+ userAgentOptionsStatement,
184
+ getClient,
185
+ returnStatement
186
+ ];
187
+ }
188
+ function getApiVersion(model) {
189
+ if (!model.apiVersionParam) {
190
+ return undefined;
191
+ }
192
+ if (model.apiVersionParam &&
193
+ (0, schemaHelpers_js_1.isConstantSchema)(model.apiVersionParam)) {
194
+ return model.apiVersionParam.default;
195
+ }
196
+ return undefined;
197
+ }
198
+ //# sourceMappingURL=buildClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildClient.js","sourceRoot":"","sources":["../src/buildClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,160 @@
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT License.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.buildClientDefinitions = void 0;
6
+ const ts_morph_1 = require("ts-morph");
7
+ const path = require("path");
8
+ const operationHelpers_js_1 = require("./helpers/operationHelpers.js");
9
+ const shortcutMethods_js_1 = require("./helpers/shortcutMethods.js");
10
+ const buildMethodShortcuts_js_1 = require("./buildMethodShortcuts.js");
11
+ const nameUtils_js_1 = require("./helpers/nameUtils.js");
12
+ const nameUtils_js_2 = require("./helpers/nameUtils.js");
13
+ function buildClientDefinitions(model) {
14
+ var _a;
15
+ const options = {
16
+ importedParameters: new Set(),
17
+ importedResponses: new Set(),
18
+ clientImports: new Set()
19
+ };
20
+ const project = new ts_morph_1.Project();
21
+ const srcPath = model.srcPath;
22
+ const filePath = path.join(srcPath, `clientDefinitions.ts`);
23
+ const clientDefinitionsFile = project.createSourceFile(filePath, undefined, {
24
+ overwrite: true
25
+ });
26
+ // Get all paths
27
+ const pathDictionary = model.paths;
28
+ let shortcuts = [];
29
+ // There may be operations without an operation group, those shortcut
30
+ // methods need to be handled differently.
31
+ let shortcutsInOperationGroup = [];
32
+ if ((_a = model.options) === null || _a === void 0 ? void 0 : _a.includeShortcuts) {
33
+ shortcuts = (0, shortcutMethods_js_1.generateMethodShortcuts)(model.paths);
34
+ clientDefinitionsFile.addInterfaces(shortcuts);
35
+ shortcutsInOperationGroup = shortcuts
36
+ .filter((s) => s.name !== "ClientOperations")
37
+ .map((s) => getShortcutName(s.name));
38
+ }
39
+ clientDefinitionsFile.addInterface({
40
+ name: "Routes",
41
+ isExported: true,
42
+ callSignatures: getPathFirstRoutesInterfaceDefinition(pathDictionary, clientDefinitionsFile, options)
43
+ });
44
+ const clientName = model.libraryName;
45
+ const clientInterfaceName = clientName.endsWith("Client")
46
+ ? `${clientName}`
47
+ : `${clientName}Client`;
48
+ clientDefinitionsFile.addTypeAlias({
49
+ isExported: true,
50
+ name: clientInterfaceName,
51
+ type: ts_morph_1.Writers.intersectionType("Client", ts_morph_1.Writers.objectType({
52
+ properties: [
53
+ { name: "path", type: "Routes" },
54
+ ...shortcutsInOperationGroup
55
+ ]
56
+ }),
57
+ // If the length of shortcuts in operation group and all shortcutsInOperationGroup
58
+ // is the same, then we don't have any operations at the client level
59
+ // Otherwise we need to make the client interface name an union with the
60
+ // definition of all client level shortcut methods
61
+ ...(shortcutsInOperationGroup.length !== shortcuts.length
62
+ ? [`ClientOperations`]
63
+ : []))
64
+ });
65
+ if (options.importedParameters.size) {
66
+ clientDefinitionsFile.addImportDeclaration({
67
+ namedImports: [...options.importedParameters],
68
+ moduleSpecifier: "./parameters"
69
+ });
70
+ }
71
+ if (options.importedResponses.size) {
72
+ clientDefinitionsFile.addImportDeclaration({
73
+ namedImports: [...options.importedResponses],
74
+ moduleSpecifier: "./responses"
75
+ });
76
+ }
77
+ options.clientImports.add("Client");
78
+ options.clientImports.add("StreamableMethod");
79
+ clientDefinitionsFile.addImportDeclarations([
80
+ {
81
+ namedImports: [...options.clientImports],
82
+ moduleSpecifier: "@azure-rest/core-client"
83
+ }
84
+ ]);
85
+ return { path: filePath, content: clientDefinitionsFile.getFullText() };
86
+ }
87
+ exports.buildClientDefinitions = buildClientDefinitions;
88
+ function getPathFirstRoutesInterfaceDefinition(paths, sourcefile, options) {
89
+ const operationGroupCount = getOperationGroupCount(paths);
90
+ const signatures = [];
91
+ for (const key of Object.keys(paths)) {
92
+ for (const verb of Object.keys(paths[key].methods)) {
93
+ for (const method of paths[key].methods[verb]) {
94
+ options.importedParameters.add(method.optionsName);
95
+ method.returnType
96
+ .split(" | ")
97
+ .forEach((item) => options.importedResponses.add(item));
98
+ }
99
+ }
100
+ generatePathFirstRouteMethodsDefinition(paths[key], operationGroupCount, sourcefile);
101
+ const pathParams = paths[key].pathParameters;
102
+ signatures.push({
103
+ docs: [
104
+ `Resource for '${key
105
+ .replace(/}/g, "\\}")
106
+ .replace(/{/g, "\\{")}' has methods for the following verbs: ${Object.keys(paths[key].methods).join(", ")}`
107
+ ],
108
+ parameters: [
109
+ { name: "path", type: `"${key}"` },
110
+ ...(0, operationHelpers_js_1.getPathParamDefinitions)(pathParams)
111
+ ],
112
+ returnType: getOperationReturnTypeName(paths[key], getOperationGroupCount(paths)),
113
+ kind: ts_morph_1.StructureKind.CallSignature
114
+ });
115
+ }
116
+ return signatures;
117
+ }
118
+ function getOperationGroupCount(paths) {
119
+ const operationGroups = Object.keys(paths)
120
+ .map((p) => paths[p].operationGroupName)
121
+ .filter((p) => p && p !== "Client");
122
+ const uniqueNames = new Set(operationGroups);
123
+ return uniqueNames.size;
124
+ }
125
+ function getOperationReturnTypeName({ operationGroupName, name }, operationGroupCount) {
126
+ if (operationGroupCount > 1 &&
127
+ operationGroupName &&
128
+ operationGroupName !== "Client") {
129
+ return `${(0, nameUtils_js_2.pascalCase)(operationGroupName)}${(0, nameUtils_js_2.pascalCase)(name)}`;
130
+ }
131
+ return (0, nameUtils_js_2.pascalCase)(name);
132
+ }
133
+ function generatePathFirstRouteMethodsDefinition(path, operationGroupCount, file) {
134
+ const methodDefinitions = (0, operationHelpers_js_1.buildMethodDefinitions)(path.methods);
135
+ const interfaceDef = {
136
+ methods: methodDefinitions,
137
+ name: getOperationReturnTypeName(path, operationGroupCount),
138
+ isExported: true
139
+ };
140
+ file.addInterface(interfaceDef);
141
+ }
142
+ function getShortcutName(interfaceName) {
143
+ const endIndex = shouldKeepSuffix(interfaceName)
144
+ ? undefined
145
+ : interfaceName.length - "Operations".length;
146
+ const clientProperty = (0, nameUtils_js_1.normalizeName)(interfaceName.substring(0, endIndex), nameUtils_js_1.NameType.OperationGroup, true, buildMethodShortcuts_js_1.REST_CLIENT_RESERVED, nameUtils_js_1.CasingConvention.Camel);
147
+ return {
148
+ name: clientProperty,
149
+ type: interfaceName
150
+ };
151
+ }
152
+ function shouldKeepSuffix(name) {
153
+ const reservedNames = [
154
+ "pipelineOperations",
155
+ "pathOperations",
156
+ "pathUncheckedOperations"
157
+ ];
158
+ return reservedNames.some((r) => r.toLowerCase() === name.toLowerCase());
159
+ }
160
+ //# sourceMappingURL=buildClientDefinitions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildClientDefinitions.js","sourceRoot":"","sources":["../src/buildClientDefinitions.ts"],"names":[],"mappings":"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"}