@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
@@ -7,6 +7,7 @@ import { buildPagedAsyncIterator } from "../../static-helpers/pagingHelpers.js";
7
7
  import { expandUrlTemplate } from "../../static-helpers/urlTemplate.js";
8
8
  import { createRestError, operationOptionsToRequestParameters } from "@azure-rest/core-client";
9
9
  import { ContainerClient } from "@azure/storage-blob";
10
+ import { logger } from "../../logger.js";
10
11
  export function _getCredentialsSend(context, name, version, options = { requestOptions: {} }) {
11
12
  const path = expandUrlTemplate("/datasets/{name}/versions/{version}/credentials{?api-version}", {
12
13
  name: name,
@@ -219,12 +220,12 @@ async function createDatasetAndGetItsContainer(context, name, version, options)
219
220
  throw new Error("Blob URI is not present or empty");
220
221
  }
221
222
  // Optional debug logging
222
- console.debug(`[createDatasetAndGetItsContainer] pendingUploadResponse.pendingUploadId = ${pendingUploadResponse.pendingUploadId}`);
223
- console.debug(`[createDatasetAndGetItsContainer] pendingUploadResponse.pendingUploadType = ${pendingUploadResponse.pendingUploadType}`);
224
- console.debug(`[createDatasetAndGetItsContainer] blobReference.blobUri = ${blobReference.blobUri}`);
225
- console.debug(`[createDatasetAndGetItsContainer] blobReference.storageAccountArmId = ${blobReference.storageAccountArmId}`);
226
- console.debug(`[createDatasetAndGetItsContainer] blobReference.credential.sasUri = ${blobReference.credential.sasUri}`);
227
- console.debug(`[createDatasetAndGetItsContainer] blobReference.credential.type = ${blobReference.credential.type}`);
223
+ logger.verbose(`[createDatasetAndGetItsContainer] pendingUploadResponse.pendingUploadId = ${pendingUploadResponse.pendingUploadId}`);
224
+ logger.verbose(`[createDatasetAndGetItsContainer] pendingUploadResponse.pendingUploadType = ${pendingUploadResponse.pendingUploadType}`);
225
+ logger.verbose(`[createDatasetAndGetItsContainer] blobReference.blobUri = ${blobReference.blobUri}`);
226
+ logger.verbose(`[createDatasetAndGetItsContainer] blobReference.storageAccountArmId = ${blobReference.storageAccountArmId}`);
227
+ logger.verbose(`[createDatasetAndGetItsContainer] blobReference.credential.sasUri = ${blobReference.credential.sasUri}`);
228
+ logger.verbose(`[createDatasetAndGetItsContainer] blobReference.credential.type = ${blobReference.credential.type}`);
228
229
  // Create container client from the blob URI (which includes the SAS token)
229
230
  const containerClient = new ContainerClient(blobReference.credential.sasUri);
230
231
  const pipeline = containerClient["storageClientContext"].pipeline;
@@ -306,13 +307,13 @@ export async function uploadFolder(context, name, version, folderPath, options)
306
307
  for (const filePath of filteredFiles) {
307
308
  // Create blob name as relative path from the base folder
308
309
  const relativePath = nodePath.relative(folderPath, filePath).split(nodePath.sep).join("/");
309
- console.debug(`[uploadFolderAndCreate] Start uploading file '${filePath}' as blob '${relativePath}'`);
310
+ logger.verbose(`[uploadFolderAndCreate] Start uploading file '${filePath}' as blob '${relativePath}'`);
310
311
  // Get a block blob client for the relative path
311
312
  const blobClient = containerClient.getBlockBlobClient(relativePath);
312
313
  // Upload the file using a readable stream for better performance
313
314
  const fileStream = fs.createReadStream(filePath);
314
315
  await blobClient.uploadStream(fileStream);
315
- console.debug(`[uploadFolderAndCreate] Done uploading file '${filePath}' as blob '${relativePath}'`);
316
+ logger.verbose(`[uploadFolderAndCreate] Done uploading file '${filePath}' as blob '${relativePath}'`);
316
317
  }
317
318
  // Create dataset version that references this folder
318
319
  const datasetVersion = await createOrUpdate(context, name, outputVersion, {
@@ -1 +1 @@
1
- {"version":3,"file":"operations.js","sourceRoot":"","sources":["../../../../src/api/datasets/operations.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport fs from \"node:fs\";\nimport nodePath from \"node:path\";\nimport type { DatasetUploadInternalOptions, AIProjectContext as Client } from \"../index.js\";\nimport type {\n _PagedDatasetVersion,\n DatasetVersionUnion,\n PendingUploadRequest,\n PendingUploadResponse,\n DatasetCredential,\n} from \"../../models/models.js\";\nimport {\n _pagedDatasetVersionDeserializer,\n datasetVersionUnionSerializer,\n datasetVersionUnionDeserializer,\n pendingUploadRequestSerializer,\n pendingUploadResponseDeserializer,\n datasetCredentialDeserializer,\n} from \"../../models/models.js\";\nimport type { PagedAsyncIterableIterator } from \"@azure/core-paging\";\nimport { buildPagedAsyncIterator } from \"../../static-helpers/pagingHelpers.js\";\nimport { expandUrlTemplate } from \"../../static-helpers/urlTemplate.js\";\nimport type {\n DatasetsGetCredentialsOptionalParams,\n DatasetsPendingUploadOptionalParams,\n DatasetsCreateOrUpdateOptionalParams,\n DatasetsDeleteOptionalParams,\n DatasetsGetOptionalParams,\n DatasetsListOptionalParams,\n DatasetsListVersionsOptionalParams,\n} from \"./options.js\";\nimport type { StreamableMethod, PathUncheckedResponse } from \"@azure-rest/core-client\";\nimport { createRestError, operationOptionsToRequestParameters } from \"@azure-rest/core-client\";\nimport { ContainerClient } from \"@azure/storage-blob\";\nexport function _getCredentialsSend(\n context: Client,\n name: string,\n version: string,\n options: DatasetsGetCredentialsOptionalParams = { requestOptions: {} },\n): StreamableMethod {\n const path = expandUrlTemplate(\n \"/datasets/{name}/versions/{version}/credentials{?api-version}\",\n {\n name: name,\n version: version,\n \"api-version\": context.apiVersion,\n },\n {\n allowReserved: options?.requestOptions?.skipUrlEncoding,\n },\n );\n return context.path(path).post({\n ...operationOptionsToRequestParameters(options),\n headers: {\n accept: \"application/json\",\n ...options.requestOptions?.headers,\n },\n });\n}\n\nexport async function _getCredentialsDeserialize(\n result: PathUncheckedResponse,\n): Promise<DatasetCredential> {\n const expectedStatuses = [\"200\"];\n if (!expectedStatuses.includes(result.status)) {\n throw createRestError(result);\n }\n\n return datasetCredentialDeserializer(result.body);\n}\n\n/** Get the SAS credential to access the storage account associated with a Dataset version. */\nexport async function getCredentials(\n context: Client,\n name: string,\n version: string,\n options: DatasetsGetCredentialsOptionalParams = { requestOptions: {} },\n): Promise<DatasetCredential> {\n const result = await _getCredentialsSend(context, name, version, options);\n return _getCredentialsDeserialize(result);\n}\n\nexport function _pendingUploadSend(\n context: Client,\n name: string,\n version: string,\n pendingUploadRequest: PendingUploadRequest,\n options: DatasetsPendingUploadOptionalParams = { requestOptions: {} },\n): StreamableMethod {\n const path = expandUrlTemplate(\n \"/datasets/{name}/versions/{version}/startPendingUpload{?api-version}\",\n {\n name: name,\n version: version,\n \"api-version\": context.apiVersion,\n },\n {\n allowReserved: options?.requestOptions?.skipUrlEncoding,\n },\n );\n return context.path(path).post({\n ...operationOptionsToRequestParameters(options),\n contentType: \"application/json\",\n headers: {\n accept: \"application/json\",\n ...options.requestOptions?.headers,\n },\n body: pendingUploadRequestSerializer(pendingUploadRequest),\n });\n}\n\nexport async function _pendingUploadDeserialize(\n result: PathUncheckedResponse,\n): Promise<PendingUploadResponse> {\n const expectedStatuses = [\"200\"];\n if (!expectedStatuses.includes(result.status)) {\n throw createRestError(result);\n }\n\n return pendingUploadResponseDeserializer(result.body);\n}\n\n/** Start a new or get an existing pending upload of a dataset for a specific version. */\nexport async function pendingUpload(\n context: Client,\n name: string,\n version: string,\n pendingUploadRequest: PendingUploadRequest,\n options: DatasetsPendingUploadOptionalParams = { requestOptions: {} },\n): Promise<PendingUploadResponse> {\n const result = await _pendingUploadSend(context, name, version, pendingUploadRequest, options);\n return _pendingUploadDeserialize(result);\n}\n\nexport function _createOrUpdateSend(\n context: Client,\n name: string,\n version: string,\n datasetVersion: DatasetVersionUnion,\n options: DatasetsCreateOrUpdateOptionalParams = { requestOptions: {} },\n): StreamableMethod {\n const path = expandUrlTemplate(\n \"/datasets/{name}/versions/{version}{?api-version}\",\n {\n name: name,\n version: version,\n \"api-version\": context.apiVersion,\n },\n {\n allowReserved: options?.requestOptions?.skipUrlEncoding,\n },\n );\n return context.path(path).patch({\n ...operationOptionsToRequestParameters(options),\n contentType: \"application/merge-patch+json\",\n headers: {\n accept: \"application/json\",\n ...options.requestOptions?.headers,\n },\n body: datasetVersionUnionSerializer(datasetVersion),\n });\n}\n\nexport async function _createOrUpdateDeserialize(\n result: PathUncheckedResponse,\n): Promise<DatasetVersionUnion> {\n const expectedStatuses = [\"201\", \"200\"];\n if (!expectedStatuses.includes(result.status)) {\n throw createRestError(result);\n }\n\n return datasetVersionUnionDeserializer(result.body);\n}\n\n/** Create a new or update an existing DatasetVersion with the given version id */\nexport async function createOrUpdate(\n context: Client,\n name: string,\n version: string,\n datasetVersion: DatasetVersionUnion,\n options: DatasetsCreateOrUpdateOptionalParams = { requestOptions: {} },\n): Promise<DatasetVersionUnion> {\n const result = await _createOrUpdateSend(context, name, version, datasetVersion, options);\n return _createOrUpdateDeserialize(result);\n}\n\nexport function _$deleteSend(\n context: Client,\n name: string,\n version: string,\n options: DatasetsDeleteOptionalParams = { requestOptions: {} },\n): StreamableMethod {\n const path = expandUrlTemplate(\n \"/datasets/{name}/versions/{version}{?api-version}\",\n {\n name: name,\n version: version,\n \"api-version\": context.apiVersion,\n },\n {\n allowReserved: options?.requestOptions?.skipUrlEncoding,\n },\n );\n return context.path(path).delete({ ...operationOptionsToRequestParameters(options) });\n}\n\nexport async function _$deleteDeserialize(result: PathUncheckedResponse): Promise<void> {\n const expectedStatuses = [\"204\"];\n if (!expectedStatuses.includes(result.status)) {\n throw createRestError(result);\n }\n\n return;\n}\n\n/** Delete the specific version of the DatasetVersion. The service returns 204 No Content if the DatasetVersion was deleted successfully or if the DatasetVersion does not exist. */\nexport async function $delete(\n context: Client,\n name: string,\n version: string,\n options: DatasetsDeleteOptionalParams = { requestOptions: {} },\n): Promise<void> {\n const result = await _$deleteSend(context, name, version, options);\n return _$deleteDeserialize(result);\n}\n\nexport function _getSend(\n context: Client,\n name: string,\n version: string,\n options: DatasetsGetOptionalParams = { requestOptions: {} },\n): StreamableMethod {\n const path = expandUrlTemplate(\n \"/datasets/{name}/versions/{version}{?api-version}\",\n {\n name: name,\n version: version,\n \"api-version\": context.apiVersion,\n },\n {\n allowReserved: options?.requestOptions?.skipUrlEncoding,\n },\n );\n return context.path(path).get({\n ...operationOptionsToRequestParameters(options),\n headers: {\n accept: \"application/json\",\n ...options.requestOptions?.headers,\n },\n });\n}\n\nexport async function _getDeserialize(result: PathUncheckedResponse): Promise<DatasetVersionUnion> {\n const expectedStatuses = [\"200\"];\n if (!expectedStatuses.includes(result.status)) {\n throw createRestError(result);\n }\n\n return datasetVersionUnionDeserializer(result.body);\n}\n\n/** Get the specific version of the DatasetVersion. The service returns 404 Not Found error if the DatasetVersion does not exist. */\nexport async function get(\n context: Client,\n name: string,\n version: string,\n options: DatasetsGetOptionalParams = { requestOptions: {} },\n): Promise<DatasetVersionUnion> {\n const result = await _getSend(context, name, version, options);\n return _getDeserialize(result);\n}\n\nexport function _listSend(\n context: Client,\n options: DatasetsListOptionalParams = { requestOptions: {} },\n): StreamableMethod {\n const path = expandUrlTemplate(\n \"/datasets{?api-version}\",\n {\n \"api-version\": context.apiVersion,\n },\n {\n allowReserved: options?.requestOptions?.skipUrlEncoding,\n },\n );\n return context.path(path).get({\n ...operationOptionsToRequestParameters(options),\n headers: {\n accept: \"application/json\",\n ...options.requestOptions?.headers,\n },\n });\n}\n\nexport async function _listDeserialize(\n result: PathUncheckedResponse,\n): Promise<_PagedDatasetVersion> {\n const expectedStatuses = [\"200\"];\n if (!expectedStatuses.includes(result.status)) {\n throw createRestError(result);\n }\n\n return _pagedDatasetVersionDeserializer(result.body);\n}\n\n/** List the latest version of each DatasetVersion */\nexport function list(\n context: Client,\n options: DatasetsListOptionalParams = { requestOptions: {} },\n): PagedAsyncIterableIterator<DatasetVersionUnion> {\n return buildPagedAsyncIterator(\n context,\n () => _listSend(context, options),\n _listDeserialize,\n [\"200\"],\n { itemName: \"value\", nextLinkName: \"nextLink\", apiVersion: context.apiVersion },\n );\n}\n\nexport function _listVersionsSend(\n context: Client,\n name: string,\n options: DatasetsListVersionsOptionalParams = { requestOptions: {} },\n): StreamableMethod {\n const path = expandUrlTemplate(\n \"/datasets/{name}/versions{?api-version}\",\n {\n name: name,\n \"api-version\": context.apiVersion,\n },\n {\n allowReserved: options?.requestOptions?.skipUrlEncoding,\n },\n );\n return context.path(path).get({\n ...operationOptionsToRequestParameters(options),\n headers: {\n accept: \"application/json\",\n ...options.requestOptions?.headers,\n },\n });\n}\n\nexport async function _listVersionsDeserialize(\n result: PathUncheckedResponse,\n): Promise<_PagedDatasetVersion> {\n const expectedStatuses = [\"200\"];\n if (!expectedStatuses.includes(result.status)) {\n throw createRestError(result);\n }\n\n return _pagedDatasetVersionDeserializer(result.body);\n}\n\n/** List all versions of the given DatasetVersion */\nexport function listVersions(\n context: Client,\n name: string,\n options: DatasetsListVersionsOptionalParams = { requestOptions: {} },\n): PagedAsyncIterableIterator<DatasetVersionUnion> {\n return buildPagedAsyncIterator(\n context,\n () => _listVersionsSend(context, name, options),\n _listVersionsDeserialize,\n [\"200\"],\n { itemName: \"value\", nextLinkName: \"nextLink\", apiVersion: context.apiVersion },\n );\n}\n\n// Internal helper method to create a new dataset and return a ContainerClient from azure-storage-blob package, to the dataset's blob storage.\nasync function createDatasetAndGetItsContainer(\n context: Client,\n name: string,\n version: string,\n options?: DatasetUploadInternalOptions,\n): Promise<{ containerClient: ContainerClient; version: string }> {\n const { connectionName, projectOptions = {} } = options || {};\n // Start a pending upload to get the container URL with SAS token\n const pendingUploadResponse = await pendingUpload(context, name, version, {\n pendingUploadType: \"BlobReference\",\n connectionName,\n } as PendingUploadRequest);\n\n const blobReference = pendingUploadResponse.blobReference;\n // Validate the response\n if (!blobReference) {\n throw new Error(\"Blob reference for consumption is not present\");\n }\n\n if (!blobReference.credential?.type) {\n throw new Error(\"Credential type is not present\");\n }\n\n if (blobReference.credential.type !== \"SAS\") {\n throw new Error(\"Credential type is not SAS\");\n }\n\n if (!blobReference.blobUri) {\n throw new Error(\"Blob URI is not present or empty\");\n }\n\n // Optional debug logging\n console.debug(\n `[createDatasetAndGetItsContainer] pendingUploadResponse.pendingUploadId = ${pendingUploadResponse.pendingUploadId}`,\n );\n console.debug(\n `[createDatasetAndGetItsContainer] pendingUploadResponse.pendingUploadType = ${pendingUploadResponse.pendingUploadType}`,\n );\n console.debug(\n `[createDatasetAndGetItsContainer] blobReference.blobUri = ${blobReference.blobUri}`,\n );\n console.debug(\n `[createDatasetAndGetItsContainer] blobReference.storageAccountArmId = ${blobReference.storageAccountArmId}`,\n );\n console.debug(\n `[createDatasetAndGetItsContainer] blobReference.credential.sasUri = ${blobReference.credential.sasUri}`,\n );\n console.debug(\n `[createDatasetAndGetItsContainer] blobReference.credential.type = ${blobReference.credential.type}`,\n );\n\n // Create container client from the blob URI (which includes the SAS token)\n const containerClient = new ContainerClient(blobReference.credential.sasUri);\n\n const pipeline = containerClient[\"storageClientContext\"].pipeline;\n for (const { policy } of projectOptions.additionalPolicies ?? []) {\n pipeline.addPolicy(policy, { afterPhase: \"Sign\" });\n }\n\n return {\n containerClient,\n version,\n };\n}\n\nexport async function uploadFile(\n context: Client,\n name: string,\n version: string,\n filePath: string,\n options?: DatasetUploadInternalOptions,\n): Promise<DatasetVersionUnion> {\n // if file does not exist\n\n const fileExists = fs.existsSync(filePath);\n if (!fileExists) {\n throw new Error(`File does not exist at path: ${filePath}`);\n }\n // Check if the file is a directory\n const isDirectory = fs.lstatSync(filePath).isDirectory();\n if (isDirectory) {\n throw new Error(`The provided file is actually a folder. Use method uploadFolder instead`);\n }\n\n const { containerClient, version: outputVersion } = await createDatasetAndGetItsContainer(\n context,\n name,\n version,\n options,\n );\n // file name as blob name\n const blobName = nodePath.basename(filePath);\n const blockBlobClient = containerClient.getBlockBlobClient(blobName);\n await blockBlobClient.uploadStream(fs.createReadStream(filePath));\n\n const datasetVersion = await createOrUpdate(context, name, outputVersion, {\n name: name,\n version: outputVersion,\n type: \"uri_file\",\n dataUri: blockBlobClient.url,\n });\n return datasetVersion;\n}\n\nexport async function uploadFolder(\n context: Client,\n name: string,\n version: string,\n folderPath: string,\n options?: DatasetUploadInternalOptions,\n): Promise<DatasetVersionUnion> {\n // Check if the folder exists\n const folderExists = fs.existsSync(folderPath);\n if (!folderExists) {\n throw new Error(`Folder does not exist at path: ${folderPath}`);\n }\n // Check if the folder is a file\n const isFile = fs.lstatSync(folderPath).isFile();\n if (isFile) {\n throw new Error(`The provided path is actually a file. Use method uploadFile instead`);\n }\n\n const { containerClient, version: outputVersion } = await createDatasetAndGetItsContainer(\n context,\n name,\n version,\n options,\n );\n\n // Helper function to recursively get all files in a directory\n async function getAllFiles(dir: string, fileList: string[] = []): Promise<string[]> {\n const files = await fs.promises.readdir(dir);\n\n for (const file of files) {\n const filePath = `${dir}/${file}`;\n const stat = await fs.promises.lstat(filePath);\n\n if (stat.isDirectory()) {\n await getAllFiles(filePath, fileList);\n } else {\n fileList.push(filePath);\n }\n }\n\n return fileList;\n }\n\n // Get all files in the folder\n const allFiles = await getAllFiles(folderPath);\n let filteredFiles = allFiles;\n if (options?.filePattern) {\n try {\n const filePattern = new RegExp(options.filePattern);\n filteredFiles = allFiles.filter((file) => filePattern.test(file));\n } catch {\n // If regex pattern is invalid, ignore the pattern and upload all files\n }\n }\n\n if (filteredFiles.length === 0) {\n throw new Error(\"The provided folder is empty.\");\n }\n\n // Upload each file to blob storage while maintaining relative paths\n for (const filePath of filteredFiles) {\n // Create blob name as relative path from the base folder\n const relativePath = nodePath.relative(folderPath, filePath).split(nodePath.sep).join(\"/\");\n\n console.debug(\n `[uploadFolderAndCreate] Start uploading file '${filePath}' as blob '${relativePath}'`,\n );\n\n // Get a block blob client for the relative path\n const blobClient = containerClient.getBlockBlobClient(relativePath);\n\n // Upload the file using a readable stream for better performance\n const fileStream = fs.createReadStream(filePath);\n await blobClient.uploadStream(fileStream);\n console.debug(\n `[uploadFolderAndCreate] Done uploading file '${filePath}' as blob '${relativePath}'`,\n );\n }\n\n // Create dataset version that references this folder\n const datasetVersion = await createOrUpdate(context, name, outputVersion, {\n name: name,\n version: outputVersion,\n type: \"uri_folder\",\n dataUri: containerClient.url,\n });\n\n return datasetVersion;\n}\n"]}
1
+ {"version":3,"file":"operations.js","sourceRoot":"","sources":["../../../../src/api/datasets/operations.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport fs from \"node:fs\";\nimport nodePath from \"node:path\";\nimport type { DatasetUploadInternalOptions, AIProjectContext as Client } from \"../index.js\";\nimport type {\n _PagedDatasetVersion,\n DatasetVersionUnion,\n PendingUploadRequest,\n PendingUploadResponse,\n DatasetCredential,\n} from \"../../models/models.js\";\nimport {\n _pagedDatasetVersionDeserializer,\n datasetVersionUnionSerializer,\n datasetVersionUnionDeserializer,\n pendingUploadRequestSerializer,\n pendingUploadResponseDeserializer,\n datasetCredentialDeserializer,\n} from \"../../models/models.js\";\nimport type { PagedAsyncIterableIterator } from \"@azure/core-paging\";\nimport { buildPagedAsyncIterator } from \"../../static-helpers/pagingHelpers.js\";\nimport { expandUrlTemplate } from \"../../static-helpers/urlTemplate.js\";\nimport type {\n DatasetsGetCredentialsOptionalParams,\n DatasetsPendingUploadOptionalParams,\n DatasetsCreateOrUpdateOptionalParams,\n DatasetsDeleteOptionalParams,\n DatasetsGetOptionalParams,\n DatasetsListOptionalParams,\n DatasetsListVersionsOptionalParams,\n} from \"./options.js\";\nimport type { StreamableMethod, PathUncheckedResponse } from \"@azure-rest/core-client\";\nimport { createRestError, operationOptionsToRequestParameters } from \"@azure-rest/core-client\";\nimport { ContainerClient } from \"@azure/storage-blob\";\nimport { logger } from \"../../logger.js\";\nexport function _getCredentialsSend(\n context: Client,\n name: string,\n version: string,\n options: DatasetsGetCredentialsOptionalParams = { requestOptions: {} },\n): StreamableMethod {\n const path = expandUrlTemplate(\n \"/datasets/{name}/versions/{version}/credentials{?api-version}\",\n {\n name: name,\n version: version,\n \"api-version\": context.apiVersion,\n },\n {\n allowReserved: options?.requestOptions?.skipUrlEncoding,\n },\n );\n return context.path(path).post({\n ...operationOptionsToRequestParameters(options),\n headers: {\n accept: \"application/json\",\n ...options.requestOptions?.headers,\n },\n });\n}\n\nexport async function _getCredentialsDeserialize(\n result: PathUncheckedResponse,\n): Promise<DatasetCredential> {\n const expectedStatuses = [\"200\"];\n if (!expectedStatuses.includes(result.status)) {\n throw createRestError(result);\n }\n\n return datasetCredentialDeserializer(result.body);\n}\n\n/** Get the SAS credential to access the storage account associated with a Dataset version. */\nexport async function getCredentials(\n context: Client,\n name: string,\n version: string,\n options: DatasetsGetCredentialsOptionalParams = { requestOptions: {} },\n): Promise<DatasetCredential> {\n const result = await _getCredentialsSend(context, name, version, options);\n return _getCredentialsDeserialize(result);\n}\n\nexport function _pendingUploadSend(\n context: Client,\n name: string,\n version: string,\n pendingUploadRequest: PendingUploadRequest,\n options: DatasetsPendingUploadOptionalParams = { requestOptions: {} },\n): StreamableMethod {\n const path = expandUrlTemplate(\n \"/datasets/{name}/versions/{version}/startPendingUpload{?api-version}\",\n {\n name: name,\n version: version,\n \"api-version\": context.apiVersion,\n },\n {\n allowReserved: options?.requestOptions?.skipUrlEncoding,\n },\n );\n return context.path(path).post({\n ...operationOptionsToRequestParameters(options),\n contentType: \"application/json\",\n headers: {\n accept: \"application/json\",\n ...options.requestOptions?.headers,\n },\n body: pendingUploadRequestSerializer(pendingUploadRequest),\n });\n}\n\nexport async function _pendingUploadDeserialize(\n result: PathUncheckedResponse,\n): Promise<PendingUploadResponse> {\n const expectedStatuses = [\"200\"];\n if (!expectedStatuses.includes(result.status)) {\n throw createRestError(result);\n }\n\n return pendingUploadResponseDeserializer(result.body);\n}\n\n/** Start a new or get an existing pending upload of a dataset for a specific version. */\nexport async function pendingUpload(\n context: Client,\n name: string,\n version: string,\n pendingUploadRequest: PendingUploadRequest,\n options: DatasetsPendingUploadOptionalParams = { requestOptions: {} },\n): Promise<PendingUploadResponse> {\n const result = await _pendingUploadSend(context, name, version, pendingUploadRequest, options);\n return _pendingUploadDeserialize(result);\n}\n\nexport function _createOrUpdateSend(\n context: Client,\n name: string,\n version: string,\n datasetVersion: DatasetVersionUnion,\n options: DatasetsCreateOrUpdateOptionalParams = { requestOptions: {} },\n): StreamableMethod {\n const path = expandUrlTemplate(\n \"/datasets/{name}/versions/{version}{?api-version}\",\n {\n name: name,\n version: version,\n \"api-version\": context.apiVersion,\n },\n {\n allowReserved: options?.requestOptions?.skipUrlEncoding,\n },\n );\n return context.path(path).patch({\n ...operationOptionsToRequestParameters(options),\n contentType: \"application/merge-patch+json\",\n headers: {\n accept: \"application/json\",\n ...options.requestOptions?.headers,\n },\n body: datasetVersionUnionSerializer(datasetVersion),\n });\n}\n\nexport async function _createOrUpdateDeserialize(\n result: PathUncheckedResponse,\n): Promise<DatasetVersionUnion> {\n const expectedStatuses = [\"201\", \"200\"];\n if (!expectedStatuses.includes(result.status)) {\n throw createRestError(result);\n }\n\n return datasetVersionUnionDeserializer(result.body);\n}\n\n/** Create a new or update an existing DatasetVersion with the given version id */\nexport async function createOrUpdate(\n context: Client,\n name: string,\n version: string,\n datasetVersion: DatasetVersionUnion,\n options: DatasetsCreateOrUpdateOptionalParams = { requestOptions: {} },\n): Promise<DatasetVersionUnion> {\n const result = await _createOrUpdateSend(context, name, version, datasetVersion, options);\n return _createOrUpdateDeserialize(result);\n}\n\nexport function _$deleteSend(\n context: Client,\n name: string,\n version: string,\n options: DatasetsDeleteOptionalParams = { requestOptions: {} },\n): StreamableMethod {\n const path = expandUrlTemplate(\n \"/datasets/{name}/versions/{version}{?api-version}\",\n {\n name: name,\n version: version,\n \"api-version\": context.apiVersion,\n },\n {\n allowReserved: options?.requestOptions?.skipUrlEncoding,\n },\n );\n return context.path(path).delete({ ...operationOptionsToRequestParameters(options) });\n}\n\nexport async function _$deleteDeserialize(result: PathUncheckedResponse): Promise<void> {\n const expectedStatuses = [\"204\"];\n if (!expectedStatuses.includes(result.status)) {\n throw createRestError(result);\n }\n\n return;\n}\n\n/** Delete the specific version of the DatasetVersion. The service returns 204 No Content if the DatasetVersion was deleted successfully or if the DatasetVersion does not exist. */\nexport async function $delete(\n context: Client,\n name: string,\n version: string,\n options: DatasetsDeleteOptionalParams = { requestOptions: {} },\n): Promise<void> {\n const result = await _$deleteSend(context, name, version, options);\n return _$deleteDeserialize(result);\n}\n\nexport function _getSend(\n context: Client,\n name: string,\n version: string,\n options: DatasetsGetOptionalParams = { requestOptions: {} },\n): StreamableMethod {\n const path = expandUrlTemplate(\n \"/datasets/{name}/versions/{version}{?api-version}\",\n {\n name: name,\n version: version,\n \"api-version\": context.apiVersion,\n },\n {\n allowReserved: options?.requestOptions?.skipUrlEncoding,\n },\n );\n return context.path(path).get({\n ...operationOptionsToRequestParameters(options),\n headers: {\n accept: \"application/json\",\n ...options.requestOptions?.headers,\n },\n });\n}\n\nexport async function _getDeserialize(result: PathUncheckedResponse): Promise<DatasetVersionUnion> {\n const expectedStatuses = [\"200\"];\n if (!expectedStatuses.includes(result.status)) {\n throw createRestError(result);\n }\n\n return datasetVersionUnionDeserializer(result.body);\n}\n\n/** Get the specific version of the DatasetVersion. The service returns 404 Not Found error if the DatasetVersion does not exist. */\nexport async function get(\n context: Client,\n name: string,\n version: string,\n options: DatasetsGetOptionalParams = { requestOptions: {} },\n): Promise<DatasetVersionUnion> {\n const result = await _getSend(context, name, version, options);\n return _getDeserialize(result);\n}\n\nexport function _listSend(\n context: Client,\n options: DatasetsListOptionalParams = { requestOptions: {} },\n): StreamableMethod {\n const path = expandUrlTemplate(\n \"/datasets{?api-version}\",\n {\n \"api-version\": context.apiVersion,\n },\n {\n allowReserved: options?.requestOptions?.skipUrlEncoding,\n },\n );\n return context.path(path).get({\n ...operationOptionsToRequestParameters(options),\n headers: {\n accept: \"application/json\",\n ...options.requestOptions?.headers,\n },\n });\n}\n\nexport async function _listDeserialize(\n result: PathUncheckedResponse,\n): Promise<_PagedDatasetVersion> {\n const expectedStatuses = [\"200\"];\n if (!expectedStatuses.includes(result.status)) {\n throw createRestError(result);\n }\n\n return _pagedDatasetVersionDeserializer(result.body);\n}\n\n/** List the latest version of each DatasetVersion */\nexport function list(\n context: Client,\n options: DatasetsListOptionalParams = { requestOptions: {} },\n): PagedAsyncIterableIterator<DatasetVersionUnion> {\n return buildPagedAsyncIterator(\n context,\n () => _listSend(context, options),\n _listDeserialize,\n [\"200\"],\n { itemName: \"value\", nextLinkName: \"nextLink\", apiVersion: context.apiVersion },\n );\n}\n\nexport function _listVersionsSend(\n context: Client,\n name: string,\n options: DatasetsListVersionsOptionalParams = { requestOptions: {} },\n): StreamableMethod {\n const path = expandUrlTemplate(\n \"/datasets/{name}/versions{?api-version}\",\n {\n name: name,\n \"api-version\": context.apiVersion,\n },\n {\n allowReserved: options?.requestOptions?.skipUrlEncoding,\n },\n );\n return context.path(path).get({\n ...operationOptionsToRequestParameters(options),\n headers: {\n accept: \"application/json\",\n ...options.requestOptions?.headers,\n },\n });\n}\n\nexport async function _listVersionsDeserialize(\n result: PathUncheckedResponse,\n): Promise<_PagedDatasetVersion> {\n const expectedStatuses = [\"200\"];\n if (!expectedStatuses.includes(result.status)) {\n throw createRestError(result);\n }\n\n return _pagedDatasetVersionDeserializer(result.body);\n}\n\n/** List all versions of the given DatasetVersion */\nexport function listVersions(\n context: Client,\n name: string,\n options: DatasetsListVersionsOptionalParams = { requestOptions: {} },\n): PagedAsyncIterableIterator<DatasetVersionUnion> {\n return buildPagedAsyncIterator(\n context,\n () => _listVersionsSend(context, name, options),\n _listVersionsDeserialize,\n [\"200\"],\n { itemName: \"value\", nextLinkName: \"nextLink\", apiVersion: context.apiVersion },\n );\n}\n\n// Internal helper method to create a new dataset and return a ContainerClient from azure-storage-blob package, to the dataset's blob storage.\nasync function createDatasetAndGetItsContainer(\n context: Client,\n name: string,\n version: string,\n options?: DatasetUploadInternalOptions,\n): Promise<{ containerClient: ContainerClient; version: string }> {\n const { connectionName, projectOptions = {} } = options || {};\n // Start a pending upload to get the container URL with SAS token\n const pendingUploadResponse = await pendingUpload(context, name, version, {\n pendingUploadType: \"BlobReference\",\n connectionName,\n } as PendingUploadRequest);\n\n const blobReference = pendingUploadResponse.blobReference;\n // Validate the response\n if (!blobReference) {\n throw new Error(\"Blob reference for consumption is not present\");\n }\n\n if (!blobReference.credential?.type) {\n throw new Error(\"Credential type is not present\");\n }\n\n if (blobReference.credential.type !== \"SAS\") {\n throw new Error(\"Credential type is not SAS\");\n }\n\n if (!blobReference.blobUri) {\n throw new Error(\"Blob URI is not present or empty\");\n }\n\n // Optional debug logging\n logger.verbose(\n `[createDatasetAndGetItsContainer] pendingUploadResponse.pendingUploadId = ${pendingUploadResponse.pendingUploadId}`,\n );\n logger.verbose(\n `[createDatasetAndGetItsContainer] pendingUploadResponse.pendingUploadType = ${pendingUploadResponse.pendingUploadType}`,\n );\n logger.verbose(\n `[createDatasetAndGetItsContainer] blobReference.blobUri = ${blobReference.blobUri}`,\n );\n logger.verbose(\n `[createDatasetAndGetItsContainer] blobReference.storageAccountArmId = ${blobReference.storageAccountArmId}`,\n );\n logger.verbose(\n `[createDatasetAndGetItsContainer] blobReference.credential.sasUri = ${blobReference.credential.sasUri}`,\n );\n logger.verbose(\n `[createDatasetAndGetItsContainer] blobReference.credential.type = ${blobReference.credential.type}`,\n );\n\n // Create container client from the blob URI (which includes the SAS token)\n const containerClient = new ContainerClient(blobReference.credential.sasUri);\n\n const pipeline = containerClient[\"storageClientContext\"].pipeline;\n for (const { policy } of projectOptions.additionalPolicies ?? []) {\n pipeline.addPolicy(policy, { afterPhase: \"Sign\" });\n }\n\n return {\n containerClient,\n version,\n };\n}\n\nexport async function uploadFile(\n context: Client,\n name: string,\n version: string,\n filePath: string,\n options?: DatasetUploadInternalOptions,\n): Promise<DatasetVersionUnion> {\n // if file does not exist\n\n const fileExists = fs.existsSync(filePath);\n if (!fileExists) {\n throw new Error(`File does not exist at path: ${filePath}`);\n }\n // Check if the file is a directory\n const isDirectory = fs.lstatSync(filePath).isDirectory();\n if (isDirectory) {\n throw new Error(`The provided file is actually a folder. Use method uploadFolder instead`);\n }\n\n const { containerClient, version: outputVersion } = await createDatasetAndGetItsContainer(\n context,\n name,\n version,\n options,\n );\n // file name as blob name\n const blobName = nodePath.basename(filePath);\n const blockBlobClient = containerClient.getBlockBlobClient(blobName);\n await blockBlobClient.uploadStream(fs.createReadStream(filePath));\n\n const datasetVersion = await createOrUpdate(context, name, outputVersion, {\n name: name,\n version: outputVersion,\n type: \"uri_file\",\n dataUri: blockBlobClient.url,\n });\n return datasetVersion;\n}\n\nexport async function uploadFolder(\n context: Client,\n name: string,\n version: string,\n folderPath: string,\n options?: DatasetUploadInternalOptions,\n): Promise<DatasetVersionUnion> {\n // Check if the folder exists\n const folderExists = fs.existsSync(folderPath);\n if (!folderExists) {\n throw new Error(`Folder does not exist at path: ${folderPath}`);\n }\n // Check if the folder is a file\n const isFile = fs.lstatSync(folderPath).isFile();\n if (isFile) {\n throw new Error(`The provided path is actually a file. Use method uploadFile instead`);\n }\n\n const { containerClient, version: outputVersion } = await createDatasetAndGetItsContainer(\n context,\n name,\n version,\n options,\n );\n\n // Helper function to recursively get all files in a directory\n async function getAllFiles(dir: string, fileList: string[] = []): Promise<string[]> {\n const files = await fs.promises.readdir(dir);\n\n for (const file of files) {\n const filePath = `${dir}/${file}`;\n const stat = await fs.promises.lstat(filePath);\n\n if (stat.isDirectory()) {\n await getAllFiles(filePath, fileList);\n } else {\n fileList.push(filePath);\n }\n }\n\n return fileList;\n }\n\n // Get all files in the folder\n const allFiles = await getAllFiles(folderPath);\n let filteredFiles = allFiles;\n if (options?.filePattern) {\n try {\n const filePattern = new RegExp(options.filePattern);\n filteredFiles = allFiles.filter((file) => filePattern.test(file));\n } catch {\n // If regex pattern is invalid, ignore the pattern and upload all files\n }\n }\n\n if (filteredFiles.length === 0) {\n throw new Error(\"The provided folder is empty.\");\n }\n\n // Upload each file to blob storage while maintaining relative paths\n for (const filePath of filteredFiles) {\n // Create blob name as relative path from the base folder\n const relativePath = nodePath.relative(folderPath, filePath).split(nodePath.sep).join(\"/\");\n\n logger.verbose(\n `[uploadFolderAndCreate] Start uploading file '${filePath}' as blob '${relativePath}'`,\n );\n\n // Get a block blob client for the relative path\n const blobClient = containerClient.getBlockBlobClient(relativePath);\n\n // Upload the file using a readable stream for better performance\n const fileStream = fs.createReadStream(filePath);\n await blobClient.uploadStream(fileStream);\n logger.verbose(\n `[uploadFolderAndCreate] Done uploading file '${filePath}' as blob '${relativePath}'`,\n );\n }\n\n // Create dataset version that references this folder\n const datasetVersion = await createOrUpdate(context, name, outputVersion, {\n name: name,\n version: outputVersion,\n type: \"uri_folder\",\n dataUri: containerClient.url,\n });\n\n return datasetVersion;\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Current version of the `@azure/ai-projects` package.
3
3
  */
4
- export declare const SDK_VERSION = "2.0.1";
4
+ export declare const SDK_VERSION = "2.0.2";
5
5
  /**
6
6
  * The package name of the `@azure/ai-projects` package.
7
7
  */
@@ -3,7 +3,7 @@
3
3
  /**
4
4
  * Current version of the `@azure/ai-projects` package.
5
5
  */
6
- export const SDK_VERSION = `2.0.1`;
6
+ export const SDK_VERSION = `2.0.2`;
7
7
  /**
8
8
  * The package name of the `@azure/ai-projects` package.
9
9
  */
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC;AAEnC;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,oBAAoB,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * Current version of the `@azure/ai-projects` package.\n */\nexport const SDK_VERSION = `2.0.1`;\n\n/**\n * The package name of the `@azure/ai-projects` package.\n */\nexport const PACKAGE_NAME = \"@azure/ai-projects\";\n"]}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC;AAEnC;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,oBAAoB,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * Current version of the `@azure/ai-projects` package.\n */\nexport const SDK_VERSION = `2.0.2`;\n\n/**\n * The package name of the `@azure/ai-projects` package.\n */\nexport const PACKAGE_NAME = \"@azure/ai-projects\";\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@azure/ai-projects",
3
- "version": "2.0.1",
3
+ "version": "2.0.2",
4
4
  "description": "Azure AI Projects client library.",
5
5
  "engines": {
6
6
  "node": ">=20.0.0"
@@ -59,31 +59,31 @@
59
59
  },
60
60
  "devDependencies": {
61
61
  "@azure-rest/ai-inference": "^1.0.0-beta.6",
62
- "@azure/arm-cognitiveservices": "7.6.0",
62
+ "@azure/arm-cognitiveservices": "8.1.0",
63
63
  "@azure/monitor-opentelemetry": "^1.16.0",
64
64
  "@azure/opentelemetry-instrumentation-azure-sdk": "1.0.0-beta.7",
65
65
  "@opentelemetry/api": "^1.9.0",
66
66
  "@opentelemetry/instrumentation": "^0.57.0",
67
67
  "@opentelemetry/sdk-trace-node": "^2.0.0",
68
68
  "@types/node": "^20.19.25",
69
- "@vitest/browser-playwright": "^4.0.8",
70
- "@vitest/coverage-istanbul": "^4.0.8",
69
+ "@vitest/browser-playwright": "^4.1.2",
70
+ "@vitest/coverage-istanbul": "^4.1.2",
71
71
  "@modelcontextprotocol/sdk": "^1.25.1",
72
72
  "zod": "^4.2.1",
73
73
  "cross-env": "^10.1.0",
74
74
  "dotenv": "^16.6.1",
75
75
  "eslint": "^9.39.1",
76
76
  "mkdirp": "^3.0.1",
77
- "playwright": "^1.56.1",
77
+ "playwright": "^1.58.2",
78
78
  "prettier": "^3.6.2",
79
79
  "rimraf": "^6.1.0",
80
- "typescript": "~5.9.3",
81
- "vitest": "^4.0.8",
80
+ "typescript": "~6.0.2",
81
+ "vitest": "^4.1.2",
82
82
  "@azure-tools/test-credential": "^2.1.2",
83
- "@azure-tools/test-utils-vitest": "^2.0.1",
83
+ "@azure-tools/test-recorder": "^4.1.1",
84
84
  "@azure/dev-tool": "^1.0.0",
85
85
  "@azure/eslint-plugin-azure-sdk": "^3.0.0",
86
- "@azure-tools/test-recorder": "^4.1.1"
86
+ "@azure-tools/test-utils-vitest": "^2.0.1"
87
87
  },
88
88
  "exports": {
89
89
  "./package.json": "./package.json",