@leaflow/sdk 0.176.0 → 0.177.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/dist/canopy/v1/generated/models.d.ts +209 -9
  2. package/dist/canopy/v1/generated/models.js +27 -1
  3. package/dist/canopy/v1/generated/schemas.zod.d.ts +1 -1
  4. package/dist/canopy/v1/generated/schemas.zod.js +3 -1
  5. package/dist/canopy/v1/generated/validators/aPIKeyUsageListResponseBody.zod.d.ts +9 -0
  6. package/dist/canopy/v1/generated/validators/aPIKeyUsageResource.zod.d.ts +9 -0
  7. package/dist/canopy/v1/generated/validators/aPIKeyUsageResource.zod.js +5 -0
  8. package/dist/canopy/v1/generated/validators/audioCapabilities.zod.d.ts +51 -0
  9. package/dist/canopy/v1/generated/validators/audioCapabilities.zod.js +67 -0
  10. package/dist/canopy/v1/generated/validators/cursorPageRequestResource.zod.d.ts +10 -1
  11. package/dist/canopy/v1/generated/validators/endpointCapabilities.zod.d.ts +37 -0
  12. package/dist/canopy/v1/generated/validators/endpointCapabilities.zod.js +20 -0
  13. package/dist/canopy/v1/generated/validators/imageCapabilities.zod.d.ts +52 -0
  14. package/dist/canopy/v1/generated/validators/imageCapabilities.zod.js +69 -0
  15. package/dist/canopy/v1/generated/validators/mediaUsage.zod.d.ts +52 -0
  16. package/dist/canopy/v1/generated/validators/mediaUsage.zod.js +61 -0
  17. package/dist/canopy/v1/generated/validators/model.zod.d.ts +50 -0
  18. package/dist/canopy/v1/generated/validators/modelBilling.zod.d.ts +8 -1
  19. package/dist/canopy/v1/generated/validators/modelBilling.zod.js +2 -2
  20. package/dist/canopy/v1/generated/validators/modelCapabilities.zod.d.ts +37 -0
  21. package/dist/canopy/v1/generated/validators/modelEndpoint.zod.d.ts +13 -0
  22. package/dist/canopy/v1/generated/validators/modelEndpoint.zod.js +13 -0
  23. package/dist/canopy/v1/generated/validators/modelList.zod.d.ts +50 -0
  24. package/dist/canopy/v1/generated/validators/modelListResponseBody.zod.d.ts +58 -1
  25. package/dist/canopy/v1/generated/validators/modelMeter.zod.d.ts +8 -1
  26. package/dist/canopy/v1/generated/validators/modelMeter.zod.js +21 -2
  27. package/dist/canopy/v1/generated/validators/modelParameter.zod.d.ts +58 -0
  28. package/dist/canopy/v1/generated/validators/modelParameter.zod.js +57 -0
  29. package/dist/canopy/v1/generated/validators/modelResource.zod.d.ts +58 -1
  30. package/dist/canopy/v1/generated/validators/modelUsageListResponseBody.zod.d.ts +9 -0
  31. package/dist/canopy/v1/generated/validators/modelUsageResource.zod.d.ts +9 -0
  32. package/dist/canopy/v1/generated/validators/modelUsageResource.zod.js +5 -0
  33. package/dist/canopy/v1/generated/validators/requestResource.zod.d.ts +10 -1
  34. package/dist/canopy/v1/generated/validators/requestResource.zod.js +8 -1
  35. package/dist/canopy/v1/generated/validators/totalsResource.zod.d.ts +9 -0
  36. package/dist/canopy/v1/generated/validators/totalsResource.zod.js +5 -0
  37. package/dist/canopy/v1/generated/validators/usageBucketResource.zod.d.ts +9 -0
  38. package/dist/canopy/v1/generated/validators/usageBucketResource.zod.js +5 -0
  39. package/dist/canopy/v1/generated/validators/usageTimelineResponseBody.zod.d.ts +9 -0
  40. package/dist/canopy/v1/generated/validators/videoCapabilities.zod.d.ts +51 -0
  41. package/dist/canopy/v1/generated/validators/videoCapabilities.zod.js +69 -0
  42. package/dist/eventbus/v1/generated/functions.d.ts +336 -0
  43. package/dist/eventbus/v1/generated/functions.js +214 -0
  44. package/dist/eventbus/v1/generated/models.d.ts +364 -0
  45. package/dist/eventbus/v1/generated/models.js +8 -0
  46. package/dist/eventbus/v1/generated/schemas.zod.d.ts +138 -0
  47. package/dist/eventbus/v1/generated/schemas.zod.js +163 -0
  48. package/dist/eventbus/v1/generated/validators/createEventRequest.zod.d.ts +50 -0
  49. package/dist/eventbus/v1/generated/validators/createEventRequest.zod.js +59 -0
  50. package/dist/eventbus/v1/generated/validators/createVersionRequest.zod.d.ts +46 -0
  51. package/dist/eventbus/v1/generated/validators/createVersionRequest.zod.js +47 -0
  52. package/dist/eventbus/v1/generated/validators/cursorPagination.zod.d.ts +45 -0
  53. package/dist/eventbus/v1/generated/validators/cursorPagination.zod.js +45 -0
  54. package/dist/eventbus/v1/generated/validators/error.zod.d.ts +56 -0
  55. package/dist/eventbus/v1/generated/validators/error.zod.js +45 -0
  56. package/dist/eventbus/v1/generated/validators/errorStatus.zod.d.ts +54 -0
  57. package/dist/eventbus/v1/generated/validators/errorStatus.zod.js +69 -0
  58. package/dist/eventbus/v1/generated/validators/eventDetail.zod.d.ts +65 -0
  59. package/dist/eventbus/v1/generated/validators/eventDetail.zod.js +62 -0
  60. package/dist/eventbus/v1/generated/validators/eventList.zod.d.ts +58 -0
  61. package/dist/eventbus/v1/generated/validators/eventList.zod.js +50 -0
  62. package/dist/eventbus/v1/generated/validators/eventResource.zod.d.ts +55 -0
  63. package/dist/eventbus/v1/generated/validators/eventResource.zod.js +60 -0
  64. package/dist/eventbus/v1/generated/validators/eventStatus.zod.d.ts +45 -0
  65. package/dist/eventbus/v1/generated/validators/eventStatus.zod.js +42 -0
  66. package/dist/eventbus/v1/generated/validators/eventVersion.zod.d.ts +51 -0
  67. package/dist/eventbus/v1/generated/validators/eventVersion.zod.js +53 -0
  68. package/dist/eventbus/v1/generated/validators/fieldViolation.zod.d.ts +45 -0
  69. package/dist/eventbus/v1/generated/validators/fieldViolation.zod.js +48 -0
  70. package/dist/eventbus/v1/generated/validators/listEventsParams.zod.d.ts +55 -0
  71. package/dist/eventbus/v1/generated/validators/listEventsParams.zod.js +57 -0
  72. package/dist/eventbus/v1/generated/validators/offsetPagination.zod.d.ts +47 -0
  73. package/dist/eventbus/v1/generated/validators/offsetPagination.zod.js +47 -0
  74. package/dist/eventbus/v1/generated/validators/publishRequest.zod.d.ts +49 -0
  75. package/dist/eventbus/v1/generated/validators/publishRequest.zod.js +55 -0
  76. package/dist/eventbus/v1/generated/validators/publishResponse.zod.d.ts +47 -0
  77. package/dist/eventbus/v1/generated/validators/publishResponse.zod.js +47 -0
  78. package/dist/eventbus/v1/generated/validators/realtimeTicket.zod.d.ts +46 -0
  79. package/dist/eventbus/v1/generated/validators/realtimeTicket.zod.js +46 -0
  80. package/dist/eventbus/v1/generated/validators/updateEventRequest.zod.d.ts +51 -0
  81. package/dist/eventbus/v1/generated/validators/updateEventRequest.zod.js +54 -0
  82. package/dist/eventbus/v1/index.d.ts +3 -0
  83. package/dist/eventbus/v1/index.js +3 -0
  84. package/dist/index.d.ts +1 -0
  85. package/dist/index.js +1 -0
  86. package/dist/routes.d.ts +64 -0
  87. package/dist/routes.js +72 -0
  88. package/package.json +1 -1
@@ -0,0 +1,336 @@
1
+ /**
2
+ * Generated by orval 🍺
3
+ * Do not edit manually.
4
+ * Leaflow Event Bus API
5
+ * Event definitions, versions, publishing, and realtime access.
6
+ *
7
+ * ## Authentication
8
+ *
9
+ * Every request carries a scoped token; see the `bearerAuth` security scheme. Neither the path
10
+ * nor the headers carry a `project_id`: the current project is determined by the token.
11
+ *
12
+ * ## Definitions and messages
13
+ *
14
+ * An event is a definition: a name, a description, and one or more versions. A version carries a
15
+ * JSON Schema that every published payload must satisfy. Messages are not stored here and are
16
+ * not part of the event definition.
17
+ *
18
+ * A project event belongs to the current project. A global event has no `project_id`; it is
19
+ * defined by a platform service and is read-only in this API. Global events are listed alongside
20
+ * the project's own events.
21
+ *
22
+ * A version number never changes meaning. Adding optional properties is allowed within a version;
23
+ * a breaking change creates a new version. Publishing without a version uses the highest active
24
+ * version.
25
+ *
26
+ * ## Publishing
27
+ *
28
+ * Publishing returns the identity of the message and does not wait for consumers. Messages are
29
+ * not stored and are not replayed: a consumer that connects later does not receive earlier
30
+ * messages. Consumers receive messages through the realtime API or the platform's service API.
31
+ *
32
+ * ## Realtime
33
+ *
34
+ * Create a ticket, connect to the returned URL with the ticket, and authenticate the connection
35
+ * with a scoped token. A ticket is single-use and short-lived. The connection ends when the
36
+ * token expires unless it is refreshed with a new scoped token for the same user and project.
37
+ * OpenAPI spec version: 1.0.0
38
+ */
39
+ import type { CreateEventRequest, CreateVersionRequest, Error, EventDetail, EventList, EventResource, EventVersion, ListEventsParams, PublishRequest, PublishResponse, RealtimeTicket, UpdateEventRequest } from "./models.js";
40
+ export type listEventsResponse200 = {
41
+ data: EventList;
42
+ status: 200;
43
+ };
44
+ export type listEventsResponse400 = {
45
+ data: Error;
46
+ status: 400;
47
+ };
48
+ export type listEventsResponse401 = {
49
+ data: Error;
50
+ status: 401;
51
+ };
52
+ export type listEventsResponse403 = {
53
+ data: Error;
54
+ status: 403;
55
+ };
56
+ export type listEventsResponse503 = {
57
+ data: Error;
58
+ status: 503;
59
+ };
60
+ export type listEventsResponseSuccess = listEventsResponse200 & {
61
+ headers: Headers;
62
+ };
63
+ export type listEventsResponseError = (listEventsResponse400 | listEventsResponse401 | listEventsResponse403 | listEventsResponse503) & {
64
+ headers: Headers;
65
+ };
66
+ export type listEventsResponse = listEventsResponseSuccess | listEventsResponseError;
67
+ export declare const getListEventsUrl: (params?: ListEventsParams) => string;
68
+ /**
69
+ * Returns the global events visible to the project and the project's own events. Ordered by
70
+ * name.
71
+ * @summary List event definitions
72
+ */
73
+ export declare const listEvents: (params?: ListEventsParams, options?: RequestInit, fetchFn?: typeof globalThis.fetch) => Promise<listEventsResponse>;
74
+ export type createEventResponse201 = {
75
+ data: EventResource;
76
+ status: 201;
77
+ };
78
+ export type createEventResponse400 = {
79
+ data: Error;
80
+ status: 400;
81
+ };
82
+ export type createEventResponse401 = {
83
+ data: Error;
84
+ status: 401;
85
+ };
86
+ export type createEventResponse403 = {
87
+ data: Error;
88
+ status: 403;
89
+ };
90
+ export type createEventResponse409 = {
91
+ data: Error;
92
+ status: 409;
93
+ };
94
+ export type createEventResponse503 = {
95
+ data: Error;
96
+ status: 503;
97
+ };
98
+ export type createEventResponseSuccess = createEventResponse201 & {
99
+ headers: Headers;
100
+ };
101
+ export type createEventResponseError = (createEventResponse400 | createEventResponse401 | createEventResponse403 | createEventResponse409 | createEventResponse503) & {
102
+ headers: Headers;
103
+ };
104
+ export type createEventResponse = createEventResponseSuccess | createEventResponseError;
105
+ export declare const getCreateEventUrl: () => string;
106
+ /**
107
+ * Creates a project event with its first version. The name is unique within the project. The
108
+ * first segment of the name is the event's namespace and must not be a platform namespace.
109
+ * @summary Create an event definition
110
+ */
111
+ export declare const createEvent: (createEventRequest: CreateEventRequest, options?: RequestInit, fetchFn?: typeof globalThis.fetch) => Promise<createEventResponse>;
112
+ export type getEventResponse200 = {
113
+ data: EventDetail;
114
+ status: 200;
115
+ };
116
+ export type getEventResponse401 = {
117
+ data: Error;
118
+ status: 401;
119
+ };
120
+ export type getEventResponse403 = {
121
+ data: Error;
122
+ status: 403;
123
+ };
124
+ export type getEventResponse404 = {
125
+ data: Error;
126
+ status: 404;
127
+ };
128
+ export type getEventResponse503 = {
129
+ data: Error;
130
+ status: 503;
131
+ };
132
+ export type getEventResponseSuccess = getEventResponse200 & {
133
+ headers: Headers;
134
+ };
135
+ export type getEventResponseError = (getEventResponse401 | getEventResponse403 | getEventResponse404 | getEventResponse503) & {
136
+ headers: Headers;
137
+ };
138
+ export type getEventResponse = getEventResponseSuccess | getEventResponseError;
139
+ export declare const getGetEventUrl: (eventName: string) => string;
140
+ /**
141
+ * Returns the event and every version, newest first.
142
+ * @summary Get an event definition
143
+ */
144
+ export declare const getEvent: (eventName: string, options?: RequestInit, fetchFn?: typeof globalThis.fetch) => Promise<getEventResponse>;
145
+ export type updateEventResponse200 = {
146
+ data: EventResource;
147
+ status: 200;
148
+ };
149
+ export type updateEventResponse400 = {
150
+ data: Error;
151
+ status: 400;
152
+ };
153
+ export type updateEventResponse401 = {
154
+ data: Error;
155
+ status: 401;
156
+ };
157
+ export type updateEventResponse403 = {
158
+ data: Error;
159
+ status: 403;
160
+ };
161
+ export type updateEventResponse404 = {
162
+ data: Error;
163
+ status: 404;
164
+ };
165
+ export type updateEventResponse409 = {
166
+ data: Error;
167
+ status: 409;
168
+ };
169
+ export type updateEventResponse503 = {
170
+ data: Error;
171
+ status: 503;
172
+ };
173
+ export type updateEventResponseSuccess = updateEventResponse200 & {
174
+ headers: Headers;
175
+ };
176
+ export type updateEventResponseError = (updateEventResponse400 | updateEventResponse401 | updateEventResponse403 | updateEventResponse404 | updateEventResponse409 | updateEventResponse503) & {
177
+ headers: Headers;
178
+ };
179
+ export type updateEventResponse = updateEventResponseSuccess | updateEventResponseError;
180
+ export declare const getUpdateEventUrl: (eventName: string) => string;
181
+ /**
182
+ * Changes the description, tags, or status. Only the fields present in the request are
183
+ * changed. An archived event stops accepting new messages; existing versions remain readable.
184
+ * @summary Update an event definition
185
+ */
186
+ export declare const updateEvent: (eventName: string, updateEventRequest: UpdateEventRequest, options?: RequestInit, fetchFn?: typeof globalThis.fetch) => Promise<updateEventResponse>;
187
+ export type createEventVersionResponse201 = {
188
+ data: EventVersion;
189
+ status: 201;
190
+ };
191
+ export type createEventVersionResponse400 = {
192
+ data: Error;
193
+ status: 400;
194
+ };
195
+ export type createEventVersionResponse401 = {
196
+ data: Error;
197
+ status: 401;
198
+ };
199
+ export type createEventVersionResponse403 = {
200
+ data: Error;
201
+ status: 403;
202
+ };
203
+ export type createEventVersionResponse404 = {
204
+ data: Error;
205
+ status: 404;
206
+ };
207
+ export type createEventVersionResponse409 = {
208
+ data: Error;
209
+ status: 409;
210
+ };
211
+ export type createEventVersionResponse503 = {
212
+ data: Error;
213
+ status: 503;
214
+ };
215
+ export type createEventVersionResponseSuccess = createEventVersionResponse201 & {
216
+ headers: Headers;
217
+ };
218
+ export type createEventVersionResponseError = (createEventVersionResponse400 | createEventVersionResponse401 | createEventVersionResponse403 | createEventVersionResponse404 | createEventVersionResponse409 | createEventVersionResponse503) & {
219
+ headers: Headers;
220
+ };
221
+ export type createEventVersionResponse = createEventVersionResponseSuccess | createEventVersionResponseError;
222
+ export declare const getCreateEventVersionUrl: (eventName: string) => string;
223
+ /**
224
+ * Adds a version to an existing event. The version number must be greater than every existing
225
+ * version. A version number's schema may gain optional properties, but it may not remove or
226
+ * change existing ones; use a new version for a breaking change.
227
+ * @summary Add an event version
228
+ */
229
+ export declare const createEventVersion: (eventName: string, createVersionRequest: CreateVersionRequest, options?: RequestInit, fetchFn?: typeof globalThis.fetch) => Promise<createEventVersionResponse>;
230
+ export type getEventVersionResponse200 = {
231
+ data: EventVersion;
232
+ status: 200;
233
+ };
234
+ export type getEventVersionResponse401 = {
235
+ data: Error;
236
+ status: 401;
237
+ };
238
+ export type getEventVersionResponse403 = {
239
+ data: Error;
240
+ status: 403;
241
+ };
242
+ export type getEventVersionResponse404 = {
243
+ data: Error;
244
+ status: 404;
245
+ };
246
+ export type getEventVersionResponse503 = {
247
+ data: Error;
248
+ status: 503;
249
+ };
250
+ export type getEventVersionResponseSuccess = getEventVersionResponse200 & {
251
+ headers: Headers;
252
+ };
253
+ export type getEventVersionResponseError = (getEventVersionResponse401 | getEventVersionResponse403 | getEventVersionResponse404 | getEventVersionResponse503) & {
254
+ headers: Headers;
255
+ };
256
+ export type getEventVersionResponse = getEventVersionResponseSuccess | getEventVersionResponseError;
257
+ export declare const getGetEventVersionUrl: (eventName: string, version: number) => string;
258
+ /**
259
+ * Returns one version of an event.
260
+ * @summary Get an event version
261
+ */
262
+ export declare const getEventVersion: (eventName: string, version: number, options?: RequestInit, fetchFn?: typeof globalThis.fetch) => Promise<getEventVersionResponse>;
263
+ export type publishEventResponse202 = {
264
+ data: PublishResponse;
265
+ status: 202;
266
+ };
267
+ export type publishEventResponse400 = {
268
+ data: Error;
269
+ status: 400;
270
+ };
271
+ export type publishEventResponse401 = {
272
+ data: Error;
273
+ status: 401;
274
+ };
275
+ export type publishEventResponse403 = {
276
+ data: Error;
277
+ status: 403;
278
+ };
279
+ export type publishEventResponse404 = {
280
+ data: Error;
281
+ status: 404;
282
+ };
283
+ export type publishEventResponse409 = {
284
+ data: Error;
285
+ status: 409;
286
+ };
287
+ export type publishEventResponse503 = {
288
+ data: Error;
289
+ status: 503;
290
+ };
291
+ export type publishEventResponseSuccess = publishEventResponse202 & {
292
+ headers: Headers;
293
+ };
294
+ export type publishEventResponseError = (publishEventResponse400 | publishEventResponse401 | publishEventResponse403 | publishEventResponse404 | publishEventResponse409 | publishEventResponse503) & {
295
+ headers: Headers;
296
+ };
297
+ export type publishEventResponse = publishEventResponseSuccess | publishEventResponseError;
298
+ export declare const getPublishEventUrl: (eventName: string) => string;
299
+ /**
300
+ * Validates the payload against the selected version and publishes the message. The response
301
+ * carries the message identity; it does not mean a consumer received it. A version of zero
302
+ * selects the highest active version.
303
+ * @summary Publish an event message
304
+ */
305
+ export declare const publishEvent: (eventName: string, publishRequest: PublishRequest, options?: RequestInit, fetchFn?: typeof globalThis.fetch) => Promise<publishEventResponse>;
306
+ export type createRealtimeTicketResponse201 = {
307
+ data: RealtimeTicket;
308
+ status: 201;
309
+ };
310
+ export type createRealtimeTicketResponse401 = {
311
+ data: Error;
312
+ status: 401;
313
+ };
314
+ export type createRealtimeTicketResponse403 = {
315
+ data: Error;
316
+ status: 403;
317
+ };
318
+ export type createRealtimeTicketResponse503 = {
319
+ data: Error;
320
+ status: 503;
321
+ };
322
+ export type createRealtimeTicketResponseSuccess = createRealtimeTicketResponse201 & {
323
+ headers: Headers;
324
+ };
325
+ export type createRealtimeTicketResponseError = (createRealtimeTicketResponse401 | createRealtimeTicketResponse403 | createRealtimeTicketResponse503) & {
326
+ headers: Headers;
327
+ };
328
+ export type createRealtimeTicketResponse = createRealtimeTicketResponseSuccess | createRealtimeTicketResponseError;
329
+ export declare const getCreateRealtimeTicketUrl: () => string;
330
+ /**
331
+ * Issues a short-lived ticket for a realtime connection. Connect to `url`, pass the ticket,
332
+ * then authenticate the connection with a scoped token. A ticket is not a bearer token for
333
+ * other APIs.
334
+ * @summary Create a realtime ticket
335
+ */
336
+ export declare const createRealtimeTicket: (options?: RequestInit, fetchFn?: typeof globalThis.fetch) => Promise<createRealtimeTicketResponse>;
@@ -0,0 +1,214 @@
1
+ export const getListEventsUrl = (params) => {
2
+ const normalizedParams = new URLSearchParams();
3
+ Object.entries(params || {}).forEach(([key, value]) => {
4
+ if (value !== undefined) {
5
+ normalizedParams.append(key, value === null ? "null" : String(value));
6
+ }
7
+ });
8
+ const stringifiedParams = normalizedParams.toString();
9
+ return stringifiedParams.length > 0
10
+ ? `https://eventbus.leaflow.cloud/api/v1/events?${stringifiedParams}`
11
+ : `https://eventbus.leaflow.cloud/api/v1/events`;
12
+ };
13
+ /**
14
+ * Returns the global events visible to the project and the project's own events. Ordered by
15
+ * name.
16
+ * @summary List event definitions
17
+ */
18
+ export const listEvents = async (params, options, fetchFn) => {
19
+ const res = await (fetchFn ?? fetch)(getListEventsUrl(params), {
20
+ ...options,
21
+ method: "GET",
22
+ });
23
+ const body = [204, 205, 304].includes(res.status) ? null : await res.text();
24
+ const data = body ? JSON.parse(body) : {};
25
+ return { data, status: res.status, headers: res.headers };
26
+ };
27
+ export const getCreateEventUrl = () => {
28
+ return `https://eventbus.leaflow.cloud/api/v1/events`;
29
+ };
30
+ /**
31
+ * Creates a project event with its first version. The name is unique within the project. The
32
+ * first segment of the name is the event's namespace and must not be a platform namespace.
33
+ * @summary Create an event definition
34
+ */
35
+ export const createEvent = async (createEventRequest, options, fetchFn) => {
36
+ const getHeaders = (h) => {
37
+ if (!h)
38
+ return {};
39
+ if (h instanceof Headers)
40
+ return Object.fromEntries(h.entries());
41
+ if (Symbol.iterator in h) {
42
+ return Object.fromEntries(Array.from(h, (entry) => Array.from(entry)));
43
+ }
44
+ const headers = {};
45
+ for (const [name, value] of Object.entries(h)) {
46
+ if (value !== undefined)
47
+ headers[name] = value;
48
+ }
49
+ return headers;
50
+ };
51
+ const res = await (fetchFn ?? fetch)(getCreateEventUrl(), {
52
+ ...options,
53
+ method: "POST",
54
+ headers: { "Content-Type": "application/json", ...getHeaders(options?.headers) },
55
+ body: JSON.stringify(createEventRequest),
56
+ });
57
+ const body = [204, 205, 304].includes(res.status) ? null : await res.text();
58
+ const data = body ? JSON.parse(body) : {};
59
+ return { data, status: res.status, headers: res.headers };
60
+ };
61
+ export const getGetEventUrl = (eventName) => {
62
+ return `https://eventbus.leaflow.cloud/api/v1/events/${encodeURIComponent(String(eventName))}`;
63
+ };
64
+ /**
65
+ * Returns the event and every version, newest first.
66
+ * @summary Get an event definition
67
+ */
68
+ export const getEvent = async (eventName, options, fetchFn) => {
69
+ const res = await (fetchFn ?? fetch)(getGetEventUrl(eventName), {
70
+ ...options,
71
+ method: "GET",
72
+ });
73
+ const body = [204, 205, 304].includes(res.status) ? null : await res.text();
74
+ const data = body ? JSON.parse(body) : {};
75
+ return { data, status: res.status, headers: res.headers };
76
+ };
77
+ export const getUpdateEventUrl = (eventName) => {
78
+ return `https://eventbus.leaflow.cloud/api/v1/events/${encodeURIComponent(String(eventName))}`;
79
+ };
80
+ /**
81
+ * Changes the description, tags, or status. Only the fields present in the request are
82
+ * changed. An archived event stops accepting new messages; existing versions remain readable.
83
+ * @summary Update an event definition
84
+ */
85
+ export const updateEvent = async (eventName, updateEventRequest, options, fetchFn) => {
86
+ const getHeaders = (h) => {
87
+ if (!h)
88
+ return {};
89
+ if (h instanceof Headers)
90
+ return Object.fromEntries(h.entries());
91
+ if (Symbol.iterator in h) {
92
+ return Object.fromEntries(Array.from(h, (entry) => Array.from(entry)));
93
+ }
94
+ const headers = {};
95
+ for (const [name, value] of Object.entries(h)) {
96
+ if (value !== undefined)
97
+ headers[name] = value;
98
+ }
99
+ return headers;
100
+ };
101
+ const res = await (fetchFn ?? fetch)(getUpdateEventUrl(eventName), {
102
+ ...options,
103
+ method: "PATCH",
104
+ headers: { "Content-Type": "application/json", ...getHeaders(options?.headers) },
105
+ body: JSON.stringify(updateEventRequest),
106
+ });
107
+ const body = [204, 205, 304].includes(res.status) ? null : await res.text();
108
+ const data = body ? JSON.parse(body) : {};
109
+ return { data, status: res.status, headers: res.headers };
110
+ };
111
+ export const getCreateEventVersionUrl = (eventName) => {
112
+ return `https://eventbus.leaflow.cloud/api/v1/events/${encodeURIComponent(String(eventName))}/versions`;
113
+ };
114
+ /**
115
+ * Adds a version to an existing event. The version number must be greater than every existing
116
+ * version. A version number's schema may gain optional properties, but it may not remove or
117
+ * change existing ones; use a new version for a breaking change.
118
+ * @summary Add an event version
119
+ */
120
+ export const createEventVersion = async (eventName, createVersionRequest, options, fetchFn) => {
121
+ const getHeaders = (h) => {
122
+ if (!h)
123
+ return {};
124
+ if (h instanceof Headers)
125
+ return Object.fromEntries(h.entries());
126
+ if (Symbol.iterator in h) {
127
+ return Object.fromEntries(Array.from(h, (entry) => Array.from(entry)));
128
+ }
129
+ const headers = {};
130
+ for (const [name, value] of Object.entries(h)) {
131
+ if (value !== undefined)
132
+ headers[name] = value;
133
+ }
134
+ return headers;
135
+ };
136
+ const res = await (fetchFn ?? fetch)(getCreateEventVersionUrl(eventName), {
137
+ ...options,
138
+ method: "POST",
139
+ headers: { "Content-Type": "application/json", ...getHeaders(options?.headers) },
140
+ body: JSON.stringify(createVersionRequest),
141
+ });
142
+ const body = [204, 205, 304].includes(res.status) ? null : await res.text();
143
+ const data = body ? JSON.parse(body) : {};
144
+ return { data, status: res.status, headers: res.headers };
145
+ };
146
+ export const getGetEventVersionUrl = (eventName, version) => {
147
+ return `https://eventbus.leaflow.cloud/api/v1/events/${encodeURIComponent(String(eventName))}/versions/${encodeURIComponent(String(version))}`;
148
+ };
149
+ /**
150
+ * Returns one version of an event.
151
+ * @summary Get an event version
152
+ */
153
+ export const getEventVersion = async (eventName, version, options, fetchFn) => {
154
+ const res = await (fetchFn ?? fetch)(getGetEventVersionUrl(eventName, version), {
155
+ ...options,
156
+ method: "GET",
157
+ });
158
+ const body = [204, 205, 304].includes(res.status) ? null : await res.text();
159
+ const data = body ? JSON.parse(body) : {};
160
+ return { data, status: res.status, headers: res.headers };
161
+ };
162
+ export const getPublishEventUrl = (eventName) => {
163
+ return `https://eventbus.leaflow.cloud/api/v1/events/${encodeURIComponent(String(eventName))}:publish`;
164
+ };
165
+ /**
166
+ * Validates the payload against the selected version and publishes the message. The response
167
+ * carries the message identity; it does not mean a consumer received it. A version of zero
168
+ * selects the highest active version.
169
+ * @summary Publish an event message
170
+ */
171
+ export const publishEvent = async (eventName, publishRequest, options, fetchFn) => {
172
+ const getHeaders = (h) => {
173
+ if (!h)
174
+ return {};
175
+ if (h instanceof Headers)
176
+ return Object.fromEntries(h.entries());
177
+ if (Symbol.iterator in h) {
178
+ return Object.fromEntries(Array.from(h, (entry) => Array.from(entry)));
179
+ }
180
+ const headers = {};
181
+ for (const [name, value] of Object.entries(h)) {
182
+ if (value !== undefined)
183
+ headers[name] = value;
184
+ }
185
+ return headers;
186
+ };
187
+ const res = await (fetchFn ?? fetch)(getPublishEventUrl(eventName), {
188
+ ...options,
189
+ method: "POST",
190
+ headers: { "Content-Type": "application/json", ...getHeaders(options?.headers) },
191
+ body: JSON.stringify(publishRequest),
192
+ });
193
+ const body = [204, 205, 304].includes(res.status) ? null : await res.text();
194
+ const data = body ? JSON.parse(body) : {};
195
+ return { data, status: res.status, headers: res.headers };
196
+ };
197
+ export const getCreateRealtimeTicketUrl = () => {
198
+ return `https://eventbus.leaflow.cloud/api/v1/realtime/tickets`;
199
+ };
200
+ /**
201
+ * Issues a short-lived ticket for a realtime connection. Connect to `url`, pass the ticket,
202
+ * then authenticate the connection with a scoped token. A ticket is not a bearer token for
203
+ * other APIs.
204
+ * @summary Create a realtime ticket
205
+ */
206
+ export const createRealtimeTicket = async (options, fetchFn) => {
207
+ const res = await (fetchFn ?? fetch)(getCreateRealtimeTicketUrl(), {
208
+ ...options,
209
+ method: "POST",
210
+ });
211
+ const body = [204, 205, 304].includes(res.status) ? null : await res.text();
212
+ const data = body ? JSON.parse(body) : {};
213
+ return { data, status: res.status, headers: res.headers };
214
+ };