@azure-tools/rlc-common 0.11.0

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 (232) 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 +53 -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 +268 -0
  10. package/dist/buildClient.js.map +1 -0
  11. package/dist/buildClientDefinitions.js +160 -0
  12. package/dist/buildClientDefinitions.js.map +1 -0
  13. package/dist/buildIndexFile.js +170 -0
  14. package/dist/buildIndexFile.js.map +1 -0
  15. package/dist/buildIsUnexpectedHelper.js +220 -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 +315 -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 +135 -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/nameConstructors.js +41 -0
  36. package/dist/helpers/nameConstructors.js.map +1 -0
  37. package/dist/helpers/nameUtils.js +196 -0
  38. package/dist/helpers/nameUtils.js.map +1 -0
  39. package/dist/helpers/operationHelpers.js +103 -0
  40. package/dist/helpers/operationHelpers.js.map +1 -0
  41. package/dist/helpers/pathUtils.js +13 -0
  42. package/dist/helpers/pathUtils.js.map +1 -0
  43. package/dist/helpers/schemaHelpers.js +27 -0
  44. package/dist/helpers/schemaHelpers.js.map +1 -0
  45. package/dist/helpers/shortcutMethods.js +46 -0
  46. package/dist/helpers/shortcutMethods.js.map +1 -0
  47. package/dist/index.js +45 -0
  48. package/dist/index.js.map +1 -0
  49. package/dist/interfaces.js +18 -0
  50. package/dist/interfaces.js.map +1 -0
  51. package/dist/metadata/buildApiExtractorConfig.js +56 -0
  52. package/dist/metadata/buildApiExtractorConfig.js.map +1 -0
  53. package/dist/metadata/buildESLintConfig.js +33 -0
  54. package/dist/metadata/buildESLintConfig.js.map +1 -0
  55. package/dist/metadata/buildLicenseFile.js +41 -0
  56. package/dist/metadata/buildLicenseFile.js.map +1 -0
  57. package/dist/metadata/buildPackageFile.js +274 -0
  58. package/dist/metadata/buildPackageFile.js.map +1 -0
  59. package/dist/metadata/buildReadmeFile.js +170 -0
  60. package/dist/metadata/buildReadmeFile.js.map +1 -0
  61. package/dist/metadata/buildRollupConfig.js +144 -0
  62. package/dist/metadata/buildRollupConfig.js.map +1 -0
  63. package/dist/metadata/buildTsConfig.js +72 -0
  64. package/dist/metadata/buildTsConfig.js.map +1 -0
  65. package/dist/package.json +1 -0
  66. package/dist/static/paginateContent.js +214 -0
  67. package/dist/static/paginateContent.js.map +1 -0
  68. package/dist/static/pollingContent.js +98 -0
  69. package/dist/static/pollingContent.js.map +1 -0
  70. package/dist/static/serializeHelper.js +30 -0
  71. package/dist/static/serializeHelper.js.map +1 -0
  72. package/dist/test/buildEnvFile.js +31 -0
  73. package/dist/test/buildEnvFile.js.map +1 -0
  74. package/dist/test/buildKarmaConfig.js +19 -0
  75. package/dist/test/buildKarmaConfig.js.map +1 -0
  76. package/dist/test/buildRecordedClient.js +22 -0
  77. package/dist/test/buildRecordedClient.js.map +1 -0
  78. package/dist/test/buildSampleTest.js +19 -0
  79. package/dist/test/buildSampleTest.js.map +1 -0
  80. package/dist/test/template.js +191 -0
  81. package/dist/test/template.js.map +1 -0
  82. package/dist-esm/buildClient.js +261 -0
  83. package/dist-esm/buildClient.js.map +1 -0
  84. package/dist-esm/buildClientDefinitions.js +155 -0
  85. package/dist-esm/buildClientDefinitions.js.map +1 -0
  86. package/dist-esm/buildIndexFile.js +165 -0
  87. package/dist-esm/buildIndexFile.js.map +1 -0
  88. package/dist-esm/buildIsUnexpectedHelper.js +216 -0
  89. package/dist-esm/buildIsUnexpectedHelper.js.map +1 -0
  90. package/dist-esm/buildMethodShortcuts.js +46 -0
  91. package/dist-esm/buildMethodShortcuts.js.map +1 -0
  92. package/dist-esm/buildObjectTypes.js +288 -0
  93. package/dist-esm/buildObjectTypes.js.map +1 -0
  94. package/dist-esm/buildPaginateHelper.js +26 -0
  95. package/dist-esm/buildPaginateHelper.js.map +1 -0
  96. package/dist-esm/buildParameterTypes.js +321 -0
  97. package/dist-esm/buildParameterTypes.js.map +1 -0
  98. package/dist-esm/buildPollingHelper.js +17 -0
  99. package/dist-esm/buildPollingHelper.js.map +1 -0
  100. package/dist-esm/buildResponseTypes.js +140 -0
  101. package/dist-esm/buildResponseTypes.js.map +1 -0
  102. package/dist-esm/buildSchemaType.js +60 -0
  103. package/dist-esm/buildSchemaType.js.map +1 -0
  104. package/dist-esm/buildSerializeHelper.js +31 -0
  105. package/dist-esm/buildSerializeHelper.js.map +1 -0
  106. package/dist-esm/buildTopLevelIndexFile.js +44 -0
  107. package/dist-esm/buildTopLevelIndexFile.js.map +1 -0
  108. package/dist-esm/helpers/nameConstructors.js +34 -0
  109. package/dist-esm/helpers/nameConstructors.js.map +1 -0
  110. package/dist-esm/helpers/nameUtils.js +187 -0
  111. package/dist-esm/helpers/nameUtils.js.map +1 -0
  112. package/dist-esm/helpers/operationHelpers.js +84 -0
  113. package/dist-esm/helpers/operationHelpers.js.map +1 -0
  114. package/dist-esm/helpers/pathUtils.js +9 -0
  115. package/dist-esm/helpers/pathUtils.js.map +1 -0
  116. package/dist-esm/helpers/schemaHelpers.js +21 -0
  117. package/dist-esm/helpers/schemaHelpers.js.map +1 -0
  118. package/dist-esm/helpers/shortcutMethods.js +42 -0
  119. package/dist-esm/helpers/shortcutMethods.js.map +1 -0
  120. package/dist-esm/index.js +29 -0
  121. package/dist-esm/index.js.map +1 -0
  122. package/dist-esm/interfaces.js +15 -0
  123. package/dist-esm/interfaces.js.map +1 -0
  124. package/dist-esm/metadata/buildApiExtractorConfig.js +51 -0
  125. package/dist-esm/metadata/buildApiExtractorConfig.js.map +1 -0
  126. package/dist-esm/metadata/buildESLintConfig.js +28 -0
  127. package/dist-esm/metadata/buildESLintConfig.js.map +1 -0
  128. package/dist-esm/metadata/buildLicenseFile.js +36 -0
  129. package/dist-esm/metadata/buildLicenseFile.js.map +1 -0
  130. package/dist-esm/metadata/buildPackageFile.js +276 -0
  131. package/dist-esm/metadata/buildPackageFile.js.map +1 -0
  132. package/dist-esm/metadata/buildReadmeFile.js +167 -0
  133. package/dist-esm/metadata/buildReadmeFile.js.map +1 -0
  134. package/dist-esm/metadata/buildRollupConfig.js +139 -0
  135. package/dist-esm/metadata/buildRollupConfig.js.map +1 -0
  136. package/dist-esm/metadata/buildTsConfig.js +67 -0
  137. package/dist-esm/metadata/buildTsConfig.js.map +1 -0
  138. package/dist-esm/package.json +1 -0
  139. package/dist-esm/static/paginateContent.js +211 -0
  140. package/dist-esm/static/paginateContent.js.map +1 -0
  141. package/dist-esm/static/pollingContent.js +95 -0
  142. package/dist-esm/static/pollingContent.js.map +1 -0
  143. package/dist-esm/static/serializeHelper.js +27 -0
  144. package/dist-esm/static/serializeHelper.js.map +1 -0
  145. package/dist-esm/test/buildEnvFile.js +24 -0
  146. package/dist-esm/test/buildEnvFile.js.map +1 -0
  147. package/dist-esm/test/buildKarmaConfig.js +14 -0
  148. package/dist-esm/test/buildKarmaConfig.js.map +1 -0
  149. package/dist-esm/test/buildRecordedClient.js +17 -0
  150. package/dist-esm/test/buildRecordedClient.js.map +1 -0
  151. package/dist-esm/test/buildSampleTest.js +14 -0
  152. package/dist-esm/test/buildSampleTest.js.map +1 -0
  153. package/dist-esm/test/template.js +188 -0
  154. package/dist-esm/test/template.js.map +1 -0
  155. package/package.json +46 -0
  156. package/publishPackage.js +11 -0
  157. package/rlc-common.build.log +2 -0
  158. package/src/buildClient.ts +353 -0
  159. package/src/buildClientDefinitions.ts +235 -0
  160. package/src/buildIndexFile.ts +202 -0
  161. package/src/buildIsUnexpectedHelper.ts +240 -0
  162. package/src/buildMethodShortcuts.ts +75 -0
  163. package/src/buildObjectTypes.ts +449 -0
  164. package/src/buildPaginateHelper.ts +33 -0
  165. package/src/buildParameterTypes.ts +477 -0
  166. package/src/buildPollingHelper.ts +18 -0
  167. package/src/buildResponseTypes.ts +186 -0
  168. package/src/buildSchemaType.ts +85 -0
  169. package/src/buildSerializeHelper.ts +42 -0
  170. package/src/buildTopLevelIndexFile.ts +52 -0
  171. package/src/helpers/nameConstructors.ts +93 -0
  172. package/src/helpers/nameUtils.ts +227 -0
  173. package/src/helpers/operationHelpers.ts +119 -0
  174. package/src/helpers/pathUtils.ts +9 -0
  175. package/src/helpers/schemaHelpers.ts +25 -0
  176. package/src/helpers/shortcutMethods.ts +60 -0
  177. package/src/index.ts +29 -0
  178. package/src/interfaces.ts +227 -0
  179. package/src/metadata/buildApiExtractorConfig.ts +59 -0
  180. package/src/metadata/buildESLintConfig.ts +34 -0
  181. package/src/metadata/buildLicenseFile.ts +39 -0
  182. package/src/metadata/buildPackageFile.ts +334 -0
  183. package/src/metadata/buildReadmeFile.ts +231 -0
  184. package/src/metadata/buildRollupConfig.ts +147 -0
  185. package/src/metadata/buildTsConfig.ts +79 -0
  186. package/src/static/paginateContent.ts +210 -0
  187. package/src/static/pollingContent.ts +94 -0
  188. package/src/static/serializeHelper.ts +29 -0
  189. package/src/test/buildEnvFile.ts +26 -0
  190. package/src/test/buildKarmaConfig.ts +15 -0
  191. package/src/test/buildRecordedClient.ts +18 -0
  192. package/src/test/buildSampleTest.ts +15 -0
  193. package/src/test/template.ts +191 -0
  194. package/tsconfig-cjs.json +9 -0
  195. package/tsconfig-common.json +13 -0
  196. package/tsconfig.json +13 -0
  197. package/types/buildClient.d.ts +2 -0
  198. package/types/buildClientDefinitions.d.ts +5 -0
  199. package/types/buildIndexFile.d.ts +5 -0
  200. package/types/buildIsUnexpectedHelper.d.ts +5 -0
  201. package/types/buildMethodShortcuts.d.ts +4 -0
  202. package/types/buildObjectTypes.d.ts +15 -0
  203. package/types/buildPaginateHelper.d.ts +5 -0
  204. package/types/buildParameterTypes.d.ts +13 -0
  205. package/types/buildPollingHelper.d.ts +5 -0
  206. package/types/buildResponseTypes.d.ts +5 -0
  207. package/types/buildSchemaType.d.ts +19 -0
  208. package/types/buildSerializeHelper.d.ts +5 -0
  209. package/types/buildTopLevelIndexFile.d.ts +5 -0
  210. package/types/helpers/nameConstructors.d.ts +28 -0
  211. package/types/helpers/nameUtils.d.ts +25 -0
  212. package/types/helpers/operationHelpers.d.ts +13 -0
  213. package/types/helpers/pathUtils.d.ts +1 -0
  214. package/types/helpers/schemaHelpers.d.ts +4 -0
  215. package/types/helpers/shortcutMethods.d.ts +3 -0
  216. package/types/index.d.ts +26 -0
  217. package/types/interfaces.d.ts +200 -0
  218. package/types/metadata/buildApiExtractorConfig.d.ts +5 -0
  219. package/types/metadata/buildESLintConfig.d.ts +5 -0
  220. package/types/metadata/buildLicenseFile.d.ts +5 -0
  221. package/types/metadata/buildPackageFile.d.ts +5 -0
  222. package/types/metadata/buildReadmeFile.d.ts +5 -0
  223. package/types/metadata/buildRollupConfig.d.ts +5 -0
  224. package/types/metadata/buildTsConfig.d.ts +5 -0
  225. package/types/static/paginateContent.d.ts +1 -0
  226. package/types/static/pollingContent.d.ts +1 -0
  227. package/types/static/serializeHelper.d.ts +4 -0
  228. package/types/test/buildEnvFile.d.ts +9 -0
  229. package/types/test/buildKarmaConfig.d.ts +5 -0
  230. package/types/test/buildRecordedClient.d.ts +5 -0
  231. package/types/test/buildSampleTest.d.ts +5 -0
  232. 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,53 @@
1
+ {
2
+ "files": {
3
+ "packages/rlc-common/.rush/temp/shrinkwrap-deps.json": "fc9bb0d953450838607d627aeada5c24337df35b",
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": "bb164e62b325092ebfa52a0212e3aaa4bdda3215",
11
+ "packages/rlc-common/publishPackage.js": "3512e26d1199937b1962f3b4189aa9c506d9da1a",
12
+ "packages/rlc-common/src/buildClient.ts": "7e90e7f20d3922e280873f16e451bb740696a996",
13
+ "packages/rlc-common/src/buildClientDefinitions.ts": "9b497bd2683f45fb342f3d92ad885c8eed1576d8",
14
+ "packages/rlc-common/src/buildIndexFile.ts": "99872ef8f572bd62bf5c21a236ac52d2e5b675d5",
15
+ "packages/rlc-common/src/buildIsUnexpectedHelper.ts": "aca8646a8bbc32fa926904fa43ded0e6b098ac3d",
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": "22aabca09cf262faf85e81840e7503a8b6d7af5b",
20
+ "packages/rlc-common/src/buildPollingHelper.ts": "1aeeef5b9cc4f9098632b7fb79ba01aa5e686d43",
21
+ "packages/rlc-common/src/buildResponseTypes.ts": "ab057ecbe5d7673ca5017845150ee2bc4e81f6d9",
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/nameConstructors.ts": "12ac7b5f39f469b4943b2e12513a2c909650090c",
26
+ "packages/rlc-common/src/helpers/nameUtils.ts": "bf86e9989a525846deee1389602a42f33bf525f6",
27
+ "packages/rlc-common/src/helpers/operationHelpers.ts": "d7ab38d9e825c0bc250df5ccf792ae01a13ae726",
28
+ "packages/rlc-common/src/helpers/pathUtils.ts": "166b066c7eacbc820bd6d366da965f17e25d46b3",
29
+ "packages/rlc-common/src/helpers/schemaHelpers.ts": "722c52837218b8cfafdc36fe29e675e0df4acb09",
30
+ "packages/rlc-common/src/helpers/shortcutMethods.ts": "cd52b21e05192c7b3fce3ff26eae2ac03ab62679",
31
+ "packages/rlc-common/src/index.ts": "098efe1c682e960ed4dcae698ed7198485ea026d",
32
+ "packages/rlc-common/src/interfaces.ts": "2c1f9c94be195acbd0d476c3a0ea9310d8ef7d41",
33
+ "packages/rlc-common/src/metadata/buildApiExtractorConfig.ts": "4bcc63b3551d923d2881adb015b23978a2539e14",
34
+ "packages/rlc-common/src/metadata/buildESLintConfig.ts": "b0530cba08bf5e29cc1d307b93363f66c1e6b81d",
35
+ "packages/rlc-common/src/metadata/buildLicenseFile.ts": "ce4083770e48d3b0dd670f7efc324a7fed10dac4",
36
+ "packages/rlc-common/src/metadata/buildPackageFile.ts": "b48f1169b15fa9d00c9baac85f8c22feb31ceb95",
37
+ "packages/rlc-common/src/metadata/buildReadmeFile.ts": "649510f75d04ba8438202b92b83a56d3d3206efe",
38
+ "packages/rlc-common/src/metadata/buildRollupConfig.ts": "56a0ac2b69266d8a3192981abc4c09fcde444634",
39
+ "packages/rlc-common/src/metadata/buildTsConfig.ts": "861d8af19f1e8658b7fef02b51c63d4f006c76f3",
40
+ "packages/rlc-common/src/static/paginateContent.ts": "48f146c05b7b803958dc1206680b7b6ce38010c5",
41
+ "packages/rlc-common/src/static/pollingContent.ts": "1cf63416f9be4716167301dd29c5e913f19bad23",
42
+ "packages/rlc-common/src/static/serializeHelper.ts": "0ddb576015992208f824f0f06f5c5e7de019c26e",
43
+ "packages/rlc-common/src/test/buildEnvFile.ts": "4759b68f0216d2e060810b045baf47b6d5ecf849",
44
+ "packages/rlc-common/src/test/buildKarmaConfig.ts": "494c6a2b6621fe162d4e9c29706a4ceead343555",
45
+ "packages/rlc-common/src/test/buildRecordedClient.ts": "fb4b5bb7f98d42fe15dd040a8ddbdf2b00a7cebe",
46
+ "packages/rlc-common/src/test/buildSampleTest.ts": "5a96d955be175e1f2d38caaafd8c5d6d3410256e",
47
+ "packages/rlc-common/src/test/template.ts": "a7244e9cdff9273ffe825f3e56546b5a04f23d50",
48
+ "packages/rlc-common/tsconfig-cjs.json": "dc2e21bca1015edfa25099555abdf3ee2266c7da",
49
+ "packages/rlc-common/tsconfig-common.json": "84c874d137a56103d2fa8b5ab33744e25540874c",
50
+ "packages/rlc-common/tsconfig.json": "2ce338052b40a33cef04fa132458b8630ae1a809"
51
+ },
52
+ "arguments": "rimraf dist/* dist-esm/* types/* && tsc -p tsconfig.json && tsc -p tsconfig-cjs.json && node publishPackage.js "
53
+ }
@@ -0,0 +1,147 @@
1
+ {
2
+ "@cspotcode/source-map-support@0.8.1": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==",
3
+ "@eslint-community/eslint-utils@4.2.0_eslint@8.36.0": "sha512-gB8T4H4DEfX2IV9zGDJPOBgP1e/DbfCPDTtEqUMckpvzS1OYtva8JdFYBqMwYk7xAQ429WGF/UPqn8uQ//h2vQ==",
4
+ "@eslint-community/regexpp@4.4.0": "sha512-A9983Q0LnDGdLPjxyXQ00sbV+K+O+ko2Dr+CZigbHWtX9pNfxlaBkMR8X1CztI73zuEyEBXTVjx7CE+/VSwDiQ==",
5
+ "@eslint/eslintrc@2.0.1": "sha512-eFRmABvW2E5Ho6f5fHLqgena46rOj7r7OKHYfLElqcBfGFHHpjBhivyi5+jOEQuSpdc/1phIZJlbC2te+tZNIw==",
6
+ "@eslint/js@8.36.0": "sha512-lxJ9R5ygVm8ZWgYdUweoq5ownDlJ4upvoWmO4eLxBYHdMo+vZ/Rx0EN6MbKWDJOSUGrqJy2Gt+Dyv/VKml0fjg==",
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.0": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
11
+ "@jridgewell/sourcemap-codec@1.4.14": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==",
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.191": "sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ==",
23
+ "@types/node@18.15.3": "sha512-p6ua9zBxz5otCmbpb5D3U4B5Nanw6Pk3PPyX05xnxbB/fRv71N7CPmORg7uAD5P70T0xmx1pzAx/FUfa5X+3cw==",
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.3.0": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==",
51
+ "eslint@8.36.0": "sha512-Y956lmS7vDqomxlaaQAHVmeb4tNMp2FWIvU/RnU5BD3IKMD/MJPr76xdyr68P8tV1iNMvN2mRK0yy3c+UjL+bw==",
52
+ "espree@9.5.0": "sha512-JPbJGhKc47++oo4JkEoTe2wjy4fmMwvFpgJT9cQzmfXKp22Dr6Hf1tdCteLz1h0P3t+mGvWZ+4Uankvh8+c6zw==",
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.10": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==",
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.3.0": "sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==",
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_bfeccc287826dbfe8b9bde83efda39b3": "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@4.8.4": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==",
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,268 @@
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 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 } = 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}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: "./clientDefinitions"
129
+ }
130
+ ]);
131
+ return { path: filePath, content: clientFile.getFullText() };
132
+ }
133
+ exports.buildClient = buildClient;
134
+ function isSecurityInfoDefined(credentialScopes, credentialKeyHeaderName) {
135
+ return ((credentialScopes && credentialScopes.length > 0) || credentialKeyHeaderName);
136
+ }
137
+ function getClientFactoryBody(model, clientTypeName) {
138
+ var _a;
139
+ if (!model.options || !model.options.packageDetails || !model.urlInfo) {
140
+ return "";
141
+ }
142
+ const { includeShortcuts, packageDetails } = model.options;
143
+ let clientPackageName = (_a = packageDetails.nameWithoutScope) !== null && _a !== void 0 ? _a : "";
144
+ const packageVersion = packageDetails.version;
145
+ const { endpoint, urlParameters } = model.urlInfo;
146
+ const optionalUrlParameters = [];
147
+ for (const param of urlParameters !== null && urlParameters !== void 0 ? urlParameters : []) {
148
+ if (param.value) {
149
+ const value = typeof param.value === "string" ? `"${param.value}"` : param.value;
150
+ optionalUrlParameters.push(`const ${param.name} = options.${param.name} ?? ${value}`);
151
+ }
152
+ }
153
+ let baseUrl;
154
+ if (urlParameters && endpoint) {
155
+ let parsedEndpoint = endpoint;
156
+ urlParameters.forEach((urlParameter) => {
157
+ parsedEndpoint = parsedEndpoint.replace(`{${urlParameter.name}}`, `\${${urlParameter.name}}`);
158
+ });
159
+ baseUrl = `options.baseUrl ?? \`${parsedEndpoint}\``;
160
+ }
161
+ else {
162
+ baseUrl = `options.baseUrl ?? "${endpoint}"`;
163
+ }
164
+ const apiVersion = getApiVersionInQueryParam(model);
165
+ let apiVersionStatement = "";
166
+ if (apiVersion) {
167
+ apiVersionStatement = `options.apiVersion = options.apiVersion ?? "${apiVersion}"`;
168
+ }
169
+ if (!clientPackageName.endsWith("-rest")) {
170
+ clientPackageName = clientPackageName + "-rest";
171
+ }
172
+ const userAgentInfoStatement = "const userAgentInfo = `azsdk-js-" +
173
+ clientPackageName +
174
+ "/" +
175
+ packageVersion +
176
+ "`;";
177
+ const userAgentPrefix = "options.userAgentOptions && options.userAgentOptions.userAgentPrefix ? `${options.userAgentOptions.userAgentPrefix} ${userAgentInfo}`: `${userAgentInfo}`;";
178
+ const userAgentStatement = {
179
+ kind: ts_morph_1.StructureKind.VariableStatement,
180
+ declarationKind: ts_morph_1.VariableDeclarationKind.Const,
181
+ declarations: [{ name: "userAgentPrefix", initializer: userAgentPrefix }]
182
+ };
183
+ const userAgentOptionsStatement = `options = {
184
+ ...options,
185
+ userAgentOptions: {
186
+ userAgentPrefix
187
+ }
188
+ }`;
189
+ const baseUrlStatement = {
190
+ kind: ts_morph_1.StructureKind.VariableStatement,
191
+ declarationKind: ts_morph_1.VariableDeclarationKind.Const,
192
+ declarations: [{ name: "baseUrl", initializer: baseUrl }]
193
+ };
194
+ const { credentialScopes, credentialKeyHeaderName } = model.options;
195
+ const scopesString = credentialScopes && credentialScopes.length
196
+ ? credentialScopes.map((cs) => `"${cs}"`).join(", ")
197
+ : "";
198
+ const scopes = scopesString ? `scopes: [${scopesString}],` : "";
199
+ const apiKeyHeaderName = credentialKeyHeaderName
200
+ ? `apiKeyHeaderName: "${credentialKeyHeaderName}",`
201
+ : "";
202
+ const credentials = scopes || apiKeyHeaderName
203
+ ? `options = {
204
+ ...options,
205
+ credentials: {
206
+ ${scopes}
207
+ ${apiKeyHeaderName}
208
+ },
209
+ }`
210
+ : "";
211
+ const getClient = `const client = getClient(
212
+ baseUrl, ${credentials ? "credentials," : ""} options
213
+ ) as ${clientTypeName};
214
+ `;
215
+ let returnStatement = `return client;`;
216
+ if (includeShortcuts) {
217
+ const shortcutImplementations = (0, buildMethodShortcuts_js_1.buildMethodShortcutImplementation)(model.paths);
218
+ const shortcutBody = Object.keys(shortcutImplementations).map((key) => {
219
+ // If the operation group has an empty name, it means its operations are client
220
+ // level operations so we need to spread the definitions. Otherwise they are
221
+ // within an operation group so we add them as key: value
222
+ return `${key && key !== "client" ? `"${key}":` : "..."} {${shortcutImplementations[key].join()}}`;
223
+ });
224
+ returnStatement = `return { ...client, ${shortcutBody.join()} };`;
225
+ }
226
+ return [
227
+ ...optionalUrlParameters,
228
+ baseUrlStatement,
229
+ apiVersionStatement,
230
+ credentials,
231
+ userAgentInfoStatement,
232
+ userAgentStatement,
233
+ userAgentOptionsStatement,
234
+ getClient,
235
+ returnStatement
236
+ ];
237
+ }
238
+ function getApiVersionInQueryParam(model) {
239
+ if (!model.apiVersionInQueryParam) {
240
+ return undefined;
241
+ }
242
+ if (model.apiVersionInQueryParam &&
243
+ (0, schemaHelpers_js_1.isConstantSchema)(model.apiVersionInQueryParam)) {
244
+ return model.apiVersionInQueryParam.default;
245
+ }
246
+ return undefined;
247
+ }
248
+ function normalizeUrlInfo(model) {
249
+ if (!model ||
250
+ !model.urlInfo ||
251
+ !model.urlInfo.endpoint ||
252
+ !model.urlInfo.urlParameters ||
253
+ model.urlInfo.urlParameters.length === 0) {
254
+ return;
255
+ }
256
+ let parsedEndpoint = model.urlInfo.endpoint;
257
+ const urlParameters = model.urlInfo.urlParameters;
258
+ urlParameters.forEach((urlParameter) => {
259
+ const name = urlParameter.name;
260
+ const normalizedName = (0, nameUtils_js_1.normalizeName)(name, nameUtils_js_1.NameType.Parameter);
261
+ if (name !== normalizedName) {
262
+ urlParameter.name = normalizedName;
263
+ parsedEndpoint = parsedEndpoint.replace(`{${name}}`, `{${normalizedName}}`);
264
+ }
265
+ });
266
+ model.urlInfo.endpoint = parsedEndpoint;
267
+ }
268
+ //# sourceMappingURL=buildClient.js.map