@relaycast/sdk 0.3.2 → 0.3.4

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/dist/agent.d.ts CHANGED
@@ -1,12 +1,40 @@
1
- import type { MessageListQuery, MessageWithMeta, MessageBlock, CreateGroupDmRequest, DmConversationSummary, CreateChannelRequest, UpdateChannelRequest, Channel, ChannelMemberInfo, ReactionGroup, InboxResponse, ReaderInfo, ChannelReadStatus, UploadRequest, UploadResponse, FileInfo, InvokeCommandRequest, CommandInvocation, WsClientEvent, MessageCreatedEvent, MessageUpdatedEvent, ThreadReplyEvent, MessageReadEvent, ReactionAddedEvent, ReactionRemovedEvent, DmReceivedEvent, GroupDmReceivedEvent, AgentOnlineEvent, AgentOfflineEvent, ChannelCreatedEvent, ChannelUpdatedEvent, ChannelArchivedEvent, MemberJoinedEvent, MemberLeftEvent, FileUploadedEvent, WebhookReceivedEvent, CommandInvokedEvent } from '@relaycast/types';
1
+ import type { MessageListQuery, MessageWithMeta, SearchMessageResult, MessageBlock, SendDmResponse, CreateGroupDmRequest, CreateGroupDmResponse, GroupDmMessageResponse, GroupDmParticipantResponse, DmConversationSummary, CreateChannelRequest, UpdateChannelRequest, Channel, ChannelMemberInfo, JoinChannelResponse, InviteChannelResponse, AddedReaction, ReadReceipt, ReactionGroup, InboxResponse, ReaderInfo, ChannelReadStatus, UploadRequest, UploadResponse, CompleteUploadResponse, FileInfo, InvokeCommandRequest, CommandInvokeResult, WsClientEvent, MessageCreatedEvent, MessageUpdatedEvent, ThreadReplyEvent, MessageReadEvent, ReactionAddedEvent, ReactionRemovedEvent, DmReceivedEvent, GroupDmReceivedEvent, AgentOnlineEvent, AgentOfflineEvent, ChannelCreatedEvent, ChannelUpdatedEvent, ChannelArchivedEvent, MemberJoinedEvent, MemberLeftEvent, FileUploadedEvent, WebhookReceivedEvent, CommandInvokedEvent } from './types.js';
2
2
  import { HttpClient } from './client.js';
3
+ import { type WsClientOptions } from './ws.js';
3
4
  interface IdempotencyOption {
4
5
  idempotencyKey?: string;
5
6
  }
7
+ interface ChannelListOptions {
8
+ includeArchived?: boolean;
9
+ }
10
+ interface FileListOptions {
11
+ uploadedBy?: string;
12
+ limit?: number;
13
+ }
14
+ export interface AgentClientOptions {
15
+ autoHeartbeatMs?: number | false;
16
+ ws?: Omit<WsClientOptions, 'token' | 'baseUrl'>;
17
+ }
6
18
  export declare class AgentClient {
7
19
  readonly client: HttpClient;
8
20
  private ws;
9
- constructor(client: HttpClient);
21
+ private autoHeartbeatMs;
22
+ private autoHeartbeatTimer;
23
+ private wsOptions;
24
+ constructor(client: HttpClient, options?: AgentClientOptions);
25
+ /**
26
+ * Presence lifecycle ownership:
27
+ * - worker identities should call `markOnline`/`heartbeat`/`markOffline`.
28
+ * - broker identities should signal presence only when they directly own worker lifecycle.
29
+ * - reader identities should not publish presence.
30
+ */
31
+ presence: {
32
+ markOnline: () => Promise<void>;
33
+ heartbeat: () => Promise<void>;
34
+ markOffline: () => Promise<void>;
35
+ };
36
+ private startAutoHeartbeat;
37
+ private stopAutoHeartbeat;
10
38
  connect(): void;
11
39
  /** Send a REST heartbeat to keep this agent online in PresenceDO without a WebSocket. */
12
40
  heartbeat(): Promise<void>;
@@ -37,6 +65,7 @@ export declare class AgentClient {
37
65
  disconnected: (handler: () => void) => (() => void);
38
66
  error: (handler: () => void) => (() => void);
39
67
  reconnecting: (handler: (attempt: number) => void) => (() => void);
68
+ permanentlyDisconnected: (handler: (attempt: number) => void) => (() => void);
40
69
  any: (handler: (e: WsClientEvent) => void) => (() => void);
41
70
  };
42
71
  send(channel: string, text: string, opts?: {
@@ -54,32 +83,30 @@ export declare class AgentClient {
54
83
  parent: MessageWithMeta;
55
84
  replies: MessageWithMeta[];
56
85
  }>;
57
- dm(agent: string, text: string, opts?: IdempotencyOption): Promise<unknown>;
86
+ dm(agent: string, text: string, opts?: IdempotencyOption): Promise<SendDmResponse>;
58
87
  dms: {
59
88
  conversations: () => Promise<DmConversationSummary[]>;
60
89
  messages: (conversationId: string, opts?: MessageListQuery) => Promise<MessageWithMeta[]>;
61
- createGroup: (opts: CreateGroupDmRequest) => Promise<unknown>;
62
- sendMessage: (conversationId: string, text: string, opts?: IdempotencyOption) => Promise<unknown>;
63
- addParticipant: (conversationId: string, agent: string) => Promise<unknown>;
90
+ createGroup: (opts: CreateGroupDmRequest, idempotency?: IdempotencyOption) => Promise<CreateGroupDmResponse>;
91
+ sendMessage: (conversationId: string, text: string, opts?: IdempotencyOption) => Promise<GroupDmMessageResponse>;
92
+ addParticipant: (conversationId: string, agent: string) => Promise<GroupDmParticipantResponse>;
64
93
  removeParticipant: (conversationId: string, agent: string) => Promise<void>;
65
94
  };
66
95
  channels: {
67
96
  create: (data: CreateChannelRequest) => Promise<Channel>;
68
- list: (opts?: {
69
- include_archived?: boolean;
70
- }) => Promise<Channel[]>;
97
+ list: (opts?: ChannelListOptions) => Promise<Channel[]>;
71
98
  get: (name: string) => Promise<Channel & {
72
99
  members: ChannelMemberInfo[];
73
100
  }>;
74
- join: (name: string) => Promise<unknown>;
101
+ join: (name: string) => Promise<JoinChannelResponse>;
75
102
  leave: (name: string) => Promise<void>;
76
103
  setTopic: (name: string, topic: string) => Promise<Channel>;
77
104
  archive: (name: string) => Promise<void>;
78
- invite: (channel: string, agent: string) => Promise<unknown>;
105
+ invite: (channel: string, agent: string) => Promise<InviteChannelResponse>;
79
106
  members: (name: string) => Promise<ChannelMemberInfo[]>;
80
107
  update: (name: string, data: UpdateChannelRequest) => Promise<Channel>;
81
108
  };
82
- react(messageId: string, emoji: string): Promise<unknown>;
109
+ react(messageId: string, emoji: string): Promise<AddedReaction>;
83
110
  unreact(messageId: string, emoji: string): Promise<void>;
84
111
  reactions(messageId: string): Promise<ReactionGroup[]>;
85
112
  search(query: string, opts?: {
@@ -88,23 +115,20 @@ export declare class AgentClient {
88
115
  limit?: number;
89
116
  before?: string;
90
117
  after?: string;
91
- }): Promise<unknown[]>;
118
+ }): Promise<SearchMessageResult[]>;
92
119
  inbox(): Promise<InboxResponse>;
93
- markRead(messageId: string): Promise<unknown>;
120
+ markRead(messageId: string): Promise<ReadReceipt>;
94
121
  readers(messageId: string): Promise<ReaderInfo[]>;
95
122
  readStatus(channel: string): Promise<ChannelReadStatus[]>;
96
123
  commands: {
97
- invoke: (command: string, data: InvokeCommandRequest) => Promise<CommandInvocation>;
124
+ invoke: (command: string, data: InvokeCommandRequest) => Promise<CommandInvokeResult>;
98
125
  };
99
126
  files: {
100
127
  upload: (data: UploadRequest) => Promise<UploadResponse>;
101
- complete: (fileId: string) => Promise<FileInfo>;
128
+ complete: (fileId: string) => Promise<CompleteUploadResponse>;
102
129
  get: (fileId: string) => Promise<FileInfo>;
103
130
  delete: (fileId: string) => Promise<void>;
104
- list: (opts?: {
105
- uploaded_by?: string;
106
- limit?: number;
107
- }) => Promise<FileInfo[]>;
131
+ list: (opts?: FileListOptions) => Promise<FileInfo[]>;
108
132
  };
109
133
  }
110
134
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
package/dist/agent.js CHANGED
@@ -2,16 +2,71 @@ import { WsClient, withInternalWsOrigin } from './ws.js';
2
2
  function stripHash(channel) {
3
3
  return channel.startsWith('#') ? channel.slice(1) : channel;
4
4
  }
5
+ function normalizeAutoHeartbeatMs(value) {
6
+ if (value === false)
7
+ return false;
8
+ if (typeof value === 'number' && Number.isFinite(value) && value > 0) {
9
+ return Math.floor(value);
10
+ }
11
+ return 30_000;
12
+ }
13
+ function generateIdempotencyKey() {
14
+ const randomUuid = globalThis.crypto?.randomUUID?.();
15
+ if (typeof randomUuid === 'string' && randomUuid.length > 0) {
16
+ return randomUuid;
17
+ }
18
+ return `${Date.now()}-${Math.random().toString(16).slice(2)}-${Math.random().toString(16).slice(2)}`;
19
+ }
5
20
  function idempotencyHeaders(opts) {
6
- if (!opts?.idempotencyKey)
7
- return undefined;
8
- return { headers: { 'Idempotency-Key': opts.idempotencyKey } };
21
+ const key = opts?.idempotencyKey?.trim() || generateIdempotencyKey();
22
+ return {
23
+ headers: {
24
+ 'Idempotency-Key': key,
25
+ 'X-Idempotency-Key': key,
26
+ },
27
+ };
9
28
  }
10
29
  export class AgentClient {
11
30
  client;
12
31
  ws = null;
13
- constructor(client) {
32
+ autoHeartbeatMs;
33
+ autoHeartbeatTimer = null;
34
+ wsOptions;
35
+ constructor(client, options = {}) {
14
36
  this.client = client;
37
+ this.autoHeartbeatMs = normalizeAutoHeartbeatMs(options.autoHeartbeatMs);
38
+ this.wsOptions = options.ws ?? {};
39
+ }
40
+ /**
41
+ * Presence lifecycle ownership:
42
+ * - worker identities should call `markOnline`/`heartbeat`/`markOffline`.
43
+ * - broker identities should signal presence only when they directly own worker lifecycle.
44
+ * - reader identities should not publish presence.
45
+ */
46
+ presence = {
47
+ markOnline: async () => {
48
+ await this.client.post('/v1/agents/heartbeat', {});
49
+ },
50
+ heartbeat: async () => {
51
+ await this.client.post('/v1/agents/heartbeat', {});
52
+ },
53
+ markOffline: async () => {
54
+ await this.client.post('/v1/agents/disconnect', {});
55
+ },
56
+ };
57
+ startAutoHeartbeat() {
58
+ this.stopAutoHeartbeat();
59
+ if (this.autoHeartbeatMs === false)
60
+ return;
61
+ this.autoHeartbeatTimer = setInterval(() => {
62
+ void this.presence.heartbeat().catch(() => { });
63
+ }, this.autoHeartbeatMs);
64
+ }
65
+ stopAutoHeartbeat() {
66
+ if (this.autoHeartbeatTimer) {
67
+ clearInterval(this.autoHeartbeatTimer);
68
+ this.autoHeartbeatTimer = null;
69
+ }
15
70
  }
16
71
  // === WebSocket ===
17
72
  connect() {
@@ -20,22 +75,34 @@ export class AgentClient {
20
75
  this.ws = new WsClient(withInternalWsOrigin({
21
76
  token: this.client.apiKey,
22
77
  baseUrl: this.client.baseUrl,
78
+ ...this.wsOptions,
23
79
  }, {
24
80
  surface: this.client.originSurface,
25
81
  client: this.client.originClient,
26
82
  version: this.client.originVersion,
27
83
  }));
84
+ this.ws.on('open', () => {
85
+ void this.presence.markOnline().catch(() => { });
86
+ this.startAutoHeartbeat();
87
+ });
88
+ this.ws.on('close', () => {
89
+ this.stopAutoHeartbeat();
90
+ });
91
+ this.ws.on('permanently_disconnected', () => {
92
+ this.stopAutoHeartbeat();
93
+ });
28
94
  this.ws.connect();
29
95
  }
30
96
  /** Send a REST heartbeat to keep this agent online in PresenceDO without a WebSocket. */
31
97
  async heartbeat() {
32
- await this.client.post('/v1/agents/heartbeat', {});
98
+ await this.presence.heartbeat();
33
99
  }
34
100
  async disconnect() {
101
+ this.stopAutoHeartbeat();
35
102
  if (this.ws) {
36
103
  // Notify the server before closing the WebSocket so presence
37
104
  // updates immediately (works around local DO hibernation issues).
38
- await this.client.post('/v1/agents/disconnect', {}).catch(() => { });
105
+ await this.presence.markOffline().catch(() => { });
39
106
  this.ws.disconnect();
40
107
  this.ws = null;
41
108
  }
@@ -81,6 +148,12 @@ export class AgentClient {
81
148
  }
82
149
  return this.ws.on('reconnecting', (e) => handler(e.attempt));
83
150
  },
151
+ permanentlyDisconnected: (handler) => {
152
+ if (!this.ws) {
153
+ throw new Error('WebSocket not connected. Call connect() first.');
154
+ }
155
+ return this.ws.on('permanently_disconnected', (e) => handler(e.attempt));
156
+ },
84
157
  // Wildcard
85
158
  any: (handler) => {
86
159
  if (!this.ws) {
@@ -147,9 +220,9 @@ export class AgentClient {
147
220
  query.after = opts.after;
148
221
  return this.client.get(`/v1/dm/${encodeURIComponent(conversationId)}/messages`, query);
149
222
  },
150
- createGroup: (opts) => this.client.post('/v1/dm/group', opts),
223
+ createGroup: (opts, idempotency) => this.client.post('/v1/dm/group', opts, idempotencyHeaders(idempotency)),
151
224
  sendMessage: (conversationId, text, opts) => this.client.post(`/v1/dm/${encodeURIComponent(conversationId)}/messages`, { text }, idempotencyHeaders(opts)),
152
- addParticipant: (conversationId, agent) => this.client.post(`/v1/dm/${encodeURIComponent(conversationId)}/participants`, { agent }),
225
+ addParticipant: (conversationId, agent) => this.client.post(`/v1/dm/${encodeURIComponent(conversationId)}/participants`, { agentName: agent }),
153
226
  removeParticipant: (conversationId, agent) => this.client.delete(`/v1/dm/${encodeURIComponent(conversationId)}/participants/${encodeURIComponent(agent)}`),
154
227
  };
155
228
  // === Channels ===
@@ -157,8 +230,8 @@ export class AgentClient {
157
230
  create: (data) => this.client.post('/v1/channels', data),
158
231
  list: (opts) => {
159
232
  const query = {};
160
- if (opts?.include_archived)
161
- query.include_archived = 'true';
233
+ if (opts?.includeArchived)
234
+ query.includeArchived = 'true';
162
235
  return this.client.get('/v1/channels', query);
163
236
  },
164
237
  get: (name) => this.client.get(`/v1/channels/${encodeURIComponent(name)}`),
@@ -168,7 +241,7 @@ export class AgentClient {
168
241
  },
169
242
  setTopic: (name, topic) => this.client.patch(`/v1/channels/${encodeURIComponent(name)}/topic`, { topic }),
170
243
  archive: (name) => this.client.delete(`/v1/channels/${encodeURIComponent(name)}`),
171
- invite: (channel, agent) => this.client.post(`/v1/channels/${encodeURIComponent(channel)}/invite`, { agent }),
244
+ invite: (channel, agent) => this.client.post(`/v1/channels/${encodeURIComponent(channel)}/invite`, { agentName: agent }),
172
245
  members: (name) => this.client.get(`/v1/channels/${encodeURIComponent(name)}/members`),
173
246
  update: (name, data) => this.client.patch(`/v1/channels/${encodeURIComponent(name)}`, data),
174
247
  };
@@ -224,8 +297,8 @@ export class AgentClient {
224
297
  delete: (fileId) => this.client.delete(`/v1/files/${encodeURIComponent(fileId)}`),
225
298
  list: (opts) => {
226
299
  const query = {};
227
- if (opts?.uploaded_by)
228
- query.uploaded_by = opts.uploaded_by;
300
+ if (opts?.uploadedBy)
301
+ query.uploadedBy = opts.uploadedBy;
229
302
  if (opts?.limit)
230
303
  query.limit = String(opts.limit);
231
304
  return this.client.get('/v1/files', query);
package/dist/agent.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ type Primitive = string | number | boolean | bigint | symbol | null | undefined;
2
+ export type CamelCase<S extends string> = S extends `${infer Head}_${infer Tail}` ? `${Head}${Capitalize<CamelCase<Tail>>}` : S;
3
+ export type Camelize<T> = T extends Primitive ? T : T extends Array<infer U> ? Array<Camelize<U>> : T extends Record<string, unknown> ? {
4
+ [K in keyof T as K extends string ? CamelCase<K> : K]: Camelize<T[K]>;
5
+ } : T;
6
+ export declare function camelizeKeys<T>(value: T): Camelize<T>;
7
+ export declare function decamelizeKeys<T>(value: T): unknown;
8
+ export declare function decamelizeKey(key: string): string;
9
+ export {};
10
+ //# sourceMappingURL=casing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"casing.d.ts","sourceRoot":"","sources":["../src/casing.ts"],"names":[],"mappings":"AAAA,KAAK,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;AAEhF,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,MAAM,IACpC,CAAC,SAAS,GAAG,MAAM,IAAI,IAAI,MAAM,IAAI,EAAE,GACnC,GAAG,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,GACvC,CAAC,CAAC;AAER,MAAM,MAAM,QAAQ,CAAC,CAAC,IACpB,CAAC,SAAS,SAAS,GAAG,CAAC,GACvB,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAC7C,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B;KAAG,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GACzE,CAAC,CAAC;AAgBR,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAYrD;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAYnD;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEjD"}
package/dist/casing.js ADDED
@@ -0,0 +1,42 @@
1
+ function isPlainObject(value) {
2
+ if (Object.prototype.toString.call(value) !== '[object Object]')
3
+ return false;
4
+ const proto = Object.getPrototypeOf(value);
5
+ return proto === Object.prototype || proto === null;
6
+ }
7
+ function toCamelKey(key) {
8
+ return key.replace(/_([a-z])/g, (_, c) => c.toUpperCase());
9
+ }
10
+ function toSnakeKey(key) {
11
+ return key.replace(/[A-Z]/g, (c) => `_${c.toLowerCase()}`);
12
+ }
13
+ export function camelizeKeys(value) {
14
+ if (Array.isArray(value)) {
15
+ return value.map((item) => camelizeKeys(item));
16
+ }
17
+ if (isPlainObject(value)) {
18
+ const out = {};
19
+ for (const [key, val] of Object.entries(value)) {
20
+ out[toCamelKey(key)] = camelizeKeys(val);
21
+ }
22
+ return out;
23
+ }
24
+ return value;
25
+ }
26
+ export function decamelizeKeys(value) {
27
+ if (Array.isArray(value)) {
28
+ return value.map((item) => decamelizeKeys(item));
29
+ }
30
+ if (isPlainObject(value)) {
31
+ const out = {};
32
+ for (const [key, val] of Object.entries(value)) {
33
+ out[toSnakeKey(key)] = decamelizeKeys(val);
34
+ }
35
+ return out;
36
+ }
37
+ return value;
38
+ }
39
+ export function decamelizeKey(key) {
40
+ return toSnakeKey(key);
41
+ }
42
+ //# sourceMappingURL=casing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"casing.js","sourceRoot":"","sources":["../src/casing.ts"],"names":[],"mappings":"AAcA,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,iBAAiB;QAAE,OAAO,KAAK,CAAC;IAC9E,MAAM,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC3C,OAAO,KAAK,KAAK,MAAM,CAAC,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC;AACtD,CAAC;AAED,SAAS,UAAU,CAAC,GAAW;IAC7B,OAAO,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,UAAU,CAAC,GAAW;IAC7B,OAAO,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,YAAY,CAAI,KAAQ;IACtC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAgB,CAAC;IAChE,CAAC;IACD,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,GAAG,GAA4B,EAAE,CAAC;QACxC,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/C,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,GAAkB,CAAC;IAC5B,CAAC;IACD,OAAO,KAAoB,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,cAAc,CAAI,KAAQ;IACxC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;IACnD,CAAC;IACD,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,GAAG,GAA4B,EAAE,CAAC;QACxC,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/C,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC"}
package/dist/client.d.ts CHANGED
@@ -1,37 +1,51 @@
1
1
  import { z } from 'zod';
2
2
  import { type InternalOrigin } from './origin.js';
3
+ import { type Camelize } from './casing.js';
3
4
  export interface ClientOptions {
4
5
  apiKey: string;
5
6
  baseUrl?: string;
7
+ retryPolicy?: RetryPolicyInput;
6
8
  }
7
9
  export interface RequestOptions {
8
10
  headers?: Record<string, string>;
9
11
  schema?: z.ZodType;
10
12
  }
11
- export declare function withInternalOrigin<T extends ClientOptions>(options: T, origin: InternalOrigin): T;
12
- export declare class RelayError extends Error {
13
- code: string;
14
- status: number;
15
- constructor(code: string, message: string, status: number);
13
+ export interface RetryPolicy {
14
+ maxRetries: number;
15
+ backoffMs: number;
16
+ backoffMultiplier: number;
17
+ jitter: boolean;
18
+ retryOn: number[];
16
19
  }
20
+ export type RetryPolicyInput = Partial<Omit<RetryPolicy, 'retryOn'>> & {
21
+ retryOn?: number[];
22
+ };
23
+ type OriginCapableOptions = {
24
+ apiKey?: string;
25
+ baseUrl?: string;
26
+ };
27
+ export declare function withInternalOrigin<T extends OriginCapableOptions>(options: T, origin: InternalOrigin): T;
28
+ export { RelayError } from './errors.js';
17
29
  export declare class HttpClient {
18
30
  private _apiKey;
19
31
  private _baseUrl;
20
32
  private _originSurface;
21
33
  private _originClient;
22
34
  private _originVersion;
35
+ private _retryPolicy;
23
36
  constructor(options: ClientOptions);
24
37
  get apiKey(): string;
25
38
  get baseUrl(): string;
26
39
  get originSurface(): string;
27
40
  get originClient(): string;
28
41
  get originVersion(): string;
42
+ get retryPolicy(): RetryPolicy;
29
43
  withApiKey(apiKey: string): HttpClient;
30
- request<T>(method: string, path: string, body?: unknown, query?: Record<string, string>, options?: RequestOptions): Promise<T>;
31
- get<T>(path: string, query?: Record<string, string>, options?: RequestOptions): Promise<T>;
32
- post<T>(path: string, body?: unknown, options?: RequestOptions): Promise<T>;
33
- patch<T>(path: string, body?: unknown, options?: RequestOptions): Promise<T>;
34
- put<T>(path: string, body?: unknown, options?: RequestOptions): Promise<T>;
44
+ request<T>(method: string, path: string, body?: unknown, query?: Record<string, string>, options?: RequestOptions): Promise<Camelize<T>>;
45
+ get<T>(path: string, query?: Record<string, string>, options?: RequestOptions): Promise<Camelize<T>>;
46
+ post<T>(path: string, body?: unknown, options?: RequestOptions): Promise<Camelize<T>>;
47
+ patch<T>(path: string, body?: unknown, options?: RequestOptions): Promise<Camelize<T>>;
48
+ put<T>(path: string, body?: unknown, options?: RequestOptions): Promise<Camelize<T>>;
35
49
  delete(path: string, options?: RequestOptions): Promise<void>;
36
50
  }
37
51
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAc,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAE9D,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC;CACpB;AAYD,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,aAAa,EACxD,OAAO,EAAE,CAAC,EACV,MAAM,EAAE,cAAc,GACrB,CAAC,CASH;AAED,qBAAa,UAAW,SAAQ,KAAK;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;gBAEH,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAM1D;AAmBD,qBAAa,UAAU;IACrB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,cAAc,CAAS;gBAEnB,OAAO,EAAE,aAAa;IASlC,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU;IAWhC,OAAO,CAAC,CAAC,EACb,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,OAAO,EACd,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,CAAC,CAAC;IAmEb,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC;IAI1F,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC;IAI3E,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC;IAI5E,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC;IAIpE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CAGpE"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}