@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.
- package/LICENSE +21 -0
- package/dist/esm/actions/addBreadCrumb.d.ts +14 -0
- package/dist/esm/actions/addBreadCrumb.js +27 -0
- package/dist/esm/actions/addBreadCrumb.js.map +1 -0
- package/dist/esm/chains.d.ts +234 -0
- package/dist/esm/chains.js +113 -0
- package/dist/esm/chains.js.map +1 -0
- package/dist/esm/errors/AccountNotFoundError.d.ts +10 -0
- package/dist/esm/errors/AccountNotFoundError.js +19 -0
- package/dist/esm/errors/AccountNotFoundError.js.map +1 -0
- package/dist/esm/errors/BaseError.d.ts +23 -0
- package/dist/esm/errors/BaseError.js +40 -0
- package/dist/esm/errors/BaseError.js.map +1 -0
- package/dist/esm/errors/ChainNotFoundError.d.ts +11 -0
- package/dist/esm/errors/ChainNotFoundError.js +19 -0
- package/dist/esm/errors/ChainNotFoundError.js.map +1 -0
- package/dist/esm/errors/ConnectionConfigError.d.ts +13 -0
- package/dist/esm/errors/ConnectionConfigError.js +25 -0
- package/dist/esm/errors/ConnectionConfigError.js.map +1 -0
- package/dist/esm/errors/FetchError.d.ts +15 -0
- package/dist/esm/errors/FetchError.js +25 -0
- package/dist/esm/errors/FetchError.js.map +1 -0
- package/dist/esm/errors/InvalidRequestError.d.ts +13 -0
- package/dist/esm/errors/InvalidRequestError.js +22 -0
- package/dist/esm/errors/InvalidRequestError.js.map +1 -0
- package/dist/esm/errors/MethodUnsupportedError.d.ts +13 -0
- package/dist/esm/errors/MethodUnsupportedError.js +21 -0
- package/dist/esm/errors/MethodUnsupportedError.js.map +1 -0
- package/dist/esm/errors/ServerError.d.ts +15 -0
- package/dist/esm/errors/ServerError.js +25 -0
- package/dist/esm/errors/ServerError.js.map +1 -0
- package/dist/esm/index.d.ts +29 -0
- package/dist/esm/index.js +27 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/logging/config.d.ts +190 -0
- package/dist/esm/logging/config.js +279 -0
- package/dist/esm/logging/config.js.map +1 -0
- package/dist/esm/logging/index.d.ts +6 -0
- package/dist/esm/logging/index.js +5 -0
- package/dist/esm/logging/index.js.map +1 -0
- package/dist/esm/logging/local.d.ts +10 -0
- package/dist/esm/logging/local.js +35 -0
- package/dist/esm/logging/local.js.map +1 -0
- package/dist/esm/logging/logger.d.ts +80 -0
- package/dist/esm/logging/logger.js +111 -0
- package/dist/esm/logging/logger.js.map +1 -0
- package/dist/esm/logging/noop.d.ts +6 -0
- package/dist/esm/logging/noop.js +12 -0
- package/dist/esm/logging/noop.js.map +1 -0
- package/dist/esm/logging/sinks.d.ts +90 -0
- package/dist/esm/logging/sinks.js +111 -0
- package/dist/esm/logging/sinks.js.map +1 -0
- package/dist/esm/logging/types.d.ts +96 -0
- package/dist/esm/logging/types.js +2 -0
- package/dist/esm/logging/types.js.map +1 -0
- package/dist/esm/logging/utils.d.ts +7 -0
- package/dist/esm/logging/utils.js +21 -0
- package/dist/esm/logging/utils.js.map +1 -0
- package/dist/esm/rest/restClient.d.ts +34 -0
- package/dist/esm/rest/restClient.js +55 -0
- package/dist/esm/rest/restClient.js.map +1 -0
- package/dist/esm/rest/types.d.ts +24 -0
- package/dist/esm/rest/types.js +2 -0
- package/dist/esm/rest/types.js.map +1 -0
- package/dist/esm/tracing/traceHeader.d.ts +82 -0
- package/dist/esm/tracing/traceHeader.js +145 -0
- package/dist/esm/tracing/traceHeader.js.map +1 -0
- package/dist/esm/tracing/updateHeaders.d.ts +24 -0
- package/dist/esm/tracing/updateHeaders.js +61 -0
- package/dist/esm/tracing/updateHeaders.js.map +1 -0
- package/dist/esm/transport/alchemy.d.ts +110 -0
- package/dist/esm/transport/alchemy.js +164 -0
- package/dist/esm/transport/alchemy.js.map +1 -0
- package/dist/esm/transport/chainRegistry.d.ts +31 -0
- package/dist/esm/transport/chainRegistry.js +95 -0
- package/dist/esm/transport/chainRegistry.js.map +1 -0
- package/dist/esm/transport/connection.d.ts +20 -0
- package/dist/esm/transport/connection.js +2 -0
- package/dist/esm/transport/connection.js.map +1 -0
- package/dist/esm/transport/connectionSchema.d.ts +124 -0
- package/dist/esm/transport/connectionSchema.js +121 -0
- package/dist/esm/transport/connectionSchema.js.map +1 -0
- package/dist/esm/utils/assertNever.d.ts +8 -0
- package/dist/esm/utils/assertNever.js +12 -0
- package/dist/esm/utils/assertNever.js.map +1 -0
- package/dist/esm/utils/bigint.d.ts +24 -0
- package/dist/esm/utils/bigint.js +37 -0
- package/dist/esm/utils/bigint.js.map +1 -0
- package/dist/esm/utils/createEip1193HandlerFactory.d.ts +18 -0
- package/dist/esm/utils/createEip1193HandlerFactory.js +11 -0
- package/dist/esm/utils/createEip1193HandlerFactory.js.map +1 -0
- package/dist/esm/utils/headers.d.ts +7 -0
- package/dist/esm/utils/headers.js +29 -0
- package/dist/esm/utils/headers.js.map +1 -0
- package/dist/esm/utils/lowerAddress.d.ts +8 -0
- package/dist/esm/utils/lowerAddress.js +9 -0
- package/dist/esm/utils/lowerAddress.js.map +1 -0
- package/dist/esm/utils/raise.d.ts +8 -0
- package/dist/esm/utils/raise.js +14 -0
- package/dist/esm/utils/raise.js.map +1 -0
- package/dist/esm/utils/types.d.ts +10 -0
- package/dist/esm/utils/types.js +2 -0
- package/dist/esm/utils/types.js.map +1 -0
- package/dist/esm/version.d.ts +1 -0
- package/dist/esm/version.js +4 -0
- package/dist/esm/version.js.map +1 -0
- package/dist/types/actions/addBreadCrumb.d.ts +15 -0
- package/dist/types/actions/addBreadCrumb.d.ts.map +1 -0
- package/dist/types/chains.d.ts +235 -0
- package/dist/types/chains.d.ts.map +1 -0
- package/dist/types/errors/AccountNotFoundError.d.ts +11 -0
- package/dist/types/errors/AccountNotFoundError.d.ts.map +1 -0
- package/dist/types/errors/BaseError.d.ts +24 -0
- package/dist/types/errors/BaseError.d.ts.map +1 -0
- package/dist/types/errors/ChainNotFoundError.d.ts +12 -0
- package/dist/types/errors/ChainNotFoundError.d.ts.map +1 -0
- package/dist/types/errors/ConnectionConfigError.d.ts +14 -0
- package/dist/types/errors/ConnectionConfigError.d.ts.map +1 -0
- package/dist/types/errors/FetchError.d.ts +16 -0
- package/dist/types/errors/FetchError.d.ts.map +1 -0
- package/dist/types/errors/InvalidRequestError.d.ts +14 -0
- package/dist/types/errors/InvalidRequestError.d.ts.map +1 -0
- package/dist/types/errors/MethodUnsupportedError.d.ts +14 -0
- package/dist/types/errors/MethodUnsupportedError.d.ts.map +1 -0
- package/dist/types/errors/ServerError.d.ts +16 -0
- package/dist/types/errors/ServerError.d.ts.map +1 -0
- package/dist/types/index.d.ts +30 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/logging/config.d.ts +191 -0
- package/dist/types/logging/config.d.ts.map +1 -0
- package/dist/types/logging/index.d.ts +7 -0
- package/dist/types/logging/index.d.ts.map +1 -0
- package/dist/types/logging/local.d.ts +11 -0
- package/dist/types/logging/local.d.ts.map +1 -0
- package/dist/types/logging/logger.d.ts +81 -0
- package/dist/types/logging/logger.d.ts.map +1 -0
- package/dist/types/logging/noop.d.ts +7 -0
- package/dist/types/logging/noop.d.ts.map +1 -0
- package/dist/types/logging/sinks.d.ts +91 -0
- package/dist/types/logging/sinks.d.ts.map +1 -0
- package/dist/types/logging/types.d.ts +97 -0
- package/dist/types/logging/types.d.ts.map +1 -0
- package/dist/types/logging/utils.d.ts +8 -0
- package/dist/types/logging/utils.d.ts.map +1 -0
- package/dist/types/rest/restClient.d.ts +35 -0
- package/dist/types/rest/restClient.d.ts.map +1 -0
- package/dist/types/rest/types.d.ts +25 -0
- package/dist/types/rest/types.d.ts.map +1 -0
- package/dist/types/tracing/traceHeader.d.ts +83 -0
- package/dist/types/tracing/traceHeader.d.ts.map +1 -0
- package/dist/types/tracing/updateHeaders.d.ts +25 -0
- package/dist/types/tracing/updateHeaders.d.ts.map +1 -0
- package/dist/types/transport/alchemy.d.ts +111 -0
- package/dist/types/transport/alchemy.d.ts.map +1 -0
- package/dist/types/transport/chainRegistry.d.ts +32 -0
- package/dist/types/transport/chainRegistry.d.ts.map +1 -0
- package/dist/types/transport/connection.d.ts +21 -0
- package/dist/types/transport/connection.d.ts.map +1 -0
- package/dist/types/transport/connectionSchema.d.ts +125 -0
- package/dist/types/transport/connectionSchema.d.ts.map +1 -0
- package/dist/types/utils/assertNever.d.ts +9 -0
- package/dist/types/utils/assertNever.d.ts.map +1 -0
- package/dist/types/utils/bigint.d.ts +25 -0
- package/dist/types/utils/bigint.d.ts.map +1 -0
- package/dist/types/utils/createEip1193HandlerFactory.d.ts +19 -0
- package/dist/types/utils/createEip1193HandlerFactory.d.ts.map +1 -0
- package/dist/types/utils/headers.d.ts +8 -0
- package/dist/types/utils/headers.d.ts.map +1 -0
- package/dist/types/utils/lowerAddress.d.ts +9 -0
- package/dist/types/utils/lowerAddress.d.ts.map +1 -0
- package/dist/types/utils/raise.d.ts +9 -0
- package/dist/types/utils/raise.d.ts.map +1 -0
- package/dist/types/utils/types.d.ts +11 -0
- package/dist/types/utils/types.d.ts.map +1 -0
- package/dist/types/version.d.ts +2 -0
- package/dist/types/version.d.ts.map +1 -0
- package/package.json +67 -0
- package/src/actions/addBreadCrumb.ts +38 -0
- package/src/chains.ts +118 -0
- package/src/errors/AccountNotFoundError.ts +16 -0
- package/src/errors/BaseError.ts +51 -0
- package/src/errors/ChainNotFoundError.ts +15 -0
- package/src/errors/ConnectionConfigError.ts +22 -0
- package/src/errors/FetchError.ts +21 -0
- package/src/errors/InvalidRequestError.ts +19 -0
- package/src/errors/MethodUnsupportedError.ts +17 -0
- package/src/errors/ServerError.ts +21 -0
- package/src/index.ts +60 -0
- package/src/logging/config.ts +365 -0
- package/src/logging/index.ts +20 -0
- package/src/logging/local.ts +39 -0
- package/src/logging/logger.ts +194 -0
- package/src/logging/noop.ts +13 -0
- package/src/logging/sinks.ts +115 -0
- package/src/logging/types.ts +111 -0
- package/src/logging/utils.ts +31 -0
- package/src/rest/restClient.ts +64 -0
- package/src/rest/types.ts +42 -0
- package/src/tracing/traceHeader.ts +154 -0
- package/src/tracing/updateHeaders.ts +66 -0
- package/src/transport/alchemy.ts +242 -0
- package/src/transport/chainRegistry.ts +115 -0
- package/src/transport/connection.ts +19 -0
- package/src/transport/connectionSchema.ts +145 -0
- package/src/utils/assertNever.ts +12 -0
- package/src/utils/bigint.ts +58 -0
- package/src/utils/createEip1193HandlerFactory.ts +25 -0
- package/src/utils/headers.ts +48 -0
- package/src/utils/lowerAddress.ts +10 -0
- package/src/utils/raise.ts +14 -0
- package/src/utils/types.ts +14 -0
- 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;
|