ticketnation-sdk 1.0.3 → 1.0.5
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/index.d.mts +109 -1
- package/dist/index.d.ts +109 -1
- package/dist/index.js +67 -0
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +67 -0
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -88,6 +88,7 @@ interface CreateEventParams {
|
|
|
88
88
|
timezone?: string;
|
|
89
89
|
absorbFees?: boolean;
|
|
90
90
|
imageUrl?: string;
|
|
91
|
+
galleryUrls?: string[];
|
|
91
92
|
callbackUrl?: string;
|
|
92
93
|
venueId?: string;
|
|
93
94
|
tickets?: CreateTicketParams[];
|
|
@@ -355,6 +356,110 @@ declare class WebhooksResource {
|
|
|
355
356
|
}): Promise<PaginatedResponse<WebhookDelivery>>;
|
|
356
357
|
}
|
|
357
358
|
|
|
359
|
+
interface CreatePerformerParams {
|
|
360
|
+
name: string;
|
|
361
|
+
description?: string;
|
|
362
|
+
type?: 'SOLO' | 'GROUP' | 'DJ' | 'BAND' | 'SPEAKER' | 'HOST' | 'COMEDIAN' | 'OTHER';
|
|
363
|
+
imageUrl?: string;
|
|
364
|
+
facebook?: string;
|
|
365
|
+
youtube?: string;
|
|
366
|
+
instagram?: string;
|
|
367
|
+
}
|
|
368
|
+
interface Performer {
|
|
369
|
+
id: string;
|
|
370
|
+
name: string;
|
|
371
|
+
description: string | null;
|
|
372
|
+
type: string;
|
|
373
|
+
slug: string | null;
|
|
374
|
+
facebook: string | null;
|
|
375
|
+
youtube: string | null;
|
|
376
|
+
instagram: string | null;
|
|
377
|
+
image: {
|
|
378
|
+
id: string;
|
|
379
|
+
url: string | null;
|
|
380
|
+
} | null;
|
|
381
|
+
}
|
|
382
|
+
declare class PerformersResource {
|
|
383
|
+
private readonly client;
|
|
384
|
+
constructor(client: HttpClient);
|
|
385
|
+
create(eventId: string, params: CreatePerformerParams): Promise<Performer>;
|
|
386
|
+
list(eventId: string): Promise<Performer[]>;
|
|
387
|
+
remove(eventId: string, performerId: string): Promise<DeletedResponse>;
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
interface CreateScheduleParams {
|
|
391
|
+
title: string;
|
|
392
|
+
description?: string;
|
|
393
|
+
startTime: string;
|
|
394
|
+
endTime: string;
|
|
395
|
+
icon?: string;
|
|
396
|
+
color?: string;
|
|
397
|
+
sortOrder?: number;
|
|
398
|
+
performerId?: string;
|
|
399
|
+
}
|
|
400
|
+
interface UpdateScheduleParams {
|
|
401
|
+
title?: string;
|
|
402
|
+
description?: string;
|
|
403
|
+
startTime?: string;
|
|
404
|
+
endTime?: string;
|
|
405
|
+
icon?: string;
|
|
406
|
+
color?: string;
|
|
407
|
+
sortOrder?: number;
|
|
408
|
+
performerId?: string;
|
|
409
|
+
}
|
|
410
|
+
interface Schedule {
|
|
411
|
+
id: string;
|
|
412
|
+
title: string;
|
|
413
|
+
description: string | null;
|
|
414
|
+
startTime: string;
|
|
415
|
+
endTime: string;
|
|
416
|
+
icon: string | null;
|
|
417
|
+
color: string | null;
|
|
418
|
+
sortOrder: number;
|
|
419
|
+
performerId: string | null;
|
|
420
|
+
performer: {
|
|
421
|
+
id: string;
|
|
422
|
+
name: string;
|
|
423
|
+
} | null;
|
|
424
|
+
createdAt: string;
|
|
425
|
+
updatedAt: string;
|
|
426
|
+
}
|
|
427
|
+
declare class SchedulesResource {
|
|
428
|
+
private readonly client;
|
|
429
|
+
constructor(client: HttpClient);
|
|
430
|
+
create(eventId: string, params: CreateScheduleParams): Promise<Schedule>;
|
|
431
|
+
list(eventId: string): Promise<Schedule[]>;
|
|
432
|
+
update(eventId: string, scheduleId: string, params: UpdateScheduleParams): Promise<Schedule>;
|
|
433
|
+
remove(eventId: string, scheduleId: string): Promise<DeletedResponse>;
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
interface CreateBrandParams {
|
|
437
|
+
name: string;
|
|
438
|
+
description?: string;
|
|
439
|
+
url?: string;
|
|
440
|
+
imageUrl?: string;
|
|
441
|
+
position?: number;
|
|
442
|
+
}
|
|
443
|
+
interface Brand {
|
|
444
|
+
id: string;
|
|
445
|
+
name: string;
|
|
446
|
+
description: string | null;
|
|
447
|
+
url: string | null;
|
|
448
|
+
sponsorshipColor: string | null;
|
|
449
|
+
image: {
|
|
450
|
+
id: string;
|
|
451
|
+
url: string | null;
|
|
452
|
+
} | null;
|
|
453
|
+
position: number | null;
|
|
454
|
+
}
|
|
455
|
+
declare class BrandsResource {
|
|
456
|
+
private readonly client;
|
|
457
|
+
constructor(client: HttpClient);
|
|
458
|
+
create(eventId: string, params: CreateBrandParams): Promise<Brand>;
|
|
459
|
+
list(eventId: string): Promise<Brand[]>;
|
|
460
|
+
remove(eventId: string, brandId: string): Promise<DeletedResponse>;
|
|
461
|
+
}
|
|
462
|
+
|
|
358
463
|
declare class TicketnationError extends Error {
|
|
359
464
|
readonly code: string;
|
|
360
465
|
readonly status: number;
|
|
@@ -398,9 +503,12 @@ declare class Ticketnation {
|
|
|
398
503
|
readonly orders: OrdersResource;
|
|
399
504
|
readonly venues: VenuesResource;
|
|
400
505
|
readonly webhooks: WebhooksResource;
|
|
506
|
+
readonly performers: PerformersResource;
|
|
507
|
+
readonly schedules: SchedulesResource;
|
|
508
|
+
readonly brands: BrandsResource;
|
|
401
509
|
private readonly client;
|
|
402
510
|
constructor(config: TicketnationConfig);
|
|
403
511
|
me(): Promise<AccountInfo>;
|
|
404
512
|
}
|
|
405
513
|
|
|
406
|
-
export { type AccountInfo, type ApiErrorBody, type ApiErrorResponse, type ApiKeyInfo, type CreateEventParams, type CreateTicketParams, type CreateWebhookParams, type DataResponse, type DeletedResponse, type Event, type EventJourneyType, type EventLocationType, type EventStatus, type EventType, type EventVisibility, type ListEventsParams, type ListOrdersParams, type Order, type OrderItem, type OrderItemTicket, type OrderPayment, type OrderStatus, type OrderUser, type OrganizationInfo, type PaginatedResponse, type PaginationMeta, type PaginationParams, type SearchVenuesParams, type Ticket, type TicketSeatType, type TicketStatus, Ticketnation, type TicketnationConfig, TicketnationError, type UpdateEventParams, type UpdateTicketParams, type UpdateWebhookParams, type Venue, type VenueRef, type Webhook, type WebhookEventType, type WebhookWithSecret, fetchAllPages, paginate };
|
|
514
|
+
export { type AccountInfo, type ApiErrorBody, type ApiErrorResponse, type ApiKeyInfo, type Brand, type CreateBrandParams, type CreateEventParams, type CreatePerformerParams, type CreateScheduleParams, type CreateTicketParams, type CreateWebhookParams, type DataResponse, type DeletedResponse, type Event, type EventJourneyType, type EventLocationType, type EventStatus, type EventType, type EventVisibility, type ListEventsParams, type ListOrdersParams, type Order, type OrderItem, type OrderItemTicket, type OrderPayment, type OrderStatus, type OrderUser, type OrganizationInfo, type PaginatedResponse, type PaginationMeta, type PaginationParams, type Performer, type Schedule, type SearchVenuesParams, type Ticket, type TicketSeatType, type TicketStatus, Ticketnation, type TicketnationConfig, TicketnationError, type UpdateEventParams, type UpdateScheduleParams, type UpdateTicketParams, type UpdateWebhookParams, type Venue, type VenueRef, type Webhook, type WebhookEventType, type WebhookWithSecret, fetchAllPages, paginate };
|
package/dist/index.d.ts
CHANGED
|
@@ -88,6 +88,7 @@ interface CreateEventParams {
|
|
|
88
88
|
timezone?: string;
|
|
89
89
|
absorbFees?: boolean;
|
|
90
90
|
imageUrl?: string;
|
|
91
|
+
galleryUrls?: string[];
|
|
91
92
|
callbackUrl?: string;
|
|
92
93
|
venueId?: string;
|
|
93
94
|
tickets?: CreateTicketParams[];
|
|
@@ -355,6 +356,110 @@ declare class WebhooksResource {
|
|
|
355
356
|
}): Promise<PaginatedResponse<WebhookDelivery>>;
|
|
356
357
|
}
|
|
357
358
|
|
|
359
|
+
interface CreatePerformerParams {
|
|
360
|
+
name: string;
|
|
361
|
+
description?: string;
|
|
362
|
+
type?: 'SOLO' | 'GROUP' | 'DJ' | 'BAND' | 'SPEAKER' | 'HOST' | 'COMEDIAN' | 'OTHER';
|
|
363
|
+
imageUrl?: string;
|
|
364
|
+
facebook?: string;
|
|
365
|
+
youtube?: string;
|
|
366
|
+
instagram?: string;
|
|
367
|
+
}
|
|
368
|
+
interface Performer {
|
|
369
|
+
id: string;
|
|
370
|
+
name: string;
|
|
371
|
+
description: string | null;
|
|
372
|
+
type: string;
|
|
373
|
+
slug: string | null;
|
|
374
|
+
facebook: string | null;
|
|
375
|
+
youtube: string | null;
|
|
376
|
+
instagram: string | null;
|
|
377
|
+
image: {
|
|
378
|
+
id: string;
|
|
379
|
+
url: string | null;
|
|
380
|
+
} | null;
|
|
381
|
+
}
|
|
382
|
+
declare class PerformersResource {
|
|
383
|
+
private readonly client;
|
|
384
|
+
constructor(client: HttpClient);
|
|
385
|
+
create(eventId: string, params: CreatePerformerParams): Promise<Performer>;
|
|
386
|
+
list(eventId: string): Promise<Performer[]>;
|
|
387
|
+
remove(eventId: string, performerId: string): Promise<DeletedResponse>;
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
interface CreateScheduleParams {
|
|
391
|
+
title: string;
|
|
392
|
+
description?: string;
|
|
393
|
+
startTime: string;
|
|
394
|
+
endTime: string;
|
|
395
|
+
icon?: string;
|
|
396
|
+
color?: string;
|
|
397
|
+
sortOrder?: number;
|
|
398
|
+
performerId?: string;
|
|
399
|
+
}
|
|
400
|
+
interface UpdateScheduleParams {
|
|
401
|
+
title?: string;
|
|
402
|
+
description?: string;
|
|
403
|
+
startTime?: string;
|
|
404
|
+
endTime?: string;
|
|
405
|
+
icon?: string;
|
|
406
|
+
color?: string;
|
|
407
|
+
sortOrder?: number;
|
|
408
|
+
performerId?: string;
|
|
409
|
+
}
|
|
410
|
+
interface Schedule {
|
|
411
|
+
id: string;
|
|
412
|
+
title: string;
|
|
413
|
+
description: string | null;
|
|
414
|
+
startTime: string;
|
|
415
|
+
endTime: string;
|
|
416
|
+
icon: string | null;
|
|
417
|
+
color: string | null;
|
|
418
|
+
sortOrder: number;
|
|
419
|
+
performerId: string | null;
|
|
420
|
+
performer: {
|
|
421
|
+
id: string;
|
|
422
|
+
name: string;
|
|
423
|
+
} | null;
|
|
424
|
+
createdAt: string;
|
|
425
|
+
updatedAt: string;
|
|
426
|
+
}
|
|
427
|
+
declare class SchedulesResource {
|
|
428
|
+
private readonly client;
|
|
429
|
+
constructor(client: HttpClient);
|
|
430
|
+
create(eventId: string, params: CreateScheduleParams): Promise<Schedule>;
|
|
431
|
+
list(eventId: string): Promise<Schedule[]>;
|
|
432
|
+
update(eventId: string, scheduleId: string, params: UpdateScheduleParams): Promise<Schedule>;
|
|
433
|
+
remove(eventId: string, scheduleId: string): Promise<DeletedResponse>;
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
interface CreateBrandParams {
|
|
437
|
+
name: string;
|
|
438
|
+
description?: string;
|
|
439
|
+
url?: string;
|
|
440
|
+
imageUrl?: string;
|
|
441
|
+
position?: number;
|
|
442
|
+
}
|
|
443
|
+
interface Brand {
|
|
444
|
+
id: string;
|
|
445
|
+
name: string;
|
|
446
|
+
description: string | null;
|
|
447
|
+
url: string | null;
|
|
448
|
+
sponsorshipColor: string | null;
|
|
449
|
+
image: {
|
|
450
|
+
id: string;
|
|
451
|
+
url: string | null;
|
|
452
|
+
} | null;
|
|
453
|
+
position: number | null;
|
|
454
|
+
}
|
|
455
|
+
declare class BrandsResource {
|
|
456
|
+
private readonly client;
|
|
457
|
+
constructor(client: HttpClient);
|
|
458
|
+
create(eventId: string, params: CreateBrandParams): Promise<Brand>;
|
|
459
|
+
list(eventId: string): Promise<Brand[]>;
|
|
460
|
+
remove(eventId: string, brandId: string): Promise<DeletedResponse>;
|
|
461
|
+
}
|
|
462
|
+
|
|
358
463
|
declare class TicketnationError extends Error {
|
|
359
464
|
readonly code: string;
|
|
360
465
|
readonly status: number;
|
|
@@ -398,9 +503,12 @@ declare class Ticketnation {
|
|
|
398
503
|
readonly orders: OrdersResource;
|
|
399
504
|
readonly venues: VenuesResource;
|
|
400
505
|
readonly webhooks: WebhooksResource;
|
|
506
|
+
readonly performers: PerformersResource;
|
|
507
|
+
readonly schedules: SchedulesResource;
|
|
508
|
+
readonly brands: BrandsResource;
|
|
401
509
|
private readonly client;
|
|
402
510
|
constructor(config: TicketnationConfig);
|
|
403
511
|
me(): Promise<AccountInfo>;
|
|
404
512
|
}
|
|
405
513
|
|
|
406
|
-
export { type AccountInfo, type ApiErrorBody, type ApiErrorResponse, type ApiKeyInfo, type CreateEventParams, type CreateTicketParams, type CreateWebhookParams, type DataResponse, type DeletedResponse, type Event, type EventJourneyType, type EventLocationType, type EventStatus, type EventType, type EventVisibility, type ListEventsParams, type ListOrdersParams, type Order, type OrderItem, type OrderItemTicket, type OrderPayment, type OrderStatus, type OrderUser, type OrganizationInfo, type PaginatedResponse, type PaginationMeta, type PaginationParams, type SearchVenuesParams, type Ticket, type TicketSeatType, type TicketStatus, Ticketnation, type TicketnationConfig, TicketnationError, type UpdateEventParams, type UpdateTicketParams, type UpdateWebhookParams, type Venue, type VenueRef, type Webhook, type WebhookEventType, type WebhookWithSecret, fetchAllPages, paginate };
|
|
514
|
+
export { type AccountInfo, type ApiErrorBody, type ApiErrorResponse, type ApiKeyInfo, type Brand, type CreateBrandParams, type CreateEventParams, type CreatePerformerParams, type CreateScheduleParams, type CreateTicketParams, type CreateWebhookParams, type DataResponse, type DeletedResponse, type Event, type EventJourneyType, type EventLocationType, type EventStatus, type EventType, type EventVisibility, type ListEventsParams, type ListOrdersParams, type Order, type OrderItem, type OrderItemTicket, type OrderPayment, type OrderStatus, type OrderUser, type OrganizationInfo, type PaginatedResponse, type PaginationMeta, type PaginationParams, type Performer, type Schedule, type SearchVenuesParams, type Ticket, type TicketSeatType, type TicketStatus, Ticketnation, type TicketnationConfig, TicketnationError, type UpdateEventParams, type UpdateScheduleParams, type UpdateTicketParams, type UpdateWebhookParams, type Venue, type VenueRef, type Webhook, type WebhookEventType, type WebhookWithSecret, fetchAllPages, paginate };
|
package/dist/index.js
CHANGED
|
@@ -277,6 +277,67 @@ var WebhooksResource = class {
|
|
|
277
277
|
}
|
|
278
278
|
};
|
|
279
279
|
|
|
280
|
+
// src/resources/performers.ts
|
|
281
|
+
var PerformersResource = class {
|
|
282
|
+
constructor(client) {
|
|
283
|
+
this.client = client;
|
|
284
|
+
}
|
|
285
|
+
async create(eventId, params) {
|
|
286
|
+
const res = await this.client.request("POST", `/open-api/v1/events/${eventId}/performers`, { body: params });
|
|
287
|
+
return res.data;
|
|
288
|
+
}
|
|
289
|
+
async list(eventId) {
|
|
290
|
+
const res = await this.client.request("GET", `/open-api/v1/events/${eventId}/performers`);
|
|
291
|
+
return res.data;
|
|
292
|
+
}
|
|
293
|
+
async remove(eventId, performerId) {
|
|
294
|
+
const res = await this.client.request("DELETE", `/open-api/v1/events/${eventId}/performers/${performerId}`);
|
|
295
|
+
return res.data;
|
|
296
|
+
}
|
|
297
|
+
};
|
|
298
|
+
|
|
299
|
+
// src/resources/schedules.ts
|
|
300
|
+
var SchedulesResource = class {
|
|
301
|
+
constructor(client) {
|
|
302
|
+
this.client = client;
|
|
303
|
+
}
|
|
304
|
+
async create(eventId, params) {
|
|
305
|
+
const res = await this.client.request("POST", `/open-api/v1/events/${eventId}/schedules`, { body: params });
|
|
306
|
+
return res.data;
|
|
307
|
+
}
|
|
308
|
+
async list(eventId) {
|
|
309
|
+
const res = await this.client.request("GET", `/open-api/v1/events/${eventId}/schedules`);
|
|
310
|
+
return res.data;
|
|
311
|
+
}
|
|
312
|
+
async update(eventId, scheduleId, params) {
|
|
313
|
+
const res = await this.client.request("PATCH", `/open-api/v1/events/${eventId}/schedules/${scheduleId}`, { body: params });
|
|
314
|
+
return res.data;
|
|
315
|
+
}
|
|
316
|
+
async remove(eventId, scheduleId) {
|
|
317
|
+
const res = await this.client.request("DELETE", `/open-api/v1/events/${eventId}/schedules/${scheduleId}`);
|
|
318
|
+
return res.data;
|
|
319
|
+
}
|
|
320
|
+
};
|
|
321
|
+
|
|
322
|
+
// src/resources/brands.ts
|
|
323
|
+
var BrandsResource = class {
|
|
324
|
+
constructor(client) {
|
|
325
|
+
this.client = client;
|
|
326
|
+
}
|
|
327
|
+
async create(eventId, params) {
|
|
328
|
+
const res = await this.client.request("POST", `/open-api/v1/events/${eventId}/brands`, { body: params });
|
|
329
|
+
return res.data;
|
|
330
|
+
}
|
|
331
|
+
async list(eventId) {
|
|
332
|
+
const res = await this.client.request("GET", `/open-api/v1/events/${eventId}/brands`);
|
|
333
|
+
return res.data;
|
|
334
|
+
}
|
|
335
|
+
async remove(eventId, brandId) {
|
|
336
|
+
const res = await this.client.request("DELETE", `/open-api/v1/events/${eventId}/brands/${brandId}`);
|
|
337
|
+
return res.data;
|
|
338
|
+
}
|
|
339
|
+
};
|
|
340
|
+
|
|
280
341
|
// src/utils/pagination.ts
|
|
281
342
|
async function* paginate(fetchPage, initialParams) {
|
|
282
343
|
let page = initialParams?.page ?? 1;
|
|
@@ -305,6 +366,9 @@ var Ticketnation = class {
|
|
|
305
366
|
orders;
|
|
306
367
|
venues;
|
|
307
368
|
webhooks;
|
|
369
|
+
performers;
|
|
370
|
+
schedules;
|
|
371
|
+
brands;
|
|
308
372
|
client;
|
|
309
373
|
constructor(config) {
|
|
310
374
|
if (!config.apiKey) {
|
|
@@ -322,6 +386,9 @@ var Ticketnation = class {
|
|
|
322
386
|
this.orders = new OrdersResource(this.client);
|
|
323
387
|
this.venues = new VenuesResource(this.client);
|
|
324
388
|
this.webhooks = new WebhooksResource(this.client);
|
|
389
|
+
this.performers = new PerformersResource(this.client);
|
|
390
|
+
this.schedules = new SchedulesResource(this.client);
|
|
391
|
+
this.brands = new BrandsResource(this.client);
|
|
325
392
|
}
|
|
326
393
|
async me() {
|
|
327
394
|
const res = await this.client.request("GET", "/open-api/v1/me");
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/errors.ts","../src/client.ts","../src/resources/events.ts","../src/resources/tickets.ts","../src/resources/orders.ts","../src/resources/venues.ts","../src/resources/webhooks.ts","../src/utils/pagination.ts","../src/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import type { ApiErrorBody } from './types';\n\nexport class TicketnationError extends Error {\n readonly code: string;\n readonly status: number;\n readonly requestId: string | null;\n readonly details: Array<{ field: string; message: string }> | undefined;\n\n constructor(\n message: string,\n opts: {\n code: string;\n status: number;\n requestId?: string;\n details?: Array<{ field: string; message: string }>;\n },\n ) {\n super(message);\n this.name = 'TicketnationError';\n this.code = opts.code;\n this.status = opts.status;\n this.requestId = opts.requestId ?? null;\n this.details = opts.details;\n }\n\n static fromResponse(status: number, body: { error: ApiErrorBody; requestId?: string }): TicketnationError {\n return new TicketnationError(body.error.message, {\n code: body.error.code,\n status,\n requestId: body.requestId,\n details: body.error.details,\n });\n }\n\n toJSON() {\n return {\n name: this.name,\n code: this.code,\n status: this.status,\n message: this.message,\n requestId: this.requestId,\n details: this.details,\n };\n }\n}\n","import { TicketnationError } from './errors';\n\nexport interface ClientConfig {\n apiKey: string;\n baseUrl: string;\n timeout: number;\n retries: number;\n debug: boolean;\n}\n\nexport class HttpClient {\n private readonly config: ClientConfig;\n\n constructor(config: ClientConfig) {\n this.config = config;\n }\n\n async request<T>(method: string, path: string, opts?: { body?: unknown; params?: Record<string, unknown> }): Promise<T> {\n const url = this.buildUrl(path, opts?.params);\n let lastError: Error | null = null;\n\n for (let attempt = 0; attempt <= this.config.retries; attempt++) {\n if (attempt > 0) {\n const delay = Math.min(1000 * Math.pow(2, attempt - 1), 10000);\n await this.sleep(delay);\n if (this.config.debug) {\n console.log(`[Ticketnation SDK] Retry attempt ${attempt}/${this.config.retries} for ${method} ${path}`);\n }\n }\n\n try {\n const response = await this.doRequest(method, url, opts?.body);\n return response as T;\n } catch (error) {\n lastError = error as Error;\n if (error instanceof TicketnationError && error.status < 500) {\n throw error;\n }\n }\n }\n\n throw lastError;\n }\n\n private async doRequest(method: string, url: string, body?: unknown): Promise<unknown> {\n if (this.config.debug) {\n const redactedKey = this.config.apiKey.slice(0, 6) + '...' + this.config.apiKey.slice(-4);\n console.log(`[Ticketnation SDK] ${method} ${url} (key: ${redactedKey})`);\n }\n\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), this.config.timeout);\n\n try {\n const headers: Record<string, string> = {\n 'api-key': this.config.apiKey,\n 'Content-Type': 'application/json',\n 'Accept': 'application/json',\n 'User-Agent': 'ticketnation-sdk/1.0.2',\n };\n\n const init: RequestInit = {\n method,\n headers,\n signal: controller.signal,\n };\n\n if (body && (method === 'POST' || method === 'PATCH' || method === 'PUT')) {\n init.body = JSON.stringify(body);\n }\n\n const response = await fetch(url, init);\n\n if (!response.ok) {\n let errorBody: unknown;\n try {\n errorBody = await response.json();\n } catch {\n throw new TicketnationError(`HTTP ${response.status}: ${response.statusText}`, {\n code: 'HTTP_ERROR',\n status: response.status,\n });\n }\n\n const parsed = errorBody as { error?: { code: string; message: string; details?: Array<{ field: string; message: string }> }; requestId?: string };\n if (parsed.error) {\n throw TicketnationError.fromResponse(response.status, parsed as { error: { code: string; message: string }; requestId?: string });\n }\n\n throw new TicketnationError(`HTTP ${response.status}: ${response.statusText}`, {\n code: 'HTTP_ERROR',\n status: response.status,\n });\n }\n\n if (response.status === 204) {\n return {};\n }\n\n return await response.json();\n } catch (error) {\n if (error instanceof TicketnationError) throw error;\n\n if (error instanceof DOMException && error.name === 'AbortError') {\n throw new TicketnationError(`Request timed out after ${this.config.timeout}ms`, {\n code: 'TIMEOUT',\n status: 0,\n });\n }\n\n throw new TicketnationError(`Network error: ${(error as Error).message}`, {\n code: 'NETWORK_ERROR',\n status: 0,\n });\n } finally {\n clearTimeout(timeoutId);\n }\n }\n\n private buildUrl(path: string, params?: Record<string, unknown>): string {\n const base = this.config.baseUrl.replace(/\\/$/, '');\n const url = new URL(`${base}${path}`);\n\n if (params) {\n for (const [key, value] of Object.entries(params)) {\n if (value !== undefined && value !== null) {\n url.searchParams.set(key, String(value));\n }\n }\n }\n\n return url.toString();\n }\n\n private sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n }\n}\n","import type { HttpClient } from '../client';\nimport type {\n Event,\n CreateEventParams,\n UpdateEventParams,\n ListEventsParams,\n DataResponse,\n PaginatedResponse,\n DeletedResponse,\n} from '../types';\n\nexport class EventsResource {\n constructor(private readonly client: HttpClient) {}\n\n async create(params: CreateEventParams): Promise<Event> {\n const res = await this.client.request<DataResponse<Event>>('POST', '/open-api/v1/events', { body: params });\n return res.data;\n }\n\n async list(params?: ListEventsParams): Promise<PaginatedResponse<Event>> {\n return this.client.request<PaginatedResponse<Event>>('GET', '/open-api/v1/events', {\n params: params ? { page: params.page, take: params.take, status: params.status, search: params.search } : undefined,\n });\n }\n\n async get(idOrSlug: string): Promise<Event> {\n const res = await this.client.request<DataResponse<Event>>('GET', `/open-api/v1/events/${encodeURIComponent(idOrSlug)}`);\n return res.data;\n }\n\n async update(eventId: string, params: UpdateEventParams): Promise<Event> {\n const res = await this.client.request<DataResponse<Event>>('PATCH', `/open-api/v1/events/${eventId}`, { body: params });\n return res.data;\n }\n\n async publish(eventId: string): Promise<Event> {\n const res = await this.client.request<DataResponse<Event>>('POST', `/open-api/v1/events/${eventId}/publish`);\n return res.data;\n }\n\n async unpublish(eventId: string): Promise<Event> {\n const res = await this.client.request<DataResponse<Event>>('POST', `/open-api/v1/events/${eventId}/unpublish`);\n return res.data;\n }\n\n async archive(eventId: string): Promise<Event> {\n const res = await this.client.request<DataResponse<Event>>('POST', `/open-api/v1/events/${eventId}/archive`);\n return res.data;\n }\n\n async delete(eventId: string): Promise<DeletedResponse> {\n const res = await this.client.request<DataResponse<DeletedResponse>>('DELETE', `/open-api/v1/events/${eventId}`);\n return res.data;\n }\n}\n","import type { HttpClient } from '../client';\nimport type {\n Ticket,\n CreateTicketParams,\n UpdateTicketParams,\n DataResponse,\n DeletedResponse,\n} from '../types';\n\nexport class TicketsResource {\n constructor(private readonly client: HttpClient) {}\n\n async create(eventId: string, params: CreateTicketParams): Promise<Ticket> {\n const res = await this.client.request<DataResponse<Ticket>>('POST', `/open-api/v1/events/${eventId}/tickets`, { body: params });\n return res.data;\n }\n\n async list(eventId: string): Promise<Ticket[]> {\n const res = await this.client.request<DataResponse<Ticket[]>>('GET', `/open-api/v1/events/${eventId}/tickets`);\n return res.data;\n }\n\n async get(eventId: string, ticketId: string): Promise<Ticket> {\n const res = await this.client.request<DataResponse<Ticket>>('GET', `/open-api/v1/events/${eventId}/tickets/${ticketId}`);\n return res.data;\n }\n\n async update(eventId: string, ticketId: string, params: UpdateTicketParams): Promise<Ticket> {\n const res = await this.client.request<DataResponse<Ticket>>('PATCH', `/open-api/v1/events/${eventId}/tickets/${ticketId}`, { body: params });\n return res.data;\n }\n\n async publish(eventId: string, ticketId: string): Promise<Ticket> {\n const res = await this.client.request<DataResponse<Ticket>>('POST', `/open-api/v1/events/${eventId}/tickets/${ticketId}/publish`);\n return res.data;\n }\n\n async markSoldOut(eventId: string, ticketId: string): Promise<Ticket> {\n const res = await this.client.request<DataResponse<Ticket>>('POST', `/open-api/v1/events/${eventId}/tickets/${ticketId}/sold-out`);\n return res.data;\n }\n\n async delete(eventId: string, ticketId: string): Promise<DeletedResponse> {\n const res = await this.client.request<DataResponse<DeletedResponse>>('DELETE', `/open-api/v1/events/${eventId}/tickets/${ticketId}`);\n return res.data;\n }\n}\n","import type { HttpClient } from '../client';\nimport type {\n Order,\n ListOrdersParams,\n DataResponse,\n PaginatedResponse,\n} from '../types';\n\nexport class OrdersResource {\n constructor(private readonly client: HttpClient) {}\n\n async list(eventId: string, params?: ListOrdersParams): Promise<PaginatedResponse<Order>> {\n return this.client.request<PaginatedResponse<Order>>('GET', `/open-api/v1/events/${eventId}/orders`, {\n params: params ? { page: params.page, take: params.take, status: params.status } : undefined,\n });\n }\n\n async get(orderId: string): Promise<Order> {\n const res = await this.client.request<DataResponse<Order>>('GET', `/open-api/v1/orders/${orderId}`);\n return res.data;\n }\n}\n","import type { HttpClient } from '../client';\nimport type {\n Venue,\n SearchVenuesParams,\n PaginatedResponse,\n} from '../types';\n\nexport class VenuesResource {\n constructor(private readonly client: HttpClient) {}\n\n async search(params: SearchVenuesParams): Promise<PaginatedResponse<Venue>> {\n return this.client.request<PaginatedResponse<Venue>>('GET', '/open-api/v1/venues/search', {\n params: { query: params.query, page: params.page, take: params.take },\n });\n }\n}\n","import type { HttpClient } from '../client';\nimport type {\n Webhook,\n WebhookWithSecret,\n CreateWebhookParams,\n UpdateWebhookParams,\n DataResponse,\n PaginatedResponse,\n DeletedResponse,\n} from '../types';\n\nexport interface WebhookDelivery {\n id: string;\n eventType: string;\n statusCode: number | null;\n success: boolean;\n attempts: number;\n createdAt: string;\n}\n\nexport interface WebhookTestResult {\n success: boolean;\n statusCode: number | null;\n message: string;\n}\n\nexport class WebhooksResource {\n constructor(private readonly client: HttpClient) {}\n\n async create(params: CreateWebhookParams): Promise<WebhookWithSecret> {\n const res = await this.client.request<DataResponse<WebhookWithSecret>>('POST', '/open-api/v1/webhooks', { body: params });\n return res.data;\n }\n\n async list(): Promise<Webhook[]> {\n const res = await this.client.request<DataResponse<Webhook[]>>('GET', '/open-api/v1/webhooks');\n return res.data;\n }\n\n async update(webhookId: string, params: UpdateWebhookParams): Promise<Webhook> {\n const res = await this.client.request<DataResponse<Webhook>>('PATCH', `/open-api/v1/webhooks/${webhookId}`, { body: params });\n return res.data;\n }\n\n async delete(webhookId: string): Promise<DeletedResponse> {\n const res = await this.client.request<DataResponse<DeletedResponse>>('DELETE', `/open-api/v1/webhooks/${webhookId}`);\n return res.data;\n }\n\n async test(webhookId: string): Promise<WebhookTestResult> {\n const res = await this.client.request<DataResponse<WebhookTestResult>>('POST', `/open-api/v1/webhooks/${webhookId}/test`);\n return res.data;\n }\n\n async deliveries(webhookId: string, params?: { page?: number; take?: number }): Promise<PaginatedResponse<WebhookDelivery>> {\n return this.client.request<PaginatedResponse<WebhookDelivery>>('GET', `/open-api/v1/webhooks/${webhookId}/deliveries`, {\n params: params ? { page: params.page, take: params.take } : undefined,\n });\n }\n}\n","import type { PaginatedResponse, PaginationParams } from '../types';\n\nexport async function* paginate<T>(\n fetchPage: (params: PaginationParams) => Promise<PaginatedResponse<T>>,\n initialParams?: PaginationParams,\n): AsyncGenerator<T[], void, undefined> {\n let page = initialParams?.page ?? 1;\n const take = initialParams?.take ?? 10;\n\n while (true) {\n const response = await fetchPage({ page, take });\n yield response.data;\n\n if (page >= response.meta.totalPages) {\n break;\n }\n page++;\n }\n}\n\nexport async function fetchAllPages<T>(\n fetchPage: (params: PaginationParams) => Promise<PaginatedResponse<T>>,\n initialParams?: PaginationParams,\n): Promise<T[]> {\n const all: T[] = [];\n for await (const batch of paginate(fetchPage, initialParams)) {\n all.push(...batch);\n }\n return all;\n}\n","import { HttpClient } from './client';\nimport { EventsResource } from './resources/events';\nimport { TicketsResource } from './resources/tickets';\nimport { OrdersResource } from './resources/orders';\nimport { VenuesResource } from './resources/venues';\nimport { WebhooksResource } from './resources/webhooks';\nimport type { TicketnationConfig, AccountInfo, DataResponse } from './types';\n\nexport class Ticketnation {\n readonly events: EventsResource;\n readonly tickets: TicketsResource;\n readonly orders: OrdersResource;\n readonly venues: VenuesResource;\n readonly webhooks: WebhooksResource;\n\n private readonly client: HttpClient;\n\n constructor(config: TicketnationConfig) {\n if (!config.apiKey) {\n throw new Error('Ticketnation SDK requires an apiKey');\n }\n\n this.client = new HttpClient({\n apiKey: config.apiKey,\n baseUrl: config.baseUrl ?? 'https://api.ticketnation.ph',\n timeout: config.timeout ?? 30000,\n retries: config.retries ?? 2,\n debug: config.debug ?? false,\n });\n\n this.events = new EventsResource(this.client);\n this.tickets = new TicketsResource(this.client);\n this.orders = new OrdersResource(this.client);\n this.venues = new VenuesResource(this.client);\n this.webhooks = new WebhooksResource(this.client);\n }\n\n async me(): Promise<AccountInfo> {\n const res = await this.client.request<DataResponse<AccountInfo>>('GET', '/open-api/v1/me');\n return res.data;\n }\n}\n\n// Re-export everything\nexport { TicketnationError } from './errors';\nexport { paginate, fetchAllPages } from './utils/pagination';\nexport type * from './types';\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/errors.ts","../src/client.ts","../src/resources/events.ts","../src/resources/tickets.ts","../src/resources/orders.ts","../src/resources/venues.ts","../src/resources/webhooks.ts","../src/resources/performers.ts","../src/resources/schedules.ts","../src/resources/brands.ts","../src/utils/pagination.ts","../src/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import type { ApiErrorBody } from './types';\n\nexport class TicketnationError extends Error {\n readonly code: string;\n readonly status: number;\n readonly requestId: string | null;\n readonly details: Array<{ field: string; message: string }> | undefined;\n\n constructor(\n message: string,\n opts: {\n code: string;\n status: number;\n requestId?: string;\n details?: Array<{ field: string; message: string }>;\n },\n ) {\n super(message);\n this.name = 'TicketnationError';\n this.code = opts.code;\n this.status = opts.status;\n this.requestId = opts.requestId ?? null;\n this.details = opts.details;\n }\n\n static fromResponse(status: number, body: { error: ApiErrorBody; requestId?: string }): TicketnationError {\n return new TicketnationError(body.error.message, {\n code: body.error.code,\n status,\n requestId: body.requestId,\n details: body.error.details,\n });\n }\n\n toJSON() {\n return {\n name: this.name,\n code: this.code,\n status: this.status,\n message: this.message,\n requestId: this.requestId,\n details: this.details,\n };\n }\n}\n","import { TicketnationError } from './errors';\n\nexport interface ClientConfig {\n apiKey: string;\n baseUrl: string;\n timeout: number;\n retries: number;\n debug: boolean;\n}\n\nexport class HttpClient {\n private readonly config: ClientConfig;\n\n constructor(config: ClientConfig) {\n this.config = config;\n }\n\n async request<T>(method: string, path: string, opts?: { body?: unknown; params?: Record<string, unknown> }): Promise<T> {\n const url = this.buildUrl(path, opts?.params);\n let lastError: Error | null = null;\n\n for (let attempt = 0; attempt <= this.config.retries; attempt++) {\n if (attempt > 0) {\n const delay = Math.min(1000 * Math.pow(2, attempt - 1), 10000);\n await this.sleep(delay);\n if (this.config.debug) {\n console.log(`[Ticketnation SDK] Retry attempt ${attempt}/${this.config.retries} for ${method} ${path}`);\n }\n }\n\n try {\n const response = await this.doRequest(method, url, opts?.body);\n return response as T;\n } catch (error) {\n lastError = error as Error;\n if (error instanceof TicketnationError && error.status < 500) {\n throw error;\n }\n }\n }\n\n throw lastError;\n }\n\n private async doRequest(method: string, url: string, body?: unknown): Promise<unknown> {\n if (this.config.debug) {\n const redactedKey = this.config.apiKey.slice(0, 6) + '...' + this.config.apiKey.slice(-4);\n console.log(`[Ticketnation SDK] ${method} ${url} (key: ${redactedKey})`);\n }\n\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), this.config.timeout);\n\n try {\n const headers: Record<string, string> = {\n 'api-key': this.config.apiKey,\n 'Content-Type': 'application/json',\n 'Accept': 'application/json',\n 'User-Agent': 'ticketnation-sdk/1.0.2',\n };\n\n const init: RequestInit = {\n method,\n headers,\n signal: controller.signal,\n };\n\n if (body && (method === 'POST' || method === 'PATCH' || method === 'PUT')) {\n init.body = JSON.stringify(body);\n }\n\n const response = await fetch(url, init);\n\n if (!response.ok) {\n let errorBody: unknown;\n try {\n errorBody = await response.json();\n } catch {\n throw new TicketnationError(`HTTP ${response.status}: ${response.statusText}`, {\n code: 'HTTP_ERROR',\n status: response.status,\n });\n }\n\n const parsed = errorBody as { error?: { code: string; message: string; details?: Array<{ field: string; message: string }> }; requestId?: string };\n if (parsed.error) {\n throw TicketnationError.fromResponse(response.status, parsed as { error: { code: string; message: string }; requestId?: string });\n }\n\n throw new TicketnationError(`HTTP ${response.status}: ${response.statusText}`, {\n code: 'HTTP_ERROR',\n status: response.status,\n });\n }\n\n if (response.status === 204) {\n return {};\n }\n\n return await response.json();\n } catch (error) {\n if (error instanceof TicketnationError) throw error;\n\n if (error instanceof DOMException && error.name === 'AbortError') {\n throw new TicketnationError(`Request timed out after ${this.config.timeout}ms`, {\n code: 'TIMEOUT',\n status: 0,\n });\n }\n\n throw new TicketnationError(`Network error: ${(error as Error).message}`, {\n code: 'NETWORK_ERROR',\n status: 0,\n });\n } finally {\n clearTimeout(timeoutId);\n }\n }\n\n private buildUrl(path: string, params?: Record<string, unknown>): string {\n const base = this.config.baseUrl.replace(/\\/$/, '');\n const url = new URL(`${base}${path}`);\n\n if (params) {\n for (const [key, value] of Object.entries(params)) {\n if (value !== undefined && value !== null) {\n url.searchParams.set(key, String(value));\n }\n }\n }\n\n return url.toString();\n }\n\n private sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n }\n}\n","import type { HttpClient } from '../client';\nimport type {\n Event,\n CreateEventParams,\n UpdateEventParams,\n ListEventsParams,\n DataResponse,\n PaginatedResponse,\n DeletedResponse,\n} from '../types';\n\nexport class EventsResource {\n constructor(private readonly client: HttpClient) {}\n\n async create(params: CreateEventParams): Promise<Event> {\n const res = await this.client.request<DataResponse<Event>>('POST', '/open-api/v1/events', { body: params });\n return res.data;\n }\n\n async list(params?: ListEventsParams): Promise<PaginatedResponse<Event>> {\n return this.client.request<PaginatedResponse<Event>>('GET', '/open-api/v1/events', {\n params: params ? { page: params.page, take: params.take, status: params.status, search: params.search } : undefined,\n });\n }\n\n async get(idOrSlug: string): Promise<Event> {\n const res = await this.client.request<DataResponse<Event>>('GET', `/open-api/v1/events/${encodeURIComponent(idOrSlug)}`);\n return res.data;\n }\n\n async update(eventId: string, params: UpdateEventParams): Promise<Event> {\n const res = await this.client.request<DataResponse<Event>>('PATCH', `/open-api/v1/events/${eventId}`, { body: params });\n return res.data;\n }\n\n async publish(eventId: string): Promise<Event> {\n const res = await this.client.request<DataResponse<Event>>('POST', `/open-api/v1/events/${eventId}/publish`);\n return res.data;\n }\n\n async unpublish(eventId: string): Promise<Event> {\n const res = await this.client.request<DataResponse<Event>>('POST', `/open-api/v1/events/${eventId}/unpublish`);\n return res.data;\n }\n\n async archive(eventId: string): Promise<Event> {\n const res = await this.client.request<DataResponse<Event>>('POST', `/open-api/v1/events/${eventId}/archive`);\n return res.data;\n }\n\n async delete(eventId: string): Promise<DeletedResponse> {\n const res = await this.client.request<DataResponse<DeletedResponse>>('DELETE', `/open-api/v1/events/${eventId}`);\n return res.data;\n }\n}\n","import type { HttpClient } from '../client';\nimport type {\n Ticket,\n CreateTicketParams,\n UpdateTicketParams,\n DataResponse,\n DeletedResponse,\n} from '../types';\n\nexport class TicketsResource {\n constructor(private readonly client: HttpClient) {}\n\n async create(eventId: string, params: CreateTicketParams): Promise<Ticket> {\n const res = await this.client.request<DataResponse<Ticket>>('POST', `/open-api/v1/events/${eventId}/tickets`, { body: params });\n return res.data;\n }\n\n async list(eventId: string): Promise<Ticket[]> {\n const res = await this.client.request<DataResponse<Ticket[]>>('GET', `/open-api/v1/events/${eventId}/tickets`);\n return res.data;\n }\n\n async get(eventId: string, ticketId: string): Promise<Ticket> {\n const res = await this.client.request<DataResponse<Ticket>>('GET', `/open-api/v1/events/${eventId}/tickets/${ticketId}`);\n return res.data;\n }\n\n async update(eventId: string, ticketId: string, params: UpdateTicketParams): Promise<Ticket> {\n const res = await this.client.request<DataResponse<Ticket>>('PATCH', `/open-api/v1/events/${eventId}/tickets/${ticketId}`, { body: params });\n return res.data;\n }\n\n async publish(eventId: string, ticketId: string): Promise<Ticket> {\n const res = await this.client.request<DataResponse<Ticket>>('POST', `/open-api/v1/events/${eventId}/tickets/${ticketId}/publish`);\n return res.data;\n }\n\n async markSoldOut(eventId: string, ticketId: string): Promise<Ticket> {\n const res = await this.client.request<DataResponse<Ticket>>('POST', `/open-api/v1/events/${eventId}/tickets/${ticketId}/sold-out`);\n return res.data;\n }\n\n async delete(eventId: string, ticketId: string): Promise<DeletedResponse> {\n const res = await this.client.request<DataResponse<DeletedResponse>>('DELETE', `/open-api/v1/events/${eventId}/tickets/${ticketId}`);\n return res.data;\n }\n}\n","import type { HttpClient } from '../client';\nimport type {\n Order,\n ListOrdersParams,\n DataResponse,\n PaginatedResponse,\n} from '../types';\n\nexport class OrdersResource {\n constructor(private readonly client: HttpClient) {}\n\n async list(eventId: string, params?: ListOrdersParams): Promise<PaginatedResponse<Order>> {\n return this.client.request<PaginatedResponse<Order>>('GET', `/open-api/v1/events/${eventId}/orders`, {\n params: params ? { page: params.page, take: params.take, status: params.status } : undefined,\n });\n }\n\n async get(orderId: string): Promise<Order> {\n const res = await this.client.request<DataResponse<Order>>('GET', `/open-api/v1/orders/${orderId}`);\n return res.data;\n }\n}\n","import type { HttpClient } from '../client';\nimport type {\n Venue,\n SearchVenuesParams,\n PaginatedResponse,\n} from '../types';\n\nexport class VenuesResource {\n constructor(private readonly client: HttpClient) {}\n\n async search(params: SearchVenuesParams): Promise<PaginatedResponse<Venue>> {\n return this.client.request<PaginatedResponse<Venue>>('GET', '/open-api/v1/venues/search', {\n params: { query: params.query, page: params.page, take: params.take },\n });\n }\n}\n","import type { HttpClient } from '../client';\nimport type {\n Webhook,\n WebhookWithSecret,\n CreateWebhookParams,\n UpdateWebhookParams,\n DataResponse,\n PaginatedResponse,\n DeletedResponse,\n} from '../types';\n\nexport interface WebhookDelivery {\n id: string;\n eventType: string;\n statusCode: number | null;\n success: boolean;\n attempts: number;\n createdAt: string;\n}\n\nexport interface WebhookTestResult {\n success: boolean;\n statusCode: number | null;\n message: string;\n}\n\nexport class WebhooksResource {\n constructor(private readonly client: HttpClient) {}\n\n async create(params: CreateWebhookParams): Promise<WebhookWithSecret> {\n const res = await this.client.request<DataResponse<WebhookWithSecret>>('POST', '/open-api/v1/webhooks', { body: params });\n return res.data;\n }\n\n async list(): Promise<Webhook[]> {\n const res = await this.client.request<DataResponse<Webhook[]>>('GET', '/open-api/v1/webhooks');\n return res.data;\n }\n\n async update(webhookId: string, params: UpdateWebhookParams): Promise<Webhook> {\n const res = await this.client.request<DataResponse<Webhook>>('PATCH', `/open-api/v1/webhooks/${webhookId}`, { body: params });\n return res.data;\n }\n\n async delete(webhookId: string): Promise<DeletedResponse> {\n const res = await this.client.request<DataResponse<DeletedResponse>>('DELETE', `/open-api/v1/webhooks/${webhookId}`);\n return res.data;\n }\n\n async test(webhookId: string): Promise<WebhookTestResult> {\n const res = await this.client.request<DataResponse<WebhookTestResult>>('POST', `/open-api/v1/webhooks/${webhookId}/test`);\n return res.data;\n }\n\n async deliveries(webhookId: string, params?: { page?: number; take?: number }): Promise<PaginatedResponse<WebhookDelivery>> {\n return this.client.request<PaginatedResponse<WebhookDelivery>>('GET', `/open-api/v1/webhooks/${webhookId}/deliveries`, {\n params: params ? { page: params.page, take: params.take } : undefined,\n });\n }\n}\n","import type { HttpClient } from '../client';\nimport type { DataResponse, DeletedResponse } from '../types';\n\nexport interface CreatePerformerParams {\n name: string;\n description?: string;\n type?: 'SOLO' | 'GROUP' | 'DJ' | 'BAND' | 'SPEAKER' | 'HOST' | 'COMEDIAN' | 'OTHER';\n imageUrl?: string;\n facebook?: string;\n youtube?: string;\n instagram?: string;\n}\n\nexport interface Performer {\n id: string;\n name: string;\n description: string | null;\n type: string;\n slug: string | null;\n facebook: string | null;\n youtube: string | null;\n instagram: string | null;\n image: { id: string; url: string | null } | null;\n}\n\nexport class PerformersResource {\n constructor(private readonly client: HttpClient) {}\n\n async create(eventId: string, params: CreatePerformerParams): Promise<Performer> {\n const res = await this.client.request<DataResponse<Performer>>('POST', `/open-api/v1/events/${eventId}/performers`, { body: params });\n return res.data;\n }\n\n async list(eventId: string): Promise<Performer[]> {\n const res = await this.client.request<DataResponse<Performer[]>>('GET', `/open-api/v1/events/${eventId}/performers`);\n return res.data;\n }\n\n async remove(eventId: string, performerId: string): Promise<DeletedResponse> {\n const res = await this.client.request<DataResponse<DeletedResponse>>('DELETE', `/open-api/v1/events/${eventId}/performers/${performerId}`);\n return res.data;\n }\n}\n","import type { HttpClient } from '../client';\nimport type { DataResponse, DeletedResponse } from '../types';\n\nexport interface CreateScheduleParams {\n title: string;\n description?: string;\n startTime: string;\n endTime: string;\n icon?: string;\n color?: string;\n sortOrder?: number;\n performerId?: string;\n}\n\nexport interface UpdateScheduleParams {\n title?: string;\n description?: string;\n startTime?: string;\n endTime?: string;\n icon?: string;\n color?: string;\n sortOrder?: number;\n performerId?: string;\n}\n\nexport interface Schedule {\n id: string;\n title: string;\n description: string | null;\n startTime: string;\n endTime: string;\n icon: string | null;\n color: string | null;\n sortOrder: number;\n performerId: string | null;\n performer: { id: string; name: string } | null;\n createdAt: string;\n updatedAt: string;\n}\n\nexport class SchedulesResource {\n constructor(private readonly client: HttpClient) {}\n\n async create(eventId: string, params: CreateScheduleParams): Promise<Schedule> {\n const res = await this.client.request<DataResponse<Schedule>>('POST', `/open-api/v1/events/${eventId}/schedules`, { body: params });\n return res.data;\n }\n\n async list(eventId: string): Promise<Schedule[]> {\n const res = await this.client.request<DataResponse<Schedule[]>>('GET', `/open-api/v1/events/${eventId}/schedules`);\n return res.data;\n }\n\n async update(eventId: string, scheduleId: string, params: UpdateScheduleParams): Promise<Schedule> {\n const res = await this.client.request<DataResponse<Schedule>>('PATCH', `/open-api/v1/events/${eventId}/schedules/${scheduleId}`, { body: params });\n return res.data;\n }\n\n async remove(eventId: string, scheduleId: string): Promise<DeletedResponse> {\n const res = await this.client.request<DataResponse<DeletedResponse>>('DELETE', `/open-api/v1/events/${eventId}/schedules/${scheduleId}`);\n return res.data;\n }\n}\n","import type { HttpClient } from '../client';\nimport type { DataResponse, DeletedResponse } from '../types';\n\nexport interface CreateBrandParams {\n name: string;\n description?: string;\n url?: string;\n imageUrl?: string;\n position?: number;\n}\n\nexport interface Brand {\n id: string;\n name: string;\n description: string | null;\n url: string | null;\n sponsorshipColor: string | null;\n image: { id: string; url: string | null } | null;\n position: number | null;\n}\n\nexport class BrandsResource {\n constructor(private readonly client: HttpClient) {}\n\n async create(eventId: string, params: CreateBrandParams): Promise<Brand> {\n const res = await this.client.request<DataResponse<Brand>>('POST', `/open-api/v1/events/${eventId}/brands`, { body: params });\n return res.data;\n }\n\n async list(eventId: string): Promise<Brand[]> {\n const res = await this.client.request<DataResponse<Brand[]>>('GET', `/open-api/v1/events/${eventId}/brands`);\n return res.data;\n }\n\n async remove(eventId: string, brandId: string): Promise<DeletedResponse> {\n const res = await this.client.request<DataResponse<DeletedResponse>>('DELETE', `/open-api/v1/events/${eventId}/brands/${brandId}`);\n return res.data;\n }\n}\n","import type { PaginatedResponse, PaginationParams } from '../types';\n\nexport async function* paginate<T>(\n fetchPage: (params: PaginationParams) => Promise<PaginatedResponse<T>>,\n initialParams?: PaginationParams,\n): AsyncGenerator<T[], void, undefined> {\n let page = initialParams?.page ?? 1;\n const take = initialParams?.take ?? 10;\n\n while (true) {\n const response = await fetchPage({ page, take });\n yield response.data;\n\n if (page >= response.meta.totalPages) {\n break;\n }\n page++;\n }\n}\n\nexport async function fetchAllPages<T>(\n fetchPage: (params: PaginationParams) => Promise<PaginatedResponse<T>>,\n initialParams?: PaginationParams,\n): Promise<T[]> {\n const all: T[] = [];\n for await (const batch of paginate(fetchPage, initialParams)) {\n all.push(...batch);\n }\n return all;\n}\n","import { HttpClient } from './client';\nimport { EventsResource } from './resources/events';\nimport { TicketsResource } from './resources/tickets';\nimport { OrdersResource } from './resources/orders';\nimport { VenuesResource } from './resources/venues';\nimport { WebhooksResource } from './resources/webhooks';\nimport { PerformersResource } from './resources/performers';\nimport { SchedulesResource } from './resources/schedules';\nimport { BrandsResource } from './resources/brands';\nimport type { TicketnationConfig, AccountInfo, DataResponse } from './types';\n\nexport class Ticketnation {\n readonly events: EventsResource;\n readonly tickets: TicketsResource;\n readonly orders: OrdersResource;\n readonly venues: VenuesResource;\n readonly webhooks: WebhooksResource;\n readonly performers: PerformersResource;\n readonly schedules: SchedulesResource;\n readonly brands: BrandsResource;\n\n private readonly client: HttpClient;\n\n constructor(config: TicketnationConfig) {\n if (!config.apiKey) {\n throw new Error('Ticketnation SDK requires an apiKey');\n }\n\n this.client = new HttpClient({\n apiKey: config.apiKey,\n baseUrl: config.baseUrl ?? 'https://api.ticketnation.ph',\n timeout: config.timeout ?? 30000,\n retries: config.retries ?? 2,\n debug: config.debug ?? false,\n });\n\n this.events = new EventsResource(this.client);\n this.tickets = new TicketsResource(this.client);\n this.orders = new OrdersResource(this.client);\n this.venues = new VenuesResource(this.client);\n this.webhooks = new WebhooksResource(this.client);\n this.performers = new PerformersResource(this.client);\n this.schedules = new SchedulesResource(this.client);\n this.brands = new BrandsResource(this.client);\n }\n\n async me(): Promise<AccountInfo> {\n const res = await this.client.request<DataResponse<AccountInfo>>('GET', '/open-api/v1/me');\n return res.data;\n }\n}\n\n// Re-export everything\nexport { TicketnationError } from './errors';\nexport { paginate, fetchAllPages } from './utils/pagination';\nexport type * from './types';\nexport type { Performer, CreatePerformerParams } from './resources/performers';\nexport type { Schedule, CreateScheduleParams, UpdateScheduleParams } from './resources/schedules';\nexport type { Brand, CreateBrandParams } from './resources/brands';\n"]}
|
package/dist/index.mjs
CHANGED
|
@@ -275,6 +275,67 @@ var WebhooksResource = class {
|
|
|
275
275
|
}
|
|
276
276
|
};
|
|
277
277
|
|
|
278
|
+
// src/resources/performers.ts
|
|
279
|
+
var PerformersResource = class {
|
|
280
|
+
constructor(client) {
|
|
281
|
+
this.client = client;
|
|
282
|
+
}
|
|
283
|
+
async create(eventId, params) {
|
|
284
|
+
const res = await this.client.request("POST", `/open-api/v1/events/${eventId}/performers`, { body: params });
|
|
285
|
+
return res.data;
|
|
286
|
+
}
|
|
287
|
+
async list(eventId) {
|
|
288
|
+
const res = await this.client.request("GET", `/open-api/v1/events/${eventId}/performers`);
|
|
289
|
+
return res.data;
|
|
290
|
+
}
|
|
291
|
+
async remove(eventId, performerId) {
|
|
292
|
+
const res = await this.client.request("DELETE", `/open-api/v1/events/${eventId}/performers/${performerId}`);
|
|
293
|
+
return res.data;
|
|
294
|
+
}
|
|
295
|
+
};
|
|
296
|
+
|
|
297
|
+
// src/resources/schedules.ts
|
|
298
|
+
var SchedulesResource = class {
|
|
299
|
+
constructor(client) {
|
|
300
|
+
this.client = client;
|
|
301
|
+
}
|
|
302
|
+
async create(eventId, params) {
|
|
303
|
+
const res = await this.client.request("POST", `/open-api/v1/events/${eventId}/schedules`, { body: params });
|
|
304
|
+
return res.data;
|
|
305
|
+
}
|
|
306
|
+
async list(eventId) {
|
|
307
|
+
const res = await this.client.request("GET", `/open-api/v1/events/${eventId}/schedules`);
|
|
308
|
+
return res.data;
|
|
309
|
+
}
|
|
310
|
+
async update(eventId, scheduleId, params) {
|
|
311
|
+
const res = await this.client.request("PATCH", `/open-api/v1/events/${eventId}/schedules/${scheduleId}`, { body: params });
|
|
312
|
+
return res.data;
|
|
313
|
+
}
|
|
314
|
+
async remove(eventId, scheduleId) {
|
|
315
|
+
const res = await this.client.request("DELETE", `/open-api/v1/events/${eventId}/schedules/${scheduleId}`);
|
|
316
|
+
return res.data;
|
|
317
|
+
}
|
|
318
|
+
};
|
|
319
|
+
|
|
320
|
+
// src/resources/brands.ts
|
|
321
|
+
var BrandsResource = class {
|
|
322
|
+
constructor(client) {
|
|
323
|
+
this.client = client;
|
|
324
|
+
}
|
|
325
|
+
async create(eventId, params) {
|
|
326
|
+
const res = await this.client.request("POST", `/open-api/v1/events/${eventId}/brands`, { body: params });
|
|
327
|
+
return res.data;
|
|
328
|
+
}
|
|
329
|
+
async list(eventId) {
|
|
330
|
+
const res = await this.client.request("GET", `/open-api/v1/events/${eventId}/brands`);
|
|
331
|
+
return res.data;
|
|
332
|
+
}
|
|
333
|
+
async remove(eventId, brandId) {
|
|
334
|
+
const res = await this.client.request("DELETE", `/open-api/v1/events/${eventId}/brands/${brandId}`);
|
|
335
|
+
return res.data;
|
|
336
|
+
}
|
|
337
|
+
};
|
|
338
|
+
|
|
278
339
|
// src/utils/pagination.ts
|
|
279
340
|
async function* paginate(fetchPage, initialParams) {
|
|
280
341
|
let page = initialParams?.page ?? 1;
|
|
@@ -303,6 +364,9 @@ var Ticketnation = class {
|
|
|
303
364
|
orders;
|
|
304
365
|
venues;
|
|
305
366
|
webhooks;
|
|
367
|
+
performers;
|
|
368
|
+
schedules;
|
|
369
|
+
brands;
|
|
306
370
|
client;
|
|
307
371
|
constructor(config) {
|
|
308
372
|
if (!config.apiKey) {
|
|
@@ -320,6 +384,9 @@ var Ticketnation = class {
|
|
|
320
384
|
this.orders = new OrdersResource(this.client);
|
|
321
385
|
this.venues = new VenuesResource(this.client);
|
|
322
386
|
this.webhooks = new WebhooksResource(this.client);
|
|
387
|
+
this.performers = new PerformersResource(this.client);
|
|
388
|
+
this.schedules = new SchedulesResource(this.client);
|
|
389
|
+
this.brands = new BrandsResource(this.client);
|
|
323
390
|
}
|
|
324
391
|
async me() {
|
|
325
392
|
const res = await this.client.request("GET", "/open-api/v1/me");
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/errors.ts","../src/client.ts","../src/resources/events.ts","../src/resources/tickets.ts","../src/resources/orders.ts","../src/resources/venues.ts","../src/resources/webhooks.ts","../src/utils/pagination.ts","../src/index.ts"],"names":[],"mappings":"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","file":"index.mjs","sourcesContent":["import type { ApiErrorBody } from './types';\n\nexport class TicketnationError extends Error {\n readonly code: string;\n readonly status: number;\n readonly requestId: string | null;\n readonly details: Array<{ field: string; message: string }> | undefined;\n\n constructor(\n message: string,\n opts: {\n code: string;\n status: number;\n requestId?: string;\n details?: Array<{ field: string; message: string }>;\n },\n ) {\n super(message);\n this.name = 'TicketnationError';\n this.code = opts.code;\n this.status = opts.status;\n this.requestId = opts.requestId ?? null;\n this.details = opts.details;\n }\n\n static fromResponse(status: number, body: { error: ApiErrorBody; requestId?: string }): TicketnationError {\n return new TicketnationError(body.error.message, {\n code: body.error.code,\n status,\n requestId: body.requestId,\n details: body.error.details,\n });\n }\n\n toJSON() {\n return {\n name: this.name,\n code: this.code,\n status: this.status,\n message: this.message,\n requestId: this.requestId,\n details: this.details,\n };\n }\n}\n","import { TicketnationError } from './errors';\n\nexport interface ClientConfig {\n apiKey: string;\n baseUrl: string;\n timeout: number;\n retries: number;\n debug: boolean;\n}\n\nexport class HttpClient {\n private readonly config: ClientConfig;\n\n constructor(config: ClientConfig) {\n this.config = config;\n }\n\n async request<T>(method: string, path: string, opts?: { body?: unknown; params?: Record<string, unknown> }): Promise<T> {\n const url = this.buildUrl(path, opts?.params);\n let lastError: Error | null = null;\n\n for (let attempt = 0; attempt <= this.config.retries; attempt++) {\n if (attempt > 0) {\n const delay = Math.min(1000 * Math.pow(2, attempt - 1), 10000);\n await this.sleep(delay);\n if (this.config.debug) {\n console.log(`[Ticketnation SDK] Retry attempt ${attempt}/${this.config.retries} for ${method} ${path}`);\n }\n }\n\n try {\n const response = await this.doRequest(method, url, opts?.body);\n return response as T;\n } catch (error) {\n lastError = error as Error;\n if (error instanceof TicketnationError && error.status < 500) {\n throw error;\n }\n }\n }\n\n throw lastError;\n }\n\n private async doRequest(method: string, url: string, body?: unknown): Promise<unknown> {\n if (this.config.debug) {\n const redactedKey = this.config.apiKey.slice(0, 6) + '...' + this.config.apiKey.slice(-4);\n console.log(`[Ticketnation SDK] ${method} ${url} (key: ${redactedKey})`);\n }\n\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), this.config.timeout);\n\n try {\n const headers: Record<string, string> = {\n 'api-key': this.config.apiKey,\n 'Content-Type': 'application/json',\n 'Accept': 'application/json',\n 'User-Agent': 'ticketnation-sdk/1.0.2',\n };\n\n const init: RequestInit = {\n method,\n headers,\n signal: controller.signal,\n };\n\n if (body && (method === 'POST' || method === 'PATCH' || method === 'PUT')) {\n init.body = JSON.stringify(body);\n }\n\n const response = await fetch(url, init);\n\n if (!response.ok) {\n let errorBody: unknown;\n try {\n errorBody = await response.json();\n } catch {\n throw new TicketnationError(`HTTP ${response.status}: ${response.statusText}`, {\n code: 'HTTP_ERROR',\n status: response.status,\n });\n }\n\n const parsed = errorBody as { error?: { code: string; message: string; details?: Array<{ field: string; message: string }> }; requestId?: string };\n if (parsed.error) {\n throw TicketnationError.fromResponse(response.status, parsed as { error: { code: string; message: string }; requestId?: string });\n }\n\n throw new TicketnationError(`HTTP ${response.status}: ${response.statusText}`, {\n code: 'HTTP_ERROR',\n status: response.status,\n });\n }\n\n if (response.status === 204) {\n return {};\n }\n\n return await response.json();\n } catch (error) {\n if (error instanceof TicketnationError) throw error;\n\n if (error instanceof DOMException && error.name === 'AbortError') {\n throw new TicketnationError(`Request timed out after ${this.config.timeout}ms`, {\n code: 'TIMEOUT',\n status: 0,\n });\n }\n\n throw new TicketnationError(`Network error: ${(error as Error).message}`, {\n code: 'NETWORK_ERROR',\n status: 0,\n });\n } finally {\n clearTimeout(timeoutId);\n }\n }\n\n private buildUrl(path: string, params?: Record<string, unknown>): string {\n const base = this.config.baseUrl.replace(/\\/$/, '');\n const url = new URL(`${base}${path}`);\n\n if (params) {\n for (const [key, value] of Object.entries(params)) {\n if (value !== undefined && value !== null) {\n url.searchParams.set(key, String(value));\n }\n }\n }\n\n return url.toString();\n }\n\n private sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n }\n}\n","import type { HttpClient } from '../client';\nimport type {\n Event,\n CreateEventParams,\n UpdateEventParams,\n ListEventsParams,\n DataResponse,\n PaginatedResponse,\n DeletedResponse,\n} from '../types';\n\nexport class EventsResource {\n constructor(private readonly client: HttpClient) {}\n\n async create(params: CreateEventParams): Promise<Event> {\n const res = await this.client.request<DataResponse<Event>>('POST', '/open-api/v1/events', { body: params });\n return res.data;\n }\n\n async list(params?: ListEventsParams): Promise<PaginatedResponse<Event>> {\n return this.client.request<PaginatedResponse<Event>>('GET', '/open-api/v1/events', {\n params: params ? { page: params.page, take: params.take, status: params.status, search: params.search } : undefined,\n });\n }\n\n async get(idOrSlug: string): Promise<Event> {\n const res = await this.client.request<DataResponse<Event>>('GET', `/open-api/v1/events/${encodeURIComponent(idOrSlug)}`);\n return res.data;\n }\n\n async update(eventId: string, params: UpdateEventParams): Promise<Event> {\n const res = await this.client.request<DataResponse<Event>>('PATCH', `/open-api/v1/events/${eventId}`, { body: params });\n return res.data;\n }\n\n async publish(eventId: string): Promise<Event> {\n const res = await this.client.request<DataResponse<Event>>('POST', `/open-api/v1/events/${eventId}/publish`);\n return res.data;\n }\n\n async unpublish(eventId: string): Promise<Event> {\n const res = await this.client.request<DataResponse<Event>>('POST', `/open-api/v1/events/${eventId}/unpublish`);\n return res.data;\n }\n\n async archive(eventId: string): Promise<Event> {\n const res = await this.client.request<DataResponse<Event>>('POST', `/open-api/v1/events/${eventId}/archive`);\n return res.data;\n }\n\n async delete(eventId: string): Promise<DeletedResponse> {\n const res = await this.client.request<DataResponse<DeletedResponse>>('DELETE', `/open-api/v1/events/${eventId}`);\n return res.data;\n }\n}\n","import type { HttpClient } from '../client';\nimport type {\n Ticket,\n CreateTicketParams,\n UpdateTicketParams,\n DataResponse,\n DeletedResponse,\n} from '../types';\n\nexport class TicketsResource {\n constructor(private readonly client: HttpClient) {}\n\n async create(eventId: string, params: CreateTicketParams): Promise<Ticket> {\n const res = await this.client.request<DataResponse<Ticket>>('POST', `/open-api/v1/events/${eventId}/tickets`, { body: params });\n return res.data;\n }\n\n async list(eventId: string): Promise<Ticket[]> {\n const res = await this.client.request<DataResponse<Ticket[]>>('GET', `/open-api/v1/events/${eventId}/tickets`);\n return res.data;\n }\n\n async get(eventId: string, ticketId: string): Promise<Ticket> {\n const res = await this.client.request<DataResponse<Ticket>>('GET', `/open-api/v1/events/${eventId}/tickets/${ticketId}`);\n return res.data;\n }\n\n async update(eventId: string, ticketId: string, params: UpdateTicketParams): Promise<Ticket> {\n const res = await this.client.request<DataResponse<Ticket>>('PATCH', `/open-api/v1/events/${eventId}/tickets/${ticketId}`, { body: params });\n return res.data;\n }\n\n async publish(eventId: string, ticketId: string): Promise<Ticket> {\n const res = await this.client.request<DataResponse<Ticket>>('POST', `/open-api/v1/events/${eventId}/tickets/${ticketId}/publish`);\n return res.data;\n }\n\n async markSoldOut(eventId: string, ticketId: string): Promise<Ticket> {\n const res = await this.client.request<DataResponse<Ticket>>('POST', `/open-api/v1/events/${eventId}/tickets/${ticketId}/sold-out`);\n return res.data;\n }\n\n async delete(eventId: string, ticketId: string): Promise<DeletedResponse> {\n const res = await this.client.request<DataResponse<DeletedResponse>>('DELETE', `/open-api/v1/events/${eventId}/tickets/${ticketId}`);\n return res.data;\n }\n}\n","import type { HttpClient } from '../client';\nimport type {\n Order,\n ListOrdersParams,\n DataResponse,\n PaginatedResponse,\n} from '../types';\n\nexport class OrdersResource {\n constructor(private readonly client: HttpClient) {}\n\n async list(eventId: string, params?: ListOrdersParams): Promise<PaginatedResponse<Order>> {\n return this.client.request<PaginatedResponse<Order>>('GET', `/open-api/v1/events/${eventId}/orders`, {\n params: params ? { page: params.page, take: params.take, status: params.status } : undefined,\n });\n }\n\n async get(orderId: string): Promise<Order> {\n const res = await this.client.request<DataResponse<Order>>('GET', `/open-api/v1/orders/${orderId}`);\n return res.data;\n }\n}\n","import type { HttpClient } from '../client';\nimport type {\n Venue,\n SearchVenuesParams,\n PaginatedResponse,\n} from '../types';\n\nexport class VenuesResource {\n constructor(private readonly client: HttpClient) {}\n\n async search(params: SearchVenuesParams): Promise<PaginatedResponse<Venue>> {\n return this.client.request<PaginatedResponse<Venue>>('GET', '/open-api/v1/venues/search', {\n params: { query: params.query, page: params.page, take: params.take },\n });\n }\n}\n","import type { HttpClient } from '../client';\nimport type {\n Webhook,\n WebhookWithSecret,\n CreateWebhookParams,\n UpdateWebhookParams,\n DataResponse,\n PaginatedResponse,\n DeletedResponse,\n} from '../types';\n\nexport interface WebhookDelivery {\n id: string;\n eventType: string;\n statusCode: number | null;\n success: boolean;\n attempts: number;\n createdAt: string;\n}\n\nexport interface WebhookTestResult {\n success: boolean;\n statusCode: number | null;\n message: string;\n}\n\nexport class WebhooksResource {\n constructor(private readonly client: HttpClient) {}\n\n async create(params: CreateWebhookParams): Promise<WebhookWithSecret> {\n const res = await this.client.request<DataResponse<WebhookWithSecret>>('POST', '/open-api/v1/webhooks', { body: params });\n return res.data;\n }\n\n async list(): Promise<Webhook[]> {\n const res = await this.client.request<DataResponse<Webhook[]>>('GET', '/open-api/v1/webhooks');\n return res.data;\n }\n\n async update(webhookId: string, params: UpdateWebhookParams): Promise<Webhook> {\n const res = await this.client.request<DataResponse<Webhook>>('PATCH', `/open-api/v1/webhooks/${webhookId}`, { body: params });\n return res.data;\n }\n\n async delete(webhookId: string): Promise<DeletedResponse> {\n const res = await this.client.request<DataResponse<DeletedResponse>>('DELETE', `/open-api/v1/webhooks/${webhookId}`);\n return res.data;\n }\n\n async test(webhookId: string): Promise<WebhookTestResult> {\n const res = await this.client.request<DataResponse<WebhookTestResult>>('POST', `/open-api/v1/webhooks/${webhookId}/test`);\n return res.data;\n }\n\n async deliveries(webhookId: string, params?: { page?: number; take?: number }): Promise<PaginatedResponse<WebhookDelivery>> {\n return this.client.request<PaginatedResponse<WebhookDelivery>>('GET', `/open-api/v1/webhooks/${webhookId}/deliveries`, {\n params: params ? { page: params.page, take: params.take } : undefined,\n });\n }\n}\n","import type { PaginatedResponse, PaginationParams } from '../types';\n\nexport async function* paginate<T>(\n fetchPage: (params: PaginationParams) => Promise<PaginatedResponse<T>>,\n initialParams?: PaginationParams,\n): AsyncGenerator<T[], void, undefined> {\n let page = initialParams?.page ?? 1;\n const take = initialParams?.take ?? 10;\n\n while (true) {\n const response = await fetchPage({ page, take });\n yield response.data;\n\n if (page >= response.meta.totalPages) {\n break;\n }\n page++;\n }\n}\n\nexport async function fetchAllPages<T>(\n fetchPage: (params: PaginationParams) => Promise<PaginatedResponse<T>>,\n initialParams?: PaginationParams,\n): Promise<T[]> {\n const all: T[] = [];\n for await (const batch of paginate(fetchPage, initialParams)) {\n all.push(...batch);\n }\n return all;\n}\n","import { HttpClient } from './client';\nimport { EventsResource } from './resources/events';\nimport { TicketsResource } from './resources/tickets';\nimport { OrdersResource } from './resources/orders';\nimport { VenuesResource } from './resources/venues';\nimport { WebhooksResource } from './resources/webhooks';\nimport type { TicketnationConfig, AccountInfo, DataResponse } from './types';\n\nexport class Ticketnation {\n readonly events: EventsResource;\n readonly tickets: TicketsResource;\n readonly orders: OrdersResource;\n readonly venues: VenuesResource;\n readonly webhooks: WebhooksResource;\n\n private readonly client: HttpClient;\n\n constructor(config: TicketnationConfig) {\n if (!config.apiKey) {\n throw new Error('Ticketnation SDK requires an apiKey');\n }\n\n this.client = new HttpClient({\n apiKey: config.apiKey,\n baseUrl: config.baseUrl ?? 'https://api.ticketnation.ph',\n timeout: config.timeout ?? 30000,\n retries: config.retries ?? 2,\n debug: config.debug ?? false,\n });\n\n this.events = new EventsResource(this.client);\n this.tickets = new TicketsResource(this.client);\n this.orders = new OrdersResource(this.client);\n this.venues = new VenuesResource(this.client);\n this.webhooks = new WebhooksResource(this.client);\n }\n\n async me(): Promise<AccountInfo> {\n const res = await this.client.request<DataResponse<AccountInfo>>('GET', '/open-api/v1/me');\n return res.data;\n }\n}\n\n// Re-export everything\nexport { TicketnationError } from './errors';\nexport { paginate, fetchAllPages } from './utils/pagination';\nexport type * from './types';\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/errors.ts","../src/client.ts","../src/resources/events.ts","../src/resources/tickets.ts","../src/resources/orders.ts","../src/resources/venues.ts","../src/resources/webhooks.ts","../src/resources/performers.ts","../src/resources/schedules.ts","../src/resources/brands.ts","../src/utils/pagination.ts","../src/index.ts"],"names":[],"mappings":"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","file":"index.mjs","sourcesContent":["import type { ApiErrorBody } from './types';\n\nexport class TicketnationError extends Error {\n readonly code: string;\n readonly status: number;\n readonly requestId: string | null;\n readonly details: Array<{ field: string; message: string }> | undefined;\n\n constructor(\n message: string,\n opts: {\n code: string;\n status: number;\n requestId?: string;\n details?: Array<{ field: string; message: string }>;\n },\n ) {\n super(message);\n this.name = 'TicketnationError';\n this.code = opts.code;\n this.status = opts.status;\n this.requestId = opts.requestId ?? null;\n this.details = opts.details;\n }\n\n static fromResponse(status: number, body: { error: ApiErrorBody; requestId?: string }): TicketnationError {\n return new TicketnationError(body.error.message, {\n code: body.error.code,\n status,\n requestId: body.requestId,\n details: body.error.details,\n });\n }\n\n toJSON() {\n return {\n name: this.name,\n code: this.code,\n status: this.status,\n message: this.message,\n requestId: this.requestId,\n details: this.details,\n };\n }\n}\n","import { TicketnationError } from './errors';\n\nexport interface ClientConfig {\n apiKey: string;\n baseUrl: string;\n timeout: number;\n retries: number;\n debug: boolean;\n}\n\nexport class HttpClient {\n private readonly config: ClientConfig;\n\n constructor(config: ClientConfig) {\n this.config = config;\n }\n\n async request<T>(method: string, path: string, opts?: { body?: unknown; params?: Record<string, unknown> }): Promise<T> {\n const url = this.buildUrl(path, opts?.params);\n let lastError: Error | null = null;\n\n for (let attempt = 0; attempt <= this.config.retries; attempt++) {\n if (attempt > 0) {\n const delay = Math.min(1000 * Math.pow(2, attempt - 1), 10000);\n await this.sleep(delay);\n if (this.config.debug) {\n console.log(`[Ticketnation SDK] Retry attempt ${attempt}/${this.config.retries} for ${method} ${path}`);\n }\n }\n\n try {\n const response = await this.doRequest(method, url, opts?.body);\n return response as T;\n } catch (error) {\n lastError = error as Error;\n if (error instanceof TicketnationError && error.status < 500) {\n throw error;\n }\n }\n }\n\n throw lastError;\n }\n\n private async doRequest(method: string, url: string, body?: unknown): Promise<unknown> {\n if (this.config.debug) {\n const redactedKey = this.config.apiKey.slice(0, 6) + '...' + this.config.apiKey.slice(-4);\n console.log(`[Ticketnation SDK] ${method} ${url} (key: ${redactedKey})`);\n }\n\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), this.config.timeout);\n\n try {\n const headers: Record<string, string> = {\n 'api-key': this.config.apiKey,\n 'Content-Type': 'application/json',\n 'Accept': 'application/json',\n 'User-Agent': 'ticketnation-sdk/1.0.2',\n };\n\n const init: RequestInit = {\n method,\n headers,\n signal: controller.signal,\n };\n\n if (body && (method === 'POST' || method === 'PATCH' || method === 'PUT')) {\n init.body = JSON.stringify(body);\n }\n\n const response = await fetch(url, init);\n\n if (!response.ok) {\n let errorBody: unknown;\n try {\n errorBody = await response.json();\n } catch {\n throw new TicketnationError(`HTTP ${response.status}: ${response.statusText}`, {\n code: 'HTTP_ERROR',\n status: response.status,\n });\n }\n\n const parsed = errorBody as { error?: { code: string; message: string; details?: Array<{ field: string; message: string }> }; requestId?: string };\n if (parsed.error) {\n throw TicketnationError.fromResponse(response.status, parsed as { error: { code: string; message: string }; requestId?: string });\n }\n\n throw new TicketnationError(`HTTP ${response.status}: ${response.statusText}`, {\n code: 'HTTP_ERROR',\n status: response.status,\n });\n }\n\n if (response.status === 204) {\n return {};\n }\n\n return await response.json();\n } catch (error) {\n if (error instanceof TicketnationError) throw error;\n\n if (error instanceof DOMException && error.name === 'AbortError') {\n throw new TicketnationError(`Request timed out after ${this.config.timeout}ms`, {\n code: 'TIMEOUT',\n status: 0,\n });\n }\n\n throw new TicketnationError(`Network error: ${(error as Error).message}`, {\n code: 'NETWORK_ERROR',\n status: 0,\n });\n } finally {\n clearTimeout(timeoutId);\n }\n }\n\n private buildUrl(path: string, params?: Record<string, unknown>): string {\n const base = this.config.baseUrl.replace(/\\/$/, '');\n const url = new URL(`${base}${path}`);\n\n if (params) {\n for (const [key, value] of Object.entries(params)) {\n if (value !== undefined && value !== null) {\n url.searchParams.set(key, String(value));\n }\n }\n }\n\n return url.toString();\n }\n\n private sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n }\n}\n","import type { HttpClient } from '../client';\nimport type {\n Event,\n CreateEventParams,\n UpdateEventParams,\n ListEventsParams,\n DataResponse,\n PaginatedResponse,\n DeletedResponse,\n} from '../types';\n\nexport class EventsResource {\n constructor(private readonly client: HttpClient) {}\n\n async create(params: CreateEventParams): Promise<Event> {\n const res = await this.client.request<DataResponse<Event>>('POST', '/open-api/v1/events', { body: params });\n return res.data;\n }\n\n async list(params?: ListEventsParams): Promise<PaginatedResponse<Event>> {\n return this.client.request<PaginatedResponse<Event>>('GET', '/open-api/v1/events', {\n params: params ? { page: params.page, take: params.take, status: params.status, search: params.search } : undefined,\n });\n }\n\n async get(idOrSlug: string): Promise<Event> {\n const res = await this.client.request<DataResponse<Event>>('GET', `/open-api/v1/events/${encodeURIComponent(idOrSlug)}`);\n return res.data;\n }\n\n async update(eventId: string, params: UpdateEventParams): Promise<Event> {\n const res = await this.client.request<DataResponse<Event>>('PATCH', `/open-api/v1/events/${eventId}`, { body: params });\n return res.data;\n }\n\n async publish(eventId: string): Promise<Event> {\n const res = await this.client.request<DataResponse<Event>>('POST', `/open-api/v1/events/${eventId}/publish`);\n return res.data;\n }\n\n async unpublish(eventId: string): Promise<Event> {\n const res = await this.client.request<DataResponse<Event>>('POST', `/open-api/v1/events/${eventId}/unpublish`);\n return res.data;\n }\n\n async archive(eventId: string): Promise<Event> {\n const res = await this.client.request<DataResponse<Event>>('POST', `/open-api/v1/events/${eventId}/archive`);\n return res.data;\n }\n\n async delete(eventId: string): Promise<DeletedResponse> {\n const res = await this.client.request<DataResponse<DeletedResponse>>('DELETE', `/open-api/v1/events/${eventId}`);\n return res.data;\n }\n}\n","import type { HttpClient } from '../client';\nimport type {\n Ticket,\n CreateTicketParams,\n UpdateTicketParams,\n DataResponse,\n DeletedResponse,\n} from '../types';\n\nexport class TicketsResource {\n constructor(private readonly client: HttpClient) {}\n\n async create(eventId: string, params: CreateTicketParams): Promise<Ticket> {\n const res = await this.client.request<DataResponse<Ticket>>('POST', `/open-api/v1/events/${eventId}/tickets`, { body: params });\n return res.data;\n }\n\n async list(eventId: string): Promise<Ticket[]> {\n const res = await this.client.request<DataResponse<Ticket[]>>('GET', `/open-api/v1/events/${eventId}/tickets`);\n return res.data;\n }\n\n async get(eventId: string, ticketId: string): Promise<Ticket> {\n const res = await this.client.request<DataResponse<Ticket>>('GET', `/open-api/v1/events/${eventId}/tickets/${ticketId}`);\n return res.data;\n }\n\n async update(eventId: string, ticketId: string, params: UpdateTicketParams): Promise<Ticket> {\n const res = await this.client.request<DataResponse<Ticket>>('PATCH', `/open-api/v1/events/${eventId}/tickets/${ticketId}`, { body: params });\n return res.data;\n }\n\n async publish(eventId: string, ticketId: string): Promise<Ticket> {\n const res = await this.client.request<DataResponse<Ticket>>('POST', `/open-api/v1/events/${eventId}/tickets/${ticketId}/publish`);\n return res.data;\n }\n\n async markSoldOut(eventId: string, ticketId: string): Promise<Ticket> {\n const res = await this.client.request<DataResponse<Ticket>>('POST', `/open-api/v1/events/${eventId}/tickets/${ticketId}/sold-out`);\n return res.data;\n }\n\n async delete(eventId: string, ticketId: string): Promise<DeletedResponse> {\n const res = await this.client.request<DataResponse<DeletedResponse>>('DELETE', `/open-api/v1/events/${eventId}/tickets/${ticketId}`);\n return res.data;\n }\n}\n","import type { HttpClient } from '../client';\nimport type {\n Order,\n ListOrdersParams,\n DataResponse,\n PaginatedResponse,\n} from '../types';\n\nexport class OrdersResource {\n constructor(private readonly client: HttpClient) {}\n\n async list(eventId: string, params?: ListOrdersParams): Promise<PaginatedResponse<Order>> {\n return this.client.request<PaginatedResponse<Order>>('GET', `/open-api/v1/events/${eventId}/orders`, {\n params: params ? { page: params.page, take: params.take, status: params.status } : undefined,\n });\n }\n\n async get(orderId: string): Promise<Order> {\n const res = await this.client.request<DataResponse<Order>>('GET', `/open-api/v1/orders/${orderId}`);\n return res.data;\n }\n}\n","import type { HttpClient } from '../client';\nimport type {\n Venue,\n SearchVenuesParams,\n PaginatedResponse,\n} from '../types';\n\nexport class VenuesResource {\n constructor(private readonly client: HttpClient) {}\n\n async search(params: SearchVenuesParams): Promise<PaginatedResponse<Venue>> {\n return this.client.request<PaginatedResponse<Venue>>('GET', '/open-api/v1/venues/search', {\n params: { query: params.query, page: params.page, take: params.take },\n });\n }\n}\n","import type { HttpClient } from '../client';\nimport type {\n Webhook,\n WebhookWithSecret,\n CreateWebhookParams,\n UpdateWebhookParams,\n DataResponse,\n PaginatedResponse,\n DeletedResponse,\n} from '../types';\n\nexport interface WebhookDelivery {\n id: string;\n eventType: string;\n statusCode: number | null;\n success: boolean;\n attempts: number;\n createdAt: string;\n}\n\nexport interface WebhookTestResult {\n success: boolean;\n statusCode: number | null;\n message: string;\n}\n\nexport class WebhooksResource {\n constructor(private readonly client: HttpClient) {}\n\n async create(params: CreateWebhookParams): Promise<WebhookWithSecret> {\n const res = await this.client.request<DataResponse<WebhookWithSecret>>('POST', '/open-api/v1/webhooks', { body: params });\n return res.data;\n }\n\n async list(): Promise<Webhook[]> {\n const res = await this.client.request<DataResponse<Webhook[]>>('GET', '/open-api/v1/webhooks');\n return res.data;\n }\n\n async update(webhookId: string, params: UpdateWebhookParams): Promise<Webhook> {\n const res = await this.client.request<DataResponse<Webhook>>('PATCH', `/open-api/v1/webhooks/${webhookId}`, { body: params });\n return res.data;\n }\n\n async delete(webhookId: string): Promise<DeletedResponse> {\n const res = await this.client.request<DataResponse<DeletedResponse>>('DELETE', `/open-api/v1/webhooks/${webhookId}`);\n return res.data;\n }\n\n async test(webhookId: string): Promise<WebhookTestResult> {\n const res = await this.client.request<DataResponse<WebhookTestResult>>('POST', `/open-api/v1/webhooks/${webhookId}/test`);\n return res.data;\n }\n\n async deliveries(webhookId: string, params?: { page?: number; take?: number }): Promise<PaginatedResponse<WebhookDelivery>> {\n return this.client.request<PaginatedResponse<WebhookDelivery>>('GET', `/open-api/v1/webhooks/${webhookId}/deliveries`, {\n params: params ? { page: params.page, take: params.take } : undefined,\n });\n }\n}\n","import type { HttpClient } from '../client';\nimport type { DataResponse, DeletedResponse } from '../types';\n\nexport interface CreatePerformerParams {\n name: string;\n description?: string;\n type?: 'SOLO' | 'GROUP' | 'DJ' | 'BAND' | 'SPEAKER' | 'HOST' | 'COMEDIAN' | 'OTHER';\n imageUrl?: string;\n facebook?: string;\n youtube?: string;\n instagram?: string;\n}\n\nexport interface Performer {\n id: string;\n name: string;\n description: string | null;\n type: string;\n slug: string | null;\n facebook: string | null;\n youtube: string | null;\n instagram: string | null;\n image: { id: string; url: string | null } | null;\n}\n\nexport class PerformersResource {\n constructor(private readonly client: HttpClient) {}\n\n async create(eventId: string, params: CreatePerformerParams): Promise<Performer> {\n const res = await this.client.request<DataResponse<Performer>>('POST', `/open-api/v1/events/${eventId}/performers`, { body: params });\n return res.data;\n }\n\n async list(eventId: string): Promise<Performer[]> {\n const res = await this.client.request<DataResponse<Performer[]>>('GET', `/open-api/v1/events/${eventId}/performers`);\n return res.data;\n }\n\n async remove(eventId: string, performerId: string): Promise<DeletedResponse> {\n const res = await this.client.request<DataResponse<DeletedResponse>>('DELETE', `/open-api/v1/events/${eventId}/performers/${performerId}`);\n return res.data;\n }\n}\n","import type { HttpClient } from '../client';\nimport type { DataResponse, DeletedResponse } from '../types';\n\nexport interface CreateScheduleParams {\n title: string;\n description?: string;\n startTime: string;\n endTime: string;\n icon?: string;\n color?: string;\n sortOrder?: number;\n performerId?: string;\n}\n\nexport interface UpdateScheduleParams {\n title?: string;\n description?: string;\n startTime?: string;\n endTime?: string;\n icon?: string;\n color?: string;\n sortOrder?: number;\n performerId?: string;\n}\n\nexport interface Schedule {\n id: string;\n title: string;\n description: string | null;\n startTime: string;\n endTime: string;\n icon: string | null;\n color: string | null;\n sortOrder: number;\n performerId: string | null;\n performer: { id: string; name: string } | null;\n createdAt: string;\n updatedAt: string;\n}\n\nexport class SchedulesResource {\n constructor(private readonly client: HttpClient) {}\n\n async create(eventId: string, params: CreateScheduleParams): Promise<Schedule> {\n const res = await this.client.request<DataResponse<Schedule>>('POST', `/open-api/v1/events/${eventId}/schedules`, { body: params });\n return res.data;\n }\n\n async list(eventId: string): Promise<Schedule[]> {\n const res = await this.client.request<DataResponse<Schedule[]>>('GET', `/open-api/v1/events/${eventId}/schedules`);\n return res.data;\n }\n\n async update(eventId: string, scheduleId: string, params: UpdateScheduleParams): Promise<Schedule> {\n const res = await this.client.request<DataResponse<Schedule>>('PATCH', `/open-api/v1/events/${eventId}/schedules/${scheduleId}`, { body: params });\n return res.data;\n }\n\n async remove(eventId: string, scheduleId: string): Promise<DeletedResponse> {\n const res = await this.client.request<DataResponse<DeletedResponse>>('DELETE', `/open-api/v1/events/${eventId}/schedules/${scheduleId}`);\n return res.data;\n }\n}\n","import type { HttpClient } from '../client';\nimport type { DataResponse, DeletedResponse } from '../types';\n\nexport interface CreateBrandParams {\n name: string;\n description?: string;\n url?: string;\n imageUrl?: string;\n position?: number;\n}\n\nexport interface Brand {\n id: string;\n name: string;\n description: string | null;\n url: string | null;\n sponsorshipColor: string | null;\n image: { id: string; url: string | null } | null;\n position: number | null;\n}\n\nexport class BrandsResource {\n constructor(private readonly client: HttpClient) {}\n\n async create(eventId: string, params: CreateBrandParams): Promise<Brand> {\n const res = await this.client.request<DataResponse<Brand>>('POST', `/open-api/v1/events/${eventId}/brands`, { body: params });\n return res.data;\n }\n\n async list(eventId: string): Promise<Brand[]> {\n const res = await this.client.request<DataResponse<Brand[]>>('GET', `/open-api/v1/events/${eventId}/brands`);\n return res.data;\n }\n\n async remove(eventId: string, brandId: string): Promise<DeletedResponse> {\n const res = await this.client.request<DataResponse<DeletedResponse>>('DELETE', `/open-api/v1/events/${eventId}/brands/${brandId}`);\n return res.data;\n }\n}\n","import type { PaginatedResponse, PaginationParams } from '../types';\n\nexport async function* paginate<T>(\n fetchPage: (params: PaginationParams) => Promise<PaginatedResponse<T>>,\n initialParams?: PaginationParams,\n): AsyncGenerator<T[], void, undefined> {\n let page = initialParams?.page ?? 1;\n const take = initialParams?.take ?? 10;\n\n while (true) {\n const response = await fetchPage({ page, take });\n yield response.data;\n\n if (page >= response.meta.totalPages) {\n break;\n }\n page++;\n }\n}\n\nexport async function fetchAllPages<T>(\n fetchPage: (params: PaginationParams) => Promise<PaginatedResponse<T>>,\n initialParams?: PaginationParams,\n): Promise<T[]> {\n const all: T[] = [];\n for await (const batch of paginate(fetchPage, initialParams)) {\n all.push(...batch);\n }\n return all;\n}\n","import { HttpClient } from './client';\nimport { EventsResource } from './resources/events';\nimport { TicketsResource } from './resources/tickets';\nimport { OrdersResource } from './resources/orders';\nimport { VenuesResource } from './resources/venues';\nimport { WebhooksResource } from './resources/webhooks';\nimport { PerformersResource } from './resources/performers';\nimport { SchedulesResource } from './resources/schedules';\nimport { BrandsResource } from './resources/brands';\nimport type { TicketnationConfig, AccountInfo, DataResponse } from './types';\n\nexport class Ticketnation {\n readonly events: EventsResource;\n readonly tickets: TicketsResource;\n readonly orders: OrdersResource;\n readonly venues: VenuesResource;\n readonly webhooks: WebhooksResource;\n readonly performers: PerformersResource;\n readonly schedules: SchedulesResource;\n readonly brands: BrandsResource;\n\n private readonly client: HttpClient;\n\n constructor(config: TicketnationConfig) {\n if (!config.apiKey) {\n throw new Error('Ticketnation SDK requires an apiKey');\n }\n\n this.client = new HttpClient({\n apiKey: config.apiKey,\n baseUrl: config.baseUrl ?? 'https://api.ticketnation.ph',\n timeout: config.timeout ?? 30000,\n retries: config.retries ?? 2,\n debug: config.debug ?? false,\n });\n\n this.events = new EventsResource(this.client);\n this.tickets = new TicketsResource(this.client);\n this.orders = new OrdersResource(this.client);\n this.venues = new VenuesResource(this.client);\n this.webhooks = new WebhooksResource(this.client);\n this.performers = new PerformersResource(this.client);\n this.schedules = new SchedulesResource(this.client);\n this.brands = new BrandsResource(this.client);\n }\n\n async me(): Promise<AccountInfo> {\n const res = await this.client.request<DataResponse<AccountInfo>>('GET', '/open-api/v1/me');\n return res.data;\n }\n}\n\n// Re-export everything\nexport { TicketnationError } from './errors';\nexport { paginate, fetchAllPages } from './utils/pagination';\nexport type * from './types';\nexport type { Performer, CreatePerformerParams } from './resources/performers';\nexport type { Schedule, CreateScheduleParams, UpdateScheduleParams } from './resources/schedules';\nexport type { Brand, CreateBrandParams } from './resources/brands';\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ticketnation-sdk",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.5",
|
|
4
4
|
"description": "Official TypeScript SDK for the Ticketnation Open API — publish events, manage tickets, and receive orders programmatically.",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.mjs",
|