@cargolift-cdi/lib-payload 0.1.1 → 0.1.3
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/dist/cjs/index.js +2 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/payload-response-interpreter/payload-response-interpreter.js +80 -0
- package/dist/cjs/payload-response-interpreter/payload-response-interpreter.js.map +1 -0
- package/dist/cjs/payload-transformation/payload-transformation.interface.js +2 -0
- package/dist/cjs/payload-transformation/payload-transformation.interface.js.map +1 -0
- package/dist/cjs/payload-transformation/payload-transformation.js +46 -0
- package/dist/cjs/payload-transformation/payload-transformation.js.map +1 -0
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/esm/index.js +2 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/payload-response-interpreter/payload-response-interpreter.js +76 -0
- package/dist/esm/payload-response-interpreter/payload-response-interpreter.js.map +1 -0
- package/dist/esm/payload-transformation/payload-transformation.interface.js +2 -0
- package/dist/esm/payload-transformation/payload-transformation.interface.js.map +1 -0
- package/dist/esm/payload-transformation/payload-transformation.js +39 -0
- package/dist/esm/payload-transformation/payload-transformation.js.map +1 -0
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/types/index.d.ts +2 -1
- package/dist/types/payload-response-interpreter/payload-response-interpreter.d.ts +12 -0
- package/dist/types/payload-transformation/payload-transformation.d.ts +11 -0
- package/dist/types/payload-transformation/payload-transformation.interface.d.ts +0 -0
- package/package.json +4 -3
package/dist/cjs/index.js
CHANGED
|
@@ -16,6 +16,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./payload-validation/payload-validation.js"), exports);
|
|
18
18
|
__exportStar(require("./payload-validation/payload-validation.interface.js"), exports);
|
|
19
|
-
__exportStar(require("./response-
|
|
19
|
+
__exportStar(require("./payload-response-interpreter/payload-response-interpreter.js"), exports);
|
|
20
|
+
__exportStar(require("./payload-transformation/payload-transformation.js"), exports);
|
|
20
21
|
__exportStar(require("./util/util.js"), exports);
|
|
21
22
|
//# sourceMappingURL=index.js.map
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6EAA2D;AAC3D,uFAAqE;AACrE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6EAA2D;AAC3D,uFAAqE;AACrE,iGAA+E;AAC/E,qFAAmE;AAEnE,iDAA+B"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PayloadResponseInterpreter = void 0;
|
|
4
|
+
const util_js_1 = require("../util/util.js");
|
|
5
|
+
class PayloadResponseInterpreter {
|
|
6
|
+
validate(rules, payload) {
|
|
7
|
+
if (!rules) {
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
const parsedPayload = util_js_1.PayloadUtil.normalize(payload);
|
|
11
|
+
if (parsedPayload === undefined) {
|
|
12
|
+
throw new Error("Payload inválido para avaliação do template de resposta.");
|
|
13
|
+
}
|
|
14
|
+
return {
|
|
15
|
+
success: this.evaluateSuccess(rules.success, parsedPayload, rules),
|
|
16
|
+
message: this.extractTemplateValue(parsedPayload, rules.message || ""),
|
|
17
|
+
details: this.extractTemplateValue(parsedPayload, rules.details || ""),
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
evaluateSuccess(successTemplate, payload, rules) {
|
|
21
|
+
if (!successTemplate) {
|
|
22
|
+
return true;
|
|
23
|
+
}
|
|
24
|
+
const templates = Array.isArray(successTemplate) ? successTemplate : [successTemplate];
|
|
25
|
+
for (const template of templates) {
|
|
26
|
+
const value = this.extractTemplateValue(payload, template.path);
|
|
27
|
+
if (value === undefined) {
|
|
28
|
+
continue;
|
|
29
|
+
}
|
|
30
|
+
if (template.equals === undefined) {
|
|
31
|
+
return true;
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
return value === template.equals;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
if (rules.options?.failureOnMissingPath) {
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
return true;
|
|
41
|
+
}
|
|
42
|
+
extractTemplateValue(source, selector) {
|
|
43
|
+
if (!selector || selector === "") {
|
|
44
|
+
return undefined;
|
|
45
|
+
}
|
|
46
|
+
const steps = this.toPathArray(selector);
|
|
47
|
+
let current = source;
|
|
48
|
+
for (const step of steps) {
|
|
49
|
+
if (current === null || current === undefined) {
|
|
50
|
+
return undefined;
|
|
51
|
+
}
|
|
52
|
+
if (Array.isArray(current)) {
|
|
53
|
+
const idx = Number(step);
|
|
54
|
+
if (Number.isNaN(idx)) {
|
|
55
|
+
return undefined;
|
|
56
|
+
}
|
|
57
|
+
current = current[idx];
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
if (typeof current === "object" && step in current) {
|
|
61
|
+
current = current[step];
|
|
62
|
+
continue;
|
|
63
|
+
}
|
|
64
|
+
return undefined;
|
|
65
|
+
}
|
|
66
|
+
return current;
|
|
67
|
+
}
|
|
68
|
+
toPathArray(selector) {
|
|
69
|
+
if (Array.isArray(selector)) {
|
|
70
|
+
return selector.map(String).filter((segment) => segment.length > 0);
|
|
71
|
+
}
|
|
72
|
+
return selector
|
|
73
|
+
.replaceAll(/\[(\d+)\]/g, ".$1")
|
|
74
|
+
.split("/")
|
|
75
|
+
.map((segment) => segment.trim())
|
|
76
|
+
.filter((segment) => segment.length > 0);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
exports.PayloadResponseInterpreter = PayloadResponseInterpreter;
|
|
80
|
+
//# sourceMappingURL=payload-response-interpreter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payload-response-interpreter.js","sourceRoot":"","sources":["../../../src/payload-response-interpreter/payload-response-interpreter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payload-transformation.interface.js","sourceRoot":"","sources":["../../../src/payload-transformation/payload-transformation.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.PayloadTransformation = void 0;
|
|
7
|
+
const jsonata_1 = __importDefault(require("jsonata"));
|
|
8
|
+
class PayloadTransformation {
|
|
9
|
+
static async transform(expression, payload) {
|
|
10
|
+
if (!expression)
|
|
11
|
+
return { success: true, result: payload };
|
|
12
|
+
try {
|
|
13
|
+
const compiled = (0, jsonata_1.default)(expression);
|
|
14
|
+
if (!compiled)
|
|
15
|
+
return { success: true, result: payload };
|
|
16
|
+
const result = await compiled.evaluate(payload);
|
|
17
|
+
return { success: true, result };
|
|
18
|
+
}
|
|
19
|
+
catch (err) {
|
|
20
|
+
return { success: false, result: payload, error: "Erro ao aplicar transformação JSONata: " + err.message };
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
static compileExpression(expression) {
|
|
24
|
+
if (!expression)
|
|
25
|
+
return null;
|
|
26
|
+
try {
|
|
27
|
+
return (0, jsonata_1.default)(expression);
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
static async evaluateCompiled(compiled, payload) {
|
|
34
|
+
if (!compiled)
|
|
35
|
+
return { success: true, result: payload };
|
|
36
|
+
try {
|
|
37
|
+
const result = await compiled.evaluate(payload);
|
|
38
|
+
return { success: true, result };
|
|
39
|
+
}
|
|
40
|
+
catch (err) {
|
|
41
|
+
return { success: false, result: payload, error: "Erro ao avaliar expressão JSONata compilada: " + err.message };
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
exports.PayloadTransformation = PayloadTransformation;
|
|
46
|
+
//# sourceMappingURL=payload-transformation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payload-transformation.js","sourceRoot":"","sources":["../../../src/payload-transformation/payload-transformation.ts"],"names":[],"mappings":";;;;;;AAAA,sDAA8B;AAQ9B,MAAa,qBAAqB;IAChC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,UAAkB,EAAE,OAAY;QACrD,IAAI,CAAC,UAAU;YAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;QAE3D,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAA,iBAAO,EAAC,UAAU,CAAC,CAAC;YACrC,IAAI,CAAC,QAAQ;gBAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;YACzD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAChD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QACnC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,yCAAyC,GAAI,GAAa,CAAC,OAAO,EAAE,CAAC;QACxH,CAAC;IACH,CAAC;IAED,MAAM,CAAC,iBAAiB,CAAC,UAAkB;QACzC,IAAI,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC;QAC7B,IAAI,CAAC;YACH,OAAO,IAAA,iBAAO,EAAC,UAAU,CAAC,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,QAA4B,EAAE,OAAY;QACtE,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;QACzD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAChD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QACnC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,+CAA+C,GAAI,GAAa,CAAC,OAAO,EAAE,CAAC;QAC9H,CAAC;IACH,CAAC;CACF;AAhCD,sDAgCC"}
|