@managesome/knotr-toolkit 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.
Files changed (76) hide show
  1. package/dist/constants/index.d.ts +103 -0
  2. package/dist/constants/index.d.ts.map +1 -0
  3. package/dist/constants/index.js +92 -0
  4. package/dist/constants/index.js.map +1 -0
  5. package/dist/constants/marketplace.d.ts +130 -0
  6. package/dist/constants/marketplace.d.ts.map +1 -0
  7. package/dist/constants/marketplace.js +195 -0
  8. package/dist/constants/marketplace.js.map +1 -0
  9. package/dist/i18n/ar.json +368 -0
  10. package/dist/i18n/en.json +369 -0
  11. package/dist/i18n/index.d.ts +20 -0
  12. package/dist/i18n/index.d.ts.map +1 -0
  13. package/dist/i18n/index.js +22 -0
  14. package/dist/i18n/index.js.map +1 -0
  15. package/dist/i18n/ur.json +368 -0
  16. package/dist/index.d.ts +4 -0
  17. package/dist/index.d.ts.map +1 -0
  18. package/dist/index.js +4 -0
  19. package/dist/index.js.map +1 -0
  20. package/dist/types/account.d.ts +55 -0
  21. package/dist/types/account.d.ts.map +1 -0
  22. package/dist/types/account.js +3 -0
  23. package/dist/types/account.js.map +1 -0
  24. package/dist/types/admin.d.ts +70 -0
  25. package/dist/types/admin.d.ts.map +1 -0
  26. package/dist/types/admin.js +117 -0
  27. package/dist/types/admin.js.map +1 -0
  28. package/dist/types/api.d.ts +210 -0
  29. package/dist/types/api.d.ts.map +1 -0
  30. package/dist/types/api.js +5 -0
  31. package/dist/types/api.js.map +1 -0
  32. package/dist/types/chat.d.ts +92 -0
  33. package/dist/types/chat.d.ts.map +1 -0
  34. package/dist/types/chat.js +8 -0
  35. package/dist/types/chat.js.map +1 -0
  36. package/dist/types/common.d.ts +50 -0
  37. package/dist/types/common.d.ts.map +1 -0
  38. package/dist/types/common.js +3 -0
  39. package/dist/types/common.js.map +1 -0
  40. package/dist/types/company.d.ts +110 -0
  41. package/dist/types/company.d.ts.map +1 -0
  42. package/dist/types/company.js +3 -0
  43. package/dist/types/company.js.map +1 -0
  44. package/dist/types/flag.d.ts +67 -0
  45. package/dist/types/flag.d.ts.map +1 -0
  46. package/dist/types/flag.js +3 -0
  47. package/dist/types/flag.js.map +1 -0
  48. package/dist/types/index.d.ts +14 -0
  49. package/dist/types/index.d.ts.map +1 -0
  50. package/dist/types/index.js +16 -0
  51. package/dist/types/index.js.map +1 -0
  52. package/dist/types/marketplace.d.ts +583 -0
  53. package/dist/types/marketplace.d.ts.map +1 -0
  54. package/dist/types/marketplace.js +3 -0
  55. package/dist/types/marketplace.js.map +1 -0
  56. package/dist/types/match.d.ts +71 -0
  57. package/dist/types/match.d.ts.map +1 -0
  58. package/dist/types/match.js +8 -0
  59. package/dist/types/match.js.map +1 -0
  60. package/dist/types/payment.d.ts +176 -0
  61. package/dist/types/payment.d.ts.map +1 -0
  62. package/dist/types/payment.js +112 -0
  63. package/dist/types/payment.js.map +1 -0
  64. package/dist/types/policy.d.ts +347 -0
  65. package/dist/types/policy.d.ts.map +1 -0
  66. package/dist/types/policy.js +52 -0
  67. package/dist/types/policy.js.map +1 -0
  68. package/dist/types/profile.d.ts +196 -0
  69. package/dist/types/profile.d.ts.map +1 -0
  70. package/dist/types/profile.js +3 -0
  71. package/dist/types/profile.js.map +1 -0
  72. package/dist/types/verification.d.ts +57 -0
  73. package/dist/types/verification.d.ts.map +1 -0
  74. package/dist/types/verification.js +3 -0
  75. package/dist/types/verification.js.map +1 -0
  76. package/package.json +67 -0
@@ -0,0 +1,368 @@
1
+ {
2
+ "common": {
3
+ "appName": "قلب میچ",
4
+ "tagline": "حلال رشتے، بابرکت نکاح",
5
+ "continue": "جاری رکھیں",
6
+ "back": "واپس",
7
+ "next": "اگلا",
8
+ "submit": "جمع کرائیں",
9
+ "save": "محفوظ کریں",
10
+ "cancel": "منسوخ",
11
+ "delete": "حذف کریں",
12
+ "edit": "ترمیم",
13
+ "view": "دیکھیں",
14
+ "search": "تلاش",
15
+ "filter": "فلٹر",
16
+ "sort": "ترتیب",
17
+ "loading": "لوڈ ہو رہا ہے...",
18
+ "error": "خرابی",
19
+ "success": "کامیابی",
20
+ "confirm": "تصدیق",
21
+ "yes": "ہاں",
22
+ "no": "نہیں",
23
+ "ok": "ٹھیک ہے",
24
+ "done": "مکمل",
25
+ "close": "بند کریں",
26
+ "retry": "دوبارہ کوشش",
27
+ "refresh": "ریفریش",
28
+ "seeAll": "سب دیکھیں",
29
+ "showMore": "مزید دکھائیں",
30
+ "showLess": "کم دکھائیں"
31
+ },
32
+ "auth": {
33
+ "welcome": "قلب میچ میں خوش آمدید",
34
+ "signIn": "سائن ان",
35
+ "signUp": "سائن اپ",
36
+ "signOut": "سائن آؤٹ",
37
+ "email": "ای میل",
38
+ "phone": "فون نمبر",
39
+ "password": "پاس ورڈ",
40
+ "confirmPassword": "پاس ورڈ کی تصدیق",
41
+ "forgotPassword": "پاس ورڈ بھول گئے؟",
42
+ "resetPassword": "پاس ورڈ ری سیٹ",
43
+ "verifyEmail": "ای میل کی تصدیق",
44
+ "verifyPhone": "فون کی تصدیق",
45
+ "enterOtp": "OTP درج کریں",
46
+ "resendOtp": "OTP دوبارہ بھیجیں",
47
+ "otpSent": "{{destination}} پر OTP بھیج دیا گیا",
48
+ "invalidOtp": "غلط OTP۔ براہ کرم دوبارہ کوشش کریں۔",
49
+ "twoFactorRequired": "دو عنصری تصدیق درکار ہے"
50
+ },
51
+ "onboarding": {
52
+ "welcome": {
53
+ "title": "السلام علیکم",
54
+ "subtitle": "قلب میچ میں خوش آمدید - مسلم خاندانوں کے لیے حلال رشتوں کا پلیٹ فارم",
55
+ "description": "ہمارا مقصد مسلم خاندانوں کو ایک محفوظ، باعزت اور اسلامی ماحول میں اپنے پیاروں کے لیے مناسب رشتے تلاش کرنے میں مدد کرنا ہے۔"
56
+ },
57
+ "howItWorks": {
58
+ "title": "یہ کیسے کام کرتا ہے",
59
+ "step1Title": "اکاؤنٹ بنائیں",
60
+ "step1Desc": "والدین، سرپرست، یا تصدیق شدہ شادی کنسلٹنٹس امیدواروں کی جانب سے اکاؤنٹ بناتے ہیں۔",
61
+ "step2Title": "پروفائل جمع کرائیں",
62
+ "step2Desc": "تصاویر اور ترجیحات کے ساتھ تفصیلی پروفائل شامل کریں۔ تمام پروفائلز کی ہماری ٹیم تصدیق کرتی ہے۔",
63
+ "step3Title": "رشتے تلاش کریں",
64
+ "step3Desc": "تصدیق شدہ پروفائلز دیکھیں، دلچسپی کا اظہار کریں، اور ہمارے محفوظ پیغام رسانی نظام کے ذریعے رابطہ کریں۔",
65
+ "step4Title": "بابرکت نکاح",
66
+ "step4Desc": "جب دونوں خاندان متفق ہوں، نکاح کی طرف بات چیت آگے بڑھائیں۔"
67
+ },
68
+ "rules": {
69
+ "title": "پلیٹ فارم کے اصول",
70
+ "rule1Title": "خاندان پر مبنی",
71
+ "rule1Desc": "اکاؤنٹس والدین، سرپرستوں، یا تصدیق شدہ شادی کنسلٹنٹس کے ذریعے بنائے جانے چاہیئیں۔ افراد (خاص طور پر خواتین) کی براہ راست رجسٹریشن محفوظ ماحول برقرار رکھنے کے لیے کی اجازت نہیں ہے۔",
72
+ "rule2Title": "تصدیق ضروری ہے",
73
+ "rule2Desc": "تمام پروفائلز کو لائیو ہونے سے پہلے شناختی تصدیق کی ضرورت ہے۔ یہ صداقت کو یقینی بناتا ہے اور غیر سنجیدہ امیدواروں کو فلٹر کرتا ہے۔",
74
+ "rule3Title": "ایک وقت میں ایک رابطہ",
75
+ "rule3Desc": "انفرادی اکاؤنٹس ایک وقت میں صرف ایک پروفائل سے رابطہ کر سکتے ہیں۔ دوسروں سے رابطہ کرنے سے پہلے جواب کا انتظار کریں۔",
76
+ "rule4Title": "باعزت گفتگو",
77
+ "rule4Desc": "تمام گفتگو حلال اور باعزت رہنی چاہیے۔ ہماری ٹیم نامناسب مواد کی شکایت پر چیٹس کا جائزہ لے سکتی ہے۔",
78
+ "rule5Title": "تین اسٹرائیک پالیسی",
79
+ "rule5Desc": "3 تصدیق شدہ شکایات والے اکاؤنٹس مستقل طور پر بلاک ہو جائیں گے۔ ہم بدسلوکی کے خلاف سخت ہیں۔"
80
+ },
81
+ "safety": {
82
+ "title": "حفاظت سب سے پہلے",
83
+ "subtitle": "آپ کی حفاظت اور رازداری ہماری اولین ترجیحات ہیں",
84
+ "point1": "تمام پروفائلز لائیو ہونے سے پہلے ہماری ٹیم کے ذریعے جائزہ لی جاتی ہیں",
85
+ "point2": "تمام امیدواروں کے لیے شناختی تصدیق لازمی ہے",
86
+ "point3": "چیٹس انکرپٹڈ ہیں لیکن شکایت پر ماڈریٹرز جائزہ لے سکتے ہیں",
87
+ "point4": "مردوں کے پروفائلز کے لیے سخت پالیسیوں کے ساتھ خواتین کے لیے محفوظ ڈیزائن",
88
+ "point5": "آپ کا ڈیٹا محفوظ طریقے سے ذخیرہ کیا جاتا ہے اور کبھی تیسری پارٹی کے ساتھ شیئر نہیں کیا جاتا"
89
+ },
90
+ "accountType": {
91
+ "title": "اکاؤنٹ کی قسم منتخب کریں",
92
+ "individual": {
93
+ "title": "خاندانی اکاؤنٹ",
94
+ "description": "والدین، سرپرستوں، یا خاندان کے افراد کے لیے جو اپنے پیاروں کی جانب سے رجسٹر کر رہے ہیں۔",
95
+ "features": [
96
+ "3 مفت پروفائلز تک",
97
+ "اضافی پروفائل سلاٹس خریدیں",
98
+ "ایک وقت میں ایک فعال رابطہ"
99
+ ]
100
+ },
101
+ "company": {
102
+ "title": "پیشہ ورانہ اکاؤنٹ",
103
+ "description": "شادی بیوروز، کنسلٹنسیز، یا افراد جو پیشہ ورانہ طور پر رشتوں میں مدد کرتے ہیں۔",
104
+ "features": [
105
+ "لامحدود پروفائلز",
106
+ "بیک وقت متعدد گفتگو",
107
+ "کمپنی کی درجہ بندی اور اعتماد کے بیجز",
108
+ "اضافی تصدیق درکار"
109
+ ]
110
+ }
111
+ },
112
+ "consent": {
113
+ "title": "شرائط و رازداری",
114
+ "termsLabel": "میں سروس کی شرائط سے متفق ہوں",
115
+ "privacyLabel": "میں رازداری کی پالیسی سے متفق ہوں",
116
+ "dataLabel": "میں اپنے ڈیٹا کو محفوظ طریقے سے ذخیرہ کرنے پر رضامند ہوں (تیسری پارٹی کے ساتھ شیئر نہیں)",
117
+ "chatReviewLabel": "میں سمجھتا/سمجھتی ہوں کہ شکایت پر ماڈریٹرز چیٹس کا جائزہ لے سکتے ہیں"
118
+ }
119
+ },
120
+ "profile": {
121
+ "createProfile": "پروفائل بنائیں",
122
+ "editProfile": "پروفائل میں ترمیم",
123
+ "viewProfile": "پروفائل دیکھیں",
124
+ "myProfiles": "میرے پروفائلز",
125
+ "profileDetails": "پروفائل کی تفصیلات",
126
+ "basicInfo": "بنیادی معلومات",
127
+ "religiousInfo": "مذہبی پس منظر",
128
+ "physicalAttributes": "جسمانی خصوصیات",
129
+ "education": "تعلیم و پیشہ",
130
+ "family": "خاندانی پس منظر",
131
+ "lifestyle": "طرز زندگی",
132
+ "preferences": "شریک حیات کی ترجیحات",
133
+ "photos": "تصاویر",
134
+ "verification": "تصدیق",
135
+ "status": {
136
+ "draft": "مسودہ",
137
+ "pending_verification": "تصدیق کے انتظار میں",
138
+ "pending_review": "جائزے کے تحت",
139
+ "on_hold": "موقوف",
140
+ "approved": "منظور شدہ",
141
+ "live": "لائیو",
142
+ "paused": "موقوف",
143
+ "matched": "میچ ہو گیا",
144
+ "rejected": "مسترد"
145
+ },
146
+ "fields": {
147
+ "candidateName": "امیدوار کا نام",
148
+ "gender": "جنس",
149
+ "dateOfBirth": "تاریخ پیدائش",
150
+ "age": "عمر",
151
+ "sect": "مسلک",
152
+ "maritalStatus": "ازدواجی حیثیت",
153
+ "height": "قد",
154
+ "weight": "وزن",
155
+ "complexion": "رنگت",
156
+ "bodyType": "جسمانی ساخت",
157
+ "location": "موجودہ مقام",
158
+ "nationality": "قومیت",
159
+ "citizenship": "شہریت",
160
+ "education": "تعلیمی سطح",
161
+ "profession": "پیشہ",
162
+ "income": "سالانہ آمدنی",
163
+ "aboutCandidate": "امیدوار کے بارے میں",
164
+ "aboutFamily": "خاندان کے بارے میں",
165
+ "partnerExpectations": "شریک حیات کی توقعات"
166
+ }
167
+ },
168
+ "match": {
169
+ "discover": "دریافت کریں",
170
+ "interests": "دلچسپیاں",
171
+ "matches": "میچز",
172
+ "sendInterest": "دلچسپی بھیجیں",
173
+ "interestSent": "دلچسپی بھیج دی گئی",
174
+ "acceptInterest": "قبول کریں",
175
+ "declineInterest": "انکار کریں",
176
+ "withdrawInterest": "واپس لیں",
177
+ "noMatches": "کوئی میچ نہیں ملا",
178
+ "noInterests": "ابھی تک کوئی دلچسپی نہیں",
179
+ "waitingForResponse": "جواب کا انتظار",
180
+ "responseDeadline": "براہ کرم {{time}} تک جواب دیں",
181
+ "matchStarted": "میچ ہو گیا! اب آپ چیٹ کر سکتے ہیں۔",
182
+ "oneActiveLimit": "آپ ایک وقت میں صرف ایک پروفائل سے رابطہ کر سکتے ہیں۔ براہ کرم جواب کا انتظار کریں یا اپنی موجودہ دلچسپی واپس لیں۔"
183
+ },
184
+ "chat": {
185
+ "chats": "چیٹس",
186
+ "newMessage": "نیا پیغام",
187
+ "typeMessage": "پیغام لکھیں...",
188
+ "send": "بھیجیں",
189
+ "delivered": "پہنچ گیا",
190
+ "read": "پڑھ لیا",
191
+ "encryptedNote": "پیغامات انکرپٹڈ ہیں۔ شکایت پر ماڈریٹرز جائزہ لے سکتے ہیں۔",
192
+ "noChats": "ابھی تک کوئی گفتگو نہیں",
193
+ "chatEnded": "یہ گفتگو ختم ہو گئی ہے"
194
+ },
195
+ "company": {
196
+ "applyAsCompany": "پیشہ ور کے طور پر درخواست دیں",
197
+ "companyProfile": "کمپنی پروفائل",
198
+ "companyName": "کمپنی/کاروبار کا نام",
199
+ "companyType": "کاروبار کی قسم",
200
+ "types": {
201
+ "organization": "شادی بیورو/تنظیم",
202
+ "consultancy": "شادی کنسلٹنسی",
203
+ "individual_professional": "انفرادی پیشہ ور"
204
+ },
205
+ "trustLevel": {
206
+ "new": "نیا",
207
+ "verified": "تصدیق شدہ",
208
+ "trusted": "قابل اعتماد",
209
+ "premium": "پریمیم",
210
+ "elite": "ایلیٹ"
211
+ },
212
+ "rating": "درجہ بندی",
213
+ "reviews": "جائزے",
214
+ "activeProfiles": "فعال پروفائلز",
215
+ "successfulMatches": "کامیاب میچز"
216
+ },
217
+ "verification": {
218
+ "title": "شناختی تصدیق",
219
+ "subtitle": "اپنا پروفائل لائیو کرنے کے لیے اپنی شناخت کی تصدیق کریں",
220
+ "instructions": "براہ کرم ایک درست سرکاری شناختی دستاویز فراہم کریں",
221
+ "documentType": "دستاویز کی قسم",
222
+ "documentNumber": "دستاویز نمبر",
223
+ "frontPhoto": "دستاویز کا سامنے کا حصہ",
224
+ "backPhoto": "دستاویز کا پچھلا حصہ",
225
+ "selfie": "تصدیق کے لیے سیلفی",
226
+ "selfieInstructions": "اپنی شناختی دستاویز اپنے چہرے کے ساتھ پکڑے ہوئے ایک واضح سیلفی لیں",
227
+ "submitting": "تصدیق جمع ہو رہی ہے...",
228
+ "submitted": "تصدیق جمع ہو گئی",
229
+ "underReview": "آپ کی تصدیق جائزے کے تحت ہے",
230
+ "approved": "تصدیق شدہ",
231
+ "rejected": "تصدیق مسترد",
232
+ "types": {
233
+ "national_id": "قومی شناختی کارڈ",
234
+ "passport": "پاسپورٹ",
235
+ "driving_license": "ڈرائیونگ لائسنس",
236
+ "cnic": "شناختی کارڈ (پاکستان)",
237
+ "aadhaar": "آدھار (بھارت)",
238
+ "emirates_id": "امارات آئی ڈی",
239
+ "iqama": "اقامہ (سعودی عرب)"
240
+ }
241
+ },
242
+ "payment": {
243
+ "subscription": "سبسکرپشن",
244
+ "currentPlan": "موجودہ پلان",
245
+ "upgradePlan": "پلان اپ گریڈ کریں",
246
+ "plans": "پلانز",
247
+ "freeTrial": "1 ماہ مفت ٹرائل",
248
+ "subscribe": "سبسکرائب کریں",
249
+ "cancelSubscription": "سبسکرپشن منسوخ کریں",
250
+ "buyProfiles": "اضافی پروفائلز خریدیں",
251
+ "donate": "قلب میچ کی مدد کریں",
252
+ "donateSubtitle": "پلیٹ فارم کو چلانے میں ہماری مدد کریں",
253
+ "promoCode": "پرومو کوڈ",
254
+ "applyPromo": "لگائیں",
255
+ "paymentMethod": "ادائیگی کا طریقہ",
256
+ "transactionHistory": "لین دین کی تاریخ"
257
+ },
258
+ "settings": {
259
+ "settings": "ترتیبات",
260
+ "account": "اکاؤنٹ",
261
+ "notifications": "اطلاعات",
262
+ "language": "زبان",
263
+ "privacy": "رازداری",
264
+ "help": "مدد و سپورٹ",
265
+ "about": "کے بارے میں",
266
+ "deleteAccount": "اکاؤنٹ حذف کریں",
267
+ "languages": {
268
+ "en": "English",
269
+ "ur": "اردو",
270
+ "ar": "العربية"
271
+ }
272
+ },
273
+ "flag": {
274
+ "reportProfile": "پروفائل کی رپورٹ کریں",
275
+ "reportUser": "صارف کی رپورٹ کریں",
276
+ "reportChat": "چیٹ کی رپورٹ کریں",
277
+ "reason": "رپورٹ کی وجہ",
278
+ "description": "براہ کرم مسئلے کی وضاحت کریں",
279
+ "submit": "رپورٹ جمع کریں",
280
+ "submitted": "رپورٹ جمع ہو گئی۔ ہماری ٹیم جائزہ لے گی۔",
281
+ "reasons": {
282
+ "fake_profile": "جعلی پروفائل",
283
+ "inappropriate_content": "نامناسب مواد",
284
+ "harassment": "ہراسانی",
285
+ "scam_fraud": "دھوکہ دہی",
286
+ "impersonation": "نقالی",
287
+ "non_halal_behavior": "غیر حلال رویہ",
288
+ "spam": "سپیم",
289
+ "underage": "کم عمر",
290
+ "already_married": "پہلے سے شادی شدہ",
291
+ "incorrect_information": "غلط معلومات",
292
+ "offensive_language": "جارحانہ زبان",
293
+ "other": "دیگر"
294
+ }
295
+ },
296
+ "errors": {
297
+ "generic": "کچھ غلط ہو گیا۔ براہ کرم دوبارہ کوشش کریں۔",
298
+ "network": "نیٹ ورک کی خرابی۔ براہ کرم اپنا کنکشن چیک کریں۔",
299
+ "unauthorized": "جاری رکھنے کے لیے سائن ان کریں۔",
300
+ "forbidden": "آپ کو یہ کرنے کی اجازت نہیں ہے۔",
301
+ "notFound": "نہیں ملا۔",
302
+ "validation": "براہ کرم اپنی معلومات چیک کریں اور دوبارہ کوشش کریں۔",
303
+ "profileLimit": "آپ اپنی پروفائل کی حد تک پہنچ گئے ہیں۔ مزید شامل کرنے کے لیے اپ گریڈ کریں۔",
304
+ "activeApproachLimit": "آپ کا پہلے سے ایک فعال رابطہ ہے۔ براہ کرم جواب کا انتظار کریں۔"
305
+ },
306
+ "nav": {
307
+ "dashboard": "ڈیش بورڈ",
308
+ "profiles": "پروفائلز",
309
+ "team": "ٹیم",
310
+ "matches": "میچز",
311
+ "subscription": "سبسکرپشن",
312
+ "settings": "سیٹنگز",
313
+ "logout": "لاگ آؤٹ",
314
+ "marketplace": "مارکیٹ پلیس",
315
+ "requirements": "ضروریات",
316
+ "proposals": "تجاویز",
317
+ "contracts": "معاہدے",
318
+ "disputes": "تنازعات",
319
+ "tmc": "ٹرسٹ کمپنی"
320
+ },
321
+ "marketplace": {
322
+ "requirements": {
323
+ "title": "ضروریات براؤز کریں",
324
+ "subtitle": "خاندان کی ضروریات کے لیے تجاویز تلاش کریں اور جمع کرائیں",
325
+ "searchPlaceholder": "ضروریات تلاش کریں...",
326
+ "serviceType": "سروس کی قسم",
327
+ "budgetMin": "کم از کم بجٹ",
328
+ "budgetMax": "زیادہ سے زیادہ بجٹ",
329
+ "remoteOnly": "صرف ریموٹ",
330
+ "resultsCount": "{{count}} ضروریات ملیں",
331
+ "noResults": "کوئی ضروریات نہیں ملیں",
332
+ "noResultsDesc": "اپنے فلٹرز کو ایڈجسٹ کرنے کی کوشش کریں یا بعد میں واپس آئیں"
333
+ },
334
+ "proposals": {
335
+ "title": "میری تجاویز",
336
+ "subtitle": "اپنی جمع کی گئی تجاویز کو ٹریک اور مینیج کریں",
337
+ "noProposals": "کوئی تجویز نہیں ملی",
338
+ "noProposalsDesc": "ضروریات براؤز کریں اور اپنی پہلی تجویز جمع کرائیں"
339
+ },
340
+ "contracts": {
341
+ "title": "میرے معاہدے",
342
+ "subtitle": "اپنے فعال اور پچھلے معاہدوں کا انتظام کریں",
343
+ "noContracts": "کوئی معاہدہ نہیں ملا",
344
+ "noContractsDesc": "معاہدے آپ کی تجاویز قبول ہونے پر بنتے ہیں"
345
+ },
346
+ "disputes": {
347
+ "title": "تنازعات",
348
+ "subtitle": "معاہدے کے تنازعات کا انتظام اور حل کریں",
349
+ "noDisputes": "کوئی تنازعہ نہیں",
350
+ "noDisputesDesc": "آپ کا کوئی تنازعہ نہیں ہے۔ بہترین کام!"
351
+ },
352
+ "tmc": {
353
+ "title": "ٹرسٹ مینجمنٹ کمپنی",
354
+ "subtitle": "ایک قابل اعتماد پارٹنر بنیں اور اپنے نیٹ ورک سے کمائیں"
355
+ }
356
+ },
357
+ "serviceTypes": {
358
+ "matchmaking": "میچ میکنگ",
359
+ "verification": "تصدیق",
360
+ "photography": "فوٹوگرافی",
361
+ "event_planning": "ایونٹ پلاننگ",
362
+ "legal_consultation": "قانونی مشاورت",
363
+ "counseling": "کاؤنسلنگ",
364
+ "investigation": "تحقیقات",
365
+ "documentation": "دستاویزات",
366
+ "other": "دیگر"
367
+ }
368
+ }
@@ -0,0 +1,4 @@
1
+ export * from './constants';
2
+ export * from './i18n';
3
+ export * from './types';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,4 @@
1
+ export * from './constants';
2
+ export * from './i18n';
3
+ export * from './types';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC"}
@@ -0,0 +1,55 @@
1
+ import { Language, TimestampFields } from './common';
2
+ import type { CompanyApplicationInput } from './company';
3
+ export type AccountType = 'individual' | 'company';
4
+ export type AccountStatus = 'pending_verification' | 'active' | 'suspended' | 'blocked' | 'deleted';
5
+ export type RelationToCandidate = 'parent' | 'guardian' | 'sibling' | 'uncle_aunt' | 'grandparent' | 'other_family' | 'self_company';
6
+ export interface Account extends TimestampFields {
7
+ id: string;
8
+ firebaseUid: string;
9
+ type: AccountType;
10
+ status: AccountStatus;
11
+ email: string;
12
+ emailVerified: boolean;
13
+ phone: string;
14
+ phoneVerified: boolean;
15
+ holderName: string;
16
+ holderRelation: RelationToCandidate;
17
+ maxFreeProfiles: number;
18
+ additionalProfilesPurchased: number;
19
+ companyId?: string;
20
+ subscriptionId?: string;
21
+ trialEndsAt?: Date;
22
+ flagCount: number;
23
+ preferredLanguage: Language;
24
+ notificationsEnabled: boolean;
25
+ agreedToTermsAt: Date;
26
+ privacyConsentAt: Date;
27
+ dataStorageConsentAt: Date;
28
+ lastActiveAt: Date;
29
+ deviceTokens: string[];
30
+ }
31
+ export interface AccountCreateInput {
32
+ email: string;
33
+ phone: string;
34
+ holderName: string;
35
+ holderRelation: RelationToCandidate;
36
+ type: AccountType;
37
+ preferredLanguage?: Language;
38
+ companyApplication?: CompanyApplicationInput;
39
+ }
40
+ export interface AccountUpdateInput {
41
+ holderName?: string;
42
+ preferredLanguage?: Language;
43
+ notificationsEnabled?: boolean;
44
+ }
45
+ export interface AccountPublicInfo {
46
+ id: string;
47
+ type: AccountType;
48
+ holderName: string;
49
+ holderRelation: RelationToCandidate;
50
+ companyId?: string;
51
+ companyName?: string;
52
+ companyRating?: number;
53
+ companyTrustLevel?: string;
54
+ }
55
+ //# sourceMappingURL=account.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../src/types/account.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AACrD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAEzD,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,SAAS,CAAC;AAEnD,MAAM,MAAM,aAAa,GAAG,sBAAsB,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,GAAG,SAAS,CAAC;AAEpG,MAAM,MAAM,mBAAmB,GAC3B,QAAQ,GACR,UAAU,GACV,SAAS,GACT,YAAY,GACZ,aAAa,GACb,cAAc,GACd,cAAc,CAAC;AAEnB,MAAM,WAAW,OAAQ,SAAQ,eAAe;IAC9C,EAAE,EAAE,MAAM,CAAC;IAGX,WAAW,EAAE,MAAM,CAAC;IAGpB,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE,aAAa,CAAC;IAGtB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,OAAO,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,OAAO,CAAC;IAGvB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,mBAAmB,CAAC;IAGpC,eAAe,EAAE,MAAM,CAAC;IACxB,2BAA2B,EAAE,MAAM,CAAC;IAGpC,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,IAAI,CAAC;IAGnB,SAAS,EAAE,MAAM,CAAC;IAGlB,iBAAiB,EAAE,QAAQ,CAAC;IAC5B,oBAAoB,EAAE,OAAO,CAAC;IAG9B,eAAe,EAAE,IAAI,CAAC;IACtB,gBAAgB,EAAE,IAAI,CAAC;IACvB,oBAAoB,EAAE,IAAI,CAAC;IAG3B,YAAY,EAAE,IAAI,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,mBAAmB,CAAC;IACpC,IAAI,EAAE,WAAW,CAAC;IAClB,iBAAiB,CAAC,EAAE,QAAQ,CAAC;IAC7B,kBAAkB,CAAC,EAAE,uBAAuB,CAAC;CAC9C;AAID,MAAM,WAAW,kBAAkB;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,QAAQ,CAAC;IAC7B,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,WAAW,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,mBAAmB,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B"}
@@ -0,0 +1,3 @@
1
+ // Account types
2
+ export {};
3
+ //# sourceMappingURL=account.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account.js","sourceRoot":"","sources":["../../src/types/account.ts"],"names":[],"mappings":"AAAA,gBAAgB"}
@@ -0,0 +1,70 @@
1
+ import { TimestampFields } from './common';
2
+ export type AdminRole = 'super_admin' | 'admin' | 'moderator' | 'verifier' | 'support' | 'analyst';
3
+ export type AdminStatus = 'active' | 'inactive' | 'suspended';
4
+ export interface Admin extends TimestampFields {
5
+ id: string;
6
+ firebaseUid: string;
7
+ email: string;
8
+ name: string;
9
+ role: AdminRole;
10
+ status: AdminStatus;
11
+ permissions: AdminPermission[];
12
+ lastLoginAt?: Date;
13
+ lastActionAt?: Date;
14
+ twoFactorEnabled: boolean;
15
+ ipWhitelist?: string[];
16
+ profilesReviewed: number;
17
+ verificationsProcessed: number;
18
+ flagsHandled: number;
19
+ createdBy: string;
20
+ notes?: string;
21
+ }
22
+ export type AdminPermission = 'profile:view' | 'profile:review' | 'profile:approve' | 'profile:reject' | 'profile:edit' | 'profile:delete' | 'profile:hold' | 'account:view' | 'account:edit' | 'account:suspend' | 'account:block' | 'account:delete' | 'company:view' | 'company:review' | 'company:approve' | 'company:reject' | 'company:edit' | 'verification:view' | 'verification:review' | 'verification:approve' | 'verification:reject' | 'flag:view' | 'flag:review' | 'flag:action' | 'chat:view' | 'chat:review' | 'payment:view' | 'payment:refund' | 'promo:view' | 'promo:create' | 'promo:edit' | 'analytics:view' | 'analytics:export' | 'admin:view' | 'admin:create' | 'admin:edit' | 'admin:delete' | 'system:settings' | 'system:audit_log';
23
+ export declare const ROLE_PERMISSIONS: Record<AdminRole, AdminPermission[]>;
24
+ export interface AuditLog extends TimestampFields {
25
+ id: string;
26
+ adminId: string;
27
+ adminName: string;
28
+ action: string;
29
+ resource: string;
30
+ resourceId: string;
31
+ previousValue?: any;
32
+ newValue?: any;
33
+ notes?: string;
34
+ ipAddress: string;
35
+ userAgent: string;
36
+ }
37
+ export interface AdminDashboardStats {
38
+ pendingProfiles: number;
39
+ onHoldProfiles: number;
40
+ liveProfiles: number;
41
+ profilesReviewedToday: number;
42
+ pendingVerifications: number;
43
+ verificationsProcessedToday: number;
44
+ pendingCompanyApplications: number;
45
+ activeCompanies: number;
46
+ pendingFlags: number;
47
+ criticalFlags: number;
48
+ flagsHandledToday: number;
49
+ totalAccounts: number;
50
+ activeAccountsThisWeek: number;
51
+ newAccountsToday: number;
52
+ activeMatches: number;
53
+ successfulMatchesThisMonth: number;
54
+ revenueThisMonth: number;
55
+ subscriptionsActive: number;
56
+ donationsThisMonth: number;
57
+ maleProfiles: number;
58
+ femaleProfiles: number;
59
+ maleToFemaleRatio: number;
60
+ }
61
+ export interface ReviewQueueItem {
62
+ id: string;
63
+ type: 'profile' | 'verification' | 'company' | 'flag';
64
+ priority: 'low' | 'medium' | 'high' | 'critical';
65
+ submittedAt: Date;
66
+ waitingTime: number;
67
+ summary: string;
68
+ assignedTo?: string;
69
+ }
70
+ //# sourceMappingURL=admin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../src/types/admin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,117 @@
1
+ // Admin types - for internal team
2
+ // Role-based default permissions
3
+ export const ROLE_PERMISSIONS = {
4
+ super_admin: [
5
+ 'profile:view',
6
+ 'profile:review',
7
+ 'profile:approve',
8
+ 'profile:reject',
9
+ 'profile:edit',
10
+ 'profile:delete',
11
+ 'profile:hold',
12
+ 'account:view',
13
+ 'account:edit',
14
+ 'account:suspend',
15
+ 'account:block',
16
+ 'account:delete',
17
+ 'company:view',
18
+ 'company:review',
19
+ 'company:approve',
20
+ 'company:reject',
21
+ 'company:edit',
22
+ 'verification:view',
23
+ 'verification:review',
24
+ 'verification:approve',
25
+ 'verification:reject',
26
+ 'flag:view',
27
+ 'flag:review',
28
+ 'flag:action',
29
+ 'chat:view',
30
+ 'chat:review',
31
+ 'payment:view',
32
+ 'payment:refund',
33
+ 'promo:view',
34
+ 'promo:create',
35
+ 'promo:edit',
36
+ 'analytics:view',
37
+ 'analytics:export',
38
+ 'admin:view',
39
+ 'admin:create',
40
+ 'admin:edit',
41
+ 'admin:delete',
42
+ 'system:settings',
43
+ 'system:audit_log',
44
+ ],
45
+ admin: [
46
+ 'profile:view',
47
+ 'profile:review',
48
+ 'profile:approve',
49
+ 'profile:reject',
50
+ 'profile:edit',
51
+ 'profile:delete',
52
+ 'profile:hold',
53
+ 'account:view',
54
+ 'account:edit',
55
+ 'account:suspend',
56
+ 'account:block',
57
+ 'company:view',
58
+ 'company:review',
59
+ 'company:approve',
60
+ 'company:reject',
61
+ 'company:edit',
62
+ 'verification:view',
63
+ 'verification:review',
64
+ 'verification:approve',
65
+ 'verification:reject',
66
+ 'flag:view',
67
+ 'flag:review',
68
+ 'flag:action',
69
+ 'chat:view',
70
+ 'chat:review',
71
+ 'payment:view',
72
+ 'payment:refund',
73
+ 'promo:view',
74
+ 'promo:create',
75
+ 'promo:edit',
76
+ 'analytics:view',
77
+ 'analytics:export',
78
+ 'admin:view',
79
+ 'system:audit_log',
80
+ ],
81
+ moderator: [
82
+ 'profile:view',
83
+ 'profile:review',
84
+ 'profile:approve',
85
+ 'profile:reject',
86
+ 'profile:hold',
87
+ 'account:view',
88
+ 'account:suspend',
89
+ 'company:view',
90
+ 'verification:view',
91
+ 'flag:view',
92
+ 'flag:review',
93
+ 'flag:action',
94
+ 'chat:view',
95
+ 'chat:review',
96
+ 'analytics:view',
97
+ ],
98
+ verifier: [
99
+ 'profile:view',
100
+ 'account:view',
101
+ 'verification:view',
102
+ 'verification:review',
103
+ 'verification:approve',
104
+ 'verification:reject',
105
+ ],
106
+ support: [
107
+ 'profile:view',
108
+ 'account:view',
109
+ 'account:edit',
110
+ 'company:view',
111
+ 'verification:view',
112
+ 'flag:view',
113
+ 'payment:view',
114
+ ],
115
+ analyst: ['profile:view', 'account:view', 'company:view', 'analytics:view', 'analytics:export'],
116
+ };
117
+ //# sourceMappingURL=admin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin.js","sourceRoot":"","sources":["../../src/types/admin.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAuGlC,iCAAiC;AACjC,MAAM,CAAC,MAAM,gBAAgB,GAAyC;IACpE,WAAW,EAAE;QACX,cAAc;QACd,gBAAgB;QAChB,iBAAiB;QACjB,gBAAgB;QAChB,cAAc;QACd,gBAAgB;QAChB,cAAc;QACd,cAAc;QACd,cAAc;QACd,iBAAiB;QACjB,eAAe;QACf,gBAAgB;QAChB,cAAc;QACd,gBAAgB;QAChB,iBAAiB;QACjB,gBAAgB;QAChB,cAAc;QACd,mBAAmB;QACnB,qBAAqB;QACrB,sBAAsB;QACtB,qBAAqB;QACrB,WAAW;QACX,aAAa;QACb,aAAa;QACb,WAAW;QACX,aAAa;QACb,cAAc;QACd,gBAAgB;QAChB,YAAY;QACZ,cAAc;QACd,YAAY;QACZ,gBAAgB;QAChB,kBAAkB;QAClB,YAAY;QACZ,cAAc;QACd,YAAY;QACZ,cAAc;QACd,iBAAiB;QACjB,kBAAkB;KACnB;IACD,KAAK,EAAE;QACL,cAAc;QACd,gBAAgB;QAChB,iBAAiB;QACjB,gBAAgB;QAChB,cAAc;QACd,gBAAgB;QAChB,cAAc;QACd,cAAc;QACd,cAAc;QACd,iBAAiB;QACjB,eAAe;QACf,cAAc;QACd,gBAAgB;QAChB,iBAAiB;QACjB,gBAAgB;QAChB,cAAc;QACd,mBAAmB;QACnB,qBAAqB;QACrB,sBAAsB;QACtB,qBAAqB;QACrB,WAAW;QACX,aAAa;QACb,aAAa;QACb,WAAW;QACX,aAAa;QACb,cAAc;QACd,gBAAgB;QAChB,YAAY;QACZ,cAAc;QACd,YAAY;QACZ,gBAAgB;QAChB,kBAAkB;QAClB,YAAY;QACZ,kBAAkB;KACnB;IACD,SAAS,EAAE;QACT,cAAc;QACd,gBAAgB;QAChB,iBAAiB;QACjB,gBAAgB;QAChB,cAAc;QACd,cAAc;QACd,iBAAiB;QACjB,cAAc;QACd,mBAAmB;QACnB,WAAW;QACX,aAAa;QACb,aAAa;QACb,WAAW;QACX,aAAa;QACb,gBAAgB;KACjB;IACD,QAAQ,EAAE;QACR,cAAc;QACd,cAAc;QACd,mBAAmB;QACnB,qBAAqB;QACrB,sBAAsB;QACtB,qBAAqB;KACtB;IACD,OAAO,EAAE;QACP,cAAc;QACd,cAAc;QACd,cAAc;QACd,cAAc;QACd,mBAAmB;QACnB,WAAW;QACX,cAAc;KACf;IACD,OAAO,EAAE,CAAC,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,gBAAgB,EAAE,kBAAkB,CAAC;CAChG,CAAC"}