@alchemy/common 0.0.0-alpha.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 (212) hide show
  1. package/LICENSE +21 -0
  2. package/dist/esm/actions/addBreadCrumb.d.ts +14 -0
  3. package/dist/esm/actions/addBreadCrumb.js +27 -0
  4. package/dist/esm/actions/addBreadCrumb.js.map +1 -0
  5. package/dist/esm/chains.d.ts +234 -0
  6. package/dist/esm/chains.js +113 -0
  7. package/dist/esm/chains.js.map +1 -0
  8. package/dist/esm/errors/AccountNotFoundError.d.ts +10 -0
  9. package/dist/esm/errors/AccountNotFoundError.js +19 -0
  10. package/dist/esm/errors/AccountNotFoundError.js.map +1 -0
  11. package/dist/esm/errors/BaseError.d.ts +23 -0
  12. package/dist/esm/errors/BaseError.js +40 -0
  13. package/dist/esm/errors/BaseError.js.map +1 -0
  14. package/dist/esm/errors/ChainNotFoundError.d.ts +11 -0
  15. package/dist/esm/errors/ChainNotFoundError.js +19 -0
  16. package/dist/esm/errors/ChainNotFoundError.js.map +1 -0
  17. package/dist/esm/errors/ConnectionConfigError.d.ts +13 -0
  18. package/dist/esm/errors/ConnectionConfigError.js +25 -0
  19. package/dist/esm/errors/ConnectionConfigError.js.map +1 -0
  20. package/dist/esm/errors/FetchError.d.ts +15 -0
  21. package/dist/esm/errors/FetchError.js +25 -0
  22. package/dist/esm/errors/FetchError.js.map +1 -0
  23. package/dist/esm/errors/InvalidRequestError.d.ts +13 -0
  24. package/dist/esm/errors/InvalidRequestError.js +22 -0
  25. package/dist/esm/errors/InvalidRequestError.js.map +1 -0
  26. package/dist/esm/errors/MethodUnsupportedError.d.ts +13 -0
  27. package/dist/esm/errors/MethodUnsupportedError.js +21 -0
  28. package/dist/esm/errors/MethodUnsupportedError.js.map +1 -0
  29. package/dist/esm/errors/ServerError.d.ts +15 -0
  30. package/dist/esm/errors/ServerError.js +25 -0
  31. package/dist/esm/errors/ServerError.js.map +1 -0
  32. package/dist/esm/index.d.ts +29 -0
  33. package/dist/esm/index.js +27 -0
  34. package/dist/esm/index.js.map +1 -0
  35. package/dist/esm/logging/config.d.ts +190 -0
  36. package/dist/esm/logging/config.js +279 -0
  37. package/dist/esm/logging/config.js.map +1 -0
  38. package/dist/esm/logging/index.d.ts +6 -0
  39. package/dist/esm/logging/index.js +5 -0
  40. package/dist/esm/logging/index.js.map +1 -0
  41. package/dist/esm/logging/local.d.ts +10 -0
  42. package/dist/esm/logging/local.js +35 -0
  43. package/dist/esm/logging/local.js.map +1 -0
  44. package/dist/esm/logging/logger.d.ts +80 -0
  45. package/dist/esm/logging/logger.js +111 -0
  46. package/dist/esm/logging/logger.js.map +1 -0
  47. package/dist/esm/logging/noop.d.ts +6 -0
  48. package/dist/esm/logging/noop.js +12 -0
  49. package/dist/esm/logging/noop.js.map +1 -0
  50. package/dist/esm/logging/sinks.d.ts +90 -0
  51. package/dist/esm/logging/sinks.js +111 -0
  52. package/dist/esm/logging/sinks.js.map +1 -0
  53. package/dist/esm/logging/types.d.ts +96 -0
  54. package/dist/esm/logging/types.js +2 -0
  55. package/dist/esm/logging/types.js.map +1 -0
  56. package/dist/esm/logging/utils.d.ts +7 -0
  57. package/dist/esm/logging/utils.js +21 -0
  58. package/dist/esm/logging/utils.js.map +1 -0
  59. package/dist/esm/rest/restClient.d.ts +34 -0
  60. package/dist/esm/rest/restClient.js +55 -0
  61. package/dist/esm/rest/restClient.js.map +1 -0
  62. package/dist/esm/rest/types.d.ts +24 -0
  63. package/dist/esm/rest/types.js +2 -0
  64. package/dist/esm/rest/types.js.map +1 -0
  65. package/dist/esm/tracing/traceHeader.d.ts +82 -0
  66. package/dist/esm/tracing/traceHeader.js +145 -0
  67. package/dist/esm/tracing/traceHeader.js.map +1 -0
  68. package/dist/esm/tracing/updateHeaders.d.ts +24 -0
  69. package/dist/esm/tracing/updateHeaders.js +61 -0
  70. package/dist/esm/tracing/updateHeaders.js.map +1 -0
  71. package/dist/esm/transport/alchemy.d.ts +110 -0
  72. package/dist/esm/transport/alchemy.js +164 -0
  73. package/dist/esm/transport/alchemy.js.map +1 -0
  74. package/dist/esm/transport/chainRegistry.d.ts +31 -0
  75. package/dist/esm/transport/chainRegistry.js +95 -0
  76. package/dist/esm/transport/chainRegistry.js.map +1 -0
  77. package/dist/esm/transport/connection.d.ts +20 -0
  78. package/dist/esm/transport/connection.js +2 -0
  79. package/dist/esm/transport/connection.js.map +1 -0
  80. package/dist/esm/transport/connectionSchema.d.ts +124 -0
  81. package/dist/esm/transport/connectionSchema.js +121 -0
  82. package/dist/esm/transport/connectionSchema.js.map +1 -0
  83. package/dist/esm/utils/assertNever.d.ts +8 -0
  84. package/dist/esm/utils/assertNever.js +12 -0
  85. package/dist/esm/utils/assertNever.js.map +1 -0
  86. package/dist/esm/utils/bigint.d.ts +24 -0
  87. package/dist/esm/utils/bigint.js +37 -0
  88. package/dist/esm/utils/bigint.js.map +1 -0
  89. package/dist/esm/utils/createEip1193HandlerFactory.d.ts +18 -0
  90. package/dist/esm/utils/createEip1193HandlerFactory.js +11 -0
  91. package/dist/esm/utils/createEip1193HandlerFactory.js.map +1 -0
  92. package/dist/esm/utils/headers.d.ts +7 -0
  93. package/dist/esm/utils/headers.js +29 -0
  94. package/dist/esm/utils/headers.js.map +1 -0
  95. package/dist/esm/utils/lowerAddress.d.ts +8 -0
  96. package/dist/esm/utils/lowerAddress.js +9 -0
  97. package/dist/esm/utils/lowerAddress.js.map +1 -0
  98. package/dist/esm/utils/raise.d.ts +8 -0
  99. package/dist/esm/utils/raise.js +14 -0
  100. package/dist/esm/utils/raise.js.map +1 -0
  101. package/dist/esm/utils/types.d.ts +10 -0
  102. package/dist/esm/utils/types.js +2 -0
  103. package/dist/esm/utils/types.js.map +1 -0
  104. package/dist/esm/version.d.ts +1 -0
  105. package/dist/esm/version.js +4 -0
  106. package/dist/esm/version.js.map +1 -0
  107. package/dist/types/actions/addBreadCrumb.d.ts +15 -0
  108. package/dist/types/actions/addBreadCrumb.d.ts.map +1 -0
  109. package/dist/types/chains.d.ts +235 -0
  110. package/dist/types/chains.d.ts.map +1 -0
  111. package/dist/types/errors/AccountNotFoundError.d.ts +11 -0
  112. package/dist/types/errors/AccountNotFoundError.d.ts.map +1 -0
  113. package/dist/types/errors/BaseError.d.ts +24 -0
  114. package/dist/types/errors/BaseError.d.ts.map +1 -0
  115. package/dist/types/errors/ChainNotFoundError.d.ts +12 -0
  116. package/dist/types/errors/ChainNotFoundError.d.ts.map +1 -0
  117. package/dist/types/errors/ConnectionConfigError.d.ts +14 -0
  118. package/dist/types/errors/ConnectionConfigError.d.ts.map +1 -0
  119. package/dist/types/errors/FetchError.d.ts +16 -0
  120. package/dist/types/errors/FetchError.d.ts.map +1 -0
  121. package/dist/types/errors/InvalidRequestError.d.ts +14 -0
  122. package/dist/types/errors/InvalidRequestError.d.ts.map +1 -0
  123. package/dist/types/errors/MethodUnsupportedError.d.ts +14 -0
  124. package/dist/types/errors/MethodUnsupportedError.d.ts.map +1 -0
  125. package/dist/types/errors/ServerError.d.ts +16 -0
  126. package/dist/types/errors/ServerError.d.ts.map +1 -0
  127. package/dist/types/index.d.ts +30 -0
  128. package/dist/types/index.d.ts.map +1 -0
  129. package/dist/types/logging/config.d.ts +191 -0
  130. package/dist/types/logging/config.d.ts.map +1 -0
  131. package/dist/types/logging/index.d.ts +7 -0
  132. package/dist/types/logging/index.d.ts.map +1 -0
  133. package/dist/types/logging/local.d.ts +11 -0
  134. package/dist/types/logging/local.d.ts.map +1 -0
  135. package/dist/types/logging/logger.d.ts +81 -0
  136. package/dist/types/logging/logger.d.ts.map +1 -0
  137. package/dist/types/logging/noop.d.ts +7 -0
  138. package/dist/types/logging/noop.d.ts.map +1 -0
  139. package/dist/types/logging/sinks.d.ts +91 -0
  140. package/dist/types/logging/sinks.d.ts.map +1 -0
  141. package/dist/types/logging/types.d.ts +97 -0
  142. package/dist/types/logging/types.d.ts.map +1 -0
  143. package/dist/types/logging/utils.d.ts +8 -0
  144. package/dist/types/logging/utils.d.ts.map +1 -0
  145. package/dist/types/rest/restClient.d.ts +35 -0
  146. package/dist/types/rest/restClient.d.ts.map +1 -0
  147. package/dist/types/rest/types.d.ts +25 -0
  148. package/dist/types/rest/types.d.ts.map +1 -0
  149. package/dist/types/tracing/traceHeader.d.ts +83 -0
  150. package/dist/types/tracing/traceHeader.d.ts.map +1 -0
  151. package/dist/types/tracing/updateHeaders.d.ts +25 -0
  152. package/dist/types/tracing/updateHeaders.d.ts.map +1 -0
  153. package/dist/types/transport/alchemy.d.ts +111 -0
  154. package/dist/types/transport/alchemy.d.ts.map +1 -0
  155. package/dist/types/transport/chainRegistry.d.ts +32 -0
  156. package/dist/types/transport/chainRegistry.d.ts.map +1 -0
  157. package/dist/types/transport/connection.d.ts +21 -0
  158. package/dist/types/transport/connection.d.ts.map +1 -0
  159. package/dist/types/transport/connectionSchema.d.ts +125 -0
  160. package/dist/types/transport/connectionSchema.d.ts.map +1 -0
  161. package/dist/types/utils/assertNever.d.ts +9 -0
  162. package/dist/types/utils/assertNever.d.ts.map +1 -0
  163. package/dist/types/utils/bigint.d.ts +25 -0
  164. package/dist/types/utils/bigint.d.ts.map +1 -0
  165. package/dist/types/utils/createEip1193HandlerFactory.d.ts +19 -0
  166. package/dist/types/utils/createEip1193HandlerFactory.d.ts.map +1 -0
  167. package/dist/types/utils/headers.d.ts +8 -0
  168. package/dist/types/utils/headers.d.ts.map +1 -0
  169. package/dist/types/utils/lowerAddress.d.ts +9 -0
  170. package/dist/types/utils/lowerAddress.d.ts.map +1 -0
  171. package/dist/types/utils/raise.d.ts +9 -0
  172. package/dist/types/utils/raise.d.ts.map +1 -0
  173. package/dist/types/utils/types.d.ts +11 -0
  174. package/dist/types/utils/types.d.ts.map +1 -0
  175. package/dist/types/version.d.ts +2 -0
  176. package/dist/types/version.d.ts.map +1 -0
  177. package/package.json +67 -0
  178. package/src/actions/addBreadCrumb.ts +38 -0
  179. package/src/chains.ts +118 -0
  180. package/src/errors/AccountNotFoundError.ts +16 -0
  181. package/src/errors/BaseError.ts +51 -0
  182. package/src/errors/ChainNotFoundError.ts +15 -0
  183. package/src/errors/ConnectionConfigError.ts +22 -0
  184. package/src/errors/FetchError.ts +21 -0
  185. package/src/errors/InvalidRequestError.ts +19 -0
  186. package/src/errors/MethodUnsupportedError.ts +17 -0
  187. package/src/errors/ServerError.ts +21 -0
  188. package/src/index.ts +60 -0
  189. package/src/logging/config.ts +365 -0
  190. package/src/logging/index.ts +20 -0
  191. package/src/logging/local.ts +39 -0
  192. package/src/logging/logger.ts +194 -0
  193. package/src/logging/noop.ts +13 -0
  194. package/src/logging/sinks.ts +115 -0
  195. package/src/logging/types.ts +111 -0
  196. package/src/logging/utils.ts +31 -0
  197. package/src/rest/restClient.ts +64 -0
  198. package/src/rest/types.ts +42 -0
  199. package/src/tracing/traceHeader.ts +154 -0
  200. package/src/tracing/updateHeaders.ts +66 -0
  201. package/src/transport/alchemy.ts +242 -0
  202. package/src/transport/chainRegistry.ts +115 -0
  203. package/src/transport/connection.ts +19 -0
  204. package/src/transport/connectionSchema.ts +145 -0
  205. package/src/utils/assertNever.ts +12 -0
  206. package/src/utils/bigint.ts +58 -0
  207. package/src/utils/createEip1193HandlerFactory.ts +25 -0
  208. package/src/utils/headers.ts +48 -0
  209. package/src/utils/lowerAddress.ts +10 -0
  210. package/src/utils/raise.ts +14 -0
  211. package/src/utils/types.ts +14 -0
  212. package/src/version.ts +3 -0
@@ -0,0 +1,25 @@
1
+ import { BaseError } from "./BaseError.js";
2
+ /**
3
+ * Error class representing a "Fetch Error" error, typically thrown when a fetch request fails.
4
+ */
5
+ export class FetchError extends BaseError {
6
+ /**
7
+ * Initializes a new instance of the error message with a default message indicating that no chain was supplied to the client.
8
+ *
9
+ * @param {string} route - The route that failed to fetch.
10
+ * @param {string} method - The HTTP method that was used.
11
+ * @param {Error} cause - The cause of the error.
12
+ */
13
+ constructor(route, method, cause) {
14
+ super(`[${method}] ${route} failed to fetch`, {
15
+ cause,
16
+ });
17
+ Object.defineProperty(this, "name", {
18
+ enumerable: true,
19
+ configurable: true,
20
+ writable: true,
21
+ value: "FetchError"
22
+ });
23
+ }
24
+ }
25
+ //# sourceMappingURL=FetchError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FetchError.js","sourceRoot":"","sources":["../../../src/errors/FetchError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C;;GAEG;AACH,MAAM,OAAO,UAAW,SAAQ,SAAS;IAGvC;;;;;;OAMG;IACH,YAAY,KAAa,EAAE,MAAc,EAAE,KAAa;QACtD,KAAK,CAAC,IAAI,MAAM,KAAK,KAAK,kBAAkB,EAAE;YAC5C,KAAK;SACN,CAAC,CAAC;QAZI;;;;mBAAO,YAAY;WAAC;IAa7B,CAAC;CACF","sourcesContent":["import { BaseError } from \"./BaseError.js\";\n\n/**\n * Error class representing a \"Fetch Error\" error, typically thrown when a fetch request fails.\n */\nexport class FetchError extends BaseError {\n override name = \"FetchError\";\n\n /**\n * Initializes a new instance of the error message with a default message indicating that no chain was supplied to the client.\n *\n * @param {string} route - The route that failed to fetch.\n * @param {string} method - The HTTP method that was used.\n * @param {Error} cause - The cause of the error.\n */\n constructor(route: string, method: string, cause?: Error) {\n super(`[${method}] ${route} failed to fetch`, {\n cause,\n });\n }\n}\n"]}
@@ -0,0 +1,13 @@
1
+ import { BaseError } from "./BaseError.js";
2
+ /**
3
+ * This error is thrown when an invalid request is made. It extends the `BaseError` class.
4
+ */
5
+ export declare class InvalidRequestError extends BaseError {
6
+ name: string;
7
+ /**
8
+ * Constructor for initializing an InvalidRequestError.
9
+ *
10
+ * @param {string} message - Optional error message. Defaults to "Invalid request" if not provided.
11
+ */
12
+ constructor(message?: string);
13
+ }
@@ -0,0 +1,22 @@
1
+ import { BaseError } from "./BaseError.js";
2
+ /**
3
+ * This error is thrown when an invalid request is made. It extends the `BaseError` class.
4
+ */
5
+ export class InvalidRequestError extends BaseError {
6
+ // TODO: extend this further using docs path as well
7
+ /**
8
+ * Constructor for initializing an InvalidRequestError.
9
+ *
10
+ * @param {string} message - Optional error message. Defaults to "Invalid request" if not provided.
11
+ */
12
+ constructor(message) {
13
+ super(message || "Invalid request");
14
+ Object.defineProperty(this, "name", {
15
+ enumerable: true,
16
+ configurable: true,
17
+ writable: true,
18
+ value: "InvalidRequestError"
19
+ });
20
+ }
21
+ }
22
+ //# sourceMappingURL=InvalidRequestError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InvalidRequestError.js","sourceRoot":"","sources":["../../../src/errors/InvalidRequestError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C;;GAEG;AACH,MAAM,OAAO,mBAAoB,SAAQ,SAAS;IAGhD,oDAAoD;IAEpD;;;;OAIG;IACH,YAAY,OAAgB;QAC1B,KAAK,CAAC,OAAO,IAAI,iBAAiB,CAAC,CAAC;QAV7B;;;;mBAAO,qBAAqB;WAAC;IAWtC,CAAC;CACF","sourcesContent":["import { BaseError } from \"./BaseError.js\";\n\n/**\n * This error is thrown when an invalid request is made. It extends the `BaseError` class.\n */\nexport class InvalidRequestError extends BaseError {\n override name = \"InvalidRequestError\";\n\n // TODO: extend this further using docs path as well\n\n /**\n * Constructor for initializing an InvalidRequestError.\n *\n * @param {string} message - Optional error message. Defaults to \"Invalid request\" if not provided.\n */\n constructor(message?: string) {\n super(message || \"Invalid request\");\n }\n}\n"]}
@@ -0,0 +1,13 @@
1
+ import { BaseError } from "./BaseError.js";
2
+ /**
3
+ * This error is thrown when an unknown method is called. It extends the `BaseError` class.
4
+ */
5
+ export declare class MethodUnsupportedError extends BaseError {
6
+ name: string;
7
+ /**
8
+ * Constructor for initializing an error message indicating the method name that is unsupported.
9
+ *
10
+ * @param {string} method - The name of the unsupported method
11
+ */
12
+ constructor(method: string);
13
+ }
@@ -0,0 +1,21 @@
1
+ import { BaseError } from "./BaseError.js";
2
+ /**
3
+ * This error is thrown when an unknown method is called. It extends the `BaseError` class.
4
+ */
5
+ export class MethodUnsupportedError extends BaseError {
6
+ /**
7
+ * Constructor for initializing an error message indicating the method name that is unsupported.
8
+ *
9
+ * @param {string} method - The name of the unsupported method
10
+ */
11
+ constructor(method) {
12
+ super(`Unsupported method: ${method}`);
13
+ Object.defineProperty(this, "name", {
14
+ enumerable: true,
15
+ configurable: true,
16
+ writable: true,
17
+ value: "MethodUnsupportedError"
18
+ });
19
+ }
20
+ }
21
+ //# sourceMappingURL=MethodUnsupportedError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MethodUnsupportedError.js","sourceRoot":"","sources":["../../../src/errors/MethodUnsupportedError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C;;GAEG;AACH,MAAM,OAAO,sBAAuB,SAAQ,SAAS;IAGnD;;;;OAIG;IACH,YAAY,MAAc;QACxB,KAAK,CAAC,uBAAuB,MAAM,EAAE,CAAC,CAAC;QARhC;;;;mBAAO,wBAAwB;WAAC;IASzC,CAAC;CACF","sourcesContent":["import { BaseError } from \"./BaseError.js\";\n\n/**\n * This error is thrown when an unknown method is called. It extends the `BaseError` class.\n */\nexport class MethodUnsupportedError extends BaseError {\n override name = \"MethodUnsupportedError\";\n\n /**\n * Constructor for initializing an error message indicating the method name that is unsupported.\n *\n * @param {string} method - The name of the unsupported method\n */\n constructor(method: string) {\n super(`Unsupported method: ${method}`);\n }\n}\n"]}
@@ -0,0 +1,15 @@
1
+ import { BaseError } from "./BaseError.js";
2
+ /**
3
+ * Error class representing a "Server Error" error, typically thrown when a server request fails.
4
+ */
5
+ export declare class ServerError extends BaseError {
6
+ name: string;
7
+ /**
8
+ * Initializes a new instance of the error message with a default message indicating that no chain was supplied to the client.
9
+ *
10
+ * @param {string} message - The error message.
11
+ * @param {number} status - The HTTP status code of the error.
12
+ * @param {Error} cause - The cause of the error.
13
+ */
14
+ constructor(message: string, status: number, cause?: Error);
15
+ }
@@ -0,0 +1,25 @@
1
+ import { BaseError } from "./BaseError.js";
2
+ /**
3
+ * Error class representing a "Server Error" error, typically thrown when a server request fails.
4
+ */
5
+ export class ServerError extends BaseError {
6
+ /**
7
+ * Initializes a new instance of the error message with a default message indicating that no chain was supplied to the client.
8
+ *
9
+ * @param {string} message - The error message.
10
+ * @param {number} status - The HTTP status code of the error.
11
+ * @param {Error} cause - The cause of the error.
12
+ */
13
+ constructor(message, status, cause) {
14
+ super(`HTTP request failed with status ${status}: ${message}`, {
15
+ cause,
16
+ });
17
+ Object.defineProperty(this, "name", {
18
+ enumerable: true,
19
+ configurable: true,
20
+ writable: true,
21
+ value: "ServerError"
22
+ });
23
+ }
24
+ }
25
+ //# sourceMappingURL=ServerError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServerError.js","sourceRoot":"","sources":["../../../src/errors/ServerError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C;;GAEG;AACH,MAAM,OAAO,WAAY,SAAQ,SAAS;IAGxC;;;;;;OAMG;IACH,YAAY,OAAe,EAAE,MAAc,EAAE,KAAa;QACxD,KAAK,CAAC,mCAAmC,MAAM,KAAK,OAAO,EAAE,EAAE;YAC7D,KAAK;SACN,CAAC,CAAC;QAZI;;;;mBAAO,aAAa;WAAC;IAa9B,CAAC;CACF","sourcesContent":["import { BaseError } from \"./BaseError.js\";\n\n/**\n * Error class representing a \"Server Error\" error, typically thrown when a server request fails.\n */\nexport class ServerError extends BaseError {\n override name = \"ServerError\";\n\n /**\n * Initializes a new instance of the error message with a default message indicating that no chain was supplied to the client.\n *\n * @param {string} message - The error message.\n * @param {number} status - The HTTP status code of the error.\n * @param {Error} cause - The cause of the error.\n */\n constructor(message: string, status: number, cause?: Error) {\n super(`HTTP request failed with status ${status}: ${message}`, {\n cause,\n });\n }\n}\n"]}
@@ -0,0 +1,29 @@
1
+ export type * from "./rest/restClient.js";
2
+ export type * from "./rest/types.js";
3
+ export { AlchemyRestClient } from "./rest/restClient.js";
4
+ export type * from "./transport/alchemy.js";
5
+ export { alchemyTransport, isAlchemyTransport } from "./transport/alchemy.js";
6
+ export { getAlchemyRpcUrl, isChainSupported, getSupportedChainIds, } from "./transport/chainRegistry.js";
7
+ export type * from "./utils/types.js";
8
+ export { assertNever } from "./utils/assertNever.js";
9
+ export { raise } from "./utils/raise.js";
10
+ export { bigIntMultiply } from "./utils/bigint.js";
11
+ export { lowerAddress } from "./utils/lowerAddress.js";
12
+ export { createEip1193HandlerFactory } from "./utils/createEip1193HandlerFactory.js";
13
+ export type { AlchemyConnectionConfig } from "./transport/connectionSchema.js";
14
+ export { AlchemyConnectionConfigSchema, validateAlchemyConnectionConfig, isAlchemyConnectionConfig, } from "./transport/connectionSchema.js";
15
+ export { BaseError } from "./errors/BaseError.js";
16
+ export { ChainNotFoundError } from "./errors/ChainNotFoundError.js";
17
+ export { AccountNotFoundError } from "./errors/AccountNotFoundError.js";
18
+ export { ConnectionConfigError } from "./errors/ConnectionConfigError.js";
19
+ export { FetchError } from "./errors/FetchError.js";
20
+ export { ServerError } from "./errors/ServerError.js";
21
+ export { InvalidRequestError } from "./errors/InvalidRequestError.js";
22
+ export { MethodUnsupportedError } from "./errors/MethodUnsupportedError.js";
23
+ export type * from "./actions/addBreadCrumb.js";
24
+ export { addBreadCrumb } from "./actions/addBreadCrumb.js";
25
+ export * from "./chains.js";
26
+ export { createLogger } from "./logging/logger.js";
27
+ export { setGlobalLoggerConfig, getGlobalLoggerConfig, LogLevel, isLevelEnabled, isNamespaceEnabled, } from "./logging/config.js";
28
+ export type { DiagnosticsLogger } from "./logging/logger.js";
29
+ export { InMemorySink } from "./logging/sinks.js";
@@ -0,0 +1,27 @@
1
+ export { AlchemyRestClient } from "./rest/restClient.js";
2
+ export { alchemyTransport, isAlchemyTransport } from "./transport/alchemy.js";
3
+ // chain registry utilities
4
+ export { getAlchemyRpcUrl, isChainSupported, getSupportedChainIds, } from "./transport/chainRegistry.js";
5
+ export { assertNever } from "./utils/assertNever.js";
6
+ export { raise } from "./utils/raise.js";
7
+ export { bigIntMultiply } from "./utils/bigint.js";
8
+ export { lowerAddress } from "./utils/lowerAddress.js";
9
+ export { createEip1193HandlerFactory } from "./utils/createEip1193HandlerFactory.js";
10
+ export { AlchemyConnectionConfigSchema, validateAlchemyConnectionConfig, isAlchemyConnectionConfig, } from "./transport/connectionSchema.js";
11
+ // errors
12
+ export { BaseError } from "./errors/BaseError.js";
13
+ export { ChainNotFoundError } from "./errors/ChainNotFoundError.js";
14
+ export { AccountNotFoundError } from "./errors/AccountNotFoundError.js";
15
+ export { ConnectionConfigError } from "./errors/ConnectionConfigError.js";
16
+ export { FetchError } from "./errors/FetchError.js";
17
+ export { ServerError } from "./errors/ServerError.js";
18
+ export { InvalidRequestError } from "./errors/InvalidRequestError.js";
19
+ export { MethodUnsupportedError } from "./errors/MethodUnsupportedError.js";
20
+ export { addBreadCrumb } from "./actions/addBreadCrumb.js";
21
+ // chains (convenience exports for Alchemy-supported chains)
22
+ export * from "./chains.js";
23
+ // diagnostics logging
24
+ export { createLogger } from "./logging/logger.js";
25
+ export { setGlobalLoggerConfig, getGlobalLoggerConfig, LogLevel, isLevelEnabled, isNamespaceEnabled, } from "./logging/config.js";
26
+ export { InMemorySink } from "./logging/sinks.js";
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAIzD,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE9E,2BAA2B;AAC3B,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,8BAA8B,CAAC;AAItC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAC;AAIrF,OAAO,EACL,6BAA6B,EAC7B,+BAA+B,EAC/B,yBAAyB,GAC1B,MAAM,iCAAiC,CAAC;AAEzC,SAAS;AACT,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAI5E,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D,4DAA4D;AAC5D,cAAc,aAAa,CAAC;AAE5B,sBAAsB;AACtB,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,QAAQ,EACR,cAAc,EACd,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC","sourcesContent":["// http\nexport type * from \"./rest/restClient.js\";\nexport type * from \"./rest/types.js\";\nexport { AlchemyRestClient } from \"./rest/restClient.js\";\n\n// transport\nexport type * from \"./transport/alchemy.js\";\nexport { alchemyTransport, isAlchemyTransport } from \"./transport/alchemy.js\";\n\n// chain registry utilities\nexport {\n getAlchemyRpcUrl,\n isChainSupported,\n getSupportedChainIds,\n} from \"./transport/chainRegistry.js\";\n\n// utils\nexport type * from \"./utils/types.js\";\nexport { assertNever } from \"./utils/assertNever.js\";\nexport { raise } from \"./utils/raise.js\";\nexport { bigIntMultiply } from \"./utils/bigint.js\";\nexport { lowerAddress } from \"./utils/lowerAddress.js\";\nexport { createEip1193HandlerFactory } from \"./utils/createEip1193HandlerFactory.js\";\n\n// config\nexport type { AlchemyConnectionConfig } from \"./transport/connectionSchema.js\";\nexport {\n AlchemyConnectionConfigSchema,\n validateAlchemyConnectionConfig,\n isAlchemyConnectionConfig,\n} from \"./transport/connectionSchema.js\";\n\n// errors\nexport { BaseError } from \"./errors/BaseError.js\";\nexport { ChainNotFoundError } from \"./errors/ChainNotFoundError.js\";\nexport { AccountNotFoundError } from \"./errors/AccountNotFoundError.js\";\nexport { ConnectionConfigError } from \"./errors/ConnectionConfigError.js\";\nexport { FetchError } from \"./errors/FetchError.js\";\nexport { ServerError } from \"./errors/ServerError.js\";\nexport { InvalidRequestError } from \"./errors/InvalidRequestError.js\";\nexport { MethodUnsupportedError } from \"./errors/MethodUnsupportedError.js\";\n\n// actions\nexport type * from \"./actions/addBreadCrumb.js\";\nexport { addBreadCrumb } from \"./actions/addBreadCrumb.js\";\n\n// chains (convenience exports for Alchemy-supported chains)\nexport * from \"./chains.js\";\n\n// diagnostics logging\nexport { createLogger } from \"./logging/logger.js\";\nexport {\n setGlobalLoggerConfig,\n getGlobalLoggerConfig,\n LogLevel,\n isLevelEnabled,\n isNamespaceEnabled,\n} from \"./logging/config.js\";\nexport type { DiagnosticsLogger } from \"./logging/logger.js\";\nexport { InMemorySink } from \"./logging/sinks.js\";\n"]}
@@ -0,0 +1,190 @@
1
+ /**
2
+ * Log level constants for controlling diagnostics output.
3
+ * Lower numeric values indicate higher priority (more restrictive filtering).
4
+ *
5
+ * @example
6
+ * ```ts
7
+ * import { LogLevel, setGlobalLoggerConfig } from "@alchemy/common";
8
+ *
9
+ * setGlobalLoggerConfig({ level: LogLevel.DEBUG });
10
+ * ```
11
+ */
12
+ export declare const LogLevel: {
13
+ /** Critical errors only */
14
+ readonly ERROR: 0;
15
+ /** Warnings and errors */
16
+ readonly WARN: 1;
17
+ /** Informational messages, warnings, and errors */
18
+ readonly INFO: 2;
19
+ /** Debug messages and all above */
20
+ readonly DEBUG: 3;
21
+ /** All messages including verbose details */
22
+ readonly VERBOSE: 4;
23
+ };
24
+ export type LogLevel = (typeof LogLevel)[keyof typeof LogLevel];
25
+ /**
26
+ * Configuration for redacting sensitive data in log output.
27
+ */
28
+ export type RedactConfig = {
29
+ /** Predicate function to test if a key should be redacted. Returns true if the key should be redacted. */
30
+ keys?: (key: string) => boolean;
31
+ /** Function to replace redacted values. Defaults to returning "[REDACTED]". */
32
+ replacer?: (value: unknown, key?: string) => unknown;
33
+ };
34
+ /**
35
+ * Configuration for the diagnostics logging system.
36
+ * All properties are optional and will use sensible defaults if not provided.
37
+ */
38
+ export type DiagnosticsConfig = {
39
+ /** Minimum log level to emit. Defaults to INFO in development, ERROR in production. */
40
+ level?: LogLevel;
41
+ /** Configuration for redacting sensitive data in logs. */
42
+ redact?: RedactConfig;
43
+ /** Array of sink functions to receive log entries. Defaults to console sink. */
44
+ sinks?: Array<(entry: LogEntry) => void>;
45
+ /** Disable telemetry headers in requests. Defaults to false. */
46
+ disableTelemetryHeaders?: boolean;
47
+ /** Array of exact namespace strings to allow. If undefined or empty, all namespaces are enabled. Example: ["aa-infra", "wallet-apis"] */
48
+ enabledNamespaces?: string[];
49
+ };
50
+ /**
51
+ * Base context attached to all log entries from a logger instance.
52
+ */
53
+ export type LoggerContextBase = {
54
+ /** Package name (e.g., "@alchemy/aa-infra") */
55
+ package: string;
56
+ /** Package version (e.g., "1.0.0") */
57
+ version: string;
58
+ };
59
+ /**
60
+ * A single log entry emitted by the diagnostics logger.
61
+ */
62
+ export type LogEntry = {
63
+ /** Timestamp in milliseconds since epoch (Date.now()) */
64
+ ts: number;
65
+ /** Log level of this entry */
66
+ level: LogLevel;
67
+ /** Optional namespace for filtering/grouping (e.g., "aa-infra", "wallet-apis") */
68
+ namespace: string | undefined;
69
+ /** The log message */
70
+ message: string;
71
+ /** Optional structured data attached to this log entry */
72
+ data?: Record<string, unknown>;
73
+ /** Package context (name and version) */
74
+ context: LoggerContextBase;
75
+ };
76
+ /**
77
+ * Gets the current global logger configuration.
78
+ * If not yet initialized, returns default configuration based on environment.
79
+ *
80
+ * @returns {Required<DiagnosticsConfig>} The current global configuration with all fields populated
81
+ * @example
82
+ * ```ts
83
+ * import { getGlobalLoggerConfig } from "@alchemy/common";
84
+ *
85
+ * const config = getGlobalLoggerConfig();
86
+ * console.log("Current log level:", config.level);
87
+ * ```
88
+ */
89
+ export declare function getGlobalLoggerConfig(): Required<DiagnosticsConfig>;
90
+ /**
91
+ * Sets the global logger configuration.
92
+ * Partial configuration is supported - unspecified fields retain their current values.
93
+ *
94
+ * Configuration precedence (highest to lowest):
95
+ * 1. Explicit setGlobalLoggerConfig calls
96
+ * 2. ALCHEMY_LOG_LEVEL environment variable
97
+ * 3. Defaults (INFO in dev, ERROR in prod)
98
+ *
99
+ * @param {DiagnosticsConfig} cfg - Partial configuration to apply
100
+ * @example
101
+ * ```ts
102
+ * import { setGlobalLoggerConfig, LogLevel } from "@alchemy/common";
103
+ *
104
+ * // Set log level only
105
+ * setGlobalLoggerConfig({ level: LogLevel.DEBUG });
106
+ *
107
+ * // Add custom sink
108
+ * setGlobalLoggerConfig({
109
+ * sinks: [(entry) => console.log(JSON.stringify(entry))]
110
+ * });
111
+ *
112
+ * // Filter to specific namespaces
113
+ * setGlobalLoggerConfig({
114
+ * enabledNamespaces: ["aa-infra", "wallet-apis"]
115
+ * });
116
+ * ```
117
+ */
118
+ export declare function setGlobalLoggerConfig(cfg: DiagnosticsConfig): void;
119
+ /**
120
+ * Checks if a given log level is enabled based on current global configuration.
121
+ * Used internally by logger to short-circuit disabled log statements.
122
+ *
123
+ * @param {LogLevel} level - The log level to check
124
+ * @returns {boolean} True if the level is enabled (will be logged), false otherwise
125
+ * @example
126
+ * ```ts
127
+ * import { isLevelEnabled, LogLevel } from "@alchemy/common";
128
+ *
129
+ * if (isLevelEnabled(LogLevel.DEBUG)) {
130
+ * // Perform expensive debug computation
131
+ * }
132
+ * ```
133
+ */
134
+ export declare function isLevelEnabled(level: LogLevel): boolean;
135
+ /**
136
+ * Checks if a given namespace is enabled based on current global configuration.
137
+ * Used internally by logger to short-circuit logs from disabled namespaces.
138
+ *
139
+ * @param {string | undefined} namespace - The namespace to check
140
+ * @returns {boolean} True if the namespace is enabled (will be logged), false otherwise
141
+ * @example
142
+ * ```ts
143
+ * import { isNamespaceEnabled } from "@alchemy/common";
144
+ *
145
+ * if (isNamespaceEnabled("aa-infra")) {
146
+ * // This namespace is enabled
147
+ * }
148
+ * ```
149
+ */
150
+ export declare function isNamespaceEnabled(namespace: string | undefined): boolean;
151
+ /**
152
+ * Redacts sensitive keys in an object based on global redaction configuration.
153
+ * Performs deep redaction by recursively processing nested objects and arrays.
154
+ * Default redaction includes: authorization, apiKey, jwt, privateKey, secret, password.
155
+ *
156
+ * @param {Record<string, unknown> | undefined} obj - The object to redact
157
+ * @returns {Record<string, unknown> | undefined} A new object with sensitive values redacted, or undefined if input was undefined
158
+ * @example
159
+ * ```ts
160
+ * import { redactObject } from "@alchemy/common";
161
+ *
162
+ * const data = {
163
+ * apiKey: "secret123",
164
+ * userId: "user-456",
165
+ * nested: { secret: "hidden" }
166
+ * };
167
+ *
168
+ * const redacted = redactObject(data);
169
+ * // { apiKey: "[REDACTED]", userId: "user-456", nested: { secret: "[REDACTED]" } }
170
+ * ```
171
+ */
172
+ export declare function redactObject(obj: Record<string, unknown> | undefined): Record<string, unknown> | undefined;
173
+ /**
174
+ * Default console sink for diagnostics logging.
175
+ * Routes log entries to appropriate console methods based on log level.
176
+ *
177
+ * Format: [HH:MM:SS.mmm] [package@version] message {data}
178
+ *
179
+ * @param {LogEntry} entry - The log entry to output
180
+ * @example
181
+ * ```ts
182
+ * import { consoleSink, setGlobalLoggerConfig } from "@alchemy/common";
183
+ *
184
+ * // Console sink is used by default, but can be explicitly configured
185
+ * setGlobalLoggerConfig({
186
+ * sinks: [consoleSink]
187
+ * });
188
+ * ```
189
+ */
190
+ export declare function consoleSink(entry: LogEntry): void;