@twin.org/trust-service 0.0.3-next.2 → 0.0.3-next.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/es/trustService.js
CHANGED
|
@@ -33,13 +33,13 @@ export class TrustService {
|
|
|
33
33
|
* Verify a payload by checking the validity of its structure and content using the registered verifiers.
|
|
34
34
|
* @param payload The payload to verify.
|
|
35
35
|
* @param overrideVerifiers List of verifiers to use instead of the default ones.
|
|
36
|
-
* @returns Whether the payload is verified and any additional information extracted from the payload, or
|
|
36
|
+
* @returns Whether the payload is verified and any additional information extracted from the payload, or verification errors.
|
|
37
37
|
*/
|
|
38
38
|
async verify(payload, overrideVerifiers) {
|
|
39
39
|
const verifierNames = overrideVerifiers ?? TrustVerifierFactory.names();
|
|
40
40
|
let verified = false;
|
|
41
41
|
const info = [];
|
|
42
|
-
const
|
|
42
|
+
const errors = [];
|
|
43
43
|
await this._loggingComponent?.log({
|
|
44
44
|
level: "info",
|
|
45
45
|
source: TrustService.CLASS_NAME,
|
|
@@ -51,12 +51,9 @@ export class TrustService {
|
|
|
51
51
|
});
|
|
52
52
|
for (const verifierName of verifierNames) {
|
|
53
53
|
const verifier = TrustVerifierFactory.get(verifierName);
|
|
54
|
-
const verifierResult = await verifier.verify(payload, info);
|
|
55
|
-
if (Is.
|
|
56
|
-
verified = verifierResult
|
|
57
|
-
if (Is.arrayValue(verifierResult.failures)) {
|
|
58
|
-
failures[verifierName] = verifierResult.failures;
|
|
59
|
-
}
|
|
54
|
+
const verifierResult = await verifier.verify(payload, info, errors);
|
|
55
|
+
if (!Is.empty(verifierResult)) {
|
|
56
|
+
verified = verifierResult;
|
|
60
57
|
}
|
|
61
58
|
}
|
|
62
59
|
if (verified) {
|
|
@@ -66,7 +63,7 @@ export class TrustService {
|
|
|
66
63
|
message: "verified",
|
|
67
64
|
ts: Date.now(),
|
|
68
65
|
data: {
|
|
69
|
-
info
|
|
66
|
+
info
|
|
70
67
|
}
|
|
71
68
|
});
|
|
72
69
|
}
|
|
@@ -77,14 +74,14 @@ export class TrustService {
|
|
|
77
74
|
message: "notVerified",
|
|
78
75
|
ts: Date.now(),
|
|
79
76
|
data: {
|
|
80
|
-
|
|
77
|
+
errors
|
|
81
78
|
}
|
|
82
79
|
});
|
|
83
80
|
}
|
|
84
81
|
return {
|
|
85
82
|
verified,
|
|
86
|
-
info:
|
|
87
|
-
|
|
83
|
+
info: info.length > 0 ? info : undefined,
|
|
84
|
+
errors: errors.length > 0 ? errors : undefined
|
|
88
85
|
};
|
|
89
86
|
}
|
|
90
87
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trustService.js","sourceRoot":"","sources":["../../src/trustService.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC;AACvC,OAAO,EAAE,gBAAgB,EAAe,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAInE,OAAO,EAAE,oBAAoB,EAAwB,MAAM,wBAAwB,CAAC;AAGpF;;GAEG;AACH,MAAM,OAAO,YAAY;IACxB;;OAEG;IACI,MAAM,CAAU,UAAU,kBAAkC;IAEnE;;;OAGG;IACc,iBAAiB,CAAqB;IAEvD;;;OAGG;IACH,YAAY,OAAyC;QACpD,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC,WAAW,CACpD,OAAO,EAAE,oBAAoB,IAAI,SAAS,CAC1C,CAAC;IACH,CAAC;IAED;;;OAGG;IACI,SAAS;QACf,OAAO,YAAY,CAAC,UAAU,CAAC;IAChC,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,MAAM,CAClB,OAAgB,EAChB,iBAA4B;QAM5B,MAAM,aAAa,GAAG,iBAAiB,IAAI,oBAAoB,CAAC,KAAK,EAAE,CAAC;QACxE,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,MAAM,IAAI,GAAwB,EAAE,CAAC;QACrC,MAAM,
|
|
1
|
+
{"version":3,"file":"trustService.js","sourceRoot":"","sources":["../../src/trustService.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC;AACvC,OAAO,EAAE,gBAAgB,EAAe,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAInE,OAAO,EAAE,oBAAoB,EAAwB,MAAM,wBAAwB,CAAC;AAGpF;;GAEG;AACH,MAAM,OAAO,YAAY;IACxB;;OAEG;IACI,MAAM,CAAU,UAAU,kBAAkC;IAEnE;;;OAGG;IACc,iBAAiB,CAAqB;IAEvD;;;OAGG;IACH,YAAY,OAAyC;QACpD,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC,WAAW,CACpD,OAAO,EAAE,oBAAoB,IAAI,SAAS,CAC1C,CAAC;IACH,CAAC;IAED;;;OAGG;IACI,SAAS;QACf,OAAO,YAAY,CAAC,UAAU,CAAC;IAChC,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,MAAM,CAClB,OAAgB,EAChB,iBAA4B;QAM5B,MAAM,aAAa,GAAG,iBAAiB,IAAI,oBAAoB,CAAC,KAAK,EAAE,CAAC;QACxE,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,MAAM,IAAI,GAAwB,EAAE,CAAC;QACrC,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,MAAM,IAAI,CAAC,iBAAiB,EAAE,GAAG,CAAC;YACjC,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,YAAY,CAAC,UAAU;YAC/B,OAAO,EAAE,WAAW;YACpB,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;YACd,IAAI,EAAE;gBACL,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE;aAClC;SACD,CAAC,CAAC;QAEH,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;YAC1C,MAAM,QAAQ,GAAG,oBAAoB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACxD,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YAEpE,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC/B,QAAQ,GAAG,cAAc,CAAC;YAC3B,CAAC;QACF,CAAC;QAED,IAAI,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,CAAC,iBAAiB,EAAE,GAAG,CAAC;gBACjC,KAAK,EAAE,MAAM;gBACb,MAAM,EAAE,YAAY,CAAC,UAAU;gBAC/B,OAAO,EAAE,UAAU;gBACnB,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;gBACd,IAAI,EAAE;oBACL,IAAI;iBACJ;aACD,CAAC,CAAC;QACJ,CAAC;aAAM,CAAC;YACP,MAAM,IAAI,CAAC,iBAAiB,EAAE,GAAG,CAAC;gBACjC,KAAK,EAAE,OAAO;gBACd,MAAM,EAAE,YAAY,CAAC,UAAU;gBAC/B,OAAO,EAAE,aAAa;gBACtB,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;gBACd,IAAI,EAAE;oBACL,MAAM;iBACN;aACD,CAAC,CAAC;QACJ,CAAC;QAED,OAAO;YACN,QAAQ;YACR,IAAI,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;YACxC,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;SAC9C,CAAC;IACH,CAAC","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport { ComponentFactory, type IError, Is } from \"@twin.org/core\";\nimport type { IJsonLdNodeObject } from \"@twin.org/data-json-ld\";\nimport type { ILoggingComponent } from \"@twin.org/logging-models\";\nimport { nameof } from \"@twin.org/nameof\";\nimport { TrustVerifierFactory, type ITrustComponent } from \"@twin.org/trust-models\";\nimport type { ITrustServiceConstructorOptions } from \"./models/ITrustServiceConstructorOptions.js\";\n\n/**\n * Class for performing trust operations.\n */\nexport class TrustService implements ITrustComponent {\n\t/**\n\t * Runtime name for the class.\n\t */\n\tpublic static readonly CLASS_NAME: string = nameof<TrustService>();\n\n\t/**\n\t * The logging component.\n\t * @internal\n\t */\n\tprivate readonly _loggingComponent?: ILoggingComponent;\n\n\t/**\n\t * Create a new instance of TrustService.\n\t * @param options The options for the service.\n\t */\n\tconstructor(options?: ITrustServiceConstructorOptions) {\n\t\tthis._loggingComponent = ComponentFactory.getIfExists(\n\t\t\toptions?.loggingComponentType ?? \"logging\"\n\t\t);\n\t}\n\n\t/**\n\t * Returns the class name of the component.\n\t * @returns The class name of the component.\n\t */\n\tpublic className(): string {\n\t\treturn TrustService.CLASS_NAME;\n\t}\n\n\t/**\n\t * Verify a payload by checking the validity of its structure and content using the registered verifiers.\n\t * @param payload The payload to verify.\n\t * @param overrideVerifiers List of verifiers to use instead of the default ones.\n\t * @returns Whether the payload is verified and any additional information extracted from the payload, or verification errors.\n\t */\n\tpublic async verify(\n\t\tpayload: unknown,\n\t\toverrideVerifiers?: string[]\n\t): Promise<{\n\t\tverified: boolean;\n\t\tinfo?: IJsonLdNodeObject[];\n\t\terrors?: IError[];\n\t}> {\n\t\tconst verifierNames = overrideVerifiers ?? TrustVerifierFactory.names();\n\t\tlet verified = false;\n\t\tconst info: IJsonLdNodeObject[] = [];\n\t\tconst errors: IError[] = [];\n\n\t\tawait this._loggingComponent?.log({\n\t\t\tlevel: \"info\",\n\t\t\tsource: TrustService.CLASS_NAME,\n\t\t\tmessage: \"verifying\",\n\t\t\tts: Date.now(),\n\t\t\tdata: {\n\t\t\t\tpayload: payload?.toString() ?? \"\"\n\t\t\t}\n\t\t});\n\n\t\tfor (const verifierName of verifierNames) {\n\t\t\tconst verifier = TrustVerifierFactory.get(verifierName);\n\t\t\tconst verifierResult = await verifier.verify(payload, info, errors);\n\n\t\t\tif (!Is.empty(verifierResult)) {\n\t\t\t\tverified = verifierResult;\n\t\t\t}\n\t\t}\n\n\t\tif (verified) {\n\t\t\tawait this._loggingComponent?.log({\n\t\t\t\tlevel: \"info\",\n\t\t\t\tsource: TrustService.CLASS_NAME,\n\t\t\t\tmessage: \"verified\",\n\t\t\t\tts: Date.now(),\n\t\t\t\tdata: {\n\t\t\t\t\tinfo\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tawait this._loggingComponent?.log({\n\t\t\t\tlevel: \"error\",\n\t\t\t\tsource: TrustService.CLASS_NAME,\n\t\t\t\tmessage: \"notVerified\",\n\t\t\t\tts: Date.now(),\n\t\t\t\tdata: {\n\t\t\t\t\terrors\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\treturn {\n\t\t\tverified,\n\t\t\tinfo: info.length > 0 ? info : undefined,\n\t\t\terrors: errors.length > 0 ? errors : undefined\n\t\t};\n\t}\n}\n"]}
|
|
@@ -24,13 +24,11 @@ export declare class TrustService implements ITrustComponent {
|
|
|
24
24
|
* Verify a payload by checking the validity of its structure and content using the registered verifiers.
|
|
25
25
|
* @param payload The payload to verify.
|
|
26
26
|
* @param overrideVerifiers List of verifiers to use instead of the default ones.
|
|
27
|
-
* @returns Whether the payload is verified and any additional information extracted from the payload, or
|
|
27
|
+
* @returns Whether the payload is verified and any additional information extracted from the payload, or verification errors.
|
|
28
28
|
*/
|
|
29
29
|
verify(payload: unknown, overrideVerifiers?: string[]): Promise<{
|
|
30
30
|
verified: boolean;
|
|
31
31
|
info?: IJsonLdNodeObject[];
|
|
32
|
-
|
|
33
|
-
[id: string]: IError[];
|
|
34
|
-
};
|
|
32
|
+
errors?: IError[];
|
|
35
33
|
}>;
|
|
36
34
|
}
|
package/docs/changelog.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.0.3-next.3](https://github.com/twinfoundation/trust/compare/trust-service-v0.0.3-next.2...trust-service-v0.0.3-next.3) (2025-12-04)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* flatten error structure ([5fdd665](https://github.com/twinfoundation/trust/commit/5fdd665d0fc523a655563a0c20d1d82b634534e2))
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Dependencies
|
|
12
|
+
|
|
13
|
+
* The following workspace dependencies were updated
|
|
14
|
+
* dependencies
|
|
15
|
+
* @twin.org/trust-models bumped from 0.0.3-next.2 to 0.0.3-next.3
|
|
16
|
+
|
|
3
17
|
## [0.0.3-next.2](https://github.com/twinfoundation/trust/compare/trust-service-v0.0.3-next.1...trust-service-v0.0.3-next.2) (2025-12-03)
|
|
4
18
|
|
|
5
19
|
|
|
@@ -56,7 +56,7 @@ The class name of the component.
|
|
|
56
56
|
|
|
57
57
|
### verify()
|
|
58
58
|
|
|
59
|
-
> **verify**(`payload`, `overrideVerifiers?`): `Promise`\<\{ `verified`: `boolean`; `info?`: `IJsonLdNodeObject`[]; `
|
|
59
|
+
> **verify**(`payload`, `overrideVerifiers?`): `Promise`\<\{ `verified`: `boolean`; `info?`: `IJsonLdNodeObject`[]; `errors?`: `IError`[]; \}\>
|
|
60
60
|
|
|
61
61
|
Verify a payload by checking the validity of its structure and content using the registered verifiers.
|
|
62
62
|
|
|
@@ -76,9 +76,9 @@ List of verifiers to use instead of the default ones.
|
|
|
76
76
|
|
|
77
77
|
#### Returns
|
|
78
78
|
|
|
79
|
-
`Promise`\<\{ `verified`: `boolean`; `info?`: `IJsonLdNodeObject`[]; `
|
|
79
|
+
`Promise`\<\{ `verified`: `boolean`; `info?`: `IJsonLdNodeObject`[]; `errors?`: `IError`[]; \}\>
|
|
80
80
|
|
|
81
|
-
Whether the payload is verified and any additional information extracted from the payload, or
|
|
81
|
+
Whether the payload is verified and any additional information extracted from the payload, or verification errors.
|
|
82
82
|
|
|
83
83
|
#### Implementation of
|
|
84
84
|
|
package/locales/en.json
CHANGED
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
"info": {
|
|
3
3
|
"trustService": {
|
|
4
4
|
"verifying": "Verifying payload: \"{payload}\"",
|
|
5
|
-
"verified": "Payload verified successfully
|
|
5
|
+
"verified": "Payload verified successfully"
|
|
6
6
|
}
|
|
7
7
|
},
|
|
8
8
|
"error": {
|
|
9
9
|
"trustService": {
|
|
10
|
-
"notVerified": "Payload verification failed
|
|
10
|
+
"notVerified": "Payload verification failed"
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
13
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@twin.org/trust-service",
|
|
3
|
-
"version": "0.0.3-next.
|
|
3
|
+
"version": "0.0.3-next.3",
|
|
4
4
|
"description": "Trust service implementation",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"@twin.org/data-json-ld": "next",
|
|
19
19
|
"@twin.org/logging-models": "next",
|
|
20
20
|
"@twin.org/nameof": "next",
|
|
21
|
-
"@twin.org/trust-models": "0.0.3-next.
|
|
21
|
+
"@twin.org/trust-models": "0.0.3-next.3"
|
|
22
22
|
},
|
|
23
23
|
"main": "./dist/es/index.js",
|
|
24
24
|
"types": "./dist/types/index.d.ts",
|