agentmail 0.2.20 → 0.3.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.
@@ -43,8 +43,8 @@ function normalizeClientOptions(options) {
43
43
  const headers = (0, headers_js_1.mergeHeaders)({
44
44
  "X-Fern-Language": "JavaScript",
45
45
  "X-Fern-SDK-Name": "agentmail",
46
- "X-Fern-SDK-Version": "0.2.20",
47
- "User-Agent": "agentmail/0.2.20",
46
+ "X-Fern-SDK-Version": "0.3.0",
47
+ "User-Agent": "agentmail/0.3.0",
48
48
  "X-Fern-Runtime": core.RUNTIME.type,
49
49
  "X-Fern-Runtime-Version": core.RUNTIME.version,
50
50
  }, options === null || options === void 0 ? void 0 : options.headers);
@@ -11,9 +11,13 @@ export declare const AgentMailEnvironment: {
11
11
  readonly http: "https://x402.api.agentmail.to";
12
12
  readonly websockets: "wss://x402.ws.agentmail.to";
13
13
  };
14
+ readonly ProdMpp: {
15
+ readonly http: "https://mpp.api.agentmail.to";
16
+ readonly websockets: "wss://mpp.ws.agentmail.to";
17
+ };
14
18
  readonly EuProd: {
15
19
  readonly http: "https://api.agentmail.eu";
16
20
  readonly websockets: "wss://ws.agentmail.eu";
17
21
  };
18
22
  };
19
- export type AgentMailEnvironment = typeof AgentMailEnvironment.Prod | typeof AgentMailEnvironment.ProdX402 | typeof AgentMailEnvironment.EuProd;
23
+ export type AgentMailEnvironment = typeof AgentMailEnvironment.Prod | typeof AgentMailEnvironment.ProdX402 | typeof AgentMailEnvironment.ProdMpp | typeof AgentMailEnvironment.EuProd;
@@ -11,6 +11,10 @@ exports.AgentMailEnvironment = {
11
11
  http: "https://x402.api.agentmail.to",
12
12
  websockets: "wss://x402.ws.agentmail.to",
13
13
  },
14
+ ProdMpp: {
15
+ http: "https://mpp.api.agentmail.to",
16
+ websockets: "wss://mpp.ws.agentmail.to",
17
+ },
14
18
  EuProd: {
15
19
  http: "https://api.agentmail.eu",
16
20
  websockets: "wss://ws.agentmail.eu",
@@ -1,6 +1,6 @@
1
1
  export * as AgentMail from "./api/index.js";
2
2
  export type { BaseClientOptions, BaseRequestOptions } from "./BaseClient.js";
3
- export { AgentMailClient } from "./Client.js";
3
+ export { AgentMailClient } from "./wrapper/index.js";
4
4
  export { AgentMailEnvironment, type AgentMailEnvironmentUrls } from "./environments.js";
5
5
  export { AgentMailError, AgentMailTimeoutError } from "./errors/index.js";
6
6
  export * from "./exports.js";
package/dist/cjs/index.js CHANGED
@@ -38,12 +38,12 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.serialization = exports.AgentMailTimeoutError = exports.AgentMailError = exports.AgentMailEnvironment = exports.AgentMailClient = exports.AgentMail = void 0;
40
40
  exports.AgentMail = __importStar(require("./api/index.js"));
41
- var Client_js_1 = require("./Client.js");
42
- Object.defineProperty(exports, "AgentMailClient", { enumerable: true, get: function () { return Client_js_1.AgentMailClient; } });
41
+ var index_js_1 = require("./wrapper/index.js");
42
+ Object.defineProperty(exports, "AgentMailClient", { enumerable: true, get: function () { return index_js_1.AgentMailClient; } });
43
43
  var environments_js_1 = require("./environments.js");
44
44
  Object.defineProperty(exports, "AgentMailEnvironment", { enumerable: true, get: function () { return environments_js_1.AgentMailEnvironment; } });
45
- var index_js_1 = require("./errors/index.js");
46
- Object.defineProperty(exports, "AgentMailError", { enumerable: true, get: function () { return index_js_1.AgentMailError; } });
47
- Object.defineProperty(exports, "AgentMailTimeoutError", { enumerable: true, get: function () { return index_js_1.AgentMailTimeoutError; } });
45
+ var index_js_2 = require("./errors/index.js");
46
+ Object.defineProperty(exports, "AgentMailError", { enumerable: true, get: function () { return index_js_2.AgentMailError; } });
47
+ Object.defineProperty(exports, "AgentMailTimeoutError", { enumerable: true, get: function () { return index_js_2.AgentMailTimeoutError; } });
48
48
  __exportStar(require("./exports.js"), exports);
49
49
  exports.serialization = __importStar(require("./serialization/index.js"));
@@ -1 +1 @@
1
- export declare const SDK_VERSION = "0.2.20";
1
+ export declare const SDK_VERSION = "0.3.0";
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SDK_VERSION = void 0;
4
- exports.SDK_VERSION = "0.2.20";
4
+ exports.SDK_VERSION = "0.3.0";
@@ -0,0 +1,22 @@
1
+ import type { x402Client } from "@x402/fetch";
2
+ import { AgentMailClient as FernAgentMailClient } from "../Client.js";
3
+ import { Supplier } from "../core/index.js";
4
+ import { WebsocketsClient } from "./WebsocketsClient.js";
5
+ type SharedOptions = Omit<FernAgentMailClient.Options, "apiKey">;
6
+ export declare namespace AgentMailClient {
7
+ type Options = SharedOptions & ({
8
+ x402: x402Client;
9
+ apiKey?: never;
10
+ } | {
11
+ apiKey?: Supplier<string>;
12
+ x402?: never;
13
+ });
14
+ type RequestOptions = FernAgentMailClient.RequestOptions;
15
+ }
16
+ export declare class AgentMailClient extends FernAgentMailClient {
17
+ protected _websockets: WebsocketsClient | undefined;
18
+ private readonly _x402Client;
19
+ get websockets(): WebsocketsClient;
20
+ constructor(options?: AgentMailClient.Options);
21
+ }
22
+ export {};
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
36
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
37
+ return new (P || (P = Promise))(function (resolve, reject) {
38
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
39
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
40
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
41
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
42
+ });
43
+ };
44
+ var __rest = (this && this.__rest) || function (s, e) {
45
+ var t = {};
46
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
47
+ t[p] = s[p];
48
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
49
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
50
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
51
+ t[p[i]] = s[p[i]];
52
+ }
53
+ return t;
54
+ };
55
+ Object.defineProperty(exports, "__esModule", { value: true });
56
+ exports.AgentMailClient = void 0;
57
+ const Client_js_1 = require("../Client.js");
58
+ const index_js_1 = require("../core/index.js");
59
+ const environments_js_1 = require("../environments.js");
60
+ const WebsocketsClient_js_1 = require("./WebsocketsClient.js");
61
+ class AgentMailClient extends Client_js_1.AgentMailClient {
62
+ get websockets() {
63
+ var _a;
64
+ return ((_a = this._websockets) !== null && _a !== void 0 ? _a : (this._websockets = new WebsocketsClient_js_1.WebsocketsClient(this._options, this._x402Client)));
65
+ }
66
+ constructor(options = {}) {
67
+ if (options.x402) {
68
+ const { x402 } = options, rest = __rest(options, ["x402"]);
69
+ let wrappedFetch;
70
+ const fernOptions = Object.assign(Object.assign({}, rest), { fetch: (input, init) => __awaiter(this, void 0, void 0, function* () {
71
+ if (!wrappedFetch) {
72
+ const { wrapFetchWithPayment } = yield Promise.resolve().then(() => __importStar(require("@x402/fetch")));
73
+ wrappedFetch = wrapFetchWithPayment(fetch, x402);
74
+ }
75
+ return wrappedFetch(input, init);
76
+ }) });
77
+ if (!fernOptions.environment && !fernOptions.baseUrl) {
78
+ fernOptions.environment = environments_js_1.AgentMailEnvironment.ProdX402;
79
+ }
80
+ super(fernOptions);
81
+ this._x402Client = x402;
82
+ }
83
+ else {
84
+ let fernOptions = options;
85
+ if (!fernOptions.environment && !fernOptions.baseUrl) {
86
+ fernOptions = Object.assign(Object.assign({}, fernOptions), { environment: () => __awaiter(this, void 0, void 0, function* () {
87
+ var _a;
88
+ const apiKey = (_a = (yield index_js_1.Supplier.get(fernOptions.apiKey))) !== null && _a !== void 0 ? _a : process.env.AGENTMAIL_API_KEY;
89
+ if (apiKey === null || apiKey === void 0 ? void 0 : apiKey.startsWith("am_eu_"))
90
+ return environments_js_1.AgentMailEnvironment.EuProd;
91
+ return environments_js_1.AgentMailEnvironment.Prod;
92
+ }) });
93
+ }
94
+ super(fernOptions);
95
+ this._x402Client = undefined;
96
+ }
97
+ }
98
+ }
99
+ exports.AgentMailClient = AgentMailClient;
@@ -0,0 +1,8 @@
1
+ import type { x402Client } from "@x402/fetch";
2
+ import { WebsocketsClient as FernWebsocketsClient } from "../api/resources/websockets/client/Client.js";
3
+ import type { WebsocketsSocket } from "../api/resources/websockets/client/Socket.js";
4
+ export declare class WebsocketsClient extends FernWebsocketsClient {
5
+ private readonly _x402Client;
6
+ constructor(options: FernWebsocketsClient.Options, x402Client?: x402Client);
7
+ connect(args?: FernWebsocketsClient.ConnectArgs): Promise<WebsocketsSocket>;
8
+ }
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
36
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
37
+ return new (P || (P = Promise))(function (resolve, reject) {
38
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
39
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
40
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
41
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
42
+ });
43
+ };
44
+ Object.defineProperty(exports, "__esModule", { value: true });
45
+ exports.WebsocketsClient = void 0;
46
+ const Client_js_1 = require("../api/resources/websockets/client/Client.js");
47
+ const core = __importStar(require("../core/index.js"));
48
+ const environments = __importStar(require("../environments.js"));
49
+ const x402_js_1 = require("./x402.js");
50
+ class WebsocketsClient extends Client_js_1.WebsocketsClient {
51
+ constructor(options, x402Client) {
52
+ super(options);
53
+ this._x402Client = x402Client;
54
+ }
55
+ connect() {
56
+ const _super = Object.create(null, {
57
+ connect: { get: () => super.connect }
58
+ });
59
+ return __awaiter(this, arguments, void 0, function* (args = {}) {
60
+ var _a, _b, _c;
61
+ if (this._x402Client) {
62
+ const wsUrl = core.url.join((_a = (yield core.Supplier.get(this._options.baseUrl))) !== null && _a !== void 0 ? _a : ((_b = (yield core.Supplier.get(this._options.environment))) !== null && _b !== void 0 ? _b : environments.AgentMailEnvironment.Prod)
63
+ .websockets, "/v0");
64
+ const paymentHeaders = yield (0, x402_js_1.getPaymentHeaders)(wsUrl, this._x402Client);
65
+ return _super.connect.call(this, Object.assign(Object.assign({}, args), { headers: Object.assign(Object.assign({}, paymentHeaders), args.headers) }));
66
+ }
67
+ if (!args.apiKey) {
68
+ const apiKey = (_c = (yield core.Supplier.get(this._options.apiKey))) !== null && _c !== void 0 ? _c : process.env.AGENTMAIL_API_KEY;
69
+ return _super.connect.call(this, Object.assign(Object.assign({}, args), { apiKey }));
70
+ }
71
+ return _super.connect.call(this, args);
72
+ });
73
+ }
74
+ }
75
+ exports.WebsocketsClient = WebsocketsClient;
@@ -0,0 +1,2 @@
1
+ export { AgentMailClient } from "./Client.js";
2
+ export { WebsocketsClient } from "./WebsocketsClient.js";
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WebsocketsClient = exports.AgentMailClient = void 0;
4
+ var Client_js_1 = require("./Client.js");
5
+ Object.defineProperty(exports, "AgentMailClient", { enumerable: true, get: function () { return Client_js_1.AgentMailClient; } });
6
+ var WebsocketsClient_js_1 = require("./WebsocketsClient.js");
7
+ Object.defineProperty(exports, "WebsocketsClient", { enumerable: true, get: function () { return WebsocketsClient_js_1.WebsocketsClient; } });
@@ -0,0 +1,2 @@
1
+ import type { x402Client } from "@x402/fetch";
2
+ export declare function getPaymentHeaders(wsUrl: string, client: x402Client): Promise<Record<string, string>>;
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
36
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
37
+ return new (P || (P = Promise))(function (resolve, reject) {
38
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
39
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
40
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
41
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
42
+ });
43
+ };
44
+ Object.defineProperty(exports, "__esModule", { value: true });
45
+ exports.getPaymentHeaders = getPaymentHeaders;
46
+ function getPaymentHeaders(wsUrl, client) {
47
+ return __awaiter(this, void 0, void 0, function* () {
48
+ const { x402HTTPClient } = yield Promise.resolve().then(() => __importStar(require("@x402/fetch")));
49
+ const httpClient = new x402HTTPClient(client);
50
+ const httpUrl = wsUrl.replace(/^wss:\/\//, "https://").replace(/^ws:\/\//, "http://");
51
+ const response = yield fetch(httpUrl);
52
+ if (response.status !== 402) {
53
+ throw new Error(`x402: expected 402 from ${httpUrl} but got ${response.status}`);
54
+ }
55
+ let body;
56
+ try {
57
+ body = JSON.parse(yield response.text());
58
+ }
59
+ catch (_a) {
60
+ body = undefined;
61
+ }
62
+ const getHeader = (name) => response.headers.get(name);
63
+ const paymentRequired = httpClient.getPaymentRequiredResponse(getHeader, body);
64
+ const paymentPayload = yield httpClient.createPaymentPayload(paymentRequired);
65
+ return httpClient.encodePaymentSignatureHeader(paymentPayload);
66
+ });
67
+ }
@@ -6,8 +6,8 @@ export function normalizeClientOptions(options) {
6
6
  const headers = mergeHeaders({
7
7
  "X-Fern-Language": "JavaScript",
8
8
  "X-Fern-SDK-Name": "agentmail",
9
- "X-Fern-SDK-Version": "0.2.20",
10
- "User-Agent": "agentmail/0.2.20",
9
+ "X-Fern-SDK-Version": "0.3.0",
10
+ "User-Agent": "agentmail/0.3.0",
11
11
  "X-Fern-Runtime": core.RUNTIME.type,
12
12
  "X-Fern-Runtime-Version": core.RUNTIME.version,
13
13
  }, options === null || options === void 0 ? void 0 : options.headers);
@@ -11,9 +11,13 @@ export declare const AgentMailEnvironment: {
11
11
  readonly http: "https://x402.api.agentmail.to";
12
12
  readonly websockets: "wss://x402.ws.agentmail.to";
13
13
  };
14
+ readonly ProdMpp: {
15
+ readonly http: "https://mpp.api.agentmail.to";
16
+ readonly websockets: "wss://mpp.ws.agentmail.to";
17
+ };
14
18
  readonly EuProd: {
15
19
  readonly http: "https://api.agentmail.eu";
16
20
  readonly websockets: "wss://ws.agentmail.eu";
17
21
  };
18
22
  };
19
- export type AgentMailEnvironment = typeof AgentMailEnvironment.Prod | typeof AgentMailEnvironment.ProdX402 | typeof AgentMailEnvironment.EuProd;
23
+ export type AgentMailEnvironment = typeof AgentMailEnvironment.Prod | typeof AgentMailEnvironment.ProdX402 | typeof AgentMailEnvironment.ProdMpp | typeof AgentMailEnvironment.EuProd;
@@ -8,6 +8,10 @@ export const AgentMailEnvironment = {
8
8
  http: "https://x402.api.agentmail.to",
9
9
  websockets: "wss://x402.ws.agentmail.to",
10
10
  },
11
+ ProdMpp: {
12
+ http: "https://mpp.api.agentmail.to",
13
+ websockets: "wss://mpp.ws.agentmail.to",
14
+ },
11
15
  EuProd: {
12
16
  http: "https://api.agentmail.eu",
13
17
  websockets: "wss://ws.agentmail.eu",
@@ -1,6 +1,6 @@
1
1
  export * as AgentMail from "./api/index.mjs";
2
2
  export type { BaseClientOptions, BaseRequestOptions } from "./BaseClient.mjs";
3
- export { AgentMailClient } from "./Client.mjs";
3
+ export { AgentMailClient } from "./wrapper/index.mjs";
4
4
  export { AgentMailEnvironment, type AgentMailEnvironmentUrls } from "./environments.mjs";
5
5
  export { AgentMailError, AgentMailTimeoutError } from "./errors/index.mjs";
6
6
  export * from "./exports.mjs";
@@ -1,5 +1,5 @@
1
1
  export * as AgentMail from "./api/index.mjs";
2
- export { AgentMailClient } from "./Client.mjs";
2
+ export { AgentMailClient } from "./wrapper/index.mjs";
3
3
  export { AgentMailEnvironment } from "./environments.mjs";
4
4
  export { AgentMailError, AgentMailTimeoutError } from "./errors/index.mjs";
5
5
  export * from "./exports.mjs";
@@ -1 +1 @@
1
- export declare const SDK_VERSION = "0.2.20";
1
+ export declare const SDK_VERSION = "0.3.0";
@@ -1 +1 @@
1
- export const SDK_VERSION = "0.2.20";
1
+ export const SDK_VERSION = "0.3.0";
@@ -0,0 +1,22 @@
1
+ import type { x402Client } from "@x402/fetch";
2
+ import { AgentMailClient as FernAgentMailClient } from "../Client.mjs";
3
+ import { Supplier } from "../core/index.mjs";
4
+ import { WebsocketsClient } from "./WebsocketsClient.mjs";
5
+ type SharedOptions = Omit<FernAgentMailClient.Options, "apiKey">;
6
+ export declare namespace AgentMailClient {
7
+ type Options = SharedOptions & ({
8
+ x402: x402Client;
9
+ apiKey?: never;
10
+ } | {
11
+ apiKey?: Supplier<string>;
12
+ x402?: never;
13
+ });
14
+ type RequestOptions = FernAgentMailClient.RequestOptions;
15
+ }
16
+ export declare class AgentMailClient extends FernAgentMailClient {
17
+ protected _websockets: WebsocketsClient | undefined;
18
+ private readonly _x402Client;
19
+ get websockets(): WebsocketsClient;
20
+ constructor(options?: AgentMailClient.Options);
21
+ }
22
+ export {};
@@ -0,0 +1,62 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __rest = (this && this.__rest) || function (s, e) {
11
+ var t = {};
12
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
13
+ t[p] = s[p];
14
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
15
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
16
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
17
+ t[p[i]] = s[p[i]];
18
+ }
19
+ return t;
20
+ };
21
+ import { AgentMailClient as FernAgentMailClient } from "../Client.mjs";
22
+ import { Supplier } from "../core/index.mjs";
23
+ import { AgentMailEnvironment } from "../environments.mjs";
24
+ import { WebsocketsClient } from "./WebsocketsClient.mjs";
25
+ export class AgentMailClient extends FernAgentMailClient {
26
+ get websockets() {
27
+ var _a;
28
+ return ((_a = this._websockets) !== null && _a !== void 0 ? _a : (this._websockets = new WebsocketsClient(this._options, this._x402Client)));
29
+ }
30
+ constructor(options = {}) {
31
+ if (options.x402) {
32
+ const { x402 } = options, rest = __rest(options, ["x402"]);
33
+ let wrappedFetch;
34
+ const fernOptions = Object.assign(Object.assign({}, rest), { fetch: (input, init) => __awaiter(this, void 0, void 0, function* () {
35
+ if (!wrappedFetch) {
36
+ const { wrapFetchWithPayment } = yield import("@x402/fetch");
37
+ wrappedFetch = wrapFetchWithPayment(fetch, x402);
38
+ }
39
+ return wrappedFetch(input, init);
40
+ }) });
41
+ if (!fernOptions.environment && !fernOptions.baseUrl) {
42
+ fernOptions.environment = AgentMailEnvironment.ProdX402;
43
+ }
44
+ super(fernOptions);
45
+ this._x402Client = x402;
46
+ }
47
+ else {
48
+ let fernOptions = options;
49
+ if (!fernOptions.environment && !fernOptions.baseUrl) {
50
+ fernOptions = Object.assign(Object.assign({}, fernOptions), { environment: () => __awaiter(this, void 0, void 0, function* () {
51
+ var _a;
52
+ const apiKey = (_a = (yield Supplier.get(fernOptions.apiKey))) !== null && _a !== void 0 ? _a : process.env.AGENTMAIL_API_KEY;
53
+ if (apiKey === null || apiKey === void 0 ? void 0 : apiKey.startsWith("am_eu_"))
54
+ return AgentMailEnvironment.EuProd;
55
+ return AgentMailEnvironment.Prod;
56
+ }) });
57
+ }
58
+ super(fernOptions);
59
+ this._x402Client = undefined;
60
+ }
61
+ }
62
+ }
@@ -0,0 +1,8 @@
1
+ import type { x402Client } from "@x402/fetch";
2
+ import { WebsocketsClient as FernWebsocketsClient } from "../api/resources/websockets/client/Client.mjs";
3
+ import type { WebsocketsSocket } from "../api/resources/websockets/client/Socket.mjs";
4
+ export declare class WebsocketsClient extends FernWebsocketsClient {
5
+ private readonly _x402Client;
6
+ constructor(options: FernWebsocketsClient.Options, x402Client?: x402Client);
7
+ connect(args?: FernWebsocketsClient.ConnectArgs): Promise<WebsocketsSocket>;
8
+ }
@@ -0,0 +1,38 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { WebsocketsClient as FernWebsocketsClient } from "../api/resources/websockets/client/Client.mjs";
11
+ import * as core from "../core/index.mjs";
12
+ import * as environments from "../environments.mjs";
13
+ import { getPaymentHeaders } from "./x402.mjs";
14
+ export class WebsocketsClient extends FernWebsocketsClient {
15
+ constructor(options, x402Client) {
16
+ super(options);
17
+ this._x402Client = x402Client;
18
+ }
19
+ connect() {
20
+ const _super = Object.create(null, {
21
+ connect: { get: () => super.connect }
22
+ });
23
+ return __awaiter(this, arguments, void 0, function* (args = {}) {
24
+ var _a, _b, _c;
25
+ if (this._x402Client) {
26
+ const wsUrl = core.url.join((_a = (yield core.Supplier.get(this._options.baseUrl))) !== null && _a !== void 0 ? _a : ((_b = (yield core.Supplier.get(this._options.environment))) !== null && _b !== void 0 ? _b : environments.AgentMailEnvironment.Prod)
27
+ .websockets, "/v0");
28
+ const paymentHeaders = yield getPaymentHeaders(wsUrl, this._x402Client);
29
+ return _super.connect.call(this, Object.assign(Object.assign({}, args), { headers: Object.assign(Object.assign({}, paymentHeaders), args.headers) }));
30
+ }
31
+ if (!args.apiKey) {
32
+ const apiKey = (_c = (yield core.Supplier.get(this._options.apiKey))) !== null && _c !== void 0 ? _c : process.env.AGENTMAIL_API_KEY;
33
+ return _super.connect.call(this, Object.assign(Object.assign({}, args), { apiKey }));
34
+ }
35
+ return _super.connect.call(this, args);
36
+ });
37
+ }
38
+ }
@@ -0,0 +1,2 @@
1
+ export { AgentMailClient } from "./Client.mjs";
2
+ export { WebsocketsClient } from "./WebsocketsClient.mjs";
@@ -0,0 +1,2 @@
1
+ export { AgentMailClient } from "./Client.mjs";
2
+ export { WebsocketsClient } from "./WebsocketsClient.mjs";
@@ -0,0 +1,2 @@
1
+ import type { x402Client } from "@x402/fetch";
2
+ export declare function getPaymentHeaders(wsUrl: string, client: x402Client): Promise<Record<string, string>>;
@@ -0,0 +1,31 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ export function getPaymentHeaders(wsUrl, client) {
11
+ return __awaiter(this, void 0, void 0, function* () {
12
+ const { x402HTTPClient } = yield import("@x402/fetch");
13
+ const httpClient = new x402HTTPClient(client);
14
+ const httpUrl = wsUrl.replace(/^wss:\/\//, "https://").replace(/^ws:\/\//, "http://");
15
+ const response = yield fetch(httpUrl);
16
+ if (response.status !== 402) {
17
+ throw new Error(`x402: expected 402 from ${httpUrl} but got ${response.status}`);
18
+ }
19
+ let body;
20
+ try {
21
+ body = JSON.parse(yield response.text());
22
+ }
23
+ catch (_a) {
24
+ body = undefined;
25
+ }
26
+ const getHeader = (name) => response.headers.get(name);
27
+ const paymentRequired = httpClient.getPaymentRequiredResponse(getHeader, body);
28
+ const paymentPayload = yield httpClient.createPaymentPayload(paymentRequired);
29
+ return httpClient.encodePaymentSignatureHeader(paymentPayload);
30
+ });
31
+ }