@getmicdrop/venue-calendar 3.3.1 → 3.3.3

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 (50) hide show
  1. package/dist/{VenueCalendar-Xppig0q_.js → VenueCalendar-qwLPhCFH.js} +2698 -2693
  2. package/dist/VenueCalendar-qwLPhCFH.js.map +1 -0
  3. package/dist/api/api.cjs +2 -0
  4. package/dist/api/api.cjs.map +1 -0
  5. package/dist/api/api.mjs +787 -0
  6. package/dist/api/api.mjs.map +1 -0
  7. package/dist/api/client.d.ts +46 -0
  8. package/dist/api/events.d.ts +102 -0
  9. package/dist/api/index.d.ts +38 -0
  10. package/dist/api/orders.d.ts +104 -0
  11. package/dist/api/promo.d.ts +45 -0
  12. package/dist/api/transformers/event.d.ts +86 -0
  13. package/dist/api/transformers/index.d.ts +9 -0
  14. package/dist/api/transformers/order.d.ts +105 -0
  15. package/dist/api/transformers/venue.d.ts +48 -0
  16. package/dist/api/venues.d.ts +33 -0
  17. package/dist/{index-BjErG0CG.js → index-TUrDiCfO.js} +2 -2
  18. package/dist/{index-BjErG0CG.js.map → index-TUrDiCfO.js.map} +1 -1
  19. package/dist/venue-calendar.css +1 -1
  20. package/dist/venue-calendar.es.js +1 -1
  21. package/dist/venue-calendar.iife.js +14 -14
  22. package/dist/venue-calendar.iife.js.map +1 -1
  23. package/dist/venue-calendar.umd.js +14 -14
  24. package/dist/venue-calendar.umd.js.map +1 -1
  25. package/package.json +96 -94
  26. package/dist/VenueCalendar-Xppig0q_.js.map +0 -1
  27. package/src/lib/api/client.ts +0 -210
  28. package/src/lib/api/events.ts +0 -358
  29. package/src/lib/api/index.ts +0 -182
  30. package/src/lib/api/orders.ts +0 -390
  31. package/src/lib/api/promo.ts +0 -164
  32. package/src/lib/api/transformers/event.ts +0 -248
  33. package/src/lib/api/transformers/index.ts +0 -29
  34. package/src/lib/api/transformers/order.ts +0 -207
  35. package/src/lib/api/transformers/venue.ts +0 -118
  36. package/src/lib/api/venues.ts +0 -100
  37. package/src/lib/utils/api.js +0 -790
  38. package/src/lib/utils/api.test.js +0 -1284
  39. package/src/lib/utils/constants.js +0 -8
  40. package/src/lib/utils/constants.test.js +0 -39
  41. package/src/lib/utils/datetime.js +0 -266
  42. package/src/lib/utils/datetime.test.js +0 -340
  43. package/src/lib/utils/event-transform.js +0 -464
  44. package/src/lib/utils/event-transform.test.js +0 -413
  45. package/src/lib/utils/logger.js +0 -105
  46. package/src/lib/utils/timezone.js +0 -109
  47. package/src/lib/utils/timezone.test.js +0 -222
  48. package/src/lib/utils/utils.js +0 -806
  49. package/src/lib/utils/utils.test.js +0 -959
  50. /package/{src/lib/api/types.ts → dist/api/types.d.ts} +0 -0
@@ -1,118 +0,0 @@
1
- /**
2
- * Venue Transformer
3
- *
4
- * Normalizes API venue responses to a consistent format.
5
- */
6
-
7
- import type { Venue } from '../types.js';
8
-
9
- // CDN base URL for images
10
- const CDN_BASE_URL = 'https://micdrop-images.sfo3.digitaloceanspaces.com';
11
-
12
- /**
13
- * Raw API venue response (may have varying field names)
14
- */
15
- interface ApiVenue {
16
- id?: number;
17
- ID?: number;
18
- name?: string;
19
- slug?: string;
20
- address?: string;
21
- googleLocationNameCache?: string;
22
- google_location_name_cache?: string;
23
- city?: string;
24
- state?: string;
25
- zipCode?: string;
26
- zip_code?: string;
27
- country?: string;
28
- timezone?: string;
29
- time_zone?: string;
30
- logoUrl?: string;
31
- logo_url?: string;
32
- logo?: string;
33
- serviceFeePercentage?: number;
34
- service_fee_percentage?: number;
35
- serviceFeeCents?: number;
36
- service_fee_cents?: number;
37
- taxPercentage?: number;
38
- tax_percentage?: number;
39
- organizationId?: number;
40
- organization_id?: number;
41
- }
42
-
43
- /**
44
- * Get CDN image URL for venue logo
45
- */
46
- function getLogoUrl(path: string | undefined): string {
47
- if (!path) return '';
48
- if (path.startsWith('http')) return path;
49
- return `${CDN_BASE_URL}/${path.replace(/^\//, '')}`;
50
- }
51
-
52
- /**
53
- * Transform a raw API venue to normalized Venue
54
- */
55
- export function transformVenue(apiVenue: ApiVenue): Venue {
56
- const logoPath =
57
- apiVenue.logoUrl || apiVenue.logo_url || apiVenue.logo;
58
-
59
- return {
60
- id: apiVenue.id || apiVenue.ID || 0,
61
- name: apiVenue.name || '',
62
- slug: apiVenue.slug,
63
- address: apiVenue.address,
64
- googleLocationNameCache:
65
- apiVenue.googleLocationNameCache ||
66
- apiVenue.google_location_name_cache,
67
- city: apiVenue.city,
68
- state: apiVenue.state,
69
- zipCode: apiVenue.zipCode || apiVenue.zip_code,
70
- country: apiVenue.country,
71
- timezone: apiVenue.timezone || apiVenue.time_zone,
72
- logoUrl: getLogoUrl(logoPath),
73
- serviceFeePercentage:
74
- apiVenue.serviceFeePercentage ??
75
- apiVenue.service_fee_percentage ??
76
- 0,
77
- serviceFeeCents:
78
- apiVenue.serviceFeeCents ?? apiVenue.service_fee_cents ?? 0,
79
- taxPercentage:
80
- apiVenue.taxPercentage ?? apiVenue.tax_percentage ?? 0,
81
- organizationId:
82
- apiVenue.organizationId || apiVenue.organization_id,
83
- };
84
- }
85
-
86
- /**
87
- * Extract fee configuration from venue
88
- */
89
- export function extractVenueFees(apiVenue: ApiVenue): {
90
- serviceFeePercentage: number;
91
- serviceFeeCents: number;
92
- taxPercentage: number;
93
- } {
94
- return {
95
- serviceFeePercentage:
96
- apiVenue.serviceFeePercentage ??
97
- apiVenue.service_fee_percentage ??
98
- 0,
99
- serviceFeeCents:
100
- apiVenue.serviceFeeCents ?? apiVenue.service_fee_cents ?? 0,
101
- taxPercentage:
102
- apiVenue.taxPercentage ?? apiVenue.tax_percentage ?? 0,
103
- };
104
- }
105
-
106
- /**
107
- * Get formatted venue address
108
- */
109
- export function formatVenueAddress(venue: Venue): string {
110
- const parts = [
111
- venue.address,
112
- venue.city,
113
- venue.state,
114
- venue.zipCode,
115
- ].filter(Boolean);
116
-
117
- return parts.join(', ');
118
- }
@@ -1,100 +0,0 @@
1
- /**
2
- * Venues API
3
- *
4
- * Functions for fetching venue data including
5
- * service fees and tax configuration.
6
- */
7
-
8
- import { logger } from '../utils/logger.js';
9
- import { getPublicBaseUrl, getLegacyPublicUrl, simpleFetch } from './client.js';
10
- import type { Venue } from './types.js';
11
-
12
- /**
13
- * Get venue details (public, no auth required)
14
- *
15
- * Fetches venue information including service fees and taxes
16
- * needed for checkout calculations.
17
- *
18
- * @param venueId - The venue ID
19
- * @returns Venue details or null on error
20
- */
21
- export async function getVenue(venueId: string | number): Promise<Venue | null> {
22
- try {
23
- if (!venueId) {
24
- logger.warn('getVenue called without venueId');
25
- return null;
26
- }
27
-
28
- // Uses /api/public/getVenue/:id (same as micdrop-frontend)
29
- const response = await fetch(`${getLegacyPublicUrl()}/getVenue/${venueId}`);
30
-
31
- if (!response.ok) {
32
- logger.error(`Failed to fetch venue: ${response.status}`);
33
- return null;
34
- }
35
-
36
- return response.json();
37
- } catch (error) {
38
- logger.error('Error fetching venue:', error);
39
- return null;
40
- }
41
- }
42
-
43
- /**
44
- * Get venue service fee configuration
45
- *
46
- * Returns just the fee-related fields for checkout calculations.
47
- *
48
- * @param venueId - The venue ID
49
- * @returns Fee configuration or null on error
50
- */
51
- export async function getVenueFees(
52
- venueId: string | number
53
- ): Promise<{
54
- serviceFeePercentage: number;
55
- serviceFeeCents: number;
56
- taxPercentage: number;
57
- } | null> {
58
- const venue = await getVenue(venueId);
59
-
60
- if (!venue) {
61
- return null;
62
- }
63
-
64
- return {
65
- serviceFeePercentage: venue.serviceFeePercentage ?? 0,
66
- serviceFeeCents: venue.serviceFeeCents ?? 0,
67
- taxPercentage: venue.taxPercentage ?? 0,
68
- };
69
- }
70
-
71
- /**
72
- * Get venue by slug
73
- *
74
- * Fetches venue using its URL-friendly slug.
75
- *
76
- * @param slug - The venue slug
77
- * @returns Venue details or null on error
78
- */
79
- export async function getVenueBySlug(slug: string): Promise<Venue | null> {
80
- try {
81
- if (!slug) {
82
- logger.warn('getVenueBySlug called without slug');
83
- return null;
84
- }
85
-
86
- const encodedSlug = encodeURIComponent(slug);
87
- // Uses /api/public/venue/:slug (same as micdrop-frontend)
88
- const response = await fetch(`${getLegacyPublicUrl()}/venue/${encodedSlug}`);
89
-
90
- if (!response.ok) {
91
- logger.error(`Failed to fetch venue by slug: ${response.status}`);
92
- return null;
93
- }
94
-
95
- return response.json();
96
- } catch (error) {
97
- logger.error('Error fetching venue by slug:', error);
98
- return null;
99
- }
100
- }