@zssz-soft/firebase-functions-shared 1.3.0 → 1.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/lib/config/app.config.d.ts +13 -0
  2. package/lib/config/app.config.d.ts.map +1 -1
  3. package/lib/config/app.config.js.map +1 -1
  4. package/lib/index.d.ts +1 -0
  5. package/lib/index.d.ts.map +1 -1
  6. package/lib/index.js +1 -0
  7. package/lib/index.js.map +1 -1
  8. package/lib/modules/booking/booking-email.templates.d.ts +52 -0
  9. package/lib/modules/booking/booking-email.templates.d.ts.map +1 -1
  10. package/lib/modules/booking/booking-email.templates.js +768 -0
  11. package/lib/modules/booking/booking-email.templates.js.map +1 -1
  12. package/lib/modules/booking/booking-email.triggers.d.ts.map +1 -1
  13. package/lib/modules/booking/booking-email.triggers.js.map +1 -1
  14. package/lib/modules/events/booking-event.handlers.d.ts +44 -0
  15. package/lib/modules/events/booking-event.handlers.d.ts.map +1 -0
  16. package/lib/modules/events/booking-event.handlers.js +274 -0
  17. package/lib/modules/events/booking-event.handlers.js.map +1 -0
  18. package/lib/modules/events/booking-event.models.d.ts +109 -0
  19. package/lib/modules/events/booking-event.models.d.ts.map +1 -0
  20. package/lib/modules/events/booking-event.models.js +110 -0
  21. package/lib/modules/events/booking-event.models.js.map +1 -0
  22. package/lib/modules/events/booking-event.triggers.d.ts +46 -0
  23. package/lib/modules/events/booking-event.triggers.d.ts.map +1 -0
  24. package/lib/modules/events/booking-event.triggers.js +178 -0
  25. package/lib/modules/events/booking-event.triggers.js.map +1 -0
  26. package/lib/modules/events/event.models.d.ts +53 -0
  27. package/lib/modules/events/event.models.d.ts.map +1 -0
  28. package/lib/modules/events/event.models.js +18 -0
  29. package/lib/modules/events/event.models.js.map +1 -0
  30. package/lib/modules/events/index.d.ts +29 -0
  31. package/lib/modules/events/index.d.ts.map +1 -0
  32. package/lib/modules/events/index.js +49 -0
  33. package/lib/modules/events/index.js.map +1 -0
  34. package/package.json +1 -1
@@ -57,6 +57,19 @@ export interface AppConfig {
57
57
  * When true, only requests with valid App Check tokens will be accepted
58
58
  */
59
59
  enforceAppCheck?: boolean;
60
+ /**
61
+ * Eventarc channel name for event-driven architecture
62
+ * Default: 'firebase'
63
+ * Used by booking event triggers and handlers
64
+ */
65
+ eventarcChannel?: string;
66
+ /**
67
+ * Eventarc handler region
68
+ * The region where the Eventarc channel is located.
69
+ * Handlers must be deployed to the same region as the channel.
70
+ * Default: 'us-central1' (Firebase's default Eventarc channel location)
71
+ */
72
+ eventarcHandlerRegion?: string;
60
73
  }
61
74
  /**
62
75
  * Email Configuration
@@ -1 +1 @@
1
- {"version":3,"file":"app.config.d.ts","sourceRoot":"","sources":["../../src/config/app.config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,SAAS;IACxB;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,oBAAoB,EAAE,MAAM,CAAC;IAE7B;;;OAGG;IACH,mBAAmB,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,kBAAkB,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,iBAAiB,EAAE,MAAM,CAAC;IAE1B;;;OAGG;IACH,eAAe,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,MAAM,EAAE,OAAO,CAAC;IAEhB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;CACnB;AAID;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAExD;AAED;;;GAGG;AACH,wBAAgB,SAAS,IAAI,SAAS,CAKrC;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,WAAW,CA2B5C"}
1
+ {"version":3,"file":"app.config.d.ts","sourceRoot":"","sources":["../../src/config/app.config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,SAAS;IACxB;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,oBAAoB,EAAE,MAAM,CAAC;IAE7B;;;OAGG;IACH,mBAAmB,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,kBAAkB,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,iBAAiB,EAAE,MAAM,CAAC;IAE1B;;;OAGG;IACH,eAAe,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;;;;OAKG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,MAAM,EAAE,OAAO,CAAC;IAEhB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;CACnB;AAID;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAExD;AAED;;;GAGG;AACH,wBAAgB,SAAS,IAAI,SAAS,CAKrC;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,WAAW,CA2B5C"}
@@ -1 +1 @@
1
- {"version":3,"file":"app.config.js","sourceRoot":"","sources":["../../src/config/app.config.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAoHH,4CAEC;AAMD,8BAKC;AAKD,wCA2BC;AAnDD,IAAI,aAAa,GAAqB,IAAI,CAAC;AAE3C;;;GAGG;AACH,SAAgB,gBAAgB,CAAC,MAAiB;IAChD,aAAa,GAAG,MAAM,CAAC;AACzB,CAAC;AAED;;;GAGG;AACH,SAAgB,SAAS;IACvB,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;IAC/F,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc;IAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;IACpC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;IACpC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;IAEpC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CACb,oGAAoG,CACrG,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,KAAK,EAAE,EAAE,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC;IAE7F,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,MAAM,CAAC,OAAO,CAAC;IAC/D,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,IAAI,CAAC;IAEzF,OAAO;QACL,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,QAAQ;QACR,SAAS;KACV,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"app.config.js","sourceRoot":"","sources":["../../src/config/app.config.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAmIH,4CAEC;AAMD,8BAKC;AAKD,wCA2BC;AAnDD,IAAI,aAAa,GAAqB,IAAI,CAAC;AAE3C;;;GAGG;AACH,SAAgB,gBAAgB,CAAC,MAAiB;IAChD,aAAa,GAAG,MAAM,CAAC;AACzB,CAAC;AAED;;;GAGG;AACH,SAAgB,SAAS;IACvB,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;IAC/F,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc;IAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;IACpC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;IACpC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;IAEpC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CACb,oGAAoG,CACrG,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,KAAK,EAAE,EAAE,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC;IAE7F,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,MAAM,CAAC,OAAO,CAAC;IAC/D,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,IAAI,CAAC;IAEzF,OAAO;QACL,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,QAAQ;QACR,SAAS;KACV,CAAC;AACJ,CAAC"}
package/lib/index.d.ts CHANGED
@@ -12,6 +12,7 @@ export * from './modules/user';
12
12
  export * from './modules/security';
13
13
  export * from './modules/e2e';
14
14
  export * from './modules/booking';
15
+ export * from './modules/events';
15
16
  export * from './modules/error-reporting';
16
17
  export * from './modules/health';
17
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,UAAU,CAAC;AACzB,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,UAAU,CAAC;AACzB,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC"}
package/lib/index.js CHANGED
@@ -28,6 +28,7 @@ __exportStar(require("./modules/user"), exports);
28
28
  __exportStar(require("./modules/security"), exports);
29
29
  __exportStar(require("./modules/e2e"), exports);
30
30
  __exportStar(require("./modules/booking"), exports);
31
+ __exportStar(require("./modules/events"), exports);
31
32
  __exportStar(require("./modules/error-reporting"), exports);
32
33
  __exportStar(require("./modules/health"), exports);
33
34
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;AAEH,2CAAyB;AACzB,sDAAoC;AACpC,kDAAgC;AAChC,oDAAkC;AAClC,iDAA+B;AAC/B,qDAAmC;AACnC,gDAA8B;AAC9B,oDAAkC;AAClC,4DAA0C;AAC1C,mDAAiC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;AAEH,2CAAyB;AACzB,sDAAoC;AACpC,kDAAgC;AAChC,oDAAkC;AAClC,iDAA+B;AAC/B,qDAAmC;AACnC,gDAA8B;AAC9B,oDAAkC;AAClC,mDAAiC;AACjC,4DAA0C;AAC1C,mDAAiC"}
@@ -5,6 +5,22 @@
5
5
  * Generates both HTML and plain text versions of emails.
6
6
  */
7
7
  import { BookingEmailData } from './booking-email.models';
8
+ /**
9
+ * Context for event-driven emails (rejection reason, refund, etc.)
10
+ */
11
+ export interface BookingEmailContext {
12
+ reason?: string;
13
+ refundAmount?: number;
14
+ isVip?: boolean;
15
+ }
16
+ /**
17
+ * Email template result type
18
+ */
19
+ export interface EmailTemplateResult {
20
+ subject: string;
21
+ html: string;
22
+ text: string;
23
+ }
8
24
  /**
9
25
  * Generate guest confirmation email
10
26
  * Sent to the guest after successful booking submission
@@ -24,4 +40,40 @@ export declare function generateAdminNotificationEmail(booking: BookingEmailData
24
40
  html: string;
25
41
  text: string;
26
42
  };
43
+ /**
44
+ * Generate booking approved email
45
+ * Sent to guest when admin approves their booking (pending_approval → confirmed)
46
+ */
47
+ export declare function generateBookingApprovedEmail(booking: BookingEmailData, _context?: BookingEmailContext): EmailTemplateResult;
48
+ /**
49
+ * Generate booking ready email
50
+ * Sent to guest when booking is marked ready for check-in (confirmed → ready)
51
+ */
52
+ export declare function generateBookingReadyEmail(booking: BookingEmailData, _context?: BookingEmailContext): EmailTemplateResult;
53
+ /**
54
+ * Generate booking rejected email
55
+ * Sent to guest when admin rejects their booking (pending_approval → cancelled)
56
+ */
57
+ export declare function generateBookingRejectedEmail(booking: BookingEmailData, context?: BookingEmailContext): EmailTemplateResult;
58
+ /**
59
+ * Generate booking completed email
60
+ * Sent to guest after checkout (ready → completed)
61
+ */
62
+ export declare function generateBookingCompletedEmail(booking: BookingEmailData, _context?: BookingEmailContext): EmailTemplateResult;
63
+ /**
64
+ * Generate booking cancelled email
65
+ * Sent when a booking is cancelled (various transitions → cancelled)
66
+ */
67
+ export declare function generateBookingCancelledEmail(booking: BookingEmailData, context?: BookingEmailContext): EmailTemplateResult;
68
+ /**
69
+ * Generate VIP confirmation email
70
+ * Sent to VIP guest when booking is instantly confirmed (express workflow)
71
+ */
72
+ export declare function generateVipConfirmationEmail(booking: BookingEmailData, _context?: BookingEmailContext): EmailTemplateResult;
73
+ /**
74
+ * Generate VIP staff notification email
75
+ * Sent to staff when a VIP booking is instantly confirmed
76
+ * Always in Hungarian
77
+ */
78
+ export declare function generateVipStaffNotificationEmail(booking: BookingEmailData, _context?: BookingEmailContext): EmailTemplateResult;
27
79
  //# sourceMappingURL=booking-email.templates.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"booking-email.templates.d.ts","sourceRoot":"","sources":["../../../src/modules/booking/booking-email.templates.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AA2L1D;;;GAGG;AACH,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,gBAAgB,GAAG;IACzE,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd,CAmHA;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,gBAAgB,GAAG;IACzE,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd,CAkJA"}
1
+ {"version":3,"file":"booking-email.templates.d.ts","sourceRoot":"","sources":["../../../src/modules/booking/booking-email.templates.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAI1D;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AA0QD;;;GAGG;AACH,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,gBAAgB,GAAG;IACzE,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd,CAmHA;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,gBAAgB,GAAG;IACzE,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd,CAkJA;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,gBAAgB,EACzB,QAAQ,CAAC,EAAE,mBAAmB,GAC7B,mBAAmB,CAsHrB;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,gBAAgB,EACzB,QAAQ,CAAC,EAAE,mBAAmB,GAC7B,mBAAmB,CAmFrB;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,gBAAgB,EACzB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,mBAAmB,CA4FrB;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,gBAAgB,EACzB,QAAQ,CAAC,EAAE,mBAAmB,GAC7B,mBAAmB,CA4DrB;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,gBAAgB,EACzB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,mBAAmB,CAqGrB;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,gBAAgB,EACzB,QAAQ,CAAC,EAAE,mBAAmB,GAC7B,mBAAmB,CAmHrB;AAED;;;;GAIG;AACH,wBAAgB,iCAAiC,CAC/C,OAAO,EAAE,gBAAgB,EACzB,QAAQ,CAAC,EAAE,mBAAmB,GAC7B,mBAAmB,CA8HrB"}