@aws-sdk/util-endpoints 3.159.0 → 3.167.0
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/CHANGELOG.md +24 -0
- package/dist-cjs/index.js +2 -1
- package/dist-cjs/lib/getAttr.js +2 -2
- package/dist-cjs/lib/getAttrPathList.js +3 -3
- package/dist-cjs/resolveEndpoint.js +28 -0
- package/dist-cjs/{EndpointError.js → types/EndpointError.js} +0 -0
- package/dist-cjs/types/EndpointRuleObject.js +2 -0
- package/dist-cjs/types/ErrorRuleObject.js +2 -0
- package/dist-cjs/types/RuleSetObject.js +2 -0
- package/dist-cjs/types/TreeRuleObject.js +2 -0
- package/dist-cjs/types/index.js +9 -0
- package/dist-cjs/types/shared.js +2 -0
- package/dist-cjs/utils/callFunction.js +11 -0
- package/dist-cjs/utils/evaluateCondition.js +16 -0
- package/dist-cjs/utils/evaluateConditions.js +24 -0
- package/dist-cjs/utils/evaluateEndpointRule.js +29 -0
- package/dist-cjs/utils/evaluateErrorRule.js +18 -0
- package/dist-cjs/utils/evaluateExpression.js +20 -0
- package/dist-cjs/utils/evaluateRules.js +31 -0
- package/dist-cjs/utils/evaluateTemplate.js +27 -0
- package/dist-cjs/utils/evaluateTreeRule.js +17 -0
- package/dist-cjs/utils/getEndpointHeaders.js +16 -0
- package/dist-cjs/utils/getEndpointProperties.js +9 -0
- package/dist-cjs/utils/getEndpointProperty.js +25 -0
- package/dist-cjs/utils/getEndpointUrl.js +13 -0
- package/dist-cjs/utils/getReferenceValue.js +15 -0
- package/dist-cjs/utils/index.js +4 -0
- package/dist-es/index.js +2 -1
- package/dist-es/lib/getAttr.js +1 -1
- package/dist-es/lib/getAttrPathList.js +1 -1
- package/dist-es/resolveEndpoint.js +58 -0
- package/dist-es/{EndpointError.js → types/EndpointError.js} +0 -0
- package/dist-es/types/EndpointRuleObject.js +1 -0
- package/dist-es/types/ErrorRuleObject.js +1 -0
- package/dist-es/types/RuleSetObject.js +1 -0
- package/dist-es/types/TreeRuleObject.js +1 -0
- package/dist-es/types/index.js +6 -0
- package/dist-es/types/shared.js +1 -0
- package/dist-es/utils/callFunction.js +8 -0
- package/dist-es/utils/evaluateCondition.js +11 -0
- package/dist-es/utils/evaluateConditions.js +27 -0
- package/dist-es/utils/evaluateEndpointRule.js +19 -0
- package/dist-es/utils/evaluateErrorRule.js +12 -0
- package/dist-es/utils/evaluateExpression.js +16 -0
- package/dist-es/utils/evaluateRules.js +39 -0
- package/dist-es/utils/evaluateTemplate.js +24 -0
- package/dist-es/utils/evaluateTreeRule.js +11 -0
- package/dist-es/utils/getEndpointHeaders.js +16 -0
- package/dist-es/utils/getEndpointProperties.js +9 -0
- package/dist-es/utils/getEndpointProperty.js +21 -0
- package/dist-es/utils/getEndpointUrl.js +9 -0
- package/dist-es/utils/getReferenceValue.js +10 -0
- package/dist-es/utils/index.js +1 -0
- package/dist-types/index.d.ts +2 -1
- package/dist-types/resolveEndpoint.d.ts +6 -0
- package/dist-types/ts3.4/index.d.ts +2 -1
- package/dist-types/ts3.4/resolveEndpoint.d.ts +4 -0
- package/dist-types/ts3.4/{EndpointError.d.ts → types/EndpointError.d.ts} +0 -0
- package/dist-types/ts3.4/types/EndpointRuleObject.d.ts +15 -0
- package/dist-types/ts3.4/types/ErrorRuleObject.d.ts +7 -0
- package/dist-types/ts3.4/types/RuleSetObject.d.ts +18 -0
- package/dist-types/ts3.4/types/TreeRuleObject.d.ts +10 -0
- package/dist-types/ts3.4/types/index.d.ts +6 -0
- package/dist-types/ts3.4/types/shared.d.ts +25 -0
- package/dist-types/ts3.4/utils/callFunction.d.ts +2 -0
- package/dist-types/ts3.4/utils/evaluateCondition.d.ts +8 -0
- package/dist-types/ts3.4/utils/evaluateConditions.d.ts +8 -0
- package/dist-types/ts3.4/utils/evaluateEndpointRule.d.ts +3 -0
- package/dist-types/ts3.4/utils/evaluateErrorRule.d.ts +2 -0
- package/dist-types/ts3.4/utils/evaluateExpression.d.ts +2 -0
- package/dist-types/ts3.4/utils/evaluateRules.d.ts +3 -0
- package/dist-types/ts3.4/utils/evaluateTemplate.d.ts +2 -0
- package/dist-types/ts3.4/utils/evaluateTreeRule.d.ts +3 -0
- package/dist-types/ts3.4/utils/getEndpointHeaders.d.ts +2 -0
- package/dist-types/ts3.4/utils/getEndpointProperties.d.ts +2 -0
- package/dist-types/ts3.4/utils/getEndpointProperty.d.ts +3 -0
- package/dist-types/ts3.4/utils/getEndpointUrl.d.ts +2 -0
- package/dist-types/ts3.4/utils/getReferenceValue.d.ts +2 -0
- package/dist-types/ts3.4/utils/index.d.ts +1 -0
- package/dist-types/{EndpointError.d.ts → types/EndpointError.d.ts} +0 -0
- package/dist-types/types/EndpointRuleObject.d.ts +15 -0
- package/dist-types/types/ErrorRuleObject.d.ts +7 -0
- package/dist-types/types/RuleSetObject.d.ts +18 -0
- package/dist-types/types/TreeRuleObject.d.ts +10 -0
- package/dist-types/types/index.d.ts +6 -0
- package/dist-types/types/shared.d.ts +25 -0
- package/dist-types/utils/callFunction.d.ts +2 -0
- package/dist-types/utils/evaluateCondition.d.ts +8 -0
- package/dist-types/utils/evaluateConditions.d.ts +8 -0
- package/dist-types/utils/evaluateEndpointRule.d.ts +3 -0
- package/dist-types/utils/evaluateErrorRule.d.ts +2 -0
- package/dist-types/utils/evaluateExpression.d.ts +2 -0
- package/dist-types/utils/evaluateRules.d.ts +3 -0
- package/dist-types/utils/evaluateTemplate.d.ts +2 -0
- package/dist-types/utils/evaluateTreeRule.d.ts +3 -0
- package/dist-types/utils/getEndpointHeaders.d.ts +2 -0
- package/dist-types/utils/getEndpointProperties.d.ts +2 -0
- package/dist-types/utils/getEndpointProperty.d.ts +3 -0
- package/dist-types/utils/getEndpointUrl.d.ts +2 -0
- package/dist-types/utils/getReferenceValue.d.ts +2 -0
- package/dist-types/utils/index.d.ts +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { EndpointError } from "../types";
|
|
2
|
+
import { callFunction } from "./callFunction";
|
|
3
|
+
import { evaluateTemplate } from "./evaluateTemplate";
|
|
4
|
+
import { getReferenceValue } from "./getReferenceValue";
|
|
5
|
+
export var evaluateExpression = function (obj, keyName, options) {
|
|
6
|
+
if (typeof obj === "string") {
|
|
7
|
+
return evaluateTemplate(obj, options);
|
|
8
|
+
}
|
|
9
|
+
else if (obj["fn"]) {
|
|
10
|
+
return callFunction(obj, options);
|
|
11
|
+
}
|
|
12
|
+
else if (obj["ref"]) {
|
|
13
|
+
return getReferenceValue(obj, options);
|
|
14
|
+
}
|
|
15
|
+
throw new EndpointError("'".concat(keyName, "': ").concat(String(obj), " is not a string, function or reference."));
|
|
16
|
+
};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { __values } from "tslib";
|
|
2
|
+
import { EndpointError } from "../types";
|
|
3
|
+
import { evaluateEndpointRule } from "./evaluateEndpointRule";
|
|
4
|
+
import { evaluateErrorRule } from "./evaluateErrorRule";
|
|
5
|
+
import { evaluateTreeRule } from "./evaluateTreeRule";
|
|
6
|
+
export var evaluateRules = function (rules, options) {
|
|
7
|
+
var e_1, _a;
|
|
8
|
+
try {
|
|
9
|
+
for (var rules_1 = __values(rules), rules_1_1 = rules_1.next(); !rules_1_1.done; rules_1_1 = rules_1.next()) {
|
|
10
|
+
var rule = rules_1_1.value;
|
|
11
|
+
if (rule.type === "endpoint") {
|
|
12
|
+
var endpointOrUndefined = evaluateEndpointRule(rule, options);
|
|
13
|
+
if (endpointOrUndefined) {
|
|
14
|
+
return endpointOrUndefined;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
else if (rule.type === "error") {
|
|
18
|
+
evaluateErrorRule(rule, options);
|
|
19
|
+
}
|
|
20
|
+
else if (rule.type === "tree") {
|
|
21
|
+
var endpointOrUndefined = evaluateTreeRule(rule, options);
|
|
22
|
+
if (endpointOrUndefined) {
|
|
23
|
+
return endpointOrUndefined;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
throw new EndpointError("Unknown endpoint rule: ".concat(rule));
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
32
|
+
finally {
|
|
33
|
+
try {
|
|
34
|
+
if (rules_1_1 && !rules_1_1.done && (_a = rules_1.return)) _a.call(rules_1);
|
|
35
|
+
}
|
|
36
|
+
finally { if (e_1) throw e_1.error; }
|
|
37
|
+
}
|
|
38
|
+
throw new EndpointError("Rules evaluation failed");
|
|
39
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { __assign, __read, __spreadArray } from "tslib";
|
|
2
|
+
import { getAttr } from "../lib";
|
|
3
|
+
var ATTR_SHORTHAND_REGEX = new RegExp("\\${([\\w]+)#([\\w]+)}", "g");
|
|
4
|
+
export var evaluateTemplate = function (template, options) {
|
|
5
|
+
var templateToEvaluate = template
|
|
6
|
+
.replace(new RegExp("{([^{}]+)}", "g"), "${$1}")
|
|
7
|
+
.replace(new RegExp("{\\${([^{}]+)}}", "g"), "{$1}");
|
|
8
|
+
var templateContext = __assign(__assign({}, options.endpointParams), options.referenceRecord);
|
|
9
|
+
var attrShortHandList = templateToEvaluate.match(ATTR_SHORTHAND_REGEX) || [];
|
|
10
|
+
var attrShortHandMap = attrShortHandList.reduce(function (acc, attrShortHand) {
|
|
11
|
+
var indexOfHash = attrShortHand.indexOf("#");
|
|
12
|
+
var refName = attrShortHand.substring(2, indexOfHash);
|
|
13
|
+
var attrName = attrShortHand.substring(indexOfHash + 1, attrShortHand.length - 1);
|
|
14
|
+
acc[attrShortHand] = getAttr(templateContext[refName], attrName);
|
|
15
|
+
return acc;
|
|
16
|
+
}, {});
|
|
17
|
+
var templateWithAttr = Object.entries(attrShortHandMap).reduce(function (acc, _a) {
|
|
18
|
+
var _b = __read(_a, 2), shortHand = _b[0], value = _b[1];
|
|
19
|
+
return acc.replace(shortHand, value);
|
|
20
|
+
}, templateToEvaluate);
|
|
21
|
+
var templateContextNames = Object.keys(templateContext);
|
|
22
|
+
var templateContextValues = Object.values(templateContext);
|
|
23
|
+
return new (Function.bind.apply(Function, __spreadArray(__spreadArray([void 0], __read(templateContextNames), false), ["return `".concat(templateWithAttr, "`")], false)))().apply(void 0, __spreadArray([], __read(templateContextValues), false));
|
|
24
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { __assign } from "tslib";
|
|
2
|
+
import { evaluateConditions } from "./evaluateConditions";
|
|
3
|
+
import { evaluateRules } from "./evaluateRules";
|
|
4
|
+
export var evaluateTreeRule = function (treeRule, options) {
|
|
5
|
+
var conditions = treeRule.conditions, rules = treeRule.rules;
|
|
6
|
+
var _a = evaluateConditions(conditions, options), result = _a.result, referenceRecord = _a.referenceRecord;
|
|
7
|
+
if (!result) {
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
return evaluateRules(rules, __assign(__assign({}, options), { referenceRecord: __assign(__assign({}, options.referenceRecord), referenceRecord) }));
|
|
11
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { __assign, __read } from "tslib";
|
|
2
|
+
import { EndpointError } from "../types";
|
|
3
|
+
import { evaluateExpression } from "./evaluateExpression";
|
|
4
|
+
export var getEndpointHeaders = function (headers, options) {
|
|
5
|
+
return Object.entries(headers).reduce(function (acc, _a) {
|
|
6
|
+
var _b;
|
|
7
|
+
var _c = __read(_a, 2), headerKey = _c[0], headerVal = _c[1];
|
|
8
|
+
return (__assign(__assign({}, acc), (_b = {}, _b[headerKey] = headerVal.map(function (headerValEntry) {
|
|
9
|
+
var processedExpr = evaluateExpression(headerValEntry, "Header value entry", options);
|
|
10
|
+
if (typeof processedExpr !== "string") {
|
|
11
|
+
throw new EndpointError("Header '".concat(headerKey, "' value '").concat(processedExpr, "' is not a string"));
|
|
12
|
+
}
|
|
13
|
+
return processedExpr;
|
|
14
|
+
}), _b)));
|
|
15
|
+
}, {});
|
|
16
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { __assign, __read } from "tslib";
|
|
2
|
+
import { getEndpointProperty } from "./getEndpointProperty";
|
|
3
|
+
export var getEndpointProperties = function (properties, options) {
|
|
4
|
+
return Object.entries(properties).reduce(function (acc, _a) {
|
|
5
|
+
var _b;
|
|
6
|
+
var _c = __read(_a, 2), propertyKey = _c[0], propertyVal = _c[1];
|
|
7
|
+
return (__assign(__assign({}, acc), (_b = {}, _b[propertyKey] = getEndpointProperty(propertyVal, options), _b)));
|
|
8
|
+
}, {});
|
|
9
|
+
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { EndpointError } from "../types";
|
|
2
|
+
import { evaluateTemplate } from "./evaluateTemplate";
|
|
3
|
+
import { getEndpointProperties } from "./getEndpointProperties";
|
|
4
|
+
export var getEndpointProperty = function (property, options) {
|
|
5
|
+
if (Array.isArray(property)) {
|
|
6
|
+
return property.map(function (propertyEntry) { return getEndpointProperty(propertyEntry, options); });
|
|
7
|
+
}
|
|
8
|
+
switch (typeof property) {
|
|
9
|
+
case "string":
|
|
10
|
+
return evaluateTemplate(property, options);
|
|
11
|
+
case "object":
|
|
12
|
+
if (property === null) {
|
|
13
|
+
throw new EndpointError("Unexpected endpoint property: ".concat(property));
|
|
14
|
+
}
|
|
15
|
+
return getEndpointProperties(property, options);
|
|
16
|
+
case "boolean":
|
|
17
|
+
return property;
|
|
18
|
+
default:
|
|
19
|
+
throw new EndpointError("Unexpected endpoint property type: ".concat(typeof property));
|
|
20
|
+
}
|
|
21
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { EndpointError } from "../types";
|
|
2
|
+
import { evaluateExpression } from "./evaluateExpression";
|
|
3
|
+
export var getEndpointUrl = function (endpointUrl, options) {
|
|
4
|
+
var expression = evaluateExpression(endpointUrl, "Endpoint URL", options);
|
|
5
|
+
if (typeof expression === "string") {
|
|
6
|
+
return new URL(expression);
|
|
7
|
+
}
|
|
8
|
+
throw new EndpointError("Endpoint URL must be a string, got ".concat(typeof expression));
|
|
9
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { __assign } from "tslib";
|
|
2
|
+
import { EndpointError } from "../types";
|
|
3
|
+
export var getReferenceValue = function (_a, options) {
|
|
4
|
+
var ref = _a.ref;
|
|
5
|
+
var referenceRecord = __assign(__assign({}, options.endpointParams), options.referenceRecord);
|
|
6
|
+
if (referenceRecord[ref] == undefined) {
|
|
7
|
+
throw new EndpointError("Reference '".concat(ref, "' not defined"));
|
|
8
|
+
}
|
|
9
|
+
return referenceRecord[ref];
|
|
10
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./evaluateRules";
|
package/dist-types/index.d.ts
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export * from "./
|
|
1
|
+
export * from "./resolveEndpoint";
|
|
2
|
+
export * from "./types";
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { EndpointV2 } from "@aws-sdk/types";
|
|
2
|
+
import { EndpointResolverOptions, RuleSetObject } from "./types";
|
|
3
|
+
/**
|
|
4
|
+
* Resolves an endpoint URL by processing the endpoints ruleset and options.
|
|
5
|
+
*/
|
|
6
|
+
export declare const resolveEndpoint: (ruleSetObject: RuleSetObject, options: EndpointResolverOptions) => EndpointV2;
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export * from "./
|
|
1
|
+
export * from "./resolveEndpoint";
|
|
2
|
+
export * from "./types";
|
|
File without changes
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { EndpointObjectProperty } from "@aws-sdk/types";
|
|
2
|
+
import { ConditionObject, Expression } from "./shared";
|
|
3
|
+
export declare type EndpointObjectProperties = Record<string, EndpointObjectProperty>;
|
|
4
|
+
export declare type EndpointObjectHeaders = Record<string, Expression[]>;
|
|
5
|
+
export declare type EndpointObject = {
|
|
6
|
+
url: Expression;
|
|
7
|
+
properties?: EndpointObjectProperties;
|
|
8
|
+
headers?: EndpointObjectHeaders;
|
|
9
|
+
};
|
|
10
|
+
export declare type EndpointRuleObject = {
|
|
11
|
+
type: "endpoint";
|
|
12
|
+
conditions?: ConditionObject[];
|
|
13
|
+
endpoint: EndpointObject;
|
|
14
|
+
documentation?: string;
|
|
15
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { RuleSetRules } from "./TreeRuleObject";
|
|
2
|
+
export declare type DeprecatedObject = {
|
|
3
|
+
message?: string;
|
|
4
|
+
since?: string;
|
|
5
|
+
};
|
|
6
|
+
export declare type ParameterObject = {
|
|
7
|
+
type: "string" | "boolean";
|
|
8
|
+
default?: string | boolean;
|
|
9
|
+
required?: boolean;
|
|
10
|
+
documentation?: string;
|
|
11
|
+
deprecated?: DeprecatedObject;
|
|
12
|
+
};
|
|
13
|
+
export declare type RuleSetObject = {
|
|
14
|
+
version: string;
|
|
15
|
+
serviceId: string;
|
|
16
|
+
parameters: Record<string, ParameterObject>;
|
|
17
|
+
rules: RuleSetRules;
|
|
18
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { EndpointRuleObject } from "./EndpointRuleObject";
|
|
2
|
+
import { ErrorRuleObject } from "./ErrorRuleObject";
|
|
3
|
+
import { ConditionObject } from "./shared";
|
|
4
|
+
export declare type RuleSetRules = Array<EndpointRuleObject | ErrorRuleObject | TreeRuleObject>;
|
|
5
|
+
export declare type TreeRuleObject = {
|
|
6
|
+
type: "tree";
|
|
7
|
+
conditions?: ConditionObject[];
|
|
8
|
+
rules: RuleSetRules;
|
|
9
|
+
documentation?: string;
|
|
10
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Logger } from "@aws-sdk/types";
|
|
2
|
+
export declare type ReferenceObject = {
|
|
3
|
+
ref: string;
|
|
4
|
+
};
|
|
5
|
+
export declare type FunctionObject = {
|
|
6
|
+
fn: string;
|
|
7
|
+
argv: FunctionArgv;
|
|
8
|
+
};
|
|
9
|
+
export declare type FunctionArgv = Array<string | boolean | ReferenceObject | FunctionObject>;
|
|
10
|
+
export declare type FunctionReturn = string | boolean | number | {
|
|
11
|
+
[key: string]: FunctionReturn;
|
|
12
|
+
};
|
|
13
|
+
export declare type ConditionObject = FunctionObject & {
|
|
14
|
+
assign?: string;
|
|
15
|
+
};
|
|
16
|
+
export declare type Expression = string | ReferenceObject | FunctionObject;
|
|
17
|
+
export declare type EndpointParams = Record<string, string | boolean>;
|
|
18
|
+
export declare type EndpointResolverOptions = {
|
|
19
|
+
endpointParams: EndpointParams;
|
|
20
|
+
logger?: Logger;
|
|
21
|
+
};
|
|
22
|
+
export declare type ReferenceRecord = Record<string, FunctionReturn>;
|
|
23
|
+
export declare type EvaluateOptions = EndpointResolverOptions & {
|
|
24
|
+
referenceRecord: ReferenceRecord;
|
|
25
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ConditionObject, EvaluateOptions } from "../types";
|
|
2
|
+
export declare const evaluateCondition: ({ assign, ...fnArgs }: ConditionObject, options: EvaluateOptions) => {
|
|
3
|
+
toAssign?: {
|
|
4
|
+
name: string;
|
|
5
|
+
value: import("../types").FunctionReturn;
|
|
6
|
+
} | undefined;
|
|
7
|
+
result: boolean;
|
|
8
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ConditionObject, EvaluateOptions, FunctionReturn } from "../types";
|
|
2
|
+
export declare const evaluateConditions: (conditions: ConditionObject[] | undefined, options: EvaluateOptions) => {
|
|
3
|
+
result: false;
|
|
4
|
+
referenceRecord?: undefined;
|
|
5
|
+
} | {
|
|
6
|
+
result: boolean;
|
|
7
|
+
referenceRecord: Record<string, FunctionReturn>;
|
|
8
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./evaluateRules";
|
|
File without changes
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { EndpointObjectProperty } from "@aws-sdk/types";
|
|
2
|
+
import { ConditionObject, Expression } from "./shared";
|
|
3
|
+
export declare type EndpointObjectProperties = Record<string, EndpointObjectProperty>;
|
|
4
|
+
export declare type EndpointObjectHeaders = Record<string, Expression[]>;
|
|
5
|
+
export declare type EndpointObject = {
|
|
6
|
+
url: Expression;
|
|
7
|
+
properties?: EndpointObjectProperties;
|
|
8
|
+
headers?: EndpointObjectHeaders;
|
|
9
|
+
};
|
|
10
|
+
export declare type EndpointRuleObject = {
|
|
11
|
+
type: "endpoint";
|
|
12
|
+
conditions?: ConditionObject[];
|
|
13
|
+
endpoint: EndpointObject;
|
|
14
|
+
documentation?: string;
|
|
15
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { RuleSetRules } from "./TreeRuleObject";
|
|
2
|
+
export declare type DeprecatedObject = {
|
|
3
|
+
message?: string;
|
|
4
|
+
since?: string;
|
|
5
|
+
};
|
|
6
|
+
export declare type ParameterObject = {
|
|
7
|
+
type: "string" | "boolean";
|
|
8
|
+
default?: string | boolean;
|
|
9
|
+
required?: boolean;
|
|
10
|
+
documentation?: string;
|
|
11
|
+
deprecated?: DeprecatedObject;
|
|
12
|
+
};
|
|
13
|
+
export declare type RuleSetObject = {
|
|
14
|
+
version: string;
|
|
15
|
+
serviceId: string;
|
|
16
|
+
parameters: Record<string, ParameterObject>;
|
|
17
|
+
rules: RuleSetRules;
|
|
18
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { EndpointRuleObject } from "./EndpointRuleObject";
|
|
2
|
+
import { ErrorRuleObject } from "./ErrorRuleObject";
|
|
3
|
+
import { ConditionObject } from "./shared";
|
|
4
|
+
export declare type RuleSetRules = Array<EndpointRuleObject | ErrorRuleObject | TreeRuleObject>;
|
|
5
|
+
export declare type TreeRuleObject = {
|
|
6
|
+
type: "tree";
|
|
7
|
+
conditions?: ConditionObject[];
|
|
8
|
+
rules: RuleSetRules;
|
|
9
|
+
documentation?: string;
|
|
10
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Logger } from "@aws-sdk/types";
|
|
2
|
+
export declare type ReferenceObject = {
|
|
3
|
+
ref: string;
|
|
4
|
+
};
|
|
5
|
+
export declare type FunctionObject = {
|
|
6
|
+
fn: string;
|
|
7
|
+
argv: FunctionArgv;
|
|
8
|
+
};
|
|
9
|
+
export declare type FunctionArgv = Array<string | boolean | ReferenceObject | FunctionObject>;
|
|
10
|
+
export declare type FunctionReturn = string | boolean | number | {
|
|
11
|
+
[key: string]: FunctionReturn;
|
|
12
|
+
};
|
|
13
|
+
export declare type ConditionObject = FunctionObject & {
|
|
14
|
+
assign?: string;
|
|
15
|
+
};
|
|
16
|
+
export declare type Expression = string | ReferenceObject | FunctionObject;
|
|
17
|
+
export declare type EndpointParams = Record<string, string | boolean>;
|
|
18
|
+
export declare type EndpointResolverOptions = {
|
|
19
|
+
endpointParams: EndpointParams;
|
|
20
|
+
logger?: Logger;
|
|
21
|
+
};
|
|
22
|
+
export declare type ReferenceRecord = Record<string, FunctionReturn>;
|
|
23
|
+
export declare type EvaluateOptions = EndpointResolverOptions & {
|
|
24
|
+
referenceRecord: ReferenceRecord;
|
|
25
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ConditionObject, EvaluateOptions } from "../types";
|
|
2
|
+
export declare const evaluateCondition: ({ assign, ...fnArgs }: ConditionObject, options: EvaluateOptions) => {
|
|
3
|
+
toAssign?: {
|
|
4
|
+
name: string;
|
|
5
|
+
value: import("../types").FunctionReturn;
|
|
6
|
+
} | undefined;
|
|
7
|
+
result: boolean;
|
|
8
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ConditionObject, EvaluateOptions, FunctionReturn } from "../types";
|
|
2
|
+
export declare const evaluateConditions: (conditions: ConditionObject[] | undefined, options: EvaluateOptions) => {
|
|
3
|
+
result: false;
|
|
4
|
+
referenceRecord?: undefined;
|
|
5
|
+
} | {
|
|
6
|
+
result: boolean;
|
|
7
|
+
referenceRecord: Record<string, FunctionReturn>;
|
|
8
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./evaluateRules";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-sdk/util-endpoints",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.167.0",
|
|
4
4
|
"description": "Utilities to help with endpoint resolution",
|
|
5
5
|
"main": "./dist-cjs/index.js",
|
|
6
6
|
"module": "./dist-es/index.js",
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
},
|
|
21
21
|
"license": "Apache-2.0",
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@aws-sdk/types": "3.
|
|
23
|
+
"@aws-sdk/types": "3.162.0",
|
|
24
24
|
"tslib": "^2.3.1"
|
|
25
25
|
},
|
|
26
26
|
"engines": {
|