include node_modules so release .zip is deployable

This commit is contained in:
2023-11-24 17:44:25 -05:00
parent 6c86cfe5d2
commit 8b11c41267
8963 changed files with 874175 additions and 1 deletions
+15
View File
@@ -0,0 +1,15 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.callFunction = void 0;
const customEndpointFunctions_1 = require("./customEndpointFunctions");
const endpointFunctions_1 = require("./endpointFunctions");
const evaluateExpression_1 = require("./evaluateExpression");
const callFunction = ({ fn, argv }, options) => {
const evaluatedArgs = argv.map((arg) => ["boolean", "number"].includes(typeof arg) ? arg : (0, evaluateExpression_1.evaluateExpression)(arg, "arg", options));
const fnSegments = fn.split(".");
if (fnSegments[0] in customEndpointFunctions_1.customEndpointFunctions && fnSegments[1] != null) {
return customEndpointFunctions_1.customEndpointFunctions[fnSegments[0]][fnSegments[1]](...evaluatedArgs);
}
return endpointFunctions_1.endpointFunctions[fn](...evaluatedArgs);
};
exports.callFunction = callFunction;
@@ -0,0 +1,4 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.customEndpointFunctions = void 0;
exports.customEndpointFunctions = {};
@@ -0,0 +1,15 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.endpointFunctions = void 0;
const lib_1 = require("../lib");
exports.endpointFunctions = {
booleanEquals: lib_1.booleanEquals,
getAttr: lib_1.getAttr,
isSet: lib_1.isSet,
isValidHostLabel: lib_1.isValidHostLabel,
not: lib_1.not,
parseURL: lib_1.parseURL,
stringEquals: lib_1.stringEquals,
substring: lib_1.substring,
uriEncode: lib_1.uriEncode,
};
@@ -0,0 +1,19 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.evaluateCondition = void 0;
const debug_1 = require("../debug");
const types_1 = require("../types");
const callFunction_1 = require("./callFunction");
const evaluateCondition = ({ assign, ...fnArgs }, options) => {
var _a, _b;
if (assign && assign in options.referenceRecord) {
throw new types_1.EndpointError(`'${assign}' is already defined in Reference Record.`);
}
const value = (0, callFunction_1.callFunction)(fnArgs, options);
(_b = (_a = options.logger) === null || _a === void 0 ? void 0 : _a.debug) === null || _b === void 0 ? void 0 : _b.call(_a, debug_1.debugId, `evaluateCondition: ${(0, debug_1.toDebugString)(fnArgs)} = ${(0, debug_1.toDebugString)(value)}`);
return {
result: value === "" ? true : !!value,
...(assign != null && { toAssign: { name: assign, value } }),
};
};
exports.evaluateCondition = evaluateCondition;
@@ -0,0 +1,27 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.evaluateConditions = void 0;
const debug_1 = require("../debug");
const evaluateCondition_1 = require("./evaluateCondition");
const evaluateConditions = (conditions = [], options) => {
var _a, _b;
const conditionsReferenceRecord = {};
for (const condition of conditions) {
const { result, toAssign } = (0, evaluateCondition_1.evaluateCondition)(condition, {
...options,
referenceRecord: {
...options.referenceRecord,
...conditionsReferenceRecord,
},
});
if (!result) {
return { result };
}
if (toAssign) {
conditionsReferenceRecord[toAssign.name] = toAssign.value;
(_b = (_a = options.logger) === null || _a === void 0 ? void 0 : _a.debug) === null || _b === void 0 ? void 0 : _b.call(_a, debug_1.debugId, `assign: ${toAssign.name} := ${(0, debug_1.toDebugString)(toAssign.value)}`);
}
}
return { result: true, referenceRecord: conditionsReferenceRecord };
};
exports.evaluateConditions = evaluateConditions;
@@ -0,0 +1,32 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.evaluateEndpointRule = void 0;
const debug_1 = require("../debug");
const evaluateConditions_1 = require("./evaluateConditions");
const getEndpointHeaders_1 = require("./getEndpointHeaders");
const getEndpointProperties_1 = require("./getEndpointProperties");
const getEndpointUrl_1 = require("./getEndpointUrl");
const evaluateEndpointRule = (endpointRule, options) => {
var _a, _b;
const { conditions, endpoint } = endpointRule;
const { result, referenceRecord } = (0, evaluateConditions_1.evaluateConditions)(conditions, options);
if (!result) {
return;
}
const endpointRuleOptions = {
...options,
referenceRecord: { ...options.referenceRecord, ...referenceRecord },
};
const { url, properties, headers } = endpoint;
(_b = (_a = options.logger) === null || _a === void 0 ? void 0 : _a.debug) === null || _b === void 0 ? void 0 : _b.call(_a, debug_1.debugId, `Resolving endpoint from template: ${(0, debug_1.toDebugString)(endpoint)}`);
return {
...(headers != undefined && {
headers: (0, getEndpointHeaders_1.getEndpointHeaders)(headers, endpointRuleOptions),
}),
...(properties != undefined && {
properties: (0, getEndpointProperties_1.getEndpointProperties)(properties, endpointRuleOptions),
}),
url: (0, getEndpointUrl_1.getEndpointUrl)(url, endpointRuleOptions),
};
};
exports.evaluateEndpointRule = evaluateEndpointRule;
@@ -0,0 +1,18 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.evaluateErrorRule = void 0;
const types_1 = require("../types");
const evaluateConditions_1 = require("./evaluateConditions");
const evaluateExpression_1 = require("./evaluateExpression");
const evaluateErrorRule = (errorRule, options) => {
const { conditions, error } = errorRule;
const { result, referenceRecord } = (0, evaluateConditions_1.evaluateConditions)(conditions, options);
if (!result) {
return;
}
throw new types_1.EndpointError((0, evaluateExpression_1.evaluateExpression)(error, "Error", {
...options,
referenceRecord: { ...options.referenceRecord, ...referenceRecord },
}));
};
exports.evaluateErrorRule = evaluateErrorRule;
@@ -0,0 +1,20 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.evaluateExpression = void 0;
const types_1 = require("../types");
const callFunction_1 = require("./callFunction");
const evaluateTemplate_1 = require("./evaluateTemplate");
const getReferenceValue_1 = require("./getReferenceValue");
const evaluateExpression = (obj, keyName, options) => {
if (typeof obj === "string") {
return (0, evaluateTemplate_1.evaluateTemplate)(obj, options);
}
else if (obj["fn"]) {
return (0, callFunction_1.callFunction)(obj, options);
}
else if (obj["ref"]) {
return (0, getReferenceValue_1.getReferenceValue)(obj, options);
}
throw new types_1.EndpointError(`'${keyName}': ${String(obj)} is not a string, function or reference.`);
};
exports.evaluateExpression = evaluateExpression;
+31
View File
@@ -0,0 +1,31 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.evaluateRules = void 0;
const types_1 = require("../types");
const evaluateEndpointRule_1 = require("./evaluateEndpointRule");
const evaluateErrorRule_1 = require("./evaluateErrorRule");
const evaluateTreeRule_1 = require("./evaluateTreeRule");
const evaluateRules = (rules, options) => {
for (const rule of rules) {
if (rule.type === "endpoint") {
const endpointOrUndefined = (0, evaluateEndpointRule_1.evaluateEndpointRule)(rule, options);
if (endpointOrUndefined) {
return endpointOrUndefined;
}
}
else if (rule.type === "error") {
(0, evaluateErrorRule_1.evaluateErrorRule)(rule, options);
}
else if (rule.type === "tree") {
const endpointOrUndefined = (0, evaluateTreeRule_1.evaluateTreeRule)(rule, options);
if (endpointOrUndefined) {
return endpointOrUndefined;
}
}
else {
throw new types_1.EndpointError(`Unknown endpoint rule: ${rule}`);
}
}
throw new types_1.EndpointError(`Rules evaluation failed`);
};
exports.evaluateRules = evaluateRules;
+40
View File
@@ -0,0 +1,40 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.evaluateTemplate = void 0;
const lib_1 = require("../lib");
const evaluateTemplate = (template, options) => {
const evaluatedTemplateArr = [];
const templateContext = {
...options.endpointParams,
...options.referenceRecord,
};
let currentIndex = 0;
while (currentIndex < template.length) {
const openingBraceIndex = template.indexOf("{", currentIndex);
if (openingBraceIndex === -1) {
evaluatedTemplateArr.push(template.slice(currentIndex));
break;
}
evaluatedTemplateArr.push(template.slice(currentIndex, openingBraceIndex));
const closingBraceIndex = template.indexOf("}", openingBraceIndex);
if (closingBraceIndex === -1) {
evaluatedTemplateArr.push(template.slice(openingBraceIndex));
break;
}
if (template[openingBraceIndex + 1] === "{" && template[closingBraceIndex + 1] === "}") {
evaluatedTemplateArr.push(template.slice(openingBraceIndex + 1, closingBraceIndex));
currentIndex = closingBraceIndex + 2;
}
const parameterName = template.substring(openingBraceIndex + 1, closingBraceIndex);
if (parameterName.includes("#")) {
const [refName, attrName] = parameterName.split("#");
evaluatedTemplateArr.push((0, lib_1.getAttr)(templateContext[refName], attrName));
}
else {
evaluatedTemplateArr.push(templateContext[parameterName]);
}
currentIndex = closingBraceIndex + 1;
}
return evaluatedTemplateArr.join("");
};
exports.evaluateTemplate = evaluateTemplate;
+17
View File
@@ -0,0 +1,17 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.evaluateTreeRule = void 0;
const evaluateConditions_1 = require("./evaluateConditions");
const evaluateRules_1 = require("./evaluateRules");
const evaluateTreeRule = (treeRule, options) => {
const { conditions, rules } = treeRule;
const { result, referenceRecord } = (0, evaluateConditions_1.evaluateConditions)(conditions, options);
if (!result) {
return;
}
return (0, evaluateRules_1.evaluateRules)(rules, {
...options,
referenceRecord: { ...options.referenceRecord, ...referenceRecord },
});
};
exports.evaluateTreeRule = evaluateTreeRule;
@@ -0,0 +1,16 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getEndpointHeaders = void 0;
const types_1 = require("../types");
const evaluateExpression_1 = require("./evaluateExpression");
const getEndpointHeaders = (headers, options) => Object.entries(headers).reduce((acc, [headerKey, headerVal]) => ({
...acc,
[headerKey]: headerVal.map((headerValEntry) => {
const processedExpr = (0, evaluateExpression_1.evaluateExpression)(headerValEntry, "Header value entry", options);
if (typeof processedExpr !== "string") {
throw new types_1.EndpointError(`Header '${headerKey}' value '${processedExpr}' is not a string`);
}
return processedExpr;
}),
}), {});
exports.getEndpointHeaders = getEndpointHeaders;
@@ -0,0 +1,9 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getEndpointProperties = void 0;
const getEndpointProperty_1 = require("./getEndpointProperty");
const getEndpointProperties = (properties, options) => Object.entries(properties).reduce((acc, [propertyKey, propertyVal]) => ({
...acc,
[propertyKey]: (0, getEndpointProperty_1.getEndpointProperty)(propertyVal, options),
}), {});
exports.getEndpointProperties = getEndpointProperties;
@@ -0,0 +1,25 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getEndpointProperty = void 0;
const types_1 = require("../types");
const evaluateTemplate_1 = require("./evaluateTemplate");
const getEndpointProperties_1 = require("./getEndpointProperties");
const getEndpointProperty = (property, options) => {
if (Array.isArray(property)) {
return property.map((propertyEntry) => (0, exports.getEndpointProperty)(propertyEntry, options));
}
switch (typeof property) {
case "string":
return (0, evaluateTemplate_1.evaluateTemplate)(property, options);
case "object":
if (property === null) {
throw new types_1.EndpointError(`Unexpected endpoint property: ${property}`);
}
return (0, getEndpointProperties_1.getEndpointProperties)(property, options);
case "boolean":
return property;
default:
throw new types_1.EndpointError(`Unexpected endpoint property type: ${typeof property}`);
}
};
exports.getEndpointProperty = getEndpointProperty;
+19
View File
@@ -0,0 +1,19 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getEndpointUrl = void 0;
const types_1 = require("../types");
const evaluateExpression_1 = require("./evaluateExpression");
const getEndpointUrl = (endpointUrl, options) => {
const expression = (0, evaluateExpression_1.evaluateExpression)(endpointUrl, "Endpoint URL", options);
if (typeof expression === "string") {
try {
return new URL(expression);
}
catch (error) {
console.error(`Failed to construct URL with ${expression}`, error);
throw error;
}
}
throw new types_1.EndpointError(`Endpoint URL must be a string, got ${typeof expression}`);
};
exports.getEndpointUrl = getEndpointUrl;
@@ -0,0 +1,11 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getReferenceValue = void 0;
const getReferenceValue = ({ ref }, options) => {
const referenceRecord = {
...options.endpointParams,
...options.referenceRecord,
};
return referenceRecord[ref];
};
exports.getReferenceValue = getReferenceValue;
+5
View File
@@ -0,0 +1,5 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
tslib_1.__exportStar(require("./customEndpointFunctions"), exports);
tslib_1.__exportStar(require("./evaluateRules"), exports);