@la-main-verte/shared-types 1.0.57 → 1.0.58

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.
@@ -1,90 +1,90 @@
1
- import type { DeviceDataI } from './device.d'
2
- import type { MemberI as MemberDataI } from './member.d'
3
- import type { SelectionI } from './selection.d'
4
- import type { PlantI } from './plant.d'
5
-
6
- interface RequestHeaders {
7
- 'x-session-token': string
8
- 'x-native-app-version'?: string
9
- 'x-application-type'?: 'react-native' | 'web'
10
- }
11
-
12
- export namespace USERS {
13
- export namespace GET {
14
- export interface Request {
15
- headers: RequestHeaders
16
- params: {
17
- scopes: ('unreadNotificationsCount' | 'coordinates')[]
18
- }
19
- }
20
- export type Response = MemberDataI & {
21
- unreadAlertsCount?: number
22
- }
23
- }
24
- export namespace DEVICES {
25
- export interface Request {
26
- headers: RequestHeaders
27
- body: {
28
- /** @see DeviceDataI */
29
- userAgent?: DeviceDataI['userAgent']
30
- platform?: DeviceDataI['platform']
31
- version?: DeviceDataI['version']
32
- model?: DeviceDataI['model']
33
- name?: DeviceDataI['name']
34
- appVersion?: DeviceDataI['appVersion']
35
- pushKey?: DeviceDataI['pushKey']
36
- apnsToken?: DeviceDataI['apnsToken']
37
- fcmToken?: DeviceDataI['fcmToken']
38
- webPushEndpoint?: DeviceDataI['webPushEndpoint']
39
- webPushP256dh?: DeviceDataI['webPushP256dh']
40
- webPushAuth?: DeviceDataI['webPushAuth']
41
- webPushSubscription?: DeviceDataI['webPushSubscription']
42
- }
43
- }
44
- export type Response = DeviceDataI
45
- }
46
- export namespace RECOMMENDATIONS {
47
- export type ComponentType = 'PlantCarousel' | 'SelectionCarousel' | 'HeroCardsCarousel' | 'YourSelection'
48
-
49
- interface BaseRecommendation {
50
- id: string
51
- componentType: ComponentType
52
- title?: string
53
- subtitle?: string
54
- cardsVisible?: number
55
- }
56
-
57
- export interface PlantCarouselRecommendation extends BaseRecommendation {
58
- componentType: 'PlantCarousel'
59
- selection: SelectionI & { Plants?: PlantI[] }
60
- displayRanking?: boolean
61
- }
62
-
63
- export interface SelectionCarouselRecommendation extends BaseRecommendation {
64
- componentType: 'SelectionCarousel'
65
- selections: SelectionI[]
66
- displayRanking?: boolean
67
- }
68
-
69
- export interface HeroCardsCarouselRecommendation extends BaseRecommendation {
70
- componentType: 'HeroCardsCarousel'
71
- selections: SelectionI[]
72
- }
73
-
74
- export interface YourSelectionRecommendation extends BaseRecommendation {
75
- componentType: 'YourSelection'
76
- }
77
-
78
- export type RecommendationI =
79
- | PlantCarouselRecommendation
80
- | SelectionCarouselRecommendation
81
- | HeroCardsCarouselRecommendation
82
- | YourSelectionRecommendation
83
-
84
- export interface Request {
85
- headers: RequestHeaders
86
- }
87
-
88
- export type Response = RecommendationI[]
89
- }
90
- }
1
+ import type { DeviceDataI } from './device.d'
2
+ import type { MemberI as MemberDataI } from './member.d'
3
+ import type { SelectionI } from './selection.d'
4
+ import type { PlantI } from './plant.d'
5
+
6
+ interface RequestHeaders {
7
+ 'x-session-token': string
8
+ 'x-native-app-version'?: string
9
+ 'x-application-type'?: 'react-native' | 'web'
10
+ }
11
+
12
+ export namespace USERS {
13
+ export namespace GET {
14
+ export interface Request {
15
+ headers: RequestHeaders
16
+ params: {
17
+ scopes: ('unreadNotificationsCount' | 'coordinates')[]
18
+ }
19
+ }
20
+ export type Response = MemberDataI & {
21
+ unreadAlertsCount?: number
22
+ }
23
+ }
24
+ export namespace DEVICES {
25
+ export interface Request {
26
+ headers: RequestHeaders
27
+ body: {
28
+ /** @see DeviceDataI */
29
+ userAgent?: DeviceDataI['userAgent']
30
+ platform?: DeviceDataI['platform']
31
+ version?: DeviceDataI['version']
32
+ model?: DeviceDataI['model']
33
+ name?: DeviceDataI['name']
34
+ appVersion?: DeviceDataI['appVersion']
35
+ pushKey?: DeviceDataI['pushKey']
36
+ apnsToken?: DeviceDataI['apnsToken']
37
+ fcmToken?: DeviceDataI['fcmToken']
38
+ webPushEndpoint?: DeviceDataI['webPushEndpoint']
39
+ webPushP256dh?: DeviceDataI['webPushP256dh']
40
+ webPushAuth?: DeviceDataI['webPushAuth']
41
+ webPushSubscription?: DeviceDataI['webPushSubscription']
42
+ }
43
+ }
44
+ export type Response = DeviceDataI
45
+ }
46
+ export namespace RECOMMENDATIONS {
47
+ export type ComponentType = 'PlantCarousel' | 'SelectionCarousel' | 'HeroCardsCarousel' | 'YourSelection'
48
+
49
+ interface BaseRecommendation {
50
+ id: string
51
+ componentType: ComponentType
52
+ title?: string
53
+ subtitle?: string
54
+ cardsVisible?: number
55
+ }
56
+
57
+ export interface PlantCarouselRecommendation extends BaseRecommendation {
58
+ componentType: 'PlantCarousel'
59
+ selection: SelectionI & { Plants?: PlantI[] }
60
+ displayRanking?: boolean
61
+ }
62
+
63
+ export interface SelectionCarouselRecommendation extends BaseRecommendation {
64
+ componentType: 'SelectionCarousel'
65
+ selections: SelectionI[]
66
+ displayRanking?: boolean
67
+ }
68
+
69
+ export interface HeroCardsCarouselRecommendation extends BaseRecommendation {
70
+ componentType: 'HeroCardsCarousel'
71
+ selections: SelectionI[]
72
+ }
73
+
74
+ export interface YourSelectionRecommendation extends BaseRecommendation {
75
+ componentType: 'YourSelection'
76
+ }
77
+
78
+ export type RecommendationI =
79
+ | PlantCarouselRecommendation
80
+ | SelectionCarouselRecommendation
81
+ | HeroCardsCarouselRecommendation
82
+ | YourSelectionRecommendation
83
+
84
+ export interface Request {
85
+ headers: RequestHeaders
86
+ }
87
+
88
+ export type Response = RecommendationI[]
89
+ }
90
+ }
@@ -1,134 +1,134 @@
1
- /**
2
- * UTMSource - Identifies the origin platform or website that sent the traffic
3
- *
4
- * This type answers the question: "Where did this visitor come from?"
5
- * It tracks the specific platform, website, or source that generated the traffic.
6
- *
7
- * Common values are included in the union type, but custom domains/values are also allowed.
8
- */
9
- export type UTMSource =
10
- | 'google' // Google search results or Google Ads
11
- | 'facebook' // Facebook posts, ads, or shared content
12
- | 'instagram' // Instagram posts, stories, or ads
13
- | 'youtube' // YouTube videos, ads, or descriptions
14
- | 'email' // Email newsletter campaigns
15
- | 'direct' // Direct visits to the website
16
- | 'Brevo' // Our newsletter software
17
- | (string & {}) // Custom domains like 'semencesduportage.com' or any other string
18
-
19
- /**
20
- * UTMMedium - Identifies the marketing channel or method used
21
- *
22
- * This type answers the question: "What type of marketing brought this visitor?"
23
- * It categorizes the marketing method, whether paid, organic, or referral-based.
24
- *
25
- * Common values are included in the union type, but custom values are also allowed.
26
- */
27
- export type UTMMedium =
28
- | 'cpc' // Cost-per-click advertising (Google Ads, Facebook Ads, etc.)
29
- | 'paid' // Paid social media advertising campaigns
30
- | 'organic' // Free/organic traffic (search engine results, social media posts)
31
- | 'email' // Email marketing campaigns and newsletters
32
- | 'push' // Push notification campaigns
33
- | 'display' // Display/banner advertising
34
- | 'referral' // Referral traffic from partnerships or other websites
35
- | 'affiliate' // Affiliate marketing programs
36
- | (string & {}) // Any other custom medium
37
-
38
- /**
39
- * UTMCampaign - Identifies the specific marketing campaign name
40
- *
41
- * This type answers the question: "Which specific campaign generated this traffic?"
42
- * It allows you to track performance across different marketing initiatives.
43
- *
44
- * Examples:
45
- * - 'alert_ID' - Alert based campaigns
46
- * - 'summer_sale_2024' - Seasonal sales campaigns
47
- * - 'new_user_discount' - User acquisition campaigns
48
- * - 'retention_series' - Customer retention campaigns
49
- */
50
- export type UTMCampaign = 'reel' | 'alert' | string
51
-
52
- /**
53
- * UTMTerm - Identifies the specific keywords or search terms used
54
- *
55
- * This type answers the question: "What keywords or terms led to this visit?"
56
- * It's particularly useful for paid search campaigns and organic search tracking.
57
- *
58
- * Examples:
59
- * - 'tomato_seeds' - Specific keyword for tomato seed searches
60
- * - 'planting_guide' - Specific keyword for planting guide searches
61
- * - 'organic_fertilizer' - Product-specific keywords
62
- * - 'garden_planning' - Service-related keywords
63
- */
64
- export type UTMTerm = string
65
-
66
- /**
67
- * UTMContent - Identifies the specific content variation or creative element
68
- *
69
- * This type answers the question: "Which specific content version was clicked?"
70
- * It enables A/B testing and creative performance tracking.
71
- *
72
- * Examples:
73
- * - 'headline_a' - Version A of a headline for A/B testing
74
- * - 'image_garden_1' - Specific image used in the campaign
75
- * - 'link_top_banner' - Specific link placement (top banner)
76
- * - 'cta_button_blue' - Specific call-to-action button
77
- */
78
- export type UTMContent = string
79
-
80
- /**
81
- * UTMParams - Complete interface for all UTM tracking parameters
82
- *
83
- * This interface combines all UTM parameters into a single object for easy
84
- * tracking and analytics. All parameters are optional to allow flexible usage.
85
- *
86
- * COOKIE STORAGE:
87
- * Each parameter is stored as a separate cookie:
88
- * - utm_source
89
- * - utm_medium
90
- * - utm_campaign
91
- * - utm_term
92
- * - utm_content
93
- * - fbclid
94
- * - fbp
95
- * - gclid
96
- *
97
- * Usage example:
98
- * const utmParams: UTMParams = {
99
- * utm_source: 'facebook',
100
- * utm_medium: 'paid',
101
- * utm_campaign: 'hardiness_zone',
102
- * utm_term: 'tomato_seeds',
103
- * utm_content: 'headline_a',
104
- * fbclid: 'IwAR123...',
105
- * fbp: 'fb.1.1234567890.1234567890',
106
- * gclid: 'EAIaIQobChMI...'
107
- * };
108
- */
109
- export interface UTMParams {
110
- /** Unique UUID session identifier from front-end tracking script */
111
- uuid?: string
112
- /** The source platform that generated the traffic */
113
- utm_source?: UTMSource
114
- /** The marketing channel or method used */
115
- utm_medium?: UTMMedium
116
- /** The specific campaign name */
117
- utm_campaign?: UTMCampaign
118
- /** The keywords or search terms used */
119
- utm_term?: UTMTerm
120
- /** The specific content variation or creative element */
121
- utm_content?: UTMContent
122
- /** Facebook click identifier for attribution (stored as fbclid in URL) */
123
- fbclid?: string
124
- /** Facebook browser ID for pixel tracking (stored as _fbp cookie) */
125
- fbp?: string
126
- /** Google Ads click identifier for attribution (stored as gclid in URL) */
127
- gclid?: string
128
- /** Google Ads click identifier for iOS/Android app to web (Google surfaces) */
129
- gbraid?: string
130
- /** Google Ads click identifier for iOS/Android app to web (non-Google surfaces) */
131
- wbraid?: string
132
- /** OLD Referral source from partners - now utm_source=jardinierparesseux */
133
- referrer?: string
134
- }
1
+ /**
2
+ * UTMSource - Identifies the origin platform or website that sent the traffic
3
+ *
4
+ * This type answers the question: "Where did this visitor come from?"
5
+ * It tracks the specific platform, website, or source that generated the traffic.
6
+ *
7
+ * Common values are included in the union type, but custom domains/values are also allowed.
8
+ */
9
+ export type UTMSource =
10
+ | 'google' // Google search results or Google Ads
11
+ | 'facebook' // Facebook posts, ads, or shared content
12
+ | 'instagram' // Instagram posts, stories, or ads
13
+ | 'youtube' // YouTube videos, ads, or descriptions
14
+ | 'email' // Email newsletter campaigns
15
+ | 'direct' // Direct visits to the website
16
+ | 'Brevo' // Our newsletter software
17
+ | (string & {}) // Custom domains like 'semencesduportage.com' or any other string
18
+
19
+ /**
20
+ * UTMMedium - Identifies the marketing channel or method used
21
+ *
22
+ * This type answers the question: "What type of marketing brought this visitor?"
23
+ * It categorizes the marketing method, whether paid, organic, or referral-based.
24
+ *
25
+ * Common values are included in the union type, but custom values are also allowed.
26
+ */
27
+ export type UTMMedium =
28
+ | 'cpc' // Cost-per-click advertising (Google Ads, Facebook Ads, etc.)
29
+ | 'paid' // Paid social media advertising campaigns
30
+ | 'organic' // Free/organic traffic (search engine results, social media posts)
31
+ | 'email' // Email marketing campaigns and newsletters
32
+ | 'push' // Push notification campaigns
33
+ | 'display' // Display/banner advertising
34
+ | 'referral' // Referral traffic from partnerships or other websites
35
+ | 'affiliate' // Affiliate marketing programs
36
+ | (string & {}) // Any other custom medium
37
+
38
+ /**
39
+ * UTMCampaign - Identifies the specific marketing campaign name
40
+ *
41
+ * This type answers the question: "Which specific campaign generated this traffic?"
42
+ * It allows you to track performance across different marketing initiatives.
43
+ *
44
+ * Examples:
45
+ * - 'alert_ID' - Alert based campaigns
46
+ * - 'summer_sale_2024' - Seasonal sales campaigns
47
+ * - 'new_user_discount' - User acquisition campaigns
48
+ * - 'retention_series' - Customer retention campaigns
49
+ */
50
+ export type UTMCampaign = 'reel' | 'alert' | string
51
+
52
+ /**
53
+ * UTMTerm - Identifies the specific keywords or search terms used
54
+ *
55
+ * This type answers the question: "What keywords or terms led to this visit?"
56
+ * It's particularly useful for paid search campaigns and organic search tracking.
57
+ *
58
+ * Examples:
59
+ * - 'tomato_seeds' - Specific keyword for tomato seed searches
60
+ * - 'planting_guide' - Specific keyword for planting guide searches
61
+ * - 'organic_fertilizer' - Product-specific keywords
62
+ * - 'garden_planning' - Service-related keywords
63
+ */
64
+ export type UTMTerm = string
65
+
66
+ /**
67
+ * UTMContent - Identifies the specific content variation or creative element
68
+ *
69
+ * This type answers the question: "Which specific content version was clicked?"
70
+ * It enables A/B testing and creative performance tracking.
71
+ *
72
+ * Examples:
73
+ * - 'headline_a' - Version A of a headline for A/B testing
74
+ * - 'image_garden_1' - Specific image used in the campaign
75
+ * - 'link_top_banner' - Specific link placement (top banner)
76
+ * - 'cta_button_blue' - Specific call-to-action button
77
+ */
78
+ export type UTMContent = string
79
+
80
+ /**
81
+ * UTMParams - Complete interface for all UTM tracking parameters
82
+ *
83
+ * This interface combines all UTM parameters into a single object for easy
84
+ * tracking and analytics. All parameters are optional to allow flexible usage.
85
+ *
86
+ * COOKIE STORAGE:
87
+ * Each parameter is stored as a separate cookie:
88
+ * - utm_source
89
+ * - utm_medium
90
+ * - utm_campaign
91
+ * - utm_term
92
+ * - utm_content
93
+ * - fbclid
94
+ * - fbp
95
+ * - gclid
96
+ *
97
+ * Usage example:
98
+ * const utmParams: UTMParams = {
99
+ * utm_source: 'facebook',
100
+ * utm_medium: 'paid',
101
+ * utm_campaign: 'hardiness_zone',
102
+ * utm_term: 'tomato_seeds',
103
+ * utm_content: 'headline_a',
104
+ * fbclid: 'IwAR123...',
105
+ * fbp: 'fb.1.1234567890.1234567890',
106
+ * gclid: 'EAIaIQobChMI...'
107
+ * };
108
+ */
109
+ export interface UTMParams {
110
+ /** Unique UUID session identifier from front-end tracking script */
111
+ uuid?: string
112
+ /** The source platform that generated the traffic */
113
+ utm_source?: UTMSource
114
+ /** The marketing channel or method used */
115
+ utm_medium?: UTMMedium
116
+ /** The specific campaign name */
117
+ utm_campaign?: UTMCampaign
118
+ /** The keywords or search terms used */
119
+ utm_term?: UTMTerm
120
+ /** The specific content variation or creative element */
121
+ utm_content?: UTMContent
122
+ /** Facebook click identifier for attribution (stored as fbclid in URL) */
123
+ fbclid?: string
124
+ /** Facebook browser ID for pixel tracking (stored as _fbp cookie) */
125
+ fbp?: string
126
+ /** Google Ads click identifier for attribution (stored as gclid in URL) */
127
+ gclid?: string
128
+ /** Google Ads click identifier for iOS/Android app to web (Google surfaces) */
129
+ gbraid?: string
130
+ /** Google Ads click identifier for iOS/Android app to web (non-Google surfaces) */
131
+ wbraid?: string
132
+ /** OLD Referral source from partners - now utm_source=jardinierparesseux */
133
+ referrer?: string
134
+ }