UNPKG

valibot

Version:

The modular and type safe schema library for validating structural data

1,888 lines (1,807 loc) 193 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // src/index.ts var index_exports = {}; __export(index_exports, { BASE64_REGEX: () => BASE64_REGEX, BIC_REGEX: () => BIC_REGEX, CUID2_REGEX: () => CUID2_REGEX, DECIMAL_REGEX: () => DECIMAL_REGEX, DIGITS_REGEX: () => DIGITS_REGEX, EMAIL_REGEX: () => EMAIL_REGEX, EMOJI_REGEX: () => EMOJI_REGEX, HEXADECIMAL_REGEX: () => HEXADECIMAL_REGEX, HEX_COLOR_REGEX: () => HEX_COLOR_REGEX, IMEI_REGEX: () => IMEI_REGEX, IPV4_REGEX: () => IPV4_REGEX, IPV6_REGEX: () => IPV6_REGEX, IP_REGEX: () => IP_REGEX, ISO_DATE_REGEX: () => ISO_DATE_REGEX, ISO_DATE_TIME_REGEX: () => ISO_DATE_TIME_REGEX, ISO_TIMESTAMP_REGEX: () => ISO_TIMESTAMP_REGEX, ISO_TIME_REGEX: () => ISO_TIME_REGEX, ISO_TIME_SECOND_REGEX: () => ISO_TIME_SECOND_REGEX, ISO_WEEK_REGEX: () => ISO_WEEK_REGEX, MAC48_REGEX: () => MAC48_REGEX, MAC64_REGEX: () => MAC64_REGEX, MAC_REGEX: () => MAC_REGEX, NANO_ID_REGEX: () => NANO_ID_REGEX, OCTAL_REGEX: () => OCTAL_REGEX, RFC_EMAIL_REGEX: () => RFC_EMAIL_REGEX, SLUG_REGEX: () => SLUG_REGEX, ULID_REGEX: () => ULID_REGEX, UUID_REGEX: () => UUID_REGEX, ValiError: () => ValiError, _addIssue: () => _addIssue, _getByteCount: () => _getByteCount, _getGraphemeCount: () => _getGraphemeCount, _getStandardProps: () => _getStandardProps, _getWordCount: () => _getWordCount, _isLuhnAlgo: () => _isLuhnAlgo, _isValidObjectKey: () => _isValidObjectKey, _joinExpects: () => _joinExpects, _stringify: () => _stringify, any: () => any, args: () => args, argsAsync: () => argsAsync, array: () => array, arrayAsync: () => arrayAsync, assert: () => assert, awaitAsync: () => awaitAsync, base64: () => base64, bic: () => bic, bigint: () => bigint, blob: () => blob, boolean: () => boolean, brand: () => brand, bytes: () => bytes, check: () => check, checkAsync: () => checkAsync, checkItems: () => checkItems, checkItemsAsync: () => checkItemsAsync, config: () => config, creditCard: () => creditCard, cuid2: () => cuid2, custom: () => custom, customAsync: () => customAsync, date: () => date, decimal: () => decimal, deleteGlobalConfig: () => deleteGlobalConfig, deleteGlobalMessage: () => deleteGlobalMessage, deleteSchemaMessage: () => deleteSchemaMessage, deleteSpecificMessage: () => deleteSpecificMessage, description: () => description, digits: () => digits, email: () => email, emoji: () => emoji, empty: () => empty, endsWith: () => endsWith, entriesFromList: () => entriesFromList, entriesFromObjects: () => entriesFromObjects, enum: () => enum_, enum_: () => enum_, everyItem: () => everyItem, exactOptional: () => exactOptional, exactOptionalAsync: () => exactOptionalAsync, excludes: () => excludes, fallback: () => fallback, fallbackAsync: () => fallbackAsync, file: () => file, filterItems: () => filterItems, findItem: () => findItem, finite: () => finite, flatten: () => flatten, forward: () => forward, forwardAsync: () => forwardAsync, function: () => function_, function_: () => function_, getDefault: () => getDefault, getDefaults: () => getDefaults, getDefaultsAsync: () => getDefaultsAsync, getDotPath: () => getDotPath, getFallback: () => getFallback, getFallbacks: () => getFallbacks, getFallbacksAsync: () => getFallbacksAsync, getGlobalConfig: () => getGlobalConfig, getGlobalMessage: () => getGlobalMessage, getSchemaMessage: () => getSchemaMessage, getSpecificMessage: () => getSpecificMessage, graphemes: () => graphemes, gtValue: () => gtValue, hash: () => hash, hexColor: () => hexColor, hexadecimal: () => hexadecimal, imei: () => imei, includes: () => includes, instance: () => instance, integer: () => integer, intersect: () => intersect, intersectAsync: () => intersectAsync, ip: () => ip, ipv4: () => ipv4, ipv6: () => ipv6, is: () => is, isOfKind: () => isOfKind, isOfType: () => isOfType, isValiError: () => isValiError, isoDate: () => isoDate, isoDateTime: () => isoDateTime, isoTime: () => isoTime, isoTimeSecond: () => isoTimeSecond, isoTimestamp: () => isoTimestamp, isoWeek: () => isoWeek, keyof: () => keyof, lazy: () => lazy, lazyAsync: () => lazyAsync, length: () => length, literal: () => literal, looseObject: () => looseObject, looseObjectAsync: () => looseObjectAsync, looseTuple: () => looseTuple, looseTupleAsync: () => looseTupleAsync, ltValue: () => ltValue, mac: () => mac, mac48: () => mac48, mac64: () => mac64, map: () => map, mapAsync: () => mapAsync, mapItems: () => mapItems, maxBytes: () => maxBytes, maxGraphemes: () => maxGraphemes, maxLength: () => maxLength, maxSize: () => maxSize, maxValue: () => maxValue, maxWords: () => maxWords, metadata: () => metadata, mimeType: () => mimeType, minBytes: () => minBytes, minGraphemes: () => minGraphemes, minLength: () => minLength, minSize: () => minSize, minValue: () => minValue, minWords: () => minWords, multipleOf: () => multipleOf, nan: () => nan, nanoid: () => nanoid, never: () => never, nonEmpty: () => nonEmpty, nonNullable: () => nonNullable, nonNullableAsync: () => nonNullableAsync, nonNullish: () => nonNullish, nonNullishAsync: () => nonNullishAsync, nonOptional: () => nonOptional, nonOptionalAsync: () => nonOptionalAsync, normalize: () => normalize, notBytes: () => notBytes, notGraphemes: () => notGraphemes, notLength: () => notLength, notSize: () => notSize, notValue: () => notValue, notValues: () => notValues, notWords: () => notWords, null: () => null_, null_: () => null_, nullable: () => nullable, nullableAsync: () => nullableAsync, nullish: () => nullish, nullishAsync: () => nullishAsync, number: () => number, object: () => object, objectAsync: () => objectAsync, objectWithRest: () => objectWithRest, objectWithRestAsync: () => objectWithRestAsync, octal: () => octal, omit: () => omit, optional: () => optional, optionalAsync: () => optionalAsync, parse: () => parse, parseAsync: () => parseAsync, parser: () => parser, parserAsync: () => parserAsync, partial: () => partial, partialAsync: () => partialAsync, partialCheck: () => partialCheck, partialCheckAsync: () => partialCheckAsync, pick: () => pick, picklist: () => picklist, pipe: () => pipe, pipeAsync: () => pipeAsync, promise: () => promise, rawCheck: () => rawCheck, rawCheckAsync: () => rawCheckAsync, rawTransform: () => rawTransform, rawTransformAsync: () => rawTransformAsync, readonly: () => readonly, record: () => record, recordAsync: () => recordAsync, reduceItems: () => reduceItems, regex: () => regex, required: () => required, requiredAsync: () => requiredAsync, returns: () => returns, returnsAsync: () => returnsAsync, rfcEmail: () => rfcEmail, safeInteger: () => safeInteger, safeParse: () => safeParse, safeParseAsync: () => safeParseAsync, safeParser: () => safeParser, safeParserAsync: () => safeParserAsync, set: () => set, setAsync: () => setAsync, setGlobalConfig: () => setGlobalConfig, setGlobalMessage: () => setGlobalMessage, setSchemaMessage: () => setSchemaMessage, setSpecificMessage: () => setSpecificMessage, size: () => size, slug: () => slug, someItem: () => someItem, sortItems: () => sortItems, startsWith: () => startsWith, strictObject: () => strictObject, strictObjectAsync: () => strictObjectAsync, strictTuple: () => strictTuple, strictTupleAsync: () => strictTupleAsync, string: () => string, symbol: () => symbol, title: () => title, toLowerCase: () => toLowerCase, toMaxValue: () => toMaxValue, toMinValue: () => toMinValue, toUpperCase: () => toUpperCase, transform: () => transform, transformAsync: () => transformAsync, trim: () => trim, trimEnd: () => trimEnd, trimStart: () => trimStart, tuple: () => tuple, tupleAsync: () => tupleAsync, tupleWithRest: () => tupleWithRest, tupleWithRestAsync: () => tupleWithRestAsync, ulid: () => ulid, undefined: () => undefined_, undefined_: () => undefined_, undefinedable: () => undefinedable, undefinedableAsync: () => undefinedableAsync, union: () => union, unionAsync: () => unionAsync, unknown: () => unknown, unwrap: () => unwrap, url: () => url, uuid: () => uuid, value: () => value, values: () => values, variant: () => variant, variantAsync: () => variantAsync, void: () => void_, void_: () => void_, words: () => words }); module.exports = __toCommonJS(index_exports); // src/storages/globalConfig/globalConfig.ts var store; function setGlobalConfig(config2) { store = { ...store, ...config2 }; } // @__NO_SIDE_EFFECTS__ function getGlobalConfig(config2) { return { lang: config2?.lang ?? store?.lang, message: config2?.message, abortEarly: config2?.abortEarly ?? store?.abortEarly, abortPipeEarly: config2?.abortPipeEarly ?? store?.abortPipeEarly }; } function deleteGlobalConfig() { store = void 0; } // src/storages/globalMessage/globalMessage.ts var store2; function setGlobalMessage(message, lang) { if (!store2) store2 = /* @__PURE__ */ new Map(); store2.set(lang, message); } // @__NO_SIDE_EFFECTS__ function getGlobalMessage(lang) { return store2?.get(lang); } function deleteGlobalMessage(lang) { store2?.delete(lang); } // src/storages/schemaMessage/schemaMessage.ts var store3; function setSchemaMessage(message, lang) { if (!store3) store3 = /* @__PURE__ */ new Map(); store3.set(lang, message); } // @__NO_SIDE_EFFECTS__ function getSchemaMessage(lang) { return store3?.get(lang); } function deleteSchemaMessage(lang) { store3?.delete(lang); } // src/storages/specificMessage/specificMessage.ts var store4; function setSpecificMessage(reference, message, lang) { if (!store4) store4 = /* @__PURE__ */ new Map(); if (!store4.get(reference)) store4.set(reference, /* @__PURE__ */ new Map()); store4.get(reference).set(lang, message); } // @__NO_SIDE_EFFECTS__ function getSpecificMessage(reference, lang) { return store4?.get(reference)?.get(lang); } function deleteSpecificMessage(reference, lang) { store4?.get(reference)?.delete(lang); } // src/utils/_stringify/_stringify.ts // @__NO_SIDE_EFFECTS__ function _stringify(input) { const type = typeof input; if (type === "string") { return `"${input}"`; } if (type === "number" || type === "bigint" || type === "boolean") { return `${input}`; } if (type === "object" || type === "function") { return (input && Object.getPrototypeOf(input)?.constructor?.name) ?? "null"; } return type; } // src/utils/_addIssue/_addIssue.ts function _addIssue(context, label, dataset, config2, other) { const input = other && "input" in other ? other.input : dataset.value; const expected = other?.expected ?? context.expects ?? null; const received = other?.received ?? _stringify(input); const issue = { kind: context.kind, type: context.type, input, expected, received, message: `Invalid ${label}: ${expected ? `Expected ${expected} but r` : "R"}eceived ${received}`, requirement: context.requirement, path: other?.path, issues: other?.issues, lang: config2.lang, abortEarly: config2.abortEarly, abortPipeEarly: config2.abortPipeEarly }; const isSchema = context.kind === "schema"; const message = other?.message ?? context.message ?? getSpecificMessage(context.reference, issue.lang) ?? (isSchema ? getSchemaMessage(issue.lang) : null) ?? config2.message ?? getGlobalMessage(issue.lang); if (message !== void 0) { issue.message = typeof message === "function" ? ( // @ts-expect-error message(issue) ) : message; } if (isSchema) { dataset.typed = false; } if (dataset.issues) { dataset.issues.push(issue); } else { dataset.issues = [issue]; } } // src/utils/_getByteCount/_getByteCount.ts var textEncoder; // @__NO_SIDE_EFFECTS__ function _getByteCount(input) { if (!textEncoder) { textEncoder = new TextEncoder(); } return textEncoder.encode(input).length; } // src/utils/_getGraphemeCount/_getGraphemeCount.ts var segmenter; // @__NO_SIDE_EFFECTS__ function _getGraphemeCount(input) { if (!segmenter) { segmenter = new Intl.Segmenter(); } const segments = segmenter.segment(input); let count = 0; for (const _ of segments) { count++; } return count; } // src/utils/_getStandardProps/_getStandardProps.ts // @__NO_SIDE_EFFECTS__ function _getStandardProps(context) { return { version: 1, vendor: "valibot", validate(value2) { return context["~run"]({ value: value2 }, getGlobalConfig()); } }; } // src/utils/_getWordCount/_getWordCount.ts var store5; // @__NO_SIDE_EFFECTS__ function _getWordCount(locales, input) { if (!store5) { store5 = /* @__PURE__ */ new Map(); } if (!store5.get(locales)) { store5.set(locales, new Intl.Segmenter(locales, { granularity: "word" })); } const segments = store5.get(locales).segment(input); let count = 0; for (const segment of segments) { if (segment.isWordLike) { count++; } } return count; } // src/utils/_isLuhnAlgo/_isLuhnAlgo.ts var NON_DIGIT_REGEX = /\D/gu; // @__NO_SIDE_EFFECTS__ function _isLuhnAlgo(input) { const number2 = input.replace(NON_DIGIT_REGEX, ""); let length2 = number2.length; let bit = 1; let sum = 0; while (length2) { const value2 = +number2[--length2]; bit ^= 1; sum += bit ? [0, 2, 4, 6, 8, 1, 3, 5, 7, 9][value2] : value2; } return sum % 10 === 0; } // src/utils/_isValidObjectKey/_isValidObjectKey.ts // @__NO_SIDE_EFFECTS__ function _isValidObjectKey(object2, key) { return Object.hasOwn(object2, key) && key !== "__proto__" && key !== "prototype" && key !== "constructor"; } // src/utils/_joinExpects/_joinExpects.ts // @__NO_SIDE_EFFECTS__ function _joinExpects(values2, separator) { const list = [...new Set(values2)]; if (list.length > 1) { return `(${list.join(` ${separator} `)})`; } return list[0] ?? "never"; } // src/utils/entriesFromList/entriesFromList.ts // @__NO_SIDE_EFFECTS__ function entriesFromList(list, schema) { const entries = {}; for (const key of list) { entries[key] = schema; } return entries; } // src/utils/entriesFromObjects/entriesFromObjects.ts // @__NO_SIDE_EFFECTS__ function entriesFromObjects(schemas) { const entries = {}; for (const schema of schemas) { Object.assign(entries, schema.entries); } return entries; } // src/utils/getDotPath/getDotPath.ts // @__NO_SIDE_EFFECTS__ function getDotPath(issue) { if (issue.path) { let key = ""; for (const item of issue.path) { if (typeof item.key === "string" || typeof item.key === "number") { if (key) { key += `.${item.key}`; } else { key += item.key; } } else { return null; } } return key; } return null; } // src/utils/isOfKind/isOfKind.ts // @__NO_SIDE_EFFECTS__ function isOfKind(kind, object2) { return object2.kind === kind; } // src/utils/isOfType/isOfType.ts // @__NO_SIDE_EFFECTS__ function isOfType(type, object2) { return object2.type === type; } // src/utils/isValiError/isValiError.ts // @__NO_SIDE_EFFECTS__ function isValiError(error) { return error instanceof ValiError; } // src/utils/ValiError/ValiError.ts var ValiError = class extends Error { /** * Creates a Valibot error with useful information. * * @param issues The error issues. */ constructor(issues) { super(issues[0].message); this.name = "ValiError"; this.issues = issues; } }; // src/actions/args/args.ts // @__NO_SIDE_EFFECTS__ function args(schema) { return { kind: "transformation", type: "args", reference: args, async: false, schema, "~run"(dataset, config2) { const func = dataset.value; dataset.value = (...args_) => { const argsDataset = this.schema["~run"]({ value: args_ }, config2); if (argsDataset.issues) { throw new ValiError(argsDataset.issues); } return func(...argsDataset.value); }; return dataset; } }; } // src/actions/args/argsAsync.ts // @__NO_SIDE_EFFECTS__ function argsAsync(schema) { return { kind: "transformation", type: "args", reference: argsAsync, async: false, schema, "~run"(dataset, config2) { const func = dataset.value; dataset.value = async (...args2) => { const argsDataset = await schema["~run"]({ value: args2 }, config2); if (argsDataset.issues) { throw new ValiError(argsDataset.issues); } return func(...argsDataset.value); }; return dataset; } }; } // src/actions/await/awaitAsync.ts // @__NO_SIDE_EFFECTS__ function awaitAsync() { return { kind: "transformation", type: "await", reference: awaitAsync, async: true, async "~run"(dataset) { dataset.value = await dataset.value; return dataset; } }; } // src/regex.ts var BASE64_REGEX = /^(?:[\da-z+/]{4})*(?:[\da-z+/]{2}==|[\da-z+/]{3}=)?$/iu; var BIC_REGEX = /^[A-Z]{6}(?!00)[\dA-Z]{2}(?:[\dA-Z]{3})?$/u; var CUID2_REGEX = /^[a-z][\da-z]*$/u; var DECIMAL_REGEX = /^[+-]?\d+(?:\.\d+)?$/u; var DIGITS_REGEX = /^\d+$/u; var EMAIL_REGEX = /^[\w+-]+(?:\.[\w+-]+)*@[\da-z]+(?:[.-][\da-z]+)*\.[a-z]{2,}$/iu; var EMOJI_REGEX = ( // eslint-disable-next-line redos-detector/no-unsafe-regex, regexp/no-dupe-disjunctions -- false positives /^(?:[\u{1F1E6}-\u{1F1FF}]{2}|\u{1F3F4}[\u{E0061}-\u{E007A}]{2}[\u{E0030}-\u{E0039}\u{E0061}-\u{E007A}]{1,3}\u{E007F}|(?:\p{Emoji}\uFE0F\u20E3?|\p{Emoji_Modifier_Base}\p{Emoji_Modifier}?|\p{Emoji_Presentation})(?:\u200D(?:\p{Emoji}\uFE0F\u20E3?|\p{Emoji_Modifier_Base}\p{Emoji_Modifier}?|\p{Emoji_Presentation}))*)+$/u ); var HEXADECIMAL_REGEX = /^(?:0[hx])?[\da-fA-F]+$/u; var HEX_COLOR_REGEX = /^#(?:[\da-fA-F]{3,4}|[\da-fA-F]{6}|[\da-fA-F]{8})$/u; var IMEI_REGEX = /^\d{15}$|^\d{2}-\d{6}-\d{6}-\d$/u; var IPV4_REGEX = ( // eslint-disable-next-line redos-detector/no-unsafe-regex -- false positive /^(?:(?:[1-9]|1\d|2[0-4])?\d|25[0-5])(?:\.(?:(?:[1-9]|1\d|2[0-4])?\d|25[0-5])){3}$/u ); var IPV6_REGEX = /^(?:(?:[\da-f]{1,4}:){7}[\da-f]{1,4}|(?:[\da-f]{1,4}:){1,7}:|(?:[\da-f]{1,4}:){1,6}:[\da-f]{1,4}|(?:[\da-f]{1,4}:){1,5}(?::[\da-f]{1,4}){1,2}|(?:[\da-f]{1,4}:){1,4}(?::[\da-f]{1,4}){1,3}|(?:[\da-f]{1,4}:){1,3}(?::[\da-f]{1,4}){1,4}|(?:[\da-f]{1,4}:){1,2}(?::[\da-f]{1,4}){1,5}|[\da-f]{1,4}:(?::[\da-f]{1,4}){1,6}|:(?:(?::[\da-f]{1,4}){1,7}|:)|fe80:(?::[\da-f]{0,4}){0,4}%[\da-z]+|::(?:f{4}(?::0{1,4})?:)?(?:(?:25[0-5]|(?:2[0-4]|1?\d)?\d)\.){3}(?:25[0-5]|(?:2[0-4]|1?\d)?\d)|(?:[\da-f]{1,4}:){1,4}:(?:(?:25[0-5]|(?:2[0-4]|1?\d)?\d)\.){3}(?:25[0-5]|(?:2[0-4]|1?\d)?\d))$/iu; var IP_REGEX = /^(?:(?:[1-9]|1\d|2[0-4])?\d|25[0-5])(?:\.(?:(?:[1-9]|1\d|2[0-4])?\d|25[0-5])){3}$|^(?:(?:[\da-f]{1,4}:){7}[\da-f]{1,4}|(?:[\da-f]{1,4}:){1,7}:|(?:[\da-f]{1,4}:){1,6}:[\da-f]{1,4}|(?:[\da-f]{1,4}:){1,5}(?::[\da-f]{1,4}){1,2}|(?:[\da-f]{1,4}:){1,4}(?::[\da-f]{1,4}){1,3}|(?:[\da-f]{1,4}:){1,3}(?::[\da-f]{1,4}){1,4}|(?:[\da-f]{1,4}:){1,2}(?::[\da-f]{1,4}){1,5}|[\da-f]{1,4}:(?::[\da-f]{1,4}){1,6}|:(?:(?::[\da-f]{1,4}){1,7}|:)|fe80:(?::[\da-f]{0,4}){0,4}%[\da-z]+|::(?:f{4}(?::0{1,4})?:)?(?:(?:25[0-5]|(?:2[0-4]|1?\d)?\d)\.){3}(?:25[0-5]|(?:2[0-4]|1?\d)?\d)|(?:[\da-f]{1,4}:){1,4}:(?:(?:25[0-5]|(?:2[0-4]|1?\d)?\d)\.){3}(?:25[0-5]|(?:2[0-4]|1?\d)?\d))$/iu; var ISO_DATE_REGEX = /^\d{4}-(?:0[1-9]|1[0-2])-(?:[12]\d|0[1-9]|3[01])$/u; var ISO_DATE_TIME_REGEX = /^\d{4}-(?:0[1-9]|1[0-2])-(?:[12]\d|0[1-9]|3[01])[T ](?:0\d|1\d|2[0-3]):[0-5]\d$/u; var ISO_TIME_REGEX = /^(?:0\d|1\d|2[0-3]):[0-5]\d$/u; var ISO_TIME_SECOND_REGEX = /^(?:0\d|1\d|2[0-3])(?::[0-5]\d){2}$/u; var ISO_TIMESTAMP_REGEX = /^\d{4}-(?:0[1-9]|1[0-2])-(?:[12]\d|0[1-9]|3[01])[T ](?:0\d|1\d|2[0-3])(?::[0-5]\d){2}(?:\.\d{1,9})?(?:Z|[+-](?:0\d|1\d|2[0-3])(?::?[0-5]\d)?)$/u; var ISO_WEEK_REGEX = /^\d{4}-W(?:0[1-9]|[1-4]\d|5[0-3])$/u; var MAC48_REGEX = /^(?:[\da-f]{2}:){5}[\da-f]{2}$|^(?:[\da-f]{2}-){5}[\da-f]{2}$|^(?:[\da-f]{4}\.){2}[\da-f]{4}$/iu; var MAC64_REGEX = /^(?:[\da-f]{2}:){7}[\da-f]{2}$|^(?:[\da-f]{2}-){7}[\da-f]{2}$|^(?:[\da-f]{4}\.){3}[\da-f]{4}$|^(?:[\da-f]{4}:){3}[\da-f]{4}$/iu; var MAC_REGEX = /^(?:[\da-f]{2}:){5}[\da-f]{2}$|^(?:[\da-f]{2}-){5}[\da-f]{2}$|^(?:[\da-f]{4}\.){2}[\da-f]{4}$|^(?:[\da-f]{2}:){7}[\da-f]{2}$|^(?:[\da-f]{2}-){7}[\da-f]{2}$|^(?:[\da-f]{4}\.){3}[\da-f]{4}$|^(?:[\da-f]{4}:){3}[\da-f]{4}$/iu; var NANO_ID_REGEX = /^[\w-]+$/u; var OCTAL_REGEX = /^(?:0o)?[0-7]+$/u; var RFC_EMAIL_REGEX = ( // eslint-disable-next-line regexp/prefer-w, no-useless-escape, regexp/no-useless-escape, regexp/require-unicode-regexp /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/ ); var SLUG_REGEX = /^[\da-z]+(?:[-_][\da-z]+)*$/u; var ULID_REGEX = /^[\da-hjkmnp-tv-zA-HJKMNP-TV-Z]{26}$/u; var UUID_REGEX = /^[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}$/iu; // src/actions/base64/base64.ts // @__NO_SIDE_EFFECTS__ function base64(message) { return { kind: "validation", type: "base64", reference: base64, async: false, expects: null, requirement: BASE64_REGEX, message, "~run"(dataset, config2) { if (dataset.typed && !this.requirement.test(dataset.value)) { _addIssue(this, "Base64", dataset, config2); } return dataset; } }; } // src/actions/bic/bic.ts // @__NO_SIDE_EFFECTS__ function bic(message) { return { kind: "validation", type: "bic", reference: bic, async: false, expects: null, requirement: BIC_REGEX, message, "~run"(dataset, config2) { if (dataset.typed && !this.requirement.test(dataset.value)) { _addIssue(this, "BIC", dataset, config2); } return dataset; } }; } // src/actions/brand/brand.ts // @__NO_SIDE_EFFECTS__ function brand(name) { return { kind: "transformation", type: "brand", reference: brand, async: false, name, "~run"(dataset) { return dataset; } }; } // src/actions/bytes/bytes.ts // @__NO_SIDE_EFFECTS__ function bytes(requirement, message) { return { kind: "validation", type: "bytes", reference: bytes, async: false, expects: `${requirement}`, requirement, message, "~run"(dataset, config2) { if (dataset.typed) { const length2 = _getByteCount(dataset.value); if (length2 !== this.requirement) { _addIssue(this, "bytes", dataset, config2, { received: `${length2}` }); } } return dataset; } }; } // src/actions/check/check.ts // @__NO_SIDE_EFFECTS__ function check(requirement, message) { return { kind: "validation", type: "check", reference: check, async: false, expects: null, requirement, message, "~run"(dataset, config2) { if (dataset.typed && !this.requirement(dataset.value)) { _addIssue(this, "input", dataset, config2); } return dataset; } }; } // src/actions/check/checkAsync.ts // @__NO_SIDE_EFFECTS__ function checkAsync(requirement, message) { return { kind: "validation", type: "check", reference: checkAsync, async: true, expects: null, requirement, message, async "~run"(dataset, config2) { if (dataset.typed && !await this.requirement(dataset.value)) { _addIssue(this, "input", dataset, config2); } return dataset; } }; } // src/actions/checkItems/checkItems.ts // @__NO_SIDE_EFFECTS__ function checkItems(requirement, message) { return { kind: "validation", type: "check_items", reference: checkItems, async: false, expects: null, requirement, message, "~run"(dataset, config2) { if (dataset.typed) { for (let index = 0; index < dataset.value.length; index++) { const item = dataset.value[index]; if (!this.requirement(item, index, dataset.value)) { _addIssue(this, "item", dataset, config2, { input: item, path: [ { type: "array", origin: "value", input: dataset.value, key: index, value: item } ] }); } } } return dataset; } }; } // src/actions/checkItems/checkItemsAsync.ts // @__NO_SIDE_EFFECTS__ function checkItemsAsync(requirement, message) { return { kind: "validation", type: "check_items", reference: checkItemsAsync, async: true, expects: null, requirement, message, async "~run"(dataset, config2) { if (dataset.typed) { const requirementResults = await Promise.all( dataset.value.map(this.requirement) ); for (let index = 0; index < dataset.value.length; index++) { if (!requirementResults[index]) { const item = dataset.value[index]; _addIssue(this, "item", dataset, config2, { input: item, path: [ { type: "array", origin: "value", input: dataset.value, key: index, value: item } ] }); } } } return dataset; } }; } // src/actions/creditCard/creditCard.ts var CREDIT_CARD_REGEX = /^(?:\d{14,19}|\d{4}(?: \d{3,6}){2,4}|\d{4}(?:-\d{3,6}){2,4})$/u; var SANITIZE_REGEX = /[- ]/gu; var PROVIDER_REGEX_LIST = [ // American Express /^3[47]\d{13}$/u, // Diners Club /^3(?:0[0-5]|[68]\d)\d{11,13}$/u, // Discover /^6(?:011|5\d{2})\d{12,15}$/u, // JCB /^(?:2131|1800|35\d{3})\d{11}$/u, // Mastercard // eslint-disable-next-line redos-detector/no-unsafe-regex /^5[1-5]\d{2}|(?:222\d|22[3-9]\d|2[3-6]\d{2}|27[01]\d|2720)\d{12}$/u, // UnionPay /^(?:6[27]\d{14,17}|81\d{14,17})$/u, // Visa /^4\d{12}(?:\d{3,6})?$/u ]; // @__NO_SIDE_EFFECTS__ function creditCard(message) { return { kind: "validation", type: "credit_card", reference: creditCard, async: false, expects: null, requirement(input) { let sanitized; return CREDIT_CARD_REGEX.test(input) && // Remove any hyphens and blanks (sanitized = input.replace(SANITIZE_REGEX, "")) && // Check if it matches a provider PROVIDER_REGEX_LIST.some((regex2) => regex2.test(sanitized)) && // Check if passes luhn algorithm _isLuhnAlgo(sanitized); }, message, "~run"(dataset, config2) { if (dataset.typed && !this.requirement(dataset.value)) { _addIssue(this, "credit card", dataset, config2); } return dataset; } }; } // src/actions/cuid2/cuid2.ts // @__NO_SIDE_EFFECTS__ function cuid2(message) { return { kind: "validation", type: "cuid2", reference: cuid2, async: false, expects: null, requirement: CUID2_REGEX, message, "~run"(dataset, config2) { if (dataset.typed && !this.requirement.test(dataset.value)) { _addIssue(this, "Cuid2", dataset, config2); } return dataset; } }; } // src/actions/decimal/decimal.ts // @__NO_SIDE_EFFECTS__ function decimal(message) { return { kind: "validation", type: "decimal", reference: decimal, async: false, expects: null, requirement: DECIMAL_REGEX, message, "~run"(dataset, config2) { if (dataset.typed && !this.requirement.test(dataset.value)) { _addIssue(this, "decimal", dataset, config2); } return dataset; } }; } // src/actions/description/description.ts // @__NO_SIDE_EFFECTS__ function description(description_) { return { kind: "metadata", type: "description", reference: description, description: description_ }; } // src/actions/digits/digits.ts // @__NO_SIDE_EFFECTS__ function digits(message) { return { kind: "validation", type: "digits", reference: digits, async: false, expects: null, requirement: DIGITS_REGEX, message, "~run"(dataset, config2) { if (dataset.typed && !this.requirement.test(dataset.value)) { _addIssue(this, "digits", dataset, config2); } return dataset; } }; } // src/actions/email/email.ts // @__NO_SIDE_EFFECTS__ function email(message) { return { kind: "validation", type: "email", reference: email, expects: null, async: false, requirement: EMAIL_REGEX, message, "~run"(dataset, config2) { if (dataset.typed && !this.requirement.test(dataset.value)) { _addIssue(this, "email", dataset, config2); } return dataset; } }; } // src/actions/emoji/emoji.ts // @__NO_SIDE_EFFECTS__ function emoji(message) { return { kind: "validation", type: "emoji", reference: emoji, async: false, expects: null, requirement: EMOJI_REGEX, message, "~run"(dataset, config2) { if (dataset.typed && !this.requirement.test(dataset.value)) { _addIssue(this, "emoji", dataset, config2); } return dataset; } }; } // src/actions/empty/empty.ts // @__NO_SIDE_EFFECTS__ function empty(message) { return { kind: "validation", type: "empty", reference: empty, async: false, expects: "0", message, "~run"(dataset, config2) { if (dataset.typed && dataset.value.length > 0) { _addIssue(this, "length", dataset, config2, { received: `${dataset.value.length}` }); } return dataset; } }; } // src/actions/endsWith/endsWith.ts // @__NO_SIDE_EFFECTS__ function endsWith(requirement, message) { return { kind: "validation", type: "ends_with", reference: endsWith, async: false, expects: `"${requirement}"`, requirement, message, "~run"(dataset, config2) { if (dataset.typed && !dataset.value.endsWith(this.requirement)) { _addIssue(this, "end", dataset, config2, { received: `"${dataset.value.slice(-this.requirement.length)}"` }); } return dataset; } }; } // src/actions/everyItem/everyItem.ts // @__NO_SIDE_EFFECTS__ function everyItem(requirement, message) { return { kind: "validation", type: "every_item", reference: everyItem, async: false, expects: null, requirement, message, "~run"(dataset, config2) { if (dataset.typed && !dataset.value.every(this.requirement)) { _addIssue(this, "item", dataset, config2); } return dataset; } }; } // src/actions/excludes/excludes.ts // @__NO_SIDE_EFFECTS__ function excludes(requirement, message) { const received = _stringify(requirement); return { kind: "validation", type: "excludes", reference: excludes, async: false, expects: `!${received}`, requirement, message, "~run"(dataset, config2) { if (dataset.typed && dataset.value.includes(this.requirement)) { _addIssue(this, "content", dataset, config2, { received }); } return dataset; } }; } // src/actions/filterItems/filterItems.ts // @__NO_SIDE_EFFECTS__ function filterItems(operation) { return { kind: "transformation", type: "filter_items", reference: filterItems, async: false, operation, "~run"(dataset) { dataset.value = dataset.value.filter(this.operation); return dataset; } }; } // src/actions/findItem/findItem.ts // @__NO_SIDE_EFFECTS__ function findItem(operation) { return { kind: "transformation", type: "find_item", reference: findItem, async: false, operation, "~run"(dataset) { dataset.value = dataset.value.find(this.operation); return dataset; } }; } // src/actions/finite/finite.ts // @__NO_SIDE_EFFECTS__ function finite(message) { return { kind: "validation", type: "finite", reference: finite, async: false, expects: null, requirement: Number.isFinite, message, "~run"(dataset, config2) { if (dataset.typed && !this.requirement(dataset.value)) { _addIssue(this, "finite", dataset, config2); } return dataset; } }; } // src/actions/graphemes/graphemes.ts // @__NO_SIDE_EFFECTS__ function graphemes(requirement, message) { return { kind: "validation", type: "graphemes", reference: graphemes, async: false, expects: `${requirement}`, requirement, message, "~run"(dataset, config2) { if (dataset.typed) { const count = _getGraphemeCount(dataset.value); if (count !== this.requirement) { _addIssue(this, "graphemes", dataset, config2, { received: `${count}` }); } } return dataset; } }; } // src/actions/gtValue/gtValue.ts // @__NO_SIDE_EFFECTS__ function gtValue(requirement, message) { return { kind: "validation", type: "gt_value", reference: gtValue, async: false, expects: `>${requirement instanceof Date ? requirement.toJSON() : _stringify(requirement)}`, requirement, message, "~run"(dataset, config2) { if (dataset.typed && !(dataset.value > this.requirement)) { _addIssue(this, "value", dataset, config2, { received: dataset.value instanceof Date ? dataset.value.toJSON() : _stringify(dataset.value) }); } return dataset; } }; } // src/actions/hash/hash.ts var HASH_LENGTHS = { md4: 32, md5: 32, sha1: 40, sha256: 64, sha384: 96, sha512: 128, ripemd128: 32, ripemd160: 40, tiger128: 32, tiger160: 40, tiger192: 48, crc32: 8, crc32b: 8, adler32: 8 }; // @__NO_SIDE_EFFECTS__ function hash(types, message) { return { kind: "validation", type: "hash", reference: hash, expects: null, async: false, requirement: RegExp( types.map((type) => `^[a-f0-9]{${HASH_LENGTHS[type]}}$`).join("|"), "iu" ), message, "~run"(dataset, config2) { if (dataset.typed && !this.requirement.test(dataset.value)) { _addIssue(this, "hash", dataset, config2); } return dataset; } }; } // src/actions/hexadecimal/hexadecimal.ts // @__NO_SIDE_EFFECTS__ function hexadecimal(message) { return { kind: "validation", type: "hexadecimal", reference: hexadecimal, async: false, expects: null, requirement: HEXADECIMAL_REGEX, message, "~run"(dataset, config2) { if (dataset.typed && !this.requirement.test(dataset.value)) { _addIssue(this, "hexadecimal", dataset, config2); } return dataset; } }; } // src/actions/hexColor/hexColor.ts // @__NO_SIDE_EFFECTS__ function hexColor(message) { return { kind: "validation", type: "hex_color", reference: hexColor, async: false, expects: null, requirement: HEX_COLOR_REGEX, message, "~run"(dataset, config2) { if (dataset.typed && !this.requirement.test(dataset.value)) { _addIssue(this, "hex color", dataset, config2); } return dataset; } }; } // src/actions/imei/imei.ts // @__NO_SIDE_EFFECTS__ function imei(message) { return { kind: "validation", type: "imei", reference: imei, async: false, expects: null, requirement(input) { return IMEI_REGEX.test(input) && _isLuhnAlgo(input); }, message, "~run"(dataset, config2) { if (dataset.typed && !this.requirement(dataset.value)) { _addIssue(this, "IMEI", dataset, config2); } return dataset; } }; } // src/actions/includes/includes.ts // @__NO_SIDE_EFFECTS__ function includes(requirement, message) { const expects = _stringify(requirement); return { kind: "validation", type: "includes", reference: includes, async: false, expects, requirement, message, "~run"(dataset, config2) { if (dataset.typed && !dataset.value.includes(this.requirement)) { _addIssue(this, "content", dataset, config2, { received: `!${expects}` }); } return dataset; } }; } // src/actions/integer/integer.ts // @__NO_SIDE_EFFECTS__ function integer(message) { return { kind: "validation", type: "integer", reference: integer, async: false, expects: null, requirement: Number.isInteger, message, "~run"(dataset, config2) { if (dataset.typed && !this.requirement(dataset.value)) { _addIssue(this, "integer", dataset, config2); } return dataset; } }; } // src/actions/ip/ip.ts // @__NO_SIDE_EFFECTS__ function ip(message) { return { kind: "validation", type: "ip", reference: ip, async: false, expects: null, requirement: IP_REGEX, message, "~run"(dataset, config2) { if (dataset.typed && !this.requirement.test(dataset.value)) { _addIssue(this, "IP", dataset, config2); } return dataset; } }; } // src/actions/ipv4/ipv4.ts // @__NO_SIDE_EFFECTS__ function ipv4(message) { return { kind: "validation", type: "ipv4", reference: ipv4, async: false, expects: null, requirement: IPV4_REGEX, message, "~run"(dataset, config2) { if (dataset.typed && !this.requirement.test(dataset.value)) { _addIssue(this, "IPv4", dataset, config2); } return dataset; } }; } // src/actions/ipv6/ipv6.ts // @__NO_SIDE_EFFECTS__ function ipv6(message) { return { kind: "validation", type: "ipv6", reference: ipv6, async: false, expects: null, requirement: IPV6_REGEX, message, "~run"(dataset, config2) { if (dataset.typed && !this.requirement.test(dataset.value)) { _addIssue(this, "IPv6", dataset, config2); } return dataset; } }; } // src/actions/isoDate/isoDate.ts // @__NO_SIDE_EFFECTS__ function isoDate(message) { return { kind: "validation", type: "iso_date", reference: isoDate, async: false, expects: null, requirement: ISO_DATE_REGEX, message, "~run"(dataset, config2) { if (dataset.typed && !this.requirement.test(dataset.value)) { _addIssue(this, "date", dataset, config2); } return dataset; } }; } // src/actions/isoDateTime/isoDateTime.ts // @__NO_SIDE_EFFECTS__ function isoDateTime(message) { return { kind: "validation", type: "iso_date_time", reference: isoDateTime, async: false, expects: null, requirement: ISO_DATE_TIME_REGEX, message, "~run"(dataset, config2) { if (dataset.typed && !this.requirement.test(dataset.value)) { _addIssue(this, "date-time", dataset, config2); } return dataset; } }; } // src/actions/isoTime/isoTime.ts // @__NO_SIDE_EFFECTS__ function isoTime(message) { return { kind: "validation", type: "iso_time", reference: isoTime, async: false, expects: null, requirement: ISO_TIME_REGEX, message, "~run"(dataset, config2) { if (dataset.typed && !this.requirement.test(dataset.value)) { _addIssue(this, "time", dataset, config2); } return dataset; } }; } // src/actions/isoTimeSecond/isoTimeSecond.ts // @__NO_SIDE_EFFECTS__ function isoTimeSecond(message) { return { kind: "validation", type: "iso_time_second", reference: isoTimeSecond, async: false, expects: null, requirement: ISO_TIME_SECOND_REGEX, message, "~run"(dataset, config2) { if (dataset.typed && !this.requirement.test(dataset.value)) { _addIssue(this, "time-second", dataset, config2); } return dataset; } }; } // src/actions/isoTimestamp/isoTimestamp.ts // @__NO_SIDE_EFFECTS__ function isoTimestamp(message) { return { kind: "validation", type: "iso_timestamp", reference: isoTimestamp, async: false, expects: null, requirement: ISO_TIMESTAMP_REGEX, message, "~run"(dataset, config2) { if (dataset.typed && !this.requirement.test(dataset.value)) { _addIssue(this, "timestamp", dataset, config2); } return dataset; } }; } // src/actions/isoWeek/isoWeek.ts // @__NO_SIDE_EFFECTS__ function isoWeek(message) { return { kind: "validation", type: "iso_week", reference: isoWeek, async: false, expects: null, requirement: ISO_WEEK_REGEX, message, "~run"(dataset, config2) { if (dataset.typed && !this.requirement.test(dataset.value)) { _addIssue(this, "week", dataset, config2); } return dataset; } }; } // src/actions/length/length.ts // @__NO_SIDE_EFFECTS__ function length(requirement, message) { return { kind: "validation", type: "length", reference: length, async: false, expects: `${requirement}`, requirement, message, "~run"(dataset, config2) { if (dataset.typed && dataset.value.length !== this.requirement) { _addIssue(this, "length", dataset, config2, { received: `${dataset.value.length}` }); } return dataset; } }; } // src/actions/ltValue/ltValue.ts // @__NO_SIDE_EFFECTS__ function ltValue(requirement, message) { return { kind: "validation", type: "lt_value", reference: ltValue, async: false, expects: `<${requirement instanceof Date ? requirement.toJSON() : _stringify(requirement)}`, requirement, message, "~run"(dataset, config2) { if (dataset.typed && !(dataset.value < this.requirement)) { _addIssue(this, "value", dataset, config2, { received: dataset.value instanceof Date ? dataset.value.toJSON() : _stringify(dataset.value) }); } return dataset; } }; } // src/actions/mac/mac.ts // @__NO_SIDE_EFFECTS__ function mac(message) { return { kind: "validation", type: "mac", reference: mac, async: false, expects: null, requirement: MAC_REGEX, message, "~run"(dataset, config2) { if (dataset.typed && !this.requirement.test(dataset.value)) { _addIssue(this, "MAC", dataset, config2); } return dataset; } }; } // src/actions/mac48/mac48.ts // @__NO_SIDE_EFFECTS__ function mac48(message) { return { kind: "validation", type: "mac48", reference: mac48, async: false, expects: null, requirement: MAC48_REGEX, message, "~run"(dataset, config2) { if (dataset.typed && !this.requirement.test(dataset.value)) { _addIssue(this, "48-bit MAC", dataset, config2); } return dataset; } }; } // src/actions/mac64/mac64.ts // @__NO_SIDE_EFFECTS__ function mac64(message) { return { kind: "validation", type: "mac64", reference: mac64, async: false, expects: null, requirement: MAC64_REGEX, message, "~run"(dataset, config2) { if (dataset.typed && !this.requirement.test(dataset.value)) { _addIssue(this, "64-bit MAC", dataset, config2); } return dataset; } }; } // src/actions/mapItems/mapItems.ts // @__NO_SIDE_EFFECTS__ function mapItems(operation) { return { kind: "transformation", type: "map_items", reference: mapItems, async: false, operation, "~run"(dataset) { dataset.value = dataset.value.map(this.operation); return dataset; } }; } // src/actions/maxBytes/maxBytes.ts // @__NO_SIDE_EFFECTS__ function maxBytes(requirement, message) { return { kind: "validation", type: "max_bytes", reference: maxBytes, async: false, expects: `<=${requirement}`, requirement, message, "~run"(dataset, config2) { if (dataset.typed) { const length2 = _getByteCount(dataset.value); if (length2 > this.requirement) { _addIssue(this, "bytes", dataset, config2, { received: `${length2}` }); } } return dataset; } }; } // src/actions/maxGraphemes/maxGraphemes.ts // @__NO_SIDE_EFFECTS__ function maxGraphemes(requirement, message) { return { kind: "validation", type: "max_graphemes", reference: maxGraphemes, async: false, expects: `<=${requirement}`, requirement, message, "~run"(dataset, config2) { if (dataset.typed) { const count = _getGraphemeCount(dataset.value); if (count > this.requirement) { _addIssue(this, "graphemes", dataset, config2, { received: `${count}` }); } } return dataset; } }; } // src/actions/maxLength/maxLength.ts // @__NO_SIDE_EFFECTS__ function maxLength(requirement, message) { return { kind: "validation", type: "max_length", reference: maxLength, async: false, expects: `<=${requirement}`, requirement, message, "~run"(dataset, config2) { if (dataset.typed && dataset.value.length > this.requirement) { _addIssue(this, "length", dataset, config2, { received: `${dataset.value.length}` }); } return dataset; } }; } // src/actions/maxSize/maxSize.ts // @__NO_SIDE_EFFECTS__ function maxSize(requirement, message) { return { kind: "validation", type: "max_size", reference: maxSize, async: false, expects: `<=${requirement}`, requirement, message, "~run"(dataset, config2) { if (dataset.typed && dataset.value.size > this.requirement) { _addIssue(this, "size", dataset, config2, { received: `${dataset.value.size}` }); } return dataset; } }; } // src/actions/maxValue/maxValue.ts // @__NO_SIDE_EFFECTS__ function maxValue(requirement, message) { return { kind: "validation", type: "max_value", reference: maxValue, async: false, expects: `<=${requirement instanceof Date ? requirement.toJSON() : _stringify(requirement)}`, requirement, message, "~run"(dataset, config2) { if (dataset.typed && !(dataset.value <= this.requirement)) { _addIssue(this, "value", dataset, config2, { received: dataset.value instanceof Date ? dataset.value.toJSON() : _stringify(dataset.value) }); } return dataset; } }; } // src/actions/maxWords/maxWords.ts // @__NO_SIDE_EFFECTS__ function maxWords(locales, requirement, message) { return { kind: "validation", type: "max_words", reference: maxWords, async: false, expects: `<=${requirement}`, locales, requirement, message, "~run"(dataset, config2) { if (dataset.typed) { const count = _getWordCount(this.locales, dataset.value); if (count > this.requirement) { _addIssue(this, "words", dataset, config2, { received: `${count}` }); } } return dataset; } }; } // src/actions/metadata/metadata.ts // @__NO_SIDE_EFFECTS__ function metadata(metadata_) { return { kind: "metadata", type: "metadata", reference: metadata, metadata: metadata_ }; } // src/actions/mimeType/mimeType.ts // @__NO_SIDE_EFFECTS__ function mimeType(requirement, message) { return { kind: "validation", type: "mime_type", reference: mimeType, async: false, expects: _joinExpects( requirement.map((option) => `"${option}"`), "|" ), requirement, message, "~run"(dataset, config2) { if (dataset.typed && !this.requirement.includes(dataset.value.type)) { _addIssue(this, "MIME type", dataset, config2, { received: `"${dataset.value.type}"` }); } return dataset; } }; } // src/actions/minBytes/minBytes.ts // @__NO_SIDE_EFFECTS__ function minBytes(requirement, message) { return { kind: "validation", type: "min_bytes", reference: minBytes, async: false, expects: `>=${requirement}`, requirement, message, "~run"(dataset, config2) { if (dataset.typed) { const length2 = _getByteCount(dataset.value); if (length2 < this.requirement) { _addIssue(this, "bytes", dataset, config2, { received: `${length2}` }); } } return dataset; } }; } // src/actions/minGraphemes/minGraphemes.ts // @__NO_SIDE_EFFECTS__ function minGraphemes(requirement, message) { return { kind: "validation", type: "min_graphemes", reference: minGraphemes, async: false, expects: `>=${requirement}`, requirement, message, "~run"(dataset, config2) { if (dataset.typed) { const count = _getGraphemeCount(dataset.value); if (count < this.requirement) { _addIssue(this, "graphemes", dataset, config2, { received: `${count}` }); } } return dataset; } }; } // src/actions/minLength/minLength.ts // @__NO_SIDE_EFFECTS__ function minLength(requirement, message) { return { kind: "validation", type: "min_length", reference: minLength, async: false, expects: `>=${