@laboratory-one/api-components 0.0.13 → 0.0.15

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 (101) hide show
  1. package/dist/cjs/types/index.d.ts +1 -0
  2. package/dist/cjs/types/index.d.ts.map +1 -1
  3. package/dist/cjs/types/index.js +1 -0
  4. package/dist/cjs/types/index.js.map +1 -1
  5. package/dist/cjs/types/req.type.d.ts +6 -0
  6. package/dist/cjs/types/req.type.d.ts.map +1 -0
  7. package/dist/cjs/types/req.type.js +3 -0
  8. package/dist/cjs/types/req.type.js.map +1 -0
  9. package/dist/cjs/user/index.d.ts +2 -0
  10. package/dist/cjs/user/index.d.ts.map +1 -1
  11. package/dist/cjs/user/index.js +2 -0
  12. package/dist/cjs/user/index.js.map +1 -1
  13. package/dist/cjs/user/schemas/delete-user.schema.d.ts +9 -0
  14. package/dist/cjs/user/schemas/delete-user.schema.d.ts.map +1 -0
  15. package/dist/cjs/user/schemas/delete-user.schema.js +9 -0
  16. package/dist/cjs/user/schemas/delete-user.schema.js.map +1 -0
  17. package/dist/cjs/user/schemas/index.d.ts +4 -0
  18. package/dist/cjs/user/schemas/index.d.ts.map +1 -0
  19. package/dist/cjs/user/schemas/index.js +7 -0
  20. package/dist/cjs/user/schemas/index.js.map +1 -0
  21. package/dist/cjs/user/schemas/signup.schema.d.ts +12 -0
  22. package/dist/cjs/user/schemas/signup.schema.d.ts.map +1 -0
  23. package/dist/cjs/user/schemas/signup.schema.js +10 -0
  24. package/dist/cjs/user/schemas/signup.schema.js.map +1 -0
  25. package/dist/cjs/user/schemas/update-user.schema.d.ts +18 -0
  26. package/dist/cjs/user/schemas/update-user.schema.d.ts.map +1 -0
  27. package/dist/cjs/user/schemas/update-user.schema.js +14 -0
  28. package/dist/cjs/user/schemas/update-user.schema.js.map +1 -0
  29. package/dist/cjs/user/user.controller.d.ts +4 -3
  30. package/dist/cjs/user/user.controller.d.ts.map +1 -1
  31. package/dist/cjs/user/user.controller.js +1 -0
  32. package/dist/cjs/user/user.controller.js.map +1 -1
  33. package/dist/cjs/user/user.util.d.ts +3 -0
  34. package/dist/cjs/user/user.util.d.ts.map +1 -0
  35. package/dist/cjs/user/user.util.js +8 -0
  36. package/dist/cjs/user/user.util.js.map +1 -0
  37. package/dist/cjs/utils/index.d.ts +1 -0
  38. package/dist/cjs/utils/index.d.ts.map +1 -1
  39. package/dist/cjs/utils/index.js +1 -0
  40. package/dist/cjs/utils/index.js.map +1 -1
  41. package/dist/cjs/utils/schema.util.d.ts +11 -0
  42. package/dist/cjs/utils/schema.util.d.ts.map +1 -0
  43. package/dist/cjs/utils/schema.util.js +14 -0
  44. package/dist/cjs/utils/schema.util.js.map +1 -0
  45. package/dist/esm/types/index.d.ts +1 -0
  46. package/dist/esm/types/index.d.ts.map +1 -1
  47. package/dist/esm/types/index.js +1 -0
  48. package/dist/esm/types/index.js.map +1 -1
  49. package/dist/esm/types/req.type.d.ts +6 -0
  50. package/dist/esm/types/req.type.d.ts.map +1 -0
  51. package/dist/esm/types/req.type.js +2 -0
  52. package/dist/esm/types/req.type.js.map +1 -0
  53. package/dist/esm/user/index.d.ts +2 -0
  54. package/dist/esm/user/index.d.ts.map +1 -1
  55. package/dist/esm/user/index.js +2 -0
  56. package/dist/esm/user/index.js.map +1 -1
  57. package/dist/esm/user/schemas/delete-user.schema.d.ts +9 -0
  58. package/dist/esm/user/schemas/delete-user.schema.d.ts.map +1 -0
  59. package/dist/esm/user/schemas/delete-user.schema.js +6 -0
  60. package/dist/esm/user/schemas/delete-user.schema.js.map +1 -0
  61. package/dist/esm/user/schemas/index.d.ts +4 -0
  62. package/dist/esm/user/schemas/index.d.ts.map +1 -0
  63. package/dist/esm/user/schemas/index.js +4 -0
  64. package/dist/esm/user/schemas/index.js.map +1 -0
  65. package/dist/esm/user/schemas/signup.schema.d.ts +12 -0
  66. package/dist/esm/user/schemas/signup.schema.d.ts.map +1 -0
  67. package/dist/esm/user/schemas/signup.schema.js +7 -0
  68. package/dist/esm/user/schemas/signup.schema.js.map +1 -0
  69. package/dist/esm/user/schemas/update-user.schema.d.ts +18 -0
  70. package/dist/esm/user/schemas/update-user.schema.d.ts.map +1 -0
  71. package/dist/esm/user/schemas/update-user.schema.js +11 -0
  72. package/dist/esm/user/schemas/update-user.schema.js.map +1 -0
  73. package/dist/esm/user/user.controller.d.ts +4 -3
  74. package/dist/esm/user/user.controller.d.ts.map +1 -1
  75. package/dist/esm/user/user.controller.js +1 -0
  76. package/dist/esm/user/user.controller.js.map +1 -1
  77. package/dist/esm/user/user.util.d.ts +3 -0
  78. package/dist/esm/user/user.util.d.ts.map +1 -0
  79. package/dist/esm/user/user.util.js +4 -0
  80. package/dist/esm/user/user.util.js.map +1 -0
  81. package/dist/esm/utils/index.d.ts +1 -0
  82. package/dist/esm/utils/index.d.ts.map +1 -1
  83. package/dist/esm/utils/index.js +1 -0
  84. package/dist/esm/utils/index.js.map +1 -1
  85. package/dist/esm/utils/schema.util.d.ts +11 -0
  86. package/dist/esm/utils/schema.util.d.ts.map +1 -0
  87. package/dist/esm/utils/schema.util.js +11 -0
  88. package/dist/esm/utils/schema.util.js.map +1 -0
  89. package/dist/tsconfig.tsbuildinfo +1 -1
  90. package/package.json +4 -3
  91. package/src/types/index.ts +1 -0
  92. package/src/types/req.type.ts +5 -0
  93. package/src/user/index.ts +2 -0
  94. package/src/user/schemas/delete-user.schema.ts +7 -0
  95. package/src/user/schemas/index.ts +3 -0
  96. package/src/user/schemas/signup.schema.ts +8 -0
  97. package/src/user/schemas/update-user.schema.ts +12 -0
  98. package/src/user/user.controller.ts +4 -3
  99. package/src/user/user.util.ts +5 -0
  100. package/src/utils/index.ts +1 -0
  101. package/src/utils/schema.util.ts +11 -0
@@ -12,6 +12,7 @@ import { RegisterRequestDto } from './dtos/register.request.dto';
12
12
  import { PushService } from '../push/push.service';
13
13
  import { cleanPhoneNumber, cleanString, cleanStringAndLowercase, handleError, utcOffsetToHours, } from '../utils';
14
14
  import { AuthGuard } from '../guard';
15
+ import * as types from '../types';
15
16
  let UserController = class UserController {
16
17
  constructor(userService, authService, pushService, jwtService) {
17
18
  this.userService = userService;
@@ -1 +1 @@
1
- {"version":3,"file":"user.controller.js","sourceRoot":"/","sources":["user/user.controller.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Body,\n Controller,\n Get,\n Post,\n Request,\n UseGuards,\n} from '@nestjs/common';\nimport { JwtService } from '@nestjs/jwt';\nimport { ApiResponse, ApiTags } from '@nestjs/swagger';\nimport { OnboardingStatus, User } from '@prisma/client';\nimport { ExpoPushMessage } from 'expo-server-sdk';\nimport * as stytch from 'stytch';\n\nimport { AuthService } from '../auth/auth.service';\nimport { UserService } from './user.service';\nimport { GetUserResponseDto } from './dtos/get-user.response.dto';\nimport { UpdateUserRequestDto } from './dtos/update-user.request.dto';\nimport { RegisterResponseDto } from './dtos/register.response.dto';\nimport { RegisterRequestDto } from './dtos/register.request.dto';\nimport { PushService } from '../push/push.service';\nimport {\n cleanPhoneNumber,\n cleanString,\n cleanStringAndLowercase,\n handleError,\n utcOffsetToHours,\n} from '../utils';\nimport { AuthGuard } from '../guard';\n\n@ApiTags('User')\n@Controller('user')\nexport class UserController {\n constructor(\n private userService: UserService,\n private authService: AuthService,\n private pushService: PushService,\n private jwtService: JwtService,\n ) {}\n\n @Post('signup')\n @ApiResponse({\n status: 200,\n description: 'loginOrCreate successful',\n type: RegisterResponseDto,\n })\n async signup(@Body() dto: RegisterRequestDto): Promise<RegisterResponseDto> {\n const cleanedDTO: RegisterRequestDto = {\n email: cleanStringAndLowercase(dto.email),\n password: cleanString(dto.password),\n };\n\n const res: stytch.PasswordsCreateResponse =\n await this.authService.signup(cleanedDTO);\n\n if (!res) {\n handleError('Error creating user');\n }\n\n const user: User = await this.userService.create({\n email: cleanedDTO.email,\n externalId: res.user_id,\n });\n\n if (!user) {\n handleError('Error creating user');\n }\n\n const payload = { userId: user.id };\n const token: string = await this.jwtService.signAsync(payload);\n\n return {\n ...user,\n token,\n };\n }\n\n @Post('login')\n @ApiResponse({\n status: 200,\n description: 'loginOrCreate successful',\n type: RegisterResponseDto,\n })\n async login(@Body() dto: RegisterRequestDto): Promise<RegisterResponseDto> {\n const cleanedDTO: RegisterRequestDto = {\n email: cleanStringAndLowercase(dto.email),\n password: dto.password.trim(),\n };\n\n const res: boolean = await this.authService.login(cleanedDTO);\n\n if (!res) {\n handleError('Error logging in');\n }\n\n const user: User = await this.userService.findOneByEmail(cleanedDTO.email);\n\n if (!user) {\n handleError('Error logging in');\n }\n\n const payload = { userId: user.id };\n const token: string = await this.jwtService.signAsync(payload);\n\n return {\n ...user,\n token,\n };\n }\n\n @UseGuards(AuthGuard)\n @Get('self')\n @ApiResponse({\n status: 200,\n description: 'get self successful',\n type: GetUserResponseDto,\n })\n async getSelf(@Request() req): Promise<GetUserResponseDto> {\n try {\n const user: User = await this.userService.findOneByUserId(\n req.user.userId,\n );\n\n return user as GetUserResponseDto;\n } catch (error) {\n handleError(error);\n }\n }\n\n @UseGuards(AuthGuard)\n @Post('update')\n @ApiResponse({\n status: 200,\n description: 'update user successful',\n type: GetUserResponseDto,\n })\n async edit(\n @Body() dto: UpdateUserRequestDto,\n @Request() req,\n ): Promise<GetUserResponseDto> {\n try {\n const cleanDto: UpdateUserRequestDto = {\n phoneNumber: dto.phoneNumber\n ? cleanPhoneNumber(dto.phoneNumber)\n : undefined,\n fullName: dto.fullName\n ? cleanStringAndLowercase(dto.fullName)\n : undefined,\n pushToken: dto.pushToken ? cleanString(dto.pushToken) : undefined,\n tz: dto.tz ? utcOffsetToHours(dto.tz) : undefined,\n };\n\n const user: User = await this.userService.update(\n req.user.userId,\n cleanDto,\n );\n\n if (user.fullName && user.phoneNumber) {\n await this.userService.update(req.user.userId, {\n onboardingStatus: OnboardingStatus.COMPLETED,\n });\n }\n\n return user as GetUserResponseDto;\n } catch (error) {\n handleError(error);\n }\n }\n\n @UseGuards(AuthGuard)\n @Post('pushTest')\n @ApiResponse({\n status: 200,\n description: 'push test successful',\n })\n async pushTest(@Request() req): Promise<void> {\n try {\n const user: User = await this.userService.findOneByUserId(\n req.user.userId,\n );\n\n if (user.pushToken) {\n const messages: ExpoPushMessage[] = this.pushService.createMessages({\n body: 'Test push',\n pushTokens: [user.pushToken],\n });\n await this.pushService.sendMessages(messages);\n }\n } catch (error) {\n handleError(error);\n }\n }\n}\n"]}
1
+ {"version":3,"file":"user.controller.js","sourceRoot":"/","sources":["user/user.controller.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Body,\n Controller,\n Get,\n Post,\n Request,\n UseGuards,\n} from '@nestjs/common';\nimport { JwtService } from '@nestjs/jwt';\nimport { ApiResponse, ApiTags } from '@nestjs/swagger';\nimport { OnboardingStatus, User } from '@prisma/client';\nimport { ExpoPushMessage } from 'expo-server-sdk';\nimport * as stytch from 'stytch';\n\nimport { AuthService } from '../auth/auth.service';\nimport { UserService } from './user.service';\nimport { GetUserResponseDto } from './dtos/get-user.response.dto';\nimport { UpdateUserRequestDto } from './dtos/update-user.request.dto';\nimport { RegisterResponseDto } from './dtos/register.response.dto';\nimport { RegisterRequestDto } from './dtos/register.request.dto';\nimport { PushService } from '../push/push.service';\nimport {\n cleanPhoneNumber,\n cleanString,\n cleanStringAndLowercase,\n handleError,\n utcOffsetToHours,\n} from '../utils';\nimport { AuthGuard } from '../guard';\nimport * as types from '../types';\n\n@ApiTags('User')\n@Controller('user')\nexport class UserController {\n constructor(\n private userService: UserService,\n private authService: AuthService,\n private pushService: PushService,\n private jwtService: JwtService,\n ) {}\n\n @Post('signup')\n @ApiResponse({\n status: 200,\n description: 'loginOrCreate successful',\n type: RegisterResponseDto,\n })\n async signup(@Body() dto: RegisterRequestDto): Promise<RegisterResponseDto> {\n const cleanedDTO: RegisterRequestDto = {\n email: cleanStringAndLowercase(dto.email),\n password: cleanString(dto.password),\n };\n\n const res: stytch.PasswordsCreateResponse =\n await this.authService.signup(cleanedDTO);\n\n if (!res) {\n handleError('Error creating user');\n }\n\n const user: User = await this.userService.create({\n email: cleanedDTO.email,\n externalId: res.user_id,\n });\n\n if (!user) {\n handleError('Error creating user');\n }\n\n const payload = { userId: user.id };\n const token: string = await this.jwtService.signAsync(payload);\n\n return {\n ...user,\n token,\n };\n }\n\n @Post('login')\n @ApiResponse({\n status: 200,\n description: 'loginOrCreate successful',\n type: RegisterResponseDto,\n })\n async login(@Body() dto: RegisterRequestDto): Promise<RegisterResponseDto> {\n const cleanedDTO: RegisterRequestDto = {\n email: cleanStringAndLowercase(dto.email),\n password: dto.password.trim(),\n };\n\n const res: boolean = await this.authService.login(cleanedDTO);\n\n if (!res) {\n handleError('Error logging in');\n }\n\n const user: User = await this.userService.findOneByEmail(cleanedDTO.email);\n\n if (!user) {\n handleError('Error logging in');\n }\n\n const payload = { userId: user.id };\n const token: string = await this.jwtService.signAsync(payload);\n\n return {\n ...user,\n token,\n };\n }\n\n @UseGuards(AuthGuard)\n @Get('self')\n @ApiResponse({\n status: 200,\n description: 'get self successful',\n type: GetUserResponseDto,\n })\n async getSelf(@Request() req: types.reqType): Promise<GetUserResponseDto> {\n try {\n const user: User = await this.userService.findOneByUserId(\n req.user.userId,\n );\n\n return user as GetUserResponseDto;\n } catch (error) {\n handleError(error);\n }\n }\n\n @UseGuards(AuthGuard)\n @Post('update')\n @ApiResponse({\n status: 200,\n description: 'update user successful',\n type: GetUserResponseDto,\n })\n async edit(\n @Body() dto: UpdateUserRequestDto,\n @Request() req: types.reqType,\n ): Promise<GetUserResponseDto> {\n try {\n const cleanDto: UpdateUserRequestDto = {\n phoneNumber: dto.phoneNumber\n ? cleanPhoneNumber(dto.phoneNumber)\n : undefined,\n fullName: dto.fullName\n ? cleanStringAndLowercase(dto.fullName)\n : undefined,\n pushToken: dto.pushToken ? cleanString(dto.pushToken) : undefined,\n tz: dto.tz ? utcOffsetToHours(dto.tz) : undefined,\n };\n\n const user: User = await this.userService.update(\n req.user.userId,\n cleanDto,\n );\n\n if (user.fullName && user.phoneNumber) {\n await this.userService.update(req.user.userId, {\n onboardingStatus: OnboardingStatus.COMPLETED,\n });\n }\n\n return user as GetUserResponseDto;\n } catch (error) {\n handleError(error);\n }\n }\n\n @UseGuards(AuthGuard)\n @Post('pushTest')\n @ApiResponse({\n status: 200,\n description: 'push test successful',\n })\n async pushTest(@Request() req: types.reqType): Promise<void> {\n try {\n const user: User = await this.userService.findOneByUserId(\n req.user.userId,\n );\n\n if (user.pushToken) {\n const messages: ExpoPushMessage[] = this.pushService.createMessages({\n body: 'Test push',\n pushTokens: [user.pushToken],\n });\n await this.pushService.sendMessages(messages);\n }\n } catch (error) {\n handleError(error);\n }\n }\n}\n"]}
@@ -0,0 +1,3 @@
1
+ import { User } from '@prisma/client';
2
+ export declare const getPushTokens: (users: User[]) => string[];
3
+ //# sourceMappingURL=user.util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.util.d.ts","sourceRoot":"/","sources":["user/user.util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAEtC,eAAO,MAAM,aAAa,UAAW,IAAI,EAAE,KAAG,MAAM,EAEnD,CAAC"}
@@ -0,0 +1,4 @@
1
+ export const getPushTokens = (users) => {
2
+ return users.map((user) => user.pushToken);
3
+ };
4
+ //# sourceMappingURL=user.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.util.js","sourceRoot":"/","sources":["user/user.util.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAa,EAAY,EAAE;IACvD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC7C,CAAC,CAAC","sourcesContent":["import { User } from '@prisma/client';\n\nexport const getPushTokens = (users: User[]): string[] => {\n return users.map((user) => user.pushToken);\n};\n"]}
@@ -3,4 +3,5 @@ export * from './error.util';
3
3
  export * from './input.util';
4
4
  export * from './string.util';
5
5
  export * from './noop.util';
6
+ export * from './schema.util';
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"/","sources":["utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"/","sources":["utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC"}
@@ -3,4 +3,5 @@ export * from './error.util';
3
3
  export * from './input.util';
4
4
  export * from './string.util';
5
5
  export * from './noop.util';
6
+ export * from './schema.util';
6
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"/","sources":["utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC","sourcesContent":["export * from './datetime.util';\nexport * from './error.util';\nexport * from './input.util';\nexport * from './string.util';\nexport * from './noop.util';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"/","sources":["utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC","sourcesContent":["export * from './datetime.util';\nexport * from './error.util';\nexport * from './input.util';\nexport * from './string.util';\nexport * from './noop.util';\nexport * from './schema.util';\n"]}
@@ -0,0 +1,11 @@
1
+ import { z } from 'zod';
2
+ export declare const schemaPatterns: {
3
+ email: z.ZodString;
4
+ password: z.ZodString;
5
+ phoneNumber: z.ZodString;
6
+ fullName: z.ZodString;
7
+ pushToken: z.ZodString;
8
+ tz: z.ZodNumber;
9
+ date: z.ZodString;
10
+ };
11
+ //# sourceMappingURL=schema.util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.util.d.ts","sourceRoot":"/","sources":["utils/schema.util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,cAAc;;;;;;;;CAQ1B,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { z } from 'zod';
2
+ export const schemaPatterns = {
3
+ email: z.string().email().max(100).min(1).toLowerCase().trim(),
4
+ password: z.string().min(10).max(100).trim(),
5
+ phoneNumber: z.string().min(7).max(20).trim(),
6
+ fullName: z.string().min(2).max(100).trim(),
7
+ pushToken: z.string().min(1).max(500).trim(),
8
+ tz: z.number().int().min(-10000).max(10000),
9
+ date: z.string().date(),
10
+ };
11
+ //# sourceMappingURL=schema.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.util.js","sourceRoot":"/","sources":["utils/schema.util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE;IAC9D,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;IAC5C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE;IAC7C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;IAC3C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;IAC5C,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;IAC3C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;CACxB,CAAC","sourcesContent":["import { z } from 'zod';\n\nexport const schemaPatterns = {\n email: z.string().email().max(100).min(1).toLowerCase().trim(),\n password: z.string().min(10).max(100).trim(),\n phoneNumber: z.string().min(7).max(20).trim(),\n fullName: z.string().min(2).max(100).trim(),\n pushToken: z.string().min(1).max(500).trim(),\n tz: z.number().int().min(-10000).max(10000),\n date: z.string().date(),\n};\n"]}