@metamask/core-backend 4.1.0 → 5.1.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 (165) hide show
  1. package/CHANGELOG.md +35 -6
  2. package/README.md +252 -1
  3. package/dist/AccountActivityService.cjs +1 -1
  4. package/dist/AccountActivityService.cjs.map +1 -1
  5. package/dist/AccountActivityService.mjs +1 -1
  6. package/dist/AccountActivityService.mjs.map +1 -1
  7. package/dist/BackendWebSocketService-method-action-types.cjs.map +1 -1
  8. package/dist/BackendWebSocketService-method-action-types.d.cts +106 -20
  9. package/dist/BackendWebSocketService-method-action-types.d.cts.map +1 -1
  10. package/dist/BackendWebSocketService-method-action-types.d.mts +106 -20
  11. package/dist/BackendWebSocketService-method-action-types.d.mts.map +1 -1
  12. package/dist/BackendWebSocketService-method-action-types.mjs.map +1 -1
  13. package/dist/BackendWebSocketService.cjs +5 -3
  14. package/dist/BackendWebSocketService.cjs.map +1 -1
  15. package/dist/BackendWebSocketService.d.cts +2 -2
  16. package/dist/BackendWebSocketService.d.cts.map +1 -1
  17. package/dist/BackendWebSocketService.d.mts +2 -2
  18. package/dist/BackendWebSocketService.d.mts.map +1 -1
  19. package/dist/BackendWebSocketService.mjs +5 -3
  20. package/dist/BackendWebSocketService.mjs.map +1 -1
  21. package/dist/api/ApiPlatformClient.cjs +177 -0
  22. package/dist/api/ApiPlatformClient.cjs.map +1 -0
  23. package/dist/api/ApiPlatformClient.d.cts +127 -0
  24. package/dist/api/ApiPlatformClient.d.cts.map +1 -0
  25. package/dist/api/ApiPlatformClient.d.mts +127 -0
  26. package/dist/api/ApiPlatformClient.d.mts.map +1 -0
  27. package/dist/api/ApiPlatformClient.mjs +172 -0
  28. package/dist/api/ApiPlatformClient.mjs.map +1 -0
  29. package/dist/api/accounts/client.cjs +492 -0
  30. package/dist/api/accounts/client.cjs.map +1 -0
  31. package/dist/api/accounts/client.d.cts +213 -0
  32. package/dist/api/accounts/client.d.cts.map +1 -0
  33. package/dist/api/accounts/client.d.mts +213 -0
  34. package/dist/api/accounts/client.d.mts.map +1 -0
  35. package/dist/api/accounts/client.mjs +488 -0
  36. package/dist/api/accounts/client.mjs.map +1 -0
  37. package/dist/api/accounts/index.cjs +9 -0
  38. package/dist/api/accounts/index.cjs.map +1 -0
  39. package/dist/api/accounts/index.d.cts +6 -0
  40. package/dist/api/accounts/index.d.cts.map +1 -0
  41. package/dist/api/accounts/index.d.mts +6 -0
  42. package/dist/api/accounts/index.d.mts.map +1 -0
  43. package/dist/api/accounts/index.mjs +5 -0
  44. package/dist/api/accounts/index.mjs.map +1 -0
  45. package/dist/api/accounts/types.cjs +7 -0
  46. package/dist/api/accounts/types.cjs.map +1 -0
  47. package/dist/api/accounts/types.d.cts +195 -0
  48. package/dist/api/accounts/types.d.cts.map +1 -0
  49. package/dist/api/accounts/types.d.mts +195 -0
  50. package/dist/api/accounts/types.d.mts.map +1 -0
  51. package/dist/api/accounts/types.mjs +6 -0
  52. package/dist/api/accounts/types.mjs.map +1 -0
  53. package/dist/api/base-client.cjs +149 -0
  54. package/dist/api/base-client.cjs.map +1 -0
  55. package/dist/api/base-client.d.cts +54 -0
  56. package/dist/api/base-client.d.cts.map +1 -0
  57. package/dist/api/base-client.d.mts +54 -0
  58. package/dist/api/base-client.d.mts.map +1 -0
  59. package/dist/api/base-client.mjs +143 -0
  60. package/dist/api/base-client.mjs.map +1 -0
  61. package/dist/api/index.cjs +35 -0
  62. package/dist/api/index.cjs.map +1 -0
  63. package/dist/api/index.d.cts +18 -0
  64. package/dist/api/index.d.cts.map +1 -0
  65. package/dist/api/index.d.mts +18 -0
  66. package/dist/api/index.d.mts.map +1 -0
  67. package/dist/api/index.mjs +18 -0
  68. package/dist/api/index.mjs.map +1 -0
  69. package/dist/api/prices/client.cjs +521 -0
  70. package/dist/api/prices/client.cjs.map +1 -0
  71. package/dist/api/prices/client.d.cts +235 -0
  72. package/dist/api/prices/client.d.cts.map +1 -0
  73. package/dist/api/prices/client.d.mts +235 -0
  74. package/dist/api/prices/client.d.mts.map +1 -0
  75. package/dist/api/prices/client.mjs +517 -0
  76. package/dist/api/prices/client.mjs.map +1 -0
  77. package/dist/api/prices/index.cjs +9 -0
  78. package/dist/api/prices/index.cjs.map +1 -0
  79. package/dist/api/prices/index.d.cts +6 -0
  80. package/dist/api/prices/index.d.cts.map +1 -0
  81. package/dist/api/prices/index.d.mts +6 -0
  82. package/dist/api/prices/index.d.mts.map +1 -0
  83. package/dist/api/prices/index.mjs +5 -0
  84. package/dist/api/prices/index.mjs.map +1 -0
  85. package/dist/api/prices/types.cjs +7 -0
  86. package/dist/api/prices/types.cjs.map +1 -0
  87. package/dist/api/prices/types.d.cts +61 -0
  88. package/dist/api/prices/types.d.cts.map +1 -0
  89. package/dist/api/prices/types.d.mts +61 -0
  90. package/dist/api/prices/types.d.mts.map +1 -0
  91. package/dist/api/prices/types.mjs +6 -0
  92. package/dist/api/prices/types.mjs.map +1 -0
  93. package/dist/api/shared-types.cjs +93 -0
  94. package/dist/api/shared-types.cjs.map +1 -0
  95. package/dist/api/shared-types.d.cts +131 -0
  96. package/dist/api/shared-types.d.cts.map +1 -0
  97. package/dist/api/shared-types.d.mts +131 -0
  98. package/dist/api/shared-types.d.mts.map +1 -0
  99. package/dist/api/shared-types.mjs +87 -0
  100. package/dist/api/shared-types.mjs.map +1 -0
  101. package/dist/api/test-utils.cjs +70 -0
  102. package/dist/api/test-utils.cjs.map +1 -0
  103. package/dist/api/test-utils.d.cts +30 -0
  104. package/dist/api/test-utils.d.cts.map +1 -0
  105. package/dist/api/test-utils.d.mts +30 -0
  106. package/dist/api/test-utils.d.mts.map +1 -0
  107. package/dist/api/test-utils.mjs +64 -0
  108. package/dist/api/test-utils.mjs.map +1 -0
  109. package/dist/api/token/client.cjs +342 -0
  110. package/dist/api/token/client.cjs.map +1 -0
  111. package/dist/api/token/client.d.cts +193 -0
  112. package/dist/api/token/client.d.cts.map +1 -0
  113. package/dist/api/token/client.d.mts +193 -0
  114. package/dist/api/token/client.d.mts.map +1 -0
  115. package/dist/api/token/client.mjs +338 -0
  116. package/dist/api/token/client.mjs.map +1 -0
  117. package/dist/api/token/index.cjs +9 -0
  118. package/dist/api/token/index.cjs.map +1 -0
  119. package/dist/api/token/index.d.cts +6 -0
  120. package/dist/api/token/index.d.cts.map +1 -0
  121. package/dist/api/token/index.d.mts +6 -0
  122. package/dist/api/token/index.d.mts.map +1 -0
  123. package/dist/api/token/index.mjs +5 -0
  124. package/dist/api/token/index.mjs.map +1 -0
  125. package/dist/api/token/types.cjs +7 -0
  126. package/dist/api/token/types.cjs.map +1 -0
  127. package/dist/api/token/types.d.cts +75 -0
  128. package/dist/api/token/types.d.cts.map +1 -0
  129. package/dist/api/token/types.d.mts +75 -0
  130. package/dist/api/token/types.d.mts.map +1 -0
  131. package/dist/api/token/types.mjs +6 -0
  132. package/dist/api/token/types.mjs.map +1 -0
  133. package/dist/api/tokens/client.cjs +91 -0
  134. package/dist/api/tokens/client.cjs.map +1 -0
  135. package/dist/api/tokens/client.d.cts +45 -0
  136. package/dist/api/tokens/client.d.cts.map +1 -0
  137. package/dist/api/tokens/client.d.mts +45 -0
  138. package/dist/api/tokens/client.d.mts.map +1 -0
  139. package/dist/api/tokens/client.mjs +87 -0
  140. package/dist/api/tokens/client.mjs.map +1 -0
  141. package/dist/api/tokens/index.cjs +9 -0
  142. package/dist/api/tokens/index.cjs.map +1 -0
  143. package/dist/api/tokens/index.d.cts +6 -0
  144. package/dist/api/tokens/index.d.cts.map +1 -0
  145. package/dist/api/tokens/index.d.mts +6 -0
  146. package/dist/api/tokens/index.d.mts.map +1 -0
  147. package/dist/api/tokens/index.mjs +5 -0
  148. package/dist/api/tokens/index.mjs.map +1 -0
  149. package/dist/api/tokens/types.cjs +7 -0
  150. package/dist/api/tokens/types.cjs.map +1 -0
  151. package/dist/api/tokens/types.d.cts +83 -0
  152. package/dist/api/tokens/types.d.cts.map +1 -0
  153. package/dist/api/tokens/types.d.mts +83 -0
  154. package/dist/api/tokens/types.d.mts.map +1 -0
  155. package/dist/api/tokens/types.mjs +6 -0
  156. package/dist/api/tokens/types.mjs.map +1 -0
  157. package/dist/index.cjs +33 -4
  158. package/dist/index.cjs.map +1 -1
  159. package/dist/index.d.cts +6 -7
  160. package/dist/index.d.cts.map +1 -1
  161. package/dist/index.d.mts +6 -7
  162. package/dist/index.d.mts.map +1 -1
  163. package/dist/index.mjs +21 -5
  164. package/dist/index.mjs.map +1 -1
  165. package/package.json +9 -12
@@ -0,0 +1,195 @@
1
+ /**
2
+ * Accounts API types for the API Platform Client.
3
+ * API: accounts.api.cx.metamask.io
4
+ */
5
+ import type { PageInfo } from "../shared-types.cjs";
6
+ /** V5 Balance Item from Accounts API */
7
+ export type V5BalanceItem = {
8
+ object: 'token';
9
+ symbol: string;
10
+ name: string;
11
+ type: 'native' | 'erc20';
12
+ decimals: number;
13
+ assetId: string;
14
+ balance: string;
15
+ accountId: string;
16
+ };
17
+ /** V5 Multi-account balances response */
18
+ export type V5BalancesResponse = {
19
+ count: number;
20
+ unprocessedNetworks: string[];
21
+ balances: V5BalanceItem[];
22
+ };
23
+ /** V2 Balance item */
24
+ export type V2BalanceItem = {
25
+ object: string;
26
+ type?: string;
27
+ timestamp?: string;
28
+ address: string;
29
+ symbol: string;
30
+ name: string;
31
+ decimals: number;
32
+ chainId: number;
33
+ balance: string;
34
+ accountAddress?: string;
35
+ };
36
+ /** V2 Balances response */
37
+ export type V2BalancesResponse = {
38
+ count: number;
39
+ balances: V2BalanceItem[];
40
+ unprocessedNetworks: number[];
41
+ };
42
+ /** V4 Multi-account balances response */
43
+ export type V4BalancesResponse = {
44
+ count: number;
45
+ balances: V2BalanceItem[];
46
+ unprocessedNetworks: number[];
47
+ };
48
+ /** V1 Supported networks response */
49
+ export type V1SupportedNetworksResponse = {
50
+ supportedNetworks: number[];
51
+ };
52
+ /** V2 Supported networks response */
53
+ export type V2SupportedNetworksResponse = {
54
+ fullSupport: number[];
55
+ partialSupport: {
56
+ balances: number[];
57
+ };
58
+ };
59
+ /** Active networks response */
60
+ export type V2ActiveNetworksResponse = {
61
+ activeNetworks: string[];
62
+ };
63
+ /** Transaction by hash response */
64
+ export type V1TransactionByHashResponse = {
65
+ hash: string;
66
+ timestamp: string;
67
+ chainId: number;
68
+ blockNumber: number;
69
+ blockHash: string;
70
+ gas: number;
71
+ gasUsed: number;
72
+ gasPrice: string;
73
+ effectiveGasPrice: string;
74
+ nonce: number;
75
+ cumulativeGasUsed: number;
76
+ methodId?: string;
77
+ value: string;
78
+ to: string;
79
+ from: string;
80
+ isError?: boolean;
81
+ valueTransfers?: {
82
+ from: string;
83
+ to: string;
84
+ amount: string;
85
+ decimal: number;
86
+ contractAddress: string;
87
+ symbol: string;
88
+ name: string;
89
+ transferType: string;
90
+ }[];
91
+ logs?: {
92
+ data: string;
93
+ topics: string[];
94
+ address: string;
95
+ logIndex: number;
96
+ }[];
97
+ transactionType?: string;
98
+ transactionCategory?: string;
99
+ transactionProtocol?: string;
100
+ };
101
+ /** Account transactions response */
102
+ export type V1AccountTransactionsResponse = {
103
+ data: V1TransactionByHashResponse[];
104
+ pageInfo: PageInfo;
105
+ };
106
+ /** V4 Multi-account transactions response */
107
+ export type V4MultiAccountTransactionsResponse = {
108
+ unprocessedNetworks: string[];
109
+ pageInfo: {
110
+ count: number;
111
+ hasNextPage: boolean;
112
+ endCursor?: string;
113
+ };
114
+ data: V1TransactionByHashResponse[];
115
+ };
116
+ /**
117
+ * Value transfer within a transaction
118
+ */
119
+ export type ValueTransfer = {
120
+ from: string;
121
+ to: string;
122
+ amount: string;
123
+ decimal: number;
124
+ transferType: string;
125
+ };
126
+ /**
127
+ * Account address relationship result from v1 endpoint
128
+ */
129
+ export type V1AccountRelationshipResult = {
130
+ /** Transaction hash of the relationship */
131
+ txHash?: string;
132
+ /** Chain ID */
133
+ chainId?: number;
134
+ /** Number of interactions */
135
+ count?: number;
136
+ /** Transaction data details */
137
+ data?: {
138
+ hash: string;
139
+ timestamp: string;
140
+ chainId: number;
141
+ blockNumber: number;
142
+ blockHash: string;
143
+ gas: number;
144
+ gasUsed: number;
145
+ gasPrice: string;
146
+ effectiveGasPrice: string;
147
+ nonce: number;
148
+ cumulativeGasUsed: number;
149
+ methodId: string;
150
+ value: string;
151
+ to: string;
152
+ from: string;
153
+ isError: boolean;
154
+ valueTransfers: ValueTransfer[];
155
+ logs: unknown[];
156
+ transactionType: string;
157
+ transactionCategory: string;
158
+ readable: string;
159
+ textFunctionSignature: string;
160
+ };
161
+ /** Error information when relationship lookup fails */
162
+ error?: {
163
+ code: string;
164
+ message: string;
165
+ };
166
+ };
167
+ /** NFT item */
168
+ export type NftItem = {
169
+ tokenId: string;
170
+ contractAddress: string;
171
+ chainId: number;
172
+ name?: string;
173
+ description?: string;
174
+ imageUrl?: string;
175
+ attributes?: Record<string, unknown>[];
176
+ };
177
+ /** NFTs response */
178
+ export type V2NftsResponse = {
179
+ data: NftItem[];
180
+ pageInfo: PageInfo;
181
+ };
182
+ /** Token discovery item */
183
+ export type TokenDiscoveryItem = {
184
+ address: string;
185
+ chainId: number;
186
+ symbol: string;
187
+ name: string;
188
+ decimals: number;
189
+ balance?: string;
190
+ };
191
+ /** Tokens response */
192
+ export type V2TokensResponse = {
193
+ data: TokenDiscoveryItem[];
194
+ };
195
+ //# sourceMappingURL=types.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.cts","sourceRoot":"","sources":["../../../src/api/accounts/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,4BAAwB;AAMhD,wCAAwC;AACxC,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,yCAAyC;AACzC,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,QAAQ,EAAE,aAAa,EAAE,CAAC;CAC3B,CAAC;AAEF,sBAAsB;AACtB,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,2BAA2B;AAC3B,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,mBAAmB,EAAE,MAAM,EAAE,CAAC;CAC/B,CAAC;AAEF,yCAAyC;AACzC,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,mBAAmB,EAAE,MAAM,EAAE,CAAC;CAC/B,CAAC;AAMF,qCAAqC;AACrC,MAAM,MAAM,2BAA2B,GAAG;IACxC,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B,CAAC;AAEF,qCAAqC;AACrC,MAAM,MAAM,2BAA2B,GAAG;IACxC,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,cAAc,EAAE;QACd,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;CACH,CAAC;AAEF,+BAA+B;AAC/B,MAAM,MAAM,wBAAwB,GAAG;IACrC,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B,CAAC;AAMF,mCAAmC;AACnC,MAAM,MAAM,2BAA2B,GAAG;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE;QACf,IAAI,EAAE,MAAM,CAAC;QACb,EAAE,EAAE,MAAM,CAAC;QACX,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,eAAe,EAAE,MAAM,CAAC;QACxB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,YAAY,EAAE,MAAM,CAAC;KACtB,EAAE,CAAC;IACJ,IAAI,CAAC,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;KAClB,EAAE,CAAC;IACJ,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,oCAAoC;AACpC,MAAM,MAAM,6BAA6B,GAAG;IAC1C,IAAI,EAAE,2BAA2B,EAAE,CAAC;IACpC,QAAQ,EAAE,QAAQ,CAAC;CACpB,CAAC;AAEF,6CAA6C;AAC7C,MAAM,MAAM,kCAAkC,GAAG;IAC/C,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,QAAQ,EAAE;QACR,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,OAAO,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,IAAI,EAAE,2BAA2B,EAAE,CAAC;CACrC,CAAC;AAMF;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,2BAA2B,GAAG;IACxC,2CAA2C;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+BAA+B;IAC/B,IAAI,CAAC,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,KAAK,EAAE,MAAM,CAAC;QACd,iBAAiB,EAAE,MAAM,CAAC;QAC1B,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,OAAO,CAAC;QACjB,cAAc,EAAE,aAAa,EAAE,CAAC;QAChC,IAAI,EAAE,OAAO,EAAE,CAAC;QAChB,eAAe,EAAE,MAAM,CAAC;QACxB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,QAAQ,EAAE,MAAM,CAAC;QACjB,qBAAqB,EAAE,MAAM,CAAC;KAC/B,CAAC;IACF,uDAAuD;IACvD,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH,CAAC;AAMF,eAAe;AACf,MAAM,MAAM,OAAO,GAAG;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;CACxC,CAAC;AAEF,oBAAoB;AACpB,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,QAAQ,EAAE,QAAQ,CAAC;CACpB,CAAC;AAMF,2BAA2B;AAC3B,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,sBAAsB;AACtB,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,kBAAkB,EAAE,CAAC;CAC5B,CAAC"}
@@ -0,0 +1,195 @@
1
+ /**
2
+ * Accounts API types for the API Platform Client.
3
+ * API: accounts.api.cx.metamask.io
4
+ */
5
+ import type { PageInfo } from "../shared-types.mjs";
6
+ /** V5 Balance Item from Accounts API */
7
+ export type V5BalanceItem = {
8
+ object: 'token';
9
+ symbol: string;
10
+ name: string;
11
+ type: 'native' | 'erc20';
12
+ decimals: number;
13
+ assetId: string;
14
+ balance: string;
15
+ accountId: string;
16
+ };
17
+ /** V5 Multi-account balances response */
18
+ export type V5BalancesResponse = {
19
+ count: number;
20
+ unprocessedNetworks: string[];
21
+ balances: V5BalanceItem[];
22
+ };
23
+ /** V2 Balance item */
24
+ export type V2BalanceItem = {
25
+ object: string;
26
+ type?: string;
27
+ timestamp?: string;
28
+ address: string;
29
+ symbol: string;
30
+ name: string;
31
+ decimals: number;
32
+ chainId: number;
33
+ balance: string;
34
+ accountAddress?: string;
35
+ };
36
+ /** V2 Balances response */
37
+ export type V2BalancesResponse = {
38
+ count: number;
39
+ balances: V2BalanceItem[];
40
+ unprocessedNetworks: number[];
41
+ };
42
+ /** V4 Multi-account balances response */
43
+ export type V4BalancesResponse = {
44
+ count: number;
45
+ balances: V2BalanceItem[];
46
+ unprocessedNetworks: number[];
47
+ };
48
+ /** V1 Supported networks response */
49
+ export type V1SupportedNetworksResponse = {
50
+ supportedNetworks: number[];
51
+ };
52
+ /** V2 Supported networks response */
53
+ export type V2SupportedNetworksResponse = {
54
+ fullSupport: number[];
55
+ partialSupport: {
56
+ balances: number[];
57
+ };
58
+ };
59
+ /** Active networks response */
60
+ export type V2ActiveNetworksResponse = {
61
+ activeNetworks: string[];
62
+ };
63
+ /** Transaction by hash response */
64
+ export type V1TransactionByHashResponse = {
65
+ hash: string;
66
+ timestamp: string;
67
+ chainId: number;
68
+ blockNumber: number;
69
+ blockHash: string;
70
+ gas: number;
71
+ gasUsed: number;
72
+ gasPrice: string;
73
+ effectiveGasPrice: string;
74
+ nonce: number;
75
+ cumulativeGasUsed: number;
76
+ methodId?: string;
77
+ value: string;
78
+ to: string;
79
+ from: string;
80
+ isError?: boolean;
81
+ valueTransfers?: {
82
+ from: string;
83
+ to: string;
84
+ amount: string;
85
+ decimal: number;
86
+ contractAddress: string;
87
+ symbol: string;
88
+ name: string;
89
+ transferType: string;
90
+ }[];
91
+ logs?: {
92
+ data: string;
93
+ topics: string[];
94
+ address: string;
95
+ logIndex: number;
96
+ }[];
97
+ transactionType?: string;
98
+ transactionCategory?: string;
99
+ transactionProtocol?: string;
100
+ };
101
+ /** Account transactions response */
102
+ export type V1AccountTransactionsResponse = {
103
+ data: V1TransactionByHashResponse[];
104
+ pageInfo: PageInfo;
105
+ };
106
+ /** V4 Multi-account transactions response */
107
+ export type V4MultiAccountTransactionsResponse = {
108
+ unprocessedNetworks: string[];
109
+ pageInfo: {
110
+ count: number;
111
+ hasNextPage: boolean;
112
+ endCursor?: string;
113
+ };
114
+ data: V1TransactionByHashResponse[];
115
+ };
116
+ /**
117
+ * Value transfer within a transaction
118
+ */
119
+ export type ValueTransfer = {
120
+ from: string;
121
+ to: string;
122
+ amount: string;
123
+ decimal: number;
124
+ transferType: string;
125
+ };
126
+ /**
127
+ * Account address relationship result from v1 endpoint
128
+ */
129
+ export type V1AccountRelationshipResult = {
130
+ /** Transaction hash of the relationship */
131
+ txHash?: string;
132
+ /** Chain ID */
133
+ chainId?: number;
134
+ /** Number of interactions */
135
+ count?: number;
136
+ /** Transaction data details */
137
+ data?: {
138
+ hash: string;
139
+ timestamp: string;
140
+ chainId: number;
141
+ blockNumber: number;
142
+ blockHash: string;
143
+ gas: number;
144
+ gasUsed: number;
145
+ gasPrice: string;
146
+ effectiveGasPrice: string;
147
+ nonce: number;
148
+ cumulativeGasUsed: number;
149
+ methodId: string;
150
+ value: string;
151
+ to: string;
152
+ from: string;
153
+ isError: boolean;
154
+ valueTransfers: ValueTransfer[];
155
+ logs: unknown[];
156
+ transactionType: string;
157
+ transactionCategory: string;
158
+ readable: string;
159
+ textFunctionSignature: string;
160
+ };
161
+ /** Error information when relationship lookup fails */
162
+ error?: {
163
+ code: string;
164
+ message: string;
165
+ };
166
+ };
167
+ /** NFT item */
168
+ export type NftItem = {
169
+ tokenId: string;
170
+ contractAddress: string;
171
+ chainId: number;
172
+ name?: string;
173
+ description?: string;
174
+ imageUrl?: string;
175
+ attributes?: Record<string, unknown>[];
176
+ };
177
+ /** NFTs response */
178
+ export type V2NftsResponse = {
179
+ data: NftItem[];
180
+ pageInfo: PageInfo;
181
+ };
182
+ /** Token discovery item */
183
+ export type TokenDiscoveryItem = {
184
+ address: string;
185
+ chainId: number;
186
+ symbol: string;
187
+ name: string;
188
+ decimals: number;
189
+ balance?: string;
190
+ };
191
+ /** Tokens response */
192
+ export type V2TokensResponse = {
193
+ data: TokenDiscoveryItem[];
194
+ };
195
+ //# sourceMappingURL=types.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.mts","sourceRoot":"","sources":["../../../src/api/accounts/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,4BAAwB;AAMhD,wCAAwC;AACxC,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,yCAAyC;AACzC,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,QAAQ,EAAE,aAAa,EAAE,CAAC;CAC3B,CAAC;AAEF,sBAAsB;AACtB,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,2BAA2B;AAC3B,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,mBAAmB,EAAE,MAAM,EAAE,CAAC;CAC/B,CAAC;AAEF,yCAAyC;AACzC,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,mBAAmB,EAAE,MAAM,EAAE,CAAC;CAC/B,CAAC;AAMF,qCAAqC;AACrC,MAAM,MAAM,2BAA2B,GAAG;IACxC,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B,CAAC;AAEF,qCAAqC;AACrC,MAAM,MAAM,2BAA2B,GAAG;IACxC,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,cAAc,EAAE;QACd,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;CACH,CAAC;AAEF,+BAA+B;AAC/B,MAAM,MAAM,wBAAwB,GAAG;IACrC,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B,CAAC;AAMF,mCAAmC;AACnC,MAAM,MAAM,2BAA2B,GAAG;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE;QACf,IAAI,EAAE,MAAM,CAAC;QACb,EAAE,EAAE,MAAM,CAAC;QACX,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,eAAe,EAAE,MAAM,CAAC;QACxB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,YAAY,EAAE,MAAM,CAAC;KACtB,EAAE,CAAC;IACJ,IAAI,CAAC,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;KAClB,EAAE,CAAC;IACJ,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,oCAAoC;AACpC,MAAM,MAAM,6BAA6B,GAAG;IAC1C,IAAI,EAAE,2BAA2B,EAAE,CAAC;IACpC,QAAQ,EAAE,QAAQ,CAAC;CACpB,CAAC;AAEF,6CAA6C;AAC7C,MAAM,MAAM,kCAAkC,GAAG;IAC/C,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,QAAQ,EAAE;QACR,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,OAAO,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,IAAI,EAAE,2BAA2B,EAAE,CAAC;CACrC,CAAC;AAMF;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,2BAA2B,GAAG;IACxC,2CAA2C;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+BAA+B;IAC/B,IAAI,CAAC,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,KAAK,EAAE,MAAM,CAAC;QACd,iBAAiB,EAAE,MAAM,CAAC;QAC1B,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,OAAO,CAAC;QACjB,cAAc,EAAE,aAAa,EAAE,CAAC;QAChC,IAAI,EAAE,OAAO,EAAE,CAAC;QAChB,eAAe,EAAE,MAAM,CAAC;QACxB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,QAAQ,EAAE,MAAM,CAAC;QACjB,qBAAqB,EAAE,MAAM,CAAC;KAC/B,CAAC;IACF,uDAAuD;IACvD,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH,CAAC;AAMF,eAAe;AACf,MAAM,MAAM,OAAO,GAAG;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;CACxC,CAAC;AAEF,oBAAoB;AACpB,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,QAAQ,EAAE,QAAQ,CAAC;CACpB,CAAC;AAMF,2BAA2B;AAC3B,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,sBAAsB;AACtB,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,kBAAkB,EAAE,CAAC;CAC5B,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Accounts API types for the API Platform Client.
3
+ * API: accounts.api.cx.metamask.io
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=types.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.mjs","sourceRoot":"","sources":["../../../src/api/accounts/types.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/**\n * Accounts API types for the API Platform Client.\n * API: accounts.api.cx.metamask.io\n */\n\nimport type { PageInfo } from '../shared-types';\n\n// ============================================================================\n// BALANCE TYPES\n// ============================================================================\n\n/** V5 Balance Item from Accounts API */\nexport type V5BalanceItem = {\n object: 'token';\n symbol: string;\n name: string;\n type: 'native' | 'erc20';\n decimals: number;\n assetId: string;\n balance: string;\n accountId: string;\n};\n\n/** V5 Multi-account balances response */\nexport type V5BalancesResponse = {\n count: number;\n unprocessedNetworks: string[];\n balances: V5BalanceItem[];\n};\n\n/** V2 Balance item */\nexport type V2BalanceItem = {\n object: string;\n type?: string;\n timestamp?: string;\n address: string;\n symbol: string;\n name: string;\n decimals: number;\n chainId: number;\n balance: string;\n accountAddress?: string;\n};\n\n/** V2 Balances response */\nexport type V2BalancesResponse = {\n count: number;\n balances: V2BalanceItem[];\n unprocessedNetworks: number[];\n};\n\n/** V4 Multi-account balances response */\nexport type V4BalancesResponse = {\n count: number;\n balances: V2BalanceItem[];\n unprocessedNetworks: number[];\n};\n\n// ============================================================================\n// SUPPORTED NETWORKS TYPES\n// ============================================================================\n\n/** V1 Supported networks response */\nexport type V1SupportedNetworksResponse = {\n supportedNetworks: number[];\n};\n\n/** V2 Supported networks response */\nexport type V2SupportedNetworksResponse = {\n fullSupport: number[];\n partialSupport: {\n balances: number[];\n };\n};\n\n/** Active networks response */\nexport type V2ActiveNetworksResponse = {\n activeNetworks: string[];\n};\n\n// ============================================================================\n// TRANSACTION TYPES\n// ============================================================================\n\n/** Transaction by hash response */\nexport type V1TransactionByHashResponse = {\n hash: string;\n timestamp: string;\n chainId: number;\n blockNumber: number;\n blockHash: string;\n gas: number;\n gasUsed: number;\n gasPrice: string;\n effectiveGasPrice: string;\n nonce: number;\n cumulativeGasUsed: number;\n methodId?: string;\n value: string;\n to: string;\n from: string;\n isError?: boolean;\n valueTransfers?: {\n from: string;\n to: string;\n amount: string;\n decimal: number;\n contractAddress: string;\n symbol: string;\n name: string;\n transferType: string;\n }[];\n logs?: {\n data: string;\n topics: string[];\n address: string;\n logIndex: number;\n }[];\n transactionType?: string;\n transactionCategory?: string;\n transactionProtocol?: string;\n};\n\n/** Account transactions response */\nexport type V1AccountTransactionsResponse = {\n data: V1TransactionByHashResponse[];\n pageInfo: PageInfo;\n};\n\n/** V4 Multi-account transactions response */\nexport type V4MultiAccountTransactionsResponse = {\n unprocessedNetworks: string[];\n pageInfo: {\n count: number;\n hasNextPage: boolean;\n endCursor?: string;\n };\n data: V1TransactionByHashResponse[];\n};\n\n// ============================================================================\n// RELATIONSHIP TYPES\n// ============================================================================\n\n/**\n * Value transfer within a transaction\n */\nexport type ValueTransfer = {\n from: string;\n to: string;\n amount: string;\n decimal: number;\n transferType: string;\n};\n\n/**\n * Account address relationship result from v1 endpoint\n */\nexport type V1AccountRelationshipResult = {\n /** Transaction hash of the relationship */\n txHash?: string;\n /** Chain ID */\n chainId?: number;\n /** Number of interactions */\n count?: number;\n /** Transaction data details */\n data?: {\n hash: string;\n timestamp: string;\n chainId: number;\n blockNumber: number;\n blockHash: string;\n gas: number;\n gasUsed: number;\n gasPrice: string;\n effectiveGasPrice: string;\n nonce: number;\n cumulativeGasUsed: number;\n methodId: string;\n value: string;\n to: string;\n from: string;\n isError: boolean;\n valueTransfers: ValueTransfer[];\n logs: unknown[];\n transactionType: string;\n transactionCategory: string;\n readable: string;\n textFunctionSignature: string;\n };\n /** Error information when relationship lookup fails */\n error?: {\n code: string;\n message: string;\n };\n};\n\n// ============================================================================\n// NFT TYPES\n// ============================================================================\n\n/** NFT item */\nexport type NftItem = {\n tokenId: string;\n contractAddress: string;\n chainId: number;\n name?: string;\n description?: string;\n imageUrl?: string;\n attributes?: Record<string, unknown>[];\n};\n\n/** NFTs response */\nexport type V2NftsResponse = {\n data: NftItem[];\n pageInfo: PageInfo;\n};\n\n// ============================================================================\n// TOKEN DISCOVERY TYPES\n// ============================================================================\n\n/** Token discovery item */\nexport type TokenDiscoveryItem = {\n address: string;\n chainId: number;\n symbol: string;\n name: string;\n decimals: number;\n balance?: string;\n};\n\n/** Tokens response */\nexport type V2TokensResponse = {\n data: TokenDiscoveryItem[];\n};\n"]}
@@ -0,0 +1,149 @@
1
+ "use strict";
2
+ /**
3
+ * Base API Client - Shared HTTP functionality for all API clients.
4
+ */
5
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
6
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
7
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
8
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
9
+ };
10
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
11
+ if (kind === "m") throw new TypeError("Private method is not writable");
12
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
13
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
14
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
15
+ };
16
+ var _BaseApiClient_queryClientInstance;
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.HttpError = exports.GC_TIMES = exports.STALE_TIMES = exports.API_URLS = exports.BaseApiClient = exports.authQueryKeys = void 0;
19
+ const query_core_1 = require("@tanstack/query-core");
20
+ const shared_types_1 = require("./shared-types.cjs");
21
+ Object.defineProperty(exports, "API_URLS", { enumerable: true, get: function () { return shared_types_1.API_URLS; } });
22
+ Object.defineProperty(exports, "STALE_TIMES", { enumerable: true, get: function () { return shared_types_1.STALE_TIMES; } });
23
+ Object.defineProperty(exports, "GC_TIMES", { enumerable: true, get: function () { return shared_types_1.GC_TIMES; } });
24
+ Object.defineProperty(exports, "HttpError", { enumerable: true, get: function () { return shared_types_1.HttpError; } });
25
+ // Auth query keys - shared for token management across clients
26
+ exports.authQueryKeys = {
27
+ bearerToken: () => ['auth', 'bearerToken'],
28
+ };
29
+ /**
30
+ * Base API Client with shared HTTP and caching functionality.
31
+ * Extended by all specific API clients.
32
+ */
33
+ class BaseApiClient {
34
+ /**
35
+ * Get the underlying QueryClient instance.
36
+ * Exposed for cache management operations.
37
+ *
38
+ * @returns The QueryClient instance.
39
+ */
40
+ get queryClient() {
41
+ return __classPrivateFieldGet(this, _BaseApiClient_queryClientInstance, "f");
42
+ }
43
+ /**
44
+ * Invalidate the cached auth token.
45
+ * Call this when the user logs out or the token expires.
46
+ *
47
+ * Uses resetQueries() instead of invalidateQueries() to completely remove
48
+ * the cached value, ensuring the next request fetches a fresh token immediately.
49
+ */
50
+ async invalidateAuthToken() {
51
+ await __classPrivateFieldGet(this, _BaseApiClient_queryClientInstance, "f").resetQueries({
52
+ queryKey: exports.authQueryKeys.bearerToken(),
53
+ });
54
+ }
55
+ constructor(options) {
56
+ _BaseApiClient_queryClientInstance.set(this, void 0);
57
+ this.clientProduct = options.clientProduct;
58
+ this.clientVersion = options.clientVersion ?? '1.0.0';
59
+ this.getBearerToken = options.getBearerToken;
60
+ __classPrivateFieldSet(this, _BaseApiClient_queryClientInstance, options.queryClient ??
61
+ new query_core_1.QueryClient({
62
+ defaultOptions: {
63
+ queries: {
64
+ staleTime: shared_types_1.STALE_TIMES.DEFAULT,
65
+ gcTime: shared_types_1.GC_TIMES.DEFAULT,
66
+ retry: shared_types_1.shouldRetry,
67
+ retryDelay: shared_types_1.calculateRetryDelay,
68
+ refetchOnWindowFocus: false,
69
+ networkMode: 'always',
70
+ },
71
+ },
72
+ }), "f");
73
+ }
74
+ /**
75
+ * Internal HTTP fetch method with authentication and error handling.
76
+ *
77
+ * @param baseUrl - The base URL for the API.
78
+ * @param path - The API endpoint path.
79
+ * @param options - Optional fetch configuration.
80
+ * @returns The parsed JSON response.
81
+ */
82
+ async fetch(baseUrl, path, options) {
83
+ const url = new URL(path, baseUrl);
84
+ if (options?.params) {
85
+ for (const [key, value] of Object.entries(options.params)) {
86
+ if (value === undefined) {
87
+ continue;
88
+ }
89
+ if (Array.isArray(value)) {
90
+ // Convert array values (including number[]) to comma-separated string
91
+ url.searchParams.set(key, value.map(String).join(','));
92
+ }
93
+ else {
94
+ url.searchParams.set(key, String(value));
95
+ }
96
+ }
97
+ }
98
+ const headers = {
99
+ 'Content-Type': 'application/json',
100
+ 'X-Client-Product': this.clientProduct,
101
+ 'X-Client-Version': this.clientVersion,
102
+ };
103
+ // Get bearer token using fetchQuery for automatic deduplication
104
+ if (this.getBearerToken) {
105
+ const queryKey = exports.authQueryKeys.bearerToken();
106
+ const { getBearerToken } = this;
107
+ try {
108
+ // fetchQuery handles caching and deduplicates concurrent requests
109
+ const token = await __classPrivateFieldGet(this, _BaseApiClient_queryClientInstance, "f").fetchQuery({
110
+ queryKey,
111
+ queryFn: async () => {
112
+ const result = await getBearerToken();
113
+ // Throw if no token - prevents caching null/undefined
114
+ // so subsequent requests can retry (e.g., after user logs in)
115
+ if (!result) {
116
+ throw new Error('No bearer token available');
117
+ }
118
+ return result;
119
+ },
120
+ staleTime: shared_types_1.STALE_TIMES.AUTH_TOKEN,
121
+ retry: false, // Don't retry auth failures
122
+ });
123
+ headers.Authorization = `Bearer ${token}`;
124
+ }
125
+ catch {
126
+ // No token available - continue without auth header
127
+ }
128
+ }
129
+ const response = await fetch(url.toString(), {
130
+ method: 'GET',
131
+ headers,
132
+ signal: options?.signal,
133
+ });
134
+ if (!response.ok) {
135
+ let body;
136
+ try {
137
+ body = await response.json();
138
+ }
139
+ catch {
140
+ // Response body is not JSON or is empty, leave body as undefined
141
+ }
142
+ throw new shared_types_1.HttpError(`HTTP ${response.status}: ${response.statusText}`, response.status, response.statusText, url.toString(), body);
143
+ }
144
+ return response.json();
145
+ }
146
+ }
147
+ exports.BaseApiClient = BaseApiClient;
148
+ _BaseApiClient_queryClientInstance = new WeakMap();
149
+ //# sourceMappingURL=base-client.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-client.cjs","sourceRoot":"","sources":["../../src/api/base-client.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Base API Client - Shared HTTP functionality for all API clients.\n */\n\nimport { QueryClient } from '@tanstack/query-core';\nimport type { QueryKey } from '@tanstack/query-core';\n\nimport {\n API_URLS,\n STALE_TIMES,\n GC_TIMES,\n calculateRetryDelay,\n shouldRetry,\n HttpError,\n} from './shared-types';\nimport type { ApiPlatformClientOptions } from './shared-types';\n\n// Auth query keys - shared for token management across clients\nexport const authQueryKeys = {\n bearerToken: (): QueryKey => ['auth', 'bearerToken'],\n} as const;\n\nexport type { ApiPlatformClientOptions };\n\n/**\n * Internal fetch options for HTTP requests.\n */\nexport type InternalFetchOptions = {\n signal?: AbortSignal;\n params?: Record<\n string,\n string | string[] | number | number[] | boolean | undefined\n >;\n};\n\n/**\n * Base API Client with shared HTTP and caching functionality.\n * Extended by all specific API clients.\n */\nexport class BaseApiClient {\n protected readonly clientProduct: string;\n\n protected readonly clientVersion: string;\n\n protected readonly getBearerToken?: () => Promise<string | undefined>;\n\n readonly #queryClientInstance: QueryClient;\n\n /**\n * Get the underlying QueryClient instance.\n * Exposed for cache management operations.\n *\n * @returns The QueryClient instance.\n */\n get queryClient(): QueryClient {\n return this.#queryClientInstance;\n }\n\n /**\n * Invalidate the cached auth token.\n * Call this when the user logs out or the token expires.\n *\n * Uses resetQueries() instead of invalidateQueries() to completely remove\n * the cached value, ensuring the next request fetches a fresh token immediately.\n */\n async invalidateAuthToken(): Promise<void> {\n await this.#queryClientInstance.resetQueries({\n queryKey: authQueryKeys.bearerToken(),\n });\n }\n\n constructor(options: ApiPlatformClientOptions) {\n this.clientProduct = options.clientProduct;\n this.clientVersion = options.clientVersion ?? '1.0.0';\n this.getBearerToken = options.getBearerToken;\n\n this.#queryClientInstance =\n options.queryClient ??\n new QueryClient({\n defaultOptions: {\n queries: {\n staleTime: STALE_TIMES.DEFAULT,\n gcTime: GC_TIMES.DEFAULT,\n retry: shouldRetry,\n retryDelay: calculateRetryDelay,\n refetchOnWindowFocus: false,\n networkMode: 'always',\n },\n },\n });\n }\n\n /**\n * Internal HTTP fetch method with authentication and error handling.\n *\n * @param baseUrl - The base URL for the API.\n * @param path - The API endpoint path.\n * @param options - Optional fetch configuration.\n * @returns The parsed JSON response.\n */\n protected async fetch<ResponseType>(\n baseUrl: string,\n path: string,\n options?: InternalFetchOptions,\n ): Promise<ResponseType> {\n const url = new URL(path, baseUrl);\n\n if (options?.params) {\n for (const [key, value] of Object.entries(options.params)) {\n if (value === undefined) {\n continue;\n }\n if (Array.isArray(value)) {\n // Convert array values (including number[]) to comma-separated string\n url.searchParams.set(key, value.map(String).join(','));\n } else {\n url.searchParams.set(key, String(value));\n }\n }\n }\n\n const headers: Record<string, string> = {\n 'Content-Type': 'application/json',\n 'X-Client-Product': this.clientProduct,\n 'X-Client-Version': this.clientVersion,\n };\n\n // Get bearer token using fetchQuery for automatic deduplication\n if (this.getBearerToken) {\n const queryKey = authQueryKeys.bearerToken();\n const { getBearerToken } = this;\n\n try {\n // fetchQuery handles caching and deduplicates concurrent requests\n const token = await this.#queryClientInstance.fetchQuery({\n queryKey,\n queryFn: async () => {\n const result = await getBearerToken();\n // Throw if no token - prevents caching null/undefined\n // so subsequent requests can retry (e.g., after user logs in)\n if (!result) {\n throw new Error('No bearer token available');\n }\n return result;\n },\n staleTime: STALE_TIMES.AUTH_TOKEN,\n retry: false, // Don't retry auth failures\n });\n\n headers.Authorization = `Bearer ${token}`;\n } catch {\n // No token available - continue without auth header\n }\n }\n\n const response = await fetch(url.toString(), {\n method: 'GET',\n headers,\n signal: options?.signal,\n });\n\n if (!response.ok) {\n let body: unknown;\n try {\n body = await response.json();\n } catch {\n // Response body is not JSON or is empty, leave body as undefined\n }\n throw new HttpError(\n `HTTP ${response.status}: ${response.statusText}`,\n response.status,\n response.statusText,\n url.toString(),\n body,\n );\n }\n\n return response.json() as Promise<ResponseType>;\n }\n}\n\n// Re-export constants for use by API clients\nexport { API_URLS, STALE_TIMES, GC_TIMES, HttpError };\n"]}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Base API Client - Shared HTTP functionality for all API clients.
3
+ */
4
+ import { QueryClient } from "@tanstack/query-core";
5
+ import { API_URLS, STALE_TIMES, GC_TIMES, HttpError } from "./shared-types.cjs";
6
+ import type { ApiPlatformClientOptions } from "./shared-types.cjs";
7
+ export declare const authQueryKeys: {
8
+ readonly bearerToken: () => readonly unknown[];
9
+ };
10
+ export type { ApiPlatformClientOptions };
11
+ /**
12
+ * Internal fetch options for HTTP requests.
13
+ */
14
+ export type InternalFetchOptions = {
15
+ signal?: AbortSignal;
16
+ params?: Record<string, string | string[] | number | number[] | boolean | undefined>;
17
+ };
18
+ /**
19
+ * Base API Client with shared HTTP and caching functionality.
20
+ * Extended by all specific API clients.
21
+ */
22
+ export declare class BaseApiClient {
23
+ #private;
24
+ protected readonly clientProduct: string;
25
+ protected readonly clientVersion: string;
26
+ protected readonly getBearerToken?: () => Promise<string | undefined>;
27
+ /**
28
+ * Get the underlying QueryClient instance.
29
+ * Exposed for cache management operations.
30
+ *
31
+ * @returns The QueryClient instance.
32
+ */
33
+ get queryClient(): QueryClient;
34
+ /**
35
+ * Invalidate the cached auth token.
36
+ * Call this when the user logs out or the token expires.
37
+ *
38
+ * Uses resetQueries() instead of invalidateQueries() to completely remove
39
+ * the cached value, ensuring the next request fetches a fresh token immediately.
40
+ */
41
+ invalidateAuthToken(): Promise<void>;
42
+ constructor(options: ApiPlatformClientOptions);
43
+ /**
44
+ * Internal HTTP fetch method with authentication and error handling.
45
+ *
46
+ * @param baseUrl - The base URL for the API.
47
+ * @param path - The API endpoint path.
48
+ * @param options - Optional fetch configuration.
49
+ * @returns The parsed JSON response.
50
+ */
51
+ protected fetch<ResponseType>(baseUrl: string, path: string, options?: InternalFetchOptions): Promise<ResponseType>;
52
+ }
53
+ export { API_URLS, STALE_TIMES, GC_TIMES, HttpError };
54
+ //# sourceMappingURL=base-client.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-client.d.cts","sourceRoot":"","sources":["../../src/api/base-client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,6BAA6B;AAGnD,OAAO,EACL,QAAQ,EACR,WAAW,EACX,QAAQ,EAGR,SAAS,EACV,2BAAuB;AACxB,OAAO,KAAK,EAAE,wBAAwB,EAAE,2BAAuB;AAG/D,eAAO,MAAM,aAAa;;CAEhB,CAAC;AAEX,YAAY,EAAE,wBAAwB,EAAE,CAAC;AAEzC;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CACb,MAAM,EACN,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,GAAG,SAAS,CAC5D,CAAC;CACH,CAAC;AAEF;;;GAGG;AACH,qBAAa,aAAa;;IACxB,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAEzC,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAEzC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAItE;;;;;OAKG;IACH,IAAI,WAAW,IAAI,WAAW,CAE7B;IAED;;;;;;OAMG;IACG,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;gBAM9B,OAAO,EAAE,wBAAwB;IAqB7C;;;;;;;OAOG;cACa,KAAK,CAAC,YAAY,EAChC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,YAAY,CAAC;CA2EzB;AAGD,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC"}