shared-features 0.0.8 → 0.1.1
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 +205 -2
- package/dist/{admin-notifications-D9n9h-eY.cjs → admin-notifications-CLzQc8zF.cjs} +20 -20
- package/dist/{admin-notifications-D9n9h-eY.cjs.map → admin-notifications-CLzQc8zF.cjs.map} +1 -1
- package/dist/{admin-notifications-p1dy3zIP.js → admin-notifications-C_7ReIMi.js} +13 -13
- package/dist/{admin-notifications-p1dy3zIP.js.map → admin-notifications-C_7ReIMi.js.map} +1 -1
- package/dist/{broadcasts-3_WfQMNL.cjs → broadcasts-6w_9X92Z.cjs} +10 -10
- package/dist/{broadcasts-3_WfQMNL.cjs.map → broadcasts-6w_9X92Z.cjs.map} +1 -1
- package/dist/{broadcasts-DgZUzqMf.js → broadcasts-CK4sGMz4.js} +12 -12
- package/dist/{broadcasts-DgZUzqMf.js.map → broadcasts-CK4sGMz4.js.map} +1 -1
- package/dist/commonFeatures-CaqcEOik.js +1255 -0
- package/dist/commonFeatures-CaqcEOik.js.map +1 -0
- package/dist/commonFeatures-DhWaBEv_.cjs +222 -0
- package/dist/commonFeatures-DhWaBEv_.cjs.map +1 -0
- package/dist/commonFeatures-XJ9fuxg_.js +223 -0
- package/dist/commonFeatures-XJ9fuxg_.js.map +1 -0
- package/dist/commonFeatures-ofZOjnZ0.cjs +1276 -0
- package/dist/commonFeatures-ofZOjnZ0.cjs.map +1 -0
- package/dist/components/common/index.d.ts +60 -0
- package/dist/components/common/index.d.ts.map +1 -0
- package/dist/components/index.cjs +31 -23
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +21 -13
- package/dist/firebase/config.d.ts +34 -0
- package/dist/firebase/config.d.ts.map +1 -1
- package/dist/hooks/index.cjs +26 -13
- package/dist/hooks/index.cjs.map +1 -1
- package/dist/hooks/index.d.ts +2 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +24 -11
- package/dist/hooks/useCommonFeatures.d.ts +102 -0
- package/dist/hooks/useCommonFeatures.d.ts.map +1 -0
- package/dist/hooks/useFeatureFlags.d.ts +134 -0
- package/dist/hooks/useFeatureFlags.d.ts.map +1 -0
- package/dist/{AnnouncementModal-sxH4K5gy.js → index-BeNmzbTD.js} +212 -17
- package/dist/index-BeNmzbTD.js.map +1 -0
- package/dist/{AnnouncementModal-Bqy0pn3V.cjs → index-DB40ObYe.cjs} +209 -14
- package/dist/index-DB40ObYe.cjs.map +1 -0
- package/dist/index.cjs +127 -60
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +10 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +175 -108
- package/dist/index.js.map +1 -1
- package/dist/notifications/index.js +14 -14
- package/dist/services/commonFeatures.d.ts +25 -0
- package/dist/services/commonFeatures.d.ts.map +1 -0
- package/dist/services/featureFlags.d.ts +71 -0
- package/dist/services/featureFlags.d.ts.map +1 -0
- package/dist/services/index.cjs +49 -17
- package/dist/services/index.cjs.map +1 -1
- package/dist/services/index.d.ts +2 -0
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +75 -43
- package/dist/services/index.js.map +1 -1
- package/dist/types/commonFeatures.d.ts +232 -0
- package/dist/types/commonFeatures.d.ts.map +1 -0
- package/dist/types/featureFlags.d.ts +203 -0
- package/dist/types/featureFlags.d.ts.map +1 -0
- package/dist/types/index.cjs +17 -0
- package/dist/types/index.cjs.map +1 -1
- package/dist/types/index.d.ts +3 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +17 -0
- package/dist/types/index.js.map +1 -1
- package/dist/useCommonFeatures-0EU_VRqi.cjs +488 -0
- package/dist/useCommonFeatures-0EU_VRqi.cjs.map +1 -0
- package/dist/useCommonFeatures-DP2YyB7m.js +489 -0
- package/dist/useCommonFeatures-DP2YyB7m.js.map +1 -0
- package/dist/useFeatureFlags-DHnOm0sA.js +368 -0
- package/dist/useFeatureFlags-DHnOm0sA.js.map +1 -0
- package/dist/useFeatureFlags-DRR1r3rt.cjs +367 -0
- package/dist/useFeatureFlags-DRR1r3rt.cjs.map +1 -0
- package/dist/{useNotificationEvents-D8DVxah1.js → useNotificationEvents-DAmR7FYF.js} +14 -14
- package/dist/{useNotificationEvents-D8DVxah1.js.map → useNotificationEvents-DAmR7FYF.js.map} +1 -1
- package/package.json +15 -8
- package/dist/AnnouncementModal-Bqy0pn3V.cjs.map +0 -1
- package/dist/AnnouncementModal-sxH4K5gy.js.map +0 -1
- package/dist/analytics-40-S_fHC.js +0 -440
- package/dist/analytics-40-S_fHC.js.map +0 -1
- package/dist/analytics-lEzOx2vl.cjs +0 -461
- package/dist/analytics-lEzOx2vl.cjs.map +0 -1
- package/dist/useBroadcasts-DzpCcbC8.js +0 -161
- package/dist/useBroadcasts-DzpCcbC8.js.map +0 -1
- package/dist/useBroadcasts-FP6ZrcY_.cjs +0 -160
- package/dist/useBroadcasts-FP6ZrcY_.cjs.map +0 -1
- package/dist/useCampaigns-BOZ9dDsG.cjs +0 -152
- package/dist/useCampaigns-BOZ9dDsG.cjs.map +0 -1
- package/dist/useCampaigns-D46b9zuf.js +0 -153
- package/dist/useCampaigns-D46b9zuf.js.map +0 -1
package/dist/services/index.js
CHANGED
|
@@ -1,51 +1,83 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { a as
|
|
1
|
+
import { c, a, b, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, D, E, F, J, L, M, N, P, Q, R, S, T, U, V, W, X } from "../commonFeatures-CaqcEOik.js";
|
|
2
|
+
import { c as c2, a as a2, d as d2, f as f2, b as b2, e as e2, g as g2, i as i2, r as r2, s as s2, t as t2, h as h2, j as j2 } from "../broadcasts-CK4sGMz4.js";
|
|
3
|
+
import { a as a3, c as c3, b as b3, d as d3, e as e3, f as f3, g as g3, h as h3, i as i3, j as j3, k as k2, l as l2, m as m2, p as p2, n as n2, s as s3, u as u2, o as o2 } from "../admin-notifications-C_7ReIMi.js";
|
|
4
|
+
import { C, F as F2 } from "../commonFeatures-XJ9fuxg_.js";
|
|
4
5
|
export {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
6
|
+
C as COLLECTION_FEATURE_FLAGS,
|
|
7
|
+
F2 as FEATURE_FLAGS_DOC_ID,
|
|
8
|
+
a3 as adminNotificationService,
|
|
9
|
+
c as checkFeatureAvailability,
|
|
10
|
+
a as clearAddressInfoCache,
|
|
11
|
+
b as clearAllCommonFeaturesCache,
|
|
12
|
+
c2 as clearBroadcastsCache,
|
|
13
|
+
d as clearCampaignsCache,
|
|
14
|
+
e as clearContactInfoCache,
|
|
15
|
+
f as clearDeveloperInfoCache,
|
|
16
|
+
a2 as clearDismissedBroadcasts,
|
|
17
|
+
g as clearFeatureFlagsCache,
|
|
18
|
+
h as clearPaymentOptionsCache,
|
|
19
|
+
i as clearProductsCache,
|
|
20
|
+
j as clearServicesCache,
|
|
21
|
+
k as clearSkillsCache,
|
|
22
|
+
l as clearSocialLinksCache,
|
|
23
|
+
m as clearTestimonialsCache,
|
|
24
|
+
c3 as createBroadcast,
|
|
25
|
+
b3 as createTemplate,
|
|
26
|
+
d3 as deleteBroadcast,
|
|
27
|
+
e3 as deleteTemplate,
|
|
28
|
+
d2 as dismissBroadcast,
|
|
15
29
|
f3 as endBroadcast,
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
30
|
+
f2 as fetchActiveBroadcasts,
|
|
31
|
+
n as fetchActiveCampaigns,
|
|
32
|
+
o as fetchAddressInfo,
|
|
33
|
+
b2 as fetchBroadcasts,
|
|
34
|
+
e2 as fetchBroadcastsByVariant,
|
|
35
|
+
p as fetchCampaigns,
|
|
36
|
+
q as fetchContactInfo,
|
|
37
|
+
r as fetchDeveloperInfo,
|
|
38
|
+
s as fetchFeatureFlags,
|
|
39
|
+
t as fetchPaymentOptions,
|
|
40
|
+
u as fetchProducts,
|
|
41
|
+
v as fetchServices,
|
|
42
|
+
w as fetchSkills,
|
|
43
|
+
x as fetchSocialLinks,
|
|
44
|
+
y as fetchTestimonials,
|
|
45
|
+
g3 as getAllBroadcasts,
|
|
46
|
+
h3 as getAllTemplates,
|
|
47
|
+
i3 as getBroadcastAnalytics,
|
|
48
|
+
g2 as getBroadcastById,
|
|
49
|
+
j3 as getBroadcastsByStatus,
|
|
50
|
+
z as getCampaignById,
|
|
51
|
+
A as getCampaignHistory,
|
|
52
|
+
D as getEligibleCampaignIds,
|
|
53
|
+
E as getFeatureVersion,
|
|
54
|
+
k2 as getFirestoreTemplateByEventType,
|
|
55
|
+
l2 as getOverallAnalytics,
|
|
56
|
+
F as getProductById,
|
|
57
|
+
J as getSharedFeaturesStatus,
|
|
58
|
+
m2 as getTemplateById,
|
|
59
|
+
L as initializeFeatureFlags,
|
|
60
|
+
i2 as isBroadcastDismissed,
|
|
61
|
+
M as isEligibleForCampaign,
|
|
62
|
+
N as isFeatureEnabled,
|
|
63
|
+
p2 as pauseBroadcast,
|
|
64
|
+
n2 as publishBroadcast,
|
|
38
65
|
r2 as recordBroadcastEvent,
|
|
39
|
-
|
|
66
|
+
P as recordImpression,
|
|
40
67
|
s3 as scheduleBroadcast,
|
|
41
68
|
s2 as subscribeToBroadcasts,
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
69
|
+
Q as subscribeToContactInfo,
|
|
70
|
+
R as subscribeToDeveloperInfo,
|
|
71
|
+
S as subscribeToFeatureFlags,
|
|
72
|
+
t2 as trackBroadcastClick,
|
|
73
|
+
h2 as trackBroadcastDismiss,
|
|
74
|
+
j2 as trackBroadcastImpression,
|
|
75
|
+
T as trackClick,
|
|
76
|
+
U as trackClose,
|
|
77
|
+
V as trackImpression,
|
|
48
78
|
u2 as updateBroadcast,
|
|
49
|
-
|
|
79
|
+
W as updateFeatureConfig,
|
|
80
|
+
X as updateGlobalFlags,
|
|
81
|
+
o2 as updateTemplate
|
|
50
82
|
};
|
|
51
83
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
import { Timestamp } from 'firebase/firestore';
|
|
2
|
+
export declare const COMMON_FEATURE_COLLECTIONS: {
|
|
3
|
+
readonly CONTACT_INFO: "zaions_contact_info";
|
|
4
|
+
readonly DEVELOPER_INFO: "zaions_developer_info";
|
|
5
|
+
readonly SOCIAL_LINKS: "zaions_social_links";
|
|
6
|
+
readonly ADDRESS_INFO: "zaions_address_info";
|
|
7
|
+
readonly PAYMENT_OPTIONS: "zaions_payment_options";
|
|
8
|
+
readonly SERVICES: "zaions_services";
|
|
9
|
+
readonly SKILLS: "zaions_skills";
|
|
10
|
+
readonly TESTIMONIALS: "zaions_testimonials";
|
|
11
|
+
readonly PROJECTS: "zaions_projects";
|
|
12
|
+
};
|
|
13
|
+
export interface ContactInfo {
|
|
14
|
+
id: string;
|
|
15
|
+
email: string;
|
|
16
|
+
supportEmail?: string;
|
|
17
|
+
phone?: string;
|
|
18
|
+
whatsapp?: string;
|
|
19
|
+
telegram?: string;
|
|
20
|
+
skype?: string;
|
|
21
|
+
freelanceAvailable: boolean;
|
|
22
|
+
workingHours?: string;
|
|
23
|
+
timezone?: string;
|
|
24
|
+
preferredContact?: 'email' | 'phone' | 'whatsapp' | 'telegram';
|
|
25
|
+
responseTime?: string;
|
|
26
|
+
updatedAt: Timestamp;
|
|
27
|
+
}
|
|
28
|
+
export declare const DEFAULT_CONTACT_INFO: Omit<ContactInfo, 'id' | 'updatedAt'>;
|
|
29
|
+
export interface DeveloperInfo {
|
|
30
|
+
id: string;
|
|
31
|
+
name: string;
|
|
32
|
+
title: string;
|
|
33
|
+
tagline?: string;
|
|
34
|
+
bio: string;
|
|
35
|
+
shortBio?: string;
|
|
36
|
+
avatar?: string;
|
|
37
|
+
website?: string;
|
|
38
|
+
github?: string;
|
|
39
|
+
linkedin?: string;
|
|
40
|
+
twitter?: string;
|
|
41
|
+
yearsOfExperience?: number;
|
|
42
|
+
location?: string;
|
|
43
|
+
availableForHire: boolean;
|
|
44
|
+
resumeUrl?: string;
|
|
45
|
+
updatedAt: Timestamp;
|
|
46
|
+
}
|
|
47
|
+
export declare const DEFAULT_DEVELOPER_INFO: Omit<DeveloperInfo, 'id' | 'updatedAt'>;
|
|
48
|
+
export type SocialPlatform = 'github' | 'linkedin' | 'twitter' | 'facebook' | 'instagram' | 'youtube' | 'tiktok' | 'discord' | 'telegram' | 'whatsapp' | 'medium' | 'devto' | 'stackoverflow' | 'dribbble' | 'behance' | 'codepen' | 'npm' | 'website' | 'email' | 'other';
|
|
49
|
+
export declare const SOCIAL_PLATFORM_NAMES: Record<SocialPlatform, string>;
|
|
50
|
+
export interface SocialLink {
|
|
51
|
+
id: string;
|
|
52
|
+
platform: SocialPlatform;
|
|
53
|
+
url: string;
|
|
54
|
+
displayName?: string;
|
|
55
|
+
username?: string;
|
|
56
|
+
icon?: string;
|
|
57
|
+
order: number;
|
|
58
|
+
isActive: boolean;
|
|
59
|
+
showIn: ('footer' | 'contact' | 'about' | 'header')[];
|
|
60
|
+
updatedAt: Timestamp;
|
|
61
|
+
}
|
|
62
|
+
export interface AddressInfo {
|
|
63
|
+
id: string;
|
|
64
|
+
label?: string;
|
|
65
|
+
streetAddress?: string;
|
|
66
|
+
city?: string;
|
|
67
|
+
state?: string;
|
|
68
|
+
postalCode?: string;
|
|
69
|
+
country?: string;
|
|
70
|
+
fullAddress?: string;
|
|
71
|
+
googleMapsUrl?: string;
|
|
72
|
+
isPublic: boolean;
|
|
73
|
+
updatedAt: Timestamp;
|
|
74
|
+
}
|
|
75
|
+
export declare const DEFAULT_ADDRESS_INFO: Omit<AddressInfo, 'id' | 'updatedAt'>;
|
|
76
|
+
export type PaymentType = 'bank' | 'paypal' | 'stripe' | 'wise' | 'crypto' | 'upi' | 'venmo' | 'cashapp' | 'other';
|
|
77
|
+
export declare const PAYMENT_TYPE_NAMES: Record<PaymentType, string>;
|
|
78
|
+
export interface BankDetails {
|
|
79
|
+
bankName: string;
|
|
80
|
+
accountName: string;
|
|
81
|
+
accountNumber: string;
|
|
82
|
+
routingNumber?: string;
|
|
83
|
+
swiftCode?: string;
|
|
84
|
+
iban?: string;
|
|
85
|
+
branch?: string;
|
|
86
|
+
}
|
|
87
|
+
export interface CryptoDetails {
|
|
88
|
+
currency: string;
|
|
89
|
+
walletAddress: string;
|
|
90
|
+
network?: string;
|
|
91
|
+
}
|
|
92
|
+
export interface PaymentOption {
|
|
93
|
+
id: string;
|
|
94
|
+
type: PaymentType;
|
|
95
|
+
name: string;
|
|
96
|
+
description?: string;
|
|
97
|
+
icon?: string;
|
|
98
|
+
details: BankDetails | CryptoDetails | Record<string, string>;
|
|
99
|
+
isActive: boolean;
|
|
100
|
+
isPrimary: boolean;
|
|
101
|
+
order: number;
|
|
102
|
+
updatedAt: Timestamp;
|
|
103
|
+
}
|
|
104
|
+
export type ServiceCategory = 'web-development' | 'mobile-development' | 'backend-development' | 'devops' | 'consulting' | 'ui-ux-design' | 'api-development' | 'database' | 'cloud' | 'security' | 'other';
|
|
105
|
+
export declare const SERVICE_CATEGORY_NAMES: Record<ServiceCategory, string>;
|
|
106
|
+
export interface Service {
|
|
107
|
+
id: string;
|
|
108
|
+
title: string;
|
|
109
|
+
description: string;
|
|
110
|
+
shortDescription?: string;
|
|
111
|
+
category: ServiceCategory;
|
|
112
|
+
icon?: string;
|
|
113
|
+
features?: string[];
|
|
114
|
+
technologies?: string[];
|
|
115
|
+
priceRange?: string;
|
|
116
|
+
isActive: boolean;
|
|
117
|
+
isFeatured: boolean;
|
|
118
|
+
order: number;
|
|
119
|
+
updatedAt: Timestamp;
|
|
120
|
+
}
|
|
121
|
+
export type SkillCategory = 'frontend' | 'backend' | 'mobile' | 'database' | 'devops' | 'cloud' | 'tools' | 'languages' | 'frameworks' | 'soft-skills' | 'other';
|
|
122
|
+
export declare const SKILL_CATEGORY_NAMES: Record<SkillCategory, string>;
|
|
123
|
+
export type SkillLevel = 'beginner' | 'intermediate' | 'advanced' | 'expert';
|
|
124
|
+
export declare const SKILL_LEVEL_NAMES: Record<SkillLevel, string>;
|
|
125
|
+
export interface Skill {
|
|
126
|
+
id: string;
|
|
127
|
+
name: string;
|
|
128
|
+
category: SkillCategory;
|
|
129
|
+
level: SkillLevel;
|
|
130
|
+
yearsOfExperience?: number;
|
|
131
|
+
icon?: string;
|
|
132
|
+
color?: string;
|
|
133
|
+
isActive: boolean;
|
|
134
|
+
isFeatured: boolean;
|
|
135
|
+
order: number;
|
|
136
|
+
updatedAt: Timestamp;
|
|
137
|
+
}
|
|
138
|
+
export interface Testimonial {
|
|
139
|
+
id: string;
|
|
140
|
+
authorName: string;
|
|
141
|
+
authorTitle?: string;
|
|
142
|
+
authorCompany?: string;
|
|
143
|
+
authorAvatar?: string;
|
|
144
|
+
authorLinkedin?: string;
|
|
145
|
+
content: string;
|
|
146
|
+
shortContent?: string;
|
|
147
|
+
rating?: number;
|
|
148
|
+
projectName?: string;
|
|
149
|
+
projectUrl?: string;
|
|
150
|
+
date?: Timestamp;
|
|
151
|
+
isActive: boolean;
|
|
152
|
+
isFeatured: boolean;
|
|
153
|
+
order: number;
|
|
154
|
+
updatedAt: Timestamp;
|
|
155
|
+
}
|
|
156
|
+
export interface UseCommonFeatureOptions {
|
|
157
|
+
autoFetch?: boolean;
|
|
158
|
+
realtime?: boolean;
|
|
159
|
+
}
|
|
160
|
+
export interface UseCommonFeatureResult<T> {
|
|
161
|
+
data: T | null;
|
|
162
|
+
loading: boolean;
|
|
163
|
+
error: string | null;
|
|
164
|
+
refetch: () => Promise<void>;
|
|
165
|
+
}
|
|
166
|
+
export interface UseCommonFeaturesListResult<T> {
|
|
167
|
+
data: T[];
|
|
168
|
+
loading: boolean;
|
|
169
|
+
error: string | null;
|
|
170
|
+
refetch: () => Promise<void>;
|
|
171
|
+
}
|
|
172
|
+
export interface FetchSocialLinksOptions {
|
|
173
|
+
showIn?: ('footer' | 'contact' | 'about' | 'header')[];
|
|
174
|
+
activeOnly?: boolean;
|
|
175
|
+
}
|
|
176
|
+
export interface FetchServicesOptions {
|
|
177
|
+
category?: ServiceCategory;
|
|
178
|
+
activeOnly?: boolean;
|
|
179
|
+
featuredOnly?: boolean;
|
|
180
|
+
}
|
|
181
|
+
export interface FetchSkillsOptions {
|
|
182
|
+
category?: SkillCategory;
|
|
183
|
+
activeOnly?: boolean;
|
|
184
|
+
featuredOnly?: boolean;
|
|
185
|
+
}
|
|
186
|
+
export interface FetchTestimonialsOptions {
|
|
187
|
+
activeOnly?: boolean;
|
|
188
|
+
featuredOnly?: boolean;
|
|
189
|
+
limit?: number;
|
|
190
|
+
}
|
|
191
|
+
export interface FetchPaymentOptionsOptions {
|
|
192
|
+
activeOnly?: boolean;
|
|
193
|
+
type?: PaymentType;
|
|
194
|
+
}
|
|
195
|
+
export type ProjectStatus = 'completed' | 'in-progress' | 'planned' | 'archived';
|
|
196
|
+
export declare const PROJECT_STATUS_NAMES: Record<ProjectStatus, string>;
|
|
197
|
+
export type ProjectCategory = 'web-app' | 'mobile-app' | 'desktop-app' | 'api' | 'library' | 'cli-tool' | 'browser-extension' | 'open-source' | 'client-work' | 'personal' | 'other';
|
|
198
|
+
export declare const PROJECT_CATEGORY_NAMES: Record<ProjectCategory, string>;
|
|
199
|
+
export interface ProjectLink {
|
|
200
|
+
type: 'live' | 'github' | 'demo' | 'docs' | 'playstore' | 'appstore' | 'npm' | 'other';
|
|
201
|
+
url: string;
|
|
202
|
+
label?: string;
|
|
203
|
+
}
|
|
204
|
+
export interface Project {
|
|
205
|
+
id: string;
|
|
206
|
+
title: string;
|
|
207
|
+
slug: string;
|
|
208
|
+
description: string;
|
|
209
|
+
shortDescription?: string;
|
|
210
|
+
category: ProjectCategory;
|
|
211
|
+
status: ProjectStatus;
|
|
212
|
+
thumbnailUrl?: string;
|
|
213
|
+
images?: string[];
|
|
214
|
+
technologies: string[];
|
|
215
|
+
features?: string[];
|
|
216
|
+
links?: ProjectLink[];
|
|
217
|
+
clientName?: string;
|
|
218
|
+
startDate?: string;
|
|
219
|
+
endDate?: string;
|
|
220
|
+
isActive: boolean;
|
|
221
|
+
isFeatured: boolean;
|
|
222
|
+
order: number;
|
|
223
|
+
updatedAt: Timestamp;
|
|
224
|
+
}
|
|
225
|
+
export interface FetchProjectsOptions {
|
|
226
|
+
category?: ProjectCategory;
|
|
227
|
+
status?: ProjectStatus;
|
|
228
|
+
activeOnly?: boolean;
|
|
229
|
+
featuredOnly?: boolean;
|
|
230
|
+
limit?: number;
|
|
231
|
+
}
|
|
232
|
+
//# sourceMappingURL=commonFeatures.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commonFeatures.d.ts","sourceRoot":"","sources":["../../src/types/commonFeatures.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
import { Timestamp } from 'firebase/firestore';
|
|
2
|
+
/**
|
|
3
|
+
* All available features in shared-features
|
|
4
|
+
*/
|
|
5
|
+
export type FeatureId = 'campaigns' | 'broadcasts' | 'contactInfo' | 'developerInfo' | 'socialLinks' | 'paymentOptions' | 'addressInfo' | 'services' | 'skills' | 'testimonials' | 'projects';
|
|
6
|
+
/**
|
|
7
|
+
* Feature names for display
|
|
8
|
+
*/
|
|
9
|
+
export declare const FEATURE_NAMES: Record<FeatureId, string>;
|
|
10
|
+
/**
|
|
11
|
+
* Configuration for a single feature
|
|
12
|
+
*/
|
|
13
|
+
export interface FeatureConfig {
|
|
14
|
+
/** Whether the feature is globally enabled */
|
|
15
|
+
enabled: boolean;
|
|
16
|
+
/** Current version of this feature's API */
|
|
17
|
+
version: number;
|
|
18
|
+
/** Minimum version required (older versions will get deprecation warnings) */
|
|
19
|
+
minVersion: number;
|
|
20
|
+
/** Maximum supported version */
|
|
21
|
+
maxVersion: number;
|
|
22
|
+
/** Optional deprecation message for older versions */
|
|
23
|
+
deprecationMessage?: string;
|
|
24
|
+
/** Whether this feature requires authentication */
|
|
25
|
+
requiresAuth?: boolean;
|
|
26
|
+
/** Platforms this feature is available on (empty = all) */
|
|
27
|
+
availablePlatforms?: string[];
|
|
28
|
+
/** Projects this feature is available for (empty = all) */
|
|
29
|
+
availableProjects?: string[];
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* All feature configurations stored in Firestore
|
|
33
|
+
*/
|
|
34
|
+
export type FeatureConfigs = Record<FeatureId, FeatureConfig>;
|
|
35
|
+
/**
|
|
36
|
+
* Feature flags document stored in Firestore (zaions_feature_flags/main)
|
|
37
|
+
*/
|
|
38
|
+
export interface FeatureFlagsDocument {
|
|
39
|
+
/** Document ID (always 'main') */
|
|
40
|
+
id: string;
|
|
41
|
+
/** Global kill switch - disables all shared-features */
|
|
42
|
+
globalEnabled: boolean;
|
|
43
|
+
/** Current global API version (e.g., 'v1', 'v2') */
|
|
44
|
+
currentApiVersion: string;
|
|
45
|
+
/** Supported API versions (for backwards compatibility) */
|
|
46
|
+
supportedApiVersions: string[];
|
|
47
|
+
/** Individual feature configurations */
|
|
48
|
+
features: FeatureConfigs;
|
|
49
|
+
/** Maintenance mode - shows maintenance message to users */
|
|
50
|
+
maintenanceMode: boolean;
|
|
51
|
+
/** Maintenance message to display */
|
|
52
|
+
maintenanceMessage?: string;
|
|
53
|
+
/** Expected maintenance end time */
|
|
54
|
+
maintenanceEndTime?: Timestamp;
|
|
55
|
+
/** Last updated timestamp */
|
|
56
|
+
updatedAt: Timestamp;
|
|
57
|
+
/** Who last updated the flags */
|
|
58
|
+
updatedBy: string;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Feature version preferences for a consumer project
|
|
62
|
+
* Used during initialization to specify which versions to use
|
|
63
|
+
*/
|
|
64
|
+
export interface ConsumerFeatureVersions {
|
|
65
|
+
/** Campaigns API version (default: latest) */
|
|
66
|
+
campaigns?: number;
|
|
67
|
+
/** Broadcasts API version (default: latest) */
|
|
68
|
+
broadcasts?: number;
|
|
69
|
+
/** Contact info API version (default: latest) */
|
|
70
|
+
contactInfo?: number;
|
|
71
|
+
/** Developer info API version (default: latest) */
|
|
72
|
+
developerInfo?: number;
|
|
73
|
+
/** Social links API version (default: latest) */
|
|
74
|
+
socialLinks?: number;
|
|
75
|
+
/** Payment options API version (default: latest) */
|
|
76
|
+
paymentOptions?: number;
|
|
77
|
+
/** Address info API version (default: latest) */
|
|
78
|
+
addressInfo?: number;
|
|
79
|
+
/** Services API version (default: latest) */
|
|
80
|
+
services?: number;
|
|
81
|
+
/** Skills API version (default: latest) */
|
|
82
|
+
skills?: number;
|
|
83
|
+
/** Testimonials API version (default: latest) */
|
|
84
|
+
testimonials?: number;
|
|
85
|
+
/** Projects API version (default: latest) */
|
|
86
|
+
projects?: number;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Result of checking if a feature is available
|
|
90
|
+
*/
|
|
91
|
+
export interface FeatureAvailability {
|
|
92
|
+
/** Whether the feature is available for use */
|
|
93
|
+
available: boolean;
|
|
94
|
+
/** Whether the feature is enabled globally */
|
|
95
|
+
enabled: boolean;
|
|
96
|
+
/** Current feature version */
|
|
97
|
+
version: number;
|
|
98
|
+
/** Whether the consumer's version is deprecated */
|
|
99
|
+
deprecated: boolean;
|
|
100
|
+
/** Deprecation warning message if applicable */
|
|
101
|
+
deprecationWarning?: string;
|
|
102
|
+
/** Reason why feature is unavailable (if not available) */
|
|
103
|
+
unavailableReason?: string;
|
|
104
|
+
/** Whether an upgrade is required */
|
|
105
|
+
upgradeRequired: boolean;
|
|
106
|
+
/** Message about available upgrade */
|
|
107
|
+
upgradeMessage?: string;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Overall status of shared-features for a consumer
|
|
111
|
+
*/
|
|
112
|
+
export interface SharedFeaturesStatus {
|
|
113
|
+
/** Whether shared-features is operational */
|
|
114
|
+
operational: boolean;
|
|
115
|
+
/** Whether in maintenance mode */
|
|
116
|
+
maintenanceMode: boolean;
|
|
117
|
+
/** Maintenance message if applicable */
|
|
118
|
+
maintenanceMessage?: string;
|
|
119
|
+
/** Global API version */
|
|
120
|
+
apiVersion: string;
|
|
121
|
+
/** Individual feature availabilities */
|
|
122
|
+
features: Record<FeatureId, FeatureAvailability>;
|
|
123
|
+
/** List of deprecated features being used */
|
|
124
|
+
deprecatedFeatures: FeatureId[];
|
|
125
|
+
/** List of features requiring upgrade */
|
|
126
|
+
upgradeRequiredFeatures: FeatureId[];
|
|
127
|
+
/** When status was last fetched */
|
|
128
|
+
fetchedAt: Date;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Input for updating a feature's configuration
|
|
132
|
+
*/
|
|
133
|
+
export interface UpdateFeatureConfigInput {
|
|
134
|
+
featureId: FeatureId;
|
|
135
|
+
enabled?: boolean;
|
|
136
|
+
version?: number;
|
|
137
|
+
minVersion?: number;
|
|
138
|
+
maxVersion?: number;
|
|
139
|
+
deprecationMessage?: string;
|
|
140
|
+
requiresAuth?: boolean;
|
|
141
|
+
availablePlatforms?: string[];
|
|
142
|
+
availableProjects?: string[];
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Input for updating global flags
|
|
146
|
+
*/
|
|
147
|
+
export interface UpdateGlobalFlagsInput {
|
|
148
|
+
globalEnabled?: boolean;
|
|
149
|
+
currentApiVersion?: string;
|
|
150
|
+
supportedApiVersions?: string[];
|
|
151
|
+
maintenanceMode?: boolean;
|
|
152
|
+
maintenanceMessage?: string;
|
|
153
|
+
maintenanceEndTime?: Date | null;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Options for useFeatureFlags hook
|
|
157
|
+
*/
|
|
158
|
+
export interface UseFeatureFlagsOptions {
|
|
159
|
+
/** Whether to auto-refresh flags periodically */
|
|
160
|
+
autoRefresh?: boolean;
|
|
161
|
+
/** Refresh interval in milliseconds (default: 5 minutes) */
|
|
162
|
+
refreshInterval?: number;
|
|
163
|
+
/** Whether to fetch immediately on mount (default: true) */
|
|
164
|
+
autoFetch?: boolean;
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Result of useFeatureFlags hook
|
|
168
|
+
*/
|
|
169
|
+
export interface UseFeatureFlagsResult {
|
|
170
|
+
/** Overall status of shared-features */
|
|
171
|
+
status: SharedFeaturesStatus | null;
|
|
172
|
+
/** Whether flags are being fetched */
|
|
173
|
+
loading: boolean;
|
|
174
|
+
/** Error message if fetch failed */
|
|
175
|
+
error: string | null;
|
|
176
|
+
/** Refetch feature flags */
|
|
177
|
+
refetch: () => Promise<void>;
|
|
178
|
+
/** Check if a specific feature is available */
|
|
179
|
+
isFeatureAvailable: (featureId: FeatureId) => boolean;
|
|
180
|
+
/** Get availability details for a feature */
|
|
181
|
+
getFeatureAvailability: (featureId: FeatureId) => FeatureAvailability | null;
|
|
182
|
+
/** Check if any features are deprecated */
|
|
183
|
+
hasDeprecatedFeatures: boolean;
|
|
184
|
+
/** Check if any features require upgrade */
|
|
185
|
+
hasUpgradeRequired: boolean;
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Default feature configuration for new features
|
|
189
|
+
*/
|
|
190
|
+
export declare const DEFAULT_FEATURE_CONFIG: FeatureConfig;
|
|
191
|
+
/**
|
|
192
|
+
* Default feature flags document
|
|
193
|
+
*/
|
|
194
|
+
export declare const DEFAULT_FEATURE_FLAGS: Omit<FeatureFlagsDocument, 'updatedAt' | 'updatedBy'>;
|
|
195
|
+
/**
|
|
196
|
+
* Firestore collection name for feature flags
|
|
197
|
+
*/
|
|
198
|
+
export declare const COLLECTION_FEATURE_FLAGS = "zaions_feature_flags";
|
|
199
|
+
/**
|
|
200
|
+
* Document ID for the main feature flags document
|
|
201
|
+
*/
|
|
202
|
+
export declare const FEATURE_FLAGS_DOC_ID = "main";
|
|
203
|
+
//# sourceMappingURL=featureFlags.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"featureFlags.d.ts","sourceRoot":"","sources":["../../src/types/featureFlags.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.cjs
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const commonFeatures = require("../commonFeatures-DhWaBEv_.cjs");
|
|
3
4
|
const DEFAULT_FREQUENCY_DAYS = 20;
|
|
4
5
|
const DEFAULT_CAMPAIGN_PRIORITY = 50;
|
|
5
6
|
const VARIANT_NAMES = {
|
|
@@ -137,6 +138,22 @@ const EVENT_TYPE_NAMES = {
|
|
|
137
138
|
const DEFAULT_BROADCAST_PRIORITY = 50;
|
|
138
139
|
const MAX_NOTIFICATION_TITLE_LENGTH = 100;
|
|
139
140
|
const MAX_NOTIFICATION_MESSAGE_LENGTH = 500;
|
|
141
|
+
exports.COLLECTION_FEATURE_FLAGS = commonFeatures.COLLECTION_FEATURE_FLAGS;
|
|
142
|
+
exports.COMMON_FEATURE_COLLECTIONS = commonFeatures.COMMON_FEATURE_COLLECTIONS;
|
|
143
|
+
exports.DEFAULT_ADDRESS_INFO = commonFeatures.DEFAULT_ADDRESS_INFO;
|
|
144
|
+
exports.DEFAULT_CONTACT_INFO = commonFeatures.DEFAULT_CONTACT_INFO;
|
|
145
|
+
exports.DEFAULT_DEVELOPER_INFO = commonFeatures.DEFAULT_DEVELOPER_INFO;
|
|
146
|
+
exports.DEFAULT_FEATURE_CONFIG = commonFeatures.DEFAULT_FEATURE_CONFIG;
|
|
147
|
+
exports.DEFAULT_FEATURE_FLAGS = commonFeatures.DEFAULT_FEATURE_FLAGS;
|
|
148
|
+
exports.FEATURE_FLAGS_DOC_ID = commonFeatures.FEATURE_FLAGS_DOC_ID;
|
|
149
|
+
exports.FEATURE_NAMES = commonFeatures.FEATURE_NAMES;
|
|
150
|
+
exports.PAYMENT_TYPE_NAMES = commonFeatures.PAYMENT_TYPE_NAMES;
|
|
151
|
+
exports.PROJECT_CATEGORY_NAMES = commonFeatures.PROJECT_CATEGORY_NAMES;
|
|
152
|
+
exports.PROJECT_STATUS_NAMES = commonFeatures.PROJECT_STATUS_NAMES;
|
|
153
|
+
exports.SERVICE_CATEGORY_NAMES = commonFeatures.SERVICE_CATEGORY_NAMES;
|
|
154
|
+
exports.SKILL_CATEGORY_NAMES = commonFeatures.SKILL_CATEGORY_NAMES;
|
|
155
|
+
exports.SKILL_LEVEL_NAMES = commonFeatures.SKILL_LEVEL_NAMES;
|
|
156
|
+
exports.SOCIAL_PLATFORM_NAMES = commonFeatures.SOCIAL_PLATFORM_NAMES;
|
|
140
157
|
exports.CATEGORY_DESCRIPTIONS = CATEGORY_DESCRIPTIONS;
|
|
141
158
|
exports.CATEGORY_NAMES = CATEGORY_NAMES;
|
|
142
159
|
exports.COLLECTIONS = COLLECTIONS;
|