@twin.org/trust-service 0.0.3-next.2 → 0.0.3-next.4

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.
@@ -1,7 +1,7 @@
1
1
  // Copyright 2025 IOTA Stiftung.
2
2
  // SPDX-License-Identifier: Apache-2.0.
3
- import { ComponentFactory, Is } from "@twin.org/core";
4
- import { TrustVerifierFactory } from "@twin.org/trust-models";
3
+ import { ComponentFactory, Guards, Is } from "@twin.org/core";
4
+ import { TrustGeneratorFactory, TrustVerifierFactory } from "@twin.org/trust-models";
5
5
  /**
6
6
  * Class for performing trust operations.
7
7
  */
@@ -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 failures per verifier.
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
- const info = [];
42
- const failures = {};
41
+ const info = {};
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.object(verifierResult)) {
56
- verified = verifierResult.verified;
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: JSON.stringify(info)
66
+ info
70
67
  }
71
68
  });
72
69
  }
@@ -77,15 +74,26 @@ export class TrustService {
77
74
  message: "notVerified",
78
75
  ts: Date.now(),
79
76
  data: {
80
- failures: JSON.stringify(failures)
77
+ errors
81
78
  }
82
79
  });
83
80
  }
84
81
  return {
85
82
  verified,
86
- info: Is.arrayValue(info) ? info : undefined,
87
- failures: Is.objectValue(failures) ? failures : undefined
83
+ info: Object.keys(info).length > 0 ? info : undefined,
84
+ errors: errors.length > 0 ? errors : undefined
88
85
  };
89
86
  }
87
+ /**
88
+ * Generate a payload using the specified generators.
89
+ * @param generatorType The type of generator to use.
90
+ * @param info Optional information to include in the generated payload.
91
+ * @returns The generated payload.
92
+ */
93
+ async generate(generatorType, info) {
94
+ Guards.stringValue(TrustService.CLASS_NAME, "generatorType", generatorType);
95
+ const generator = TrustGeneratorFactory.get(generatorType);
96
+ return generator.generate(info);
97
+ }
90
98
  }
91
99
  //# sourceMappingURL=trustService.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"trustService.js","sourceRoot":"","sources":["../../src/trustService.ts"],"names":[],"mappings":"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","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 failures per verifier.\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\tfailures?: { [id: string]: IError[] };\n\t}> {\n\t\tconst verifierNames = overrideVerifiers ?? TrustVerifierFactory.names();\n\t\tlet verified = false;\n\t\tconst info: IJsonLdNodeObject[] = [];\n\t\tconst failures: { [id: string]: 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);\n\n\t\t\tif (Is.object(verifierResult)) {\n\t\t\t\tverified = verifierResult.verified;\n\n\t\t\t\tif (Is.arrayValue(verifierResult.failures)) {\n\t\t\t\t\tfailures[verifierName] = verifierResult.failures;\n\t\t\t\t}\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: JSON.stringify(info)\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\tfailures: JSON.stringify(failures)\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\treturn {\n\t\t\tverified,\n\t\t\tinfo: Is.arrayValue(info) ? info : undefined,\n\t\t\tfailures: Is.objectValue(failures) ? failures : undefined\n\t\t};\n\t}\n}\n"]}
1
+ {"version":3,"file":"trustService.js","sourceRoot":"","sources":["../../src/trustService.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport { ComponentFactory, Guards, Is, type IError } from \"@twin.org/core\";\nimport type { ILoggingComponent } from \"@twin.org/logging-models\";\nimport { nameof } from \"@twin.org/nameof\";\nimport {\n\tTrustGeneratorFactory,\n\tTrustVerifierFactory,\n\ttype ITrustComponent\n} 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?: {\n\t\t\t[key: string]: unknown;\n\t\t};\n\t\terrors?: IError[];\n\t}> {\n\t\tconst verifierNames = overrideVerifiers ?? TrustVerifierFactory.names();\n\t\tlet verified = false;\n\t\tconst info: { [key: string]: unknown } = {};\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: Object.keys(info).length > 0 ? info : undefined,\n\t\t\terrors: errors.length > 0 ? errors : undefined\n\t\t};\n\t}\n\n\t/**\n\t * Generate a payload using the specified generators.\n\t * @param generatorType The type of generator to use.\n\t * @param info Optional information to include in the generated payload.\n\t * @returns The generated payload.\n\t */\n\tpublic async generate(\n\t\tgeneratorType: string,\n\t\tinfo?: {\n\t\t\t[key: string]: unknown;\n\t\t}\n\t): Promise<unknown> {\n\t\tGuards.stringValue(TrustService.CLASS_NAME, nameof(generatorType), generatorType);\n\n\t\tconst generator = TrustGeneratorFactory.get(generatorType);\n\n\t\treturn generator.generate(info);\n\t}\n}\n"]}
@@ -1,5 +1,4 @@
1
1
  import { type IError } from "@twin.org/core";
2
- import type { IJsonLdNodeObject } from "@twin.org/data-json-ld";
3
2
  import { type ITrustComponent } from "@twin.org/trust-models";
4
3
  import type { ITrustServiceConstructorOptions } from "./models/ITrustServiceConstructorOptions.js";
5
4
  /**
@@ -24,13 +23,22 @@ export declare class TrustService implements ITrustComponent {
24
23
  * Verify a payload by checking the validity of its structure and content using the registered verifiers.
25
24
  * @param payload The payload to verify.
26
25
  * @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 failures per verifier.
26
+ * @returns Whether the payload is verified and any additional information extracted from the payload, or verification errors.
28
27
  */
29
28
  verify(payload: unknown, overrideVerifiers?: string[]): Promise<{
30
29
  verified: boolean;
31
- info?: IJsonLdNodeObject[];
32
- failures?: {
33
- [id: string]: IError[];
30
+ info?: {
31
+ [key: string]: unknown;
34
32
  };
33
+ errors?: IError[];
35
34
  }>;
35
+ /**
36
+ * Generate a payload using the specified generators.
37
+ * @param generatorType The type of generator to use.
38
+ * @param info Optional information to include in the generated payload.
39
+ * @returns The generated payload.
40
+ */
41
+ generate(generatorType: string, info?: {
42
+ [key: string]: unknown;
43
+ }): Promise<unknown>;
36
44
  }
package/docs/changelog.md CHANGED
@@ -1,5 +1,33 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.0.3-next.4](https://github.com/twinfoundation/trust/compare/trust-service-v0.0.3-next.3...trust-service-v0.0.3-next.4) (2025-12-04)
4
+
5
+
6
+ ### Features
7
+
8
+ * add generators ([6228c88](https://github.com/twinfoundation/trust/commit/6228c88a8f0244b7bdfc76b8624c427c81d23f7b))
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.3 to 0.0.3-next.4
16
+
17
+ ## [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)
18
+
19
+
20
+ ### Features
21
+
22
+ * flatten error structure ([5fdd665](https://github.com/twinfoundation/trust/commit/5fdd665d0fc523a655563a0c20d1d82b634534e2))
23
+
24
+
25
+ ### Dependencies
26
+
27
+ * The following workspace dependencies were updated
28
+ * dependencies
29
+ * @twin.org/trust-models bumped from 0.0.3-next.2 to 0.0.3-next.3
30
+
3
31
  ## [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
32
 
5
33
 
@@ -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`[]; `failures?`: \{\[`id`: `string`\]: `IError`[]; \}; \}\>
59
+ > **verify**(`payload`, `overrideVerifiers?`): `Promise`\<\{ `verified`: `boolean`; `info?`: \{\[`key`: `string`\]: `unknown`; \}; `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,10 +76,40 @@ List of verifiers to use instead of the default ones.
76
76
 
77
77
  #### Returns
78
78
 
79
- `Promise`\<\{ `verified`: `boolean`; `info?`: `IJsonLdNodeObject`[]; `failures?`: \{\[`id`: `string`\]: `IError`[]; \}; \}\>
79
+ `Promise`\<\{ `verified`: `boolean`; `info?`: \{\[`key`: `string`\]: `unknown`; \}; `errors?`: `IError`[]; \}\>
80
80
 
81
- Whether the payload is verified and any additional information extracted from the payload, or failures per verifier.
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
 
85
85
  `ITrustComponent.verify`
86
+
87
+ ***
88
+
89
+ ### generate()
90
+
91
+ > **generate**(`generatorType`, `info?`): `Promise`\<`unknown`\>
92
+
93
+ Generate a payload using the specified generators.
94
+
95
+ #### Parameters
96
+
97
+ ##### generatorType
98
+
99
+ `string`
100
+
101
+ The type of generator to use.
102
+
103
+ ##### info?
104
+
105
+ Optional information to include in the generated payload.
106
+
107
+ #### Returns
108
+
109
+ `Promise`\<`unknown`\>
110
+
111
+ The generated payload.
112
+
113
+ #### Implementation of
114
+
115
+ `ITrustComponent.generate`
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: \"{info}\""
5
+ "verified": "Payload verified successfully"
6
6
  }
7
7
  },
8
8
  "error": {
9
9
  "trustService": {
10
- "notVerified": "Payload verification failed: \"{failures}\""
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.2",
3
+ "version": "0.0.3-next.4",
4
4
  "description": "Trust service implementation",
5
5
  "repository": {
6
6
  "type": "git",
@@ -15,10 +15,9 @@
15
15
  },
16
16
  "dependencies": {
17
17
  "@twin.org/core": "next",
18
- "@twin.org/data-json-ld": "next",
19
18
  "@twin.org/logging-models": "next",
20
19
  "@twin.org/nameof": "next",
21
- "@twin.org/trust-models": "0.0.3-next.2"
20
+ "@twin.org/trust-models": "0.0.3-next.4"
22
21
  },
23
22
  "main": "./dist/es/index.js",
24
23
  "types": "./dist/types/index.d.ts",