@0disoft/universal-config-engine-validator-ajv 0.4.0 → 0.5.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/dist/index.d.ts CHANGED
@@ -7,5 +7,5 @@ export interface CreateAjvValidatorInput {
7
7
  readonly options?: Options;
8
8
  }
9
9
  export declare function createAjvValidator(input: CreateAjvValidatorInput): ValidatorAdapter;
10
- export declare function instancePathToConfigPath(instancePath: string): ConfigPath;
10
+ export declare function instancePathToConfigPath(instancePath: string, rootValue?: unknown): ConfigPath;
11
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,gBAAgB,EAIjB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,GAAG,EAEH,KAAK,OAAO,EACZ,KAAK,MAAM,EACZ,MAAM,iBAAiB,CAAC;AAEzB,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC;IACnB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,GAAG,gBAAgB,CAyBnF;AAUD,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,MAAM,GAAG,UAAU,CAazE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,gBAAgB,EAIjB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,GAAG,EAEH,KAAK,OAAO,EACZ,KAAK,MAAM,EACZ,MAAM,iBAAiB,CAAC;AAEzB,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC;IACnB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,GAAG,gBAAgB,CAyBnF;AAUD,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,GAAG,UAAU,CAuB9F"}
package/dist/index.js CHANGED
@@ -17,30 +17,43 @@ export function createAjvValidator(input) {
17
17
  }
18
18
  return {
19
19
  ok: false,
20
- issues: errors.map(toValidatorIssue)
20
+ issues: errors.map((error) => toValidatorIssue(error, validatorInput.config))
21
21
  };
22
22
  }
23
23
  };
24
24
  }
25
- function toValidatorIssue(error) {
25
+ function toValidatorIssue(error, config) {
26
26
  return {
27
27
  code: error.keyword,
28
28
  severity: "error",
29
- path: instancePathToConfigPath(error.instancePath)
29
+ path: instancePathToConfigPath(error.instancePath, config)
30
30
  };
31
31
  }
32
- export function instancePathToConfigPath(instancePath) {
32
+ export function instancePathToConfigPath(instancePath, rootValue) {
33
33
  if (instancePath.length === 0 || instancePath === "/") {
34
34
  return [];
35
35
  }
36
- return instancePath
36
+ const decodedSegments = instancePath
37
37
  .split("/")
38
38
  .slice(1)
39
- .map((segment) => decodePointerSegment(segment))
40
- .map((segment) => {
39
+ .map((segment) => decodePointerSegment(segment));
40
+ const path = [];
41
+ let current = rootValue;
42
+ for (const segment of decodedSegments) {
41
43
  const numericSegment = Number(segment);
42
- return Number.isInteger(numericSegment) && String(numericSegment) === segment ? numericSegment : segment;
43
- });
44
+ const pathSegment = Array.isArray(current) && Number.isSafeInteger(numericSegment) && String(numericSegment) === segment
45
+ ? numericSegment
46
+ : segment;
47
+ path.push(pathSegment);
48
+ current = getChildValue(current, pathSegment);
49
+ }
50
+ return path;
51
+ }
52
+ function getChildValue(value, segment) {
53
+ if (value === null || typeof value !== "object") {
54
+ return undefined;
55
+ }
56
+ return value[segment];
44
57
  }
45
58
  function decodePointerSegment(segment) {
46
59
  return segment.replaceAll("~1", "/").replaceAll("~0", "~");
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,GAAG,EAIJ,MAAM,iBAAiB,CAAC;AASzB,MAAM,UAAU,kBAAkB,CAAC,KAA8B;IAC/D,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC;IAC7B,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,IAAI,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;IAChF,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAE3C,OAAO;QACL,EAAE;QACF,QAAQ,CAAC,cAA8B;YACrC,MAAM,EAAE,GAAG,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YAC3C,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC;YAE5C,IAAI,EAAE,EAAE,CAAC;gBACP,OAAO;oBACL,EAAE,EAAE,IAAI;oBACR,KAAK,EAAE,cAAc,CAAC,MAAM;oBAC5B,MAAM,EAAE,EAAE;iBACX,CAAC;YACJ,CAAC;YAED,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC;aACrC,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAkB;IAC1C,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,OAAO;QACnB,QAAQ,EAAE,OAAO;QACjB,IAAI,EAAE,wBAAwB,CAAC,KAAK,CAAC,YAAY,CAAC;KACnD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,YAAoB;IAC3D,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,YAAY,KAAK,GAAG,EAAE,CAAC;QACtD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,YAAY;SAChB,KAAK,CAAC,GAAG,CAAC;SACV,KAAK,CAAC,CAAC,CAAC;SACR,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;SAC/C,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QACf,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QACvC,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC;IAC3G,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAe;IAC3C,OAAO,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAC7D,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@0disoft/universal-config-engine-validator-ajv",
3
- "version": "0.4.0",
3
+ "version": "0.5.0",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "sideEffects": false,
@@ -37,7 +37,7 @@
37
37
  "access": "public"
38
38
  },
39
39
  "dependencies": {
40
- "@0disoft/universal-config-engine-core": "0.4.0"
40
+ "@0disoft/universal-config-engine-core": "0.5.0"
41
41
  },
42
42
  "peerDependencies": {
43
43
  "ajv": "^8.20.0"