{"version":3,"file":"file-size.mjs","names":[],"sources":["../../../../../../../../@warlock.js/seal/src/rules/file/file-size.ts"],"sourcesContent":["import { humanizeSize, invalidRule, VALID_RULE } from \"../../helpers\";\r\nimport type { SchemaRule } from \"../../types\";\r\n\r\n/**\r\n * Max file size rule\r\n */\r\nexport const maxFileSizeRule: SchemaRule<{ maxSize: number }> = {\r\n  name: \"maxFileSize\",\r\n  defaultErrorMessage: \"The :input must not exceed :maxSize\",\r\n  async validate(value: any, context) {\r\n    const size = typeof value.size === \"function\" ? await value.size() : value.size;\r\n\r\n    if (size <= this.context.options.maxSize) {\r\n      return VALID_RULE;\r\n    }\r\n\r\n    this.context.translationParams.maxSize = humanizeSize(this.context.options.maxSize);\r\n\r\n    return invalidRule(this, context);\r\n  },\r\n};\r\n\r\n/**\r\n * Min file size rule\r\n */\r\nexport const minFileSizeRule: SchemaRule<{ minSize: number }> = {\r\n  name: \"minFileSize\",\r\n  defaultErrorMessage: \"The :input must be at least :minSize\",\r\n  async validate(value: any, context) {\r\n    const size = typeof value.size === \"function\" ? await value.size() : value.size;\r\n\r\n    if (size >= this.context.options.minSize) {\r\n      return VALID_RULE;\r\n    }\r\n\r\n    this.context.translationParams.minSize = humanizeSize(this.context.options.minSize);\r\n\r\n    return invalidRule(this, context);\r\n  },\r\n};\r\n"],"mappings":";;;;;;;;AAMA,MAAa,kBAAmD;CAC9D,MAAM;CACN,qBAAqB;CACrB,MAAM,SAAS,OAAY,SAAS;EAGlC,KAFa,OAAO,MAAM,SAAS,aAAa,MAAM,MAAM,KAAK,IAAI,MAAM,SAE/D,KAAK,QAAQ,QAAQ,SAC/B,OAAO;EAGT,KAAK,QAAQ,kBAAkB,UAAU,aAAa,KAAK,QAAQ,QAAQ,OAAO;EAElF,OAAO,YAAY,MAAM,OAAO;CAClC;AACF;;;;AAKA,MAAa,kBAAmD;CAC9D,MAAM;CACN,qBAAqB;CACrB,MAAM,SAAS,OAAY,SAAS;EAGlC,KAFa,OAAO,MAAM,SAAS,aAAa,MAAM,MAAM,KAAK,IAAI,MAAM,SAE/D,KAAK,QAAQ,QAAQ,SAC/B,OAAO;EAGT,KAAK,QAAQ,kBAAkB,UAAU,aAAa,KAAK,QAAQ,QAAQ,OAAO;EAElF,OAAO,YAAY,MAAM,OAAO;CAClC;AACF"}