@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.
- package/dist/backend/config.d.ts +43 -0
- package/dist/backend/config.d.ts.map +1 -0
- package/dist/backend/config.js +82 -0
- package/dist/backend/config.js.map +1 -0
- package/dist/backend/database.d.ts +28 -0
- package/dist/backend/database.d.ts.map +1 -0
- package/dist/backend/database.js +112 -0
- package/dist/backend/database.js.map +1 -0
- package/dist/backend/firebase.d.ts +68 -0
- package/dist/backend/firebase.d.ts.map +1 -0
- package/dist/backend/firebase.js +233 -0
- package/dist/backend/firebase.js.map +1 -0
- package/dist/backend/index.d.ts +8 -0
- package/dist/backend/index.d.ts.map +1 -0
- package/dist/backend/index.js +19 -0
- package/dist/backend/index.js.map +1 -0
- package/dist/backend/logger.d.ts +23 -0
- package/dist/backend/logger.d.ts.map +1 -0
- package/dist/backend/logger.js +107 -0
- package/dist/backend/logger.js.map +1 -0
- package/dist/backend/redis.d.ts +59 -0
- package/dist/backend/redis.d.ts.map +1 -0
- package/dist/backend/redis.js +169 -0
- package/dist/backend/redis.js.map +1 -0
- package/dist/backend/socket.d.ts +81 -0
- package/dist/backend/socket.d.ts.map +1 -0
- package/dist/backend/socket.js +132 -0
- package/dist/backend/socket.js.map +1 -0
- package/dist/backend/worker-queue.d.ts +40 -0
- package/dist/backend/worker-queue.d.ts.map +1 -0
- package/dist/backend/worker-queue.js +140 -0
- package/dist/backend/worker-queue.js.map +1 -0
- package/dist/client/api-client.d.ts +101 -0
- package/dist/client/api-client.d.ts.map +1 -0
- package/dist/client/api-client.js +261 -0
- package/dist/client/api-client.js.map +1 -0
- package/dist/client/api-error.d.ts +100 -0
- package/dist/client/api-error.d.ts.map +1 -0
- package/dist/client/api-error.js +111 -0
- package/dist/client/api-error.js.map +1 -0
- package/dist/client/endpoints.d.ts +510 -0
- package/dist/client/endpoints.d.ts.map +1 -0
- package/dist/client/endpoints.js +306 -0
- package/dist/client/endpoints.js.map +1 -0
- package/dist/client/index.d.ts +4 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +7 -0
- package/dist/client/index.js.map +1 -0
- package/dist/constants/index.d.ts +2 -1
- package/dist/constants/index.d.ts.map +1 -1
- package/dist/constants/index.js +2 -1
- package/dist/constants/index.js.map +1 -1
- package/dist/constants/socket.d.ts +165 -0
- package/dist/constants/socket.d.ts.map +1 -0
- package/dist/constants/socket.js +204 -0
- package/dist/constants/socket.js.map +1 -0
- package/dist/helpers/ApiError.d.ts +74 -0
- package/dist/helpers/ApiError.d.ts.map +1 -0
- package/dist/helpers/ApiError.js +105 -0
- package/dist/helpers/ApiError.js.map +1 -0
- package/dist/helpers/asyncHandler.d.ts +42 -0
- package/dist/helpers/asyncHandler.d.ts.map +1 -0
- package/dist/helpers/asyncHandler.js +47 -0
- package/dist/helpers/asyncHandler.js.map +1 -0
- package/dist/helpers/id-generator.d.ts +98 -0
- package/dist/helpers/id-generator.d.ts.map +1 -0
- package/dist/helpers/id-generator.js +128 -0
- package/dist/helpers/id-generator.js.map +1 -0
- package/dist/helpers/index.d.ts +5 -0
- package/dist/helpers/index.d.ts.map +1 -0
- package/dist/helpers/index.js +8 -0
- package/dist/helpers/index.js.map +1 -0
- package/dist/helpers/response-timing.d.ts +91 -0
- package/dist/helpers/response-timing.d.ts.map +1 -0
- package/dist/helpers/response-timing.js +176 -0
- package/dist/helpers/response-timing.js.map +1 -0
- package/dist/index.d.ts +7 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +21 -3
- package/dist/index.js.map +1 -1
- package/dist/schemas/account.schema.d.ts +4500 -0
- package/dist/schemas/account.schema.d.ts.map +1 -0
- package/dist/schemas/account.schema.js +123 -0
- package/dist/schemas/account.schema.js.map +1 -0
- package/dist/schemas/chat.schema.d.ts +4796 -0
- package/dist/schemas/chat.schema.d.ts.map +1 -0
- package/dist/schemas/chat.schema.js +107 -0
- package/dist/schemas/chat.schema.js.map +1 -0
- package/dist/schemas/collaboration-request.schema.d.ts +3960 -0
- package/dist/schemas/collaboration-request.schema.d.ts.map +1 -0
- package/dist/schemas/collaboration-request.schema.js +92 -0
- package/dist/schemas/collaboration-request.schema.js.map +1 -0
- package/dist/schemas/company-review.schema.d.ts +3465 -0
- package/dist/schemas/company-review.schema.d.ts.map +1 -0
- package/dist/schemas/company-review.schema.js +73 -0
- package/dist/schemas/company-review.schema.js.map +1 -0
- package/dist/schemas/company.schema.d.ts +6152 -0
- package/dist/schemas/company.schema.d.ts.map +1 -0
- package/dist/schemas/company.schema.js +192 -0
- package/dist/schemas/company.schema.js.map +1 -0
- package/dist/schemas/contract.schema.d.ts +5286 -0
- package/dist/schemas/contract.schema.d.ts.map +1 -0
- package/dist/schemas/contract.schema.js +115 -0
- package/dist/schemas/contract.schema.js.map +1 -0
- package/dist/schemas/dispute-evidence.schema.d.ts +3788 -0
- package/dist/schemas/dispute-evidence.schema.d.ts.map +1 -0
- package/dist/schemas/dispute-evidence.schema.js +71 -0
- package/dist/schemas/dispute-evidence.schema.js.map +1 -0
- package/dist/schemas/dispute.schema.d.ts +4970 -0
- package/dist/schemas/dispute.schema.d.ts.map +1 -0
- package/dist/schemas/dispute.schema.js +152 -0
- package/dist/schemas/dispute.schema.js.map +1 -0
- package/dist/schemas/donation.schema.d.ts +3594 -0
- package/dist/schemas/donation.schema.d.ts.map +1 -0
- package/dist/schemas/donation.schema.js +95 -0
- package/dist/schemas/donation.schema.js.map +1 -0
- package/dist/schemas/escrow.schema.d.ts +4322 -0
- package/dist/schemas/escrow.schema.d.ts.map +1 -0
- package/dist/schemas/escrow.schema.js +93 -0
- package/dist/schemas/escrow.schema.js.map +1 -0
- package/dist/schemas/flag.schema.d.ts +4375 -0
- package/dist/schemas/flag.schema.d.ts.map +1 -0
- package/dist/schemas/flag.schema.js +133 -0
- package/dist/schemas/flag.schema.js.map +1 -0
- package/dist/schemas/index.d.ts +33 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +39 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/interest.schema.d.ts +3804 -0
- package/dist/schemas/interest.schema.d.ts.map +1 -0
- package/dist/schemas/interest.schema.js +107 -0
- package/dist/schemas/interest.schema.js.map +1 -0
- package/dist/schemas/match.schema.d.ts +4013 -0
- package/dist/schemas/match.schema.d.ts.map +1 -0
- package/dist/schemas/match.schema.js +118 -0
- package/dist/schemas/match.schema.js.map +1 -0
- package/dist/schemas/message.schema.d.ts +4213 -0
- package/dist/schemas/message.schema.d.ts.map +1 -0
- package/dist/schemas/message.schema.js +134 -0
- package/dist/schemas/message.schema.js.map +1 -0
- package/dist/schemas/milestone.schema.d.ts +4310 -0
- package/dist/schemas/milestone.schema.d.ts.map +1 -0
- package/dist/schemas/milestone.schema.js +99 -0
- package/dist/schemas/milestone.schema.js.map +1 -0
- package/dist/schemas/notification.schema.d.ts +4641 -0
- package/dist/schemas/notification.schema.d.ts.map +1 -0
- package/dist/schemas/notification.schema.js +139 -0
- package/dist/schemas/notification.schema.js.map +1 -0
- package/dist/schemas/profile.schema.d.ts +9589 -0
- package/dist/schemas/profile.schema.d.ts.map +1 -0
- package/dist/schemas/profile.schema.js +360 -0
- package/dist/schemas/profile.schema.js.map +1 -0
- package/dist/schemas/profit-share-agreement.schema.d.ts +3789 -0
- package/dist/schemas/profit-share-agreement.schema.d.ts.map +1 -0
- package/dist/schemas/profit-share-agreement.schema.js +76 -0
- package/dist/schemas/profit-share-agreement.schema.js.map +1 -0
- package/dist/schemas/profit-share.schema.d.ts +4051 -0
- package/dist/schemas/profit-share.schema.d.ts.map +1 -0
- package/dist/schemas/profit-share.schema.js +96 -0
- package/dist/schemas/profit-share.schema.js.map +1 -0
- package/dist/schemas/promo-code.schema.d.ts +3924 -0
- package/dist/schemas/promo-code.schema.d.ts.map +1 -0
- package/dist/schemas/promo-code.schema.js +112 -0
- package/dist/schemas/promo-code.schema.js.map +1 -0
- package/dist/schemas/proposal.schema.d.ts +5182 -0
- package/dist/schemas/proposal.schema.d.ts.map +1 -0
- package/dist/schemas/proposal.schema.js +114 -0
- package/dist/schemas/proposal.schema.js.map +1 -0
- package/dist/schemas/purchase.schema.d.ts +3724 -0
- package/dist/schemas/purchase.schema.d.ts.map +1 -0
- package/dist/schemas/purchase.schema.js +89 -0
- package/dist/schemas/purchase.schema.js.map +1 -0
- package/dist/schemas/requirement-post.schema.d.ts +6315 -0
- package/dist/schemas/requirement-post.schema.d.ts.map +1 -0
- package/dist/schemas/requirement-post.schema.js +153 -0
- package/dist/schemas/requirement-post.schema.js.map +1 -0
- package/dist/schemas/review.schema.d.ts +4512 -0
- package/dist/schemas/review.schema.d.ts.map +1 -0
- package/dist/schemas/review.schema.js +121 -0
- package/dist/schemas/review.schema.js.map +1 -0
- package/dist/schemas/service-listing.schema.d.ts +5152 -0
- package/dist/schemas/service-listing.schema.d.ts.map +1 -0
- package/dist/schemas/service-listing.schema.js +137 -0
- package/dist/schemas/service-listing.schema.js.map +1 -0
- package/dist/schemas/subscription.schema.d.ts +3985 -0
- package/dist/schemas/subscription.schema.d.ts.map +1 -0
- package/dist/schemas/subscription.schema.js +94 -0
- package/dist/schemas/subscription.schema.js.map +1 -0
- package/dist/schemas/tmc-application.schema.d.ts +4357 -0
- package/dist/schemas/tmc-application.schema.d.ts.map +1 -0
- package/dist/schemas/tmc-application.schema.js +96 -0
- package/dist/schemas/tmc-application.schema.js.map +1 -0
- package/dist/schemas/tmc-membership.schema.d.ts +3985 -0
- package/dist/schemas/tmc-membership.schema.d.ts.map +1 -0
- package/dist/schemas/tmc-membership.schema.js +84 -0
- package/dist/schemas/tmc-membership.schema.js.map +1 -0
- package/dist/schemas/trust-badge.schema.d.ts +3919 -0
- package/dist/schemas/trust-badge.schema.d.ts.map +1 -0
- package/dist/schemas/trust-badge.schema.js +83 -0
- package/dist/schemas/trust-badge.schema.js.map +1 -0
- package/dist/schemas/verification.schema.d.ts +4606 -0
- package/dist/schemas/verification.schema.d.ts.map +1 -0
- package/dist/schemas/verification.schema.js +114 -0
- package/dist/schemas/verification.schema.js.map +1 -0
- package/dist/schemas/webhook-event.schema.d.ts +3534 -0
- package/dist/schemas/webhook-event.schema.d.ts.map +1 -0
- package/dist/schemas/webhook-event.schema.js +83 -0
- package/dist/schemas/webhook-event.schema.js.map +1 -0
- package/dist/types/account.d.ts +36 -7
- package/dist/types/account.d.ts.map +1 -1
- package/dist/types/account.js +3 -1
- package/dist/types/account.js.map +1 -1
- package/dist/types/admin.d.ts +20 -10
- package/dist/types/admin.d.ts.map +1 -1
- package/dist/types/admin.js +3 -1
- package/dist/types/admin.js.map +1 -1
- package/dist/types/api.d.ts +184 -109
- package/dist/types/api.d.ts.map +1 -1
- package/dist/types/api.js +2 -1
- package/dist/types/api.js.map +1 -1
- package/dist/types/chat.d.ts +38 -20
- package/dist/types/chat.d.ts.map +1 -1
- package/dist/types/chat.js +3 -1
- package/dist/types/chat.js.map +1 -1
- package/dist/types/common.d.ts +39 -12
- package/dist/types/common.d.ts.map +1 -1
- package/dist/types/common.js +4 -1
- package/dist/types/common.js.map +1 -1
- package/dist/types/company.d.ts +61 -44
- package/dist/types/company.d.ts.map +1 -1
- package/dist/types/company.js +3 -1
- package/dist/types/company.js.map +1 -1
- package/dist/types/flag.d.ts +19 -8
- package/dist/types/flag.d.ts.map +1 -1
- package/dist/types/flag.js +3 -1
- package/dist/types/flag.js.map +1 -1
- package/dist/types/forms.d.ts +334 -0
- package/dist/types/forms.d.ts.map +1 -0
- package/dist/types/forms.js +5 -0
- package/dist/types/forms.js.map +1 -0
- package/dist/types/index.d.ts +18 -13
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +18 -13
- package/dist/types/index.js.map +1 -1
- package/dist/types/marketplace.d.ts +174 -104
- package/dist/types/marketplace.d.ts.map +1 -1
- package/dist/types/marketplace.js +2 -0
- package/dist/types/marketplace.js.map +1 -1
- package/dist/types/match.d.ts +36 -19
- package/dist/types/match.d.ts.map +1 -1
- package/dist/types/match.js +3 -1
- package/dist/types/match.js.map +1 -1
- package/dist/types/navigation.d.ts +305 -0
- package/dist/types/navigation.d.ts.map +1 -0
- package/dist/types/navigation.js +18 -0
- package/dist/types/navigation.js.map +1 -0
- package/dist/types/notification.d.ts +92 -0
- package/dist/types/notification.d.ts.map +1 -0
- package/dist/types/notification.js +5 -0
- package/dist/types/notification.js.map +1 -0
- package/dist/types/payment.d.ts +70 -38
- package/dist/types/payment.d.ts.map +1 -1
- package/dist/types/payment.js +3 -1
- package/dist/types/payment.js.map +1 -1
- package/dist/types/policy.d.ts +174 -81
- package/dist/types/policy.d.ts.map +1 -1
- package/dist/types/policy.js.map +1 -1
- package/dist/types/profile.d.ts +48 -37
- package/dist/types/profile.d.ts.map +1 -1
- package/dist/types/profile.js +3 -1
- package/dist/types/profile.js.map +1 -1
- package/dist/types/socket.d.ts +431 -0
- package/dist/types/socket.d.ts.map +1 -0
- package/dist/types/socket.js +5 -0
- package/dist/types/socket.js.map +1 -0
- package/dist/types/verification.d.ts +18 -9
- package/dist/types/verification.d.ts.map +1 -1
- package/dist/types/verification.js +3 -1
- package/dist/types/verification.js.map +1 -1
- package/dist/types/worker.d.ts +452 -0
- package/dist/types/worker.d.ts.map +1 -0
- package/dist/types/worker.js +5 -0
- package/dist/types/worker.js.map +1 -0
- package/dist/validation/index.d.ts +5 -0
- package/dist/validation/index.d.ts.map +1 -0
- package/dist/validation/index.js +9 -0
- package/dist/validation/index.js.map +1 -0
- package/dist/validation/messages.d.ts +124 -0
- package/dist/validation/messages.d.ts.map +1 -0
- package/dist/validation/messages.js +160 -0
- package/dist/validation/messages.js.map +1 -0
- package/dist/validation/schemas.d.ts +1127 -0
- package/dist/validation/schemas.d.ts.map +1 -0
- package/dist/validation/schemas.js +376 -0
- package/dist/validation/schemas.js.map +1 -0
- package/dist/validation/validators.d.ts +229 -0
- package/dist/validation/validators.d.ts.map +1 -0
- package/dist/validation/validators.js +307 -0
- package/dist/validation/validators.js.map +1 -0
- 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 @@
|
|
|
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
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
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,
|
|
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"}
|