@revolugo/common 7.11.1 → 7.11.2-alpha.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@revolugo/common",
3
- "version": "7.11.1",
3
+ "version": "7.11.2-alpha.0",
4
4
  "private": false,
5
5
  "description": "Revolugo common",
6
6
  "author": "Revolugo",
@@ -15,6 +15,7 @@
15
15
  "./constants": "./src/constants/index.ts",
16
16
  "./currencies": "./src/currencies/index.ts",
17
17
  "./http": "./src/http/index.ts",
18
+ "./i18n": "./src/i18n/index.ts",
18
19
  "./icons": "./src/icons/index.ts",
19
20
  "./map": "./src/map/index.ts",
20
21
  "./models": "./src/models/index.ts",
@@ -5,6 +5,8 @@ export * from './environment.ts'
5
5
  export * from './hotel-offers.ts'
6
6
  export * from './hotel-room-offer.ts'
7
7
  export * from './hotel.ts'
8
+ export * from './insurance.ts'
9
+ export * from './legal.ts'
8
10
  export * from './locales.ts'
9
11
  export * from './measurement.ts'
10
12
  export * from './poller.ts'
@@ -0,0 +1,2 @@
1
+ export const MEETCH_INSURANCE_TYPE_NAME = 'Meetch Insurance'
2
+ export const MEETCH_INSURANCE_TYPE_SLUG = 'meetch-insurance'
@@ -0,0 +1,2 @@
1
+ export const CGV_URL =
2
+ 'https://revolugo.s3.amazonaws.com/legal/2026_05_06_CGV_indiv_Revolugo_EN_FR.docx.pdf'
@@ -192,6 +192,12 @@ export class MoneyCalculator {
192
192
  return this
193
193
  }
194
194
 
195
+ public removeMarkup(percentage: number): this {
196
+ this.amount *= 1 - percentage
197
+
198
+ return this
199
+ }
200
+
195
201
  public round(): this {
196
202
  this.amount = Math.round(this.amount)
197
203
 
@@ -0,0 +1,2 @@
1
+ export * from './nuxt-i18n-detect-browser-language.ts'
2
+ export * from './nuxt-i18n-locales.ts'
@@ -0,0 +1,6 @@
1
+ /** Browser language detection for public apps (`strategy` must not be `no_prefix`). */
2
+ export const nuxtI18nDetectBrowserLanguage = {
3
+ cookieKey: 'lang',
4
+ redirectOn: 'no prefix' as const,
5
+ useCookie: true,
6
+ }
@@ -0,0 +1,70 @@
1
+ import { LANG_TO_LOCALE, LOCALES, Lang } from '../constants/locales.ts'
2
+
3
+ /** Matches `@nuxtjs/i18n` `LocaleObject<string>` (index signature required for Nuxt config assignability). */
4
+ export interface NuxtI18nLocaleConfig {
5
+ [key: string]: unknown
6
+ code: string
7
+ files?: string[]
8
+ language: string
9
+ name: string
10
+ }
11
+
12
+ /** Options for {@link nuxtI18nLocales}. */
13
+ export interface NuxtI18nLocalesOptions {
14
+ /** App-specific messages in `i18n/locales/{code}.json`. */
15
+ appLocaleFiles?: boolean
16
+ languages?: Lang[]
17
+ /**
18
+ * Also register BCP47 locale codes (`en-US`, `fr-FR`, …) as route prefixes,
19
+ * before each lang code (`en`, `fr`, …), for legacy URLs.
20
+ */
21
+ regionalLocales?: boolean
22
+ }
23
+
24
+ export function nuxtI18nLocales(
25
+ options: NuxtI18nLocalesOptions = {},
26
+ ): NuxtI18nLocaleConfig[] {
27
+ const {
28
+ appLocaleFiles = false,
29
+ languages = Object.values(Lang),
30
+ regionalLocales = false,
31
+ } = options
32
+
33
+ const langLocales = languages.map(lang => {
34
+ const meta = Object.values(LOCALES).find(entry => entry.locale === lang)
35
+ if (!meta) {
36
+ throw new Error(`No locale metadata for language "${lang}"`)
37
+ }
38
+
39
+ const files: string[] = []
40
+ if (appLocaleFiles) {
41
+ files.push(`${lang}.json`)
42
+ }
43
+
44
+ return {
45
+ code: lang as string,
46
+ ...(files.length > 0 ? { files } : {}),
47
+ language: LANG_TO_LOCALE[lang] as string,
48
+ name: meta.name,
49
+ }
50
+ })
51
+
52
+ if (!regionalLocales) {
53
+ return langLocales
54
+ }
55
+
56
+ return langLocales.flatMap(langLocale => {
57
+ const lang = langLocale.code as Lang
58
+ const regionalCode = LANG_TO_LOCALE[lang] as string
59
+
60
+ return [
61
+ {
62
+ code: regionalCode,
63
+ ...(langLocale.files ? { files: [...langLocale.files] } : {}),
64
+ language: regionalCode,
65
+ name: LOCALES[LANG_TO_LOCALE[lang]].name,
66
+ },
67
+ langLocale,
68
+ ]
69
+ })
70
+ }
@@ -149,11 +149,13 @@ export const ICONS_NAME = Object.freeze({
149
149
  policeCar: 'ph:police-car',
150
150
  praying: 'ph:hands-praying',
151
151
  questionMark: 'ph:question-mark',
152
+ receipt: 'ph:receipt',
152
153
  receiptFail: 'ph:receipt-x',
153
154
  refresh: 'ph:arrows-counter-clockwise',
154
155
  running: 'ph:person-simple-run',
155
156
  scissors: 'ph:scissors',
156
157
  shield: 'ph:shield',
158
+ shieldCheck: 'ph:shield-check',
157
159
  shirt: 'ph:shirt-folded',
158
160
  shoppingBag: 'ph:shopping-bag',
159
161
  shoppingCart: 'ph:shopping-cart',
@@ -1,4 +1,16 @@
1
1
  export interface Event {
2
+ /**
3
+ * Latitude of the event venue
4
+ * @type {number}
5
+ * @memberof EventApi
6
+ */
7
+ latitude?: number | null
8
+ /**
9
+ * Longitude of the event venue
10
+ * @type {number}
11
+ * @memberof EventApi
12
+ */
13
+ longitude?: number | null
2
14
  /**
3
15
  * Unique name of the event
4
16
  * @type {string}
@@ -2,6 +2,8 @@ export interface IEvent {
2
2
  id: string
3
3
  eventDateFrom?: Date
4
4
  eventDateTo?: Date
5
+ latitude?: number | null
6
+ longitude?: number | null
5
7
  name: string
6
8
  slug: string
7
9
  }
@@ -7,6 +7,7 @@ export interface IHotelContract {
7
7
  forcedTotalComissionsAmount: number
8
8
  forcedTotalPurchasedAmount: number
9
9
  forcedTotalVatComissionsAmount: number
10
+ hotelContractTaaps?: { taapId: string }[] | null
10
11
  hotelId: string
11
12
  hotelRoomStocks?: IHotelRoomStock[]
12
13
  name: string
@@ -19,5 +19,6 @@ export type * from './event.ts'
19
19
  export type * from './geo-coordinates.ts'
20
20
  export type * from './hotel-contract.ts'
21
21
  export type * from './hotel-room-stock.ts'
22
+ export type * from './insurance.ts'
22
23
  export type * from './money-object.ts'
23
24
  export type * from './paginated-queries.ts'
@@ -0,0 +1,9 @@
1
+ import type { CurrencyCode } from '../constants/index.ts'
2
+
3
+ export interface InsuranceSummary {
4
+ currency: CurrencyCode
5
+ meetchClaimUrl: string
6
+ meetchTermsUrl: string
7
+ price: number
8
+ taxIncludedPrice: number
9
+ }