@raconte/node-sdk 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/README.md +64 -0
- package/dist/client.d.ts +23 -0
- package/dist/client.js +23 -0
- package/dist/generated/client/client.gen.d.ts +2 -0
- package/dist/generated/client/client.gen.js +229 -0
- package/dist/generated/client/index.d.ts +8 -0
- package/dist/generated/client/index.js +6 -0
- package/dist/generated/client/types.gen.d.ts +117 -0
- package/dist/generated/client/types.gen.js +2 -0
- package/dist/generated/client/utils.gen.d.ts +33 -0
- package/dist/generated/client/utils.gen.js +231 -0
- package/dist/generated/client.gen.d.ts +12 -0
- package/dist/generated/client.gen.js +3 -0
- package/dist/generated/core/auth.gen.d.ts +18 -0
- package/dist/generated/core/auth.gen.js +14 -0
- package/dist/generated/core/bodySerializer.gen.d.ts +25 -0
- package/dist/generated/core/bodySerializer.gen.js +57 -0
- package/dist/generated/core/params.gen.d.ts +43 -0
- package/dist/generated/core/params.gen.js +100 -0
- package/dist/generated/core/pathSerializer.gen.d.ts +33 -0
- package/dist/generated/core/pathSerializer.gen.js +114 -0
- package/dist/generated/core/queryKeySerializer.gen.d.ts +18 -0
- package/dist/generated/core/queryKeySerializer.gen.js +99 -0
- package/dist/generated/core/serverSentEvents.gen.d.ts +71 -0
- package/dist/generated/core/serverSentEvents.gen.js +137 -0
- package/dist/generated/core/types.gen.d.ts +78 -0
- package/dist/generated/core/types.gen.js +2 -0
- package/dist/generated/core/utils.gen.d.ts +19 -0
- package/dist/generated/core/utils.gen.js +87 -0
- package/dist/generated/index.d.ts +2 -0
- package/dist/generated/index.js +3 -0
- package/dist/generated/sdk.gen.d.ts +38 -0
- package/dist/generated/sdk.gen.js +133 -0
- package/dist/generated/types.gen.d.ts +705 -0
- package/dist/generated/types.gen.js +12 -0
- package/dist/generated/zod.gen.d.ts +1294 -0
- package/dist/generated/zod.gen.js +589 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.js +11 -0
- package/package.json +55 -0
|
@@ -0,0 +1,589 @@
|
|
|
1
|
+
// This file is auto-generated by @hey-api/openapi-ts
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
/**
|
|
4
|
+
* VoiceTestAudioUrlSchema
|
|
5
|
+
*
|
|
6
|
+
* Short-lived presigned URL for the voice preview audio. Generated on first request if missing.
|
|
7
|
+
*/
|
|
8
|
+
export const zVoiceTestAudioUrlSchema = z.object({
|
|
9
|
+
url: z.url(),
|
|
10
|
+
expiresAt: z.string(),
|
|
11
|
+
mimeType: z.string(),
|
|
12
|
+
});
|
|
13
|
+
/**
|
|
14
|
+
* VoiceSchema
|
|
15
|
+
*
|
|
16
|
+
* A voice available for interview narration. Provider-specific identifiers are not exposed publicly.
|
|
17
|
+
*/
|
|
18
|
+
export const zVoiceSchema = z.object({
|
|
19
|
+
id: z
|
|
20
|
+
.uuid()
|
|
21
|
+
.regex(/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/),
|
|
22
|
+
name: z.string(),
|
|
23
|
+
language: z.string(),
|
|
24
|
+
gender: z.enum(["M", "F"]),
|
|
25
|
+
provider: z.enum(["gradium", "elevenlabs"]),
|
|
26
|
+
});
|
|
27
|
+
/**
|
|
28
|
+
* VoiceListSchema
|
|
29
|
+
*
|
|
30
|
+
* List of voices matching the requested language filter.
|
|
31
|
+
*/
|
|
32
|
+
export const zVoiceListSchema = z.array(zVoiceSchema);
|
|
33
|
+
/**
|
|
34
|
+
* InterviewMessageAudioUrlSchema
|
|
35
|
+
*
|
|
36
|
+
* Short-lived presigned URL for the audio attached to an interview message.
|
|
37
|
+
*/
|
|
38
|
+
export const zInterviewMessageAudioUrlSchema = z.object({
|
|
39
|
+
url: z.url(),
|
|
40
|
+
expiresAt: z.string(),
|
|
41
|
+
mimeType: z.string(),
|
|
42
|
+
});
|
|
43
|
+
/**
|
|
44
|
+
* InterviewLogSchema
|
|
45
|
+
*
|
|
46
|
+
* Schema for a single interview log entry. target is the email or phone for send events, null for status transitions. invitationId points to the specific invitation that the event concerns; null for legacy rows that predate the invitation split.
|
|
47
|
+
*/
|
|
48
|
+
export const zInterviewLogSchema = z.object({
|
|
49
|
+
id: z
|
|
50
|
+
.uuid()
|
|
51
|
+
.regex(/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/),
|
|
52
|
+
type: z.enum([
|
|
53
|
+
"email_sent",
|
|
54
|
+
"sms_sent",
|
|
55
|
+
"started",
|
|
56
|
+
"completed",
|
|
57
|
+
"cancelled",
|
|
58
|
+
"reactivated",
|
|
59
|
+
"archived",
|
|
60
|
+
"restored",
|
|
61
|
+
]),
|
|
62
|
+
target: z.union([z.string(), z.null()]),
|
|
63
|
+
invitationId: z.union([
|
|
64
|
+
z
|
|
65
|
+
.uuid()
|
|
66
|
+
.regex(/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/),
|
|
67
|
+
z.null(),
|
|
68
|
+
]),
|
|
69
|
+
createdAt: z.string(),
|
|
70
|
+
});
|
|
71
|
+
/**
|
|
72
|
+
* InterviewLogListSchema
|
|
73
|
+
*
|
|
74
|
+
* Chronological history of events on an interview, most recent first.
|
|
75
|
+
*/
|
|
76
|
+
export const zInterviewLogListSchema = z.array(zInterviewLogSchema);
|
|
77
|
+
/**
|
|
78
|
+
* InterviewMessageSchema
|
|
79
|
+
*
|
|
80
|
+
* Schema for an interview message. audioAssetId is null when no audio was recorded for that message (legacy messages, deleted audio, etc.). audioPeaks is a base64-encoded uint8 waveform summary of the attached audio (128 amplitude bins, 0-255), null when no audio is attached or when peaks have not been computed yet for a legacy asset. sentiment is populated only on user-role messages once async insights generation has completed.
|
|
81
|
+
*/
|
|
82
|
+
export const zInterviewMessageSchema = z.object({
|
|
83
|
+
id: z
|
|
84
|
+
.uuid()
|
|
85
|
+
.regex(/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/),
|
|
86
|
+
role: z.enum(["user", "assistant", "system"]),
|
|
87
|
+
content: z.string(),
|
|
88
|
+
audioAssetId: z.union([
|
|
89
|
+
z
|
|
90
|
+
.uuid()
|
|
91
|
+
.regex(/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/),
|
|
92
|
+
z.null(),
|
|
93
|
+
]),
|
|
94
|
+
audioDurationMs: z.union([z.int().gte(0).lte(9007199254740991), z.null()]),
|
|
95
|
+
audioPeaks: z.union([z.string(), z.null()]),
|
|
96
|
+
sentiment: z.union([z.enum(["positive", "neutral", "negative"]), z.null()]),
|
|
97
|
+
createdAt: z.string(),
|
|
98
|
+
});
|
|
99
|
+
/**
|
|
100
|
+
* InterviewInvitationStatus
|
|
101
|
+
*
|
|
102
|
+
* Lifecycle state of an invitation (the unit that gets sent and produces a transcript).
|
|
103
|
+
*/
|
|
104
|
+
export const zInterviewInvitationStatus = z.enum([
|
|
105
|
+
"ready",
|
|
106
|
+
"in_progress",
|
|
107
|
+
"completed",
|
|
108
|
+
"cancelled",
|
|
109
|
+
]);
|
|
110
|
+
/**
|
|
111
|
+
* InterviewInvitationSchema
|
|
112
|
+
*
|
|
113
|
+
* Full interview invitation payload including transcript messages. summary and per-message sentiments are populated asynchronously once the invitation reaches the completed state.
|
|
114
|
+
*/
|
|
115
|
+
export const zInterviewInvitationSchema = z.object({
|
|
116
|
+
id: z
|
|
117
|
+
.uuid()
|
|
118
|
+
.regex(/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/),
|
|
119
|
+
interviewId: z
|
|
120
|
+
.uuid()
|
|
121
|
+
.regex(/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/),
|
|
122
|
+
slug: z.string(),
|
|
123
|
+
status: zInterviewInvitationStatus,
|
|
124
|
+
name: z.union([z.string(), z.null()]),
|
|
125
|
+
recipientEmail: z.union([z.string(), z.null()]),
|
|
126
|
+
recipientPhone: z.union([z.string(), z.null()]),
|
|
127
|
+
summary: z.union([z.string(), z.null()]),
|
|
128
|
+
archivedAt: z.union([z.string(), z.null()]),
|
|
129
|
+
createdAt: z.string(),
|
|
130
|
+
updatedAt: z.string(),
|
|
131
|
+
messages: z.optional(z.array(zInterviewMessageSchema)),
|
|
132
|
+
});
|
|
133
|
+
/**
|
|
134
|
+
* InterviewInvitationListSchema
|
|
135
|
+
*
|
|
136
|
+
* List of interview invitations belonging to an interview.
|
|
137
|
+
*/
|
|
138
|
+
export const zInterviewInvitationListSchema = z.array(zInterviewInvitationSchema);
|
|
139
|
+
/**
|
|
140
|
+
* RestoreInterviewResponse
|
|
141
|
+
*
|
|
142
|
+
* Response for restoring an archived interview
|
|
143
|
+
*/
|
|
144
|
+
export const zRestoreInterviewResponse = z.object({
|
|
145
|
+
success: z.boolean(),
|
|
146
|
+
});
|
|
147
|
+
/**
|
|
148
|
+
* ArchiveInterviewResponse
|
|
149
|
+
*
|
|
150
|
+
* Response for archiving an interview
|
|
151
|
+
*/
|
|
152
|
+
export const zArchiveInterviewResponse = z.object({
|
|
153
|
+
success: z.boolean(),
|
|
154
|
+
});
|
|
155
|
+
/**
|
|
156
|
+
* InterviewInvitationSummarySchema
|
|
157
|
+
*
|
|
158
|
+
* Lightweight invitation row used in lists. summaryAvailable is true once async insights have produced a summary for this invitation. hasMessages is true as soon as the invitation has at least one transcript message persisted.
|
|
159
|
+
*/
|
|
160
|
+
export const zInterviewInvitationSummarySchema = z.object({
|
|
161
|
+
id: z
|
|
162
|
+
.uuid()
|
|
163
|
+
.regex(/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/),
|
|
164
|
+
slug: z.string(),
|
|
165
|
+
status: z.enum(["ready", "in_progress", "completed", "cancelled"]),
|
|
166
|
+
name: z.union([z.string(), z.null()]),
|
|
167
|
+
recipientEmail: z.union([z.string(), z.null()]),
|
|
168
|
+
recipientPhone: z.union([z.string(), z.null()]),
|
|
169
|
+
archivedAt: z.union([z.string(), z.null()]),
|
|
170
|
+
createdAt: z.string(),
|
|
171
|
+
updatedAt: z.string(),
|
|
172
|
+
hasMessages: z.boolean(),
|
|
173
|
+
summaryAvailable: z.boolean(),
|
|
174
|
+
});
|
|
175
|
+
/**
|
|
176
|
+
* InterviewStatusCounts
|
|
177
|
+
*
|
|
178
|
+
* Number of invitations in each status for a given interview, archived invitations excluded.
|
|
179
|
+
*/
|
|
180
|
+
export const zInterviewStatusCounts = z.object({
|
|
181
|
+
ready: z.int().gte(0).lte(9007199254740991),
|
|
182
|
+
in_progress: z.int().gte(0).lte(9007199254740991),
|
|
183
|
+
completed: z.int().gte(0).lte(9007199254740991),
|
|
184
|
+
cancelled: z.int().gte(0).lte(9007199254740991),
|
|
185
|
+
});
|
|
186
|
+
/**
|
|
187
|
+
* InterviewSchema
|
|
188
|
+
*
|
|
189
|
+
* Schema for an interview definition. invitations is the list of recipients this interview has been (or will be) sent to. When invitationsCount == 1, the interview is in "single" mode; when > 1, it is a bulk send.
|
|
190
|
+
*/
|
|
191
|
+
export const zInterviewSchema = z.object({
|
|
192
|
+
id: z
|
|
193
|
+
.uuid()
|
|
194
|
+
.regex(/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/),
|
|
195
|
+
title: z.union([z.string(), z.null()]),
|
|
196
|
+
prompt: z.string(),
|
|
197
|
+
intro: z.union([z.string(), z.null()]),
|
|
198
|
+
firstMessage: z.union([z.string(), z.null()]),
|
|
199
|
+
locale: z.union([z.string(), z.null()]),
|
|
200
|
+
voiceId: z
|
|
201
|
+
.uuid()
|
|
202
|
+
.regex(/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/),
|
|
203
|
+
maxMinutes: z.int().gt(0).lte(9007199254740991),
|
|
204
|
+
maxResponses: z.int().gt(0).lte(9007199254740991),
|
|
205
|
+
disableOrgSystemPrompt: z.boolean(),
|
|
206
|
+
createdAt: z.string(),
|
|
207
|
+
updatedAt: z.string(),
|
|
208
|
+
archivedAt: z.union([z.string(), z.null()]),
|
|
209
|
+
invitationsCount: z.int().gte(0).lte(9007199254740991),
|
|
210
|
+
invitationsByStatus: zInterviewStatusCounts,
|
|
211
|
+
invitationsArchivedCount: z.int().gte(0).lte(9007199254740991),
|
|
212
|
+
invitations: z.array(zInterviewInvitationSummarySchema),
|
|
213
|
+
});
|
|
214
|
+
/**
|
|
215
|
+
* InterviewListSchema
|
|
216
|
+
*
|
|
217
|
+
* Schema for a list of interviews
|
|
218
|
+
*/
|
|
219
|
+
export const zInterviewListSchema = z.array(zInterviewSchema);
|
|
220
|
+
/**
|
|
221
|
+
* CreatedInterviewSchema
|
|
222
|
+
*
|
|
223
|
+
* Schema for a newly created interview, including the slug of its initial invitation.
|
|
224
|
+
*/
|
|
225
|
+
export const zCreatedInterviewSchema = z.object({
|
|
226
|
+
id: z
|
|
227
|
+
.uuid()
|
|
228
|
+
.regex(/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/),
|
|
229
|
+
invitationId: z
|
|
230
|
+
.uuid()
|
|
231
|
+
.regex(/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/),
|
|
232
|
+
slug: z.string(),
|
|
233
|
+
status: z.enum(["ready", "in_progress", "completed", "cancelled"]),
|
|
234
|
+
});
|
|
235
|
+
/**
|
|
236
|
+
* CreatedInterviewsResponse
|
|
237
|
+
*
|
|
238
|
+
* Response for interview creation
|
|
239
|
+
*/
|
|
240
|
+
export const zCreatedInterviewsResponse = z.array(zCreatedInterviewSchema);
|
|
241
|
+
export const zInterviewsControllerListData = z.object({
|
|
242
|
+
body: z.optional(z.never()),
|
|
243
|
+
path: z.optional(z.never()),
|
|
244
|
+
query: z.optional(z.object({
|
|
245
|
+
archived: z.optional(z.boolean()),
|
|
246
|
+
})),
|
|
247
|
+
});
|
|
248
|
+
/**
|
|
249
|
+
* Schema for a list of interviews
|
|
250
|
+
*/
|
|
251
|
+
export const zInterviewsControllerListResponse = zInterviewListSchema;
|
|
252
|
+
export const zInterviewsControllerCreateData = z.object({
|
|
253
|
+
body: z.object({
|
|
254
|
+
prompt: z.string().min(10),
|
|
255
|
+
title: z.optional(z.string()),
|
|
256
|
+
intro: z.optional(z.string()),
|
|
257
|
+
firstMessage: z.optional(z.string()),
|
|
258
|
+
email: z.optional(z
|
|
259
|
+
.email()
|
|
260
|
+
.regex(/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/)),
|
|
261
|
+
phone: z.optional(z.string()),
|
|
262
|
+
invitees: z.optional(z.array(z.object({
|
|
263
|
+
name: z.optional(z.string()),
|
|
264
|
+
email: z.optional(z
|
|
265
|
+
.email()
|
|
266
|
+
.regex(/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/)),
|
|
267
|
+
phone: z.optional(z.string()),
|
|
268
|
+
}))),
|
|
269
|
+
locale: z.optional(z.string()),
|
|
270
|
+
voiceId: z.optional(z
|
|
271
|
+
.uuid()
|
|
272
|
+
.regex(/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/)),
|
|
273
|
+
}),
|
|
274
|
+
path: z.optional(z.never()),
|
|
275
|
+
query: z.optional(z.never()),
|
|
276
|
+
});
|
|
277
|
+
/**
|
|
278
|
+
* Response for interview creation
|
|
279
|
+
*/
|
|
280
|
+
export const zInterviewsControllerCreateResponse = zCreatedInterviewsResponse;
|
|
281
|
+
export const zInterviewsControllerGetOneData = z.object({
|
|
282
|
+
body: z.optional(z.never()),
|
|
283
|
+
path: z.object({
|
|
284
|
+
id: z
|
|
285
|
+
.uuid()
|
|
286
|
+
.regex(/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/),
|
|
287
|
+
}),
|
|
288
|
+
query: z.optional(z.never()),
|
|
289
|
+
});
|
|
290
|
+
/**
|
|
291
|
+
* Schema for an interview definition. invitations is the list of recipients this interview has been (or will be) sent to. When invitationsCount == 1, the interview is in "single" mode; when > 1, it is a bulk send.
|
|
292
|
+
*/
|
|
293
|
+
export const zInterviewsControllerGetOneResponse = zInterviewSchema;
|
|
294
|
+
export const zInterviewsControllerUpdateData = z.object({
|
|
295
|
+
body: z.object({
|
|
296
|
+
title: z.optional(z.string()),
|
|
297
|
+
prompt: z.optional(z.string().min(10)),
|
|
298
|
+
intro: z.optional(z.string()),
|
|
299
|
+
firstMessage: z.optional(z.string()),
|
|
300
|
+
locale: z.optional(z.string().min(2).max(10)),
|
|
301
|
+
maxMinutes: z.optional(z.int().gt(0).lte(9007199254740991)),
|
|
302
|
+
maxResponses: z.optional(z.int().gt(0).lte(9007199254740991)),
|
|
303
|
+
disableOrgSystemPrompt: z.optional(z.boolean()),
|
|
304
|
+
voiceId: z.optional(z
|
|
305
|
+
.uuid()
|
|
306
|
+
.regex(/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/)),
|
|
307
|
+
}),
|
|
308
|
+
path: z.object({
|
|
309
|
+
id: z
|
|
310
|
+
.uuid()
|
|
311
|
+
.regex(/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/),
|
|
312
|
+
}),
|
|
313
|
+
query: z.optional(z.never()),
|
|
314
|
+
});
|
|
315
|
+
/**
|
|
316
|
+
* Schema for an interview definition. invitations is the list of recipients this interview has been (or will be) sent to. When invitationsCount == 1, the interview is in "single" mode; when > 1, it is a bulk send.
|
|
317
|
+
*/
|
|
318
|
+
export const zInterviewsControllerUpdateResponse = zInterviewSchema;
|
|
319
|
+
export const zInterviewsControllerRegenerateIntroData = z.object({
|
|
320
|
+
body: z.optional(z.never()),
|
|
321
|
+
path: z.object({
|
|
322
|
+
id: z
|
|
323
|
+
.uuid()
|
|
324
|
+
.regex(/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/),
|
|
325
|
+
}),
|
|
326
|
+
query: z.optional(z.never()),
|
|
327
|
+
});
|
|
328
|
+
/**
|
|
329
|
+
* Schema for an interview definition. invitations is the list of recipients this interview has been (or will be) sent to. When invitationsCount == 1, the interview is in "single" mode; when > 1, it is a bulk send.
|
|
330
|
+
*/
|
|
331
|
+
export const zInterviewsControllerRegenerateIntroResponse = zInterviewSchema;
|
|
332
|
+
export const zInterviewsControllerRegenerateFirstMessageData = z.object({
|
|
333
|
+
body: z.optional(z.never()),
|
|
334
|
+
path: z.object({
|
|
335
|
+
id: z
|
|
336
|
+
.uuid()
|
|
337
|
+
.regex(/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/),
|
|
338
|
+
}),
|
|
339
|
+
query: z.optional(z.never()),
|
|
340
|
+
});
|
|
341
|
+
/**
|
|
342
|
+
* Schema for an interview definition. invitations is the list of recipients this interview has been (or will be) sent to. When invitationsCount == 1, the interview is in "single" mode; when > 1, it is a bulk send.
|
|
343
|
+
*/
|
|
344
|
+
export const zInterviewsControllerRegenerateFirstMessageResponse = zInterviewSchema;
|
|
345
|
+
export const zInterviewsControllerArchiveData = z.object({
|
|
346
|
+
body: z.optional(z.never()),
|
|
347
|
+
path: z.object({
|
|
348
|
+
id: z
|
|
349
|
+
.uuid()
|
|
350
|
+
.regex(/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/),
|
|
351
|
+
}),
|
|
352
|
+
query: z.optional(z.never()),
|
|
353
|
+
});
|
|
354
|
+
/**
|
|
355
|
+
* Response for archiving an interview
|
|
356
|
+
*/
|
|
357
|
+
export const zInterviewsControllerArchiveResponse = zArchiveInterviewResponse;
|
|
358
|
+
export const zInterviewsControllerRestoreData = z.object({
|
|
359
|
+
body: z.optional(z.never()),
|
|
360
|
+
path: z.object({
|
|
361
|
+
id: z
|
|
362
|
+
.uuid()
|
|
363
|
+
.regex(/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/),
|
|
364
|
+
}),
|
|
365
|
+
query: z.optional(z.never()),
|
|
366
|
+
});
|
|
367
|
+
/**
|
|
368
|
+
* Response for restoring an archived interview
|
|
369
|
+
*/
|
|
370
|
+
export const zInterviewsControllerRestoreResponse = zRestoreInterviewResponse;
|
|
371
|
+
export const zInterviewsControllerGetLogsData = z.object({
|
|
372
|
+
body: z.optional(z.never()),
|
|
373
|
+
path: z.object({
|
|
374
|
+
id: z
|
|
375
|
+
.uuid()
|
|
376
|
+
.regex(/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/),
|
|
377
|
+
}),
|
|
378
|
+
query: z.optional(z.never()),
|
|
379
|
+
});
|
|
380
|
+
/**
|
|
381
|
+
* Chronological history of events on an interview, most recent first.
|
|
382
|
+
*/
|
|
383
|
+
export const zInterviewsControllerGetLogsResponse = zInterviewLogListSchema;
|
|
384
|
+
export const zInterviewInvitationsControllerListData = z.object({
|
|
385
|
+
body: z.optional(z.never()),
|
|
386
|
+
path: z.object({
|
|
387
|
+
id: z
|
|
388
|
+
.uuid()
|
|
389
|
+
.regex(/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/),
|
|
390
|
+
}),
|
|
391
|
+
query: z.optional(z.never()),
|
|
392
|
+
});
|
|
393
|
+
/**
|
|
394
|
+
* List of interview invitations belonging to an interview.
|
|
395
|
+
*/
|
|
396
|
+
export const zInterviewInvitationsControllerListResponse = zInterviewInvitationListSchema;
|
|
397
|
+
export const zInterviewInvitationsControllerCreateData = z.object({
|
|
398
|
+
body: z.object({
|
|
399
|
+
name: z.optional(z.string()),
|
|
400
|
+
email: z.optional(z
|
|
401
|
+
.email()
|
|
402
|
+
.regex(/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/)),
|
|
403
|
+
phone: z.optional(z.string()),
|
|
404
|
+
}),
|
|
405
|
+
path: z.object({
|
|
406
|
+
id: z
|
|
407
|
+
.uuid()
|
|
408
|
+
.regex(/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/),
|
|
409
|
+
}),
|
|
410
|
+
query: z.optional(z.never()),
|
|
411
|
+
});
|
|
412
|
+
/**
|
|
413
|
+
* Full interview invitation payload including transcript messages. summary and per-message sentiments are populated asynchronously once the invitation reaches the completed state.
|
|
414
|
+
*/
|
|
415
|
+
export const zInterviewInvitationsControllerCreateResponse = zInterviewInvitationSchema;
|
|
416
|
+
export const zInterviewInvitationsControllerCreateBulkData = z.object({
|
|
417
|
+
body: z.object({
|
|
418
|
+
invitees: z
|
|
419
|
+
.array(z.object({
|
|
420
|
+
name: z.optional(z.string()),
|
|
421
|
+
email: z.optional(z
|
|
422
|
+
.email()
|
|
423
|
+
.regex(/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/)),
|
|
424
|
+
phone: z.optional(z.string()),
|
|
425
|
+
}))
|
|
426
|
+
.min(1),
|
|
427
|
+
}),
|
|
428
|
+
path: z.object({
|
|
429
|
+
id: z
|
|
430
|
+
.uuid()
|
|
431
|
+
.regex(/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/),
|
|
432
|
+
}),
|
|
433
|
+
query: z.optional(z.never()),
|
|
434
|
+
});
|
|
435
|
+
/**
|
|
436
|
+
* List of interview invitations belonging to an interview.
|
|
437
|
+
*/
|
|
438
|
+
export const zInterviewInvitationsControllerCreateBulkResponse = zInterviewInvitationListSchema;
|
|
439
|
+
export const zInterviewInvitationsControllerGetOneData = z.object({
|
|
440
|
+
body: z.optional(z.never()),
|
|
441
|
+
path: z.object({
|
|
442
|
+
invitationId: z
|
|
443
|
+
.uuid()
|
|
444
|
+
.regex(/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/),
|
|
445
|
+
}),
|
|
446
|
+
query: z.optional(z.never()),
|
|
447
|
+
});
|
|
448
|
+
/**
|
|
449
|
+
* Full interview invitation payload including transcript messages. summary and per-message sentiments are populated asynchronously once the invitation reaches the completed state.
|
|
450
|
+
*/
|
|
451
|
+
export const zInterviewInvitationsControllerGetOneResponse = zInterviewInvitationSchema;
|
|
452
|
+
export const zInterviewInvitationsControllerUpdateData = z.object({
|
|
453
|
+
body: z.object({
|
|
454
|
+
name: z.optional(z.union([z.string(), z.null()])),
|
|
455
|
+
}),
|
|
456
|
+
path: z.object({
|
|
457
|
+
invitationId: z
|
|
458
|
+
.uuid()
|
|
459
|
+
.regex(/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/),
|
|
460
|
+
}),
|
|
461
|
+
query: z.optional(z.never()),
|
|
462
|
+
});
|
|
463
|
+
/**
|
|
464
|
+
* Full interview invitation payload including transcript messages. summary and per-message sentiments are populated asynchronously once the invitation reaches the completed state.
|
|
465
|
+
*/
|
|
466
|
+
export const zInterviewInvitationsControllerUpdateResponse = zInterviewInvitationSchema;
|
|
467
|
+
export const zInterviewInvitationsControllerSendData = z.object({
|
|
468
|
+
body: z.object({
|
|
469
|
+
email: z.optional(z
|
|
470
|
+
.email()
|
|
471
|
+
.regex(/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/)),
|
|
472
|
+
phone: z.optional(z.string()),
|
|
473
|
+
}),
|
|
474
|
+
path: z.object({
|
|
475
|
+
invitationId: z
|
|
476
|
+
.uuid()
|
|
477
|
+
.regex(/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/),
|
|
478
|
+
}),
|
|
479
|
+
query: z.optional(z.never()),
|
|
480
|
+
});
|
|
481
|
+
/**
|
|
482
|
+
* Full interview invitation payload including transcript messages. summary and per-message sentiments are populated asynchronously once the invitation reaches the completed state.
|
|
483
|
+
*/
|
|
484
|
+
export const zInterviewInvitationsControllerSendResponse = zInterviewInvitationSchema;
|
|
485
|
+
export const zInterviewInvitationsControllerCancelData = z.object({
|
|
486
|
+
body: z.optional(z.never()),
|
|
487
|
+
path: z.object({
|
|
488
|
+
invitationId: z
|
|
489
|
+
.uuid()
|
|
490
|
+
.regex(/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/),
|
|
491
|
+
}),
|
|
492
|
+
query: z.optional(z.never()),
|
|
493
|
+
});
|
|
494
|
+
/**
|
|
495
|
+
* Full interview invitation payload including transcript messages. summary and per-message sentiments are populated asynchronously once the invitation reaches the completed state.
|
|
496
|
+
*/
|
|
497
|
+
export const zInterviewInvitationsControllerCancelResponse = zInterviewInvitationSchema;
|
|
498
|
+
export const zInterviewInvitationsControllerReactivateData = z.object({
|
|
499
|
+
body: z.optional(z.never()),
|
|
500
|
+
path: z.object({
|
|
501
|
+
invitationId: z
|
|
502
|
+
.uuid()
|
|
503
|
+
.regex(/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/),
|
|
504
|
+
}),
|
|
505
|
+
query: z.optional(z.never()),
|
|
506
|
+
});
|
|
507
|
+
/**
|
|
508
|
+
* Full interview invitation payload including transcript messages. summary and per-message sentiments are populated asynchronously once the invitation reaches the completed state.
|
|
509
|
+
*/
|
|
510
|
+
export const zInterviewInvitationsControllerReactivateResponse = zInterviewInvitationSchema;
|
|
511
|
+
export const zInterviewInvitationsControllerArchiveData = z.object({
|
|
512
|
+
body: z.optional(z.never()),
|
|
513
|
+
path: z.object({
|
|
514
|
+
invitationId: z
|
|
515
|
+
.uuid()
|
|
516
|
+
.regex(/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/),
|
|
517
|
+
}),
|
|
518
|
+
query: z.optional(z.never()),
|
|
519
|
+
});
|
|
520
|
+
/**
|
|
521
|
+
* Full interview invitation payload including transcript messages. summary and per-message sentiments are populated asynchronously once the invitation reaches the completed state.
|
|
522
|
+
*/
|
|
523
|
+
export const zInterviewInvitationsControllerArchiveResponse = zInterviewInvitationSchema;
|
|
524
|
+
export const zInterviewInvitationsControllerRestoreData = z.object({
|
|
525
|
+
body: z.optional(z.never()),
|
|
526
|
+
path: z.object({
|
|
527
|
+
invitationId: z
|
|
528
|
+
.uuid()
|
|
529
|
+
.regex(/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/),
|
|
530
|
+
}),
|
|
531
|
+
query: z.optional(z.never()),
|
|
532
|
+
});
|
|
533
|
+
/**
|
|
534
|
+
* Full interview invitation payload including transcript messages. summary and per-message sentiments are populated asynchronously once the invitation reaches the completed state.
|
|
535
|
+
*/
|
|
536
|
+
export const zInterviewInvitationsControllerRestoreResponse = zInterviewInvitationSchema;
|
|
537
|
+
export const zInterviewInvitationsControllerGetLogsData = z.object({
|
|
538
|
+
body: z.optional(z.never()),
|
|
539
|
+
path: z.object({
|
|
540
|
+
invitationId: z
|
|
541
|
+
.uuid()
|
|
542
|
+
.regex(/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/),
|
|
543
|
+
}),
|
|
544
|
+
query: z.optional(z.never()),
|
|
545
|
+
});
|
|
546
|
+
/**
|
|
547
|
+
* Chronological history of events on an interview, most recent first.
|
|
548
|
+
*/
|
|
549
|
+
export const zInterviewInvitationsControllerGetLogsResponse = zInterviewLogListSchema;
|
|
550
|
+
export const zInterviewInvitationsControllerGetMessageAudioUrlData = z.object({
|
|
551
|
+
body: z.optional(z.never()),
|
|
552
|
+
path: z.object({
|
|
553
|
+
messageId: z
|
|
554
|
+
.uuid()
|
|
555
|
+
.regex(/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/),
|
|
556
|
+
invitationId: z
|
|
557
|
+
.uuid()
|
|
558
|
+
.regex(/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/),
|
|
559
|
+
}),
|
|
560
|
+
query: z.optional(z.never()),
|
|
561
|
+
});
|
|
562
|
+
/**
|
|
563
|
+
* Short-lived presigned URL for the audio attached to an interview message.
|
|
564
|
+
*/
|
|
565
|
+
export const zInterviewInvitationsControllerGetMessageAudioUrlResponse = zInterviewMessageAudioUrlSchema;
|
|
566
|
+
export const zVoicesControllerListData = z.object({
|
|
567
|
+
body: z.optional(z.never()),
|
|
568
|
+
path: z.optional(z.never()),
|
|
569
|
+
query: z.optional(z.object({
|
|
570
|
+
language: z.optional(z.string().min(2).max(8)),
|
|
571
|
+
})),
|
|
572
|
+
});
|
|
573
|
+
/**
|
|
574
|
+
* List of voices matching the requested language filter.
|
|
575
|
+
*/
|
|
576
|
+
export const zVoicesControllerListResponse = zVoiceListSchema;
|
|
577
|
+
export const zVoicesControllerGetTestAudioUrlData = z.object({
|
|
578
|
+
body: z.optional(z.never()),
|
|
579
|
+
path: z.object({
|
|
580
|
+
id: z
|
|
581
|
+
.uuid()
|
|
582
|
+
.regex(/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/),
|
|
583
|
+
}),
|
|
584
|
+
query: z.optional(z.never()),
|
|
585
|
+
});
|
|
586
|
+
/**
|
|
587
|
+
* Short-lived presigned URL for the voice preview audio. Generated on first request if missing.
|
|
588
|
+
*/
|
|
589
|
+
export const zVoicesControllerGetTestAudioUrlResponse = zVoiceTestAudioUrlSchema;
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @raconte/node-sdk: typed SDK for the public Raconte API (interviews and invitations).
|
|
3
|
+
*
|
|
4
|
+
* The SDK surface mirrors the routes guarded by `ApiKeyOrgGuard` server-side, the same set
|
|
5
|
+
* exposed by the MCP server and documented at https://raconte.ai. Generated code lives under
|
|
6
|
+
* `./generated`; this entry adds the authenticated client factory.
|
|
7
|
+
*/
|
|
8
|
+
export { createRaconteClient, RACONTE_API_BASE_URL } from './client';
|
|
9
|
+
export type { RaconteClientOptions } from './client';
|
|
10
|
+
export { createClient, createConfig } from './generated/client';
|
|
11
|
+
export type { Client, Config, Options } from './generated/client';
|
|
12
|
+
export * from './generated/sdk.gen';
|
|
13
|
+
export * from './generated/types.gen';
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @raconte/node-sdk: typed SDK for the public Raconte API (interviews and invitations).
|
|
3
|
+
*
|
|
4
|
+
* The SDK surface mirrors the routes guarded by `ApiKeyOrgGuard` server-side, the same set
|
|
5
|
+
* exposed by the MCP server and documented at https://raconte.ai. Generated code lives under
|
|
6
|
+
* `./generated`; this entry adds the authenticated client factory.
|
|
7
|
+
*/
|
|
8
|
+
export { createRaconteClient, RACONTE_API_BASE_URL } from './client';
|
|
9
|
+
export { createClient, createConfig } from './generated/client';
|
|
10
|
+
export * from './generated/sdk.gen';
|
|
11
|
+
export * from './generated/types.gen';
|
package/package.json
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@raconte/node-sdk",
|
|
3
|
+
"type": "module",
|
|
4
|
+
"version": "0.1.0",
|
|
5
|
+
"description": "Typed TypeScript SDK for the public Raconte API (interviews and invitations). Generated from the public OpenAPI spec.",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"homepage": "https://raconte.ai",
|
|
8
|
+
"keywords": [
|
|
9
|
+
"raconte",
|
|
10
|
+
"sdk",
|
|
11
|
+
"interviews",
|
|
12
|
+
"api",
|
|
13
|
+
"openapi"
|
|
14
|
+
],
|
|
15
|
+
"exports": {
|
|
16
|
+
".": "./src/index.ts",
|
|
17
|
+
"./zod": "./src/generated/zod.gen.ts"
|
|
18
|
+
},
|
|
19
|
+
"main": "./src/index.ts",
|
|
20
|
+
"types": "./src/index.ts",
|
|
21
|
+
"files": [
|
|
22
|
+
"dist"
|
|
23
|
+
],
|
|
24
|
+
"publishConfig": {
|
|
25
|
+
"access": "public",
|
|
26
|
+
"exports": {
|
|
27
|
+
".": {
|
|
28
|
+
"types": "./dist/index.d.ts",
|
|
29
|
+
"import": "./dist/index.js",
|
|
30
|
+
"default": "./dist/index.js"
|
|
31
|
+
},
|
|
32
|
+
"./zod": {
|
|
33
|
+
"types": "./dist/generated/zod.gen.d.ts",
|
|
34
|
+
"import": "./dist/generated/zod.gen.js",
|
|
35
|
+
"default": "./dist/generated/zod.gen.js"
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"main": "./dist/index.js",
|
|
39
|
+
"types": "./dist/index.d.ts"
|
|
40
|
+
},
|
|
41
|
+
"scripts": {
|
|
42
|
+
"generate": "openapi-ts -f ./openapi-ts.config.ts",
|
|
43
|
+
"build": "tsc -p tsconfig.json",
|
|
44
|
+
"dev": "tsc -p tsconfig.json --watch",
|
|
45
|
+
"typecheck": "tsc -p tsconfig.json --noEmit"
|
|
46
|
+
},
|
|
47
|
+
"dependencies": {
|
|
48
|
+
"zod": "^4.3.5"
|
|
49
|
+
},
|
|
50
|
+
"devDependencies": {
|
|
51
|
+
"@hey-api/openapi-ts": "^0.90.3",
|
|
52
|
+
"@types/node": "^24.10.7",
|
|
53
|
+
"typescript": "^5.9.3"
|
|
54
|
+
}
|
|
55
|
+
}
|