@ledgerhq/context-module 1.3.1 → 1.4.0

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 (110) hide show
  1. package/README.md +17 -5
  2. package/lib/cjs/package.json +13 -13
  3. package/lib/cjs/src/ContextModuleBuilder.js +1 -1
  4. package/lib/cjs/src/ContextModuleBuilder.js.map +3 -3
  5. package/lib/cjs/src/ContextModuleBuilder.test.js +1 -1
  6. package/lib/cjs/src/ContextModuleBuilder.test.js.map +3 -3
  7. package/lib/cjs/src/DefaultContextModule.test.js +1 -1
  8. package/lib/cjs/src/DefaultContextModule.test.js.map +2 -2
  9. package/lib/cjs/src/config/di/configTypes.js +1 -1
  10. package/lib/cjs/src/config/di/configTypes.js.map +2 -2
  11. package/lib/cjs/src/config/model/ContextModuleBuildArgs.js +2 -0
  12. package/lib/cjs/src/config/model/ContextModuleBuildArgs.js.map +7 -0
  13. package/lib/cjs/src/config/model/ContextModuleConfig.js +1 -1
  14. package/lib/cjs/src/config/model/ContextModuleConfig.js.map +1 -1
  15. package/lib/cjs/src/external-plugin/data/HttpExternalPluginDataSource.js +1 -1
  16. package/lib/cjs/src/external-plugin/data/HttpExternalPluginDataSource.js.map +3 -3
  17. package/lib/cjs/src/external-plugin/data/HttpExternalPluginDataSource.test.js +1 -1
  18. package/lib/cjs/src/external-plugin/data/HttpExternalPluginDataSource.test.js.map +3 -3
  19. package/lib/cjs/src/nft/data/HttpNftDataSource.js +1 -1
  20. package/lib/cjs/src/nft/data/HttpNftDataSource.js.map +3 -3
  21. package/lib/cjs/src/nft/data/HttpNftDataSource.test.js +1 -1
  22. package/lib/cjs/src/nft/data/HttpNftDataSource.test.js.map +3 -3
  23. package/lib/cjs/src/pki/data/HttpPkiCertificateDataSource.js +1 -1
  24. package/lib/cjs/src/pki/data/HttpPkiCertificateDataSource.js.map +3 -3
  25. package/lib/cjs/src/shared/constant/HttpHeaders.js +2 -0
  26. package/lib/cjs/src/shared/constant/HttpHeaders.js.map +7 -0
  27. package/lib/cjs/src/token/data/HttpTokenDataSource.js +1 -1
  28. package/lib/cjs/src/token/data/HttpTokenDataSource.js.map +3 -3
  29. package/lib/cjs/src/token/data/HttpTokenDataSource.test.js +1 -1
  30. package/lib/cjs/src/token/data/HttpTokenDataSource.test.js.map +3 -3
  31. package/lib/cjs/src/transaction/data/HttpTransactionDataSource.js +1 -1
  32. package/lib/cjs/src/transaction/data/HttpTransactionDataSource.js.map +3 -3
  33. package/lib/cjs/src/transaction/data/HttpTransactionDataSource.test.js +1 -1
  34. package/lib/cjs/src/transaction/data/HttpTransactionDataSource.test.js.map +3 -3
  35. package/lib/cjs/src/trusted-name/data/HttpTrustedNameDataSource.js +1 -1
  36. package/lib/cjs/src/trusted-name/data/HttpTrustedNameDataSource.js.map +3 -3
  37. package/lib/cjs/src/trusted-name/data/HttpTrustedNameDataSource.test.js +1 -1
  38. package/lib/cjs/src/trusted-name/data/HttpTrustedNameDataSource.test.js.map +3 -3
  39. package/lib/cjs/src/typed-data/data/HttpTypedDataDataSource.js +1 -1
  40. package/lib/cjs/src/typed-data/data/HttpTypedDataDataSource.js.map +3 -3
  41. package/lib/cjs/src/typed-data/data/HttpTypedDataDataSource.test.js +1 -1
  42. package/lib/cjs/src/typed-data/data/HttpTypedDataDataSource.test.js.map +3 -3
  43. package/lib/cjs/src/web3-check/data/HttpWeb3CheckDataSource.js +1 -1
  44. package/lib/cjs/src/web3-check/data/HttpWeb3CheckDataSource.js.map +3 -3
  45. package/lib/cjs/src/web3-check/data/HttpWeb3CheckDataSource.test.js +1 -1
  46. package/lib/cjs/src/web3-check/data/HttpWeb3CheckDataSource.test.js.map +3 -3
  47. package/lib/esm/package.json +13 -13
  48. package/lib/esm/src/ContextModuleBuilder.js +1 -1
  49. package/lib/esm/src/ContextModuleBuilder.js.map +3 -3
  50. package/lib/esm/src/ContextModuleBuilder.test.js +1 -1
  51. package/lib/esm/src/ContextModuleBuilder.test.js.map +3 -3
  52. package/lib/esm/src/DefaultContextModule.test.js +1 -1
  53. package/lib/esm/src/DefaultContextModule.test.js.map +2 -2
  54. package/lib/esm/src/config/di/configTypes.js +1 -1
  55. package/lib/esm/src/config/di/configTypes.js.map +2 -2
  56. package/lib/esm/src/config/model/ContextModuleBuildArgs.js +1 -0
  57. package/lib/esm/src/config/model/ContextModuleBuildArgs.js.map +7 -0
  58. package/lib/esm/src/external-plugin/data/HttpExternalPluginDataSource.js +1 -1
  59. package/lib/esm/src/external-plugin/data/HttpExternalPluginDataSource.js.map +3 -3
  60. package/lib/esm/src/external-plugin/data/HttpExternalPluginDataSource.test.js +1 -1
  61. package/lib/esm/src/external-plugin/data/HttpExternalPluginDataSource.test.js.map +3 -3
  62. package/lib/esm/src/nft/data/HttpNftDataSource.js +1 -1
  63. package/lib/esm/src/nft/data/HttpNftDataSource.js.map +3 -3
  64. package/lib/esm/src/nft/data/HttpNftDataSource.test.js +1 -1
  65. package/lib/esm/src/nft/data/HttpNftDataSource.test.js.map +3 -3
  66. package/lib/esm/src/pki/data/HttpPkiCertificateDataSource.js +1 -1
  67. package/lib/esm/src/pki/data/HttpPkiCertificateDataSource.js.map +3 -3
  68. package/lib/esm/src/shared/constant/HttpHeaders.js +2 -0
  69. package/lib/esm/src/shared/constant/HttpHeaders.js.map +7 -0
  70. package/lib/esm/src/token/data/HttpTokenDataSource.js +1 -1
  71. package/lib/esm/src/token/data/HttpTokenDataSource.js.map +3 -3
  72. package/lib/esm/src/token/data/HttpTokenDataSource.test.js +1 -1
  73. package/lib/esm/src/token/data/HttpTokenDataSource.test.js.map +3 -3
  74. package/lib/esm/src/transaction/data/HttpTransactionDataSource.js +1 -1
  75. package/lib/esm/src/transaction/data/HttpTransactionDataSource.js.map +3 -3
  76. package/lib/esm/src/transaction/data/HttpTransactionDataSource.test.js +1 -1
  77. package/lib/esm/src/transaction/data/HttpTransactionDataSource.test.js.map +3 -3
  78. package/lib/esm/src/trusted-name/data/HttpTrustedNameDataSource.js +1 -1
  79. package/lib/esm/src/trusted-name/data/HttpTrustedNameDataSource.js.map +3 -3
  80. package/lib/esm/src/trusted-name/data/HttpTrustedNameDataSource.test.js +1 -1
  81. package/lib/esm/src/trusted-name/data/HttpTrustedNameDataSource.test.js.map +3 -3
  82. package/lib/esm/src/typed-data/data/HttpTypedDataDataSource.js +1 -1
  83. package/lib/esm/src/typed-data/data/HttpTypedDataDataSource.js.map +3 -3
  84. package/lib/esm/src/typed-data/data/HttpTypedDataDataSource.test.js +1 -1
  85. package/lib/esm/src/typed-data/data/HttpTypedDataDataSource.test.js.map +3 -3
  86. package/lib/esm/src/web3-check/data/HttpWeb3CheckDataSource.js +1 -1
  87. package/lib/esm/src/web3-check/data/HttpWeb3CheckDataSource.js.map +3 -3
  88. package/lib/esm/src/web3-check/data/HttpWeb3CheckDataSource.test.js +1 -1
  89. package/lib/esm/src/web3-check/data/HttpWeb3CheckDataSource.test.js.map +3 -3
  90. package/lib/types/src/ContextModuleBuilder.d.ts +4 -1
  91. package/lib/types/src/ContextModuleBuilder.d.ts.map +1 -1
  92. package/lib/types/src/config/di/configTypes.d.ts +1 -0
  93. package/lib/types/src/config/di/configTypes.d.ts.map +1 -1
  94. package/lib/types/src/config/model/ContextModuleBuildArgs.d.ts +4 -0
  95. package/lib/types/src/config/model/ContextModuleBuildArgs.d.ts.map +1 -0
  96. package/lib/types/src/config/model/ContextModuleConfig.d.ts +1 -0
  97. package/lib/types/src/config/model/ContextModuleConfig.d.ts.map +1 -1
  98. package/lib/types/src/external-plugin/data/HttpExternalPluginDataSource.d.ts.map +1 -1
  99. package/lib/types/src/nft/data/HttpNftDataSource.d.ts.map +1 -1
  100. package/lib/types/src/pki/data/HttpPkiCertificateDataSource.d.ts.map +1 -1
  101. package/lib/types/src/shared/constant/HttpHeaders.d.ts +3 -0
  102. package/lib/types/src/shared/constant/HttpHeaders.d.ts.map +1 -0
  103. package/lib/types/src/token/data/HttpTokenDataSource.d.ts.map +1 -1
  104. package/lib/types/src/transaction/data/HttpTransactionDataSource.d.ts.map +1 -1
  105. package/lib/types/src/trusted-name/data/HttpTrustedNameDataSource.d.ts.map +1 -1
  106. package/lib/types/src/typed-data/data/HttpTypedDataDataSource.d.ts.map +1 -1
  107. package/lib/types/src/typed-data/data/HttpTypedDataDataSource.test.d.ts.map +1 -1
  108. package/lib/types/src/web3-check/data/HttpWeb3CheckDataSource.d.ts.map +1 -1
  109. package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
  110. package/package.json +12 -12
package/README.md CHANGED
@@ -56,7 +56,9 @@ It currently supports the following features:
56
56
  The context-module package exposes a builder `ContextModuleBuilder` which will be used to initialise the context module with your configuration.
57
57
 
58
58
  ```ts
59
- const contextModule = new ContextModuleBuilder().build();
59
+ const contextModule = new ContextModuleBuilder({
60
+ originToken: "origin-token", // replace with your origin token
61
+ }).build();
60
62
  ```
61
63
 
62
64
  You can use a custom configuration for your context module.
@@ -65,13 +67,21 @@ You can use a custom configuration for your context module.
65
67
  const config: ContextModuleCalConfig = {
66
68
  // config to use
67
69
  };
68
- const contextModule = new ContextModuleBuilder().addCalConfig(config).build();
70
+ const contextModule = new ContextModuleBuilder({
71
+ originToken: "origin-token", // replace with your origin token
72
+ })
73
+ .addCalConfig(config)
74
+ .build();
69
75
  ```
70
76
 
71
77
  It is also possible to instantiate the context module without the default loaders.
72
78
 
73
79
  ```ts
74
- const contextModule = new ContextModuleBuilder().removeDefaultLoaders().build();
80
+ const contextModule = new ContextModuleBuilder({
81
+ originToken: "origin-token", // replace with your origin token
82
+ })
83
+ .removeDefaultLoaders()
84
+ .build();
75
85
  ```
76
86
 
77
87
  > [!NOTE]
@@ -88,9 +98,11 @@ const myCustomLoader = new MyCustomLoader();
88
98
 
89
99
  // Custom datasource for a default Token Loader
90
100
  const myCustomTokenDataSource = new MyCustomTokenDataSource();
91
- const myTokenLoader = new TokenCOntextLoader();
101
+ const myTokenLoader = new TokenContextLoader();
92
102
 
93
- const contextModule = new ContextModuleBuilder()
103
+ const contextModule = new ContextModuleBuilder({
104
+ originToken: "origin-token", // replace with your origin token
105
+ })
94
106
  .removeDefaultLoaders()
95
107
  .addLoader(tokenLoader)
96
108
  .addLoader(myTokenLoader)
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ledgerhq/context-module",
3
- "version": "1.3.1",
3
+ "version": "1.4.0",
4
4
  "private": false,
5
5
  "license": "Apache-2.0",
6
6
  "exports": {
@@ -20,9 +20,9 @@
20
20
  ],
21
21
  "scripts": {
22
22
  "prebuild": "rimraf lib",
23
- "build": "pnpm lmdk-build --entryPoints index.ts,src/**/*.ts --tsconfig tsconfig.prod.json",
23
+ "build": "pnpm ldmk-tool build --entryPoints index.ts,src/**/*.ts --tsconfig tsconfig.prod.json",
24
24
  "dev": "concurrently \"pnpm watch:builds\" \"pnpm watch:types\"",
25
- "watch:builds": "pnpm lmdk-watch --entryPoints index.ts,src/**/*.ts --tsconfig tsconfig.prod.json",
25
+ "watch:builds": "pnpm ldmk-tool watch --entryPoints index.ts,src/**/*.ts --tsconfig tsconfig.prod.json",
26
26
  "watch:types": "concurrently \"tsc --watch -p tsconfig.prod.json\" \"tsc-alias --watch -p tsconfig.prod.json\"",
27
27
  "lint": "eslint",
28
28
  "lint:fix": "pnpm lint --fix",
@@ -36,23 +36,23 @@
36
36
  },
37
37
  "devDependencies": {
38
38
  "@ledgerhq/device-management-kit": "workspace:*",
39
- "@ledgerhq/esbuild-tools": "workspace:*",
39
+ "@ledgerhq/ldmk-tool": "workspace:*",
40
40
  "@ledgerhq/eslint-config-dsdk": "workspace:*",
41
41
  "@ledgerhq/prettier-config-dsdk": "workspace:*",
42
42
  "@ledgerhq/tsconfig-dsdk": "workspace:*",
43
43
  "@ledgerhq/vitest-config-dmk": "workspace:*",
44
- "@types/crypto-js": "^4.2.2",
45
- "ts-node": "^10.9.2"
44
+ "@types/crypto-js": "catalog:",
45
+ "ts-node": "catalog:"
46
46
  },
47
47
  "dependencies": {
48
- "axios": "^1.8.2",
49
- "crypto-js": "^4.2.0",
50
- "ethers": "6.13.4",
51
- "inversify": "^6.2.2",
52
- "purify-ts": "^2.1.0",
53
- "reflect-metadata": "^0.2.2"
48
+ "axios": "catalog:",
49
+ "crypto-js": "catalog:",
50
+ "ethers": "catalog:",
51
+ "inversify": "catalog:",
52
+ "purify-ts": "catalog:",
53
+ "reflect-metadata": "catalog:"
54
54
  },
55
55
  "peerDependencies": {
56
- "@ledgerhq/device-management-kit": "workspace:*"
56
+ "@ledgerhq/device-management-kit": "^0.7.0"
57
57
  }
58
58
  }
@@ -1,2 +1,2 @@
1
- "use strict";var a=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var C=Object.prototype.hasOwnProperty;var u=(t,e)=>{for(var r in e)a(t,r,{get:e[r],enumerable:!0})},f=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of c(e))!C.call(t,o)&&o!==r&&a(t,o,{get:()=>e[o],enumerable:!(n=s(e,o))||n.enumerable});return t};var l=t=>f(a({},"__esModule",{value:!0}),t);var m={};u(m,{ContextModuleBuilder:()=>L,DEFAULT_CONFIG:()=>d});module.exports=l(m);var i=require("./DefaultContextModule");const h="https://crypto-assets-service.api.ledger.com/v1",p="https://web3checks-backend.api.ledger.com/v3",d={cal:{url:h,mode:"prod",branch:"main"},web3checks:{url:p},defaultLoaders:!0,customLoaders:[],customTypedDataLoader:void 0};class L{config=d;constructor(){}removeDefaultLoaders(){return this.config.defaultLoaders=!1,this}addLoader(e){return this.config.customLoaders.push(e),this}addTypedDataLoader(e){return this.config.customTypedDataLoader=e,this}addWeb3CheckLoader(e){return this.config.customWeb3CheckLoader=e,this}addCalConfig(e){return this.config.cal={...d.cal,...e},this}addWeb3ChecksConfig(e){return this.config.web3checks={...d.web3checks,...e},this}build(){return new i.DefaultContextModule(this.config)}}0&&(module.exports={ContextModuleBuilder,DEFAULT_CONFIG});
1
+ "use strict";var i=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var C=Object.prototype.hasOwnProperty;var u=(o,e)=>{for(var r in e)i(o,r,{get:e[r],enumerable:!0})},h=(o,e,r,d)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of c(e))!C.call(o,t)&&t!==r&&i(o,t,{get:()=>e[t],enumerable:!(d=a(e,t))||d.enumerable});return o};var f=o=>h(i({},"__esModule",{value:!0}),o);var m={};u(m,{ContextModuleBuilder:()=>p,DEFAULT_CONFIG:()=>n});module.exports=f(m);var s=require("./DefaultContextModule");const l="https://crypto-assets-service.api.ledger.com/v1",g="https://web3checks-backend.api.ledger.com/v3",n={cal:{url:l,mode:"prod",branch:"main"},web3checks:{url:g},defaultLoaders:!0,customLoaders:[],customTypedDataLoader:void 0};class p{config=n;needOriginToken=!0;originToken;constructor({originToken:e}={}){this.originToken=e}removeDefaultLoaders(){return this.config.defaultLoaders=!1,this}addLoader(e){return this.config.customLoaders.push(e),this}addTypedDataLoader(e){return this.config.customTypedDataLoader=e,this}addWeb3CheckLoader(e){return this.needOriginToken=!1,this.config.customWeb3CheckLoader=e,this}addCalConfig(e){return this.config.cal={...n.cal,...e},this}addWeb3ChecksConfig(e){return this.config.web3checks={...n.web3checks,...e},this}build(){if(this.needOriginToken&&!this.originToken)throw new Error("Origin token is required");const e={...this.config,originToken:this.originToken};return new s.DefaultContextModule(e)}}0&&(module.exports={ContextModuleBuilder,DEFAULT_CONFIG});
2
2
  //# sourceMappingURL=ContextModuleBuilder.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/ContextModuleBuilder.ts"],
4
- "sourcesContent": ["import {\n type ContextModuleCalConfig,\n type ContextModuleConfig,\n type ContextModuleWeb3ChecksConfig,\n} from \"./config/model/ContextModuleConfig\";\nimport { type ContextLoader } from \"./shared/domain/ContextLoader\";\nimport { type TypedDataContextLoader } from \"./typed-data/domain/TypedDataContextLoader\";\nimport { type Web3CheckContextLoader } from \"./web3-check/domain/Web3CheckContextLoader\";\nimport { type ContextModule } from \"./ContextModule\";\nimport { DefaultContextModule } from \"./DefaultContextModule\";\n\nconst DEFAULT_CAL_URL = \"https://crypto-assets-service.api.ledger.com/v1\";\nconst DEFAULT_WEB3_CHECKS_URL = \"https://web3checks-backend.api.ledger.com/v3\";\n\nexport const DEFAULT_CONFIG: ContextModuleConfig = {\n cal: {\n url: DEFAULT_CAL_URL,\n mode: \"prod\",\n branch: \"main\",\n },\n web3checks: {\n url: DEFAULT_WEB3_CHECKS_URL,\n },\n defaultLoaders: true,\n customLoaders: [],\n customTypedDataLoader: undefined,\n};\n\nexport class ContextModuleBuilder {\n private config: ContextModuleConfig = DEFAULT_CONFIG;\n\n constructor() {}\n\n /**\n * Remove default loaders from the list of loaders\n *\n * @returns this\n */\n removeDefaultLoaders() {\n this.config.defaultLoaders = false;\n return this;\n }\n\n /**\n * Add a custom loader to the list of loaders\n *\n * @param loader loader to add to the list of loaders\n * @returns this\n */\n addLoader(loader: ContextLoader) {\n this.config.customLoaders.push(loader);\n return this;\n }\n\n /**\n * Replace the default loader for typed data clear signing contexts\n *\n * @param loader loader to use for typed data clear signing contexts\n * @returns this\n */\n addTypedDataLoader(loader: TypedDataContextLoader) {\n this.config.customTypedDataLoader = loader;\n return this;\n }\n\n /**\n * Replace the default loader for web3 checks\n *\n * @param loader loader to use for web3 checks\n * @returns this\n */\n addWeb3CheckLoader(loader: Web3CheckContextLoader) {\n this.config.customWeb3CheckLoader = loader;\n return this;\n }\n\n /**\n * Add a custom CAL configuration\n *\n * @param calConfig\n * @returns this\n */\n addCalConfig(calConfig: ContextModuleCalConfig) {\n this.config.cal = { ...DEFAULT_CONFIG.cal, ...calConfig };\n return this;\n }\n\n /**\n * Add a custom web3 checks configuration\n *\n * @param web3ChecksConfig\n * @returns this\n */\n addWeb3ChecksConfig(web3ChecksConfig: ContextModuleWeb3ChecksConfig) {\n this.config.web3checks = {\n ...DEFAULT_CONFIG.web3checks,\n ...web3ChecksConfig,\n };\n return this;\n }\n\n /**\n * Build the context module\n *\n * @returns the context module\n */\n build(): ContextModule {\n return new DefaultContextModule(this.config);\n }\n}\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,0BAAAE,EAAA,mBAAAC,IAAA,eAAAC,EAAAJ,GASA,IAAAK,EAAqC,kCAErC,MAAMC,EAAkB,kDAClBC,EAA0B,+CAEnBJ,EAAsC,CACjD,IAAK,CACH,IAAKG,EACL,KAAM,OACN,OAAQ,MACV,EACA,WAAY,CACV,IAAKC,CACP,EACA,eAAgB,GAChB,cAAe,CAAC,EAChB,sBAAuB,MACzB,EAEO,MAAML,CAAqB,CACxB,OAA8BC,EAEtC,aAAc,CAAC,CAOf,sBAAuB,CACrB,YAAK,OAAO,eAAiB,GACtB,IACT,CAQA,UAAUK,EAAuB,CAC/B,YAAK,OAAO,cAAc,KAAKA,CAAM,EAC9B,IACT,CAQA,mBAAmBA,EAAgC,CACjD,YAAK,OAAO,sBAAwBA,EAC7B,IACT,CAQA,mBAAmBA,EAAgC,CACjD,YAAK,OAAO,sBAAwBA,EAC7B,IACT,CAQA,aAAaC,EAAmC,CAC9C,YAAK,OAAO,IAAM,CAAE,GAAGN,EAAe,IAAK,GAAGM,CAAU,EACjD,IACT,CAQA,oBAAoBC,EAAiD,CACnE,YAAK,OAAO,WAAa,CACvB,GAAGP,EAAe,WAClB,GAAGO,CACL,EACO,IACT,CAOA,OAAuB,CACrB,OAAO,IAAI,uBAAqB,KAAK,MAAM,CAC7C,CACF",
6
- "names": ["ContextModuleBuilder_exports", "__export", "ContextModuleBuilder", "DEFAULT_CONFIG", "__toCommonJS", "import_DefaultContextModule", "DEFAULT_CAL_URL", "DEFAULT_WEB3_CHECKS_URL", "loader", "calConfig", "web3ChecksConfig"]
4
+ "sourcesContent": ["import { type ContextModuleConstructorArgs } from \"./config/model/ContextModuleBuildArgs\";\nimport {\n type ContextModuleCalConfig,\n type ContextModuleConfig,\n type ContextModuleWeb3ChecksConfig,\n} from \"./config/model/ContextModuleConfig\";\nimport { type ContextLoader } from \"./shared/domain/ContextLoader\";\nimport { type TypedDataContextLoader } from \"./typed-data/domain/TypedDataContextLoader\";\nimport { type Web3CheckContextLoader } from \"./web3-check/domain/Web3CheckContextLoader\";\nimport { type ContextModule } from \"./ContextModule\";\nimport { DefaultContextModule } from \"./DefaultContextModule\";\n\nconst DEFAULT_CAL_URL = \"https://crypto-assets-service.api.ledger.com/v1\";\nconst DEFAULT_WEB3_CHECKS_URL = \"https://web3checks-backend.api.ledger.com/v3\";\n\nexport const DEFAULT_CONFIG: ContextModuleConfig = {\n cal: {\n url: DEFAULT_CAL_URL,\n mode: \"prod\",\n branch: \"main\",\n },\n web3checks: {\n url: DEFAULT_WEB3_CHECKS_URL,\n },\n defaultLoaders: true,\n customLoaders: [],\n customTypedDataLoader: undefined,\n};\n\nexport class ContextModuleBuilder {\n private config: ContextModuleConfig = DEFAULT_CONFIG;\n private needOriginToken: boolean = true;\n private originToken?: string;\n\n constructor({ originToken }: ContextModuleConstructorArgs = {}) {\n this.originToken = originToken;\n }\n\n /**\n * Remove default loaders from the list of loaders\n *\n * @returns this\n */\n removeDefaultLoaders() {\n this.config.defaultLoaders = false;\n return this;\n }\n\n /**\n * Add a custom loader to the list of loaders\n *\n * @param loader loader to add to the list of loaders\n * @returns this\n */\n addLoader(loader: ContextLoader) {\n this.config.customLoaders.push(loader);\n return this;\n }\n\n /**\n * Replace the default loader for typed data clear signing contexts\n *\n * @param loader loader to use for typed data clear signing contexts\n * @returns this\n */\n addTypedDataLoader(loader: TypedDataContextLoader) {\n this.config.customTypedDataLoader = loader;\n return this;\n }\n\n /**\n * Replace the default loader for web3 checks\n *\n * @param loader loader to use for web3 checks\n * @returns this\n */\n addWeb3CheckLoader(loader: Web3CheckContextLoader) {\n this.needOriginToken = false;\n this.config.customWeb3CheckLoader = loader;\n return this;\n }\n\n /**\n * Add a custom CAL configuration\n *\n * @param calConfig\n * @returns this\n */\n addCalConfig(calConfig: ContextModuleCalConfig) {\n this.config.cal = { ...DEFAULT_CONFIG.cal, ...calConfig };\n return this;\n }\n\n /**\n * Add a custom web3 checks configuration\n *\n * @param web3ChecksConfig\n * @returns this\n */\n addWeb3ChecksConfig(web3ChecksConfig: ContextModuleWeb3ChecksConfig) {\n this.config.web3checks = {\n ...DEFAULT_CONFIG.web3checks,\n ...web3ChecksConfig,\n };\n return this;\n }\n\n /**\n * Build the context module\n *\n * @returns the context module\n */\n build(): ContextModule {\n if (this.needOriginToken && !this.originToken) {\n throw new Error(\"Origin token is required\");\n }\n\n const config = { ...this.config, originToken: this.originToken };\n return new DefaultContextModule(config);\n }\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,0BAAAE,EAAA,mBAAAC,IAAA,eAAAC,EAAAJ,GAUA,IAAAK,EAAqC,kCAErC,MAAMC,EAAkB,kDAClBC,EAA0B,+CAEnBJ,EAAsC,CACjD,IAAK,CACH,IAAKG,EACL,KAAM,OACN,OAAQ,MACV,EACA,WAAY,CACV,IAAKC,CACP,EACA,eAAgB,GAChB,cAAe,CAAC,EAChB,sBAAuB,MACzB,EAEO,MAAML,CAAqB,CACxB,OAA8BC,EAC9B,gBAA2B,GAC3B,YAER,YAAY,CAAE,YAAAK,CAAY,EAAkC,CAAC,EAAG,CAC9D,KAAK,YAAcA,CACrB,CAOA,sBAAuB,CACrB,YAAK,OAAO,eAAiB,GACtB,IACT,CAQA,UAAUC,EAAuB,CAC/B,YAAK,OAAO,cAAc,KAAKA,CAAM,EAC9B,IACT,CAQA,mBAAmBA,EAAgC,CACjD,YAAK,OAAO,sBAAwBA,EAC7B,IACT,CAQA,mBAAmBA,EAAgC,CACjD,YAAK,gBAAkB,GACvB,KAAK,OAAO,sBAAwBA,EAC7B,IACT,CAQA,aAAaC,EAAmC,CAC9C,YAAK,OAAO,IAAM,CAAE,GAAGP,EAAe,IAAK,GAAGO,CAAU,EACjD,IACT,CAQA,oBAAoBC,EAAiD,CACnE,YAAK,OAAO,WAAa,CACvB,GAAGR,EAAe,WAClB,GAAGQ,CACL,EACO,IACT,CAOA,OAAuB,CACrB,GAAI,KAAK,iBAAmB,CAAC,KAAK,YAChC,MAAM,IAAI,MAAM,0BAA0B,EAG5C,MAAMC,EAAS,CAAE,GAAG,KAAK,OAAQ,YAAa,KAAK,WAAY,EAC/D,OAAO,IAAI,uBAAqBA,CAAM,CACxC,CACF",
6
+ "names": ["ContextModuleBuilder_exports", "__export", "ContextModuleBuilder", "DEFAULT_CONFIG", "__toCommonJS", "import_DefaultContextModule", "DEFAULT_CAL_URL", "DEFAULT_WEB3_CHECKS_URL", "originToken", "loader", "calConfig", "web3ChecksConfig", "config"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var a=require("./config/di/configTypes"),n=require("./ContextModuleBuilder"),d=require("./DefaultContextModule");describe("ContextModuleBuilder",()=>{const c={url:"https://cal/v1",mode:"prod",branch:"main"},u={url:"https://web3checks/v1"};it("should return a default context module",()=>{const e=new n.ContextModuleBuilder().build();expect(e).toBeInstanceOf(d.DefaultContextModule)}),it("should return a custom context module",()=>{const o=new n.ContextModuleBuilder,e={load:vi.fn()},t=o.removeDefaultLoaders().addLoader(e).build();expect(t).toBeInstanceOf(d.DefaultContextModule)}),it("should return a custom context module with a custom typed data loader",()=>{const o=new n.ContextModuleBuilder,e={load:vi.fn()},t=o.removeDefaultLoaders().addTypedDataLoader(e).build();expect(t).toBeInstanceOf(d.DefaultContextModule),expect(t._typedDataLoader).toBe(e)}),it("should return a custom context module with a custom config",()=>{const e=new n.ContextModuleBuilder().addCalConfig(c).addWeb3ChecksConfig(u).build(),t=e._container.get(a.configTypes.Config);expect(e).toBeInstanceOf(d.DefaultContextModule),expect(t.cal).toEqual(c),expect(t.web3checks).toEqual(u)}),it("should return a custom context module with a custom custom web3checks loader",()=>{const o=new n.ContextModuleBuilder,e={load:vi.fn()},t=o.removeDefaultLoaders().addWeb3CheckLoader(e).build();expect(t).toBeInstanceOf(d.DefaultContextModule),expect(t._web3CheckLoader).toBe(e)})});
1
+ "use strict";var i=require("./config/di/configTypes"),n=require("./ContextModuleBuilder"),d=require("./DefaultContextModule");describe("ContextModuleBuilder",()=>{const c={url:"https://cal/v1",mode:"prod",branch:"main"},u={url:"https://web3checks/v1"},r={originToken:"test"};it("should return a default context module",()=>{const o=new n.ContextModuleBuilder(r).build();expect(o).toBeInstanceOf(d.DefaultContextModule)}),it("should return a custom context module",()=>{const e=new n.ContextModuleBuilder(r),o={load:vi.fn()},t=e.removeDefaultLoaders().addLoader(o).build();expect(t).toBeInstanceOf(d.DefaultContextModule)}),it("should return a custom context module with a custom typed data loader",()=>{const e=new n.ContextModuleBuilder(r),o={load:vi.fn()},t=e.removeDefaultLoaders().addTypedDataLoader(o).build();expect(t).toBeInstanceOf(d.DefaultContextModule),expect(t._typedDataLoader).toBe(o)}),it("should return a custom context module with a custom config",()=>{const o=new n.ContextModuleBuilder(r).addCalConfig(c).addWeb3ChecksConfig(u).build(),t=o._container.get(i.configTypes.Config);expect(o).toBeInstanceOf(d.DefaultContextModule),expect(t.cal).toEqual(c),expect(t.web3checks).toEqual(u)}),it("should return a custom context module with a custom custom web3checks loader",()=>{const e=new n.ContextModuleBuilder,o={load:vi.fn()},t=e.removeDefaultLoaders().addWeb3CheckLoader(o).build();expect(t).toBeInstanceOf(d.DefaultContextModule),expect(t._web3CheckLoader).toBe(o)}),it("should throw an error if origin token is not provided",()=>{const e=new n.ContextModuleBuilder;expect(()=>e.build()).toThrow("Origin token is required")}),it("should not throw an error if origin token is provided",()=>{const e=new n.ContextModuleBuilder(r);expect(()=>e.build()).not.toThrow()}),it("should not throw an error if origin token is not provided and addWeb3CheckLoader is called",()=>{const e=new n.ContextModuleBuilder;expect(()=>e.addWeb3CheckLoader({load:vi.fn()}).build()).not.toThrow()})});
2
2
  //# sourceMappingURL=ContextModuleBuilder.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/ContextModuleBuilder.test.ts"],
4
- "sourcesContent": ["import { type Container } from \"inversify\";\n\nimport { configTypes } from \"./config/di/configTypes\";\nimport {\n type ContextModuleCalConfig,\n type ContextModuleConfig,\n} from \"./config/model/ContextModuleConfig\";\nimport { ContextModuleBuilder } from \"./ContextModuleBuilder\";\nimport { DefaultContextModule } from \"./DefaultContextModule\";\n\ndescribe(\"ContextModuleBuilder\", () => {\n const defaultCalConfig: ContextModuleCalConfig = {\n url: \"https://cal/v1\",\n mode: \"prod\",\n branch: \"main\",\n };\n const defaultWeb3ChecksConfig = {\n url: \"https://web3checks/v1\",\n };\n it(\"should return a default context module\", () => {\n const contextModuleBuilder = new ContextModuleBuilder();\n\n const res = contextModuleBuilder.build();\n\n expect(res).toBeInstanceOf(DefaultContextModule);\n });\n\n it(\"should return a custom context module\", () => {\n const contextModuleBuilder = new ContextModuleBuilder();\n const customLoader = { load: vi.fn() };\n\n const res = contextModuleBuilder\n .removeDefaultLoaders()\n .addLoader(customLoader)\n .build();\n\n expect(res).toBeInstanceOf(DefaultContextModule);\n });\n\n it(\"should return a custom context module with a custom typed data loader\", () => {\n const contextModuleBuilder = new ContextModuleBuilder();\n const customLoader = { load: vi.fn() };\n\n const res = contextModuleBuilder\n .removeDefaultLoaders()\n .addTypedDataLoader(customLoader)\n .build();\n\n expect(res).toBeInstanceOf(DefaultContextModule);\n // @ts-expect-error _typedDataLoader is private\n expect(res[\"_typedDataLoader\"]).toBe(customLoader);\n });\n\n it(\"should return a custom context module with a custom config\", () => {\n const contextModuleBuilder = new ContextModuleBuilder();\n\n const res = contextModuleBuilder\n .addCalConfig(defaultCalConfig)\n .addWeb3ChecksConfig(defaultWeb3ChecksConfig)\n .build();\n // @ts-expect-error _container is private\n const config = (res[\"_container\"] as Container).get<ContextModuleConfig>(\n configTypes.Config,\n );\n\n expect(res).toBeInstanceOf(DefaultContextModule);\n expect(config.cal).toEqual(defaultCalConfig);\n expect(config.web3checks).toEqual(defaultWeb3ChecksConfig);\n });\n\n it(\"should return a custom context module with a custom custom web3checks loader\", () => {\n const contextModuleBuilder = new ContextModuleBuilder();\n const customLoader = { load: vi.fn() };\n\n const res = contextModuleBuilder\n .removeDefaultLoaders()\n .addWeb3CheckLoader(customLoader)\n .build();\n\n expect(res).toBeInstanceOf(DefaultContextModule);\n // @ts-expect-error _web3CheckLoader is private\n expect(res[\"_web3CheckLoader\"]).toBe(customLoader);\n });\n});\n"],
5
- "mappings": "aAEA,IAAAA,EAA4B,mCAK5BC,EAAqC,kCACrCC,EAAqC,kCAErC,SAAS,uBAAwB,IAAM,CACrC,MAAMC,EAA2C,CAC/C,IAAK,iBACL,KAAM,OACN,OAAQ,MACV,EACMC,EAA0B,CAC9B,IAAK,uBACP,EACA,GAAG,yCAA0C,IAAM,CAGjD,MAAMC,EAFuB,IAAI,uBAAqB,EAErB,MAAM,EAEvC,OAAOA,CAAG,EAAE,eAAe,sBAAoB,CACjD,CAAC,EAED,GAAG,wCAAyC,IAAM,CAChD,MAAMC,EAAuB,IAAI,uBAC3BC,EAAe,CAAE,KAAM,GAAG,GAAG,CAAE,EAE/BF,EAAMC,EACT,qBAAqB,EACrB,UAAUC,CAAY,EACtB,MAAM,EAET,OAAOF,CAAG,EAAE,eAAe,sBAAoB,CACjD,CAAC,EAED,GAAG,wEAAyE,IAAM,CAChF,MAAMC,EAAuB,IAAI,uBAC3BC,EAAe,CAAE,KAAM,GAAG,GAAG,CAAE,EAE/BF,EAAMC,EACT,qBAAqB,EACrB,mBAAmBC,CAAY,EAC/B,MAAM,EAET,OAAOF,CAAG,EAAE,eAAe,sBAAoB,EAE/C,OAAOA,EAAI,gBAAmB,EAAE,KAAKE,CAAY,CACnD,CAAC,EAED,GAAG,6DAA8D,IAAM,CAGrE,MAAMF,EAFuB,IAAI,uBAAqB,EAGnD,aAAaF,CAAgB,EAC7B,oBAAoBC,CAAuB,EAC3C,MAAM,EAEHI,EAAUH,EAAI,WAA4B,IAC9C,cAAY,MACd,EAEA,OAAOA,CAAG,EAAE,eAAe,sBAAoB,EAC/C,OAAOG,EAAO,GAAG,EAAE,QAAQL,CAAgB,EAC3C,OAAOK,EAAO,UAAU,EAAE,QAAQJ,CAAuB,CAC3D,CAAC,EAED,GAAG,+EAAgF,IAAM,CACvF,MAAME,EAAuB,IAAI,uBAC3BC,EAAe,CAAE,KAAM,GAAG,GAAG,CAAE,EAE/BF,EAAMC,EACT,qBAAqB,EACrB,mBAAmBC,CAAY,EAC/B,MAAM,EAET,OAAOF,CAAG,EAAE,eAAe,sBAAoB,EAE/C,OAAOA,EAAI,gBAAmB,EAAE,KAAKE,CAAY,CACnD,CAAC,CACH,CAAC",
6
- "names": ["import_configTypes", "import_ContextModuleBuilder", "import_DefaultContextModule", "defaultCalConfig", "defaultWeb3ChecksConfig", "res", "contextModuleBuilder", "customLoader", "config"]
4
+ "sourcesContent": ["import { type Container } from \"inversify\";\n\nimport { configTypes } from \"./config/di/configTypes\";\nimport { type ContextModuleConstructorArgs } from \"./config/model/ContextModuleBuildArgs\";\nimport {\n type ContextModuleCalConfig,\n type ContextModuleConfig,\n} from \"./config/model/ContextModuleConfig\";\nimport { ContextModuleBuilder } from \"./ContextModuleBuilder\";\nimport { DefaultContextModule } from \"./DefaultContextModule\";\n\ndescribe(\"ContextModuleBuilder\", () => {\n const defaultCalConfig: ContextModuleCalConfig = {\n url: \"https://cal/v1\",\n mode: \"prod\",\n branch: \"main\",\n };\n const defaultWeb3ChecksConfig = {\n url: \"https://web3checks/v1\",\n };\n const defaultBuilderArgs: ContextModuleConstructorArgs = {\n originToken: \"test\",\n };\n it(\"should return a default context module\", () => {\n const contextModuleBuilder = new ContextModuleBuilder(defaultBuilderArgs);\n\n const res = contextModuleBuilder.build();\n\n expect(res).toBeInstanceOf(DefaultContextModule);\n });\n\n it(\"should return a custom context module\", () => {\n const contextModuleBuilder = new ContextModuleBuilder(defaultBuilderArgs);\n const customLoader = { load: vi.fn() };\n\n const res = contextModuleBuilder\n .removeDefaultLoaders()\n .addLoader(customLoader)\n .build();\n\n expect(res).toBeInstanceOf(DefaultContextModule);\n });\n\n it(\"should return a custom context module with a custom typed data loader\", () => {\n const contextModuleBuilder = new ContextModuleBuilder(defaultBuilderArgs);\n const customLoader = { load: vi.fn() };\n\n const res = contextModuleBuilder\n .removeDefaultLoaders()\n .addTypedDataLoader(customLoader)\n .build();\n\n expect(res).toBeInstanceOf(DefaultContextModule);\n // @ts-expect-error _typedDataLoader is private\n expect(res[\"_typedDataLoader\"]).toBe(customLoader);\n });\n\n it(\"should return a custom context module with a custom config\", () => {\n const contextModuleBuilder = new ContextModuleBuilder(defaultBuilderArgs);\n\n const res = contextModuleBuilder\n .addCalConfig(defaultCalConfig)\n .addWeb3ChecksConfig(defaultWeb3ChecksConfig)\n .build();\n // @ts-expect-error _container is private\n const config = (res[\"_container\"] as Container).get<ContextModuleConfig>(\n configTypes.Config,\n );\n\n expect(res).toBeInstanceOf(DefaultContextModule);\n expect(config.cal).toEqual(defaultCalConfig);\n expect(config.web3checks).toEqual(defaultWeb3ChecksConfig);\n });\n\n it(\"should return a custom context module with a custom custom web3checks loader\", () => {\n const contextModuleBuilder = new ContextModuleBuilder();\n const customLoader = { load: vi.fn() };\n\n const res = contextModuleBuilder\n .removeDefaultLoaders()\n .addWeb3CheckLoader(customLoader)\n .build();\n\n expect(res).toBeInstanceOf(DefaultContextModule);\n // @ts-expect-error _web3CheckLoader is private\n expect(res[\"_web3CheckLoader\"]).toBe(customLoader);\n });\n\n it(\"should throw an error if origin token is not provided\", () => {\n const contextModuleBuilder = new ContextModuleBuilder();\n\n expect(() => contextModuleBuilder.build()).toThrow(\n \"Origin token is required\",\n );\n });\n\n it(\"should not throw an error if origin token is provided\", () => {\n const contextModuleBuilder = new ContextModuleBuilder(defaultBuilderArgs);\n\n expect(() => contextModuleBuilder.build()).not.toThrow();\n });\n\n it(\"should not throw an error if origin token is not provided and addWeb3CheckLoader is called\", () => {\n const contextModuleBuilder = new ContextModuleBuilder();\n\n expect(() =>\n contextModuleBuilder.addWeb3CheckLoader({ load: vi.fn() }).build(),\n ).not.toThrow();\n });\n});\n"],
5
+ "mappings": "aAEA,IAAAA,EAA4B,mCAM5BC,EAAqC,kCACrCC,EAAqC,kCAErC,SAAS,uBAAwB,IAAM,CACrC,MAAMC,EAA2C,CAC/C,IAAK,iBACL,KAAM,OACN,OAAQ,MACV,EACMC,EAA0B,CAC9B,IAAK,uBACP,EACMC,EAAmD,CACvD,YAAa,MACf,EACA,GAAG,yCAA0C,IAAM,CAGjD,MAAMC,EAFuB,IAAI,uBAAqBD,CAAkB,EAEvC,MAAM,EAEvC,OAAOC,CAAG,EAAE,eAAe,sBAAoB,CACjD,CAAC,EAED,GAAG,wCAAyC,IAAM,CAChD,MAAMC,EAAuB,IAAI,uBAAqBF,CAAkB,EAClEG,EAAe,CAAE,KAAM,GAAG,GAAG,CAAE,EAE/BF,EAAMC,EACT,qBAAqB,EACrB,UAAUC,CAAY,EACtB,MAAM,EAET,OAAOF,CAAG,EAAE,eAAe,sBAAoB,CACjD,CAAC,EAED,GAAG,wEAAyE,IAAM,CAChF,MAAMC,EAAuB,IAAI,uBAAqBF,CAAkB,EAClEG,EAAe,CAAE,KAAM,GAAG,GAAG,CAAE,EAE/BF,EAAMC,EACT,qBAAqB,EACrB,mBAAmBC,CAAY,EAC/B,MAAM,EAET,OAAOF,CAAG,EAAE,eAAe,sBAAoB,EAE/C,OAAOA,EAAI,gBAAmB,EAAE,KAAKE,CAAY,CACnD,CAAC,EAED,GAAG,6DAA8D,IAAM,CAGrE,MAAMF,EAFuB,IAAI,uBAAqBD,CAAkB,EAGrE,aAAaF,CAAgB,EAC7B,oBAAoBC,CAAuB,EAC3C,MAAM,EAEHK,EAAUH,EAAI,WAA4B,IAC9C,cAAY,MACd,EAEA,OAAOA,CAAG,EAAE,eAAe,sBAAoB,EAC/C,OAAOG,EAAO,GAAG,EAAE,QAAQN,CAAgB,EAC3C,OAAOM,EAAO,UAAU,EAAE,QAAQL,CAAuB,CAC3D,CAAC,EAED,GAAG,+EAAgF,IAAM,CACvF,MAAMG,EAAuB,IAAI,uBAC3BC,EAAe,CAAE,KAAM,GAAG,GAAG,CAAE,EAE/BF,EAAMC,EACT,qBAAqB,EACrB,mBAAmBC,CAAY,EAC/B,MAAM,EAET,OAAOF,CAAG,EAAE,eAAe,sBAAoB,EAE/C,OAAOA,EAAI,gBAAmB,EAAE,KAAKE,CAAY,CACnD,CAAC,EAED,GAAG,wDAAyD,IAAM,CAChE,MAAMD,EAAuB,IAAI,uBAEjC,OAAO,IAAMA,EAAqB,MAAM,CAAC,EAAE,QACzC,0BACF,CACF,CAAC,EAED,GAAG,wDAAyD,IAAM,CAChE,MAAMA,EAAuB,IAAI,uBAAqBF,CAAkB,EAExE,OAAO,IAAME,EAAqB,MAAM,CAAC,EAAE,IAAI,QAAQ,CACzD,CAAC,EAED,GAAG,6FAA8F,IAAM,CACrG,MAAMA,EAAuB,IAAI,uBAEjC,OAAO,IACLA,EAAqB,mBAAmB,CAAE,KAAM,GAAG,GAAG,CAAE,CAAC,EAAE,MAAM,CACnE,EAAE,IAAI,QAAQ,CAChB,CAAC,CACH,CAAC",
6
+ "names": ["import_configTypes", "import_ContextModuleBuilder", "import_DefaultContextModule", "defaultCalConfig", "defaultWeb3ChecksConfig", "defaultBuilderArgs", "res", "contextModuleBuilder", "customLoader", "config"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var r=require("@ledgerhq/device-management-kit"),c=require("purify-ts"),o=require("./DefaultContextModule");const l=()=>({load:vi.fn(),loadField:vi.fn()});describe("DefaultContextModule",()=>{const s={load:vi.fn()},a={customLoaders:[],defaultLoaders:!1,customTypedDataLoader:s,cal:{url:"https://cal/v1",mode:"prod",branch:"main"},web3checks:{url:"https://web3checks/v3"}};beforeEach(()=>{vi.restoreAllMocks()}),it("should initialize the context module with all the default loaders",async()=>{const t=await new o.DefaultContextModule(a).getContexts({});expect(t).toEqual([])}),it("should return an empty array when no loaders",async()=>{const t=await new o.DefaultContextModule(a).getContexts({});expect(t).toEqual([])}),it("should call all fetch method from metadata fetcher",async()=>{const e=l();await new o.DefaultContextModule({...a,customLoaders:[e,e]}).getContexts({}),expect(e.load).toHaveBeenCalledTimes(2)}),it("should return an array of context response",async()=>{const e=l(),t=[[{type:"provideERC20Info",payload:"payload1"}],[{type:"provideERC20Info",payload:"payload2"},{type:"plugin",payload:"payload3"}]];vi.spyOn(e,"load").mockResolvedValueOnce(t[0]).mockResolvedValueOnce(t[1]);const d=await new o.DefaultContextModule({...a,customLoaders:[e,e]}).getContexts({});expect(e.load).toHaveBeenCalledTimes(2),expect(d).toEqual(t.flat())}),it("should call the typed data loader",async()=>{await new o.DefaultContextModule({...a,customTypedDataLoader:s}).getTypedDataFilters({}),expect(s.load).toHaveBeenCalledTimes(1)}),it("should return a single context",async()=>{const e=l(),t=[null,{type:"token",payload:"payload"}];vi.spyOn(e,"loadField").mockResolvedValueOnce(t[0]).mockResolvedValueOnce(t[1]);const d=await new o.DefaultContextModule({...a,customLoaders:[e,{load:vi.fn()},e]}).getContext({type:"token"});expect(e.loadField).toHaveBeenCalledTimes(2),expect(d).toEqual({type:"token",payload:"payload"})}),it("should return a web3 check context",async()=>{const e=l();vi.spyOn(e,"load").mockResolvedValueOnce((0,c.Right)({descriptor:"payload"}));const n=await new o.DefaultContextModule({...a,customLoaders:[],customWeb3CheckLoader:e}).getWeb3Checks({deviceModelId:r.DeviceModelId.FLEX,from:"from",rawTx:"rawTx",chainId:1});expect(e.load).toHaveBeenCalledTimes(1),expect(n).toEqual({type:"web3Check",payload:"payload"})}),it("should return null if no web3 check context",async()=>{const e=l();vi.spyOn(e,"load").mockResolvedValue((0,c.Left)(new Error("error")));const n=await new o.DefaultContextModule({...a,customLoaders:[],customWeb3CheckLoader:e}).getWeb3Checks({deviceModelId:r.DeviceModelId.FLEX,from:"from",rawTx:"rawTx",chainId:1});expect(e.load).toHaveBeenCalledTimes(1),expect(n).toBeNull()}),it("context field not supported",async()=>{const e=l(),t=[null,null];vi.spyOn(e,"loadField").mockResolvedValueOnce(t[0]).mockResolvedValueOnce(t[1]);const d=await new o.DefaultContextModule({...a,customLoaders:[e,{load:vi.fn()},e]}).getContext({type:"token"});expect(e.loadField).toHaveBeenCalledTimes(2),expect(d).toEqual({type:"error",error:new Error("Field type not supported: token")})}),it("getField not implemented",async()=>{const t=await new o.DefaultContextModule({...a,customLoaders:[{load:vi.fn()}]}).getContext({type:"token"});expect(t).toEqual({type:"error",error:new Error("Field type not supported: token")})})});
1
+ "use strict";var r=require("@ledgerhq/device-management-kit"),s=require("purify-ts"),o=require("./DefaultContextModule");const d=()=>({load:vi.fn(),loadField:vi.fn()});describe("DefaultContextModule",()=>{const c={load:vi.fn()},a={customLoaders:[],defaultLoaders:!1,customTypedDataLoader:c,cal:{url:"https://cal/v1",mode:"prod",branch:"main"},web3checks:{url:"https://web3checks/v3"},originToken:"originToken"};beforeEach(()=>{vi.restoreAllMocks()}),it("should initialize the context module with all the default loaders",async()=>{const t=await new o.DefaultContextModule(a).getContexts({});expect(t).toEqual([])}),it("should return an empty array when no loaders",async()=>{const t=await new o.DefaultContextModule(a).getContexts({});expect(t).toEqual([])}),it("should call all fetch method from metadata fetcher",async()=>{const e=d();await new o.DefaultContextModule({...a,customLoaders:[e,e]}).getContexts({}),expect(e.load).toHaveBeenCalledTimes(2)}),it("should return an array of context response",async()=>{const e=d(),t=[[{type:"provideERC20Info",payload:"payload1"}],[{type:"provideERC20Info",payload:"payload2"},{type:"plugin",payload:"payload3"}]];vi.spyOn(e,"load").mockResolvedValueOnce(t[0]).mockResolvedValueOnce(t[1]);const l=await new o.DefaultContextModule({...a,customLoaders:[e,e]}).getContexts({});expect(e.load).toHaveBeenCalledTimes(2),expect(l).toEqual(t.flat())}),it("should call the typed data loader",async()=>{await new o.DefaultContextModule({...a,customTypedDataLoader:c}).getTypedDataFilters({}),expect(c.load).toHaveBeenCalledTimes(1)}),it("should return a single context",async()=>{const e=d(),t=[null,{type:"token",payload:"payload"}];vi.spyOn(e,"loadField").mockResolvedValueOnce(t[0]).mockResolvedValueOnce(t[1]);const l=await new o.DefaultContextModule({...a,customLoaders:[e,{load:vi.fn()},e]}).getContext({type:"token"});expect(e.loadField).toHaveBeenCalledTimes(2),expect(l).toEqual({type:"token",payload:"payload"})}),it("should return a web3 check context",async()=>{const e=d();vi.spyOn(e,"load").mockResolvedValueOnce((0,s.Right)({descriptor:"payload"}));const n=await new o.DefaultContextModule({...a,customLoaders:[],customWeb3CheckLoader:e}).getWeb3Checks({deviceModelId:r.DeviceModelId.FLEX,from:"from",rawTx:"rawTx",chainId:1});expect(e.load).toHaveBeenCalledTimes(1),expect(n).toEqual({type:"web3Check",payload:"payload"})}),it("should return null if no web3 check context",async()=>{const e=d();vi.spyOn(e,"load").mockResolvedValue((0,s.Left)(new Error("error")));const n=await new o.DefaultContextModule({...a,customLoaders:[],customWeb3CheckLoader:e}).getWeb3Checks({deviceModelId:r.DeviceModelId.FLEX,from:"from",rawTx:"rawTx",chainId:1});expect(e.load).toHaveBeenCalledTimes(1),expect(n).toBeNull()}),it("context field not supported",async()=>{const e=d(),t=[null,null];vi.spyOn(e,"loadField").mockResolvedValueOnce(t[0]).mockResolvedValueOnce(t[1]);const l=await new o.DefaultContextModule({...a,customLoaders:[e,{load:vi.fn()},e]}).getContext({type:"token"});expect(e.loadField).toHaveBeenCalledTimes(2),expect(l).toEqual({type:"error",error:new Error("Field type not supported: token")})}),it("getField not implemented",async()=>{const t=await new o.DefaultContextModule({...a,customLoaders:[{load:vi.fn()}]}).getContext({type:"token"});expect(t).toEqual({type:"error",error:new Error("Field type not supported: token")})}),it("should throw an error if origin token is not provided",()=>{expect(()=>new o.DefaultContextModule({...a,originToken:void 0})).toThrow("Origin token is required")})});
2
2
  //# sourceMappingURL=DefaultContextModule.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/DefaultContextModule.test.ts"],
4
- "sourcesContent": ["import { DeviceModelId } from \"@ledgerhq/device-management-kit\";\nimport { Left, Right } from \"purify-ts\";\n\nimport { type ContextModuleConfig } from \"./config/model/ContextModuleConfig\";\nimport {\n type TransactionContext,\n type TransactionFieldContext,\n} from \"./shared/model/TransactionContext\";\nimport { type TypedDataContext } from \"./shared/model/TypedDataContext\";\nimport type { TypedDataContextLoader } from \"./typed-data/domain/TypedDataContextLoader\";\nimport { DefaultContextModule } from \"./DefaultContextModule\";\n\nconst contextLoaderStubBuilder = () => {\n return { load: vi.fn(), loadField: vi.fn() };\n};\n\ndescribe(\"DefaultContextModule\", () => {\n const typedDataLoader: TypedDataContextLoader = { load: vi.fn() };\n const defaultContextModuleConfig: ContextModuleConfig = {\n customLoaders: [],\n defaultLoaders: false,\n customTypedDataLoader: typedDataLoader,\n cal: {\n url: \"https://cal/v1\",\n mode: \"prod\",\n branch: \"main\",\n },\n web3checks: {\n url: \"https://web3checks/v3\",\n },\n };\n\n beforeEach(() => {\n vi.restoreAllMocks();\n });\n\n it(\"should initialize the context module with all the default loaders\", async () => {\n const contextModule = new DefaultContextModule(defaultContextModuleConfig);\n\n const res = await contextModule.getContexts({} as TransactionContext);\n\n expect(res).toEqual([]);\n });\n\n it(\"should return an empty array when no loaders\", async () => {\n const contextModule = new DefaultContextModule(defaultContextModuleConfig);\n\n const res = await contextModule.getContexts({} as TransactionContext);\n\n expect(res).toEqual([]);\n });\n\n it(\"should call all fetch method from metadata fetcher\", async () => {\n const loader = contextLoaderStubBuilder();\n const contextModule = new DefaultContextModule({\n ...defaultContextModuleConfig,\n customLoaders: [loader, loader],\n });\n\n await contextModule.getContexts({} as TransactionContext);\n\n expect(loader.load).toHaveBeenCalledTimes(2);\n });\n\n it(\"should return an array of context response\", async () => {\n const loader = contextLoaderStubBuilder();\n const responses = [\n [{ type: \"provideERC20Info\", payload: \"payload1\" }],\n [\n { type: \"provideERC20Info\", payload: \"payload2\" },\n { type: \"plugin\", payload: \"payload3\" },\n ],\n ];\n vi.spyOn(loader, \"load\")\n .mockResolvedValueOnce(responses[0])\n .mockResolvedValueOnce(responses[1]);\n const contextModule = new DefaultContextModule({\n ...defaultContextModuleConfig,\n customLoaders: [loader, loader],\n });\n\n const res = await contextModule.getContexts({} as TransactionContext);\n\n expect(loader.load).toHaveBeenCalledTimes(2);\n expect(res).toEqual(responses.flat());\n });\n\n it(\"should call the typed data loader\", async () => {\n const contextModule = new DefaultContextModule({\n ...defaultContextModuleConfig,\n customTypedDataLoader: typedDataLoader,\n });\n\n await contextModule.getTypedDataFilters({} as TypedDataContext);\n\n expect(typedDataLoader.load).toHaveBeenCalledTimes(1);\n });\n\n it(\"should return a single context\", async () => {\n const loader = contextLoaderStubBuilder();\n const responses = [null, { type: \"token\", payload: \"payload\" }];\n vi.spyOn(loader, \"loadField\")\n .mockResolvedValueOnce(responses[0])\n .mockResolvedValueOnce(responses[1]);\n const contextModule = new DefaultContextModule({\n ...defaultContextModuleConfig,\n customLoaders: [loader, { load: vi.fn() }, loader],\n });\n\n const res = await contextModule.getContext({\n type: \"token\",\n } as TransactionFieldContext);\n\n expect(loader.loadField).toHaveBeenCalledTimes(2);\n expect(res).toEqual({ type: \"token\", payload: \"payload\" });\n });\n\n it(\"should return a web3 check context\", async () => {\n const loader = contextLoaderStubBuilder();\n vi.spyOn(loader, \"load\").mockResolvedValueOnce(\n Right({ descriptor: \"payload\" }),\n );\n const contextModule = new DefaultContextModule({\n ...defaultContextModuleConfig,\n customLoaders: [],\n customWeb3CheckLoader: loader,\n });\n\n const res = await contextModule.getWeb3Checks({\n deviceModelId: DeviceModelId.FLEX,\n from: \"from\",\n rawTx: \"rawTx\",\n chainId: 1,\n });\n\n expect(loader.load).toHaveBeenCalledTimes(1);\n expect(res).toEqual({ type: \"web3Check\", payload: \"payload\" });\n });\n\n it(\"should return null if no web3 check context\", async () => {\n const loader = contextLoaderStubBuilder();\n vi.spyOn(loader, \"load\").mockResolvedValue(Left(new Error(\"error\")));\n const contextModule = new DefaultContextModule({\n ...defaultContextModuleConfig,\n customLoaders: [],\n customWeb3CheckLoader: loader,\n });\n\n const res = await contextModule.getWeb3Checks({\n deviceModelId: DeviceModelId.FLEX,\n from: \"from\",\n rawTx: \"rawTx\",\n chainId: 1,\n });\n\n expect(loader.load).toHaveBeenCalledTimes(1);\n expect(res).toBeNull();\n });\n\n it(\"context field not supported\", async () => {\n const loader = contextLoaderStubBuilder();\n const responses = [null, null];\n vi.spyOn(loader, \"loadField\")\n .mockResolvedValueOnce(responses[0])\n .mockResolvedValueOnce(responses[1]);\n const contextModule = new DefaultContextModule({\n ...defaultContextModuleConfig,\n customLoaders: [loader, { load: vi.fn() }, loader],\n });\n\n const res = await contextModule.getContext({\n type: \"token\",\n } as TransactionFieldContext);\n\n expect(loader.loadField).toHaveBeenCalledTimes(2);\n expect(res).toEqual({\n type: \"error\",\n error: new Error(\"Field type not supported: token\"),\n });\n });\n\n it(\"getField not implemented\", async () => {\n const contextModule = new DefaultContextModule({\n ...defaultContextModuleConfig,\n customLoaders: [{ load: vi.fn() }],\n });\n\n const res = await contextModule.getContext({\n type: \"token\",\n } as TransactionFieldContext);\n\n expect(res).toEqual({\n type: \"error\",\n error: new Error(\"Field type not supported: token\"),\n });\n });\n});\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { DeviceModelId } from \"@ledgerhq/device-management-kit\";\nimport { Left, Right } from \"purify-ts\";\n\nimport { type ContextModuleConfig } from \"./config/model/ContextModuleConfig\";\nimport {\n type TransactionContext,\n type TransactionFieldContext,\n} from \"./shared/model/TransactionContext\";\nimport { type TypedDataContext } from \"./shared/model/TypedDataContext\";\nimport type { TypedDataContextLoader } from \"./typed-data/domain/TypedDataContextLoader\";\nimport { DefaultContextModule } from \"./DefaultContextModule\";\n\nconst contextLoaderStubBuilder = () => {\n return { load: vi.fn(), loadField: vi.fn() };\n};\n\ndescribe(\"DefaultContextModule\", () => {\n const typedDataLoader: TypedDataContextLoader = { load: vi.fn() };\n const defaultContextModuleConfig: ContextModuleConfig = {\n customLoaders: [],\n defaultLoaders: false,\n customTypedDataLoader: typedDataLoader,\n cal: {\n url: \"https://cal/v1\",\n mode: \"prod\",\n branch: \"main\",\n },\n web3checks: {\n url: \"https://web3checks/v3\",\n },\n originToken: \"originToken\",\n };\n\n beforeEach(() => {\n vi.restoreAllMocks();\n });\n\n it(\"should initialize the context module with all the default loaders\", async () => {\n const contextModule = new DefaultContextModule(defaultContextModuleConfig);\n\n const res = await contextModule.getContexts({} as TransactionContext);\n\n expect(res).toEqual([]);\n });\n\n it(\"should return an empty array when no loaders\", async () => {\n const contextModule = new DefaultContextModule(defaultContextModuleConfig);\n\n const res = await contextModule.getContexts({} as TransactionContext);\n\n expect(res).toEqual([]);\n });\n\n it(\"should call all fetch method from metadata fetcher\", async () => {\n const loader = contextLoaderStubBuilder();\n const contextModule = new DefaultContextModule({\n ...defaultContextModuleConfig,\n customLoaders: [loader, loader],\n });\n\n await contextModule.getContexts({} as TransactionContext);\n\n expect(loader.load).toHaveBeenCalledTimes(2);\n });\n\n it(\"should return an array of context response\", async () => {\n const loader = contextLoaderStubBuilder();\n const responses = [\n [{ type: \"provideERC20Info\", payload: \"payload1\" }],\n [\n { type: \"provideERC20Info\", payload: \"payload2\" },\n { type: \"plugin\", payload: \"payload3\" },\n ],\n ];\n vi.spyOn(loader, \"load\")\n .mockResolvedValueOnce(responses[0])\n .mockResolvedValueOnce(responses[1]);\n const contextModule = new DefaultContextModule({\n ...defaultContextModuleConfig,\n customLoaders: [loader, loader],\n });\n\n const res = await contextModule.getContexts({} as TransactionContext);\n\n expect(loader.load).toHaveBeenCalledTimes(2);\n expect(res).toEqual(responses.flat());\n });\n\n it(\"should call the typed data loader\", async () => {\n const contextModule = new DefaultContextModule({\n ...defaultContextModuleConfig,\n customTypedDataLoader: typedDataLoader,\n });\n\n await contextModule.getTypedDataFilters({} as TypedDataContext);\n\n expect(typedDataLoader.load).toHaveBeenCalledTimes(1);\n });\n\n it(\"should return a single context\", async () => {\n const loader = contextLoaderStubBuilder();\n const responses = [null, { type: \"token\", payload: \"payload\" }];\n vi.spyOn(loader, \"loadField\")\n .mockResolvedValueOnce(responses[0])\n .mockResolvedValueOnce(responses[1]);\n const contextModule = new DefaultContextModule({\n ...defaultContextModuleConfig,\n customLoaders: [loader, { load: vi.fn() }, loader],\n });\n\n const res = await contextModule.getContext({\n type: \"token\",\n } as TransactionFieldContext);\n\n expect(loader.loadField).toHaveBeenCalledTimes(2);\n expect(res).toEqual({ type: \"token\", payload: \"payload\" });\n });\n\n it(\"should return a web3 check context\", async () => {\n const loader = contextLoaderStubBuilder();\n vi.spyOn(loader, \"load\").mockResolvedValueOnce(\n Right({ descriptor: \"payload\" }),\n );\n const contextModule = new DefaultContextModule({\n ...defaultContextModuleConfig,\n customLoaders: [],\n customWeb3CheckLoader: loader,\n });\n\n const res = await contextModule.getWeb3Checks({\n deviceModelId: DeviceModelId.FLEX,\n from: \"from\",\n rawTx: \"rawTx\",\n chainId: 1,\n });\n\n expect(loader.load).toHaveBeenCalledTimes(1);\n expect(res).toEqual({ type: \"web3Check\", payload: \"payload\" });\n });\n\n it(\"should return null if no web3 check context\", async () => {\n const loader = contextLoaderStubBuilder();\n vi.spyOn(loader, \"load\").mockResolvedValue(Left(new Error(\"error\")));\n const contextModule = new DefaultContextModule({\n ...defaultContextModuleConfig,\n customLoaders: [],\n customWeb3CheckLoader: loader,\n });\n\n const res = await contextModule.getWeb3Checks({\n deviceModelId: DeviceModelId.FLEX,\n from: \"from\",\n rawTx: \"rawTx\",\n chainId: 1,\n });\n\n expect(loader.load).toHaveBeenCalledTimes(1);\n expect(res).toBeNull();\n });\n\n it(\"context field not supported\", async () => {\n const loader = contextLoaderStubBuilder();\n const responses = [null, null];\n vi.spyOn(loader, \"loadField\")\n .mockResolvedValueOnce(responses[0])\n .mockResolvedValueOnce(responses[1]);\n const contextModule = new DefaultContextModule({\n ...defaultContextModuleConfig,\n customLoaders: [loader, { load: vi.fn() }, loader],\n });\n\n const res = await contextModule.getContext({\n type: \"token\",\n } as TransactionFieldContext);\n\n expect(loader.loadField).toHaveBeenCalledTimes(2);\n expect(res).toEqual({\n type: \"error\",\n error: new Error(\"Field type not supported: token\"),\n });\n });\n\n it(\"getField not implemented\", async () => {\n const contextModule = new DefaultContextModule({\n ...defaultContextModuleConfig,\n customLoaders: [{ load: vi.fn() }],\n });\n\n const res = await contextModule.getContext({\n type: \"token\",\n } as TransactionFieldContext);\n\n expect(res).toEqual({\n type: \"error\",\n error: new Error(\"Field type not supported: token\"),\n });\n });\n\n it(\"should throw an error if origin token is not provided\", () => {\n expect(\n () =>\n new DefaultContextModule({\n ...defaultContextModuleConfig,\n originToken: undefined,\n }),\n ).toThrow(\"Origin token is required\");\n });\n});\n"],
5
+ "mappings": "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",
6
6
  "names": ["import_device_management_kit", "import_purify_ts", "import_DefaultContextModule", "contextLoaderStubBuilder", "typedDataLoader", "defaultContextModuleConfig", "res", "loader", "responses"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var g=Object.defineProperty;var e=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var r=Object.prototype.hasOwnProperty;var s=(f,o)=>{for(var c in o)g(f,c,{get:o[c],enumerable:!0})},t=(f,o,c,i)=>{if(o&&typeof o=="object"||typeof o=="function")for(let n of p(o))!r.call(f,n)&&n!==c&&g(f,n,{get:()=>o[n],enumerable:!(i=e(o,n))||i.enumerable});return f};var y=f=>t(g({},"__esModule",{value:!0}),f);var l={};s(l,{configTypes:()=>b});module.exports=y(l);const b={Config:Symbol.for("config")};0&&(module.exports={configTypes});
1
+ "use strict";var g=Object.defineProperty;var e=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var y=Object.prototype.hasOwnProperty;var T=(n,o)=>{for(var f in o)g(n,f,{get:o[f],enumerable:!0})},b=(n,o,f,r)=>{if(o&&typeof o=="object"||typeof o=="function")for(let i of c(o))!y.call(n,i)&&i!==f&&g(n,i,{get:()=>o[i],enumerable:!(r=e(o,i))||r.enumerable});return n};var k=n=>b(g({},"__esModule",{value:!0}),n);var m={};T(m,{configTypes:()=>l});module.exports=k(m);const l={Config:Symbol.for("config"),OriginToken:Symbol.for("originToken")};0&&(module.exports={configTypes});
2
2
  //# sourceMappingURL=configTypes.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/config/di/configTypes.ts"],
4
- "sourcesContent": ["export const configTypes = {\n Config: Symbol.for(\"config\"),\n};\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,iBAAAE,IAAA,eAAAC,EAAAH,GAAO,MAAME,EAAc,CACzB,OAAQ,OAAO,IAAI,QAAQ,CAC7B",
4
+ "sourcesContent": ["export const configTypes = {\n Config: Symbol.for(\"config\"),\n OriginToken: Symbol.for(\"originToken\"),\n};\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,iBAAAE,IAAA,eAAAC,EAAAH,GAAO,MAAME,EAAc,CACzB,OAAQ,OAAO,IAAI,QAAQ,EAC3B,YAAa,OAAO,IAAI,aAAa,CACvC",
6
6
  "names": ["configTypes_exports", "__export", "configTypes", "__toCommonJS"]
7
7
  }
@@ -0,0 +1,2 @@
1
+ "use strict";var n=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var u=(t,o,g,e)=>{if(o&&typeof o=="object"||typeof o=="function")for(let r of s(o))!p.call(t,r)&&r!==g&&n(t,r,{get:()=>o[r],enumerable:!(e=i(o,r))||e.enumerable});return t};var x=t=>u(n({},"__esModule",{value:!0}),t);var C={};module.exports=x(C);
2
+ //# sourceMappingURL=ContextModuleBuildArgs.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/config/model/ContextModuleBuildArgs.ts"],
4
+ "sourcesContent": ["export type ContextModuleConstructorArgs = {\n originToken?: string;\n};\n"],
5
+ "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
+ "names": ["ContextModuleBuildArgs_exports", "__toCommonJS"]
7
+ }
@@ -1,2 +1,2 @@
1
- "use strict";var a=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var n=Object.getOwnPropertyNames;var x=Object.prototype.hasOwnProperty;var l=(o,e,r,C)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of n(e))!x.call(o,t)&&t!==r&&a(o,t,{get:()=>e[t],enumerable:!(C=d(e,t))||C.enumerable});return o};var p=o=>l(a({},"__esModule",{value:!0}),o);var u={};module.exports=p(u);
1
+ "use strict";var r=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var x=Object.prototype.hasOwnProperty;var l=(o,e,C,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of d(e))!x.call(o,t)&&t!==C&&r(o,t,{get:()=>e[t],enumerable:!(n=a(e,t))||n.enumerable});return o};var p=o=>l(r({},"__esModule",{value:!0}),o);var u={};module.exports=p(u);
2
2
  //# sourceMappingURL=ContextModuleConfig.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/config/model/ContextModuleConfig.ts"],
4
- "sourcesContent": ["import { type ContextLoader } from \"@/shared/domain/ContextLoader\";\nimport { type TypedDataContextLoader } from \"@/typed-data/domain/TypedDataContextLoader\";\nimport { type Web3CheckContextLoader } from \"@/web3-check/domain/Web3CheckContextLoader\";\n\nexport type ContextModuleCalMode = \"prod\" | \"test\";\nexport type ContextModuleCalBranch = \"next\" | \"main\" | \"demo\";\n\nexport type ContextModuleCalConfig = {\n url: string;\n mode: ContextModuleCalMode;\n branch: ContextModuleCalBranch;\n};\n\nexport type ContextModuleWeb3ChecksConfig = {\n url: string;\n};\n\nexport type ContextModuleConfig = {\n cal: ContextModuleCalConfig;\n web3checks: ContextModuleWeb3ChecksConfig;\n defaultLoaders: boolean;\n customLoaders: ContextLoader[];\n customTypedDataLoader?: TypedDataContextLoader;\n customWeb3CheckLoader?: Web3CheckContextLoader;\n};\n"],
4
+ "sourcesContent": ["import { type ContextLoader } from \"@/shared/domain/ContextLoader\";\nimport { type TypedDataContextLoader } from \"@/typed-data/domain/TypedDataContextLoader\";\nimport { type Web3CheckContextLoader } from \"@/web3-check/domain/Web3CheckContextLoader\";\n\nexport type ContextModuleCalMode = \"prod\" | \"test\";\nexport type ContextModuleCalBranch = \"next\" | \"main\" | \"demo\";\n\nexport type ContextModuleCalConfig = {\n url: string;\n mode: ContextModuleCalMode;\n branch: ContextModuleCalBranch;\n};\n\nexport type ContextModuleWeb3ChecksConfig = {\n url: string;\n};\n\nexport type ContextModuleConfig = {\n cal: ContextModuleCalConfig;\n web3checks: ContextModuleWeb3ChecksConfig;\n defaultLoaders: boolean;\n customLoaders: ContextLoader[];\n customTypedDataLoader?: TypedDataContextLoader;\n customWeb3CheckLoader?: Web3CheckContextLoader;\n originToken?: string;\n};\n"],
5
5
  "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
6
  "names": ["ContextModuleConfig_exports", "__toCommonJS"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var _=Object.create;var f=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var w=Object.getOwnPropertyNames;var A=Object.getPrototypeOf,G=Object.prototype.hasOwnProperty;var L=(e,t)=>{for(var o in t)f(e,o,{get:t[o],enumerable:!0})},D=(e,t,o,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of w(t))!G.call(e,r)&&r!==o&&f(e,r,{get:()=>t[r],enumerable:!(i=g(t,r))||i.enumerable});return e};var C=(e,t,o)=>(o=e!=null?_(A(e)):{},D(t||!e||!e.__esModule?f(o,"default",{value:e,enumerable:!0}):o,e)),M=e=>D(f({},"__esModule",{value:!0}),e),h=(e,t,o,i)=>{for(var r=i>1?void 0:i?g(t,o):t,a=e.length-1,s;a>=0;a--)(s=e[a])&&(r=(i?s(t,o,r):s(r))||r);return i&&r&&f(t,o,r),r},b=(e,t)=>(o,i)=>t(o,i,e);var $={};L($,{HttpExternalPluginDataSource:()=>p});module.exports=M($);var x=C(require("axios")),c=require("inversify"),n=require("purify-ts"),E=require("../../config/di/configTypes"),I=C(require("../../../package.json"));let p=class{constructor(t){this.config=t}async getDappInfos({chainId:t,address:o,selector:i}){try{const r=await x.default.request({method:"GET",url:`${this.config.cal.url}/dapps`,params:{output:"b2c,b2c_signatures,abis",chain_id:t,contracts:o},headers:{"X-Ledger-Client-Version":`context-module/${I.default.version}`}});if(!r.data[0])return(0,n.Right)(void 0);o=o.toLowerCase(),i=`0x${i.slice(2).toLowerCase()}`;const{erc20OfInterest:a,method:s,plugin:m}=r.data[0].b2c?.contracts?.find(y=>y.address===o)?.selectors?.[i]||{},{signature:l,serialized_data:u}=r.data[0].b2c_signatures?.[o]?.[i]||{};if(!a||!s||!m||!l||!u)return(0,n.Right)(void 0);const d=r.data[0].abis?.[o];return d?(0,n.Right)({selectorDetails:{method:s,plugin:m,erc20OfInterest:a,signature:l,serializedData:u},abi:d}):(0,n.Right)(void 0)}catch{return(0,n.Left)(new Error("[ContextModule] HttpExternalPluginDataSource: Error fetching dapp infos"))}}};p=h([(0,c.injectable)(),b(0,(0,c.inject)(E.configTypes.Config))],p);0&&(module.exports={HttpExternalPluginDataSource});
1
+ "use strict";var A=Object.create;var f=Object.defineProperty;var D=Object.getOwnPropertyDescriptor;var G=Object.getOwnPropertyNames;var L=Object.getPrototypeOf,w=Object.prototype.hasOwnProperty;var M=(e,o)=>{for(var t in o)f(e,t,{get:o[t],enumerable:!0})},g=(e,o,t,i)=>{if(o&&typeof o=="object"||typeof o=="function")for(let r of G(o))!w.call(e,r)&&r!==t&&f(e,r,{get:()=>o[r],enumerable:!(i=D(o,r))||i.enumerable});return e};var E=(e,o,t)=>(t=e!=null?A(L(e)):{},g(o||!e||!e.__esModule?f(t,"default",{value:e,enumerable:!0}):t,e)),R=e=>g(f({},"__esModule",{value:!0}),e),C=(e,o,t,i)=>{for(var r=i>1?void 0:i?D(o,t):o,a=e.length-1,s;a>=0;a--)(s=e[a])&&(r=(i?s(o,t,r):s(r))||r);return i&&r&&f(o,t,r),r},h=(e,o)=>(t,i)=>o(t,i,e);var S={};M(S,{HttpExternalPluginDataSource:()=>p});module.exports=R(S);var I=E(require("axios")),c=require("inversify"),n=require("purify-ts"),b=require("../../config/di/configTypes"),x=require("../../shared/constant/HttpHeaders"),_=E(require("../../../package.json"));let p=class{constructor(o){this.config=o}async getDappInfos({chainId:o,address:t,selector:i}){try{const r=await I.default.request({method:"GET",url:`${this.config.cal.url}/dapps`,params:{output:"b2c,b2c_signatures,abis",chain_id:o,contracts:t},headers:{[x.LEDGER_CLIENT_VERSION_HEADER]:`context-module/${_.default.version}`}});if(!r.data[0])return(0,n.Right)(void 0);t=t.toLowerCase(),i=`0x${i.slice(2).toLowerCase()}`;const{erc20OfInterest:a,method:s,plugin:m}=r.data[0].b2c?.contracts?.find(y=>y.address===t)?.selectors?.[i]||{},{signature:u,serialized_data:l}=r.data[0].b2c_signatures?.[t]?.[i]||{};if(!a||!s||!m||!u||!l)return(0,n.Right)(void 0);const d=r.data[0].abis?.[t];return d?(0,n.Right)({selectorDetails:{method:s,plugin:m,erc20OfInterest:a,signature:u,serializedData:l},abi:d}):(0,n.Right)(void 0)}catch{return(0,n.Left)(new Error("[ContextModule] HttpExternalPluginDataSource: Error fetching dapp infos"))}}};p=C([(0,c.injectable)(),h(0,(0,c.inject)(b.configTypes.Config))],p);0&&(module.exports={HttpExternalPluginDataSource});
2
2
  //# sourceMappingURL=HttpExternalPluginDataSource.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/external-plugin/data/HttpExternalPluginDataSource.ts"],
4
- "sourcesContent": ["import axios from \"axios\";\nimport { inject, injectable } from \"inversify\";\nimport { Either, Left, Right } from \"purify-ts\";\n\nimport { configTypes } from \"@/config/di/configTypes\";\nimport type { ContextModuleConfig } from \"@/config/model/ContextModuleConfig\";\nimport { DAppDto } from \"@/external-plugin/data/DAppDto\";\nimport {\n ExternalPluginDataSource,\n GetDappInfos,\n} from \"@/external-plugin/data/ExternalPluginDataSource\";\nimport { DappInfos } from \"@/external-plugin/model/DappInfos\";\nimport { SelectorDetails } from \"@/external-plugin/model/SelectorDetails\";\nimport PACKAGE from \"@root/package.json\";\n\n@injectable()\nexport class HttpExternalPluginDataSource implements ExternalPluginDataSource {\n constructor(\n @inject(configTypes.Config) private readonly config: ContextModuleConfig,\n ) {}\n\n async getDappInfos({\n chainId,\n address,\n selector,\n }: GetDappInfos): Promise<Either<Error, DappInfos | undefined>> {\n try {\n const dappInfos = await axios.request<DAppDto[]>({\n method: \"GET\",\n url: `${this.config.cal.url}/dapps`,\n params: {\n output: \"b2c,b2c_signatures,abis\",\n chain_id: chainId,\n contracts: address,\n },\n headers: {\n \"X-Ledger-Client-Version\": `context-module/${PACKAGE.version}`,\n },\n });\n\n if (!dappInfos.data[0]) {\n return Right(undefined);\n }\n\n // Normalize the address and selector\n address = address.toLowerCase();\n selector = `0x${selector.slice(2).toLowerCase()}`;\n\n const { erc20OfInterest, method, plugin } =\n dappInfos.data[0].b2c?.contracts?.find((c) => c.address === address)\n ?.selectors?.[selector] || {};\n const { signature, serialized_data: serializedData } =\n dappInfos.data[0].b2c_signatures?.[address]?.[selector] || {};\n\n if (\n !erc20OfInterest ||\n !method ||\n !plugin ||\n !signature ||\n !serializedData\n ) {\n return Right(undefined);\n }\n\n const abi = dappInfos.data[0].abis?.[address];\n\n if (!abi) {\n return Right(undefined);\n }\n\n const selectorDetails: SelectorDetails = {\n method,\n plugin,\n erc20OfInterest,\n signature,\n serializedData,\n };\n\n return Right({ selectorDetails, abi });\n } catch (_error) {\n return Left(\n new Error(\n \"[ContextModule] HttpExternalPluginDataSource: Error fetching dapp infos\",\n ),\n );\n }\n }\n}\n"],
5
- "mappings": "qtBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,kCAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAkB,oBAClBC,EAAmC,qBACnCC,EAAoC,qBAEpCC,EAA4B,mCAS5BC,EAAoB,iCAGb,IAAMC,EAAN,KAAuE,CAC5E,YAC+CC,EAC7C,CAD6C,YAAAA,CAC5C,CAEH,MAAM,aAAa,CACjB,QAAAC,EACA,QAAAC,EACA,SAAAC,CACF,EAAgE,CAC9D,GAAI,CACF,MAAMC,EAAY,MAAM,EAAAC,QAAM,QAAmB,CAC/C,OAAQ,MACR,IAAK,GAAG,KAAK,OAAO,IAAI,GAAG,SAC3B,OAAQ,CACN,OAAQ,0BACR,SAAUJ,EACV,UAAWC,CACb,EACA,QAAS,CACP,0BAA2B,kBAAkB,EAAAI,QAAQ,OAAO,EAC9D,CACF,CAAC,EAED,GAAI,CAACF,EAAU,KAAK,CAAC,EACnB,SAAO,SAAM,MAAS,EAIxBF,EAAUA,EAAQ,YAAY,EAC9BC,EAAW,KAAKA,EAAS,MAAM,CAAC,EAAE,YAAY,CAAC,GAE/C,KAAM,CAAE,gBAAAI,EAAiB,OAAAC,EAAQ,OAAAC,CAAO,EACtCL,EAAU,KAAK,CAAC,EAAE,KAAK,WAAW,KAAMM,GAAMA,EAAE,UAAYR,CAAO,GAC/D,YAAYC,CAAQ,GAAK,CAAC,EAC1B,CAAE,UAAAQ,EAAW,gBAAiBC,CAAe,EACjDR,EAAU,KAAK,CAAC,EAAE,iBAAiBF,CAAO,IAAIC,CAAQ,GAAK,CAAC,EAE9D,GACE,CAACI,GACD,CAACC,GACD,CAACC,GACD,CAACE,GACD,CAACC,EAED,SAAO,SAAM,MAAS,EAGxB,MAAMC,EAAMT,EAAU,KAAK,CAAC,EAAE,OAAOF,CAAO,EAE5C,OAAKW,KAYE,SAAM,CAAE,gBAR0B,CACvC,OAAAL,EACA,OAAAC,EACA,gBAAAF,EACA,UAAAI,EACA,eAAAC,CACF,EAEgC,IAAAC,CAAI,CAAC,KAX5B,SAAM,MAAS,CAY1B,MAAiB,CACf,SAAO,QACL,IAAI,MACF,yEACF,CACF,CACF,CACF,CACF,EAvEad,EAANe,EAAA,IADN,cAAW,EAGPC,EAAA,eAAO,cAAY,MAAM,IAFjBhB",
6
- "names": ["HttpExternalPluginDataSource_exports", "__export", "HttpExternalPluginDataSource", "__toCommonJS", "import_axios", "import_inversify", "import_purify_ts", "import_configTypes", "import_package", "HttpExternalPluginDataSource", "config", "chainId", "address", "selector", "dappInfos", "axios", "PACKAGE", "erc20OfInterest", "method", "plugin", "c", "signature", "serializedData", "abi", "__decorateClass", "__decorateParam"]
4
+ "sourcesContent": ["import axios from \"axios\";\nimport { inject, injectable } from \"inversify\";\nimport { Either, Left, Right } from \"purify-ts\";\n\nimport { configTypes } from \"@/config/di/configTypes\";\nimport type { ContextModuleConfig } from \"@/config/model/ContextModuleConfig\";\nimport { DAppDto } from \"@/external-plugin/data/DAppDto\";\nimport {\n ExternalPluginDataSource,\n GetDappInfos,\n} from \"@/external-plugin/data/ExternalPluginDataSource\";\nimport { DappInfos } from \"@/external-plugin/model/DappInfos\";\nimport { SelectorDetails } from \"@/external-plugin/model/SelectorDetails\";\nimport { LEDGER_CLIENT_VERSION_HEADER } from \"@/shared/constant/HttpHeaders\";\nimport PACKAGE from \"@root/package.json\";\n\n@injectable()\nexport class HttpExternalPluginDataSource implements ExternalPluginDataSource {\n constructor(\n @inject(configTypes.Config) private readonly config: ContextModuleConfig,\n ) {}\n\n async getDappInfos({\n chainId,\n address,\n selector,\n }: GetDappInfos): Promise<Either<Error, DappInfos | undefined>> {\n try {\n const dappInfos = await axios.request<DAppDto[]>({\n method: \"GET\",\n url: `${this.config.cal.url}/dapps`,\n params: {\n output: \"b2c,b2c_signatures,abis\",\n chain_id: chainId,\n contracts: address,\n },\n headers: {\n [LEDGER_CLIENT_VERSION_HEADER]: `context-module/${PACKAGE.version}`,\n },\n });\n\n if (!dappInfos.data[0]) {\n return Right(undefined);\n }\n\n // Normalize the address and selector\n address = address.toLowerCase();\n selector = `0x${selector.slice(2).toLowerCase()}`;\n\n const { erc20OfInterest, method, plugin } =\n dappInfos.data[0].b2c?.contracts?.find((c) => c.address === address)\n ?.selectors?.[selector] || {};\n const { signature, serialized_data: serializedData } =\n dappInfos.data[0].b2c_signatures?.[address]?.[selector] || {};\n\n if (\n !erc20OfInterest ||\n !method ||\n !plugin ||\n !signature ||\n !serializedData\n ) {\n return Right(undefined);\n }\n\n const abi = dappInfos.data[0].abis?.[address];\n\n if (!abi) {\n return Right(undefined);\n }\n\n const selectorDetails: SelectorDetails = {\n method,\n plugin,\n erc20OfInterest,\n signature,\n serializedData,\n };\n\n return Right({ selectorDetails, abi });\n } catch (_error) {\n return Left(\n new Error(\n \"[ContextModule] HttpExternalPluginDataSource: Error fetching dapp infos\",\n ),\n );\n }\n }\n}\n"],
5
+ "mappings": "qtBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,kCAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAkB,oBAClBC,EAAmC,qBACnCC,EAAoC,qBAEpCC,EAA4B,mCAS5BC,EAA6C,yCAC7CC,EAAoB,iCAGb,IAAMC,EAAN,KAAuE,CAC5E,YAC+CC,EAC7C,CAD6C,YAAAA,CAC5C,CAEH,MAAM,aAAa,CACjB,QAAAC,EACA,QAAAC,EACA,SAAAC,CACF,EAAgE,CAC9D,GAAI,CACF,MAAMC,EAAY,MAAM,EAAAC,QAAM,QAAmB,CAC/C,OAAQ,MACR,IAAK,GAAG,KAAK,OAAO,IAAI,GAAG,SAC3B,OAAQ,CACN,OAAQ,0BACR,SAAUJ,EACV,UAAWC,CACb,EACA,QAAS,CACP,CAAC,8BAA4B,EAAG,kBAAkB,EAAAI,QAAQ,OAAO,EACnE,CACF,CAAC,EAED,GAAI,CAACF,EAAU,KAAK,CAAC,EACnB,SAAO,SAAM,MAAS,EAIxBF,EAAUA,EAAQ,YAAY,EAC9BC,EAAW,KAAKA,EAAS,MAAM,CAAC,EAAE,YAAY,CAAC,GAE/C,KAAM,CAAE,gBAAAI,EAAiB,OAAAC,EAAQ,OAAAC,CAAO,EACtCL,EAAU,KAAK,CAAC,EAAE,KAAK,WAAW,KAAMM,GAAMA,EAAE,UAAYR,CAAO,GAC/D,YAAYC,CAAQ,GAAK,CAAC,EAC1B,CAAE,UAAAQ,EAAW,gBAAiBC,CAAe,EACjDR,EAAU,KAAK,CAAC,EAAE,iBAAiBF,CAAO,IAAIC,CAAQ,GAAK,CAAC,EAE9D,GACE,CAACI,GACD,CAACC,GACD,CAACC,GACD,CAACE,GACD,CAACC,EAED,SAAO,SAAM,MAAS,EAGxB,MAAMC,EAAMT,EAAU,KAAK,CAAC,EAAE,OAAOF,CAAO,EAE5C,OAAKW,KAYE,SAAM,CAAE,gBAR0B,CACvC,OAAAL,EACA,OAAAC,EACA,gBAAAF,EACA,UAAAI,EACA,eAAAC,CACF,EAEgC,IAAAC,CAAI,CAAC,KAX5B,SAAM,MAAS,CAY1B,MAAiB,CACf,SAAO,QACL,IAAI,MACF,yEACF,CACF,CACF,CACF,CACF,EAvEad,EAANe,EAAA,IADN,cAAW,EAGPC,EAAA,eAAO,cAAY,MAAM,IAFjBhB",
6
+ "names": ["HttpExternalPluginDataSource_exports", "__export", "HttpExternalPluginDataSource", "__toCommonJS", "import_axios", "import_inversify", "import_purify_ts", "import_configTypes", "import_HttpHeaders", "import_package", "HttpExternalPluginDataSource", "config", "chainId", "address", "selector", "dappInfos", "axios", "PACKAGE", "erc20OfInterest", "method", "plugin", "c", "signature", "serializedData", "abi", "__decorateClass", "__decorateParam"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var x=Object.create;var l=Object.defineProperty;var b=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var g=Object.getPrototypeOf,h=Object.prototype.hasOwnProperty;var I=(s,n,c,o)=>{if(n&&typeof n=="object"||typeof n=="function")for(let e of m(n))!h.call(s,e)&&e!==c&&l(s,e,{get:()=>n[e],enumerable:!(o=b(n,e))||o.enumerable});return s};var d=(s,n,c)=>(c=s!=null?x(g(s)):{},I(n||!s||!s.__esModule?l(c,"default",{value:s,enumerable:!0}):c,s));var a=d(require("axios")),u=d(require("@/external-plugin/__tests__/abi.json")),p=require("../../external-plugin/data/HttpExternalPluginDataSource"),f=d(require("../../../package.json"));vi.mock("axios");const r=s=>({data:s});describe("HttpExternalPuginDataSource",()=>{let s;const n={blockchainName:"ethereum",chainId:1,contracts:[{address:"0x1ef",contractName:"otherName",selectors:{"0x01ee":{erc20OfInterest:["fromToken"],method:"swap",plugin:"plugin"}}},{address:"0x0abc",contractName:"name",selectors:{"0x01ff":{erc20OfInterest:["fromToken"],method:"swap",plugin:"plugin"}}}],name:"test"},c={"0x1ef":u.default,"0x0abc":u.default},o={"0x1ef":{"0x01ee":{plugin:"plugin",serialized_data:"0x001",signature:"0x002"}},"0x0abc":{"0x01ff":{plugin:"plugin",serialized_data:"0x001",signature:"0x002"}}};beforeAll(()=>{const e={cal:{url:"https://crypto-assets-service.api.ledger.com/v1"}};s=new p.HttpExternalPluginDataSource(e),vi.clearAllMocks()}),it("should call axios with the ledger client version header",async()=>{const e=`context-module/${f.default.version}`,t=vi.fn(()=>Promise.resolve({data:[]}));vi.spyOn(a.default,"request").mockImplementation(t),await s.getDappInfos({chainId:1,address:"0x0abc",selector:"0x01ff"}),expect(t).toHaveBeenCalledWith(expect.objectContaining({headers:{"X-Ledger-Client-Version":e}}))}),it("should return undefined when no abis is undefined",async()=>{const e=r([{b2c:n,b2c_signatures:o}]);vi.spyOn(a.default,"request").mockResolvedValue(e);const t=await s.getDappInfos({chainId:1,address:"0x0abc",selector:"0x01ff"});expect(t.extract()).toEqual(void 0)}),it("should return undefined when no selectors",async()=>{const e=r([{abis:c,b2c_signatures:o}]);vi.spyOn(a.default,"request").mockResolvedValue(e);const t=await s.getDappInfos({chainId:1,address:"0x0abc",selector:"0x01ff"});expect(t.extract()).toEqual(void 0)}),it("should return undefined when no abis data",async()=>{const e=r([{abis:{},b2c:n,b2c_signatures:o}]);vi.spyOn(a.default,"request").mockResolvedValue(e);const t=await s.getDappInfos({chainId:1,address:"0x0abc",selector:"0x01ff"});expect(t.extract()).toEqual(void 0)}),it("should return undefined when no abis data",async()=>{const e=r([{abis:{},b2c:n,b2c_signatures:o}]);vi.spyOn(a.default,"request").mockResolvedValue(e);const t=await s.getDappInfos({chainId:1,address:"0x0abc",selector:"0x01ff"});expect(t.extract()).toEqual(void 0)}),it("should return undefined when no abis data for the contract address",async()=>{const t=r([{abis:{"0x1":u.default},b2c:n,b2c_signatures:o}]);vi.spyOn(a.default,"request").mockResolvedValue(t);const i=await s.getDappInfos({chainId:1,address:"0x0abc",selector:"0x01ff"});expect(i.extract()).toEqual(void 0)}),it("should return undefined when no b2c signature",async()=>{const e=r([{b2c:n,abis:c}]);vi.spyOn(a.default,"request").mockResolvedValue(e);const t=await s.getDappInfos({chainId:1,address:"0x0abc",selector:"0x01ff"});expect(t.extract()).toEqual(void 0)}),it("should return undefined when no ecc20OfInterest",async()=>{const t=r([{b2c:{blockchainName:"ethereum",chainId:1,contracts:[{address:"0x0abc",contractName:"name",selectors:{"0x01ff":{method:"swap",plugin:"plugin"}}}],name:"test"},abis:c,b2c_signatures:o}]);vi.spyOn(a.default,"request").mockResolvedValue(t);const i=await s.getDappInfos({chainId:1,address:"0x0abc",selector:"0x01ff"});expect(i.extract()).toEqual(void 0)}),it("should return undefined when no method",async()=>{const t=r([{b2c:{blockchainName:"ethereum",chainId:1,contracts:[{address:"0x0abc",contractName:"name",selectors:{"0x01ff":{erc20OfInterest:["fromToken"],plugin:"plugin"}}}],name:"test"},abis:c,b2c_signatures:o}]);vi.spyOn(a.default,"request").mockResolvedValue(t);const i=await s.getDappInfos({chainId:1,address:"0x0abc",selector:"0x01ff"});expect(i.extract()).toEqual(void 0)}),it("should return undefined when no plugin",async()=>{const t=r([{b2c:{blockchainName:"ethereum",chainId:1,contracts:[{address:"0x0abc",contractName:"name",selectors:{"0x01ff":{erc20OfInterest:["fromToken"],method:"swap"}}}],name:"test"},abis:c,b2c_signatures:o}]);vi.spyOn(a.default,"request").mockResolvedValue(t);const i=await s.getDappInfos({chainId:1,address:"0x0abc",selector:"0x01ff"});expect(i.extract()).toEqual(void 0)}),it("should return undefined when no method",async()=>{const t=r([{b2c:{blockchainName:"ethereum",chainId:1,contracts:[{address:"0x0abc",contractName:"name",selectors:{"0x01ff":{erc20OfInterest:["fromToken"],plugin:"plugin"}}}],name:"test"},abis:c,b2c_signatures:o}]);vi.spyOn(a.default,"request").mockResolvedValue(t);const i=await s.getDappInfos({chainId:1,address:"0x0abc",selector:"0x01ff"});expect(i.extract()).toEqual(void 0)}),it("should return undefined when no signature",async()=>{const t=r([{b2c:n,abis:c,b2c_signatures:{"0x0abc":{"0x01ff":{plugin:"plugin",serialized_data:"0x001"}}}}]);vi.spyOn(a.default,"request").mockResolvedValue(t);const i=await s.getDappInfos({chainId:1,address:"0x0abc",selector:"0x01ff"});expect(i.extract()).toEqual(void 0)}),it("should return undefined when no serialized data",async()=>{const t=r([{b2c:n,abis:c,b2c_signatures:{"0x0abc":{"0x01ff":{plugin:"plugin",signature:"0x002"}}}}]);vi.spyOn(a.default,"request").mockResolvedValue(t);const i=await s.getDappInfos({chainId:1,address:"0x0abc",selector:"0x01ff"});expect(i.extract()).toEqual(void 0)}),it("should return a correct response",async()=>{const e=r([{b2c:n,abis:c,b2c_signatures:o}]);vi.spyOn(a.default,"request").mockResolvedValue(e);const t=await s.getDappInfos({chainId:1,address:"0x0abc",selector:"0x01ff"});expect(t.extract()).toEqual({abi:u.default,selectorDetails:{erc20OfInterest:["fromToken"],method:"swap",plugin:"plugin",serializedData:"0x001",signature:"0x002"}})}),it("should normalize the address and selector",async()=>{const e=r([{b2c:n,abis:c,b2c_signatures:o}]);vi.spyOn(a.default,"request").mockResolvedValue(e);const t=await s.getDappInfos({chainId:1,address:"0x0AbC",selector:"0x01Ff"});expect(t.extract()).toEqual({abi:u.default,selectorDetails:{erc20OfInterest:["fromToken"],method:"swap",plugin:"plugin",serializedData:"0x001",signature:"0x002"}})}),it("should return an error when axios throws an error",async()=>{vi.spyOn(a.default,"request").mockRejectedValue(new Error("error"));const e=await s.getDappInfos({chainId:1,address:"0x0abc",selector:"0x01ff"});expect(e.extract()).toEqual(new Error("[ContextModule] HttpExternalPluginDataSource: Error fetching dapp infos"))})});
1
+ "use strict";var b=Object.create;var l=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var h=Object.getPrototypeOf,I=Object.prototype.hasOwnProperty;var w=(t,n,c,o)=>{if(n&&typeof n=="object"||typeof n=="function")for(let e of g(n))!I.call(t,e)&&e!==c&&l(t,e,{get:()=>n[e],enumerable:!(o=m(n,e))||o.enumerable});return t};var d=(t,n,c)=>(c=t!=null?b(h(t)):{},w(n||!t||!t.__esModule?l(c,"default",{value:t,enumerable:!0}):c,t));var a=d(require("axios")),u=d(require("@/external-plugin/__tests__/abi.json")),p=require("../../external-plugin/data/HttpExternalPluginDataSource"),f=require("../../shared/constant/HttpHeaders"),x=d(require("../../../package.json"));vi.mock("axios");const r=t=>({data:t});describe("HttpExternalPuginDataSource",()=>{let t;const n={blockchainName:"ethereum",chainId:1,contracts:[{address:"0x1ef",contractName:"otherName",selectors:{"0x01ee":{erc20OfInterest:["fromToken"],method:"swap",plugin:"plugin"}}},{address:"0x0abc",contractName:"name",selectors:{"0x01ff":{erc20OfInterest:["fromToken"],method:"swap",plugin:"plugin"}}}],name:"test"},c={"0x1ef":u.default,"0x0abc":u.default},o={"0x1ef":{"0x01ee":{plugin:"plugin",serialized_data:"0x001",signature:"0x002"}},"0x0abc":{"0x01ff":{plugin:"plugin",serialized_data:"0x001",signature:"0x002"}}};beforeAll(()=>{const e={cal:{url:"https://crypto-assets-service.api.ledger.com/v1"}};t=new p.HttpExternalPluginDataSource(e),vi.clearAllMocks()}),it("should call axios with the ledger client version header",async()=>{const e=`context-module/${x.default.version}`,s=vi.fn(()=>Promise.resolve({data:[]}));vi.spyOn(a.default,"request").mockImplementation(s),await t.getDappInfos({chainId:1,address:"0x0abc",selector:"0x01ff"}),expect(s).toHaveBeenCalledWith(expect.objectContaining({headers:{[f.LEDGER_CLIENT_VERSION_HEADER]:e}}))}),it("should return undefined when no abis is undefined",async()=>{const e=r([{b2c:n,b2c_signatures:o}]);vi.spyOn(a.default,"request").mockResolvedValue(e);const s=await t.getDappInfos({chainId:1,address:"0x0abc",selector:"0x01ff"});expect(s.extract()).toEqual(void 0)}),it("should return undefined when no selectors",async()=>{const e=r([{abis:c,b2c_signatures:o}]);vi.spyOn(a.default,"request").mockResolvedValue(e);const s=await t.getDappInfos({chainId:1,address:"0x0abc",selector:"0x01ff"});expect(s.extract()).toEqual(void 0)}),it("should return undefined when no abis data",async()=>{const e=r([{abis:{},b2c:n,b2c_signatures:o}]);vi.spyOn(a.default,"request").mockResolvedValue(e);const s=await t.getDappInfos({chainId:1,address:"0x0abc",selector:"0x01ff"});expect(s.extract()).toEqual(void 0)}),it("should return undefined when no abis data",async()=>{const e=r([{abis:{},b2c:n,b2c_signatures:o}]);vi.spyOn(a.default,"request").mockResolvedValue(e);const s=await t.getDappInfos({chainId:1,address:"0x0abc",selector:"0x01ff"});expect(s.extract()).toEqual(void 0)}),it("should return undefined when no abis data for the contract address",async()=>{const s=r([{abis:{"0x1":u.default},b2c:n,b2c_signatures:o}]);vi.spyOn(a.default,"request").mockResolvedValue(s);const i=await t.getDappInfos({chainId:1,address:"0x0abc",selector:"0x01ff"});expect(i.extract()).toEqual(void 0)}),it("should return undefined when no b2c signature",async()=>{const e=r([{b2c:n,abis:c}]);vi.spyOn(a.default,"request").mockResolvedValue(e);const s=await t.getDappInfos({chainId:1,address:"0x0abc",selector:"0x01ff"});expect(s.extract()).toEqual(void 0)}),it("should return undefined when no ecc20OfInterest",async()=>{const s=r([{b2c:{blockchainName:"ethereum",chainId:1,contracts:[{address:"0x0abc",contractName:"name",selectors:{"0x01ff":{method:"swap",plugin:"plugin"}}}],name:"test"},abis:c,b2c_signatures:o}]);vi.spyOn(a.default,"request").mockResolvedValue(s);const i=await t.getDappInfos({chainId:1,address:"0x0abc",selector:"0x01ff"});expect(i.extract()).toEqual(void 0)}),it("should return undefined when no method",async()=>{const s=r([{b2c:{blockchainName:"ethereum",chainId:1,contracts:[{address:"0x0abc",contractName:"name",selectors:{"0x01ff":{erc20OfInterest:["fromToken"],plugin:"plugin"}}}],name:"test"},abis:c,b2c_signatures:o}]);vi.spyOn(a.default,"request").mockResolvedValue(s);const i=await t.getDappInfos({chainId:1,address:"0x0abc",selector:"0x01ff"});expect(i.extract()).toEqual(void 0)}),it("should return undefined when no plugin",async()=>{const s=r([{b2c:{blockchainName:"ethereum",chainId:1,contracts:[{address:"0x0abc",contractName:"name",selectors:{"0x01ff":{erc20OfInterest:["fromToken"],method:"swap"}}}],name:"test"},abis:c,b2c_signatures:o}]);vi.spyOn(a.default,"request").mockResolvedValue(s);const i=await t.getDappInfos({chainId:1,address:"0x0abc",selector:"0x01ff"});expect(i.extract()).toEqual(void 0)}),it("should return undefined when no method",async()=>{const s=r([{b2c:{blockchainName:"ethereum",chainId:1,contracts:[{address:"0x0abc",contractName:"name",selectors:{"0x01ff":{erc20OfInterest:["fromToken"],plugin:"plugin"}}}],name:"test"},abis:c,b2c_signatures:o}]);vi.spyOn(a.default,"request").mockResolvedValue(s);const i=await t.getDappInfos({chainId:1,address:"0x0abc",selector:"0x01ff"});expect(i.extract()).toEqual(void 0)}),it("should return undefined when no signature",async()=>{const s=r([{b2c:n,abis:c,b2c_signatures:{"0x0abc":{"0x01ff":{plugin:"plugin",serialized_data:"0x001"}}}}]);vi.spyOn(a.default,"request").mockResolvedValue(s);const i=await t.getDappInfos({chainId:1,address:"0x0abc",selector:"0x01ff"});expect(i.extract()).toEqual(void 0)}),it("should return undefined when no serialized data",async()=>{const s=r([{b2c:n,abis:c,b2c_signatures:{"0x0abc":{"0x01ff":{plugin:"plugin",signature:"0x002"}}}}]);vi.spyOn(a.default,"request").mockResolvedValue(s);const i=await t.getDappInfos({chainId:1,address:"0x0abc",selector:"0x01ff"});expect(i.extract()).toEqual(void 0)}),it("should return a correct response",async()=>{const e=r([{b2c:n,abis:c,b2c_signatures:o}]);vi.spyOn(a.default,"request").mockResolvedValue(e);const s=await t.getDappInfos({chainId:1,address:"0x0abc",selector:"0x01ff"});expect(s.extract()).toEqual({abi:u.default,selectorDetails:{erc20OfInterest:["fromToken"],method:"swap",plugin:"plugin",serializedData:"0x001",signature:"0x002"}})}),it("should normalize the address and selector",async()=>{const e=r([{b2c:n,abis:c,b2c_signatures:o}]);vi.spyOn(a.default,"request").mockResolvedValue(e);const s=await t.getDappInfos({chainId:1,address:"0x0AbC",selector:"0x01Ff"});expect(s.extract()).toEqual({abi:u.default,selectorDetails:{erc20OfInterest:["fromToken"],method:"swap",plugin:"plugin",serializedData:"0x001",signature:"0x002"}})}),it("should return an error when axios throws an error",async()=>{vi.spyOn(a.default,"request").mockRejectedValue(new Error("error"));const e=await t.getDappInfos({chainId:1,address:"0x0abc",selector:"0x01ff"});expect(e.extract()).toEqual(new Error("[ContextModule] HttpExternalPluginDataSource: Error fetching dapp infos"))})});
2
2
  //# sourceMappingURL=HttpExternalPluginDataSource.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/external-plugin/data/HttpExternalPluginDataSource.test.ts"],
4
- "sourcesContent": ["import axios from \"axios\";\n\nimport { type ContextModuleConfig } from \"@/config/model/ContextModuleConfig\";\nimport ABI from \"@/external-plugin/__tests__/abi.json\";\nimport {\n type Abis,\n type B2c,\n type B2cSignatures,\n type DAppDto,\n} from \"@/external-plugin/data/DAppDto\";\nimport { type ExternalPluginDataSource } from \"@/external-plugin/data/ExternalPluginDataSource\";\nimport { HttpExternalPluginDataSource } from \"@/external-plugin/data/HttpExternalPluginDataSource\";\nimport PACKAGE from \"@root/package.json\";\n\nvi.mock(\"axios\");\n\nconst axiosResponseBuilder = (dto: Partial<DAppDto>[]) => {\n return { data: dto };\n};\n\ndescribe(\"HttpExternalPuginDataSource\", () => {\n let datasource: ExternalPluginDataSource;\n const exampleB2c: B2c = {\n blockchainName: \"ethereum\",\n chainId: 1,\n contracts: [\n {\n address: \"0x1ef\",\n contractName: \"otherName\",\n selectors: {\n \"0x01ee\": {\n erc20OfInterest: [\"fromToken\"],\n method: \"swap\",\n plugin: \"plugin\",\n },\n },\n },\n {\n address: \"0x0abc\",\n contractName: \"name\",\n selectors: {\n \"0x01ff\": {\n erc20OfInterest: [\"fromToken\"],\n method: \"swap\",\n plugin: \"plugin\",\n },\n },\n },\n ],\n name: \"test\",\n };\n const exampleAbis: Abis = { \"0x1ef\": ABI, \"0x0abc\": ABI };\n const exampleB2cSignatures: B2cSignatures = {\n \"0x1ef\": {\n \"0x01ee\": {\n plugin: \"plugin\",\n serialized_data: \"0x001\",\n signature: \"0x002\",\n },\n },\n \"0x0abc\": {\n \"0x01ff\": {\n plugin: \"plugin\",\n serialized_data: \"0x001\",\n signature: \"0x002\",\n },\n },\n };\n\n beforeAll(() => {\n const config = {\n cal: {\n url: \"https://crypto-assets-service.api.ledger.com/v1\",\n },\n } as ContextModuleConfig;\n datasource = new HttpExternalPluginDataSource(config);\n vi.clearAllMocks();\n });\n\n it(\"should call axios with the ledger client version header\", async () => {\n // GIVEN\n const version = `context-module/${PACKAGE.version}`;\n const requestSpy = vi.fn(() => Promise.resolve({ data: [] }));\n vi.spyOn(axios, \"request\").mockImplementation(requestSpy);\n\n // WHEN\n await datasource.getDappInfos({\n chainId: 1,\n address: \"0x0abc\",\n selector: \"0x01ff\",\n });\n\n // THEN\n expect(requestSpy).toHaveBeenCalledWith(\n expect.objectContaining({\n headers: { \"X-Ledger-Client-Version\": version },\n }),\n );\n });\n\n it(\"should return undefined when no abis is undefined\", async () => {\n // GIVEN\n const response = axiosResponseBuilder([\n { b2c: exampleB2c, b2c_signatures: exampleB2cSignatures },\n ]);\n vi.spyOn(axios, \"request\").mockResolvedValue(response);\n\n // WHEN\n const result = await datasource.getDappInfos({\n chainId: 1,\n address: \"0x0abc\",\n selector: \"0x01ff\",\n });\n\n // THEN\n expect(result.extract()).toEqual(undefined);\n });\n\n it(\"should return undefined when no selectors\", async () => {\n // GIVEN\n const response = axiosResponseBuilder([\n { abis: exampleAbis, b2c_signatures: exampleB2cSignatures },\n ]);\n vi.spyOn(axios, \"request\").mockResolvedValue(response);\n\n // WHEN\n const result = await datasource.getDappInfos({\n chainId: 1,\n address: \"0x0abc\",\n selector: \"0x01ff\",\n });\n\n // THEN\n expect(result.extract()).toEqual(undefined);\n });\n\n it(\"should return undefined when no abis data\", async () => {\n // GIVEN\n const response = axiosResponseBuilder([\n { abis: {}, b2c: exampleB2c, b2c_signatures: exampleB2cSignatures },\n ]);\n vi.spyOn(axios, \"request\").mockResolvedValue(response);\n\n // WHEN\n const result = await datasource.getDappInfos({\n chainId: 1,\n address: \"0x0abc\",\n selector: \"0x01ff\",\n });\n\n // THEN\n expect(result.extract()).toEqual(undefined);\n });\n\n it(\"should return undefined when no abis data\", async () => {\n // GIVEN\n const response = axiosResponseBuilder([\n { abis: {}, b2c: exampleB2c, b2c_signatures: exampleB2cSignatures },\n ]);\n vi.spyOn(axios, \"request\").mockResolvedValue(response);\n\n // WHEN\n const result = await datasource.getDappInfos({\n chainId: 1,\n address: \"0x0abc\",\n selector: \"0x01ff\",\n });\n\n // THEN\n expect(result.extract()).toEqual(undefined);\n });\n\n it(\"should return undefined when no abis data for the contract address\", async () => {\n // GIVEN\n const abis: Abis = { \"0x1\": ABI };\n const response = axiosResponseBuilder([\n { abis, b2c: exampleB2c, b2c_signatures: exampleB2cSignatures },\n ]);\n vi.spyOn(axios, \"request\").mockResolvedValue(response);\n\n // WHEN\n const result = await datasource.getDappInfos({\n chainId: 1,\n address: \"0x0abc\",\n selector: \"0x01ff\",\n });\n\n // THEN\n expect(result.extract()).toEqual(undefined);\n });\n\n it(\"should return undefined when no b2c signature\", async () => {\n // GIVEN\n const response = axiosResponseBuilder([\n { b2c: exampleB2c, abis: exampleAbis },\n ]);\n vi.spyOn(axios, \"request\").mockResolvedValue(response);\n\n // WHEN\n const result = await datasource.getDappInfos({\n chainId: 1,\n address: \"0x0abc\",\n selector: \"0x01ff\",\n });\n\n // THEN\n expect(result.extract()).toEqual(undefined);\n });\n\n it(\"should return undefined when no ecc20OfInterest\", async () => {\n // GIVEN\n const b2c = {\n blockchainName: \"ethereum\",\n chainId: 1,\n contracts: [\n {\n address: \"0x0abc\",\n contractName: \"name\",\n selectors: {\n \"0x01ff\": { method: \"swap\", plugin: \"plugin\" },\n },\n },\n ],\n name: \"test\",\n } as unknown as B2c;\n const response = axiosResponseBuilder([\n { b2c, abis: exampleAbis, b2c_signatures: exampleB2cSignatures },\n ]);\n vi.spyOn(axios, \"request\").mockResolvedValue(response);\n\n // WHEN\n const result = await datasource.getDappInfos({\n chainId: 1,\n address: \"0x0abc\",\n selector: \"0x01ff\",\n });\n\n // THEN\n expect(result.extract()).toEqual(undefined);\n });\n\n it(\"should return undefined when no method\", async () => {\n // GIVEN\n const b2c = {\n blockchainName: \"ethereum\",\n chainId: 1,\n contracts: [\n {\n address: \"0x0abc\",\n contractName: \"name\",\n selectors: {\n \"0x01ff\": { erc20OfInterest: [\"fromToken\"], plugin: \"plugin\" },\n },\n },\n ],\n name: \"test\",\n } as unknown as B2c;\n const response = axiosResponseBuilder([\n { b2c, abis: exampleAbis, b2c_signatures: exampleB2cSignatures },\n ]);\n vi.spyOn(axios, \"request\").mockResolvedValue(response);\n\n // WHEN\n const result = await datasource.getDappInfos({\n chainId: 1,\n address: \"0x0abc\",\n selector: \"0x01ff\",\n });\n\n // THEN\n expect(result.extract()).toEqual(undefined);\n });\n\n it(\"should return undefined when no plugin\", async () => {\n // GIVEN\n const b2c = {\n blockchainName: \"ethereum\",\n chainId: 1,\n contracts: [\n {\n address: \"0x0abc\",\n contractName: \"name\",\n selectors: {\n \"0x01ff\": { erc20OfInterest: [\"fromToken\"], method: \"swap\" },\n },\n },\n ],\n name: \"test\",\n } as unknown as B2c;\n const response = axiosResponseBuilder([\n { b2c, abis: exampleAbis, b2c_signatures: exampleB2cSignatures },\n ]);\n vi.spyOn(axios, \"request\").mockResolvedValue(response);\n\n // WHEN\n const result = await datasource.getDappInfos({\n chainId: 1,\n address: \"0x0abc\",\n selector: \"0x01ff\",\n });\n\n // THEN\n expect(result.extract()).toEqual(undefined);\n });\n\n it(\"should return undefined when no method\", async () => {\n // GIVEN\n const b2c = {\n blockchainName: \"ethereum\",\n chainId: 1,\n contracts: [\n {\n address: \"0x0abc\",\n contractName: \"name\",\n selectors: {\n \"0x01ff\": { erc20OfInterest: [\"fromToken\"], plugin: \"plugin\" },\n },\n },\n ],\n name: \"test\",\n } as unknown as B2c;\n const response = axiosResponseBuilder([\n { b2c, abis: exampleAbis, b2c_signatures: exampleB2cSignatures },\n ]);\n vi.spyOn(axios, \"request\").mockResolvedValue(response);\n\n // WHEN\n const result = await datasource.getDappInfos({\n chainId: 1,\n address: \"0x0abc\",\n selector: \"0x01ff\",\n });\n\n // THEN\n expect(result.extract()).toEqual(undefined);\n });\n\n it(\"should return undefined when no signature\", async () => {\n // GIVEN\n const B2CSignature = {\n \"0x0abc\": { \"0x01ff\": { plugin: \"plugin\", serialized_data: \"0x001\" } },\n } as unknown as B2cSignatures;\n\n // FIXME\n const response = axiosResponseBuilder([\n { b2c: exampleB2c, abis: exampleAbis, b2c_signatures: B2CSignature },\n ]);\n vi.spyOn(axios, \"request\").mockResolvedValue(response);\n\n // WHEN\n const result = await datasource.getDappInfos({\n chainId: 1,\n address: \"0x0abc\",\n selector: \"0x01ff\",\n });\n\n // THEN\n expect(result.extract()).toEqual(undefined);\n });\n\n it(\"should return undefined when no serialized data\", async () => {\n // GIVEN\n const B2CSignature = {\n \"0x0abc\": { \"0x01ff\": { plugin: \"plugin\", signature: \"0x002\" } },\n } as unknown as B2cSignatures;\n\n // FIXME\n const response = axiosResponseBuilder([\n { b2c: exampleB2c, abis: exampleAbis, b2c_signatures: B2CSignature },\n ]);\n vi.spyOn(axios, \"request\").mockResolvedValue(response);\n\n // WHEN\n const result = await datasource.getDappInfos({\n chainId: 1,\n address: \"0x0abc\",\n selector: \"0x01ff\",\n });\n\n // THEN\n expect(result.extract()).toEqual(undefined);\n });\n\n it(\"should return a correct response\", async () => {\n // GIVEN\n const response = axiosResponseBuilder([\n {\n b2c: exampleB2c,\n abis: exampleAbis,\n b2c_signatures: exampleB2cSignatures,\n },\n ]);\n vi.spyOn(axios, \"request\").mockResolvedValue(response);\n\n // WHEN\n const result = await datasource.getDappInfos({\n chainId: 1,\n address: \"0x0abc\",\n selector: \"0x01ff\",\n });\n\n // THEN\n expect(result.extract()).toEqual({\n abi: ABI,\n selectorDetails: {\n erc20OfInterest: [\"fromToken\"],\n method: \"swap\",\n plugin: \"plugin\",\n serializedData: \"0x001\",\n signature: \"0x002\",\n },\n });\n });\n\n it(\"should normalize the address and selector\", async () => {\n // GIVEN\n const response = axiosResponseBuilder([\n {\n b2c: exampleB2c,\n abis: exampleAbis,\n b2c_signatures: exampleB2cSignatures,\n },\n ]);\n vi.spyOn(axios, \"request\").mockResolvedValue(response);\n\n // WHEN\n const result = await datasource.getDappInfos({\n chainId: 1,\n address: \"0x0AbC\",\n selector: \"0x01Ff\",\n });\n\n // THEN\n expect(result.extract()).toEqual({\n abi: ABI,\n selectorDetails: {\n erc20OfInterest: [\"fromToken\"],\n method: \"swap\",\n plugin: \"plugin\",\n serializedData: \"0x001\",\n signature: \"0x002\",\n },\n });\n });\n\n it(\"should return an error when axios throws an error\", async () => {\n // GIVEN\n vi.spyOn(axios, \"request\").mockRejectedValue(new Error(\"error\"));\n\n // WHEN\n const result = await datasource.getDappInfos({\n chainId: 1,\n address: \"0x0abc\",\n selector: \"0x01ff\",\n });\n\n // THEN\n expect(result.extract()).toEqual(\n new Error(\n \"[ContextModule] HttpExternalPluginDataSource: Error fetching dapp infos\",\n ),\n );\n });\n});\n"],
5
- "mappings": "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",
6
- "names": ["import_axios", "import_abi", "import_HttpExternalPluginDataSource", "import_package", "axiosResponseBuilder", "dto", "datasource", "exampleB2c", "exampleAbis", "ABI", "exampleB2cSignatures", "config", "version", "PACKAGE", "requestSpy", "axios", "response", "result"]
4
+ "sourcesContent": ["import axios from \"axios\";\n\nimport { type ContextModuleConfig } from \"@/config/model/ContextModuleConfig\";\nimport ABI from \"@/external-plugin/__tests__/abi.json\";\nimport {\n type Abis,\n type B2c,\n type B2cSignatures,\n type DAppDto,\n} from \"@/external-plugin/data/DAppDto\";\nimport { type ExternalPluginDataSource } from \"@/external-plugin/data/ExternalPluginDataSource\";\nimport { HttpExternalPluginDataSource } from \"@/external-plugin/data/HttpExternalPluginDataSource\";\nimport { LEDGER_CLIENT_VERSION_HEADER } from \"@/shared/constant/HttpHeaders\";\nimport PACKAGE from \"@root/package.json\";\n\nvi.mock(\"axios\");\n\nconst axiosResponseBuilder = (dto: Partial<DAppDto>[]) => {\n return { data: dto };\n};\n\ndescribe(\"HttpExternalPuginDataSource\", () => {\n let datasource: ExternalPluginDataSource;\n const exampleB2c: B2c = {\n blockchainName: \"ethereum\",\n chainId: 1,\n contracts: [\n {\n address: \"0x1ef\",\n contractName: \"otherName\",\n selectors: {\n \"0x01ee\": {\n erc20OfInterest: [\"fromToken\"],\n method: \"swap\",\n plugin: \"plugin\",\n },\n },\n },\n {\n address: \"0x0abc\",\n contractName: \"name\",\n selectors: {\n \"0x01ff\": {\n erc20OfInterest: [\"fromToken\"],\n method: \"swap\",\n plugin: \"plugin\",\n },\n },\n },\n ],\n name: \"test\",\n };\n const exampleAbis: Abis = { \"0x1ef\": ABI, \"0x0abc\": ABI };\n const exampleB2cSignatures: B2cSignatures = {\n \"0x1ef\": {\n \"0x01ee\": {\n plugin: \"plugin\",\n serialized_data: \"0x001\",\n signature: \"0x002\",\n },\n },\n \"0x0abc\": {\n \"0x01ff\": {\n plugin: \"plugin\",\n serialized_data: \"0x001\",\n signature: \"0x002\",\n },\n },\n };\n\n beforeAll(() => {\n const config = {\n cal: {\n url: \"https://crypto-assets-service.api.ledger.com/v1\",\n },\n } as ContextModuleConfig;\n datasource = new HttpExternalPluginDataSource(config);\n vi.clearAllMocks();\n });\n\n it(\"should call axios with the ledger client version header\", async () => {\n // GIVEN\n const version = `context-module/${PACKAGE.version}`;\n const requestSpy = vi.fn(() => Promise.resolve({ data: [] }));\n vi.spyOn(axios, \"request\").mockImplementation(requestSpy);\n\n // WHEN\n await datasource.getDappInfos({\n chainId: 1,\n address: \"0x0abc\",\n selector: \"0x01ff\",\n });\n\n // THEN\n expect(requestSpy).toHaveBeenCalledWith(\n expect.objectContaining({\n headers: { [LEDGER_CLIENT_VERSION_HEADER]: version },\n }),\n );\n });\n\n it(\"should return undefined when no abis is undefined\", async () => {\n // GIVEN\n const response = axiosResponseBuilder([\n { b2c: exampleB2c, b2c_signatures: exampleB2cSignatures },\n ]);\n vi.spyOn(axios, \"request\").mockResolvedValue(response);\n\n // WHEN\n const result = await datasource.getDappInfos({\n chainId: 1,\n address: \"0x0abc\",\n selector: \"0x01ff\",\n });\n\n // THEN\n expect(result.extract()).toEqual(undefined);\n });\n\n it(\"should return undefined when no selectors\", async () => {\n // GIVEN\n const response = axiosResponseBuilder([\n { abis: exampleAbis, b2c_signatures: exampleB2cSignatures },\n ]);\n vi.spyOn(axios, \"request\").mockResolvedValue(response);\n\n // WHEN\n const result = await datasource.getDappInfos({\n chainId: 1,\n address: \"0x0abc\",\n selector: \"0x01ff\",\n });\n\n // THEN\n expect(result.extract()).toEqual(undefined);\n });\n\n it(\"should return undefined when no abis data\", async () => {\n // GIVEN\n const response = axiosResponseBuilder([\n { abis: {}, b2c: exampleB2c, b2c_signatures: exampleB2cSignatures },\n ]);\n vi.spyOn(axios, \"request\").mockResolvedValue(response);\n\n // WHEN\n const result = await datasource.getDappInfos({\n chainId: 1,\n address: \"0x0abc\",\n selector: \"0x01ff\",\n });\n\n // THEN\n expect(result.extract()).toEqual(undefined);\n });\n\n it(\"should return undefined when no abis data\", async () => {\n // GIVEN\n const response = axiosResponseBuilder([\n { abis: {}, b2c: exampleB2c, b2c_signatures: exampleB2cSignatures },\n ]);\n vi.spyOn(axios, \"request\").mockResolvedValue(response);\n\n // WHEN\n const result = await datasource.getDappInfos({\n chainId: 1,\n address: \"0x0abc\",\n selector: \"0x01ff\",\n });\n\n // THEN\n expect(result.extract()).toEqual(undefined);\n });\n\n it(\"should return undefined when no abis data for the contract address\", async () => {\n // GIVEN\n const abis: Abis = { \"0x1\": ABI };\n const response = axiosResponseBuilder([\n { abis, b2c: exampleB2c, b2c_signatures: exampleB2cSignatures },\n ]);\n vi.spyOn(axios, \"request\").mockResolvedValue(response);\n\n // WHEN\n const result = await datasource.getDappInfos({\n chainId: 1,\n address: \"0x0abc\",\n selector: \"0x01ff\",\n });\n\n // THEN\n expect(result.extract()).toEqual(undefined);\n });\n\n it(\"should return undefined when no b2c signature\", async () => {\n // GIVEN\n const response = axiosResponseBuilder([\n { b2c: exampleB2c, abis: exampleAbis },\n ]);\n vi.spyOn(axios, \"request\").mockResolvedValue(response);\n\n // WHEN\n const result = await datasource.getDappInfos({\n chainId: 1,\n address: \"0x0abc\",\n selector: \"0x01ff\",\n });\n\n // THEN\n expect(result.extract()).toEqual(undefined);\n });\n\n it(\"should return undefined when no ecc20OfInterest\", async () => {\n // GIVEN\n const b2c = {\n blockchainName: \"ethereum\",\n chainId: 1,\n contracts: [\n {\n address: \"0x0abc\",\n contractName: \"name\",\n selectors: {\n \"0x01ff\": { method: \"swap\", plugin: \"plugin\" },\n },\n },\n ],\n name: \"test\",\n } as unknown as B2c;\n const response = axiosResponseBuilder([\n { b2c, abis: exampleAbis, b2c_signatures: exampleB2cSignatures },\n ]);\n vi.spyOn(axios, \"request\").mockResolvedValue(response);\n\n // WHEN\n const result = await datasource.getDappInfos({\n chainId: 1,\n address: \"0x0abc\",\n selector: \"0x01ff\",\n });\n\n // THEN\n expect(result.extract()).toEqual(undefined);\n });\n\n it(\"should return undefined when no method\", async () => {\n // GIVEN\n const b2c = {\n blockchainName: \"ethereum\",\n chainId: 1,\n contracts: [\n {\n address: \"0x0abc\",\n contractName: \"name\",\n selectors: {\n \"0x01ff\": { erc20OfInterest: [\"fromToken\"], plugin: \"plugin\" },\n },\n },\n ],\n name: \"test\",\n } as unknown as B2c;\n const response = axiosResponseBuilder([\n { b2c, abis: exampleAbis, b2c_signatures: exampleB2cSignatures },\n ]);\n vi.spyOn(axios, \"request\").mockResolvedValue(response);\n\n // WHEN\n const result = await datasource.getDappInfos({\n chainId: 1,\n address: \"0x0abc\",\n selector: \"0x01ff\",\n });\n\n // THEN\n expect(result.extract()).toEqual(undefined);\n });\n\n it(\"should return undefined when no plugin\", async () => {\n // GIVEN\n const b2c = {\n blockchainName: \"ethereum\",\n chainId: 1,\n contracts: [\n {\n address: \"0x0abc\",\n contractName: \"name\",\n selectors: {\n \"0x01ff\": { erc20OfInterest: [\"fromToken\"], method: \"swap\" },\n },\n },\n ],\n name: \"test\",\n } as unknown as B2c;\n const response = axiosResponseBuilder([\n { b2c, abis: exampleAbis, b2c_signatures: exampleB2cSignatures },\n ]);\n vi.spyOn(axios, \"request\").mockResolvedValue(response);\n\n // WHEN\n const result = await datasource.getDappInfos({\n chainId: 1,\n address: \"0x0abc\",\n selector: \"0x01ff\",\n });\n\n // THEN\n expect(result.extract()).toEqual(undefined);\n });\n\n it(\"should return undefined when no method\", async () => {\n // GIVEN\n const b2c = {\n blockchainName: \"ethereum\",\n chainId: 1,\n contracts: [\n {\n address: \"0x0abc\",\n contractName: \"name\",\n selectors: {\n \"0x01ff\": { erc20OfInterest: [\"fromToken\"], plugin: \"plugin\" },\n },\n },\n ],\n name: \"test\",\n } as unknown as B2c;\n const response = axiosResponseBuilder([\n { b2c, abis: exampleAbis, b2c_signatures: exampleB2cSignatures },\n ]);\n vi.spyOn(axios, \"request\").mockResolvedValue(response);\n\n // WHEN\n const result = await datasource.getDappInfos({\n chainId: 1,\n address: \"0x0abc\",\n selector: \"0x01ff\",\n });\n\n // THEN\n expect(result.extract()).toEqual(undefined);\n });\n\n it(\"should return undefined when no signature\", async () => {\n // GIVEN\n const B2CSignature = {\n \"0x0abc\": { \"0x01ff\": { plugin: \"plugin\", serialized_data: \"0x001\" } },\n } as unknown as B2cSignatures;\n\n // FIXME\n const response = axiosResponseBuilder([\n { b2c: exampleB2c, abis: exampleAbis, b2c_signatures: B2CSignature },\n ]);\n vi.spyOn(axios, \"request\").mockResolvedValue(response);\n\n // WHEN\n const result = await datasource.getDappInfos({\n chainId: 1,\n address: \"0x0abc\",\n selector: \"0x01ff\",\n });\n\n // THEN\n expect(result.extract()).toEqual(undefined);\n });\n\n it(\"should return undefined when no serialized data\", async () => {\n // GIVEN\n const B2CSignature = {\n \"0x0abc\": { \"0x01ff\": { plugin: \"plugin\", signature: \"0x002\" } },\n } as unknown as B2cSignatures;\n\n // FIXME\n const response = axiosResponseBuilder([\n { b2c: exampleB2c, abis: exampleAbis, b2c_signatures: B2CSignature },\n ]);\n vi.spyOn(axios, \"request\").mockResolvedValue(response);\n\n // WHEN\n const result = await datasource.getDappInfos({\n chainId: 1,\n address: \"0x0abc\",\n selector: \"0x01ff\",\n });\n\n // THEN\n expect(result.extract()).toEqual(undefined);\n });\n\n it(\"should return a correct response\", async () => {\n // GIVEN\n const response = axiosResponseBuilder([\n {\n b2c: exampleB2c,\n abis: exampleAbis,\n b2c_signatures: exampleB2cSignatures,\n },\n ]);\n vi.spyOn(axios, \"request\").mockResolvedValue(response);\n\n // WHEN\n const result = await datasource.getDappInfos({\n chainId: 1,\n address: \"0x0abc\",\n selector: \"0x01ff\",\n });\n\n // THEN\n expect(result.extract()).toEqual({\n abi: ABI,\n selectorDetails: {\n erc20OfInterest: [\"fromToken\"],\n method: \"swap\",\n plugin: \"plugin\",\n serializedData: \"0x001\",\n signature: \"0x002\",\n },\n });\n });\n\n it(\"should normalize the address and selector\", async () => {\n // GIVEN\n const response = axiosResponseBuilder([\n {\n b2c: exampleB2c,\n abis: exampleAbis,\n b2c_signatures: exampleB2cSignatures,\n },\n ]);\n vi.spyOn(axios, \"request\").mockResolvedValue(response);\n\n // WHEN\n const result = await datasource.getDappInfos({\n chainId: 1,\n address: \"0x0AbC\",\n selector: \"0x01Ff\",\n });\n\n // THEN\n expect(result.extract()).toEqual({\n abi: ABI,\n selectorDetails: {\n erc20OfInterest: [\"fromToken\"],\n method: \"swap\",\n plugin: \"plugin\",\n serializedData: \"0x001\",\n signature: \"0x002\",\n },\n });\n });\n\n it(\"should return an error when axios throws an error\", async () => {\n // GIVEN\n vi.spyOn(axios, \"request\").mockRejectedValue(new Error(\"error\"));\n\n // WHEN\n const result = await datasource.getDappInfos({\n chainId: 1,\n address: \"0x0abc\",\n selector: \"0x01ff\",\n });\n\n // THEN\n expect(result.extract()).toEqual(\n new Error(\n \"[ContextModule] HttpExternalPluginDataSource: Error fetching dapp infos\",\n ),\n );\n });\n});\n"],
5
+ "mappings": "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",
6
+ "names": ["import_axios", "import_abi", "import_HttpExternalPluginDataSource", "import_HttpHeaders", "import_package", "axiosResponseBuilder", "dto", "datasource", "exampleB2c", "exampleAbis", "ABI", "exampleB2cSignatures", "config", "version", "PACKAGE", "requestSpy", "axios", "response", "result"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var y=Object.create;var i=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var P=Object.getOwnPropertyNames;var E=Object.getPrototypeOf,x=Object.prototype.hasOwnProperty;var C=(e,t)=>{for(var o in t)i(e,o,{get:t[o],enumerable:!0})},u=(e,t,o,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of P(t))!x.call(e,r)&&r!==o&&i(e,r,{get:()=>t[r],enumerable:!(a=c(t,r))||a.enumerable});return e};var f=(e,t,o)=>(o=e!=null?y(E(e)):{},u(t||!e||!e.__esModule?i(o,"default",{value:e,enumerable:!0}):o,e)),G=e=>u(i({},"__esModule",{value:!0}),e),g=(e,t,o,a)=>{for(var r=a>1?void 0:a?c(t,o):t,l=e.length-1,d;l>=0;l--)(d=e[l])&&(r=(a?d(t,o,r):d(r))||r);return a&&r&&i(t,o,r),r};var $={};C($,{HttpNftDataSource:()=>s});module.exports=G($);var m=f(require("axios")),h=require("inversify"),n=require("purify-ts"),p=f(require("../../../package.json"));let s=class{async getSetPluginPayload({chainId:t,address:o,selector:a}){try{const r=await m.default.request({method:"GET",url:`https://nft.api.live.ledger.com/v1/ethereum/${t}/contracts/${o}/plugin-selector/${a}`,headers:{"X-Ledger-Client-Version":`context-module/${p.default.version}`}});return r.data.payload?(0,n.Right)(r.data.payload):(0,n.Left)(new Error("[ContextModule] HttpNftDataSource: unexpected empty response"))}catch{return(0,n.Left)(new Error("[ContextModule] HttpNftDataSource: Failed to fetch set plugin payload"))}}async getNftInfosPayload({chainId:t,address:o}){try{const a=await m.default.request({method:"GET",url:`https://nft.api.live.ledger.com/v1/ethereum/${t}/contracts/${o}`,headers:{"X-Ledger-Client-Version":`context-module/${p.default.version}`}});return a.data.payload?(0,n.Right)(a.data.payload):(0,n.Left)(new Error("[ContextModule] HttpNftDataSource: no nft metadata"))}catch{return(0,n.Left)(new Error("[ContextModule] HttpNftDataSource: Failed to fetch nft informations"))}}};s=g([(0,h.injectable)()],s);0&&(module.exports={HttpNftDataSource});
1
+ "use strict";var g=Object.create;var i=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var P=Object.getOwnPropertyNames;var x=Object.getPrototypeOf,G=Object.prototype.hasOwnProperty;var N=(e,t)=>{for(var o in t)i(e,o,{get:t[o],enumerable:!0})},f=(e,t,o,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of P(t))!G.call(e,r)&&r!==o&&i(e,r,{get:()=>t[r],enumerable:!(a=u(t,r))||a.enumerable});return e};var E=(e,t,o)=>(o=e!=null?g(x(e)):{},f(t||!e||!e.__esModule?i(o,"default",{value:e,enumerable:!0}):o,e)),S=e=>f(i({},"__esModule",{value:!0}),e),h=(e,t,o,a)=>{for(var r=a>1?void 0:a?u(t,o):t,l=e.length-1,m;l>=0;l--)(m=e[l])&&(r=(a?m(t,o,r):m(r))||r);return a&&r&&i(t,o,r),r};var $={};N($,{HttpNftDataSource:()=>s});module.exports=S($);var d=E(require("axios")),y=require("inversify"),n=require("purify-ts"),p=require("../../shared/constant/HttpHeaders"),c=E(require("../../../package.json"));let s=class{async getSetPluginPayload({chainId:t,address:o,selector:a}){try{const r=await d.default.request({method:"GET",url:`https://nft.api.live.ledger.com/v1/ethereum/${t}/contracts/${o}/plugin-selector/${a}`,headers:{[p.LEDGER_CLIENT_VERSION_HEADER]:`context-module/${c.default.version}`}});return r.data.payload?(0,n.Right)(r.data.payload):(0,n.Left)(new Error("[ContextModule] HttpNftDataSource: unexpected empty response"))}catch{return(0,n.Left)(new Error("[ContextModule] HttpNftDataSource: Failed to fetch set plugin payload"))}}async getNftInfosPayload({chainId:t,address:o}){try{const a=await d.default.request({method:"GET",url:`https://nft.api.live.ledger.com/v1/ethereum/${t}/contracts/${o}`,headers:{[p.LEDGER_CLIENT_VERSION_HEADER]:`context-module/${c.default.version}`}});return a.data.payload?(0,n.Right)(a.data.payload):(0,n.Left)(new Error("[ContextModule] HttpNftDataSource: no nft metadata"))}catch{return(0,n.Left)(new Error("[ContextModule] HttpNftDataSource: Failed to fetch nft informations"))}}};s=h([(0,y.injectable)()],s);0&&(module.exports={HttpNftDataSource});
2
2
  //# sourceMappingURL=HttpNftDataSource.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/nft/data/HttpNftDataSource.ts"],
4
- "sourcesContent": ["import axios from \"axios\";\nimport { injectable } from \"inversify\";\nimport { Either, Left, Right } from \"purify-ts\";\n\nimport {\n GetNftInformationsParams,\n GetSetPluginPayloadParams,\n NftDataSource,\n} from \"@/nft/data/NftDataSource\";\nimport PACKAGE from \"@root/package.json\";\n\n@injectable()\nexport class HttpNftDataSource implements NftDataSource {\n public async getSetPluginPayload({\n chainId,\n address,\n selector,\n }: GetSetPluginPayloadParams): Promise<Either<Error, string>> {\n try {\n const response = await axios.request<{ payload: string }>({\n method: \"GET\",\n url: `https://nft.api.live.ledger.com/v1/ethereum/${chainId}/contracts/${address}/plugin-selector/${selector}`,\n headers: {\n \"X-Ledger-Client-Version\": `context-module/${PACKAGE.version}`,\n },\n });\n\n return response.data.payload\n ? Right(response.data.payload)\n : Left(\n new Error(\n \"[ContextModule] HttpNftDataSource: unexpected empty response\",\n ),\n );\n } catch (_error) {\n return Left(\n new Error(\n \"[ContextModule] HttpNftDataSource: Failed to fetch set plugin payload\",\n ),\n );\n }\n }\n\n public async getNftInfosPayload({\n chainId,\n address,\n }: GetNftInformationsParams): Promise<Either<Error, string>> {\n try {\n const response = await axios.request<{ payload: string }>({\n method: \"GET\",\n url: `https://nft.api.live.ledger.com/v1/ethereum/${chainId}/contracts/${address}`,\n headers: {\n \"X-Ledger-Client-Version\": `context-module/${PACKAGE.version}`,\n },\n });\n\n return response.data.payload\n ? Right(response.data.payload)\n : Left(new Error(\"[ContextModule] HttpNftDataSource: no nft metadata\"));\n } catch (_error) {\n return Left(\n new Error(\n \"[ContextModule] HttpNftDataSource: Failed to fetch nft informations\",\n ),\n );\n }\n }\n}\n"],
5
- "mappings": "4rBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,uBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAkB,oBAClBC,EAA2B,qBAC3BC,EAAoC,qBAOpCC,EAAoB,iCAGb,IAAMC,EAAN,KAAiD,CACtD,MAAa,oBAAoB,CAC/B,QAAAC,EACA,QAAAC,EACA,SAAAC,CACF,EAA8D,CAC5D,GAAI,CACF,MAAMC,EAAW,MAAM,EAAAC,QAAM,QAA6B,CACxD,OAAQ,MACR,IAAK,+CAA+CJ,CAAO,cAAcC,CAAO,oBAAoBC,CAAQ,GAC5G,QAAS,CACP,0BAA2B,kBAAkB,EAAAG,QAAQ,OAAO,EAC9D,CACF,CAAC,EAED,OAAOF,EAAS,KAAK,WACjB,SAAMA,EAAS,KAAK,OAAO,KAC3B,QACE,IAAI,MACF,8DACF,CACF,CACN,MAAiB,CACf,SAAO,QACL,IAAI,MACF,uEACF,CACF,CACF,CACF,CAEA,MAAa,mBAAmB,CAC9B,QAAAH,EACA,QAAAC,CACF,EAA6D,CAC3D,GAAI,CACF,MAAME,EAAW,MAAM,EAAAC,QAAM,QAA6B,CACxD,OAAQ,MACR,IAAK,+CAA+CJ,CAAO,cAAcC,CAAO,GAChF,QAAS,CACP,0BAA2B,kBAAkB,EAAAI,QAAQ,OAAO,EAC9D,CACF,CAAC,EAED,OAAOF,EAAS,KAAK,WACjB,SAAMA,EAAS,KAAK,OAAO,KAC3B,QAAK,IAAI,MAAM,oDAAoD,CAAC,CAC1E,MAAiB,CACf,SAAO,QACL,IAAI,MACF,qEACF,CACF,CACF,CACF,CACF,EAvDaJ,EAANO,EAAA,IADN,cAAW,GACCP",
6
- "names": ["HttpNftDataSource_exports", "__export", "HttpNftDataSource", "__toCommonJS", "import_axios", "import_inversify", "import_purify_ts", "import_package", "HttpNftDataSource", "chainId", "address", "selector", "response", "axios", "PACKAGE", "__decorateClass"]
4
+ "sourcesContent": ["import axios from \"axios\";\nimport { injectable } from \"inversify\";\nimport { Either, Left, Right } from \"purify-ts\";\n\nimport {\n GetNftInformationsParams,\n GetSetPluginPayloadParams,\n NftDataSource,\n} from \"@/nft/data/NftDataSource\";\nimport { LEDGER_CLIENT_VERSION_HEADER } from \"@/shared/constant/HttpHeaders\";\nimport PACKAGE from \"@root/package.json\";\n\n@injectable()\nexport class HttpNftDataSource implements NftDataSource {\n public async getSetPluginPayload({\n chainId,\n address,\n selector,\n }: GetSetPluginPayloadParams): Promise<Either<Error, string>> {\n try {\n const response = await axios.request<{ payload: string }>({\n method: \"GET\",\n url: `https://nft.api.live.ledger.com/v1/ethereum/${chainId}/contracts/${address}/plugin-selector/${selector}`,\n headers: {\n [LEDGER_CLIENT_VERSION_HEADER]: `context-module/${PACKAGE.version}`,\n },\n });\n\n return response.data.payload\n ? Right(response.data.payload)\n : Left(\n new Error(\n \"[ContextModule] HttpNftDataSource: unexpected empty response\",\n ),\n );\n } catch (_error) {\n return Left(\n new Error(\n \"[ContextModule] HttpNftDataSource: Failed to fetch set plugin payload\",\n ),\n );\n }\n }\n\n public async getNftInfosPayload({\n chainId,\n address,\n }: GetNftInformationsParams): Promise<Either<Error, string>> {\n try {\n const response = await axios.request<{ payload: string }>({\n method: \"GET\",\n url: `https://nft.api.live.ledger.com/v1/ethereum/${chainId}/contracts/${address}`,\n headers: {\n [LEDGER_CLIENT_VERSION_HEADER]: `context-module/${PACKAGE.version}`,\n },\n });\n\n return response.data.payload\n ? Right(response.data.payload)\n : Left(new Error(\"[ContextModule] HttpNftDataSource: no nft metadata\"));\n } catch (_error) {\n return Left(\n new Error(\n \"[ContextModule] HttpNftDataSource: Failed to fetch nft informations\",\n ),\n );\n }\n }\n}\n"],
5
+ "mappings": "4rBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,uBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAkB,oBAClBC,EAA2B,qBAC3BC,EAAoC,qBAOpCC,EAA6C,yCAC7CC,EAAoB,iCAGb,IAAMC,EAAN,KAAiD,CACtD,MAAa,oBAAoB,CAC/B,QAAAC,EACA,QAAAC,EACA,SAAAC,CACF,EAA8D,CAC5D,GAAI,CACF,MAAMC,EAAW,MAAM,EAAAC,QAAM,QAA6B,CACxD,OAAQ,MACR,IAAK,+CAA+CJ,CAAO,cAAcC,CAAO,oBAAoBC,CAAQ,GAC5G,QAAS,CACP,CAAC,8BAA4B,EAAG,kBAAkB,EAAAG,QAAQ,OAAO,EACnE,CACF,CAAC,EAED,OAAOF,EAAS,KAAK,WACjB,SAAMA,EAAS,KAAK,OAAO,KAC3B,QACE,IAAI,MACF,8DACF,CACF,CACN,MAAiB,CACf,SAAO,QACL,IAAI,MACF,uEACF,CACF,CACF,CACF,CAEA,MAAa,mBAAmB,CAC9B,QAAAH,EACA,QAAAC,CACF,EAA6D,CAC3D,GAAI,CACF,MAAME,EAAW,MAAM,EAAAC,QAAM,QAA6B,CACxD,OAAQ,MACR,IAAK,+CAA+CJ,CAAO,cAAcC,CAAO,GAChF,QAAS,CACP,CAAC,8BAA4B,EAAG,kBAAkB,EAAAI,QAAQ,OAAO,EACnE,CACF,CAAC,EAED,OAAOF,EAAS,KAAK,WACjB,SAAMA,EAAS,KAAK,OAAO,KAC3B,QAAK,IAAI,MAAM,oDAAoD,CAAC,CAC1E,MAAiB,CACf,SAAO,QACL,IAAI,MACF,qEACF,CACF,CACF,CACF,CACF,EAvDaJ,EAANO,EAAA,IADN,cAAW,GACCP",
6
+ "names": ["HttpNftDataSource_exports", "__export", "HttpNftDataSource", "__toCommonJS", "import_axios", "import_inversify", "import_purify_ts", "import_HttpHeaders", "import_package", "HttpNftDataSource", "chainId", "address", "selector", "response", "axios", "PACKAGE", "__decorateClass"]
7
7
  }