@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
|
@@ -1,173 +1,200 @@
|
|
|
1
|
+
// Copyright (c) Microsoft Corporation.
|
|
2
|
+
// Licensed under the MIT License.
|
|
3
|
+
// ---------------------
|
|
4
|
+
// helpers
|
|
5
|
+
// ---------------------
|
|
1
6
|
function encodeComponent(val, reserved, op) {
|
|
2
|
-
|
|
7
|
+
return (reserved ?? op === "+") || op === "#"
|
|
8
|
+
? encodeReservedComponent(val)
|
|
9
|
+
: encodeRFC3986URIComponent(val);
|
|
3
10
|
}
|
|
4
11
|
function encodeReservedComponent(str) {
|
|
5
|
-
|
|
12
|
+
return str
|
|
13
|
+
.split(/(%[0-9A-Fa-f]{2})/g)
|
|
14
|
+
.map((part) => (!/%[0-9A-Fa-f]/.test(part) ? encodeURI(part) : part))
|
|
15
|
+
.join("");
|
|
6
16
|
}
|
|
7
17
|
function encodeRFC3986URIComponent(str) {
|
|
8
|
-
|
|
9
|
-
/[!'()*]/g,
|
|
10
|
-
(c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`
|
|
11
|
-
);
|
|
18
|
+
return encodeURIComponent(str).replace(/[!'()*]/g, (c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`);
|
|
12
19
|
}
|
|
13
20
|
function isDefined(val) {
|
|
14
|
-
|
|
21
|
+
return val !== undefined && val !== null;
|
|
15
22
|
}
|
|
16
23
|
function getNamedAndIfEmpty(op) {
|
|
17
|
-
|
|
24
|
+
return [!!op && [";", "?", "&"].includes(op), !!op && ["?", "&"].includes(op) ? "=" : ""];
|
|
18
25
|
}
|
|
19
26
|
function getFirstOrSep(op, isFirst = false) {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
if (isFirst) {
|
|
28
|
+
return !op || op === "+" ? "" : op;
|
|
29
|
+
}
|
|
30
|
+
else if (!op || op === "+" || op === "#") {
|
|
31
|
+
return ",";
|
|
32
|
+
}
|
|
33
|
+
else if (op === "?") {
|
|
34
|
+
return "&";
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
return op;
|
|
38
|
+
}
|
|
29
39
|
}
|
|
30
40
|
function getExpandedValue(option) {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
41
|
+
let isFirst = option.isFirst;
|
|
42
|
+
const { op, varName, varValue: value, reserved } = option;
|
|
43
|
+
const vals = [];
|
|
44
|
+
const [named, ifEmpty] = getNamedAndIfEmpty(op);
|
|
45
|
+
if (Array.isArray(value)) {
|
|
46
|
+
for (const val of value.filter(isDefined)) {
|
|
47
|
+
// prepare the following parts: separator, varName, value
|
|
48
|
+
vals.push(`${getFirstOrSep(op, isFirst)}`);
|
|
49
|
+
if (named && varName) {
|
|
50
|
+
vals.push(`${encodeURIComponent(varName)}`);
|
|
51
|
+
if (val === "") {
|
|
52
|
+
vals.push(ifEmpty);
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
vals.push("=");
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
vals.push(encodeComponent(val, reserved, op));
|
|
59
|
+
isFirst = false;
|
|
44
60
|
}
|
|
45
|
-
}
|
|
46
|
-
vals.push(encodeComponent(val, reserved, op));
|
|
47
|
-
isFirst = false;
|
|
48
61
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
+
else if (typeof value === "object") {
|
|
63
|
+
for (const key of Object.keys(value)) {
|
|
64
|
+
const val = value[key];
|
|
65
|
+
if (!isDefined(val)) {
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
// prepare the following parts: separator, key, value
|
|
69
|
+
vals.push(`${getFirstOrSep(op, isFirst)}`);
|
|
70
|
+
if (key) {
|
|
71
|
+
vals.push(`${encodeURIComponent(key)}`);
|
|
72
|
+
if (named && val === "") {
|
|
73
|
+
vals.push(ifEmpty);
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
vals.push("=");
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
vals.push(encodeComponent(val, reserved, op));
|
|
80
|
+
isFirst = false;
|
|
62
81
|
}
|
|
63
|
-
}
|
|
64
|
-
vals.push(encodeComponent(val, reserved, op));
|
|
65
|
-
isFirst = false;
|
|
66
82
|
}
|
|
67
|
-
|
|
68
|
-
return vals.join("");
|
|
83
|
+
return vals.join("");
|
|
69
84
|
}
|
|
70
85
|
function getNonExpandedValue(option) {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
const [named, ifEmpty] = getNamedAndIfEmpty(op);
|
|
75
|
-
if (named && varName) {
|
|
76
|
-
vals.push(encodeComponent(varName, reserved, op));
|
|
77
|
-
if (value === "") {
|
|
78
|
-
if (!ifEmpty) {
|
|
79
|
-
vals.push(ifEmpty);
|
|
80
|
-
}
|
|
81
|
-
return !vals.join("") ? void 0 : `${first}${vals.join("")}`;
|
|
82
|
-
}
|
|
83
|
-
vals.push("=");
|
|
84
|
-
}
|
|
85
|
-
const items = [];
|
|
86
|
-
if (Array.isArray(value)) {
|
|
87
|
-
for (const val of value.filter(isDefined)) {
|
|
88
|
-
items.push(encodeComponent(val, reserved, op));
|
|
89
|
-
}
|
|
90
|
-
} else if (typeof value === "object") {
|
|
91
|
-
for (const key of Object.keys(value)) {
|
|
92
|
-
if (!isDefined(value[key])) {
|
|
93
|
-
continue;
|
|
94
|
-
}
|
|
95
|
-
items.push(encodeRFC3986URIComponent(key));
|
|
96
|
-
items.push(encodeComponent(value[key], reserved, op));
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
vals.push(items.join(","));
|
|
100
|
-
return !vals.join(",") ? void 0 : `${first}${vals.join("")}`;
|
|
101
|
-
}
|
|
102
|
-
function getVarValue(option) {
|
|
103
|
-
const { op, varName, modifier, isFirst, reserved, varValue: value } = option;
|
|
104
|
-
if (!isDefined(value)) {
|
|
105
|
-
return void 0;
|
|
106
|
-
} else if (["string", "number", "boolean"].includes(typeof value)) {
|
|
107
|
-
let val = value.toString();
|
|
86
|
+
const { op, varName, varValue: value, isFirst, reserved } = option;
|
|
87
|
+
const vals = [];
|
|
88
|
+
const first = getFirstOrSep(op, isFirst);
|
|
108
89
|
const [named, ifEmpty] = getNamedAndIfEmpty(op);
|
|
109
|
-
const vals = [getFirstOrSep(op, isFirst)];
|
|
110
90
|
if (named && varName) {
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
91
|
+
vals.push(encodeComponent(varName, reserved, op));
|
|
92
|
+
if (value === "") {
|
|
93
|
+
if (!ifEmpty) {
|
|
94
|
+
vals.push(ifEmpty);
|
|
95
|
+
}
|
|
96
|
+
return !vals.join("") ? undefined : `${first}${vals.join("")}`;
|
|
97
|
+
}
|
|
115
98
|
vals.push("=");
|
|
116
|
-
}
|
|
117
99
|
}
|
|
118
|
-
|
|
119
|
-
|
|
100
|
+
const items = [];
|
|
101
|
+
if (Array.isArray(value)) {
|
|
102
|
+
for (const val of value.filter(isDefined)) {
|
|
103
|
+
items.push(encodeComponent(val, reserved, op));
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
else if (typeof value === "object") {
|
|
107
|
+
for (const key of Object.keys(value)) {
|
|
108
|
+
if (!isDefined(value[key])) {
|
|
109
|
+
continue;
|
|
110
|
+
}
|
|
111
|
+
items.push(encodeRFC3986URIComponent(key));
|
|
112
|
+
items.push(encodeComponent(value[key], reserved, op));
|
|
113
|
+
}
|
|
120
114
|
}
|
|
121
|
-
vals.push(
|
|
122
|
-
return vals.join("")
|
|
123
|
-
} else if (modifier === "*") {
|
|
124
|
-
return getExpandedValue(option);
|
|
125
|
-
} else {
|
|
126
|
-
return getNonExpandedValue(option);
|
|
127
|
-
}
|
|
115
|
+
vals.push(items.join(","));
|
|
116
|
+
return !vals.join(",") ? undefined : `${first}${vals.join("")}`;
|
|
128
117
|
}
|
|
129
|
-
function
|
|
130
|
-
|
|
131
|
-
if (!
|
|
132
|
-
|
|
118
|
+
function getVarValue(option) {
|
|
119
|
+
const { op, varName, modifier, isFirst, reserved, varValue: value } = option;
|
|
120
|
+
if (!isDefined(value)) {
|
|
121
|
+
return undefined;
|
|
122
|
+
}
|
|
123
|
+
else if (["string", "number", "boolean"].includes(typeof value)) {
|
|
124
|
+
let val = value.toString();
|
|
125
|
+
const [named, ifEmpty] = getNamedAndIfEmpty(op);
|
|
126
|
+
const vals = [getFirstOrSep(op, isFirst)];
|
|
127
|
+
if (named && varName) {
|
|
128
|
+
// No need to encode varName considering it is already encoded
|
|
129
|
+
vals.push(varName);
|
|
130
|
+
if (val === "") {
|
|
131
|
+
vals.push(ifEmpty);
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
vals.push("=");
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
if (modifier && modifier !== "*") {
|
|
138
|
+
val = val.substring(0, parseInt(modifier, 10));
|
|
139
|
+
}
|
|
140
|
+
vals.push(encodeComponent(val, reserved, op));
|
|
141
|
+
return vals.join("");
|
|
133
142
|
}
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
op = expr[0];
|
|
137
|
-
expr = expr.slice(1);
|
|
143
|
+
else if (modifier === "*") {
|
|
144
|
+
return getExpandedValue(option);
|
|
138
145
|
}
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
for (const varSpec of varList) {
|
|
142
|
-
const varMatch = /([^:*]*)(?::(\d+)|(\*))?/.exec(varSpec);
|
|
143
|
-
if (!varMatch || !varMatch[1]) {
|
|
144
|
-
continue;
|
|
145
|
-
}
|
|
146
|
-
const varValue = getVarValue({
|
|
147
|
-
isFirst: result.length === 0,
|
|
148
|
-
op,
|
|
149
|
-
varValue: context[varMatch[1]],
|
|
150
|
-
varName: varMatch[1],
|
|
151
|
-
modifier: varMatch[2] || varMatch[3],
|
|
152
|
-
reserved: option?.allowReserved
|
|
153
|
-
});
|
|
154
|
-
if (varValue) {
|
|
155
|
-
result.push(varValue);
|
|
156
|
-
}
|
|
146
|
+
else {
|
|
147
|
+
return getNonExpandedValue(option);
|
|
157
148
|
}
|
|
158
|
-
return result.join("");
|
|
159
|
-
});
|
|
160
|
-
return normalizeUnreserved(r);
|
|
161
149
|
}
|
|
150
|
+
// ---------------------------------------------------------------------------------------------------
|
|
151
|
+
// This is an implementation of RFC 6570 URI Template: https://datatracker.ietf.org/doc/html/rfc6570.
|
|
152
|
+
// ---------------------------------------------------------------------------------------------------
|
|
153
|
+
export function expandUrlTemplate(template, context, option) {
|
|
154
|
+
const r = template.replace(/\{([^{}]+)\}|([^{}]+)/g, (_, expr, text) => {
|
|
155
|
+
if (!expr) {
|
|
156
|
+
return encodeReservedComponent(text);
|
|
157
|
+
}
|
|
158
|
+
let op;
|
|
159
|
+
if (["+", "#", ".", "/", ";", "?", "&"].includes(expr[0])) {
|
|
160
|
+
op = expr[0];
|
|
161
|
+
expr = expr.slice(1);
|
|
162
|
+
}
|
|
163
|
+
const varList = expr.split(/,/g);
|
|
164
|
+
const result = [];
|
|
165
|
+
for (const varSpec of varList) {
|
|
166
|
+
const varMatch = /([^:*]*)(?::(\d+)|(\*))?/.exec(varSpec);
|
|
167
|
+
if (!varMatch || !varMatch[1]) {
|
|
168
|
+
continue;
|
|
169
|
+
}
|
|
170
|
+
const varValue = getVarValue({
|
|
171
|
+
isFirst: result.length === 0,
|
|
172
|
+
op,
|
|
173
|
+
varValue: context[varMatch[1]],
|
|
174
|
+
varName: varMatch[1],
|
|
175
|
+
modifier: varMatch[2] || varMatch[3],
|
|
176
|
+
reserved: option?.allowReserved,
|
|
177
|
+
});
|
|
178
|
+
if (varValue) {
|
|
179
|
+
result.push(varValue);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
return result.join("");
|
|
183
|
+
});
|
|
184
|
+
return normalizeUnreserved(r);
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Normalize an expanded URI by decoding percent-encoded unreserved characters.
|
|
188
|
+
* RFC 3986 unreserved: "-" / "." / "~"
|
|
189
|
+
*/
|
|
162
190
|
function normalizeUnreserved(uri) {
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
191
|
+
return uri.replace(/%([0-9A-Fa-f]{2})/g, (match, hex) => {
|
|
192
|
+
const char = String.fromCharCode(parseInt(hex, 16));
|
|
193
|
+
// Decode only if it's unreserved
|
|
194
|
+
if (/[-.~]/.test(char)) {
|
|
195
|
+
return char;
|
|
196
|
+
}
|
|
197
|
+
return match; // leave other encodings intact
|
|
198
|
+
});
|
|
170
199
|
}
|
|
171
|
-
|
|
172
|
-
expandUrlTemplate
|
|
173
|
-
};
|
|
200
|
+
//# sourceMappingURL=urlTemplate.js.map
|
|
@@ -1,7 +1 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["/mnt/vss/_work/1/s/sdk/ai/ai-projects/src/static-helpers/urlTemplate.ts"],
|
|
4
|
-
"sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n// ---------------------\n// interfaces\n// ---------------------\ninterface ValueOptions {\n isFirst: boolean; // is first value in the expression\n op?: string; // operator\n varValue?: any; // variable value\n varName?: string; // variable name\n modifier?: string; // modifier e.g *\n reserved?: boolean; // if true we'll keep reserved words with not encoding\n}\n\nexport interface UrlTemplateOptions {\n // if set to true, reserved characters will not be encoded\n allowReserved?: boolean;\n}\n\n// ---------------------\n// helpers\n// ---------------------\nfunction encodeComponent(val: string, reserved?: boolean, op?: string): string {\n return (reserved ?? op === \"+\") || op === \"#\"\n ? encodeReservedComponent(val)\n : encodeRFC3986URIComponent(val);\n}\n\nfunction encodeReservedComponent(str: string): string {\n return str\n .split(/(%[0-9A-Fa-f]{2})/g)\n .map((part) => (!/%[0-9A-Fa-f]/.test(part) ? encodeURI(part) : part))\n .join(\"\");\n}\n\nfunction encodeRFC3986URIComponent(str: string): string {\n return encodeURIComponent(str).replace(\n /[!'()*]/g,\n (c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`,\n );\n}\n\nfunction isDefined(val: any): boolean {\n return val !== undefined && val !== null;\n}\n\nfunction getNamedAndIfEmpty(op?: string): [boolean, string] {\n return [!!op && [\";\", \"?\", \"&\"].includes(op), !!op && [\"?\", \"&\"].includes(op) ? \"=\" : \"\"];\n}\n\nfunction getFirstOrSep(op?: string, isFirst = false): string {\n if (isFirst) {\n return !op || op === \"+\" ? \"\" : op;\n } else if (!op || op === \"+\" || op === \"#\") {\n return \",\";\n } else if (op === \"?\") {\n return \"&\";\n } else {\n return op;\n }\n}\n\nfunction getExpandedValue(option: ValueOptions): string {\n let isFirst = option.isFirst;\n const { op, varName, varValue: value, reserved } = option;\n const vals: string[] = [];\n const [named, ifEmpty] = getNamedAndIfEmpty(op);\n\n if (Array.isArray(value)) {\n for (const val of value.filter(isDefined)) {\n // prepare the following parts: separator, varName, value\n vals.push(`${getFirstOrSep(op, isFirst)}`);\n if (named && varName) {\n vals.push(`${encodeURIComponent(varName)}`);\n if (val === \"\") {\n vals.push(ifEmpty);\n } else {\n vals.push(\"=\");\n }\n }\n vals.push(encodeComponent(val, reserved, op));\n isFirst = false;\n }\n } else if (typeof value === \"object\") {\n for (const key of Object.keys(value)) {\n const val = value[key];\n if (!isDefined(val)) {\n continue;\n }\n // prepare the following parts: separator, key, value\n vals.push(`${getFirstOrSep(op, isFirst)}`);\n if (key) {\n vals.push(`${encodeURIComponent(key)}`);\n if (named && val === \"\") {\n vals.push(ifEmpty);\n } else {\n vals.push(\"=\");\n }\n }\n vals.push(encodeComponent(val, reserved, op));\n isFirst = false;\n }\n }\n return vals.join(\"\");\n}\n\nfunction getNonExpandedValue(option: ValueOptions): string | undefined {\n const { op, varName, varValue: value, isFirst, reserved } = option;\n const vals: string[] = [];\n const first = getFirstOrSep(op, isFirst);\n const [named, ifEmpty] = getNamedAndIfEmpty(op);\n if (named && varName) {\n vals.push(encodeComponent(varName, reserved, op));\n if (value === \"\") {\n if (!ifEmpty) {\n vals.push(ifEmpty);\n }\n return !vals.join(\"\") ? undefined : `${first}${vals.join(\"\")}`;\n }\n vals.push(\"=\");\n }\n\n const items = [];\n if (Array.isArray(value)) {\n for (const val of value.filter(isDefined)) {\n items.push(encodeComponent(val, reserved, op));\n }\n } else if (typeof value === \"object\") {\n for (const key of Object.keys(value)) {\n if (!isDefined(value[key])) {\n continue;\n }\n items.push(encodeRFC3986URIComponent(key));\n items.push(encodeComponent(value[key], reserved, op));\n }\n }\n vals.push(items.join(\",\"));\n return !vals.join(\",\") ? undefined : `${first}${vals.join(\"\")}`;\n}\n\nfunction getVarValue(option: ValueOptions): string | undefined {\n const { op, varName, modifier, isFirst, reserved, varValue: value } = option;\n\n if (!isDefined(value)) {\n return undefined;\n } else if ([\"string\", \"number\", \"boolean\"].includes(typeof value)) {\n let val = value.toString();\n const [named, ifEmpty] = getNamedAndIfEmpty(op);\n const vals: string[] = [getFirstOrSep(op, isFirst)];\n if (named && varName) {\n // No need to encode varName considering it is already encoded\n vals.push(varName);\n if (val === \"\") {\n vals.push(ifEmpty);\n } else {\n vals.push(\"=\");\n }\n }\n if (modifier && modifier !== \"*\") {\n val = val.substring(0, parseInt(modifier, 10));\n }\n vals.push(encodeComponent(val, reserved, op));\n return vals.join(\"\");\n } else if (modifier === \"*\") {\n return getExpandedValue(option);\n } else {\n return getNonExpandedValue(option);\n }\n}\n\n// ---------------------------------------------------------------------------------------------------\n// This is an implementation of RFC 6570 URI Template: https://datatracker.ietf.org/doc/html/rfc6570.\n// ---------------------------------------------------------------------------------------------------\nexport function expandUrlTemplate(\n template: string,\n context: Record<string, any>,\n option?: UrlTemplateOptions,\n): string {\n const r = template.replace(/\\{([^{}]+)\\}|([^{}]+)/g, (_, expr, text) => {\n if (!expr) {\n return encodeReservedComponent(text);\n }\n let op;\n if ([\"+\", \"#\", \".\", \"/\", \";\", \"?\", \"&\"].includes(expr[0])) {\n op = expr[0];\n expr = expr.slice(1);\n }\n const varList = expr.split(/,/g);\n const result = [];\n for (const varSpec of varList) {\n const varMatch = /([^:*]*)(?::(\\d+)|(\\*))?/.exec(varSpec);\n if (!varMatch || !varMatch[1]) {\n continue;\n }\n const varValue = getVarValue({\n isFirst: result.length === 0,\n op,\n varValue: context[varMatch[1]],\n varName: varMatch[1],\n modifier: varMatch[2] || varMatch[3],\n reserved: option?.allowReserved,\n });\n if (varValue) {\n result.push(varValue);\n }\n }\n return result.join(\"\");\n });\n\n return normalizeUnreserved(r);\n}\n\n/**\n * Normalize an expanded URI by decoding percent-encoded unreserved characters.\n * RFC 3986 unreserved: \"-\" / \".\" / \"~\"\n */\nfunction normalizeUnreserved(uri: string): string {\n return uri.replace(/%([0-9A-Fa-f]{2})/g, (match, hex) => {\n const char = String.fromCharCode(parseInt(hex, 16));\n // Decode only if it's unreserved\n if (/[-.~]/.test(char)) {\n return char;\n }\n return match; // leave other encodings intact\n });\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
1
|
+
{"version":3,"file":"urlTemplate.js","sourceRoot":"","sources":["../../../src/static-helpers/urlTemplate.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n// ---------------------\n// interfaces\n// ---------------------\ninterface ValueOptions {\n isFirst: boolean; // is first value in the expression\n op?: string; // operator\n varValue?: any; // variable value\n varName?: string; // variable name\n modifier?: string; // modifier e.g *\n reserved?: boolean; // if true we'll keep reserved words with not encoding\n}\n\nexport interface UrlTemplateOptions {\n // if set to true, reserved characters will not be encoded\n allowReserved?: boolean;\n}\n\n// ---------------------\n// helpers\n// ---------------------\nfunction encodeComponent(val: string, reserved?: boolean, op?: string): string {\n return (reserved ?? op === \"+\") || op === \"#\"\n ? encodeReservedComponent(val)\n : encodeRFC3986URIComponent(val);\n}\n\nfunction encodeReservedComponent(str: string): string {\n return str\n .split(/(%[0-9A-Fa-f]{2})/g)\n .map((part) => (!/%[0-9A-Fa-f]/.test(part) ? encodeURI(part) : part))\n .join(\"\");\n}\n\nfunction encodeRFC3986URIComponent(str: string): string {\n return encodeURIComponent(str).replace(\n /[!'()*]/g,\n (c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`,\n );\n}\n\nfunction isDefined(val: any): boolean {\n return val !== undefined && val !== null;\n}\n\nfunction getNamedAndIfEmpty(op?: string): [boolean, string] {\n return [!!op && [\";\", \"?\", \"&\"].includes(op), !!op && [\"?\", \"&\"].includes(op) ? \"=\" : \"\"];\n}\n\nfunction getFirstOrSep(op?: string, isFirst = false): string {\n if (isFirst) {\n return !op || op === \"+\" ? \"\" : op;\n } else if (!op || op === \"+\" || op === \"#\") {\n return \",\";\n } else if (op === \"?\") {\n return \"&\";\n } else {\n return op;\n }\n}\n\nfunction getExpandedValue(option: ValueOptions): string {\n let isFirst = option.isFirst;\n const { op, varName, varValue: value, reserved } = option;\n const vals: string[] = [];\n const [named, ifEmpty] = getNamedAndIfEmpty(op);\n\n if (Array.isArray(value)) {\n for (const val of value.filter(isDefined)) {\n // prepare the following parts: separator, varName, value\n vals.push(`${getFirstOrSep(op, isFirst)}`);\n if (named && varName) {\n vals.push(`${encodeURIComponent(varName)}`);\n if (val === \"\") {\n vals.push(ifEmpty);\n } else {\n vals.push(\"=\");\n }\n }\n vals.push(encodeComponent(val, reserved, op));\n isFirst = false;\n }\n } else if (typeof value === \"object\") {\n for (const key of Object.keys(value)) {\n const val = value[key];\n if (!isDefined(val)) {\n continue;\n }\n // prepare the following parts: separator, key, value\n vals.push(`${getFirstOrSep(op, isFirst)}`);\n if (key) {\n vals.push(`${encodeURIComponent(key)}`);\n if (named && val === \"\") {\n vals.push(ifEmpty);\n } else {\n vals.push(\"=\");\n }\n }\n vals.push(encodeComponent(val, reserved, op));\n isFirst = false;\n }\n }\n return vals.join(\"\");\n}\n\nfunction getNonExpandedValue(option: ValueOptions): string | undefined {\n const { op, varName, varValue: value, isFirst, reserved } = option;\n const vals: string[] = [];\n const first = getFirstOrSep(op, isFirst);\n const [named, ifEmpty] = getNamedAndIfEmpty(op);\n if (named && varName) {\n vals.push(encodeComponent(varName, reserved, op));\n if (value === \"\") {\n if (!ifEmpty) {\n vals.push(ifEmpty);\n }\n return !vals.join(\"\") ? undefined : `${first}${vals.join(\"\")}`;\n }\n vals.push(\"=\");\n }\n\n const items = [];\n if (Array.isArray(value)) {\n for (const val of value.filter(isDefined)) {\n items.push(encodeComponent(val, reserved, op));\n }\n } else if (typeof value === \"object\") {\n for (const key of Object.keys(value)) {\n if (!isDefined(value[key])) {\n continue;\n }\n items.push(encodeRFC3986URIComponent(key));\n items.push(encodeComponent(value[key], reserved, op));\n }\n }\n vals.push(items.join(\",\"));\n return !vals.join(\",\") ? undefined : `${first}${vals.join(\"\")}`;\n}\n\nfunction getVarValue(option: ValueOptions): string | undefined {\n const { op, varName, modifier, isFirst, reserved, varValue: value } = option;\n\n if (!isDefined(value)) {\n return undefined;\n } else if ([\"string\", \"number\", \"boolean\"].includes(typeof value)) {\n let val = value.toString();\n const [named, ifEmpty] = getNamedAndIfEmpty(op);\n const vals: string[] = [getFirstOrSep(op, isFirst)];\n if (named && varName) {\n // No need to encode varName considering it is already encoded\n vals.push(varName);\n if (val === \"\") {\n vals.push(ifEmpty);\n } else {\n vals.push(\"=\");\n }\n }\n if (modifier && modifier !== \"*\") {\n val = val.substring(0, parseInt(modifier, 10));\n }\n vals.push(encodeComponent(val, reserved, op));\n return vals.join(\"\");\n } else if (modifier === \"*\") {\n return getExpandedValue(option);\n } else {\n return getNonExpandedValue(option);\n }\n}\n\n// ---------------------------------------------------------------------------------------------------\n// This is an implementation of RFC 6570 URI Template: https://datatracker.ietf.org/doc/html/rfc6570.\n// ---------------------------------------------------------------------------------------------------\nexport function expandUrlTemplate(\n template: string,\n context: Record<string, any>,\n option?: UrlTemplateOptions,\n): string {\n const r = template.replace(/\\{([^{}]+)\\}|([^{}]+)/g, (_, expr, text) => {\n if (!expr) {\n return encodeReservedComponent(text);\n }\n let op;\n if ([\"+\", \"#\", \".\", \"/\", \";\", \"?\", \"&\"].includes(expr[0])) {\n op = expr[0];\n expr = expr.slice(1);\n }\n const varList = expr.split(/,/g);\n const result = [];\n for (const varSpec of varList) {\n const varMatch = /([^:*]*)(?::(\\d+)|(\\*))?/.exec(varSpec);\n if (!varMatch || !varMatch[1]) {\n continue;\n }\n const varValue = getVarValue({\n isFirst: result.length === 0,\n op,\n varValue: context[varMatch[1]],\n varName: varMatch[1],\n modifier: varMatch[2] || varMatch[3],\n reserved: option?.allowReserved,\n });\n if (varValue) {\n result.push(varValue);\n }\n }\n return result.join(\"\");\n });\n\n return normalizeUnreserved(r);\n}\n\n/**\n * Normalize an expanded URI by decoding percent-encoded unreserved characters.\n * RFC 3986 unreserved: \"-\" / \".\" / \"~\"\n */\nfunction normalizeUnreserved(uri: string): string {\n return uri.replace(/%([0-9A-Fa-f]{2})/g, (match, hex) => {\n const char = String.fromCharCode(parseInt(hex, 16));\n // Decode only if it's unreserved\n if (/[-.~]/.test(char)) {\n return char;\n }\n return match; // leave other encodings intact\n });\n}\n"]}
|
package/dist/esm/util.js
CHANGED
|
@@ -1,72 +1,93 @@
|
|
|
1
1
|
import { createHttpHeaders } from "@azure/core-rest-pipeline";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
for (const nullHeader of headers.nulls) {
|
|
10
|
-
result.delete(nullHeader);
|
|
11
|
-
}
|
|
2
|
+
/*
|
|
3
|
+
* @param headers the openai defaultHeaders in openai client options
|
|
4
|
+
* @returns HttpHeaders, normalized from various OpenAI header formats
|
|
5
|
+
*/
|
|
6
|
+
export const normalizeOpenAIHeaders = (headers) => {
|
|
7
|
+
if (!headers) {
|
|
8
|
+
return createHttpHeaders();
|
|
12
9
|
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
} else {
|
|
23
|
-
rawHeaders[key] = strValue;
|
|
10
|
+
// Handle NullableHeaders (OpenAI internal type with values and nulls properties)
|
|
11
|
+
// Check this first before other object checks
|
|
12
|
+
if ("values" in headers && "nulls" in headers) {
|
|
13
|
+
const result = normalizeOpenAIHeaders(headers.values);
|
|
14
|
+
// Remove headers that were explicitly set to null
|
|
15
|
+
if (result && headers.nulls instanceof Set && headers.nulls.size > 0) {
|
|
16
|
+
for (const nullHeader of headers.nulls) {
|
|
17
|
+
result.delete(nullHeader);
|
|
18
|
+
}
|
|
24
19
|
}
|
|
25
|
-
|
|
20
|
+
return result;
|
|
26
21
|
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
22
|
+
// Handle array format: readonly HeaderValue[][]
|
|
23
|
+
// Check arrays before forEach to avoid catching arrays with the forEach check
|
|
24
|
+
if (Array.isArray(headers)) {
|
|
25
|
+
const rawHeaders = {};
|
|
26
|
+
for (const [key, value] of headers) {
|
|
27
|
+
if (key && value !== null && value !== undefined) {
|
|
28
|
+
const strValue = String(value);
|
|
29
|
+
// Merge multiple headers with the same name using comma separation
|
|
30
|
+
if (rawHeaders[key]) {
|
|
31
|
+
rawHeaders[key] = `${rawHeaders[key]}, ${strValue}`;
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
rawHeaders[key] = strValue;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
37
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
38
|
+
return createHttpHeaders(rawHeaders);
|
|
39
|
+
}
|
|
40
|
+
// Handle Headers object (Web API Headers) - use duck typing to avoid Node.js version warnings
|
|
41
|
+
if ("forEach" in headers && typeof headers.forEach === "function") {
|
|
42
|
+
const rawHeaders = {};
|
|
43
|
+
// Type assertion since we've verified it has forEach
|
|
44
|
+
headers.forEach((value, key) => {
|
|
45
|
+
// Merge multiple headers with the same name using comma separation
|
|
46
|
+
if (rawHeaders[key]) {
|
|
47
|
+
rawHeaders[key] = `${rawHeaders[key]}, ${value}`;
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
rawHeaders[key] = value;
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
return createHttpHeaders(rawHeaders);
|
|
54
|
+
}
|
|
55
|
+
// Handle Record<string, HeaderValue | readonly HeaderValue[]>
|
|
56
|
+
if (typeof headers === "object" && headers !== null) {
|
|
57
|
+
const rawHeaders = {};
|
|
58
|
+
for (const [key, value] of Object.entries(headers)) {
|
|
59
|
+
if (value === null || value === undefined) {
|
|
60
|
+
continue;
|
|
61
|
+
}
|
|
62
|
+
if (Array.isArray(value)) {
|
|
63
|
+
// Join multiple values with comma (standard HTTP header behavior)
|
|
64
|
+
const filtered = value.filter((v) => v !== null && v !== undefined).map(String);
|
|
65
|
+
if (filtered.length > 0) {
|
|
66
|
+
rawHeaders[key] = filtered.join(", ");
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
rawHeaders[key] = String(value);
|
|
71
|
+
}
|
|
52
72
|
}
|
|
53
|
-
|
|
54
|
-
rawHeaders[key] = String(value);
|
|
55
|
-
}
|
|
73
|
+
return createHttpHeaders(rawHeaders);
|
|
56
74
|
}
|
|
57
|
-
return createHttpHeaders(
|
|
58
|
-
}
|
|
59
|
-
return createHttpHeaders();
|
|
60
|
-
};
|
|
61
|
-
const getOpenAIDefaultHeaders = (defaultHeaders, userAgentPrefix) => {
|
|
62
|
-
const headers = normalizeOpenAIHeaders(defaultHeaders);
|
|
63
|
-
if (!headers.has("User-Agent")) {
|
|
64
|
-
const clientIdentifier = userAgentPrefix ? `${userAgentPrefix}-AIProjectClient` : "AIProjectClient";
|
|
65
|
-
headers.set("User-Agent", `${clientIdentifier} OpenAI/JS`);
|
|
66
|
-
}
|
|
67
|
-
return headers;
|
|
75
|
+
return createHttpHeaders();
|
|
68
76
|
};
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
77
|
+
/**
|
|
78
|
+
* Get OpenAI default headers with user-agent set appropriately
|
|
79
|
+
* @param defaultHeaders - The default headers from OpenAI client options
|
|
80
|
+
* @param userAgentPrefix - Optional user agent prefix to prepend from AIProjectClient options
|
|
81
|
+
* @returns HttpHeaders with normalized headers and user-agent set
|
|
82
|
+
*/
|
|
83
|
+
export const getOpenAIDefaultHeaders = (defaultHeaders, userAgentPrefix) => {
|
|
84
|
+
const headers = normalizeOpenAIHeaders(defaultHeaders);
|
|
85
|
+
if (!headers.has("User-Agent")) {
|
|
86
|
+
const clientIdentifier = userAgentPrefix
|
|
87
|
+
? `${userAgentPrefix}-AIProjectClient`
|
|
88
|
+
: "AIProjectClient";
|
|
89
|
+
headers.set("User-Agent", `${clientIdentifier} OpenAI/JS`);
|
|
90
|
+
}
|
|
91
|
+
return headers;
|
|
72
92
|
};
|
|
93
|
+
//# sourceMappingURL=util.js.map
|
package/dist/esm/util.js.map
CHANGED
|
@@ -1,7 +1 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["/mnt/vss/_work/1/s/sdk/ai/ai-projects/src/util.ts"],
|
|
4
|
-
"sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { ClientOptions as OpenAIClientOptions } from \"openai\";\nimport type { HttpHeaders, RawHttpHeadersInput } from \"@azure/core-rest-pipeline\";\nimport { createHttpHeaders } from \"@azure/core-rest-pipeline\";\n\n/*\n * @param headers the openai defaultHeaders in openai client options\n * @returns HttpHeaders, normalized from various OpenAI header formats\n */\nexport const normalizeOpenAIHeaders = (\n headers?: OpenAIClientOptions[\"defaultHeaders\"],\n): HttpHeaders => {\n if (!headers) {\n return createHttpHeaders();\n }\n\n // Handle NullableHeaders (OpenAI internal type with values and nulls properties)\n // Check this first before other object checks\n if (\"values\" in headers && \"nulls\" in headers) {\n const result = normalizeOpenAIHeaders(headers.values as OpenAIClientOptions[\"defaultHeaders\"]);\n\n // Remove headers that were explicitly set to null\n if (result && headers.nulls instanceof Set && headers.nulls.size > 0) {\n for (const nullHeader of headers.nulls) {\n result.delete(nullHeader);\n }\n }\n\n return result;\n }\n\n // Handle array format: readonly HeaderValue[][]\n // Check arrays before forEach to avoid catching arrays with the forEach check\n if (Array.isArray(headers)) {\n const rawHeaders: RawHttpHeadersInput = {};\n for (const [key, value] of headers) {\n if (key && value !== null && value !== undefined) {\n const strValue = String(value);\n // Merge multiple headers with the same name using comma separation\n if (rawHeaders[key]) {\n rawHeaders[key] = `${rawHeaders[key]}, ${strValue}`;\n } else {\n rawHeaders[key] = strValue;\n }\n }\n }\n return createHttpHeaders(rawHeaders);\n }\n\n // Handle Headers object (Web API Headers) - use duck typing to avoid Node.js version warnings\n if (\"forEach\" in headers && typeof headers.forEach === \"function\") {\n const rawHeaders: RawHttpHeadersInput = {};\n // Type assertion since we've verified it has forEach\n (headers as { forEach: (callback: (value: string, key: string) => void) => void }).forEach(\n (value, key) => {\n // Merge multiple headers with the same name using comma separation\n if (rawHeaders[key]) {\n rawHeaders[key] = `${rawHeaders[key]}, ${value}`;\n } else {\n rawHeaders[key] = value;\n }\n },\n );\n return createHttpHeaders(rawHeaders);\n }\n\n // Handle Record<string, HeaderValue | readonly HeaderValue[]>\n if (typeof headers === \"object\" && headers !== null) {\n const rawHeaders: RawHttpHeadersInput = {};\n for (const [key, value] of Object.entries(headers)) {\n if (value === null || value === undefined) {\n continue;\n }\n if (Array.isArray(value)) {\n // Join multiple values with comma (standard HTTP header behavior)\n const filtered = value.filter((v) => v !== null && v !== undefined).map(String);\n if (filtered.length > 0) {\n rawHeaders[key] = filtered.join(\", \");\n }\n } else {\n rawHeaders[key] = String(value);\n }\n }\n return createHttpHeaders(rawHeaders);\n }\n\n return createHttpHeaders();\n};\n\n/**\n * Get OpenAI default headers with user-agent set appropriately\n * @param defaultHeaders - The default headers from OpenAI client options\n * @param userAgentPrefix - Optional user agent prefix to prepend from AIProjectClient options\n * @returns HttpHeaders with normalized headers and user-agent set\n */\nexport const getOpenAIDefaultHeaders = (\n defaultHeaders?: OpenAIClientOptions[\"defaultHeaders\"],\n userAgentPrefix?: string,\n): HttpHeaders => {\n const headers = normalizeOpenAIHeaders(defaultHeaders);\n\n if (!headers.has(\"User-Agent\")) {\n const clientIdentifier = userAgentPrefix\n ? `${userAgentPrefix}-AIProjectClient`\n : \"AIProjectClient\";\n headers.set(\"User-Agent\", `${clientIdentifier} OpenAI/JS`);\n }\n\n return headers;\n};\n"],
|
|
5
|
-
"mappings": "AAIA,SAAS,yBAAyB;AAM3B,MAAM,yBAAyB,CACpC,YACgB;AAChB,MAAI,CAAC,SAAS;AACZ,WAAO,kBAAkB;AAAA,EAC3B;AAIA,MAAI,YAAY,WAAW,WAAW,SAAS;AAC7C,UAAM,SAAS,uBAAuB,QAAQ,MAA+C;AAG7F,QAAI,UAAU,QAAQ,iBAAiB,OAAO,QAAQ,MAAM,OAAO,GAAG;AACpE,iBAAW,cAAc,QAAQ,OAAO;AACtC,eAAO,OAAO,UAAU;AAAA,MAC1B;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAIA,MAAI,MAAM,QAAQ,OAAO,GAAG;AAC1B,UAAM,aAAkC,CAAC;AACzC,eAAW,CAAC,KAAK,KAAK,KAAK,SAAS;AAClC,UAAI,OAAO,UAAU,QAAQ,UAAU,QAAW;AAChD,cAAM,WAAW,OAAO,KAAK;AAE7B,YAAI,WAAW,GAAG,GAAG;AACnB,qBAAW,GAAG,IAAI,GAAG,WAAW,GAAG,CAAC,KAAK,QAAQ;AAAA,QACnD,OAAO;AACL,qBAAW,GAAG,IAAI;AAAA,QACpB;AAAA,MACF;AAAA,IACF;AACA,WAAO,kBAAkB,UAAU;AAAA,EACrC;AAGA,MAAI,aAAa,WAAW,OAAO,QAAQ,YAAY,YAAY;AACjE,UAAM,aAAkC,CAAC;AAEzC,IAAC,QAAkF;AAAA,MACjF,CAAC,OAAO,QAAQ;AAEd,YAAI,WAAW,GAAG,GAAG;AACnB,qBAAW,GAAG,IAAI,GAAG,WAAW,GAAG,CAAC,KAAK,KAAK;AAAA,QAChD,OAAO;AACL,qBAAW,GAAG,IAAI;AAAA,QACpB;AAAA,MACF;AAAA,IACF;AACA,WAAO,kBAAkB,UAAU;AAAA,EACrC;AAGA,MAAI,OAAO,YAAY,YAAY,YAAY,MAAM;AACnD,UAAM,aAAkC,CAAC;AACzC,eAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,OAAO,GAAG;AAClD,UAAI,UAAU,QAAQ,UAAU,QAAW;AACzC;AAAA,MACF;AACA,UAAI,MAAM,QAAQ,KAAK,GAAG;AAExB,cAAM,WAAW,MAAM,OAAO,CAAC,MAAM,MAAM,QAAQ,MAAM,MAAS,EAAE,IAAI,MAAM;AAC9E,YAAI,SAAS,SAAS,GAAG;AACvB,qBAAW,GAAG,IAAI,SAAS,KAAK,IAAI;AAAA,QACtC;AAAA,MACF,OAAO;AACL,mBAAW,GAAG,IAAI,OAAO,KAAK;AAAA,MAChC;AAAA,IACF;AACA,WAAO,kBAAkB,UAAU;AAAA,EACrC;AAEA,SAAO,kBAAkB;AAC3B;AAQO,MAAM,0BAA0B,CACrC,gBACA,oBACgB;AAChB,QAAM,UAAU,uBAAuB,cAAc;AAErD,MAAI,CAAC,QAAQ,IAAI,YAAY,GAAG;AAC9B,UAAM,mBAAmB,kBACrB,GAAG,eAAe,qBAClB;AACJ,YAAQ,IAAI,cAAc,GAAG,gBAAgB,YAAY;AAAA,EAC3D;AAEA,SAAO;AACT;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { ClientOptions as OpenAIClientOptions } from \"openai\";\nimport type { HttpHeaders, RawHttpHeadersInput } from \"@azure/core-rest-pipeline\";\nimport { createHttpHeaders } from \"@azure/core-rest-pipeline\";\n\n/*\n * @param headers the openai defaultHeaders in openai client options\n * @returns HttpHeaders, normalized from various OpenAI header formats\n */\nexport const normalizeOpenAIHeaders = (\n headers?: OpenAIClientOptions[\"defaultHeaders\"],\n): HttpHeaders => {\n if (!headers) {\n return createHttpHeaders();\n }\n\n // Handle NullableHeaders (OpenAI internal type with values and nulls properties)\n // Check this first before other object checks\n if (\"values\" in headers && \"nulls\" in headers) {\n const result = normalizeOpenAIHeaders(headers.values as OpenAIClientOptions[\"defaultHeaders\"]);\n\n // Remove headers that were explicitly set to null\n if (result && headers.nulls instanceof Set && headers.nulls.size > 0) {\n for (const nullHeader of headers.nulls) {\n result.delete(nullHeader);\n }\n }\n\n return result;\n }\n\n // Handle array format: readonly HeaderValue[][]\n // Check arrays before forEach to avoid catching arrays with the forEach check\n if (Array.isArray(headers)) {\n const rawHeaders: RawHttpHeadersInput = {};\n for (const [key, value] of headers) {\n if (key && value !== null && value !== undefined) {\n const strValue = String(value);\n // Merge multiple headers with the same name using comma separation\n if (rawHeaders[key]) {\n rawHeaders[key] = `${rawHeaders[key]}, ${strValue}`;\n } else {\n rawHeaders[key] = strValue;\n }\n }\n }\n return createHttpHeaders(rawHeaders);\n }\n\n // Handle Headers object (Web API Headers) - use duck typing to avoid Node.js version warnings\n if (\"forEach\" in headers && typeof headers.forEach === \"function\") {\n const rawHeaders: RawHttpHeadersInput = {};\n // Type assertion since we've verified it has forEach\n (headers as { forEach: (callback: (value: string, key: string) => void) => void }).forEach(\n (value, key) => {\n // Merge multiple headers with the same name using comma separation\n if (rawHeaders[key]) {\n rawHeaders[key] = `${rawHeaders[key]}, ${value}`;\n } else {\n rawHeaders[key] = value;\n }\n },\n );\n return createHttpHeaders(rawHeaders);\n }\n\n // Handle Record<string, HeaderValue | readonly HeaderValue[]>\n if (typeof headers === \"object\" && headers !== null) {\n const rawHeaders: RawHttpHeadersInput = {};\n for (const [key, value] of Object.entries(headers)) {\n if (value === null || value === undefined) {\n continue;\n }\n if (Array.isArray(value)) {\n // Join multiple values with comma (standard HTTP header behavior)\n const filtered = value.filter((v) => v !== null && v !== undefined).map(String);\n if (filtered.length > 0) {\n rawHeaders[key] = filtered.join(\", \");\n }\n } else {\n rawHeaders[key] = String(value);\n }\n }\n return createHttpHeaders(rawHeaders);\n }\n\n return createHttpHeaders();\n};\n\n/**\n * Get OpenAI default headers with user-agent set appropriately\n * @param defaultHeaders - The default headers from OpenAI client options\n * @param userAgentPrefix - Optional user agent prefix to prepend from AIProjectClient options\n * @returns HttpHeaders with normalized headers and user-agent set\n */\nexport const getOpenAIDefaultHeaders = (\n defaultHeaders?: OpenAIClientOptions[\"defaultHeaders\"],\n userAgentPrefix?: string,\n): HttpHeaders => {\n const headers = normalizeOpenAIHeaders(defaultHeaders);\n\n if (!headers.has(\"User-Agent\")) {\n const clientIdentifier = userAgentPrefix\n ? `${userAgentPrefix}-AIProjectClient`\n : \"AIProjectClient\";\n headers.set(\"User-Agent\", `${clientIdentifier} OpenAI/JS`);\n }\n\n return headers;\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../../../../src/api/datasets/operations.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,4BAA4B,EAAE,gBAAgB,IAAI,MAAM,EAAE,MAAM,aAAa,CAAC;AAC5F,OAAO,KAAK,EACV,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,wBAAwB,CAAC;AAShC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAGrE,OAAO,KAAK,EACV,oCAAoC,EACpC,mCAAmC,EACnC,oCAAoC,EACpC,4BAA4B,EAC5B,yBAAyB,EACzB,0BAA0B,EAC1B,kCAAkC,EACnC,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../../../../src/api/datasets/operations.ts"],"names":[],"mappings":"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"}
|