@managesome/knotr-toolkit 0.1.1 → 0.8.5

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 (300) hide show
  1. package/dist/backend/config.d.ts +43 -0
  2. package/dist/backend/config.d.ts.map +1 -0
  3. package/dist/backend/config.js +82 -0
  4. package/dist/backend/config.js.map +1 -0
  5. package/dist/backend/database.d.ts +28 -0
  6. package/dist/backend/database.d.ts.map +1 -0
  7. package/dist/backend/database.js +112 -0
  8. package/dist/backend/database.js.map +1 -0
  9. package/dist/backend/firebase.d.ts +68 -0
  10. package/dist/backend/firebase.d.ts.map +1 -0
  11. package/dist/backend/firebase.js +233 -0
  12. package/dist/backend/firebase.js.map +1 -0
  13. package/dist/backend/index.d.ts +8 -0
  14. package/dist/backend/index.d.ts.map +1 -0
  15. package/dist/backend/index.js +19 -0
  16. package/dist/backend/index.js.map +1 -0
  17. package/dist/backend/logger.d.ts +23 -0
  18. package/dist/backend/logger.d.ts.map +1 -0
  19. package/dist/backend/logger.js +107 -0
  20. package/dist/backend/logger.js.map +1 -0
  21. package/dist/backend/redis.d.ts +59 -0
  22. package/dist/backend/redis.d.ts.map +1 -0
  23. package/dist/backend/redis.js +169 -0
  24. package/dist/backend/redis.js.map +1 -0
  25. package/dist/backend/socket.d.ts +81 -0
  26. package/dist/backend/socket.d.ts.map +1 -0
  27. package/dist/backend/socket.js +132 -0
  28. package/dist/backend/socket.js.map +1 -0
  29. package/dist/backend/worker-queue.d.ts +40 -0
  30. package/dist/backend/worker-queue.d.ts.map +1 -0
  31. package/dist/backend/worker-queue.js +140 -0
  32. package/dist/backend/worker-queue.js.map +1 -0
  33. package/dist/client/api-client.d.ts +101 -0
  34. package/dist/client/api-client.d.ts.map +1 -0
  35. package/dist/client/api-client.js +261 -0
  36. package/dist/client/api-client.js.map +1 -0
  37. package/dist/client/api-error.d.ts +100 -0
  38. package/dist/client/api-error.d.ts.map +1 -0
  39. package/dist/client/api-error.js +111 -0
  40. package/dist/client/api-error.js.map +1 -0
  41. package/dist/client/endpoints.d.ts +510 -0
  42. package/dist/client/endpoints.d.ts.map +1 -0
  43. package/dist/client/endpoints.js +306 -0
  44. package/dist/client/endpoints.js.map +1 -0
  45. package/dist/client/index.d.ts +4 -0
  46. package/dist/client/index.d.ts.map +1 -0
  47. package/dist/client/index.js +7 -0
  48. package/dist/client/index.js.map +1 -0
  49. package/dist/constants/index.d.ts +2 -1
  50. package/dist/constants/index.d.ts.map +1 -1
  51. package/dist/constants/index.js +2 -1
  52. package/dist/constants/index.js.map +1 -1
  53. package/dist/constants/socket.d.ts +165 -0
  54. package/dist/constants/socket.d.ts.map +1 -0
  55. package/dist/constants/socket.js +204 -0
  56. package/dist/constants/socket.js.map +1 -0
  57. package/dist/helpers/ApiError.d.ts +74 -0
  58. package/dist/helpers/ApiError.d.ts.map +1 -0
  59. package/dist/helpers/ApiError.js +105 -0
  60. package/dist/helpers/ApiError.js.map +1 -0
  61. package/dist/helpers/asyncHandler.d.ts +42 -0
  62. package/dist/helpers/asyncHandler.d.ts.map +1 -0
  63. package/dist/helpers/asyncHandler.js +47 -0
  64. package/dist/helpers/asyncHandler.js.map +1 -0
  65. package/dist/helpers/id-generator.d.ts +98 -0
  66. package/dist/helpers/id-generator.d.ts.map +1 -0
  67. package/dist/helpers/id-generator.js +128 -0
  68. package/dist/helpers/id-generator.js.map +1 -0
  69. package/dist/helpers/index.d.ts +5 -0
  70. package/dist/helpers/index.d.ts.map +1 -0
  71. package/dist/helpers/index.js +8 -0
  72. package/dist/helpers/index.js.map +1 -0
  73. package/dist/helpers/response-timing.d.ts +91 -0
  74. package/dist/helpers/response-timing.d.ts.map +1 -0
  75. package/dist/helpers/response-timing.js +176 -0
  76. package/dist/helpers/response-timing.js.map +1 -0
  77. package/dist/index.d.ts +7 -3
  78. package/dist/index.d.ts.map +1 -1
  79. package/dist/index.js +21 -3
  80. package/dist/index.js.map +1 -1
  81. package/dist/schemas/account.schema.d.ts +4500 -0
  82. package/dist/schemas/account.schema.d.ts.map +1 -0
  83. package/dist/schemas/account.schema.js +123 -0
  84. package/dist/schemas/account.schema.js.map +1 -0
  85. package/dist/schemas/chat.schema.d.ts +4796 -0
  86. package/dist/schemas/chat.schema.d.ts.map +1 -0
  87. package/dist/schemas/chat.schema.js +107 -0
  88. package/dist/schemas/chat.schema.js.map +1 -0
  89. package/dist/schemas/collaboration-request.schema.d.ts +3960 -0
  90. package/dist/schemas/collaboration-request.schema.d.ts.map +1 -0
  91. package/dist/schemas/collaboration-request.schema.js +92 -0
  92. package/dist/schemas/collaboration-request.schema.js.map +1 -0
  93. package/dist/schemas/company-review.schema.d.ts +3465 -0
  94. package/dist/schemas/company-review.schema.d.ts.map +1 -0
  95. package/dist/schemas/company-review.schema.js +73 -0
  96. package/dist/schemas/company-review.schema.js.map +1 -0
  97. package/dist/schemas/company.schema.d.ts +6152 -0
  98. package/dist/schemas/company.schema.d.ts.map +1 -0
  99. package/dist/schemas/company.schema.js +192 -0
  100. package/dist/schemas/company.schema.js.map +1 -0
  101. package/dist/schemas/contract.schema.d.ts +5286 -0
  102. package/dist/schemas/contract.schema.d.ts.map +1 -0
  103. package/dist/schemas/contract.schema.js +115 -0
  104. package/dist/schemas/contract.schema.js.map +1 -0
  105. package/dist/schemas/dispute-evidence.schema.d.ts +3788 -0
  106. package/dist/schemas/dispute-evidence.schema.d.ts.map +1 -0
  107. package/dist/schemas/dispute-evidence.schema.js +71 -0
  108. package/dist/schemas/dispute-evidence.schema.js.map +1 -0
  109. package/dist/schemas/dispute.schema.d.ts +4970 -0
  110. package/dist/schemas/dispute.schema.d.ts.map +1 -0
  111. package/dist/schemas/dispute.schema.js +152 -0
  112. package/dist/schemas/dispute.schema.js.map +1 -0
  113. package/dist/schemas/donation.schema.d.ts +3594 -0
  114. package/dist/schemas/donation.schema.d.ts.map +1 -0
  115. package/dist/schemas/donation.schema.js +95 -0
  116. package/dist/schemas/donation.schema.js.map +1 -0
  117. package/dist/schemas/escrow.schema.d.ts +4322 -0
  118. package/dist/schemas/escrow.schema.d.ts.map +1 -0
  119. package/dist/schemas/escrow.schema.js +93 -0
  120. package/dist/schemas/escrow.schema.js.map +1 -0
  121. package/dist/schemas/flag.schema.d.ts +4375 -0
  122. package/dist/schemas/flag.schema.d.ts.map +1 -0
  123. package/dist/schemas/flag.schema.js +133 -0
  124. package/dist/schemas/flag.schema.js.map +1 -0
  125. package/dist/schemas/index.d.ts +33 -0
  126. package/dist/schemas/index.d.ts.map +1 -0
  127. package/dist/schemas/index.js +39 -0
  128. package/dist/schemas/index.js.map +1 -0
  129. package/dist/schemas/interest.schema.d.ts +3804 -0
  130. package/dist/schemas/interest.schema.d.ts.map +1 -0
  131. package/dist/schemas/interest.schema.js +107 -0
  132. package/dist/schemas/interest.schema.js.map +1 -0
  133. package/dist/schemas/match.schema.d.ts +4013 -0
  134. package/dist/schemas/match.schema.d.ts.map +1 -0
  135. package/dist/schemas/match.schema.js +118 -0
  136. package/dist/schemas/match.schema.js.map +1 -0
  137. package/dist/schemas/message.schema.d.ts +4213 -0
  138. package/dist/schemas/message.schema.d.ts.map +1 -0
  139. package/dist/schemas/message.schema.js +134 -0
  140. package/dist/schemas/message.schema.js.map +1 -0
  141. package/dist/schemas/milestone.schema.d.ts +4310 -0
  142. package/dist/schemas/milestone.schema.d.ts.map +1 -0
  143. package/dist/schemas/milestone.schema.js +99 -0
  144. package/dist/schemas/milestone.schema.js.map +1 -0
  145. package/dist/schemas/notification.schema.d.ts +4641 -0
  146. package/dist/schemas/notification.schema.d.ts.map +1 -0
  147. package/dist/schemas/notification.schema.js +139 -0
  148. package/dist/schemas/notification.schema.js.map +1 -0
  149. package/dist/schemas/profile.schema.d.ts +9589 -0
  150. package/dist/schemas/profile.schema.d.ts.map +1 -0
  151. package/dist/schemas/profile.schema.js +360 -0
  152. package/dist/schemas/profile.schema.js.map +1 -0
  153. package/dist/schemas/profit-share-agreement.schema.d.ts +3789 -0
  154. package/dist/schemas/profit-share-agreement.schema.d.ts.map +1 -0
  155. package/dist/schemas/profit-share-agreement.schema.js +76 -0
  156. package/dist/schemas/profit-share-agreement.schema.js.map +1 -0
  157. package/dist/schemas/profit-share.schema.d.ts +4051 -0
  158. package/dist/schemas/profit-share.schema.d.ts.map +1 -0
  159. package/dist/schemas/profit-share.schema.js +96 -0
  160. package/dist/schemas/profit-share.schema.js.map +1 -0
  161. package/dist/schemas/promo-code.schema.d.ts +3924 -0
  162. package/dist/schemas/promo-code.schema.d.ts.map +1 -0
  163. package/dist/schemas/promo-code.schema.js +112 -0
  164. package/dist/schemas/promo-code.schema.js.map +1 -0
  165. package/dist/schemas/proposal.schema.d.ts +5182 -0
  166. package/dist/schemas/proposal.schema.d.ts.map +1 -0
  167. package/dist/schemas/proposal.schema.js +114 -0
  168. package/dist/schemas/proposal.schema.js.map +1 -0
  169. package/dist/schemas/purchase.schema.d.ts +3724 -0
  170. package/dist/schemas/purchase.schema.d.ts.map +1 -0
  171. package/dist/schemas/purchase.schema.js +89 -0
  172. package/dist/schemas/purchase.schema.js.map +1 -0
  173. package/dist/schemas/requirement-post.schema.d.ts +6315 -0
  174. package/dist/schemas/requirement-post.schema.d.ts.map +1 -0
  175. package/dist/schemas/requirement-post.schema.js +153 -0
  176. package/dist/schemas/requirement-post.schema.js.map +1 -0
  177. package/dist/schemas/review.schema.d.ts +4512 -0
  178. package/dist/schemas/review.schema.d.ts.map +1 -0
  179. package/dist/schemas/review.schema.js +121 -0
  180. package/dist/schemas/review.schema.js.map +1 -0
  181. package/dist/schemas/service-listing.schema.d.ts +5152 -0
  182. package/dist/schemas/service-listing.schema.d.ts.map +1 -0
  183. package/dist/schemas/service-listing.schema.js +137 -0
  184. package/dist/schemas/service-listing.schema.js.map +1 -0
  185. package/dist/schemas/subscription.schema.d.ts +3985 -0
  186. package/dist/schemas/subscription.schema.d.ts.map +1 -0
  187. package/dist/schemas/subscription.schema.js +94 -0
  188. package/dist/schemas/subscription.schema.js.map +1 -0
  189. package/dist/schemas/tmc-application.schema.d.ts +4357 -0
  190. package/dist/schemas/tmc-application.schema.d.ts.map +1 -0
  191. package/dist/schemas/tmc-application.schema.js +96 -0
  192. package/dist/schemas/tmc-application.schema.js.map +1 -0
  193. package/dist/schemas/tmc-membership.schema.d.ts +3985 -0
  194. package/dist/schemas/tmc-membership.schema.d.ts.map +1 -0
  195. package/dist/schemas/tmc-membership.schema.js +84 -0
  196. package/dist/schemas/tmc-membership.schema.js.map +1 -0
  197. package/dist/schemas/trust-badge.schema.d.ts +3919 -0
  198. package/dist/schemas/trust-badge.schema.d.ts.map +1 -0
  199. package/dist/schemas/trust-badge.schema.js +83 -0
  200. package/dist/schemas/trust-badge.schema.js.map +1 -0
  201. package/dist/schemas/verification.schema.d.ts +4606 -0
  202. package/dist/schemas/verification.schema.d.ts.map +1 -0
  203. package/dist/schemas/verification.schema.js +114 -0
  204. package/dist/schemas/verification.schema.js.map +1 -0
  205. package/dist/schemas/webhook-event.schema.d.ts +3534 -0
  206. package/dist/schemas/webhook-event.schema.d.ts.map +1 -0
  207. package/dist/schemas/webhook-event.schema.js +83 -0
  208. package/dist/schemas/webhook-event.schema.js.map +1 -0
  209. package/dist/types/account.d.ts +36 -7
  210. package/dist/types/account.d.ts.map +1 -1
  211. package/dist/types/account.js +3 -1
  212. package/dist/types/account.js.map +1 -1
  213. package/dist/types/admin.d.ts +20 -10
  214. package/dist/types/admin.d.ts.map +1 -1
  215. package/dist/types/admin.js +3 -1
  216. package/dist/types/admin.js.map +1 -1
  217. package/dist/types/api.d.ts +184 -109
  218. package/dist/types/api.d.ts.map +1 -1
  219. package/dist/types/api.js +2 -1
  220. package/dist/types/api.js.map +1 -1
  221. package/dist/types/chat.d.ts +38 -20
  222. package/dist/types/chat.d.ts.map +1 -1
  223. package/dist/types/chat.js +3 -1
  224. package/dist/types/chat.js.map +1 -1
  225. package/dist/types/common.d.ts +39 -12
  226. package/dist/types/common.d.ts.map +1 -1
  227. package/dist/types/common.js +4 -1
  228. package/dist/types/common.js.map +1 -1
  229. package/dist/types/company.d.ts +61 -44
  230. package/dist/types/company.d.ts.map +1 -1
  231. package/dist/types/company.js +3 -1
  232. package/dist/types/company.js.map +1 -1
  233. package/dist/types/flag.d.ts +19 -8
  234. package/dist/types/flag.d.ts.map +1 -1
  235. package/dist/types/flag.js +3 -1
  236. package/dist/types/flag.js.map +1 -1
  237. package/dist/types/forms.d.ts +334 -0
  238. package/dist/types/forms.d.ts.map +1 -0
  239. package/dist/types/forms.js +5 -0
  240. package/dist/types/forms.js.map +1 -0
  241. package/dist/types/index.d.ts +18 -13
  242. package/dist/types/index.d.ts.map +1 -1
  243. package/dist/types/index.js +18 -13
  244. package/dist/types/index.js.map +1 -1
  245. package/dist/types/marketplace.d.ts +174 -104
  246. package/dist/types/marketplace.d.ts.map +1 -1
  247. package/dist/types/marketplace.js +2 -0
  248. package/dist/types/marketplace.js.map +1 -1
  249. package/dist/types/match.d.ts +36 -19
  250. package/dist/types/match.d.ts.map +1 -1
  251. package/dist/types/match.js +3 -1
  252. package/dist/types/match.js.map +1 -1
  253. package/dist/types/navigation.d.ts +305 -0
  254. package/dist/types/navigation.d.ts.map +1 -0
  255. package/dist/types/navigation.js +18 -0
  256. package/dist/types/navigation.js.map +1 -0
  257. package/dist/types/notification.d.ts +92 -0
  258. package/dist/types/notification.d.ts.map +1 -0
  259. package/dist/types/notification.js +5 -0
  260. package/dist/types/notification.js.map +1 -0
  261. package/dist/types/payment.d.ts +70 -38
  262. package/dist/types/payment.d.ts.map +1 -1
  263. package/dist/types/payment.js +3 -1
  264. package/dist/types/payment.js.map +1 -1
  265. package/dist/types/policy.d.ts +174 -81
  266. package/dist/types/policy.d.ts.map +1 -1
  267. package/dist/types/policy.js.map +1 -1
  268. package/dist/types/profile.d.ts +48 -37
  269. package/dist/types/profile.d.ts.map +1 -1
  270. package/dist/types/profile.js +3 -1
  271. package/dist/types/profile.js.map +1 -1
  272. package/dist/types/socket.d.ts +431 -0
  273. package/dist/types/socket.d.ts.map +1 -0
  274. package/dist/types/socket.js +5 -0
  275. package/dist/types/socket.js.map +1 -0
  276. package/dist/types/verification.d.ts +18 -9
  277. package/dist/types/verification.d.ts.map +1 -1
  278. package/dist/types/verification.js +3 -1
  279. package/dist/types/verification.js.map +1 -1
  280. package/dist/types/worker.d.ts +452 -0
  281. package/dist/types/worker.d.ts.map +1 -0
  282. package/dist/types/worker.js +5 -0
  283. package/dist/types/worker.js.map +1 -0
  284. package/dist/validation/index.d.ts +5 -0
  285. package/dist/validation/index.d.ts.map +1 -0
  286. package/dist/validation/index.js +9 -0
  287. package/dist/validation/index.js.map +1 -0
  288. package/dist/validation/messages.d.ts +124 -0
  289. package/dist/validation/messages.d.ts.map +1 -0
  290. package/dist/validation/messages.js +160 -0
  291. package/dist/validation/messages.js.map +1 -0
  292. package/dist/validation/schemas.d.ts +1127 -0
  293. package/dist/validation/schemas.d.ts.map +1 -0
  294. package/dist/validation/schemas.js +376 -0
  295. package/dist/validation/schemas.js.map +1 -0
  296. package/dist/validation/validators.d.ts +229 -0
  297. package/dist/validation/validators.d.ts.map +1 -0
  298. package/dist/validation/validators.js +307 -0
  299. package/dist/validation/validators.js.map +1 -0
  300. package/package.json +37 -3
@@ -0,0 +1,128 @@
1
+ // ============================================
2
+ // ID Generator - Unique ID generation utilities
3
+ // ============================================
4
+ import { customAlphabet, nanoid } from 'nanoid';
5
+ /**
6
+ * Default alphabet for short IDs (URL-safe, no ambiguous chars)
7
+ * Excludes: 0, O, I, l, 1 to avoid confusion
8
+ */
9
+ const SHORT_ID_ALPHABET = '23456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghjkmnpqrstuvwxyz';
10
+ /**
11
+ * Numeric-only alphabet for codes (OTP, promo codes, etc.)
12
+ */
13
+ const NUMERIC_ALPHABET = '0123456789';
14
+ /**
15
+ * Alphanumeric alphabet for readable codes
16
+ */
17
+ const ALPHANUMERIC_ALPHABET = 'ABCDEFGHJKLMNPQRSTUVWXYZ23456789';
18
+ // Pre-create custom generators for performance
19
+ const shortIdGenerator = customAlphabet(SHORT_ID_ALPHABET, 12);
20
+ const numericGenerator = customAlphabet(NUMERIC_ALPHABET, 6);
21
+ const codeGenerator = customAlphabet(ALPHANUMERIC_ALPHABET, 8);
22
+ /**
23
+ * Generate a unique ID suitable for database primary keys.
24
+ * Uses nanoid with 21 characters (default) for high collision resistance.
25
+ *
26
+ * Collision probability: 1 in 10^18 after generating 1 billion IDs
27
+ *
28
+ * @param size - Length of the ID (default: 21)
29
+ * @returns Unique URL-safe ID
30
+ *
31
+ * @example
32
+ * ```typescript
33
+ * const userId = generateId(); // "V1StGXR8_Z5jdHi6B-myT"
34
+ * const shorterId = generateId(16); // "V1StGXR8_Z5jdHi6"
35
+ * ```
36
+ */
37
+ export function generateId(size = 21) {
38
+ return nanoid(size);
39
+ }
40
+ /**
41
+ * Generate a shorter, more readable ID.
42
+ * Uses a reduced alphabet (no ambiguous characters) for better readability.
43
+ *
44
+ * Best for: display IDs, reference numbers, shareable links
45
+ *
46
+ * @param size - Length of the ID (default: 12)
47
+ * @returns Short readable ID
48
+ *
49
+ * @example
50
+ * ```typescript
51
+ * const refId = generateShortId(); // "Xk9Qm2ZpNrTv"
52
+ * const tinyId = generateShortId(8); // "Xk9Qm2Zp"
53
+ * ```
54
+ */
55
+ export function generateShortId(size = 12) {
56
+ return shortIdGenerator(size);
57
+ }
58
+ /**
59
+ * Generate a numeric code (OTP, verification codes).
60
+ *
61
+ * @param length - Length of the code (default: 6)
62
+ * @returns Numeric string
63
+ *
64
+ * @example
65
+ * ```typescript
66
+ * const otp = generateNumericCode(); // "847291"
67
+ * const pin = generateNumericCode(4); // "8472"
68
+ * ```
69
+ */
70
+ export function generateNumericCode(length = 6) {
71
+ return numericGenerator(length);
72
+ }
73
+ /**
74
+ * Generate an alphanumeric code (promo codes, invite codes).
75
+ * Uses uppercase letters and numbers, no ambiguous characters.
76
+ *
77
+ * @param length - Length of the code (default: 8)
78
+ * @returns Alphanumeric string
79
+ *
80
+ * @example
81
+ * ```typescript
82
+ * const promoCode = generateAlphanumericCode(); // "XKQM2ZPN"
83
+ * const inviteCode = generateAlphanumericCode(6); // "XKQM2Z"
84
+ * ```
85
+ */
86
+ export function generateAlphanumericCode(length = 8) {
87
+ return codeGenerator(length);
88
+ }
89
+ /**
90
+ * Generate a prefixed ID for better identification.
91
+ *
92
+ * @param prefix - Prefix to add (e.g., "usr", "prf", "mtc")
93
+ * @param size - Length of the random part (default: 16)
94
+ * @returns Prefixed ID
95
+ *
96
+ * @example
97
+ * ```typescript
98
+ * const userId = generatePrefixedId("usr"); // "usr_V1StGXR8_Z5jdHi6"
99
+ * const profileId = generatePrefixedId("prf", 12); // "prf_V1StGXR8_Z5j"
100
+ * ```
101
+ */
102
+ export function generatePrefixedId(prefix, size = 16) {
103
+ return `${prefix}_${nanoid(size)}`;
104
+ }
105
+ /**
106
+ * ID prefixes for different entity types
107
+ */
108
+ export const ID_PREFIXES = {
109
+ ACCOUNT: 'acc',
110
+ PROFILE: 'prf',
111
+ MATCH: 'mtc',
112
+ INTEREST: 'int',
113
+ CHAT: 'cht',
114
+ MESSAGE: 'msg',
115
+ COMPANY: 'cmp',
116
+ SUBSCRIPTION: 'sub',
117
+ PAYMENT: 'pay',
118
+ VERIFICATION: 'vrf',
119
+ FLAG: 'flg',
120
+ ADMIN: 'adm',
121
+ LISTING: 'lst',
122
+ PROPOSAL: 'prp',
123
+ CONTRACT: 'ctr',
124
+ MILESTONE: 'mls',
125
+ DISPUTE: 'dsp',
126
+ NOTIFICATION: 'ntf',
127
+ };
128
+ //# sourceMappingURL=id-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"id-generator.js","sourceRoot":"","sources":["../../src/helpers/id-generator.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,gDAAgD;AAChD,+CAA+C;AAE/C,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhD;;;GAGG;AACH,MAAM,iBAAiB,GAAG,yDAAyD,CAAC;AAEpF;;GAEG;AACH,MAAM,gBAAgB,GAAG,YAAY,CAAC;AAEtC;;GAEG;AACH,MAAM,qBAAqB,GAAG,kCAAkC,CAAC;AAEjE,+CAA+C;AAC/C,MAAM,gBAAgB,GAAG,cAAc,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;AAC/D,MAAM,gBAAgB,GAAG,cAAc,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;AAC7D,MAAM,aAAa,GAAG,cAAc,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC;AAE/D;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,UAAU,CAAC,OAAe,EAAE;IAC1C,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,eAAe,CAAC,OAAe,EAAE;IAC/C,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,mBAAmB,CAAC,SAAiB,CAAC;IACpD,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAClC,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,wBAAwB,CAAC,SAAiB,CAAC;IACzD,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAc,EAAE,OAAe,EAAE;IAClE,OAAO,GAAG,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,KAAK;IACd,KAAK,EAAE,KAAK;IACZ,QAAQ,EAAE,KAAK;IACf,IAAI,EAAE,KAAK;IACX,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,KAAK;IACd,YAAY,EAAE,KAAK;IACnB,OAAO,EAAE,KAAK;IACd,YAAY,EAAE,KAAK;IACnB,IAAI,EAAE,KAAK;IACX,KAAK,EAAE,KAAK;IACZ,OAAO,EAAE,KAAK;IACd,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,KAAK;IACf,SAAS,EAAE,KAAK;IAChB,OAAO,EAAE,KAAK;IACd,YAAY,EAAE,KAAK;CACX,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from './ApiError.js';
2
+ export * from './asyncHandler.js';
3
+ export * from './id-generator.js';
4
+ export * from './response-timing.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/helpers/index.ts"],"names":[],"mappings":"AAIA,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1,8 @@
1
+ // ============================================
2
+ // Helpers - Barrel export
3
+ // ============================================
4
+ export * from './ApiError.js';
5
+ export * from './asyncHandler.js';
6
+ export * from './id-generator.js';
7
+ export * from './response-timing.js';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/helpers/index.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,0BAA0B;AAC1B,+CAA+C;AAE/C,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Calculate the deadline for responding to an interest/match.
3
+ * Respects quiet hours (midnight to 9 AM) by pausing the timer.
4
+ *
5
+ * @param sentAt - When the interest was sent
6
+ * @param windowHours - Response window in hours (default: 18)
7
+ * @returns Deadline date accounting for quiet hours
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * const deadline = calculateResponseDeadline(new Date());
12
+ * // If sent at 6 PM, deadline accounts for 9 quiet hours
13
+ * ```
14
+ */
15
+ export declare function calculateResponseDeadline(sentAt: Date, windowHours?: number): Date;
16
+ /**
17
+ * Calculate remaining time to respond, accounting for quiet hours.
18
+ *
19
+ * @param sentAt - When the interest was sent
20
+ * @param windowHours - Response window in hours
21
+ * @returns Remaining hours (can be negative if expired)
22
+ */
23
+ export declare function getRemainingResponseTime(sentAt: Date, windowHours?: number): number;
24
+ /**
25
+ * Check if an interest/match has expired.
26
+ *
27
+ * @param sentAt - When the interest was sent
28
+ * @param windowHours - Response window in hours
29
+ * @returns True if expired
30
+ */
31
+ export declare function isResponseExpired(sentAt: Date, windowHours?: number): boolean;
32
+ /**
33
+ * Check if currently in quiet hours.
34
+ * Quiet hours are from midnight (0) to 9 AM.
35
+ *
36
+ * @param date - Date to check (default: now)
37
+ * @returns True if in quiet hours
38
+ */
39
+ export declare function isQuietHours(date?: Date): boolean;
40
+ /**
41
+ * Get the next active period start time.
42
+ *
43
+ * @param from - Starting date (default: now)
44
+ * @returns Date when active hours begin
45
+ */
46
+ export declare function getNextActiveTime(from?: Date): Date;
47
+ /**
48
+ * Calculate grace period deadline for responses.
49
+ * Grace period allows extra time before penalties apply.
50
+ *
51
+ * @param deadline - Original deadline
52
+ * @param graceHours - Grace period in hours
53
+ * @returns Extended deadline
54
+ */
55
+ export declare function calculateGracePeriodDeadline(deadline: Date, graceHours?: number): Date;
56
+ /**
57
+ * Format remaining time for display.
58
+ *
59
+ * @param hours - Remaining hours
60
+ * @returns Human-readable string
61
+ *
62
+ * @example
63
+ * ```typescript
64
+ * formatRemainingTime(25); // "1 day, 1 hour"
65
+ * formatRemainingTime(2.5); // "2 hours, 30 minutes"
66
+ * formatRemainingTime(0.5); // "30 minutes"
67
+ * formatRemainingTime(-1); // "Expired"
68
+ * ```
69
+ */
70
+ export declare function formatRemainingTime(hours: number): string;
71
+ /**
72
+ * Response timing info for an interest/match
73
+ */
74
+ export interface ResponseTimingInfo {
75
+ deadline: Date;
76
+ graceDeadline: Date;
77
+ remainingHours: number;
78
+ isExpired: boolean;
79
+ isInGracePeriod: boolean;
80
+ formattedRemaining: string;
81
+ }
82
+ /**
83
+ * Get complete response timing information.
84
+ *
85
+ * @param sentAt - When the interest was sent
86
+ * @param windowHours - Response window in hours
87
+ * @param graceHours - Grace period in hours
88
+ * @returns Complete timing info
89
+ */
90
+ export declare function getResponseTimingInfo(sentAt: Date, windowHours?: number, graceHours?: number): ResponseTimingInfo;
91
+ //# sourceMappingURL=response-timing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response-timing.d.ts","sourceRoot":"","sources":["../../src/helpers/response-timing.ts"],"names":[],"mappings":"AAyBA;;;;;;;;;;;;;GAaG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,GAAE,MAA2B,GAAG,IAAI,CA0BtG;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,GAAE,MAA2B,GAAG,MAAM,CAKvG;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,GAAE,MAA2B,GAAG,OAAO,CAEjG;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,IAAI,GAAE,IAAiB,GAAG,OAAO,CAE7D;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,GAAE,IAAiB,GAAG,IAAI,CAW/D;AAED;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,GAAE,MAA6B,GAAG,IAAI,CAI5G;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAsBzD;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,IAAI,CAAC;IACf,aAAa,EAAE,IAAI,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,IAAI,EACZ,WAAW,GAAE,MAA2B,EACxC,UAAU,GAAE,MAA6B,GACxC,kBAAkB,CAcpB"}
@@ -0,0 +1,176 @@
1
+ // ============================================
2
+ // Response Timing - Date helpers for match response windows
3
+ // ============================================
4
+ import { ACTIVE_HOURS_END, ACTIVE_HOURS_START, GRACE_HOURS_NEXT_DAY, MAX_RESPONSE_HOURS } from '../constants/index.js';
5
+ // Derive quiet hours from active hours
6
+ // Quiet hours = when NOT active (midnight to 9 AM)
7
+ // When ACTIVE_HOURS_END is 24, quiet hours are only 0 to ACTIVE_HOURS_START
8
+ const QUIET_HOURS_END = ACTIVE_HOURS_START; // 9 AM
9
+ /**
10
+ * Check if a given hour is in quiet hours.
11
+ * Active hours are from ACTIVE_HOURS_START (9) to ACTIVE_HOURS_END (24/midnight).
12
+ * Quiet hours are from midnight (0) to ACTIVE_HOURS_START (9).
13
+ */
14
+ function isQuietHour(hour) {
15
+ // If active end is 24 (midnight), quiet is only 0-9
16
+ if (ACTIVE_HOURS_END === 24) {
17
+ return hour < QUIET_HOURS_END;
18
+ }
19
+ // Otherwise, quiet is from ACTIVE_HOURS_END to ACTIVE_HOURS_START
20
+ return hour >= ACTIVE_HOURS_END || hour < ACTIVE_HOURS_START;
21
+ }
22
+ /**
23
+ * Calculate the deadline for responding to an interest/match.
24
+ * Respects quiet hours (midnight to 9 AM) by pausing the timer.
25
+ *
26
+ * @param sentAt - When the interest was sent
27
+ * @param windowHours - Response window in hours (default: 18)
28
+ * @returns Deadline date accounting for quiet hours
29
+ *
30
+ * @example
31
+ * ```typescript
32
+ * const deadline = calculateResponseDeadline(new Date());
33
+ * // If sent at 6 PM, deadline accounts for 9 quiet hours
34
+ * ```
35
+ */
36
+ export function calculateResponseDeadline(sentAt, windowHours = MAX_RESPONSE_HOURS) {
37
+ const deadline = new Date(sentAt);
38
+ let remainingHours = windowHours;
39
+ while (remainingHours > 0) {
40
+ const hour = deadline.getHours();
41
+ if (isQuietHour(hour)) {
42
+ // Skip to end of quiet hours (9 AM same day)
43
+ deadline.setHours(QUIET_HOURS_END, 0, 0, 0);
44
+ }
45
+ else {
46
+ // Active hours: count down
47
+ // Hours until midnight (when quiet hours start)
48
+ const hoursUntilMidnight = 24 - hour;
49
+ const hoursToAdd = Math.min(remainingHours, hoursUntilMidnight);
50
+ deadline.setHours(deadline.getHours() + hoursToAdd);
51
+ remainingHours -= hoursToAdd;
52
+ // If we hit midnight, skip quiet hours to 9 AM
53
+ if (deadline.getHours() === 0 && remainingHours > 0) {
54
+ deadline.setHours(QUIET_HOURS_END, 0, 0, 0);
55
+ }
56
+ }
57
+ }
58
+ return deadline;
59
+ }
60
+ /**
61
+ * Calculate remaining time to respond, accounting for quiet hours.
62
+ *
63
+ * @param sentAt - When the interest was sent
64
+ * @param windowHours - Response window in hours
65
+ * @returns Remaining hours (can be negative if expired)
66
+ */
67
+ export function getRemainingResponseTime(sentAt, windowHours = MAX_RESPONSE_HOURS) {
68
+ const deadline = calculateResponseDeadline(sentAt, windowHours);
69
+ const now = new Date();
70
+ const diffMs = deadline.getTime() - now.getTime();
71
+ return diffMs / (1000 * 60 * 60);
72
+ }
73
+ /**
74
+ * Check if an interest/match has expired.
75
+ *
76
+ * @param sentAt - When the interest was sent
77
+ * @param windowHours - Response window in hours
78
+ * @returns True if expired
79
+ */
80
+ export function isResponseExpired(sentAt, windowHours = MAX_RESPONSE_HOURS) {
81
+ return getRemainingResponseTime(sentAt, windowHours) <= 0;
82
+ }
83
+ /**
84
+ * Check if currently in quiet hours.
85
+ * Quiet hours are from midnight (0) to 9 AM.
86
+ *
87
+ * @param date - Date to check (default: now)
88
+ * @returns True if in quiet hours
89
+ */
90
+ export function isQuietHours(date = new Date()) {
91
+ return isQuietHour(date.getHours());
92
+ }
93
+ /**
94
+ * Get the next active period start time.
95
+ *
96
+ * @param from - Starting date (default: now)
97
+ * @returns Date when active hours begin
98
+ */
99
+ export function getNextActiveTime(from = new Date()) {
100
+ const result = new Date(from);
101
+ const hour = result.getHours();
102
+ if (hour < QUIET_HOURS_END) {
103
+ // Before 9 AM, next active is 9 AM today
104
+ result.setHours(QUIET_HOURS_END, 0, 0, 0);
105
+ }
106
+ // If already in active hours (9 AM to midnight), return current time
107
+ return result;
108
+ }
109
+ /**
110
+ * Calculate grace period deadline for responses.
111
+ * Grace period allows extra time before penalties apply.
112
+ *
113
+ * @param deadline - Original deadline
114
+ * @param graceHours - Grace period in hours
115
+ * @returns Extended deadline
116
+ */
117
+ export function calculateGracePeriodDeadline(deadline, graceHours = GRACE_HOURS_NEXT_DAY) {
118
+ const graceDeadline = new Date(deadline);
119
+ graceDeadline.setHours(graceDeadline.getHours() + graceHours);
120
+ return graceDeadline;
121
+ }
122
+ /**
123
+ * Format remaining time for display.
124
+ *
125
+ * @param hours - Remaining hours
126
+ * @returns Human-readable string
127
+ *
128
+ * @example
129
+ * ```typescript
130
+ * formatRemainingTime(25); // "1 day, 1 hour"
131
+ * formatRemainingTime(2.5); // "2 hours, 30 minutes"
132
+ * formatRemainingTime(0.5); // "30 minutes"
133
+ * formatRemainingTime(-1); // "Expired"
134
+ * ```
135
+ */
136
+ export function formatRemainingTime(hours) {
137
+ if (hours <= 0)
138
+ return 'Expired';
139
+ const days = Math.floor(hours / 24);
140
+ const remainingHours = Math.floor(hours % 24);
141
+ const minutes = Math.round((hours % 1) * 60);
142
+ const parts = [];
143
+ if (days > 0) {
144
+ parts.push(`${days} ${days === 1 ? 'day' : 'days'}`);
145
+ }
146
+ if (remainingHours > 0) {
147
+ parts.push(`${remainingHours} ${remainingHours === 1 ? 'hour' : 'hours'}`);
148
+ }
149
+ if (minutes > 0 && days === 0) {
150
+ parts.push(`${minutes} ${minutes === 1 ? 'minute' : 'minutes'}`);
151
+ }
152
+ return parts.join(', ') || 'Less than a minute';
153
+ }
154
+ /**
155
+ * Get complete response timing information.
156
+ *
157
+ * @param sentAt - When the interest was sent
158
+ * @param windowHours - Response window in hours
159
+ * @param graceHours - Grace period in hours
160
+ * @returns Complete timing info
161
+ */
162
+ export function getResponseTimingInfo(sentAt, windowHours = MAX_RESPONSE_HOURS, graceHours = GRACE_HOURS_NEXT_DAY) {
163
+ const deadline = calculateResponseDeadline(sentAt, windowHours);
164
+ const graceDeadline = calculateGracePeriodDeadline(deadline, graceHours);
165
+ const remainingHours = getRemainingResponseTime(sentAt, windowHours);
166
+ const now = new Date();
167
+ return {
168
+ deadline,
169
+ graceDeadline,
170
+ remainingHours,
171
+ isExpired: now > graceDeadline,
172
+ isInGracePeriod: now > deadline && now <= graceDeadline,
173
+ formattedRemaining: formatRemainingTime(remainingHours),
174
+ };
175
+ }
176
+ //# sourceMappingURL=response-timing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response-timing.js","sourceRoot":"","sources":["../../src/helpers/response-timing.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,8 @@
1
- export * from './constants';
2
- export * from './i18n';
3
- export * from './types';
1
+ export * from './constants/index.js';
2
+ export * from './i18n/index.js';
3
+ export * from './types/index.js';
4
+ export * from './helpers/index.js';
5
+ export * from './client/index.js';
6
+ export * from './validation/index.js';
7
+ export * from './backend/index.js';
4
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,cAAc,sBAAsB,CAAC;AAGrC,cAAc,iBAAiB,CAAC;AAGhC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,oBAAoB,CAAC;AAGnC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,uBAAuB,CAAC;AAItC,cAAc,oBAAoB,CAAC"}
package/dist/index.js CHANGED
@@ -1,4 +1,22 @@
1
- export * from './constants';
2
- export * from './i18n';
3
- export * from './types';
1
+ // ============================================
2
+ // Knotr Toolkit - Main Entry Point
3
+ // ============================================
4
+ // Core constants (app config, limits, socket events)
5
+ export * from './constants/index.js';
6
+ // Internationalization resources
7
+ export * from './i18n/index.js';
8
+ // Type definitions (all interfaces and types)
9
+ export * from './types/index.js';
10
+ // Helper utilities (ApiError, asyncHandler, ID generation, timing)
11
+ export * from './helpers/index.js';
12
+ // Client utilities (API client, error handling)
13
+ export * from './client/index.js';
14
+ // Validation (Zod schemas, validators)
15
+ export * from './validation/index.js';
16
+ // Backend utilities (config, logger, database, firebase, worker queue, redis, socket)
17
+ // These are safe to export here - they only work in Node.js backend environments
18
+ export * from './backend/index.js';
19
+ // Note: Mongoose schemas are exported separately via '@managesome/knotr-toolkit/schemas'
20
+ // to avoid requiring mongoose as a hard dependency for frontend apps.
21
+ // Import with: import { AccountSchema } from '@managesome/knotr-toolkit/schemas';
4
22
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,mCAAmC;AACnC,+CAA+C;AAE/C,qDAAqD;AACrD,cAAc,sBAAsB,CAAC;AAErC,iCAAiC;AACjC,cAAc,iBAAiB,CAAC;AAEhC,8CAA8C;AAC9C,cAAc,kBAAkB,CAAC;AAEjC,mEAAmE;AACnE,cAAc,oBAAoB,CAAC;AAEnC,gDAAgD;AAChD,cAAc,mBAAmB,CAAC;AAElC,uCAAuC;AACvC,cAAc,uBAAuB,CAAC;AAEtC,sFAAsF;AACtF,iFAAiF;AACjF,cAAc,oBAAoB,CAAC;AAEnC,yFAAyF;AACzF,sEAAsE;AACtE,kFAAkF"}