@credo-ts/drpc 0.4.1-alpha.157

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 (69) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +73 -0
  3. package/build/DrpcApi.d.ts +42 -0
  4. package/build/DrpcApi.js +135 -0
  5. package/build/DrpcApi.js.map +1 -0
  6. package/build/DrpcModule.d.ts +9 -0
  7. package/build/DrpcModule.js +33 -0
  8. package/build/DrpcModule.js.map +1 -0
  9. package/build/DrpcRequestEvents.d.ts +11 -0
  10. package/build/DrpcRequestEvents.js +8 -0
  11. package/build/DrpcRequestEvents.js.map +1 -0
  12. package/build/DrpcResponseEvents.d.ts +11 -0
  13. package/build/DrpcResponseEvents.js +8 -0
  14. package/build/DrpcResponseEvents.js.map +1 -0
  15. package/build/handlers/DrpcRequestHandler.d.ts +9 -0
  16. package/build/handlers/DrpcRequestHandler.js +15 -0
  17. package/build/handlers/DrpcRequestHandler.js.map +1 -0
  18. package/build/handlers/DrpcResponseHandler.d.ts +9 -0
  19. package/build/handlers/DrpcResponseHandler.js +15 -0
  20. package/build/handlers/DrpcResponseHandler.js.map +1 -0
  21. package/build/handlers/index.d.ts +2 -0
  22. package/build/handlers/index.js +19 -0
  23. package/build/handlers/index.js.map +1 -0
  24. package/build/index.d.ts +8 -0
  25. package/build/index.js +25 -0
  26. package/build/index.js.map +1 -0
  27. package/build/messages/DrpcRequestMessage.d.ts +16 -0
  28. package/build/messages/DrpcRequestMessage.js +37 -0
  29. package/build/messages/DrpcRequestMessage.js.map +1 -0
  30. package/build/messages/DrpcResponseMessage.d.ts +23 -0
  31. package/build/messages/DrpcResponseMessage.js +38 -0
  32. package/build/messages/DrpcResponseMessage.js.map +1 -0
  33. package/build/messages/index.d.ts +2 -0
  34. package/build/messages/index.js +19 -0
  35. package/build/messages/index.js.map +1 -0
  36. package/build/models/DrpcErrorCodes.d.ts +8 -0
  37. package/build/models/DrpcErrorCodes.js +13 -0
  38. package/build/models/DrpcErrorCodes.js.map +1 -0
  39. package/build/models/DrpcRole.d.ts +4 -0
  40. package/build/models/DrpcRole.js +9 -0
  41. package/build/models/DrpcRole.js.map +1 -0
  42. package/build/models/DrpcState.d.ts +5 -0
  43. package/build/models/DrpcState.js +10 -0
  44. package/build/models/DrpcState.js.map +1 -0
  45. package/build/models/ValidRequest.d.ts +3 -0
  46. package/build/models/ValidRequest.js +37 -0
  47. package/build/models/ValidRequest.js.map +1 -0
  48. package/build/models/ValidResponse.d.ts +3 -0
  49. package/build/models/ValidResponse.js +58 -0
  50. package/build/models/ValidResponse.js.map +1 -0
  51. package/build/models/index.d.ts +5 -0
  52. package/build/models/index.js +22 -0
  53. package/build/models/index.js.map +1 -0
  54. package/build/repository/DrpcRecord.d.ts +37 -0
  55. package/build/repository/DrpcRecord.js +40 -0
  56. package/build/repository/DrpcRecord.js.map +1 -0
  57. package/build/repository/DrpcRepository.d.ts +5 -0
  58. package/build/repository/DrpcRepository.js +29 -0
  59. package/build/repository/DrpcRepository.js.map +1 -0
  60. package/build/repository/index.d.ts +2 -0
  61. package/build/repository/index.js +19 -0
  62. package/build/repository/index.js.map +1 -0
  63. package/build/services/DrpcService.d.ts +34 -0
  64. package/build/services/DrpcService.js +150 -0
  65. package/build/services/DrpcService.js.map +1 -0
  66. package/build/services/index.d.ts +1 -0
  67. package/build/services/index.js +18 -0
  68. package/build/services/index.js.map +1 -0
  69. package/package.json +38 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/handlers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAqC;AACrC,uDAAoC"}
@@ -0,0 +1,8 @@
1
+ export * from './messages';
2
+ export * from './services';
3
+ export * from './repository';
4
+ export * from './DrpcRequestEvents';
5
+ export * from './DrpcResponseEvents';
6
+ export * from './DrpcApi';
7
+ export * from './models/DrpcRole';
8
+ export * from './DrpcModule';
package/build/index.js ADDED
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./messages"), exports);
18
+ __exportStar(require("./services"), exports);
19
+ __exportStar(require("./repository"), exports);
20
+ __exportStar(require("./DrpcRequestEvents"), exports);
21
+ __exportStar(require("./DrpcResponseEvents"), exports);
22
+ __exportStar(require("./DrpcApi"), exports);
23
+ __exportStar(require("./models/DrpcRole"), exports);
24
+ __exportStar(require("./DrpcModule"), exports);
25
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA0B;AAC1B,6CAA0B;AAC1B,+CAA4B;AAC5B,sDAAmC;AACnC,uDAAoC;AACpC,4CAAyB;AACzB,oDAAiC;AACjC,+CAA4B"}
@@ -0,0 +1,16 @@
1
+ import { AgentMessage } from '@credo-ts/core';
2
+ export interface DrpcRequestObject {
3
+ jsonrpc: string;
4
+ method: string;
5
+ params?: any[] | object;
6
+ id: string | number | null;
7
+ }
8
+ export type DrpcRequest = DrpcRequestObject | DrpcRequestObject[];
9
+ export declare class DrpcRequestMessage extends AgentMessage {
10
+ constructor(options: {
11
+ request: DrpcRequest;
12
+ });
13
+ readonly type: string;
14
+ static readonly type: import("@credo-ts/core/build/utils/messageType").ParsedMessageType;
15
+ request: DrpcRequest;
16
+ }
@@ -0,0 +1,37 @@
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.DrpcRequestMessage = void 0;
13
+ const core_1 = require("@credo-ts/core");
14
+ const class_transformer_1 = require("class-transformer");
15
+ const models_1 = require("../models");
16
+ class DrpcRequestMessage extends core_1.AgentMessage {
17
+ constructor(options) {
18
+ super();
19
+ this.type = DrpcRequestMessage.type.messageTypeUri;
20
+ if (options) {
21
+ this.id = this.generateId();
22
+ this.request = options.request;
23
+ }
24
+ }
25
+ }
26
+ DrpcRequestMessage.type = (0, core_1.parseMessageType)('https://didcomm.org/drpc/1.0/request');
27
+ __decorate([
28
+ (0, core_1.IsValidMessageType)(DrpcRequestMessage.type),
29
+ __metadata("design:type", Object)
30
+ ], DrpcRequestMessage.prototype, "type", void 0);
31
+ __decorate([
32
+ (0, class_transformer_1.Expose)({ name: 'request' }),
33
+ (0, models_1.IsValidDrpcRequest)(),
34
+ __metadata("design:type", Object)
35
+ ], DrpcRequestMessage.prototype, "request", void 0);
36
+ exports.DrpcRequestMessage = DrpcRequestMessage;
37
+ //# sourceMappingURL=DrpcRequestMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DrpcRequestMessage.js","sourceRoot":"","sources":["../../src/messages/DrpcRequestMessage.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yCAAmF;AACnF,yDAA0C;AAE1C,sCAA8C;AAW9C,MAAa,kBAAmB,SAAQ,mBAAY;IAClD,YAAmB,OAAiC;QAClD,KAAK,EAAE,CAAA;QAQO,SAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAA;QAP3D,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;YAC3B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;SAC/B;IACH,CAAC;;AAIsB,uBAAI,GAAG,IAAA,uBAAgB,EAAC,sCAAsC,CAAC,CAAA;AAFtF;IAAC,IAAA,yBAAkB,EAAC,kBAAkB,CAAC,IAAI,CAAC;;gDACiB;AAG7D;IAAC,IAAA,0BAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAC3B,IAAA,2BAAkB,GAAE;;mDACO;AAf9B,gDAgBC"}
@@ -0,0 +1,23 @@
1
+ import type { DrpcErrorCode } from '../models';
2
+ import { AgentMessage } from '@credo-ts/core';
3
+ export type DrpcResponse = DrpcResponseObject | (DrpcResponseObject | Record<string, never>)[] | Record<string, never>;
4
+ export interface DrpcResponseError {
5
+ code: DrpcErrorCode;
6
+ message: string;
7
+ data?: any;
8
+ }
9
+ export interface DrpcResponseObject {
10
+ jsonrpc: string;
11
+ result?: any;
12
+ error?: DrpcResponseError;
13
+ id: string | number | null;
14
+ }
15
+ export declare class DrpcResponseMessage extends AgentMessage {
16
+ constructor(options: {
17
+ response: DrpcResponse;
18
+ threadId: string;
19
+ });
20
+ readonly type: string;
21
+ static readonly type: import("@credo-ts/core/build/utils/messageType").ParsedMessageType;
22
+ response: DrpcResponse;
23
+ }
@@ -0,0 +1,38 @@
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.DrpcResponseMessage = void 0;
13
+ const core_1 = require("@credo-ts/core");
14
+ const class_transformer_1 = require("class-transformer");
15
+ const models_1 = require("../models");
16
+ class DrpcResponseMessage extends core_1.AgentMessage {
17
+ constructor(options) {
18
+ super();
19
+ this.type = DrpcResponseMessage.type.messageTypeUri;
20
+ if (options) {
21
+ this.id = this.generateId();
22
+ this.response = options.response;
23
+ this.setThread({ threadId: options.threadId });
24
+ }
25
+ }
26
+ }
27
+ DrpcResponseMessage.type = (0, core_1.parseMessageType)('https://didcomm.org/drpc/1.0/response');
28
+ __decorate([
29
+ (0, core_1.IsValidMessageType)(DrpcResponseMessage.type),
30
+ __metadata("design:type", Object)
31
+ ], DrpcResponseMessage.prototype, "type", void 0);
32
+ __decorate([
33
+ (0, class_transformer_1.Expose)({ name: 'response' }),
34
+ (0, models_1.IsValidDrpcResponse)(),
35
+ __metadata("design:type", Object)
36
+ ], DrpcResponseMessage.prototype, "response", void 0);
37
+ exports.DrpcResponseMessage = DrpcResponseMessage;
38
+ //# sourceMappingURL=DrpcResponseMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DrpcResponseMessage.js","sourceRoot":"","sources":["../../src/messages/DrpcResponseMessage.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,yCAAmF;AACnF,yDAA0C;AAE1C,sCAA+C;AAiB/C,MAAa,mBAAoB,SAAQ,mBAAY;IACnD,YAAmB,OAAqD;QACtE,KAAK,EAAE,CAAA;QASO,SAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC,cAAc,CAAA;QAR5D,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;YAC3B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;YAChC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAA;SAC/C;IACH,CAAC;;AAIsB,wBAAI,GAAG,IAAA,uBAAgB,EAAC,uCAAuC,CAAC,CAAA;AAFvF;IAAC,IAAA,yBAAkB,EAAC,mBAAmB,CAAC,IAAI,CAAC;;iDACiB;AAG9D;IAAC,IAAA,0BAAM,EAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IAC5B,IAAA,4BAAmB,GAAE;;qDACQ;AAhBhC,kDAiBC"}
@@ -0,0 +1,2 @@
1
+ export * from './DrpcResponseMessage';
2
+ export * from './DrpcRequestMessage';
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./DrpcResponseMessage"), exports);
18
+ __exportStar(require("./DrpcRequestMessage"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/messages/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAqC;AACrC,uDAAoC"}
@@ -0,0 +1,8 @@
1
+ export declare enum DrpcErrorCode {
2
+ METHOD_NOT_FOUND = -32601,
3
+ PARSE_ERROR = -32700,
4
+ INVALID_REQUEST = -32600,
5
+ INVALID_PARAMS = -32602,
6
+ INTERNAL_ERROR = -32603,
7
+ SERVER_ERROR = -32000
8
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DrpcErrorCode = void 0;
4
+ var DrpcErrorCode;
5
+ (function (DrpcErrorCode) {
6
+ DrpcErrorCode[DrpcErrorCode["METHOD_NOT_FOUND"] = -32601] = "METHOD_NOT_FOUND";
7
+ DrpcErrorCode[DrpcErrorCode["PARSE_ERROR"] = -32700] = "PARSE_ERROR";
8
+ DrpcErrorCode[DrpcErrorCode["INVALID_REQUEST"] = -32600] = "INVALID_REQUEST";
9
+ DrpcErrorCode[DrpcErrorCode["INVALID_PARAMS"] = -32602] = "INVALID_PARAMS";
10
+ DrpcErrorCode[DrpcErrorCode["INTERNAL_ERROR"] = -32603] = "INTERNAL_ERROR";
11
+ DrpcErrorCode[DrpcErrorCode["SERVER_ERROR"] = -32000] = "SERVER_ERROR";
12
+ })(DrpcErrorCode = exports.DrpcErrorCode || (exports.DrpcErrorCode = {}));
13
+ //# sourceMappingURL=DrpcErrorCodes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DrpcErrorCodes.js","sourceRoot":"","sources":["../../src/models/DrpcErrorCodes.ts"],"names":[],"mappings":";;;AAAA,IAAY,aAOX;AAPD,WAAY,aAAa;IACvB,8EAAyB,CAAA;IACzB,oEAAoB,CAAA;IACpB,4EAAwB,CAAA;IACxB,0EAAuB,CAAA;IACvB,0EAAuB,CAAA;IACvB,sEAAqB,CAAA;AACvB,CAAC,EAPW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAOxB"}
@@ -0,0 +1,4 @@
1
+ export declare enum DrpcRole {
2
+ Client = "client",
3
+ Server = "server"
4
+ }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DrpcRole = void 0;
4
+ var DrpcRole;
5
+ (function (DrpcRole) {
6
+ DrpcRole["Client"] = "client";
7
+ DrpcRole["Server"] = "server";
8
+ })(DrpcRole = exports.DrpcRole || (exports.DrpcRole = {}));
9
+ //# sourceMappingURL=DrpcRole.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DrpcRole.js","sourceRoot":"","sources":["../../src/models/DrpcRole.ts"],"names":[],"mappings":";;;AAAA,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,6BAAiB,CAAA;IACjB,6BAAiB,CAAA;AACnB,CAAC,EAHW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAGnB"}
@@ -0,0 +1,5 @@
1
+ export declare enum DrpcState {
2
+ RequestSent = "request-sent",
3
+ RequestReceived = "request-received",
4
+ Completed = "completed"
5
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DrpcState = void 0;
4
+ var DrpcState;
5
+ (function (DrpcState) {
6
+ DrpcState["RequestSent"] = "request-sent";
7
+ DrpcState["RequestReceived"] = "request-received";
8
+ DrpcState["Completed"] = "completed";
9
+ })(DrpcState = exports.DrpcState || (exports.DrpcState = {}));
10
+ //# sourceMappingURL=DrpcState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DrpcState.js","sourceRoot":"","sources":["../../src/models/DrpcState.ts"],"names":[],"mappings":";;;AAAA,IAAY,SAIX;AAJD,WAAY,SAAS;IACnB,yCAA4B,CAAA;IAC5B,iDAAoC,CAAA;IACpC,oCAAuB,CAAA;AACzB,CAAC,EAJW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAIpB"}
@@ -0,0 +1,3 @@
1
+ import type { ValidationOptions } from 'class-validator';
2
+ export declare function IsValidDrpcRequest(validationOptions?: ValidationOptions): PropertyDecorator;
3
+ export declare function isValidDrpcRequest(value: any): boolean;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isValidDrpcRequest = exports.IsValidDrpcRequest = void 0;
4
+ const class_validator_1 = require("class-validator");
5
+ function IsValidDrpcRequest(validationOptions) {
6
+ return function (target, propertyKey) {
7
+ (0, class_validator_1.ValidateBy)({
8
+ name: 'isValidDrpcRequest',
9
+ validator: {
10
+ validate: (value, _) => {
11
+ // Check if value is a DrpcRequestObject or an array of DrpcRequestObject
12
+ let isValid = false;
13
+ if (!Array.isArray(value)) {
14
+ isValid = isValidDrpcRequest(value);
15
+ }
16
+ else {
17
+ isValid = value.every(isValidDrpcRequest);
18
+ }
19
+ if (!isValid) {
20
+ throw new class_validator_1.ValidationError();
21
+ }
22
+ return isValid;
23
+ },
24
+ defaultMessage: (0, class_validator_1.buildMessage)((eachPrefix) => eachPrefix + '$property is not a valid DrpcRequest', validationOptions),
25
+ },
26
+ }, validationOptions)(target, propertyKey);
27
+ };
28
+ }
29
+ exports.IsValidDrpcRequest = IsValidDrpcRequest;
30
+ function isValidDrpcRequest(value) {
31
+ if (typeof value !== 'object' || value === null || Array.isArray(value)) {
32
+ return false;
33
+ }
34
+ return 'jsonrpc' in value && 'method' in value && 'id' in value;
35
+ }
36
+ exports.isValidDrpcRequest = isValidDrpcRequest;
37
+ //# sourceMappingURL=ValidRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ValidRequest.js","sourceRoot":"","sources":["../../src/models/ValidRequest.ts"],"names":[],"mappings":";;;AAEA,qDAA2E;AAE3E,SAAgB,kBAAkB,CAAC,iBAAqC;IACtE,OAAO,UAAU,MAAW,EAAE,WAA4B;QACxD,IAAA,4BAAU,EACR;YACE,IAAI,EAAE,oBAAoB;YAC1B,SAAS,EAAE;gBACT,QAAQ,EAAE,CAAC,KAAU,EAAE,CAAsB,EAAW,EAAE;oBACxD,yEAAyE;oBACzE,IAAI,OAAO,GAAG,KAAK,CAAA;oBACnB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;wBACzB,OAAO,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAA;qBACpC;yBAAM;wBACL,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAA;qBAC1C;oBAED,IAAI,CAAC,OAAO,EAAE;wBACZ,MAAM,IAAI,iCAAe,EAAE,CAAA;qBAC5B;oBAED,OAAO,OAAO,CAAA;gBAChB,CAAC;gBACD,cAAc,EAAE,IAAA,8BAAY,EAC1B,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,GAAG,sCAAsC,EACnE,iBAAiB,CAClB;aACF;SACF,EACD,iBAAiB,CAClB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IACxB,CAAC,CAAA;AACH,CAAC;AA9BD,gDA8BC;AAED,SAAgB,kBAAkB,CAAC,KAAU;IAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACvE,OAAO,KAAK,CAAA;KACb;IACD,OAAO,SAAS,IAAI,KAAK,IAAI,QAAQ,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,CAAA;AACjE,CAAC;AALD,gDAKC"}
@@ -0,0 +1,3 @@
1
+ import type { ValidationOptions } from 'class-validator';
2
+ export declare function IsValidDrpcResponse(validationOptions?: ValidationOptions): PropertyDecorator;
3
+ export declare function isValidDrpcResponse(value: any): boolean;
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isValidDrpcResponse = exports.IsValidDrpcResponse = void 0;
4
+ const class_validator_1 = require("class-validator");
5
+ function IsValidDrpcResponse(validationOptions) {
6
+ return function (target, propertyKey) {
7
+ (0, class_validator_1.ValidateBy)({
8
+ name: 'isValidDrpcResponse',
9
+ validator: {
10
+ validate: (value, _) => {
11
+ // Check if value is a valid DrpcResponseObject, an array of DrpcResponseObject (possibly mixed with empty objects), or an empty object
12
+ let isValid = false;
13
+ if (Array.isArray(value)) {
14
+ if (value.length > 0) {
15
+ isValid = value.every(isValidDrpcResponse);
16
+ }
17
+ }
18
+ else {
19
+ isValid = isValidDrpcResponse(value);
20
+ }
21
+ if (!isValid) {
22
+ throw new class_validator_1.ValidationError();
23
+ }
24
+ return isValid;
25
+ },
26
+ defaultMessage: (0, class_validator_1.buildMessage)((eachPrefix) => eachPrefix + '$property is not a valid DrpcResponse', validationOptions),
27
+ },
28
+ }, validationOptions)(target, propertyKey);
29
+ };
30
+ }
31
+ exports.IsValidDrpcResponse = IsValidDrpcResponse;
32
+ function isValidDrpcResponse(value) {
33
+ // Check if value is an object
34
+ if (typeof value !== 'object' || value === null) {
35
+ return false;
36
+ }
37
+ // Check if it's an empty object
38
+ if (Object.keys(value).length === 0) {
39
+ return true;
40
+ }
41
+ // Check if it's a valid DrpcResponseObject
42
+ if ('jsonrpc' in value && 'id' in value) {
43
+ // Check if 'result' and 'error' are valid
44
+ if ('result' in value && typeof value.result === 'undefined') {
45
+ return false;
46
+ }
47
+ if ('error' in value && !isValidDrpcResponseError(value.error)) {
48
+ return false;
49
+ }
50
+ return true;
51
+ }
52
+ return false;
53
+ }
54
+ exports.isValidDrpcResponse = isValidDrpcResponse;
55
+ function isValidDrpcResponseError(error) {
56
+ return typeof error === 'object' && error !== null && 'code' in error && 'message' in error;
57
+ }
58
+ //# sourceMappingURL=ValidResponse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ValidResponse.js","sourceRoot":"","sources":["../../src/models/ValidResponse.ts"],"names":[],"mappings":";;;AAEA,qDAA2E;AAE3E,SAAgB,mBAAmB,CAAC,iBAAqC;IACvE,OAAO,UAAU,MAAW,EAAE,WAA4B;QACxD,IAAA,4BAAU,EACR;YACE,IAAI,EAAE,qBAAqB;YAC3B,SAAS,EAAE;gBACT,QAAQ,EAAE,CAAC,KAAU,EAAE,CAAsB,EAAW,EAAE;oBACxD,uIAAuI;oBACvI,IAAI,OAAO,GAAG,KAAK,CAAA;oBACnB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;wBACxB,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;4BACpB,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAA;yBAC3C;qBACF;yBAAM;wBACL,OAAO,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAA;qBACrC;oBACD,IAAI,CAAC,OAAO,EAAE;wBACZ,MAAM,IAAI,iCAAe,EAAE,CAAA;qBAC5B;oBACD,OAAO,OAAO,CAAA;gBAChB,CAAC;gBACD,cAAc,EAAE,IAAA,8BAAY,EAC1B,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,GAAG,uCAAuC,EACpE,iBAAiB,CAClB;aACF;SACF,EACD,iBAAiB,CAClB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IACxB,CAAC,CAAA;AACH,CAAC;AA9BD,kDA8BC;AAED,SAAgB,mBAAmB,CAAC,KAAU;IAC5C,8BAA8B;IAC9B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE;QAC/C,OAAO,KAAK,CAAA;KACb;IAED,gCAAgC;IAChC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;QACnC,OAAO,IAAI,CAAA;KACZ;IAED,2CAA2C;IAC3C,IAAI,SAAS,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE;QACvC,0CAA0C;QAC1C,IAAI,QAAQ,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,WAAW,EAAE;YAC5D,OAAO,KAAK,CAAA;SACb;QACD,IAAI,OAAO,IAAI,KAAK,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YAC9D,OAAO,KAAK,CAAA;SACb;QACD,OAAO,IAAI,CAAA;KACZ;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAxBD,kDAwBC;AAED,SAAS,wBAAwB,CAAC,KAAU;IAC1C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,IAAI,KAAK,IAAI,SAAS,IAAI,KAAK,CAAA;AAC7F,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from './DrpcRole';
2
+ export * from './DrpcState';
3
+ export * from './ValidRequest';
4
+ export * from './ValidResponse';
5
+ export * from './DrpcErrorCodes';
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./DrpcRole"), exports);
18
+ __exportStar(require("./DrpcState"), exports);
19
+ __exportStar(require("./ValidRequest"), exports);
20
+ __exportStar(require("./ValidResponse"), exports);
21
+ __exportStar(require("./DrpcErrorCodes"), exports);
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA0B;AAC1B,8CAA2B;AAC3B,iDAA8B;AAC9B,kDAA+B;AAC/B,mDAAgC"}
@@ -0,0 +1,37 @@
1
+ import type { DrpcRequest, DrpcResponse } from '../messages';
2
+ import type { DrpcRole, DrpcState } from '../models';
3
+ import type { RecordTags, TagsBase } from '@credo-ts/core';
4
+ import { BaseRecord } from '@credo-ts/core';
5
+ export type CustomDrpcMessageTags = TagsBase;
6
+ export type DefaultDrpcMessageTags = {
7
+ connectionId: string;
8
+ threadId: string;
9
+ };
10
+ export type DrpcMessageTags = RecordTags<DrpcRecord>;
11
+ export interface DrpcStorageProps {
12
+ id?: string;
13
+ connectionId: string;
14
+ role: DrpcRole;
15
+ tags?: CustomDrpcMessageTags;
16
+ request?: DrpcRequest;
17
+ response?: DrpcResponse;
18
+ state: DrpcState;
19
+ threadId: string;
20
+ }
21
+ export declare class DrpcRecord extends BaseRecord<DefaultDrpcMessageTags, CustomDrpcMessageTags> {
22
+ request?: DrpcRequest;
23
+ response?: DrpcResponse;
24
+ connectionId: string;
25
+ role: DrpcRole;
26
+ state: DrpcState;
27
+ threadId: string;
28
+ static readonly type = "DrpcRecord";
29
+ readonly type = "DrpcRecord";
30
+ constructor(props: DrpcStorageProps);
31
+ getTags(): {
32
+ connectionId: string;
33
+ threadId: string;
34
+ };
35
+ assertRole(expectedRole: DrpcRole): void;
36
+ assertState(expectedStates: DrpcState | DrpcState[]): void;
37
+ }
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DrpcRecord = void 0;
4
+ const core_1 = require("@credo-ts/core");
5
+ class DrpcRecord extends core_1.BaseRecord {
6
+ constructor(props) {
7
+ var _a, _b;
8
+ super();
9
+ this.type = DrpcRecord.type;
10
+ if (props) {
11
+ this.id = (_a = props.id) !== null && _a !== void 0 ? _a : core_1.utils.uuid();
12
+ this.request = props.request;
13
+ this.response = props.response;
14
+ this.connectionId = props.connectionId;
15
+ this._tags = (_b = props.tags) !== null && _b !== void 0 ? _b : {};
16
+ this.role = props.role;
17
+ this.state = props.state;
18
+ this.threadId = props.threadId;
19
+ }
20
+ }
21
+ getTags() {
22
+ return Object.assign(Object.assign({}, this._tags), { connectionId: this.connectionId, threadId: this.threadId });
23
+ }
24
+ assertRole(expectedRole) {
25
+ if (this.role !== expectedRole) {
26
+ throw new core_1.CredoError(`Invalid DRPC record role ${this.role}, expected is ${expectedRole}.`);
27
+ }
28
+ }
29
+ assertState(expectedStates) {
30
+ if (!Array.isArray(expectedStates)) {
31
+ expectedStates = [expectedStates];
32
+ }
33
+ if (!expectedStates.includes(this.state)) {
34
+ throw new core_1.CredoError(`DRPC response record is in invalid state ${this.state}. Valid states are: ${expectedStates.join(', ')}.`);
35
+ }
36
+ }
37
+ }
38
+ exports.DrpcRecord = DrpcRecord;
39
+ DrpcRecord.type = 'DrpcRecord';
40
+ //# sourceMappingURL=DrpcRecord.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DrpcRecord.js","sourceRoot":"","sources":["../../src/repository/DrpcRecord.ts"],"names":[],"mappings":";;;AAIA,yCAA8D;AAqB9D,MAAa,UAAW,SAAQ,iBAAyD;IAWvF,YAAmB,KAAuB;;QACxC,KAAK,EAAE,CAAA;QAHO,SAAI,GAAG,UAAU,CAAC,IAAI,CAAA;QAKpC,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,EAAE,GAAG,MAAA,KAAK,CAAC,EAAE,mCAAI,YAAK,CAAC,IAAI,EAAE,CAAA;YAClC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAA;YAC5B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAA;YAC9B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAA;YACtC,IAAI,CAAC,KAAK,GAAG,MAAA,KAAK,CAAC,IAAI,mCAAI,EAAE,CAAA;YAC7B,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;YACtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAA;YACxB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAA;SAC/B;IACH,CAAC;IAEM,OAAO;QACZ,uCACK,IAAI,CAAC,KAAK,KACb,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ,IACxB;IACH,CAAC;IAEM,UAAU,CAAC,YAAsB;QACtC,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE;YAC9B,MAAM,IAAI,iBAAU,CAAC,4BAA4B,IAAI,CAAC,IAAI,iBAAiB,YAAY,GAAG,CAAC,CAAA;SAC5F;IACH,CAAC;IAEM,WAAW,CAAC,cAAuC;QACxD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE;YAClC,cAAc,GAAG,CAAC,cAAc,CAAC,CAAA;SAClC;QAED,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACxC,MAAM,IAAI,iBAAU,CAClB,4CAA4C,IAAI,CAAC,KAAK,uBAAuB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAC1G,CAAA;SACF;IACH,CAAC;;AAlDH,gCAmDC;AA3CwB,eAAI,GAAG,YAAY,CAAA"}
@@ -0,0 +1,5 @@
1
+ import { EventEmitter, Repository, StorageService } from '@credo-ts/core';
2
+ import { DrpcRecord } from './DrpcRecord';
3
+ export declare class DrpcRepository extends Repository<DrpcRecord> {
4
+ constructor(storageService: StorageService<DrpcRecord>, eventEmitter: EventEmitter);
5
+ }
@@ -0,0 +1,29 @@
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.DrpcRepository = void 0;
16
+ const core_1 = require("@credo-ts/core");
17
+ const DrpcRecord_1 = require("./DrpcRecord");
18
+ let DrpcRepository = class DrpcRepository extends core_1.Repository {
19
+ constructor(storageService, eventEmitter) {
20
+ super(DrpcRecord_1.DrpcRecord, storageService, eventEmitter);
21
+ }
22
+ };
23
+ DrpcRepository = __decorate([
24
+ (0, core_1.injectable)(),
25
+ __param(0, (0, core_1.inject)(core_1.InjectionSymbols.StorageService)),
26
+ __metadata("design:paramtypes", [Object, core_1.EventEmitter])
27
+ ], DrpcRepository);
28
+ exports.DrpcRepository = DrpcRepository;
29
+ //# sourceMappingURL=DrpcRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DrpcRepository.js","sourceRoot":"","sources":["../../src/repository/DrpcRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,yCAA+G;AAE/G,6CAAyC;AAGlC,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,iBAAsB;IACxD,YAC2C,cAA0C,EACnF,YAA0B;QAE1B,KAAK,CAAC,uBAAU,EAAE,cAAc,EAAE,YAAY,CAAC,CAAA;IACjD,CAAC;CACF,CAAA;AAPY,cAAc;IAD1B,IAAA,iBAAU,GAAE;IAGR,WAAA,IAAA,aAAM,EAAC,uBAAgB,CAAC,cAAc,CAAC,CAAA;6CAC1B,mBAAY;GAHjB,cAAc,CAO1B;AAPY,wCAAc"}
@@ -0,0 +1,2 @@
1
+ export * from './DrpcRecord';
2
+ export * from './DrpcRepository';
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./DrpcRecord"), exports);
18
+ __exportStar(require("./DrpcRepository"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/repository/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA4B;AAC5B,mDAAgC"}
@@ -0,0 +1,34 @@
1
+ import type { DrpcRequest, DrpcResponse } from '../messages';
2
+ import type { AgentContext, InboundMessageContext, Query } from '@credo-ts/core';
3
+ import { EventEmitter } from '@credo-ts/core';
4
+ import { DrpcRequestMessage, DrpcResponseMessage } from '../messages';
5
+ import { DrpcRecord, DrpcRepository } from '../repository';
6
+ export declare class DrpcService {
7
+ private drpcMessageRepository;
8
+ private eventEmitter;
9
+ constructor(drpcMessageRepository: DrpcRepository, eventEmitter: EventEmitter);
10
+ createRequestMessage(agentContext: AgentContext, request: DrpcRequest, connectionId: string): Promise<{
11
+ requestMessage: DrpcRequestMessage;
12
+ record: DrpcRecord;
13
+ }>;
14
+ createResponseMessage(agentContext: AgentContext, response: DrpcResponse, drpcRecord: DrpcRecord): Promise<{
15
+ responseMessage: DrpcResponseMessage;
16
+ record: DrpcRecord;
17
+ }>;
18
+ createRequestListener(callback: (params: {
19
+ drpcMessageRecord: DrpcRecord;
20
+ removeListener: () => void;
21
+ }) => void | Promise<void>): () => void;
22
+ createResponseListener(callback: (params: {
23
+ drpcMessageRecord: DrpcRecord;
24
+ removeListener: () => void;
25
+ }) => void | Promise<void>): () => void;
26
+ receiveResponse(messageContext: InboundMessageContext<DrpcResponseMessage>): Promise<DrpcRecord>;
27
+ receiveRequest(messageContext: InboundMessageContext<DrpcRequestMessage>): Promise<DrpcRecord>;
28
+ private emitStateChangedEvent;
29
+ private updateState;
30
+ findByThreadAndConnectionId(agentContext: AgentContext, connectionId: string, threadId: string): Promise<DrpcRecord | null>;
31
+ findAllByQuery(agentContext: AgentContext, query: Query<DrpcRecord>): Promise<DrpcRecord[]>;
32
+ getById(agentContext: AgentContext, drpcMessageRecordId: string): Promise<DrpcRecord>;
33
+ deleteById(agentContext: AgentContext, drpcMessageRecordId: string): Promise<void>;
34
+ }