@bhutan-ndi/ethr-credo-module 0.0.0-20251226085115

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 (58) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +31 -0
  3. package/build/EthereumApi.d.ts +13 -0
  4. package/build/EthereumApi.js +34 -0
  5. package/build/EthereumApi.js.map +1 -0
  6. package/build/EthereumModule.d.ts +10 -0
  7. package/build/EthereumModule.js +31 -0
  8. package/build/EthereumModule.js.map +1 -0
  9. package/build/EthereumModuleConfig.d.ts +19 -0
  10. package/build/EthereumModuleConfig.js +14 -0
  11. package/build/EthereumModuleConfig.js.map +1 -0
  12. package/build/abi/SchemaRegistry.json +136 -0
  13. package/build/dids/EthrDidRegistrar.d.ts +28 -0
  14. package/build/dids/EthrDidRegistrar.js +69 -0
  15. package/build/dids/EthrDidRegistrar.js.map +1 -0
  16. package/build/dids/EthrDidResolver.d.ts +6 -0
  17. package/build/dids/EthrDidResolver.js +36 -0
  18. package/build/dids/EthrDidResolver.js.map +1 -0
  19. package/build/dids/didEthrUtil.d.ts +5 -0
  20. package/build/dids/didEthrUtil.js +52 -0
  21. package/build/dids/didEthrUtil.js.map +1 -0
  22. package/build/dids/index.d.ts +3 -0
  23. package/build/dids/index.js +20 -0
  24. package/build/dids/index.js.map +1 -0
  25. package/build/index.d.ts +5 -0
  26. package/build/index.js +28 -0
  27. package/build/index.js.map +1 -0
  28. package/build/ledger/EthereumLedgerService.d.ts +42 -0
  29. package/build/ledger/EthereumLedgerService.js +250 -0
  30. package/build/ledger/EthereumLedgerService.js.map +1 -0
  31. package/build/ledger/index.d.ts +1 -0
  32. package/build/ledger/index.js +18 -0
  33. package/build/ledger/index.js.map +1 -0
  34. package/build/schema/EthereumSchemaRegistry.d.ts +37 -0
  35. package/build/schema/EthereumSchemaRegistry.js +174 -0
  36. package/build/schema/EthereumSchemaRegistry.js.map +1 -0
  37. package/build/schema/types/EthereumSchemaRegistry.types.d.ts +33 -0
  38. package/build/schema/types/EthereumSchemaRegistry.types.js +36 -0
  39. package/build/schema/types/EthereumSchemaRegistry.types.js.map +1 -0
  40. package/build/signature-suites/EcdsaSecp256k1RecoveryMethod2020.d.ts +60 -0
  41. package/build/signature-suites/EcdsaSecp256k1RecoveryMethod2020.js +126 -0
  42. package/build/signature-suites/EcdsaSecp256k1RecoveryMethod2020.js.map +1 -0
  43. package/build/signature-suites/EcdsaSecp256k1Signature2019.d.ts +60 -0
  44. package/build/signature-suites/EcdsaSecp256k1Signature2019.js +126 -0
  45. package/build/signature-suites/EcdsaSecp256k1Signature2019.js.map +1 -0
  46. package/build/signature-suites/index.d.ts +2 -0
  47. package/build/signature-suites/index.js +19 -0
  48. package/build/signature-suites/index.js.map +1 -0
  49. package/build/utils/index.d.ts +1 -0
  50. package/build/utils/index.js +18 -0
  51. package/build/utils/index.js.map +1 -0
  52. package/build/utils/schemaHelper.d.ts +20 -0
  53. package/build/utils/schemaHelper.js +64 -0
  54. package/build/utils/schemaHelper.js.map +1 -0
  55. package/build/utils/utils.d.ts +11 -0
  56. package/build/utils/utils.js +69 -0
  57. package/build/utils/utils.js.map +1 -0
  58. package/package.json +66 -0
@@ -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("./EcdsaSecp256k1RecoveryMethod2020"), exports);
18
+ __exportStar(require("./EcdsaSecp256k1Signature2019"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/signature-suites/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qEAAkD;AAClD,gEAA6C"}
@@ -0,0 +1 @@
1
+ export * from './utils';
@@ -0,0 +1,18 @@
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("./utils"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAuB"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Build schema JSON.
3
+ * @param did
4
+ * @param schemaId
5
+ * @param name
6
+ * @returns Returns the build schema resource Document.
7
+ */
8
+ export declare function buildSchemaResource(did: string, schemaId: string, name: string, schema: object, address: string): Promise<{
9
+ resourceURI: string;
10
+ resourceCollectionId: string;
11
+ resourceId: string;
12
+ resourceName: string;
13
+ resourceType: string;
14
+ mediaType: string;
15
+ created: string;
16
+ checksum: string;
17
+ previousVersionId: string;
18
+ nextVersionId: string;
19
+ }>;
20
+ export declare function uploadSchemaFile(schemaId: string, schema: object, fileServerUrl: string, fileServerToken: string): Promise<import("axios").AxiosResponse<any, any>>;
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.uploadSchemaFile = exports.buildSchemaResource = void 0;
7
+ // eslint-disable-next-line import/no-extraneous-dependencies
8
+ const axios_1 = __importDefault(require("axios"));
9
+ const keccak256_1 = __importDefault(require("keccak256"));
10
+ /**
11
+ * Build schema JSON.
12
+ * @param did
13
+ * @param schemaId
14
+ * @param name
15
+ * @returns Returns the build schema resource Document.
16
+ */
17
+ async function buildSchemaResource(did, schemaId, name, schema, address) {
18
+ const checksum = await (0, keccak256_1.default)(String(schema)).toString('hex');
19
+ if (!checksum) {
20
+ throw new Error(`Error while calculating checksum!`);
21
+ }
22
+ return {
23
+ resourceURI: `${did}/resources/${schemaId}`,
24
+ resourceCollectionId: address,
25
+ resourceId: `${schemaId}`,
26
+ resourceName: `${name}`,
27
+ resourceType: 'W3C-schema',
28
+ mediaType: '',
29
+ created: new Date().toISOString(),
30
+ checksum,
31
+ previousVersionId: '',
32
+ nextVersionId: '',
33
+ };
34
+ }
35
+ exports.buildSchemaResource = buildSchemaResource;
36
+ async function uploadSchemaFile(schemaId, schema, fileServerUrl, fileServerToken) {
37
+ var _a;
38
+ try {
39
+ if (!schemaId || ((_a = Object === null || Object === void 0 ? void 0 : Object.keys(schema)) === null || _a === void 0 ? void 0 : _a.length) === 0) {
40
+ throw new Error(`Schema resource id and schema are required!`);
41
+ }
42
+ const schemaPayload = {
43
+ schemaId: `${schemaId}`,
44
+ schema,
45
+ };
46
+ const axiosOptions = {
47
+ method: 'post',
48
+ url: `${fileServerUrl}/schemas`,
49
+ headers: {
50
+ 'Content-Type': 'application/json',
51
+ Authorization: `Bearer ${fileServerToken}`,
52
+ },
53
+ data: JSON.stringify(schemaPayload),
54
+ };
55
+ const response = await (0, axios_1.default)(axiosOptions);
56
+ return response;
57
+ }
58
+ catch (error) {
59
+ throw new Error(`Error occurred in uploadSchemaFile function ${error} `);
60
+ throw error;
61
+ }
62
+ }
63
+ exports.uploadSchemaFile = uploadSchemaFile;
64
+ //# sourceMappingURL=schemaHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemaHelper.js","sourceRoot":"","sources":["../../src/utils/schemaHelper.ts"],"names":[],"mappings":";;;;;;AAAA,6DAA6D;AAC7D,kDAAyB;AACzB,0DAAiC;AAEjC;;;;;;GAMG;AACI,KAAK,UAAU,mBAAmB,CACvC,GAAW,EACX,QAAgB,EAChB,IAAY,EACZ,MAAc,EACd,OAAe;IAEf,MAAM,QAAQ,GAAG,MAAM,IAAA,mBAAS,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAChE,IAAI,CAAC,QAAQ,EAAE;QACb,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;KACrD;IAED,OAAO;QACL,WAAW,EAAE,GAAG,GAAG,cAAc,QAAQ,EAAE;QAC3C,oBAAoB,EAAE,OAAO;QAC7B,UAAU,EAAE,GAAG,QAAQ,EAAE;QACzB,YAAY,EAAE,GAAG,IAAI,EAAE;QACvB,YAAY,EAAE,YAAY;QAC1B,SAAS,EAAE,EAAE;QACb,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACjC,QAAQ;QACR,iBAAiB,EAAE,EAAE;QACrB,aAAa,EAAE,EAAE;KAClB,CAAA;AACH,CAAC;AAxBD,kDAwBC;AAEM,KAAK,UAAU,gBAAgB,CACpC,QAAgB,EAChB,MAAc,EACd,aAAqB,EACrB,eAAuB;;IAEvB,IAAI;QACF,IAAI,CAAC,QAAQ,IAAI,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,CAAC,MAAM,CAAC,0CAAE,MAAM,MAAK,CAAC,EAAE;YACnD,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;SAC/D;QAED,MAAM,aAAa,GAAG;YACpB,QAAQ,EAAE,GAAG,QAAQ,EAAE;YACvB,MAAM;SACP,CAAA;QAED,MAAM,YAAY,GAAG;YACnB,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,GAAG,aAAa,UAAU;YAC/B,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,UAAU,eAAe,EAAE;aAC3C;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;SACpC,CAAA;QACD,MAAM,QAAQ,GAAG,MAAM,IAAA,eAAK,EAAC,YAAY,CAAC,CAAA;QAC1C,OAAO,QAAQ,CAAA;KAChB;IAAC,OAAO,KAAK,EAAE;QACd,MAAM,IAAI,KAAK,CAAC,+CAA+C,KAAK,GAAG,CAAC,CAAA;QACxE,MAAM,KAAK,CAAA;KACZ;AACH,CAAC;AA/BD,4CA+BC"}
@@ -0,0 +1,11 @@
1
+ import type { DidDocument } from '@credo-ts/core';
2
+ import { VerificationMethod } from '@credo-ts/core';
3
+ export declare function getSecp256k1DidDocWithPublicKey(did: string, publicKeyBase58: string, serviceEndpoint?: string): DidDocument;
4
+ /**
5
+ * Converts a hex-encoded public key to base58-encoded format
6
+ * @param publicKeyHex - Hex string (e.g. from EcdsaSecp256k1VerificationKey2019)
7
+ * @returns base58-encoded public key string
8
+ */
9
+ export declare function convertHexToBase58(publicKeyHex: string): string;
10
+ export declare function parseAddress(address: string): string;
11
+ export declare function getPreferredKey(methods: VerificationMethod[]): string;
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getPreferredKey = exports.parseAddress = exports.convertHexToBase58 = exports.getSecp256k1DidDocWithPublicKey = void 0;
4
+ const core_1 = require("@credo-ts/core");
5
+ const signature_suites_1 = require("../signature-suites");
6
+ function getSecp256k1DidDocWithPublicKey(did, publicKeyBase58, serviceEndpoint) {
7
+ const verificationMethod = new core_1.VerificationMethod({
8
+ id: `${did}#key-1`,
9
+ type: core_1.VERIFICATION_METHOD_TYPE_ECDSA_SECP256K1_VERIFICATION_KEY_2019,
10
+ controller: did,
11
+ publicKeyBase58,
12
+ });
13
+ const didDocumentBuilder = new core_1.DidDocumentBuilder(did);
14
+ didDocumentBuilder.addContext(signature_suites_1.SECURITY_CONTEXT_SECP256k1_RECOVERY_URL).addVerificationMethod(verificationMethod);
15
+ if (serviceEndpoint) {
16
+ const service = new core_1.DidDocumentService({
17
+ id: `${did}#linked-domain`,
18
+ serviceEndpoint,
19
+ type: 'LinkedDomains',
20
+ });
21
+ didDocumentBuilder.addService(service);
22
+ }
23
+ didDocumentBuilder
24
+ .addAuthentication(verificationMethod.id)
25
+ .addAssertionMethod(verificationMethod.id)
26
+ .addCapabilityDelegation(verificationMethod.id)
27
+ .addCapabilityInvocation(verificationMethod.id);
28
+ didDocumentBuilder.addKeyAgreement(verificationMethod.id);
29
+ return didDocumentBuilder.build();
30
+ }
31
+ exports.getSecp256k1DidDocWithPublicKey = getSecp256k1DidDocWithPublicKey;
32
+ /**
33
+ * Converts a hex-encoded public key to base58-encoded format
34
+ * @param publicKeyHex - Hex string (e.g. from EcdsaSecp256k1VerificationKey2019)
35
+ * @returns base58-encoded public key string
36
+ */
37
+ function convertHexToBase58(publicKeyHex) {
38
+ // Remove potential 0x prefix
39
+ if (publicKeyHex.startsWith('0x')) {
40
+ publicKeyHex = publicKeyHex.slice(2);
41
+ }
42
+ // Convert hex to a buffer
43
+ const buffer = Buffer.from(publicKeyHex, 'hex');
44
+ const publicKeyBase58 = core_1.TypedArrayEncoder.toBase58(buffer);
45
+ return publicKeyBase58;
46
+ }
47
+ exports.convertHexToBase58 = convertHexToBase58;
48
+ function parseAddress(address) {
49
+ const parts = address.split(':');
50
+ if (parts.length < 3) {
51
+ throw new Error('Invalid CAIP format');
52
+ }
53
+ return parts[2];
54
+ }
55
+ exports.parseAddress = parseAddress;
56
+ function getPreferredKey(methods) {
57
+ for (const m of methods) {
58
+ if (m.blockchainAccountId)
59
+ return m.blockchainAccountId;
60
+ if (m.publicKeyBase58)
61
+ return m.publicKeyBase58;
62
+ if (m.publicKeyHex)
63
+ return m.publicKeyHex;
64
+ }
65
+ // Guaranteed fallback
66
+ return methods[0].controller;
67
+ }
68
+ exports.getPreferredKey = getPreferredKey;
69
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils/utils.ts"],"names":[],"mappings":";;;AAEA,yCAMuB;AAEvB,0DAA6E;AAE7E,SAAgB,+BAA+B,CAC7C,GAAW,EACX,eAAuB,EACvB,eAAwB;IAExB,MAAM,kBAAkB,GAAG,IAAI,yBAAkB,CAAC;QAChD,EAAE,EAAE,GAAG,GAAG,QAAQ;QAClB,IAAI,EAAE,qEAA8D;QACpE,UAAU,EAAE,GAAG;QACf,eAAe;KAChB,CAAC,CAAA;IAEF,MAAM,kBAAkB,GAAG,IAAI,yBAAkB,CAAC,GAAG,CAAC,CAAA;IACtD,kBAAkB,CAAC,UAAU,CAAC,0DAAuC,CAAC,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,CAAA;IAEhH,IAAI,eAAe,EAAE;QACnB,MAAM,OAAO,GAAG,IAAI,yBAAkB,CAAC;YACrC,EAAE,EAAE,GAAG,GAAG,gBAAgB;YAC1B,eAAe;YACf,IAAI,EAAE,eAAe;SACtB,CAAC,CAAA;QAEF,kBAAkB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;KACvC;IAED,kBAAkB;SACf,iBAAiB,CAAC,kBAAkB,CAAC,EAAE,CAAC;SACxC,kBAAkB,CAAC,kBAAkB,CAAC,EAAE,CAAC;SACzC,uBAAuB,CAAC,kBAAkB,CAAC,EAAE,CAAC;SAC9C,uBAAuB,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAA;IAEjD,kBAAkB,CAAC,eAAe,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAA;IAEzD,OAAO,kBAAkB,CAAC,KAAK,EAAE,CAAA;AACnC,CAAC;AAlCD,0EAkCC;AAED;;;;GAIG;AACH,SAAgB,kBAAkB,CAAC,YAAoB;IACrD,6BAA6B;IAC7B,IAAI,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;QACjC,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;KACrC;IAED,0BAA0B;IAC1B,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAA;IAE/C,MAAM,eAAe,GAAG,wBAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IAE1D,OAAO,eAAe,CAAA;AACxB,CAAC;AAZD,gDAYC;AAED,SAAgB,YAAY,CAAC,OAAe;IAC1C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAChC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;QACpB,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAA;KACvC;IACD,OAAO,KAAK,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC;AAND,oCAMC;AAED,SAAgB,eAAe,CAAC,OAA6B;IAC3D,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE;QACvB,IAAI,CAAC,CAAC,mBAAmB;YAAE,OAAO,CAAC,CAAC,mBAAmB,CAAA;QACvD,IAAI,CAAC,CAAC,eAAe;YAAE,OAAO,CAAC,CAAC,eAAe,CAAA;QAC/C,IAAI,CAAC,CAAC,YAAY;YAAE,OAAO,CAAC,CAAC,YAAY,CAAA;KAC1C;IAED,sBAAsB;IACtB,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAA;AAC9B,CAAC;AATD,0CASC"}
package/package.json ADDED
@@ -0,0 +1,66 @@
1
+ {
2
+ "name": "@bhutan-ndi/ethr-credo-module",
3
+ "main": "build/index",
4
+ "types": "build/index",
5
+ "version": "0.0.0-20251226085115",
6
+ "files": [
7
+ "build"
8
+ ],
9
+ "license": "Apache-2.0",
10
+ "publishConfig": {
11
+ "access": "public"
12
+ },
13
+ "homepage": "https://github.com/Bhutan-NDI/ethr-credo-module",
14
+ "repository": {
15
+ "type": "git",
16
+ "url": "https://github.com/Bhutan-NDI/ethr-credo-module"
17
+ },
18
+ "scripts": {
19
+ "build": "yarn run clean && yarn run compile",
20
+ "clean": "rimraf -rf ./build",
21
+ "compile": "tsc -p tsconfig.build.json",
22
+ "prepublishOnly": "yarn run build",
23
+ "check-types": "tsc --noEmit -p tsconfig.build.json",
24
+ "check-format": "yarn prettier --check",
25
+ "prettier": "prettier --ignore-path .prettierignore '**/*.+(js|json|ts|md|yml|yaml)'",
26
+ "test": "jest",
27
+ "lint": "eslint --ignore-path .gitignore .",
28
+ "release": "yarn build && yarn changeset publish --no-git-tag",
29
+ "changeset-version": "yarn changeset version && yarn prettier --write"
30
+ },
31
+ "dependencies": {
32
+ "@credo-ts/askar": "0.5.3",
33
+ "@credo-ts/core": "0.5.3",
34
+ "axios": "^1.6.3",
35
+ "did-resolver": "^4.1.0",
36
+ "ethers": "^6.9.0",
37
+ "ethr-did": "^3.0.38",
38
+ "ethr-did-resolver": "^11.0.4",
39
+ "keccak256": "^1.0.6"
40
+ },
41
+ "devDependencies": {
42
+ "@changesets/cli": "^2.29.5",
43
+ "@credo-ts/node": "0.5.3",
44
+ "@hyperledger/aries-askar-nodejs": "0.2.1",
45
+ "@hyperledger/aries-askar-shared": "0.2.1",
46
+ "@types/jest": "^26.0.23",
47
+ "@types/node": "^18.18.8",
48
+ "@typescript-eslint/eslint-plugin": "^6.19.1",
49
+ "@typescript-eslint/parser": "^6.19.1",
50
+ "eslint": "^7.32.0",
51
+ "eslint-config-prettier": "^8.8.0",
52
+ "eslint-import-resolver-typescript": "^3.5.5",
53
+ "eslint-plugin-import": "^2.27.5",
54
+ "eslint-plugin-prettier": "^4.2.1",
55
+ "jest": "^29.5.0",
56
+ "prettier": "^2.2.1",
57
+ "reflect-metadata": "^0.2.1",
58
+ "rimraf": "^4.4.0",
59
+ "rxjs": "^7.8.1",
60
+ "ts-jest": "^29.0.5",
61
+ "ts-node": "^10.8.1",
62
+ "tsconfig-paths": "^4.1.2",
63
+ "typescript": "~4.9.5"
64
+ },
65
+ "packageManager": "yarn@1.22.22"
66
+ }