@autobusal/providers 1.18.0 → 1.20.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 +10 -0
- package/package.json +1 -1
- package/types/operators.ts +4 -0
- package/types/reviews.ts +43 -0
- package/types/routes.ts +11 -0
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,16 @@ adheres to [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and
|
|
|
7
7
|
> Note: 1.8.0 through 1.11.0 were published without changelog entries. The
|
|
8
8
|
> gap is left as-is rather than reconstructed after the fact.
|
|
9
9
|
|
|
10
|
+
## 1.20.0
|
|
11
|
+
|
|
12
|
+
`FoundData.departs_in` — minutes until departure, for same-day searches only,
|
|
13
|
+
null on every other date.
|
|
14
|
+
|
|
15
|
+
## 1.19.0
|
|
16
|
+
|
|
17
|
+
`types/reviews.ts` — `RatingData`, `ReviewData`, `ReviewSummaryData`. `rating`
|
|
18
|
+
added to `OperatorData` and `RouteData`, always optional and often absent.
|
|
19
|
+
|
|
10
20
|
## 1.18.0
|
|
11
21
|
|
|
12
22
|
`LabelSettings.reviews` — the per-brand review moderation setting
|
package/package.json
CHANGED
package/types/operators.ts
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import { RouteData } from './routes';
|
|
2
|
+
import { RatingData } from './reviews';
|
|
2
3
|
import { UserData } from './users';
|
|
3
4
|
|
|
4
5
|
export interface OperatorData {
|
|
6
|
+
// Edited: Ferjolt Ozuni - Date: 2026-08-03
|
|
7
|
+
// Absent until the operator has enough published reviews - see RatingData.
|
|
8
|
+
rating?: RatingData | null
|
|
5
9
|
id: number
|
|
6
10
|
company: string
|
|
7
11
|
nipt: string
|
package/types/reviews.ts
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Published reviews, as the public route and operator pages read them.
|
|
3
|
+
*
|
|
4
|
+
* Edited: Ferjolt Ozuni - Date: 2026-08-03
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* A score worth showing.
|
|
9
|
+
*
|
|
10
|
+
* ALWAYS optional and often absent: obtapi withholds it entirely until a
|
|
11
|
+
* route or operator has enough published reviews to say something honest
|
|
12
|
+
* (App\Traits\Rateable). "5.0 from one review" reads worse than no rating at
|
|
13
|
+
* all, so the absence is the feature - never fill it in with a zero.
|
|
14
|
+
*/
|
|
15
|
+
export interface RatingData {
|
|
16
|
+
average: number
|
|
17
|
+
count: number
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export interface ReviewSummaryData extends RatingData {
|
|
21
|
+
// 5 down to 1, each mapped to how many reviews gave that many stars. An
|
|
22
|
+
// average of 4.0 from straight fours and one from fives and ones describe
|
|
23
|
+
// different operators, and only the spread tells them apart.
|
|
24
|
+
histogram: Record<string, number>
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export interface ReviewReplyData {
|
|
28
|
+
body: string
|
|
29
|
+
published_at: string | null
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export interface ReviewData {
|
|
33
|
+
id: number
|
|
34
|
+
rating: number
|
|
35
|
+
// rating-only reviews are deliberately allowed, so this is often null
|
|
36
|
+
body: string | null
|
|
37
|
+
// what it was WRITTEN in - shown as-is, never machine translated
|
|
38
|
+
language: string
|
|
39
|
+
// first name plus an initial, built server-side
|
|
40
|
+
author: string
|
|
41
|
+
published: string | null
|
|
42
|
+
reply: ReviewReplyData | null
|
|
43
|
+
}
|
package/types/routes.ts
CHANGED
|
@@ -2,9 +2,13 @@ import { AgentData } from './agents';
|
|
|
2
2
|
import { BusData } from './buses';
|
|
3
3
|
import { LocationData, CountryData } from './locations';
|
|
4
4
|
import { OperatorData } from './operators';
|
|
5
|
+
import { RatingData } from './reviews';
|
|
5
6
|
import { OrderData } from './orders';
|
|
6
7
|
|
|
7
8
|
export interface RouteData {
|
|
9
|
+
// Edited: Ferjolt Ozuni - Date: 2026-08-03
|
|
10
|
+
// Absent until the route has enough published reviews - see RatingData.
|
|
11
|
+
rating?: RatingData | null
|
|
8
12
|
id: number
|
|
9
13
|
name: string
|
|
10
14
|
code: string
|
|
@@ -109,6 +113,13 @@ export interface FoundData extends Omit<RouteData, 'locations' | 'id'> {
|
|
|
109
113
|
// must read "missing" as unknown, never as direct.
|
|
110
114
|
stops_count?: number
|
|
111
115
|
// Edited: Ferjolt Ozuni - Date: 2026-08-01
|
|
116
|
+
// Edited: Ferjolt Ozuni - Date: 2026-08-03
|
|
117
|
+
// Minutes until this coach leaves, for TODAY's searches only - null on
|
|
118
|
+
// every other date. Computed server-side, because a countdown built from
|
|
119
|
+
// the visitor's own clock is wrong for anybody whose device is off or in
|
|
120
|
+
// another timezone, and "leaves in 20 minutes" must not be wrong.
|
|
121
|
+
departs_in?: number | null
|
|
122
|
+
|
|
112
123
|
// The operator's subscription priority, as obtapi already sends it.
|
|
113
124
|
// Used only as a tiebreak in the "recommended" ordering - see
|
|
114
125
|
// routes-order's Found/refine.ts. Absent on external-provider offers.
|