@timardex/cluemart-shared 1.7.0 → 1.7.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/dist/ad-BUYzE6zx.d.ts +181 -0
- package/dist/ad-BhLoEul3.d.mts +181 -0
- package/dist/affiliate-BbtjeUP4.d.mts +73 -0
- package/dist/affiliate-C51nzKsw.d.ts +73 -0
- package/dist/apollo/index.cjs +1383 -0
- package/dist/apollo/index.cjs.map +1 -0
- package/dist/apollo/index.d.mts +323 -0
- package/dist/apollo/index.d.ts +323 -0
- package/dist/apollo/index.mjs +1295 -0
- package/dist/apollo/index.mjs.map +1 -0
- package/dist/auth/index.cjs +1727 -0
- package/dist/auth/index.cjs.map +1 -0
- package/dist/auth/index.d.mts +166 -0
- package/dist/auth/index.d.ts +166 -0
- package/dist/auth/index.mjs +380 -0
- package/dist/auth/index.mjs.map +1 -0
- package/dist/chunk-32MKHJTX.mjs +1207 -0
- package/dist/chunk-32MKHJTX.mjs.map +1 -0
- package/dist/{chunk-RKIRWZCH.mjs → chunk-AYO3E4DM.mjs} +39 -183
- package/dist/chunk-AYO3E4DM.mjs.map +1 -0
- package/dist/{chunk-ZZJSCYJK.mjs → chunk-BIJ5NDXW.mjs} +46 -42
- package/dist/chunk-BIJ5NDXW.mjs.map +1 -0
- package/dist/chunk-DQ7ZHIXW.mjs +26 -0
- package/dist/chunk-DQ7ZHIXW.mjs.map +1 -0
- package/dist/{chunk-MVQ3CFQR.mjs → chunk-ILILH7E2.mjs} +12 -23
- package/dist/chunk-ILILH7E2.mjs.map +1 -0
- package/dist/{chunk-TAECMXM4.mjs → chunk-LBEJECG3.mjs} +249 -219
- package/dist/{chunk-TAECMXM4.mjs.map → chunk-LBEJECG3.mjs.map} +1 -1
- package/dist/{chunk-HZMP7GXC.mjs → chunk-R6PCFOYO.mjs} +949 -2629
- package/dist/chunk-R6PCFOYO.mjs.map +1 -0
- package/dist/chunk-RAYUJODN.mjs +45 -0
- package/dist/chunk-RAYUJODN.mjs.map +1 -0
- package/dist/chunk-SD42WIMV.mjs +297 -0
- package/dist/chunk-SD42WIMV.mjs.map +1 -0
- package/dist/chunk-VPANTTZI.mjs +262 -0
- package/dist/chunk-VPANTTZI.mjs.map +1 -0
- package/dist/{chunk-KZTOISPA.mjs → chunk-X3OLM35T.mjs} +14 -8
- package/dist/chunk-X3OLM35T.mjs.map +1 -0
- package/dist/{contactUs-H7799pWe.d.ts → contactUs--NoohZBu.d.ts} +1 -1
- package/dist/{contactUs-DGrDzJaM.d.mts → contactUs-CBWzefUS.d.mts} +1 -1
- package/dist/enums/index.cjs +13 -7
- package/dist/enums/index.cjs.map +1 -1
- package/dist/enums/index.d.mts +15 -9
- package/dist/enums/index.d.ts +15 -9
- package/dist/enums/index.mjs +1 -1
- package/dist/formFields/index.cjs +136 -73
- package/dist/formFields/index.cjs.map +1 -1
- package/dist/formFields/index.d.mts +3 -2
- package/dist/formFields/index.d.ts +3 -2
- package/dist/formFields/index.mjs +9 -4
- package/dist/{global-fKbMmluy.d.ts → global-CUYYxpy2.d.ts} +12 -11
- package/dist/{global-BUUfmCo7.d.mts → global-DePDtOFt.d.mts} +12 -11
- package/dist/graphql/index.cjs +694 -1251
- package/dist/graphql/index.cjs.map +1 -1
- package/dist/graphql/index.d.mts +423 -173
- package/dist/graphql/index.d.ts +423 -173
- package/dist/graphql/index.mjs +33 -21
- package/dist/hooks/index.cjs +937 -307
- package/dist/hooks/index.cjs.map +1 -1
- package/dist/hooks/index.d.mts +10 -4
- package/dist/hooks/index.d.ts +10 -4
- package/dist/hooks/index.mjs +170 -58
- package/dist/hooks/index.mjs.map +1 -1
- package/dist/images/apple-maps-icon.webp.d.ts +8 -1
- package/dist/images/banner-horizontal.webp.d.ts +8 -1
- package/dist/images/banner-vertical.webp.d.ts +8 -1
- package/dist/images/cluiTui.webp.d.ts +8 -1
- package/dist/images/corporate.webp.d.ts +8 -1
- package/dist/images/facebook.webp.d.ts +8 -1
- package/dist/images/gazebo-top.webp.d.ts +8 -1
- package/dist/images/google-maps-icon.webp.d.ts +8 -1
- package/dist/images/googleMaps-logo-dark.webp.d.ts +8 -1
- package/dist/images/googleMaps-logo-light.webp.d.ts +8 -1
- package/dist/images/instagram.webp.d.ts +8 -1
- package/dist/images/logo-atr.webp.d.ts +8 -1
- package/dist/images/logo-dark.webp.d.ts +8 -1
- package/dist/images/logo.webp.d.ts +8 -1
- package/dist/images/meet.webp.d.ts +8 -1
- package/dist/images/mini-market1.webp.d.ts +8 -1
- package/dist/images/mini-market2.webp.d.ts +8 -1
- package/dist/images/mini-market3.webp.d.ts +8 -1
- package/dist/images/mini-market4.webp.d.ts +8 -1
- package/dist/images/mini-market5.webp.d.ts +8 -1
- package/dist/images/poll.webp.d.ts +8 -1
- package/dist/images/poster1.webp.d.ts +8 -1
- package/dist/images/poster2.webp.d.ts +8 -1
- package/dist/images/poster3.webp.d.ts +8 -1
- package/dist/images/poster4.webp.d.ts +8 -1
- package/dist/images/private.webp.d.ts +8 -1
- package/dist/images/qr-code.webp.d.ts +8 -1
- package/dist/images/school.webp.d.ts +8 -1
- package/dist/images/sima.webp.d.ts +8 -1
- package/dist/images/store-android.webp.d.ts +8 -1
- package/dist/images/store-ios.webp.d.ts +8 -1
- package/dist/images/tablas.webp.d.ts +8 -1
- package/dist/images/telefonos.webp.d.ts +8 -1
- package/dist/images/tiktok.webp.d.ts +8 -1
- package/dist/images/tip.webp.d.ts +8 -1
- package/dist/images/ugralos.webp.d.ts +8 -1
- package/dist/images/waze-maps-icon.webp.d.ts +8 -1
- package/dist/images/website.webp.d.ts +8 -1
- package/dist/images/youtube.webp.d.ts +8 -1
- package/dist/index.cjs +1655 -1705
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.mts +654 -240
- package/dist/index.d.ts +654 -240
- package/dist/index.mjs +1617 -1704
- package/dist/index.mjs.map +1 -1
- package/dist/map/index.cjs +14 -9
- package/dist/map/index.cjs.map +1 -1
- package/dist/map/index.d.mts +16 -13
- package/dist/map/index.d.ts +16 -13
- package/dist/map/index.mjs +14 -9
- package/dist/map/index.mjs.map +1 -1
- package/dist/{resourceActivities-BL_12IAo.d.ts → resourceActivities-CMUcn2P7.d.ts} +9 -4
- package/dist/{resourceActivities-zczOntNk.d.mts → resourceActivities-CwbJFGIp.d.mts} +9 -4
- package/dist/sharing/index.cjs +39 -1252
- package/dist/sharing/index.cjs.map +1 -1
- package/dist/sharing/index.d.mts +17 -5
- package/dist/sharing/index.d.ts +17 -5
- package/dist/sharing/index.mjs +34 -30
- package/dist/subscription-BU8GvH2K.d.ts +12 -0
- package/dist/subscription-bmAdrnfi.d.mts +12 -0
- package/dist/types/index.cjs +15 -2
- package/dist/types/index.cjs.map +1 -1
- package/dist/types/index.d.mts +10 -23
- package/dist/types/index.d.ts +10 -23
- package/dist/types/index.mjs +9 -5
- package/dist/user-D47MLFyH.d.ts +134 -0
- package/dist/user-DE8edl3u.d.mts +134 -0
- package/dist/utils/index.cjs +355 -136
- package/dist/utils/index.cjs.map +1 -1
- package/dist/utils/index.d.mts +87 -35
- package/dist/utils/index.d.ts +87 -35
- package/dist/utils/index.mjs +42 -15
- package/package.json +31 -10
- package/dist/ad-CVkVX_z5.d.ts +0 -296
- package/dist/ad-DA9ECAhK.d.mts +0 -296
- package/dist/affiliate-1RtkLnLP.d.ts +0 -35
- package/dist/affiliate-Cos2Syz5.d.mts +0 -35
- package/dist/chunk-HZMP7GXC.mjs.map +0 -1
- package/dist/chunk-KZTOISPA.mjs.map +0 -1
- package/dist/chunk-MVQ3CFQR.mjs.map +0 -1
- package/dist/chunk-RKIRWZCH.mjs.map +0 -1
- package/dist/chunk-ZZJSCYJK.mjs.map +0 -1
|
@@ -0,0 +1,1727 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
"use client";
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
20
|
+
|
|
21
|
+
// src/auth/index.ts
|
|
22
|
+
var auth_exports = {};
|
|
23
|
+
__export(auth_exports, {
|
|
24
|
+
ADMIN_APP_ROLES: () => ADMIN_APP_ROLES,
|
|
25
|
+
ADMIN_DASHBOARD_CONTEXTS: () => ADMIN_DASHBOARD_CONTEXTS,
|
|
26
|
+
DEFAULT_LIMITS: () => DEFAULT_LIMITS,
|
|
27
|
+
NO_LICENCE_FLAGS: () => NO_LICENCE_FLAGS,
|
|
28
|
+
PERMISSIONS: () => PERMISSIONS,
|
|
29
|
+
ROLE_PERMISSIONS: () => ROLE_PERMISSIONS,
|
|
30
|
+
UserProvider: () => UserProvider,
|
|
31
|
+
WILDCARD_PERMISSION: () => WILDCARD_PERMISSION,
|
|
32
|
+
canAccessAdminApp: () => canAccessAdminApp,
|
|
33
|
+
canAccessAdminPath: () => canAccessAdminPath,
|
|
34
|
+
createAuthManager: () => createAuthManager,
|
|
35
|
+
getDefaultAdminHome: () => getDefaultAdminHome,
|
|
36
|
+
getLicenceFlagsByRole: () => getLicenceFlagsByRole,
|
|
37
|
+
getPermissionsForRoles: () => getPermissionsForRoles,
|
|
38
|
+
getUsableAdminContexts: () => getUsableAdminContexts,
|
|
39
|
+
hasAllPermissions: () => hasAllPermissions,
|
|
40
|
+
hasAnyPermission: () => hasAnyPermission,
|
|
41
|
+
hasAnyRole: () => hasAnyRole,
|
|
42
|
+
hasLicence: () => hasLicence,
|
|
43
|
+
hasPermission: () => hasPermission,
|
|
44
|
+
hasRole: () => hasRole,
|
|
45
|
+
hasUserLicenceType: () => hasUserLicenceType,
|
|
46
|
+
isLicencedResourceType: () => isLicencedResourceType,
|
|
47
|
+
isProfileBadgeLicence: () => isProfileBadgeLicence,
|
|
48
|
+
permissionListIncludes: () => permissionListIncludes,
|
|
49
|
+
resolveAdminContextFromPath: () => resolveAdminContextFromPath,
|
|
50
|
+
useAuthCore: () => useAuthCore,
|
|
51
|
+
useAuthUser: () => useAuthUser
|
|
52
|
+
});
|
|
53
|
+
module.exports = __toCommonJS(auth_exports);
|
|
54
|
+
|
|
55
|
+
// src/auth/createAuthManager.ts
|
|
56
|
+
function createAuthManager() {
|
|
57
|
+
let logoutFn = null;
|
|
58
|
+
let userRefetchFn = null;
|
|
59
|
+
let logoutPromise = null;
|
|
60
|
+
return {
|
|
61
|
+
handleRefetchUser: async () => {
|
|
62
|
+
if (userRefetchFn) {
|
|
63
|
+
await userRefetchFn();
|
|
64
|
+
} else {
|
|
65
|
+
console.warn("\u274C User refetch function not set!");
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
logout() {
|
|
69
|
+
if (logoutPromise !== null) return logoutPromise;
|
|
70
|
+
if (logoutFn === null) {
|
|
71
|
+
console.warn("\u274C Logout function not set!");
|
|
72
|
+
return Promise.resolve();
|
|
73
|
+
}
|
|
74
|
+
logoutPromise = logoutFn().finally(() => {
|
|
75
|
+
logoutPromise = null;
|
|
76
|
+
});
|
|
77
|
+
return logoutPromise;
|
|
78
|
+
},
|
|
79
|
+
setLogout(fn) {
|
|
80
|
+
logoutFn = fn;
|
|
81
|
+
},
|
|
82
|
+
setUserRefetch(fn) {
|
|
83
|
+
userRefetchFn = fn;
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
// src/types/subscription.ts
|
|
89
|
+
var TIERS_BY_PRIORITY = ["pro_plus", "pro", "standard"];
|
|
90
|
+
var TIER_FROM_LICENCE = {
|
|
91
|
+
["pro_event" /* PRO_EVENT */]: "pro",
|
|
92
|
+
["pro_plus_event" /* PRO_PLUS_EVENT */]: "pro_plus",
|
|
93
|
+
["pro_plus_vendor" /* PRO_PLUS_VENDOR */]: "pro_plus",
|
|
94
|
+
["pro_vendor" /* PRO_VENDOR */]: "pro",
|
|
95
|
+
["standard_event" /* STANDARD_EVENT */]: "standard",
|
|
96
|
+
["standard_partner" /* STANDARD_PARTNER */]: "standard",
|
|
97
|
+
["standard_vendor" /* STANDARD_VENDOR */]: "standard",
|
|
98
|
+
["standard_affiliate" /* STANDARD_AFFILIATE */]: "standard",
|
|
99
|
+
["standard_school" /* STANDARD_SCHOOL */]: "standard"
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
// src/auth/licenceUtils.ts
|
|
103
|
+
function isLicencedResourceType(resourceType) {
|
|
104
|
+
return resourceType !== "affiliate" /* AFFILIATE */ && resourceType !== "school" /* SCHOOL */;
|
|
105
|
+
}
|
|
106
|
+
function isProfileBadgeLicence(licenceType) {
|
|
107
|
+
return licenceType !== "standard_affiliate" /* STANDARD_AFFILIATE */ && licenceType !== "standard_school" /* STANDARD_SCHOOL */;
|
|
108
|
+
}
|
|
109
|
+
var hasUserLicenceType = (authUser, licenceType) => authUser?.licences?.some((licence) => licence.licenceType === licenceType) ?? false;
|
|
110
|
+
var hasLicence = (authUser, licenceType) => {
|
|
111
|
+
const directLicence = authUser?.licences?.some(
|
|
112
|
+
(licence) => licence.licenceType?.includes(licenceType)
|
|
113
|
+
) ?? false;
|
|
114
|
+
return {
|
|
115
|
+
directLicence
|
|
116
|
+
};
|
|
117
|
+
};
|
|
118
|
+
var DEFAULT_LIMITS = {
|
|
119
|
+
// 1 means calendar/productMenu is enabled, 0 means disabled
|
|
120
|
+
availability: { pro: 1, pro_plus: 1, standard: 0 },
|
|
121
|
+
calendar: { pro: 1, pro_plus: 1, standard: 0 },
|
|
122
|
+
images: { pro: 12, pro_plus: 12, standard: 6 },
|
|
123
|
+
posters: { pro: 5, pro_plus: 5, standard: 5 },
|
|
124
|
+
productsList: { pro: 1, pro_plus: 1, standard: 0 },
|
|
125
|
+
relationShare: { pro: 1, pro_plus: 1, standard: 0 },
|
|
126
|
+
statistics: { pro: 1, pro_plus: 1, standard: 0 }
|
|
127
|
+
};
|
|
128
|
+
var NO_LICENCE_FLAGS = {
|
|
129
|
+
event: {
|
|
130
|
+
pro_plus: false,
|
|
131
|
+
// eslint-disable-next-line sort-keys
|
|
132
|
+
pro: false,
|
|
133
|
+
standard: false
|
|
134
|
+
},
|
|
135
|
+
partner: {
|
|
136
|
+
pro_plus: false,
|
|
137
|
+
// eslint-disable-next-line sort-keys
|
|
138
|
+
pro: false,
|
|
139
|
+
standard: false
|
|
140
|
+
},
|
|
141
|
+
vendor: {
|
|
142
|
+
pro_plus: false,
|
|
143
|
+
// eslint-disable-next-line sort-keys
|
|
144
|
+
pro: false,
|
|
145
|
+
standard: false
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
function getLicenceFlagsByRole(licences) {
|
|
149
|
+
const normalized = licences?.map((l) => l.toLowerCase()) ?? [];
|
|
150
|
+
const hasAnyLicence = normalized.length > 0;
|
|
151
|
+
function resolve(role) {
|
|
152
|
+
const result = {
|
|
153
|
+
pro_plus: false,
|
|
154
|
+
// eslint-disable-next-line sort-keys
|
|
155
|
+
pro: false,
|
|
156
|
+
standard: false
|
|
157
|
+
};
|
|
158
|
+
for (const tier of TIERS_BY_PRIORITY) {
|
|
159
|
+
if (normalized.some((l) => l.startsWith(`${tier}_${role}`))) {
|
|
160
|
+
result[tier] = true;
|
|
161
|
+
break;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
if (!hasAnyLicence) {
|
|
165
|
+
result.pro = true;
|
|
166
|
+
}
|
|
167
|
+
return result;
|
|
168
|
+
}
|
|
169
|
+
return {
|
|
170
|
+
event: resolve("event" /* EVENT */),
|
|
171
|
+
partner: resolve("partner" /* PARTNER */),
|
|
172
|
+
vendor: resolve("vendor" /* VENDOR */)
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
// src/auth/permissions/permissions.ts
|
|
177
|
+
var PERMISSIONS = [
|
|
178
|
+
"*",
|
|
179
|
+
// Dashboards
|
|
180
|
+
"dashboard.admin",
|
|
181
|
+
"dashboard.affiliate",
|
|
182
|
+
"dashboard.customer",
|
|
183
|
+
"dashboard.event",
|
|
184
|
+
"dashboard.partner",
|
|
185
|
+
"dashboard.school",
|
|
186
|
+
"dashboard.vendor",
|
|
187
|
+
// Admin: users
|
|
188
|
+
"users.delete",
|
|
189
|
+
"users.read",
|
|
190
|
+
"users.update",
|
|
191
|
+
// Admin: events
|
|
192
|
+
"events.create",
|
|
193
|
+
"events.delete",
|
|
194
|
+
"events.read",
|
|
195
|
+
"events.update",
|
|
196
|
+
// Admin: vendors
|
|
197
|
+
"vendors.create",
|
|
198
|
+
"vendors.delete",
|
|
199
|
+
"vendors.read",
|
|
200
|
+
"vendors.update",
|
|
201
|
+
// Admin: partners
|
|
202
|
+
"partners.create",
|
|
203
|
+
"partners.delete",
|
|
204
|
+
"partners.read",
|
|
205
|
+
"partners.update",
|
|
206
|
+
// Admin: schools
|
|
207
|
+
"schools.create",
|
|
208
|
+
"schools.delete",
|
|
209
|
+
"schools.read",
|
|
210
|
+
"schools.update",
|
|
211
|
+
// Admin: affiliates
|
|
212
|
+
"affiliates.create",
|
|
213
|
+
"affiliates.delete",
|
|
214
|
+
"affiliates.read",
|
|
215
|
+
"affiliates.update",
|
|
216
|
+
// Admin: ads / posts / settings
|
|
217
|
+
"ads.create",
|
|
218
|
+
"ads.delete",
|
|
219
|
+
"ads.read",
|
|
220
|
+
"ads.update",
|
|
221
|
+
"posts.create",
|
|
222
|
+
"posts.delete",
|
|
223
|
+
"posts.read",
|
|
224
|
+
"posts.update",
|
|
225
|
+
"settings.read",
|
|
226
|
+
"settings.update",
|
|
227
|
+
// Product: own-resource management
|
|
228
|
+
"affiliates.manage_own",
|
|
229
|
+
"events.manage_own",
|
|
230
|
+
"partners.manage_own",
|
|
231
|
+
"schools.manage_own",
|
|
232
|
+
"vendors.manage_own"
|
|
233
|
+
];
|
|
234
|
+
var WILDCARD_PERMISSION = "*";
|
|
235
|
+
|
|
236
|
+
// src/auth/permissions/rolePermissions.ts
|
|
237
|
+
var ADMIN_PERMISSIONS = [
|
|
238
|
+
"dashboard.admin",
|
|
239
|
+
"events.read",
|
|
240
|
+
"events.create",
|
|
241
|
+
"events.update",
|
|
242
|
+
"events.delete",
|
|
243
|
+
"vendors.read",
|
|
244
|
+
"vendors.create",
|
|
245
|
+
"vendors.update",
|
|
246
|
+
"vendors.delete",
|
|
247
|
+
"partners.read",
|
|
248
|
+
"partners.create",
|
|
249
|
+
"partners.update",
|
|
250
|
+
"partners.delete",
|
|
251
|
+
"schools.read",
|
|
252
|
+
"schools.create",
|
|
253
|
+
"schools.update",
|
|
254
|
+
"schools.delete",
|
|
255
|
+
"affiliates.read",
|
|
256
|
+
"affiliates.create",
|
|
257
|
+
"affiliates.update",
|
|
258
|
+
"affiliates.delete",
|
|
259
|
+
"ads.read",
|
|
260
|
+
"ads.create",
|
|
261
|
+
"ads.update",
|
|
262
|
+
"ads.delete",
|
|
263
|
+
"posts.read",
|
|
264
|
+
"posts.create",
|
|
265
|
+
"posts.update",
|
|
266
|
+
"posts.delete"
|
|
267
|
+
];
|
|
268
|
+
var ROLE_PERMISSIONS = {
|
|
269
|
+
["super_admin" /* SUPER_ADMIN */]: ["*"],
|
|
270
|
+
["admin" /* ADMIN */]: ADMIN_PERMISSIONS,
|
|
271
|
+
["customer" /* CUSTOMER */]: ["dashboard.customer"],
|
|
272
|
+
["event" /* EVENT */]: ["dashboard.event", "events.manage_own"],
|
|
273
|
+
["vendor" /* VENDOR */]: ["dashboard.vendor", "vendors.manage_own"],
|
|
274
|
+
["partner" /* PARTNER */]: ["dashboard.partner", "partners.manage_own"],
|
|
275
|
+
["school" /* SCHOOL */]: ["dashboard.school", "schools.manage_own"],
|
|
276
|
+
["affiliate" /* AFFILIATE */]: ["dashboard.affiliate", "affiliates.manage_own"]
|
|
277
|
+
};
|
|
278
|
+
|
|
279
|
+
// src/auth/permissions/helpers.ts
|
|
280
|
+
function normalizeRoles(roles) {
|
|
281
|
+
if (!roles?.length) return [];
|
|
282
|
+
return roles;
|
|
283
|
+
}
|
|
284
|
+
function getPermissionsForRoles(roles) {
|
|
285
|
+
const seen = /* @__PURE__ */ new Set();
|
|
286
|
+
const result = [];
|
|
287
|
+
for (const role of normalizeRoles(roles)) {
|
|
288
|
+
const perms = ROLE_PERMISSIONS[role] ?? [];
|
|
289
|
+
for (const perm of perms) {
|
|
290
|
+
if (!seen.has(perm)) {
|
|
291
|
+
seen.add(perm);
|
|
292
|
+
result.push(perm);
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
return result;
|
|
297
|
+
}
|
|
298
|
+
function permissionListIncludes(permissions, permission) {
|
|
299
|
+
if (!permissions?.length) return false;
|
|
300
|
+
const set = new Set(permissions);
|
|
301
|
+
if (set.has(WILDCARD_PERMISSION)) return true;
|
|
302
|
+
return set.has(permission);
|
|
303
|
+
}
|
|
304
|
+
function hasPermission(roles, permission) {
|
|
305
|
+
return permissionListIncludes(getPermissionsForRoles(roles), permission);
|
|
306
|
+
}
|
|
307
|
+
function hasAnyPermission(roles, permissions) {
|
|
308
|
+
if (permissions.length === 0) return false;
|
|
309
|
+
const granted = getPermissionsForRoles(roles);
|
|
310
|
+
return permissions.some((p) => permissionListIncludes(granted, p));
|
|
311
|
+
}
|
|
312
|
+
function hasAllPermissions(roles, permissions) {
|
|
313
|
+
if (permissions.length === 0) return true;
|
|
314
|
+
const granted = getPermissionsForRoles(roles);
|
|
315
|
+
return permissions.every((p) => permissionListIncludes(granted, p));
|
|
316
|
+
}
|
|
317
|
+
function hasRole(roles, role) {
|
|
318
|
+
return normalizeRoles(roles).includes(role);
|
|
319
|
+
}
|
|
320
|
+
function hasAnyRole(roles, checkRoles) {
|
|
321
|
+
if (checkRoles.length === 0) return false;
|
|
322
|
+
const set = new Set(normalizeRoles(roles));
|
|
323
|
+
return checkRoles.some((r) => set.has(r));
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
// src/auth/permissions/adminAppAccess.ts
|
|
327
|
+
var ADMIN_APP_ROLES = [
|
|
328
|
+
"super_admin" /* SUPER_ADMIN */,
|
|
329
|
+
"admin" /* ADMIN */,
|
|
330
|
+
"event" /* EVENT */,
|
|
331
|
+
"vendor" /* VENDOR */,
|
|
332
|
+
"partner" /* PARTNER */,
|
|
333
|
+
"school" /* SCHOOL */,
|
|
334
|
+
"affiliate" /* AFFILIATE */
|
|
335
|
+
];
|
|
336
|
+
var ADMIN_DASHBOARD_CONTEXTS = [
|
|
337
|
+
{
|
|
338
|
+
context: "staff",
|
|
339
|
+
home: "/dashboard",
|
|
340
|
+
label: "Staff",
|
|
341
|
+
pathPrefixes: ["/dashboard"],
|
|
342
|
+
roles: ["super_admin" /* SUPER_ADMIN */, "admin" /* ADMIN */]
|
|
343
|
+
},
|
|
344
|
+
{
|
|
345
|
+
context: "event",
|
|
346
|
+
home: "/event/dashboard",
|
|
347
|
+
label: "Events",
|
|
348
|
+
pathPrefixes: ["/event"],
|
|
349
|
+
roles: ["event" /* EVENT */]
|
|
350
|
+
},
|
|
351
|
+
{
|
|
352
|
+
context: "vendor",
|
|
353
|
+
home: "/vendor/dashboard",
|
|
354
|
+
label: "Stallholders",
|
|
355
|
+
pathPrefixes: ["/vendor"],
|
|
356
|
+
roles: ["vendor" /* VENDOR */]
|
|
357
|
+
},
|
|
358
|
+
{
|
|
359
|
+
context: "partner",
|
|
360
|
+
home: "/partner/dashboard",
|
|
361
|
+
label: "Partners",
|
|
362
|
+
pathPrefixes: ["/partner"],
|
|
363
|
+
roles: ["partner" /* PARTNER */]
|
|
364
|
+
},
|
|
365
|
+
{
|
|
366
|
+
context: "school",
|
|
367
|
+
home: "/school/dashboard",
|
|
368
|
+
label: "Schools",
|
|
369
|
+
pathPrefixes: ["/school"],
|
|
370
|
+
roles: ["school" /* SCHOOL */]
|
|
371
|
+
},
|
|
372
|
+
{
|
|
373
|
+
context: "affiliate",
|
|
374
|
+
home: "/affiliate/dashboard",
|
|
375
|
+
label: "Affiliate",
|
|
376
|
+
pathPrefixes: ["/affiliate"],
|
|
377
|
+
roles: ["affiliate" /* AFFILIATE */]
|
|
378
|
+
}
|
|
379
|
+
];
|
|
380
|
+
function canAccessAdminApp(roles) {
|
|
381
|
+
return hasAnyRole(roles, ADMIN_APP_ROLES);
|
|
382
|
+
}
|
|
383
|
+
function getUsableAdminContexts(roles) {
|
|
384
|
+
return ADMIN_DASHBOARD_CONTEXTS.filter((ctx) => hasAnyRole(roles, ctx.roles));
|
|
385
|
+
}
|
|
386
|
+
function getDefaultAdminHome(roles, preferredContext) {
|
|
387
|
+
const usable = getUsableAdminContexts(roles);
|
|
388
|
+
if (usable.length === 0) {
|
|
389
|
+
return "/login";
|
|
390
|
+
}
|
|
391
|
+
if (preferredContext) {
|
|
392
|
+
const preferred = usable.find((ctx) => ctx.context === preferredContext);
|
|
393
|
+
if (preferred) return preferred.home;
|
|
394
|
+
}
|
|
395
|
+
return usable[0].home;
|
|
396
|
+
}
|
|
397
|
+
function resolveAdminContextFromPath(pathname) {
|
|
398
|
+
for (const ctx of ADMIN_DASHBOARD_CONTEXTS) {
|
|
399
|
+
if (ctx.pathPrefixes.some(
|
|
400
|
+
(prefix) => pathname === prefix || pathname.startsWith(`${prefix}/`)
|
|
401
|
+
)) {
|
|
402
|
+
return ctx.context;
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
return null;
|
|
406
|
+
}
|
|
407
|
+
function canAccessAdminPath(roles, pathname) {
|
|
408
|
+
if (!canAccessAdminApp(roles)) return false;
|
|
409
|
+
const context = resolveAdminContextFromPath(pathname);
|
|
410
|
+
if (!context) {
|
|
411
|
+
return true;
|
|
412
|
+
}
|
|
413
|
+
const info = ADMIN_DASHBOARD_CONTEXTS.find((ctx) => ctx.context === context);
|
|
414
|
+
if (!info) return false;
|
|
415
|
+
return hasAnyRole(roles, info.roles);
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
// src/auth/useAuthCore.ts
|
|
419
|
+
var import_react = require("react");
|
|
420
|
+
|
|
421
|
+
// src/graphql/hooks/auth.ts
|
|
422
|
+
var import_client3 = require("@apollo/client");
|
|
423
|
+
|
|
424
|
+
// src/graphql/mutations/auth.ts
|
|
425
|
+
var import_client2 = require("@apollo/client");
|
|
426
|
+
|
|
427
|
+
// src/graphql/queries/global.ts
|
|
428
|
+
var import_client = require("@apollo/client");
|
|
429
|
+
var POSTER_USAGE_FIELDS_FRAGMENT = import_client.gql`
|
|
430
|
+
fragment PosterUsageFields on PosterUsageType {
|
|
431
|
+
month
|
|
432
|
+
count
|
|
433
|
+
}
|
|
434
|
+
`;
|
|
435
|
+
var SOCIAL_MEDIA_FIELDS_FRAGMENT = import_client.gql`
|
|
436
|
+
fragment SocialMediaFields on SocialMediaType {
|
|
437
|
+
name
|
|
438
|
+
link
|
|
439
|
+
}
|
|
440
|
+
`;
|
|
441
|
+
var RESOURCE_IMAGE_FIELDS_FRAGMENT = import_client.gql`
|
|
442
|
+
fragment ResourceImageFields on ResourceImageType {
|
|
443
|
+
active
|
|
444
|
+
source
|
|
445
|
+
title
|
|
446
|
+
}
|
|
447
|
+
`;
|
|
448
|
+
var OWNER_FIELDS_FRAGMENT = import_client.gql`
|
|
449
|
+
fragment OwnerFields on OwnerType {
|
|
450
|
+
email
|
|
451
|
+
userId
|
|
452
|
+
}
|
|
453
|
+
`;
|
|
454
|
+
var CATEGORY_FIELDS_FRAGMENT = import_client.gql`
|
|
455
|
+
fragment CategoryFields on CategoryType {
|
|
456
|
+
id
|
|
457
|
+
name
|
|
458
|
+
subcategories {
|
|
459
|
+
id
|
|
460
|
+
items {
|
|
461
|
+
id
|
|
462
|
+
name
|
|
463
|
+
}
|
|
464
|
+
name
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
`;
|
|
468
|
+
var LICENCE_FIELDS_FRAGMENT = import_client.gql`
|
|
469
|
+
fragment LicenceFields on UserLicenceType {
|
|
470
|
+
expiryDate
|
|
471
|
+
issuedDate
|
|
472
|
+
licenceType
|
|
473
|
+
prevLicenceType
|
|
474
|
+
}
|
|
475
|
+
`;
|
|
476
|
+
var TERMS_AGREEMENT_FIELDS_FRAGMENT = import_client.gql`
|
|
477
|
+
fragment TermsAgreementFields on TermsAgreementType {
|
|
478
|
+
appBuildNumber
|
|
479
|
+
appId
|
|
480
|
+
appVersion
|
|
481
|
+
brand
|
|
482
|
+
deviceName
|
|
483
|
+
installationId
|
|
484
|
+
manufacturer
|
|
485
|
+
modelName
|
|
486
|
+
osName
|
|
487
|
+
osVersion
|
|
488
|
+
termVersion
|
|
489
|
+
timestamp
|
|
490
|
+
}
|
|
491
|
+
`;
|
|
492
|
+
var DATETIME_FIELDS_FRAGMENT = import_client.gql`
|
|
493
|
+
fragment DateTimeFields on DateTimeType {
|
|
494
|
+
dateStatus
|
|
495
|
+
endDate
|
|
496
|
+
endTime
|
|
497
|
+
startDate
|
|
498
|
+
startTime
|
|
499
|
+
}
|
|
500
|
+
`;
|
|
501
|
+
var LOCATION_GEO_FIELDS_FRAGMENT = import_client.gql`
|
|
502
|
+
fragment LocationGeoFields on LocationGeoType {
|
|
503
|
+
coordinates
|
|
504
|
+
type
|
|
505
|
+
}
|
|
506
|
+
`;
|
|
507
|
+
var LOCATION_FIELDS_FRAGMENT = import_client.gql`
|
|
508
|
+
fragment LocationFields on LocationType {
|
|
509
|
+
city
|
|
510
|
+
country
|
|
511
|
+
fullAddress
|
|
512
|
+
geo {
|
|
513
|
+
...LocationGeoFields
|
|
514
|
+
}
|
|
515
|
+
latitude
|
|
516
|
+
longitude
|
|
517
|
+
region
|
|
518
|
+
}
|
|
519
|
+
${LOCATION_GEO_FIELDS_FRAGMENT}
|
|
520
|
+
`;
|
|
521
|
+
var USER_ACTIVITY_FIELDS_FRAGMENT = import_client.gql`
|
|
522
|
+
fragment UserActivityFields on UserActivityType {
|
|
523
|
+
favourites {
|
|
524
|
+
events
|
|
525
|
+
partners
|
|
526
|
+
vendors
|
|
527
|
+
}
|
|
528
|
+
going {
|
|
529
|
+
events {
|
|
530
|
+
resourceId
|
|
531
|
+
dateTime {
|
|
532
|
+
...DateTimeFields
|
|
533
|
+
}
|
|
534
|
+
}
|
|
535
|
+
}
|
|
536
|
+
interested {
|
|
537
|
+
events {
|
|
538
|
+
resourceId
|
|
539
|
+
dateTime {
|
|
540
|
+
...DateTimeFields
|
|
541
|
+
}
|
|
542
|
+
}
|
|
543
|
+
}
|
|
544
|
+
present {
|
|
545
|
+
events {
|
|
546
|
+
resourceId
|
|
547
|
+
dateTime {
|
|
548
|
+
...DateTimeFields
|
|
549
|
+
}
|
|
550
|
+
}
|
|
551
|
+
}
|
|
552
|
+
}
|
|
553
|
+
${DATETIME_FIELDS_FRAGMENT}
|
|
554
|
+
`;
|
|
555
|
+
var REDEEMED_REWARD_FIELDS_FRAGMENT = import_client.gql`
|
|
556
|
+
fragment RedeemedRewardFields on RedeemedRewardType {
|
|
557
|
+
name
|
|
558
|
+
pointsUsed
|
|
559
|
+
redeemedAt
|
|
560
|
+
}
|
|
561
|
+
`;
|
|
562
|
+
var STRIPE_FIELDS_FRAGMENT = import_client.gql`
|
|
563
|
+
fragment StripeSubscriptionFields on StripeSubscriptionType {
|
|
564
|
+
customerId
|
|
565
|
+
subscriptionId
|
|
566
|
+
status
|
|
567
|
+
currentPlan
|
|
568
|
+
startDate
|
|
569
|
+
endDate
|
|
570
|
+
}
|
|
571
|
+
`;
|
|
572
|
+
var USER_FIELDS_FRAGMENT = import_client.gql`
|
|
573
|
+
fragment UserFields on UserType {
|
|
574
|
+
_id
|
|
575
|
+
active
|
|
576
|
+
affiliate
|
|
577
|
+
avatar {
|
|
578
|
+
...ResourceImageFields
|
|
579
|
+
}
|
|
580
|
+
createdAt
|
|
581
|
+
deletedAt
|
|
582
|
+
email
|
|
583
|
+
events
|
|
584
|
+
firstName
|
|
585
|
+
game
|
|
586
|
+
isTester
|
|
587
|
+
lastName
|
|
588
|
+
licences {
|
|
589
|
+
...LicenceFields
|
|
590
|
+
}
|
|
591
|
+
location {
|
|
592
|
+
...LocationFields
|
|
593
|
+
}
|
|
594
|
+
partner
|
|
595
|
+
overallPoints
|
|
596
|
+
platform
|
|
597
|
+
preferredRegion
|
|
598
|
+
permissions
|
|
599
|
+
promoCodes
|
|
600
|
+
roles
|
|
601
|
+
redeemedRewards {
|
|
602
|
+
...RedeemedRewardFields
|
|
603
|
+
}
|
|
604
|
+
school
|
|
605
|
+
stripe {
|
|
606
|
+
...StripeSubscriptionFields
|
|
607
|
+
}
|
|
608
|
+
termsAgreement {
|
|
609
|
+
...TermsAgreementFields
|
|
610
|
+
}
|
|
611
|
+
userActivity {
|
|
612
|
+
...UserActivityFields
|
|
613
|
+
}
|
|
614
|
+
vendor
|
|
615
|
+
updatedAt
|
|
616
|
+
}
|
|
617
|
+
${RESOURCE_IMAGE_FIELDS_FRAGMENT}
|
|
618
|
+
${TERMS_AGREEMENT_FIELDS_FRAGMENT}
|
|
619
|
+
${USER_ACTIVITY_FIELDS_FRAGMENT}
|
|
620
|
+
${LICENCE_FIELDS_FRAGMENT}
|
|
621
|
+
${LOCATION_FIELDS_FRAGMENT}
|
|
622
|
+
${REDEEMED_REWARD_FIELDS_FRAGMENT}
|
|
623
|
+
${STRIPE_FIELDS_FRAGMENT}
|
|
624
|
+
`;
|
|
625
|
+
var STALL_TYPE_FIELDS_FRAGMENT = import_client.gql`
|
|
626
|
+
fragment StallTypeFields on StallTypeType {
|
|
627
|
+
label
|
|
628
|
+
price
|
|
629
|
+
stallCapacity
|
|
630
|
+
}
|
|
631
|
+
`;
|
|
632
|
+
var RELATION_DATES_FRAGMENT = import_client.gql`
|
|
633
|
+
fragment RelationDates on RelationDateType {
|
|
634
|
+
dateTime {
|
|
635
|
+
dateStatus
|
|
636
|
+
endDate
|
|
637
|
+
endTime
|
|
638
|
+
startDate
|
|
639
|
+
startTime
|
|
640
|
+
stallType {
|
|
641
|
+
...StallTypeFields
|
|
642
|
+
}
|
|
643
|
+
}
|
|
644
|
+
lastUpdateBy {
|
|
645
|
+
resourceId
|
|
646
|
+
userEmail
|
|
647
|
+
}
|
|
648
|
+
paymentReference
|
|
649
|
+
status
|
|
650
|
+
}
|
|
651
|
+
${STALL_TYPE_FIELDS_FRAGMENT}
|
|
652
|
+
`;
|
|
653
|
+
var CONTACT_DETAILS_FIELDS_FRAGMENT = import_client.gql`
|
|
654
|
+
fragment ContactDetailsFields on ContactDetailsType {
|
|
655
|
+
email
|
|
656
|
+
landlinePhone
|
|
657
|
+
mobilePhone
|
|
658
|
+
}
|
|
659
|
+
`;
|
|
660
|
+
var EVENT_LIST_ITEM = import_client.gql`
|
|
661
|
+
fragment EventListItemFields on EventListItemType {
|
|
662
|
+
_id
|
|
663
|
+
active
|
|
664
|
+
approvedAt
|
|
665
|
+
claimed
|
|
666
|
+
cover {
|
|
667
|
+
...ResourceImageFields
|
|
668
|
+
}
|
|
669
|
+
createdAt
|
|
670
|
+
dateTime {
|
|
671
|
+
...DateTimeFields
|
|
672
|
+
}
|
|
673
|
+
deletedAt
|
|
674
|
+
description
|
|
675
|
+
eventType
|
|
676
|
+
googlePlaceId
|
|
677
|
+
images {
|
|
678
|
+
...ResourceImageFields
|
|
679
|
+
}
|
|
680
|
+
location {
|
|
681
|
+
...LocationFields
|
|
682
|
+
}
|
|
683
|
+
logo {
|
|
684
|
+
...ResourceImageFields
|
|
685
|
+
}
|
|
686
|
+
name
|
|
687
|
+
rainOrShine
|
|
688
|
+
rating
|
|
689
|
+
region
|
|
690
|
+
relations {
|
|
691
|
+
relationId
|
|
692
|
+
relationDates {
|
|
693
|
+
...RelationDates
|
|
694
|
+
}
|
|
695
|
+
}
|
|
696
|
+
reviewCount
|
|
697
|
+
slug
|
|
698
|
+
updatedAt
|
|
699
|
+
}
|
|
700
|
+
${DATETIME_FIELDS_FRAGMENT}
|
|
701
|
+
${LOCATION_FIELDS_FRAGMENT}
|
|
702
|
+
${RESOURCE_IMAGE_FIELDS_FRAGMENT}
|
|
703
|
+
${RELATION_DATES_FRAGMENT}
|
|
704
|
+
`;
|
|
705
|
+
var RELATED_POST_FIELDS_FRAGMENT = import_client.gql`
|
|
706
|
+
fragment RelatedPostFields on RelatedPostType {
|
|
707
|
+
postActive
|
|
708
|
+
postId
|
|
709
|
+
postSlug
|
|
710
|
+
postType
|
|
711
|
+
}
|
|
712
|
+
`;
|
|
713
|
+
var SOCIAL_SHARE_RESOURCE_FIELDS_FRAGMENT = import_client.gql`
|
|
714
|
+
fragment SocialShareResourceFields on SocialShareResourceType {
|
|
715
|
+
qrCode {
|
|
716
|
+
...ResourceImageFields
|
|
717
|
+
}
|
|
718
|
+
socialImage {
|
|
719
|
+
...ResourceImageFields
|
|
720
|
+
}
|
|
721
|
+
}
|
|
722
|
+
${RESOURCE_IMAGE_FIELDS_FRAGMENT}
|
|
723
|
+
`;
|
|
724
|
+
|
|
725
|
+
// src/graphql/mutations/auth.ts
|
|
726
|
+
var REGISTER_MUTATION = import_client2.gql`
|
|
727
|
+
mutation register($input: RegisterInputType!) {
|
|
728
|
+
register(input: $input) {
|
|
729
|
+
data {
|
|
730
|
+
refreshToken
|
|
731
|
+
token
|
|
732
|
+
user {
|
|
733
|
+
...UserFields
|
|
734
|
+
}
|
|
735
|
+
}
|
|
736
|
+
message
|
|
737
|
+
}
|
|
738
|
+
}
|
|
739
|
+
${USER_FIELDS_FRAGMENT}
|
|
740
|
+
`;
|
|
741
|
+
var LOGIN_MUTATION = import_client2.gql`
|
|
742
|
+
mutation login($input: LoginInputType!) {
|
|
743
|
+
login(input: $input) {
|
|
744
|
+
data {
|
|
745
|
+
refreshToken
|
|
746
|
+
token
|
|
747
|
+
user {
|
|
748
|
+
...UserFields
|
|
749
|
+
}
|
|
750
|
+
}
|
|
751
|
+
message
|
|
752
|
+
}
|
|
753
|
+
}
|
|
754
|
+
${USER_FIELDS_FRAGMENT}
|
|
755
|
+
`;
|
|
756
|
+
var LOGOUT_MUTATION = import_client2.gql`
|
|
757
|
+
mutation logout {
|
|
758
|
+
logout {
|
|
759
|
+
data
|
|
760
|
+
message
|
|
761
|
+
}
|
|
762
|
+
}
|
|
763
|
+
`;
|
|
764
|
+
var REFRESH_TOKEN_MUTATION = import_client2.gql`
|
|
765
|
+
mutation refreshToken($input: RefreshTokenInputType!) {
|
|
766
|
+
refreshToken(input: $input) {
|
|
767
|
+
data {
|
|
768
|
+
refreshToken
|
|
769
|
+
token
|
|
770
|
+
}
|
|
771
|
+
message
|
|
772
|
+
}
|
|
773
|
+
}
|
|
774
|
+
`;
|
|
775
|
+
var RESET_PASSWORD_MUTATION = import_client2.gql`
|
|
776
|
+
mutation resetPassword($input: ResetPasswordInputType!) {
|
|
777
|
+
resetPassword(input: $input) {
|
|
778
|
+
data
|
|
779
|
+
message
|
|
780
|
+
}
|
|
781
|
+
}
|
|
782
|
+
`;
|
|
783
|
+
var REQUEST_PASSWORD_RESET_MUTATION = import_client2.gql`
|
|
784
|
+
mutation requestPasswordReset($input: RequestPasswordResetInputType!) {
|
|
785
|
+
requestPasswordReset(input: $input) {
|
|
786
|
+
data
|
|
787
|
+
message
|
|
788
|
+
}
|
|
789
|
+
}
|
|
790
|
+
`;
|
|
791
|
+
var VALIDATE_VERIFICATION_TOKEN_MUTATION = import_client2.gql`
|
|
792
|
+
mutation validateVerificationToken(
|
|
793
|
+
$input: ValidateVerificationTokenInputType!
|
|
794
|
+
) {
|
|
795
|
+
validateVerificationToken(input: $input) {
|
|
796
|
+
data
|
|
797
|
+
message
|
|
798
|
+
}
|
|
799
|
+
}
|
|
800
|
+
`;
|
|
801
|
+
|
|
802
|
+
// src/graphql/hooks/auth.ts
|
|
803
|
+
var useLogout = () => {
|
|
804
|
+
const [logout, { loading, error }] = (0, import_client3.useMutation)(LOGOUT_MUTATION);
|
|
805
|
+
return { error, loading, logout };
|
|
806
|
+
};
|
|
807
|
+
|
|
808
|
+
// src/graphql/hooks/user/hooksQuery.ts
|
|
809
|
+
var import_client8 = require("@apollo/client");
|
|
810
|
+
|
|
811
|
+
// src/graphql/queries/user.ts
|
|
812
|
+
var import_client7 = require("@apollo/client");
|
|
813
|
+
|
|
814
|
+
// src/graphql/queries/event.ts
|
|
815
|
+
var import_client4 = require("@apollo/client");
|
|
816
|
+
var EVENT_INFO = import_client4.gql`
|
|
817
|
+
fragment EventInfoFields on EventInfoType {
|
|
818
|
+
_id
|
|
819
|
+
applicationDeadlineHours
|
|
820
|
+
dateTime {
|
|
821
|
+
dateStatus
|
|
822
|
+
endDate
|
|
823
|
+
endTime
|
|
824
|
+
stallTypes {
|
|
825
|
+
...StallTypeFields
|
|
826
|
+
}
|
|
827
|
+
startDate
|
|
828
|
+
startTime
|
|
829
|
+
}
|
|
830
|
+
eventId
|
|
831
|
+
packInTime
|
|
832
|
+
paymentDueHours
|
|
833
|
+
paymentInfo {
|
|
834
|
+
accountHolderName
|
|
835
|
+
accountNumber
|
|
836
|
+
link
|
|
837
|
+
paymentMethod
|
|
838
|
+
}
|
|
839
|
+
refundPolicy {
|
|
840
|
+
category
|
|
841
|
+
label
|
|
842
|
+
value
|
|
843
|
+
}
|
|
844
|
+
requirements {
|
|
845
|
+
category
|
|
846
|
+
label
|
|
847
|
+
value
|
|
848
|
+
}
|
|
849
|
+
}
|
|
850
|
+
${STALL_TYPE_FIELDS_FRAGMENT}
|
|
851
|
+
`;
|
|
852
|
+
var EVENT = import_client4.gql`
|
|
853
|
+
fragment EventFields on EventType {
|
|
854
|
+
_id
|
|
855
|
+
active
|
|
856
|
+
adIds
|
|
857
|
+
approvedAt
|
|
858
|
+
cover {
|
|
859
|
+
...ResourceImageFields
|
|
860
|
+
}
|
|
861
|
+
claimed
|
|
862
|
+
createdAt
|
|
863
|
+
contactDetails {
|
|
864
|
+
...ContactDetailsFields
|
|
865
|
+
}
|
|
866
|
+
dateTime {
|
|
867
|
+
...DateTimeFields
|
|
868
|
+
}
|
|
869
|
+
description
|
|
870
|
+
deletedAt
|
|
871
|
+
googlePlaceId
|
|
872
|
+
images {
|
|
873
|
+
...ResourceImageFields
|
|
874
|
+
}
|
|
875
|
+
eventType
|
|
876
|
+
location {
|
|
877
|
+
...LocationFields
|
|
878
|
+
}
|
|
879
|
+
logo {
|
|
880
|
+
...ResourceImageFields
|
|
881
|
+
}
|
|
882
|
+
eventInfoId
|
|
883
|
+
name
|
|
884
|
+
nzbn
|
|
885
|
+
owner {
|
|
886
|
+
...OwnerFields
|
|
887
|
+
}
|
|
888
|
+
promoCodes
|
|
889
|
+
provider
|
|
890
|
+
posterUsage {
|
|
891
|
+
...PosterUsageFields
|
|
892
|
+
}
|
|
893
|
+
region
|
|
894
|
+
relations {
|
|
895
|
+
relationId
|
|
896
|
+
relationDates {
|
|
897
|
+
...RelationDates
|
|
898
|
+
}
|
|
899
|
+
}
|
|
900
|
+
rating
|
|
901
|
+
reviewCount
|
|
902
|
+
rainOrShine
|
|
903
|
+
relatedPost {
|
|
904
|
+
...RelatedPostFields
|
|
905
|
+
}
|
|
906
|
+
socialMedia {
|
|
907
|
+
...SocialMediaFields
|
|
908
|
+
}
|
|
909
|
+
sharePublic {
|
|
910
|
+
...SocialShareResourceFields
|
|
911
|
+
}
|
|
912
|
+
shareRelation {
|
|
913
|
+
...SocialShareResourceFields
|
|
914
|
+
}
|
|
915
|
+
slug
|
|
916
|
+
tags
|
|
917
|
+
termsAgreement {
|
|
918
|
+
...TermsAgreementFields
|
|
919
|
+
}
|
|
920
|
+
updatedAt
|
|
921
|
+
}
|
|
922
|
+
${DATETIME_FIELDS_FRAGMENT}
|
|
923
|
+
${LOCATION_FIELDS_FRAGMENT}
|
|
924
|
+
${OWNER_FIELDS_FRAGMENT}
|
|
925
|
+
${RESOURCE_IMAGE_FIELDS_FRAGMENT}
|
|
926
|
+
${SOCIAL_MEDIA_FIELDS_FRAGMENT}
|
|
927
|
+
${POSTER_USAGE_FIELDS_FRAGMENT}
|
|
928
|
+
${CONTACT_DETAILS_FIELDS_FRAGMENT}
|
|
929
|
+
${TERMS_AGREEMENT_FIELDS_FRAGMENT}
|
|
930
|
+
${RELATION_DATES_FRAGMENT}
|
|
931
|
+
${RELATED_POST_FIELDS_FRAGMENT}
|
|
932
|
+
${SOCIAL_SHARE_RESOURCE_FIELDS_FRAGMENT}
|
|
933
|
+
`;
|
|
934
|
+
var GET_EVENTS = import_client4.gql`
|
|
935
|
+
query getEvents($dateStatus: EventDateStatusEnumType) {
|
|
936
|
+
events(dateStatus: $dateStatus) {
|
|
937
|
+
...EventListItemFields
|
|
938
|
+
}
|
|
939
|
+
}
|
|
940
|
+
${EVENT_LIST_ITEM}
|
|
941
|
+
`;
|
|
942
|
+
var GET_EVENT = import_client4.gql`
|
|
943
|
+
query getEvent($_id: ID!) {
|
|
944
|
+
event(_id: $_id) {
|
|
945
|
+
...EventFields
|
|
946
|
+
}
|
|
947
|
+
}
|
|
948
|
+
${EVENT}
|
|
949
|
+
`;
|
|
950
|
+
var GET_EVENT_BY_PLACE_ID = import_client4.gql`
|
|
951
|
+
query getEventByPlaceId($googlePlaceId: String!) {
|
|
952
|
+
eventByPlaceId(googlePlaceId: $googlePlaceId) {
|
|
953
|
+
...EventListItemFields
|
|
954
|
+
}
|
|
955
|
+
}
|
|
956
|
+
${EVENT_LIST_ITEM}
|
|
957
|
+
`;
|
|
958
|
+
var GET_EVENTS_BY_REGION = import_client4.gql`
|
|
959
|
+
query getEventsByRegion(
|
|
960
|
+
$region: String!
|
|
961
|
+
$options: ResourcesByRegionOptions
|
|
962
|
+
$dateStatus: EventDateStatusEnumType
|
|
963
|
+
) {
|
|
964
|
+
eventsByRegion(
|
|
965
|
+
region: $region
|
|
966
|
+
options: $options
|
|
967
|
+
dateStatus: $dateStatus
|
|
968
|
+
) {
|
|
969
|
+
...EventListItemFields
|
|
970
|
+
}
|
|
971
|
+
}
|
|
972
|
+
${EVENT_LIST_ITEM}
|
|
973
|
+
`;
|
|
974
|
+
var SEARCH_EVENTS = import_client4.gql`
|
|
975
|
+
query searchEvents(
|
|
976
|
+
$region: String!
|
|
977
|
+
$search: String
|
|
978
|
+
$tags: [String]
|
|
979
|
+
$dateStatus: EventDateStatusEnumType
|
|
980
|
+
) {
|
|
981
|
+
eventsSearch(
|
|
982
|
+
region: $region
|
|
983
|
+
search: $search
|
|
984
|
+
tags: $tags
|
|
985
|
+
dateStatus: $dateStatus
|
|
986
|
+
) {
|
|
987
|
+
...EventListItemFields
|
|
988
|
+
}
|
|
989
|
+
}
|
|
990
|
+
${EVENT_LIST_ITEM}
|
|
991
|
+
`;
|
|
992
|
+
var GET_EVENTS_NEAR_ME = import_client4.gql`
|
|
993
|
+
query getEventsNearMe(
|
|
994
|
+
$latitude: Float!
|
|
995
|
+
$longitude: Float!
|
|
996
|
+
$radius: Int
|
|
997
|
+
$dateStatus: EventDateStatusEnumType
|
|
998
|
+
) {
|
|
999
|
+
eventsNearMe(
|
|
1000
|
+
latitude: $latitude
|
|
1001
|
+
longitude: $longitude
|
|
1002
|
+
radius: $radius
|
|
1003
|
+
dateStatus: $dateStatus
|
|
1004
|
+
) {
|
|
1005
|
+
...EventListItemFields
|
|
1006
|
+
}
|
|
1007
|
+
}
|
|
1008
|
+
${EVENT_LIST_ITEM}
|
|
1009
|
+
`;
|
|
1010
|
+
var GET_EVENT_INFO = import_client4.gql`
|
|
1011
|
+
query getEventInfo($eventId: ID!) {
|
|
1012
|
+
eventInfo(eventId: $eventId) {
|
|
1013
|
+
...EventInfoFields
|
|
1014
|
+
}
|
|
1015
|
+
}
|
|
1016
|
+
${EVENT_INFO}
|
|
1017
|
+
`;
|
|
1018
|
+
|
|
1019
|
+
// src/graphql/queries/partner.ts
|
|
1020
|
+
var import_client5 = require("@apollo/client");
|
|
1021
|
+
var PARTNER = import_client5.gql`
|
|
1022
|
+
fragment PartnerFields on PartnerType {
|
|
1023
|
+
_id
|
|
1024
|
+
active
|
|
1025
|
+
adIds
|
|
1026
|
+
approvedAt
|
|
1027
|
+
cover {
|
|
1028
|
+
...ResourceImageFields
|
|
1029
|
+
}
|
|
1030
|
+
createdAt
|
|
1031
|
+
contactDetails {
|
|
1032
|
+
...ContactDetailsFields
|
|
1033
|
+
}
|
|
1034
|
+
description
|
|
1035
|
+
deletedAt
|
|
1036
|
+
images {
|
|
1037
|
+
...ResourceImageFields
|
|
1038
|
+
}
|
|
1039
|
+
location {
|
|
1040
|
+
...LocationFields
|
|
1041
|
+
}
|
|
1042
|
+
logo {
|
|
1043
|
+
...ResourceImageFields
|
|
1044
|
+
}
|
|
1045
|
+
name
|
|
1046
|
+
nzbn
|
|
1047
|
+
owner {
|
|
1048
|
+
...OwnerFields
|
|
1049
|
+
}
|
|
1050
|
+
partnerType
|
|
1051
|
+
posterUsage {
|
|
1052
|
+
...PosterUsageFields
|
|
1053
|
+
}
|
|
1054
|
+
rating
|
|
1055
|
+
region
|
|
1056
|
+
reviewCount
|
|
1057
|
+
relatedPost {
|
|
1058
|
+
...RelatedPostFields
|
|
1059
|
+
}
|
|
1060
|
+
socialMedia {
|
|
1061
|
+
...SocialMediaFields
|
|
1062
|
+
}
|
|
1063
|
+
slug
|
|
1064
|
+
sharePublic {
|
|
1065
|
+
...SocialShareResourceFields
|
|
1066
|
+
}
|
|
1067
|
+
termsAgreement {
|
|
1068
|
+
...TermsAgreementFields
|
|
1069
|
+
}
|
|
1070
|
+
updatedAt
|
|
1071
|
+
}
|
|
1072
|
+
${TERMS_AGREEMENT_FIELDS_FRAGMENT}
|
|
1073
|
+
${LOCATION_FIELDS_FRAGMENT}
|
|
1074
|
+
${OWNER_FIELDS_FRAGMENT}
|
|
1075
|
+
${RESOURCE_IMAGE_FIELDS_FRAGMENT}
|
|
1076
|
+
${POSTER_USAGE_FIELDS_FRAGMENT}
|
|
1077
|
+
${SOCIAL_MEDIA_FIELDS_FRAGMENT}
|
|
1078
|
+
${CONTACT_DETAILS_FIELDS_FRAGMENT}
|
|
1079
|
+
${RELATED_POST_FIELDS_FRAGMENT}
|
|
1080
|
+
${SOCIAL_SHARE_RESOURCE_FIELDS_FRAGMENT}
|
|
1081
|
+
`;
|
|
1082
|
+
var GET_PARTNERS = import_client5.gql`
|
|
1083
|
+
query getPartners {
|
|
1084
|
+
partners {
|
|
1085
|
+
...PartnerFields
|
|
1086
|
+
}
|
|
1087
|
+
}
|
|
1088
|
+
${PARTNER}
|
|
1089
|
+
`;
|
|
1090
|
+
var GET_PARTNER = import_client5.gql`
|
|
1091
|
+
query getPartner($_id: ID!) {
|
|
1092
|
+
partner(_id: $_id) {
|
|
1093
|
+
...PartnerFields
|
|
1094
|
+
}
|
|
1095
|
+
}
|
|
1096
|
+
${PARTNER}
|
|
1097
|
+
`;
|
|
1098
|
+
var GET_PARTNERS_BY_REGION = import_client5.gql`
|
|
1099
|
+
query getPartnersByRegion(
|
|
1100
|
+
$region: String!
|
|
1101
|
+
$options: ResourcesByRegionOptions
|
|
1102
|
+
) {
|
|
1103
|
+
partnersByRegion(region: $region, options: $options) {
|
|
1104
|
+
...PartnerFields
|
|
1105
|
+
}
|
|
1106
|
+
}
|
|
1107
|
+
${PARTNER}
|
|
1108
|
+
`;
|
|
1109
|
+
var SEARCH_PARTNERS = import_client5.gql`
|
|
1110
|
+
query searchPartners($search: String!, $region: String!) {
|
|
1111
|
+
partnersSearch(search: $search, region: $region) {
|
|
1112
|
+
...PartnerFields
|
|
1113
|
+
}
|
|
1114
|
+
}
|
|
1115
|
+
${PARTNER}
|
|
1116
|
+
`;
|
|
1117
|
+
|
|
1118
|
+
// src/graphql/queries/vendor.ts
|
|
1119
|
+
var import_client6 = require("@apollo/client");
|
|
1120
|
+
var VENDOR_DATETIME_FIELDS_FRAGMENT = import_client6.gql`
|
|
1121
|
+
fragment VendorDateTimeFields on VendorDateTimeType {
|
|
1122
|
+
dateStatus
|
|
1123
|
+
endDate
|
|
1124
|
+
endTime
|
|
1125
|
+
startDate
|
|
1126
|
+
startTime
|
|
1127
|
+
}
|
|
1128
|
+
`;
|
|
1129
|
+
var VENDOR_PRODUCT_LIST_FIELDS_FRAGMENT = import_client6.gql`
|
|
1130
|
+
fragment VendorProductListFields on VendorProductListType {
|
|
1131
|
+
description
|
|
1132
|
+
name
|
|
1133
|
+
price
|
|
1134
|
+
priceUnit
|
|
1135
|
+
productGroups
|
|
1136
|
+
}
|
|
1137
|
+
`;
|
|
1138
|
+
var VENDOR = import_client6.gql`
|
|
1139
|
+
fragment VendorFields on VendorType {
|
|
1140
|
+
_id
|
|
1141
|
+
active
|
|
1142
|
+
adIds
|
|
1143
|
+
approvedAt
|
|
1144
|
+
availability {
|
|
1145
|
+
corporate
|
|
1146
|
+
private
|
|
1147
|
+
school
|
|
1148
|
+
}
|
|
1149
|
+
vendorInfoId
|
|
1150
|
+
categories {
|
|
1151
|
+
...CategoryFields
|
|
1152
|
+
}
|
|
1153
|
+
calendar {
|
|
1154
|
+
active
|
|
1155
|
+
calendarData {
|
|
1156
|
+
dateTime {
|
|
1157
|
+
...VendorDateTimeFields
|
|
1158
|
+
}
|
|
1159
|
+
description
|
|
1160
|
+
location {
|
|
1161
|
+
...LocationFields
|
|
1162
|
+
}
|
|
1163
|
+
}
|
|
1164
|
+
}
|
|
1165
|
+
contactDetails {
|
|
1166
|
+
...ContactDetailsFields
|
|
1167
|
+
}
|
|
1168
|
+
cover {
|
|
1169
|
+
...ResourceImageFields
|
|
1170
|
+
}
|
|
1171
|
+
createdAt
|
|
1172
|
+
claimed
|
|
1173
|
+
description
|
|
1174
|
+
deletedAt
|
|
1175
|
+
foodTruck
|
|
1176
|
+
images {
|
|
1177
|
+
...ResourceImageFields
|
|
1178
|
+
}
|
|
1179
|
+
logo {
|
|
1180
|
+
...ResourceImageFields
|
|
1181
|
+
}
|
|
1182
|
+
name
|
|
1183
|
+
owner {
|
|
1184
|
+
...OwnerFields
|
|
1185
|
+
}
|
|
1186
|
+
products {
|
|
1187
|
+
active
|
|
1188
|
+
productsList {
|
|
1189
|
+
...VendorProductListFields
|
|
1190
|
+
}
|
|
1191
|
+
}
|
|
1192
|
+
promoCodes
|
|
1193
|
+
posterUsage {
|
|
1194
|
+
...PosterUsageFields
|
|
1195
|
+
}
|
|
1196
|
+
rating
|
|
1197
|
+
region
|
|
1198
|
+
reviewCount
|
|
1199
|
+
relatedPost {
|
|
1200
|
+
...RelatedPostFields
|
|
1201
|
+
}
|
|
1202
|
+
relations {
|
|
1203
|
+
relationId
|
|
1204
|
+
relationDates {
|
|
1205
|
+
...RelationDates
|
|
1206
|
+
}
|
|
1207
|
+
}
|
|
1208
|
+
slug
|
|
1209
|
+
socialMedia {
|
|
1210
|
+
...SocialMediaFields
|
|
1211
|
+
}
|
|
1212
|
+
sharePublic {
|
|
1213
|
+
...SocialShareResourceFields
|
|
1214
|
+
}
|
|
1215
|
+
shareRelation {
|
|
1216
|
+
...SocialShareResourceFields
|
|
1217
|
+
}
|
|
1218
|
+
termsAgreement {
|
|
1219
|
+
...TermsAgreementFields
|
|
1220
|
+
}
|
|
1221
|
+
updatedAt
|
|
1222
|
+
vendorType
|
|
1223
|
+
unregisteredVendorId
|
|
1224
|
+
}
|
|
1225
|
+
${CATEGORY_FIELDS_FRAGMENT}
|
|
1226
|
+
${VENDOR_DATETIME_FIELDS_FRAGMENT}
|
|
1227
|
+
${LOCATION_FIELDS_FRAGMENT}
|
|
1228
|
+
${OWNER_FIELDS_FRAGMENT}
|
|
1229
|
+
${RESOURCE_IMAGE_FIELDS_FRAGMENT}
|
|
1230
|
+
${SOCIAL_MEDIA_FIELDS_FRAGMENT}
|
|
1231
|
+
${POSTER_USAGE_FIELDS_FRAGMENT}
|
|
1232
|
+
${VENDOR_PRODUCT_LIST_FIELDS_FRAGMENT}
|
|
1233
|
+
${CONTACT_DETAILS_FIELDS_FRAGMENT}
|
|
1234
|
+
${TERMS_AGREEMENT_FIELDS_FRAGMENT}
|
|
1235
|
+
${RELATION_DATES_FRAGMENT}
|
|
1236
|
+
${RELATED_POST_FIELDS_FRAGMENT}
|
|
1237
|
+
${SOCIAL_SHARE_RESOURCE_FIELDS_FRAGMENT}
|
|
1238
|
+
`;
|
|
1239
|
+
var VENDOR_ATTRIBUTES_FRAGMENT = import_client6.gql`
|
|
1240
|
+
fragment VendorAttributesFields on VendorAttributesType {
|
|
1241
|
+
details
|
|
1242
|
+
isRequired
|
|
1243
|
+
}
|
|
1244
|
+
`;
|
|
1245
|
+
var VENDOR_INFO = import_client6.gql`
|
|
1246
|
+
fragment VendorInfoFields on VendorInfoType {
|
|
1247
|
+
_id
|
|
1248
|
+
compliance {
|
|
1249
|
+
foodBeverageLicense
|
|
1250
|
+
liabilityInsurance
|
|
1251
|
+
}
|
|
1252
|
+
documents {
|
|
1253
|
+
...ResourceImageFields
|
|
1254
|
+
}
|
|
1255
|
+
requirements {
|
|
1256
|
+
electricity {
|
|
1257
|
+
...VendorAttributesFields
|
|
1258
|
+
}
|
|
1259
|
+
gazebo {
|
|
1260
|
+
...VendorAttributesFields
|
|
1261
|
+
}
|
|
1262
|
+
table {
|
|
1263
|
+
...VendorAttributesFields
|
|
1264
|
+
}
|
|
1265
|
+
}
|
|
1266
|
+
product {
|
|
1267
|
+
foodFlavors
|
|
1268
|
+
packaging
|
|
1269
|
+
priceRange {
|
|
1270
|
+
max
|
|
1271
|
+
min
|
|
1272
|
+
}
|
|
1273
|
+
producedIn
|
|
1274
|
+
}
|
|
1275
|
+
stallInfo {
|
|
1276
|
+
size {
|
|
1277
|
+
depth
|
|
1278
|
+
width
|
|
1279
|
+
}
|
|
1280
|
+
}
|
|
1281
|
+
vendorId
|
|
1282
|
+
}
|
|
1283
|
+
${VENDOR_ATTRIBUTES_FRAGMENT}
|
|
1284
|
+
${RESOURCE_IMAGE_FIELDS_FRAGMENT}
|
|
1285
|
+
`;
|
|
1286
|
+
var UNREGISTERED_VENDOR_INVITATION_FRAGMENT = import_client6.gql`
|
|
1287
|
+
fragment UnregisteredVendorInvitationFields on UnregisteredVendorInvitationType {
|
|
1288
|
+
dateTime {
|
|
1289
|
+
...DateTimeFields
|
|
1290
|
+
}
|
|
1291
|
+
inviterId
|
|
1292
|
+
}
|
|
1293
|
+
${DATETIME_FIELDS_FRAGMENT}
|
|
1294
|
+
`;
|
|
1295
|
+
var UNREGISTERED_VENDOR = import_client6.gql`
|
|
1296
|
+
fragment UnregisteredVendorFields on UnregisteredVendorType {
|
|
1297
|
+
_id
|
|
1298
|
+
active
|
|
1299
|
+
categoryIds
|
|
1300
|
+
claimed
|
|
1301
|
+
createdAt
|
|
1302
|
+
deletedAt
|
|
1303
|
+
email
|
|
1304
|
+
invitations {
|
|
1305
|
+
...UnregisteredVendorInvitationFields
|
|
1306
|
+
}
|
|
1307
|
+
name
|
|
1308
|
+
region
|
|
1309
|
+
updatedAt
|
|
1310
|
+
}
|
|
1311
|
+
${UNREGISTERED_VENDOR_INVITATION_FRAGMENT}
|
|
1312
|
+
`;
|
|
1313
|
+
var GET_VENDORS = import_client6.gql`
|
|
1314
|
+
query getVendors {
|
|
1315
|
+
vendors {
|
|
1316
|
+
...VendorFields
|
|
1317
|
+
}
|
|
1318
|
+
}
|
|
1319
|
+
${VENDOR}
|
|
1320
|
+
`;
|
|
1321
|
+
var GET_VENDOR = import_client6.gql`
|
|
1322
|
+
query getVendor($_id: ID!) {
|
|
1323
|
+
vendor(_id: $_id) {
|
|
1324
|
+
...VendorFields
|
|
1325
|
+
}
|
|
1326
|
+
}
|
|
1327
|
+
${VENDOR}
|
|
1328
|
+
`;
|
|
1329
|
+
var GET_VENDORS_BY_REGION = import_client6.gql`
|
|
1330
|
+
query getVendorsByRegion(
|
|
1331
|
+
$region: String!
|
|
1332
|
+
$options: ResourcesByRegionOptions
|
|
1333
|
+
) {
|
|
1334
|
+
vendorsByRegion(region: $region, options: $options) {
|
|
1335
|
+
...VendorFields
|
|
1336
|
+
}
|
|
1337
|
+
}
|
|
1338
|
+
${VENDOR}
|
|
1339
|
+
`;
|
|
1340
|
+
var SEARCH_VENDORS = import_client6.gql`
|
|
1341
|
+
query searchVendors($search: String!, $region: String!) {
|
|
1342
|
+
vendorSearch(search: $search, region: $region) {
|
|
1343
|
+
...VendorFields
|
|
1344
|
+
}
|
|
1345
|
+
}
|
|
1346
|
+
${VENDOR}
|
|
1347
|
+
`;
|
|
1348
|
+
var GET_VENDOR_INFO = import_client6.gql`
|
|
1349
|
+
query getVendorInfo($vendorId: ID!) {
|
|
1350
|
+
vendorInfo(vendorId: $vendorId) {
|
|
1351
|
+
...VendorInfoFields
|
|
1352
|
+
}
|
|
1353
|
+
}
|
|
1354
|
+
${VENDOR_INFO}
|
|
1355
|
+
`;
|
|
1356
|
+
var GET_UNREGISTERED_VENDORS = import_client6.gql`
|
|
1357
|
+
query getUnregisteredVendors {
|
|
1358
|
+
unregisteredVendors {
|
|
1359
|
+
...UnregisteredVendorFields
|
|
1360
|
+
}
|
|
1361
|
+
}
|
|
1362
|
+
${UNREGISTERED_VENDOR}
|
|
1363
|
+
`;
|
|
1364
|
+
var GET_UNREGISTERED_VENDORS_BY_INVITER_ID = import_client6.gql`
|
|
1365
|
+
query getUnregisteredVendorsByInviterId($inviterId: ID!) {
|
|
1366
|
+
unregisteredVendorsByInviterId(inviterId: $inviterId) {
|
|
1367
|
+
...UnregisteredVendorFields
|
|
1368
|
+
}
|
|
1369
|
+
}
|
|
1370
|
+
${UNREGISTERED_VENDOR}
|
|
1371
|
+
`;
|
|
1372
|
+
var GET_UNREGISTERED_VENDOR = import_client6.gql`
|
|
1373
|
+
query getUnregisteredVendor($_id: ID!) {
|
|
1374
|
+
unregisteredVendor(_id: $_id) {
|
|
1375
|
+
...UnregisteredVendorFields
|
|
1376
|
+
}
|
|
1377
|
+
}
|
|
1378
|
+
${UNREGISTERED_VENDOR}
|
|
1379
|
+
`;
|
|
1380
|
+
|
|
1381
|
+
// src/graphql/queries/user.ts
|
|
1382
|
+
var GET_USERS = import_client7.gql`
|
|
1383
|
+
query getUsers {
|
|
1384
|
+
users {
|
|
1385
|
+
...UserFields
|
|
1386
|
+
}
|
|
1387
|
+
}
|
|
1388
|
+
${USER_FIELDS_FRAGMENT}
|
|
1389
|
+
`;
|
|
1390
|
+
var GET_USER = import_client7.gql`
|
|
1391
|
+
query getUser($_id: ID!) {
|
|
1392
|
+
user(_id: $_id) {
|
|
1393
|
+
...UserFields
|
|
1394
|
+
}
|
|
1395
|
+
}
|
|
1396
|
+
${USER_FIELDS_FRAGMENT}
|
|
1397
|
+
`;
|
|
1398
|
+
var GET_USER_EVENTS = import_client7.gql`
|
|
1399
|
+
query getUserEvents {
|
|
1400
|
+
userEvents {
|
|
1401
|
+
...EventFields
|
|
1402
|
+
}
|
|
1403
|
+
}
|
|
1404
|
+
${EVENT}
|
|
1405
|
+
`;
|
|
1406
|
+
var GET_USER_VENDORS = import_client7.gql`
|
|
1407
|
+
query getUserVendors {
|
|
1408
|
+
userVendors {
|
|
1409
|
+
...VendorFields
|
|
1410
|
+
}
|
|
1411
|
+
}
|
|
1412
|
+
${VENDOR}
|
|
1413
|
+
`;
|
|
1414
|
+
var GET_USER_PARTNERS = import_client7.gql`
|
|
1415
|
+
query getUserPartners {
|
|
1416
|
+
userPartners {
|
|
1417
|
+
...PartnerFields
|
|
1418
|
+
}
|
|
1419
|
+
}
|
|
1420
|
+
${PARTNER}
|
|
1421
|
+
`;
|
|
1422
|
+
var GET_USER_ACTIVITIES = import_client7.gql`
|
|
1423
|
+
query getUserActivities {
|
|
1424
|
+
userActivities {
|
|
1425
|
+
favourites {
|
|
1426
|
+
events {
|
|
1427
|
+
...EventListItemFields
|
|
1428
|
+
}
|
|
1429
|
+
partners {
|
|
1430
|
+
...PartnerFields
|
|
1431
|
+
}
|
|
1432
|
+
vendors {
|
|
1433
|
+
...VendorFields
|
|
1434
|
+
}
|
|
1435
|
+
}
|
|
1436
|
+
going {
|
|
1437
|
+
events {
|
|
1438
|
+
...EventListItemFields
|
|
1439
|
+
}
|
|
1440
|
+
}
|
|
1441
|
+
interested {
|
|
1442
|
+
events {
|
|
1443
|
+
...EventListItemFields
|
|
1444
|
+
}
|
|
1445
|
+
}
|
|
1446
|
+
present {
|
|
1447
|
+
events {
|
|
1448
|
+
...EventListItemFields
|
|
1449
|
+
}
|
|
1450
|
+
}
|
|
1451
|
+
}
|
|
1452
|
+
}
|
|
1453
|
+
${EVENT_LIST_ITEM}
|
|
1454
|
+
${VENDOR}
|
|
1455
|
+
${PARTNER}
|
|
1456
|
+
`;
|
|
1457
|
+
var GET_USER_RESOURCES = import_client7.gql`
|
|
1458
|
+
query getUserResources($userId: ID!) {
|
|
1459
|
+
userResources(userId: $userId) {
|
|
1460
|
+
resources {
|
|
1461
|
+
_id
|
|
1462
|
+
logo
|
|
1463
|
+
name
|
|
1464
|
+
resourceType
|
|
1465
|
+
}
|
|
1466
|
+
}
|
|
1467
|
+
}
|
|
1468
|
+
`;
|
|
1469
|
+
|
|
1470
|
+
// src/graphql/hooks/user/hooksQuery.ts
|
|
1471
|
+
var useGetUser = (_id) => {
|
|
1472
|
+
const { loading, error, data, refetch } = (0, import_client8.useQuery)(
|
|
1473
|
+
GET_USER,
|
|
1474
|
+
{
|
|
1475
|
+
fetchPolicy: "network-only",
|
|
1476
|
+
skip: !_id || _id === "",
|
|
1477
|
+
variables: { _id }
|
|
1478
|
+
}
|
|
1479
|
+
);
|
|
1480
|
+
const user = data?.user;
|
|
1481
|
+
return { error, loading, refetch, user };
|
|
1482
|
+
};
|
|
1483
|
+
|
|
1484
|
+
// src/storage/index.ts
|
|
1485
|
+
var USER_STORAGE_KEY = "authUser";
|
|
1486
|
+
|
|
1487
|
+
// src/auth/useAuthCore.ts
|
|
1488
|
+
function useAuthCore(adapters) {
|
|
1489
|
+
const {
|
|
1490
|
+
storage,
|
|
1491
|
+
authManager,
|
|
1492
|
+
afterLogout,
|
|
1493
|
+
shouldCallLogoutMutation = () => true,
|
|
1494
|
+
notifyLogoutSuccess,
|
|
1495
|
+
notifySessionExpired,
|
|
1496
|
+
onError
|
|
1497
|
+
} = adapters;
|
|
1498
|
+
const [authUser, setAuthUser] = (0, import_react.useState)(null);
|
|
1499
|
+
const [isLoading, setIsLoading] = (0, import_react.useState)(true);
|
|
1500
|
+
const userId = (0, import_react.useMemo)(() => authUser?._id ?? "", [authUser?._id]);
|
|
1501
|
+
const { refetch } = useGetUser(userId);
|
|
1502
|
+
const { logout, loading } = useLogout();
|
|
1503
|
+
const handleSetAuthUser = (0, import_react.useCallback)(
|
|
1504
|
+
async (user) => {
|
|
1505
|
+
setAuthUser(user);
|
|
1506
|
+
if (user) {
|
|
1507
|
+
await storage.setItem(USER_STORAGE_KEY, JSON.stringify(user));
|
|
1508
|
+
} else {
|
|
1509
|
+
await storage.removeItem(USER_STORAGE_KEY);
|
|
1510
|
+
}
|
|
1511
|
+
},
|
|
1512
|
+
[storage]
|
|
1513
|
+
);
|
|
1514
|
+
const handleRefetchUser = (0, import_react.useCallback)(async () => {
|
|
1515
|
+
if (!authUser) return;
|
|
1516
|
+
try {
|
|
1517
|
+
const result = await refetch();
|
|
1518
|
+
if (!result) return;
|
|
1519
|
+
const { data } = result;
|
|
1520
|
+
if (data?.user) await handleSetAuthUser(data.user);
|
|
1521
|
+
} catch (error) {
|
|
1522
|
+
onError?.(error, { action: "refetchUser" });
|
|
1523
|
+
console.warn(
|
|
1524
|
+
"Failed to refetch user:",
|
|
1525
|
+
error instanceof Error ? error.message : error
|
|
1526
|
+
);
|
|
1527
|
+
}
|
|
1528
|
+
}, [authUser, handleSetAuthUser, onError, refetch]);
|
|
1529
|
+
const licences = (0, import_react.useCallback)(
|
|
1530
|
+
(resourceId) => {
|
|
1531
|
+
const myLicences = authUser?.licences?.map((licence) => licence.licenceType) ?? [];
|
|
1532
|
+
const myResourceIds = [
|
|
1533
|
+
authUser?.vendor ?? null,
|
|
1534
|
+
authUser?.partner ?? null,
|
|
1535
|
+
...authUser?.events ?? []
|
|
1536
|
+
].filter((id) => id !== null);
|
|
1537
|
+
return myResourceIds.includes(resourceId) ? getLicenceFlagsByRole(myLicences) : NO_LICENCE_FLAGS;
|
|
1538
|
+
},
|
|
1539
|
+
[authUser]
|
|
1540
|
+
);
|
|
1541
|
+
const getLicenseAccessLevel = (0, import_react.useCallback)(
|
|
1542
|
+
(limitType, resourceId, resourceType) => {
|
|
1543
|
+
if (!isLicencedResourceType(resourceType)) {
|
|
1544
|
+
return 0;
|
|
1545
|
+
}
|
|
1546
|
+
if (resourceId === "") {
|
|
1547
|
+
return DEFAULT_LIMITS[limitType].pro;
|
|
1548
|
+
}
|
|
1549
|
+
const roleLicences = licences(resourceId)[resourceType];
|
|
1550
|
+
if (roleLicences.pro_plus) return DEFAULT_LIMITS[limitType].pro_plus;
|
|
1551
|
+
if (roleLicences.pro) return DEFAULT_LIMITS[limitType].pro;
|
|
1552
|
+
if (roleLicences.standard) return DEFAULT_LIMITS[limitType].standard;
|
|
1553
|
+
return 0;
|
|
1554
|
+
},
|
|
1555
|
+
[licences]
|
|
1556
|
+
);
|
|
1557
|
+
const hasVendorLicence = (0, import_react.useMemo)(
|
|
1558
|
+
() => hasLicence(authUser, "vendor"),
|
|
1559
|
+
[authUser]
|
|
1560
|
+
);
|
|
1561
|
+
const hasPartnerLicence = (0, import_react.useMemo)(
|
|
1562
|
+
() => hasLicence(authUser, "partner"),
|
|
1563
|
+
[authUser]
|
|
1564
|
+
);
|
|
1565
|
+
const hasEventLicence = (0, import_react.useMemo)(
|
|
1566
|
+
() => hasLicence(authUser, "event"),
|
|
1567
|
+
[authUser]
|
|
1568
|
+
);
|
|
1569
|
+
const hasUserLicence = (0, import_react.useCallback)(
|
|
1570
|
+
(licenceType) => hasUserLicenceType(authUser, licenceType),
|
|
1571
|
+
[authUser]
|
|
1572
|
+
);
|
|
1573
|
+
const permissions = (0, import_react.useMemo)(() => {
|
|
1574
|
+
if (authUser?.permissions != null) {
|
|
1575
|
+
return authUser.permissions;
|
|
1576
|
+
}
|
|
1577
|
+
return getPermissionsForRoles(authUser?.roles);
|
|
1578
|
+
}, [authUser?.permissions, authUser?.roles]);
|
|
1579
|
+
const hasPermissionFn = (0, import_react.useCallback)(
|
|
1580
|
+
(permission) => permissionListIncludes(permissions, permission),
|
|
1581
|
+
[permissions]
|
|
1582
|
+
);
|
|
1583
|
+
const hasRoleFn = (0, import_react.useCallback)(
|
|
1584
|
+
(role) => hasRole(authUser?.roles, role),
|
|
1585
|
+
[authUser?.roles]
|
|
1586
|
+
);
|
|
1587
|
+
const isAdmin = (0, import_react.useMemo)(
|
|
1588
|
+
() => hasRole(authUser?.roles, "admin" /* ADMIN */) || permissionListIncludes(permissions, "dashboard.admin") || permissionListIncludes(permissions, "*"),
|
|
1589
|
+
[authUser?.roles, permissions]
|
|
1590
|
+
);
|
|
1591
|
+
const isSuperAdmin = (0, import_react.useMemo)(
|
|
1592
|
+
() => hasRole(authUser?.roles, "super_admin" /* SUPER_ADMIN */),
|
|
1593
|
+
[authUser?.roles]
|
|
1594
|
+
);
|
|
1595
|
+
const isAffiliate = (0, import_react.useMemo)(
|
|
1596
|
+
() => hasRole(authUser?.roles, "affiliate" /* AFFILIATE */) && authUser?.affiliate !== null && authUser?.affiliate !== void 0,
|
|
1597
|
+
[authUser?.roles, authUser?.affiliate]
|
|
1598
|
+
);
|
|
1599
|
+
const isSchool = (0, import_react.useMemo)(
|
|
1600
|
+
() => hasRole(authUser?.roles, "school" /* SCHOOL */) && authUser?.school !== null && authUser?.school !== void 0,
|
|
1601
|
+
[authUser?.roles, authUser?.school]
|
|
1602
|
+
);
|
|
1603
|
+
(0, import_react.useEffect)(() => {
|
|
1604
|
+
const loadUser = async () => {
|
|
1605
|
+
try {
|
|
1606
|
+
const userJson = await storage.getItem(USER_STORAGE_KEY);
|
|
1607
|
+
await handleSetAuthUser(userJson ? JSON.parse(userJson) : null);
|
|
1608
|
+
} catch (error) {
|
|
1609
|
+
onError?.(error, { action: "loadUserFromStorage" });
|
|
1610
|
+
console.error("Failed to load user from storage:", error);
|
|
1611
|
+
} finally {
|
|
1612
|
+
setIsLoading(false);
|
|
1613
|
+
}
|
|
1614
|
+
};
|
|
1615
|
+
void loadUser();
|
|
1616
|
+
}, []);
|
|
1617
|
+
const logoutWithReason = (0, import_react.useCallback)(
|
|
1618
|
+
async (reason) => {
|
|
1619
|
+
try {
|
|
1620
|
+
if (shouldCallLogoutMutation(reason)) {
|
|
1621
|
+
try {
|
|
1622
|
+
const result = await logout();
|
|
1623
|
+
const message = result?.data?.logout?.message;
|
|
1624
|
+
if (message) {
|
|
1625
|
+
notifyLogoutSuccess?.(message);
|
|
1626
|
+
}
|
|
1627
|
+
} catch (err) {
|
|
1628
|
+
onError?.(err, { action: "logout" });
|
|
1629
|
+
console.warn("Logout request failed (ignored):", err);
|
|
1630
|
+
}
|
|
1631
|
+
}
|
|
1632
|
+
} finally {
|
|
1633
|
+
await afterLogout(reason);
|
|
1634
|
+
setAuthUser(null);
|
|
1635
|
+
await storage.removeItem(USER_STORAGE_KEY);
|
|
1636
|
+
}
|
|
1637
|
+
},
|
|
1638
|
+
[
|
|
1639
|
+
afterLogout,
|
|
1640
|
+
logout,
|
|
1641
|
+
notifyLogoutSuccess,
|
|
1642
|
+
onError,
|
|
1643
|
+
shouldCallLogoutMutation,
|
|
1644
|
+
storage
|
|
1645
|
+
]
|
|
1646
|
+
);
|
|
1647
|
+
const handleLogoutExplicit = (0, import_react.useCallback)(
|
|
1648
|
+
() => logoutWithReason("manual"),
|
|
1649
|
+
[logoutWithReason]
|
|
1650
|
+
);
|
|
1651
|
+
const handleLogoutExpired = (0, import_react.useCallback)(async () => {
|
|
1652
|
+
const hadSession = authUser != null;
|
|
1653
|
+
if (!hadSession) return;
|
|
1654
|
+
await logoutWithReason("expired");
|
|
1655
|
+
notifySessionExpired?.();
|
|
1656
|
+
}, [authUser, logoutWithReason, notifySessionExpired]);
|
|
1657
|
+
(0, import_react.useEffect)(() => {
|
|
1658
|
+
authManager.setLogout(() => handleLogoutExpired());
|
|
1659
|
+
authManager.setUserRefetch(() => handleRefetchUser());
|
|
1660
|
+
}, [authManager, handleLogoutExpired, handleRefetchUser]);
|
|
1661
|
+
return {
|
|
1662
|
+
authUser,
|
|
1663
|
+
getLicenseAccessLevel,
|
|
1664
|
+
handleLogoutExplicit,
|
|
1665
|
+
hasEventLicence,
|
|
1666
|
+
hasPartnerLicence,
|
|
1667
|
+
hasPermission: hasPermissionFn,
|
|
1668
|
+
hasRole: hasRoleFn,
|
|
1669
|
+
hasUserLicence,
|
|
1670
|
+
hasVendorLicence,
|
|
1671
|
+
isAdmin,
|
|
1672
|
+
isAffiliate,
|
|
1673
|
+
isLoading: loading || isLoading,
|
|
1674
|
+
isSchool,
|
|
1675
|
+
isSuperAdmin,
|
|
1676
|
+
permissions,
|
|
1677
|
+
refetchUser: handleRefetchUser,
|
|
1678
|
+
setUser: handleSetAuthUser
|
|
1679
|
+
};
|
|
1680
|
+
}
|
|
1681
|
+
|
|
1682
|
+
// src/auth/UserProvider.tsx
|
|
1683
|
+
var import_react2 = require("react");
|
|
1684
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
1685
|
+
var UserContext = (0, import_react2.createContext)(void 0);
|
|
1686
|
+
var UserProvider = ({ children, value }) => {
|
|
1687
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(UserContext.Provider, { value, children });
|
|
1688
|
+
};
|
|
1689
|
+
var useAuthUser = () => {
|
|
1690
|
+
const context = (0, import_react2.useContext)(UserContext);
|
|
1691
|
+
if (!context) {
|
|
1692
|
+
throw new Error("useAuthUser must be used within a UserProvider");
|
|
1693
|
+
}
|
|
1694
|
+
return context;
|
|
1695
|
+
};
|
|
1696
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
1697
|
+
0 && (module.exports = {
|
|
1698
|
+
ADMIN_APP_ROLES,
|
|
1699
|
+
ADMIN_DASHBOARD_CONTEXTS,
|
|
1700
|
+
DEFAULT_LIMITS,
|
|
1701
|
+
NO_LICENCE_FLAGS,
|
|
1702
|
+
PERMISSIONS,
|
|
1703
|
+
ROLE_PERMISSIONS,
|
|
1704
|
+
UserProvider,
|
|
1705
|
+
WILDCARD_PERMISSION,
|
|
1706
|
+
canAccessAdminApp,
|
|
1707
|
+
canAccessAdminPath,
|
|
1708
|
+
createAuthManager,
|
|
1709
|
+
getDefaultAdminHome,
|
|
1710
|
+
getLicenceFlagsByRole,
|
|
1711
|
+
getPermissionsForRoles,
|
|
1712
|
+
getUsableAdminContexts,
|
|
1713
|
+
hasAllPermissions,
|
|
1714
|
+
hasAnyPermission,
|
|
1715
|
+
hasAnyRole,
|
|
1716
|
+
hasLicence,
|
|
1717
|
+
hasPermission,
|
|
1718
|
+
hasRole,
|
|
1719
|
+
hasUserLicenceType,
|
|
1720
|
+
isLicencedResourceType,
|
|
1721
|
+
isProfileBadgeLicence,
|
|
1722
|
+
permissionListIncludes,
|
|
1723
|
+
resolveAdminContextFromPath,
|
|
1724
|
+
useAuthCore,
|
|
1725
|
+
useAuthUser
|
|
1726
|
+
});
|
|
1727
|
+
//# sourceMappingURL=index.cjs.map
|