@azure/app-configuration 1.12.1 → 1.13.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (363) hide show
  1. package/README.md +34 -0
  2. package/dist/browser/appConfigurationClient.d.ts +0 -13
  3. package/dist/browser/appConfigurationClient.d.ts.map +1 -1
  4. package/dist/browser/appConfigurationClient.js +9 -111
  5. package/dist/browser/appConfigurationClient.js.map +1 -1
  6. package/dist/browser/featureFlagClient.d.ts +172 -0
  7. package/dist/browser/featureFlagClient.d.ts.map +1 -0
  8. package/dist/browser/featureFlagClient.js +279 -0
  9. package/dist/browser/featureFlagClient.js.map +1 -0
  10. package/dist/browser/generated/api/appConfigurationContext.d.ts.map +1 -1
  11. package/dist/browser/generated/api/appConfigurationContext.js +4 -3
  12. package/dist/browser/generated/api/appConfigurationContext.js.map +1 -1
  13. package/dist/browser/generated/api/featureFlagClient/index.d.ts +3 -0
  14. package/dist/browser/generated/api/featureFlagClient/index.d.ts.map +1 -0
  15. package/dist/browser/generated/api/featureFlagClient/index.js +4 -0
  16. package/dist/browser/generated/api/featureFlagClient/index.js.map +1 -0
  17. package/dist/browser/generated/api/featureFlagClient/operations.d.ts +38 -0
  18. package/dist/browser/generated/api/featureFlagClient/operations.d.ts.map +1 -0
  19. package/dist/browser/generated/api/featureFlagClient/operations.js +404 -0
  20. package/dist/browser/generated/api/featureFlagClient/operations.js.map +1 -0
  21. package/dist/browser/generated/api/featureFlagClient/options.d.ts +240 -0
  22. package/dist/browser/generated/api/featureFlagClient/options.d.ts.map +1 -0
  23. package/dist/browser/generated/api/featureFlagClient/options.js +4 -0
  24. package/dist/browser/generated/api/featureFlagClient/options.js.map +1 -0
  25. package/dist/browser/generated/api/operations.d.ts +2 -2
  26. package/dist/browser/generated/api/operations.d.ts.map +1 -1
  27. package/dist/browser/generated/api/operations.js +35 -30
  28. package/dist/browser/generated/api/operations.js.map +1 -1
  29. package/dist/browser/generated/api/options.d.ts +4 -0
  30. package/dist/browser/generated/api/options.d.ts.map +1 -1
  31. package/dist/browser/generated/api/options.js.map +1 -1
  32. package/dist/browser/generated/appConfigurationClient.d.ts +4 -1
  33. package/dist/browser/generated/appConfigurationClient.d.ts.map +1 -1
  34. package/dist/browser/generated/appConfigurationClient.js +5 -8
  35. package/dist/browser/generated/appConfigurationClient.js.map +1 -1
  36. package/dist/browser/generated/classic/featureFlagClient/index.d.ts +25 -0
  37. package/dist/browser/generated/classic/featureFlagClient/index.d.ts.map +1 -0
  38. package/dist/browser/generated/classic/featureFlagClient/index.js +21 -0
  39. package/dist/browser/generated/classic/featureFlagClient/index.js.map +1 -0
  40. package/dist/browser/generated/classic/index.d.ts +2 -0
  41. package/dist/browser/generated/classic/index.d.ts.map +1 -0
  42. package/dist/browser/generated/classic/index.js +4 -0
  43. package/dist/browser/generated/classic/index.js.map +1 -0
  44. package/dist/browser/generated/index.d.ts +3 -1
  45. package/dist/browser/generated/index.d.ts.map +1 -1
  46. package/dist/browser/generated/index.js.map +1 -1
  47. package/dist/browser/generated/models/index.d.ts +1 -1
  48. package/dist/browser/generated/models/index.d.ts.map +1 -1
  49. package/dist/browser/generated/models/index.js.map +1 -1
  50. package/dist/browser/generated/models/models.d.ts +144 -5
  51. package/dist/browser/generated/models/models.d.ts.map +1 -1
  52. package/dist/browser/generated/models/models.js +231 -0
  53. package/dist/browser/generated/models/models.js.map +1 -1
  54. package/dist/browser/generated/restorePollerHelpers.d.ts.map +1 -1
  55. package/dist/browser/generated/restorePollerHelpers.js.map +1 -1
  56. package/dist/browser/index.d.ts +2 -0
  57. package/dist/browser/index.d.ts.map +1 -1
  58. package/dist/browser/index.js +2 -0
  59. package/dist/browser/index.js.map +1 -1
  60. package/dist/browser/internal/constants.d.ts +2 -2
  61. package/dist/browser/internal/constants.d.ts.map +1 -1
  62. package/dist/browser/internal/constants.js +2 -2
  63. package/dist/browser/internal/constants.js.map +1 -1
  64. package/dist/browser/internal/createGeneratedClient.d.ts +35 -0
  65. package/dist/browser/internal/createGeneratedClient.d.ts.map +1 -0
  66. package/dist/browser/internal/createGeneratedClient.js +85 -0
  67. package/dist/browser/internal/createGeneratedClient.js.map +1 -0
  68. package/dist/browser/internal/doubleEncodedQueryParamNamePolicy.d.ts +7 -0
  69. package/dist/browser/internal/doubleEncodedQueryParamNamePolicy.d.ts.map +1 -0
  70. package/dist/browser/internal/doubleEncodedQueryParamNamePolicy.js +49 -0
  71. package/dist/browser/internal/doubleEncodedQueryParamNamePolicy.js.map +1 -0
  72. package/dist/browser/internal/helpers.d.ts +29 -11
  73. package/dist/browser/internal/helpers.d.ts.map +1 -1
  74. package/dist/browser/internal/helpers.js +47 -1
  75. package/dist/browser/internal/helpers.js.map +1 -1
  76. package/dist/browser/internal/listFeatureFlagRevisions.d.ts +16 -0
  77. package/dist/browser/internal/listFeatureFlagRevisions.d.ts.map +1 -0
  78. package/dist/browser/internal/listFeatureFlagRevisions.js +54 -0
  79. package/dist/browser/internal/listFeatureFlagRevisions.js.map +1 -0
  80. package/dist/browser/internal/listFeatureFlags.d.ts +19 -0
  81. package/dist/browser/internal/listFeatureFlags.d.ts.map +1 -0
  82. package/dist/browser/internal/listFeatureFlags.js +77 -0
  83. package/dist/browser/internal/listFeatureFlags.js.map +1 -0
  84. package/dist/browser/internal/listLabels.d.ts +12 -0
  85. package/dist/browser/internal/listLabels.d.ts.map +1 -0
  86. package/dist/browser/internal/listLabels.js +48 -0
  87. package/dist/browser/internal/listLabels.js.map +1 -0
  88. package/dist/browser/models.d.ts +271 -3
  89. package/dist/browser/models.d.ts.map +1 -1
  90. package/dist/browser/models.js +28 -0
  91. package/dist/browser/models.js.map +1 -1
  92. package/dist/commonjs/appConfigurationClient.d.ts +0 -13
  93. package/dist/commonjs/appConfigurationClient.d.ts.map +1 -1
  94. package/dist/commonjs/appConfigurationClient.js +9 -110
  95. package/dist/commonjs/appConfigurationClient.js.map +3 -3
  96. package/dist/commonjs/featureFlagClient.d.ts +172 -0
  97. package/dist/commonjs/featureFlagClient.d.ts.map +1 -0
  98. package/dist/commonjs/featureFlagClient.js +339 -0
  99. package/dist/commonjs/featureFlagClient.js.map +7 -0
  100. package/dist/commonjs/generated/api/appConfigurationContext.d.ts.map +1 -1
  101. package/dist/commonjs/generated/api/appConfigurationContext.js +13 -2
  102. package/dist/commonjs/generated/api/appConfigurationContext.js.map +3 -3
  103. package/dist/commonjs/generated/api/featureFlagClient/index.d.ts +3 -0
  104. package/dist/commonjs/generated/api/featureFlagClient/index.d.ts.map +1 -0
  105. package/dist/commonjs/generated/api/featureFlagClient/index.js +42 -0
  106. package/dist/commonjs/generated/api/featureFlagClient/index.js.map +7 -0
  107. package/dist/commonjs/generated/api/featureFlagClient/operations.d.ts +38 -0
  108. package/dist/commonjs/generated/api/featureFlagClient/operations.d.ts.map +1 -0
  109. package/dist/commonjs/generated/api/featureFlagClient/operations.js +448 -0
  110. package/dist/commonjs/generated/api/featureFlagClient/operations.js.map +7 -0
  111. package/dist/commonjs/generated/api/featureFlagClient/options.d.ts +240 -0
  112. package/dist/commonjs/generated/api/featureFlagClient/options.d.ts.map +1 -0
  113. package/dist/commonjs/generated/api/featureFlagClient/options.js +16 -0
  114. package/dist/commonjs/generated/api/featureFlagClient/options.js.map +7 -0
  115. package/dist/commonjs/generated/api/operations.d.ts +2 -2
  116. package/dist/commonjs/generated/api/operations.d.ts.map +1 -1
  117. package/dist/commonjs/generated/api/operations.js +37 -32
  118. package/dist/commonjs/generated/api/operations.js.map +2 -2
  119. package/dist/commonjs/generated/api/options.d.ts +4 -0
  120. package/dist/commonjs/generated/api/options.d.ts.map +1 -1
  121. package/dist/commonjs/generated/api/options.js.map +1 -1
  122. package/dist/commonjs/generated/appConfigurationClient.d.ts +4 -1
  123. package/dist/commonjs/generated/appConfigurationClient.d.ts.map +1 -1
  124. package/dist/commonjs/generated/appConfigurationClient.js +5 -6
  125. package/dist/commonjs/generated/appConfigurationClient.js.map +2 -2
  126. package/dist/commonjs/generated/classic/featureFlagClient/index.d.ts +25 -0
  127. package/dist/commonjs/generated/classic/featureFlagClient/index.d.ts.map +1 -0
  128. package/dist/commonjs/generated/classic/featureFlagClient/index.js +45 -0
  129. package/dist/commonjs/generated/classic/featureFlagClient/index.js.map +7 -0
  130. package/dist/commonjs/generated/classic/index.d.ts +2 -0
  131. package/dist/commonjs/generated/classic/index.d.ts.map +1 -0
  132. package/dist/commonjs/generated/classic/index.js +16 -0
  133. package/dist/commonjs/generated/classic/index.js.map +7 -0
  134. package/dist/commonjs/generated/index.d.ts +3 -1
  135. package/dist/commonjs/generated/index.d.ts.map +1 -1
  136. package/dist/commonjs/generated/index.js.map +2 -2
  137. package/dist/commonjs/generated/models/index.d.ts +1 -1
  138. package/dist/commonjs/generated/models/index.d.ts.map +1 -1
  139. package/dist/commonjs/generated/models/index.js.map +2 -2
  140. package/dist/commonjs/generated/models/models.d.ts +144 -5
  141. package/dist/commonjs/generated/models/models.d.ts.map +1 -1
  142. package/dist/commonjs/generated/models/models.js +268 -2
  143. package/dist/commonjs/generated/models/models.js.map +2 -2
  144. package/dist/commonjs/generated/restorePollerHelpers.d.ts.map +1 -1
  145. package/dist/commonjs/generated/restorePollerHelpers.js.map +2 -2
  146. package/dist/commonjs/index.d.ts +2 -0
  147. package/dist/commonjs/index.d.ts.map +1 -1
  148. package/dist/commonjs/index.js +8 -0
  149. package/dist/commonjs/index.js.map +2 -2
  150. package/dist/commonjs/internal/constants.d.ts +2 -2
  151. package/dist/commonjs/internal/constants.d.ts.map +1 -1
  152. package/dist/commonjs/internal/constants.js +2 -2
  153. package/dist/commonjs/internal/constants.js.map +1 -1
  154. package/dist/commonjs/internal/createGeneratedClient.d.ts +35 -0
  155. package/dist/commonjs/internal/createGeneratedClient.d.ts.map +1 -0
  156. package/dist/commonjs/internal/createGeneratedClient.js +101 -0
  157. package/dist/commonjs/internal/createGeneratedClient.js.map +7 -0
  158. package/dist/commonjs/internal/doubleEncodedQueryParamNamePolicy.d.ts +7 -0
  159. package/dist/commonjs/internal/doubleEncodedQueryParamNamePolicy.d.ts.map +1 -0
  160. package/dist/commonjs/internal/doubleEncodedQueryParamNamePolicy.js +67 -0
  161. package/dist/commonjs/internal/doubleEncodedQueryParamNamePolicy.js.map +7 -0
  162. package/dist/commonjs/internal/helpers.d.ts +29 -11
  163. package/dist/commonjs/internal/helpers.d.ts.map +1 -1
  164. package/dist/commonjs/internal/helpers.js +40 -2
  165. package/dist/commonjs/internal/helpers.js.map +2 -2
  166. package/dist/commonjs/internal/listFeatureFlagRevisions.d.ts +16 -0
  167. package/dist/commonjs/internal/listFeatureFlagRevisions.d.ts.map +1 -0
  168. package/dist/commonjs/internal/listFeatureFlagRevisions.js +68 -0
  169. package/dist/commonjs/internal/listFeatureFlagRevisions.js.map +7 -0
  170. package/dist/commonjs/internal/listFeatureFlags.d.ts +19 -0
  171. package/dist/commonjs/internal/listFeatureFlags.d.ts.map +1 -0
  172. package/dist/commonjs/internal/listFeatureFlags.js +89 -0
  173. package/dist/commonjs/internal/listFeatureFlags.js.map +7 -0
  174. package/dist/commonjs/internal/listLabels.d.ts +12 -0
  175. package/dist/commonjs/internal/listLabels.d.ts.map +1 -0
  176. package/dist/commonjs/internal/listLabels.js +67 -0
  177. package/dist/commonjs/internal/listLabels.js.map +7 -0
  178. package/dist/commonjs/models.d.ts +271 -3
  179. package/dist/commonjs/models.d.ts.map +1 -1
  180. package/dist/commonjs/models.js +24 -2
  181. package/dist/commonjs/models.js.map +3 -3
  182. package/dist/commonjs/tsdoc-metadata.json +1 -1
  183. package/dist/esm/appConfigurationClient.d.ts +0 -13
  184. package/dist/esm/appConfigurationClient.d.ts.map +1 -1
  185. package/dist/esm/appConfigurationClient.js +9 -111
  186. package/dist/esm/appConfigurationClient.js.map +1 -1
  187. package/dist/esm/featureFlagClient.d.ts +172 -0
  188. package/dist/esm/featureFlagClient.d.ts.map +1 -0
  189. package/dist/esm/featureFlagClient.js +279 -0
  190. package/dist/esm/featureFlagClient.js.map +1 -0
  191. package/dist/esm/generated/api/appConfigurationContext.d.ts.map +1 -1
  192. package/dist/esm/generated/api/appConfigurationContext.js +4 -3
  193. package/dist/esm/generated/api/appConfigurationContext.js.map +1 -1
  194. package/dist/esm/generated/api/featureFlagClient/index.d.ts +3 -0
  195. package/dist/esm/generated/api/featureFlagClient/index.d.ts.map +1 -0
  196. package/dist/esm/generated/api/featureFlagClient/index.js +4 -0
  197. package/dist/esm/generated/api/featureFlagClient/index.js.map +1 -0
  198. package/dist/esm/generated/api/featureFlagClient/operations.d.ts +38 -0
  199. package/dist/esm/generated/api/featureFlagClient/operations.d.ts.map +1 -0
  200. package/dist/esm/generated/api/featureFlagClient/operations.js +404 -0
  201. package/dist/esm/generated/api/featureFlagClient/operations.js.map +1 -0
  202. package/dist/esm/generated/api/featureFlagClient/options.d.ts +240 -0
  203. package/dist/esm/generated/api/featureFlagClient/options.d.ts.map +1 -0
  204. package/dist/esm/generated/api/featureFlagClient/options.js +4 -0
  205. package/dist/esm/generated/api/featureFlagClient/options.js.map +1 -0
  206. package/dist/esm/generated/api/operations.d.ts +2 -2
  207. package/dist/esm/generated/api/operations.d.ts.map +1 -1
  208. package/dist/esm/generated/api/operations.js +35 -30
  209. package/dist/esm/generated/api/operations.js.map +1 -1
  210. package/dist/esm/generated/api/options.d.ts +4 -0
  211. package/dist/esm/generated/api/options.d.ts.map +1 -1
  212. package/dist/esm/generated/api/options.js.map +1 -1
  213. package/dist/esm/generated/appConfigurationClient.d.ts +4 -1
  214. package/dist/esm/generated/appConfigurationClient.d.ts.map +1 -1
  215. package/dist/esm/generated/appConfigurationClient.js +5 -8
  216. package/dist/esm/generated/appConfigurationClient.js.map +1 -1
  217. package/dist/esm/generated/classic/featureFlagClient/index.d.ts +25 -0
  218. package/dist/esm/generated/classic/featureFlagClient/index.d.ts.map +1 -0
  219. package/dist/esm/generated/classic/featureFlagClient/index.js +21 -0
  220. package/dist/esm/generated/classic/featureFlagClient/index.js.map +1 -0
  221. package/dist/esm/generated/classic/index.d.ts +2 -0
  222. package/dist/esm/generated/classic/index.d.ts.map +1 -0
  223. package/dist/esm/generated/classic/index.js +4 -0
  224. package/dist/esm/generated/classic/index.js.map +1 -0
  225. package/dist/esm/generated/index.d.ts +3 -1
  226. package/dist/esm/generated/index.d.ts.map +1 -1
  227. package/dist/esm/generated/index.js.map +1 -1
  228. package/dist/esm/generated/models/index.d.ts +1 -1
  229. package/dist/esm/generated/models/index.d.ts.map +1 -1
  230. package/dist/esm/generated/models/index.js.map +1 -1
  231. package/dist/esm/generated/models/models.d.ts +144 -5
  232. package/dist/esm/generated/models/models.d.ts.map +1 -1
  233. package/dist/esm/generated/models/models.js +231 -0
  234. package/dist/esm/generated/models/models.js.map +1 -1
  235. package/dist/esm/generated/restorePollerHelpers.d.ts.map +1 -1
  236. package/dist/esm/generated/restorePollerHelpers.js.map +1 -1
  237. package/dist/esm/index.d.ts +2 -0
  238. package/dist/esm/index.d.ts.map +1 -1
  239. package/dist/esm/index.js +2 -0
  240. package/dist/esm/index.js.map +1 -1
  241. package/dist/esm/internal/constants.d.ts +2 -2
  242. package/dist/esm/internal/constants.d.ts.map +1 -1
  243. package/dist/esm/internal/constants.js +2 -2
  244. package/dist/esm/internal/constants.js.map +1 -1
  245. package/dist/esm/internal/createGeneratedClient.d.ts +35 -0
  246. package/dist/esm/internal/createGeneratedClient.d.ts.map +1 -0
  247. package/dist/esm/internal/createGeneratedClient.js +85 -0
  248. package/dist/esm/internal/createGeneratedClient.js.map +1 -0
  249. package/dist/esm/internal/doubleEncodedQueryParamNamePolicy.d.ts +7 -0
  250. package/dist/esm/internal/doubleEncodedQueryParamNamePolicy.d.ts.map +1 -0
  251. package/dist/esm/internal/doubleEncodedQueryParamNamePolicy.js +49 -0
  252. package/dist/esm/internal/doubleEncodedQueryParamNamePolicy.js.map +1 -0
  253. package/dist/esm/internal/helpers.d.ts +29 -11
  254. package/dist/esm/internal/helpers.d.ts.map +1 -1
  255. package/dist/esm/internal/helpers.js +47 -1
  256. package/dist/esm/internal/helpers.js.map +1 -1
  257. package/dist/esm/internal/listFeatureFlagRevisions.d.ts +16 -0
  258. package/dist/esm/internal/listFeatureFlagRevisions.d.ts.map +1 -0
  259. package/dist/esm/internal/listFeatureFlagRevisions.js +54 -0
  260. package/dist/esm/internal/listFeatureFlagRevisions.js.map +1 -0
  261. package/dist/esm/internal/listFeatureFlags.d.ts +19 -0
  262. package/dist/esm/internal/listFeatureFlags.d.ts.map +1 -0
  263. package/dist/esm/internal/listFeatureFlags.js +77 -0
  264. package/dist/esm/internal/listFeatureFlags.js.map +1 -0
  265. package/dist/esm/internal/listLabels.d.ts +12 -0
  266. package/dist/esm/internal/listLabels.d.ts.map +1 -0
  267. package/dist/esm/internal/listLabels.js +48 -0
  268. package/dist/esm/internal/listLabels.js.map +1 -0
  269. package/dist/esm/models.d.ts +271 -3
  270. package/dist/esm/models.d.ts.map +1 -1
  271. package/dist/esm/models.js +28 -0
  272. package/dist/esm/models.js.map +1 -1
  273. package/dist/react-native/appConfigurationClient.d.ts +0 -13
  274. package/dist/react-native/appConfigurationClient.d.ts.map +1 -1
  275. package/dist/react-native/appConfigurationClient.js +9 -111
  276. package/dist/react-native/appConfigurationClient.js.map +1 -1
  277. package/dist/react-native/featureFlagClient.d.ts +172 -0
  278. package/dist/react-native/featureFlagClient.d.ts.map +1 -0
  279. package/dist/react-native/featureFlagClient.js +279 -0
  280. package/dist/react-native/featureFlagClient.js.map +1 -0
  281. package/dist/react-native/generated/api/appConfigurationContext.d.ts.map +1 -1
  282. package/dist/react-native/generated/api/appConfigurationContext.js +4 -3
  283. package/dist/react-native/generated/api/appConfigurationContext.js.map +1 -1
  284. package/dist/react-native/generated/api/featureFlagClient/index.d.ts +3 -0
  285. package/dist/react-native/generated/api/featureFlagClient/index.d.ts.map +1 -0
  286. package/dist/react-native/generated/api/featureFlagClient/index.js +4 -0
  287. package/dist/react-native/generated/api/featureFlagClient/index.js.map +1 -0
  288. package/dist/react-native/generated/api/featureFlagClient/operations.d.ts +38 -0
  289. package/dist/react-native/generated/api/featureFlagClient/operations.d.ts.map +1 -0
  290. package/dist/react-native/generated/api/featureFlagClient/operations.js +404 -0
  291. package/dist/react-native/generated/api/featureFlagClient/operations.js.map +1 -0
  292. package/dist/react-native/generated/api/featureFlagClient/options.d.ts +240 -0
  293. package/dist/react-native/generated/api/featureFlagClient/options.d.ts.map +1 -0
  294. package/dist/react-native/generated/api/featureFlagClient/options.js +4 -0
  295. package/dist/react-native/generated/api/featureFlagClient/options.js.map +1 -0
  296. package/dist/react-native/generated/api/operations.d.ts +2 -2
  297. package/dist/react-native/generated/api/operations.d.ts.map +1 -1
  298. package/dist/react-native/generated/api/operations.js +35 -30
  299. package/dist/react-native/generated/api/operations.js.map +1 -1
  300. package/dist/react-native/generated/api/options.d.ts +4 -0
  301. package/dist/react-native/generated/api/options.d.ts.map +1 -1
  302. package/dist/react-native/generated/api/options.js.map +1 -1
  303. package/dist/react-native/generated/appConfigurationClient.d.ts +4 -1
  304. package/dist/react-native/generated/appConfigurationClient.d.ts.map +1 -1
  305. package/dist/react-native/generated/appConfigurationClient.js +5 -8
  306. package/dist/react-native/generated/appConfigurationClient.js.map +1 -1
  307. package/dist/react-native/generated/classic/featureFlagClient/index.d.ts +25 -0
  308. package/dist/react-native/generated/classic/featureFlagClient/index.d.ts.map +1 -0
  309. package/dist/react-native/generated/classic/featureFlagClient/index.js +21 -0
  310. package/dist/react-native/generated/classic/featureFlagClient/index.js.map +1 -0
  311. package/dist/react-native/generated/classic/index.d.ts +2 -0
  312. package/dist/react-native/generated/classic/index.d.ts.map +1 -0
  313. package/dist/react-native/generated/classic/index.js +4 -0
  314. package/dist/react-native/generated/classic/index.js.map +1 -0
  315. package/dist/react-native/generated/index.d.ts +3 -1
  316. package/dist/react-native/generated/index.d.ts.map +1 -1
  317. package/dist/react-native/generated/index.js.map +1 -1
  318. package/dist/react-native/generated/models/index.d.ts +1 -1
  319. package/dist/react-native/generated/models/index.d.ts.map +1 -1
  320. package/dist/react-native/generated/models/index.js.map +1 -1
  321. package/dist/react-native/generated/models/models.d.ts +144 -5
  322. package/dist/react-native/generated/models/models.d.ts.map +1 -1
  323. package/dist/react-native/generated/models/models.js +231 -0
  324. package/dist/react-native/generated/models/models.js.map +1 -1
  325. package/dist/react-native/generated/restorePollerHelpers.d.ts.map +1 -1
  326. package/dist/react-native/generated/restorePollerHelpers.js.map +1 -1
  327. package/dist/react-native/index.d.ts +2 -0
  328. package/dist/react-native/index.d.ts.map +1 -1
  329. package/dist/react-native/index.js +2 -0
  330. package/dist/react-native/index.js.map +1 -1
  331. package/dist/react-native/internal/constants.d.ts +2 -2
  332. package/dist/react-native/internal/constants.d.ts.map +1 -1
  333. package/dist/react-native/internal/constants.js +2 -2
  334. package/dist/react-native/internal/constants.js.map +1 -1
  335. package/dist/react-native/internal/createGeneratedClient.d.ts +35 -0
  336. package/dist/react-native/internal/createGeneratedClient.d.ts.map +1 -0
  337. package/dist/react-native/internal/createGeneratedClient.js +85 -0
  338. package/dist/react-native/internal/createGeneratedClient.js.map +1 -0
  339. package/dist/react-native/internal/doubleEncodedQueryParamNamePolicy.d.ts +7 -0
  340. package/dist/react-native/internal/doubleEncodedQueryParamNamePolicy.d.ts.map +1 -0
  341. package/dist/react-native/internal/doubleEncodedQueryParamNamePolicy.js +49 -0
  342. package/dist/react-native/internal/doubleEncodedQueryParamNamePolicy.js.map +1 -0
  343. package/dist/react-native/internal/helpers.d.ts +29 -11
  344. package/dist/react-native/internal/helpers.d.ts.map +1 -1
  345. package/dist/react-native/internal/helpers.js +47 -1
  346. package/dist/react-native/internal/helpers.js.map +1 -1
  347. package/dist/react-native/internal/listFeatureFlagRevisions.d.ts +16 -0
  348. package/dist/react-native/internal/listFeatureFlagRevisions.d.ts.map +1 -0
  349. package/dist/react-native/internal/listFeatureFlagRevisions.js +54 -0
  350. package/dist/react-native/internal/listFeatureFlagRevisions.js.map +1 -0
  351. package/dist/react-native/internal/listFeatureFlags.d.ts +19 -0
  352. package/dist/react-native/internal/listFeatureFlags.d.ts.map +1 -0
  353. package/dist/react-native/internal/listFeatureFlags.js +77 -0
  354. package/dist/react-native/internal/listFeatureFlags.js.map +1 -0
  355. package/dist/react-native/internal/listLabels.d.ts +12 -0
  356. package/dist/react-native/internal/listLabels.d.ts.map +1 -0
  357. package/dist/react-native/internal/listLabels.js +48 -0
  358. package/dist/react-native/internal/listLabels.js.map +1 -0
  359. package/dist/react-native/models.d.ts +271 -3
  360. package/dist/react-native/models.d.ts.map +1 -1
  361. package/dist/react-native/models.js +28 -0
  362. package/dist/react-native/models.js.map +1 -1
  363. package/package.json +8 -12
@@ -0,0 +1,85 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT License.
3
+ import { isTokenCredential } from "@azure/core-auth";
4
+ import { bearerTokenAuthenticationPolicyName } from "@azure/core-rest-pipeline";
5
+ import { AppConfigurationClient as GeneratedAppConfigurationClient, } from "../generated/appConfigurationClient.js";
6
+ import { appConfigKeyCredentialPolicy } from "../appConfigCredential.js";
7
+ import { audienceErrorHandlingPolicy } from "./audienceErrorHandlingPolicy.js";
8
+ import { SyncTokens, syncTokenPolicy } from "./syncTokenPolicy.js";
9
+ import { queryParamPolicy } from "./queryParamPolicy.js";
10
+ import { doubleEncodedQueryParamNamePolicy } from "./doubleEncodedQueryParamNamePolicy.js";
11
+ import { emptyBodyPolicy } from "./emptyBodyPolicy.js";
12
+ import { getScope } from "./helpers.js";
13
+ import { logger } from "../logger.js";
14
+ import { appConfigurationApiVersion } from "./constants.js";
15
+ const ConnectionStringRegex = /Endpoint=(.*);Id=(.*);Secret=(.*)/;
16
+ /**
17
+ * Builds and configures the generated App Configuration client, applying the
18
+ * shared authentication and sync-token pipeline policies. This is used by both
19
+ * `AppConfigurationClient` and `FeatureFlagClient` so they share identical
20
+ * construction and authentication behavior.
21
+ *
22
+ * @internal
23
+ */
24
+ export function createConfiguredGeneratedClient(connectionStringOrEndpoint, tokenCredentialOrOptions, options) {
25
+ let appConfigOptions = {};
26
+ let appConfigCredential = undefined;
27
+ let appConfigEndpoint;
28
+ let authPolicy;
29
+ let authPolicyName;
30
+ let scope;
31
+ if (isTokenCredential(tokenCredentialOrOptions)) {
32
+ appConfigOptions = options || {};
33
+ appConfigCredential = tokenCredentialOrOptions;
34
+ appConfigEndpoint = connectionStringOrEndpoint.endsWith("/")
35
+ ? connectionStringOrEndpoint.slice(0, -1)
36
+ : connectionStringOrEndpoint;
37
+ scope = [getScope(appConfigEndpoint, appConfigOptions.audience)];
38
+ authPolicyName = bearerTokenAuthenticationPolicyName;
39
+ }
40
+ else {
41
+ appConfigOptions = tokenCredentialOrOptions || {};
42
+ const regexMatch = connectionStringOrEndpoint?.match(ConnectionStringRegex);
43
+ if (regexMatch) {
44
+ appConfigEndpoint = regexMatch[1];
45
+ authPolicy = appConfigKeyCredentialPolicy(regexMatch[2], regexMatch[3]);
46
+ authPolicyName = authPolicy.name;
47
+ }
48
+ else {
49
+ throw new Error(`Invalid connection string. Valid connection strings should match the regex '${ConnectionStringRegex.source}'.` +
50
+ ` To mitigate the issue, please refer to the troubleshooting guide here at https://aka.ms/azsdk/js/app-configuration/troubleshoot.`);
51
+ }
52
+ }
53
+ const generatedClientOptions = {
54
+ ...appConfigOptions,
55
+ loggingOptions: {
56
+ logger: logger.info,
57
+ },
58
+ apiVersion: appConfigOptions.apiVersion ?? appConfigurationApiVersion,
59
+ credentials: {},
60
+ };
61
+ generatedClientOptions.credentials = {
62
+ ...generatedClientOptions.credentials,
63
+ scopes: scope,
64
+ };
65
+ const syncTokens = appConfigOptions.syncTokens || new SyncTokens();
66
+ const client = new GeneratedAppConfigurationClient(appConfigEndpoint,
67
+ // When a connection string is used, appConfigCredential is undefined here. We pass undefined to avoid @azure-rest/core-client's keyCredentialAuthenticationPolicy setting the apiKeyHeader on the request.
68
+ // Connection strings are authenticated by HMAC (appConfigKeyCredentialPolicy) and the secret should never leave the client.
69
+ // The `as TokenCredential` cast bridges a gap between the generated client and the core SDK: the generated constructor types `credential` as required (KeyCredential | TokenCredential),
70
+ // but @azure-rest/core-client's addCredentialPipelinePolicy no-ops when no credential is passed, so handing it undefined is safe at runtime.
71
+ appConfigCredential, generatedClientOptions);
72
+ client.pipeline.addPolicy(audienceErrorHandlingPolicy(appConfigOptions?.audience !== undefined), {
73
+ phase: "Sign",
74
+ beforePolicies: [authPolicyName],
75
+ });
76
+ if (authPolicy) {
77
+ client.pipeline.addPolicy(authPolicy, { phase: "Sign" });
78
+ }
79
+ client.pipeline.addPolicy(doubleEncodedQueryParamNamePolicy());
80
+ client.pipeline.addPolicy(queryParamPolicy());
81
+ client.pipeline.addPolicy(emptyBodyPolicy());
82
+ client.pipeline.addPolicy(syncTokenPolicy(syncTokens), { afterPhase: "Retry" });
83
+ return { client, syncTokens };
84
+ }
85
+ //# sourceMappingURL=createGeneratedClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createGeneratedClient.js","sourceRoot":"","sources":["../../../src/internal/createGeneratedClient.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { TokenCredential } from \"@azure/core-auth\";\nimport { isTokenCredential } from \"@azure/core-auth\";\nimport type { PipelinePolicy } from \"@azure/core-rest-pipeline\";\nimport { bearerTokenAuthenticationPolicyName } from \"@azure/core-rest-pipeline\";\nimport type { AppConfigurationClientOptions } from \"../models.js\";\nimport {\n AppConfigurationClient as GeneratedAppConfigurationClient,\n type AppConfigurationClientOptionalParams as GeneratedAppConfigurationClientOptionalParams,\n} from \"../generated/appConfigurationClient.js\";\nimport { appConfigKeyCredentialPolicy } from \"../appConfigCredential.js\";\nimport { audienceErrorHandlingPolicy } from \"./audienceErrorHandlingPolicy.js\";\nimport { SyncTokens, syncTokenPolicy } from \"./syncTokenPolicy.js\";\nimport { queryParamPolicy } from \"./queryParamPolicy.js\";\nimport { doubleEncodedQueryParamNamePolicy } from \"./doubleEncodedQueryParamNamePolicy.js\";\nimport { emptyBodyPolicy } from \"./emptyBodyPolicy.js\";\nimport { getScope } from \"./helpers.js\";\nimport { logger } from \"../logger.js\";\nimport { appConfigurationApiVersion } from \"./constants.js\";\n\nconst ConnectionStringRegex = /Endpoint=(.*);Id=(.*);Secret=(.*)/;\n\n/**\n * Provides internal configuration options for the App Configuration clients.\n * @internal\n */\nexport interface InternalAppConfigurationClientOptions extends AppConfigurationClientOptions {\n /**\n * The sync token cache to use for this client.\n * NOTE: this is an internal option, not for general client usage.\n */\n syncTokens?: SyncTokens;\n}\n\n/**\n * The configured generated client along with the sync token cache it uses.\n * @internal\n */\nexport interface ConfiguredGeneratedClient {\n /** The configured generated client. */\n client: GeneratedAppConfigurationClient;\n /** The sync token cache shared with the pipeline. */\n syncTokens: SyncTokens;\n}\n\n/**\n * Builds and configures the generated App Configuration client, applying the\n * shared authentication and sync-token pipeline policies. This is used by both\n * `AppConfigurationClient` and `FeatureFlagClient` so they share identical\n * construction and authentication behavior.\n *\n * @internal\n */\nexport function createConfiguredGeneratedClient(\n connectionStringOrEndpoint: string,\n tokenCredentialOrOptions?: TokenCredential | AppConfigurationClientOptions,\n options?: AppConfigurationClientOptions,\n): ConfiguredGeneratedClient {\n let appConfigOptions: InternalAppConfigurationClientOptions = {};\n let appConfigCredential: TokenCredential | undefined = undefined;\n let appConfigEndpoint: string;\n let authPolicy: PipelinePolicy | undefined;\n let authPolicyName: string;\n let scope: [string] | undefined;\n\n if (isTokenCredential(tokenCredentialOrOptions)) {\n appConfigOptions = (options as InternalAppConfigurationClientOptions) || {};\n appConfigCredential = tokenCredentialOrOptions;\n appConfigEndpoint = connectionStringOrEndpoint.endsWith(\"/\")\n ? connectionStringOrEndpoint.slice(0, -1)\n : connectionStringOrEndpoint;\n scope = [getScope(appConfigEndpoint, appConfigOptions.audience)];\n authPolicyName = bearerTokenAuthenticationPolicyName;\n } else {\n appConfigOptions = (tokenCredentialOrOptions as InternalAppConfigurationClientOptions) || {};\n const regexMatch = connectionStringOrEndpoint?.match(ConnectionStringRegex);\n if (regexMatch) {\n appConfigEndpoint = regexMatch[1];\n authPolicy = appConfigKeyCredentialPolicy(regexMatch[2], regexMatch[3]);\n authPolicyName = authPolicy.name;\n } else {\n throw new Error(\n `Invalid connection string. Valid connection strings should match the regex '${ConnectionStringRegex.source}'.` +\n ` To mitigate the issue, please refer to the troubleshooting guide here at https://aka.ms/azsdk/js/app-configuration/troubleshoot.`,\n );\n }\n }\n\n const generatedClientOptions: GeneratedAppConfigurationClientOptionalParams = {\n ...appConfigOptions,\n loggingOptions: {\n logger: logger.info,\n },\n apiVersion: appConfigOptions.apiVersion ?? appConfigurationApiVersion,\n credentials: {},\n };\n\n generatedClientOptions.credentials = {\n ...generatedClientOptions.credentials,\n scopes: scope,\n };\n\n const syncTokens = appConfigOptions.syncTokens || new SyncTokens();\n const client = new GeneratedAppConfigurationClient(\n appConfigEndpoint,\n // When a connection string is used, appConfigCredential is undefined here. We pass undefined to avoid @azure-rest/core-client's keyCredentialAuthenticationPolicy setting the apiKeyHeader on the request.\n // Connection strings are authenticated by HMAC (appConfigKeyCredentialPolicy) and the secret should never leave the client.\n // The `as TokenCredential` cast bridges a gap between the generated client and the core SDK: the generated constructor types `credential` as required (KeyCredential | TokenCredential),\n // but @azure-rest/core-client's addCredentialPipelinePolicy no-ops when no credential is passed, so handing it undefined is safe at runtime.\n appConfigCredential as TokenCredential,\n generatedClientOptions,\n );\n client.pipeline.addPolicy(audienceErrorHandlingPolicy(appConfigOptions?.audience !== undefined), {\n phase: \"Sign\",\n beforePolicies: [authPolicyName],\n });\n if (authPolicy) {\n client.pipeline.addPolicy(authPolicy, { phase: \"Sign\" });\n }\n\n client.pipeline.addPolicy(doubleEncodedQueryParamNamePolicy());\n client.pipeline.addPolicy(queryParamPolicy());\n client.pipeline.addPolicy(emptyBodyPolicy());\n client.pipeline.addPolicy(syncTokenPolicy(syncTokens), { afterPhase: \"Retry\" });\n\n return { client, syncTokens };\n}\n"]}
@@ -0,0 +1,7 @@
1
+ import type { PipelinePolicy } from "@azure/core-rest-pipeline";
2
+ /**
3
+ * Corrects query parameter names that the TypeScript emitter double-encodes
4
+ * when expanding array-valued RFC 6570 template variables.
5
+ */
6
+ export declare function doubleEncodedQueryParamNamePolicy(): PipelinePolicy;
7
+ //# sourceMappingURL=doubleEncodedQueryParamNamePolicy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doubleEncodedQueryParamNamePolicy.d.ts","sourceRoot":"","sources":["../../../src/internal/doubleEncodedQueryParamNamePolicy.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,cAAc,EAIf,MAAM,2BAA2B,CAAC;AAQnC;;;GAGG;AACH,wBAAgB,iCAAiC,IAAI,cAAc,CAyClE"}
@@ -0,0 +1,49 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT License.
3
+ import { logger } from "../logger.js";
4
+ const queryParameterNameReplacements = new Map([
5
+ // The emitter re-encodes the already encoded $Select name when its value is an array.
6
+ ["%2524select", "%24Select"],
7
+ ]);
8
+ /**
9
+ * Corrects query parameter names that the TypeScript emitter double-encodes
10
+ * when expanding array-valued RFC 6570 template variables.
11
+ */
12
+ export function doubleEncodedQueryParamNamePolicy() {
13
+ return {
14
+ name: "doubleEncodedQueryParamNamePolicy",
15
+ async sendRequest(request, next) {
16
+ let url;
17
+ try {
18
+ url = new URL(request.url);
19
+ }
20
+ catch (error) {
21
+ if (error instanceof TypeError) {
22
+ logger.warning(`"[doubleEncodedQueryParamNamePolicy] Could not parse URL: ${request.url}"`);
23
+ return next(request);
24
+ }
25
+ throw error;
26
+ }
27
+ if (url.search === "") {
28
+ return next(request);
29
+ }
30
+ const query = url.search.substring(1);
31
+ const normalizedQuery = query
32
+ .split("&")
33
+ .map((entry) => {
34
+ const equalIndex = entry.indexOf("=");
35
+ const name = equalIndex === -1 ? entry : entry.substring(0, equalIndex);
36
+ const value = equalIndex === -1 ? "" : entry.substring(equalIndex);
37
+ const normalizedName = queryParameterNameReplacements.get(name.toLowerCase()) ?? name;
38
+ return `${normalizedName}${value}`;
39
+ })
40
+ .join("&");
41
+ if (normalizedQuery !== query) {
42
+ url.search = normalizedQuery;
43
+ request.url = url.toString();
44
+ }
45
+ return next(request);
46
+ },
47
+ };
48
+ }
49
+ //# sourceMappingURL=doubleEncodedQueryParamNamePolicy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doubleEncodedQueryParamNamePolicy.js","sourceRoot":"","sources":["../../../src/internal/doubleEncodedQueryParamNamePolicy.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAQlC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,MAAM,8BAA8B,GAAG,IAAI,GAAG,CAAC;IAC7C,sFAAsF;IACtF,CAAC,aAAa,EAAE,WAAW,CAAC;CAC7B,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,UAAU,iCAAiC;IAC/C,OAAO;QACL,IAAI,EAAE,mCAAmC;QACzC,KAAK,CAAC,WAAW,CAAC,OAAwB,EAAE,IAAiB;YAC3D,IAAI,GAAQ,CAAC;YACb,IAAI,CAAC;gBACH,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC7B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,SAAS,EAAE,CAAC;oBAC/B,MAAM,CAAC,OAAO,CACZ,6DAA6D,OAAO,CAAC,GAAG,GAAG,CAC5E,CAAC;oBACF,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;gBACvB,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC;YAED,IAAI,GAAG,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;gBACtB,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;YACvB,CAAC;YAED,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACtC,MAAM,eAAe,GAAG,KAAK;iBAC1B,KAAK,CAAC,GAAG,CAAC;iBACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;gBACb,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBACtC,MAAM,IAAI,GAAG,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;gBACxE,MAAM,KAAK,GAAG,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;gBACnE,MAAM,cAAc,GAAG,8BAA8B,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,IAAI,CAAC;gBACtF,OAAO,GAAG,cAAc,GAAG,KAAK,EAAE,CAAC;YACrC,CAAC,CAAC;iBACD,IAAI,CAAC,GAAG,CAAC,CAAC;YAEb,IAAI,eAAe,KAAK,KAAK,EAAE,CAAC;gBAC9B,GAAG,CAAC,MAAM,GAAG,eAAe,CAAC;gBAC7B,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;YAC/B,CAAC;YAED,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;KACF,CAAC;AACJ,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type {\n PipelinePolicy,\n PipelineRequest,\n PipelineResponse,\n SendRequest,\n} from \"@azure/core-rest-pipeline\";\nimport { logger } from \"../logger.js\";\n\nconst queryParameterNameReplacements = new Map([\n // The emitter re-encodes the already encoded $Select name when its value is an array.\n [\"%2524select\", \"%24Select\"],\n]);\n\n/**\n * Corrects query parameter names that the TypeScript emitter double-encodes\n * when expanding array-valued RFC 6570 template variables.\n */\nexport function doubleEncodedQueryParamNamePolicy(): PipelinePolicy {\n return {\n name: \"doubleEncodedQueryParamNamePolicy\",\n async sendRequest(request: PipelineRequest, next: SendRequest): Promise<PipelineResponse> {\n let url: URL;\n try {\n url = new URL(request.url);\n } catch (error) {\n if (error instanceof TypeError) {\n logger.warning(\n `\"[doubleEncodedQueryParamNamePolicy] Could not parse URL: ${request.url}\"`,\n );\n return next(request);\n }\n throw error;\n }\n\n if (url.search === \"\") {\n return next(request);\n }\n\n const query = url.search.substring(1);\n const normalizedQuery = query\n .split(\"&\")\n .map((entry) => {\n const equalIndex = entry.indexOf(\"=\");\n const name = equalIndex === -1 ? entry : entry.substring(0, equalIndex);\n const value = equalIndex === -1 ? \"\" : entry.substring(equalIndex);\n const normalizedName = queryParameterNameReplacements.get(name.toLowerCase()) ?? name;\n return `${normalizedName}${value}`;\n })\n .join(\"&\");\n\n if (normalizedQuery !== query) {\n url.search = normalizedQuery;\n request.url = url.toString();\n }\n\n return next(request);\n },\n };\n}\n"]}
@@ -1,10 +1,12 @@
1
- import { type ConfigurationSetting, type ConfigurationSettingParam, type HttpOnlyIfChangedField, type HttpOnlyIfUnchangedField, type HttpResponseField, type HttpResponseFields, type ListRevisionsOptions, type ListSettingsOptions, type ListSnapshotsOptions, type SnapshotResponse, type EtagEntity, type ListLabelsOptions, type SnapshotInfo } from "../models.js";
1
+ import { type ConfigurationSetting, type ConfigurationSettingParam, type FeatureFlag, type HttpOnlyIfChangedField, type HttpOnlyIfUnchangedField, type HttpResponseField, type HttpResponseFields, type ListRevisionsOptions, type ListSettingsOptions, type ListFeatureFlagRevisionsOptions, type ListFeatureFlagsOptions, type ListSnapshotsOptions, type SnapshotResponse, type EtagEntity, type ListLabelsOptions, type SnapshotInfo } from "../models.js";
2
2
  import type { FeatureFlagValue } from "../featureFlag.js";
3
3
  import type { GetKeyValuesOptionalParams, GetLabelsOptionalParams, GetSnapshotsOptionalParams } from "../generated/api/options.js";
4
- import type { KeyValue, ConfigurationSnapshot as Snapshot, KeyValueFields } from "../generated/models/models.js";
4
+ import type { KeyValue, ConfigurationSnapshot as Snapshot, KeyValueFields, FeatureFlagFields } from "../generated/models/models.js";
5
5
  import type { SecretReferenceValue } from "../secretReference.js";
6
6
  import type { SnapshotReferenceValue } from "../snapshotReference.js";
7
7
  import type { OperationOptions } from "@azure/core-client";
8
+ import { type CompatResponse } from "@azure/core-http-compat";
9
+ import type { SyncTokenHeaderField } from "../models.js";
8
10
  /**
9
11
  * Options for listConfigurationSettings that allow for filtering based on keys, labels and other fields.
10
12
  * Also provides `fields` which allows you to selectively choose which fields are populated in the
@@ -16,13 +18,6 @@ export interface SendConfigurationSettingsOptions extends OperationOptions, List
16
18
  */
17
19
  snapshotName?: string;
18
20
  }
19
- /**
20
- * Options for listLabels that allow for filtering based on keys, labels and other fields.
21
- * Also provides `fields` which allows you to selectively choose which fields are populated in the
22
- * result.
23
- */
24
- export interface SendLabelsRequestOptions extends ListLabelsOptions {
25
- }
26
21
  /**
27
22
  * Formats the etag so it can be used with a If-Match/If-None-Match header
28
23
  * @internal
@@ -48,6 +43,16 @@ export declare function checkAndFormatIfAndIfNoneMatch(objectWithEtag: EtagEntit
48
43
  * @internal
49
44
  */
50
45
  export declare function formatFiltersAndSelect(listConfigOptions: ListRevisionsOptions): Pick<GetKeyValuesOptionalParams, "key" | "label" | "select" | "acceptDatetime" | "tags">;
46
+ /**
47
+ * Transforms feature flag list filters into their generated client equivalents.
48
+ * @internal
49
+ */
50
+ export declare function formatFeatureFlagFiltersAndSelect(options: ListFeatureFlagsOptions | ListFeatureFlagRevisionsOptions): {
51
+ name: string | undefined;
52
+ label: string | undefined;
53
+ tags: string[] | undefined;
54
+ select: FeatureFlagFields[] | undefined;
55
+ };
51
56
  /**
52
57
  * Transforms some of the key fields in SendConfigurationSettingsOptions
53
58
  * so they can be added to a request using AppConfigurationGetKeyValuesOptionalParams.
@@ -75,7 +80,7 @@ export declare function formatSnapshotFiltersAndSelect(listSnapshotOptions: List
75
80
  *
76
81
  * @internal
77
82
  */
78
- export declare function formatLabelsFiltersAndSelect(listLabelsOptions: ListLabelsOptions): Pick<GetLabelsOptionalParams, "name" | "select">;
83
+ export declare function formatLabelsFiltersAndSelect(listLabelsOptions: ListLabelsOptions, resourceType?: string): Pick<GetLabelsOptionalParams, "name" | "select" | "resourceType">;
79
84
  /**
80
85
  * Handles translating a Date acceptDateTime into a string as needed by the API
81
86
  * @param newOptions - A newer style options with acceptDateTime as a date (and with proper casing!)
@@ -118,7 +123,7 @@ export declare function serializeAsConfigurationSettingParam(setting: Configurat
118
123
  /**
119
124
  * @internal
120
125
  */
121
- export declare function transformKeyValueResponseWithStatusCode<T extends KeyValue>(kvp: T | undefined, status: number | undefined): ConfigurationSetting & {
126
+ export declare function transformKeyValueResponseWithStatusCode<T extends KeyValue>(kvp: T | void, status: number | undefined): ConfigurationSetting & {
122
127
  eTag?: string;
123
128
  } & HttpResponseFields;
124
129
  /**
@@ -146,6 +151,19 @@ export declare function snapshotInfoToGenerated(snapshot: SnapshotInfo): Snapsho
146
151
  * @internal
147
152
  */
148
153
  export declare function formatFieldsForSelect(fieldNames: (keyof ConfigurationSetting)[] | undefined): KeyValueFields[] | undefined;
154
+ /**
155
+ * Translates user-facing feature flag field names into their wire equivalents.
156
+ * @internal
157
+ */
158
+ export declare function formatFeatureFlagFieldsForSelect(fieldNames: (keyof FeatureFlag)[] | undefined): FeatureFlagFields[] | undefined;
159
+ /**
160
+ * Converts a modular generated response to the compatibility response exposed by this package.
161
+ * @internal
162
+ */
163
+ export declare function toAppConfigurationCompatResponse(response: unknown): CompatResponse & {
164
+ parsedHeaders: SyncTokenHeaderField;
165
+ bodyAsText: string;
166
+ };
149
167
  /**
150
168
  * @internal
151
169
  */
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/internal/helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/internal/helpers.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,8 @@ import { SecretReferenceHelper, secretReferenceContentType } from "../secretRefe
6
6
  import { SnapshotReferenceHelper, snapshotReferenceContentType } from "../snapshotReference.js";
7
7
  import { isDefined } from "@azure/core-util";
8
8
  import { logger } from "../logger.js";
9
+ import { toCompatResponse } from "@azure/core-http-compat";
10
+ import { createHttpHeaders } from "@azure/core-rest-pipeline";
9
11
  /**
10
12
  * Formats the etag so it can be used with a If-Match/If-None-Match header
11
13
  * @internal
@@ -70,6 +72,18 @@ export function formatFiltersAndSelect(listConfigOptions) {
70
72
  select: formatFieldsForSelect(listConfigOptions.fields),
71
73
  };
72
74
  }
75
+ /**
76
+ * Transforms feature flag list filters into their generated client equivalents.
77
+ * @internal
78
+ */
79
+ export function formatFeatureFlagFiltersAndSelect(options) {
80
+ return {
81
+ name: options.nameFilter,
82
+ label: options.labelFilter,
83
+ tags: options.tagsFilter,
84
+ select: formatFeatureFlagFieldsForSelect(options.fields),
85
+ };
86
+ }
73
87
  /**
74
88
  * Transforms some of the key fields in SendConfigurationSettingsOptions
75
89
  * so they can be added to a request using AppConfigurationGetKeyValuesOptionalParams.
@@ -109,10 +123,11 @@ export function formatSnapshotFiltersAndSelect(listSnapshotOptions) {
109
123
  *
110
124
  * @internal
111
125
  */
112
- export function formatLabelsFiltersAndSelect(listLabelsOptions) {
126
+ export function formatLabelsFiltersAndSelect(listLabelsOptions, resourceType) {
113
127
  return {
114
128
  name: listLabelsOptions.nameFilter,
115
129
  select: listLabelsOptions.fields,
130
+ resourceType,
116
131
  };
117
132
  }
118
133
  /**
@@ -340,6 +355,37 @@ export function formatFieldsForSelect(fieldNames) {
340
355
  });
341
356
  return mappedFieldNames;
342
357
  }
358
+ /**
359
+ * Translates user-facing feature flag field names into their wire equivalents.
360
+ * @internal
361
+ */
362
+ export function formatFeatureFlagFieldsForSelect(fieldNames) {
363
+ return fieldNames?.map((fieldName) => fieldName === "lastModified" ? "last_modified" : fieldName);
364
+ }
365
+ /**
366
+ * Converts a modular generated response to the compatibility response exposed by this package.
367
+ * @internal
368
+ */
369
+ export function toAppConfigurationCompatResponse(response) {
370
+ const rawResponse = response;
371
+ const headers = "get" in rawResponse.headers ? rawResponse.headers : createHttpHeaders(rawResponse.headers);
372
+ const normalizedResponse = {
373
+ ...rawResponse,
374
+ status: Number(rawResponse.status),
375
+ headers,
376
+ };
377
+ const compatResponse = toCompatResponse(normalizedResponse);
378
+ return Object.assign(compatResponse, {
379
+ parsedHeaders: {
380
+ syncToken: headers.get("sync-token"),
381
+ },
382
+ bodyAsText: typeof rawResponse.body === "string"
383
+ ? rawResponse.body
384
+ : rawResponse.body === undefined
385
+ ? ""
386
+ : JSON.stringify(rawResponse.body),
387
+ });
388
+ }
343
389
  /**
344
390
  * @internal
345
391
  */
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/internal/helpers.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAeL,sBAAsB,GACvB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAe9E,OAAO,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAE1F,OAAO,EAAE,uBAAuB,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAC;AAChG,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAuBtC;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,IAAwB;IAChD,kDAAkD;IAClD,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,IAAI,IAAI,GAAG,CAAC;AACrB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,8BAA8B,CAC5C,cAA0B,EAC1B,OAA0D;IAE1D,IAAI,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;QACrD,MAAM,CAAC,KAAK,CACV,sDAAsD,EACtD,OAAO,CAAC,aAAa,EACrB,OAAO,CAAC,eAAe,CACxB,CAAC;QACF,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC9E,CAAC;IAED,IAAI,OAAO,CAAC;IACZ,IAAI,WAAW,CAAC;IAEhB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;QAC5B,OAAO,GAAG,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;QAC1B,WAAW,GAAG,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED,OAAO;QACL,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,WAAW;KACzB,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,sBAAsB,CACpC,iBAAuC;IAEvC,IAAI,cAAc,GAAuB,SAAS,CAAC;IAEnD,IAAI,iBAAiB,CAAC,cAAc,EAAE,CAAC;QACrC,cAAc,GAAG,iBAAiB,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;IAClE,CAAC;IACD,OAAO;QACL,GAAG,EAAE,iBAAiB,CAAC,SAAS;QAChC,KAAK,EAAE,iBAAiB,CAAC,WAAW;QACpC,gDAAgD;QAChD,IAAI,EAAE,iBAAiB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;QACrE,cAAc;QACd,MAAM,EAAE,qBAAqB,CAAC,iBAAiB,CAAC,MAAM,CAAC;KACxD,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,2CAA2C,CACzD,iBAAmD;IAKnD,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,OAAO,EAAE,GAAG,iBAAiB,CAAC;IACjE,OAAO;QACL,GAAG,sBAAsB,CAAC,OAAO,CAAC;QAClC,QAAQ;KACT,CAAC;AACJ,CAAC;AACD;;;;;;;GAOG;AACH,MAAM,UAAU,8BAA8B,CAC5C,mBAAyC;IAEzC,OAAO;QACL,IAAI,EAAE,mBAAmB,CAAC,UAAU;QACpC,MAAM,EAAE,mBAAmB,CAAC,YAA4C;QACxE,MAAM,EAAE,mBAAmB,CAAC,MAAsC;KACnE,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,4BAA4B,CAC1C,iBAAoC;IAEpC,OAAO;QACL,IAAI,EAAE,iBAAiB,CAAC,UAAU;QAClC,MAAM,EAAE,iBAAiB,CAAC,MAAM;KACjC,CAAC;AACJ,CAAC;AACD;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,UAAqC;IAGxE,OAAO;QACL,cAAc,EAAE,UAAU,CAAC,cAAc,IAAI,UAAU,CAAC,cAAc,CAAC,WAAW,EAAE;KACrF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,6BAA6B,CAAC,QAAgB;IAC5D,MAAM,YAAY,GAAG,IAAI,eAAe,CAAC,QAAQ,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAE7C,IAAI,UAAU,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACpD,MAAM,CAAC,KAAK,CAAC,wCAAwC,EAAE,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;QAC9F,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO,kBAAkB,CAAC,UAAU,CAAC,CAAC;AACxC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,+BAA+B,CAAC,IAAY;IAC1D,4CAA4C;IAC5C,QAAQ;IACR,8EAA8E;IAC9E,EAAE;IACF,aAAa;IACb,gEAAgE;IAChE,EAAE;IACF,YAAY;IACZ,8DAA8D;IAC9D,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACrC,MAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC9D,OAAO,6BAA6B,CAAC,QAAQ,CAAC,CAAC;AACjD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,6BAA6B,CAC3C,oBAAsF;IAEtF,MAAM,KAAK,GAAiD;QAC1D,aAAa;QACb,aAAa;QACb,MAAM;QACN,OAAO;QACP,cAAc;QACd,YAAY;QACZ,MAAM;QACN,OAAO;KACR,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,oBAAoB,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;IACzC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAI,GAAiB;IACpD,MAAM,OAAO,GAAG;QACd,KAAK,EAAE,SAAS;QAChB,GAAG,GAAG;QACN,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM;QACxB,YAAY,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS;KACxE,CAAC;IACF,OAAO,OAAO,CAAC,MAAM,CAAC;IACtB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO,OAAO,CAAC,KAAK,CAAC;IACvB,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QACzB,OAAO,OAAO,CAAC,WAAW,CAAC;IAC7B,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,SAAS,uCAAuC,CAC9C,OAAY;IAEZ,OAAO,CACL,OAAO,CAAC,WAAW,KAAK,0BAA0B;QAClD,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC;QACxB,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,CAClC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,yCAAyC,CAChD,OAAY;IAEZ,OAAO,CACL,OAAO,CAAC,WAAW,KAAK,4BAA4B;QACpD,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC;QACxB,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,CAClC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,mCAAmC,CAC1C,OAAY;IAEZ,OAAO,CACL,OAAO,CAAC,WAAW,KAAK,sBAAsB;QAC9C,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC;QACxB,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,CAClC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAAC,OAAY;IACzC,OAAO,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACxE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oCAAoC,CAClD,OAIqD;IAErD,IAAI,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC;QACnC,OAAO,OAAoC,CAAC;IAC9C,CAAC;IACD,IAAI,CAAC;QACH,IAAI,mCAAmC,CAAC,OAAO,CAAC,EAAE,CAAC;YACjD,OAAO,iBAAiB,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAC;QAChE,CAAC;QACD,IAAI,uCAAuC,CAAC,OAAO,CAAC,EAAE,CAAC;YACrD,OAAO,qBAAqB,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAC;QACpE,CAAC;QACD,IAAI,yCAAyC,CAAC,OAAO,CAAC,EAAE,CAAC;YACvD,OAAO,uBAAuB,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,OAAoC,CAAC;IAC9C,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,gDAAgD,EAAE,OAAO,CAAC,CAAC;IACxE,MAAM,IAAI,SAAS,CACjB,6CAA6C,OAAO,CAAC,GAAG,8BAA8B,CACvF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uCAAuC,CACrD,GAAkB,EAClB,MAA0B;IAE1B,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,EAAE,CAAM,CAAC;IAChC,MAAM,QAAQ,GAAG;QACf,GAAG,iBAAiB,CAAC,MAAM,CAAC;QAC5B,UAAU,EAAE,MAAM,IAAI,CAAC,CAAC;KACzB,CAAC;IAEF,IAAI,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAAC;QAClC,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,WAAW,EAAE;YAC3C,UAAU,EAAE,KAAK;YACjB,KAAK,EAAE,MAAM,CAAC,SAAS;SACxB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB,CACvC,GAAM;IAEN,MAAM,OAAO,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,qBAAqB,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/B,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE;YAC1C,UAAU,EAAE,KAAK;YACjB,KAAK,EAAE,GAAG,CAAC,SAAS;SACrB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC,IAAI,CAAC;IACpB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB,CAAqB,QAAW;IACvE,MAAM,cAAc,GAA0B;QAC5C,GAAG,QAAQ;QACX,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS;QACxE,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS;QACxE,SAAS,EAAE,QAAQ,CAAC,UAAU;KAC/B,CAAC;IACF,IAAI,qBAAqB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpC,MAAM,CAAC,cAAc,CAAC,cAAc,EAAE,WAAW,EAAE;YACjD,UAAU,EAAE,KAAK;YACjB,KAAK,EAAG,QAAgB,CAAC,SAAS;SACnC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,cAA6C,CAAC;AACvD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,QAAsB;IAC5D,OAAO;QACL,GAAG,QAAQ;QACX,eAAe,EAAE,QAAQ,CAAC,eAAkC;KAC7D,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CACnC,UAAsD;IAEtD,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;QACvB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,gBAAgB,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;QAC7C,QAAQ,EAAE,EAAE,CAAC;YACX,KAAK,cAAc;gBACjB,OAAO,eAAe,CAAC;YACzB,KAAK,aAAa;gBAChB,OAAO,cAAc,CAAC;YACxB,KAAK,YAAY;gBACf,OAAO,QAAQ,CAAC;YAClB;gBACE,OAAO,EAAE,CAAC;QACd,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,gBAAoC,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gCAAgC,CAC9C,GAAW,EACX,YAA+C;IAE/C,OAAO,oBAAoB,GAAG,mBAAmB,YAAY,0EAA0E,CAAC;AAC1I,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,MAAS;IAET,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAAC;QACnC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE;YACzC,UAAU,EAAE,KAAK;YACjB,KAAK,EACH,sJAAsJ;SACzJ,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,MAAS;IAET,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AACnE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ,CAAC,iBAAyB,EAAE,iBAA0B;IAC5E,IAAI,iBAAiB,EAAE,CAAC;QACtB,OAAO,GAAG,iBAAiB,WAAW,CAAC;IACzC,CAAC;SAAM,IACL,iBAAiB,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QAC/C,iBAAiB,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAChD,CAAC;QACD,OAAO,GAAG,sBAAsB,CAAC,eAAe,WAAW,CAAC;IAC9D,CAAC;SAAM,IACL,iBAAiB,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QAC/C,iBAAiB,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAChD,CAAC;QACD,OAAO,GAAG,sBAAsB,CAAC,UAAU,WAAW,CAAC;IACzD,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,sBAAsB,CAAC,gBAAgB,WAAW,CAAC;IAC/D,CAAC;AACH,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport {\n type ConfigurationSetting,\n type ConfigurationSettingParam,\n type HttpOnlyIfChangedField,\n type HttpOnlyIfUnchangedField,\n type HttpResponseField,\n type HttpResponseFields,\n type ListRevisionsOptions,\n type ListSettingsOptions,\n type ListSnapshotsOptions,\n type ConfigurationSnapshot,\n type SnapshotResponse,\n type EtagEntity,\n type ListLabelsOptions,\n type SnapshotInfo,\n KnownAppConfigAudience,\n} from \"../models.js\";\nimport type { FeatureFlagValue } from \"../featureFlag.js\";\nimport { FeatureFlagHelper, featureFlagContentType } from \"../featureFlag.js\";\nimport type {\n GetKeyValuesOptionalParams,\n GetLabelsOptionalParams,\n GetSnapshotsOptionalParams,\n} from \"../generated/api/options.js\";\nimport type {\n KeyValue,\n ConfigurationSnapshot as Snapshot,\n KeyValueFields,\n SnapshotFields,\n CompositionType,\n SnapshotStatus,\n} from \"../generated/models/models.js\";\nimport type { SecretReferenceValue } from \"../secretReference.js\";\nimport { SecretReferenceHelper, secretReferenceContentType } from \"../secretReference.js\";\nimport type { SnapshotReferenceValue } from \"../snapshotReference.js\";\nimport { SnapshotReferenceHelper, snapshotReferenceContentType } from \"../snapshotReference.js\";\nimport { isDefined } from \"@azure/core-util\";\nimport { logger } from \"../logger.js\";\nimport type { OperationOptions } from \"@azure/core-client\";\n\n/**\n * Options for listConfigurationSettings that allow for filtering based on keys, labels and other fields.\n * Also provides `fields` which allows you to selectively choose which fields are populated in the\n * result.\n */\nexport interface SendConfigurationSettingsOptions\n extends OperationOptions, ListSettingsOptions, EtagEntity {\n /**\n * A filter used get configuration setting for a snapshot. Not valid when used with 'key' and 'label' filters\n */\n snapshotName?: string;\n}\n\n/**\n * Options for listLabels that allow for filtering based on keys, labels and other fields.\n * Also provides `fields` which allows you to selectively choose which fields are populated in the\n * result.\n */\nexport interface SendLabelsRequestOptions extends ListLabelsOptions {}\n\n/**\n * Formats the etag so it can be used with a If-Match/If-None-Match header\n * @internal\n */\nexport function quoteETag(etag: string | undefined): string | undefined {\n // https://tools.ietf.org/html/rfc7232#section-3.1\n if (etag === undefined || etag === \"*\") {\n return etag;\n }\n\n if (etag.startsWith('\"') && etag.endsWith('\"')) {\n return etag;\n }\n\n if (etag.startsWith(\"'\") && etag.endsWith(\"'\")) {\n return etag;\n }\n\n return `\"${etag}\"`;\n}\n\n/**\n * Checks the onlyIfChanged/onlyIfUnchanged properties to make sure we haven't specified both\n * and throws an Error. Otherwise, returns the properties properly quoted.\n * @param options - An options object with onlyIfChanged/onlyIfUnchanged fields\n * @internal\n */\nexport function checkAndFormatIfAndIfNoneMatch(\n objectWithEtag: EtagEntity,\n options: HttpOnlyIfChangedField & HttpOnlyIfUnchangedField,\n): { ifMatch: string | undefined; ifNoneMatch: string | undefined } {\n if (options.onlyIfChanged && options.onlyIfUnchanged) {\n logger.error(\n \"onlyIfChanged and onlyIfUnchanged are both specified\",\n options.onlyIfChanged,\n options.onlyIfUnchanged,\n );\n throw new Error(\"onlyIfChanged and onlyIfUnchanged are mutually-exclusive\");\n }\n\n let ifMatch;\n let ifNoneMatch;\n\n if (options.onlyIfUnchanged) {\n ifMatch = quoteETag(objectWithEtag.etag);\n }\n\n if (options.onlyIfChanged) {\n ifNoneMatch = quoteETag(objectWithEtag.etag);\n }\n\n return {\n ifMatch: ifMatch,\n ifNoneMatch: ifNoneMatch,\n };\n}\n\n/**\n * Transforms some of the key fields in SendConfigurationSettingsOptions and ListRevisionsOptions\n * so they can be added to a request using AppConfigurationGetKeyValuesOptionalParams.\n * - `options.acceptDateTime` is converted into an ISO string\n * - `select` is populated with the proper field names from `options.fields`\n * - keyFilter and labelFilter are moved to key and label, respectively.\n *\n * @internal\n */\nexport function formatFiltersAndSelect(\n listConfigOptions: ListRevisionsOptions,\n): Pick<GetKeyValuesOptionalParams, \"key\" | \"label\" | \"select\" | \"acceptDatetime\" | \"tags\"> {\n let acceptDatetime: string | undefined = undefined;\n\n if (listConfigOptions.acceptDateTime) {\n acceptDatetime = listConfigOptions.acceptDateTime.toISOString();\n }\n return {\n key: listConfigOptions.keyFilter,\n label: listConfigOptions.labelFilter,\n // Ensure the tags are URL-encoded when encoding\n tags: listConfigOptions.tagsFilter?.map((t) => encodeURIComponent(t)),\n acceptDatetime,\n select: formatFieldsForSelect(listConfigOptions.fields),\n };\n}\n\n/**\n * Transforms some of the key fields in SendConfigurationSettingsOptions\n * so they can be added to a request using AppConfigurationGetKeyValuesOptionalParams.\n * - `options.acceptDateTime` is converted into an ISO string\n * - `select` is populated with the proper field names from `options.fields`\n * - keyFilter, labelFilter, snapshotName are moved to key, label, and snapshot respectively.\n *\n * @internal\n */\nexport function formatConfigurationSettingsFiltersAndSelect(\n listConfigOptions: SendConfigurationSettingsOptions,\n): Pick<\n GetKeyValuesOptionalParams,\n \"key\" | \"label\" | \"select\" | \"acceptDatetime\" | \"snapshot\" | \"tags\"\n> {\n const { snapshotName: snapshot, ...options } = listConfigOptions;\n return {\n ...formatFiltersAndSelect(options),\n snapshot,\n };\n}\n/**\n * Transforms some of the key fields in ListSnapshotsOptions\n * so they can be added to a request using AppConfigurationGetSnapshotsOptionalParams.\n * - `select` is populated with the proper field names from `options.fields`\n * - keyFilter and labelFilter are moved to key and label, respectively.\n *\n * @internal\n */\nexport function formatSnapshotFiltersAndSelect(\n listSnapshotOptions: ListSnapshotsOptions,\n): Pick<GetSnapshotsOptionalParams, \"name\" | \"select\" | \"status\"> {\n return {\n name: listSnapshotOptions.nameFilter,\n status: listSnapshotOptions.statusFilter as SnapshotStatus[] | undefined,\n select: listSnapshotOptions.fields as SnapshotFields[] | undefined,\n };\n}\n\n/**\n * Transforms some of the key fields in ListLabelsOptions\n * so they can be added to a request using AppConfigurationGetLabelsOptionalParams.\n * - `select` is populated with the proper field names from `options.fields`\n * - `nameFilter` are moved to name\n *\n * @internal\n */\nexport function formatLabelsFiltersAndSelect(\n listLabelsOptions: ListLabelsOptions,\n): Pick<GetLabelsOptionalParams, \"name\" | \"select\"> {\n return {\n name: listLabelsOptions.nameFilter,\n select: listLabelsOptions.fields,\n };\n}\n/**\n * Handles translating a Date acceptDateTime into a string as needed by the API\n * @param newOptions - A newer style options with acceptDateTime as a date (and with proper casing!)\n * @internal\n */\nexport function formatAcceptDateTime(newOptions: { acceptDateTime?: Date }): {\n acceptDatetime?: string;\n} {\n return {\n acceptDatetime: newOptions.acceptDateTime && newOptions.acceptDateTime.toISOString(),\n };\n}\n\n/**\n * Take the URL that gets returned from next link and extract the 'after' token needed\n * to get the next page of results.\n * @internal\n */\nexport function extractAfterTokenFromNextLink(nextLink: string): string {\n const searchParams = new URLSearchParams(nextLink);\n const afterToken = searchParams.get(\"after\");\n\n if (afterToken == null || Array.isArray(afterToken)) {\n logger.error(\"Invalid nextLink - invalid after token\", afterToken, Array.isArray(afterToken));\n throw new Error(\"Invalid nextLink - invalid after token\");\n }\n\n return decodeURIComponent(afterToken);\n}\n\n/**\n * Take the header link that gets returned from 304 response and extract the 'after' token needed\n * to get the next page of results.\n *\n * @internal\n */\nexport function extractAfterTokenFromLinkHeader(link: string): string {\n // Example transformation of the link header\n // link:\n // '</kv?api-version=2023-10-01&key=listResults714&after=bGlzdE4>; rel=\"next\"'\n //\n // linkValue:\n // </kv?api-version=2023-10-01&key=listResults714&after=bGlzdE4>\n //\n // nextLink:\n // /kv?api-version=2023-10-01&key=listResults714&after=bGlzdE4\n const linkValue = link.split(\";\")[0];\n const nextLink = linkValue.substring(1, linkValue.length - 1);\n return extractAfterTokenFromNextLink(nextLink);\n}\n\n/**\n * Makes a ConfigurationSetting-based response throw for all of the data members. Used primarily\n * to prevent possible errors by the user in accessing a model that is uninitialized. This can happen\n * in cases like HTTP status code 204 or 304, which return an empty response body.\n *\n * @param configurationSetting - The configuration setting to alter\n */\nexport function makeConfigurationSettingEmpty(\n configurationSetting: Partial<Record<Exclude<keyof ConfigurationSetting, \"key\">, any>>,\n): void {\n const names: Exclude<keyof ConfigurationSetting, \"key\">[] = [\n \"contentType\",\n \"description\",\n \"etag\",\n \"label\",\n \"lastModified\",\n \"isReadOnly\",\n \"tags\",\n \"value\",\n ];\n\n for (const name of names) {\n configurationSetting[name] = undefined;\n }\n}\n\n/**\n * @internal\n */\nexport function transformKeyValue<T>(kvp: T & KeyValue): T & ConfigurationSetting {\n const setting = {\n value: undefined,\n ...kvp,\n isReadOnly: !!kvp.locked,\n lastModified: kvp.lastModified ? new Date(kvp.lastModified) : undefined,\n };\n delete setting.locked;\n if (!setting.label) {\n delete setting.label;\n }\n if (!setting.contentType) {\n delete setting.contentType;\n }\n return setting;\n}\n\n/**\n * @internal\n */\nfunction isConfigSettingWithSecretReferenceValue(\n setting: any,\n): setting is ConfigurationSetting<SecretReferenceValue> {\n return (\n setting.contentType === secretReferenceContentType &&\n isDefined(setting.value) &&\n typeof setting.value !== \"string\"\n );\n}\n\n/**\n * @internal\n */\nfunction isConfigSettingWithSnapshotReferenceValue(\n setting: any,\n): setting is ConfigurationSetting<SnapshotReferenceValue> {\n return (\n setting.contentType === snapshotReferenceContentType &&\n isDefined(setting.value) &&\n typeof setting.value !== \"string\"\n );\n}\n\n/**\n * @internal\n */\nfunction isConfigSettingWithFeatureFlagValue(\n setting: any,\n): setting is ConfigurationSetting<FeatureFlagValue> {\n return (\n setting.contentType === featureFlagContentType &&\n isDefined(setting.value) &&\n typeof setting.value !== \"string\"\n );\n}\n\n/**\n * @internal\n */\nfunction isSimpleConfigSetting(setting: any): setting is ConfigurationSetting {\n return typeof setting.value === \"string\" || !isDefined(setting.value);\n}\n\n/**\n * @internal\n */\nexport function serializeAsConfigurationSettingParam(\n setting:\n | ConfigurationSettingParam\n | ConfigurationSettingParam<FeatureFlagValue>\n | ConfigurationSettingParam<SecretReferenceValue>\n | ConfigurationSettingParam<SnapshotReferenceValue>,\n): ConfigurationSettingParam {\n if (isSimpleConfigSetting(setting)) {\n return setting as ConfigurationSettingParam;\n }\n try {\n if (isConfigSettingWithFeatureFlagValue(setting)) {\n return FeatureFlagHelper.toConfigurationSettingParam(setting);\n }\n if (isConfigSettingWithSecretReferenceValue(setting)) {\n return SecretReferenceHelper.toConfigurationSettingParam(setting);\n }\n if (isConfigSettingWithSnapshotReferenceValue(setting)) {\n return SnapshotReferenceHelper.toConfigurationSettingParam(setting);\n }\n } catch (error: any) {\n return setting as ConfigurationSettingParam;\n }\n logger.error(\"Unable to serialize to a configuration setting\", setting);\n throw new TypeError(\n `Unable to serialize the setting with key \"${setting.key}\" as a configuration setting`,\n );\n}\n\n/**\n * @internal\n */\nexport function transformKeyValueResponseWithStatusCode<T extends KeyValue>(\n kvp: T | undefined,\n status: number | undefined,\n): ConfigurationSetting & { eTag?: string } & HttpResponseFields {\n const source = (kvp ?? {}) as T;\n const response = {\n ...transformKeyValue(source),\n statusCode: status ?? -1,\n };\n\n if (hasUnderscoreResponse(source)) {\n Object.defineProperty(response, \"_response\", {\n enumerable: false,\n value: source._response,\n });\n }\n return response;\n}\n\n/**\n * @internal\n */\nexport function transformKeyValueResponse<T extends KeyValue & { eTag?: string }>(\n kvp: T,\n): ConfigurationSetting {\n const setting = transformKeyValue(kvp);\n if (hasUnderscoreResponse(kvp)) {\n Object.defineProperty(setting, \"_response\", {\n enumerable: false,\n value: kvp._response,\n });\n }\n\n delete setting.eTag;\n return setting;\n}\n\n/**\n * @internal\n */\nexport function transformSnapshotResponse<T extends Snapshot>(snapshot: T): SnapshotResponse {\n const configSnapshot: ConfigurationSnapshot = {\n ...snapshot,\n createdOn: snapshot.createdOn ? new Date(snapshot.createdOn) : undefined,\n expiresOn: snapshot.expiresOn ? new Date(snapshot.expiresOn) : undefined,\n itemCount: snapshot.itemsCount,\n };\n if (hasUnderscoreResponse(snapshot)) {\n Object.defineProperty(configSnapshot, \"_response\", {\n enumerable: false,\n value: (snapshot as any)._response,\n });\n }\n return configSnapshot as unknown as SnapshotResponse;\n}\n\n/**\n * Converts a public-facing SnapshotInfo to the generated Snapshot type.\n * @internal\n */\nexport function snapshotInfoToGenerated(snapshot: SnapshotInfo): Snapshot {\n return {\n ...snapshot,\n compositionType: snapshot.compositionType as CompositionType,\n };\n}\n\n/**\n * Translates user-facing field names into their `select` equivalents (these can be\n * seen in the `KnownEnum5`)\n *\n * @param fieldNames - fieldNames from users.\n * @returns The field names translated into the `select` field equivalents.\n *\n * @internal\n */\nexport function formatFieldsForSelect(\n fieldNames: (keyof ConfigurationSetting)[] | undefined,\n): KeyValueFields[] | undefined {\n if (fieldNames == null) {\n return undefined;\n }\n\n const mappedFieldNames = fieldNames.map((fn) => {\n switch (fn) {\n case \"lastModified\":\n return \"last_modified\";\n case \"contentType\":\n return \"content_type\";\n case \"isReadOnly\":\n return \"locked\";\n default:\n return fn;\n }\n });\n\n return mappedFieldNames as KeyValueFields[];\n}\n\n/**\n * @internal\n */\nexport function errorMessageForUnexpectedSetting(\n key: string,\n expectedType: \"FeatureFlag\" | \"SecretReference\",\n): string {\n return `Setting with key ${key} is not a valid ${expectedType}, make sure to have the correct content-type and a valid non-null value.`;\n}\n\nexport function assertResponse<T extends object>(\n result: T,\n): asserts result is T & HttpResponseField<any> {\n if (!hasUnderscoreResponse(result)) {\n Object.defineProperty(result, \"_response\", {\n enumerable: false,\n value:\n \"Something went wrong, _response(raw response) is supposed to be part of the response. Please file a bug at https://github.com/Azure/azure-sdk-for-js\",\n });\n }\n}\n\nexport function hasUnderscoreResponse<T extends object>(\n result: T,\n): result is T & HttpResponseField<any> {\n return Object.prototype.hasOwnProperty.call(result, \"_response\");\n}\n\n/**\n * Get the scope for the App Configuration service based on the endpoint and audience.\n * If the audience is provided, it will be used as the scope.\n * If not, the scope is defaulted to Azure Public Cloud when not specified.\n *\n * @internal\n */\nexport function getScope(appConfigEndpoint: string, appConfigAudience?: string): string {\n if (appConfigAudience) {\n return `${appConfigAudience}/.default`;\n } else if (\n appConfigEndpoint.endsWith(\"azconfig.azure.us\") ||\n appConfigEndpoint.endsWith(\"appconfig.azure.us\")\n ) {\n return `${KnownAppConfigAudience.AzureGovernment}/.default`;\n } else if (\n appConfigEndpoint.endsWith(\"azconfig.azure.cn\") ||\n appConfigEndpoint.endsWith(\"appconfig.azure.cn\")\n ) {\n return `${KnownAppConfigAudience.AzureChina}/.default`;\n } else {\n return `${KnownAppConfigAudience.AzurePublicCloud}/.default`;\n }\n}\n"]}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/internal/helpers.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport {\n type ConfigurationSetting,\n type ConfigurationSettingParam,\n type FeatureFlag,\n type HttpOnlyIfChangedField,\n type HttpOnlyIfUnchangedField,\n type HttpResponseField,\n type HttpResponseFields,\n type ListRevisionsOptions,\n type ListSettingsOptions,\n type ListFeatureFlagRevisionsOptions,\n type ListFeatureFlagsOptions,\n type ListSnapshotsOptions,\n type ConfigurationSnapshot,\n type SnapshotResponse,\n type EtagEntity,\n type ListLabelsOptions,\n type SnapshotInfo,\n KnownAppConfigAudience,\n} from \"../models.js\";\nimport type { FeatureFlagValue } from \"../featureFlag.js\";\nimport { FeatureFlagHelper, featureFlagContentType } from \"../featureFlag.js\";\nimport type {\n GetKeyValuesOptionalParams,\n GetLabelsOptionalParams,\n GetSnapshotsOptionalParams,\n} from \"../generated/api/options.js\";\nimport type {\n KeyValue,\n ConfigurationSnapshot as Snapshot,\n KeyValueFields,\n FeatureFlagFields,\n SnapshotFields,\n CompositionType,\n SnapshotStatus,\n} from \"../generated/models/models.js\";\nimport type { SecretReferenceValue } from \"../secretReference.js\";\nimport { SecretReferenceHelper, secretReferenceContentType } from \"../secretReference.js\";\nimport type { SnapshotReferenceValue } from \"../snapshotReference.js\";\nimport { SnapshotReferenceHelper, snapshotReferenceContentType } from \"../snapshotReference.js\";\nimport { isDefined } from \"@azure/core-util\";\nimport { logger } from \"../logger.js\";\nimport type { OperationOptions } from \"@azure/core-client\";\nimport type { FullOperationResponse } from \"@azure/core-client\";\nimport { toCompatResponse, type CompatResponse } from \"@azure/core-http-compat\";\nimport { createHttpHeaders } from \"@azure/core-rest-pipeline\";\nimport type { SyncTokenHeaderField } from \"../models.js\";\n\n/**\n * Options for listConfigurationSettings that allow for filtering based on keys, labels and other fields.\n * Also provides `fields` which allows you to selectively choose which fields are populated in the\n * result.\n */\nexport interface SendConfigurationSettingsOptions\n extends OperationOptions, ListSettingsOptions, EtagEntity {\n /**\n * A filter used get configuration setting for a snapshot. Not valid when used with 'key' and 'label' filters\n */\n snapshotName?: string;\n}\n\n/**\n * Formats the etag so it can be used with a If-Match/If-None-Match header\n * @internal\n */\nexport function quoteETag(etag: string | undefined): string | undefined {\n // https://tools.ietf.org/html/rfc7232#section-3.1\n if (etag === undefined || etag === \"*\") {\n return etag;\n }\n\n if (etag.startsWith('\"') && etag.endsWith('\"')) {\n return etag;\n }\n\n if (etag.startsWith(\"'\") && etag.endsWith(\"'\")) {\n return etag;\n }\n\n return `\"${etag}\"`;\n}\n\n/**\n * Checks the onlyIfChanged/onlyIfUnchanged properties to make sure we haven't specified both\n * and throws an Error. Otherwise, returns the properties properly quoted.\n * @param options - An options object with onlyIfChanged/onlyIfUnchanged fields\n * @internal\n */\nexport function checkAndFormatIfAndIfNoneMatch(\n objectWithEtag: EtagEntity,\n options: HttpOnlyIfChangedField & HttpOnlyIfUnchangedField,\n): { ifMatch: string | undefined; ifNoneMatch: string | undefined } {\n if (options.onlyIfChanged && options.onlyIfUnchanged) {\n logger.error(\n \"onlyIfChanged and onlyIfUnchanged are both specified\",\n options.onlyIfChanged,\n options.onlyIfUnchanged,\n );\n throw new Error(\"onlyIfChanged and onlyIfUnchanged are mutually-exclusive\");\n }\n\n let ifMatch;\n let ifNoneMatch;\n\n if (options.onlyIfUnchanged) {\n ifMatch = quoteETag(objectWithEtag.etag);\n }\n\n if (options.onlyIfChanged) {\n ifNoneMatch = quoteETag(objectWithEtag.etag);\n }\n\n return {\n ifMatch: ifMatch,\n ifNoneMatch: ifNoneMatch,\n };\n}\n\n/**\n * Transforms some of the key fields in SendConfigurationSettingsOptions and ListRevisionsOptions\n * so they can be added to a request using AppConfigurationGetKeyValuesOptionalParams.\n * - `options.acceptDateTime` is converted into an ISO string\n * - `select` is populated with the proper field names from `options.fields`\n * - keyFilter and labelFilter are moved to key and label, respectively.\n *\n * @internal\n */\nexport function formatFiltersAndSelect(\n listConfigOptions: ListRevisionsOptions,\n): Pick<GetKeyValuesOptionalParams, \"key\" | \"label\" | \"select\" | \"acceptDatetime\" | \"tags\"> {\n let acceptDatetime: string | undefined = undefined;\n\n if (listConfigOptions.acceptDateTime) {\n acceptDatetime = listConfigOptions.acceptDateTime.toISOString();\n }\n return {\n key: listConfigOptions.keyFilter,\n label: listConfigOptions.labelFilter,\n // Ensure the tags are URL-encoded when encoding\n tags: listConfigOptions.tagsFilter?.map((t) => encodeURIComponent(t)),\n acceptDatetime,\n select: formatFieldsForSelect(listConfigOptions.fields),\n };\n}\n\n/**\n * Transforms feature flag list filters into their generated client equivalents.\n * @internal\n */\nexport function formatFeatureFlagFiltersAndSelect(\n options: ListFeatureFlagsOptions | ListFeatureFlagRevisionsOptions,\n): {\n name: string | undefined;\n label: string | undefined;\n tags: string[] | undefined;\n select: FeatureFlagFields[] | undefined;\n} {\n return {\n name: options.nameFilter,\n label: options.labelFilter,\n tags: options.tagsFilter,\n select: formatFeatureFlagFieldsForSelect(options.fields),\n };\n}\n\n/**\n * Transforms some of the key fields in SendConfigurationSettingsOptions\n * so they can be added to a request using AppConfigurationGetKeyValuesOptionalParams.\n * - `options.acceptDateTime` is converted into an ISO string\n * - `select` is populated with the proper field names from `options.fields`\n * - keyFilter, labelFilter, snapshotName are moved to key, label, and snapshot respectively.\n *\n * @internal\n */\nexport function formatConfigurationSettingsFiltersAndSelect(\n listConfigOptions: SendConfigurationSettingsOptions,\n): Pick<\n GetKeyValuesOptionalParams,\n \"key\" | \"label\" | \"select\" | \"acceptDatetime\" | \"snapshot\" | \"tags\"\n> {\n const { snapshotName: snapshot, ...options } = listConfigOptions;\n return {\n ...formatFiltersAndSelect(options),\n snapshot,\n };\n}\n/**\n * Transforms some of the key fields in ListSnapshotsOptions\n * so they can be added to a request using AppConfigurationGetSnapshotsOptionalParams.\n * - `select` is populated with the proper field names from `options.fields`\n * - keyFilter and labelFilter are moved to key and label, respectively.\n *\n * @internal\n */\nexport function formatSnapshotFiltersAndSelect(\n listSnapshotOptions: ListSnapshotsOptions,\n): Pick<GetSnapshotsOptionalParams, \"name\" | \"select\" | \"status\"> {\n return {\n name: listSnapshotOptions.nameFilter,\n status: listSnapshotOptions.statusFilter as SnapshotStatus[] | undefined,\n select: listSnapshotOptions.fields as SnapshotFields[] | undefined,\n };\n}\n\n/**\n * Transforms some of the key fields in ListLabelsOptions\n * so they can be added to a request using AppConfigurationGetLabelsOptionalParams.\n * - `select` is populated with the proper field names from `options.fields`\n * - `nameFilter` are moved to name\n *\n * @internal\n */\nexport function formatLabelsFiltersAndSelect(\n listLabelsOptions: ListLabelsOptions,\n resourceType?: string,\n): Pick<GetLabelsOptionalParams, \"name\" | \"select\" | \"resourceType\"> {\n return {\n name: listLabelsOptions.nameFilter,\n select: listLabelsOptions.fields,\n resourceType,\n };\n}\n/**\n * Handles translating a Date acceptDateTime into a string as needed by the API\n * @param newOptions - A newer style options with acceptDateTime as a date (and with proper casing!)\n * @internal\n */\nexport function formatAcceptDateTime(newOptions: { acceptDateTime?: Date }): {\n acceptDatetime?: string;\n} {\n return {\n acceptDatetime: newOptions.acceptDateTime && newOptions.acceptDateTime.toISOString(),\n };\n}\n\n/**\n * Take the URL that gets returned from next link and extract the 'after' token needed\n * to get the next page of results.\n * @internal\n */\nexport function extractAfterTokenFromNextLink(nextLink: string): string {\n const searchParams = new URLSearchParams(nextLink);\n const afterToken = searchParams.get(\"after\");\n\n if (afterToken == null || Array.isArray(afterToken)) {\n logger.error(\"Invalid nextLink - invalid after token\", afterToken, Array.isArray(afterToken));\n throw new Error(\"Invalid nextLink - invalid after token\");\n }\n\n return decodeURIComponent(afterToken);\n}\n\n/**\n * Take the header link that gets returned from 304 response and extract the 'after' token needed\n * to get the next page of results.\n *\n * @internal\n */\nexport function extractAfterTokenFromLinkHeader(link: string): string {\n // Example transformation of the link header\n // link:\n // '</kv?api-version=2023-10-01&key=listResults714&after=bGlzdE4>; rel=\"next\"'\n //\n // linkValue:\n // </kv?api-version=2023-10-01&key=listResults714&after=bGlzdE4>\n //\n // nextLink:\n // /kv?api-version=2023-10-01&key=listResults714&after=bGlzdE4\n const linkValue = link.split(\";\")[0];\n const nextLink = linkValue.substring(1, linkValue.length - 1);\n return extractAfterTokenFromNextLink(nextLink);\n}\n\n/**\n * Makes a ConfigurationSetting-based response throw for all of the data members. Used primarily\n * to prevent possible errors by the user in accessing a model that is uninitialized. This can happen\n * in cases like HTTP status code 204 or 304, which return an empty response body.\n *\n * @param configurationSetting - The configuration setting to alter\n */\nexport function makeConfigurationSettingEmpty(\n configurationSetting: Partial<Record<Exclude<keyof ConfigurationSetting, \"key\">, any>>,\n): void {\n const names: Exclude<keyof ConfigurationSetting, \"key\">[] = [\n \"contentType\",\n \"description\",\n \"etag\",\n \"label\",\n \"lastModified\",\n \"isReadOnly\",\n \"tags\",\n \"value\",\n ];\n\n for (const name of names) {\n configurationSetting[name] = undefined;\n }\n}\n\n/**\n * @internal\n */\nexport function transformKeyValue<T>(kvp: T & KeyValue): T & ConfigurationSetting {\n const setting = {\n value: undefined,\n ...kvp,\n isReadOnly: !!kvp.locked,\n lastModified: kvp.lastModified ? new Date(kvp.lastModified) : undefined,\n };\n delete setting.locked;\n if (!setting.label) {\n delete setting.label;\n }\n if (!setting.contentType) {\n delete setting.contentType;\n }\n return setting;\n}\n\n/**\n * @internal\n */\nfunction isConfigSettingWithSecretReferenceValue(\n setting: any,\n): setting is ConfigurationSetting<SecretReferenceValue> {\n return (\n setting.contentType === secretReferenceContentType &&\n isDefined(setting.value) &&\n typeof setting.value !== \"string\"\n );\n}\n\n/**\n * @internal\n */\nfunction isConfigSettingWithSnapshotReferenceValue(\n setting: any,\n): setting is ConfigurationSetting<SnapshotReferenceValue> {\n return (\n setting.contentType === snapshotReferenceContentType &&\n isDefined(setting.value) &&\n typeof setting.value !== \"string\"\n );\n}\n\n/**\n * @internal\n */\nfunction isConfigSettingWithFeatureFlagValue(\n setting: any,\n): setting is ConfigurationSetting<FeatureFlagValue> {\n return (\n setting.contentType === featureFlagContentType &&\n isDefined(setting.value) &&\n typeof setting.value !== \"string\"\n );\n}\n\n/**\n * @internal\n */\nfunction isSimpleConfigSetting(setting: any): setting is ConfigurationSetting {\n return typeof setting.value === \"string\" || !isDefined(setting.value);\n}\n\n/**\n * @internal\n */\nexport function serializeAsConfigurationSettingParam(\n setting:\n | ConfigurationSettingParam\n | ConfigurationSettingParam<FeatureFlagValue>\n | ConfigurationSettingParam<SecretReferenceValue>\n | ConfigurationSettingParam<SnapshotReferenceValue>,\n): ConfigurationSettingParam {\n if (isSimpleConfigSetting(setting)) {\n return setting as ConfigurationSettingParam;\n }\n try {\n if (isConfigSettingWithFeatureFlagValue(setting)) {\n return FeatureFlagHelper.toConfigurationSettingParam(setting);\n }\n if (isConfigSettingWithSecretReferenceValue(setting)) {\n return SecretReferenceHelper.toConfigurationSettingParam(setting);\n }\n if (isConfigSettingWithSnapshotReferenceValue(setting)) {\n return SnapshotReferenceHelper.toConfigurationSettingParam(setting);\n }\n } catch (error: any) {\n return setting as ConfigurationSettingParam;\n }\n logger.error(\"Unable to serialize to a configuration setting\", setting);\n throw new TypeError(\n `Unable to serialize the setting with key \"${setting.key}\" as a configuration setting`,\n );\n}\n\n/**\n * @internal\n */\nexport function transformKeyValueResponseWithStatusCode<T extends KeyValue>(\n kvp: T | void,\n status: number | undefined,\n): ConfigurationSetting & { eTag?: string } & HttpResponseFields {\n const source = (kvp ?? {}) as T;\n const response = {\n ...transformKeyValue(source),\n statusCode: status ?? -1,\n };\n\n if (hasUnderscoreResponse(source)) {\n Object.defineProperty(response, \"_response\", {\n enumerable: false,\n value: source._response,\n });\n }\n return response;\n}\n\n/**\n * @internal\n */\nexport function transformKeyValueResponse<T extends KeyValue & { eTag?: string }>(\n kvp: T,\n): ConfigurationSetting {\n const setting = transformKeyValue(kvp);\n if (hasUnderscoreResponse(kvp)) {\n Object.defineProperty(setting, \"_response\", {\n enumerable: false,\n value: kvp._response,\n });\n }\n\n delete setting.eTag;\n return setting;\n}\n\n/**\n * @internal\n */\nexport function transformSnapshotResponse<T extends Snapshot>(snapshot: T): SnapshotResponse {\n const configSnapshot: ConfigurationSnapshot = {\n ...snapshot,\n createdOn: snapshot.createdOn ? new Date(snapshot.createdOn) : undefined,\n expiresOn: snapshot.expiresOn ? new Date(snapshot.expiresOn) : undefined,\n itemCount: snapshot.itemsCount,\n };\n if (hasUnderscoreResponse(snapshot)) {\n Object.defineProperty(configSnapshot, \"_response\", {\n enumerable: false,\n value: (snapshot as any)._response,\n });\n }\n return configSnapshot as unknown as SnapshotResponse;\n}\n\n/**\n * Converts a public-facing SnapshotInfo to the generated Snapshot type.\n * @internal\n */\nexport function snapshotInfoToGenerated(snapshot: SnapshotInfo): Snapshot {\n return {\n ...snapshot,\n compositionType: snapshot.compositionType as CompositionType,\n };\n}\n\n/**\n * Translates user-facing field names into their `select` equivalents (these can be\n * seen in the `KnownEnum5`)\n *\n * @param fieldNames - fieldNames from users.\n * @returns The field names translated into the `select` field equivalents.\n *\n * @internal\n */\nexport function formatFieldsForSelect(\n fieldNames: (keyof ConfigurationSetting)[] | undefined,\n): KeyValueFields[] | undefined {\n if (fieldNames == null) {\n return undefined;\n }\n\n const mappedFieldNames = fieldNames.map((fn) => {\n switch (fn) {\n case \"lastModified\":\n return \"last_modified\";\n case \"contentType\":\n return \"content_type\";\n case \"isReadOnly\":\n return \"locked\";\n default:\n return fn;\n }\n });\n\n return mappedFieldNames as KeyValueFields[];\n}\n\n/**\n * Translates user-facing feature flag field names into their wire equivalents.\n * @internal\n */\nexport function formatFeatureFlagFieldsForSelect(\n fieldNames: (keyof FeatureFlag)[] | undefined,\n): FeatureFlagFields[] | undefined {\n return fieldNames?.map((fieldName) =>\n fieldName === \"lastModified\" ? \"last_modified\" : fieldName,\n ) as FeatureFlagFields[] | undefined;\n}\n\n/**\n * Converts a modular generated response to the compatibility response exposed by this package.\n * @internal\n */\nexport function toAppConfigurationCompatResponse(\n response: unknown,\n): CompatResponse & { parsedHeaders: SyncTokenHeaderField; bodyAsText: string } {\n const rawResponse = response as FullOperationResponse & {\n body?: unknown;\n headers: FullOperationResponse[\"headers\"] | Record<string, string>;\n };\n const headers =\n \"get\" in rawResponse.headers ? rawResponse.headers : createHttpHeaders(rawResponse.headers);\n const normalizedResponse = {\n ...rawResponse,\n status: Number(rawResponse.status),\n headers,\n } as FullOperationResponse;\n const compatResponse = toCompatResponse(normalizedResponse);\n return Object.assign(compatResponse, {\n parsedHeaders: {\n syncToken: headers.get(\"sync-token\"),\n },\n bodyAsText:\n typeof rawResponse.body === \"string\"\n ? rawResponse.body\n : rawResponse.body === undefined\n ? \"\"\n : JSON.stringify(rawResponse.body),\n });\n}\n\n/**\n * @internal\n */\nexport function errorMessageForUnexpectedSetting(\n key: string,\n expectedType: \"FeatureFlag\" | \"SecretReference\",\n): string {\n return `Setting with key ${key} is not a valid ${expectedType}, make sure to have the correct content-type and a valid non-null value.`;\n}\n\nexport function assertResponse<T extends object>(\n result: T,\n): asserts result is T & HttpResponseField<any> {\n if (!hasUnderscoreResponse(result)) {\n Object.defineProperty(result, \"_response\", {\n enumerable: false,\n value:\n \"Something went wrong, _response(raw response) is supposed to be part of the response. Please file a bug at https://github.com/Azure/azure-sdk-for-js\",\n });\n }\n}\n\nexport function hasUnderscoreResponse<T extends object>(\n result: T,\n): result is T & HttpResponseField<any> {\n return Object.prototype.hasOwnProperty.call(result, \"_response\");\n}\n\n/**\n * Get the scope for the App Configuration service based on the endpoint and audience.\n * If the audience is provided, it will be used as the scope.\n * If not, the scope is defaulted to Azure Public Cloud when not specified.\n *\n * @internal\n */\nexport function getScope(appConfigEndpoint: string, appConfigAudience?: string): string {\n if (appConfigAudience) {\n return `${appConfigAudience}/.default`;\n } else if (\n appConfigEndpoint.endsWith(\"azconfig.azure.us\") ||\n appConfigEndpoint.endsWith(\"appconfig.azure.us\")\n ) {\n return `${KnownAppConfigAudience.AzureGovernment}/.default`;\n } else if (\n appConfigEndpoint.endsWith(\"azconfig.azure.cn\") ||\n appConfigEndpoint.endsWith(\"appconfig.azure.cn\")\n ) {\n return `${KnownAppConfigAudience.AzureChina}/.default`;\n } else {\n return `${KnownAppConfigAudience.AzurePublicCloud}/.default`;\n }\n}\n"]}
@@ -0,0 +1,16 @@
1
+ import type { PagedAsyncIterableIterator, PageSettings } from "@azure/core-paging";
2
+ import type { OperationOptions } from "@azure-rest/core-client";
3
+ import type { ListFeatureFlagRevisionsPage } from "../models.js";
4
+ import type { AppConfigurationContext } from "../generated/api/appConfigurationContext.js";
5
+ import type { FeatureFlag } from "../generated/models/models.js";
6
+ import type { FeatureFlagClientGetFeatureFlagRevisionsOptionalParams } from "../generated/api/featureFlagClient/options.js";
7
+ /**
8
+ * Shared implementation of `listFeatureFlagRevisions` used by `FeatureFlagClient`.
9
+ *
10
+ * Wraps each page fetch in an operation-level span so tracing behaves
11
+ * consistently with the other public client methods.
12
+ *
13
+ * @internal
14
+ */
15
+ export declare function listFeatureFlagRevisions(context: AppConfigurationContext, spanName: string, sendParams: FeatureFlagClientGetFeatureFlagRevisionsOptionalParams, acceptDatetime: string | undefined, options?: OperationOptions): PagedAsyncIterableIterator<FeatureFlag, ListFeatureFlagRevisionsPage, PageSettings>;
16
+ //# sourceMappingURL=listFeatureFlagRevisions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listFeatureFlagRevisions.d.ts","sourceRoot":"","sources":["../../../src/internal/listFeatureFlagRevisions.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,0BAA0B,EAAe,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEhG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6CAA6C,CAAC;AAC3F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,sDAAsD,EAAE,MAAM,+CAA+C,CAAC;AAQ5H;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,uBAAuB,EAChC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,sDAAsD,EAClE,cAAc,EAAE,MAAM,GAAG,SAAS,EAClC,OAAO,GAAE,gBAAqB,GAC7B,0BAA0B,CAAC,WAAW,EAAE,4BAA4B,EAAE,YAAY,CAAC,CAsCrF"}
@@ -0,0 +1,54 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT License.
3
+ import { getPagedAsyncIterator } from "@azure/core-paging";
4
+ import { _getFeatureFlagRevisionsDeserialize, _getFeatureFlagRevisionsSend, } from "../generated/api/featureFlagClient/operations.js";
5
+ import { extractAfterTokenFromNextLink, toAppConfigurationCompatResponse } from "./helpers.js";
6
+ import { tracingClient } from "./tracing.js";
7
+ /**
8
+ * Shared implementation of `listFeatureFlagRevisions` used by `FeatureFlagClient`.
9
+ *
10
+ * Wraps each page fetch in an operation-level span so tracing behaves
11
+ * consistently with the other public client methods.
12
+ *
13
+ * @internal
14
+ */
15
+ export function listFeatureFlagRevisions(context, spanName, sendParams, acceptDatetime, options = {}) {
16
+ const pagedResult = {
17
+ firstPageLink: undefined,
18
+ getPage: async (pageLink) => {
19
+ const response = await tracingClient.withSpan(spanName, options, async (updatedOptions) => {
20
+ const rawResponse = await _getFeatureFlagRevisionsSend(context, {
21
+ ...sendParams,
22
+ ...updatedOptions,
23
+ after: pageLink,
24
+ requestOptions: {
25
+ ...sendParams.requestOptions,
26
+ ...updatedOptions.requestOptions,
27
+ headers: {
28
+ ...sendParams.requestOptions?.headers,
29
+ ...updatedOptions.requestOptions?.headers,
30
+ ...(acceptDatetime === undefined ? {} : { "accept-datetime": acceptDatetime }),
31
+ },
32
+ },
33
+ });
34
+ const parsed = await _getFeatureFlagRevisionsDeserialize(rawResponse);
35
+ return Object.assign(parsed, { _response: rawResponse });
36
+ });
37
+ const currentResponse = {
38
+ ...response,
39
+ items: response.items ?? [],
40
+ continuationToken: response.nextLink
41
+ ? extractAfterTokenFromNextLink(response.nextLink)
42
+ : undefined,
43
+ _response: toAppConfigurationCompatResponse(response._response),
44
+ };
45
+ return {
46
+ page: currentResponse,
47
+ nextPageLink: currentResponse.continuationToken,
48
+ };
49
+ },
50
+ toElements: (page) => page.items,
51
+ };
52
+ return getPagedAsyncIterator(pagedResult);
53
+ }
54
+ //# sourceMappingURL=listFeatureFlagRevisions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listFeatureFlagRevisions.js","sourceRoot":"","sources":["../../../src/internal/listFeatureFlagRevisions.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAGlC,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAM3D,OAAO,EACL,mCAAmC,EACnC,4BAA4B,GAC7B,MAAM,kDAAkD,CAAC;AAC1D,OAAO,EAAE,6BAA6B,EAAE,gCAAgC,EAAE,MAAM,cAAc,CAAC;AAC/F,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C;;;;;;;GAOG;AACH,MAAM,UAAU,wBAAwB,CACtC,OAAgC,EAChC,QAAgB,EAChB,UAAkE,EAClE,cAAkC,EAClC,UAA4B,EAAE;IAE9B,MAAM,WAAW,GAAgF;QAC/F,aAAa,EAAE,SAAS;QACxB,OAAO,EAAE,KAAK,EAAE,QAA4B,EAAE,EAAE;YAC9C,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE;gBACxF,MAAM,WAAW,GAAG,MAAM,4BAA4B,CAAC,OAAO,EAAE;oBAC9D,GAAG,UAAU;oBACb,GAAG,cAAc;oBACjB,KAAK,EAAE,QAAQ;oBACf,cAAc,EAAE;wBACd,GAAG,UAAU,CAAC,cAAc;wBAC5B,GAAG,cAAc,CAAC,cAAc;wBAChC,OAAO,EAAE;4BACP,GAAG,UAAU,CAAC,cAAc,EAAE,OAAO;4BACrC,GAAG,cAAc,CAAC,cAAc,EAAE,OAAO;4BACzC,GAAG,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,cAAc,EAAE,CAAC;yBAC/E;qBACF;iBACF,CAAC,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,mCAAmC,CAAC,WAAW,CAAC,CAAC;gBACtE,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC;YAC3D,CAAC,CAAC,CAAC;YACH,MAAM,eAAe,GAAiC;gBACpD,GAAG,QAAQ;gBACX,KAAK,EAAE,QAAQ,CAAC,KAAK,IAAI,EAAE;gBAC3B,iBAAiB,EAAE,QAAQ,CAAC,QAAQ;oBAClC,CAAC,CAAC,6BAA6B,CAAC,QAAQ,CAAC,QAAQ,CAAC;oBAClD,CAAC,CAAC,SAAS;gBACb,SAAS,EAAE,gCAAgC,CAAC,QAAQ,CAAC,SAAS,CAAC;aAChE,CAAC;YACF,OAAO;gBACL,IAAI,EAAE,eAAe;gBACrB,YAAY,EAAE,eAAe,CAAC,iBAAiB;aAChD,CAAC;QACJ,CAAC;QACD,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK;KACjC,CAAC;IACF,OAAO,qBAAqB,CAAC,WAAW,CAAC,CAAC;AAC5C,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { PagedAsyncIterableIterator, PagedResult, PageSettings } from \"@azure/core-paging\";\nimport { getPagedAsyncIterator } from \"@azure/core-paging\";\nimport type { OperationOptions } from \"@azure-rest/core-client\";\nimport type { ListFeatureFlagRevisionsPage } from \"../models.js\";\nimport type { AppConfigurationContext } from \"../generated/api/appConfigurationContext.js\";\nimport type { FeatureFlag } from \"../generated/models/models.js\";\nimport type { FeatureFlagClientGetFeatureFlagRevisionsOptionalParams } from \"../generated/api/featureFlagClient/options.js\";\nimport {\n _getFeatureFlagRevisionsDeserialize,\n _getFeatureFlagRevisionsSend,\n} from \"../generated/api/featureFlagClient/operations.js\";\nimport { extractAfterTokenFromNextLink, toAppConfigurationCompatResponse } from \"./helpers.js\";\nimport { tracingClient } from \"./tracing.js\";\n\n/**\n * Shared implementation of `listFeatureFlagRevisions` used by `FeatureFlagClient`.\n *\n * Wraps each page fetch in an operation-level span so tracing behaves\n * consistently with the other public client methods.\n *\n * @internal\n */\nexport function listFeatureFlagRevisions(\n context: AppConfigurationContext,\n spanName: string,\n sendParams: FeatureFlagClientGetFeatureFlagRevisionsOptionalParams,\n acceptDatetime: string | undefined,\n options: OperationOptions = {},\n): PagedAsyncIterableIterator<FeatureFlag, ListFeatureFlagRevisionsPage, PageSettings> {\n const pagedResult: PagedResult<ListFeatureFlagRevisionsPage, PageSettings, string | undefined> = {\n firstPageLink: undefined,\n getPage: async (pageLink: string | undefined) => {\n const response = await tracingClient.withSpan(spanName, options, async (updatedOptions) => {\n const rawResponse = await _getFeatureFlagRevisionsSend(context, {\n ...sendParams,\n ...updatedOptions,\n after: pageLink,\n requestOptions: {\n ...sendParams.requestOptions,\n ...updatedOptions.requestOptions,\n headers: {\n ...sendParams.requestOptions?.headers,\n ...updatedOptions.requestOptions?.headers,\n ...(acceptDatetime === undefined ? {} : { \"accept-datetime\": acceptDatetime }),\n },\n },\n });\n const parsed = await _getFeatureFlagRevisionsDeserialize(rawResponse);\n return Object.assign(parsed, { _response: rawResponse });\n });\n const currentResponse: ListFeatureFlagRevisionsPage = {\n ...response,\n items: response.items ?? [],\n continuationToken: response.nextLink\n ? extractAfterTokenFromNextLink(response.nextLink)\n : undefined,\n _response: toAppConfigurationCompatResponse(response._response),\n };\n return {\n page: currentResponse,\n nextPageLink: currentResponse.continuationToken,\n };\n },\n toElements: (page) => page.items,\n };\n return getPagedAsyncIterator(pagedResult);\n}\n"]}
@@ -0,0 +1,19 @@
1
+ import type { PagedAsyncIterableIterator, PageSettings } from "@azure/core-paging";
2
+ import type { OperationOptions } from "@azure-rest/core-client";
3
+ import type { ListFeatureFlagPage } from "../models.js";
4
+ import type { AppConfigurationContext } from "../generated/api/appConfigurationContext.js";
5
+ import type { FeatureFlag } from "../generated/models/models.js";
6
+ import type { FeatureFlagClientGetFeatureFlagsOptionalParams } from "../generated/api/featureFlagClient/options.js";
7
+ /**
8
+ * Shared implementation of `listFeatureFlags` used by `FeatureFlagClient`.
9
+ *
10
+ * Wraps each page fetch in an operation-level span so tracing behaves
11
+ * consistently with the other public client methods, and supports conditional
12
+ * page retrieval via `pageEtags`: each etag is sent as an `If-None-Match` header
13
+ * for its corresponding page, and an unchanged page (`304 Not Modified`) yields
14
+ * an empty page whose `etag` is preserved.
15
+ *
16
+ * @internal
17
+ */
18
+ export declare function listFeatureFlags(context: AppConfigurationContext, spanName: string, sendParams: FeatureFlagClientGetFeatureFlagsOptionalParams, pageEtags: string[] | undefined, options?: OperationOptions): PagedAsyncIterableIterator<FeatureFlag, ListFeatureFlagPage, PageSettings>;
19
+ //# sourceMappingURL=listFeatureFlags.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listFeatureFlags.d.ts","sourceRoot":"","sources":["../../../src/internal/listFeatureFlags.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,0BAA0B,EAAe,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEhG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6CAA6C,CAAC;AAC3F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,8CAA8C,EAAE,MAAM,+CAA+C,CAAC;AAcpH;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,uBAAuB,EAChC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,8CAA8C,EAC1D,SAAS,EAAE,MAAM,EAAE,GAAG,SAAS,EAC/B,OAAO,GAAE,gBAAqB,GAC7B,0BAA0B,CAAC,WAAW,EAAE,mBAAmB,EAAE,YAAY,CAAC,CA6D5E"}