@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.
Files changed (76) hide show
  1. package/build/OpenBadgesModule.d.ts +2 -2
  2. package/build/OpenBadgesModule.js +10 -2
  3. package/build/OpenBadgesModule.js.map +1 -1
  4. package/build/api/OpenBadgesApi.d.ts +95 -6
  5. package/build/api/OpenBadgesApi.js +186 -1
  6. package/build/api/OpenBadgesApi.js.map +1 -1
  7. package/build/cryptosuites/EcdsaSd2023.d.ts +1 -1
  8. package/build/cryptosuites/EcdsaSd2023.js +3 -3
  9. package/build/cryptosuites/EcdsaSd2023.js.map +1 -1
  10. package/build/cryptosuites/EddsaRdfc2022.js +5 -5
  11. package/build/cryptosuites/EddsaRdfc2022.js.map +1 -1
  12. package/build/http/endpoints/token.js +4 -7
  13. package/build/http/endpoints/token.js.map +1 -1
  14. package/build/index.d.ts +1 -0
  15. package/build/index.js +2 -0
  16. package/build/index.js.map +1 -1
  17. package/build/protocol/OpenBadgeProtocolEvents.d.ts +95 -0
  18. package/build/protocol/OpenBadgeProtocolEvents.js +16 -0
  19. package/build/protocol/OpenBadgeProtocolEvents.js.map +1 -0
  20. package/build/protocol/OpenBadgeProtocolService.d.ts +73 -0
  21. package/build/protocol/OpenBadgeProtocolService.js +274 -0
  22. package/build/protocol/OpenBadgeProtocolService.js.map +1 -0
  23. package/build/protocol/handlers/AckHandler.d.ts +9 -0
  24. package/build/protocol/handlers/AckHandler.js +30 -0
  25. package/build/protocol/handlers/AckHandler.js.map +1 -0
  26. package/build/protocol/handlers/CredentialHandler.d.ts +9 -0
  27. package/build/protocol/handlers/CredentialHandler.js +30 -0
  28. package/build/protocol/handlers/CredentialHandler.js.map +1 -0
  29. package/build/protocol/handlers/OfferHandler.d.ts +9 -0
  30. package/build/protocol/handlers/OfferHandler.js +30 -0
  31. package/build/protocol/handlers/OfferHandler.js.map +1 -0
  32. package/build/protocol/handlers/PresentationHandler.d.ts +9 -0
  33. package/build/protocol/handlers/PresentationHandler.js +30 -0
  34. package/build/protocol/handlers/PresentationHandler.js.map +1 -0
  35. package/build/protocol/handlers/RequestHandler.d.ts +9 -0
  36. package/build/protocol/handlers/RequestHandler.js +30 -0
  37. package/build/protocol/handlers/RequestHandler.js.map +1 -0
  38. package/build/protocol/handlers/RequestPresentationHandler.d.ts +9 -0
  39. package/build/protocol/handlers/RequestPresentationHandler.js +30 -0
  40. package/build/protocol/handlers/RequestPresentationHandler.js.map +1 -0
  41. package/build/protocol/handlers/VerificationResultHandler.d.ts +9 -0
  42. package/build/protocol/handlers/VerificationResultHandler.js +30 -0
  43. package/build/protocol/handlers/VerificationResultHandler.js.map +1 -0
  44. package/build/protocol/handlers/index.d.ts +7 -0
  45. package/build/protocol/handlers/index.js +24 -0
  46. package/build/protocol/handlers/index.js.map +1 -0
  47. package/build/protocol/index.d.ts +4 -0
  48. package/build/protocol/index.js +21 -0
  49. package/build/protocol/index.js.map +1 -0
  50. package/build/protocol/messages/AckMessage.d.ts +18 -0
  51. package/build/protocol/messages/AckMessage.js +46 -0
  52. package/build/protocol/messages/AckMessage.js.map +1 -0
  53. package/build/protocol/messages/CredentialMessage.d.ts +26 -0
  54. package/build/protocol/messages/CredentialMessage.js +72 -0
  55. package/build/protocol/messages/CredentialMessage.js.map +1 -0
  56. package/build/protocol/messages/OfferMessage.d.ts +21 -0
  57. package/build/protocol/messages/OfferMessage.js +59 -0
  58. package/build/protocol/messages/OfferMessage.js.map +1 -0
  59. package/build/protocol/messages/PresentationMessage.d.ts +26 -0
  60. package/build/protocol/messages/PresentationMessage.js +72 -0
  61. package/build/protocol/messages/PresentationMessage.js.map +1 -0
  62. package/build/protocol/messages/RequestMessage.d.ts +18 -0
  63. package/build/protocol/messages/RequestMessage.js +50 -0
  64. package/build/protocol/messages/RequestMessage.js.map +1 -0
  65. package/build/protocol/messages/RequestPresentationMessage.d.ts +16 -0
  66. package/build/protocol/messages/RequestPresentationMessage.js +45 -0
  67. package/build/protocol/messages/RequestPresentationMessage.js.map +1 -0
  68. package/build/protocol/messages/VerificationResultMessage.d.ts +19 -0
  69. package/build/protocol/messages/VerificationResultMessage.js +51 -0
  70. package/build/protocol/messages/VerificationResultMessage.js.map +1 -0
  71. package/build/protocol/messages/index.d.ts +7 -0
  72. package/build/protocol/messages/index.js +24 -0
  73. package/build/protocol/messages/index.js.map +1 -0
  74. package/build/services/KeyService.js +3 -2
  75. package/build/services/KeyService.js.map +1 -1
  76. 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
- const expected = b64url(createHash('sha256').update(code_verifier).digest());
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":"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"}
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
@@ -43,4 +43,5 @@ export * from './services/crypto/JwtCryptoDriver';
43
43
  export * from './http/OpenBadgesHttpModule';
44
44
  export * from './http/OpenBadgesHttpModuleConfig';
45
45
  export * from './http/router';
46
+ export * from './protocol';
46
47
  export * from './utils/validate';
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
@@ -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