@faremeter/types 0.16.0 → 0.17.1

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.
@@ -1,13 +1,78 @@
1
- import { x402PaymentRequirements } from "./x402.js";
1
+ import type { x402PaymentRequirements as x402PaymentRequirementsV1 } from "./x402.js";
2
+ import type { x402PaymentRequirements } from "./x402v2.js";
3
+ import { type NetworkTranslator } from "./x402-adapters.js";
2
4
  export type RequestContext = {
3
5
  request: RequestInfo | URL;
4
6
  };
5
7
  export type PaymentExecResult = {
6
8
  payload: object;
7
9
  };
10
+ /**
11
+ * Payment execer - the primary interface for payment execution.
12
+ * Uses requirements with the `amount` field.
13
+ */
8
14
  export type PaymentExecer = {
9
15
  requirements: x402PaymentRequirements;
10
16
  exec(): Promise<PaymentExecResult>;
11
17
  };
18
+ /**
19
+ * Payment handler - the primary interface for payment handlers.
20
+ * Receives requirements and returns execers.
21
+ */
12
22
  export type PaymentHandler = (context: RequestContext, accepts: x402PaymentRequirements[]) => Promise<PaymentExecer[]>;
23
+ /**
24
+ * V1 requirements with mimeType guaranteed to be a string.
25
+ * Used for compatibility with legacy handlers that expect mimeType to be required.
26
+ */
27
+ type x402PaymentRequirementsV1Strict = x402PaymentRequirementsV1 & {
28
+ mimeType: string;
29
+ };
30
+ /**
31
+ * @deprecated Use PaymentExecer instead
32
+ */
33
+ export type PaymentExecerV1 = {
34
+ requirements: x402PaymentRequirementsV1;
35
+ exec(): Promise<PaymentExecResult>;
36
+ };
37
+ /**
38
+ * Legacy payment execer type for handlers that expect mimeType to be required.
39
+ * @deprecated Use PaymentExecer instead
40
+ */
41
+ type PaymentExecerV1Strict = {
42
+ requirements: x402PaymentRequirementsV1Strict;
43
+ exec(): Promise<PaymentExecResult>;
44
+ };
45
+ /**
46
+ * @deprecated Use PaymentHandler instead
47
+ */
48
+ export type PaymentHandlerV1 = (context: RequestContext, accepts: x402PaymentRequirementsV1[]) => Promise<PaymentExecerV1[]>;
49
+ /**
50
+ * Legacy payment handler type for handlers that expect mimeType to be required.
51
+ * @deprecated Use PaymentHandler instead
52
+ */
53
+ type PaymentHandlerV1Strict = (context: RequestContext, accepts: x402PaymentRequirementsV1Strict[]) => Promise<PaymentExecerV1Strict[]>;
54
+ /**
55
+ * Adapt a v1 PaymentHandlerV1 to the PaymentHandler interface.
56
+ *
57
+ * This allows existing v1 payment handlers to be used with v2 infrastructure.
58
+ * Requirements are converted from v2 to v1 before being passed to the handler,
59
+ * and the resulting execers are wrapped to convert requirements back to v2.
60
+ *
61
+ * Accepts both spec-compliant handlers (with optional mimeType) and legacy
62
+ * handlers (with required mimeType) for backwards compatibility.
63
+ *
64
+ * @param handler - The v1 payment handler to adapt
65
+ * @param translateNetwork - Function to translate legacy network IDs to CAIP-2
66
+ */
67
+ export declare function adaptPaymentHandlerV1ToV2(handler: PaymentHandlerV1 | PaymentHandlerV1Strict, translateNetwork: NetworkTranslator): PaymentHandler;
68
+ /**
69
+ * Adapt a PaymentHandler to the v1 PaymentHandlerV1 interface.
70
+ *
71
+ * This allows v2 payment handlers to be used with v1 infrastructure.
72
+ *
73
+ * @param handler - The v2 payment handler to adapt
74
+ * @param translateNetwork - Function to translate legacy network IDs to CAIP-2
75
+ */
76
+ export declare function adaptPaymentHandlerV2ToV1(handler: PaymentHandler, translateNetwork: NetworkTranslator): PaymentHandlerV1;
77
+ export {};
13
78
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,QAAQ,CAAC;AAEjD,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,WAAW,GAAG,GAAG,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,YAAY,EAAE,uBAAuB,CAAC;IACtC,IAAI,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,CAC3B,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,uBAAuB,EAAE,KAC/B,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,IAAI,yBAAyB,EAAE,MAAM,QAAQ,CAAC;AACnF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,WAAW,GAAG,GAAG,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,YAAY,EAAE,uBAAuB,CAAC;IACtC,IAAI,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAAC;CACpC,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,CAC3B,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,uBAAuB,EAAE,KAC/B,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;AAE9B;;;GAGG;AACH,KAAK,+BAA+B,GAAG,yBAAyB,GAAG;IACjE,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,YAAY,EAAE,yBAAyB,CAAC;IACxC,IAAI,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAAC;CACpC,CAAC;AAEF;;;GAGG;AACH,KAAK,qBAAqB,GAAG;IAC3B,YAAY,EAAE,+BAA+B,CAAC;IAC9C,IAAI,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAAC;CACpC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAC7B,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,yBAAyB,EAAE,KACjC,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;AAEhC;;;GAGG;AACH,KAAK,sBAAsB,GAAG,CAC5B,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,+BAA+B,EAAE,KAEvC,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC;AAEtC;;;;;;;;;;;;GAYG;AACH,wBAAgB,yBAAyB,CAEvC,OAAO,EAAE,gBAAgB,GAAG,sBAAsB,EAClD,gBAAgB,EAAE,iBAAiB,GAClC,cAAc,CAwBhB;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,cAAc,EACvB,gBAAgB,EAAE,iBAAiB,GAElC,gBAAgB,CAoBlB"}
@@ -1 +1,52 @@
1
- import { x402PaymentRequirements } from "./x402.js";
1
+ import { adaptRequirementsV1ToV2, adaptRequirementsV2ToV1, } from "./x402-adapters.js";
2
+ /**
3
+ * Adapt a v1 PaymentHandlerV1 to the PaymentHandler interface.
4
+ *
5
+ * This allows existing v1 payment handlers to be used with v2 infrastructure.
6
+ * Requirements are converted from v2 to v1 before being passed to the handler,
7
+ * and the resulting execers are wrapped to convert requirements back to v2.
8
+ *
9
+ * Accepts both spec-compliant handlers (with optional mimeType) and legacy
10
+ * handlers (with required mimeType) for backwards compatibility.
11
+ *
12
+ * @param handler - The v1 payment handler to adapt
13
+ * @param translateNetwork - Function to translate legacy network IDs to CAIP-2
14
+ */
15
+ export function adaptPaymentHandlerV1ToV2(
16
+ // eslint-disable-next-line @typescript-eslint/no-deprecated -- adapter for legacy v1 handlers
17
+ handler, translateNetwork) {
18
+ return async (context, accepts) => {
19
+ // Convert v2 requirements to v1 for the handler
20
+ // adaptRequirementsV2ToV1 always provides mimeType as a string
21
+ const v1Accepts = accepts.map((req) => adaptRequirementsV2ToV1(req, { url: "" }));
22
+ // Call the v1 handler - v1Accepts has mimeType: string so it works with both
23
+ // PaymentHandlerV1 and PaymentHandlerV1Strict
24
+ const v1Execers = await handler(context, v1Accepts);
25
+ // Wrap v1 execers to return v2 requirements
26
+ return v1Execers.map((execer) => ({
27
+ requirements: adaptRequirementsV1ToV2(execer.requirements, translateNetwork),
28
+ exec: () => execer.exec(),
29
+ }));
30
+ };
31
+ }
32
+ /**
33
+ * Adapt a PaymentHandler to the v1 PaymentHandlerV1 interface.
34
+ *
35
+ * This allows v2 payment handlers to be used with v1 infrastructure.
36
+ *
37
+ * @param handler - The v2 payment handler to adapt
38
+ * @param translateNetwork - Function to translate legacy network IDs to CAIP-2
39
+ */
40
+ export function adaptPaymentHandlerV2ToV1(handler, translateNetwork) {
41
+ return async (context, accepts) => {
42
+ // Convert v1 requirements to v2 for the handler
43
+ const v2Accepts = accepts.map((req) => adaptRequirementsV1ToV2(req, translateNetwork));
44
+ // Call the v2 handler
45
+ const v2Execers = await handler(context, v2Accepts);
46
+ // Wrap v2 execers to return v1 requirements
47
+ return v2Execers.map((execer) => ({
48
+ requirements: adaptRequirementsV2ToV1(execer.requirements, { url: "" }),
49
+ exec: () => execer.exec(),
50
+ }));
51
+ };
52
+ }
package/dist/src/evm.d.ts CHANGED
@@ -1,8 +1,26 @@
1
+ /**
2
+ * Validator for EVM hex addresses (40 hex characters, optional 0x prefix).
3
+ */
1
4
  export declare const Address: import("arktype/internal/methods/string.ts").StringType<`0x${string}`, {}>;
2
5
  export type Address = typeof Address.infer;
6
+ /**
7
+ * Type guard that checks if a value is a valid EVM address.
8
+ *
9
+ * @param maybe - The value to check
10
+ * @returns True if the value matches the EVM address format
11
+ */
3
12
  export declare function isAddress(maybe: unknown): maybe is Address;
13
+ /**
14
+ * Validator for EVM private keys (64 hex characters with 0x prefix).
15
+ */
4
16
  export declare const PrivateKey: import("arktype/internal/methods/string.ts").StringType<`0x${string}`, {}>;
5
17
  export type PrivateKey = typeof Address.infer;
18
+ /**
19
+ * Type guard that checks if a value is a valid EVM private key.
20
+ *
21
+ * @param maybe - The value to check
22
+ * @returns True if the value matches the private key format
23
+ */
6
24
  export declare function isPrivateKey(maybe: unknown): maybe is PrivateKey;
7
25
  export type ChainInfo = {
8
26
  id: number;
@@ -1 +1 @@
1
- {"version":3,"file":"evm.d.ts","sourceRoot":"","sources":["../../src/evm.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,OAAO,4EAEnB,CAAC;AACF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,KAAK,CAAC;AAE3C,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,OAAO,CAE1D;AAED,eAAO,MAAM,UAAU,4EAEtB,CAAC;AACF,MAAM,MAAM,UAAU,GAAG,OAAO,OAAO,CAAC,KAAK,CAAC;AAE9C,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAEhE;AAKD,MAAM,MAAM,SAAS,GAAG;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG;IACzC,OAAO,EAAE;QACP,OAAO,EAAE;YACP,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;SACzB,CAAC;KACH,CAAC;CACH,CAAC"}
1
+ {"version":3,"file":"evm.d.ts","sourceRoot":"","sources":["../../src/evm.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,eAAO,MAAM,OAAO,4EAEnB,CAAC;AACF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,KAAK,CAAC;AAE3C;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,OAAO,CAE1D;AAED;;GAEG;AACH,eAAO,MAAM,UAAU,4EAEtB,CAAC;AACF,MAAM,MAAM,UAAU,GAAG,OAAO,OAAO,CAAC,KAAK,CAAC;AAE9C;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAEhE;AAGD,MAAM,MAAM,SAAS,GAAG;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG;IACzC,OAAO,EAAE;QACP,OAAO,EAAE;YACP,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;SACzB,CAAC;KACH,CAAC;CACH,CAAC"}
package/dist/src/evm.js CHANGED
@@ -1,10 +1,28 @@
1
1
  import { type } from "arktype";
2
2
  import { isValidationError } from "./validation.js";
3
+ /**
4
+ * Validator for EVM hex addresses (40 hex characters, optional 0x prefix).
5
+ */
3
6
  export const Address = type(/^(0x)?[0-9a-fA-F]{40}$/);
7
+ /**
8
+ * Type guard that checks if a value is a valid EVM address.
9
+ *
10
+ * @param maybe - The value to check
11
+ * @returns True if the value matches the EVM address format
12
+ */
4
13
  export function isAddress(maybe) {
5
14
  return !isValidationError(Address(maybe));
6
15
  }
16
+ /**
17
+ * Validator for EVM private keys (64 hex characters with 0x prefix).
18
+ */
7
19
  export const PrivateKey = type(/^0x[0-9a-fA-F]{64}$/);
20
+ /**
21
+ * Type guard that checks if a value is a valid EVM private key.
22
+ *
23
+ * @param maybe - The value to check
24
+ * @returns True if the value matches the private key format
25
+ */
8
26
  export function isPrivateKey(maybe) {
9
27
  return !isValidationError(PrivateKey(maybe));
10
28
  }
@@ -1,8 +1,29 @@
1
- import { x402PaymentRequirements, x402SettleResponse, x402PaymentPayload, x402SupportedKind, x402VerifyResponse } from "./x402.js";
2
- export type FacilitatorHandler = {
1
+ import type { x402PaymentRequirements, x402SettleResponse, x402PaymentPayload, x402SupportedKind, x402VerifyResponse, x402ResourceInfo } from "./x402v2.js";
2
+ /**
3
+ * Arguments passed to the facilitator's getRequirements method.
4
+ */
5
+ export interface GetRequirementsArgs {
6
+ /** Payment requirements the server is willing to accept */
7
+ accepts: x402PaymentRequirements[];
8
+ /** Optional resource information for the protected content */
9
+ resource?: x402ResourceInfo;
10
+ }
11
+ /**
12
+ * Handler interface implemented by payment scheme facilitators.
13
+ *
14
+ * Each method returns null when the request doesn't match the handler's
15
+ * payment scheme, allowing multiple handlers to be composed.
16
+ */
17
+ export interface FacilitatorHandler {
18
+ /** Returns the payment schemes this handler supports */
3
19
  getSupported?: () => Promise<x402SupportedKind>[];
4
- getRequirements: (req: x402PaymentRequirements[]) => Promise<x402PaymentRequirements[]>;
20
+ /** Filters and enriches payment requirements this handler can process */
21
+ getRequirements: (args: GetRequirementsArgs) => Promise<x402PaymentRequirements[]>;
22
+ /** Verifies a payment without settling it (optional) */
5
23
  handleVerify?: (requirements: x402PaymentRequirements, payment: x402PaymentPayload) => Promise<x402VerifyResponse | null>;
24
+ /** Settles a payment by executing the on-chain transaction */
6
25
  handleSettle: (requirements: x402PaymentRequirements, payment: x402PaymentPayload) => Promise<x402SettleResponse | null>;
7
- };
26
+ /** Returns signer addresses organized by network (optional) */
27
+ getSigners?: () => Promise<Record<string, string[]>>;
28
+ }
8
29
  //# sourceMappingURL=facilitator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"facilitator.d.ts","sourceRoot":"","sources":["../../src/facilitator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,QAAQ,CAAC;AAEhB,MAAM,MAAM,kBAAkB,GAAG;IAC/B,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC;IAClD,eAAe,EAAE,CACf,GAAG,EAAE,uBAAuB,EAAE,KAC3B,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAAC;IACxC,YAAY,CAAC,EAAE,CACb,YAAY,EAAE,uBAAuB,EACrC,OAAO,EAAE,kBAAkB,KACxB,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;IACxC,YAAY,EAAE,CACZ,YAAY,EAAE,uBAAuB,EACrC,OAAO,EAAE,kBAAkB,KACxB,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;CACzC,CAAC"}
1
+ {"version":3,"file":"facilitator.d.ts","sourceRoot":"","sources":["../../src/facilitator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,UAAU,CAAC;AAElB;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,2DAA2D;IAC3D,OAAO,EAAE,uBAAuB,EAAE,CAAC;IACnC,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CAC7B;AAED;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,wDAAwD;IACxD,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC;IAClD,yEAAyE;IACzE,eAAe,EAAE,CACf,IAAI,EAAE,mBAAmB,KACtB,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAAC;IACxC,wDAAwD;IACxD,YAAY,CAAC,EAAE,CACb,YAAY,EAAE,uBAAuB,EACrC,OAAO,EAAE,kBAAkB,KACxB,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;IACxC,8DAA8D;IAC9D,YAAY,EAAE,CACZ,YAAY,EAAE,uBAAuB,EACrC,OAAO,EAAE,kBAAkB,KACxB,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;IACxC,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;CACtD"}
@@ -1 +1 @@
1
- import { x402PaymentRequirements, x402SettleResponse, x402PaymentPayload, x402SupportedKind, x402VerifyResponse, } from "./x402.js";
1
+ export {};
@@ -1,8 +1,51 @@
1
+ /**
2
+ * @title Types Package
3
+ * @sidebarTitle Types
4
+ * @description TypeScript type definitions and validators for the x402 protocol
5
+ * @packageDocumentation
6
+ */
7
+ /**
8
+ * @title x402 Protocol Types (v1)
9
+ * @sidebarTitle Types / x402 v1
10
+ * @description Type definitions for x402 v1 protocol messages and payloads
11
+ */
1
12
  export * as x402 from "./x402.js";
13
+ /**
14
+ * @title x402 Protocol Types (v2)
15
+ * @sidebarTitle Types / x402 v2
16
+ * @description Type definitions for x402 v2 protocol messages and payloads
17
+ */
18
+ export * as x402v2 from "./x402v2.js";
19
+ /**
20
+ * @title x402 Version Adapters
21
+ * @sidebarTitle Types / Adapters
22
+ * @description Conversion utilities between x402 v1 and v2 protocol formats
23
+ */
24
+ export * as x402Adapters from "./x402-adapters.js";
25
+ /**
26
+ * @title Client Types
27
+ * @sidebarTitle Types / Client
28
+ * @description Type definitions for payment handlers and execers
29
+ */
2
30
  export * as client from "./client.js";
31
+ /**
32
+ * @title Facilitator Types
33
+ * @sidebarTitle Types / Facilitator
34
+ * @description Type definitions for facilitator handlers and requirements
35
+ */
3
36
  export * as facilitator from "./facilitator.js";
4
37
  export * from "./validation.js";
5
38
  export * from "./literal.js";
39
+ /**
40
+ * @title Solana Types
41
+ * @sidebarTitle Types / Solana
42
+ * @description Type definitions for Solana base58 addresses
43
+ */
6
44
  export * as solana from "./solana.js";
45
+ /**
46
+ * @title EVM Types
47
+ * @sidebarTitle Types / EVM
48
+ * @description Type definitions for EVM addresses, private keys, and chains
49
+ */
7
50
  export * as evm from "./evm.js";
8
51
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC/B,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,WAAW,MAAM,eAAe,CAAC;AAC7C,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH;;;;GAIG;AACH,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC/B;;;;GAIG;AACH,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC;;;;GAIG;AACH,OAAO,KAAK,YAAY,MAAM,iBAAiB,CAAC;AAChD;;;;GAIG;AACH,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC;;;;GAIG;AACH,OAAO,KAAK,WAAW,MAAM,eAAe,CAAC;AAC7C,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B;;;;GAIG;AACH,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC;;;;GAIG;AACH,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC"}
package/dist/src/index.js CHANGED
@@ -1,7 +1,50 @@
1
+ /**
2
+ * @title Types Package
3
+ * @sidebarTitle Types
4
+ * @description TypeScript type definitions and validators for the x402 protocol
5
+ * @packageDocumentation
6
+ */
7
+ /**
8
+ * @title x402 Protocol Types (v1)
9
+ * @sidebarTitle Types / x402 v1
10
+ * @description Type definitions for x402 v1 protocol messages and payloads
11
+ */
1
12
  export * as x402 from "./x402.js";
13
+ /**
14
+ * @title x402 Protocol Types (v2)
15
+ * @sidebarTitle Types / x402 v2
16
+ * @description Type definitions for x402 v2 protocol messages and payloads
17
+ */
18
+ export * as x402v2 from "./x402v2.js";
19
+ /**
20
+ * @title x402 Version Adapters
21
+ * @sidebarTitle Types / Adapters
22
+ * @description Conversion utilities between x402 v1 and v2 protocol formats
23
+ */
24
+ export * as x402Adapters from "./x402-adapters.js";
25
+ /**
26
+ * @title Client Types
27
+ * @sidebarTitle Types / Client
28
+ * @description Type definitions for payment handlers and execers
29
+ */
2
30
  export * as client from "./client.js";
31
+ /**
32
+ * @title Facilitator Types
33
+ * @sidebarTitle Types / Facilitator
34
+ * @description Type definitions for facilitator handlers and requirements
35
+ */
3
36
  export * as facilitator from "./facilitator.js";
4
37
  export * from "./validation.js";
5
38
  export * from "./literal.js";
39
+ /**
40
+ * @title Solana Types
41
+ * @sidebarTitle Types / Solana
42
+ * @description Type definitions for Solana base58 addresses
43
+ */
6
44
  export * as solana from "./solana.js";
45
+ /**
46
+ * @title EVM Types
47
+ * @sidebarTitle Types / EVM
48
+ * @description Type definitions for EVM addresses, private keys, and chains
49
+ */
7
50
  export * as evm from "./evm.js";
@@ -1,2 +1,10 @@
1
+ /**
2
+ * Creates an arktype validator for case-insensitive string literals.
3
+ *
4
+ * Input strings are lowercased before matching against the allowed values.
5
+ *
6
+ * @param l - The literal string values to accept (case-insensitive)
7
+ * @returns An arktype validator that accepts any case variant of the literals
8
+ */
1
9
  export declare function caseInsensitiveLiteral<T extends string>(...l: T[]): import("arktype/internal/methods/instantiate.ts").instantiateType<(Extract<[((In: string) => import("arktype/internal/attributes.ts").To<string>) & Lowercase<T>] extends [infer t extends " anyOrNever"] ? t : Lowercase<T> extends infer T_1 ? T_1 extends Lowercase<T> ? T_1 extends import("arktype/internal/attributes.ts").InferredMorph<any, infer rOut extends import("arktype").Out<any>> ? (In: string) => rOut : (In: string) => import("arktype/internal/attributes.ts").To<T_1> : never : never, import("arktype/internal/attributes.ts").InferredMorph<any, import("arktype").Out<any>>> extends " anyOrNever" ? never : Extract<[((In: string) => import("arktype/internal/attributes.ts").To<string>) & Lowercase<T>] extends [infer t extends " anyOrNever"] ? t : Lowercase<T> extends infer T_2 ? T_2 extends Lowercase<T> ? T_2 extends import("arktype/internal/attributes.ts").InferredMorph<any, infer rOut extends import("arktype").Out<any>> ? (In: string) => rOut : (In: string) => import("arktype/internal/attributes.ts").To<T_2> : never : never, import("arktype/internal/attributes.ts").InferredMorph<any, import("arktype").Out<any>>> extends import("arktype/internal/attributes.ts").InferredMorph<infer i, infer o extends import("arktype").Out<any>> ? [([((In: string) => import("arktype/internal/attributes.ts").To<string>) & Lowercase<T>] extends [infer t extends " anyOrNever"] ? t : Lowercase<T> extends infer T_3 ? T_3 extends Lowercase<T> ? T_3 extends import("arktype/internal/attributes.ts").InferredMorph<any, infer rOut extends import("arktype").Out<any>> ? (In: string) => rOut : (In: string) => import("arktype/internal/attributes.ts").To<T_3> : never : never) extends infer T_4 ? T_4 extends ([((In: string) => import("arktype/internal/attributes.ts").To<string>) & Lowercase<T>] extends [infer t extends " anyOrNever"] ? t : Lowercase<T> extends infer T_5 ? T_5 extends Lowercase<T> ? T_5 extends import("arktype/internal/attributes.ts").InferredMorph<any, infer rOut extends import("arktype").Out<any>> ? (In: string) => rOut : (In: string) => import("arktype/internal/attributes.ts").To<T_5> : never : never) ? T_4 extends import("arktype/internal/attributes.ts").InferredMorph<any, infer o_1 extends import("arktype").Out<any>> ? [o_1] extends [import("arktype/internal/attributes.ts").To<infer unwrappedOut>] ? import("arktype/internal/attributes.ts").To<unwrappedOut> : o_1 : never : never : never] extends [o] ? (In: ([((In: string) => import("arktype/internal/attributes.ts").To<string>) & Lowercase<T>] extends [infer t extends " anyOrNever"] ? t : Lowercase<T> extends infer T_6 ? T_6 extends Lowercase<T> ? T_6 extends import("arktype/internal/attributes.ts").InferredMorph<any, infer rOut extends import("arktype").Out<any>> ? (In: string) => rOut : (In: string) => import("arktype/internal/attributes.ts").To<T_6> : never : never) extends infer T_7 ? T_7 extends ([((In: string) => import("arktype/internal/attributes.ts").To<string>) & Lowercase<T>] extends [infer t extends " anyOrNever"] ? t : Lowercase<T> extends infer T_8 ? T_8 extends Lowercase<T> ? T_8 extends import("arktype/internal/attributes.ts").InferredMorph<any, infer rOut extends import("arktype").Out<any>> ? (In: string) => rOut : (In: string) => import("arktype/internal/attributes.ts").To<T_8> : never : never) ? T_7 extends import("arktype/internal/attributes.ts").InferredMorph<infer i_1, import("arktype").Out<any>> ? i_1 : never : never : never) => o & (([((In: string) => import("arktype/internal/attributes.ts").To<string>) & Lowercase<T>] extends [infer t extends " anyOrNever"] ? t : Lowercase<T> extends infer T_9 ? T_9 extends Lowercase<T> ? T_9 extends import("arktype/internal/attributes.ts").InferredMorph<any, infer rOut extends import("arktype").Out<any>> ? (In: string) => rOut : (In: string) => import("arktype/internal/attributes.ts").To<T_9> : never : never) extends infer T_10 ? T_10 extends ([((In: string) => import("arktype/internal/attributes.ts").To<string>) & Lowercase<T>] extends [infer t extends " anyOrNever"] ? t : Lowercase<T> extends infer T_11 ? T_11 extends Lowercase<T> ? T_11 extends import("arktype/internal/attributes.ts").InferredMorph<any, infer rOut extends import("arktype").Out<any>> ? (In: string) => rOut : (In: string) => import("arktype/internal/attributes.ts").To<T_11> : never : never) ? T_10 extends import("arktype/internal/attributes.ts").InferredMorph<any, infer o_1 extends import("arktype").Out<any>> ? [o_1] extends [import("arktype/internal/attributes.ts").To<infer unwrappedOut>] ? import("arktype/internal/attributes.ts").To<unwrappedOut> : o_1 : never : never : never) : [([((In: string) => import("arktype/internal/attributes.ts").To<string>) & Lowercase<T>] extends [infer t extends " anyOrNever"] ? t : Lowercase<T> extends infer T_6 ? T_6 extends Lowercase<T> ? T_6 extends import("arktype/internal/attributes.ts").InferredMorph<any, infer rOut extends import("arktype").Out<any>> ? (In: string) => rOut : (In: string) => import("arktype/internal/attributes.ts").To<T_6> : never : never) extends infer T_7 ? T_7 extends ([((In: string) => import("arktype/internal/attributes.ts").To<string>) & Lowercase<T>] extends [infer t extends " anyOrNever"] ? t : Lowercase<T> extends infer T_8 ? T_8 extends Lowercase<T> ? T_8 extends import("arktype/internal/attributes.ts").InferredMorph<any, infer rOut extends import("arktype").Out<any>> ? (In: string) => rOut : (In: string) => import("arktype/internal/attributes.ts").To<T_8> : never : never) ? T_7 extends import("arktype/internal/attributes.ts").InferredMorph<infer i_1, import("arktype").Out<any>> ? i_1 : never : never : never] extends [i] ? (In: i & (([((In: string) => import("arktype/internal/attributes.ts").To<string>) & Lowercase<T>] extends [infer t extends " anyOrNever"] ? t : Lowercase<T> extends infer T_9 ? T_9 extends Lowercase<T> ? T_9 extends import("arktype/internal/attributes.ts").InferredMorph<any, infer rOut extends import("arktype").Out<any>> ? (In: string) => rOut : (In: string) => import("arktype/internal/attributes.ts").To<T_9> : never : never) extends infer T_10 ? T_10 extends ([((In: string) => import("arktype/internal/attributes.ts").To<string>) & Lowercase<T>] extends [infer t extends " anyOrNever"] ? t : Lowercase<T> extends infer T_11 ? T_11 extends Lowercase<T> ? T_11 extends import("arktype/internal/attributes.ts").InferredMorph<any, infer rOut extends import("arktype").Out<any>> ? (In: string) => rOut : (In: string) => import("arktype/internal/attributes.ts").To<T_11> : never : never) ? T_10 extends import("arktype/internal/attributes.ts").InferredMorph<infer i_1, import("arktype").Out<any>> ? i_1 : never : never : never)) => ([((In: string) => import("arktype/internal/attributes.ts").To<string>) & Lowercase<T>] extends [infer t extends " anyOrNever"] ? t : Lowercase<T> extends infer T_12 ? T_12 extends Lowercase<T> ? T_12 extends import("arktype/internal/attributes.ts").InferredMorph<any, infer rOut extends import("arktype").Out<any>> ? (In: string) => rOut : (In: string) => import("arktype/internal/attributes.ts").To<T_12> : never : never) extends infer T_13 ? T_13 extends ([((In: string) => import("arktype/internal/attributes.ts").To<string>) & Lowercase<T>] extends [infer t extends " anyOrNever"] ? t : Lowercase<T> extends infer T_14 ? T_14 extends Lowercase<T> ? T_14 extends import("arktype/internal/attributes.ts").InferredMorph<any, infer rOut extends import("arktype").Out<any>> ? (In: string) => rOut : (In: string) => import("arktype/internal/attributes.ts").To<T_14> : never : never) ? T_13 extends import("arktype/internal/attributes.ts").InferredMorph<any, infer o_1 extends import("arktype").Out<any>> ? [o_1] extends [import("arktype/internal/attributes.ts").To<infer unwrappedOut>] ? import("arktype/internal/attributes.ts").To<unwrappedOut> : o_1 : never : never : never : [((In: string) => import("arktype/internal/attributes.ts").To<string>) & Lowercase<T>] extends [infer t extends " anyOrNever"] ? t : Lowercase<T> extends infer T_9 ? T_9 extends Lowercase<T> ? T_9 extends import("arktype/internal/attributes.ts").InferredMorph<any, infer rOut extends import("arktype").Out<any>> ? (In: string) => rOut : (In: string) => import("arktype/internal/attributes.ts").To<T_9> : never : never : never) | Exclude<[((In: string) => import("arktype/internal/attributes.ts").To<string>) & Lowercase<T>] extends [infer t extends " anyOrNever"] ? t : Lowercase<T> extends infer T_10 ? T_10 extends Lowercase<T> ? T_10 extends import("arktype/internal/attributes.ts").InferredMorph<any, infer rOut extends import("arktype").Out<any>> ? (In: string) => rOut : (In: string) => import("arktype/internal/attributes.ts").To<T_10> : never : never, import("arktype/internal/attributes.ts").InferredMorph<any, import("arktype").Out<any>>> extends infer _ ? _ : never, {}> extends infer T_11 ? T_11 extends import("arktype/internal/methods/instantiate.ts").instantiateType<(Extract<[((In: string) => import("arktype/internal/attributes.ts").To<string>) & Lowercase<T>] extends [infer t extends " anyOrNever"] ? t : Lowercase<T> extends infer T_12 ? T_12 extends Lowercase<T> ? T_12 extends import("arktype/internal/attributes.ts").InferredMorph<any, infer rOut extends import("arktype").Out<any>> ? (In: string) => rOut : (In: string) => import("arktype/internal/attributes.ts").To<T_12> : never : never, import("arktype/internal/attributes.ts").InferredMorph<any, import("arktype").Out<any>>> extends " anyOrNever" ? never : Extract<[((In: string) => import("arktype/internal/attributes.ts").To<string>) & Lowercase<T>] extends [infer t extends " anyOrNever"] ? t : Lowercase<T> extends infer T_13 ? T_13 extends Lowercase<T> ? T_13 extends import("arktype/internal/attributes.ts").InferredMorph<any, infer rOut extends import("arktype").Out<any>> ? (In: string) => rOut : (In: string) => import("arktype/internal/attributes.ts").To<T_13> : never : never, import("arktype/internal/attributes.ts").InferredMorph<any, import("arktype").Out<any>>> extends import("arktype/internal/attributes.ts").InferredMorph<infer i, infer o extends import("arktype").Out<any>> ? [([((In: string) => import("arktype/internal/attributes.ts").To<string>) & Lowercase<T>] extends [infer t extends " anyOrNever"] ? t : Lowercase<T> extends infer T_14 ? T_14 extends Lowercase<T> ? T_14 extends import("arktype/internal/attributes.ts").InferredMorph<any, infer rOut extends import("arktype").Out<any>> ? (In: string) => rOut : (In: string) => import("arktype/internal/attributes.ts").To<T_14> : never : never) extends infer T_15 ? T_15 extends ([((In: string) => import("arktype/internal/attributes.ts").To<string>) & Lowercase<T>] extends [infer t extends " anyOrNever"] ? t : Lowercase<T> extends infer T_16 ? T_16 extends Lowercase<T> ? T_16 extends import("arktype/internal/attributes.ts").InferredMorph<any, infer rOut extends import("arktype").Out<any>> ? (In: string) => rOut : (In: string) => import("arktype/internal/attributes.ts").To<T_16> : never : never) ? T_15 extends import("arktype/internal/attributes.ts").InferredMorph<any, infer o_1 extends import("arktype").Out<any>> ? [o_1] extends [import("arktype/internal/attributes.ts").To<infer unwrappedOut>] ? import("arktype/internal/attributes.ts").To<unwrappedOut> : o_1 : never : never : never] extends [o] ? (In: ([((In: string) => import("arktype/internal/attributes.ts").To<string>) & Lowercase<T>] extends [infer t extends " anyOrNever"] ? t : Lowercase<T> extends infer T_17 ? T_17 extends Lowercase<T> ? T_17 extends import("arktype/internal/attributes.ts").InferredMorph<any, infer rOut extends import("arktype").Out<any>> ? (In: string) => rOut : (In: string) => import("arktype/internal/attributes.ts").To<T_17> : never : never) extends infer T_18 ? T_18 extends ([((In: string) => import("arktype/internal/attributes.ts").To<string>) & Lowercase<T>] extends [infer t extends " anyOrNever"] ? t : Lowercase<T> extends infer T_19 ? T_19 extends Lowercase<T> ? T_19 extends import("arktype/internal/attributes.ts").InferredMorph<any, infer rOut extends import("arktype").Out<any>> ? (In: string) => rOut : (In: string) => import("arktype/internal/attributes.ts").To<T_19> : never : never) ? T_18 extends import("arktype/internal/attributes.ts").InferredMorph<infer i_1, import("arktype").Out<any>> ? i_1 : never : never : never) => o & (([((In: string) => import("arktype/internal/attributes.ts").To<string>) & Lowercase<T>] extends [infer t extends " anyOrNever"] ? t : Lowercase<T> extends infer T_20 ? T_20 extends Lowercase<T> ? T_20 extends import("arktype/internal/attributes.ts").InferredMorph<any, infer rOut extends import("arktype").Out<any>> ? (In: string) => rOut : (In: string) => import("arktype/internal/attributes.ts").To<T_20> : never : never) extends infer T_21 ? T_21 extends ([((In: string) => import("arktype/internal/attributes.ts").To<string>) & Lowercase<T>] extends [infer t extends " anyOrNever"] ? t : Lowercase<T> extends infer T_22 ? T_22 extends Lowercase<T> ? T_22 extends import("arktype/internal/attributes.ts").InferredMorph<any, infer rOut extends import("arktype").Out<any>> ? (In: string) => rOut : (In: string) => import("arktype/internal/attributes.ts").To<T_22> : never : never) ? T_21 extends import("arktype/internal/attributes.ts").InferredMorph<any, infer o_1 extends import("arktype").Out<any>> ? [o_1] extends [import("arktype/internal/attributes.ts").To<infer unwrappedOut>] ? import("arktype/internal/attributes.ts").To<unwrappedOut> : o_1 : never : never : never) : [([((In: string) => import("arktype/internal/attributes.ts").To<string>) & Lowercase<T>] extends [infer t extends " anyOrNever"] ? t : Lowercase<T> extends infer T_17 ? T_17 extends Lowercase<T> ? T_17 extends import("arktype/internal/attributes.ts").InferredMorph<any, infer rOut extends import("arktype").Out<any>> ? (In: string) => rOut : (In: string) => import("arktype/internal/attributes.ts").To<T_17> : never : never) extends infer T_18 ? T_18 extends ([((In: string) => import("arktype/internal/attributes.ts").To<string>) & Lowercase<T>] extends [infer t extends " anyOrNever"] ? t : Lowercase<T> extends infer T_19 ? T_19 extends Lowercase<T> ? T_19 extends import("arktype/internal/attributes.ts").InferredMorph<any, infer rOut extends import("arktype").Out<any>> ? (In: string) => rOut : (In: string) => import("arktype/internal/attributes.ts").To<T_19> : never : never) ? T_18 extends import("arktype/internal/attributes.ts").InferredMorph<infer i_1, import("arktype").Out<any>> ? i_1 : never : never : never] extends [i] ? (In: i & (([((In: string) => import("arktype/internal/attributes.ts").To<string>) & Lowercase<T>] extends [infer t extends " anyOrNever"] ? t : Lowercase<T> extends infer T_20 ? T_20 extends Lowercase<T> ? T_20 extends import("arktype/internal/attributes.ts").InferredMorph<any, infer rOut extends import("arktype").Out<any>> ? (In: string) => rOut : (In: string) => import("arktype/internal/attributes.ts").To<T_20> : never : never) extends infer T_21 ? T_21 extends ([((In: string) => import("arktype/internal/attributes.ts").To<string>) & Lowercase<T>] extends [infer t extends " anyOrNever"] ? t : Lowercase<T> extends infer T_22 ? T_22 extends Lowercase<T> ? T_22 extends import("arktype/internal/attributes.ts").InferredMorph<any, infer rOut extends import("arktype").Out<any>> ? (In: string) => rOut : (In: string) => import("arktype/internal/attributes.ts").To<T_22> : never : never) ? T_21 extends import("arktype/internal/attributes.ts").InferredMorph<infer i_1, import("arktype").Out<any>> ? i_1 : never : never : never)) => ([((In: string) => import("arktype/internal/attributes.ts").To<string>) & Lowercase<T>] extends [infer t extends " anyOrNever"] ? t : Lowercase<T> extends infer T_23 ? T_23 extends Lowercase<T> ? T_23 extends import("arktype/internal/attributes.ts").InferredMorph<any, infer rOut extends import("arktype").Out<any>> ? (In: string) => rOut : (In: string) => import("arktype/internal/attributes.ts").To<T_23> : never : never) extends infer T_24 ? T_24 extends ([((In: string) => import("arktype/internal/attributes.ts").To<string>) & Lowercase<T>] extends [infer t extends " anyOrNever"] ? t : Lowercase<T> extends infer T_25 ? T_25 extends Lowercase<T> ? T_25 extends import("arktype/internal/attributes.ts").InferredMorph<any, infer rOut extends import("arktype").Out<any>> ? (In: string) => rOut : (In: string) => import("arktype/internal/attributes.ts").To<T_25> : never : never) ? T_24 extends import("arktype/internal/attributes.ts").InferredMorph<any, infer o_1 extends import("arktype").Out<any>> ? [o_1] extends [import("arktype/internal/attributes.ts").To<infer unwrappedOut>] ? import("arktype/internal/attributes.ts").To<unwrappedOut> : o_1 : never : never : never : [((In: string) => import("arktype/internal/attributes.ts").To<string>) & Lowercase<T>] extends [infer t extends " anyOrNever"] ? t : Lowercase<T> extends infer T_20 ? T_20 extends Lowercase<T> ? T_20 extends import("arktype/internal/attributes.ts").InferredMorph<any, infer rOut extends import("arktype").Out<any>> ? (In: string) => rOut : (In: string) => import("arktype/internal/attributes.ts").To<T_20> : never : never : never) | Exclude<[((In: string) => import("arktype/internal/attributes.ts").To<string>) & Lowercase<T>] extends [infer t extends " anyOrNever"] ? t : Lowercase<T> extends infer T_21 ? T_21 extends Lowercase<T> ? T_21 extends import("arktype/internal/attributes.ts").InferredMorph<any, infer rOut extends import("arktype").Out<any>> ? (In: string) => rOut : (In: string) => import("arktype/internal/attributes.ts").To<T_21> : never : never, import("arktype/internal/attributes.ts").InferredMorph<any, import("arktype").Out<any>>> extends infer _ ? _ : never, {}> ? T_11 extends infer __1 ? __1 : never : never : never;
2
10
  //# sourceMappingURL=literal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"literal.d.ts","sourceRoot":"","sources":["../../src/literal.ts"],"names":[],"mappings":"AAEA,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,y6iBAMjE"}
1
+ {"version":3,"file":"literal.d.ts","sourceRoot":"","sources":["../../src/literal.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,y6iBAMjE"}
@@ -1,4 +1,12 @@
1
1
  import { type } from "arktype";
2
+ /**
3
+ * Creates an arktype validator for case-insensitive string literals.
4
+ *
5
+ * Input strings are lowercased before matching against the allowed values.
6
+ *
7
+ * @param l - The literal string values to accept (case-insensitive)
8
+ * @returns An arktype validator that accepts any case variant of the literals
9
+ */
2
10
  export function caseInsensitiveLiteral(...l) {
3
11
  return type("string.lower").to(type.enumerated(...l.map((s) => s.toLowerCase())));
4
12
  }
@@ -1,4 +1,62 @@
1
+ /**
2
+ * Validator for Solana base58-encoded addresses.
3
+ */
1
4
  export declare const Base58Address: import("arktype/internal/methods/string.ts").StringType<string, {}>;
2
5
  export type Base58Address = typeof Base58Address.infer;
6
+ /**
7
+ * Type guard that checks if a value is a valid Solana base58 address.
8
+ *
9
+ * @param maybe - The value to check
10
+ * @returns True if the value matches the base58 address format
11
+ */
3
12
  export declare function isBaseAddress(maybe: unknown): maybe is Base58Address;
13
+ /**
14
+ * Validator for Solana cluster names.
15
+ */
16
+ export declare const SolanaCluster: import("arktype/internal/methods/string.ts").StringType<"mainnet-beta" | "devnet" | "testnet", {}>;
17
+ export type SolanaCluster = typeof SolanaCluster.infer;
18
+ /**
19
+ * Type guard that checks if a value is a valid Solana cluster name.
20
+ *
21
+ * @param maybe - The value to check
22
+ * @returns True if the value is a known cluster name
23
+ */
24
+ export declare function isSolanaCluster(maybe: unknown): maybe is SolanaCluster;
25
+ /**
26
+ * Validator for Solana CAIP-2 network identifier strings.
27
+ *
28
+ * Format: solana:<genesis-hash> where genesis-hash is base58-encoded.
29
+ */
30
+ export declare const SolanaCAIP2NetworkString: import("arktype/internal/methods/string.ts").StringType<string, {}>;
31
+ /**
32
+ * Type guard that checks if a value is a valid Solana CAIP-2 network string.
33
+ *
34
+ * @param maybe - The value to check
35
+ * @returns True if the value matches the Solana CAIP-2 format
36
+ */
37
+ export declare function isSolanaCAIP2NetworkString(maybe: unknown): maybe is string;
38
+ /**
39
+ * Solana network identifier with associated metadata.
40
+ */
41
+ export type SolanaCAIP2Network = {
42
+ readonly hash: string;
43
+ readonly name?: string;
44
+ readonly caip2: string;
45
+ };
46
+ /**
47
+ * Type guard that checks if a value is a SolanaCAIP2Network object.
48
+ *
49
+ * @param maybe - The value to check
50
+ * @returns True if the value is a SolanaCAIP2Network object
51
+ */
52
+ export declare function isSolanaCAIP2Network(maybe: unknown): maybe is SolanaCAIP2Network;
53
+ /**
54
+ * Creates a SolanaCAIP2Network object from a CAIP-2 string.
55
+ *
56
+ * @param caip2 - The CAIP-2 network identifier string (e.g., "solana:5eykt...")
57
+ * @param name - Optional display name for the network
58
+ * @returns A SolanaCAIP2Network object
59
+ * @throws Error if the CAIP-2 string is invalid
60
+ */
61
+ export declare function createSolanaNetwork(caip2: string, name?: string): SolanaCAIP2Network;
4
62
  //# sourceMappingURL=solana.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"solana.d.ts","sourceRoot":"","sources":["../../src/solana.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,aAAa,qEAAwC,CAAC;AACnE,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAC,KAAK,CAAC;AAEvD,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,aAAa,CAEpE"}
1
+ {"version":3,"file":"solana.d.ts","sourceRoot":"","sources":["../../src/solana.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,eAAO,MAAM,aAAa,qEAAwC,CAAC;AACnE,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAC,KAAK,CAAC;AAEvD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,aAAa,CAEpE;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,oGAAgD,CAAC;AAC3E,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAC,KAAK,CAAC;AAEvD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,aAAa,CAEtE;AAED;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,qEAAyC,CAAC;AAE/E;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAE1E;AAED;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,kBAAkB,CAO7B;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,MAAM,GACZ,kBAAkB,CAYpB"}
@@ -1,6 +1,76 @@
1
1
  import { type } from "arktype";
2
2
  import { isValidationError } from "./validation.js";
3
+ /**
4
+ * Validator for Solana base58-encoded addresses.
5
+ */
3
6
  export const Base58Address = type(/^[1-9A-HJ-NP-Za-km-z]{32,44}$/);
7
+ /**
8
+ * Type guard that checks if a value is a valid Solana base58 address.
9
+ *
10
+ * @param maybe - The value to check
11
+ * @returns True if the value matches the base58 address format
12
+ */
4
13
  export function isBaseAddress(maybe) {
5
14
  return !isValidationError(Base58Address(maybe));
6
15
  }
16
+ /**
17
+ * Validator for Solana cluster names.
18
+ */
19
+ export const SolanaCluster = type("'mainnet-beta' | 'devnet' | 'testnet'");
20
+ /**
21
+ * Type guard that checks if a value is a valid Solana cluster name.
22
+ *
23
+ * @param maybe - The value to check
24
+ * @returns True if the value is a known cluster name
25
+ */
26
+ export function isSolanaCluster(maybe) {
27
+ return !isValidationError(SolanaCluster(maybe));
28
+ }
29
+ /**
30
+ * Validator for Solana CAIP-2 network identifier strings.
31
+ *
32
+ * Format: solana:<genesis-hash> where genesis-hash is base58-encoded.
33
+ */
34
+ export const SolanaCAIP2NetworkString = type(/^solana:[1-9A-HJ-NP-Za-km-z]+$/);
35
+ /**
36
+ * Type guard that checks if a value is a valid Solana CAIP-2 network string.
37
+ *
38
+ * @param maybe - The value to check
39
+ * @returns True if the value matches the Solana CAIP-2 format
40
+ */
41
+ export function isSolanaCAIP2NetworkString(maybe) {
42
+ return !isValidationError(SolanaCAIP2NetworkString(maybe));
43
+ }
44
+ /**
45
+ * Type guard that checks if a value is a SolanaCAIP2Network object.
46
+ *
47
+ * @param maybe - The value to check
48
+ * @returns True if the value is a SolanaCAIP2Network object
49
+ */
50
+ export function isSolanaCAIP2Network(maybe) {
51
+ return (typeof maybe === "object" &&
52
+ maybe !== null &&
53
+ "hash" in maybe &&
54
+ "caip2" in maybe);
55
+ }
56
+ /**
57
+ * Creates a SolanaCAIP2Network object from a CAIP-2 string.
58
+ *
59
+ * @param caip2 - The CAIP-2 network identifier string (e.g., "solana:5eykt...")
60
+ * @param name - Optional display name for the network
61
+ * @returns A SolanaCAIP2Network object
62
+ * @throws Error if the CAIP-2 string is invalid
63
+ */
64
+ export function createSolanaNetwork(caip2, name) {
65
+ if (!isSolanaCAIP2NetworkString(caip2)) {
66
+ throw new Error(`Invalid Solana CAIP-2 network: ${caip2}`);
67
+ }
68
+ const hash = caip2.slice(7);
69
+ return {
70
+ hash,
71
+ ...(name !== undefined && { name }),
72
+ get caip2() {
73
+ return `solana:${this.hash}`;
74
+ },
75
+ };
76
+ }
@@ -1,4 +1,17 @@
1
1
  import { type } from "arktype";
2
+ /**
3
+ * Type guard that checks if a value is an arktype validation error.
4
+ *
5
+ * @param possibleErrors - The value to check
6
+ * @returns True if the value is a validation error
7
+ */
2
8
  export declare function isValidationError(possibleErrors: unknown): possibleErrors is type.errors;
9
+ /**
10
+ * Throws an error with the validation error messages appended.
11
+ *
12
+ * @param message - Context message describing what was being validated
13
+ * @param errors - The arktype validation errors
14
+ * @throws Error with the message and error details
15
+ */
3
16
  export declare function throwValidationError(message: string, errors: type.errors): never;
4
17
  //# sourceMappingURL=validation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE/B,wBAAgB,iBAAiB,CAC/B,cAAc,EAAE,OAAO,GACtB,cAAc,IAAI,IAAI,CAAC,MAAM,CAE/B;AAED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,IAAI,CAAC,MAAM,GAClB,KAAK,CAEP"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE/B;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,cAAc,EAAE,OAAO,GACtB,cAAc,IAAI,IAAI,CAAC,MAAM,CAE/B;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,IAAI,CAAC,MAAM,GAClB,KAAK,CAEP"}
@@ -1,7 +1,20 @@
1
1
  import { type } from "arktype";
2
+ /**
3
+ * Type guard that checks if a value is an arktype validation error.
4
+ *
5
+ * @param possibleErrors - The value to check
6
+ * @returns True if the value is a validation error
7
+ */
2
8
  export function isValidationError(possibleErrors) {
3
9
  return possibleErrors instanceof type.errors;
4
10
  }
11
+ /**
12
+ * Throws an error with the validation error messages appended.
13
+ *
14
+ * @param message - Context message describing what was being validated
15
+ * @param errors - The arktype validation errors
16
+ * @throws Error with the message and error details
17
+ */
5
18
  export function throwValidationError(message, errors) {
6
19
  throw new Error(message + ": " + errors.map((e) => e.message).join(","));
7
20
  }