@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.
- package/README.md +5 -5
- package/dist/browser/api/datasets/operations.d.ts.map +1 -1
- package/dist/browser/api/datasets/operations.js +9 -8
- package/dist/browser/api/datasets/operations.js.map +1 -1
- package/dist/browser/constants.d.ts +1 -1
- package/dist/browser/constants.js +1 -1
- package/dist/browser/constants.js.map +1 -1
- package/dist/commonjs/aiProjectClient.js +1 -0
- package/dist/commonjs/aiProjectClient.js.map +1 -1
- package/dist/commonjs/api/agents/index.js +1 -0
- package/dist/commonjs/api/agents/index.js.map +1 -1
- package/dist/commonjs/api/agents/operations.js +1 -0
- package/dist/commonjs/api/agents/operations.js.map +1 -1
- package/dist/commonjs/api/agents/options.js +1 -0
- package/dist/commonjs/api/agents/options.js.map +1 -1
- package/dist/commonjs/api/aiProjectContext.js +1 -0
- package/dist/commonjs/api/aiProjectContext.js.map +1 -1
- package/dist/commonjs/api/beta/evaluationTaxonomies/index.js +1 -0
- package/dist/commonjs/api/beta/evaluationTaxonomies/index.js.map +1 -1
- package/dist/commonjs/api/beta/evaluationTaxonomies/operations.js +1 -0
- package/dist/commonjs/api/beta/evaluationTaxonomies/operations.js.map +1 -1
- package/dist/commonjs/api/beta/evaluationTaxonomies/options.js +1 -0
- package/dist/commonjs/api/beta/evaluationTaxonomies/options.js.map +1 -1
- package/dist/commonjs/api/beta/evaluators/index.js +1 -0
- package/dist/commonjs/api/beta/evaluators/index.js.map +1 -1
- package/dist/commonjs/api/beta/evaluators/operations.js +1 -0
- package/dist/commonjs/api/beta/evaluators/operations.js.map +1 -1
- package/dist/commonjs/api/beta/evaluators/options.js +1 -0
- package/dist/commonjs/api/beta/evaluators/options.js.map +1 -1
- package/dist/commonjs/api/beta/insights/index.js +1 -0
- package/dist/commonjs/api/beta/insights/index.js.map +1 -1
- package/dist/commonjs/api/beta/insights/operations.js +1 -0
- package/dist/commonjs/api/beta/insights/operations.js.map +1 -1
- package/dist/commonjs/api/beta/insights/options.js +1 -0
- package/dist/commonjs/api/beta/insights/options.js.map +1 -1
- package/dist/commonjs/api/beta/memoryStores/index.js +1 -0
- package/dist/commonjs/api/beta/memoryStores/index.js.map +1 -1
- package/dist/commonjs/api/beta/memoryStores/operations.js +1 -0
- package/dist/commonjs/api/beta/memoryStores/operations.js.map +1 -1
- package/dist/commonjs/api/beta/memoryStores/options.js +1 -0
- package/dist/commonjs/api/beta/memoryStores/options.js.map +1 -1
- package/dist/commonjs/api/beta/redTeams/index.js +1 -0
- package/dist/commonjs/api/beta/redTeams/index.js.map +1 -1
- package/dist/commonjs/api/beta/redTeams/operations.js +1 -0
- package/dist/commonjs/api/beta/redTeams/operations.js.map +1 -1
- package/dist/commonjs/api/beta/redTeams/options.js +1 -0
- package/dist/commonjs/api/beta/redTeams/options.js.map +1 -1
- package/dist/commonjs/api/beta/schedules/index.js +1 -0
- package/dist/commonjs/api/beta/schedules/index.js.map +1 -1
- package/dist/commonjs/api/beta/schedules/operations.js +1 -0
- package/dist/commonjs/api/beta/schedules/operations.js.map +1 -1
- package/dist/commonjs/api/beta/schedules/options.js +1 -0
- package/dist/commonjs/api/beta/schedules/options.js.map +1 -1
- package/dist/commonjs/api/connections/index.js +1 -0
- package/dist/commonjs/api/connections/index.js.map +1 -1
- package/dist/commonjs/api/connections/operations.js +1 -0
- package/dist/commonjs/api/connections/operations.js.map +1 -1
- package/dist/commonjs/api/connections/options.js +1 -0
- package/dist/commonjs/api/connections/options.js.map +1 -1
- package/dist/commonjs/api/datasets/index.js +1 -0
- package/dist/commonjs/api/datasets/index.js.map +1 -1
- package/dist/commonjs/api/datasets/operations.d.ts.map +1 -1
- package/dist/commonjs/api/datasets/operations.js +10 -8
- package/dist/commonjs/api/datasets/operations.js.map +3 -3
- package/dist/commonjs/api/datasets/options.js +1 -0
- package/dist/commonjs/api/datasets/options.js.map +1 -1
- package/dist/commonjs/api/deployments/index.js +1 -0
- package/dist/commonjs/api/deployments/index.js.map +1 -1
- package/dist/commonjs/api/deployments/operations.js +1 -0
- package/dist/commonjs/api/deployments/operations.js.map +1 -1
- package/dist/commonjs/api/deployments/options.js +1 -0
- package/dist/commonjs/api/deployments/options.js.map +1 -1
- package/dist/commonjs/api/evaluationRules/index.js +1 -0
- package/dist/commonjs/api/evaluationRules/index.js.map +1 -1
- package/dist/commonjs/api/evaluationRules/operations.js +1 -0
- package/dist/commonjs/api/evaluationRules/operations.js.map +1 -1
- package/dist/commonjs/api/evaluationRules/options.js +1 -0
- package/dist/commonjs/api/evaluationRules/options.js.map +1 -1
- package/dist/commonjs/api/index.js +1 -0
- package/dist/commonjs/api/index.js.map +1 -1
- package/dist/commonjs/api/indexes/index.js +1 -0
- package/dist/commonjs/api/indexes/index.js.map +1 -1
- package/dist/commonjs/api/indexes/operations.js +1 -0
- package/dist/commonjs/api/indexes/operations.js.map +1 -1
- package/dist/commonjs/api/indexes/options.js +1 -0
- package/dist/commonjs/api/indexes/options.js.map +1 -1
- package/dist/commonjs/api/telemetry/index.js +1 -0
- package/dist/commonjs/api/telemetry/index.js.map +1 -1
- package/dist/commonjs/api/telemetry/operations.js +1 -0
- package/dist/commonjs/api/telemetry/operations.js.map +1 -1
- package/dist/commonjs/classic/agents/index.js +1 -0
- package/dist/commonjs/classic/agents/index.js.map +1 -1
- package/dist/commonjs/classic/beta/evaluationTaxonomies/index.js +1 -0
- package/dist/commonjs/classic/beta/evaluationTaxonomies/index.js.map +1 -1
- package/dist/commonjs/classic/beta/evaluators/index.js +1 -0
- package/dist/commonjs/classic/beta/evaluators/index.js.map +1 -1
- package/dist/commonjs/classic/beta/index.js +1 -0
- package/dist/commonjs/classic/beta/index.js.map +1 -1
- package/dist/commonjs/classic/beta/insights/index.js +1 -0
- package/dist/commonjs/classic/beta/insights/index.js.map +1 -1
- package/dist/commonjs/classic/beta/memoryStores/index.js +1 -0
- package/dist/commonjs/classic/beta/memoryStores/index.js.map +1 -1
- package/dist/commonjs/classic/beta/redTeams/index.js +1 -0
- package/dist/commonjs/classic/beta/redTeams/index.js.map +1 -1
- package/dist/commonjs/classic/beta/schedules/index.js +1 -0
- package/dist/commonjs/classic/beta/schedules/index.js.map +1 -1
- package/dist/commonjs/classic/connections/index.js +1 -0
- package/dist/commonjs/classic/connections/index.js.map +1 -1
- package/dist/commonjs/classic/datasets/index.js +1 -0
- package/dist/commonjs/classic/datasets/index.js.map +1 -1
- package/dist/commonjs/classic/deployments/index.js +1 -0
- package/dist/commonjs/classic/deployments/index.js.map +1 -1
- package/dist/commonjs/classic/evaluationRules/index.js +1 -0
- package/dist/commonjs/classic/evaluationRules/index.js.map +1 -1
- package/dist/commonjs/classic/index.js +1 -0
- package/dist/commonjs/classic/index.js.map +1 -1
- package/dist/commonjs/classic/indexes/index.js +1 -0
- package/dist/commonjs/classic/indexes/index.js.map +1 -1
- package/dist/commonjs/classic/telemetry/index.js +1 -0
- package/dist/commonjs/classic/telemetry/index.js.map +1 -1
- package/dist/commonjs/constants.d.ts +1 -1
- package/dist/commonjs/constants.js +2 -1
- package/dist/commonjs/constants.js.map +2 -2
- package/dist/commonjs/getCustomFetch.js +1 -0
- package/dist/commonjs/getCustomFetch.js.map +1 -1
- package/dist/commonjs/index.js +1 -0
- package/dist/commonjs/index.js.map +1 -1
- package/dist/commonjs/logger.js +1 -0
- package/dist/commonjs/logger.js.map +1 -1
- package/dist/commonjs/models/index.js +1 -0
- package/dist/commonjs/models/index.js.map +1 -1
- package/dist/commonjs/models/models.js +1 -0
- package/dist/commonjs/models/models.js.map +1 -1
- package/dist/commonjs/overwriteOpenAIClient.js +1 -0
- package/dist/commonjs/overwriteOpenAIClient.js.map +1 -1
- package/dist/commonjs/static-helpers/pagingHelpers.js +1 -0
- package/dist/commonjs/static-helpers/pagingHelpers.js.map +1 -1
- package/dist/commonjs/static-helpers/pollingHelpers.js +1 -0
- package/dist/commonjs/static-helpers/pollingHelpers.js.map +1 -1
- package/dist/commonjs/static-helpers/serialization/serialize-record.js +1 -0
- package/dist/commonjs/static-helpers/serialization/serialize-record.js.map +1 -1
- package/dist/commonjs/static-helpers/urlTemplate.js +1 -0
- package/dist/commonjs/static-helpers/urlTemplate.js.map +1 -1
- package/dist/commonjs/tsdoc-metadata.json +1 -1
- package/dist/commonjs/util.js +1 -0
- package/dist/commonjs/util.js.map +1 -1
- package/dist/esm/aiProjectClient.js +119 -94
- package/dist/esm/aiProjectClient.js.map +1 -7
- package/dist/esm/api/agents/index.js +4 -28
- package/dist/esm/api/agents/index.js.map +1 -7
- package/dist/esm/api/agents/operations.js +375 -473
- package/dist/esm/api/agents/operations.js.map +1 -7
- package/dist/esm/api/agents/options.js +4 -0
- package/dist/esm/api/agents/options.js.map +1 -7
- package/dist/esm/api/aiProjectContext.js +21 -19
- package/dist/esm/api/aiProjectContext.js.map +1 -7
- package/dist/esm/api/beta/evaluationTaxonomies/index.js +4 -8
- package/dist/esm/api/beta/evaluationTaxonomies/index.js.map +1 -7
- package/dist/esm/api/beta/evaluationTaxonomies/operations.js +150 -183
- package/dist/esm/api/beta/evaluationTaxonomies/operations.js.map +1 -7
- package/dist/esm/api/beta/evaluationTaxonomies/options.js +4 -0
- package/dist/esm/api/beta/evaluationTaxonomies/options.js.map +1 -7
- package/dist/esm/api/beta/evaluators/index.js +4 -16
- package/dist/esm/api/beta/evaluators/index.js.map +1 -7
- package/dist/esm/api/beta/evaluators/operations.js +192 -243
- package/dist/esm/api/beta/evaluators/operations.js.map +1 -7
- package/dist/esm/api/beta/evaluators/options.js +4 -0
- package/dist/esm/api/beta/evaluators/options.js.map +1 -7
- package/dist/esm/api/beta/insights/index.js +4 -6
- package/dist/esm/api/beta/insights/index.js.map +1 -7
- package/dist/esm/api/beta/insights/operations.js +109 -126
- package/dist/esm/api/beta/insights/operations.js.map +1 -7
- package/dist/esm/api/beta/insights/options.js +4 -0
- package/dist/esm/api/beta/insights/options.js.map +1 -7
- package/dist/esm/api/beta/memoryStores/index.js +4 -22
- package/dist/esm/api/beta/memoryStores/index.js.map +1 -7
- package/dist/esm/api/beta/memoryStores/operations.js +305 -374
- package/dist/esm/api/beta/memoryStores/operations.js.map +1 -7
- package/dist/esm/api/beta/memoryStores/options.js +4 -0
- package/dist/esm/api/beta/memoryStores/options.js.map +1 -7
- package/dist/esm/api/beta/redTeams/index.js +4 -6
- package/dist/esm/api/beta/redTeams/index.js.map +1 -7
- package/dist/esm/api/beta/redTeams/operations.js +95 -119
- package/dist/esm/api/beta/redTeams/operations.js.map +1 -7
- package/dist/esm/api/beta/redTeams/options.js +4 -0
- package/dist/esm/api/beta/redTeams/options.js.map +1 -7
- package/dist/esm/api/beta/schedules/index.js +4 -9
- package/dist/esm/api/beta/schedules/index.js.map +1 -7
- package/dist/esm/api/beta/schedules/operations.js +204 -248
- package/dist/esm/api/beta/schedules/operations.js.map +1 -7
- package/dist/esm/api/beta/schedules/options.js +4 -0
- package/dist/esm/api/beta/schedules/options.js.map +1 -7
- package/dist/esm/api/connections/index.js +4 -6
- package/dist/esm/api/connections/index.js.map +1 -7
- package/dist/esm/api/connections/operations.js +109 -116
- package/dist/esm/api/connections/operations.js.map +1 -7
- package/dist/esm/api/connections/options.js +4 -0
- package/dist/esm/api/connections/options.js.map +1 -7
- package/dist/esm/api/datasets/index.js +4 -18
- package/dist/esm/api/datasets/index.js.map +1 -7
- package/dist/esm/api/datasets/operations.d.ts.map +1 -1
- package/dist/esm/api/datasets/operations.js +288 -355
- package/dist/esm/api/datasets/operations.js.map +1 -7
- package/dist/esm/api/datasets/options.js +4 -0
- package/dist/esm/api/datasets/options.js.map +1 -7
- package/dist/esm/api/deployments/index.js +4 -5
- package/dist/esm/api/deployments/index.js.map +1 -7
- package/dist/esm/api/deployments/operations.js +57 -70
- package/dist/esm/api/deployments/operations.js.map +1 -7
- package/dist/esm/api/deployments/options.js +4 -0
- package/dist/esm/api/deployments/options.js.map +1 -7
- package/dist/esm/api/evaluationRules/index.js +4 -7
- package/dist/esm/api/evaluationRules/index.js.map +1 -7
- package/dist/esm/api/evaluationRules/operations.js +121 -144
- package/dist/esm/api/evaluationRules/operations.js.map +1 -7
- package/dist/esm/api/evaluationRules/options.js +4 -0
- package/dist/esm/api/evaluationRules/options.js.map +1 -7
- package/dist/esm/api/index.js +4 -4
- package/dist/esm/api/index.js.map +1 -7
- package/dist/esm/api/indexes/index.js +4 -8
- package/dist/esm/api/indexes/index.js.map +1 -7
- package/dist/esm/api/indexes/operations.js +116 -161
- package/dist/esm/api/indexes/operations.js.map +1 -7
- package/dist/esm/api/indexes/options.js +4 -0
- package/dist/esm/api/indexes/options.js.map +1 -7
- package/dist/esm/api/telemetry/index.js +4 -4
- package/dist/esm/api/telemetry/index.js.map +1 -7
- package/dist/esm/api/telemetry/operations.js +53 -46
- package/dist/esm/api/telemetry/operations.js.map +1 -7
- package/dist/esm/classic/agents/index.js +40 -80
- package/dist/esm/classic/agents/index.js.map +1 -7
- package/dist/esm/classic/beta/evaluationTaxonomies/index.js +15 -21
- package/dist/esm/classic/beta/evaluationTaxonomies/index.js.map +1 -7
- package/dist/esm/classic/beta/evaluators/index.js +16 -23
- package/dist/esm/classic/beta/evaluators/index.js.map +1 -7
- package/dist/esm/classic/beta/index.js +18 -18
- package/dist/esm/classic/beta/index.js.map +1 -7
- package/dist/esm/classic/beta/insights/index.js +12 -12
- package/dist/esm/classic/beta/insights/index.js.map +1 -7
- package/dist/esm/classic/beta/memoryStores/index.js +19 -29
- package/dist/esm/classic/beta/memoryStores/index.js.map +1 -7
- package/dist/esm/classic/beta/redTeams/index.js +12 -12
- package/dist/esm/classic/beta/redTeams/index.js.map +1 -7
- package/dist/esm/classic/beta/schedules/index.js +16 -23
- package/dist/esm/classic/beta/schedules/index.js.map +1 -7
- package/dist/esm/classic/connections/index.js +13 -13
- package/dist/esm/classic/connections/index.js.map +1 -7
- package/dist/esm/classic/datasets/index.js +19 -29
- package/dist/esm/classic/datasets/index.js.map +1 -7
- package/dist/esm/classic/deployments/index.js +11 -11
- package/dist/esm/classic/deployments/index.js.map +1 -7
- package/dist/esm/classic/evaluationRules/index.js +13 -13
- package/dist/esm/classic/evaluationRules/index.js.map +1 -7
- package/dist/esm/classic/index.js +4 -0
- package/dist/esm/classic/index.js.map +1 -7
- package/dist/esm/classic/indexes/index.js +14 -14
- package/dist/esm/classic/indexes/index.js.map +1 -7
- package/dist/esm/classic/telemetry/index.js +7 -9
- package/dist/esm/classic/telemetry/index.js.map +1 -7
- package/dist/esm/constants.d.ts +1 -1
- package/dist/esm/constants.js +11 -6
- package/dist/esm/constants.js.map +1 -7
- package/dist/esm/getCustomFetch.js +40 -33
- package/dist/esm/getCustomFetch.js.map +1 -7
- package/dist/esm/index.js +4 -4
- package/dist/esm/index.js.map +1 -7
- package/dist/esm/logger.js +4 -4
- package/dist/esm/logger.js.map +1 -7
- package/dist/esm/models/index.js +4 -0
- package/dist/esm/models/index.js.map +1 -7
- package/dist/esm/models/models.js +3709 -4160
- package/dist/esm/models/models.js.map +1 -7
- package/dist/esm/overwriteOpenAIClient.js +13 -13
- package/dist/esm/overwriteOpenAIClient.js.map +1 -7
- package/dist/esm/static-helpers/pagingHelpers.js +123 -99
- package/dist/esm/static-helpers/pagingHelpers.js.map +1 -7
- package/dist/esm/static-helpers/pollingHelpers.js +98 -75
- package/dist/esm/static-helpers/pollingHelpers.js.map +1 -7
- package/dist/esm/static-helpers/serialization/serialize-record.js +18 -16
- package/dist/esm/static-helpers/serialization/serialize-record.js.map +1 -7
- package/dist/esm/static-helpers/urlTemplate.js +169 -142
- package/dist/esm/static-helpers/urlTemplate.js.map +1 -7
- package/dist/esm/util.js +84 -63
- package/dist/esm/util.js.map +1 -7
- package/dist/react-native/api/datasets/operations.d.ts.map +1 -1
- package/dist/react-native/api/datasets/operations.js +9 -8
- package/dist/react-native/api/datasets/operations.js.map +1 -1
- package/dist/react-native/constants.d.ts +1 -1
- package/dist/react-native/constants.js +1 -1
- package/dist/react-native/constants.js.map +1 -1
- 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
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 +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
|
+
{"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.
|
|
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": "
|
|
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.
|
|
70
|
-
"@vitest/coverage-istanbul": "^4.
|
|
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.
|
|
77
|
+
"playwright": "^1.58.2",
|
|
78
78
|
"prettier": "^3.6.2",
|
|
79
79
|
"rimraf": "^6.1.0",
|
|
80
|
-
"typescript": "~
|
|
81
|
-
"vitest": "^4.
|
|
80
|
+
"typescript": "~6.0.2",
|
|
81
|
+
"vitest": "^4.1.2",
|
|
82
82
|
"@azure-tools/test-credential": "^2.1.2",
|
|
83
|
-
"@azure-tools/test-
|
|
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-
|
|
86
|
+
"@azure-tools/test-utils-vitest": "^2.0.1"
|
|
87
87
|
},
|
|
88
88
|
"exports": {
|
|
89
89
|
"./package.json": "./package.json",
|