@ajna-inc/openbadges 0.1.6 → 0.1.8
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/build/OpenBadgesModule.d.ts +2 -2
- package/build/OpenBadgesModule.js +10 -2
- package/build/OpenBadgesModule.js.map +1 -1
- package/build/api/OpenBadgesApi.d.ts +95 -6
- package/build/api/OpenBadgesApi.js +186 -1
- package/build/api/OpenBadgesApi.js.map +1 -1
- package/build/cryptosuites/EcdsaSd2023.d.ts +1 -1
- package/build/cryptosuites/EcdsaSd2023.js +3 -3
- package/build/cryptosuites/EcdsaSd2023.js.map +1 -1
- package/build/cryptosuites/EddsaRdfc2022.js +5 -5
- package/build/cryptosuites/EddsaRdfc2022.js.map +1 -1
- package/build/http/endpoints/token.js +4 -7
- package/build/http/endpoints/token.js.map +1 -1
- package/build/index.d.ts +1 -0
- package/build/index.js +2 -0
- package/build/index.js.map +1 -1
- package/build/protocol/OpenBadgeProtocolEvents.d.ts +95 -0
- package/build/protocol/OpenBadgeProtocolEvents.js +16 -0
- package/build/protocol/OpenBadgeProtocolEvents.js.map +1 -0
- package/build/protocol/OpenBadgeProtocolService.d.ts +73 -0
- package/build/protocol/OpenBadgeProtocolService.js +274 -0
- package/build/protocol/OpenBadgeProtocolService.js.map +1 -0
- package/build/protocol/handlers/AckHandler.d.ts +9 -0
- package/build/protocol/handlers/AckHandler.js +30 -0
- package/build/protocol/handlers/AckHandler.js.map +1 -0
- package/build/protocol/handlers/CredentialHandler.d.ts +9 -0
- package/build/protocol/handlers/CredentialHandler.js +30 -0
- package/build/protocol/handlers/CredentialHandler.js.map +1 -0
- package/build/protocol/handlers/OfferHandler.d.ts +9 -0
- package/build/protocol/handlers/OfferHandler.js +30 -0
- package/build/protocol/handlers/OfferHandler.js.map +1 -0
- package/build/protocol/handlers/PresentationHandler.d.ts +9 -0
- package/build/protocol/handlers/PresentationHandler.js +30 -0
- package/build/protocol/handlers/PresentationHandler.js.map +1 -0
- package/build/protocol/handlers/RequestHandler.d.ts +9 -0
- package/build/protocol/handlers/RequestHandler.js +30 -0
- package/build/protocol/handlers/RequestHandler.js.map +1 -0
- package/build/protocol/handlers/RequestPresentationHandler.d.ts +9 -0
- package/build/protocol/handlers/RequestPresentationHandler.js +30 -0
- package/build/protocol/handlers/RequestPresentationHandler.js.map +1 -0
- package/build/protocol/handlers/VerificationResultHandler.d.ts +9 -0
- package/build/protocol/handlers/VerificationResultHandler.js +30 -0
- package/build/protocol/handlers/VerificationResultHandler.js.map +1 -0
- package/build/protocol/handlers/index.d.ts +7 -0
- package/build/protocol/handlers/index.js +24 -0
- package/build/protocol/handlers/index.js.map +1 -0
- package/build/protocol/index.d.ts +4 -0
- package/build/protocol/index.js +21 -0
- package/build/protocol/index.js.map +1 -0
- package/build/protocol/messages/AckMessage.d.ts +18 -0
- package/build/protocol/messages/AckMessage.js +46 -0
- package/build/protocol/messages/AckMessage.js.map +1 -0
- package/build/protocol/messages/CredentialMessage.d.ts +26 -0
- package/build/protocol/messages/CredentialMessage.js +72 -0
- package/build/protocol/messages/CredentialMessage.js.map +1 -0
- package/build/protocol/messages/OfferMessage.d.ts +21 -0
- package/build/protocol/messages/OfferMessage.js +59 -0
- package/build/protocol/messages/OfferMessage.js.map +1 -0
- package/build/protocol/messages/PresentationMessage.d.ts +26 -0
- package/build/protocol/messages/PresentationMessage.js +72 -0
- package/build/protocol/messages/PresentationMessage.js.map +1 -0
- package/build/protocol/messages/RequestMessage.d.ts +18 -0
- package/build/protocol/messages/RequestMessage.js +50 -0
- package/build/protocol/messages/RequestMessage.js.map +1 -0
- package/build/protocol/messages/RequestPresentationMessage.d.ts +16 -0
- package/build/protocol/messages/RequestPresentationMessage.js +45 -0
- package/build/protocol/messages/RequestPresentationMessage.js.map +1 -0
- package/build/protocol/messages/VerificationResultMessage.d.ts +19 -0
- package/build/protocol/messages/VerificationResultMessage.js +51 -0
- package/build/protocol/messages/VerificationResultMessage.js.map +1 -0
- package/build/protocol/messages/index.d.ts +7 -0
- package/build/protocol/messages/index.js +24 -0
- package/build/protocol/messages/index.js.map +1 -0
- package/build/services/KeyService.js +3 -2
- package/build/services/KeyService.js.map +1 -1
- package/package.json +1 -1
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.configureTokenEndpoint = configureTokenEndpoint;
|
|
4
4
|
const router_1 = require("../router");
|
|
5
|
+
const core_1 = require("@credo-ts/core");
|
|
5
6
|
const OpenBadgesAuthCodeRepository_1 = require("../../repository/OpenBadgesAuthCodeRepository");
|
|
6
7
|
const OpenBadgesTokenRepository_1 = require("../../repository/OpenBadgesTokenRepository");
|
|
7
8
|
const OpenBadgesTokenRecord_1 = require("../../repository/OpenBadgesTokenRecord");
|
|
@@ -41,14 +42,10 @@ function configureTokenEndpoint(router, module) {
|
|
|
41
42
|
if (entry.codeChallenge) {
|
|
42
43
|
if (!code_verifier)
|
|
43
44
|
return (0, router_1.sendError)(res, 400, 'invalid_request', 'code_verifier required');
|
|
44
|
-
const { createHash } = require('crypto');
|
|
45
|
-
const b64url = (buf) => buf
|
|
46
|
-
.toString('base64')
|
|
47
|
-
.replace(/=/g, '')
|
|
48
|
-
.replace(/\+/g, '-')
|
|
49
|
-
.replace(/\//g, '_');
|
|
50
45
|
if (entry.codeChallengeMethod === 'S256') {
|
|
51
|
-
|
|
46
|
+
// Use cross-platform Hasher instead of Node crypto
|
|
47
|
+
const hashBytes = core_1.Hasher.hash(core_1.TypedArrayEncoder.fromString(code_verifier), 'sha-256');
|
|
48
|
+
const expected = core_1.TypedArrayEncoder.toBase64URL(hashBytes);
|
|
52
49
|
if (expected !== entry.codeChallenge)
|
|
53
50
|
return (0, router_1.sendError)(res, 400, 'invalid_grant', 'PKCE verification failed');
|
|
54
51
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token.js","sourceRoot":"","sources":["../../../src/http/endpoints/token.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"token.js","sourceRoot":"","sources":["../../../src/http/endpoints/token.ts"],"names":[],"mappings":"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"}
|
package/build/index.d.ts
CHANGED
package/build/index.js
CHANGED
|
@@ -66,6 +66,8 @@ __exportStar(require("./services/crypto/JwtCryptoDriver"), exports);
|
|
|
66
66
|
__exportStar(require("./http/OpenBadgesHttpModule"), exports);
|
|
67
67
|
__exportStar(require("./http/OpenBadgesHttpModuleConfig"), exports);
|
|
68
68
|
__exportStar(require("./http/router"), exports);
|
|
69
|
+
// DIDComm Protocol
|
|
70
|
+
__exportStar(require("./protocol"), exports);
|
|
69
71
|
// Utils
|
|
70
72
|
__exportStar(require("./utils/validate"), exports);
|
|
71
73
|
//# sourceMappingURL=index.js.map
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mCAAmC;AACnC,qDAAkC;AAClC,2DAAwC;AACxC,8CAA2B;AAE3B,4BAA4B;AAC5B,2CAAwB;AAExB,6CAA6C;AAC7C,iDAA8B;AAE9B,MAAM;AACN,sDAAmC;AAEnC,uBAAuB;AACvB,yEAAsD;AACtD,6EAA0D;AAC1D,uEAAoD;AACpD,2EAAwD;AACxD,kFAA+D;AAC/D,sFAAmE;AACnE,qEAAkD;AAClD,yEAAsD;AACtD,+EAA4D;AAC5D,mFAAgE;AAChE,wEAAqD;AACrD,4EAAyD;AACzD,qEAAkD;AAClD,yEAAsD;AACtD,uEAAoD;AACpD,2EAAwD;AACxD,0EAAuD;AACvD,8EAA2D;AAC3D,gEAA6C;AAC7C,oEAAiD;AAEjD,WAAW;AACX,2DAAwC;AACxC,2DAAwC;AACxC,6DAA0C;AAC1C,yDAAsC;AACtC,gEAA6C;AAC7C,2DAAwC;AACxC,+DAA4C;AAC5C,wDAAqC;AACrC,0DAAuC;AACvC,wDAAqC;AACrC,4DAAyC;AACzC,kEAA+C;AAC/C,kEAA+C;AAC/C,iEAA8C;AAC9C,uEAAoD;AACpD,oEAAiD;AAEjD,cAAc;AACd,8DAA2C;AAC3C,oEAAiD;AACjD,gDAA6B;AAE7B,QAAQ;AACR,mDAAgC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mCAAmC;AACnC,qDAAkC;AAClC,2DAAwC;AACxC,8CAA2B;AAE3B,4BAA4B;AAC5B,2CAAwB;AAExB,6CAA6C;AAC7C,iDAA8B;AAE9B,MAAM;AACN,sDAAmC;AAEnC,uBAAuB;AACvB,yEAAsD;AACtD,6EAA0D;AAC1D,uEAAoD;AACpD,2EAAwD;AACxD,kFAA+D;AAC/D,sFAAmE;AACnE,qEAAkD;AAClD,yEAAsD;AACtD,+EAA4D;AAC5D,mFAAgE;AAChE,wEAAqD;AACrD,4EAAyD;AACzD,qEAAkD;AAClD,yEAAsD;AACtD,uEAAoD;AACpD,2EAAwD;AACxD,0EAAuD;AACvD,8EAA2D;AAC3D,gEAA6C;AAC7C,oEAAiD;AAEjD,WAAW;AACX,2DAAwC;AACxC,2DAAwC;AACxC,6DAA0C;AAC1C,yDAAsC;AACtC,gEAA6C;AAC7C,2DAAwC;AACxC,+DAA4C;AAC5C,wDAAqC;AACrC,0DAAuC;AACvC,wDAAqC;AACrC,4DAAyC;AACzC,kEAA+C;AAC/C,kEAA+C;AAC/C,iEAA8C;AAC9C,uEAAoD;AACpD,oEAAiD;AAEjD,cAAc;AACd,8DAA2C;AAC3C,oEAAiD;AACjD,gDAA6B;AAE7B,mBAAmB;AACnB,6CAA0B;AAE1B,QAAQ;AACR,mDAAgC"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
export declare enum OpenBadgeProtocolEventTypes {
|
|
2
|
+
RequestReceived = "OpenBadgeProtocol.RequestReceived",
|
|
3
|
+
OfferReceived = "OpenBadgeProtocol.OfferReceived",
|
|
4
|
+
CredentialReceived = "OpenBadgeProtocol.CredentialReceived",
|
|
5
|
+
AckReceived = "OpenBadgeProtocol.AckReceived",
|
|
6
|
+
RequestPresentationReceived = "OpenBadgeProtocol.RequestPresentationReceived",
|
|
7
|
+
PresentationReceived = "OpenBadgeProtocol.PresentationReceived",
|
|
8
|
+
VerificationResultReceived = "OpenBadgeProtocol.VerificationResultReceived"
|
|
9
|
+
}
|
|
10
|
+
export interface RequestReceivedEventPayload {
|
|
11
|
+
connectionId?: string;
|
|
12
|
+
threadId: string;
|
|
13
|
+
achievementName: string;
|
|
14
|
+
achievementType?: string;
|
|
15
|
+
comment?: string;
|
|
16
|
+
[key: string]: unknown;
|
|
17
|
+
}
|
|
18
|
+
export interface OfferReceivedEventPayload {
|
|
19
|
+
connectionId?: string;
|
|
20
|
+
threadId: string;
|
|
21
|
+
achievementName: string;
|
|
22
|
+
description?: string;
|
|
23
|
+
imageUrl?: string;
|
|
24
|
+
comment?: string;
|
|
25
|
+
[key: string]: unknown;
|
|
26
|
+
}
|
|
27
|
+
export interface CredentialReceivedEventPayload {
|
|
28
|
+
connectionId?: string;
|
|
29
|
+
threadId: string;
|
|
30
|
+
credentialRecordId: string;
|
|
31
|
+
verified: boolean;
|
|
32
|
+
status: 'valid' | 'revoked' | 'expired' | 'unknown';
|
|
33
|
+
credential?: Record<string, unknown>;
|
|
34
|
+
[key: string]: unknown;
|
|
35
|
+
}
|
|
36
|
+
export interface AckReceivedEventPayload {
|
|
37
|
+
connectionId?: string;
|
|
38
|
+
threadId: string;
|
|
39
|
+
status: 'OK' | 'FAIL';
|
|
40
|
+
comment?: string;
|
|
41
|
+
[key: string]: unknown;
|
|
42
|
+
}
|
|
43
|
+
export interface RequestPresentationReceivedEventPayload {
|
|
44
|
+
connectionId?: string;
|
|
45
|
+
threadId: string;
|
|
46
|
+
achievementName?: string;
|
|
47
|
+
comment?: string;
|
|
48
|
+
[key: string]: unknown;
|
|
49
|
+
}
|
|
50
|
+
export interface PresentationReceivedEventPayload {
|
|
51
|
+
connectionId?: string;
|
|
52
|
+
threadId: string;
|
|
53
|
+
credential: Record<string, unknown> | null;
|
|
54
|
+
verified: boolean;
|
|
55
|
+
status: string;
|
|
56
|
+
error?: string;
|
|
57
|
+
[key: string]: unknown;
|
|
58
|
+
}
|
|
59
|
+
export interface VerificationResultReceivedEventPayload {
|
|
60
|
+
connectionId?: string;
|
|
61
|
+
threadId: string;
|
|
62
|
+
verified: boolean;
|
|
63
|
+
error?: string;
|
|
64
|
+
comment?: string;
|
|
65
|
+
[key: string]: unknown;
|
|
66
|
+
}
|
|
67
|
+
export interface RequestReceivedEvent {
|
|
68
|
+
type: typeof OpenBadgeProtocolEventTypes.RequestReceived;
|
|
69
|
+
payload: RequestReceivedEventPayload;
|
|
70
|
+
}
|
|
71
|
+
export interface OfferReceivedEvent {
|
|
72
|
+
type: typeof OpenBadgeProtocolEventTypes.OfferReceived;
|
|
73
|
+
payload: OfferReceivedEventPayload;
|
|
74
|
+
}
|
|
75
|
+
export interface CredentialReceivedEvent {
|
|
76
|
+
type: typeof OpenBadgeProtocolEventTypes.CredentialReceived;
|
|
77
|
+
payload: CredentialReceivedEventPayload;
|
|
78
|
+
}
|
|
79
|
+
export interface AckReceivedEvent {
|
|
80
|
+
type: typeof OpenBadgeProtocolEventTypes.AckReceived;
|
|
81
|
+
payload: AckReceivedEventPayload;
|
|
82
|
+
}
|
|
83
|
+
export interface RequestPresentationReceivedEvent {
|
|
84
|
+
type: typeof OpenBadgeProtocolEventTypes.RequestPresentationReceived;
|
|
85
|
+
payload: RequestPresentationReceivedEventPayload;
|
|
86
|
+
}
|
|
87
|
+
export interface PresentationReceivedEvent {
|
|
88
|
+
type: typeof OpenBadgeProtocolEventTypes.PresentationReceived;
|
|
89
|
+
payload: PresentationReceivedEventPayload;
|
|
90
|
+
}
|
|
91
|
+
export interface VerificationResultReceivedEvent {
|
|
92
|
+
type: typeof OpenBadgeProtocolEventTypes.VerificationResultReceived;
|
|
93
|
+
payload: VerificationResultReceivedEventPayload;
|
|
94
|
+
}
|
|
95
|
+
export type OpenBadgeProtocolEvent = RequestReceivedEvent | OfferReceivedEvent | CredentialReceivedEvent | AckReceivedEvent | RequestPresentationReceivedEvent | PresentationReceivedEvent | VerificationResultReceivedEvent;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OpenBadgeProtocolEventTypes = void 0;
|
|
4
|
+
var OpenBadgeProtocolEventTypes;
|
|
5
|
+
(function (OpenBadgeProtocolEventTypes) {
|
|
6
|
+
// Issuance Flow Events
|
|
7
|
+
OpenBadgeProtocolEventTypes["RequestReceived"] = "OpenBadgeProtocol.RequestReceived";
|
|
8
|
+
OpenBadgeProtocolEventTypes["OfferReceived"] = "OpenBadgeProtocol.OfferReceived";
|
|
9
|
+
OpenBadgeProtocolEventTypes["CredentialReceived"] = "OpenBadgeProtocol.CredentialReceived";
|
|
10
|
+
OpenBadgeProtocolEventTypes["AckReceived"] = "OpenBadgeProtocol.AckReceived";
|
|
11
|
+
// Verification Flow Events
|
|
12
|
+
OpenBadgeProtocolEventTypes["RequestPresentationReceived"] = "OpenBadgeProtocol.RequestPresentationReceived";
|
|
13
|
+
OpenBadgeProtocolEventTypes["PresentationReceived"] = "OpenBadgeProtocol.PresentationReceived";
|
|
14
|
+
OpenBadgeProtocolEventTypes["VerificationResultReceived"] = "OpenBadgeProtocol.VerificationResultReceived";
|
|
15
|
+
})(OpenBadgeProtocolEventTypes || (exports.OpenBadgeProtocolEventTypes = OpenBadgeProtocolEventTypes = {}));
|
|
16
|
+
//# sourceMappingURL=OpenBadgeProtocolEvents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OpenBadgeProtocolEvents.js","sourceRoot":"","sources":["../../src/protocol/OpenBadgeProtocolEvents.ts"],"names":[],"mappings":";;;AAAA,IAAY,2BAWX;AAXD,WAAY,2BAA2B;IACrC,uBAAuB;IACvB,oFAAqD,CAAA;IACrD,gFAAiD,CAAA;IACjD,0FAA2D,CAAA;IAC3D,4EAA6C,CAAA;IAE7C,2BAA2B;IAC3B,4GAA6E,CAAA;IAC7E,8FAA+D,CAAA;IAC/D,0GAA2E,CAAA;AAC7E,CAAC,EAXW,2BAA2B,2CAA3B,2BAA2B,QAWtC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import type { InboundMessageContext } from '@credo-ts/core';
|
|
2
|
+
import { EventEmitter } from '@credo-ts/core';
|
|
3
|
+
import { OpenBadgeCredentialRecord } from '../repository/OpenBadgeCredentialRecord';
|
|
4
|
+
import { OpenBadgeCredentialRepository } from '../repository/OpenBadgeCredentialRepository';
|
|
5
|
+
import { VerifyService } from '../services/VerifyService';
|
|
6
|
+
import { RequestMessage, OfferMessage, CredentialMessage, AckMessage, RequestPresentationMessage, PresentationMessage, VerificationResultMessage } from './messages';
|
|
7
|
+
export declare class OpenBadgeProtocolService {
|
|
8
|
+
private readonly verifyService;
|
|
9
|
+
private readonly credentialRepository;
|
|
10
|
+
private readonly eventEmitter;
|
|
11
|
+
constructor(verifyService: VerifyService, credentialRepository: OpenBadgeCredentialRepository, eventEmitter: EventEmitter);
|
|
12
|
+
createRequest(options: {
|
|
13
|
+
achievementName: string;
|
|
14
|
+
achievementType?: string;
|
|
15
|
+
comment?: string;
|
|
16
|
+
}): RequestMessage;
|
|
17
|
+
createOffer(options: {
|
|
18
|
+
achievementName: string;
|
|
19
|
+
description?: string;
|
|
20
|
+
imageUrl?: string;
|
|
21
|
+
comment?: string;
|
|
22
|
+
threadId?: string;
|
|
23
|
+
}): OfferMessage;
|
|
24
|
+
createCredential(credential: Record<string, unknown>, options?: {
|
|
25
|
+
comment?: string;
|
|
26
|
+
threadId?: string;
|
|
27
|
+
}): CredentialMessage;
|
|
28
|
+
createAck(threadId: string, status: 'OK' | 'FAIL', comment?: string): AckMessage;
|
|
29
|
+
createRequestPresentation(options?: {
|
|
30
|
+
achievementName?: string;
|
|
31
|
+
comment?: string;
|
|
32
|
+
}): RequestPresentationMessage;
|
|
33
|
+
createPresentation(credential: Record<string, unknown>, options?: {
|
|
34
|
+
comment?: string;
|
|
35
|
+
threadId?: string;
|
|
36
|
+
}): PresentationMessage;
|
|
37
|
+
createVerificationResult(threadId: string, verified: boolean, error?: string, comment?: string): VerificationResultMessage;
|
|
38
|
+
processRequest(messageContext: InboundMessageContext<RequestMessage>): Promise<void>;
|
|
39
|
+
processOffer(messageContext: InboundMessageContext<OfferMessage>): Promise<void>;
|
|
40
|
+
/**
|
|
41
|
+
* Process received credential - STORES IN WALLET
|
|
42
|
+
* 1. Extract credential JSON from attachment (unchanged)
|
|
43
|
+
* 2. Verify the credential proof using VerifyService
|
|
44
|
+
* 3. Extract derived metadata for display
|
|
45
|
+
* 4. Save to OpenBadgeCredentialRepository with status
|
|
46
|
+
*/
|
|
47
|
+
processCredential(messageContext: InboundMessageContext<CredentialMessage>): Promise<OpenBadgeCredentialRecord | null>;
|
|
48
|
+
processAck(messageContext: InboundMessageContext<AckMessage>): Promise<void>;
|
|
49
|
+
/**
|
|
50
|
+
* Process presentation request - emit event for holder to respond
|
|
51
|
+
*/
|
|
52
|
+
processRequestPresentation(messageContext: InboundMessageContext<RequestPresentationMessage>): Promise<void>;
|
|
53
|
+
/**
|
|
54
|
+
* Process presentation - VERIFIES CREDENTIAL
|
|
55
|
+
* 1. Extract credential from attachment
|
|
56
|
+
* 2. Verify using VerifyService (proof + status check)
|
|
57
|
+
* 3. Emit event with verification result
|
|
58
|
+
*/
|
|
59
|
+
processPresentation(messageContext: InboundMessageContext<PresentationMessage>): Promise<{
|
|
60
|
+
verified: boolean;
|
|
61
|
+
status: string;
|
|
62
|
+
error?: string;
|
|
63
|
+
}>;
|
|
64
|
+
/**
|
|
65
|
+
* Process verification result - notify holder of outcome
|
|
66
|
+
*/
|
|
67
|
+
processVerificationResult(messageContext: InboundMessageContext<VerificationResultMessage>): Promise<void>;
|
|
68
|
+
/**
|
|
69
|
+
* Extract display metadata from OpenBadges credential
|
|
70
|
+
* This matches the existing OpenBadgeCredentialRecord.derived structure
|
|
71
|
+
*/
|
|
72
|
+
private extractDerivedMetadata;
|
|
73
|
+
}
|
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.OpenBadgeProtocolService = void 0;
|
|
16
|
+
const core_1 = require("@credo-ts/core");
|
|
17
|
+
const OpenBadgeCredentialRecord_1 = require("../repository/OpenBadgeCredentialRecord");
|
|
18
|
+
const OpenBadgeCredentialRepository_1 = require("../repository/OpenBadgeCredentialRepository");
|
|
19
|
+
const VerifyService_1 = require("../services/VerifyService");
|
|
20
|
+
const messages_1 = require("./messages");
|
|
21
|
+
const OpenBadgeProtocolEvents_1 = require("./OpenBadgeProtocolEvents");
|
|
22
|
+
let OpenBadgeProtocolService = class OpenBadgeProtocolService {
|
|
23
|
+
constructor(verifyService, credentialRepository, eventEmitter) {
|
|
24
|
+
this.verifyService = verifyService;
|
|
25
|
+
this.credentialRepository = credentialRepository;
|
|
26
|
+
this.eventEmitter = eventEmitter;
|
|
27
|
+
}
|
|
28
|
+
// ============================================================
|
|
29
|
+
// OUTBOUND - Creating messages
|
|
30
|
+
// ============================================================
|
|
31
|
+
createRequest(options) {
|
|
32
|
+
return new messages_1.RequestMessage({
|
|
33
|
+
achievementName: options.achievementName,
|
|
34
|
+
achievementType: options.achievementType,
|
|
35
|
+
comment: options.comment,
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
createOffer(options) {
|
|
39
|
+
return new messages_1.OfferMessage({
|
|
40
|
+
achievementName: options.achievementName,
|
|
41
|
+
description: options.description,
|
|
42
|
+
imageUrl: options.imageUrl,
|
|
43
|
+
comment: options.comment,
|
|
44
|
+
threadId: options.threadId,
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
createCredential(credential, options) {
|
|
48
|
+
return new messages_1.CredentialMessage({
|
|
49
|
+
credential,
|
|
50
|
+
comment: options?.comment,
|
|
51
|
+
threadId: options?.threadId,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
createAck(threadId, status, comment) {
|
|
55
|
+
return new messages_1.AckMessage({
|
|
56
|
+
threadId,
|
|
57
|
+
status,
|
|
58
|
+
comment,
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
createRequestPresentation(options) {
|
|
62
|
+
return new messages_1.RequestPresentationMessage({
|
|
63
|
+
achievementName: options?.achievementName,
|
|
64
|
+
comment: options?.comment,
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
createPresentation(credential, options) {
|
|
68
|
+
return new messages_1.PresentationMessage({
|
|
69
|
+
credential,
|
|
70
|
+
comment: options?.comment,
|
|
71
|
+
threadId: options?.threadId,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
createVerificationResult(threadId, verified, error, comment) {
|
|
75
|
+
return new messages_1.VerificationResultMessage({
|
|
76
|
+
threadId,
|
|
77
|
+
verified,
|
|
78
|
+
error,
|
|
79
|
+
comment,
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
// ============================================================
|
|
83
|
+
// INBOUND - Processing received messages
|
|
84
|
+
// ============================================================
|
|
85
|
+
async processRequest(messageContext) {
|
|
86
|
+
const { message, connection } = messageContext;
|
|
87
|
+
this.eventEmitter.emit(messageContext.agentContext, {
|
|
88
|
+
type: OpenBadgeProtocolEvents_1.OpenBadgeProtocolEventTypes.RequestReceived,
|
|
89
|
+
payload: {
|
|
90
|
+
connectionId: connection?.id,
|
|
91
|
+
threadId: message.threadId,
|
|
92
|
+
achievementName: message.achievementName,
|
|
93
|
+
achievementType: message.achievementType,
|
|
94
|
+
comment: message.comment,
|
|
95
|
+
},
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
async processOffer(messageContext) {
|
|
99
|
+
const { message, connection } = messageContext;
|
|
100
|
+
this.eventEmitter.emit(messageContext.agentContext, {
|
|
101
|
+
type: OpenBadgeProtocolEvents_1.OpenBadgeProtocolEventTypes.OfferReceived,
|
|
102
|
+
payload: {
|
|
103
|
+
connectionId: connection?.id,
|
|
104
|
+
threadId: message.threadId,
|
|
105
|
+
achievementName: message.achievementName,
|
|
106
|
+
description: message.description,
|
|
107
|
+
imageUrl: message.imageUrl,
|
|
108
|
+
comment: message.comment,
|
|
109
|
+
},
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Process received credential - STORES IN WALLET
|
|
114
|
+
* 1. Extract credential JSON from attachment (unchanged)
|
|
115
|
+
* 2. Verify the credential proof using VerifyService
|
|
116
|
+
* 3. Extract derived metadata for display
|
|
117
|
+
* 4. Save to OpenBadgeCredentialRepository with status
|
|
118
|
+
*/
|
|
119
|
+
async processCredential(messageContext) {
|
|
120
|
+
const { message, connection, agentContext } = messageContext;
|
|
121
|
+
const credential = message.getCredential();
|
|
122
|
+
if (!credential) {
|
|
123
|
+
console.warn('[OpenBadgeProtocol] No credential found in message attachment');
|
|
124
|
+
return null;
|
|
125
|
+
}
|
|
126
|
+
// Verify the credential's proof
|
|
127
|
+
const verifyResult = await this.verifyService.verify(agentContext, credential);
|
|
128
|
+
// Extract derived metadata for UI display
|
|
129
|
+
const derived = this.extractDerivedMetadata(credential);
|
|
130
|
+
// Create and save record to wallet
|
|
131
|
+
const record = new OpenBadgeCredentialRecord_1.OpenBadgeCredentialRecord({
|
|
132
|
+
credential, // Raw JSON-LD credential (unchanged!)
|
|
133
|
+
status: verifyResult.status,
|
|
134
|
+
derived,
|
|
135
|
+
});
|
|
136
|
+
await this.credentialRepository.save(agentContext, record);
|
|
137
|
+
console.log('[OpenBadgeProtocol] Credential stored in wallet:', record.id);
|
|
138
|
+
this.eventEmitter.emit(agentContext, {
|
|
139
|
+
type: OpenBadgeProtocolEvents_1.OpenBadgeProtocolEventTypes.CredentialReceived,
|
|
140
|
+
payload: {
|
|
141
|
+
connectionId: connection?.id,
|
|
142
|
+
threadId: message.threadId,
|
|
143
|
+
credentialRecordId: record.id,
|
|
144
|
+
verified: verifyResult.proofVerified,
|
|
145
|
+
status: verifyResult.status,
|
|
146
|
+
credential,
|
|
147
|
+
},
|
|
148
|
+
});
|
|
149
|
+
return record;
|
|
150
|
+
}
|
|
151
|
+
async processAck(messageContext) {
|
|
152
|
+
const { message, connection } = messageContext;
|
|
153
|
+
this.eventEmitter.emit(messageContext.agentContext, {
|
|
154
|
+
type: OpenBadgeProtocolEvents_1.OpenBadgeProtocolEventTypes.AckReceived,
|
|
155
|
+
payload: {
|
|
156
|
+
connectionId: connection?.id,
|
|
157
|
+
threadId: message.threadId,
|
|
158
|
+
status: message.status,
|
|
159
|
+
comment: message.comment,
|
|
160
|
+
},
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Process presentation request - emit event for holder to respond
|
|
165
|
+
*/
|
|
166
|
+
async processRequestPresentation(messageContext) {
|
|
167
|
+
const { message, connection } = messageContext;
|
|
168
|
+
this.eventEmitter.emit(messageContext.agentContext, {
|
|
169
|
+
type: OpenBadgeProtocolEvents_1.OpenBadgeProtocolEventTypes.RequestPresentationReceived,
|
|
170
|
+
payload: {
|
|
171
|
+
connectionId: connection?.id,
|
|
172
|
+
threadId: message.threadId,
|
|
173
|
+
achievementName: message.achievementName,
|
|
174
|
+
comment: message.comment,
|
|
175
|
+
},
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Process presentation - VERIFIES CREDENTIAL
|
|
180
|
+
* 1. Extract credential from attachment
|
|
181
|
+
* 2. Verify using VerifyService (proof + status check)
|
|
182
|
+
* 3. Emit event with verification result
|
|
183
|
+
*/
|
|
184
|
+
async processPresentation(messageContext) {
|
|
185
|
+
const { message, connection, agentContext } = messageContext;
|
|
186
|
+
const credential = message.getCredential();
|
|
187
|
+
if (!credential) {
|
|
188
|
+
const result = { verified: false, status: 'unknown', error: 'No credential in attachment' };
|
|
189
|
+
this.eventEmitter.emit(agentContext, {
|
|
190
|
+
type: OpenBadgeProtocolEvents_1.OpenBadgeProtocolEventTypes.PresentationReceived,
|
|
191
|
+
payload: {
|
|
192
|
+
connectionId: connection?.id,
|
|
193
|
+
threadId: message.threadId,
|
|
194
|
+
credential: null,
|
|
195
|
+
...result,
|
|
196
|
+
},
|
|
197
|
+
});
|
|
198
|
+
return result;
|
|
199
|
+
}
|
|
200
|
+
// Verify using existing VerifyService
|
|
201
|
+
const verifyResult = await this.verifyService.verify(agentContext, credential);
|
|
202
|
+
const result = {
|
|
203
|
+
verified: verifyResult.proofVerified && verifyResult.status === 'valid',
|
|
204
|
+
status: verifyResult.status,
|
|
205
|
+
error: verifyResult.issues?.length > 0 ? verifyResult.issues.map((i) => i.message).join(', ') : undefined,
|
|
206
|
+
};
|
|
207
|
+
console.log('[OpenBadgeProtocol] Presentation verification result:', result);
|
|
208
|
+
this.eventEmitter.emit(agentContext, {
|
|
209
|
+
type: OpenBadgeProtocolEvents_1.OpenBadgeProtocolEventTypes.PresentationReceived,
|
|
210
|
+
payload: {
|
|
211
|
+
connectionId: connection?.id,
|
|
212
|
+
threadId: message.threadId,
|
|
213
|
+
credential,
|
|
214
|
+
...result,
|
|
215
|
+
},
|
|
216
|
+
});
|
|
217
|
+
return result;
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Process verification result - notify holder of outcome
|
|
221
|
+
*/
|
|
222
|
+
async processVerificationResult(messageContext) {
|
|
223
|
+
const { message, connection } = messageContext;
|
|
224
|
+
this.eventEmitter.emit(messageContext.agentContext, {
|
|
225
|
+
type: OpenBadgeProtocolEvents_1.OpenBadgeProtocolEventTypes.VerificationResultReceived,
|
|
226
|
+
payload: {
|
|
227
|
+
connectionId: connection?.id,
|
|
228
|
+
threadId: message.threadId,
|
|
229
|
+
verified: message.verified,
|
|
230
|
+
error: message.error,
|
|
231
|
+
comment: message.comment,
|
|
232
|
+
},
|
|
233
|
+
});
|
|
234
|
+
}
|
|
235
|
+
// ============================================================
|
|
236
|
+
// HELPER METHODS
|
|
237
|
+
// ============================================================
|
|
238
|
+
/**
|
|
239
|
+
* Extract display metadata from OpenBadges credential
|
|
240
|
+
* This matches the existing OpenBadgeCredentialRecord.derived structure
|
|
241
|
+
*/
|
|
242
|
+
extractDerivedMetadata(credential) {
|
|
243
|
+
const credSubject = credential.credentialSubject;
|
|
244
|
+
const achievement = credSubject?.achievement;
|
|
245
|
+
const issuer = credential.issuer;
|
|
246
|
+
let image;
|
|
247
|
+
if (achievement?.image) {
|
|
248
|
+
if (typeof achievement.image === 'string') {
|
|
249
|
+
image = achievement.image;
|
|
250
|
+
}
|
|
251
|
+
else if (typeof achievement.image === 'object') {
|
|
252
|
+
image = achievement.image?.id;
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
return {
|
|
256
|
+
title: achievement?.name || credential.name,
|
|
257
|
+
description: achievement?.description,
|
|
258
|
+
issuerName: typeof issuer === 'string' ? issuer : issuer?.name,
|
|
259
|
+
issuedOn: credential.validFrom || credential.issuanceDate,
|
|
260
|
+
image,
|
|
261
|
+
};
|
|
262
|
+
}
|
|
263
|
+
};
|
|
264
|
+
exports.OpenBadgeProtocolService = OpenBadgeProtocolService;
|
|
265
|
+
exports.OpenBadgeProtocolService = OpenBadgeProtocolService = __decorate([
|
|
266
|
+
(0, core_1.injectable)(),
|
|
267
|
+
__param(0, (0, core_1.inject)(VerifyService_1.VerifyService)),
|
|
268
|
+
__param(1, (0, core_1.inject)(OpenBadgeCredentialRepository_1.OpenBadgeCredentialRepository)),
|
|
269
|
+
__param(2, (0, core_1.inject)(core_1.EventEmitter)),
|
|
270
|
+
__metadata("design:paramtypes", [VerifyService_1.VerifyService,
|
|
271
|
+
OpenBadgeCredentialRepository_1.OpenBadgeCredentialRepository,
|
|
272
|
+
core_1.EventEmitter])
|
|
273
|
+
], OpenBadgeProtocolService);
|
|
274
|
+
//# sourceMappingURL=OpenBadgeProtocolService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OpenBadgeProtocolService.js","sourceRoot":"","sources":["../../src/protocol/OpenBadgeProtocolService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { MessageHandler, MessageHandlerInboundMessage } from '@credo-ts/core';
|
|
2
|
+
import { AckMessage } from '../messages';
|
|
3
|
+
import { OpenBadgeProtocolService } from '../OpenBadgeProtocolService';
|
|
4
|
+
export declare class AckHandler implements MessageHandler {
|
|
5
|
+
supportedMessages: (typeof AckMessage)[];
|
|
6
|
+
private service;
|
|
7
|
+
constructor(service: OpenBadgeProtocolService);
|
|
8
|
+
handle(inbound: MessageHandlerInboundMessage<AckHandler>): Promise<void>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.AckHandler = void 0;
|
|
13
|
+
const core_1 = require("@credo-ts/core");
|
|
14
|
+
const messages_1 = require("../messages");
|
|
15
|
+
const OpenBadgeProtocolService_1 = require("../OpenBadgeProtocolService");
|
|
16
|
+
let AckHandler = class AckHandler {
|
|
17
|
+
constructor(service) {
|
|
18
|
+
this.supportedMessages = [messages_1.AckMessage];
|
|
19
|
+
this.service = service;
|
|
20
|
+
}
|
|
21
|
+
async handle(inbound) {
|
|
22
|
+
await this.service.processAck(inbound);
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
exports.AckHandler = AckHandler;
|
|
26
|
+
exports.AckHandler = AckHandler = __decorate([
|
|
27
|
+
(0, core_1.injectable)(),
|
|
28
|
+
__metadata("design:paramtypes", [OpenBadgeProtocolService_1.OpenBadgeProtocolService])
|
|
29
|
+
], AckHandler);
|
|
30
|
+
//# sourceMappingURL=AckHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AckHandler.js","sourceRoot":"","sources":["../../../src/protocol/handlers/AckHandler.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,yCAA2C;AAE3C,0CAAwC;AACxC,0EAAsE;AAG/D,IAAM,UAAU,GAAhB,MAAM,UAAU;IAIrB,YAAmB,OAAiC;QAH7C,sBAAiB,GAAG,CAAC,qBAAU,CAAC,CAAA;QAIrC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,OAAiD;QACnE,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;IACxC,CAAC;CACF,CAAA;AAXY,gCAAU;qBAAV,UAAU;IADtB,IAAA,iBAAU,GAAE;qCAKiB,mDAAwB;GAJzC,UAAU,CAWtB"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { MessageHandler, MessageHandlerInboundMessage } from '@credo-ts/core';
|
|
2
|
+
import { CredentialMessage } from '../messages';
|
|
3
|
+
import { OpenBadgeProtocolService } from '../OpenBadgeProtocolService';
|
|
4
|
+
export declare class CredentialHandler implements MessageHandler {
|
|
5
|
+
supportedMessages: (typeof CredentialMessage)[];
|
|
6
|
+
private service;
|
|
7
|
+
constructor(service: OpenBadgeProtocolService);
|
|
8
|
+
handle(inbound: MessageHandlerInboundMessage<CredentialHandler>): Promise<void>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.CredentialHandler = void 0;
|
|
13
|
+
const core_1 = require("@credo-ts/core");
|
|
14
|
+
const messages_1 = require("../messages");
|
|
15
|
+
const OpenBadgeProtocolService_1 = require("../OpenBadgeProtocolService");
|
|
16
|
+
let CredentialHandler = class CredentialHandler {
|
|
17
|
+
constructor(service) {
|
|
18
|
+
this.supportedMessages = [messages_1.CredentialMessage];
|
|
19
|
+
this.service = service;
|
|
20
|
+
}
|
|
21
|
+
async handle(inbound) {
|
|
22
|
+
await this.service.processCredential(inbound);
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
exports.CredentialHandler = CredentialHandler;
|
|
26
|
+
exports.CredentialHandler = CredentialHandler = __decorate([
|
|
27
|
+
(0, core_1.injectable)(),
|
|
28
|
+
__metadata("design:paramtypes", [OpenBadgeProtocolService_1.OpenBadgeProtocolService])
|
|
29
|
+
], CredentialHandler);
|
|
30
|
+
//# sourceMappingURL=CredentialHandler.js.map
|