@cargolift-cdi/lib-payload 0.1.7 → 0.1.10

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.
Files changed (53) hide show
  1. package/dist/cjs/index.js +4 -0
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/cjs/{payload-validation/validation.interface.js → payload-condition/payload-condition.interface.js} +1 -1
  4. package/dist/cjs/payload-condition/payload-condition.interface.js.map +1 -0
  5. package/dist/cjs/payload-condition/payload-condition.js +50 -0
  6. package/dist/cjs/payload-condition/payload-condition.js.map +1 -0
  7. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  8. package/dist/cjs/util/payload-comparator.util.js +65 -0
  9. package/dist/cjs/util/payload-comparator.util.js.map +1 -0
  10. package/dist/cjs/util/payload-path.util.js +25 -0
  11. package/dist/cjs/util/payload-path.util.js.map +1 -0
  12. package/dist/cjs/util/util.js.map +1 -1
  13. package/dist/esm/index.js +4 -0
  14. package/dist/esm/index.js.map +1 -1
  15. package/dist/esm/payload-condition/payload-condition.interface.js +2 -0
  16. package/dist/esm/payload-condition/payload-condition.interface.js.map +1 -0
  17. package/dist/esm/payload-condition/payload-condition.js +46 -0
  18. package/dist/esm/payload-condition/payload-condition.js.map +1 -0
  19. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  20. package/dist/esm/util/payload-comparator.util.js +61 -0
  21. package/dist/esm/util/payload-comparator.util.js.map +1 -0
  22. package/dist/esm/util/payload-path.util.js +21 -0
  23. package/dist/esm/util/payload-path.util.js.map +1 -0
  24. package/dist/esm/util/util.js.map +1 -1
  25. package/dist/types/index.d.ts +4 -0
  26. package/dist/types/payload-condition/payload-condition.d.ts +8 -0
  27. package/dist/types/payload-condition/payload-condition.interface.d.ts +17 -0
  28. package/dist/types/util/payload-comparator.util.d.ts +6 -0
  29. package/dist/types/util/payload-path.util.d.ts +4 -0
  30. package/package.json +2 -2
  31. package/dist/cjs/payload-validation/validation.interface.js.map +0 -1
  32. package/dist/cjs/response-template/response-template.interface.js +0 -2
  33. package/dist/cjs/response-template/response-template.interface.js.map +0 -1
  34. package/dist/cjs/response-template/response-template.js +0 -74
  35. package/dist/cjs/response-template/response-template.js.map +0 -1
  36. package/dist/esm/payload-validation/validation.interface.js +0 -2
  37. package/dist/esm/payload-validation/validation.interface.js.map +0 -1
  38. package/dist/esm/payload-validation.js +0 -309
  39. package/dist/esm/payload-validation.js.map +0 -1
  40. package/dist/esm/response-template/response-template.interface.js +0 -2
  41. package/dist/esm/response-template/response-template.interface.js.map +0 -1
  42. package/dist/esm/response-template/response-template.js +0 -70
  43. package/dist/esm/response-template/response-template.js.map +0 -1
  44. package/dist/esm/types/schema.js +0 -2
  45. package/dist/esm/types/schema.js.map +0 -1
  46. package/dist/esm/types/types.js +0 -2
  47. package/dist/esm/types/types.js.map +0 -1
  48. package/dist/types/payload-validation/validation.interface.d.ts +0 -30
  49. package/dist/types/payload-validation.d.ts +0 -20
  50. package/dist/types/response-template/response-template.d.ts +0 -21
  51. package/dist/types/response-template/response-template.interface.d.ts +0 -0
  52. package/dist/types/types/schema.d.ts +0 -22
  53. package/dist/types/types/types.d.ts +0 -8
@@ -1,70 +0,0 @@
1
- import { PayloadUtil } from "../util/util.js";
2
- export class ResponseTemplate {
3
- validate(template, payload) {
4
- if (!template) {
5
- return;
6
- }
7
- const parsedPayload = PayloadUtil.normalize(payload);
8
- if (parsedPayload === undefined) {
9
- throw new Error("Payload inválido para avaliação do template de resposta.");
10
- }
11
- return {
12
- success: this.evaluateSuccess(template.success, parsedPayload),
13
- message: this.extractTemplateValue(parsedPayload, template.message || ""),
14
- details: this.extractTemplateValue(parsedPayload, template.details || ""),
15
- };
16
- }
17
- evaluateSuccess(successTemplate, payload) {
18
- if (!successTemplate) {
19
- return true;
20
- }
21
- const templates = Array.isArray(successTemplate) ? successTemplate : [successTemplate];
22
- for (const template of templates) {
23
- const value = this.extractTemplateValue(payload, template.path);
24
- if (value === undefined) {
25
- continue;
26
- }
27
- if (template.equals === undefined) {
28
- return true;
29
- }
30
- else {
31
- return value === template.equals;
32
- }
33
- }
34
- return false;
35
- }
36
- extractTemplateValue(source, selector) {
37
- const steps = this.toPathArray(selector);
38
- let current = source;
39
- for (const step of steps) {
40
- if (current === null || current === undefined) {
41
- return undefined;
42
- }
43
- if (Array.isArray(current)) {
44
- const idx = Number(step);
45
- if (Number.isNaN(idx)) {
46
- return undefined;
47
- }
48
- current = current[idx];
49
- continue;
50
- }
51
- if (typeof current === "object" && step in current) {
52
- current = current[step];
53
- continue;
54
- }
55
- return undefined;
56
- }
57
- return current;
58
- }
59
- toPathArray(selector) {
60
- if (Array.isArray(selector)) {
61
- return selector.map(String).filter((segment) => segment.length > 0);
62
- }
63
- return selector
64
- .replaceAll(/\[(\d+)\]/g, ".$1")
65
- .split(".")
66
- .map((segment) => segment.trim())
67
- .filter((segment) => segment.length > 0);
68
- }
69
- }
70
- //# sourceMappingURL=response-template.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"response-template.js","sourceRoot":"","sources":["../../../src/response-template/response-template.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=schema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/types/schema.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/types/types.ts"],"names":[],"mappings":""}
@@ -1,30 +0,0 @@
1
- interface SchemaValidation {
2
- field: string;
3
- type: "string" | "number" | "boolean" | "date" | "object" | "array" | "email";
4
- required?: boolean;
5
- length?: {
6
- min?: number;
7
- max?: number;
8
- };
9
- range?: {
10
- min?: number;
11
- max?: number;
12
- };
13
- minItems?: number;
14
- maxItems?: number;
15
- allowedValues?: string[] | number[];
16
- pattern?: string;
17
- message?: string;
18
- }
19
- export interface Schema {
20
- validations: SchemaValidation[];
21
- }
22
- export interface ValidationResult {
23
- success: boolean;
24
- errors: {
25
- field: string;
26
- error: string;
27
- }[];
28
- errorsList: string[];
29
- }
30
- export {};
@@ -1,20 +0,0 @@
1
- import { ExecutionResult } from "./types/types.js";
2
- import { Schema } from "./types/schema.js";
3
- export declare class PayloadValidation {
4
- run(rawPayload: any, schema: Schema): Promise<ExecutionResult>;
5
- private applyValidation;
6
- private validateRule;
7
- private validateRequired;
8
- private validateType;
9
- private validateLength;
10
- private validateRange;
11
- private validateArraySize;
12
- private validateAllowedValues;
13
- private validatePattern;
14
- private pushError;
15
- private resolvePathValues;
16
- private parseSegment;
17
- private checkType;
18
- parsePayload(raw: any): any;
19
- private detectType;
20
- }
@@ -1,21 +0,0 @@
1
- export interface ResponseTemplateFieldConfig {
2
- path: string;
3
- equals?: string | number | boolean | null;
4
- fallback?: string;
5
- }
6
- export interface HttpResponseTemplate {
7
- success?: ResponseTemplateFieldConfig | ResponseTemplateFieldConfig[];
8
- message?: string | string[];
9
- details?: string | string[];
10
- }
11
- export interface ResponseTemplateResult {
12
- success: boolean;
13
- message?: string | string[];
14
- details?: string | string[];
15
- }
16
- export declare class ResponseTemplate {
17
- validate(template: HttpResponseTemplate, payload: any): ResponseTemplateResult | undefined;
18
- private evaluateSuccess;
19
- private extractTemplateValue;
20
- private toPathArray;
21
- }
@@ -1,22 +0,0 @@
1
- interface SchemaValidation {
2
- field: string;
3
- type: "string" | "number" | "boolean" | "date" | "object" | "array" | "email";
4
- required?: boolean;
5
- length?: {
6
- min?: number;
7
- max?: number;
8
- };
9
- range?: {
10
- min?: number;
11
- max?: number;
12
- };
13
- minItems?: number;
14
- maxItems?: number;
15
- allowedValues?: string[] | number[];
16
- pattern?: string;
17
- message?: string;
18
- }
19
- export interface Schema {
20
- validations: SchemaValidation[];
21
- }
22
- export {};
@@ -1,8 +0,0 @@
1
- export interface ExecutionResult {
2
- success: boolean;
3
- errors: {
4
- field: string;
5
- error: string;
6
- }[];
7
- errorsList: string[];
8
- }