@autobusal/providers 1.24.0 → 1.27.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,31 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.27.0
4
+
5
+ ### Added
6
+
7
+ - `LabelSettings.sms` (BulkGate: status, credentials, sender) and
8
+ `SettingsData.addons.sms` — the paid per-order confirmation. Both optional,
9
+ so an older payload cannot crash a checkout.
10
+ ## 1.26.0
11
+
12
+ ### Added
13
+
14
+ - `FoundData.arrival_offset` — whole days between boarding and arriving, for
15
+ the overnight marker on result cards. Optional: external-provider offers do
16
+ not report one, and a missing value must read as same-day rather than
17
+ invent a day.
18
+
19
+ ## 1.25.0
20
+
21
+ ### Added
22
+
23
+ - `LabelSettings.whatsapp.alert_template_name` / `alert_template_language` —
24
+ the separate approved template the route+date broadcast composer sends
25
+ through. Optional: a brand can confirm purchases over WhatsApp without ever
26
+ broadcasting, and Meta approves a template for a stated purpose, so service
27
+ alerts cannot reuse the confirmation one.
28
+
3
29
  ## 1.24.0
4
30
 
5
31
  **New `Setup/commerce.ts` — the booking funnel, pushed to the dataLayer.**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@autobusal/providers",
3
- "version": "1.24.0",
3
+ "version": "1.27.0",
4
4
  "author": "Ferjolt Ozuni",
5
5
  "type": "module",
6
6
  "main": "index.ts"
package/types/routes.ts CHANGED
@@ -146,6 +146,19 @@ export interface FoundData extends Omit<RouteData, 'locations' | 'id'> {
146
146
  // another timezone, and "leaves in 20 minutes" must not be wrong.
147
147
  departs_in?: number | null
148
148
 
149
+ /**
150
+ * Edited: Ferjolt Ozuni - Date: 2026-08-05
151
+ * Whole days between boarding and arriving - 0 for a trip that arrives the
152
+ * same day, 1 for one arriving the next morning. Counted server-side from
153
+ * the timetable's own midnight markers, never guessed from the two clock
154
+ * times: a coach leaving 23:00 and arriving 07:00 is indistinguishable
155
+ * from one running backwards unless the timetable says which.
156
+ *
157
+ * Optional because external-provider offers do not report one; the card
158
+ * must read a missing value as same-day rather than invent a day.
159
+ */
160
+ arrival_offset?: number
161
+
149
162
  // The operator's subscription priority, as obtapi already sends it.
150
163
  // Used only as a tiebreak in the "recommended" ordering - see
151
164
  // routes-order's Found/refine.ts. Absent on external-provider offers.
package/types/settings.ts CHANGED
@@ -40,6 +40,15 @@ export interface SettingsData {
40
40
  addons?: {
41
41
  whatsapp: { available: boolean, price: number }
42
42
  telegram: { available: boolean, price: number }
43
+
44
+ /**
45
+ * Edited: Ferjolt Ozuni - Date: 2026-08-05
46
+ * The paid per-order CONFIRMATION by SMS. Route alerts over SMS are
47
+ * free and reach every passenger who gave a phone number, so nothing
48
+ * gates them - this only answers whether a confirmation text may be
49
+ * bought. Optional so an older payload cannot crash the checkout.
50
+ */
51
+ sms?: { available: boolean, price: number }
43
52
  }
44
53
 
45
54
  // Edited: Ferjolt Ozuni - Date: 2026-07-31
@@ -217,9 +226,36 @@ export interface LabelSettings {
217
226
  access_token?: string
218
227
  template_name?: string
219
228
  template_language?: string
229
+
230
+ /**
231
+ * Edited: Ferjolt Ozuni - Date: 2026-08-05
232
+ * The separate approved template used by the route+date broadcast
233
+ * composer. Optional: a brand can confirm purchases without ever
234
+ * broadcasting, and Meta approves a template for a stated purpose, so
235
+ * service alerts cannot reuse the confirmation one.
236
+ */
237
+ alert_template_name?: string
238
+ alert_template_language?: string
220
239
  display_phone?: string
221
240
  }
222
241
 
242
+ /**
243
+ * Edited: Ferjolt Ozuni - Date: 2026-08-05
244
+ * BulkGate, for SMS. `status` is only ever 'disabled' or 'dedicated' -
245
+ * deliberately no 'main': the other channels let a whitelabel borrow the
246
+ * main brand's connection, and SMS costs money per message, so borrowing
247
+ * would mean one brand running up another's bill. `credit` is captured
248
+ * from a live check on save, not entered by hand.
249
+ */
250
+ sms?: {
251
+ status: 'disabled' | 'dedicated'
252
+ application_id?: string
253
+ application_token?: string
254
+ sender?: string
255
+ sender_value?: string
256
+ credit?: string
257
+ }
258
+
223
259
  // Edited: Ferjolt Ozuni - Date: 2026-07-29
224
260
  // Admin-managed footer social-share links (public preferences.social
225
261
  // above is populated from this) - distinct from `social` above, which