vr-commons 1.0.132 → 1.0.133

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.
@@ -36,3 +36,13 @@ export declare function validateHierarchy(adminLevel: number, targetLevel: numbe
36
36
  allowed: boolean;
37
37
  message?: string;
38
38
  };
39
+ /**
40
+ * Filter users based on hierarchical permissions using security clearance levels
41
+ * Pure function - no database calls
42
+ *
43
+ * @param currentUserLevel - The level of the requesting user (from securityClearance.level)
44
+ * @param users - Array of users to filter (must include securityClearance association)
45
+ * @param currentUserId - Optional: ID of the requesting user to always include them
46
+ * @returns Filtered array of users
47
+ */
48
+ export declare const hierarchicalView: (currentUserLevel: number, users: any[], currentUserId?: string) => any[];
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.hierarchicalView = void 0;
3
4
  exports.getUserLevel = getUserLevel;
4
5
  exports.isSuperior = isSuperior;
5
6
  exports.isSubordinate = isSubordinate;
@@ -92,3 +93,29 @@ function validateHierarchy(adminLevel, targetLevel, action, allowEqual = false)
92
93
  }
93
94
  return { allowed: false, message: `Cannot ${action} this user` };
94
95
  }
96
+ // src/utils/hierarchical.util.ts
97
+ /**
98
+ * Filter users based on hierarchical permissions using security clearance levels
99
+ * Pure function - no database calls
100
+ *
101
+ * @param currentUserLevel - The level of the requesting user (from securityClearance.level)
102
+ * @param users - Array of users to filter (must include securityClearance association)
103
+ * @param currentUserId - Optional: ID of the requesting user to always include them
104
+ * @returns Filtered array of users
105
+ */
106
+ const hierarchicalView = (currentUserLevel, users, currentUserId) => {
107
+ // If current user is SUPER_ADMIN (level 4) or above, return all users
108
+ if (currentUserLevel >= 4) {
109
+ return users;
110
+ }
111
+ return users.filter((user) => {
112
+ const userLevel = user.securityClearance?.level ?? 0;
113
+ // Always include the current user themselves
114
+ if (currentUserId && user.id === currentUserId) {
115
+ return true;
116
+ }
117
+ // Only include users with lower level than current user
118
+ return userLevel < currentUserLevel;
119
+ });
120
+ };
121
+ exports.hierarchicalView = hierarchicalView;
@@ -8,7 +8,7 @@ export { banUtil } from "./bans.utils";
8
8
  export { suspensionUtil } from "./suspension.utils";
9
9
  export { createDeviceSession } from "./session.utils";
10
10
  export { generateOTP, getOTPExpiry, getVerificationMethod, sendEmail, sendSMS, sendVerificationCode, detectContactType, validateContactValue, } from "./verification.utils";
11
- export { getUserLevel, isRankEqual, isSubordinate, isSubordinateOrEqual, isSuperior, isSuperiorOrEqual, validateHierarchy, } from "./hierarchy.utils";
11
+ export { getUserLevel, isRankEqual, isSubordinate, isSubordinateOrEqual, isSuperior, isSuperiorOrEqual, validateHierarchy, hierarchicalView, } from "./hierarchy.utils";
12
12
  export { stockUtil } from "./admin.device.utils";
13
13
  export { cloudinaryUtil } from "./product.utils";
14
14
  export { DPP_OperationsUtil } from "./admin.devicePayment.utils";
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.validateContactValue = exports.detectContactType = exports.sendVerificationCode = exports.sendSMS = exports.sendEmail = exports.getVerificationMethod = exports.getOTPExpiry = exports.generateOTP = exports.createDeviceSession = exports.suspensionUtil = exports.banUtil = exports.hasHigherAuthority = exports.getModeratableRoles = exports.canModerateUser = exports.canModerate = exports.softDeleteUser = exports.hashPassword = exports.validatePassword = exports.validateUniqueFields = exports.generateJacketId = exports.getSortOrder = exports.generateEventSearchConditions = exports.generateUserSearchConditions = exports.findSecurityClearanceByRole = exports.getUsersByRole = exports.getUserById = exports.isAccountAccessible = exports.canModifyAccount = exports.hasAllPermissions = exports.hasAnyPermission = exports.hasPermission = exports.hasRole = exports.formatUserListResponse = exports.formatUserProfile = exports.sendErrorResponse = exports.sendSuccessResponse = exports.logEvent = exports.formatTimeRemaining = exports.getTokenTimeRemaining = exports.generateToken = exports.shouldRefreshToken = exports.verifyToken = exports.generateRiderToken = exports.generatePassengerToken = exports.generateAdminToken = exports.checkSuspensionStatus = exports.checkIsUserBannedOrSuspended = exports.checkBanStatus = exports.hasActiveDependencies = exports.checkAccountDependencies = void 0;
4
- exports.extractDedicatedUserFromSerial = exports.buildUserSearchConditions = exports.buildSearchConditions = exports.buildEventLogWhereClause = exports.formatEventLogs = exports.formatEventLog = exports.formatDeviceSession = exports.DPP_OperationsUtil = exports.cloudinaryUtil = exports.stockUtil = exports.validateHierarchy = exports.isSuperiorOrEqual = exports.isSuperior = exports.isSubordinateOrEqual = exports.isSubordinate = exports.isRankEqual = exports.getUserLevel = void 0;
4
+ exports.extractDedicatedUserFromSerial = exports.buildUserSearchConditions = exports.buildSearchConditions = exports.buildEventLogWhereClause = exports.formatEventLogs = exports.formatEventLog = exports.formatDeviceSession = exports.DPP_OperationsUtil = exports.cloudinaryUtil = exports.stockUtil = exports.hierarchicalView = exports.validateHierarchy = exports.isSuperiorOrEqual = exports.isSuperior = exports.isSubordinateOrEqual = exports.isSubordinate = exports.isRankEqual = exports.getUserLevel = void 0;
5
5
  var account_utils_1 = require("./account.utils");
6
6
  Object.defineProperty(exports, "checkAccountDependencies", { enumerable: true, get: function () { return account_utils_1.checkAccountDependencies; } });
7
7
  Object.defineProperty(exports, "hasActiveDependencies", { enumerable: true, get: function () { return account_utils_1.hasActiveDependencies; } });
@@ -77,6 +77,7 @@ Object.defineProperty(exports, "isSubordinateOrEqual", { enumerable: true, get:
77
77
  Object.defineProperty(exports, "isSuperior", { enumerable: true, get: function () { return hierarchy_utils_1.isSuperior; } });
78
78
  Object.defineProperty(exports, "isSuperiorOrEqual", { enumerable: true, get: function () { return hierarchy_utils_1.isSuperiorOrEqual; } });
79
79
  Object.defineProperty(exports, "validateHierarchy", { enumerable: true, get: function () { return hierarchy_utils_1.validateHierarchy; } });
80
+ Object.defineProperty(exports, "hierarchicalView", { enumerable: true, get: function () { return hierarchy_utils_1.hierarchicalView; } });
80
81
  var admin_device_utils_1 = require("./admin.device.utils");
81
82
  Object.defineProperty(exports, "stockUtil", { enumerable: true, get: function () { return admin_device_utils_1.stockUtil; } });
82
83
  var product_utils_1 = require("./product.utils");
@@ -346,6 +346,91 @@ export declare const resetPasswordSchema: z.ZodEffects<z.ZodObject<{
346
346
  confirmPassword: string;
347
347
  };
348
348
  }>;
349
+ export declare const riderPasswordSchema: z.ZodDefault<z.ZodEffects<z.ZodString, string, string>>;
350
+ export declare const registerRiderSchema: z.ZodObject<{
351
+ body: z.ZodEffects<z.ZodObject<{
352
+ firstName: z.ZodString;
353
+ lastName: z.ZodString;
354
+ phoneNumber: z.ZodString;
355
+ jacketId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
356
+ plateNumber: z.ZodNullable<z.ZodOptional<z.ZodString>>;
357
+ gender: z.ZodEnum<["male", "female"]>;
358
+ birthDate: z.ZodNumber;
359
+ birthMonth: z.ZodNumber;
360
+ birthYear: z.ZodNumber;
361
+ password: z.ZodOptional<z.ZodDefault<z.ZodEffects<z.ZodString, string, string>>>;
362
+ }, "strip", z.ZodTypeAny, {
363
+ firstName: string;
364
+ lastName: string;
365
+ gender: "male" | "female";
366
+ birthDate: number;
367
+ birthMonth: number;
368
+ birthYear: number;
369
+ phoneNumber: string;
370
+ plateNumber?: string | null | undefined;
371
+ password?: string | undefined;
372
+ jacketId?: string | null | undefined;
373
+ }, {
374
+ firstName: string;
375
+ lastName: string;
376
+ gender: "male" | "female";
377
+ birthDate: number;
378
+ birthMonth: number;
379
+ birthYear: number;
380
+ phoneNumber: string;
381
+ plateNumber?: string | null | undefined;
382
+ password?: string | undefined;
383
+ jacketId?: string | null | undefined;
384
+ }>, {
385
+ firstName: string;
386
+ lastName: string;
387
+ gender: "male" | "female";
388
+ birthDate: number;
389
+ birthMonth: number;
390
+ birthYear: number;
391
+ phoneNumber: string;
392
+ plateNumber?: string | null | undefined;
393
+ password?: string | undefined;
394
+ jacketId?: string | null | undefined;
395
+ }, {
396
+ firstName: string;
397
+ lastName: string;
398
+ gender: "male" | "female";
399
+ birthDate: number;
400
+ birthMonth: number;
401
+ birthYear: number;
402
+ phoneNumber: string;
403
+ plateNumber?: string | null | undefined;
404
+ password?: string | undefined;
405
+ jacketId?: string | null | undefined;
406
+ }>;
407
+ }, "strip", z.ZodTypeAny, {
408
+ body: {
409
+ firstName: string;
410
+ lastName: string;
411
+ gender: "male" | "female";
412
+ birthDate: number;
413
+ birthMonth: number;
414
+ birthYear: number;
415
+ phoneNumber: string;
416
+ plateNumber?: string | null | undefined;
417
+ password?: string | undefined;
418
+ jacketId?: string | null | undefined;
419
+ };
420
+ }, {
421
+ body: {
422
+ firstName: string;
423
+ lastName: string;
424
+ gender: "male" | "female";
425
+ birthDate: number;
426
+ birthMonth: number;
427
+ birthYear: number;
428
+ phoneNumber: string;
429
+ plateNumber?: string | null | undefined;
430
+ password?: string | undefined;
431
+ jacketId?: string | null | undefined;
432
+ };
433
+ }>;
349
434
  export type UpdateProfileSchema = z.infer<typeof updateProfileSchema>;
350
435
  export type UpdateContactSchema = z.infer<typeof updateContactSchema>;
351
436
  export type ChangeEmailSchema = z.infer<typeof changeEmailSchema>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.resetPasswordSchema = exports.forgotPasswordSchema = exports.loginSchema = exports.changePasswordSchema = exports.deleteAccountSchema = exports.confirmVerificationSchema = exports.verifyContactSchema = exports.setPrimaryContactSchema = exports.deleteContactSchema = exports.addContactSchema = exports.verifyEmailChangeSchema = exports.verifyPhoneChangeSchema = exports.requestPhoneChangeSchema = exports.changeEmailSchema = exports.updateContactSchema = exports.updateProfileSchema = exports.validateContactValue = exports.detectContactType = exports.strongPasswordRegex = exports.emailRegex = exports.phoneRegex = void 0;
3
+ exports.registerRiderSchema = exports.riderPasswordSchema = exports.resetPasswordSchema = exports.forgotPasswordSchema = exports.loginSchema = exports.changePasswordSchema = exports.deleteAccountSchema = exports.confirmVerificationSchema = exports.verifyContactSchema = exports.setPrimaryContactSchema = exports.deleteContactSchema = exports.addContactSchema = exports.verifyEmailChangeSchema = exports.verifyPhoneChangeSchema = exports.requestPhoneChangeSchema = exports.changeEmailSchema = exports.updateContactSchema = exports.updateProfileSchema = exports.validateContactValue = exports.detectContactType = exports.strongPasswordRegex = exports.emailRegex = exports.phoneRegex = void 0;
4
4
  // src/modules/account/validations/account.schema.ts
5
5
  const zod_1 = require("zod");
6
6
  // ==================== REGEX PATTERNS ====================
@@ -191,3 +191,73 @@ exports.resetPasswordSchema = zod_1.z
191
191
  message: "Passwords do not match",
192
192
  path: ["confirmPassword"],
193
193
  });
194
+ // Birth date validation helper
195
+ const isValidBirthDate = (date, month, year) => {
196
+ const maxDays = new Date(year, month, 0).getDate();
197
+ return date >= 1 && date <= maxDays;
198
+ };
199
+ // Password: exactly 4 digits, NOT all the same digit
200
+ // Examples: 1112 ✅, 1234 ✅, 5678 ✅, 1111 ❌, 3333 ❌
201
+ exports.riderPasswordSchema = zod_1.z
202
+ .string()
203
+ .length(4, "Password must be exactly 4 digits")
204
+ .regex(/^\d{4}$/, "Password must contain only digits")
205
+ .refine((password) => {
206
+ // Check if all 4 digits are the same
207
+ const uniqueDigits = new Set(password.split("")).size;
208
+ return uniqueDigits > 1;
209
+ }, {
210
+ message: "Password cannot have all 4 digits the same (e.g., 1112 is allowed, 1111 is not)",
211
+ })
212
+ .default("1234");
213
+ exports.registerRiderSchema = zod_1.z.object({
214
+ body: zod_1.z
215
+ .object({
216
+ firstName: zod_1.z
217
+ .string()
218
+ .min(2, "First name must be at least 2 characters")
219
+ .max(100, "First name cannot exceed 100 characters"),
220
+ lastName: zod_1.z
221
+ .string()
222
+ .min(2, "Last name must be at least 2 characters")
223
+ .max(100, "Last name cannot exceed 100 characters"),
224
+ phoneNumber: zod_1.z
225
+ .string()
226
+ .regex(exports.phoneRegex, "Invalid phone number format. Must be a valid Rwandan phone number (+250...) followed by 7 digits."),
227
+ jacketId: zod_1.z
228
+ .string()
229
+ .regex(/^JKT-\d{9}$/, "Jacket ID must be in format JKT-XXXXXXXXX")
230
+ .optional()
231
+ .nullable(),
232
+ plateNumber: zod_1.z
233
+ .string()
234
+ .max(20, "Plate number cannot exceed 20 characters")
235
+ .optional()
236
+ .nullable(),
237
+ gender: zod_1.z.enum(["male", "female"], {
238
+ errorMap: () => ({
239
+ message: "Gender must be either 'male' or 'female'",
240
+ }),
241
+ }),
242
+ birthDate: zod_1.z
243
+ .number()
244
+ .min(1, "Birth date must be between 1 and 31")
245
+ .max(31),
246
+ birthMonth: zod_1.z
247
+ .number()
248
+ .min(1, "Birth month must be between 1 and 12")
249
+ .max(12),
250
+ birthYear: zod_1.z
251
+ .number()
252
+ .min(1900, "Birth year must be between 1900 and current year")
253
+ .max(new Date().getFullYear(), "Birth year cannot be in the future"),
254
+ // Temporary password (optional, defaults to 1234)
255
+ password: exports.riderPasswordSchema.optional(),
256
+ })
257
+ .refine((data) => {
258
+ return isValidBirthDate(data.birthDate, data.birthMonth, data.birthYear);
259
+ }, {
260
+ message: "Invalid birth date. Please check day, month, and year.",
261
+ path: ["birthDate"],
262
+ }),
263
+ });
@@ -6,7 +6,7 @@ export { createAppSpecsSchema, updateAppSpecsSchema, listAppSpecsSchema, getActi
6
6
  export { listUserPaymentPlansSchema, getUserPaymentPlanSchema, } from "./devicePaymentPlan.validations";
7
7
  export { unlockDeviceSchema, extendSessionSchema, serialRegex, } from "./devices.validations";
8
8
  export { payInstallmentSchema } from "./payinstallment.validations";
9
- export { updateProfileSchema, requestPhoneChangeSchema, verifyPhoneChangeSchema, deleteAccountSchema, strongPasswordRegex, changePasswordSchema, } from "./account.validations";
9
+ export { updateProfileSchema, requestPhoneChangeSchema, verifyPhoneChangeSchema, deleteAccountSchema, strongPasswordRegex, changePasswordSchema, riderPasswordSchema, registerRiderSchema, } from "./account.validations";
10
10
  export { updateAdminSchema, updateRiderSchema, deleteUserSchema, getUserSchema, getUsersSchema, hireAdminSchema, promoteAdminSchema, demoteAdminSchema, fireEmployeeSchema, upgradeToRiderSchema, resetPasswordSchema, } from "./users.admin.validations";
11
11
  export { createProductSchema, updateProductSchema, getProductSchema, getProductsSchema, deactivateProductSchema, activateProductSchema, deleteProductSchema, updateStockSchema, } from "./product.validations";
12
12
  export { createPricingSchema, updatePricingSchema, getPricingSchema, getPricingsSchema, deletePricingSchema, } from "./pricings.validations";
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getAppSpecsSchema = exports.activateAppSpecsSchema = exports.getActiveAppSpecsSchema = exports.listAppSpecsSchema = exports.updateAppSpecsSchema = exports.createAppSpecsSchema = exports.exportBansSchema = exports.createSuspensionSchema = exports.createBanSchema = exports.extendSuspensionSchema = exports.revokeSuspensionSchema = exports.revokeBanSchema = exports.reviewAppealSchema = exports.listSuspensionsSchema = exports.listPendingAppealsSchema = exports.listBansSchema = exports.getUserBansSchema = exports.getUserSuspensionsSchema = exports.getSuspensionSchema = exports.getUserRestrictionsSchema = exports.getBanSchema = exports.submitSuspensionAppealSchema = exports.submitBanAppealSchema = exports.deactivateAccountSchema = exports.createRiderSchema = exports.updateRiderProfileSchema = exports.updatePassengerProfileSchema = exports.passengerSignupSchema = exports.viewProfileSchema = exports.getAllUsersSchema = exports.updateUserProfileSchema = exports.getUserByIdSchema = exports.createUserSchema = exports.googleLoginSchema = exports.completePassengerProfileSchema = exports.checkRiderAccountSchema = exports.setRiderPasswordSchema = exports.riderPasswordRegex = exports.passwordRegex = exports.emailRegex = exports.phoneRegex = exports.requestOtpSchema = exports.resendOtpSchema = exports.verifyOtpSchema = exports.registerSchema = exports.refreshTokenSchema = exports.userLoginSchema = exports.forgotPasswordSchema = exports.riderLoginSchema = exports.validate = void 0;
4
- exports.getDevicePlanSchema = exports.limitedUpdateSchema = exports.createPlanSchema = exports.createDeviceSchema = exports.makePermanentSchema = exports.disableDeviceSchema = exports.deleteDeviceSchema = exports.getDevicesSchema = exports.getDeviceSchema = exports.updateDeviceSchema = exports.adminUnlockDeviceSchema = exports.adminLockDeviceSchema = exports.bulkCreateDevicesSchema = exports.checkAvailabilitySchema = exports.deletePricingSchema = exports.getPricingsSchema = exports.getPricingSchema = exports.updatePricingSchema = exports.createPricingSchema = exports.updateStockSchema = exports.deleteProductSchema = exports.activateProductSchema = exports.deactivateProductSchema = exports.getProductsSchema = exports.getProductSchema = exports.updateProductSchema = exports.createProductSchema = exports.resetPasswordSchema = exports.upgradeToRiderSchema = exports.fireEmployeeSchema = exports.demoteAdminSchema = exports.promoteAdminSchema = exports.hireAdminSchema = exports.getUsersSchema = exports.getUserSchema = exports.deleteUserSchema = exports.updateRiderSchema = exports.updateAdminSchema = exports.changePasswordSchema = exports.strongPasswordRegex = exports.deleteAccountSchema = exports.verifyPhoneChangeSchema = exports.requestPhoneChangeSchema = exports.updateProfileSchema = exports.payInstallmentSchema = exports.serialRegex = exports.extendSessionSchema = exports.unlockDeviceSchema = exports.getUserPaymentPlanSchema = exports.listUserPaymentPlansSchema = void 0;
5
- exports.getEventLogSchema = exports.listEventLogsSchema = exports.deletePlanSchema = exports.recordPaymentSchema = exports.listPlansSchema = exports.getUserPlansSchema = exports.getPlanSchema = void 0;
4
+ exports.createPlanSchema = exports.createDeviceSchema = exports.makePermanentSchema = exports.disableDeviceSchema = exports.deleteDeviceSchema = exports.getDevicesSchema = exports.getDeviceSchema = exports.updateDeviceSchema = exports.adminUnlockDeviceSchema = exports.adminLockDeviceSchema = exports.bulkCreateDevicesSchema = exports.checkAvailabilitySchema = exports.deletePricingSchema = exports.getPricingsSchema = exports.getPricingSchema = exports.updatePricingSchema = exports.createPricingSchema = exports.updateStockSchema = exports.deleteProductSchema = exports.activateProductSchema = exports.deactivateProductSchema = exports.getProductsSchema = exports.getProductSchema = exports.updateProductSchema = exports.createProductSchema = exports.resetPasswordSchema = exports.upgradeToRiderSchema = exports.fireEmployeeSchema = exports.demoteAdminSchema = exports.promoteAdminSchema = exports.hireAdminSchema = exports.getUsersSchema = exports.getUserSchema = exports.deleteUserSchema = exports.updateRiderSchema = exports.updateAdminSchema = exports.registerRiderSchema = exports.riderPasswordSchema = exports.changePasswordSchema = exports.strongPasswordRegex = exports.deleteAccountSchema = exports.verifyPhoneChangeSchema = exports.requestPhoneChangeSchema = exports.updateProfileSchema = exports.payInstallmentSchema = exports.serialRegex = exports.extendSessionSchema = exports.unlockDeviceSchema = exports.getUserPaymentPlanSchema = exports.listUserPaymentPlansSchema = void 0;
5
+ exports.getEventLogSchema = exports.listEventLogsSchema = exports.deletePlanSchema = exports.recordPaymentSchema = exports.listPlansSchema = exports.getUserPlansSchema = exports.getPlanSchema = exports.getDevicePlanSchema = exports.limitedUpdateSchema = void 0;
6
6
  var validate_validations_1 = require("./validate.validations");
7
7
  Object.defineProperty(exports, "validate", { enumerable: true, get: function () { return validate_validations_1.validate; } });
8
8
  var auth_validations_1 = require("./auth.validations");
@@ -82,6 +82,8 @@ Object.defineProperty(exports, "verifyPhoneChangeSchema", { enumerable: true, ge
82
82
  Object.defineProperty(exports, "deleteAccountSchema", { enumerable: true, get: function () { return account_validations_1.deleteAccountSchema; } });
83
83
  Object.defineProperty(exports, "strongPasswordRegex", { enumerable: true, get: function () { return account_validations_1.strongPasswordRegex; } });
84
84
  Object.defineProperty(exports, "changePasswordSchema", { enumerable: true, get: function () { return account_validations_1.changePasswordSchema; } });
85
+ Object.defineProperty(exports, "riderPasswordSchema", { enumerable: true, get: function () { return account_validations_1.riderPasswordSchema; } });
86
+ Object.defineProperty(exports, "registerRiderSchema", { enumerable: true, get: function () { return account_validations_1.registerRiderSchema; } });
85
87
  var users_admin_validations_1 = require("./users.admin.validations");
86
88
  Object.defineProperty(exports, "updateAdminSchema", { enumerable: true, get: function () { return users_admin_validations_1.updateAdminSchema; } });
87
89
  Object.defineProperty(exports, "updateRiderSchema", { enumerable: true, get: function () { return users_admin_validations_1.updateRiderSchema; } });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vr-commons",
3
- "version": "1.0.132",
3
+ "version": "1.0.133",
4
4
  "description": "Shared functions package",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",