@bash-app/bash-common 29.50.0 → 29.51.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -7,12 +7,20 @@ import {
7
7
  Invitation,
8
8
  Ticket,
9
9
  User,
10
- TicketTier, Service, Review, Media, BashComment, Recurrence, Contact,
11
- BashNotification, BashEventPromoCode,
10
+ TicketTier,
11
+ Service,
12
+ Review,
13
+ Media,
14
+ BashComment,
15
+ Recurrence,
16
+ Contact,
17
+ BashNotification,
18
+ BashEventPromoCode,
12
19
  Reminder,
13
20
  Checkout,
14
21
  ServiceLink,
15
- Link, Venue,
22
+ Link,
23
+ Venue,
16
24
  // Availability,
17
25
  TargetAudience,
18
26
  Vendor,
@@ -22,7 +30,9 @@ import {
22
30
  Sponsor,
23
31
  Organization,
24
32
  Booking,
25
- VolunteerService, Prisma, ServiceRange,
33
+ VolunteerService,
34
+ Prisma,
35
+ ServiceRange,
26
36
  StripeAccount,
27
37
  VisibilityPreference,
28
38
  BashEventType,
@@ -39,25 +49,37 @@ import {
39
49
  UserSubscription,
40
50
  SocialMediaProfile,
41
51
  SocialMediaPlatform,
52
+ ServiceSubscriptionCounts,
53
+ UserRating,
42
54
  } from "@prisma/client";
43
55
  import { SERVICE_LINK_DATA_TO_INCLUDE, UnionFromArray } from "./definitions";
44
56
 
45
57
  //------------------------------------------------------user subscriptions------------------------------------------------------
46
- export const PRIVATE_USER_SUBSCRIPTION_DATA_TO_SELECT = {
58
+ export const PUBLIC_USER_SUBSCRIPTION_DATA_TO_SELECT = {
47
59
  type: true,
48
60
  status: true,
49
- serviceSubscriptionTier: true,
50
61
  ownerId: true,
51
- stripeAccountId: true
62
+ subscriptionCount: true,
63
+ listedCount: true,
52
64
  } satisfies Prisma.UserSubscriptionSelect;
53
65
 
54
- export type UserSubscriptionExt = {
55
- stripeAccount: StripeAccountExt;
56
- } & UserSubscription;
66
+ export const PRIVATE_USER_SUBSCRIPTION_DATA_TO_SELECT = {
67
+ ...PUBLIC_USER_SUBSCRIPTION_DATA_TO_SELECT,
68
+ stripeAccountId: true,
69
+ stripeCheckoutSessionId: true,
70
+ } satisfies Prisma.UserSubscriptionSelect;
57
71
 
58
72
  export const USER_SUBSCRIPTION_DATA_TO_INCLUDE = {
59
- stripeAccount: true
73
+ stripeAccount: true,
74
+ subscriptionCount: true,
75
+ listedCount: true,
60
76
  } satisfies Prisma.UserSubscriptionInclude;
77
+
78
+ export type UserSubscriptionExt = {
79
+ stripeAccount?: StripeAccountExt;
80
+ subscriptionCount?: ServiceSubscriptionCounts;
81
+ listedCount?: ServiceSubscriptionCounts;
82
+ } & UserSubscription;
61
83
  //-------------------------------------------------------------------------------------------------------------------------------
62
84
 
63
85
  export const FRONT_END_USER_DATA_TO_SELECT = {
@@ -69,6 +91,17 @@ export const FRONT_END_USER_DATA_TO_SELECT = {
69
91
  uploadedImage: true,
70
92
  isSuperUser: true,
71
93
  socialMediaProfiles: true,
94
+ city: true,
95
+ state: true,
96
+ createdOn: true,
97
+ dob: true,
98
+ gender: true,
99
+ sex: true,
100
+ documentIDId: true,
101
+ // documentID: true,
102
+ reviews: true,
103
+ userRating: true,
104
+ contacts: true,
72
105
  } satisfies Prisma.UserSelect;
73
106
 
74
107
  export const PRIVATE_USER_ACCOUNT_TO_SELECT = {
@@ -80,8 +113,8 @@ export const PRIVATE_USER_ACCOUNT_TO_SELECT = {
80
113
  country: true,
81
114
  phone: true,
82
115
  userSubscription: {
83
- select: PRIVATE_USER_SUBSCRIPTION_DATA_TO_SELECT
84
- }
116
+ select: PRIVATE_USER_SUBSCRIPTION_DATA_TO_SELECT,
117
+ },
85
118
  } satisfies Prisma.UserSelect;
86
119
 
87
120
  export interface BashEventExt extends BashEvent {
@@ -91,48 +124,124 @@ export interface BashEventExt extends BashEvent {
91
124
  creator?: PublicUser;
92
125
  ticketTiers: TicketTierExt[];
93
126
  media: Media[];
94
- eventTasks: EventTask[];
127
+ eventTasks?: EventTask[];
95
128
  tickets?: Ticket[]; // Only include tickets that the user has purchased and not all tickets (could be thousands + privacy)
96
129
  // Do not include in fetch. Could be hundreds of these
97
- invitations: InvitationExt[];
130
+ invitations?: InvitationExt[];
98
131
  coordinates?: Coordinates[];
99
132
  }
100
133
 
101
134
  export const TICKET_TIER_DATA_TO_INCLUDE = {
135
+ tickets: {
136
+ include: {
137
+ owner: {
138
+ select: {
139
+ id: true,
140
+ email: true,
141
+ givenName: true,
142
+ familyName: true,
143
+ },
144
+ },
145
+ forUser: {
146
+ select: {
147
+ id: true,
148
+ email: true,
149
+ givenName: true,
150
+ familyName: true,
151
+ },
152
+ },
153
+ },
154
+ },
102
155
  promoCodes: true,
103
156
  } satisfies Prisma.TicketTierInclude;
104
157
 
158
+
105
159
  export const BASH_EVENT_DATA_TO_INCLUDE = {
106
160
  creator: {
107
- select: FRONT_END_USER_DATA_TO_SELECT
161
+ select: FRONT_END_USER_DATA_TO_SELECT,
108
162
  },
109
163
  targetAudience: true,
110
164
  amountOfGuests: true,
111
165
  recurrence: true,
112
166
  ticketTiers: {
113
- include: TICKET_TIER_DATA_TO_INCLUDE
167
+ include: {
168
+ promoCodes: true,
169
+ bashEvent: true,
170
+ tickets: {
171
+ include: {
172
+ owner: {
173
+ select: {
174
+ id: true,
175
+ email: true,
176
+ givenName: true,
177
+ familyName: true,
178
+ image: true,
179
+ createdOn: true,
180
+ isSuperUser: true,
181
+ uploadedImage: true,
182
+ dob: true,
183
+ gender: true,
184
+ sex: true,
185
+ city: true,
186
+ state: true,
187
+ documentIDId: true,
188
+ reviews: true,
189
+ userRating: true,
190
+ socialMediaProfiles: true,
191
+ contacts: true,
192
+ },
193
+ },
194
+ forUser: {
195
+ select: {
196
+ id: true,
197
+ email: true,
198
+ givenName: true,
199
+ familyName: true,
200
+ image: true,
201
+ createdOn: true,
202
+ isSuperUser: true,
203
+ uploadedImage: true,
204
+ dob: true,
205
+ gender: true,
206
+ sex: true,
207
+ city: true,
208
+ state: true,
209
+ documentIDId: true,
210
+ reviews: true,
211
+ userRating: true,
212
+ socialMediaProfiles: true,
213
+ contacts: true,
214
+ },
215
+ },
216
+ },
217
+ },
218
+ },
114
219
  },
115
- eventTasks: true,
116
220
  media: true,
221
+ eventTasks: true,
117
222
  } satisfies Prisma.BashEventInclude;
118
223
 
224
+
225
+
226
+
227
+
119
228
  export const BASH_EVENT_DATA_TO_CLONE = [
120
- 'ticketTiers',
121
- 'media',
122
- 'recurrence',
123
- 'invitations',
229
+ "ticketTiers",
230
+ "media",
231
+ "recurrence",
232
+ "invitations",
124
233
  ] as const;
125
234
 
126
235
  type RemoveCommonProperties<T, U> = keyof (Omit<T, keyof U> & Omit<U, keyof T>);
127
- type BashEventExtMinusDataToCloneType = Omit<BashEventExt, UnionFromArray<typeof BASH_EVENT_DATA_TO_CLONE>>;
236
+ type BashEventExtMinusDataToCloneType = Omit<
237
+ BashEventExt,
238
+ UnionFromArray<typeof BASH_EVENT_DATA_TO_CLONE>
239
+ >;
128
240
 
129
- export const BASH_EVENT_DATA_TO_REMOVE: RemoveCommonProperties<BashEvent, BashEventExtMinusDataToCloneType>[] = [
130
- 'creator',
131
- 'eventTasks',
132
- 'tickets',
133
- 'targetAudience',
134
- 'amountOfGuests',
135
- ];
241
+ export const BASH_EVENT_DATA_TO_REMOVE: RemoveCommonProperties<
242
+ BashEvent,
243
+ BashEventExtMinusDataToCloneType
244
+ >[] = ["creator", "eventTasks", "tickets", "targetAudience", "amountOfGuests"];
136
245
 
137
246
  //---------------Services------------------
138
247
  export interface ServiceExt extends Service {
@@ -193,7 +302,6 @@ export interface ServiceRatesAssociationExt extends ServiceRatesAssociation {
193
302
  media?: Media[];
194
303
  }
195
304
 
196
-
197
305
  export interface EventServiceExt extends EventService {
198
306
  service: ServiceExt;
199
307
  crowdSize?: AmountOfGuests;
@@ -246,7 +354,6 @@ export interface ServiceLinkExt extends ServiceLink {
246
354
  link: Link;
247
355
  }
248
356
 
249
-
250
357
  // Create the final object dynamically
251
358
  function createAllTrueObject<T extends string>(keys: T[]): Record<T, true> {
252
359
  return keys.reduce((acc, key) => {
@@ -266,51 +373,52 @@ const serviceKeysObject = {
266
373
  organization: true,
267
374
  } as const;
268
375
 
269
-
270
376
  export type ServiceSpecificName = keyof typeof serviceKeysObject;
271
377
 
272
378
  const serviceKeysArray = Object.keys(serviceKeysObject);
273
379
 
274
380
  export type ServiceSpecificType = ServiceExt[ServiceSpecificName];
275
381
 
276
- export const specificServiceMap : Record<ServiceTypes, ServiceSpecificName> = {
277
- "EventServices": "eventService",
278
- "EntertainmentServices": "entertainmentService",
279
- "Vendors": "vendor",
280
- "Exhibitors": "exhibitor",
281
- "Sponsors": "sponsor",
282
- "Venues": "venue",
283
- "Organizations": "organization"
382
+ export const specificServiceMap: Record<ServiceTypes, ServiceSpecificName> = {
383
+ EventServices: "eventService",
384
+ EntertainmentServices: "entertainmentService",
385
+ Vendors: "vendor",
386
+ Exhibitors: "exhibitor",
387
+ Sponsors: "sponsor",
388
+ Venues: "venue",
389
+ Organizations: "organization",
284
390
  } as const;
285
391
 
286
- export const serviceTypeToField = (serviceType : ServiceTypes) : ServiceSpecificName => {
392
+ export const serviceTypeToField = (
393
+ serviceType: ServiceTypes
394
+ ): ServiceSpecificName => {
287
395
  return specificServiceMap[serviceType];
288
- }
396
+ };
289
397
  export const SERVICE_PACKAGE_DATA_TO_INCLUDE = {
290
- serviceAddons: true
398
+ serviceAddons: true,
291
399
  } satisfies Prisma.ServicePackageInclude;
292
400
 
293
401
  export const SERVICE_DAILYRATES_DATA_TO_INCLUDE = {
294
- serviceRate: true
402
+ serviceRate: true,
295
403
  } satisfies Prisma.ServiceDailyRatesInclude;
296
404
 
297
405
  export const SERVICE_SPECIALRATES_DATA_TO_INCLUDE = {
298
- serviceRate: true
406
+ serviceRate: true,
299
407
  } satisfies Prisma.ServiceSpecialRatesInclude;
300
408
 
301
409
  export const SERVICE_RATES_ASSOCIATION_DATA_TO_INCLUDE = {
302
410
  serviceGeneralRates: true,
303
411
  serviceDailyRates: {
304
- include: SERVICE_DAILYRATES_DATA_TO_INCLUDE
412
+ include: SERVICE_DAILYRATES_DATA_TO_INCLUDE,
305
413
  },
306
414
  serviceSpecialRates: {
307
- include: SERVICE_SPECIALRATES_DATA_TO_INCLUDE
415
+ include: SERVICE_SPECIALRATES_DATA_TO_INCLUDE,
308
416
  },
309
417
  addons: true,
310
- packages: {
311
- include: SERVICE_PACKAGE_DATA_TO_INCLUDE
418
+ packages: {
419
+ include: SERVICE_PACKAGE_DATA_TO_INCLUDE,
312
420
  },
313
- media: true
421
+ media: true,
314
422
  } satisfies Prisma.ServiceRatesAssociationInclude;
315
423
 
316
424
  //------------Stripe Accounts--------------
@@ -318,17 +426,17 @@ export const PUBLIC_STRIPE_ACCOUNT_DATA_TO_SELECT = {
318
426
  logo: true,
319
427
  logoId: true,
320
428
  createdAt: true,
321
- updatedAt: true
429
+ updatedAt: true,
322
430
  } satisfies Prisma.StripeAccountSelect;
323
431
 
324
432
  export const STRIPE_ACCOUNT_DATA_TO_INCLUDE = {
325
433
  logo: true,
326
434
  owner: {
327
- select: FRONT_END_USER_DATA_TO_SELECT
435
+ select: FRONT_END_USER_DATA_TO_SELECT,
328
436
  },
329
437
  userSubscription: {
330
- select: PRIVATE_USER_SUBSCRIPTION_DATA_TO_SELECT
331
- }
438
+ select: PRIVATE_USER_SUBSCRIPTION_DATA_TO_SELECT,
439
+ },
332
440
  } satisfies Prisma.StripeAccountInclude;
333
441
 
334
442
  export interface StripeAccountExt extends StripeAccount {
@@ -337,10 +445,10 @@ export interface StripeAccountExt extends StripeAccount {
337
445
 
338
446
  export const SERVICE_DATA_TO_INCLUDE = {
339
447
  creator: {
340
- select: FRONT_END_USER_DATA_TO_SELECT
448
+ select: FRONT_END_USER_DATA_TO_SELECT,
341
449
  },
342
450
  owner: {
343
- select: FRONT_END_USER_DATA_TO_SELECT
451
+ select: FRONT_END_USER_DATA_TO_SELECT,
344
452
  },
345
453
  targetAudience: true,
346
454
  // amountOfGuests: true,
@@ -352,43 +460,49 @@ export const SERVICE_DATA_TO_INCLUDE = {
352
460
  media: true,
353
461
  stripeAccount: {
354
462
  // ...STRIPE_ACCOUNT_DATA_TO_INCLUDE,
355
- select: PUBLIC_STRIPE_ACCOUNT_DATA_TO_SELECT
463
+ select: PUBLIC_STRIPE_ACCOUNT_DATA_TO_SELECT,
356
464
  },
357
465
  // availableDateTimes: true,
358
466
  serviceLinks: {
359
- include: SERVICE_LINK_DATA_TO_INCLUDE
467
+ include: SERVICE_LINK_DATA_TO_INCLUDE,
360
468
  },
361
469
  serviceRatesAssociation: {
362
- include: SERVICE_RATES_ASSOCIATION_DATA_TO_INCLUDE
363
- }
470
+ include: SERVICE_RATES_ASSOCIATION_DATA_TO_INCLUDE,
471
+ },
364
472
  } satisfies Prisma.ServiceInclude;
365
473
 
366
474
  //full service data to include, includes specific service data
367
475
  export const SERVICE_FULL_DATA_TO_INCLUDE = {
368
476
  ...SERVICE_DATA_TO_INCLUDE,
369
- ...createAllTrueObject(serviceKeysArray)
477
+ ...createAllTrueObject(serviceKeysArray),
370
478
  } satisfies Prisma.ServiceInclude;
371
479
 
372
480
  export const SERVICE_FULL_DATA_TO_CLONE = [
373
- 'media',
374
- 'targetAudience',
375
- 'serviceLinks',
481
+ "media",
482
+ "targetAudience",
483
+ "serviceLinks",
376
484
  // ...Object.values(specificServiceMap)
377
485
  ] as const;
378
486
 
379
- type ServiceExtMinusDataToCloneType = Omit<ServiceExt, UnionFromArray<typeof SERVICE_FULL_DATA_TO_CLONE>>;
380
- export const SERVICE_FULL_DATA_TO_REMOVE: RemoveCommonProperties<Service, ServiceExtMinusDataToCloneType>[] = [
381
- 'creator',
382
- 'owner',
383
- 'bookings',
384
- ] as const;
385
-
386
- export const VENUE_DATA_TO_CLONE = [
387
-
388
- ] as const;
389
-
390
- type VenueExtMinusDataToCloneType = Omit<Venue, UnionFromArray<typeof VENUE_DATA_TO_CLONE>>;
391
- export const VENUE_DATA_TO_REMOVE: RemoveCommonProperties<Venue, VenueExtMinusDataToCloneType>[] = [
487
+ type ServiceExtMinusDataToCloneType = Omit<
488
+ ServiceExt,
489
+ UnionFromArray<typeof SERVICE_FULL_DATA_TO_CLONE>
490
+ >;
491
+ export const SERVICE_FULL_DATA_TO_REMOVE: RemoveCommonProperties<
492
+ Service,
493
+ ServiceExtMinusDataToCloneType
494
+ >[] = ["creator", "owner", "bookings"] as const;
495
+
496
+ export const VENUE_DATA_TO_CLONE = [] as const;
497
+
498
+ type VenueExtMinusDataToCloneType = Omit<
499
+ Venue,
500
+ UnionFromArray<typeof VENUE_DATA_TO_CLONE>
501
+ >;
502
+ export const VENUE_DATA_TO_REMOVE: RemoveCommonProperties<
503
+ Venue,
504
+ VenueExtMinusDataToCloneType
505
+ >[] = [
392
506
  // 'bashEvents',
393
507
  ] as const;
394
508
  //-----------------------------------------
@@ -419,7 +533,6 @@ export interface TargetAudienceExt extends TargetAudience {
419
533
  customAttributes?: { [key: string]: any };
420
534
  }
421
535
 
422
-
423
536
  export const BASH_NOTIFICATION_DATA_TO_INCLUDE = {
424
537
  bashEvent: {
425
538
  select: {
@@ -440,14 +553,13 @@ export interface EventTaskExt extends EventTask {
440
553
 
441
554
  export const EVENT_TASK_DATA_TO_INCLUDE = {
442
555
  creator: {
443
- select: FRONT_END_USER_DATA_TO_SELECT
556
+ select: FRONT_END_USER_DATA_TO_SELECT,
444
557
  },
445
558
  assignedTo: {
446
- select: FRONT_END_USER_DATA_TO_SELECT
447
- }
559
+ select: FRONT_END_USER_DATA_TO_SELECT,
560
+ },
448
561
  } satisfies Prisma.EventTaskInclude;
449
562
 
450
-
451
563
  export interface InvitationExt extends Invitation {
452
564
  creator: PublicUser;
453
565
  sentTo: PublicUser;
@@ -457,10 +569,10 @@ export interface InvitationExt extends Invitation {
457
569
 
458
570
  export const INVITATION_DATA_TO_INCLUDE = {
459
571
  creator: {
460
- select: FRONT_END_USER_DATA_TO_SELECT
572
+ select: FRONT_END_USER_DATA_TO_SELECT,
461
573
  },
462
574
  sentTo: {
463
- select: FRONT_END_USER_DATA_TO_SELECT
575
+ select: FRONT_END_USER_DATA_TO_SELECT,
464
576
  },
465
577
  tickets: true,
466
578
  } satisfies Prisma.InvitationInclude;
@@ -482,16 +594,16 @@ export interface AssociatedServiceExt extends AssociatedService {
482
594
 
483
595
  export const ASSOCIATED_BASH_DATA_TO_INCLUDE = {
484
596
  bashEvent: {
485
- include: BASH_EVENT_DATA_TO_INCLUDE
597
+ include: BASH_EVENT_DATA_TO_INCLUDE,
486
598
  },
487
599
  invitation: {
488
- include: INVITATION_DATA_TO_INCLUDE
489
- }
600
+ include: INVITATION_DATA_TO_INCLUDE,
601
+ },
490
602
  } satisfies Prisma.AssociatedBashInclude;
491
603
 
492
604
  export const ASSOCIATED_SERVICE_DATA_TO_INCLUDE = {
493
605
  service: {
494
- include: SERVICE_DATA_TO_INCLUDE
606
+ include: SERVICE_DATA_TO_INCLUDE,
495
607
  },
496
608
  // invitation: {
497
609
  // include: INVITATION_DATA_TO_INCLUDE
@@ -512,27 +624,27 @@ export interface TicketExt extends Ticket {
512
624
 
513
625
  export interface CheckoutExt extends Checkout {
514
626
  owner: PublicUser;
515
- tickets: Ticket[]
627
+ tickets: Ticket[];
516
628
  }
517
629
 
518
630
  export const CHECKOUT_DATA_TO_INCLUDE = {
519
631
  owner: {
520
- select: FRONT_END_USER_DATA_TO_SELECT
632
+ select: FRONT_END_USER_DATA_TO_SELECT,
521
633
  },
522
634
  tickets: {
523
635
  select: {
524
- ownerId: true
525
- }
526
- }
636
+ ownerId: true,
637
+ },
638
+ },
527
639
  } satisfies Prisma.CheckoutInclude;
528
640
 
529
641
  export interface ReviewExt extends Review {
530
- comments: BashComment[];
642
+ comments?: BashComment[];
531
643
  }
532
644
 
533
645
  export const CONTACT_DATA_TO_INCLUDE = {
534
646
  contactOwner: {
535
- select: FRONT_END_USER_DATA_TO_SELECT
647
+ select: FRONT_END_USER_DATA_TO_SELECT,
536
648
  },
537
649
  } satisfies Prisma.ContactInclude;
538
650
 
@@ -552,18 +664,35 @@ export interface UserExt extends User {
552
664
  createdServices?: ServiceExt[];
553
665
  password?: string;
554
666
  otp?: string;
555
- }
667
+ userRating?: UserRating[];}
556
668
 
557
669
  export const USER_DATA_SELECT_REVIEWS_COMMENTS = {
558
670
  reviews: {
559
- include: {
560
- comments: true
561
- }
562
- }
671
+ select: {
672
+ id: true,
673
+ rating: true,
674
+ creatorId: true, // Fetches the creatorId from Review
675
+ bashEventId: true, // Fetches the bashEventId
676
+ createdAt: true,
677
+ updatedAt: true,
678
+ comments: { // This matches the relation field in the schema
679
+ select: {
680
+ id: true,
681
+ content: true,
682
+ },
683
+ },
684
+ },
685
+ },
563
686
  } satisfies Prisma.UserSelect;
564
687
 
565
688
 
566
- export type PublicUser = Pick<UserExt, keyof typeof FRONT_END_USER_DATA_TO_SELECT>
567
- & Partial<Pick<UserExt, keyof typeof USER_DATA_SELECT_REVIEWS_COMMENTS>>;
689
+ export type PublicUser = Pick<
690
+ UserExt,
691
+ keyof typeof FRONT_END_USER_DATA_TO_SELECT
692
+ > &
693
+ Partial<Pick<UserExt, keyof typeof USER_DATA_SELECT_REVIEWS_COMMENTS>>;
568
694
 
569
- export type PublicStripeAccount = Pick<StripeAccountExt, keyof typeof PUBLIC_STRIPE_ACCOUNT_DATA_TO_SELECT>;
695
+ export type PublicStripeAccount = Pick<
696
+ StripeAccountExt,
697
+ keyof typeof PUBLIC_STRIPE_ACCOUNT_DATA_TO_SELECT
698
+ >;
package/src/index.ts CHANGED
@@ -11,6 +11,9 @@ export * from "./utils/sortUtils";
11
11
  export * from "./utils/apiUtils";
12
12
  export * from "./utils/urlUtils";
13
13
  export * from "./utils/promoCodesUtils";
14
+ export * from "./utils/userPromoCodeUtils";
15
+ export * from "./utils/userSubscriptionUtils";
14
16
  export * from "./utils/service/serviceUtils";
15
17
  export * from "./utils/service/venueUtils";
16
18
  export * from "./utils/stripeAccountUtils";
19
+ export * from "./utils/entityUtils";
@@ -0,0 +1,4 @@
1
+ export const ENTITIES = {
2
+ Service: "Service",
3
+ BashEvent: "BashEvent",
4
+ } as const;