@azure/ai-projects 2.0.1 → 2.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (291) hide show
  1. package/README.md +5 -5
  2. package/dist/browser/api/datasets/operations.d.ts.map +1 -1
  3. package/dist/browser/api/datasets/operations.js +9 -8
  4. package/dist/browser/api/datasets/operations.js.map +1 -1
  5. package/dist/browser/constants.d.ts +1 -1
  6. package/dist/browser/constants.js +1 -1
  7. package/dist/browser/constants.js.map +1 -1
  8. package/dist/commonjs/aiProjectClient.js +1 -0
  9. package/dist/commonjs/aiProjectClient.js.map +1 -1
  10. package/dist/commonjs/api/agents/index.js +1 -0
  11. package/dist/commonjs/api/agents/index.js.map +1 -1
  12. package/dist/commonjs/api/agents/operations.js +1 -0
  13. package/dist/commonjs/api/agents/operations.js.map +1 -1
  14. package/dist/commonjs/api/agents/options.js +1 -0
  15. package/dist/commonjs/api/agents/options.js.map +1 -1
  16. package/dist/commonjs/api/aiProjectContext.js +1 -0
  17. package/dist/commonjs/api/aiProjectContext.js.map +1 -1
  18. package/dist/commonjs/api/beta/evaluationTaxonomies/index.js +1 -0
  19. package/dist/commonjs/api/beta/evaluationTaxonomies/index.js.map +1 -1
  20. package/dist/commonjs/api/beta/evaluationTaxonomies/operations.js +1 -0
  21. package/dist/commonjs/api/beta/evaluationTaxonomies/operations.js.map +1 -1
  22. package/dist/commonjs/api/beta/evaluationTaxonomies/options.js +1 -0
  23. package/dist/commonjs/api/beta/evaluationTaxonomies/options.js.map +1 -1
  24. package/dist/commonjs/api/beta/evaluators/index.js +1 -0
  25. package/dist/commonjs/api/beta/evaluators/index.js.map +1 -1
  26. package/dist/commonjs/api/beta/evaluators/operations.js +1 -0
  27. package/dist/commonjs/api/beta/evaluators/operations.js.map +1 -1
  28. package/dist/commonjs/api/beta/evaluators/options.js +1 -0
  29. package/dist/commonjs/api/beta/evaluators/options.js.map +1 -1
  30. package/dist/commonjs/api/beta/insights/index.js +1 -0
  31. package/dist/commonjs/api/beta/insights/index.js.map +1 -1
  32. package/dist/commonjs/api/beta/insights/operations.js +1 -0
  33. package/dist/commonjs/api/beta/insights/operations.js.map +1 -1
  34. package/dist/commonjs/api/beta/insights/options.js +1 -0
  35. package/dist/commonjs/api/beta/insights/options.js.map +1 -1
  36. package/dist/commonjs/api/beta/memoryStores/index.js +1 -0
  37. package/dist/commonjs/api/beta/memoryStores/index.js.map +1 -1
  38. package/dist/commonjs/api/beta/memoryStores/operations.js +1 -0
  39. package/dist/commonjs/api/beta/memoryStores/operations.js.map +1 -1
  40. package/dist/commonjs/api/beta/memoryStores/options.js +1 -0
  41. package/dist/commonjs/api/beta/memoryStores/options.js.map +1 -1
  42. package/dist/commonjs/api/beta/redTeams/index.js +1 -0
  43. package/dist/commonjs/api/beta/redTeams/index.js.map +1 -1
  44. package/dist/commonjs/api/beta/redTeams/operations.js +1 -0
  45. package/dist/commonjs/api/beta/redTeams/operations.js.map +1 -1
  46. package/dist/commonjs/api/beta/redTeams/options.js +1 -0
  47. package/dist/commonjs/api/beta/redTeams/options.js.map +1 -1
  48. package/dist/commonjs/api/beta/schedules/index.js +1 -0
  49. package/dist/commonjs/api/beta/schedules/index.js.map +1 -1
  50. package/dist/commonjs/api/beta/schedules/operations.js +1 -0
  51. package/dist/commonjs/api/beta/schedules/operations.js.map +1 -1
  52. package/dist/commonjs/api/beta/schedules/options.js +1 -0
  53. package/dist/commonjs/api/beta/schedules/options.js.map +1 -1
  54. package/dist/commonjs/api/connections/index.js +1 -0
  55. package/dist/commonjs/api/connections/index.js.map +1 -1
  56. package/dist/commonjs/api/connections/operations.js +1 -0
  57. package/dist/commonjs/api/connections/operations.js.map +1 -1
  58. package/dist/commonjs/api/connections/options.js +1 -0
  59. package/dist/commonjs/api/connections/options.js.map +1 -1
  60. package/dist/commonjs/api/datasets/index.js +1 -0
  61. package/dist/commonjs/api/datasets/index.js.map +1 -1
  62. package/dist/commonjs/api/datasets/operations.d.ts.map +1 -1
  63. package/dist/commonjs/api/datasets/operations.js +10 -8
  64. package/dist/commonjs/api/datasets/operations.js.map +3 -3
  65. package/dist/commonjs/api/datasets/options.js +1 -0
  66. package/dist/commonjs/api/datasets/options.js.map +1 -1
  67. package/dist/commonjs/api/deployments/index.js +1 -0
  68. package/dist/commonjs/api/deployments/index.js.map +1 -1
  69. package/dist/commonjs/api/deployments/operations.js +1 -0
  70. package/dist/commonjs/api/deployments/operations.js.map +1 -1
  71. package/dist/commonjs/api/deployments/options.js +1 -0
  72. package/dist/commonjs/api/deployments/options.js.map +1 -1
  73. package/dist/commonjs/api/evaluationRules/index.js +1 -0
  74. package/dist/commonjs/api/evaluationRules/index.js.map +1 -1
  75. package/dist/commonjs/api/evaluationRules/operations.js +1 -0
  76. package/dist/commonjs/api/evaluationRules/operations.js.map +1 -1
  77. package/dist/commonjs/api/evaluationRules/options.js +1 -0
  78. package/dist/commonjs/api/evaluationRules/options.js.map +1 -1
  79. package/dist/commonjs/api/index.js +1 -0
  80. package/dist/commonjs/api/index.js.map +1 -1
  81. package/dist/commonjs/api/indexes/index.js +1 -0
  82. package/dist/commonjs/api/indexes/index.js.map +1 -1
  83. package/dist/commonjs/api/indexes/operations.js +1 -0
  84. package/dist/commonjs/api/indexes/operations.js.map +1 -1
  85. package/dist/commonjs/api/indexes/options.js +1 -0
  86. package/dist/commonjs/api/indexes/options.js.map +1 -1
  87. package/dist/commonjs/api/telemetry/index.js +1 -0
  88. package/dist/commonjs/api/telemetry/index.js.map +1 -1
  89. package/dist/commonjs/api/telemetry/operations.js +1 -0
  90. package/dist/commonjs/api/telemetry/operations.js.map +1 -1
  91. package/dist/commonjs/classic/agents/index.js +1 -0
  92. package/dist/commonjs/classic/agents/index.js.map +1 -1
  93. package/dist/commonjs/classic/beta/evaluationTaxonomies/index.js +1 -0
  94. package/dist/commonjs/classic/beta/evaluationTaxonomies/index.js.map +1 -1
  95. package/dist/commonjs/classic/beta/evaluators/index.js +1 -0
  96. package/dist/commonjs/classic/beta/evaluators/index.js.map +1 -1
  97. package/dist/commonjs/classic/beta/index.js +1 -0
  98. package/dist/commonjs/classic/beta/index.js.map +1 -1
  99. package/dist/commonjs/classic/beta/insights/index.js +1 -0
  100. package/dist/commonjs/classic/beta/insights/index.js.map +1 -1
  101. package/dist/commonjs/classic/beta/memoryStores/index.js +1 -0
  102. package/dist/commonjs/classic/beta/memoryStores/index.js.map +1 -1
  103. package/dist/commonjs/classic/beta/redTeams/index.js +1 -0
  104. package/dist/commonjs/classic/beta/redTeams/index.js.map +1 -1
  105. package/dist/commonjs/classic/beta/schedules/index.js +1 -0
  106. package/dist/commonjs/classic/beta/schedules/index.js.map +1 -1
  107. package/dist/commonjs/classic/connections/index.js +1 -0
  108. package/dist/commonjs/classic/connections/index.js.map +1 -1
  109. package/dist/commonjs/classic/datasets/index.js +1 -0
  110. package/dist/commonjs/classic/datasets/index.js.map +1 -1
  111. package/dist/commonjs/classic/deployments/index.js +1 -0
  112. package/dist/commonjs/classic/deployments/index.js.map +1 -1
  113. package/dist/commonjs/classic/evaluationRules/index.js +1 -0
  114. package/dist/commonjs/classic/evaluationRules/index.js.map +1 -1
  115. package/dist/commonjs/classic/index.js +1 -0
  116. package/dist/commonjs/classic/index.js.map +1 -1
  117. package/dist/commonjs/classic/indexes/index.js +1 -0
  118. package/dist/commonjs/classic/indexes/index.js.map +1 -1
  119. package/dist/commonjs/classic/telemetry/index.js +1 -0
  120. package/dist/commonjs/classic/telemetry/index.js.map +1 -1
  121. package/dist/commonjs/constants.d.ts +1 -1
  122. package/dist/commonjs/constants.js +2 -1
  123. package/dist/commonjs/constants.js.map +2 -2
  124. package/dist/commonjs/getCustomFetch.js +1 -0
  125. package/dist/commonjs/getCustomFetch.js.map +1 -1
  126. package/dist/commonjs/index.js +1 -0
  127. package/dist/commonjs/index.js.map +1 -1
  128. package/dist/commonjs/logger.js +1 -0
  129. package/dist/commonjs/logger.js.map +1 -1
  130. package/dist/commonjs/models/index.js +1 -0
  131. package/dist/commonjs/models/index.js.map +1 -1
  132. package/dist/commonjs/models/models.js +1 -0
  133. package/dist/commonjs/models/models.js.map +1 -1
  134. package/dist/commonjs/overwriteOpenAIClient.js +1 -0
  135. package/dist/commonjs/overwriteOpenAIClient.js.map +1 -1
  136. package/dist/commonjs/static-helpers/pagingHelpers.js +1 -0
  137. package/dist/commonjs/static-helpers/pagingHelpers.js.map +1 -1
  138. package/dist/commonjs/static-helpers/pollingHelpers.js +1 -0
  139. package/dist/commonjs/static-helpers/pollingHelpers.js.map +1 -1
  140. package/dist/commonjs/static-helpers/serialization/serialize-record.js +1 -0
  141. package/dist/commonjs/static-helpers/serialization/serialize-record.js.map +1 -1
  142. package/dist/commonjs/static-helpers/urlTemplate.js +1 -0
  143. package/dist/commonjs/static-helpers/urlTemplate.js.map +1 -1
  144. package/dist/commonjs/tsdoc-metadata.json +1 -1
  145. package/dist/commonjs/util.js +1 -0
  146. package/dist/commonjs/util.js.map +1 -1
  147. package/dist/esm/aiProjectClient.js +119 -94
  148. package/dist/esm/aiProjectClient.js.map +1 -7
  149. package/dist/esm/api/agents/index.js +4 -28
  150. package/dist/esm/api/agents/index.js.map +1 -7
  151. package/dist/esm/api/agents/operations.js +375 -473
  152. package/dist/esm/api/agents/operations.js.map +1 -7
  153. package/dist/esm/api/agents/options.js +4 -0
  154. package/dist/esm/api/agents/options.js.map +1 -7
  155. package/dist/esm/api/aiProjectContext.js +21 -19
  156. package/dist/esm/api/aiProjectContext.js.map +1 -7
  157. package/dist/esm/api/beta/evaluationTaxonomies/index.js +4 -8
  158. package/dist/esm/api/beta/evaluationTaxonomies/index.js.map +1 -7
  159. package/dist/esm/api/beta/evaluationTaxonomies/operations.js +150 -183
  160. package/dist/esm/api/beta/evaluationTaxonomies/operations.js.map +1 -7
  161. package/dist/esm/api/beta/evaluationTaxonomies/options.js +4 -0
  162. package/dist/esm/api/beta/evaluationTaxonomies/options.js.map +1 -7
  163. package/dist/esm/api/beta/evaluators/index.js +4 -16
  164. package/dist/esm/api/beta/evaluators/index.js.map +1 -7
  165. package/dist/esm/api/beta/evaluators/operations.js +192 -243
  166. package/dist/esm/api/beta/evaluators/operations.js.map +1 -7
  167. package/dist/esm/api/beta/evaluators/options.js +4 -0
  168. package/dist/esm/api/beta/evaluators/options.js.map +1 -7
  169. package/dist/esm/api/beta/insights/index.js +4 -6
  170. package/dist/esm/api/beta/insights/index.js.map +1 -7
  171. package/dist/esm/api/beta/insights/operations.js +109 -126
  172. package/dist/esm/api/beta/insights/operations.js.map +1 -7
  173. package/dist/esm/api/beta/insights/options.js +4 -0
  174. package/dist/esm/api/beta/insights/options.js.map +1 -7
  175. package/dist/esm/api/beta/memoryStores/index.js +4 -22
  176. package/dist/esm/api/beta/memoryStores/index.js.map +1 -7
  177. package/dist/esm/api/beta/memoryStores/operations.js +305 -374
  178. package/dist/esm/api/beta/memoryStores/operations.js.map +1 -7
  179. package/dist/esm/api/beta/memoryStores/options.js +4 -0
  180. package/dist/esm/api/beta/memoryStores/options.js.map +1 -7
  181. package/dist/esm/api/beta/redTeams/index.js +4 -6
  182. package/dist/esm/api/beta/redTeams/index.js.map +1 -7
  183. package/dist/esm/api/beta/redTeams/operations.js +95 -119
  184. package/dist/esm/api/beta/redTeams/operations.js.map +1 -7
  185. package/dist/esm/api/beta/redTeams/options.js +4 -0
  186. package/dist/esm/api/beta/redTeams/options.js.map +1 -7
  187. package/dist/esm/api/beta/schedules/index.js +4 -9
  188. package/dist/esm/api/beta/schedules/index.js.map +1 -7
  189. package/dist/esm/api/beta/schedules/operations.js +204 -248
  190. package/dist/esm/api/beta/schedules/operations.js.map +1 -7
  191. package/dist/esm/api/beta/schedules/options.js +4 -0
  192. package/dist/esm/api/beta/schedules/options.js.map +1 -7
  193. package/dist/esm/api/connections/index.js +4 -6
  194. package/dist/esm/api/connections/index.js.map +1 -7
  195. package/dist/esm/api/connections/operations.js +109 -116
  196. package/dist/esm/api/connections/operations.js.map +1 -7
  197. package/dist/esm/api/connections/options.js +4 -0
  198. package/dist/esm/api/connections/options.js.map +1 -7
  199. package/dist/esm/api/datasets/index.js +4 -18
  200. package/dist/esm/api/datasets/index.js.map +1 -7
  201. package/dist/esm/api/datasets/operations.d.ts.map +1 -1
  202. package/dist/esm/api/datasets/operations.js +288 -355
  203. package/dist/esm/api/datasets/operations.js.map +1 -7
  204. package/dist/esm/api/datasets/options.js +4 -0
  205. package/dist/esm/api/datasets/options.js.map +1 -7
  206. package/dist/esm/api/deployments/index.js +4 -5
  207. package/dist/esm/api/deployments/index.js.map +1 -7
  208. package/dist/esm/api/deployments/operations.js +57 -70
  209. package/dist/esm/api/deployments/operations.js.map +1 -7
  210. package/dist/esm/api/deployments/options.js +4 -0
  211. package/dist/esm/api/deployments/options.js.map +1 -7
  212. package/dist/esm/api/evaluationRules/index.js +4 -7
  213. package/dist/esm/api/evaluationRules/index.js.map +1 -7
  214. package/dist/esm/api/evaluationRules/operations.js +121 -144
  215. package/dist/esm/api/evaluationRules/operations.js.map +1 -7
  216. package/dist/esm/api/evaluationRules/options.js +4 -0
  217. package/dist/esm/api/evaluationRules/options.js.map +1 -7
  218. package/dist/esm/api/index.js +4 -4
  219. package/dist/esm/api/index.js.map +1 -7
  220. package/dist/esm/api/indexes/index.js +4 -8
  221. package/dist/esm/api/indexes/index.js.map +1 -7
  222. package/dist/esm/api/indexes/operations.js +116 -161
  223. package/dist/esm/api/indexes/operations.js.map +1 -7
  224. package/dist/esm/api/indexes/options.js +4 -0
  225. package/dist/esm/api/indexes/options.js.map +1 -7
  226. package/dist/esm/api/telemetry/index.js +4 -4
  227. package/dist/esm/api/telemetry/index.js.map +1 -7
  228. package/dist/esm/api/telemetry/operations.js +53 -46
  229. package/dist/esm/api/telemetry/operations.js.map +1 -7
  230. package/dist/esm/classic/agents/index.js +40 -80
  231. package/dist/esm/classic/agents/index.js.map +1 -7
  232. package/dist/esm/classic/beta/evaluationTaxonomies/index.js +15 -21
  233. package/dist/esm/classic/beta/evaluationTaxonomies/index.js.map +1 -7
  234. package/dist/esm/classic/beta/evaluators/index.js +16 -23
  235. package/dist/esm/classic/beta/evaluators/index.js.map +1 -7
  236. package/dist/esm/classic/beta/index.js +18 -18
  237. package/dist/esm/classic/beta/index.js.map +1 -7
  238. package/dist/esm/classic/beta/insights/index.js +12 -12
  239. package/dist/esm/classic/beta/insights/index.js.map +1 -7
  240. package/dist/esm/classic/beta/memoryStores/index.js +19 -29
  241. package/dist/esm/classic/beta/memoryStores/index.js.map +1 -7
  242. package/dist/esm/classic/beta/redTeams/index.js +12 -12
  243. package/dist/esm/classic/beta/redTeams/index.js.map +1 -7
  244. package/dist/esm/classic/beta/schedules/index.js +16 -23
  245. package/dist/esm/classic/beta/schedules/index.js.map +1 -7
  246. package/dist/esm/classic/connections/index.js +13 -13
  247. package/dist/esm/classic/connections/index.js.map +1 -7
  248. package/dist/esm/classic/datasets/index.js +19 -29
  249. package/dist/esm/classic/datasets/index.js.map +1 -7
  250. package/dist/esm/classic/deployments/index.js +11 -11
  251. package/dist/esm/classic/deployments/index.js.map +1 -7
  252. package/dist/esm/classic/evaluationRules/index.js +13 -13
  253. package/dist/esm/classic/evaluationRules/index.js.map +1 -7
  254. package/dist/esm/classic/index.js +4 -0
  255. package/dist/esm/classic/index.js.map +1 -7
  256. package/dist/esm/classic/indexes/index.js +14 -14
  257. package/dist/esm/classic/indexes/index.js.map +1 -7
  258. package/dist/esm/classic/telemetry/index.js +7 -9
  259. package/dist/esm/classic/telemetry/index.js.map +1 -7
  260. package/dist/esm/constants.d.ts +1 -1
  261. package/dist/esm/constants.js +11 -6
  262. package/dist/esm/constants.js.map +1 -7
  263. package/dist/esm/getCustomFetch.js +40 -33
  264. package/dist/esm/getCustomFetch.js.map +1 -7
  265. package/dist/esm/index.js +4 -4
  266. package/dist/esm/index.js.map +1 -7
  267. package/dist/esm/logger.js +4 -4
  268. package/dist/esm/logger.js.map +1 -7
  269. package/dist/esm/models/index.js +4 -0
  270. package/dist/esm/models/index.js.map +1 -7
  271. package/dist/esm/models/models.js +3709 -4160
  272. package/dist/esm/models/models.js.map +1 -7
  273. package/dist/esm/overwriteOpenAIClient.js +13 -13
  274. package/dist/esm/overwriteOpenAIClient.js.map +1 -7
  275. package/dist/esm/static-helpers/pagingHelpers.js +123 -99
  276. package/dist/esm/static-helpers/pagingHelpers.js.map +1 -7
  277. package/dist/esm/static-helpers/pollingHelpers.js +98 -75
  278. package/dist/esm/static-helpers/pollingHelpers.js.map +1 -7
  279. package/dist/esm/static-helpers/serialization/serialize-record.js +18 -16
  280. package/dist/esm/static-helpers/serialization/serialize-record.js.map +1 -7
  281. package/dist/esm/static-helpers/urlTemplate.js +169 -142
  282. package/dist/esm/static-helpers/urlTemplate.js.map +1 -7
  283. package/dist/esm/util.js +84 -63
  284. package/dist/esm/util.js.map +1 -7
  285. package/dist/react-native/api/datasets/operations.d.ts.map +1 -1
  286. package/dist/react-native/api/datasets/operations.js +9 -8
  287. package/dist/react-native/api/datasets/operations.js.map +1 -1
  288. package/dist/react-native/constants.d.ts +1 -1
  289. package/dist/react-native/constants.js +1 -1
  290. package/dist/react-native/constants.js.map +1 -1
  291. package/package.json +9 -9
@@ -1,173 +1,200 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT License.
3
+ // ---------------------
4
+ // helpers
5
+ // ---------------------
1
6
  function encodeComponent(val, reserved, op) {
2
- return (reserved ?? op === "+") || op === "#" ? encodeReservedComponent(val) : encodeRFC3986URIComponent(val);
7
+ return (reserved ?? op === "+") || op === "#"
8
+ ? encodeReservedComponent(val)
9
+ : encodeRFC3986URIComponent(val);
3
10
  }
4
11
  function encodeReservedComponent(str) {
5
- return str.split(/(%[0-9A-Fa-f]{2})/g).map((part) => !/%[0-9A-Fa-f]/.test(part) ? encodeURI(part) : part).join("");
12
+ return str
13
+ .split(/(%[0-9A-Fa-f]{2})/g)
14
+ .map((part) => (!/%[0-9A-Fa-f]/.test(part) ? encodeURI(part) : part))
15
+ .join("");
6
16
  }
7
17
  function encodeRFC3986URIComponent(str) {
8
- return encodeURIComponent(str).replace(
9
- /[!'()*]/g,
10
- (c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`
11
- );
18
+ return encodeURIComponent(str).replace(/[!'()*]/g, (c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`);
12
19
  }
13
20
  function isDefined(val) {
14
- return val !== void 0 && val !== null;
21
+ return val !== undefined && val !== null;
15
22
  }
16
23
  function getNamedAndIfEmpty(op) {
17
- return [!!op && [";", "?", "&"].includes(op), !!op && ["?", "&"].includes(op) ? "=" : ""];
24
+ return [!!op && [";", "?", "&"].includes(op), !!op && ["?", "&"].includes(op) ? "=" : ""];
18
25
  }
19
26
  function getFirstOrSep(op, isFirst = false) {
20
- if (isFirst) {
21
- return !op || op === "+" ? "" : op;
22
- } else if (!op || op === "+" || op === "#") {
23
- return ",";
24
- } else if (op === "?") {
25
- return "&";
26
- } else {
27
- return op;
28
- }
27
+ if (isFirst) {
28
+ return !op || op === "+" ? "" : op;
29
+ }
30
+ else if (!op || op === "+" || op === "#") {
31
+ return ",";
32
+ }
33
+ else if (op === "?") {
34
+ return "&";
35
+ }
36
+ else {
37
+ return op;
38
+ }
29
39
  }
30
40
  function getExpandedValue(option) {
31
- let isFirst = option.isFirst;
32
- const { op, varName, varValue: value, reserved } = option;
33
- const vals = [];
34
- const [named, ifEmpty] = getNamedAndIfEmpty(op);
35
- if (Array.isArray(value)) {
36
- for (const val of value.filter(isDefined)) {
37
- vals.push(`${getFirstOrSep(op, isFirst)}`);
38
- if (named && varName) {
39
- vals.push(`${encodeURIComponent(varName)}`);
40
- if (val === "") {
41
- vals.push(ifEmpty);
42
- } else {
43
- vals.push("=");
41
+ let isFirst = option.isFirst;
42
+ const { op, varName, varValue: value, reserved } = option;
43
+ const vals = [];
44
+ const [named, ifEmpty] = getNamedAndIfEmpty(op);
45
+ if (Array.isArray(value)) {
46
+ for (const val of value.filter(isDefined)) {
47
+ // prepare the following parts: separator, varName, value
48
+ vals.push(`${getFirstOrSep(op, isFirst)}`);
49
+ if (named && varName) {
50
+ vals.push(`${encodeURIComponent(varName)}`);
51
+ if (val === "") {
52
+ vals.push(ifEmpty);
53
+ }
54
+ else {
55
+ vals.push("=");
56
+ }
57
+ }
58
+ vals.push(encodeComponent(val, reserved, op));
59
+ isFirst = false;
44
60
  }
45
- }
46
- vals.push(encodeComponent(val, reserved, op));
47
- isFirst = false;
48
61
  }
49
- } else if (typeof value === "object") {
50
- for (const key of Object.keys(value)) {
51
- const val = value[key];
52
- if (!isDefined(val)) {
53
- continue;
54
- }
55
- vals.push(`${getFirstOrSep(op, isFirst)}`);
56
- if (key) {
57
- vals.push(`${encodeURIComponent(key)}`);
58
- if (named && val === "") {
59
- vals.push(ifEmpty);
60
- } else {
61
- vals.push("=");
62
+ else if (typeof value === "object") {
63
+ for (const key of Object.keys(value)) {
64
+ const val = value[key];
65
+ if (!isDefined(val)) {
66
+ continue;
67
+ }
68
+ // prepare the following parts: separator, key, value
69
+ vals.push(`${getFirstOrSep(op, isFirst)}`);
70
+ if (key) {
71
+ vals.push(`${encodeURIComponent(key)}`);
72
+ if (named && val === "") {
73
+ vals.push(ifEmpty);
74
+ }
75
+ else {
76
+ vals.push("=");
77
+ }
78
+ }
79
+ vals.push(encodeComponent(val, reserved, op));
80
+ isFirst = false;
62
81
  }
63
- }
64
- vals.push(encodeComponent(val, reserved, op));
65
- isFirst = false;
66
82
  }
67
- }
68
- return vals.join("");
83
+ return vals.join("");
69
84
  }
70
85
  function getNonExpandedValue(option) {
71
- const { op, varName, varValue: value, isFirst, reserved } = option;
72
- const vals = [];
73
- const first = getFirstOrSep(op, isFirst);
74
- const [named, ifEmpty] = getNamedAndIfEmpty(op);
75
- if (named && varName) {
76
- vals.push(encodeComponent(varName, reserved, op));
77
- if (value === "") {
78
- if (!ifEmpty) {
79
- vals.push(ifEmpty);
80
- }
81
- return !vals.join("") ? void 0 : `${first}${vals.join("")}`;
82
- }
83
- vals.push("=");
84
- }
85
- const items = [];
86
- if (Array.isArray(value)) {
87
- for (const val of value.filter(isDefined)) {
88
- items.push(encodeComponent(val, reserved, op));
89
- }
90
- } else if (typeof value === "object") {
91
- for (const key of Object.keys(value)) {
92
- if (!isDefined(value[key])) {
93
- continue;
94
- }
95
- items.push(encodeRFC3986URIComponent(key));
96
- items.push(encodeComponent(value[key], reserved, op));
97
- }
98
- }
99
- vals.push(items.join(","));
100
- return !vals.join(",") ? void 0 : `${first}${vals.join("")}`;
101
- }
102
- function getVarValue(option) {
103
- const { op, varName, modifier, isFirst, reserved, varValue: value } = option;
104
- if (!isDefined(value)) {
105
- return void 0;
106
- } else if (["string", "number", "boolean"].includes(typeof value)) {
107
- let val = value.toString();
86
+ const { op, varName, varValue: value, isFirst, reserved } = option;
87
+ const vals = [];
88
+ const first = getFirstOrSep(op, isFirst);
108
89
  const [named, ifEmpty] = getNamedAndIfEmpty(op);
109
- const vals = [getFirstOrSep(op, isFirst)];
110
90
  if (named && varName) {
111
- vals.push(varName);
112
- if (val === "") {
113
- vals.push(ifEmpty);
114
- } else {
91
+ vals.push(encodeComponent(varName, reserved, op));
92
+ if (value === "") {
93
+ if (!ifEmpty) {
94
+ vals.push(ifEmpty);
95
+ }
96
+ return !vals.join("") ? undefined : `${first}${vals.join("")}`;
97
+ }
115
98
  vals.push("=");
116
- }
117
99
  }
118
- if (modifier && modifier !== "*") {
119
- val = val.substring(0, parseInt(modifier, 10));
100
+ const items = [];
101
+ if (Array.isArray(value)) {
102
+ for (const val of value.filter(isDefined)) {
103
+ items.push(encodeComponent(val, reserved, op));
104
+ }
105
+ }
106
+ else if (typeof value === "object") {
107
+ for (const key of Object.keys(value)) {
108
+ if (!isDefined(value[key])) {
109
+ continue;
110
+ }
111
+ items.push(encodeRFC3986URIComponent(key));
112
+ items.push(encodeComponent(value[key], reserved, op));
113
+ }
120
114
  }
121
- vals.push(encodeComponent(val, reserved, op));
122
- return vals.join("");
123
- } else if (modifier === "*") {
124
- return getExpandedValue(option);
125
- } else {
126
- return getNonExpandedValue(option);
127
- }
115
+ vals.push(items.join(","));
116
+ return !vals.join(",") ? undefined : `${first}${vals.join("")}`;
128
117
  }
129
- function expandUrlTemplate(template, context, option) {
130
- const r = template.replace(/\{([^{}]+)\}|([^{}]+)/g, (_, expr, text) => {
131
- if (!expr) {
132
- return encodeReservedComponent(text);
118
+ function getVarValue(option) {
119
+ const { op, varName, modifier, isFirst, reserved, varValue: value } = option;
120
+ if (!isDefined(value)) {
121
+ return undefined;
122
+ }
123
+ else if (["string", "number", "boolean"].includes(typeof value)) {
124
+ let val = value.toString();
125
+ const [named, ifEmpty] = getNamedAndIfEmpty(op);
126
+ const vals = [getFirstOrSep(op, isFirst)];
127
+ if (named && varName) {
128
+ // No need to encode varName considering it is already encoded
129
+ vals.push(varName);
130
+ if (val === "") {
131
+ vals.push(ifEmpty);
132
+ }
133
+ else {
134
+ vals.push("=");
135
+ }
136
+ }
137
+ if (modifier && modifier !== "*") {
138
+ val = val.substring(0, parseInt(modifier, 10));
139
+ }
140
+ vals.push(encodeComponent(val, reserved, op));
141
+ return vals.join("");
133
142
  }
134
- let op;
135
- if (["+", "#", ".", "/", ";", "?", "&"].includes(expr[0])) {
136
- op = expr[0];
137
- expr = expr.slice(1);
143
+ else if (modifier === "*") {
144
+ return getExpandedValue(option);
138
145
  }
139
- const varList = expr.split(/,/g);
140
- const result = [];
141
- for (const varSpec of varList) {
142
- const varMatch = /([^:*]*)(?::(\d+)|(\*))?/.exec(varSpec);
143
- if (!varMatch || !varMatch[1]) {
144
- continue;
145
- }
146
- const varValue = getVarValue({
147
- isFirst: result.length === 0,
148
- op,
149
- varValue: context[varMatch[1]],
150
- varName: varMatch[1],
151
- modifier: varMatch[2] || varMatch[3],
152
- reserved: option?.allowReserved
153
- });
154
- if (varValue) {
155
- result.push(varValue);
156
- }
146
+ else {
147
+ return getNonExpandedValue(option);
157
148
  }
158
- return result.join("");
159
- });
160
- return normalizeUnreserved(r);
161
149
  }
150
+ // ---------------------------------------------------------------------------------------------------
151
+ // This is an implementation of RFC 6570 URI Template: https://datatracker.ietf.org/doc/html/rfc6570.
152
+ // ---------------------------------------------------------------------------------------------------
153
+ export function expandUrlTemplate(template, context, option) {
154
+ const r = template.replace(/\{([^{}]+)\}|([^{}]+)/g, (_, expr, text) => {
155
+ if (!expr) {
156
+ return encodeReservedComponent(text);
157
+ }
158
+ let op;
159
+ if (["+", "#", ".", "/", ";", "?", "&"].includes(expr[0])) {
160
+ op = expr[0];
161
+ expr = expr.slice(1);
162
+ }
163
+ const varList = expr.split(/,/g);
164
+ const result = [];
165
+ for (const varSpec of varList) {
166
+ const varMatch = /([^:*]*)(?::(\d+)|(\*))?/.exec(varSpec);
167
+ if (!varMatch || !varMatch[1]) {
168
+ continue;
169
+ }
170
+ const varValue = getVarValue({
171
+ isFirst: result.length === 0,
172
+ op,
173
+ varValue: context[varMatch[1]],
174
+ varName: varMatch[1],
175
+ modifier: varMatch[2] || varMatch[3],
176
+ reserved: option?.allowReserved,
177
+ });
178
+ if (varValue) {
179
+ result.push(varValue);
180
+ }
181
+ }
182
+ return result.join("");
183
+ });
184
+ return normalizeUnreserved(r);
185
+ }
186
+ /**
187
+ * Normalize an expanded URI by decoding percent-encoded unreserved characters.
188
+ * RFC 3986 unreserved: "-" / "." / "~"
189
+ */
162
190
  function normalizeUnreserved(uri) {
163
- return uri.replace(/%([0-9A-Fa-f]{2})/g, (match, hex) => {
164
- const char = String.fromCharCode(parseInt(hex, 16));
165
- if (/[-.~]/.test(char)) {
166
- return char;
167
- }
168
- return match;
169
- });
191
+ return uri.replace(/%([0-9A-Fa-f]{2})/g, (match, hex) => {
192
+ const char = String.fromCharCode(parseInt(hex, 16));
193
+ // Decode only if it's unreserved
194
+ if (/[-.~]/.test(char)) {
195
+ return char;
196
+ }
197
+ return match; // leave other encodings intact
198
+ });
170
199
  }
171
- export {
172
- expandUrlTemplate
173
- };
200
+ //# sourceMappingURL=urlTemplate.js.map
@@ -1,7 +1 @@
1
- {
2
- "version": 3,
3
- "sources": ["/mnt/vss/_work/1/s/sdk/ai/ai-projects/src/static-helpers/urlTemplate.ts"],
4
- "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n// ---------------------\n// interfaces\n// ---------------------\ninterface ValueOptions {\n isFirst: boolean; // is first value in the expression\n op?: string; // operator\n varValue?: any; // variable value\n varName?: string; // variable name\n modifier?: string; // modifier e.g *\n reserved?: boolean; // if true we'll keep reserved words with not encoding\n}\n\nexport interface UrlTemplateOptions {\n // if set to true, reserved characters will not be encoded\n allowReserved?: boolean;\n}\n\n// ---------------------\n// helpers\n// ---------------------\nfunction encodeComponent(val: string, reserved?: boolean, op?: string): string {\n return (reserved ?? op === \"+\") || op === \"#\"\n ? encodeReservedComponent(val)\n : encodeRFC3986URIComponent(val);\n}\n\nfunction encodeReservedComponent(str: string): string {\n return str\n .split(/(%[0-9A-Fa-f]{2})/g)\n .map((part) => (!/%[0-9A-Fa-f]/.test(part) ? encodeURI(part) : part))\n .join(\"\");\n}\n\nfunction encodeRFC3986URIComponent(str: string): string {\n return encodeURIComponent(str).replace(\n /[!'()*]/g,\n (c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`,\n );\n}\n\nfunction isDefined(val: any): boolean {\n return val !== undefined && val !== null;\n}\n\nfunction getNamedAndIfEmpty(op?: string): [boolean, string] {\n return [!!op && [\";\", \"?\", \"&\"].includes(op), !!op && [\"?\", \"&\"].includes(op) ? \"=\" : \"\"];\n}\n\nfunction getFirstOrSep(op?: string, isFirst = false): string {\n if (isFirst) {\n return !op || op === \"+\" ? \"\" : op;\n } else if (!op || op === \"+\" || op === \"#\") {\n return \",\";\n } else if (op === \"?\") {\n return \"&\";\n } else {\n return op;\n }\n}\n\nfunction getExpandedValue(option: ValueOptions): string {\n let isFirst = option.isFirst;\n const { op, varName, varValue: value, reserved } = option;\n const vals: string[] = [];\n const [named, ifEmpty] = getNamedAndIfEmpty(op);\n\n if (Array.isArray(value)) {\n for (const val of value.filter(isDefined)) {\n // prepare the following parts: separator, varName, value\n vals.push(`${getFirstOrSep(op, isFirst)}`);\n if (named && varName) {\n vals.push(`${encodeURIComponent(varName)}`);\n if (val === \"\") {\n vals.push(ifEmpty);\n } else {\n vals.push(\"=\");\n }\n }\n vals.push(encodeComponent(val, reserved, op));\n isFirst = false;\n }\n } else if (typeof value === \"object\") {\n for (const key of Object.keys(value)) {\n const val = value[key];\n if (!isDefined(val)) {\n continue;\n }\n // prepare the following parts: separator, key, value\n vals.push(`${getFirstOrSep(op, isFirst)}`);\n if (key) {\n vals.push(`${encodeURIComponent(key)}`);\n if (named && val === \"\") {\n vals.push(ifEmpty);\n } else {\n vals.push(\"=\");\n }\n }\n vals.push(encodeComponent(val, reserved, op));\n isFirst = false;\n }\n }\n return vals.join(\"\");\n}\n\nfunction getNonExpandedValue(option: ValueOptions): string | undefined {\n const { op, varName, varValue: value, isFirst, reserved } = option;\n const vals: string[] = [];\n const first = getFirstOrSep(op, isFirst);\n const [named, ifEmpty] = getNamedAndIfEmpty(op);\n if (named && varName) {\n vals.push(encodeComponent(varName, reserved, op));\n if (value === \"\") {\n if (!ifEmpty) {\n vals.push(ifEmpty);\n }\n return !vals.join(\"\") ? undefined : `${first}${vals.join(\"\")}`;\n }\n vals.push(\"=\");\n }\n\n const items = [];\n if (Array.isArray(value)) {\n for (const val of value.filter(isDefined)) {\n items.push(encodeComponent(val, reserved, op));\n }\n } else if (typeof value === \"object\") {\n for (const key of Object.keys(value)) {\n if (!isDefined(value[key])) {\n continue;\n }\n items.push(encodeRFC3986URIComponent(key));\n items.push(encodeComponent(value[key], reserved, op));\n }\n }\n vals.push(items.join(\",\"));\n return !vals.join(\",\") ? undefined : `${first}${vals.join(\"\")}`;\n}\n\nfunction getVarValue(option: ValueOptions): string | undefined {\n const { op, varName, modifier, isFirst, reserved, varValue: value } = option;\n\n if (!isDefined(value)) {\n return undefined;\n } else if ([\"string\", \"number\", \"boolean\"].includes(typeof value)) {\n let val = value.toString();\n const [named, ifEmpty] = getNamedAndIfEmpty(op);\n const vals: string[] = [getFirstOrSep(op, isFirst)];\n if (named && varName) {\n // No need to encode varName considering it is already encoded\n vals.push(varName);\n if (val === \"\") {\n vals.push(ifEmpty);\n } else {\n vals.push(\"=\");\n }\n }\n if (modifier && modifier !== \"*\") {\n val = val.substring(0, parseInt(modifier, 10));\n }\n vals.push(encodeComponent(val, reserved, op));\n return vals.join(\"\");\n } else if (modifier === \"*\") {\n return getExpandedValue(option);\n } else {\n return getNonExpandedValue(option);\n }\n}\n\n// ---------------------------------------------------------------------------------------------------\n// This is an implementation of RFC 6570 URI Template: https://datatracker.ietf.org/doc/html/rfc6570.\n// ---------------------------------------------------------------------------------------------------\nexport function expandUrlTemplate(\n template: string,\n context: Record<string, any>,\n option?: UrlTemplateOptions,\n): string {\n const r = template.replace(/\\{([^{}]+)\\}|([^{}]+)/g, (_, expr, text) => {\n if (!expr) {\n return encodeReservedComponent(text);\n }\n let op;\n if ([\"+\", \"#\", \".\", \"/\", \";\", \"?\", \"&\"].includes(expr[0])) {\n op = expr[0];\n expr = expr.slice(1);\n }\n const varList = expr.split(/,/g);\n const result = [];\n for (const varSpec of varList) {\n const varMatch = /([^:*]*)(?::(\\d+)|(\\*))?/.exec(varSpec);\n if (!varMatch || !varMatch[1]) {\n continue;\n }\n const varValue = getVarValue({\n isFirst: result.length === 0,\n op,\n varValue: context[varMatch[1]],\n varName: varMatch[1],\n modifier: varMatch[2] || varMatch[3],\n reserved: option?.allowReserved,\n });\n if (varValue) {\n result.push(varValue);\n }\n }\n return result.join(\"\");\n });\n\n return normalizeUnreserved(r);\n}\n\n/**\n * Normalize an expanded URI by decoding percent-encoded unreserved characters.\n * RFC 3986 unreserved: \"-\" / \".\" / \"~\"\n */\nfunction normalizeUnreserved(uri: string): string {\n return uri.replace(/%([0-9A-Fa-f]{2})/g, (match, hex) => {\n const char = String.fromCharCode(parseInt(hex, 16));\n // Decode only if it's unreserved\n if (/[-.~]/.test(char)) {\n return char;\n }\n return match; // leave other encodings intact\n });\n}\n"],
5
- "mappings": "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",
6
- "names": []
7
- }
1
+ {"version":3,"file":"urlTemplate.js","sourceRoot":"","sources":["../../../src/static-helpers/urlTemplate.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n// ---------------------\n// interfaces\n// ---------------------\ninterface ValueOptions {\n isFirst: boolean; // is first value in the expression\n op?: string; // operator\n varValue?: any; // variable value\n varName?: string; // variable name\n modifier?: string; // modifier e.g *\n reserved?: boolean; // if true we'll keep reserved words with not encoding\n}\n\nexport interface UrlTemplateOptions {\n // if set to true, reserved characters will not be encoded\n allowReserved?: boolean;\n}\n\n// ---------------------\n// helpers\n// ---------------------\nfunction encodeComponent(val: string, reserved?: boolean, op?: string): string {\n return (reserved ?? op === \"+\") || op === \"#\"\n ? encodeReservedComponent(val)\n : encodeRFC3986URIComponent(val);\n}\n\nfunction encodeReservedComponent(str: string): string {\n return str\n .split(/(%[0-9A-Fa-f]{2})/g)\n .map((part) => (!/%[0-9A-Fa-f]/.test(part) ? encodeURI(part) : part))\n .join(\"\");\n}\n\nfunction encodeRFC3986URIComponent(str: string): string {\n return encodeURIComponent(str).replace(\n /[!'()*]/g,\n (c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`,\n );\n}\n\nfunction isDefined(val: any): boolean {\n return val !== undefined && val !== null;\n}\n\nfunction getNamedAndIfEmpty(op?: string): [boolean, string] {\n return [!!op && [\";\", \"?\", \"&\"].includes(op), !!op && [\"?\", \"&\"].includes(op) ? \"=\" : \"\"];\n}\n\nfunction getFirstOrSep(op?: string, isFirst = false): string {\n if (isFirst) {\n return !op || op === \"+\" ? \"\" : op;\n } else if (!op || op === \"+\" || op === \"#\") {\n return \",\";\n } else if (op === \"?\") {\n return \"&\";\n } else {\n return op;\n }\n}\n\nfunction getExpandedValue(option: ValueOptions): string {\n let isFirst = option.isFirst;\n const { op, varName, varValue: value, reserved } = option;\n const vals: string[] = [];\n const [named, ifEmpty] = getNamedAndIfEmpty(op);\n\n if (Array.isArray(value)) {\n for (const val of value.filter(isDefined)) {\n // prepare the following parts: separator, varName, value\n vals.push(`${getFirstOrSep(op, isFirst)}`);\n if (named && varName) {\n vals.push(`${encodeURIComponent(varName)}`);\n if (val === \"\") {\n vals.push(ifEmpty);\n } else {\n vals.push(\"=\");\n }\n }\n vals.push(encodeComponent(val, reserved, op));\n isFirst = false;\n }\n } else if (typeof value === \"object\") {\n for (const key of Object.keys(value)) {\n const val = value[key];\n if (!isDefined(val)) {\n continue;\n }\n // prepare the following parts: separator, key, value\n vals.push(`${getFirstOrSep(op, isFirst)}`);\n if (key) {\n vals.push(`${encodeURIComponent(key)}`);\n if (named && val === \"\") {\n vals.push(ifEmpty);\n } else {\n vals.push(\"=\");\n }\n }\n vals.push(encodeComponent(val, reserved, op));\n isFirst = false;\n }\n }\n return vals.join(\"\");\n}\n\nfunction getNonExpandedValue(option: ValueOptions): string | undefined {\n const { op, varName, varValue: value, isFirst, reserved } = option;\n const vals: string[] = [];\n const first = getFirstOrSep(op, isFirst);\n const [named, ifEmpty] = getNamedAndIfEmpty(op);\n if (named && varName) {\n vals.push(encodeComponent(varName, reserved, op));\n if (value === \"\") {\n if (!ifEmpty) {\n vals.push(ifEmpty);\n }\n return !vals.join(\"\") ? undefined : `${first}${vals.join(\"\")}`;\n }\n vals.push(\"=\");\n }\n\n const items = [];\n if (Array.isArray(value)) {\n for (const val of value.filter(isDefined)) {\n items.push(encodeComponent(val, reserved, op));\n }\n } else if (typeof value === \"object\") {\n for (const key of Object.keys(value)) {\n if (!isDefined(value[key])) {\n continue;\n }\n items.push(encodeRFC3986URIComponent(key));\n items.push(encodeComponent(value[key], reserved, op));\n }\n }\n vals.push(items.join(\",\"));\n return !vals.join(\",\") ? undefined : `${first}${vals.join(\"\")}`;\n}\n\nfunction getVarValue(option: ValueOptions): string | undefined {\n const { op, varName, modifier, isFirst, reserved, varValue: value } = option;\n\n if (!isDefined(value)) {\n return undefined;\n } else if ([\"string\", \"number\", \"boolean\"].includes(typeof value)) {\n let val = value.toString();\n const [named, ifEmpty] = getNamedAndIfEmpty(op);\n const vals: string[] = [getFirstOrSep(op, isFirst)];\n if (named && varName) {\n // No need to encode varName considering it is already encoded\n vals.push(varName);\n if (val === \"\") {\n vals.push(ifEmpty);\n } else {\n vals.push(\"=\");\n }\n }\n if (modifier && modifier !== \"*\") {\n val = val.substring(0, parseInt(modifier, 10));\n }\n vals.push(encodeComponent(val, reserved, op));\n return vals.join(\"\");\n } else if (modifier === \"*\") {\n return getExpandedValue(option);\n } else {\n return getNonExpandedValue(option);\n }\n}\n\n// ---------------------------------------------------------------------------------------------------\n// This is an implementation of RFC 6570 URI Template: https://datatracker.ietf.org/doc/html/rfc6570.\n// ---------------------------------------------------------------------------------------------------\nexport function expandUrlTemplate(\n template: string,\n context: Record<string, any>,\n option?: UrlTemplateOptions,\n): string {\n const r = template.replace(/\\{([^{}]+)\\}|([^{}]+)/g, (_, expr, text) => {\n if (!expr) {\n return encodeReservedComponent(text);\n }\n let op;\n if ([\"+\", \"#\", \".\", \"/\", \";\", \"?\", \"&\"].includes(expr[0])) {\n op = expr[0];\n expr = expr.slice(1);\n }\n const varList = expr.split(/,/g);\n const result = [];\n for (const varSpec of varList) {\n const varMatch = /([^:*]*)(?::(\\d+)|(\\*))?/.exec(varSpec);\n if (!varMatch || !varMatch[1]) {\n continue;\n }\n const varValue = getVarValue({\n isFirst: result.length === 0,\n op,\n varValue: context[varMatch[1]],\n varName: varMatch[1],\n modifier: varMatch[2] || varMatch[3],\n reserved: option?.allowReserved,\n });\n if (varValue) {\n result.push(varValue);\n }\n }\n return result.join(\"\");\n });\n\n return normalizeUnreserved(r);\n}\n\n/**\n * Normalize an expanded URI by decoding percent-encoded unreserved characters.\n * RFC 3986 unreserved: \"-\" / \".\" / \"~\"\n */\nfunction normalizeUnreserved(uri: string): string {\n return uri.replace(/%([0-9A-Fa-f]{2})/g, (match, hex) => {\n const char = String.fromCharCode(parseInt(hex, 16));\n // Decode only if it's unreserved\n if (/[-.~]/.test(char)) {\n return char;\n }\n return match; // leave other encodings intact\n });\n}\n"]}
package/dist/esm/util.js CHANGED
@@ -1,72 +1,93 @@
1
1
  import { createHttpHeaders } from "@azure/core-rest-pipeline";
2
- const normalizeOpenAIHeaders = (headers) => {
3
- if (!headers) {
4
- return createHttpHeaders();
5
- }
6
- if ("values" in headers && "nulls" in headers) {
7
- const result = normalizeOpenAIHeaders(headers.values);
8
- if (result && headers.nulls instanceof Set && headers.nulls.size > 0) {
9
- for (const nullHeader of headers.nulls) {
10
- result.delete(nullHeader);
11
- }
2
+ /*
3
+ * @param headers the openai defaultHeaders in openai client options
4
+ * @returns HttpHeaders, normalized from various OpenAI header formats
5
+ */
6
+ export const normalizeOpenAIHeaders = (headers) => {
7
+ if (!headers) {
8
+ return createHttpHeaders();
12
9
  }
13
- return result;
14
- }
15
- if (Array.isArray(headers)) {
16
- const rawHeaders = {};
17
- for (const [key, value] of headers) {
18
- if (key && value !== null && value !== void 0) {
19
- const strValue = String(value);
20
- if (rawHeaders[key]) {
21
- rawHeaders[key] = `${rawHeaders[key]}, ${strValue}`;
22
- } else {
23
- rawHeaders[key] = strValue;
10
+ // Handle NullableHeaders (OpenAI internal type with values and nulls properties)
11
+ // Check this first before other object checks
12
+ if ("values" in headers && "nulls" in headers) {
13
+ const result = normalizeOpenAIHeaders(headers.values);
14
+ // Remove headers that were explicitly set to null
15
+ if (result && headers.nulls instanceof Set && headers.nulls.size > 0) {
16
+ for (const nullHeader of headers.nulls) {
17
+ result.delete(nullHeader);
18
+ }
24
19
  }
25
- }
20
+ return result;
26
21
  }
27
- return createHttpHeaders(rawHeaders);
28
- }
29
- if ("forEach" in headers && typeof headers.forEach === "function") {
30
- const rawHeaders = {};
31
- headers.forEach(
32
- (value, key) => {
33
- if (rawHeaders[key]) {
34
- rawHeaders[key] = `${rawHeaders[key]}, ${value}`;
35
- } else {
36
- rawHeaders[key] = value;
22
+ // Handle array format: readonly HeaderValue[][]
23
+ // Check arrays before forEach to avoid catching arrays with the forEach check
24
+ if (Array.isArray(headers)) {
25
+ const rawHeaders = {};
26
+ for (const [key, value] of headers) {
27
+ if (key && value !== null && value !== undefined) {
28
+ const strValue = String(value);
29
+ // Merge multiple headers with the same name using comma separation
30
+ if (rawHeaders[key]) {
31
+ rawHeaders[key] = `${rawHeaders[key]}, ${strValue}`;
32
+ }
33
+ else {
34
+ rawHeaders[key] = strValue;
35
+ }
36
+ }
37
37
  }
38
- }
39
- );
40
- return createHttpHeaders(rawHeaders);
41
- }
42
- if (typeof headers === "object" && headers !== null) {
43
- const rawHeaders = {};
44
- for (const [key, value] of Object.entries(headers)) {
45
- if (value === null || value === void 0) {
46
- continue;
47
- }
48
- if (Array.isArray(value)) {
49
- const filtered = value.filter((v) => v !== null && v !== void 0).map(String);
50
- if (filtered.length > 0) {
51
- rawHeaders[key] = filtered.join(", ");
38
+ return createHttpHeaders(rawHeaders);
39
+ }
40
+ // Handle Headers object (Web API Headers) - use duck typing to avoid Node.js version warnings
41
+ if ("forEach" in headers && typeof headers.forEach === "function") {
42
+ const rawHeaders = {};
43
+ // Type assertion since we've verified it has forEach
44
+ headers.forEach((value, key) => {
45
+ // Merge multiple headers with the same name using comma separation
46
+ if (rawHeaders[key]) {
47
+ rawHeaders[key] = `${rawHeaders[key]}, ${value}`;
48
+ }
49
+ else {
50
+ rawHeaders[key] = value;
51
+ }
52
+ });
53
+ return createHttpHeaders(rawHeaders);
54
+ }
55
+ // Handle Record<string, HeaderValue | readonly HeaderValue[]>
56
+ if (typeof headers === "object" && headers !== null) {
57
+ const rawHeaders = {};
58
+ for (const [key, value] of Object.entries(headers)) {
59
+ if (value === null || value === undefined) {
60
+ continue;
61
+ }
62
+ if (Array.isArray(value)) {
63
+ // Join multiple values with comma (standard HTTP header behavior)
64
+ const filtered = value.filter((v) => v !== null && v !== undefined).map(String);
65
+ if (filtered.length > 0) {
66
+ rawHeaders[key] = filtered.join(", ");
67
+ }
68
+ }
69
+ else {
70
+ rawHeaders[key] = String(value);
71
+ }
52
72
  }
53
- } else {
54
- rawHeaders[key] = String(value);
55
- }
73
+ return createHttpHeaders(rawHeaders);
56
74
  }
57
- return createHttpHeaders(rawHeaders);
58
- }
59
- return createHttpHeaders();
60
- };
61
- const getOpenAIDefaultHeaders = (defaultHeaders, userAgentPrefix) => {
62
- const headers = normalizeOpenAIHeaders(defaultHeaders);
63
- if (!headers.has("User-Agent")) {
64
- const clientIdentifier = userAgentPrefix ? `${userAgentPrefix}-AIProjectClient` : "AIProjectClient";
65
- headers.set("User-Agent", `${clientIdentifier} OpenAI/JS`);
66
- }
67
- return headers;
75
+ return createHttpHeaders();
68
76
  };
69
- export {
70
- getOpenAIDefaultHeaders,
71
- normalizeOpenAIHeaders
77
+ /**
78
+ * Get OpenAI default headers with user-agent set appropriately
79
+ * @param defaultHeaders - The default headers from OpenAI client options
80
+ * @param userAgentPrefix - Optional user agent prefix to prepend from AIProjectClient options
81
+ * @returns HttpHeaders with normalized headers and user-agent set
82
+ */
83
+ export const getOpenAIDefaultHeaders = (defaultHeaders, userAgentPrefix) => {
84
+ const headers = normalizeOpenAIHeaders(defaultHeaders);
85
+ if (!headers.has("User-Agent")) {
86
+ const clientIdentifier = userAgentPrefix
87
+ ? `${userAgentPrefix}-AIProjectClient`
88
+ : "AIProjectClient";
89
+ headers.set("User-Agent", `${clientIdentifier} OpenAI/JS`);
90
+ }
91
+ return headers;
72
92
  };
93
+ //# sourceMappingURL=util.js.map
@@ -1,7 +1 @@
1
- {
2
- "version": 3,
3
- "sources": ["/mnt/vss/_work/1/s/sdk/ai/ai-projects/src/util.ts"],
4
- "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { ClientOptions as OpenAIClientOptions } from \"openai\";\nimport type { HttpHeaders, RawHttpHeadersInput } from \"@azure/core-rest-pipeline\";\nimport { createHttpHeaders } from \"@azure/core-rest-pipeline\";\n\n/*\n * @param headers the openai defaultHeaders in openai client options\n * @returns HttpHeaders, normalized from various OpenAI header formats\n */\nexport const normalizeOpenAIHeaders = (\n headers?: OpenAIClientOptions[\"defaultHeaders\"],\n): HttpHeaders => {\n if (!headers) {\n return createHttpHeaders();\n }\n\n // Handle NullableHeaders (OpenAI internal type with values and nulls properties)\n // Check this first before other object checks\n if (\"values\" in headers && \"nulls\" in headers) {\n const result = normalizeOpenAIHeaders(headers.values as OpenAIClientOptions[\"defaultHeaders\"]);\n\n // Remove headers that were explicitly set to null\n if (result && headers.nulls instanceof Set && headers.nulls.size > 0) {\n for (const nullHeader of headers.nulls) {\n result.delete(nullHeader);\n }\n }\n\n return result;\n }\n\n // Handle array format: readonly HeaderValue[][]\n // Check arrays before forEach to avoid catching arrays with the forEach check\n if (Array.isArray(headers)) {\n const rawHeaders: RawHttpHeadersInput = {};\n for (const [key, value] of headers) {\n if (key && value !== null && value !== undefined) {\n const strValue = String(value);\n // Merge multiple headers with the same name using comma separation\n if (rawHeaders[key]) {\n rawHeaders[key] = `${rawHeaders[key]}, ${strValue}`;\n } else {\n rawHeaders[key] = strValue;\n }\n }\n }\n return createHttpHeaders(rawHeaders);\n }\n\n // Handle Headers object (Web API Headers) - use duck typing to avoid Node.js version warnings\n if (\"forEach\" in headers && typeof headers.forEach === \"function\") {\n const rawHeaders: RawHttpHeadersInput = {};\n // Type assertion since we've verified it has forEach\n (headers as { forEach: (callback: (value: string, key: string) => void) => void }).forEach(\n (value, key) => {\n // Merge multiple headers with the same name using comma separation\n if (rawHeaders[key]) {\n rawHeaders[key] = `${rawHeaders[key]}, ${value}`;\n } else {\n rawHeaders[key] = value;\n }\n },\n );\n return createHttpHeaders(rawHeaders);\n }\n\n // Handle Record<string, HeaderValue | readonly HeaderValue[]>\n if (typeof headers === \"object\" && headers !== null) {\n const rawHeaders: RawHttpHeadersInput = {};\n for (const [key, value] of Object.entries(headers)) {\n if (value === null || value === undefined) {\n continue;\n }\n if (Array.isArray(value)) {\n // Join multiple values with comma (standard HTTP header behavior)\n const filtered = value.filter((v) => v !== null && v !== undefined).map(String);\n if (filtered.length > 0) {\n rawHeaders[key] = filtered.join(\", \");\n }\n } else {\n rawHeaders[key] = String(value);\n }\n }\n return createHttpHeaders(rawHeaders);\n }\n\n return createHttpHeaders();\n};\n\n/**\n * Get OpenAI default headers with user-agent set appropriately\n * @param defaultHeaders - The default headers from OpenAI client options\n * @param userAgentPrefix - Optional user agent prefix to prepend from AIProjectClient options\n * @returns HttpHeaders with normalized headers and user-agent set\n */\nexport const getOpenAIDefaultHeaders = (\n defaultHeaders?: OpenAIClientOptions[\"defaultHeaders\"],\n userAgentPrefix?: string,\n): HttpHeaders => {\n const headers = normalizeOpenAIHeaders(defaultHeaders);\n\n if (!headers.has(\"User-Agent\")) {\n const clientIdentifier = userAgentPrefix\n ? `${userAgentPrefix}-AIProjectClient`\n : \"AIProjectClient\";\n headers.set(\"User-Agent\", `${clientIdentifier} OpenAI/JS`);\n }\n\n return headers;\n};\n"],
5
- "mappings": "AAIA,SAAS,yBAAyB;AAM3B,MAAM,yBAAyB,CACpC,YACgB;AAChB,MAAI,CAAC,SAAS;AACZ,WAAO,kBAAkB;AAAA,EAC3B;AAIA,MAAI,YAAY,WAAW,WAAW,SAAS;AAC7C,UAAM,SAAS,uBAAuB,QAAQ,MAA+C;AAG7F,QAAI,UAAU,QAAQ,iBAAiB,OAAO,QAAQ,MAAM,OAAO,GAAG;AACpE,iBAAW,cAAc,QAAQ,OAAO;AACtC,eAAO,OAAO,UAAU;AAAA,MAC1B;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAIA,MAAI,MAAM,QAAQ,OAAO,GAAG;AAC1B,UAAM,aAAkC,CAAC;AACzC,eAAW,CAAC,KAAK,KAAK,KAAK,SAAS;AAClC,UAAI,OAAO,UAAU,QAAQ,UAAU,QAAW;AAChD,cAAM,WAAW,OAAO,KAAK;AAE7B,YAAI,WAAW,GAAG,GAAG;AACnB,qBAAW,GAAG,IAAI,GAAG,WAAW,GAAG,CAAC,KAAK,QAAQ;AAAA,QACnD,OAAO;AACL,qBAAW,GAAG,IAAI;AAAA,QACpB;AAAA,MACF;AAAA,IACF;AACA,WAAO,kBAAkB,UAAU;AAAA,EACrC;AAGA,MAAI,aAAa,WAAW,OAAO,QAAQ,YAAY,YAAY;AACjE,UAAM,aAAkC,CAAC;AAEzC,IAAC,QAAkF;AAAA,MACjF,CAAC,OAAO,QAAQ;AAEd,YAAI,WAAW,GAAG,GAAG;AACnB,qBAAW,GAAG,IAAI,GAAG,WAAW,GAAG,CAAC,KAAK,KAAK;AAAA,QAChD,OAAO;AACL,qBAAW,GAAG,IAAI;AAAA,QACpB;AAAA,MACF;AAAA,IACF;AACA,WAAO,kBAAkB,UAAU;AAAA,EACrC;AAGA,MAAI,OAAO,YAAY,YAAY,YAAY,MAAM;AACnD,UAAM,aAAkC,CAAC;AACzC,eAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,OAAO,GAAG;AAClD,UAAI,UAAU,QAAQ,UAAU,QAAW;AACzC;AAAA,MACF;AACA,UAAI,MAAM,QAAQ,KAAK,GAAG;AAExB,cAAM,WAAW,MAAM,OAAO,CAAC,MAAM,MAAM,QAAQ,MAAM,MAAS,EAAE,IAAI,MAAM;AAC9E,YAAI,SAAS,SAAS,GAAG;AACvB,qBAAW,GAAG,IAAI,SAAS,KAAK,IAAI;AAAA,QACtC;AAAA,MACF,OAAO;AACL,mBAAW,GAAG,IAAI,OAAO,KAAK;AAAA,MAChC;AAAA,IACF;AACA,WAAO,kBAAkB,UAAU;AAAA,EACrC;AAEA,SAAO,kBAAkB;AAC3B;AAQO,MAAM,0BAA0B,CACrC,gBACA,oBACgB;AAChB,QAAM,UAAU,uBAAuB,cAAc;AAErD,MAAI,CAAC,QAAQ,IAAI,YAAY,GAAG;AAC9B,UAAM,mBAAmB,kBACrB,GAAG,eAAe,qBAClB;AACJ,YAAQ,IAAI,cAAc,GAAG,gBAAgB,YAAY;AAAA,EAC3D;AAEA,SAAO;AACT;",
6
- "names": []
7
- }
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { ClientOptions as OpenAIClientOptions } from \"openai\";\nimport type { HttpHeaders, RawHttpHeadersInput } from \"@azure/core-rest-pipeline\";\nimport { createHttpHeaders } from \"@azure/core-rest-pipeline\";\n\n/*\n * @param headers the openai defaultHeaders in openai client options\n * @returns HttpHeaders, normalized from various OpenAI header formats\n */\nexport const normalizeOpenAIHeaders = (\n headers?: OpenAIClientOptions[\"defaultHeaders\"],\n): HttpHeaders => {\n if (!headers) {\n return createHttpHeaders();\n }\n\n // Handle NullableHeaders (OpenAI internal type with values and nulls properties)\n // Check this first before other object checks\n if (\"values\" in headers && \"nulls\" in headers) {\n const result = normalizeOpenAIHeaders(headers.values as OpenAIClientOptions[\"defaultHeaders\"]);\n\n // Remove headers that were explicitly set to null\n if (result && headers.nulls instanceof Set && headers.nulls.size > 0) {\n for (const nullHeader of headers.nulls) {\n result.delete(nullHeader);\n }\n }\n\n return result;\n }\n\n // Handle array format: readonly HeaderValue[][]\n // Check arrays before forEach to avoid catching arrays with the forEach check\n if (Array.isArray(headers)) {\n const rawHeaders: RawHttpHeadersInput = {};\n for (const [key, value] of headers) {\n if (key && value !== null && value !== undefined) {\n const strValue = String(value);\n // Merge multiple headers with the same name using comma separation\n if (rawHeaders[key]) {\n rawHeaders[key] = `${rawHeaders[key]}, ${strValue}`;\n } else {\n rawHeaders[key] = strValue;\n }\n }\n }\n return createHttpHeaders(rawHeaders);\n }\n\n // Handle Headers object (Web API Headers) - use duck typing to avoid Node.js version warnings\n if (\"forEach\" in headers && typeof headers.forEach === \"function\") {\n const rawHeaders: RawHttpHeadersInput = {};\n // Type assertion since we've verified it has forEach\n (headers as { forEach: (callback: (value: string, key: string) => void) => void }).forEach(\n (value, key) => {\n // Merge multiple headers with the same name using comma separation\n if (rawHeaders[key]) {\n rawHeaders[key] = `${rawHeaders[key]}, ${value}`;\n } else {\n rawHeaders[key] = value;\n }\n },\n );\n return createHttpHeaders(rawHeaders);\n }\n\n // Handle Record<string, HeaderValue | readonly HeaderValue[]>\n if (typeof headers === \"object\" && headers !== null) {\n const rawHeaders: RawHttpHeadersInput = {};\n for (const [key, value] of Object.entries(headers)) {\n if (value === null || value === undefined) {\n continue;\n }\n if (Array.isArray(value)) {\n // Join multiple values with comma (standard HTTP header behavior)\n const filtered = value.filter((v) => v !== null && v !== undefined).map(String);\n if (filtered.length > 0) {\n rawHeaders[key] = filtered.join(\", \");\n }\n } else {\n rawHeaders[key] = String(value);\n }\n }\n return createHttpHeaders(rawHeaders);\n }\n\n return createHttpHeaders();\n};\n\n/**\n * Get OpenAI default headers with user-agent set appropriately\n * @param defaultHeaders - The default headers from OpenAI client options\n * @param userAgentPrefix - Optional user agent prefix to prepend from AIProjectClient options\n * @returns HttpHeaders with normalized headers and user-agent set\n */\nexport const getOpenAIDefaultHeaders = (\n defaultHeaders?: OpenAIClientOptions[\"defaultHeaders\"],\n userAgentPrefix?: string,\n): HttpHeaders => {\n const headers = normalizeOpenAIHeaders(defaultHeaders);\n\n if (!headers.has(\"User-Agent\")) {\n const clientIdentifier = userAgentPrefix\n ? `${userAgentPrefix}-AIProjectClient`\n : \"AIProjectClient\";\n headers.set(\"User-Agent\", `${clientIdentifier} OpenAI/JS`);\n }\n\n return headers;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../../../../src/api/datasets/operations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../../../../src/api/datasets/operations.ts"],"names":[],"mappings":"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"}