@getcommunity/gc-validators 0.0.24 → 0.0.26

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/index.cjs CHANGED
@@ -348,12 +348,18 @@ var IsValidUtmLink = v4__namespace.pipe(
348
348
  return input.includes("utm_");
349
349
  }, InvalidUtmLink)
350
350
  );
351
- var InvalidUtmCampaignKeyName = `Campaign key name may only contain alphanumeric characters, and underscores.`;
352
351
  var IsValidUtmCampaignKeyName = v4__namespace.pipe(
353
- v4__namespace.string(),
354
- v4__namespace.check((input) => {
355
- return /^[a-zA-Z0-9_]*$/.test(input);
356
- }, InvalidUtmCampaignKeyName)
352
+ v4__namespace.string("please provide a value"),
353
+ v4__namespace.trim(),
354
+ v4__namespace.minLength(
355
+ LIMIT_MIN_VALUE,
356
+ `the value is too short, it must be at least ${LIMIT_MIN_VALUE} characters`
357
+ ),
358
+ v4__namespace.maxLength(
359
+ LIMIT_SHORT_STRING_MAX_LENGTH,
360
+ `the value is too long, it must be ${LIMIT_SHORT_STRING_MAX_LENGTH} characters or less`
361
+ ),
362
+ v4__namespace.regex(REGEX_UTM_VALUE, `the value ${ERROR_MESSAGE_REGEX_UTM_VALUE}`)
357
363
  );
358
364
  var IsValidUtmCampaignKeyNameOrUndefined = v4__namespace.optional(
359
365
  IsValidUtmCampaignKeyName
@@ -1025,7 +1031,7 @@ var SUpdateUserAccount = v4__namespace.object({
1025
1031
  documentId: IsValidReferenceDocumentId,
1026
1032
  first_name: IsValidFirstName,
1027
1033
  last_name: IsValidLastName,
1028
- preferred_name: IsValidFullName
1034
+ preferred_name: IsValidPreferredName
1029
1035
  });
1030
1036
  var SUpdateUserAccountFirstName = v4__namespace.object({
1031
1037
  documentId: IsValidReferenceDocumentId,
@@ -1037,7 +1043,7 @@ var SUpdateUserAccountLastName = v4__namespace.object({
1037
1043
  });
1038
1044
  var SUpdateUserAccountPreferredName = v4__namespace.object({
1039
1045
  documentId: IsValidReferenceDocumentId,
1040
- preferred_name: IsValidFullName
1046
+ preferred_name: IsValidPreferredName
1041
1047
  });
1042
1048
  var QueryStrapiSearchUtmTrackingLinks = v4__namespace.object({
1043
1049
  page: v4__namespace.fallback(v4__namespace.optional(v4__namespace.pipe(v4__namespace.number(), v4__namespace.minValue(1)), 1), 1),
@@ -1234,7 +1240,6 @@ exports.InvalidUserPhone = InvalidUserPhone;
1234
1240
  exports.InvalidUserPhoneType = InvalidUserPhoneType;
1235
1241
  exports.InvalidUserTitle = InvalidUserTitle;
1236
1242
  exports.InvalidUserTitleMaxLength = InvalidUserTitleMaxLength;
1237
- exports.InvalidUtmCampaignKeyName = InvalidUtmCampaignKeyName;
1238
1243
  exports.InvalidUtmLink = InvalidUtmLink;
1239
1244
  exports.IsValidBlocked = IsValidBlocked;
1240
1245
  exports.IsValidCaptchaToken = IsValidCaptchaToken;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/constants/limits.constants.ts","../src/constants/pagination.constants.ts","../src/constants/permission.constants.ts","../src/constants/regex.constants.ts","../src/schemas/blog.schemas.ts","../src/validators/validators-client-users.ts","../src/validators/validators-generics.ts","../src/validators/validators-forms.ts","../src/validators/validators-urls.ts","../src/validators/validators-users.ts","../src/validators/validators-utm-params.ts","../src/types/documents/client-project.document.ts","../src/schemas/client-project.schemas.ts","../src/schemas/client.schemas.ts","../src/schemas/generic.schemas.ts","../src/schemas/lead.schemas.ts","../src/schemas/newsletter.schemas.ts","../src/schemas/resume.schemas.ts","../src/schemas/sharpspring.schemas.ts","../src/schemas/trend.schemas.ts","../src/schemas/url-redirect.schemas.ts","../src/schemas/user-auth.schemas.ts","../src/schemas/user.schemas.ts","../src/schemas/user-account.schemas.ts","../src/schemas/utm-tracking-link.schemas.ts","../src/utilities/utilities.ts","../src/utilities/utilities-datetime.ts"],"names":["v","v2","v3","v4","v5","v6","v7","v8","v9","v10","v11","v12","v13","v14","v15","v16","v17","v18","v19","v20","v21","date"],"mappings":"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","file":"index.cjs","sourcesContent":["// Generics\nexport const LIMIT_MIN_VALUE = 1\nexport const LIMIT_MIN_NAME = 2\nexport const LIMIT_MAX_DESCRIPTION = 1024\nexport const LIMIT_SHORT_STRING_MAX_LENGTH = 255\nexport const LIMIT_MEDIUM_STRING_MAX_LENGTH = 500\nexport const LIMIT_LONG_STRING_MAX_LENGTH = 5000\n// Users\nexport const LIMIT_MIN_USERNAME = 3\nexport const LIMIT_MAX_USERNAME = 255\nexport const LIMIT_MIN_EMAIL = 5\nexport const LIMIT_MAX_EMAIL = 255\nexport const LIMIT_MIN_PASSWORD = 8\nexport const LIMIT_MAX_PASSWORD = 255\nexport const LIMIT_MAX_PROVIDER = 255\n// URLs\nexport const LIMIT_MIN_DESTINATION = 10\nexport const LIMIT_MAX_DESTINATION = 2048\nexport const LIMIT_MIN_DOMAIN = 10\nexport const LIMIT_MAX_DOMAIN = 253\nexport const LIMIT_MIN_PATH = 1\nexport const LIMIT_MAX_PATH = 2038\nexport const LIMIT_MIN_QUERY = 1\nexport const LIMIT_MAX_QUERY = 2038\nexport const LIMIT_MIN_FRAGMENT = 1\nexport const LIMIT_MAX_FRAGMENT = 2038\n// UTM Parameters\nexport const LIMIT_MIN_UTM_SOURCE = 1\nexport const LIMIT_MAX_UTM_SOURCE = 2026\nexport const LIMIT_MIN_UTM_MEDIUM = 1\nexport const LIMIT_MAX_UTM_MEDIUM = 2026\nexport const LIMIT_MIN_UTM_CAMPAIGN = 1\nexport const LIMIT_MAX_UTM_CAMPAIGN = 2024\nexport const LIMIT_MIN_UTM_CREATIVE_FORMAT = 1\nexport const LIMIT_MAX_UTM_CREATIVE_FORMAT = 2017\nexport const LIMIT_MIN_UTM_CONTENT = 1\nexport const LIMIT_MAX_UTM_CONTENT = 2025\nexport const LIMIT_MIN_UTM_TERM = 1\nexport const LIMIT_MAX_UTM_TERM = 2028\nexport const LIMIT_MIN_UTM_ID = 1\nexport const LIMIT_MAX_UTM_ID = 2030\n","// Generics\nexport const LIMIT_PAGINATION_DEFAULT_SIZE = 100\nexport const LIMIT_PAGINATION_MAX_SIZE = 10000\n// Entities\nexport const LIMIT_BLOG_POST_PAGINATION_DEFAULT_SIZE = 6\nexport const LIMIT_BLOG_POST_PAGINATION_MAX_SIZE = 20\nexport const LIMIT_CLIENT_PAGINATION_DEFAULT_SIZE = 16\nexport const LIMIT_CLIENT_PAGINATION_MAX_SIZE = 100\nexport const LIMIT_PRODUCT_HIGHLIGHT_PAGINATION_DEFAULT_SIZE = 10\nexport const LIMIT_PRODUCT_HIGHLIGHT_PAGINATION_MAX_SIZE = 100\nexport const LIMIT_PRODUCT_PAGINATION_DEFAULT_SIZE = 10\nexport const LIMIT_PRODUCT_PAGINATION_MAX_SIZE = 100\nexport const LIMIT_REDIRECT_PAGINATION_DEFAULT_SIZE = 1000\nexport const LIMIT_REDIRECT_PAGINATION_MAX_SIZE = 10000\nexport const LIMIT_TEAM_MEMBER_PAGINATION_DEFAULT_SIZE = 10\nexport const LIMIT_TEAM_MEMBER_PAGINATION_MAX_SIZE = 20\nexport const LIMIT_TREND_PAGINATION_DEFAULT_SIZE = 7\nexport const LIMIT_TREND_PAGINATION_MAX_SIZE = 100\nexport const LIMIT_USER_PAGINATION_DEFAULT_SIZE = 10\nexport const LIMIT_USER_PAGINATION_MAX_SIZE = 10\nexport const LIMIT_CATEGORIES_DEFAULT_SIZE = 100\nexport const LIMIT_CATEGORIES_MAX_SIZE = 1000\nexport const LIMIT_TAGS_DEFAULT_SIZE = 100\nexport const LIMIT_TAGS_MAX_SIZE = 1000\nexport const LIMIT_UTM_TRACKING_LINK_PAGINATION_DEFAULT_SIZE = 10\nexport const LIMIT_UTM_TRACKING_LINK_PAGINATION_MAX_SIZE = 1000","//\n/**\n * Example usage of ClientEntityScope type\n * @reference https://youtube.com/shorts/zOseJFD447U?si=xX8DYEHdl9YtN7S4\n *\n * > const validScope: ClientEntityScope = \"tracking-link:import\"; // ✅\n * > const invalidScope: ClientEntityScope = \"website:import\"; // ❌ Type error!\n */\n\nexport const CLIENT_ENTITY_PERMISSIONS = {\n \"client-project\": [\"list\", \"create\", \"read\", \"update\", \"delete\", \"export\", \"import\"],\n \"client-report\": [\"list\", \"create\", \"read\", \"update\", \"delete\", \"export\", \"import\"],\n \"utm-tracking-link\": [\n \"list\",\n \"create\",\n \"read\",\n \"update\",\n \"delete\",\n \"export\",\n \"import\"\n ]\n} as const\n\nexport type ClientEntityKey = keyof typeof CLIENT_ENTITY_PERMISSIONS\n\nexport type ClientEntityActions<K extends ClientEntityKey = ClientEntityKey> =\n (typeof CLIENT_ENTITY_PERMISSIONS)[K][number]\n\ntype EntityActionJoin<K extends string, V extends string> = `${K}:${V}`\n\nexport type ClientEntityScope = {\n [K in ClientEntityKey]: EntityActionJoin<\n K,\n (typeof CLIENT_ENTITY_PERMISSIONS)[K][number]\n >\n}[ClientEntityKey]\n\nexport const CLIENT_ENTITY_KEYS = Object.keys(\n CLIENT_ENTITY_PERMISSIONS\n) as ClientEntityKey[]\n\nexport const CLIENT_ENTITY_SCOPES: ClientEntityScope[] = Object.entries(\n CLIENT_ENTITY_PERMISSIONS\n).flatMap(([entity, actions]) =>\n actions.map((action) => `${entity}:${action}` as ClientEntityScope)\n)\n","export const ERROR_MESSAGE_REGEX_DOMAIN = \"please provide a valid domain name\"\nexport const REGEX_DOMAIN =\n /^(?=.{1,253}$)(?!-)((xn--)?[a-zA-Z0-9]{1,59}(-[a-zA-Z0-9]{1,62})?\\.)+([a-zA-Z]{2,63}|xn--[a-zA-Z0-9]{2,59})$/\n\nexport const ERROR_MESSAGE_REGEX_UTM_VALUE = `can only contain letters, numbers, and the special characters: - _ .`\nexport const REGEX_UTM_VALUE = /^[a-zA-Z0-9._-]+$/\n","import * as v from \"valibot\"\nimport {\n LIMIT_BLOG_POST_PAGINATION_DEFAULT_SIZE,\n LIMIT_BLOG_POST_PAGINATION_MAX_SIZE\n} from \"../constants\"\n\nexport const QueryStrapiSearchBlogPosts = v.object({\n page: v.fallback(v.optional(v.pipe(v.number(), v.minValue(1)), 1), 1),\n size: v.fallback(\n v.optional(\n v.pipe(\n v.number(),\n v.minValue(1),\n v.maxValue(LIMIT_BLOG_POST_PAGINATION_MAX_SIZE)\n ),\n LIMIT_BLOG_POST_PAGINATION_DEFAULT_SIZE\n ),\n LIMIT_BLOG_POST_PAGINATION_DEFAULT_SIZE\n ),\n search: v.optional(v.pipe(v.string(), v.maxLength(255)), \"\"),\n category: v.optional(v.pipe(v.string(), v.maxLength(100)), \"\"),\n tags: v.optional(v.array(v.pipe(v.string(), v.maxLength(100))), []),\n status: v.optional(v.picklist([\"draft\", \"published\"]))\n})\n\nexport type QueryStrapiSearchBlogPosts = v.InferOutput<\n typeof QueryStrapiSearchBlogPosts\n>\n\nexport const QueryStrapiSearchBlogPostsBySlug = v.object({\n slug: v.string(),\n status: v.optional(v.picklist([\"draft\", \"published\"]), \"published\")\n})\n\nexport type QueryStrapiSearchBlogPostsBySlug = v.InferOutput<\n typeof QueryStrapiSearchBlogPostsBySlug\n>\n","import * as v from \"valibot\"\nimport { CLIENT_ENTITY_SCOPES } from \"../constants\"\n\nexport const IsValidGroupUserScopes = v.pipe(\n v.array(\n v.pipe(\n v.string(\"please provide a valid scope\"),\n v.picklist(CLIENT_ENTITY_SCOPES, \"invalid client scope provided\")\n ),\n \"please provide an array of scopes\"\n ),\n v.maxLength(\n CLIENT_ENTITY_SCOPES.length,\n \"you cannot provide more scopes than available\"\n )\n)\n","import * as v from \"valibot\"\nimport {\n LIMIT_LONG_STRING_MAX_LENGTH,\n LIMIT_SHORT_STRING_MAX_LENGTH\n} from \"../constants\"\n\n// reference id for relationships\nexport const IsValidReferenceId = v.number(\"please provide a valid id\")\n\nexport const IsValidReferenceDocumentId = v.pipe(\n v.string(\"please provide a valid document id\"),\n v.trim(),\n v.minLength(1, \"the document id is too short, it must be at least 1 character\"),\n v.maxLength(255, \"the document id is too long, it must be 255 characters or less\")\n)\n\n// dates\nexport const IsValidDateToday = v.pipe(\n v.date(),\n v.minValue(new Date()),\n v.transform((value) => value.toISOString())\n)\n\n// numbers\nexport const IsValidPositiveInteger = v.pipe(\n v.number(\"Please enter a number.\"),\n v.integer(\"Please enter a whole number.\"),\n v.minValue(1, \"Please enter a positive number.\")\n)\n\n// strings\nexport const InvalidShortStringMax = `The string you provided is too long, please abbreviate your string to be ${LIMIT_SHORT_STRING_MAX_LENGTH} characters or less.`\nexport const IsValidShortString = v.pipe(\n v.string(),\n v.trim(),\n v.maxLength(LIMIT_SHORT_STRING_MAX_LENGTH, InvalidShortStringMax)\n)\nexport const IsValidShortStringOrUndefined = v.optional(IsValidShortString)\n\nexport const InvalidLongStringOrUndefined = `The string you provided is too long, please abbreviate your string to be ${LIMIT_LONG_STRING_MAX_LENGTH} characters or less.`\nexport const IsValidLongString = v.pipe(\n v.string(),\n v.trim(),\n v.maxLength(LIMIT_LONG_STRING_MAX_LENGTH, InvalidLongStringOrUndefined)\n)\nexport const IsValidLongStringOrUndefined = v.optional(IsValidLongString)\n\nexport const IsValidStringList = v.pipe(\n v.array(v.string()),\n v.transform((value) => value.join(\",\"))\n)\nexport const IsValidStringListOrUndefined = v.optional(IsValidStringList)\n","import * as v from \"valibot\"\nimport {\n ERROR_MESSAGE_REGEX_UTM_VALUE,\n LIMIT_LONG_STRING_MAX_LENGTH,\n LIMIT_MAX_DESCRIPTION,\n LIMIT_MAX_DESTINATION,\n LIMIT_MEDIUM_STRING_MAX_LENGTH,\n LIMIT_MIN_NAME,\n LIMIT_MIN_VALUE,\n LIMIT_SHORT_STRING_MAX_LENGTH,\n REGEX_UTM_VALUE\n} from \"../constants\"\nimport { InvalidLongStringOrUndefined } from \"./validators-generics\"\n\nexport const InvalidInputRobot = \"It appears you are a robot, please try again.\"\n\n// File Reference\nexport const IsValidFileReferenceId = v.object({\n id: v.number(),\n src: v.optional(v.string())\n})\n\n// names\nexport const InvalidFullName = \"Please enter your name.\"\nexport const InvalidFullNameMaxLength = `Your name is too long for our datanase, please abbreviate your name to be ${LIMIT_MEDIUM_STRING_MAX_LENGTH} characters or less.`\nexport const IsValidFullName = v.pipe(\n v.string(InvalidFullName),\n v.trim(),\n v.minLength(LIMIT_MIN_VALUE, InvalidFullName),\n v.maxLength(LIMIT_MEDIUM_STRING_MAX_LENGTH, InvalidFullNameMaxLength),\n v.includes(\" \", \"Please enter your first and last name.\")\n)\n\nexport const InvalidFirstName = \"Please enter your first name.\"\nexport const InvalidFirstNameMaxLength = `Your first name is too long for our datanase, please abbreviate your first name to be ${LIMIT_SHORT_STRING_MAX_LENGTH} characters or less.`\nexport const IsValidFirstName = v.pipe(\n v.string(InvalidFirstName),\n v.trim(),\n v.minLength(LIMIT_MIN_VALUE, InvalidFirstName),\n v.maxLength(LIMIT_SHORT_STRING_MAX_LENGTH, InvalidFirstNameMaxLength)\n)\n\nexport const InvalidLastName = \"Please enter your last name.\"\nexport const InvalidLastNameMaxLength = `Your last name is too long for our datanase, please abbreviate your last name to be ${LIMIT_SHORT_STRING_MAX_LENGTH} characters or less.`\nexport const IsValidLastName = v.pipe(\n v.string(InvalidLastName),\n v.trim(),\n v.minLength(LIMIT_MIN_VALUE, InvalidLastName),\n v.maxLength(LIMIT_SHORT_STRING_MAX_LENGTH, InvalidLastNameMaxLength)\n)\n\nexport const InvalidPreferredName = \"Please enter your preferred name.\"\nexport const InvalidPreferredNameMaxLength = `Your preferred name is too long for our datanase, please abbreviate your preferred name to be ${LIMIT_SHORT_STRING_MAX_LENGTH} characters or less.`\nexport const IsValidPreferredName = v.pipe(\n v.string(InvalidPreferredName),\n v.trim(),\n v.minLength(LIMIT_MIN_VALUE, InvalidPreferredName),\n v.maxLength(LIMIT_SHORT_STRING_MAX_LENGTH, InvalidPreferredNameMaxLength)\n)\n\nexport const IsValidUserConsent = v.boolean()\n\nexport const InvalidUserPhoneType = \"Please enter your phone number.\"\nexport const InvalidUserPhone = `The phone you provided does not appear to be a valid phone number.`\nexport const IsValidUserPhoneRequired = v.pipe(\n v.string(InvalidUserPhoneType),\n v.trim(),\n v.minLength(7, InvalidUserPhoneType),\n v.maxLength(15, InvalidUserPhone)\n)\nexport const IsValidUserPhone = v.optional(IsValidUserPhoneRequired)\n\nexport const InvalidCompanyName = \"Please enter your company name.\"\nexport const InvalidCompanyNameMaxLength = `The company name you provided is too long for our database, please abbreviate your company name to be ${LIMIT_SHORT_STRING_MAX_LENGTH} characters or less.`\nexport const IsValidCompanyNameRequired = v.pipe(\n v.string(InvalidCompanyName),\n v.trim(),\n v.minLength(LIMIT_MIN_VALUE, InvalidCompanyName),\n v.maxLength(LIMIT_SHORT_STRING_MAX_LENGTH, InvalidCompanyNameMaxLength)\n)\nexport const IsValidCompanyName = v.optional(IsValidCompanyNameRequired)\n\nexport const InvalidUserTitle = \"Please enter your job title or reference.\"\nexport const InvalidUserTitleMaxLength = `The job title you provided is too long for our database, please abbreviate your company name to be ${LIMIT_SHORT_STRING_MAX_LENGTH} characters or less.`\nexport const IsValidUserTitleRequired = v.pipe(\n v.string(InvalidUserTitle),\n v.trim(),\n v.minLength(LIMIT_MIN_VALUE, InvalidUserTitle),\n v.maxLength(LIMIT_SHORT_STRING_MAX_LENGTH, InvalidUserTitleMaxLength)\n)\nexport const IsValidUserTitle = v.optional(IsValidUserTitleRequired)\n\nexport const InvalidUserMessage = \"How can we be of service to your team?\"\nexport const InvalidUserMessageMaxLength = `The message you provided is too long for our database, please abbreviate your message to be ${LIMIT_LONG_STRING_MAX_LENGTH} characters or less.`\nexport const IsValidUserMessage = v.optional(\n v.pipe(\n v.string(InvalidUserMessage),\n v.trim(),\n v.maxLength(LIMIT_LONG_STRING_MAX_LENGTH, InvalidUserMessageMaxLength)\n )\n)\n\nexport const InvalidRefPageMaxLength = `The string you provided is too long for our database, please abbreviate your string to be ${LIMIT_MAX_DESTINATION} characters or less.`\nexport const IsValidRefPage = v.pipe(\n v.string(InvalidInputRobot),\n v.trim(),\n v.maxLength(LIMIT_MAX_DESTINATION, InvalidRefPageMaxLength)\n)\n\nexport const InvalidProductInterestMaxLength = `The product interest provided is too long. It must be ${LIMIT_SHORT_STRING_MAX_LENGTH} characters or less.`\nexport const IsValidProductInterest = v.pipe(\n v.string(InvalidInputRobot),\n v.trim(),\n v.maxLength(LIMIT_SHORT_STRING_MAX_LENGTH, InvalidProductInterestMaxLength)\n)\n\nexport const IsValidCaptchaToken = v.pipe(\n v.string(InvalidInputRobot),\n v.trim(),\n v.maxLength(LIMIT_LONG_STRING_MAX_LENGTH, InvalidLongStringOrUndefined)\n)\n\nexport const InvalidInstrustryName = \"Please enter your industry.\"\nexport const InvalidInstrustryNameMaxLength = `The industry you provided is too long for our database, please abbreviate your industry to be ${LIMIT_SHORT_STRING_MAX_LENGTH} characters or less.`\nexport const IsValidIndustryName = v.optional(\n v.pipe(\n v.string(InvalidInstrustryName),\n v.trim(),\n v.maxLength(LIMIT_SHORT_STRING_MAX_LENGTH, InvalidInstrustryNameMaxLength)\n )\n)\n\nexport const InvalidRangeValueOneToFive = `Please select a value between 1 and 5. (1 = Poor, 3 = Neutral, 5 = Excellent)`\nexport const IsValidRangeValueOneToFive = v.pipe(\n v.string(),\n v.picklist([\"1\", \"2\", \"3\", \"4\", \"5\"], InvalidRangeValueOneToFive)\n)\n\nexport const InvalidClientTermNumber = `Please provide how many months your team has used this product.`\nexport const InvalidClientTermMin = `We're sorry, you must be a client for at least 1 month to provide feedback.`\nexport const IsValidClientTerm = v.pipe(\n v.number(InvalidClientTermNumber),\n v.minValue(1, InvalidClientTermMin)\n)\n\nexport const IsValidUrl = v.pipe(\n v.string(),\n v.trim(),\n v.url(\"Please enter a valid URL.\")\n)\nexport const IsValidUrlOrUndefined = v.optional(IsValidUrl)\n\nexport const IsValidUrlList = (input: string) => {\n if (input === \"\") return true\n const urls = input.split(\",\")\n if (urls.length > 0) {\n const truthy = []\n for (let i = 0; i < urls.length; i++) {\n const result = v.safeParse(IsValidUrl, urls[i])\n truthy.push(result.success)\n }\n return truthy.every((item) => item === true)\n }\n return false\n}\n\nexport const InvalidListOfUrls = \"Please enter a list of URLs separated by commas.\"\nexport const IsValidStringSepListOfUrls = v.pipe(\n v.string(),\n v.trim(),\n v.maxLength(LIMIT_LONG_STRING_MAX_LENGTH, InvalidLongStringOrUndefined),\n v.check(IsValidUrlList, InvalidListOfUrls)\n)\nexport const IsValidStringSepListOfUrlsOrUndefined = v.optional(\n IsValidStringSepListOfUrls\n)\n\nexport const InvalidDestinationUrl = \"Please remove any query parameters from the URL.\"\nexport const IsValidDestinationUrl = v.pipe(\n v.string(),\n v.trim(),\n v.url(\"Please enter a valid URL.\"),\n v.check((input: string) => {\n if (input === \"\") return false\n return input.indexOf(\"?\") === -1\n }, InvalidDestinationUrl)\n)\n\nexport const InvalidUtmLink = \"Please enter a valid URL with UTM parameters.\"\nexport const IsValidUtmLink = v.pipe(\n v.string(),\n v.trim(),\n v.url(\"Please enter a valid URL.\"),\n v.check((input: string) => {\n return input.includes(\"utm_\")\n }, InvalidUtmLink)\n)\n\nexport const InvalidUtmCampaignKeyName = `Campaign key name may only contain alphanumeric characters, and underscores.`\nexport const IsValidUtmCampaignKeyName = v.pipe(\n v.string(),\n v.check((input: string) => {\n return /^[a-zA-Z0-9_]*$/.test(input)\n }, InvalidUtmCampaignKeyName)\n)\nexport const IsValidUtmCampaignKeyNameOrUndefined = v.optional(\n IsValidUtmCampaignKeyName\n)\n\nexport const InvalidCsvFileType = \"Please upload a CSV file.\"\nexport const IsValidCsvFile = v.optional(\n v.pipe(v.blob(), v.mimeType([\"text/csv\"], InvalidCsvFileType))\n)\n\nexport const InvalidResumeFileType = \"Please upload a PDF or Word document.\"\nexport const IsValidResumeFile = v.nullable(\n v.pipe(\n v.file(InvalidResumeFileType),\n v.mimeType([\"application/pdf\"], InvalidResumeFileType)\n )\n)\n\nexport const ValidNumberOfEmployeeOptions = [\n { label: \"0-10\", value: \"0-10\" },\n { label: \"11-20\", value: \"11-20\" },\n { label: \"21-50\", value: \"21-50\" },\n { label: \"51-100\", value: \"51-100\" },\n { label: \"101-500\", value: \"101-500\" },\n { label: \"501+\", value: \"501+\" }\n] as const\n\nexport const IsValidNumberOfEmployees = v.pipe(\n v.string(),\n v.picklist(\n ValidNumberOfEmployeeOptions.map((item) => item.value),\n \"Please select an option that best describes your team size.\"\n )\n)\n\nexport const ValidJobRoleGroup = [\n {\n label: \"Founder / Owner\",\n value: \"founder,owner\"\n },\n {\n label: \"C-suite Executive\",\n value: \"executive\"\n },\n {\n label: \"Vice President\",\n value: \"vice president\"\n },\n {\n label: \"Director\",\n value: \"director\"\n },\n {\n label: \"Manager\",\n value: \"manager\"\n },\n {\n label: \"Solo-prenour\",\n value: \"solo-prenour\"\n },\n {\n label: \"Student\",\n value: \"student\"\n }\n] as const\n\nexport const IsValidUserRole = v.pipe(\n v.string(),\n v.picklist(\n ValidJobRoleGroup.map((item) => item.value),\n \"Please select an option that best describes your role.\"\n )\n)\n\nexport const ValidGcServiceOptions = [\n { label: \"Full Marketing Services\", value: \"Full Marketing Services\" },\n {\n label: \"Graphic Design / Marketing Design\",\n value: \"Graphic Design / Marketing Design\"\n },\n { label: \"Text Message Marketing\", value: \"Text Message Marketing\" },\n { label: \"Email Marketing\", value: \"Email Marketing\" },\n { label: \"Video Production\", value: \"Video Production\" },\n { label: \"Website Production\", value: \"Website Production\" },\n { label: \"Marketing Automation Software\", value: \"Marketing Automation Software\" },\n { label: \"Online Advertising\", value: \"Online Advertising\" },\n { label: \"Influencer Marketing\", value: \"Influencer Marketing\" }\n] as const\n\nexport const ValidGcVideoServiceOptions = [\n { label: \"Storyboarding\", value: \"Storyboarding\" },\n { label: \"Voiceovers\", value: \"Voiceovers\" },\n { label: \"Video Commercials / Interviews\", value: \"Video Commercials / Interviews\" },\n {\n label: \"Short Form Video Editing (social posts/stories)\",\n value: \"Short Form Video Editing (social posts/stories)\"\n },\n { label: \"Product Tours\", value: \"Product Tours\" },\n { label: \"Model Home / Community Tours\", value: \"Model Home / Community Tours\" },\n { label: \"Matterport Interactive Tours\", value: \"Matterport Interactive Tours\" },\n { label: \"3D Flyover Videos\", value: \"3D Flyover Videos\" }\n] as const\n\nexport const ValidGcDesiredContentOptions = [\n { label: \"Blog Posts\", value: \"Blog Posts\" },\n { label: \"Podcasting\", value: \"Podcasting\" },\n { label: \"Live Streams\", value: \"Live Streams\" },\n { label: \"Newsletters\", value: \"Newsletters\" },\n { label: \"Freebies / Toolkits\", value: \"Freebies / Toolkits\" },\n { label: \"Community Updates\", value: \"Community Updates\" }\n] as const\n\nexport const ValidRatingRange5 = [\n { label: \"1\", value: \"1\" },\n { label: \"2\", value: \"2\" },\n { label: \"3\", value: \"3\" },\n { label: \"4\", value: \"4\" },\n { label: \"5\", value: \"5\" }\n] as const\n\n// cost\nexport const IsValidCost = v.pipe(\n v.number(\"please enter a cost value\"),\n v.minValue(0),\n v.maxValue(\n 1000000,\n \"your campaign cost exceeds our $1 million dollar limit, please contact us for customized solutions\"\n )\n)\nexport const IsValidOrUndefinedCost = v.undefinedable(IsValidCost)\n\n// label\nexport const IsValidLabel = v.pipe(\n v.string(\"please provide a label\"),\n v.trim(),\n v.minLength(\n LIMIT_MIN_VALUE,\n `the label is too short, it must be at least ${LIMIT_MIN_VALUE} characters`\n ),\n v.maxLength(\n LIMIT_SHORT_STRING_MAX_LENGTH,\n `the label is too long, it must be ${LIMIT_SHORT_STRING_MAX_LENGTH} characters or less`\n )\n)\nexport const IsValidOrUndefinedLabel = v.undefinedable(IsValidLabel)\n\n// value\nexport const IsValidValue = v.pipe(\n v.string(\"please provide a value\"),\n v.trim(),\n v.minLength(\n LIMIT_MIN_VALUE,\n `the value is too short, it must be at least ${LIMIT_MIN_VALUE} characters`\n ),\n v.maxLength(\n LIMIT_SHORT_STRING_MAX_LENGTH,\n `the value is too long, it must be ${LIMIT_SHORT_STRING_MAX_LENGTH} characters or less`\n ),\n v.regex(REGEX_UTM_VALUE, `the value ${ERROR_MESSAGE_REGEX_UTM_VALUE}`)\n)\nexport const IsValidOrUndefinedValue = v.undefinedable(IsValidValue)\n\n// description (optional)\nexport const IsValidDescription = v.nullable(\n v.pipe(\n v.string(\"the description must be a string\"),\n v.trim(),\n v.maxLength(\n LIMIT_MAX_DESCRIPTION,\n `the description is too long, it must be ${LIMIT_MAX_DESCRIPTION} characters or less`\n )\n )\n)\nexport const IsValidOrUndefinedDescription = v.undefinedable(IsValidDescription)\n\n// is_active\nexport const IsValidIsActive = v.boolean(\"isActive must be a boolean\")\nexport const IsValidOrUndefinedIsActive = v.undefinedable(IsValidIsActive)\n\n// is_secure\nexport const IsValidIsSecure = v.boolean(\"isSecure must be a boolean\")\nexport const IsValidOrUndefinedIsSecure = v.undefinedable(IsValidIsSecure)\n\n// generic name\nexport const IsValidName = v.pipe(\n v.string(\"please provide a name\"),\n v.trim(),\n v.minLength(\n LIMIT_MIN_NAME,\n `the name is too short, it must be at least ${LIMIT_MIN_NAME} characters`\n ),\n v.maxLength(\n LIMIT_SHORT_STRING_MAX_LENGTH,\n `the name is too long, it must be ${LIMIT_SHORT_STRING_MAX_LENGTH} characters or less`\n )\n)\nexport const IsValidOrUndefinedName = v.undefinedable(IsValidName)\n","import * as v from \"valibot\"\nimport {\n ERROR_MESSAGE_REGEX_DOMAIN,\n LIMIT_MAX_DESTINATION,\n LIMIT_MAX_DOMAIN,\n LIMIT_MAX_FRAGMENT,\n LIMIT_MAX_PATH,\n LIMIT_MAX_QUERY,\n LIMIT_MIN_DESTINATION,\n LIMIT_MIN_DOMAIN,\n LIMIT_MIN_FRAGMENT,\n LIMIT_MIN_PATH,\n LIMIT_MIN_QUERY,\n REGEX_DOMAIN\n} from \"../constants\"\n\n// destination\nexport const IsValidUrlDestination = v.pipe(\n v.string(\"please provide a url destination\"),\n v.trim(),\n v.minLength(\n LIMIT_MIN_DESTINATION,\n `the url destination is too short, it must be at least ${LIMIT_MIN_DESTINATION} characters`\n ),\n v.maxLength(\n LIMIT_MAX_DESTINATION,\n `the url destination is too long, it must be ${LIMIT_MAX_DESTINATION} characters or less`\n ),\n v.url(\"please provide a valid url\")\n)\nexport const IsValidOrUndefinedUrlDestination = v.undefinedable(IsValidUrlDestination)\n\n// protocol\nexport const IsValidUrlProtocol = v.picklist(\n [\"http\", \"https\"],\n \"please provide a valid url protocol\"\n)\nexport const IsValidOrUndefinedUrlProtocol = v.undefinedable(IsValidUrlProtocol)\n\n// domain\nexport const IsValidUrlDomain = v.pipe(\n v.string(\"please provide a domain\"),\n v.trim(),\n v.minLength(\n LIMIT_MIN_DOMAIN,\n `the domain is too short, it must be at least ${LIMIT_MIN_DOMAIN} characters`\n ),\n v.maxLength(\n LIMIT_MAX_DOMAIN,\n `the domain is too long, it must be ${LIMIT_MAX_DOMAIN} characters or less`\n ),\n v.regex(REGEX_DOMAIN, ERROR_MESSAGE_REGEX_DOMAIN)\n)\nexport const IsValidOrUndefinedUrlDomain = v.undefinedable(IsValidUrlDomain)\n\n// path\nexport const IsValidUrlPath = v.pipe(\n v.string(\"please provide a url path\"),\n v.trim(),\n v.minLength(\n LIMIT_MIN_PATH,\n `the url path is too short, it must be at least ${LIMIT_MIN_PATH} characters`\n ),\n v.maxLength(\n LIMIT_MAX_PATH,\n `the url path is too long, it must be ${LIMIT_MAX_PATH} characters or less`\n )\n)\nexport const IsValidOrUndefinedUrlPath = v.undefinedable(IsValidUrlPath)\n\n// query\nexport const IsValidUrlQuery = v.pipe(\n v.string(\"please provide a url query\"),\n v.trim(),\n v.minLength(\n LIMIT_MIN_QUERY,\n `the url query is too short, it must be at least ${LIMIT_MIN_QUERY} characters`\n ),\n v.maxLength(\n LIMIT_MAX_QUERY,\n `the url query is too long, it must be ${LIMIT_MAX_QUERY} characters or less`\n )\n)\nexport const IsValidOrUndefinedUrlQuery = v.undefinedable(IsValidUrlQuery)\n\n// fragment\nexport const IsValidUrlFragment = v.pipe(\n v.string(\"please provide a url hash/fragment\"),\n v.trim(),\n v.minLength(\n LIMIT_MIN_FRAGMENT,\n `the url hash/fragment is too short, it must be at least ${LIMIT_MIN_FRAGMENT} characters`\n ),\n v.maxLength(\n LIMIT_MAX_FRAGMENT,\n `the url hash/fragment is too long, it must be ${LIMIT_MAX_FRAGMENT} characters or less`\n )\n)\nexport const IsValidOrUndefinedUrlFragment = v.undefinedable(IsValidUrlFragment)\n","import * as v from \"valibot\"\nimport {\n ERROR_MESSAGE_REGEX_UTM_VALUE,\n LIMIT_MAX_EMAIL,\n LIMIT_MAX_PASSWORD,\n LIMIT_MAX_PROVIDER,\n LIMIT_MAX_USERNAME,\n LIMIT_MIN_EMAIL,\n LIMIT_MIN_PASSWORD,\n LIMIT_MIN_USERNAME,\n REGEX_UTM_VALUE\n} from \"../constants\"\n\nexport const IsValidUsername = v.pipe(\n v.string(\"please provide a username\"),\n v.trim(),\n v.minLength(\n LIMIT_MIN_USERNAME,\n `your username is too short, it must be at least ${LIMIT_MIN_USERNAME} characters`\n ),\n v.maxLength(\n LIMIT_MAX_USERNAME,\n `your username is too long, it must be ${LIMIT_MAX_USERNAME} characters or less`\n ),\n v.regex(REGEX_UTM_VALUE, `your username ${ERROR_MESSAGE_REGEX_UTM_VALUE}`)\n)\nexport const IsValidOrUndefinedUsername = v.undefinedable(IsValidUsername)\n\nexport const IsValidUserEmail = v.pipe(\n v.string(\"please provide an email\"),\n v.trim(),\n v.minLength(\n LIMIT_MIN_EMAIL,\n `your email is too short, it must be at least ${LIMIT_MIN_EMAIL} characters`\n ),\n v.maxLength(\n LIMIT_MAX_EMAIL,\n `your email is too long, it must be ${LIMIT_MAX_EMAIL} characters or less`\n ),\n v.email(\"please provide a valid email address\")\n)\nexport const IsValidOrUndefinedUserEmail = v.undefinedable(IsValidUserEmail)\n\nexport const IsValidPassword = v.pipe(\n v.string(\"a password is required\"),\n v.trim(),\n v.minLength(\n LIMIT_MIN_PASSWORD,\n `your password is too short, it must be at least ${LIMIT_MIN_PASSWORD} characters`\n ),\n v.maxLength(\n LIMIT_MAX_PASSWORD,\n `your password is too long, it must be ${LIMIT_MAX_PASSWORD} characters or less`\n )\n)\nexport const IsValidOrUndefinedPassword = v.undefinedable(IsValidPassword)\n\nexport const IsValidProvider = v.pipe(\n v.string(\"please enter a provider\"),\n v.trim(),\n v.maxLength(\n LIMIT_MAX_PROVIDER,\n `the provider string is too long, it must be ${LIMIT_MAX_PROVIDER} characters or less`\n )\n)\nexport const IsValidOrUndefinedProvider = v.undefinedable(IsValidProvider)\n\nexport const IsValidConfirmed = v.boolean()\nexport const IsValidOrUndefinedConfirmed = v.undefinedable(IsValidConfirmed)\n\nexport const IsValidBlocked = v.boolean()\nexport const IsValidOrUndefinedBlocked = v.undefinedable(IsValidBlocked)\n","import * as v from \"valibot\"\nimport {\n ERROR_MESSAGE_REGEX_UTM_VALUE,\n LIMIT_MAX_UTM_CAMPAIGN,\n LIMIT_MAX_UTM_CONTENT,\n LIMIT_MAX_UTM_CREATIVE_FORMAT,\n LIMIT_MAX_UTM_ID,\n LIMIT_MAX_UTM_MEDIUM,\n LIMIT_MAX_UTM_SOURCE,\n LIMIT_MAX_UTM_TERM,\n LIMIT_MIN_UTM_CAMPAIGN,\n LIMIT_MIN_UTM_CONTENT,\n LIMIT_MIN_UTM_CREATIVE_FORMAT,\n LIMIT_MIN_UTM_ID,\n LIMIT_MIN_UTM_MEDIUM,\n LIMIT_MIN_UTM_SOURCE,\n LIMIT_MIN_UTM_TERM,\n REGEX_UTM_VALUE\n} from \"../constants\"\n\n// utm_source\nexport const IsValidUrlUtmSource = v.pipe(\n v.string(),\n v.trim(),\n v.minLength(\n LIMIT_MIN_UTM_SOURCE,\n `the utm_source is too short, it must be at least ${LIMIT_MIN_UTM_SOURCE} characters`\n ),\n v.maxLength(\n LIMIT_MAX_UTM_SOURCE,\n `the utm_source is too long, it must be ${LIMIT_MAX_UTM_SOURCE} characters or less`\n ),\n v.regex(REGEX_UTM_VALUE, `utm_source ${ERROR_MESSAGE_REGEX_UTM_VALUE}`)\n)\nexport const IsValidOrUndefinedUrlUtmSource = v.undefinedable(IsValidUrlUtmSource)\n\n// utm_medium\nexport const IsValidUrlUtmMedium = v.pipe(\n v.string(),\n v.trim(),\n v.minLength(\n LIMIT_MIN_UTM_MEDIUM,\n `the utm_medium is too short, it must be at least ${LIMIT_MIN_UTM_MEDIUM} characters`\n ),\n v.maxLength(\n LIMIT_MAX_UTM_MEDIUM,\n `the utm_medium is too long, it must be ${LIMIT_MAX_UTM_MEDIUM} characters or less`\n ),\n v.regex(REGEX_UTM_VALUE, `utm_medium ${ERROR_MESSAGE_REGEX_UTM_VALUE}`)\n)\nexport const IsValidOrUndefinedUrlUtmMedium = v.undefinedable(IsValidUrlUtmMedium)\n\n// utm_campaign\nexport const IsValidUrlUtmCampaign = v.pipe(\n v.string(),\n v.trim(),\n v.minLength(\n LIMIT_MIN_UTM_CAMPAIGN,\n `the utm_campaign is too short, it must be at least ${LIMIT_MIN_UTM_CAMPAIGN} characters`\n ),\n v.maxLength(\n LIMIT_MAX_UTM_CAMPAIGN,\n `the utm_campaign is too long, it must be ${LIMIT_MAX_UTM_CAMPAIGN} characters or less`\n ),\n v.regex(REGEX_UTM_VALUE, `utm_campaign ${ERROR_MESSAGE_REGEX_UTM_VALUE}`)\n)\nexport const IsValidOrUndefinedUrlUtmCampaign = v.undefinedable(IsValidUrlUtmCampaign)\n\n// utm_creative_format\nexport const IsValidUrlUtmCreativeFormat = v.pipe(\n v.string(),\n v.trim(),\n v.minLength(\n LIMIT_MIN_UTM_CREATIVE_FORMAT,\n `the utm_creative_format is too short, it must be at least ${LIMIT_MIN_UTM_CREATIVE_FORMAT} characters`\n ),\n v.maxLength(\n LIMIT_MAX_UTM_CREATIVE_FORMAT,\n `the utm_creative_format is too long, it must be ${LIMIT_MAX_UTM_CREATIVE_FORMAT} characters or less`\n ),\n v.regex(REGEX_UTM_VALUE, `utm_creative_format ${ERROR_MESSAGE_REGEX_UTM_VALUE}`)\n)\nexport const IsValidOrUndefinedUrlUtmCreativeFormat = v.undefinedable(\n IsValidUrlUtmCreativeFormat\n)\n\n// utm_content\nexport const IsValidUrlUtmContent = v.pipe(\n v.string(),\n v.trim(),\n v.minLength(\n LIMIT_MIN_UTM_CONTENT,\n `the utm_content is too short, it must be at least ${LIMIT_MIN_UTM_CONTENT} characters`\n ),\n v.maxLength(\n LIMIT_MAX_UTM_CONTENT,\n `the utm_content is too long, it must be ${LIMIT_MAX_UTM_CONTENT} characters or less`\n ),\n v.regex(REGEX_UTM_VALUE, `utm_content ${ERROR_MESSAGE_REGEX_UTM_VALUE}`)\n)\nexport const IsValidOrUndefinedUrlUtmContent = v.undefinedable(IsValidUrlUtmContent)\n\n// utm_term\nexport const IsValidUrlUtmTerm = v.pipe(\n v.string(),\n v.trim(),\n v.minLength(\n LIMIT_MIN_UTM_TERM,\n `the utm_term is too short, it must be at least ${LIMIT_MIN_UTM_TERM} characters`\n ),\n v.maxLength(\n LIMIT_MAX_UTM_TERM,\n `the utm_term is too long, it must be ${LIMIT_MAX_UTM_TERM} characters or less`\n ),\n v.regex(REGEX_UTM_VALUE, `utm_term ${ERROR_MESSAGE_REGEX_UTM_VALUE}`)\n)\nexport const IsValidOrUndefinedUrlUtmTerm = v.undefinedable(IsValidUrlUtmTerm)\n\n// utm_id\nexport const IsValidUrlUtmId = v.pipe(\n v.string(),\n v.trim(),\n v.minLength(\n LIMIT_MIN_UTM_ID,\n `the utm_id is too short, it must be at least ${LIMIT_MIN_UTM_ID} characters`\n ),\n v.maxLength(\n LIMIT_MAX_UTM_ID,\n `the utm_id is too long, it must be ${LIMIT_MAX_UTM_ID} characters or less`\n ),\n v.regex(REGEX_UTM_VALUE, `utm_id ${ERROR_MESSAGE_REGEX_UTM_VALUE}`)\n)\nexport const IsValidOrUndefinedUrlUtmId = v.undefinedable(IsValidUrlUtmId)\n","import type { BaseDocument, MediaUploadDocument } from \"../core\";\nimport type { ClientDocument } from \"./client.document\";\n\nexport const ClientProjectStatusOptions = [\n \"coming-soon\",\n \"now-open\",\n \"for-sale\",\n \"sold-out\",\n \"available\",\n];\nexport type ClientProjectStatus = (typeof ClientProjectStatusOptions)[number];\n\nexport type ClientProjectDocument = {\n title: string;\n slug: string;\n project_status: ClientProjectStatus[];\n clients?: ClientDocument[];\n featured_image?: MediaUploadDocument | null;\n} & BaseDocument;\n","import * as v from \"valibot\";\nimport {\n LIMIT_CLIENT_PAGINATION_DEFAULT_SIZE,\n LIMIT_CLIENT_PAGINATION_MAX_SIZE,\n} from \"../constants\";\nimport { IsValidReferenceDocumentId, IsValidShortString } from \"../validators\";\nimport { ClientProjectStatusOptions } from \"../types\";\n\nexport const QueryStrapiSearchClientProjects = v.object({\n page: v.fallback(v.optional(v.pipe(v.number(), v.minValue(1)), 1), 1),\n size: v.fallback(\n v.optional(\n v.pipe(\n v.number(),\n v.minValue(1),\n v.maxValue(LIMIT_CLIENT_PAGINATION_MAX_SIZE)\n ),\n LIMIT_CLIENT_PAGINATION_DEFAULT_SIZE\n ),\n LIMIT_CLIENT_PAGINATION_DEFAULT_SIZE\n ),\n title: v.optional(IsValidShortString),\n slug: v.optional(IsValidShortString),\n project_status: v.optional(v.picklist(ClientProjectStatusOptions)),\n clientId: v.optional(IsValidReferenceDocumentId),\n});\n\nexport type QueryStrapiSearchClientProjects = v.InferOutput<\n typeof QueryStrapiSearchClientProjects\n>;\n","import * as v from \"valibot\";\nimport {\n LIMIT_CLIENT_PAGINATION_DEFAULT_SIZE,\n LIMIT_CLIENT_PAGINATION_MAX_SIZE,\n} from \"../constants\";\nimport { IsValidShortString } from \"../validators\";\n\nexport const QueryStrapiSearchClients = v.object({\n page: v.fallback(v.optional(v.pipe(v.number(), v.minValue(1)), 1), 1),\n size: v.fallback(\n v.optional(\n v.pipe(\n v.number(),\n v.minValue(1),\n v.maxValue(LIMIT_CLIENT_PAGINATION_MAX_SIZE)\n ),\n LIMIT_CLIENT_PAGINATION_DEFAULT_SIZE\n ),\n LIMIT_CLIENT_PAGINATION_DEFAULT_SIZE\n ),\n title: v.optional(IsValidShortString),\n teamwork_id: v.optional(IsValidShortString),\n teamwork_name: v.optional(IsValidShortString),\n utm_sheet_id: v.optional(IsValidShortString),\n allow_create_utm_link: v.optional(v.boolean()),\n classification: v.optional(v.picklist([\"organic\", \"paid\"])),\n is_featured: v.optional(v.boolean()),\n is_active: v.optional(v.boolean()),\n is_organic_social: v.optional(v.boolean()),\n is_paid_media: v.optional(v.boolean()),\n});\n\nexport type QueryStrapiSearchClients = v.InferOutput<\n typeof QueryStrapiSearchClients\n>;\n","import * as v from \"valibot\"\nimport { LIMIT_PAGINATION_DEFAULT_SIZE, LIMIT_PAGINATION_MAX_SIZE } from \"../constants\"\nimport {\n IsValidReferenceDocumentId,\n IsValidReferenceId,\n IsValidShortString,\n IsValidUserEmail,\n IsValidUserPhoneRequired\n} from \"../validators\"\n\n// Paginated Query\nexport const QueryStrapiPaginated = v.object({\n page: v.fallback(v.optional(v.pipe(v.number(), v.minValue(1)), 1), 1),\n size: v.fallback(\n v.optional(\n v.pipe(v.number(), v.minValue(1), v.maxValue(LIMIT_PAGINATION_MAX_SIZE)),\n LIMIT_PAGINATION_DEFAULT_SIZE\n ),\n LIMIT_PAGINATION_DEFAULT_SIZE\n )\n})\nexport type QueryStrapiPaginated = v.InferOutput<typeof QueryStrapiPaginated>\n\n// Query by: ID, Document ID\nexport const QueryStrapiById = v.object({\n id: IsValidReferenceId\n})\nexport type QueryStrapiById = v.InferOutput<typeof QueryStrapiById>\n\nexport const QueryStrapiByDocumentId = v.object({\n documentId: IsValidReferenceDocumentId\n})\nexport type QueryStrapiByDocumentId = v.InferOutput<typeof QueryStrapiByDocumentId>\n\n// Query by: Slug, Email, Phone, or Name\nexport const QueryStrapiBySlug = v.object({\n slug: IsValidShortString\n})\nexport type QueryStrapiBySlug = v.InferOutput<typeof QueryStrapiBySlug>\n\nexport const QueryStrapiByEmail = v.object({\n email: IsValidUserEmail\n})\nexport type QueryStrapiByEmail = v.InferOutput<typeof QueryStrapiByEmail>\n\nexport const QueryStrapiByPhone = v.object({\n phone: IsValidUserPhoneRequired\n})\nexport type QueryStrapiByPhone = v.InferOutput<typeof QueryStrapiByPhone>\n\nexport const QueryStrapiByName = v.object({\n name: IsValidShortString\n})\nexport type QueryStrapiByName = v.InferOutput<typeof QueryStrapiByName>\n","import * as v from \"valibot\"\nimport {\n IsValidCaptchaToken,\n IsValidCompanyName,\n IsValidFirstName,\n IsValidLastName,\n IsValidProductInterest,\n IsValidRefPage,\n IsValidUserConsent,\n IsValidUserEmail,\n IsValidUserMessage,\n IsValidUserPhoneRequired,\n IsValidUserTitle\n} from \"../validators\"\n\nexport const SCreateLead = v.object({\n first_name: IsValidFirstName,\n last_name: IsValidLastName,\n email: IsValidUserEmail,\n phone: IsValidUserPhoneRequired,\n company: IsValidCompanyName,\n title: IsValidUserTitle,\n message: IsValidUserMessage,\n product_interest: IsValidProductInterest,\n email_consent: IsValidUserConsent,\n sms_consent: IsValidUserConsent,\n on_page: IsValidRefPage,\n captcha: IsValidCaptchaToken\n})\n\nexport type SCreateLead = v.InferOutput<typeof SCreateLead>\n","import * as v from \"valibot\"\nimport {\n IsValidCaptchaToken,\n IsValidFirstName,\n IsValidLastName,\n IsValidRefPage,\n IsValidUserConsent,\n IsValidUserEmail\n} from \"../validators\"\n\nexport const SCreateNewsletterSignup = v.object({\n first_name: IsValidFirstName,\n last_name: IsValidLastName,\n email: IsValidUserEmail,\n // hidden fields\n email_consent: IsValidUserConsent,\n on_page: IsValidRefPage,\n captcha: IsValidCaptchaToken\n})\n\nexport type SCreateNewsletterSignup = v.InferOutput<typeof SCreateNewsletterSignup>\n","import * as v from \"valibot\"\nimport {\n IsValidCaptchaToken,\n IsValidFileReferenceId,\n IsValidFirstName,\n IsValidLastName,\n IsValidRefPage,\n IsValidResumeFile,\n IsValidShortString,\n IsValidStringSepListOfUrlsOrUndefined,\n IsValidUserConsent,\n IsValidUserEmail,\n IsValidUserMessage,\n IsValidUserPhone\n} from \"../validators\"\n\nexport const SCreateResume = v.object({\n first_name: IsValidFirstName,\n last_name: IsValidLastName,\n email: IsValidUserEmail,\n phone: IsValidUserPhone,\n message: IsValidUserMessage,\n social_profiles: IsValidStringSepListOfUrlsOrUndefined,\n file: IsValidResumeFile, // File object\n email_consent: IsValidUserConsent,\n sms_consent: IsValidUserConsent,\n // hidden fields\n on_page: IsValidRefPage,\n captcha: IsValidCaptchaToken\n})\nexport type SCreateResume = v.InferOutput<typeof SCreateResume>\n\nexport const SCreateResumeInfo = v.object({\n first_name: IsValidFirstName,\n last_name: IsValidLastName,\n email: IsValidUserEmail,\n phone: IsValidUserPhone,\n message: IsValidUserMessage,\n social_profiles: IsValidStringSepListOfUrlsOrUndefined,\n file: IsValidFileReferenceId, // File reference ID\n email_consent: IsValidUserConsent,\n sms_consent: IsValidUserConsent,\n // hidden fields\n on_page: IsValidRefPage,\n captcha: IsValidCaptchaToken\n})\nexport type SCreateResumeInfo = v.InferOutput<typeof SCreateResumeInfo>\n\nexport const SUpdateResumeInfo = v.object({\n documentId: IsValidShortString,\n first_name: IsValidFirstName,\n last_name: IsValidLastName,\n email: IsValidUserEmail,\n phone: IsValidUserPhone,\n message: IsValidUserMessage,\n social_profiles: IsValidStringSepListOfUrlsOrUndefined,\n file: IsValidFileReferenceId, // File reference ID\n email_consent: IsValidUserConsent,\n sms_consent: IsValidUserConsent,\n // hidden fields\n on_page: IsValidRefPage,\n captcha: IsValidCaptchaToken\n})\n\nexport type SUpdateResumeInfo = v.InferOutput<typeof SUpdateResumeInfo>\n","import * as v from \"valibot\"\nimport {\n IsValidCaptchaToken,\n IsValidFirstName,\n IsValidLastName,\n IsValidRefPage,\n IsValidShortString,\n IsValidUserConsent,\n IsValidUserEmail\n} from \"../validators\"\n\nexport const SharpSpringSignUpToDownload = v.object({\n first_name: IsValidFirstName,\n last_name: IsValidLastName,\n email: IsValidUserEmail,\n // hidden fields\n download_key: IsValidShortString,\n email_consent: IsValidUserConsent,\n on_page: IsValidRefPage,\n captcha: IsValidCaptchaToken\n})\nexport type SharpSpringSignUpToDownload = v.InferOutput<\n typeof SharpSpringSignUpToDownload\n>\n","import * as v from \"valibot\"\n\nexport const SUpdateTrendsLikes = v.object({\n documentId: v.string(),\n likes: v.number()\n})\n\nexport type SUpdateTrendsLikes = v.InferOutput<typeof SUpdateTrendsLikes>\n","import * as v from \"valibot\"\nimport {\n LIMIT_BLOG_POST_PAGINATION_MAX_SIZE,\n LIMIT_REDIRECT_PAGINATION_DEFAULT_SIZE\n} from \"../constants\"\n\nexport const QueryStrapiPaginatedUrlRedirects = v.object({\n page: v.fallback(v.optional(v.pipe(v.number(), v.minValue(1)), 1), 1),\n size: v.fallback(\n v.optional(\n v.pipe(\n v.number(),\n v.minValue(1),\n v.maxValue(LIMIT_BLOG_POST_PAGINATION_MAX_SIZE)\n ),\n LIMIT_REDIRECT_PAGINATION_DEFAULT_SIZE\n ),\n LIMIT_REDIRECT_PAGINATION_DEFAULT_SIZE\n )\n})\n\nexport type QueryStrapiPaginatedUrlRedirects = v.InferOutput<\n typeof QueryStrapiPaginatedUrlRedirects\n>\n\nexport const QueryStrapiUrlRedirectsByFrom = v.object({\n from: v.string()\n})\n\nexport type QueryStrapiUrlRedirectsByFrom = v.InferOutput<\n typeof QueryStrapiUrlRedirectsByFrom\n>\n","import * as v from \"valibot\"\nimport { IsValidPassword, IsValidUserEmail, IsValidUsername } from \"../validators\"\n\n// JWT\nexport const SUserToken = v.object({\n token: v.string()\n})\nexport type SUserToken = v.InferOutput<typeof SUserToken>\n\n// AUTH LOCAL\n// LOGIN\nexport const SLoginUser = v.object({\n identifier: IsValidUserEmail,\n password: IsValidPassword\n})\nexport type SLoginUser = v.InferOutput<typeof SLoginUser>\n\n// REGISTER\nexport const SRegisterUser = v.object({\n username: IsValidUsername,\n email: IsValidUserEmail,\n password: IsValidPassword\n})\nexport type SRegisterUser = v.InferOutput<typeof SRegisterUser>\n\n// FORGOT PASSWORD\nexport const SForgotUserPassword = v.object({\n email: IsValidUserEmail\n})\nexport type SForgotUserPassword = v.InferOutput<typeof SForgotUserPassword>\n\n// REQUEST CONFIRM EMAIL\nexport const SRequestConfirmEmail = v.object({\n email: IsValidUserEmail\n})\nexport type SRequestConfirmEmail = v.InferOutput<typeof SRequestConfirmEmail>\n\n// RESET PASSWORD\nexport const SResetUserPassword = v.object({\n password: IsValidPassword,\n passwordConfirmation: IsValidPassword,\n code: v.string()\n})\nexport type SResetUserPassword = v.InferOutput<typeof SResetUserPassword>\n\n// CHANGE PASSWORD\nexport const SChangePassword = v.pipe(\n v.object({\n currentPassword: IsValidPassword,\n password: IsValidPassword,\n passwordConfirmation: IsValidPassword\n }),\n v.forward(\n v.partialCheck(\n [[\"password\"], [\"passwordConfirmation\"]],\n (input) => input.password === input.passwordConfirmation,\n \"Your new passwords do not match.\"\n ),\n [\"passwordConfirmation\"]\n )\n)\nexport type SChangePassword = v.InferOutput<typeof SChangePassword>\n\n// AUTH PROVIDER\n// Auth Provider Token\nexport const SAuthRawAccessToken = v.object({\n access_token: v.optional(v.string()),\n expires_in: v.optional(v.number()),\n scope: v.optional(v.string()),\n token_type: v.optional(v.string()),\n id_token: v.optional(v.string())\n})\nexport type SAuthRawAccessToken = v.InferOutput<typeof SAuthRawAccessToken>\n\n// Auth Connect Provider Redirect Search\nexport const SAuthConnectProviderRedirectSearch = v.object({\n id_token: v.string(),\n access_token: v.string(),\n raw: v.optional(SAuthRawAccessToken)\n})\nexport type SAuthConnectProviderRedirectSearch = v.InferOutput<\n typeof SAuthConnectProviderRedirectSearch\n>\n\n// Auth Connect Provider Confirmation\nexport const SAuthConnectProviderConfirmation = v.object({\n provider: v.string(),\n search: SAuthConnectProviderRedirectSearch\n})\nexport type SAuthConnectProviderConfirmation = v.InferOutput<\n typeof SAuthConnectProviderConfirmation\n>\n","import * as v from \"valibot\"\nimport {\n LIMIT_SHORT_STRING_MAX_LENGTH,\n LIMIT_USER_PAGINATION_DEFAULT_SIZE,\n LIMIT_USER_PAGINATION_MAX_SIZE\n} from \"../constants\"\nimport { IsValidReferenceDocumentId, IsValidReferenceId } from \"../validators\"\n\n// LIST\nexport const QueryStrapiUsers = v.object({\n page: v.fallback(v.optional(v.pipe(v.number(), v.minValue(1)), 1), 1),\n size: v.fallback(\n v.optional(\n v.pipe(v.number(), v.minValue(3), v.maxValue(LIMIT_USER_PAGINATION_MAX_SIZE)),\n LIMIT_USER_PAGINATION_DEFAULT_SIZE\n ),\n LIMIT_USER_PAGINATION_DEFAULT_SIZE\n )\n})\nexport type QueryStrapiUsers = v.InferOutput<typeof QueryStrapiUsers>\n\nexport const QueryStrapiUsersByIdentifier = v.object({\n identifier: v.pipe(v.string(), v.maxLength(LIMIT_SHORT_STRING_MAX_LENGTH)),\n page: v.fallback(v.optional(v.pipe(v.number(), v.minValue(1)), 1), 1),\n size: v.fallback(\n v.optional(\n v.pipe(v.number(), v.minValue(3), v.maxValue(LIMIT_USER_PAGINATION_MAX_SIZE)),\n LIMIT_USER_PAGINATION_DEFAULT_SIZE\n ),\n LIMIT_USER_PAGINATION_DEFAULT_SIZE\n )\n})\nexport type QueryStrapiUsersByIdentifier = v.InferOutput<\n typeof QueryStrapiUsersByIdentifier\n>\n\n// READ\nexport const SReadUserById = v.object({\n id: IsValidReferenceId\n})\nexport type SReadUserById = v.InferOutput<typeof SReadUserById>\n\nexport const SReadUserByDocumentId = v.object({\n documentId: IsValidReferenceDocumentId\n})\nexport type SReadUserByDocumentId = v.InferOutput<typeof SReadUserByDocumentId>\n","import * as v from \"valibot\"\nimport { IsValidFirstName, IsValidFullName, IsValidLastName, IsValidReferenceDocumentId, IsValidReferenceId } from \"../validators\"\n\n// READ\nexport const SReadUserAccountById = v.object({\n id: IsValidReferenceId\n})\nexport type SReadUserAccountById = v.InferOutput<typeof SReadUserAccountById>\n\nexport const SReadUserAccountByDocumentId = v.object({\n documentId: IsValidReferenceDocumentId\n})\nexport type SReadUserAccountByDocumentId = v.InferOutput<typeof SReadUserAccountByDocumentId>\n\n// UPDATE\nexport const SUpdateUserAccount = v.object({\n documentId: IsValidReferenceDocumentId,\n first_name: IsValidFirstName,\n last_name: IsValidLastName,\n preferred_name: IsValidFullName,\n})\nexport type SUpdateUserAccount = v.InferOutput<typeof SUpdateUserAccount>\n\nexport const SUpdateUserAccountFirstName = v.object({\n documentId: IsValidReferenceDocumentId,\n first_name: IsValidFirstName,\n})\nexport type SUpdateUserAccountFirstName = v.InferOutput<typeof SUpdateUserAccountFirstName>\n\nexport const SUpdateUserAccountLastName = v.object({\n documentId: IsValidReferenceDocumentId,\n last_name: IsValidLastName,\n})\nexport type SUpdateUserAccountLastName = v.InferOutput<typeof SUpdateUserAccountLastName>\n\nexport const SUpdateUserAccountPreferredName = v.object({\n documentId: IsValidReferenceDocumentId,\n preferred_name: IsValidFullName,\n})\nexport type SUpdateUserAccountPreferredName = v.InferOutput<typeof SUpdateUserAccountPreferredName>\n","import * as v from \"valibot\";\nimport {\n LIMIT_UTM_TRACKING_LINK_PAGINATION_DEFAULT_SIZE,\n LIMIT_UTM_TRACKING_LINK_PAGINATION_MAX_SIZE,\n} from \"../constants\";\nimport {\n IsValidDestinationUrl,\n IsValidIsActive,\n IsValidLongString,\n IsValidLongStringOrUndefined,\n IsValidOrUndefinedUrlUtmContent,\n IsValidOrUndefinedUrlUtmCreativeFormat,\n IsValidOrUndefinedUrlUtmId,\n IsValidReferenceDocumentId,\n IsValidReferenceId,\n IsValidShortString,\n IsValidShortStringOrUndefined,\n IsValidStringListOrUndefined,\n IsValidUrl,\n IsValidUrlUtmCampaign,\n IsValidUrlUtmContent,\n IsValidUrlUtmCreativeFormat,\n IsValidUrlUtmId,\n IsValidUrlUtmMedium,\n IsValidUrlUtmSource,\n IsValidUtmCampaignKeyName,\n IsValidUtmCampaignKeyNameOrUndefined,\n IsValidUtmLink,\n} from \"../validators\";\n\n// LIST\nexport const QueryStrapiSearchUtmTrackingLinks = v.object({\n page: v.fallback(v.optional(v.pipe(v.number(), v.minValue(1)), 1), 1),\n size: v.fallback(\n v.optional(\n v.pipe(\n v.number(),\n v.minValue(1),\n v.maxValue(LIMIT_UTM_TRACKING_LINK_PAGINATION_MAX_SIZE)\n ),\n LIMIT_UTM_TRACKING_LINK_PAGINATION_DEFAULT_SIZE\n ),\n LIMIT_UTM_TRACKING_LINK_PAGINATION_DEFAULT_SIZE\n ),\n url_destination: v.optional(IsValidDestinationUrl),\n utm_medium: v.optional(IsValidUrlUtmMedium),\n utm_source: v.optional(IsValidUrlUtmSource),\n utm_campaign: v.optional(IsValidUrlUtmCampaign),\n utm_content: v.optional(IsValidUrlUtmContent),\n utm_creative_format: v.optional(IsValidUrlUtmCreativeFormat),\n utm_id: v.optional(IsValidUrlUtmId),\n campaign_phase: v.optional(IsValidShortString),\n campaign_product: v.optional(IsValidShortString),\n campaign_targeting: v.optional(IsValidShortString),\n campaign_key: v.optional(IsValidShortString),\n creative_format: v.optional(IsValidShortString),\n creative_format_variants: v.optional(v.array(IsValidShortString)),\n url: v.optional(IsValidUrl),\n is_active: v.optional(v.boolean()),\n notes: v.optional(IsValidShortString),\n});\n\nexport type QueryStrapiSearchUtmTrackingLinks = v.InferOutput<\n typeof QueryStrapiSearchUtmTrackingLinks\n>;\n\n// CREATE\nexport const SCreateUtmTrackingLinkDocument = v.object({\n creator: IsValidReferenceDocumentId,\n client: IsValidReferenceDocumentId,\n url_destination: IsValidDestinationUrl,\n utm_source: IsValidUrlUtmSource,\n utm_medium: IsValidUrlUtmMedium,\n utm_campaign: IsValidUrlUtmCampaign,\n utm_content: IsValidShortStringOrUndefined,\n utm_creative_format: IsValidShortStringOrUndefined,\n utm_id: IsValidShortStringOrUndefined,\n campaign_phase: IsValidShortString,\n campaign_product: IsValidShortStringOrUndefined,\n campaign_targeting: IsValidStringListOrUndefined,\n campaign_key: IsValidUtmCampaignKeyNameOrUndefined,\n creative_format: IsValidShortStringOrUndefined,\n creative_format_variants: IsValidStringListOrUndefined,\n url: IsValidUtmLink,\n is_active: IsValidIsActive,\n notes: IsValidLongStringOrUndefined,\n});\nexport type SCreateUtmTrackingLinkDocumentInput = v.InferInput<\n typeof SCreateUtmTrackingLinkDocument\n>;\nexport type SCreateUtmTrackingLinkDocument = v.InferOutput<\n typeof SCreateUtmTrackingLinkDocument\n>;\n\nexport const SCreateUtmTrackingLinkParts = v.object({\n url_destination: IsValidDestinationUrl,\n utm_source: IsValidUrlUtmSource,\n utm_medium: IsValidUrlUtmMedium,\n utm_campaign: IsValidUrlUtmCampaign,\n utm_content: IsValidShortStringOrUndefined,\n utm_creative_format: IsValidShortStringOrUndefined,\n utm_id: IsValidShortStringOrUndefined,\n campaign_phase: IsValidShortString,\n campaign_product: IsValidShortStringOrUndefined,\n campaign_targeting: IsValidStringListOrUndefined,\n campaign_key: IsValidUtmCampaignKeyNameOrUndefined,\n creative_format: IsValidShortStringOrUndefined,\n creative_format_variants: IsValidStringListOrUndefined,\n url: IsValidUtmLink,\n is_active: IsValidIsActive,\n notes: IsValidLongStringOrUndefined,\n});\nexport type SCreateUtmTrackingLinkParts = v.InferOutput<\n typeof SCreateUtmTrackingLinkParts\n>;\n\nexport const SFormCreateMultipleUtmTrackingLinkDocuments = v.object({\n creator: IsValidReferenceDocumentId,\n client: IsValidReferenceDocumentId,\n links: v.pipe(\n v.array(SCreateUtmTrackingLinkParts),\n v.minLength(1, \"You must provide at least one link to create.\"),\n v.maxLength(100, \"You can create a maximum of 100 links at once.\")\n ),\n});\nexport type SFormCreateMultipleUtmTrackingLinkDocuments = v.InferInput<\n typeof SFormCreateMultipleUtmTrackingLinkDocuments\n>;\n\n// READ\nexport const SReadUtmTrackingLinkDocumentByDocumentId = v.object({\n documentId: IsValidReferenceDocumentId,\n});\nexport type SReadUtmTrackingLinkDocumentByDocumentId = v.InferOutput<\n typeof SReadUtmTrackingLinkDocumentByDocumentId\n>;\n\n// UPDATE\nexport const SUpdateUtmTrackingLinkDocument = v.object({\n creator: v.optional(IsValidReferenceDocumentId),\n client: v.optional(IsValidReferenceDocumentId),\n url_destination: IsValidDestinationUrl,\n utm_source: IsValidUrlUtmSource,\n utm_medium: IsValidUrlUtmMedium,\n utm_campaign: IsValidUrlUtmCampaign,\n utm_content: IsValidShortStringOrUndefined,\n utm_creative_format: IsValidShortStringOrUndefined,\n utm_id: IsValidShortStringOrUndefined,\n campaign_phase: IsValidShortString,\n campaign_product: IsValidShortStringOrUndefined,\n campaign_targeting: IsValidStringListOrUndefined,\n campaign_key: IsValidUtmCampaignKeyNameOrUndefined,\n creative_format: IsValidShortStringOrUndefined,\n creative_format_variants: IsValidStringListOrUndefined,\n url: IsValidUtmLink,\n is_active: IsValidIsActive,\n notes: IsValidLongStringOrUndefined,\n});\nexport type SUpdateUtmTrackingLinkDocument = v.InferOutput<\n typeof SUpdateUtmTrackingLinkDocument\n>;\n\nexport const SUpdateUtmTrackingLinkDocumentRequest = v.object({\n documentId: IsValidReferenceDocumentId,\n data: SUpdateUtmTrackingLinkDocument,\n});\nexport type SUpdateUtmTrackingLinkDocumentRequest = v.InferOutput<\n typeof SUpdateUtmTrackingLinkDocumentRequest\n>;\n\n// DELETE\nexport const SDeleteUtmTrackingLinkDocument = v.object({\n documentId: IsValidReferenceDocumentId,\n});\nexport type SDeleteUtmTrackingLinkDocument = v.InferOutput<\n typeof SDeleteUtmTrackingLinkDocument\n>;\n","import * as v from \"valibot\"\n\ntype ValidateAndCleanSuccess<T> = {\n data: Partial<T>\n error: null\n errors: null\n}\n\ntype ValidateAndCleanFailure = {\n data: null\n error: string | null\n errors: Record<string, string> | null\n}\n\ntype ValidateAndCleanResult<T> = ValidateAndCleanSuccess<T> | ValidateAndCleanFailure\n\nexport function validateAndClean<T>(\n schema: v.BaseSchema<T, Partial<T>, v.BaseIssue<T>>,\n input: unknown\n): ValidateAndCleanResult<T> {\n try {\n const parsed = v.parse(schema, input)\n return { data: parsed, error: null, errors: null }\n } catch (err: unknown) {\n if (err instanceof v.ValiError) {\n const errors: Record<string, string> = {}\n for (const issue of err.issues) {\n const field = issue.path?.[0]?.key || \"unknown\"\n errors[field] = issue.message\n }\n return { data: null, error: null, errors }\n }\n let errorMessage = \"Unknown error\"\n if (err instanceof Error) {\n errorMessage = err.message\n } else {\n errorMessage = String(err)\n }\n return { data: null, error: errorMessage, errors: null }\n }\n}\n\nexport function isValidationSuccess<T>(\n result: ValidateAndCleanResult<T>\n): result is ValidateAndCleanSuccess<T> {\n return result.error === null && result.errors === null\n}\n\nexport function isValidationFailure<T>(\n result: ValidateAndCleanResult<T>\n): result is ValidateAndCleanFailure {\n return result.error !== null || result.errors !== null\n}\n\nexport function omitUndefined<T extends Record<string, any>>(obj: T): Partial<T> {\n const result: Partial<T> = {}\n for (const key in obj) {\n if (obj[key] !== undefined) {\n result[key] = obj[key]\n }\n }\n return result\n}\n","export function dateToday(): Date {\n const date = new Date()\n date.setHours(0, 0, 0, 0)\n return date\n}\n\nexport function datePlusDays(today: Date, days: number = 30): Date {\n const date = new Date(today)\n date.setDate(date.getDate() + days)\n date.setHours(23, 59, 59, 999)\n return date\n}\n"]}
1
+ {"version":3,"sources":["../src/constants/limits.constants.ts","../src/constants/pagination.constants.ts","../src/constants/permission.constants.ts","../src/constants/regex.constants.ts","../src/schemas/blog.schemas.ts","../src/validators/validators-client-users.ts","../src/validators/validators-generics.ts","../src/validators/validators-forms.ts","../src/validators/validators-urls.ts","../src/validators/validators-users.ts","../src/validators/validators-utm-params.ts","../src/types/documents/client-project.document.ts","../src/schemas/client-project.schemas.ts","../src/schemas/client.schemas.ts","../src/schemas/generic.schemas.ts","../src/schemas/lead.schemas.ts","../src/schemas/newsletter.schemas.ts","../src/schemas/resume.schemas.ts","../src/schemas/sharpspring.schemas.ts","../src/schemas/trend.schemas.ts","../src/schemas/url-redirect.schemas.ts","../src/schemas/user-auth.schemas.ts","../src/schemas/user.schemas.ts","../src/schemas/user-account.schemas.ts","../src/schemas/utm-tracking-link.schemas.ts","../src/utilities/utilities.ts","../src/utilities/utilities-datetime.ts"],"names":["v","v2","v3","v4","v5","v6","v7","v8","v9","v10","v11","v12","v13","v14","v15","v16","v17","v18","v19","v20","v21","date"],"mappings":"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","file":"index.cjs","sourcesContent":["// Generics\nexport const LIMIT_MIN_VALUE = 1\nexport const LIMIT_MIN_NAME = 2\nexport const LIMIT_MAX_DESCRIPTION = 1024\nexport const LIMIT_SHORT_STRING_MAX_LENGTH = 255\nexport const LIMIT_MEDIUM_STRING_MAX_LENGTH = 500\nexport const LIMIT_LONG_STRING_MAX_LENGTH = 5000\n// Users\nexport const LIMIT_MIN_USERNAME = 3\nexport const LIMIT_MAX_USERNAME = 255\nexport const LIMIT_MIN_EMAIL = 5\nexport const LIMIT_MAX_EMAIL = 255\nexport const LIMIT_MIN_PASSWORD = 8\nexport const LIMIT_MAX_PASSWORD = 255\nexport const LIMIT_MAX_PROVIDER = 255\n// URLs\nexport const LIMIT_MIN_DESTINATION = 10\nexport const LIMIT_MAX_DESTINATION = 2048\nexport const LIMIT_MIN_DOMAIN = 10\nexport const LIMIT_MAX_DOMAIN = 253\nexport const LIMIT_MIN_PATH = 1\nexport const LIMIT_MAX_PATH = 2038\nexport const LIMIT_MIN_QUERY = 1\nexport const LIMIT_MAX_QUERY = 2038\nexport const LIMIT_MIN_FRAGMENT = 1\nexport const LIMIT_MAX_FRAGMENT = 2038\n// UTM Parameters\nexport const LIMIT_MIN_UTM_SOURCE = 1\nexport const LIMIT_MAX_UTM_SOURCE = 2026\nexport const LIMIT_MIN_UTM_MEDIUM = 1\nexport const LIMIT_MAX_UTM_MEDIUM = 2026\nexport const LIMIT_MIN_UTM_CAMPAIGN = 1\nexport const LIMIT_MAX_UTM_CAMPAIGN = 2024\nexport const LIMIT_MIN_UTM_CREATIVE_FORMAT = 1\nexport const LIMIT_MAX_UTM_CREATIVE_FORMAT = 2017\nexport const LIMIT_MIN_UTM_CONTENT = 1\nexport const LIMIT_MAX_UTM_CONTENT = 2025\nexport const LIMIT_MIN_UTM_TERM = 1\nexport const LIMIT_MAX_UTM_TERM = 2028\nexport const LIMIT_MIN_UTM_ID = 1\nexport const LIMIT_MAX_UTM_ID = 2030\n","// Generics\nexport const LIMIT_PAGINATION_DEFAULT_SIZE = 100\nexport const LIMIT_PAGINATION_MAX_SIZE = 10000\n// Entities\nexport const LIMIT_BLOG_POST_PAGINATION_DEFAULT_SIZE = 6\nexport const LIMIT_BLOG_POST_PAGINATION_MAX_SIZE = 20\nexport const LIMIT_CLIENT_PAGINATION_DEFAULT_SIZE = 16\nexport const LIMIT_CLIENT_PAGINATION_MAX_SIZE = 100\nexport const LIMIT_PRODUCT_HIGHLIGHT_PAGINATION_DEFAULT_SIZE = 10\nexport const LIMIT_PRODUCT_HIGHLIGHT_PAGINATION_MAX_SIZE = 100\nexport const LIMIT_PRODUCT_PAGINATION_DEFAULT_SIZE = 10\nexport const LIMIT_PRODUCT_PAGINATION_MAX_SIZE = 100\nexport const LIMIT_REDIRECT_PAGINATION_DEFAULT_SIZE = 1000\nexport const LIMIT_REDIRECT_PAGINATION_MAX_SIZE = 10000\nexport const LIMIT_TEAM_MEMBER_PAGINATION_DEFAULT_SIZE = 10\nexport const LIMIT_TEAM_MEMBER_PAGINATION_MAX_SIZE = 20\nexport const LIMIT_TREND_PAGINATION_DEFAULT_SIZE = 7\nexport const LIMIT_TREND_PAGINATION_MAX_SIZE = 100\nexport const LIMIT_USER_PAGINATION_DEFAULT_SIZE = 10\nexport const LIMIT_USER_PAGINATION_MAX_SIZE = 10\nexport const LIMIT_CATEGORIES_DEFAULT_SIZE = 100\nexport const LIMIT_CATEGORIES_MAX_SIZE = 1000\nexport const LIMIT_TAGS_DEFAULT_SIZE = 100\nexport const LIMIT_TAGS_MAX_SIZE = 1000\nexport const LIMIT_UTM_TRACKING_LINK_PAGINATION_DEFAULT_SIZE = 10\nexport const LIMIT_UTM_TRACKING_LINK_PAGINATION_MAX_SIZE = 1000","//\n/**\n * Example usage of ClientEntityScope type\n * @reference https://youtube.com/shorts/zOseJFD447U?si=xX8DYEHdl9YtN7S4\n *\n * > const validScope: ClientEntityScope = \"tracking-link:import\"; // ✅\n * > const invalidScope: ClientEntityScope = \"website:import\"; // ❌ Type error!\n */\n\nexport const CLIENT_ENTITY_PERMISSIONS = {\n \"client-project\": [\"list\", \"create\", \"read\", \"update\", \"delete\", \"export\", \"import\"],\n \"client-report\": [\"list\", \"create\", \"read\", \"update\", \"delete\", \"export\", \"import\"],\n \"utm-tracking-link\": [\n \"list\",\n \"create\",\n \"read\",\n \"update\",\n \"delete\",\n \"export\",\n \"import\"\n ]\n} as const\n\nexport type ClientEntityKey = keyof typeof CLIENT_ENTITY_PERMISSIONS\n\nexport type ClientEntityActions<K extends ClientEntityKey = ClientEntityKey> =\n (typeof CLIENT_ENTITY_PERMISSIONS)[K][number]\n\ntype EntityActionJoin<K extends string, V extends string> = `${K}:${V}`\n\nexport type ClientEntityScope = {\n [K in ClientEntityKey]: EntityActionJoin<\n K,\n (typeof CLIENT_ENTITY_PERMISSIONS)[K][number]\n >\n}[ClientEntityKey]\n\nexport const CLIENT_ENTITY_KEYS = Object.keys(\n CLIENT_ENTITY_PERMISSIONS\n) as ClientEntityKey[]\n\nexport const CLIENT_ENTITY_SCOPES: ClientEntityScope[] = Object.entries(\n CLIENT_ENTITY_PERMISSIONS\n).flatMap(([entity, actions]) =>\n actions.map((action) => `${entity}:${action}` as ClientEntityScope)\n)\n","export const ERROR_MESSAGE_REGEX_DOMAIN = \"please provide a valid domain name\"\nexport const REGEX_DOMAIN =\n /^(?=.{1,253}$)(?!-)((xn--)?[a-zA-Z0-9]{1,59}(-[a-zA-Z0-9]{1,62})?\\.)+([a-zA-Z]{2,63}|xn--[a-zA-Z0-9]{2,59})$/\n\nexport const ERROR_MESSAGE_REGEX_UTM_VALUE = `can only contain letters, numbers, and the special characters: - _ .`\nexport const REGEX_UTM_VALUE = /^[a-zA-Z0-9._-]+$/\n","import * as v from \"valibot\"\nimport {\n LIMIT_BLOG_POST_PAGINATION_DEFAULT_SIZE,\n LIMIT_BLOG_POST_PAGINATION_MAX_SIZE\n} from \"../constants\"\n\nexport const QueryStrapiSearchBlogPosts = v.object({\n page: v.fallback(v.optional(v.pipe(v.number(), v.minValue(1)), 1), 1),\n size: v.fallback(\n v.optional(\n v.pipe(\n v.number(),\n v.minValue(1),\n v.maxValue(LIMIT_BLOG_POST_PAGINATION_MAX_SIZE)\n ),\n LIMIT_BLOG_POST_PAGINATION_DEFAULT_SIZE\n ),\n LIMIT_BLOG_POST_PAGINATION_DEFAULT_SIZE\n ),\n search: v.optional(v.pipe(v.string(), v.maxLength(255)), \"\"),\n category: v.optional(v.pipe(v.string(), v.maxLength(100)), \"\"),\n tags: v.optional(v.array(v.pipe(v.string(), v.maxLength(100))), []),\n status: v.optional(v.picklist([\"draft\", \"published\"]))\n})\n\nexport type QueryStrapiSearchBlogPosts = v.InferOutput<\n typeof QueryStrapiSearchBlogPosts\n>\n\nexport const QueryStrapiSearchBlogPostsBySlug = v.object({\n slug: v.string(),\n status: v.optional(v.picklist([\"draft\", \"published\"]), \"published\")\n})\n\nexport type QueryStrapiSearchBlogPostsBySlug = v.InferOutput<\n typeof QueryStrapiSearchBlogPostsBySlug\n>\n","import * as v from \"valibot\"\nimport { CLIENT_ENTITY_SCOPES } from \"../constants\"\n\nexport const IsValidGroupUserScopes = v.pipe(\n v.array(\n v.pipe(\n v.string(\"please provide a valid scope\"),\n v.picklist(CLIENT_ENTITY_SCOPES, \"invalid client scope provided\")\n ),\n \"please provide an array of scopes\"\n ),\n v.maxLength(\n CLIENT_ENTITY_SCOPES.length,\n \"you cannot provide more scopes than available\"\n )\n)\n","import * as v from \"valibot\"\nimport {\n LIMIT_LONG_STRING_MAX_LENGTH,\n LIMIT_SHORT_STRING_MAX_LENGTH\n} from \"../constants\"\n\n// reference id for relationships\nexport const IsValidReferenceId = v.number(\"please provide a valid id\")\n\nexport const IsValidReferenceDocumentId = v.pipe(\n v.string(\"please provide a valid document id\"),\n v.trim(),\n v.minLength(1, \"the document id is too short, it must be at least 1 character\"),\n v.maxLength(255, \"the document id is too long, it must be 255 characters or less\")\n)\n\n// dates\nexport const IsValidDateToday = v.pipe(\n v.date(),\n v.minValue(new Date()),\n v.transform((value) => value.toISOString())\n)\n\n// numbers\nexport const IsValidPositiveInteger = v.pipe(\n v.number(\"Please enter a number.\"),\n v.integer(\"Please enter a whole number.\"),\n v.minValue(1, \"Please enter a positive number.\")\n)\n\n// strings\nexport const InvalidShortStringMax = `The string you provided is too long, please abbreviate your string to be ${LIMIT_SHORT_STRING_MAX_LENGTH} characters or less.`\nexport const IsValidShortString = v.pipe(\n v.string(),\n v.trim(),\n v.maxLength(LIMIT_SHORT_STRING_MAX_LENGTH, InvalidShortStringMax)\n)\nexport const IsValidShortStringOrUndefined = v.optional(IsValidShortString)\n\nexport const InvalidLongStringOrUndefined = `The string you provided is too long, please abbreviate your string to be ${LIMIT_LONG_STRING_MAX_LENGTH} characters or less.`\nexport const IsValidLongString = v.pipe(\n v.string(),\n v.trim(),\n v.maxLength(LIMIT_LONG_STRING_MAX_LENGTH, InvalidLongStringOrUndefined)\n)\nexport const IsValidLongStringOrUndefined = v.optional(IsValidLongString)\n\nexport const IsValidStringList = v.pipe(\n v.array(v.string()),\n v.transform((value) => value.join(\",\"))\n)\nexport const IsValidStringListOrUndefined = v.optional(IsValidStringList)\n","import * as v from \"valibot\"\nimport {\n ERROR_MESSAGE_REGEX_UTM_VALUE,\n LIMIT_LONG_STRING_MAX_LENGTH,\n LIMIT_MAX_DESCRIPTION,\n LIMIT_MAX_DESTINATION,\n LIMIT_MEDIUM_STRING_MAX_LENGTH,\n LIMIT_MIN_NAME,\n LIMIT_MIN_VALUE,\n LIMIT_SHORT_STRING_MAX_LENGTH,\n REGEX_UTM_VALUE\n} from \"../constants\"\nimport { InvalidLongStringOrUndefined } from \"./validators-generics\"\n\nexport const InvalidInputRobot = \"It appears you are a robot, please try again.\"\n\n// File Reference\nexport const IsValidFileReferenceId = v.object({\n id: v.number(),\n src: v.optional(v.string())\n})\n\n// names\nexport const InvalidFullName = \"Please enter your name.\"\nexport const InvalidFullNameMaxLength = `Your name is too long for our datanase, please abbreviate your name to be ${LIMIT_MEDIUM_STRING_MAX_LENGTH} characters or less.`\nexport const IsValidFullName = v.pipe(\n v.string(InvalidFullName),\n v.trim(),\n v.minLength(LIMIT_MIN_VALUE, InvalidFullName),\n v.maxLength(LIMIT_MEDIUM_STRING_MAX_LENGTH, InvalidFullNameMaxLength),\n v.includes(\" \", \"Please enter your first and last name.\")\n)\n\nexport const InvalidFirstName = \"Please enter your first name.\"\nexport const InvalidFirstNameMaxLength = `Your first name is too long for our datanase, please abbreviate your first name to be ${LIMIT_SHORT_STRING_MAX_LENGTH} characters or less.`\nexport const IsValidFirstName = v.pipe(\n v.string(InvalidFirstName),\n v.trim(),\n v.minLength(LIMIT_MIN_VALUE, InvalidFirstName),\n v.maxLength(LIMIT_SHORT_STRING_MAX_LENGTH, InvalidFirstNameMaxLength)\n)\n\nexport const InvalidLastName = \"Please enter your last name.\"\nexport const InvalidLastNameMaxLength = `Your last name is too long for our datanase, please abbreviate your last name to be ${LIMIT_SHORT_STRING_MAX_LENGTH} characters or less.`\nexport const IsValidLastName = v.pipe(\n v.string(InvalidLastName),\n v.trim(),\n v.minLength(LIMIT_MIN_VALUE, InvalidLastName),\n v.maxLength(LIMIT_SHORT_STRING_MAX_LENGTH, InvalidLastNameMaxLength)\n)\n\nexport const InvalidPreferredName = \"Please enter your preferred name.\"\nexport const InvalidPreferredNameMaxLength = `Your preferred name is too long for our datanase, please abbreviate your preferred name to be ${LIMIT_SHORT_STRING_MAX_LENGTH} characters or less.`\nexport const IsValidPreferredName = v.pipe(\n v.string(InvalidPreferredName),\n v.trim(),\n v.minLength(LIMIT_MIN_VALUE, InvalidPreferredName),\n v.maxLength(LIMIT_SHORT_STRING_MAX_LENGTH, InvalidPreferredNameMaxLength)\n)\n\nexport const IsValidUserConsent = v.boolean()\n\nexport const InvalidUserPhoneType = \"Please enter your phone number.\"\nexport const InvalidUserPhone = `The phone you provided does not appear to be a valid phone number.`\nexport const IsValidUserPhoneRequired = v.pipe(\n v.string(InvalidUserPhoneType),\n v.trim(),\n v.minLength(7, InvalidUserPhoneType),\n v.maxLength(15, InvalidUserPhone)\n)\nexport const IsValidUserPhone = v.optional(IsValidUserPhoneRequired)\n\nexport const InvalidCompanyName = \"Please enter your company name.\"\nexport const InvalidCompanyNameMaxLength = `The company name you provided is too long for our database, please abbreviate your company name to be ${LIMIT_SHORT_STRING_MAX_LENGTH} characters or less.`\nexport const IsValidCompanyNameRequired = v.pipe(\n v.string(InvalidCompanyName),\n v.trim(),\n v.minLength(LIMIT_MIN_VALUE, InvalidCompanyName),\n v.maxLength(LIMIT_SHORT_STRING_MAX_LENGTH, InvalidCompanyNameMaxLength)\n)\nexport const IsValidCompanyName = v.optional(IsValidCompanyNameRequired)\n\nexport const InvalidUserTitle = \"Please enter your job title or reference.\"\nexport const InvalidUserTitleMaxLength = `The job title you provided is too long for our database, please abbreviate your company name to be ${LIMIT_SHORT_STRING_MAX_LENGTH} characters or less.`\nexport const IsValidUserTitleRequired = v.pipe(\n v.string(InvalidUserTitle),\n v.trim(),\n v.minLength(LIMIT_MIN_VALUE, InvalidUserTitle),\n v.maxLength(LIMIT_SHORT_STRING_MAX_LENGTH, InvalidUserTitleMaxLength)\n)\nexport const IsValidUserTitle = v.optional(IsValidUserTitleRequired)\n\nexport const InvalidUserMessage = \"How can we be of service to your team?\"\nexport const InvalidUserMessageMaxLength = `The message you provided is too long for our database, please abbreviate your message to be ${LIMIT_LONG_STRING_MAX_LENGTH} characters or less.`\nexport const IsValidUserMessage = v.optional(\n v.pipe(\n v.string(InvalidUserMessage),\n v.trim(),\n v.maxLength(LIMIT_LONG_STRING_MAX_LENGTH, InvalidUserMessageMaxLength)\n )\n)\n\nexport const InvalidRefPageMaxLength = `The string you provided is too long for our database, please abbreviate your string to be ${LIMIT_MAX_DESTINATION} characters or less.`\nexport const IsValidRefPage = v.pipe(\n v.string(InvalidInputRobot),\n v.trim(),\n v.maxLength(LIMIT_MAX_DESTINATION, InvalidRefPageMaxLength)\n)\n\nexport const InvalidProductInterestMaxLength = `The product interest provided is too long. It must be ${LIMIT_SHORT_STRING_MAX_LENGTH} characters or less.`\nexport const IsValidProductInterest = v.pipe(\n v.string(InvalidInputRobot),\n v.trim(),\n v.maxLength(LIMIT_SHORT_STRING_MAX_LENGTH, InvalidProductInterestMaxLength)\n)\n\nexport const IsValidCaptchaToken = v.pipe(\n v.string(InvalidInputRobot),\n v.trim(),\n v.maxLength(LIMIT_LONG_STRING_MAX_LENGTH, InvalidLongStringOrUndefined)\n)\n\nexport const InvalidInstrustryName = \"Please enter your industry.\"\nexport const InvalidInstrustryNameMaxLength = `The industry you provided is too long for our database, please abbreviate your industry to be ${LIMIT_SHORT_STRING_MAX_LENGTH} characters or less.`\nexport const IsValidIndustryName = v.optional(\n v.pipe(\n v.string(InvalidInstrustryName),\n v.trim(),\n v.maxLength(LIMIT_SHORT_STRING_MAX_LENGTH, InvalidInstrustryNameMaxLength)\n )\n)\n\nexport const InvalidRangeValueOneToFive = `Please select a value between 1 and 5. (1 = Poor, 3 = Neutral, 5 = Excellent)`\nexport const IsValidRangeValueOneToFive = v.pipe(\n v.string(),\n v.picklist([\"1\", \"2\", \"3\", \"4\", \"5\"], InvalidRangeValueOneToFive)\n)\n\nexport const InvalidClientTermNumber = `Please provide how many months your team has used this product.`\nexport const InvalidClientTermMin = `We're sorry, you must be a client for at least 1 month to provide feedback.`\nexport const IsValidClientTerm = v.pipe(\n v.number(InvalidClientTermNumber),\n v.minValue(1, InvalidClientTermMin)\n)\n\nexport const IsValidUrl = v.pipe(\n v.string(),\n v.trim(),\n v.url(\"Please enter a valid URL.\")\n)\nexport const IsValidUrlOrUndefined = v.optional(IsValidUrl)\n\nexport const IsValidUrlList = (input: string) => {\n if (input === \"\") return true\n const urls = input.split(\",\")\n if (urls.length > 0) {\n const truthy = []\n for (let i = 0; i < urls.length; i++) {\n const result = v.safeParse(IsValidUrl, urls[i])\n truthy.push(result.success)\n }\n return truthy.every((item) => item === true)\n }\n return false\n}\n\nexport const InvalidListOfUrls = \"Please enter a list of URLs separated by commas.\"\nexport const IsValidStringSepListOfUrls = v.pipe(\n v.string(),\n v.trim(),\n v.maxLength(LIMIT_LONG_STRING_MAX_LENGTH, InvalidLongStringOrUndefined),\n v.check(IsValidUrlList, InvalidListOfUrls)\n)\nexport const IsValidStringSepListOfUrlsOrUndefined = v.optional(\n IsValidStringSepListOfUrls\n)\n\nexport const InvalidDestinationUrl = \"Please remove any query parameters from the URL.\"\nexport const IsValidDestinationUrl = v.pipe(\n v.string(),\n v.trim(),\n v.url(\"Please enter a valid URL.\"),\n v.check((input: string) => {\n if (input === \"\") return false\n return input.indexOf(\"?\") === -1\n }, InvalidDestinationUrl)\n)\n\nexport const InvalidUtmLink = \"Please enter a valid URL with UTM parameters.\"\nexport const IsValidUtmLink = v.pipe(\n v.string(),\n v.trim(),\n v.url(\"Please enter a valid URL.\"),\n v.check((input: string) => {\n return input.includes(\"utm_\")\n }, InvalidUtmLink)\n)\n\nexport const IsValidUtmCampaignKeyName = v.pipe(\n v.string(\"please provide a value\"),\n v.trim(),\n v.minLength(\n LIMIT_MIN_VALUE,\n `the value is too short, it must be at least ${LIMIT_MIN_VALUE} characters`\n ),\n v.maxLength(\n LIMIT_SHORT_STRING_MAX_LENGTH,\n `the value is too long, it must be ${LIMIT_SHORT_STRING_MAX_LENGTH} characters or less`\n ),\n v.regex(REGEX_UTM_VALUE, `the value ${ERROR_MESSAGE_REGEX_UTM_VALUE}`),\n)\nexport const IsValidUtmCampaignKeyNameOrUndefined = v.optional(\n IsValidUtmCampaignKeyName\n)\n\nexport const InvalidCsvFileType = \"Please upload a CSV file.\"\nexport const IsValidCsvFile = v.optional(\n v.pipe(v.blob(), v.mimeType([\"text/csv\"], InvalidCsvFileType))\n)\n\nexport const InvalidResumeFileType = \"Please upload a PDF or Word document.\"\nexport const IsValidResumeFile = v.nullable(\n v.pipe(\n v.file(InvalidResumeFileType),\n v.mimeType([\"application/pdf\"], InvalidResumeFileType)\n )\n)\n\nexport const ValidNumberOfEmployeeOptions = [\n { label: \"0-10\", value: \"0-10\" },\n { label: \"11-20\", value: \"11-20\" },\n { label: \"21-50\", value: \"21-50\" },\n { label: \"51-100\", value: \"51-100\" },\n { label: \"101-500\", value: \"101-500\" },\n { label: \"501+\", value: \"501+\" }\n] as const\n\nexport const IsValidNumberOfEmployees = v.pipe(\n v.string(),\n v.picklist(\n ValidNumberOfEmployeeOptions.map((item) => item.value),\n \"Please select an option that best describes your team size.\"\n )\n)\n\nexport const ValidJobRoleGroup = [\n {\n label: \"Founder / Owner\",\n value: \"founder,owner\"\n },\n {\n label: \"C-suite Executive\",\n value: \"executive\"\n },\n {\n label: \"Vice President\",\n value: \"vice president\"\n },\n {\n label: \"Director\",\n value: \"director\"\n },\n {\n label: \"Manager\",\n value: \"manager\"\n },\n {\n label: \"Solo-prenour\",\n value: \"solo-prenour\"\n },\n {\n label: \"Student\",\n value: \"student\"\n }\n] as const\n\nexport const IsValidUserRole = v.pipe(\n v.string(),\n v.picklist(\n ValidJobRoleGroup.map((item) => item.value),\n \"Please select an option that best describes your role.\"\n )\n)\n\nexport const ValidGcServiceOptions = [\n { label: \"Full Marketing Services\", value: \"Full Marketing Services\" },\n {\n label: \"Graphic Design / Marketing Design\",\n value: \"Graphic Design / Marketing Design\"\n },\n { label: \"Text Message Marketing\", value: \"Text Message Marketing\" },\n { label: \"Email Marketing\", value: \"Email Marketing\" },\n { label: \"Video Production\", value: \"Video Production\" },\n { label: \"Website Production\", value: \"Website Production\" },\n { label: \"Marketing Automation Software\", value: \"Marketing Automation Software\" },\n { label: \"Online Advertising\", value: \"Online Advertising\" },\n { label: \"Influencer Marketing\", value: \"Influencer Marketing\" }\n] as const\n\nexport const ValidGcVideoServiceOptions = [\n { label: \"Storyboarding\", value: \"Storyboarding\" },\n { label: \"Voiceovers\", value: \"Voiceovers\" },\n { label: \"Video Commercials / Interviews\", value: \"Video Commercials / Interviews\" },\n {\n label: \"Short Form Video Editing (social posts/stories)\",\n value: \"Short Form Video Editing (social posts/stories)\"\n },\n { label: \"Product Tours\", value: \"Product Tours\" },\n { label: \"Model Home / Community Tours\", value: \"Model Home / Community Tours\" },\n { label: \"Matterport Interactive Tours\", value: \"Matterport Interactive Tours\" },\n { label: \"3D Flyover Videos\", value: \"3D Flyover Videos\" }\n] as const\n\nexport const ValidGcDesiredContentOptions = [\n { label: \"Blog Posts\", value: \"Blog Posts\" },\n { label: \"Podcasting\", value: \"Podcasting\" },\n { label: \"Live Streams\", value: \"Live Streams\" },\n { label: \"Newsletters\", value: \"Newsletters\" },\n { label: \"Freebies / Toolkits\", value: \"Freebies / Toolkits\" },\n { label: \"Community Updates\", value: \"Community Updates\" }\n] as const\n\nexport const ValidRatingRange5 = [\n { label: \"1\", value: \"1\" },\n { label: \"2\", value: \"2\" },\n { label: \"3\", value: \"3\" },\n { label: \"4\", value: \"4\" },\n { label: \"5\", value: \"5\" }\n] as const\n\n// cost\nexport const IsValidCost = v.pipe(\n v.number(\"please enter a cost value\"),\n v.minValue(0),\n v.maxValue(\n 1000000,\n \"your campaign cost exceeds our $1 million dollar limit, please contact us for customized solutions\"\n )\n)\nexport const IsValidOrUndefinedCost = v.undefinedable(IsValidCost)\n\n// label\nexport const IsValidLabel = v.pipe(\n v.string(\"please provide a label\"),\n v.trim(),\n v.minLength(\n LIMIT_MIN_VALUE,\n `the label is too short, it must be at least ${LIMIT_MIN_VALUE} characters`\n ),\n v.maxLength(\n LIMIT_SHORT_STRING_MAX_LENGTH,\n `the label is too long, it must be ${LIMIT_SHORT_STRING_MAX_LENGTH} characters or less`\n )\n)\nexport const IsValidOrUndefinedLabel = v.undefinedable(IsValidLabel)\n\n// value\nexport const IsValidValue = v.pipe(\n v.string(\"please provide a value\"),\n v.trim(),\n v.minLength(\n LIMIT_MIN_VALUE,\n `the value is too short, it must be at least ${LIMIT_MIN_VALUE} characters`\n ),\n v.maxLength(\n LIMIT_SHORT_STRING_MAX_LENGTH,\n `the value is too long, it must be ${LIMIT_SHORT_STRING_MAX_LENGTH} characters or less`\n ),\n v.regex(REGEX_UTM_VALUE, `the value ${ERROR_MESSAGE_REGEX_UTM_VALUE}`)\n)\nexport const IsValidOrUndefinedValue = v.undefinedable(IsValidValue)\n\n// description (optional)\nexport const IsValidDescription = v.nullable(\n v.pipe(\n v.string(\"the description must be a string\"),\n v.trim(),\n v.maxLength(\n LIMIT_MAX_DESCRIPTION,\n `the description is too long, it must be ${LIMIT_MAX_DESCRIPTION} characters or less`\n )\n )\n)\nexport const IsValidOrUndefinedDescription = v.undefinedable(IsValidDescription)\n\n// is_active\nexport const IsValidIsActive = v.boolean(\"isActive must be a boolean\")\nexport const IsValidOrUndefinedIsActive = v.undefinedable(IsValidIsActive)\n\n// is_secure\nexport const IsValidIsSecure = v.boolean(\"isSecure must be a boolean\")\nexport const IsValidOrUndefinedIsSecure = v.undefinedable(IsValidIsSecure)\n\n// generic name\nexport const IsValidName = v.pipe(\n v.string(\"please provide a name\"),\n v.trim(),\n v.minLength(\n LIMIT_MIN_NAME,\n `the name is too short, it must be at least ${LIMIT_MIN_NAME} characters`\n ),\n v.maxLength(\n LIMIT_SHORT_STRING_MAX_LENGTH,\n `the name is too long, it must be ${LIMIT_SHORT_STRING_MAX_LENGTH} characters or less`\n )\n)\nexport const IsValidOrUndefinedName = v.undefinedable(IsValidName)\n","import * as v from \"valibot\"\nimport {\n ERROR_MESSAGE_REGEX_DOMAIN,\n LIMIT_MAX_DESTINATION,\n LIMIT_MAX_DOMAIN,\n LIMIT_MAX_FRAGMENT,\n LIMIT_MAX_PATH,\n LIMIT_MAX_QUERY,\n LIMIT_MIN_DESTINATION,\n LIMIT_MIN_DOMAIN,\n LIMIT_MIN_FRAGMENT,\n LIMIT_MIN_PATH,\n LIMIT_MIN_QUERY,\n REGEX_DOMAIN\n} from \"../constants\"\n\n// destination\nexport const IsValidUrlDestination = v.pipe(\n v.string(\"please provide a url destination\"),\n v.trim(),\n v.minLength(\n LIMIT_MIN_DESTINATION,\n `the url destination is too short, it must be at least ${LIMIT_MIN_DESTINATION} characters`\n ),\n v.maxLength(\n LIMIT_MAX_DESTINATION,\n `the url destination is too long, it must be ${LIMIT_MAX_DESTINATION} characters or less`\n ),\n v.url(\"please provide a valid url\")\n)\nexport const IsValidOrUndefinedUrlDestination = v.undefinedable(IsValidUrlDestination)\n\n// protocol\nexport const IsValidUrlProtocol = v.picklist(\n [\"http\", \"https\"],\n \"please provide a valid url protocol\"\n)\nexport const IsValidOrUndefinedUrlProtocol = v.undefinedable(IsValidUrlProtocol)\n\n// domain\nexport const IsValidUrlDomain = v.pipe(\n v.string(\"please provide a domain\"),\n v.trim(),\n v.minLength(\n LIMIT_MIN_DOMAIN,\n `the domain is too short, it must be at least ${LIMIT_MIN_DOMAIN} characters`\n ),\n v.maxLength(\n LIMIT_MAX_DOMAIN,\n `the domain is too long, it must be ${LIMIT_MAX_DOMAIN} characters or less`\n ),\n v.regex(REGEX_DOMAIN, ERROR_MESSAGE_REGEX_DOMAIN)\n)\nexport const IsValidOrUndefinedUrlDomain = v.undefinedable(IsValidUrlDomain)\n\n// path\nexport const IsValidUrlPath = v.pipe(\n v.string(\"please provide a url path\"),\n v.trim(),\n v.minLength(\n LIMIT_MIN_PATH,\n `the url path is too short, it must be at least ${LIMIT_MIN_PATH} characters`\n ),\n v.maxLength(\n LIMIT_MAX_PATH,\n `the url path is too long, it must be ${LIMIT_MAX_PATH} characters or less`\n )\n)\nexport const IsValidOrUndefinedUrlPath = v.undefinedable(IsValidUrlPath)\n\n// query\nexport const IsValidUrlQuery = v.pipe(\n v.string(\"please provide a url query\"),\n v.trim(),\n v.minLength(\n LIMIT_MIN_QUERY,\n `the url query is too short, it must be at least ${LIMIT_MIN_QUERY} characters`\n ),\n v.maxLength(\n LIMIT_MAX_QUERY,\n `the url query is too long, it must be ${LIMIT_MAX_QUERY} characters or less`\n )\n)\nexport const IsValidOrUndefinedUrlQuery = v.undefinedable(IsValidUrlQuery)\n\n// fragment\nexport const IsValidUrlFragment = v.pipe(\n v.string(\"please provide a url hash/fragment\"),\n v.trim(),\n v.minLength(\n LIMIT_MIN_FRAGMENT,\n `the url hash/fragment is too short, it must be at least ${LIMIT_MIN_FRAGMENT} characters`\n ),\n v.maxLength(\n LIMIT_MAX_FRAGMENT,\n `the url hash/fragment is too long, it must be ${LIMIT_MAX_FRAGMENT} characters or less`\n )\n)\nexport const IsValidOrUndefinedUrlFragment = v.undefinedable(IsValidUrlFragment)\n","import * as v from \"valibot\"\nimport {\n ERROR_MESSAGE_REGEX_UTM_VALUE,\n LIMIT_MAX_EMAIL,\n LIMIT_MAX_PASSWORD,\n LIMIT_MAX_PROVIDER,\n LIMIT_MAX_USERNAME,\n LIMIT_MIN_EMAIL,\n LIMIT_MIN_PASSWORD,\n LIMIT_MIN_USERNAME,\n REGEX_UTM_VALUE\n} from \"../constants\"\n\nexport const IsValidUsername = v.pipe(\n v.string(\"please provide a username\"),\n v.trim(),\n v.minLength(\n LIMIT_MIN_USERNAME,\n `your username is too short, it must be at least ${LIMIT_MIN_USERNAME} characters`\n ),\n v.maxLength(\n LIMIT_MAX_USERNAME,\n `your username is too long, it must be ${LIMIT_MAX_USERNAME} characters or less`\n ),\n v.regex(REGEX_UTM_VALUE, `your username ${ERROR_MESSAGE_REGEX_UTM_VALUE}`)\n)\nexport const IsValidOrUndefinedUsername = v.undefinedable(IsValidUsername)\n\nexport const IsValidUserEmail = v.pipe(\n v.string(\"please provide an email\"),\n v.trim(),\n v.minLength(\n LIMIT_MIN_EMAIL,\n `your email is too short, it must be at least ${LIMIT_MIN_EMAIL} characters`\n ),\n v.maxLength(\n LIMIT_MAX_EMAIL,\n `your email is too long, it must be ${LIMIT_MAX_EMAIL} characters or less`\n ),\n v.email(\"please provide a valid email address\")\n)\nexport const IsValidOrUndefinedUserEmail = v.undefinedable(IsValidUserEmail)\n\nexport const IsValidPassword = v.pipe(\n v.string(\"a password is required\"),\n v.trim(),\n v.minLength(\n LIMIT_MIN_PASSWORD,\n `your password is too short, it must be at least ${LIMIT_MIN_PASSWORD} characters`\n ),\n v.maxLength(\n LIMIT_MAX_PASSWORD,\n `your password is too long, it must be ${LIMIT_MAX_PASSWORD} characters or less`\n )\n)\nexport const IsValidOrUndefinedPassword = v.undefinedable(IsValidPassword)\n\nexport const IsValidProvider = v.pipe(\n v.string(\"please enter a provider\"),\n v.trim(),\n v.maxLength(\n LIMIT_MAX_PROVIDER,\n `the provider string is too long, it must be ${LIMIT_MAX_PROVIDER} characters or less`\n )\n)\nexport const IsValidOrUndefinedProvider = v.undefinedable(IsValidProvider)\n\nexport const IsValidConfirmed = v.boolean()\nexport const IsValidOrUndefinedConfirmed = v.undefinedable(IsValidConfirmed)\n\nexport const IsValidBlocked = v.boolean()\nexport const IsValidOrUndefinedBlocked = v.undefinedable(IsValidBlocked)\n","import * as v from \"valibot\"\nimport {\n ERROR_MESSAGE_REGEX_UTM_VALUE,\n LIMIT_MAX_UTM_CAMPAIGN,\n LIMIT_MAX_UTM_CONTENT,\n LIMIT_MAX_UTM_CREATIVE_FORMAT,\n LIMIT_MAX_UTM_ID,\n LIMIT_MAX_UTM_MEDIUM,\n LIMIT_MAX_UTM_SOURCE,\n LIMIT_MAX_UTM_TERM,\n LIMIT_MIN_UTM_CAMPAIGN,\n LIMIT_MIN_UTM_CONTENT,\n LIMIT_MIN_UTM_CREATIVE_FORMAT,\n LIMIT_MIN_UTM_ID,\n LIMIT_MIN_UTM_MEDIUM,\n LIMIT_MIN_UTM_SOURCE,\n LIMIT_MIN_UTM_TERM,\n REGEX_UTM_VALUE\n} from \"../constants\"\n\n// utm_source\nexport const IsValidUrlUtmSource = v.pipe(\n v.string(),\n v.trim(),\n v.minLength(\n LIMIT_MIN_UTM_SOURCE,\n `the utm_source is too short, it must be at least ${LIMIT_MIN_UTM_SOURCE} characters`\n ),\n v.maxLength(\n LIMIT_MAX_UTM_SOURCE,\n `the utm_source is too long, it must be ${LIMIT_MAX_UTM_SOURCE} characters or less`\n ),\n v.regex(REGEX_UTM_VALUE, `utm_source ${ERROR_MESSAGE_REGEX_UTM_VALUE}`)\n)\nexport const IsValidOrUndefinedUrlUtmSource = v.undefinedable(IsValidUrlUtmSource)\n\n// utm_medium\nexport const IsValidUrlUtmMedium = v.pipe(\n v.string(),\n v.trim(),\n v.minLength(\n LIMIT_MIN_UTM_MEDIUM,\n `the utm_medium is too short, it must be at least ${LIMIT_MIN_UTM_MEDIUM} characters`\n ),\n v.maxLength(\n LIMIT_MAX_UTM_MEDIUM,\n `the utm_medium is too long, it must be ${LIMIT_MAX_UTM_MEDIUM} characters or less`\n ),\n v.regex(REGEX_UTM_VALUE, `utm_medium ${ERROR_MESSAGE_REGEX_UTM_VALUE}`)\n)\nexport const IsValidOrUndefinedUrlUtmMedium = v.undefinedable(IsValidUrlUtmMedium)\n\n// utm_campaign\nexport const IsValidUrlUtmCampaign = v.pipe(\n v.string(),\n v.trim(),\n v.minLength(\n LIMIT_MIN_UTM_CAMPAIGN,\n `the utm_campaign is too short, it must be at least ${LIMIT_MIN_UTM_CAMPAIGN} characters`\n ),\n v.maxLength(\n LIMIT_MAX_UTM_CAMPAIGN,\n `the utm_campaign is too long, it must be ${LIMIT_MAX_UTM_CAMPAIGN} characters or less`\n ),\n v.regex(REGEX_UTM_VALUE, `utm_campaign ${ERROR_MESSAGE_REGEX_UTM_VALUE}`)\n)\nexport const IsValidOrUndefinedUrlUtmCampaign = v.undefinedable(IsValidUrlUtmCampaign)\n\n// utm_creative_format\nexport const IsValidUrlUtmCreativeFormat = v.pipe(\n v.string(),\n v.trim(),\n v.minLength(\n LIMIT_MIN_UTM_CREATIVE_FORMAT,\n `the utm_creative_format is too short, it must be at least ${LIMIT_MIN_UTM_CREATIVE_FORMAT} characters`\n ),\n v.maxLength(\n LIMIT_MAX_UTM_CREATIVE_FORMAT,\n `the utm_creative_format is too long, it must be ${LIMIT_MAX_UTM_CREATIVE_FORMAT} characters or less`\n ),\n v.regex(REGEX_UTM_VALUE, `utm_creative_format ${ERROR_MESSAGE_REGEX_UTM_VALUE}`)\n)\nexport const IsValidOrUndefinedUrlUtmCreativeFormat = v.undefinedable(\n IsValidUrlUtmCreativeFormat\n)\n\n// utm_content\nexport const IsValidUrlUtmContent = v.pipe(\n v.string(),\n v.trim(),\n v.minLength(\n LIMIT_MIN_UTM_CONTENT,\n `the utm_content is too short, it must be at least ${LIMIT_MIN_UTM_CONTENT} characters`\n ),\n v.maxLength(\n LIMIT_MAX_UTM_CONTENT,\n `the utm_content is too long, it must be ${LIMIT_MAX_UTM_CONTENT} characters or less`\n ),\n v.regex(REGEX_UTM_VALUE, `utm_content ${ERROR_MESSAGE_REGEX_UTM_VALUE}`)\n)\nexport const IsValidOrUndefinedUrlUtmContent = v.undefinedable(IsValidUrlUtmContent)\n\n// utm_term\nexport const IsValidUrlUtmTerm = v.pipe(\n v.string(),\n v.trim(),\n v.minLength(\n LIMIT_MIN_UTM_TERM,\n `the utm_term is too short, it must be at least ${LIMIT_MIN_UTM_TERM} characters`\n ),\n v.maxLength(\n LIMIT_MAX_UTM_TERM,\n `the utm_term is too long, it must be ${LIMIT_MAX_UTM_TERM} characters or less`\n ),\n v.regex(REGEX_UTM_VALUE, `utm_term ${ERROR_MESSAGE_REGEX_UTM_VALUE}`)\n)\nexport const IsValidOrUndefinedUrlUtmTerm = v.undefinedable(IsValidUrlUtmTerm)\n\n// utm_id\nexport const IsValidUrlUtmId = v.pipe(\n v.string(),\n v.trim(),\n v.minLength(\n LIMIT_MIN_UTM_ID,\n `the utm_id is too short, it must be at least ${LIMIT_MIN_UTM_ID} characters`\n ),\n v.maxLength(\n LIMIT_MAX_UTM_ID,\n `the utm_id is too long, it must be ${LIMIT_MAX_UTM_ID} characters or less`\n ),\n v.regex(REGEX_UTM_VALUE, `utm_id ${ERROR_MESSAGE_REGEX_UTM_VALUE}`)\n)\nexport const IsValidOrUndefinedUrlUtmId = v.undefinedable(IsValidUrlUtmId)\n","import type { BaseDocument, MediaUploadDocument } from \"../core\";\nimport type { ClientDocument } from \"./client.document\";\n\nexport const ClientProjectStatusOptions = [\n \"coming-soon\",\n \"now-open\",\n \"for-sale\",\n \"sold-out\",\n \"available\",\n];\nexport type ClientProjectStatus = (typeof ClientProjectStatusOptions)[number];\n\nexport type ClientProjectDocument = {\n title: string;\n slug: string;\n project_status: ClientProjectStatus[];\n clients?: ClientDocument[];\n featured_image?: MediaUploadDocument | null;\n} & BaseDocument;\n","import * as v from \"valibot\";\nimport {\n LIMIT_CLIENT_PAGINATION_DEFAULT_SIZE,\n LIMIT_CLIENT_PAGINATION_MAX_SIZE,\n} from \"../constants\";\nimport { IsValidReferenceDocumentId, IsValidShortString } from \"../validators\";\nimport { ClientProjectStatusOptions } from \"../types\";\n\nexport const QueryStrapiSearchClientProjects = v.object({\n page: v.fallback(v.optional(v.pipe(v.number(), v.minValue(1)), 1), 1),\n size: v.fallback(\n v.optional(\n v.pipe(\n v.number(),\n v.minValue(1),\n v.maxValue(LIMIT_CLIENT_PAGINATION_MAX_SIZE)\n ),\n LIMIT_CLIENT_PAGINATION_DEFAULT_SIZE\n ),\n LIMIT_CLIENT_PAGINATION_DEFAULT_SIZE\n ),\n title: v.optional(IsValidShortString),\n slug: v.optional(IsValidShortString),\n project_status: v.optional(v.picklist(ClientProjectStatusOptions)),\n clientId: v.optional(IsValidReferenceDocumentId),\n});\n\nexport type QueryStrapiSearchClientProjects = v.InferOutput<\n typeof QueryStrapiSearchClientProjects\n>;\n","import * as v from \"valibot\";\nimport {\n LIMIT_CLIENT_PAGINATION_DEFAULT_SIZE,\n LIMIT_CLIENT_PAGINATION_MAX_SIZE,\n} from \"../constants\";\nimport { IsValidShortString } from \"../validators\";\n\nexport const QueryStrapiSearchClients = v.object({\n page: v.fallback(v.optional(v.pipe(v.number(), v.minValue(1)), 1), 1),\n size: v.fallback(\n v.optional(\n v.pipe(\n v.number(),\n v.minValue(1),\n v.maxValue(LIMIT_CLIENT_PAGINATION_MAX_SIZE)\n ),\n LIMIT_CLIENT_PAGINATION_DEFAULT_SIZE\n ),\n LIMIT_CLIENT_PAGINATION_DEFAULT_SIZE\n ),\n title: v.optional(IsValidShortString),\n teamwork_id: v.optional(IsValidShortString),\n teamwork_name: v.optional(IsValidShortString),\n utm_sheet_id: v.optional(IsValidShortString),\n allow_create_utm_link: v.optional(v.boolean()),\n classification: v.optional(v.picklist([\"organic\", \"paid\"])),\n is_featured: v.optional(v.boolean()),\n is_active: v.optional(v.boolean()),\n is_organic_social: v.optional(v.boolean()),\n is_paid_media: v.optional(v.boolean()),\n});\n\nexport type QueryStrapiSearchClients = v.InferOutput<\n typeof QueryStrapiSearchClients\n>;\n","import * as v from \"valibot\"\nimport { LIMIT_PAGINATION_DEFAULT_SIZE, LIMIT_PAGINATION_MAX_SIZE } from \"../constants\"\nimport {\n IsValidReferenceDocumentId,\n IsValidReferenceId,\n IsValidShortString,\n IsValidUserEmail,\n IsValidUserPhoneRequired\n} from \"../validators\"\n\n// Paginated Query\nexport const QueryStrapiPaginated = v.object({\n page: v.fallback(v.optional(v.pipe(v.number(), v.minValue(1)), 1), 1),\n size: v.fallback(\n v.optional(\n v.pipe(v.number(), v.minValue(1), v.maxValue(LIMIT_PAGINATION_MAX_SIZE)),\n LIMIT_PAGINATION_DEFAULT_SIZE\n ),\n LIMIT_PAGINATION_DEFAULT_SIZE\n )\n})\nexport type QueryStrapiPaginated = v.InferOutput<typeof QueryStrapiPaginated>\n\n// Query by: ID, Document ID\nexport const QueryStrapiById = v.object({\n id: IsValidReferenceId\n})\nexport type QueryStrapiById = v.InferOutput<typeof QueryStrapiById>\n\nexport const QueryStrapiByDocumentId = v.object({\n documentId: IsValidReferenceDocumentId\n})\nexport type QueryStrapiByDocumentId = v.InferOutput<typeof QueryStrapiByDocumentId>\n\n// Query by: Slug, Email, Phone, or Name\nexport const QueryStrapiBySlug = v.object({\n slug: IsValidShortString\n})\nexport type QueryStrapiBySlug = v.InferOutput<typeof QueryStrapiBySlug>\n\nexport const QueryStrapiByEmail = v.object({\n email: IsValidUserEmail\n})\nexport type QueryStrapiByEmail = v.InferOutput<typeof QueryStrapiByEmail>\n\nexport const QueryStrapiByPhone = v.object({\n phone: IsValidUserPhoneRequired\n})\nexport type QueryStrapiByPhone = v.InferOutput<typeof QueryStrapiByPhone>\n\nexport const QueryStrapiByName = v.object({\n name: IsValidShortString\n})\nexport type QueryStrapiByName = v.InferOutput<typeof QueryStrapiByName>\n","import * as v from \"valibot\"\nimport {\n IsValidCaptchaToken,\n IsValidCompanyName,\n IsValidFirstName,\n IsValidLastName,\n IsValidProductInterest,\n IsValidRefPage,\n IsValidUserConsent,\n IsValidUserEmail,\n IsValidUserMessage,\n IsValidUserPhoneRequired,\n IsValidUserTitle\n} from \"../validators\"\n\nexport const SCreateLead = v.object({\n first_name: IsValidFirstName,\n last_name: IsValidLastName,\n email: IsValidUserEmail,\n phone: IsValidUserPhoneRequired,\n company: IsValidCompanyName,\n title: IsValidUserTitle,\n message: IsValidUserMessage,\n product_interest: IsValidProductInterest,\n email_consent: IsValidUserConsent,\n sms_consent: IsValidUserConsent,\n on_page: IsValidRefPage,\n captcha: IsValidCaptchaToken\n})\n\nexport type SCreateLead = v.InferOutput<typeof SCreateLead>\n","import * as v from \"valibot\"\nimport {\n IsValidCaptchaToken,\n IsValidFirstName,\n IsValidLastName,\n IsValidRefPage,\n IsValidUserConsent,\n IsValidUserEmail\n} from \"../validators\"\n\nexport const SCreateNewsletterSignup = v.object({\n first_name: IsValidFirstName,\n last_name: IsValidLastName,\n email: IsValidUserEmail,\n // hidden fields\n email_consent: IsValidUserConsent,\n on_page: IsValidRefPage,\n captcha: IsValidCaptchaToken\n})\n\nexport type SCreateNewsletterSignup = v.InferOutput<typeof SCreateNewsletterSignup>\n","import * as v from \"valibot\"\nimport {\n IsValidCaptchaToken,\n IsValidFileReferenceId,\n IsValidFirstName,\n IsValidLastName,\n IsValidRefPage,\n IsValidResumeFile,\n IsValidShortString,\n IsValidStringSepListOfUrlsOrUndefined,\n IsValidUserConsent,\n IsValidUserEmail,\n IsValidUserMessage,\n IsValidUserPhone\n} from \"../validators\"\n\nexport const SCreateResume = v.object({\n first_name: IsValidFirstName,\n last_name: IsValidLastName,\n email: IsValidUserEmail,\n phone: IsValidUserPhone,\n message: IsValidUserMessage,\n social_profiles: IsValidStringSepListOfUrlsOrUndefined,\n file: IsValidResumeFile, // File object\n email_consent: IsValidUserConsent,\n sms_consent: IsValidUserConsent,\n // hidden fields\n on_page: IsValidRefPage,\n captcha: IsValidCaptchaToken\n})\nexport type SCreateResume = v.InferOutput<typeof SCreateResume>\n\nexport const SCreateResumeInfo = v.object({\n first_name: IsValidFirstName,\n last_name: IsValidLastName,\n email: IsValidUserEmail,\n phone: IsValidUserPhone,\n message: IsValidUserMessage,\n social_profiles: IsValidStringSepListOfUrlsOrUndefined,\n file: IsValidFileReferenceId, // File reference ID\n email_consent: IsValidUserConsent,\n sms_consent: IsValidUserConsent,\n // hidden fields\n on_page: IsValidRefPage,\n captcha: IsValidCaptchaToken\n})\nexport type SCreateResumeInfo = v.InferOutput<typeof SCreateResumeInfo>\n\nexport const SUpdateResumeInfo = v.object({\n documentId: IsValidShortString,\n first_name: IsValidFirstName,\n last_name: IsValidLastName,\n email: IsValidUserEmail,\n phone: IsValidUserPhone,\n message: IsValidUserMessage,\n social_profiles: IsValidStringSepListOfUrlsOrUndefined,\n file: IsValidFileReferenceId, // File reference ID\n email_consent: IsValidUserConsent,\n sms_consent: IsValidUserConsent,\n // hidden fields\n on_page: IsValidRefPage,\n captcha: IsValidCaptchaToken\n})\n\nexport type SUpdateResumeInfo = v.InferOutput<typeof SUpdateResumeInfo>\n","import * as v from \"valibot\"\nimport {\n IsValidCaptchaToken,\n IsValidFirstName,\n IsValidLastName,\n IsValidRefPage,\n IsValidShortString,\n IsValidUserConsent,\n IsValidUserEmail\n} from \"../validators\"\n\nexport const SharpSpringSignUpToDownload = v.object({\n first_name: IsValidFirstName,\n last_name: IsValidLastName,\n email: IsValidUserEmail,\n // hidden fields\n download_key: IsValidShortString,\n email_consent: IsValidUserConsent,\n on_page: IsValidRefPage,\n captcha: IsValidCaptchaToken\n})\nexport type SharpSpringSignUpToDownload = v.InferOutput<\n typeof SharpSpringSignUpToDownload\n>\n","import * as v from \"valibot\"\n\nexport const SUpdateTrendsLikes = v.object({\n documentId: v.string(),\n likes: v.number()\n})\n\nexport type SUpdateTrendsLikes = v.InferOutput<typeof SUpdateTrendsLikes>\n","import * as v from \"valibot\"\nimport {\n LIMIT_BLOG_POST_PAGINATION_MAX_SIZE,\n LIMIT_REDIRECT_PAGINATION_DEFAULT_SIZE\n} from \"../constants\"\n\nexport const QueryStrapiPaginatedUrlRedirects = v.object({\n page: v.fallback(v.optional(v.pipe(v.number(), v.minValue(1)), 1), 1),\n size: v.fallback(\n v.optional(\n v.pipe(\n v.number(),\n v.minValue(1),\n v.maxValue(LIMIT_BLOG_POST_PAGINATION_MAX_SIZE)\n ),\n LIMIT_REDIRECT_PAGINATION_DEFAULT_SIZE\n ),\n LIMIT_REDIRECT_PAGINATION_DEFAULT_SIZE\n )\n})\n\nexport type QueryStrapiPaginatedUrlRedirects = v.InferOutput<\n typeof QueryStrapiPaginatedUrlRedirects\n>\n\nexport const QueryStrapiUrlRedirectsByFrom = v.object({\n from: v.string()\n})\n\nexport type QueryStrapiUrlRedirectsByFrom = v.InferOutput<\n typeof QueryStrapiUrlRedirectsByFrom\n>\n","import * as v from \"valibot\"\nimport { IsValidPassword, IsValidUserEmail, IsValidUsername } from \"../validators\"\n\n// JWT\nexport const SUserToken = v.object({\n token: v.string()\n})\nexport type SUserToken = v.InferOutput<typeof SUserToken>\n\n// AUTH LOCAL\n// LOGIN\nexport const SLoginUser = v.object({\n identifier: IsValidUserEmail,\n password: IsValidPassword\n})\nexport type SLoginUser = v.InferOutput<typeof SLoginUser>\n\n// REGISTER\nexport const SRegisterUser = v.object({\n username: IsValidUsername,\n email: IsValidUserEmail,\n password: IsValidPassword\n})\nexport type SRegisterUser = v.InferOutput<typeof SRegisterUser>\n\n// FORGOT PASSWORD\nexport const SForgotUserPassword = v.object({\n email: IsValidUserEmail\n})\nexport type SForgotUserPassword = v.InferOutput<typeof SForgotUserPassword>\n\n// REQUEST CONFIRM EMAIL\nexport const SRequestConfirmEmail = v.object({\n email: IsValidUserEmail\n})\nexport type SRequestConfirmEmail = v.InferOutput<typeof SRequestConfirmEmail>\n\n// RESET PASSWORD\nexport const SResetUserPassword = v.object({\n password: IsValidPassword,\n passwordConfirmation: IsValidPassword,\n code: v.string()\n})\nexport type SResetUserPassword = v.InferOutput<typeof SResetUserPassword>\n\n// CHANGE PASSWORD\nexport const SChangePassword = v.pipe(\n v.object({\n currentPassword: IsValidPassword,\n password: IsValidPassword,\n passwordConfirmation: IsValidPassword\n }),\n v.forward(\n v.partialCheck(\n [[\"password\"], [\"passwordConfirmation\"]],\n (input) => input.password === input.passwordConfirmation,\n \"Your new passwords do not match.\"\n ),\n [\"passwordConfirmation\"]\n )\n)\nexport type SChangePassword = v.InferOutput<typeof SChangePassword>\n\n// AUTH PROVIDER\n// Auth Provider Token\nexport const SAuthRawAccessToken = v.object({\n access_token: v.optional(v.string()),\n expires_in: v.optional(v.number()),\n scope: v.optional(v.string()),\n token_type: v.optional(v.string()),\n id_token: v.optional(v.string())\n})\nexport type SAuthRawAccessToken = v.InferOutput<typeof SAuthRawAccessToken>\n\n// Auth Connect Provider Redirect Search\nexport const SAuthConnectProviderRedirectSearch = v.object({\n id_token: v.string(),\n access_token: v.string(),\n raw: v.optional(SAuthRawAccessToken)\n})\nexport type SAuthConnectProviderRedirectSearch = v.InferOutput<\n typeof SAuthConnectProviderRedirectSearch\n>\n\n// Auth Connect Provider Confirmation\nexport const SAuthConnectProviderConfirmation = v.object({\n provider: v.string(),\n search: SAuthConnectProviderRedirectSearch\n})\nexport type SAuthConnectProviderConfirmation = v.InferOutput<\n typeof SAuthConnectProviderConfirmation\n>\n","import * as v from \"valibot\"\nimport {\n LIMIT_SHORT_STRING_MAX_LENGTH,\n LIMIT_USER_PAGINATION_DEFAULT_SIZE,\n LIMIT_USER_PAGINATION_MAX_SIZE\n} from \"../constants\"\nimport { IsValidReferenceDocumentId, IsValidReferenceId } from \"../validators\"\n\n// LIST\nexport const QueryStrapiUsers = v.object({\n page: v.fallback(v.optional(v.pipe(v.number(), v.minValue(1)), 1), 1),\n size: v.fallback(\n v.optional(\n v.pipe(v.number(), v.minValue(3), v.maxValue(LIMIT_USER_PAGINATION_MAX_SIZE)),\n LIMIT_USER_PAGINATION_DEFAULT_SIZE\n ),\n LIMIT_USER_PAGINATION_DEFAULT_SIZE\n )\n})\nexport type QueryStrapiUsers = v.InferOutput<typeof QueryStrapiUsers>\n\nexport const QueryStrapiUsersByIdentifier = v.object({\n identifier: v.pipe(v.string(), v.maxLength(LIMIT_SHORT_STRING_MAX_LENGTH)),\n page: v.fallback(v.optional(v.pipe(v.number(), v.minValue(1)), 1), 1),\n size: v.fallback(\n v.optional(\n v.pipe(v.number(), v.minValue(3), v.maxValue(LIMIT_USER_PAGINATION_MAX_SIZE)),\n LIMIT_USER_PAGINATION_DEFAULT_SIZE\n ),\n LIMIT_USER_PAGINATION_DEFAULT_SIZE\n )\n})\nexport type QueryStrapiUsersByIdentifier = v.InferOutput<\n typeof QueryStrapiUsersByIdentifier\n>\n\n// READ\nexport const SReadUserById = v.object({\n id: IsValidReferenceId\n})\nexport type SReadUserById = v.InferOutput<typeof SReadUserById>\n\nexport const SReadUserByDocumentId = v.object({\n documentId: IsValidReferenceDocumentId\n})\nexport type SReadUserByDocumentId = v.InferOutput<typeof SReadUserByDocumentId>\n","import * as v from \"valibot\"\nimport { IsValidFirstName, IsValidPreferredName, IsValidLastName, IsValidReferenceDocumentId, IsValidReferenceId } from \"../validators\"\n\n// READ\nexport const SReadUserAccountById = v.object({\n id: IsValidReferenceId\n})\nexport type SReadUserAccountById = v.InferOutput<typeof SReadUserAccountById>\n\nexport const SReadUserAccountByDocumentId = v.object({\n documentId: IsValidReferenceDocumentId\n})\nexport type SReadUserAccountByDocumentId = v.InferOutput<typeof SReadUserAccountByDocumentId>\n\n// UPDATE\nexport const SUpdateUserAccount = v.object({\n documentId: IsValidReferenceDocumentId,\n first_name: IsValidFirstName,\n last_name: IsValidLastName,\n preferred_name: IsValidPreferredName,\n})\nexport type SUpdateUserAccount = v.InferOutput<typeof SUpdateUserAccount>\n\nexport const SUpdateUserAccountFirstName = v.object({\n documentId: IsValidReferenceDocumentId,\n first_name: IsValidFirstName,\n})\nexport type SUpdateUserAccountFirstName = v.InferOutput<typeof SUpdateUserAccountFirstName>\n\nexport const SUpdateUserAccountLastName = v.object({\n documentId: IsValidReferenceDocumentId,\n last_name: IsValidLastName,\n})\nexport type SUpdateUserAccountLastName = v.InferOutput<typeof SUpdateUserAccountLastName>\n\nexport const SUpdateUserAccountPreferredName = v.object({\n documentId: IsValidReferenceDocumentId,\n preferred_name: IsValidPreferredName,\n})\nexport type SUpdateUserAccountPreferredName = v.InferOutput<typeof SUpdateUserAccountPreferredName>\n","import * as v from \"valibot\";\nimport {\n LIMIT_UTM_TRACKING_LINK_PAGINATION_DEFAULT_SIZE,\n LIMIT_UTM_TRACKING_LINK_PAGINATION_MAX_SIZE,\n} from \"../constants\";\nimport {\n IsValidDestinationUrl,\n IsValidIsActive,\n IsValidLongString,\n IsValidLongStringOrUndefined,\n IsValidOrUndefinedUrlUtmContent,\n IsValidOrUndefinedUrlUtmCreativeFormat,\n IsValidOrUndefinedUrlUtmId,\n IsValidReferenceDocumentId,\n IsValidReferenceId,\n IsValidShortString,\n IsValidShortStringOrUndefined,\n IsValidStringListOrUndefined,\n IsValidUrl,\n IsValidUrlUtmCampaign,\n IsValidUrlUtmContent,\n IsValidUrlUtmCreativeFormat,\n IsValidUrlUtmId,\n IsValidUrlUtmMedium,\n IsValidUrlUtmSource,\n IsValidUtmCampaignKeyName,\n IsValidUtmCampaignKeyNameOrUndefined,\n IsValidUtmLink,\n} from \"../validators\";\n\n// LIST\nexport const QueryStrapiSearchUtmTrackingLinks = v.object({\n page: v.fallback(v.optional(v.pipe(v.number(), v.minValue(1)), 1), 1),\n size: v.fallback(\n v.optional(\n v.pipe(\n v.number(),\n v.minValue(1),\n v.maxValue(LIMIT_UTM_TRACKING_LINK_PAGINATION_MAX_SIZE)\n ),\n LIMIT_UTM_TRACKING_LINK_PAGINATION_DEFAULT_SIZE\n ),\n LIMIT_UTM_TRACKING_LINK_PAGINATION_DEFAULT_SIZE\n ),\n url_destination: v.optional(IsValidDestinationUrl),\n utm_medium: v.optional(IsValidUrlUtmMedium),\n utm_source: v.optional(IsValidUrlUtmSource),\n utm_campaign: v.optional(IsValidUrlUtmCampaign),\n utm_content: v.optional(IsValidUrlUtmContent),\n utm_creative_format: v.optional(IsValidUrlUtmCreativeFormat),\n utm_id: v.optional(IsValidUrlUtmId),\n campaign_phase: v.optional(IsValidShortString),\n campaign_product: v.optional(IsValidShortString),\n campaign_targeting: v.optional(IsValidShortString),\n campaign_key: v.optional(IsValidShortString),\n creative_format: v.optional(IsValidShortString),\n creative_format_variants: v.optional(v.array(IsValidShortString)),\n url: v.optional(IsValidUrl),\n is_active: v.optional(v.boolean()),\n notes: v.optional(IsValidShortString),\n});\n\nexport type QueryStrapiSearchUtmTrackingLinks = v.InferOutput<\n typeof QueryStrapiSearchUtmTrackingLinks\n>;\n\n// CREATE\nexport const SCreateUtmTrackingLinkDocument = v.object({\n creator: IsValidReferenceDocumentId,\n client: IsValidReferenceDocumentId,\n url_destination: IsValidDestinationUrl,\n utm_source: IsValidUrlUtmSource,\n utm_medium: IsValidUrlUtmMedium,\n utm_campaign: IsValidUrlUtmCampaign,\n utm_content: IsValidShortStringOrUndefined,\n utm_creative_format: IsValidShortStringOrUndefined,\n utm_id: IsValidShortStringOrUndefined,\n campaign_phase: IsValidShortString,\n campaign_product: IsValidShortStringOrUndefined,\n campaign_targeting: IsValidStringListOrUndefined,\n campaign_key: IsValidUtmCampaignKeyNameOrUndefined,\n creative_format: IsValidShortStringOrUndefined,\n creative_format_variants: IsValidStringListOrUndefined,\n url: IsValidUtmLink,\n is_active: IsValidIsActive,\n notes: IsValidLongStringOrUndefined,\n});\nexport type SCreateUtmTrackingLinkDocumentInput = v.InferInput<\n typeof SCreateUtmTrackingLinkDocument\n>;\nexport type SCreateUtmTrackingLinkDocument = v.InferOutput<\n typeof SCreateUtmTrackingLinkDocument\n>;\n\nexport const SCreateUtmTrackingLinkParts = v.object({\n url_destination: IsValidDestinationUrl,\n utm_source: IsValidUrlUtmSource,\n utm_medium: IsValidUrlUtmMedium,\n utm_campaign: IsValidUrlUtmCampaign,\n utm_content: IsValidShortStringOrUndefined,\n utm_creative_format: IsValidShortStringOrUndefined,\n utm_id: IsValidShortStringOrUndefined,\n campaign_phase: IsValidShortString,\n campaign_product: IsValidShortStringOrUndefined,\n campaign_targeting: IsValidStringListOrUndefined,\n campaign_key: IsValidUtmCampaignKeyNameOrUndefined,\n creative_format: IsValidShortStringOrUndefined,\n creative_format_variants: IsValidStringListOrUndefined,\n url: IsValidUtmLink,\n is_active: IsValidIsActive,\n notes: IsValidLongStringOrUndefined,\n});\nexport type SCreateUtmTrackingLinkParts = v.InferOutput<\n typeof SCreateUtmTrackingLinkParts\n>;\n\nexport const SFormCreateMultipleUtmTrackingLinkDocuments = v.object({\n creator: IsValidReferenceDocumentId,\n client: IsValidReferenceDocumentId,\n links: v.pipe(\n v.array(SCreateUtmTrackingLinkParts),\n v.minLength(1, \"You must provide at least one link to create.\"),\n v.maxLength(100, \"You can create a maximum of 100 links at once.\")\n ),\n});\nexport type SFormCreateMultipleUtmTrackingLinkDocuments = v.InferInput<\n typeof SFormCreateMultipleUtmTrackingLinkDocuments\n>;\n\n// READ\nexport const SReadUtmTrackingLinkDocumentByDocumentId = v.object({\n documentId: IsValidReferenceDocumentId,\n});\nexport type SReadUtmTrackingLinkDocumentByDocumentId = v.InferOutput<\n typeof SReadUtmTrackingLinkDocumentByDocumentId\n>;\n\n// UPDATE\nexport const SUpdateUtmTrackingLinkDocument = v.object({\n creator: v.optional(IsValidReferenceDocumentId),\n client: v.optional(IsValidReferenceDocumentId),\n url_destination: IsValidDestinationUrl,\n utm_source: IsValidUrlUtmSource,\n utm_medium: IsValidUrlUtmMedium,\n utm_campaign: IsValidUrlUtmCampaign,\n utm_content: IsValidShortStringOrUndefined,\n utm_creative_format: IsValidShortStringOrUndefined,\n utm_id: IsValidShortStringOrUndefined,\n campaign_phase: IsValidShortString,\n campaign_product: IsValidShortStringOrUndefined,\n campaign_targeting: IsValidStringListOrUndefined,\n campaign_key: IsValidUtmCampaignKeyNameOrUndefined,\n creative_format: IsValidShortStringOrUndefined,\n creative_format_variants: IsValidStringListOrUndefined,\n url: IsValidUtmLink,\n is_active: IsValidIsActive,\n notes: IsValidLongStringOrUndefined,\n});\nexport type SUpdateUtmTrackingLinkDocument = v.InferOutput<\n typeof SUpdateUtmTrackingLinkDocument\n>;\n\nexport const SUpdateUtmTrackingLinkDocumentRequest = v.object({\n documentId: IsValidReferenceDocumentId,\n data: SUpdateUtmTrackingLinkDocument,\n});\nexport type SUpdateUtmTrackingLinkDocumentRequest = v.InferOutput<\n typeof SUpdateUtmTrackingLinkDocumentRequest\n>;\n\n// DELETE\nexport const SDeleteUtmTrackingLinkDocument = v.object({\n documentId: IsValidReferenceDocumentId,\n});\nexport type SDeleteUtmTrackingLinkDocument = v.InferOutput<\n typeof SDeleteUtmTrackingLinkDocument\n>;\n","import * as v from \"valibot\"\n\ntype ValidateAndCleanSuccess<T> = {\n data: Partial<T>\n error: null\n errors: null\n}\n\ntype ValidateAndCleanFailure = {\n data: null\n error: string | null\n errors: Record<string, string> | null\n}\n\ntype ValidateAndCleanResult<T> = ValidateAndCleanSuccess<T> | ValidateAndCleanFailure\n\nexport function validateAndClean<T>(\n schema: v.BaseSchema<T, Partial<T>, v.BaseIssue<T>>,\n input: unknown\n): ValidateAndCleanResult<T> {\n try {\n const parsed = v.parse(schema, input)\n return { data: parsed, error: null, errors: null }\n } catch (err: unknown) {\n if (err instanceof v.ValiError) {\n const errors: Record<string, string> = {}\n for (const issue of err.issues) {\n const field = issue.path?.[0]?.key || \"unknown\"\n errors[field] = issue.message\n }\n return { data: null, error: null, errors }\n }\n let errorMessage = \"Unknown error\"\n if (err instanceof Error) {\n errorMessage = err.message\n } else {\n errorMessage = String(err)\n }\n return { data: null, error: errorMessage, errors: null }\n }\n}\n\nexport function isValidationSuccess<T>(\n result: ValidateAndCleanResult<T>\n): result is ValidateAndCleanSuccess<T> {\n return result.error === null && result.errors === null\n}\n\nexport function isValidationFailure<T>(\n result: ValidateAndCleanResult<T>\n): result is ValidateAndCleanFailure {\n return result.error !== null || result.errors !== null\n}\n\nexport function omitUndefined<T extends Record<string, any>>(obj: T): Partial<T> {\n const result: Partial<T> = {}\n for (const key in obj) {\n if (obj[key] !== undefined) {\n result[key] = obj[key]\n }\n }\n return result\n}\n","export function dateToday(): Date {\n const date = new Date()\n date.setHours(0, 0, 0, 0)\n return date\n}\n\nexport function datePlusDays(today: Date, days: number = 30): Date {\n const date = new Date(today)\n date.setDate(date.getDate() + days)\n date.setHours(23, 59, 59, 999)\n return date\n}\n"]}