@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,103 @@
1
+ export * from './marketplace';
2
+ export declare const APP_NAME = "QalbMatch";
3
+ export declare const APP_TAGLINE = "Halal Connections, Blessed Unions";
4
+ export declare const MAX_FREE_PROFILES = 3;
5
+ export declare const MAX_FLAGS_BEFORE_BLOCK = 3;
6
+ export declare const ACTIVE_HOURS_START = 9;
7
+ export declare const ACTIVE_HOURS_END = 24;
8
+ export declare const MAX_RESPONSE_HOURS = 18;
9
+ export declare const GRACE_HOURS_NEXT_DAY = 12;
10
+ export declare const MIN_AGE = 18;
11
+ export declare const MAX_AGE = 70;
12
+ export declare const MIN_HEIGHT_CM = 120;
13
+ export declare const MAX_HEIGHT_CM = 220;
14
+ export declare const MIN_WEIGHT_KG = 30;
15
+ export declare const MAX_WEIGHT_KG = 200;
16
+ export declare const MAX_PHOTOS_PER_PROFILE = 6;
17
+ export declare const MAX_PHOTO_SIZE_MB = 5;
18
+ export declare const ALLOWED_IMAGE_TYPES: string[];
19
+ export declare const THUMBNAIL_SIZE = 200;
20
+ export declare const MIN_ABOUT_LENGTH = 50;
21
+ export declare const MAX_ABOUT_LENGTH = 2000;
22
+ export declare const MIN_EXPECTATIONS_LENGTH = 30;
23
+ export declare const MAX_EXPECTATIONS_LENGTH = 1000;
24
+ export declare const MAX_MESSAGE_LENGTH = 2000;
25
+ export declare const CHAT_PAGE_SIZE = 50;
26
+ export declare const DEFAULT_PAGE_SIZE = 20;
27
+ export declare const MAX_PAGE_SIZE = 100;
28
+ export declare const TRIAL_DAYS = 30;
29
+ export declare const DEFAULT_MALE_TO_FEMALE_RATIO = 2;
30
+ export declare const HOLD_THRESHOLD_RATIO = 1.5;
31
+ export declare const AGE_PRIORITY_RANGES: {
32
+ min: number;
33
+ max: number;
34
+ priority: number;
35
+ }[];
36
+ export declare const VERIFICATION_EXPIRY_DAYS = 365;
37
+ export declare const MIN_FACE_MATCH_SCORE = 70;
38
+ export declare const MIN_NAME_MATCH_SCORE = 80;
39
+ export declare const TRUST_LEVEL_THRESHOLDS: {
40
+ verified: {
41
+ minMatches: number;
42
+ minRating: number;
43
+ };
44
+ trusted: {
45
+ minMatches: number;
46
+ minRating: number;
47
+ };
48
+ premium: {
49
+ minMatches: number;
50
+ minRating: number;
51
+ };
52
+ elite: {
53
+ minMatches: number;
54
+ minRating: number;
55
+ };
56
+ };
57
+ export declare const RATE_LIMITS: {
58
+ auth: {
59
+ windowMs: number;
60
+ max: number;
61
+ };
62
+ search: {
63
+ windowMs: number;
64
+ max: number;
65
+ };
66
+ interest: {
67
+ windowMs: number;
68
+ max: number;
69
+ };
70
+ message: {
71
+ windowMs: number;
72
+ max: number;
73
+ };
74
+ upload: {
75
+ windowMs: number;
76
+ max: number;
77
+ };
78
+ general: {
79
+ windowMs: number;
80
+ max: number;
81
+ };
82
+ };
83
+ export declare const CACHE_TTL: {
84
+ profile: number;
85
+ profileList: number;
86
+ account: number;
87
+ company: number;
88
+ stats: number;
89
+ session: number;
90
+ };
91
+ export declare const FIREBASE_COLLECTIONS: {
92
+ users: string;
93
+ profiles: string;
94
+ chats: string;
95
+ messages: string;
96
+ };
97
+ export declare const STORAGE_PATHS: {
98
+ profilePhotos: string;
99
+ verificationDocs: string;
100
+ companyDocs: string;
101
+ chatImages: string;
102
+ };
103
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":"AAEA,cAAc,eAAe,CAAC;AAE9B,eAAO,MAAM,QAAQ,cAAc,CAAC;AACpC,eAAO,MAAM,WAAW,sCAAsC,CAAC;AAG/D,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAGxC,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,eAAO,MAAM,gBAAgB,KAAK,CAAC;AACnC,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAGvC,eAAO,MAAM,OAAO,KAAK,CAAC;AAC1B,eAAO,MAAM,OAAO,KAAK,CAAC;AAC1B,eAAO,MAAM,aAAa,MAAM,CAAC;AACjC,eAAO,MAAM,aAAa,MAAM,CAAC;AACjC,eAAO,MAAM,aAAa,KAAK,CAAC;AAChC,eAAO,MAAM,aAAa,MAAM,CAAC;AAGjC,eAAO,MAAM,sBAAsB,IAAI,CAAC;AACxC,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,eAAO,MAAM,mBAAmB,UAA4C,CAAC;AAC7E,eAAO,MAAM,cAAc,MAAM,CAAC;AAGlC,eAAO,MAAM,gBAAgB,KAAK,CAAC;AACnC,eAAO,MAAM,gBAAgB,OAAO,CAAC;AACrC,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAC1C,eAAO,MAAM,uBAAuB,OAAO,CAAC;AAG5C,eAAO,MAAM,kBAAkB,OAAO,CAAC;AACvC,eAAO,MAAM,cAAc,KAAK,CAAC;AAGjC,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,eAAO,MAAM,aAAa,MAAM,CAAC;AAGjC,eAAO,MAAM,UAAU,KAAK,CAAC;AAG7B,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAC9C,eAAO,MAAM,oBAAoB,MAAM,CAAC;AAGxC,eAAO,MAAM,mBAAmB;;;;GAM/B,CAAC;AAGF,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAC5C,eAAO,MAAM,oBAAoB,KAAK,CAAC;AACvC,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAGvC,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;CAKlC,CAAC;AAGF,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;CAOvB,CAAC;AAGF,eAAO,MAAM,SAAS;;;;;;;CAOrB,CAAC;AAGF,eAAO,MAAM,oBAAoB;;;;;CAKhC,CAAC;AAGF,eAAO,MAAM,aAAa;;;;;CAKzB,CAAC"}
@@ -0,0 +1,92 @@
1
+ // Shared constants
2
+ export * from './marketplace';
3
+ export const APP_NAME = 'QalbMatch';
4
+ export const APP_TAGLINE = 'Halal Connections, Blessed Unions';
5
+ // Account limits
6
+ export const MAX_FREE_PROFILES = 3;
7
+ export const MAX_FLAGS_BEFORE_BLOCK = 3;
8
+ // Response windows
9
+ export const ACTIVE_HOURS_START = 9; // 9 AM
10
+ export const ACTIVE_HOURS_END = 24; // 12 AM (midnight)
11
+ export const MAX_RESPONSE_HOURS = 18;
12
+ export const GRACE_HOURS_NEXT_DAY = 12;
13
+ // Profile constraints
14
+ export const MIN_AGE = 18;
15
+ export const MAX_AGE = 70;
16
+ export const MIN_HEIGHT_CM = 120;
17
+ export const MAX_HEIGHT_CM = 220;
18
+ export const MIN_WEIGHT_KG = 30;
19
+ export const MAX_WEIGHT_KG = 200;
20
+ // Photos
21
+ export const MAX_PHOTOS_PER_PROFILE = 6;
22
+ export const MAX_PHOTO_SIZE_MB = 5;
23
+ export const ALLOWED_IMAGE_TYPES = ['image/jpeg', 'image/png', 'image/webp'];
24
+ export const THUMBNAIL_SIZE = 200;
25
+ // Bio/description limits
26
+ export const MIN_ABOUT_LENGTH = 50;
27
+ export const MAX_ABOUT_LENGTH = 2000;
28
+ export const MIN_EXPECTATIONS_LENGTH = 30;
29
+ export const MAX_EXPECTATIONS_LENGTH = 1000;
30
+ // Chat
31
+ export const MAX_MESSAGE_LENGTH = 2000;
32
+ export const CHAT_PAGE_SIZE = 50;
33
+ // Pagination
34
+ export const DEFAULT_PAGE_SIZE = 20;
35
+ export const MAX_PAGE_SIZE = 100;
36
+ // Trial
37
+ export const TRIAL_DAYS = 30;
38
+ // Gender balance thresholds (configurable later)
39
+ export const DEFAULT_MALE_TO_FEMALE_RATIO = 2; // 2 females per male
40
+ export const HOLD_THRESHOLD_RATIO = 1.5; // Start holding males when ratio drops below this
41
+ // Age priority ranges for queue processing
42
+ export const AGE_PRIORITY_RANGES = [
43
+ { min: 18, max: 25, priority: 1 }, // Highest priority
44
+ { min: 26, max: 30, priority: 2 },
45
+ { min: 31, max: 35, priority: 3 },
46
+ { min: 36, max: 40, priority: 4 },
47
+ { min: 41, max: 100, priority: 5 }, // Lowest priority
48
+ ];
49
+ // Verification
50
+ export const VERIFICATION_EXPIRY_DAYS = 365;
51
+ export const MIN_FACE_MATCH_SCORE = 70;
52
+ export const MIN_NAME_MATCH_SCORE = 80;
53
+ // Company trust levels
54
+ export const TRUST_LEVEL_THRESHOLDS = {
55
+ verified: { minMatches: 5, minRating: 3.5 },
56
+ trusted: { minMatches: 20, minRating: 4.0 },
57
+ premium: { minMatches: 50, minRating: 4.3 },
58
+ elite: { minMatches: 100, minRating: 4.5 },
59
+ };
60
+ // API rate limits
61
+ export const RATE_LIMITS = {
62
+ auth: { windowMs: 15 * 60 * 1000, max: 10 }, // 10 per 15 min
63
+ search: { windowMs: 60 * 1000, max: 30 }, // 30 per minute
64
+ interest: { windowMs: 60 * 60 * 1000, max: 20 }, // 20 per hour
65
+ message: { windowMs: 60 * 1000, max: 60 }, // 60 per minute
66
+ upload: { windowMs: 60 * 60 * 1000, max: 20 }, // 20 per hour
67
+ general: { windowMs: 60 * 1000, max: 100 }, // 100 per minute
68
+ };
69
+ // Cache TTLs (seconds)
70
+ export const CACHE_TTL = {
71
+ profile: 300, // 5 minutes
72
+ profileList: 60, // 1 minute
73
+ account: 600, // 10 minutes
74
+ company: 600, // 10 minutes
75
+ stats: 300, // 5 minutes
76
+ session: 86400, // 24 hours
77
+ };
78
+ // Firebase collections (for reference)
79
+ export const FIREBASE_COLLECTIONS = {
80
+ users: 'users',
81
+ profiles: 'profiles',
82
+ chats: 'chats',
83
+ messages: 'messages',
84
+ };
85
+ // Storage paths
86
+ export const STORAGE_PATHS = {
87
+ profilePhotos: 'profiles/{profileId}/photos',
88
+ verificationDocs: 'verifications/{verificationId}',
89
+ companyDocs: 'companies/{companyId}/documents',
90
+ chatImages: 'chats/{chatId}/images',
91
+ };
92
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,130 @@
1
+ export declare const PLATFORM_FEE_PERCENTAGE = 5;
2
+ export declare const TMC_MAX_PROFIT_SHARE_PERCENTAGE = 5;
3
+ export declare const TMC_DEFAULT_PROFIT_SHARE_PERCENTAGE = 3;
4
+ export declare const MIN_PROFIT_SHARE_AMOUNT = 1;
5
+ export declare const DISCUSSION_PHASE_DAYS = 3;
6
+ export declare const DISCUSSION_PHASE_HOURS: number;
7
+ export declare const MEDIATION_PHASE_DAYS = 4;
8
+ export declare const MEDIATION_PHASE_HOURS: number;
9
+ export declare const EVIDENCE_SUBMISSION_DEADLINE_HOURS = 72;
10
+ export declare const ADMIN_REVIEW_TARGET_HOURS = 48;
11
+ export declare const MAX_DISPUTE_DURATION_DAYS: number;
12
+ export declare const TMC_AUTO_APPROVAL_CRITERIA: {
13
+ minYearsInBusiness: number;
14
+ minSuccessfulMatches: number;
15
+ minTrustLevel: "elite";
16
+ minRating: number;
17
+ minActiveContracts: number;
18
+ };
19
+ export declare const TMC_TIER_LIMITS: {
20
+ standard: {
21
+ maxManagedCompanies: number;
22
+ profitShareCap: number;
23
+ featuredListings: boolean;
24
+ prioritySupport: boolean;
25
+ };
26
+ gold: {
27
+ maxManagedCompanies: number;
28
+ profitShareCap: number;
29
+ featuredListings: boolean;
30
+ prioritySupport: boolean;
31
+ };
32
+ platinum: {
33
+ maxManagedCompanies: number;
34
+ profitShareCap: number;
35
+ featuredListings: boolean;
36
+ prioritySupport: boolean;
37
+ };
38
+ };
39
+ export declare const MAX_PENDING_PROPOSALS_PER_COMPANY = 20;
40
+ export declare const MAX_ACTIVE_PROPOSALS_PER_COMPANY = 20;
41
+ export declare const MAX_PROPOSALS_PER_REQUIREMENT = 50;
42
+ export declare const PROPOSAL_EXPIRY_DAYS = 14;
43
+ export declare const PROPOSAL_VALIDITY_DAYS = 14;
44
+ export declare const MAX_SHORTLISTED_PROPOSALS = 5;
45
+ export declare const MAX_ACTIVE_CONTRACTS_PER_FAMILY = 3;
46
+ export declare const MAX_ACTIVE_CONTRACTS_BY_TRUST_LEVEL: {
47
+ new: number;
48
+ verified: number;
49
+ trusted: number;
50
+ premium: number;
51
+ elite: number;
52
+ };
53
+ export declare const CONTRACT_FUNDING_DEADLINE_HOURS = 72;
54
+ export declare const MIN_CONTRACT_DURATION_DAYS = 7;
55
+ export declare const MAX_CONTRACT_DURATION_DAYS = 365;
56
+ export declare const MIN_MILESTONES_PER_CONTRACT = 1;
57
+ export declare const MAX_MILESTONES_PER_CONTRACT = 10;
58
+ export declare const MILESTONE_APPROVAL_DEADLINE_HOURS = 72;
59
+ export declare const MILESTONE_AUTO_APPROVE_HOURS = 168;
60
+ export declare const MAX_PACKAGES_PER_LISTING = 5;
61
+ export declare const MAX_ACTIVE_LISTINGS_PER_COMPANY = 10;
62
+ export declare const FEATURED_LISTING_DURATION_DAYS = 30;
63
+ export declare const MAX_ACTIVE_REQUIREMENTS_PER_FAMILY = 3;
64
+ export declare const REQUIREMENT_EXPIRY_DAYS = 60;
65
+ export declare const REQUIREMENT_VISIBILITY_DAYS = 30;
66
+ export declare const MAX_INVITED_COMPANIES_PER_REQUIREMENT = 10;
67
+ export declare const BADGE_EXPIRY_DAYS: {
68
+ verified: number;
69
+ endorsed: number;
70
+ premium_partner: number;
71
+ top_performer: number;
72
+ founding_partner: number;
73
+ };
74
+ export declare const MAX_DISPLAYED_BADGES = 5;
75
+ export declare const DEFAULT_COLLABORATION_REVENUE_SHARE = 50;
76
+ export declare const MAX_PENDING_COLLABORATION_REQUESTS = 10;
77
+ export declare const COLLABORATION_REQUEST_EXPIRY_DAYS = 7;
78
+ export declare const REVIEW_SUBMISSION_WINDOW_DAYS = 30;
79
+ export declare const MIN_RATING = 1;
80
+ export declare const MAX_RATING = 5;
81
+ export declare const MIN_REVIEW_CONTENT_LENGTH = 50;
82
+ export declare const MAX_REVIEW_CONTENT_LENGTH = 2000;
83
+ export declare const MIN_ESCROW_AMOUNT = 10;
84
+ export declare const MAX_ESCROW_AMOUNT = 50000;
85
+ export declare const ESCROW_RELEASE_HOLD_HOURS = 24;
86
+ export declare const REFUND_PROCESSING_DAYS = 5;
87
+ export declare const MIN_PAYOUT_AMOUNT = 25;
88
+ export declare const PAYOUT_SCHEDULES: {
89
+ instant: {
90
+ minAmount: number;
91
+ fee: number;
92
+ };
93
+ daily: {
94
+ minAmount: number;
95
+ fee: number;
96
+ };
97
+ weekly: {
98
+ minAmount: number;
99
+ fee: number;
100
+ };
101
+ monthly: {
102
+ minAmount: number;
103
+ fee: number;
104
+ };
105
+ };
106
+ export declare const DEFAULT_CURRENCY = "USD";
107
+ export declare const SUPPORTED_CURRENCIES: string[];
108
+ export declare const MARKETPLACE_RATE_LIMITS: {
109
+ createListing: {
110
+ windowMs: number;
111
+ max: number;
112
+ };
113
+ createRequirement: {
114
+ windowMs: number;
115
+ max: number;
116
+ };
117
+ submitProposal: {
118
+ windowMs: number;
119
+ max: number;
120
+ };
121
+ searchListings: {
122
+ windowMs: number;
123
+ max: number;
124
+ };
125
+ searchRequirements: {
126
+ windowMs: number;
127
+ max: number;
128
+ };
129
+ };
130
+ //# sourceMappingURL=marketplace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"marketplace.d.ts","sourceRoot":"","sources":["../../src/constants/marketplace.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,uBAAuB,IAAI,CAAC;AAGzC,eAAO,MAAM,+BAA+B,IAAI,CAAC;AAGjD,eAAO,MAAM,mCAAmC,IAAI,CAAC;AAGrD,eAAO,MAAM,uBAAuB,IAAI,CAAC;AAOzC,eAAO,MAAM,qBAAqB,IAAI,CAAC;AACvC,eAAO,MAAM,sBAAsB,QAA6B,CAAC;AAGjE,eAAO,MAAM,oBAAoB,IAAI,CAAC;AACtC,eAAO,MAAM,qBAAqB,QAA4B,CAAC;AAG/D,eAAO,MAAM,kCAAkC,KAAK,CAAC;AAGrD,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAG5C,eAAO,MAAM,yBAAyB,QAAmD,CAAC;AAM1F,eAAO,MAAM,0BAA0B;;;;;;CAMtC,CAAC;AAGF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;CAmB3B,CAAC;AAOF,eAAO,MAAM,iCAAiC,KAAK,CAAC;AAEpD,eAAO,MAAM,gCAAgC,KAAoC,CAAC;AAGlF,eAAO,MAAM,6BAA6B,KAAK,CAAC;AAGhD,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAEvC,eAAO,MAAM,sBAAsB,KAAuB,CAAC;AAG3D,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAO3C,eAAO,MAAM,+BAA+B,IAAI,CAAC;AAGjD,eAAO,MAAM,mCAAmC;;;;;;CAM/C,CAAC;AAGF,eAAO,MAAM,+BAA+B,KAAK,CAAC;AAGlD,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAG5C,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAO9C,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAG7C,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAG9C,eAAO,MAAM,iCAAiC,KAAK,CAAC;AAGpD,eAAO,MAAM,4BAA4B,MAAM,CAAC;AAOhD,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAG1C,eAAO,MAAM,+BAA+B,KAAK,CAAC;AAGlD,eAAO,MAAM,8BAA8B,KAAK,CAAC;AAOjD,eAAO,MAAM,kCAAkC,IAAI,CAAC;AAGpD,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAE1C,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAG9C,eAAO,MAAM,qCAAqC,KAAK,CAAC;AAOxD,eAAO,MAAM,iBAAiB;;;;;;CAM7B,CAAC;AAGF,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAOtC,eAAO,MAAM,mCAAmC,KAAK,CAAC;AAGtD,eAAO,MAAM,kCAAkC,KAAK,CAAC;AAGrD,eAAO,MAAM,iCAAiC,IAAI,CAAC;AAOnD,eAAO,MAAM,6BAA6B,KAAK,CAAC;AAGhD,eAAO,MAAM,UAAU,IAAI,CAAC;AAC5B,eAAO,MAAM,UAAU,IAAI,CAAC;AAG5B,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAC5C,eAAO,MAAM,yBAAyB,OAAO,CAAC;AAO9C,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAGpC,eAAO,MAAM,iBAAiB,QAAQ,CAAC;AAGvC,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAG5C,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAOxC,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAGpC,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;CAK5B,CAAC;AAMF,eAAO,MAAM,gBAAgB,QAAQ,CAAC;AAEtC,eAAO,MAAM,oBAAoB,UAAkE,CAAC;AAMpG,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;CAMnC,CAAC"}
@@ -0,0 +1,195 @@
1
+ // Marketplace Constants
2
+ // ============================================
3
+ // Platform Fees
4
+ // ============================================
5
+ // QalbMatch takes 5% from each contract payment
6
+ export const PLATFORM_FEE_PERCENTAGE = 5;
7
+ // TMCs can take up to 5% from their managed companies
8
+ export const TMC_MAX_PROFIT_SHARE_PERCENTAGE = 5;
9
+ // Default TMC profit share for new memberships
10
+ export const TMC_DEFAULT_PROFIT_SHARE_PERCENTAGE = 3;
11
+ // Minimum transaction amount for profit sharing (USD)
12
+ export const MIN_PROFIT_SHARE_AMOUNT = 1;
13
+ // ============================================
14
+ // Dispute Auto-Escalation Timers
15
+ // ============================================
16
+ // Discussion phase: 3 days for parties to resolve
17
+ export const DISCUSSION_PHASE_DAYS = 3;
18
+ export const DISCUSSION_PHASE_HOURS = DISCUSSION_PHASE_DAYS * 24;
19
+ // Mediation phase: 4 days for evidence submission
20
+ export const MEDIATION_PHASE_DAYS = 4;
21
+ export const MEDIATION_PHASE_HOURS = MEDIATION_PHASE_DAYS * 24;
22
+ // Evidence submission deadline during mediation
23
+ export const EVIDENCE_SUBMISSION_DEADLINE_HOURS = 72; // 3 days into mediation
24
+ // Admin review target SLA
25
+ export const ADMIN_REVIEW_TARGET_HOURS = 48;
26
+ // Total max dispute duration
27
+ export const MAX_DISPUTE_DURATION_DAYS = DISCUSSION_PHASE_DAYS + MEDIATION_PHASE_DAYS + 7; // +7 for admin review
28
+ // ============================================
29
+ // TMC Criteria (for automatic approval)
30
+ // ============================================
31
+ export const TMC_AUTO_APPROVAL_CRITERIA = {
32
+ minYearsInBusiness: 2,
33
+ minSuccessfulMatches: 50,
34
+ minTrustLevel: 'elite',
35
+ minRating: 4.5,
36
+ minActiveContracts: 10,
37
+ };
38
+ // TMC Tier Limits
39
+ export const TMC_TIER_LIMITS = {
40
+ standard: {
41
+ maxManagedCompanies: 10,
42
+ profitShareCap: 3, // Max 3%
43
+ featuredListings: false,
44
+ prioritySupport: false,
45
+ },
46
+ gold: {
47
+ maxManagedCompanies: 25,
48
+ profitShareCap: 4, // Max 4%
49
+ featuredListings: true,
50
+ prioritySupport: true,
51
+ },
52
+ platinum: {
53
+ maxManagedCompanies: 100,
54
+ profitShareCap: 5, // Max 5%
55
+ featuredListings: true,
56
+ prioritySupport: true,
57
+ },
58
+ };
59
+ // ============================================
60
+ // Proposal Limits
61
+ // ============================================
62
+ // Max proposals a company can have pending at once
63
+ export const MAX_PENDING_PROPOSALS_PER_COMPANY = 20;
64
+ // Alias for backward compatibility
65
+ export const MAX_ACTIVE_PROPOSALS_PER_COMPANY = MAX_PENDING_PROPOSALS_PER_COMPANY;
66
+ // Max proposals per requirement
67
+ export const MAX_PROPOSALS_PER_REQUIREMENT = 50;
68
+ // Proposal expiry (days)
69
+ export const PROPOSAL_EXPIRY_DAYS = 14;
70
+ // Alias for backward compatibility
71
+ export const PROPOSAL_VALIDITY_DAYS = PROPOSAL_EXPIRY_DAYS;
72
+ // Shortlist limit for families
73
+ export const MAX_SHORTLISTED_PROPOSALS = 5;
74
+ // ============================================
75
+ // Contract Limits
76
+ // ============================================
77
+ // Max active contracts per family
78
+ export const MAX_ACTIVE_CONTRACTS_PER_FAMILY = 3;
79
+ // Max active contracts per company (based on tier)
80
+ export const MAX_ACTIVE_CONTRACTS_BY_TRUST_LEVEL = {
81
+ new: 5,
82
+ verified: 15,
83
+ trusted: 30,
84
+ premium: 50,
85
+ elite: 100,
86
+ };
87
+ // Contract auto-cancellation if not funded (hours)
88
+ export const CONTRACT_FUNDING_DEADLINE_HOURS = 72;
89
+ // Minimum contract duration (days)
90
+ export const MIN_CONTRACT_DURATION_DAYS = 7;
91
+ // Maximum contract duration (days)
92
+ export const MAX_CONTRACT_DURATION_DAYS = 365;
93
+ // ============================================
94
+ // Milestone Settings
95
+ // ============================================
96
+ // Minimum milestones per contract
97
+ export const MIN_MILESTONES_PER_CONTRACT = 1;
98
+ // Maximum milestones per contract
99
+ export const MAX_MILESTONES_PER_CONTRACT = 10;
100
+ // Milestone approval deadline (hours)
101
+ export const MILESTONE_APPROVAL_DEADLINE_HOURS = 72;
102
+ // Auto-approve milestone if no response (hours)
103
+ export const MILESTONE_AUTO_APPROVE_HOURS = 168; // 7 days
104
+ // ============================================
105
+ // Service Listing Settings
106
+ // ============================================
107
+ // Max packages per listing
108
+ export const MAX_PACKAGES_PER_LISTING = 5;
109
+ // Max active listings per company
110
+ export const MAX_ACTIVE_LISTINGS_PER_COMPANY = 10;
111
+ // Featured listing duration (days)
112
+ export const FEATURED_LISTING_DURATION_DAYS = 30;
113
+ // ============================================
114
+ // Requirement Post Settings
115
+ // ============================================
116
+ // Max active requirements per family
117
+ export const MAX_ACTIVE_REQUIREMENTS_PER_FAMILY = 3;
118
+ // Requirement expiry if no activity (days)
119
+ export const REQUIREMENT_EXPIRY_DAYS = 60;
120
+ // Alias - visibility period before auto-hide
121
+ export const REQUIREMENT_VISIBILITY_DAYS = 30;
122
+ // Max invited companies for private requirements
123
+ export const MAX_INVITED_COMPANIES_PER_REQUIREMENT = 10;
124
+ // ============================================
125
+ // Trust Badge Settings
126
+ // ============================================
127
+ // Badge expiry (days) - 0 means never expires
128
+ export const BADGE_EXPIRY_DAYS = {
129
+ verified: 365,
130
+ endorsed: 180,
131
+ premium_partner: 365,
132
+ top_performer: 90,
133
+ founding_partner: 0, // Never expires
134
+ };
135
+ // Max badges displayed on profile
136
+ export const MAX_DISPLAYED_BADGES = 5;
137
+ // ============================================
138
+ // Collaboration Settings
139
+ // ============================================
140
+ // Default revenue share for collaborations
141
+ export const DEFAULT_COLLABORATION_REVENUE_SHARE = 50;
142
+ // Max pending collaboration requests
143
+ export const MAX_PENDING_COLLABORATION_REQUESTS = 10;
144
+ // Collaboration request expiry (days)
145
+ export const COLLABORATION_REQUEST_EXPIRY_DAYS = 7;
146
+ // ============================================
147
+ // Review Settings
148
+ // ============================================
149
+ // Review submission window after contract completion (days)
150
+ export const REVIEW_SUBMISSION_WINDOW_DAYS = 30;
151
+ // Min rating (1-5)
152
+ export const MIN_RATING = 1;
153
+ export const MAX_RATING = 5;
154
+ // Min review content length
155
+ export const MIN_REVIEW_CONTENT_LENGTH = 50;
156
+ export const MAX_REVIEW_CONTENT_LENGTH = 2000;
157
+ // ============================================
158
+ // Escrow Settings
159
+ // ============================================
160
+ // Minimum escrow funding amount (USD)
161
+ export const MIN_ESCROW_AMOUNT = 10;
162
+ // Maximum escrow amount (USD)
163
+ export const MAX_ESCROW_AMOUNT = 50000;
164
+ // Escrow release hold period after milestone approval (hours)
165
+ export const ESCROW_RELEASE_HOLD_HOURS = 24;
166
+ // Refund processing time (business days)
167
+ export const REFUND_PROCESSING_DAYS = 5;
168
+ // ============================================
169
+ // Payout Settings
170
+ // ============================================
171
+ // Minimum payout amount (USD)
172
+ export const MIN_PAYOUT_AMOUNT = 25;
173
+ // Payout schedules
174
+ export const PAYOUT_SCHEDULES = {
175
+ instant: { minAmount: 100, fee: 1.5 }, // 1.5% for instant
176
+ daily: { minAmount: 50, fee: 0 },
177
+ weekly: { minAmount: 25, fee: 0 },
178
+ monthly: { minAmount: 25, fee: 0 },
179
+ };
180
+ // ============================================
181
+ // Currency Settings
182
+ // ============================================
183
+ export const DEFAULT_CURRENCY = 'USD';
184
+ export const SUPPORTED_CURRENCIES = ['USD', 'EUR', 'GBP', 'AED', 'SAR', 'PKR', 'INR', 'CAD', 'AUD'];
185
+ // ============================================
186
+ // Rate Limits (per minute unless specified)
187
+ // ============================================
188
+ export const MARKETPLACE_RATE_LIMITS = {
189
+ createListing: { windowMs: 60 * 60 * 1000, max: 5 }, // 5 per hour
190
+ createRequirement: { windowMs: 60 * 60 * 1000, max: 10 }, // 10 per hour
191
+ submitProposal: { windowMs: 60 * 60 * 1000, max: 20 }, // 20 per hour
192
+ searchListings: { windowMs: 60 * 1000, max: 30 }, // 30 per minute
193
+ searchRequirements: { windowMs: 60 * 1000, max: 30 }, // 30 per minute
194
+ };
195
+ //# sourceMappingURL=marketplace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"marketplace.js","sourceRoot":"","sources":["../../src/constants/marketplace.ts"],"names":[],"mappings":"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"}