@azure-tools/rlc-common 0.11.0-alpha.20230413.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (238) hide show
  1. package/.eslintrc.json +23 -0
  2. package/.prettierignore +1 -0
  3. package/.prettierrc +7 -0
  4. package/.rush/temp/package-deps_build.json +54 -0
  5. package/.rush/temp/shrinkwrap-deps.json +147 -0
  6. package/CHANGELOG.md +61 -0
  7. package/CONTRIBUTING.md +30 -0
  8. package/README.md +3 -0
  9. package/dist/buildClient.js +263 -0
  10. package/dist/buildClient.js.map +1 -0
  11. package/dist/buildClientDefinitions.js +161 -0
  12. package/dist/buildClientDefinitions.js.map +1 -0
  13. package/dist/buildIndexFile.js +225 -0
  14. package/dist/buildIndexFile.js.map +1 -0
  15. package/dist/buildIsUnexpectedHelper.js +224 -0
  16. package/dist/buildIsUnexpectedHelper.js.map +1 -0
  17. package/dist/buildMethodShortcuts.js +50 -0
  18. package/dist/buildMethodShortcuts.js.map +1 -0
  19. package/dist/buildObjectTypes.js +286 -0
  20. package/dist/buildObjectTypes.js.map +1 -0
  21. package/dist/buildPaginateHelper.js +30 -0
  22. package/dist/buildPaginateHelper.js.map +1 -0
  23. package/dist/buildParameterTypes.js +325 -0
  24. package/dist/buildParameterTypes.js.map +1 -0
  25. package/dist/buildPollingHelper.js +21 -0
  26. package/dist/buildPollingHelper.js.map +1 -0
  27. package/dist/buildResponseTypes.js +138 -0
  28. package/dist/buildResponseTypes.js.map +1 -0
  29. package/dist/buildSchemaType.js +65 -0
  30. package/dist/buildSchemaType.js.map +1 -0
  31. package/dist/buildSerializeHelper.js +35 -0
  32. package/dist/buildSerializeHelper.js.map +1 -0
  33. package/dist/buildTopLevelIndexFile.js +48 -0
  34. package/dist/buildTopLevelIndexFile.js.map +1 -0
  35. package/dist/helpers/apiVersionUtil.js +50 -0
  36. package/dist/helpers/apiVersionUtil.js.map +1 -0
  37. package/dist/helpers/nameConstructors.js +53 -0
  38. package/dist/helpers/nameConstructors.js.map +1 -0
  39. package/dist/helpers/nameUtils.js +196 -0
  40. package/dist/helpers/nameUtils.js.map +1 -0
  41. package/dist/helpers/operationHelpers.js +103 -0
  42. package/dist/helpers/operationHelpers.js.map +1 -0
  43. package/dist/helpers/pathUtils.js +13 -0
  44. package/dist/helpers/pathUtils.js.map +1 -0
  45. package/dist/helpers/schemaHelpers.js +27 -0
  46. package/dist/helpers/schemaHelpers.js.map +1 -0
  47. package/dist/helpers/shortcutMethods.js +46 -0
  48. package/dist/helpers/shortcutMethods.js.map +1 -0
  49. package/dist/index.js +46 -0
  50. package/dist/index.js.map +1 -0
  51. package/dist/interfaces.js +18 -0
  52. package/dist/interfaces.js.map +1 -0
  53. package/dist/metadata/buildApiExtractorConfig.js +56 -0
  54. package/dist/metadata/buildApiExtractorConfig.js.map +1 -0
  55. package/dist/metadata/buildESLintConfig.js +33 -0
  56. package/dist/metadata/buildESLintConfig.js.map +1 -0
  57. package/dist/metadata/buildLicenseFile.js +41 -0
  58. package/dist/metadata/buildLicenseFile.js.map +1 -0
  59. package/dist/metadata/buildPackageFile.js +274 -0
  60. package/dist/metadata/buildPackageFile.js.map +1 -0
  61. package/dist/metadata/buildReadmeFile.js +170 -0
  62. package/dist/metadata/buildReadmeFile.js.map +1 -0
  63. package/dist/metadata/buildRollupConfig.js +144 -0
  64. package/dist/metadata/buildRollupConfig.js.map +1 -0
  65. package/dist/metadata/buildTsConfig.js +72 -0
  66. package/dist/metadata/buildTsConfig.js.map +1 -0
  67. package/dist/package.json +1 -0
  68. package/dist/static/paginateContent.js +214 -0
  69. package/dist/static/paginateContent.js.map +1 -0
  70. package/dist/static/pollingContent.js +98 -0
  71. package/dist/static/pollingContent.js.map +1 -0
  72. package/dist/static/serializeHelper.js +30 -0
  73. package/dist/static/serializeHelper.js.map +1 -0
  74. package/dist/test/buildEnvFile.js +31 -0
  75. package/dist/test/buildEnvFile.js.map +1 -0
  76. package/dist/test/buildKarmaConfig.js +19 -0
  77. package/dist/test/buildKarmaConfig.js.map +1 -0
  78. package/dist/test/buildRecordedClient.js +22 -0
  79. package/dist/test/buildRecordedClient.js.map +1 -0
  80. package/dist/test/buildSampleTest.js +19 -0
  81. package/dist/test/buildSampleTest.js.map +1 -0
  82. package/dist/test/template.js +191 -0
  83. package/dist/test/template.js.map +1 -0
  84. package/dist-esm/buildClient.js +256 -0
  85. package/dist-esm/buildClient.js.map +1 -0
  86. package/dist-esm/buildClientDefinitions.js +156 -0
  87. package/dist-esm/buildClientDefinitions.js.map +1 -0
  88. package/dist-esm/buildIndexFile.js +220 -0
  89. package/dist-esm/buildIndexFile.js.map +1 -0
  90. package/dist-esm/buildIsUnexpectedHelper.js +220 -0
  91. package/dist-esm/buildIsUnexpectedHelper.js.map +1 -0
  92. package/dist-esm/buildMethodShortcuts.js +46 -0
  93. package/dist-esm/buildMethodShortcuts.js.map +1 -0
  94. package/dist-esm/buildObjectTypes.js +288 -0
  95. package/dist-esm/buildObjectTypes.js.map +1 -0
  96. package/dist-esm/buildPaginateHelper.js +26 -0
  97. package/dist-esm/buildPaginateHelper.js.map +1 -0
  98. package/dist-esm/buildParameterTypes.js +331 -0
  99. package/dist-esm/buildParameterTypes.js.map +1 -0
  100. package/dist-esm/buildPollingHelper.js +17 -0
  101. package/dist-esm/buildPollingHelper.js.map +1 -0
  102. package/dist-esm/buildResponseTypes.js +143 -0
  103. package/dist-esm/buildResponseTypes.js.map +1 -0
  104. package/dist-esm/buildSchemaType.js +60 -0
  105. package/dist-esm/buildSchemaType.js.map +1 -0
  106. package/dist-esm/buildSerializeHelper.js +31 -0
  107. package/dist-esm/buildSerializeHelper.js.map +1 -0
  108. package/dist-esm/buildTopLevelIndexFile.js +44 -0
  109. package/dist-esm/buildTopLevelIndexFile.js.map +1 -0
  110. package/dist-esm/helpers/apiVersionUtil.js +44 -0
  111. package/dist-esm/helpers/apiVersionUtil.js.map +1 -0
  112. package/dist-esm/helpers/nameConstructors.js +44 -0
  113. package/dist-esm/helpers/nameConstructors.js.map +1 -0
  114. package/dist-esm/helpers/nameUtils.js +187 -0
  115. package/dist-esm/helpers/nameUtils.js.map +1 -0
  116. package/dist-esm/helpers/operationHelpers.js +84 -0
  117. package/dist-esm/helpers/operationHelpers.js.map +1 -0
  118. package/dist-esm/helpers/pathUtils.js +9 -0
  119. package/dist-esm/helpers/pathUtils.js.map +1 -0
  120. package/dist-esm/helpers/schemaHelpers.js +21 -0
  121. package/dist-esm/helpers/schemaHelpers.js.map +1 -0
  122. package/dist-esm/helpers/shortcutMethods.js +42 -0
  123. package/dist-esm/helpers/shortcutMethods.js.map +1 -0
  124. package/dist-esm/index.js +30 -0
  125. package/dist-esm/index.js.map +1 -0
  126. package/dist-esm/interfaces.js +15 -0
  127. package/dist-esm/interfaces.js.map +1 -0
  128. package/dist-esm/metadata/buildApiExtractorConfig.js +51 -0
  129. package/dist-esm/metadata/buildApiExtractorConfig.js.map +1 -0
  130. package/dist-esm/metadata/buildESLintConfig.js +28 -0
  131. package/dist-esm/metadata/buildESLintConfig.js.map +1 -0
  132. package/dist-esm/metadata/buildLicenseFile.js +36 -0
  133. package/dist-esm/metadata/buildLicenseFile.js.map +1 -0
  134. package/dist-esm/metadata/buildPackageFile.js +276 -0
  135. package/dist-esm/metadata/buildPackageFile.js.map +1 -0
  136. package/dist-esm/metadata/buildReadmeFile.js +167 -0
  137. package/dist-esm/metadata/buildReadmeFile.js.map +1 -0
  138. package/dist-esm/metadata/buildRollupConfig.js +139 -0
  139. package/dist-esm/metadata/buildRollupConfig.js.map +1 -0
  140. package/dist-esm/metadata/buildTsConfig.js +67 -0
  141. package/dist-esm/metadata/buildTsConfig.js.map +1 -0
  142. package/dist-esm/package.json +1 -0
  143. package/dist-esm/static/paginateContent.js +211 -0
  144. package/dist-esm/static/paginateContent.js.map +1 -0
  145. package/dist-esm/static/pollingContent.js +95 -0
  146. package/dist-esm/static/pollingContent.js.map +1 -0
  147. package/dist-esm/static/serializeHelper.js +27 -0
  148. package/dist-esm/static/serializeHelper.js.map +1 -0
  149. package/dist-esm/test/buildEnvFile.js +24 -0
  150. package/dist-esm/test/buildEnvFile.js.map +1 -0
  151. package/dist-esm/test/buildKarmaConfig.js +14 -0
  152. package/dist-esm/test/buildKarmaConfig.js.map +1 -0
  153. package/dist-esm/test/buildRecordedClient.js +17 -0
  154. package/dist-esm/test/buildRecordedClient.js.map +1 -0
  155. package/dist-esm/test/buildSampleTest.js +14 -0
  156. package/dist-esm/test/buildSampleTest.js.map +1 -0
  157. package/dist-esm/test/template.js +188 -0
  158. package/dist-esm/test/template.js.map +1 -0
  159. package/package.json +50 -0
  160. package/publishPackage.js +11 -0
  161. package/rlc-common.build.log +2 -0
  162. package/src/buildClient.ts +349 -0
  163. package/src/buildClientDefinitions.ts +242 -0
  164. package/src/buildIndexFile.ts +317 -0
  165. package/src/buildIsUnexpectedHelper.ts +247 -0
  166. package/src/buildMethodShortcuts.ts +75 -0
  167. package/src/buildObjectTypes.ts +449 -0
  168. package/src/buildPaginateHelper.ts +33 -0
  169. package/src/buildParameterTypes.ts +493 -0
  170. package/src/buildPollingHelper.ts +18 -0
  171. package/src/buildResponseTypes.ts +193 -0
  172. package/src/buildSchemaType.ts +85 -0
  173. package/src/buildSerializeHelper.ts +42 -0
  174. package/src/buildTopLevelIndexFile.ts +52 -0
  175. package/src/helpers/apiVersionUtil.ts +54 -0
  176. package/src/helpers/nameConstructors.ts +110 -0
  177. package/src/helpers/nameUtils.ts +227 -0
  178. package/src/helpers/operationHelpers.ts +119 -0
  179. package/src/helpers/pathUtils.ts +9 -0
  180. package/src/helpers/schemaHelpers.ts +25 -0
  181. package/src/helpers/shortcutMethods.ts +60 -0
  182. package/src/index.ts +30 -0
  183. package/src/interfaces.ts +235 -0
  184. package/src/metadata/buildApiExtractorConfig.ts +59 -0
  185. package/src/metadata/buildESLintConfig.ts +34 -0
  186. package/src/metadata/buildLicenseFile.ts +39 -0
  187. package/src/metadata/buildPackageFile.ts +334 -0
  188. package/src/metadata/buildReadmeFile.ts +231 -0
  189. package/src/metadata/buildRollupConfig.ts +147 -0
  190. package/src/metadata/buildTsConfig.ts +79 -0
  191. package/src/static/paginateContent.ts +210 -0
  192. package/src/static/pollingContent.ts +94 -0
  193. package/src/static/serializeHelper.ts +29 -0
  194. package/src/test/buildEnvFile.ts +26 -0
  195. package/src/test/buildKarmaConfig.ts +15 -0
  196. package/src/test/buildRecordedClient.ts +18 -0
  197. package/src/test/buildSampleTest.ts +15 -0
  198. package/src/test/template.ts +191 -0
  199. package/tsconfig-cjs.json +9 -0
  200. package/tsconfig-common.json +13 -0
  201. package/tsconfig.json +13 -0
  202. package/types/buildClient.d.ts +2 -0
  203. package/types/buildClientDefinitions.d.ts +5 -0
  204. package/types/buildIndexFile.d.ts +5 -0
  205. package/types/buildIsUnexpectedHelper.d.ts +5 -0
  206. package/types/buildMethodShortcuts.d.ts +4 -0
  207. package/types/buildObjectTypes.d.ts +15 -0
  208. package/types/buildPaginateHelper.d.ts +5 -0
  209. package/types/buildParameterTypes.d.ts +13 -0
  210. package/types/buildPollingHelper.d.ts +5 -0
  211. package/types/buildResponseTypes.d.ts +5 -0
  212. package/types/buildSchemaType.d.ts +19 -0
  213. package/types/buildSerializeHelper.d.ts +5 -0
  214. package/types/buildTopLevelIndexFile.d.ts +5 -0
  215. package/types/helpers/apiVersionUtil.d.ts +17 -0
  216. package/types/helpers/nameConstructors.d.ts +38 -0
  217. package/types/helpers/nameUtils.d.ts +25 -0
  218. package/types/helpers/operationHelpers.d.ts +13 -0
  219. package/types/helpers/pathUtils.d.ts +1 -0
  220. package/types/helpers/schemaHelpers.d.ts +4 -0
  221. package/types/helpers/shortcutMethods.d.ts +3 -0
  222. package/types/index.d.ts +27 -0
  223. package/types/interfaces.d.ts +206 -0
  224. package/types/metadata/buildApiExtractorConfig.d.ts +5 -0
  225. package/types/metadata/buildESLintConfig.d.ts +5 -0
  226. package/types/metadata/buildLicenseFile.d.ts +5 -0
  227. package/types/metadata/buildPackageFile.d.ts +5 -0
  228. package/types/metadata/buildReadmeFile.d.ts +5 -0
  229. package/types/metadata/buildRollupConfig.d.ts +5 -0
  230. package/types/metadata/buildTsConfig.d.ts +5 -0
  231. package/types/static/paginateContent.d.ts +1 -0
  232. package/types/static/pollingContent.d.ts +1 -0
  233. package/types/static/serializeHelper.d.ts +4 -0
  234. package/types/test/buildEnvFile.d.ts +9 -0
  235. package/types/test/buildKarmaConfig.d.ts +5 -0
  236. package/types/test/buildRecordedClient.d.ts +5 -0
  237. package/types/test/buildSampleTest.d.ts +5 -0
  238. package/types/test/template.d.ts +5 -0
package/.eslintrc.json ADDED
@@ -0,0 +1,23 @@
1
+ {
2
+ "parser": "@typescript-eslint/parser",
3
+ "parserOptions": { "project": "./tsconfig.json" },
4
+ "plugins": ["@typescript-eslint"],
5
+ "extends": ["eslint:recommended", "plugin:@typescript-eslint/recommended"],
6
+ "rules": {
7
+ "@typescript-eslint/no-non-null-assertion": "off",
8
+ "@typescript-eslint/no-explicit-any": "off",
9
+ "@typescript-eslint/no-inferrable-types": "off",
10
+ "@typescript-eslint/no-empty-function": "off",
11
+ "@typescript-eslint/no-empty-interface": "off",
12
+ "@typescript-eslint/no-unused-vars": [
13
+ "warn",
14
+ {
15
+ "varsIgnorePattern": "^_",
16
+ "argsIgnorePattern": ".*",
17
+ "ignoreRestSiblings": true
18
+ }
19
+ ],
20
+ "@typescript-eslint/no-floating-promises": "error",
21
+ "@typescript-eslint/no-misused-promises": "error"
22
+ }
23
+ }
@@ -0,0 +1 @@
1
+ ./dist
package/.prettierrc ADDED
@@ -0,0 +1,7 @@
1
+ {
2
+ "trailingComma": "none",
3
+ "semi": true,
4
+ "tabWidth": 2,
5
+ "printWidth": 80,
6
+ "endOfLine": "auto"
7
+ }
@@ -0,0 +1,54 @@
1
+ {
2
+ "files": {
3
+ "packages/rlc-common/.rush/temp/shrinkwrap-deps.json": "e5c8b1c55c2a9dbc2b7eaff94cf846dd0d88249a",
4
+ "packages/rlc-common/.eslintrc.json": "9fa7b6e2fbe4e63955031b8f8556b51c0a16a46b",
5
+ "packages/rlc-common/.prettierignore": "0f7a61c11bf3ac442a984b1136525710e0ebf6d3",
6
+ "packages/rlc-common/.prettierrc": "83e03202b2f3ad5b8df166a965fea698eccb0f90",
7
+ "packages/rlc-common/CHANGELOG.md": "6db845aec6f77b77b13192a72f0de01cf24797de",
8
+ "packages/rlc-common/CONTRIBUTING.md": "1e6cd52a747c7461956721c6d6b64466608a33ab",
9
+ "packages/rlc-common/README.md": "4089f33033d3351a176a9d9c6dcaff93cbe9514d",
10
+ "packages/rlc-common/package.json": "cd724082a15306df4bc52744f6aaeb69677d9e68",
11
+ "packages/rlc-common/publishPackage.js": "3512e26d1199937b1962f3b4189aa9c506d9da1a",
12
+ "packages/rlc-common/src/buildClient.ts": "fa0cb02d8d33e4cd8f43aed3e4e7133343dd57bf",
13
+ "packages/rlc-common/src/buildClientDefinitions.ts": "30b53ba0df822f0d2e146f78bb5b9b6f72983559",
14
+ "packages/rlc-common/src/buildIndexFile.ts": "2278197210bd764d92398b50b1b6c40b2206d8da",
15
+ "packages/rlc-common/src/buildIsUnexpectedHelper.ts": "4857caed649031514598bb3425cc3d0acac9fc3a",
16
+ "packages/rlc-common/src/buildMethodShortcuts.ts": "833a2b2965d7b71d5a696b358498a9f9e68d83d1",
17
+ "packages/rlc-common/src/buildObjectTypes.ts": "bfb85f686fe53b4d1c925cfd196b75cfc13af82b",
18
+ "packages/rlc-common/src/buildPaginateHelper.ts": "bfa91271cfd4c5411331db01d667cd82f0096e2b",
19
+ "packages/rlc-common/src/buildParameterTypes.ts": "99caa0918989011cad8b8444fdeca97631cb814a",
20
+ "packages/rlc-common/src/buildPollingHelper.ts": "1aeeef5b9cc4f9098632b7fb79ba01aa5e686d43",
21
+ "packages/rlc-common/src/buildResponseTypes.ts": "1fbfbeaa138977db65667a4df202b25354b50429",
22
+ "packages/rlc-common/src/buildSchemaType.ts": "91a4c4d9bb9a7669d0c1b03e5e1309305d8b9c04",
23
+ "packages/rlc-common/src/buildSerializeHelper.ts": "cffee1e51b2abda13e7adaf113f3d39a09ef29a1",
24
+ "packages/rlc-common/src/buildTopLevelIndexFile.ts": "1169845076e1790a342d966b3b6c9d0d7658df85",
25
+ "packages/rlc-common/src/helpers/apiVersionUtil.ts": "9682b91071325e9d2c85f970b84e33555927bdd3",
26
+ "packages/rlc-common/src/helpers/nameConstructors.ts": "b4dee57a1969ef7e6d8eb627034a89e1dddc7ca7",
27
+ "packages/rlc-common/src/helpers/nameUtils.ts": "bf86e9989a525846deee1389602a42f33bf525f6",
28
+ "packages/rlc-common/src/helpers/operationHelpers.ts": "d7ab38d9e825c0bc250df5ccf792ae01a13ae726",
29
+ "packages/rlc-common/src/helpers/pathUtils.ts": "166b066c7eacbc820bd6d366da965f17e25d46b3",
30
+ "packages/rlc-common/src/helpers/schemaHelpers.ts": "722c52837218b8cfafdc36fe29e675e0df4acb09",
31
+ "packages/rlc-common/src/helpers/shortcutMethods.ts": "cd52b21e05192c7b3fce3ff26eae2ac03ab62679",
32
+ "packages/rlc-common/src/index.ts": "21fc6e208b46d57df0b88dcab4364ae8ac770055",
33
+ "packages/rlc-common/src/interfaces.ts": "60c60991f21b967735304e98437317c3d9c795f3",
34
+ "packages/rlc-common/src/metadata/buildApiExtractorConfig.ts": "4bcc63b3551d923d2881adb015b23978a2539e14",
35
+ "packages/rlc-common/src/metadata/buildESLintConfig.ts": "b0530cba08bf5e29cc1d307b93363f66c1e6b81d",
36
+ "packages/rlc-common/src/metadata/buildLicenseFile.ts": "ce4083770e48d3b0dd670f7efc324a7fed10dac4",
37
+ "packages/rlc-common/src/metadata/buildPackageFile.ts": "624934001c9756039c75725fdb47b2b78641b09f",
38
+ "packages/rlc-common/src/metadata/buildReadmeFile.ts": "649510f75d04ba8438202b92b83a56d3d3206efe",
39
+ "packages/rlc-common/src/metadata/buildRollupConfig.ts": "56a0ac2b69266d8a3192981abc4c09fcde444634",
40
+ "packages/rlc-common/src/metadata/buildTsConfig.ts": "861d8af19f1e8658b7fef02b51c63d4f006c76f3",
41
+ "packages/rlc-common/src/static/paginateContent.ts": "48f146c05b7b803958dc1206680b7b6ce38010c5",
42
+ "packages/rlc-common/src/static/pollingContent.ts": "1cf63416f9be4716167301dd29c5e913f19bad23",
43
+ "packages/rlc-common/src/static/serializeHelper.ts": "0ddb576015992208f824f0f06f5c5e7de019c26e",
44
+ "packages/rlc-common/src/test/buildEnvFile.ts": "4759b68f0216d2e060810b045baf47b6d5ecf849",
45
+ "packages/rlc-common/src/test/buildKarmaConfig.ts": "494c6a2b6621fe162d4e9c29706a4ceead343555",
46
+ "packages/rlc-common/src/test/buildRecordedClient.ts": "fb4b5bb7f98d42fe15dd040a8ddbdf2b00a7cebe",
47
+ "packages/rlc-common/src/test/buildSampleTest.ts": "5a96d955be175e1f2d38caaafd8c5d6d3410256e",
48
+ "packages/rlc-common/src/test/template.ts": "a7244e9cdff9273ffe825f3e56546b5a04f23d50",
49
+ "packages/rlc-common/tsconfig-cjs.json": "dc2e21bca1015edfa25099555abdf3ee2266c7da",
50
+ "packages/rlc-common/tsconfig-common.json": "84c874d137a56103d2fa8b5ab33744e25540874c",
51
+ "packages/rlc-common/tsconfig.json": "2ce338052b40a33cef04fa132458b8630ae1a809"
52
+ },
53
+ "arguments": "rimraf dist/* dist-esm/* types/* && tsc -p tsconfig.json && tsc -p tsconfig-cjs.json && node publishPackage.js "
54
+ }
@@ -0,0 +1,147 @@
1
+ {
2
+ "@cspotcode/source-map-support@0.8.1": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==",
3
+ "@eslint-community/eslint-utils@4.4.0_eslint@8.38.0": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
4
+ "@eslint-community/regexpp@4.5.0": "sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ==",
5
+ "@eslint/eslintrc@2.0.2": "sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==",
6
+ "@eslint/js@8.38.0": "sha512-IoD2MfUnOV58ghIHCiil01PcohxjbYR/qCxsoC+xNgUwh1EY8jOOrYmu3d3a71+tJJ23uscEV4X2HJWMsPJu4g==",
7
+ "@humanwhocodes/config-array@0.11.8": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==",
8
+ "@humanwhocodes/module-importer@1.0.1": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
9
+ "@humanwhocodes/object-schema@1.2.1": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
10
+ "@jridgewell/resolve-uri@3.1.1": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==",
11
+ "@jridgewell/sourcemap-codec@1.4.15": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
12
+ "@jridgewell/trace-mapping@0.3.9": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
13
+ "@nodelib/fs.scandir@2.1.5": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
14
+ "@nodelib/fs.stat@2.0.5": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
15
+ "@nodelib/fs.walk@1.2.8": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
16
+ "@ts-morph/common@0.16.0": "sha512-SgJpzkTgZKLKqQniCjLaE3c2L2sdL7UShvmTmPBejAKd2OKV/yfMpQ2IWpAuA+VY5wy7PkSUaEObIqEK6afFuw==",
17
+ "@tsconfig/node10@1.0.9": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==",
18
+ "@tsconfig/node12@1.0.11": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==",
19
+ "@tsconfig/node14@1.0.3": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==",
20
+ "@tsconfig/node16@1.0.3": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==",
21
+ "@types/fs-extra@8.1.2": "sha512-SvSrYXfWSc7R4eqnOzbQF4TZmfpNSM9FrSWLU3EUnWBuyZqNBOrv1B1JA3byUDPUl9z4Ab3jeZG2eDdySlgNMg==",
22
+ "@types/lodash@4.14.192": "sha512-km+Vyn3BYm5ytMO13k9KTp27O75rbQ0NFw+U//g+PX7VZyjCioXaRFisqSIJRECljcTv73G3i6BpglNGHgUQ5A==",
23
+ "@types/node@18.15.11": "sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==",
24
+ "acorn-jsx@5.3.2_acorn@8.8.2": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
25
+ "acorn-walk@8.2.0": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==",
26
+ "acorn@8.8.2": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==",
27
+ "ajv@6.12.6": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
28
+ "ansi-regex@5.0.1": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
29
+ "ansi-styles@4.3.0": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
30
+ "arg@4.1.3": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
31
+ "argparse@2.0.1": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
32
+ "balanced-match@1.0.2": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
33
+ "brace-expansion@1.1.11": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
34
+ "brace-expansion@2.0.1": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
35
+ "braces@3.0.2": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
36
+ "callsites@3.1.0": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
37
+ "chalk@4.1.2": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
38
+ "code-block-writer@11.0.3": "sha512-NiujjUFB4SwScJq2bwbYUtXbZhBSlY6vYzm++3Q6oC+U+injTqfPYFK8wS9COOmb2lueqp0ZRB4nK1VYeHgNyw==",
39
+ "color-convert@2.0.1": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
40
+ "color-name@1.1.4": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
41
+ "concat-map@0.0.1": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
42
+ "create-require@1.1.1": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
43
+ "cross-spawn@7.0.3": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
44
+ "debug@4.3.4": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
45
+ "deep-is@0.1.4": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
46
+ "diff@4.0.2": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
47
+ "doctrine@3.0.0": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
48
+ "escape-string-regexp@4.0.0": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
49
+ "eslint-scope@7.1.1": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==",
50
+ "eslint-visitor-keys@3.4.0": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==",
51
+ "eslint@8.38.0": "sha512-pIdsD2jwlUGf/U38Jv97t8lq6HpaU/G9NKbYmpWpZGw3LdTNhZLbJePqxOXGB5+JEKfOPU/XLxYxFh03nr1KTg==",
52
+ "espree@9.5.1": "sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==",
53
+ "esquery@1.5.0": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==",
54
+ "esrecurse@4.3.0": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
55
+ "estraverse@5.3.0": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
56
+ "esutils@2.0.3": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
57
+ "fast-deep-equal@3.1.3": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
58
+ "fast-glob@3.2.12": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==",
59
+ "fast-json-stable-stringify@2.1.0": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
60
+ "fast-levenshtein@2.0.6": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
61
+ "fastq@1.15.0": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==",
62
+ "file-entry-cache@6.0.1": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
63
+ "fill-range@7.0.1": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
64
+ "find-up@5.0.0": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
65
+ "flat-cache@3.0.4": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
66
+ "flatted@3.2.7": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==",
67
+ "fs-extra@10.1.0": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
68
+ "fs.realpath@1.0.0": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
69
+ "glob-parent@5.1.2": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
70
+ "glob-parent@6.0.2": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
71
+ "glob@7.2.3": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
72
+ "globals@13.20.0": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==",
73
+ "graceful-fs@4.2.11": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
74
+ "grapheme-splitter@1.0.4": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==",
75
+ "handlebars@4.7.7": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==",
76
+ "has-flag@4.0.0": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
77
+ "ignore@5.2.4": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==",
78
+ "import-fresh@3.3.0": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
79
+ "imurmurhash@0.1.4": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
80
+ "inflight@1.0.6": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
81
+ "inherits@2.0.4": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
82
+ "is-extglob@2.1.1": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
83
+ "is-glob@4.0.3": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
84
+ "is-number@7.0.0": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
85
+ "is-path-inside@3.0.3": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
86
+ "isexe@2.0.0": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
87
+ "js-sdsl@4.4.0": "sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==",
88
+ "js-yaml@4.1.0": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
89
+ "json-schema-traverse@0.4.1": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
90
+ "json-stable-stringify-without-jsonify@1.0.1": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
91
+ "jsonfile@6.1.0": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
92
+ "levn@0.4.1": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
93
+ "locate-path@6.0.0": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
94
+ "lodash.merge@4.6.2": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
95
+ "lodash@4.17.21": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
96
+ "make-error@1.3.6": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
97
+ "merge2@1.4.1": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
98
+ "micromatch@4.0.5": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
99
+ "minimatch@3.1.2": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
100
+ "minimatch@5.1.6": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
101
+ "minimist@1.2.8": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
102
+ "mkdirp@1.0.4": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
103
+ "ms@2.1.2": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
104
+ "natural-compare@1.4.0": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
105
+ "neo-async@2.6.2": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
106
+ "once@1.4.0": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
107
+ "optionator@0.9.1": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
108
+ "p-limit@3.1.0": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
109
+ "p-locate@5.0.0": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
110
+ "parent-module@1.0.1": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
111
+ "path-browserify@1.0.1": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==",
112
+ "path-exists@4.0.0": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
113
+ "path-is-absolute@1.0.1": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
114
+ "path-key@3.1.1": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
115
+ "picomatch@2.3.1": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
116
+ "prelude-ls@1.2.1": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
117
+ "prettier@2.7.1": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==",
118
+ "punycode@2.3.0": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==",
119
+ "queue-microtask@1.2.3": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
120
+ "resolve-from@4.0.0": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
121
+ "reusify@1.0.4": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
122
+ "rimraf@3.0.2": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
123
+ "run-parallel@1.2.0": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
124
+ "shebang-command@2.0.0": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
125
+ "shebang-regex@3.0.0": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
126
+ "source-map@0.6.1": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
127
+ "strip-ansi@6.0.1": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
128
+ "strip-json-comments@3.1.1": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
129
+ "supports-color@7.2.0": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
130
+ "text-table@0.2.0": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
131
+ "to-regex-range@5.0.1": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
132
+ "ts-morph@15.1.0": "sha512-RBsGE2sDzUXFTnv8Ba22QfeuKbgvAGJFuTN7HfmIRUkgT/NaVLfDM/8OFm2NlFkGlWEXdpW5OaFIp1jvqdDuOg==",
133
+ "ts-node@10.9.1_09c0d3c39cd0f1cdb4581c815323892a": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==",
134
+ "type-check@0.4.0": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
135
+ "type-fest@0.20.2": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
136
+ "typescript@5.0.4": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==",
137
+ "uglify-js@3.17.4": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==",
138
+ "universalify@2.0.0": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
139
+ "uri-js@4.4.1": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
140
+ "v8-compile-cache-lib@3.0.1": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==",
141
+ "which@2.0.2": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
142
+ "word-wrap@1.2.3": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
143
+ "wordwrap@1.0.0": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==",
144
+ "wrappy@1.0.2": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
145
+ "yn@3.1.1": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
146
+ "yocto-queue@0.1.0": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="
147
+ }
package/CHANGELOG.md ADDED
@@ -0,0 +1,61 @@
1
+ ## 0.11.0 (2023-03-16)
2
+
3
+ - [Feature] Rename to typespec-ts. Please refer to pr [#1782](https://github.com/Azure/autorest.typescript/pull/1782).
4
+ - [Feature] Add support for null type. Please refer to pr [#1767](https://github.com/Azure/autorest.typescript/pull/1767).
5
+ - [Feature] Support named unions. Please refer to pr [#1765](https://github.com/Azure/autorest.typescript/pull/1765).
6
+ - [Bugfix] Fix api-version parameter in query. Please refer to pr [#1766](https://github.com/Azure/autorest.typescript/pull/1766).
7
+
8
+ ## 1.0.0-beta.10 (2023-02-14)
9
+
10
+ - [Feature] Import cadl-azure-core models from core libraries instead of generating it. Please refer to pr [#1665](https://github.com/Azure/autorest.typescript/pull/1665).
11
+ - [Feature] Support cadl compiler 0.40.0, Please refer to pr [#1750](https://github.com/Azure/autorest.typescript/pull/1750).
12
+ - [Bugfix] Fix path separator issue in Windows system. Please refer to pr [#1745](https://github.com/Azure/autorest.typescript/pull/1745).
13
+ - [Bugfix] Fix special charactor in property comment. Please refer to pr [#1726](https://github.com/Azure/autorest.typescript/pull/1726).
14
+
15
+ ## 1.0.0-beta.9 (2023-02-06)
16
+
17
+ - [Feature] Upgrade core-lro to 2.5.x, Please refer to pr [#1586](https://github.com/Azure/autorest.typescript/pull/1586).
18
+ - [Feature] Support collection format, Please refer to pr [#1740](https://github.com/Azure/autorest.typescript/pull/1740).
19
+ - [Feature] Support cadl compiler 0.39.0, Please refer to pr [#1732](https://github.com/Azure/autorest.typescript/pull/1732).
20
+ - [Feature] Upgrade prettier version in the package.json, Please refer to pr [#1741](https://github.com/Azure/autorest.typescript/pull/1741).
21
+
22
+ ## 1.0.0-beta.8 (2023-01-09)
23
+
24
+ - [Feature] Normalize parameter in host template and path uri, Please refer to pr [#1714](https://github.com/Azure/autorest.typescript/pull/1714).
25
+ - [BugFix] Fix a few minor issues. Please refer to pr [#1715](https://github.com/Azure/autorest.typescript/pull/1715) for more details.
26
+
27
+ ## 1.0.0-beta.7 (2022-12-21)
28
+
29
+ - [Feature] Support cadl compiler 0.38.0, Please refer to issue [#1704](https://github.com/Azure/autorest.typescript/pull/1704).
30
+ - [BugFix] Fix a few minor issues. Please refer to issue [#1700](https://github.com/Azure/autorest.typescript/pull/1700) for more details.
31
+
32
+ ## 1.0.0-beta.6 (2022-12-14)
33
+
34
+ - [Feature] Support ArmId schema. Please refer to issue [#1697](https://github.com/Azure/autorest.typescript/pull/1697) and issue [#1695](https://github.com/Azure/autorest.typescript/pull/1695).
35
+ - [Feature] Support multiple type union in cadl. Please refer to issue [#1694](https://github.com/Azure/autorest.typescript/pull/1694).
36
+ - [Feature] Enhance never and unknown and enum array type generation in cadl emitter. Please refer to issue [#1685](https://github.com/Azure/autorest.typescript/pull/1685) and issue [#1683](https://github.com/Azure/autorest.typescript/pull/1683).
37
+ - [Feature] Support custom wrapper in cadl emitter. Please refer to issue [#1690](https://github.com/Azure/autorest.typescript/pull/1690).
38
+ - [Feature] Sample generation enhancement. Please refer to pr [#1696](https://github.com/Azure/autorest.typescript/pull/1696).
39
+
40
+ ## 1.0.0-beta.5 (2022-11-30)
41
+
42
+ - [Feature] Support multiple clients from Cadl. Please refer to issue [#1593](https://github.com/Azure/autorest.typescript/issues/1593).
43
+ - [Feature] Support optional parameter for parametrized host. Please refer to issue [#1635](https://github.com/Azure/autorest.typescript/issues/1635) and issue [#1667](https://github.com/Azure/autorest.typescript/issues/1667).
44
+
45
+ ## 1.0.0-beta.4 (2022-11-16)
46
+
47
+ - [BugFix] Add the license header and please refer the [pr](https://github.com/Azure/autorest.typescript/pull/1663).
48
+ - [BugFix] Fix browser testing issue. Please refer to pr [#1656](https://github.com/Azure/autorest.typescript/pull/1656) for details.
49
+ - [BugFix] Fix the option azureSdkForJs issue. Please refer to pr [#1638](https://github.com/Azure/autorest.typescript/pull/1638) for details.
50
+ - [BugFix] Fix modle name in merge and patch issue. Please refer to pr [#1647](https://github.com/Azure/autorest.typescript/pull/1647) for details.
51
+ - [Feature] Update the contributing and readme document. Please refer to pr [#1627](https://github.com/Azure/autorest.typescript/pull/1627) for details.
52
+ - [Feature] Support multiple parameters for parametrized host. Please refer to pr [#1635](https://github.com/Azure/autorest.typescript/issues/1635)
53
+
54
+ ## 1.0.0-beta.2 (2022-10-19)
55
+
56
+ - [BugFix] Fix missing peer dependencies. Please refer to [#1612](https://github.com/Azure/autorest.typescript/pull/1612) and [#1610](https://github.com/Azure/autorest.typescript/pull/1610) for further details.
57
+ - [Feature] Support sdk-folder in cadl emitter for automation script. Please refer to [#1613](https://github.com/Azure/autorest.typescript/pull/1613) for further details.
58
+
59
+ ## 1.0.0-beta.1 (2022-10-13)
60
+
61
+ - Initial preview release of the Autorest Typescript/Javascript RLC Common libraries.
@@ -0,0 +1,30 @@
1
+ # Contributing
2
+
3
+ we have a [interfaces.ts](./src/interfaces.ts) to define the RLCModel And RLCOptions that is export for both Autorest RLC generator and Cadl emitters.
4
+
5
+ The generated Typescript/Javascript Rest Level Client has the following structure:
6
+
7
+ 1. Client (Handled by [buildClient.ts](./src/buildClient.ts))
8
+ 1. Client Definition (Handled by [buildClientDefinitions.ts](./src/buildClientDefinitions.ts))
9
+ 1. Index File (Handled by [buildIndexFile.ts](./src/buildIndexFile.ts))
10
+ 1. isUnexpectedHelper (Handled by [buildIsUnexpectedHelper.ts](./src/buildIsUnexpectedHelper.ts)) pollingHelper (Handled by [buildPollingHelper.ts](./src/buildPollingHelper.ts)) paginateHelper (Handled by [buildPaginateHelper.ts](./src/buildPaginateHelper.ts))
11
+ 1. Models (Handled by [buildObjectTypes.ts](./src/buildObjectTypes.ts) and [buildSchemaType.ts](./src/buildSchemaType.ts))
12
+ 1. Parameters (Handled by [buildParameterTypes.ts](./src/buildParameterTypes.ts))
13
+ 1. Responses (Handled by [buildResponseTypes.ts](./src/buildResponseTypes.ts))
14
+ 1. Parameters (Handled by [parametersGenerator.ts](./src/generators/parametersGenerator.ts))
15
+ 1. Metadata (Handled [here](./src/metadata/*))
16
+
17
+ ## Prerequisite
18
+
19
+ Please follow the **[Prerequisite](../../CONTRIBUTING.md#prerequisites)** part to install the dependencies.
20
+
21
+ ## Add a new feature
22
+
23
+ If there's a new feature request, Contributors can
24
+
25
+ 1. add properties in RLCModel and RLCOptions in [interfaces.ts](./src/interfaces.ts)
26
+ 1. add the build logic about how the newly add properties is going to change the generation behavior.
27
+
28
+ ## Testing
29
+
30
+ We don't have tests in this library as it is invoked by autorest.typescript and typespec-ts, adding tests in those two libraries directly if you want to test a feature.
package/README.md ADDED
@@ -0,0 +1,3 @@
1
+ # Introduction
2
+
3
+ In this library, we abstract the common generation logic for RLC generation from both swaggers and cadl. In this way, the autorest.typescript part will only need to transform the code model into RLCModel, and the cadl emitter will only need to transform the cadl program into RLCModel, then the rlc-common library will take the rest generation part to build the file content of from the RLCModel.
@@ -0,0 +1,263 @@
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 buildMethodShortcuts_js_1 = require("./buildMethodShortcuts.js");
10
+ const nameConstructors_js_1 = require("./helpers/nameConstructors.js");
11
+ function getClientOptionsInterface(clientName, optionalUrlParameters) {
12
+ if (!optionalUrlParameters || optionalUrlParameters.length === 0) {
13
+ return undefined;
14
+ }
15
+ const properties = optionalUrlParameters.map((param) => {
16
+ return {
17
+ name: param.name,
18
+ type: param.type,
19
+ hasQuestionToken: true
20
+ };
21
+ });
22
+ return {
23
+ name: `${clientName}Options`,
24
+ extends: ["ClientOptions"],
25
+ isExported: true,
26
+ properties
27
+ };
28
+ }
29
+ function buildClient(model) {
30
+ var _a, _b, _c, _d, _e;
31
+ const name = (0, nameUtils_js_1.normalizeName)(model.libraryName, nameUtils_js_1.NameType.File);
32
+ const { srcPath, options } = model;
33
+ const project = new ts_morph_1.Project();
34
+ const filePath = path.join(srcPath, `${name}.ts`);
35
+ const clientFile = project.createSourceFile(filePath, undefined, {
36
+ overwrite: true
37
+ });
38
+ // Get all paths
39
+ const clientName = model.libraryName;
40
+ const clientInterfaceName = clientName.endsWith("Client")
41
+ ? `${clientName}`
42
+ : `${clientName}${(options === null || options === void 0 ? void 0 : options.isModularLibrary) ? "Context" : "Client"}`;
43
+ normalizeUrlInfo(model);
44
+ const urlParameters = (_b = (_a = model === null || model === void 0 ? void 0 : model.urlInfo) === null || _a === void 0 ? void 0 : _a.urlParameters) === null || _b === void 0 ? void 0 : _b.filter(
45
+ // Do not include parameters with constant values in the signature, these should go in the options bag
46
+ (p) => p.value === undefined);
47
+ const optionalUrlParameters = (_d = (_c = model === null || model === void 0 ? void 0 : model.urlInfo) === null || _c === void 0 ? void 0 : _c.urlParameters) === null || _d === void 0 ? void 0 : _d.filter(
48
+ // Do not include parameters with constant values in the signature, these should go in the options bag
49
+ (p) => Boolean(p.value));
50
+ const clientOptionsInterface = getClientOptionsInterface(clientInterfaceName, optionalUrlParameters);
51
+ if (clientOptionsInterface) {
52
+ clientFile.addInterface(clientOptionsInterface);
53
+ }
54
+ if (!model.options) {
55
+ return undefined;
56
+ }
57
+ const { multiClient, batch } = model.options;
58
+ const { addCredentials, credentialScopes, credentialKeyHeaderName } = model.options;
59
+ const credentialTypes = credentialScopes && credentialScopes.length > 0 ? ["TokenCredential"] : [];
60
+ if (credentialKeyHeaderName) {
61
+ credentialTypes.push("KeyCredential");
62
+ }
63
+ const commonClientParams = [
64
+ ...(urlParameters !== null && urlParameters !== void 0 ? urlParameters : []),
65
+ ...(addCredentials === false ||
66
+ !isSecurityInfoDefined(credentialScopes, credentialKeyHeaderName)
67
+ ? []
68
+ : [
69
+ {
70
+ name: "credentials",
71
+ type: credentialTypes.join(" | "),
72
+ description: `uniquely identify client credential`
73
+ }
74
+ ])
75
+ ];
76
+ const allClientParams = [
77
+ ...commonClientParams,
78
+ {
79
+ name: "options",
80
+ type: `${(_e = clientOptionsInterface === null || clientOptionsInterface === void 0 ? void 0 : clientOptionsInterface.name) !== null && _e !== void 0 ? _e : "ClientOptions"} = {}`,
81
+ description: "the parameter for all optional parameters"
82
+ }
83
+ ];
84
+ const functionStatement = {
85
+ isExported: true,
86
+ name: `createClient`,
87
+ parameters: allClientParams,
88
+ docs: [
89
+ {
90
+ description: `Initialize a new instance of \`${clientInterfaceName}\` \n` +
91
+ allClientParams
92
+ .map((param) => {
93
+ var _a;
94
+ return `@param ${param.name} type: ${param.type
95
+ .split("=")[0]
96
+ .split(" ")
97
+ .join("")}, ${(_a = param.description) !== null && _a !== void 0 ? _a : "The parameter " + param.name}`;
98
+ })
99
+ .join("\n")
100
+ }
101
+ ],
102
+ returnType: clientInterfaceName,
103
+ isDefaultExport: false,
104
+ statements: getClientFactoryBody(model, clientInterfaceName)
105
+ };
106
+ if (!multiClient || !batch || batch.length === 1) {
107
+ functionStatement.isDefaultExport = true;
108
+ }
109
+ clientFile.addFunction(functionStatement);
110
+ clientFile.addImportDeclarations([
111
+ {
112
+ namedImports: ["getClient", "ClientOptions"],
113
+ moduleSpecifier: "@azure-rest/core-client"
114
+ }
115
+ ]);
116
+ if (addCredentials &&
117
+ isSecurityInfoDefined(credentialScopes, credentialKeyHeaderName)) {
118
+ clientFile.addImportDeclarations([
119
+ {
120
+ namedImports: credentialTypes,
121
+ moduleSpecifier: "@azure/core-auth"
122
+ }
123
+ ]);
124
+ }
125
+ clientFile.addImportDeclarations([
126
+ {
127
+ namedImports: [`${clientInterfaceName}`],
128
+ moduleSpecifier: (0, nameConstructors_js_1.getImportModuleName)({
129
+ cjsName: "./clientDefinitions",
130
+ esModulesName: "./clientDefinitions.js"
131
+ }, model)
132
+ }
133
+ ]);
134
+ return { path: filePath, content: clientFile.getFullText() };
135
+ }
136
+ exports.buildClient = buildClient;
137
+ function isSecurityInfoDefined(credentialScopes, credentialKeyHeaderName) {
138
+ return ((credentialScopes && credentialScopes.length > 0) || credentialKeyHeaderName);
139
+ }
140
+ function getClientFactoryBody(model, clientTypeName) {
141
+ var _a, _b, _c, _d, _e;
142
+ if (!model.options || !model.options.packageDetails || !model.urlInfo) {
143
+ return "";
144
+ }
145
+ const { includeShortcuts, packageDetails } = model.options;
146
+ let clientPackageName = (_a = packageDetails.nameWithoutScope) !== null && _a !== void 0 ? _a : "";
147
+ const packageVersion = packageDetails.version;
148
+ const { endpoint, urlParameters } = model.urlInfo;
149
+ const optionalUrlParameters = [];
150
+ for (const param of urlParameters !== null && urlParameters !== void 0 ? urlParameters : []) {
151
+ if (param.value) {
152
+ const value = typeof param.value === "string" ? `"${param.value}"` : param.value;
153
+ optionalUrlParameters.push(`const ${param.name} = options.${param.name} ?? ${value}`);
154
+ }
155
+ }
156
+ let baseUrl;
157
+ if (urlParameters && endpoint) {
158
+ let parsedEndpoint = endpoint;
159
+ urlParameters.forEach((urlParameter) => {
160
+ parsedEndpoint = parsedEndpoint.replace(`{${urlParameter.name}}`, `\${${urlParameter.name}}`);
161
+ });
162
+ baseUrl = `options.baseUrl ?? \`${parsedEndpoint}\``;
163
+ }
164
+ else {
165
+ baseUrl = `options.baseUrl ?? "${endpoint}"`;
166
+ }
167
+ let apiVersionStatement = "";
168
+ // Set the default api-version when we have a default AND its position is query/none
169
+ if ((((_b = model.apiVersionInfo) === null || _b === void 0 ? void 0 : _b.definedPosition) === "query" ||
170
+ ((_c = model.apiVersionInfo) === null || _c === void 0 ? void 0 : _c.definedPosition) === "none") &&
171
+ !!((_d = model.apiVersionInfo) === null || _d === void 0 ? void 0 : _d.defaultValue)) {
172
+ apiVersionStatement = `options.apiVersion = options.apiVersion ?? "${(_e = model.apiVersionInfo) === null || _e === void 0 ? void 0 : _e.defaultValue}"`;
173
+ }
174
+ if (!clientPackageName.endsWith("-rest")) {
175
+ clientPackageName = clientPackageName + "-rest";
176
+ }
177
+ const userAgentInfoStatement = "const userAgentInfo = `azsdk-js-" +
178
+ clientPackageName +
179
+ "/" +
180
+ packageVersion +
181
+ "`;";
182
+ const userAgentPrefix = "options.userAgentOptions && options.userAgentOptions.userAgentPrefix ? `${options.userAgentOptions.userAgentPrefix} ${userAgentInfo}`: `${userAgentInfo}`;";
183
+ const userAgentStatement = {
184
+ kind: ts_morph_1.StructureKind.VariableStatement,
185
+ declarationKind: ts_morph_1.VariableDeclarationKind.Const,
186
+ declarations: [{ name: "userAgentPrefix", initializer: userAgentPrefix }]
187
+ };
188
+ const userAgentOptionsStatement = `options = {
189
+ ...options,
190
+ userAgentOptions: {
191
+ userAgentPrefix
192
+ }
193
+ }`;
194
+ const baseUrlStatement = {
195
+ kind: ts_morph_1.StructureKind.VariableStatement,
196
+ declarationKind: ts_morph_1.VariableDeclarationKind.Const,
197
+ declarations: [{ name: "baseUrl", initializer: baseUrl }]
198
+ };
199
+ const { credentialScopes, credentialKeyHeaderName } = model.options;
200
+ const scopesString = credentialScopes && credentialScopes.length
201
+ ? credentialScopes.map((cs) => `"${cs}"`).join(", ")
202
+ : "";
203
+ const scopes = scopesString ? `scopes: [${scopesString}],` : "";
204
+ const apiKeyHeaderName = credentialKeyHeaderName
205
+ ? `apiKeyHeaderName: "${credentialKeyHeaderName}",`
206
+ : "";
207
+ const credentials = scopes || apiKeyHeaderName
208
+ ? `options = {
209
+ ...options,
210
+ credentials: {
211
+ ${scopes}
212
+ ${apiKeyHeaderName}
213
+ },
214
+ }`
215
+ : "";
216
+ const getClient = `const client = getClient(
217
+ baseUrl, ${credentials ? "credentials," : ""} options
218
+ ) as ${clientTypeName};
219
+ `;
220
+ let returnStatement = `return client;`;
221
+ if (includeShortcuts) {
222
+ const shortcutImplementations = (0, buildMethodShortcuts_js_1.buildMethodShortcutImplementation)(model.paths);
223
+ const shortcutBody = Object.keys(shortcutImplementations).map((key) => {
224
+ // If the operation group has an empty name, it means its operations are client
225
+ // level operations so we need to spread the definitions. Otherwise they are
226
+ // within an operation group so we add them as key: value
227
+ return `${key && key !== "client" ? `"${key}":` : "..."} {${shortcutImplementations[key].join()}}`;
228
+ });
229
+ returnStatement = `return { ...client, ${shortcutBody.join()} };`;
230
+ }
231
+ return [
232
+ ...optionalUrlParameters,
233
+ baseUrlStatement,
234
+ apiVersionStatement,
235
+ credentials,
236
+ userAgentInfoStatement,
237
+ userAgentStatement,
238
+ userAgentOptionsStatement,
239
+ getClient,
240
+ returnStatement
241
+ ];
242
+ }
243
+ function normalizeUrlInfo(model) {
244
+ if (!model ||
245
+ !model.urlInfo ||
246
+ !model.urlInfo.endpoint ||
247
+ !model.urlInfo.urlParameters ||
248
+ model.urlInfo.urlParameters.length === 0) {
249
+ return;
250
+ }
251
+ let parsedEndpoint = model.urlInfo.endpoint;
252
+ const urlParameters = model.urlInfo.urlParameters;
253
+ urlParameters.forEach((urlParameter) => {
254
+ const name = urlParameter.name;
255
+ const normalizedName = (0, nameUtils_js_1.normalizeName)(name, nameUtils_js_1.NameType.Parameter);
256
+ if (name !== normalizedName) {
257
+ urlParameter.name = normalizedName;
258
+ parsedEndpoint = parsedEndpoint.replace(`{${name}}`, `{${normalizedName}}`);
259
+ }
260
+ });
261
+ model.urlInfo.endpoint = parsedEndpoint;
262
+ }
263
+ //# sourceMappingURL=buildClient.js.map