@agents24/client 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +47 -0
- package/compatibility.json +54 -0
- package/dist/adapters/browser.d.ts +3 -0
- package/dist/adapters/browser.js +12 -0
- package/dist/adapters/browser.js.map +1 -0
- package/dist/adapters/cloudflare.d.ts +3 -0
- package/dist/adapters/cloudflare.js +12 -0
- package/dist/adapters/cloudflare.js.map +1 -0
- package/dist/adapters/node.d.ts +3 -0
- package/dist/adapters/node.js +12 -0
- package/dist/adapters/node.js.map +1 -0
- package/dist/adapters/worker.d.ts +3 -0
- package/dist/adapters/worker.js +12 -0
- package/dist/adapters/worker.js.map +1 -0
- package/dist/base64url.d.ts +2 -0
- package/dist/capabilities.d.ts +7 -0
- package/dist/chunk-45ITVMX3.js +977 -0
- package/dist/chunk-45ITVMX3.js.map +1 -0
- package/dist/chunk-VVLMMNXI.js +163 -0
- package/dist/chunk-VVLMMNXI.js.map +1 -0
- package/dist/client.d.ts +2 -0
- package/dist/context-window.d.ts +44 -0
- package/dist/dpop.d.ts +43 -0
- package/dist/errors.d.ts +27 -0
- package/dist/generated/protocol.d.ts +70 -0
- package/dist/http.d.ts +38 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.js +557 -0
- package/dist/index.js.map +1 -0
- package/dist/multipart.d.ts +2 -0
- package/dist/protocol.d.ts +5 -0
- package/dist/protocol.js +146 -0
- package/dist/protocol.js.map +1 -0
- package/dist/runtime-types.d.ts +93 -0
- package/dist/sessions.d.ts +63 -0
- package/dist/stream.d.ts +20 -0
- package/dist/types.d.ts +367 -0
- package/dist/url.d.ts +5 -0
- package/package.json +88 -0
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,367 @@
|
|
|
1
|
+
import type { RuntimeEvent, ThreadSummaryEvent } from "./generated/protocol.js";
|
|
2
|
+
export type MaybePromise<T> = T | Promise<T>;
|
|
3
|
+
export interface AbortSignalLike {
|
|
4
|
+
readonly aborted: boolean;
|
|
5
|
+
readonly reason?: unknown;
|
|
6
|
+
addEventListener(type: "abort", listener: () => void, options?: {
|
|
7
|
+
once?: boolean;
|
|
8
|
+
}): void;
|
|
9
|
+
removeEventListener(type: "abort", listener: () => void): void;
|
|
10
|
+
}
|
|
11
|
+
export interface HeadersLike {
|
|
12
|
+
get(name: string): string | null;
|
|
13
|
+
}
|
|
14
|
+
export interface ReadableBodyReaderLike {
|
|
15
|
+
read(): Promise<{
|
|
16
|
+
done: boolean;
|
|
17
|
+
value?: Uint8Array;
|
|
18
|
+
}>;
|
|
19
|
+
cancel(reason?: unknown): Promise<void>;
|
|
20
|
+
releaseLock?(): void;
|
|
21
|
+
}
|
|
22
|
+
export interface ReadableBodyLike {
|
|
23
|
+
getReader(): ReadableBodyReaderLike;
|
|
24
|
+
}
|
|
25
|
+
export interface FetchResponseLike {
|
|
26
|
+
readonly ok: boolean;
|
|
27
|
+
readonly status: number;
|
|
28
|
+
readonly statusText: string;
|
|
29
|
+
readonly headers: HeadersLike;
|
|
30
|
+
readonly body: ReadableBodyLike | null;
|
|
31
|
+
readonly redirected?: boolean;
|
|
32
|
+
readonly url?: string;
|
|
33
|
+
json(): Promise<unknown>;
|
|
34
|
+
text(): Promise<string>;
|
|
35
|
+
arrayBuffer(): Promise<ArrayBuffer>;
|
|
36
|
+
}
|
|
37
|
+
export interface FetchRequestLike {
|
|
38
|
+
method?: string;
|
|
39
|
+
headers?: Readonly<Record<string, string>>;
|
|
40
|
+
body?: unknown;
|
|
41
|
+
signal?: AbortSignalLike | undefined;
|
|
42
|
+
redirect?: "error";
|
|
43
|
+
cache?: "no-store";
|
|
44
|
+
credentials?: "omit";
|
|
45
|
+
}
|
|
46
|
+
export type FetchLike = (url: string, init?: FetchRequestLike) => Promise<FetchResponseLike>;
|
|
47
|
+
export interface TextDecoderLike {
|
|
48
|
+
decode(input?: Uint8Array, options?: {
|
|
49
|
+
stream?: boolean;
|
|
50
|
+
}): string;
|
|
51
|
+
}
|
|
52
|
+
export interface TextEncoderLike {
|
|
53
|
+
encode(input?: string): Uint8Array;
|
|
54
|
+
}
|
|
55
|
+
export interface Clock {
|
|
56
|
+
now(): number;
|
|
57
|
+
}
|
|
58
|
+
export interface IdProvider {
|
|
59
|
+
createId(): string;
|
|
60
|
+
}
|
|
61
|
+
export interface BlobLike {
|
|
62
|
+
readonly size: number;
|
|
63
|
+
readonly type?: string;
|
|
64
|
+
arrayBuffer(): Promise<ArrayBuffer>;
|
|
65
|
+
}
|
|
66
|
+
export type BinaryUploadData = Uint8Array | ArrayBuffer | BlobLike;
|
|
67
|
+
export interface PortableUpload {
|
|
68
|
+
data: BinaryUploadData;
|
|
69
|
+
name: string;
|
|
70
|
+
mediaType: string;
|
|
71
|
+
}
|
|
72
|
+
export interface MultipartPart {
|
|
73
|
+
field: string;
|
|
74
|
+
value: string | PortableUpload;
|
|
75
|
+
}
|
|
76
|
+
export interface EncodedMultipart {
|
|
77
|
+
body: Uint8Array | unknown;
|
|
78
|
+
contentType: string;
|
|
79
|
+
}
|
|
80
|
+
export interface MultipartEncoder {
|
|
81
|
+
encode(parts: readonly MultipartPart[]): Promise<EncodedMultipart>;
|
|
82
|
+
}
|
|
83
|
+
export interface DpopProofInput {
|
|
84
|
+
method: string;
|
|
85
|
+
url: string;
|
|
86
|
+
accessToken?: string | undefined;
|
|
87
|
+
nonce?: string | undefined;
|
|
88
|
+
}
|
|
89
|
+
export interface PublicJwk {
|
|
90
|
+
kty: string;
|
|
91
|
+
crv?: string;
|
|
92
|
+
x?: string;
|
|
93
|
+
y?: string;
|
|
94
|
+
[key: string]: unknown;
|
|
95
|
+
}
|
|
96
|
+
export interface DpopKeyProvider {
|
|
97
|
+
getPublicJwk(): Promise<PublicJwk>;
|
|
98
|
+
getThumbprint(): Promise<string>;
|
|
99
|
+
signProof(input: DpopProofInput): Promise<string>;
|
|
100
|
+
}
|
|
101
|
+
export interface ClientSessionAccess {
|
|
102
|
+
accessToken: string;
|
|
103
|
+
tokenType: "Bearer" | "DPoP";
|
|
104
|
+
expiresAt: number;
|
|
105
|
+
sessionId?: string;
|
|
106
|
+
capabilities?: readonly string[];
|
|
107
|
+
dpopKeyProvider?: DpopKeyProvider;
|
|
108
|
+
dpopNonce?: string;
|
|
109
|
+
}
|
|
110
|
+
export interface SessionRequestContext {
|
|
111
|
+
reason: "request" | "expired" | "unauthorized" | "stream_detached";
|
|
112
|
+
signal?: AbortSignalLike | undefined;
|
|
113
|
+
}
|
|
114
|
+
export interface ClientSessionProvider {
|
|
115
|
+
getAccess(context: SessionRequestContext): Promise<ClientSessionAccess>;
|
|
116
|
+
refresh?(context: SessionRequestContext): Promise<ClientSessionAccess>;
|
|
117
|
+
revoke?(input?: {
|
|
118
|
+
signal?: AbortSignalLike | undefined;
|
|
119
|
+
idempotencyKey?: string;
|
|
120
|
+
}): Promise<void>;
|
|
121
|
+
}
|
|
122
|
+
export interface ClientSessionStorageRecord {
|
|
123
|
+
refreshGrant: string;
|
|
124
|
+
sessionId?: string;
|
|
125
|
+
absoluteExpiresAt?: string;
|
|
126
|
+
}
|
|
127
|
+
export interface ClientSessionStorage {
|
|
128
|
+
load(): Promise<ClientSessionStorageRecord | null>;
|
|
129
|
+
save(record: ClientSessionStorageRecord): Promise<void>;
|
|
130
|
+
clear(): Promise<void>;
|
|
131
|
+
}
|
|
132
|
+
export interface SessionRefreshFenceRecord {
|
|
133
|
+
active: boolean;
|
|
134
|
+
expiresAt: number;
|
|
135
|
+
fence: number;
|
|
136
|
+
operationId: string;
|
|
137
|
+
ownerId: string;
|
|
138
|
+
}
|
|
139
|
+
export interface SessionRefreshFenceStorage {
|
|
140
|
+
load(): Promise<SessionRefreshFenceRecord | null>;
|
|
141
|
+
compareAndSwap(expectedFence: number | null, next: SessionRefreshFenceRecord): Promise<boolean>;
|
|
142
|
+
}
|
|
143
|
+
export interface SessionRefreshLease {
|
|
144
|
+
readonly fence: number;
|
|
145
|
+
readonly operationId: string;
|
|
146
|
+
assertActive(): Promise<void>;
|
|
147
|
+
}
|
|
148
|
+
export interface SessionRefreshCoordinator {
|
|
149
|
+
runExclusive<T>(operation: (lease: SessionRefreshLease) => Promise<T>): Promise<T>;
|
|
150
|
+
}
|
|
151
|
+
export type WaitCapability = (milliseconds: number) => Promise<void>;
|
|
152
|
+
export type TelemetryEvent = {
|
|
153
|
+
type: "request.started" | "request.completed";
|
|
154
|
+
operation: string;
|
|
155
|
+
method: string;
|
|
156
|
+
status?: number;
|
|
157
|
+
durationMs?: number;
|
|
158
|
+
retryCount: number;
|
|
159
|
+
} | {
|
|
160
|
+
type: "stream.connected" | "stream.detached" | "stream.reconnecting" | "stream.completed";
|
|
161
|
+
operation: "chat.stream" | "runs.attach" | "threads.events";
|
|
162
|
+
runId?: string;
|
|
163
|
+
cursor?: number;
|
|
164
|
+
attempt: number;
|
|
165
|
+
reason?: "network" | "token_expired" | "revoked" | "policy_changed" | "server_detach";
|
|
166
|
+
} | {
|
|
167
|
+
type: "session.refreshed" | "session.revoked";
|
|
168
|
+
operation: "session";
|
|
169
|
+
};
|
|
170
|
+
export interface TelemetrySink {
|
|
171
|
+
emit(event: TelemetryEvent): MaybePromise<void>;
|
|
172
|
+
}
|
|
173
|
+
export type TransportSelection = "auto" | "fetch";
|
|
174
|
+
export interface Agents24ClientOptions {
|
|
175
|
+
baseUrl: string;
|
|
176
|
+
deploymentId: string;
|
|
177
|
+
sessionProvider: ClientSessionProvider;
|
|
178
|
+
fetch?: FetchLike;
|
|
179
|
+
decoder?: () => TextDecoderLike;
|
|
180
|
+
encoder?: TextEncoderLike;
|
|
181
|
+
ids?: IdProvider;
|
|
182
|
+
clock?: Clock;
|
|
183
|
+
multipart?: MultipartEncoder;
|
|
184
|
+
telemetry?: TelemetrySink;
|
|
185
|
+
transport?: TransportSelection;
|
|
186
|
+
maxReconnectAttempts?: number;
|
|
187
|
+
}
|
|
188
|
+
export interface ClientBootstrap {
|
|
189
|
+
version: string;
|
|
190
|
+
deployment: {
|
|
191
|
+
id: string;
|
|
192
|
+
name: string;
|
|
193
|
+
agent_version_id: string;
|
|
194
|
+
policy_epoch: number;
|
|
195
|
+
};
|
|
196
|
+
authentication: {
|
|
197
|
+
modes: readonly string[];
|
|
198
|
+
access_token_lifetime_seconds: number;
|
|
199
|
+
jwks_path: string;
|
|
200
|
+
};
|
|
201
|
+
capabilities: readonly string[];
|
|
202
|
+
features: Record<string, unknown>;
|
|
203
|
+
native_profiles: readonly Record<string, unknown>[];
|
|
204
|
+
}
|
|
205
|
+
export interface ClientHints {
|
|
206
|
+
sdk_name?: string;
|
|
207
|
+
sdk_version?: string;
|
|
208
|
+
platform?: string;
|
|
209
|
+
locale?: string;
|
|
210
|
+
timezone?: string;
|
|
211
|
+
}
|
|
212
|
+
export interface ChatStreamInput {
|
|
213
|
+
input: string;
|
|
214
|
+
headers?: Readonly<Record<string, string>>;
|
|
215
|
+
threadId?: string;
|
|
216
|
+
attachmentIds?: readonly string[];
|
|
217
|
+
requestedModelId?: string;
|
|
218
|
+
toolInputs?: Readonly<Record<string, Readonly<Record<string, unknown>>>>;
|
|
219
|
+
metadata?: Readonly<Record<string, unknown>>;
|
|
220
|
+
client?: ClientHints;
|
|
221
|
+
idempotencyKey: string;
|
|
222
|
+
signal?: AbortSignalLike | undefined;
|
|
223
|
+
}
|
|
224
|
+
export interface StreamResult {
|
|
225
|
+
runId: string | null;
|
|
226
|
+
threadId: string | null;
|
|
227
|
+
cursor: number | null;
|
|
228
|
+
detached: boolean;
|
|
229
|
+
}
|
|
230
|
+
export type RuntimeEventHandler = (event: RuntimeEvent) => MaybePromise<void>;
|
|
231
|
+
export type ThreadSummaryEventHandler = (event: ThreadSummaryEvent) => MaybePromise<void>;
|
|
232
|
+
export interface RunAttachInput {
|
|
233
|
+
runId: string;
|
|
234
|
+
cursor?: number;
|
|
235
|
+
headers?: Readonly<Record<string, string>>;
|
|
236
|
+
signal?: AbortSignalLike | undefined;
|
|
237
|
+
}
|
|
238
|
+
export interface ThreadListInput {
|
|
239
|
+
skip?: number;
|
|
240
|
+
limit?: number;
|
|
241
|
+
signal?: AbortSignalLike | undefined;
|
|
242
|
+
}
|
|
243
|
+
export interface ThreadSummary {
|
|
244
|
+
id: string;
|
|
245
|
+
title?: string | null;
|
|
246
|
+
status?: string | null;
|
|
247
|
+
updated_at?: string | null;
|
|
248
|
+
last_activity_at?: string | null;
|
|
249
|
+
last_run_id?: string | null;
|
|
250
|
+
last_run_status?: string | null;
|
|
251
|
+
[key: string]: unknown;
|
|
252
|
+
}
|
|
253
|
+
export interface ThreadListResult {
|
|
254
|
+
items: ThreadSummary[];
|
|
255
|
+
total?: number;
|
|
256
|
+
}
|
|
257
|
+
export interface ThreadDetail extends ThreadSummary {
|
|
258
|
+
turns?: readonly Record<string, unknown>[];
|
|
259
|
+
paging?: {
|
|
260
|
+
has_more?: boolean;
|
|
261
|
+
next_before_turn_index?: number | null;
|
|
262
|
+
};
|
|
263
|
+
}
|
|
264
|
+
export interface AttachmentResult {
|
|
265
|
+
id: string;
|
|
266
|
+
thread_id?: string | null;
|
|
267
|
+
filename: string;
|
|
268
|
+
mime_type: string;
|
|
269
|
+
byte_size: number;
|
|
270
|
+
status: string;
|
|
271
|
+
[key: string]: unknown;
|
|
272
|
+
}
|
|
273
|
+
export type HitlAction = "approve" | "reject" | "connect" | "skip";
|
|
274
|
+
export interface HitlResumeResult {
|
|
275
|
+
run_id: string;
|
|
276
|
+
thread_id?: string | null;
|
|
277
|
+
interrupt_id: string;
|
|
278
|
+
run_status: string;
|
|
279
|
+
resolution_status: string;
|
|
280
|
+
idempotent: boolean;
|
|
281
|
+
}
|
|
282
|
+
export interface McpAuthorizationResult {
|
|
283
|
+
authorization_url: string;
|
|
284
|
+
callback_origin?: string;
|
|
285
|
+
state?: string;
|
|
286
|
+
}
|
|
287
|
+
export interface McpCallbackResult {
|
|
288
|
+
connection_id: string;
|
|
289
|
+
server_id?: string;
|
|
290
|
+
}
|
|
291
|
+
export interface AgentClient {
|
|
292
|
+
bootstrap(input?: {
|
|
293
|
+
signal?: AbortSignalLike;
|
|
294
|
+
}): Promise<ClientBootstrap>;
|
|
295
|
+
readonly chat: {
|
|
296
|
+
stream(input: ChatStreamInput, onEvent: RuntimeEventHandler): Promise<StreamResult>;
|
|
297
|
+
};
|
|
298
|
+
readonly runs: {
|
|
299
|
+
attach(input: RunAttachInput, onEvent: RuntimeEventHandler): Promise<StreamResult>;
|
|
300
|
+
cancel(input: {
|
|
301
|
+
runId: string;
|
|
302
|
+
idempotencyKey: string;
|
|
303
|
+
signal?: AbortSignalLike;
|
|
304
|
+
}): Promise<Record<string, unknown>>;
|
|
305
|
+
};
|
|
306
|
+
readonly threads: {
|
|
307
|
+
list(input?: ThreadListInput): Promise<ThreadListResult>;
|
|
308
|
+
get(input: {
|
|
309
|
+
threadId: string;
|
|
310
|
+
limit?: number;
|
|
311
|
+
beforeTurnIndex?: number;
|
|
312
|
+
includeRunEvents?: boolean;
|
|
313
|
+
signal?: AbortSignalLike;
|
|
314
|
+
}): Promise<ThreadDetail>;
|
|
315
|
+
events(input: {
|
|
316
|
+
cursor?: number;
|
|
317
|
+
signal?: AbortSignalLike;
|
|
318
|
+
}, onEvent: ThreadSummaryEventHandler): Promise<void>;
|
|
319
|
+
delete(input: {
|
|
320
|
+
threadId: string;
|
|
321
|
+
idempotencyKey: string;
|
|
322
|
+
signal?: AbortSignalLike;
|
|
323
|
+
}): Promise<Record<string, unknown>>;
|
|
324
|
+
};
|
|
325
|
+
readonly attachments: {
|
|
326
|
+
upload(input: {
|
|
327
|
+
upload: PortableUpload;
|
|
328
|
+
threadId?: string;
|
|
329
|
+
idempotencyKey: string;
|
|
330
|
+
signal?: AbortSignalLike;
|
|
331
|
+
}): Promise<AttachmentResult>;
|
|
332
|
+
};
|
|
333
|
+
readonly hitl: {
|
|
334
|
+
resume(input: {
|
|
335
|
+
runId: string;
|
|
336
|
+
interruptId: string;
|
|
337
|
+
action: HitlAction;
|
|
338
|
+
comment?: string;
|
|
339
|
+
idempotencyKey: string;
|
|
340
|
+
signal?: AbortSignalLike;
|
|
341
|
+
}): Promise<HitlResumeResult>;
|
|
342
|
+
};
|
|
343
|
+
readonly mcp: {
|
|
344
|
+
startAuthorization(input: {
|
|
345
|
+
runId: string;
|
|
346
|
+
serverId: string;
|
|
347
|
+
interruptId: string;
|
|
348
|
+
redirectUri: string;
|
|
349
|
+
popupNonce: string;
|
|
350
|
+
codeChallenge: string;
|
|
351
|
+
idempotencyKey: string;
|
|
352
|
+
signal?: AbortSignalLike;
|
|
353
|
+
}): Promise<McpAuthorizationResult>;
|
|
354
|
+
redeemCallback(input: {
|
|
355
|
+
code: string;
|
|
356
|
+
codeVerifier: string;
|
|
357
|
+
idempotencyKey: string;
|
|
358
|
+
signal?: AbortSignalLike;
|
|
359
|
+
}): Promise<McpCallbackResult>;
|
|
360
|
+
};
|
|
361
|
+
readonly sessions: {
|
|
362
|
+
revoke(input?: {
|
|
363
|
+
signal?: AbortSignalLike;
|
|
364
|
+
idempotencyKey?: string;
|
|
365
|
+
}): Promise<void>;
|
|
366
|
+
};
|
|
367
|
+
}
|
package/dist/url.d.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare function normalizeBaseUrl(input: string): string;
|
|
2
|
+
export declare function absoluteUrl(baseUrl: string, path: string): string;
|
|
3
|
+
export declare function canonicalHtu(input: string): string;
|
|
4
|
+
export declare function encodePath(value: string): string;
|
|
5
|
+
export declare function appendQuery(path: string, values: Readonly<Record<string, string | number | boolean | undefined>>): string;
|
package/package.json
ADDED
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@agents24/client",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Framework-neutral end-user runtime client for deployment-scoped Agents24 sessions.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"agents24",
|
|
7
|
+
"agent",
|
|
8
|
+
"client",
|
|
9
|
+
"sse",
|
|
10
|
+
"dpop"
|
|
11
|
+
],
|
|
12
|
+
"author": "Talmudpedia",
|
|
13
|
+
"license": "MIT",
|
|
14
|
+
"repository": {
|
|
15
|
+
"type": "git",
|
|
16
|
+
"url": "git+https://github.com/daniel5426/talmudpedia.git",
|
|
17
|
+
"directory": "packages/agents24-client"
|
|
18
|
+
},
|
|
19
|
+
"type": "module",
|
|
20
|
+
"types": "./dist/index.d.ts",
|
|
21
|
+
"main": "./dist/index.js",
|
|
22
|
+
"module": "./dist/index.js",
|
|
23
|
+
"exports": {
|
|
24
|
+
".": {
|
|
25
|
+
"types": "./dist/index.d.ts",
|
|
26
|
+
"default": "./dist/index.js"
|
|
27
|
+
},
|
|
28
|
+
"./protocol": {
|
|
29
|
+
"types": "./dist/protocol.d.ts",
|
|
30
|
+
"default": "./dist/protocol.js"
|
|
31
|
+
},
|
|
32
|
+
"./browser": {
|
|
33
|
+
"types": "./dist/adapters/browser.d.ts",
|
|
34
|
+
"default": "./dist/adapters/browser.js"
|
|
35
|
+
},
|
|
36
|
+
"./worker": {
|
|
37
|
+
"types": "./dist/adapters/worker.d.ts",
|
|
38
|
+
"default": "./dist/adapters/worker.js"
|
|
39
|
+
},
|
|
40
|
+
"./node": {
|
|
41
|
+
"types": "./dist/adapters/node.d.ts",
|
|
42
|
+
"default": "./dist/adapters/node.js"
|
|
43
|
+
},
|
|
44
|
+
"./cloudflare": {
|
|
45
|
+
"types": "./dist/adapters/cloudflare.d.ts",
|
|
46
|
+
"default": "./dist/adapters/cloudflare.js"
|
|
47
|
+
},
|
|
48
|
+
"./compatibility.json": "./compatibility.json"
|
|
49
|
+
},
|
|
50
|
+
"files": [
|
|
51
|
+
"dist",
|
|
52
|
+
"compatibility.json",
|
|
53
|
+
"README.md",
|
|
54
|
+
"LICENSE"
|
|
55
|
+
],
|
|
56
|
+
"sideEffects": false,
|
|
57
|
+
"engines": {
|
|
58
|
+
"node": "^22.0.0 || ^24.0.0"
|
|
59
|
+
},
|
|
60
|
+
"publishConfig": {
|
|
61
|
+
"access": "public",
|
|
62
|
+
"provenance": false
|
|
63
|
+
},
|
|
64
|
+
"scripts": {
|
|
65
|
+
"sync:contract": "node scripts/sync-contract.mjs",
|
|
66
|
+
"check:contract": "node scripts/sync-contract.mjs --check",
|
|
67
|
+
"clean": "rm -rf dist",
|
|
68
|
+
"build": "pnpm run sync:contract && tsup && tsc -p tsconfig.build.json && node scripts/sync-contract.mjs --dist",
|
|
69
|
+
"typecheck": "pnpm run sync:contract && tsc -p tsconfig.json --noEmit",
|
|
70
|
+
"test": "pnpm run build && node --test tests/unit/*.test.mjs tests/conformance/*.test.mjs",
|
|
71
|
+
"check:boundaries": "node scripts/check-boundaries.mjs",
|
|
72
|
+
"check:browser-matrix": "node scripts/check-browser-matrix.mjs",
|
|
73
|
+
"check:bun": "node scripts/check-portable-runtime.mjs --runtime=bun",
|
|
74
|
+
"check:cloudflare": "node scripts/check-cloudflare.mjs",
|
|
75
|
+
"check:deno": "node scripts/check-portable-runtime.mjs --runtime=deno",
|
|
76
|
+
"check:electron": "node scripts/check-electron.mjs",
|
|
77
|
+
"check:metro": "node scripts/check-metro.mjs",
|
|
78
|
+
"check:pack": "node scripts/check-pack.mjs",
|
|
79
|
+
"check:service-worker": "node scripts/check-service-worker.mjs",
|
|
80
|
+
"prepack": "pnpm run build && pnpm run check:boundaries"
|
|
81
|
+
},
|
|
82
|
+
"devDependencies": {
|
|
83
|
+
"@types/node": "^24.7.2",
|
|
84
|
+
"esbuild": "^0.28.1",
|
|
85
|
+
"tsup": "^8.5.1",
|
|
86
|
+
"typescript": "^5.9.3"
|
|
87
|
+
}
|
|
88
|
+
}
|