@qrush/types 2.1.71 → 2.1.73
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/README.md +1 -1
- package/dist/Artist.d.ts +14 -12
- package/dist/Social.d.ts +36 -28
- package/dist/Social.js +1 -4
- package/dist/Users.d.ts +6 -5
- package/package.json +1 -1
package/README.md
CHANGED
package/dist/Artist.d.ts
CHANGED
|
@@ -17,19 +17,21 @@ export interface ArtistSameAs {
|
|
|
17
17
|
tiktok?: string;
|
|
18
18
|
website?: string;
|
|
19
19
|
}
|
|
20
|
-
/** A single
|
|
21
|
-
export interface
|
|
22
|
-
id:
|
|
20
|
+
/** A single music preview track with a permanent CDN preview URL (Apple Music) */
|
|
21
|
+
export interface MusicPreviewTrack {
|
|
22
|
+
id: string;
|
|
23
23
|
title: string;
|
|
24
|
-
/**
|
|
24
|
+
/** Permanent CDN URL for 30-sec preview (Apple Music M4A) */
|
|
25
25
|
previewUrl: string;
|
|
26
|
-
|
|
26
|
+
artworkUrl?: string;
|
|
27
27
|
}
|
|
28
|
-
/**
|
|
29
|
-
export interface
|
|
30
|
-
/**
|
|
31
|
-
|
|
32
|
-
|
|
28
|
+
/** Music preview configuration stored on the artist document */
|
|
29
|
+
export interface MusicPreviewConfig {
|
|
30
|
+
/** Apple Music artist ID — auto-matched by name or manually set via admin */
|
|
31
|
+
appleMusicId?: string;
|
|
32
|
+
tracks?: MusicPreviewTrack[];
|
|
33
|
+
/** ISO timestamp of last enrichment */
|
|
34
|
+
lastEnrichedAt?: string;
|
|
33
35
|
}
|
|
34
36
|
/**
|
|
35
37
|
* Full artist document stored in the `artists` collection
|
|
@@ -45,8 +47,8 @@ export interface IFireArtist {
|
|
|
45
47
|
/** Structured genre selections for the artist */
|
|
46
48
|
genres?: GenreSelection[];
|
|
47
49
|
sameAs?: ArtistSameAs;
|
|
48
|
-
/**
|
|
49
|
-
|
|
50
|
+
/** Apple Music preview data (permanent CDN URLs, enriched at import time) */
|
|
51
|
+
musicPreview?: MusicPreviewConfig;
|
|
50
52
|
/** true if created by promoter (name-only, no SEO links) */
|
|
51
53
|
isFallback: boolean;
|
|
52
54
|
createdAt?: Timestamp;
|
package/dist/Social.d.ts
CHANGED
|
@@ -16,6 +16,21 @@ export interface ISocialProfileVisibility {
|
|
|
16
16
|
partyDrugsConsumption: FieldVisibility;
|
|
17
17
|
hardDrugsConsumption: FieldVisibility;
|
|
18
18
|
}
|
|
19
|
+
export type PrivacyTier = 'public_full' | 'public_restricted' | 'private' | 'custom';
|
|
20
|
+
export interface ICustomPrivacyRules {
|
|
21
|
+
ageRange?: {
|
|
22
|
+
min: number;
|
|
23
|
+
max: number;
|
|
24
|
+
} | null;
|
|
25
|
+
gender?: ('male' | 'female' | 'diverse')[] | null;
|
|
26
|
+
minAccountAgeDays?: number | null;
|
|
27
|
+
onlyVerified?: boolean;
|
|
28
|
+
}
|
|
29
|
+
export interface IPrivacySettings {
|
|
30
|
+
tier: PrivacyTier;
|
|
31
|
+
onlyVerified?: boolean;
|
|
32
|
+
customRules?: ICustomPrivacyRules;
|
|
33
|
+
}
|
|
19
34
|
export interface ISocialProfile {
|
|
20
35
|
bio?: string;
|
|
21
36
|
images?: string[];
|
|
@@ -35,26 +50,19 @@ export interface ISocialProfile {
|
|
|
35
50
|
partyDrugs?: string;
|
|
36
51
|
hardDrugs?: string;
|
|
37
52
|
};
|
|
38
|
-
|
|
39
|
-
trustScore?: number;
|
|
40
|
-
hasTrustBadge?: boolean;
|
|
41
|
-
trustSignals?: ITrustSignals;
|
|
53
|
+
privacySettings?: IPrivacySettings;
|
|
42
54
|
visibility: ISocialProfileVisibility;
|
|
43
55
|
}
|
|
44
|
-
export interface
|
|
56
|
+
export interface ISocialEntry {
|
|
45
57
|
name: string;
|
|
46
58
|
avatarURL: string;
|
|
47
|
-
listVisibility: FieldVisibility;
|
|
48
59
|
createdAt: Timestamp;
|
|
49
|
-
/** Present on weeklyGoingUsers entries */
|
|
50
60
|
userUID?: string;
|
|
51
61
|
/** Day of week for weekly entries */
|
|
52
62
|
day?: string;
|
|
53
63
|
/** Resolved occurrence date (YYYY-MM-DD) for weekly entries */
|
|
54
64
|
occurrenceDate?: string;
|
|
55
|
-
|
|
56
|
-
socialProfileStatus?: SocialProfileStatus;
|
|
57
|
-
hasTrustBadge?: boolean;
|
|
65
|
+
type: 'going' | 'interested';
|
|
58
66
|
citySlug?: string;
|
|
59
67
|
entityId?: string;
|
|
60
68
|
entityType?: SocialEntityType;
|
|
@@ -64,6 +72,24 @@ export interface ISocialUserEntry {
|
|
|
64
72
|
entityStartTime?: Timestamp;
|
|
65
73
|
/** Flat boolean for efficient Firestore indexing (avoids != null on map field) */
|
|
66
74
|
hasLookingFor?: boolean;
|
|
75
|
+
privacyTier: PrivacyTier;
|
|
76
|
+
isVerified: boolean;
|
|
77
|
+
onlyVerified?: boolean;
|
|
78
|
+
gender?: string;
|
|
79
|
+
birthday?: Timestamp;
|
|
80
|
+
accountCreatedAt?: Timestamp;
|
|
81
|
+
customRules?: ICustomPrivacyRules;
|
|
82
|
+
}
|
|
83
|
+
export interface IFilteredEntry {
|
|
84
|
+
id: string;
|
|
85
|
+
name: string;
|
|
86
|
+
avatarURL: string;
|
|
87
|
+
isVerified: boolean;
|
|
88
|
+
type: 'going' | 'interested';
|
|
89
|
+
visibility: 'clear' | 'anonymous';
|
|
90
|
+
lookingFor?: ILookingFor;
|
|
91
|
+
hasLookingFor?: boolean;
|
|
92
|
+
entryRef?: string;
|
|
67
93
|
}
|
|
68
94
|
export type SocialAction = 'going' | 'interested';
|
|
69
95
|
export type SocialEntityType = 'event' | 'location' | 'weekly';
|
|
@@ -90,25 +116,7 @@ export interface IUpdateLookingForRequest {
|
|
|
90
116
|
export interface IUpdateLookingForResponse {
|
|
91
117
|
success: boolean;
|
|
92
118
|
}
|
|
93
|
-
export type SocialProfileStatus = 'none' | 'basic' | 'full';
|
|
94
119
|
export type EntryVisibility = 'clear' | 'blurred' | 'hidden';
|
|
95
|
-
export type ListVisibility = 'all' | 'contacts' | 'hidden';
|
|
96
|
-
export declare const TRUST_THRESHOLDS: {
|
|
97
|
-
readonly UNBLURRED_ACCESS: 5;
|
|
98
|
-
readonly TRUSTED_BADGE: 10;
|
|
99
|
-
};
|
|
100
|
-
export type TrustSignal = 'phone_verified' | 'profile_image' | 'bio_filled' | 'social_fields_3' | 'social_fields_5' | 'connections_1' | 'connections_3' | 'qrush_plus' | 'promo_redeemed' | 'account_age_7d' | 'account_age_30d' | 'social_actions_3';
|
|
101
|
-
export interface ITrustSignals {
|
|
102
|
-
phoneVerified: boolean;
|
|
103
|
-
hasProfileImage: boolean;
|
|
104
|
-
hasBio: boolean;
|
|
105
|
-
socialFieldsCount: number;
|
|
106
|
-
acceptedContactsCount: number;
|
|
107
|
-
isQrushPlusSubscriber: boolean;
|
|
108
|
-
promoRedemptionCount: number;
|
|
109
|
-
accountAgeDays: number;
|
|
110
|
-
socialActionsCount: number;
|
|
111
|
-
}
|
|
112
120
|
export interface ILookingFor {
|
|
113
121
|
preset?: 'group' | 'dance_partner' | 'going_together';
|
|
114
122
|
text?: string;
|
package/dist/Social.js
CHANGED
package/dist/Users.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { DocumentReference, FieldValue, Timestamp } from '@firebase/firestore';
|
|
2
2
|
import { FireQueryDocSnapshotRef } from './CustomDocType.js';
|
|
3
|
-
import type { SocialProfileStatus } from './Social.js';
|
|
4
3
|
export type Maybe<T> = T | null | undefined;
|
|
5
4
|
export type IFireUser = {
|
|
6
5
|
phone?: Phone;
|
|
@@ -17,7 +16,6 @@ export type IFireUser = {
|
|
|
17
16
|
attendedEvents: DocumentReference[];
|
|
18
17
|
/** @deprecated replace with group collection query on goingUsers */
|
|
19
18
|
attendingEvent: string | null;
|
|
20
|
-
listVisibility?: 'all' | 'contacts' | 'hidden';
|
|
21
19
|
sharingToken: SharingToken | null;
|
|
22
20
|
notificationTokens: string[];
|
|
23
21
|
markedForDeletion: boolean;
|
|
@@ -29,10 +27,13 @@ export type IFireUser = {
|
|
|
29
27
|
profileImageUrl?: string;
|
|
30
28
|
totalSavings: number;
|
|
31
29
|
redemptionIds?: string[];
|
|
32
|
-
trustScore?: number;
|
|
33
|
-
socialProfileStatus?: SocialProfileStatus;
|
|
34
|
-
hasTrustBadge?: boolean;
|
|
35
30
|
isQrushPlus?: boolean;
|
|
31
|
+
hasSocialProfile?: boolean;
|
|
32
|
+
isVerified?: boolean;
|
|
33
|
+
xp?: number;
|
|
34
|
+
deviceIds?: string[];
|
|
35
|
+
genderChangedAt?: Timestamp;
|
|
36
|
+
birthdayChangedAt?: Timestamp;
|
|
36
37
|
};
|
|
37
38
|
export type UserRole = 'user' | 'staff' | 'team' | 'admin';
|
|
38
39
|
export type UserAvatar = {
|