@formkit/rules
Version:
Validation rules for FormKit
1 lines • 29.9 kB
Source Map (JSON)
{"version":3,"sources":["../src/accepted.ts","../src/date_after.ts","../src/date_after_or_equal.ts","../src/date_after_node.ts","../src/alpha.ts","../src/alpha_spaces.ts","../src/alphanumeric.ts","../src/date_before.ts","../src/date_before_node.ts","../src/date_before_or_equal.ts","../src/between.ts","../src/confirm.ts","../src/contains_alpha.ts","../src/contains_alpha_spaces.ts","../src/contains_alphanumeric.ts","../src/contains_lowercase.ts","../src/contains_numeric.ts","../src/contains_symbol.ts","../src/contains_uppercase.ts","../src/date_between.ts","../src/date_format.ts","../src/email.ts","../src/ends_with.ts","../src/is.ts","../src/length.ts","../src/lowercase.ts","../src/matches.ts","../src/max.ts","../src/min.ts","../src/not.ts","../src/number.ts","../src/require_one.ts","../src/required.ts","../src/starts_with.ts","../src/symbol.ts","../src/uppercase.ts","../src/url.ts"],"names":["accepted","has","between","confirm","date_between","email","ends_with","is","length","min","max","matches","eq","not","number","empty","required","starts_with","url"],"mappings":";AAOA,IAAM,WAAkC,SAASA,UAAS,EAAE,MAAM,GAAG;AACnE,SAAO,CAAC,OAAO,MAAM,KAAK,GAAG,MAAM,MAAM,EAAE,SAAS,KAAe;AACrE;AAEA,SAAS,YAAY;AAErB,IAAO,mBAAQ;;;ACLf,IAAM,aAAoC,SACxC,EAAE,MAAM,GACR,UAAU,OACV;AACA,QAAM,YAAY,KAAK,MAAM,WAAW,oBAAI,KAAK,CAAC;AAClD,QAAM,aAAa,KAAK,MAAM,OAAO,KAAK,CAAC;AAC3C,SAAO,MAAM,UAAU,IAAI,QAAQ,aAAa;AAClD;AAEA,IAAO,qBAAQ;;;ACTf,IAAM,sBAA6C,SACjD,EAAE,MAAM,GACR,UAAU,OACV;AACA,QAAM,YAAY,KAAK,MAAM,WAAW,oBAAI,KAAK,CAAC;AAClD,QAAM,aAAa,KAAK,MAAM,OAAO,KAAK,CAAC;AAC3C,SAAO,MAAM,UAAU,IAAI,QAAQ,aAAa,aAAa,eAAe;AAC9E;AAEA,IAAO,8BAAQ;;;ACTf,IAAM,kBAAyC,SAC7C,MACA,SACA;AACA,MAAI,CAAC;AAAS,WAAO;AAErB,QAAM,aAAa,KAAK,MAAM,OAAO,KAAK,KAAK,CAAC;AAChD,QAAM,eAAe,KAAK,MAAM,OAAO,KAAK,GAAG,OAAO,GAAG,KAAK,CAAC;AAE/D,MAAI,MAAM,YAAY;AAAG,WAAO;AAEhC,SAAO,MAAM,UAAU,IAAI,QAAQ,aAAa;AAClD;AAEA,IAAO,0BAAQ;;;ACtBf,SAAS,WAAW;AAQpB,IAAM,QAA+B,SAAU,EAAE,MAAM,GAAG,MAAM,WAAW;AACzE,QAAM,OAAO;AAAA,IACX,SAAS;AAAA,IACT,OAAO;AAAA,EACT;AACA,QAAM,cAAmC,IAAI,MAAM,GAAG,IAAI,MAAM;AAChE,SAAO,KAAK,WAAW,EAAE,KAAK,OAAO,KAAK,CAAC;AAC7C;AAEA,IAAO,gBAAQ;;;ACjBf,SAAS,OAAAC,YAAW;AAQpB,IAAM,eAAsC,SAC1C,EAAE,MAAM,GACR,MAAM,WACN;AACA,QAAM,OAAO;AAAA,IACX,SAAS;AAAA,IACT,OAAO;AAAA,EACT;AACA,QAAM,cAAmCA,KAAI,MAAM,GAAG,IAAI,MAAM;AAChE,SAAO,KAAK,WAAW,EAAE,KAAK,OAAO,KAAK,CAAC;AAC7C;AAEA,IAAO,uBAAQ;;;ACpBf,SAAS,OAAAA,YAAW;AAQpB,IAAM,eAAsC,SAC1C,EAAE,MAAM,GACR,MAAM,WACN;AACA,QAAM,OAAO;AAAA,IACX,SAAS;AAAA,IACT,OAAO;AAAA,EACT;AACA,QAAM,cAAmCA,KAAI,MAAM,GAAG,IAAI,MAAM;AAChE,SAAO,KAAK,WAAW,EAAE,KAAK,OAAO,KAAK,CAAC;AAC7C;AAEA,IAAO,uBAAQ;;;ACbf,IAAM,cAAqC,SACzC,EAAE,MAAM,GACR,UAAU,OACV;AACA,QAAM,YAAY,KAAK,MAAM,WAAW,oBAAI,KAAK,CAAC;AAClD,QAAM,aAAa,KAAK,MAAM,OAAO,KAAK,CAAC;AAC3C,SAAO,MAAM,UAAU,IAAI,QAAQ,aAAa;AAClD;AAEA,IAAO,sBAAQ;;;ACRf,IAAM,mBAA0C,SAC9C,MACA,SACA;AACA,MAAI,CAAC;AAAS,WAAO;AAErB,QAAM,aAAa,KAAK,MAAM,OAAO,KAAK,KAAK,CAAC;AAChD,QAAM,eAAe,KAAK,MAAM,OAAO,KAAK,GAAG,OAAO,GAAG,KAAK,CAAC;AAE/D,MAAI,MAAM,YAAY;AAAG,WAAO;AAEhC,SAAO,MAAM,UAAU,IAAI,QAAQ,aAAa;AAClD;AAEA,IAAO,2BAAQ;;;ACff,IAAM,uBAA8C,SAClD,EAAE,MAAM,GACR,UAAU,OACV;AACA,QAAM,YAAY,KAAK,MAAM,WAAW,oBAAI,KAAK,CAAC;AAClD,QAAM,aAAa,KAAK,MAAM,OAAO,KAAK,CAAC;AAC3C,SAAO,MAAM,UAAU,IAAI,QAAQ,aAAa,aAAa,eAAe;AAC9E;AAEA,IAAO,+BAAQ;;;ACTf,IAAM,UAAiC,SAASC,SAC9C,EAAE,MAAM,GACR,MACA,IACA;AACA,MAAI,CAAC,MAAM,KAAe,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE,GAAG;AACzD,UAAM,MAAM,IAAK;AACjB,WAAO,OAAO,IAAI;AAClB,SAAK,OAAO,EAAE;AACd,UAAM,CAAC,GAAG,CAAC,IAAI,QAAQ,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,IAAI;AAClD,WAAO,OAAO,IAAI,KAAK,OAAO,IAAI;AAAA,EACpC;AACA,SAAO;AACT;AAEA,IAAO,kBAAQ;;;ACpBf,IAAM,aAAa;AAOnB,IAAM,UAAiC,SAASC,SAC9C,MACA,SACA,aAAa,SACb;AACA,MAAI,CAAC,SAAS;AACZ,cAAU,WAAW,KAAK,KAAK,IAAI,IAC/B,KAAK,KAAK,QAAQ,YAAY,EAAE,IAChC,GAAG,KAAK,IAAI;AAAA,EAClB;AACA,QAAM,eAAe,KAAK,GAAG,OAAO,GAAG;AACvC,SAAO,eAAe,WAClB,KAAK,UAAU,eACf,KAAK,SAAS;AACpB;AAEA,IAAO,kBAAQ;;;ACzBf,SAAS,OAAAF,YAAW;AAQpB,IAAM,iBAAwC,SAC5C,EAAE,MAAM,GACR,MAAM,WACN;AACA,QAAM,OAAO;AAAA,IACX,SAAS;AAAA,IACT,OAAO;AAAA,EACT;AACA,QAAM,cAAmCA,KAAI,MAAM,GAAG,IAAI,MAAM;AAChE,SAAO,KAAK,WAAW,EAAE,KAAK,OAAO,KAAK,CAAC;AAC7C;AAEA,IAAO,yBAAQ;;;ACpBf,SAAS,OAAAA,YAAW;AAQpB,IAAM,wBAA+C,SACnD,EAAE,MAAM,GACR,MAAM,WACN;AACA,QAAM,OAAO;AAAA,IACX,SAAS;AAAA,IACT,OAAO;AAAA,EACT;AACA,QAAM,cAAmCA,KAAI,MAAM,GAAG,IAAI,MAAM;AAChE,SAAO,KAAK,WAAW,EAAE,KAAK,OAAO,KAAK,CAAC;AAC7C;AAEA,IAAO,gCAAQ;;;ACpBf,SAAS,OAAAA,YAAW;AAQpB,IAAM,wBAA+C,SACnD,EAAE,MAAM,GACR,MAAM,WACN;AACA,QAAM,OAAO;AAAA,IACX,SAAS;AAAA,IACT,OAAO;AAAA,EACT;AACA,QAAM,cAAmCA,KAAI,MAAM,GAAG,IAAI,MAAM;AAChE,SAAO,KAAK,WAAW,EAAE,KAAK,OAAO,KAAK,CAAC;AAC7C;AAEA,IAAO,gCAAQ;;;ACpBf,SAAS,OAAAA,YAAW;AAQpB,IAAM,qBAA4C,SAChD,EAAE,MAAM,GACR,MAAM,WACN;AACA,QAAM,OAAO;AAAA,IACX,SAAS;AAAA,IACT,OAAO;AAAA,EACT;AACA,QAAM,cAAmCA,KAAI,MAAM,GAAG,IAAI,MAAM;AAChE,SAAO,KAAK,WAAW,EAAE,KAAK,OAAO,KAAK,CAAC;AAC7C;AAEA,IAAO,6BAAQ;;;ACbf,IAAM,mBAA0C,SAAS,OAAO,EAAE,MAAM,GAAG;AACzE,SAAO,QAAQ,KAAK,OAAO,KAAK,CAAC;AACnC;AAEA,IAAO,2BAAQ;;;ACJf,IAAM,kBAAyC,SAAU,EAAE,MAAM,GAAG;AAClE,SAAO,iBAAiB,KAAK,OAAO,KAAK,CAAC;AAC5C;AAEA,IAAO,0BAAQ;;;ACXf,SAAS,OAAAA,YAAW;AAQpB,IAAM,qBAA4C,SAChD,EAAE,MAAM,GACR,MAAM,WACN;AACA,QAAM,OAAO;AAAA,IACX,SAAS;AAAA,IACT,OAAO;AAAA,EACT;AACA,QAAM,cAAmCA,KAAI,MAAM,GAAG,IAAI,MAAM;AAChE,SAAO,KAAK,WAAW,EAAE,KAAK,OAAO,KAAK,CAAC;AAC7C;AAEA,IAAO,6BAAQ;;;ACbf,IAAM,eAAsC,SAASG,cACnD,EAAE,MAAM,GACR,OACA,OACA;AACA,UAAQ,iBAAiB,OAAO,MAAM,QAAQ,IAAI,KAAK,MAAM,KAAK;AAClE,UAAQ,iBAAiB,OAAO,MAAM,QAAQ,IAAI,KAAK,MAAM,KAAK;AAClE,QAAM,YACJ,iBAAiB,OAAO,MAAM,QAAQ,IAAI,KAAK,MAAM,OAAO,KAAK,CAAC;AACpE,MAAI,SAAS,CAAC,OAAO;AACnB,YAAQ;AACR,YAAQ,KAAK,IAAI;AAAA,EACnB,WAAW,CAAC,SAAS,CAAC,WAAW;AAC/B,WAAO;AAAA,EACT;AACA,SAAO,aAAa,SAAS,aAAa;AAC5C;AAEA,IAAO,uBAAQ;;;ACzBf,SAAS,sBAAsB;AAQ/B,IAAM,cAAqC,SAAS,KAClD,EAAE,MAAM,GACR,QACA;AACA,MAAI,UAAU,OAAO,WAAW,UAAU;AACxC,WAAO,eAAe,MAAM,EAAE,KAAK,OAAO,KAAK,CAAC;AAAA,EAClD;AACA,SAAO,CAAC,MAAM,KAAK,MAAM,OAAO,KAAK,CAAC,CAAC;AACzC;AAEA,IAAO,sBAAQ;;;ACXf,IAAM,QAA+B,SAASC,OAAM,EAAE,MAAM,GAAG;AAC7D,QAAM,UAAU;AAChB,SAAO,QAAQ,KAAK,OAAO,KAAK,CAAC;AACnC;AAEA,IAAO,gBAAQ;;;ACLf,IAAM,YAAmC,SAASC,WAChD,EAAE,MAAM,MACL,OACH;AACA,MAAI,OAAO,UAAU,YAAY,MAAM,QAAQ;AAC7C,WAAO,MAAM,KAAK,CAAC,SAAS;AAC1B,aAAO,MAAM,SAAS,IAAI;AAAA,IAC5B,CAAC;AAAA,EACH,WAAW,OAAO,UAAU,YAAY,MAAM,WAAW,GAAG;AAC1D,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAEA,IAAO,oBAAQ;;;ACrBf,SAAS,UAAU;AAQnB,IAAM,KAA4B,SAASC,IAAG,EAAE,MAAM,MAAM,OAAc;AACxE,SAAO,MAAM,KAAK,CAAC,SAAS;AAC1B,QAAI,OAAO,SAAS,UAAU;AAC5B,aAAO,GAAG,MAAM,KAAK;AAAA,IACvB;AACA,WAAO,QAAQ;AAAA,EACjB,CAAC;AACH;AAEA,IAAO,aAAQ;;;ACVf,IAAM,SAAgC,SAASC,QAC7C,EAAE,MAAM,GACR,QAAQ,GACR,SAAS,UACT;AACA,UAAQ,SAAS,KAAK;AACtB,WAAS,MAAM,SAAS,MAAM,CAAC,IAAI,WAAW,SAAS,MAAM;AAC7D,QAAMC,OAAM,SAAS,SAAS,QAAQ;AACtC,QAAMC,OAAM,UAAU,QAAQ,SAAS;AACvC,MAAI,OAAO,UAAU,YAAY,MAAM,QAAQ,KAAK,GAAG;AACrD,WAAO,MAAM,UAAUD,QAAO,MAAM,UAAUC;AAAA,EAChD,WAAW,SAAS,OAAO,UAAU,UAAU;AAC7C,UAAMF,UAAS,OAAO,KAAK,KAAK,EAAE;AAClC,WAAOA,WAAUC,QAAOD,WAAUE;AAAA,EACpC;AACA,SAAO;AACT;AAEA,IAAO,iBAAQ;;;ACzBf,SAAS,OAAAT,YAAW;AAQpB,IAAM,YAAmC,SAAU,EAAE,MAAM,GAAG,MAAM,WAAW;AAC7E,QAAM,OAAO;AAAA,IACX,SAAS;AAAA,IACT,iBAAiB;AAAA,IACjB,eAAe;AAAA,IACf,sBAAsB;AAAA,IACtB,OAAO;AAAA,EACT;AACA,QAAM,cAAkGA,KAAI,MAAM,GAAG,IAAI,MAAM;AAC/H,SAAO,KAAK,WAAW,EAAE,KAAK,OAAO,KAAK,CAAC;AAC7C;AAEA,IAAO,oBAAQ;;;ACbf,IAAM,UAAiC,SAASU,SAAQ,EAAE,MAAM,MAAM,OAAO;AAC3E,SAAO,MAAM,KAAK,CAAC,YAAY;AAC7B,QACE,OAAO,YAAY,YACnB,QAAQ,OAAO,GAAG,CAAC,MAAM,OACzB,QAAQ,OAAO,EAAE,MAAM,KACvB;AACA,gBAAU,IAAI,OAAO,QAAQ,OAAO,GAAG,QAAQ,SAAS,CAAC,CAAC;AAAA,IAC5D;AACA,QAAI,mBAAmB,QAAQ;AAC7B,aAAO,QAAQ,KAAK,OAAO,KAAK,CAAC;AAAA,IACnC;AACA,WAAO,YAAY;AAAA,EACrB,CAAC;AACH;AAEA,IAAO,kBAAQ;;;AChBf,IAAM,MAA6B,SAASD,KAAI,EAAE,MAAM,GAAG,UAAU,IAAI;AACvE,MAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,WAAO,MAAM,UAAU;AAAA,EACzB;AACA,SAAO,OAAO,KAAK,KAAK,OAAO,OAAO;AACxC;AAEA,IAAO,cAAQ;;;ACPf,IAAM,MAA6B,SAASD,KAAI,EAAE,MAAM,GAAG,UAAU,GAAG;AACtE,MAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,WAAO,MAAM,UAAU;AAAA,EACzB;AACA,SAAO,OAAO,KAAK,KAAK,OAAO,OAAO;AACxC;AAEA,IAAO,cAAQ;;;ACbf,SAAS,MAAAG,WAAU;AAOnB,IAAM,MAA6B,SAASC,KAAI,EAAE,MAAM,MAAM,OAAO;AACnE,SAAO,CAAC,MAAM,KAAK,CAAC,SAAS;AAC3B,QAAI,OAAO,SAAS,UAAU;AAC5B,aAAOD,IAAG,MAAM,KAAK;AAAA,IACvB;AACA,WAAO,SAAS;AAAA,EAClB,CAAC;AACH;AAEA,IAAO,cAAQ;;;ACVf,IAAME,UAAgC,SAASA,QAAO,EAAE,MAAM,GAAG;AAC/D,SAAO,CAAC,MAAM,KAAe;AAC/B;AAEA,IAAO,iBAAQA;;;ACXf,SAAS,aAAa;AAQtB,IAAM,cAAqC,SACzC,SACG,YACH;AACA,MAAI,CAAC,MAAM,KAAK,KAAK;AAAG,WAAO;AAE/B,QAAM,SAAS,WAAW,IAAI,UAAQ,KAAK,GAAG,IAAI,GAAG,KAAK;AAC1D,SAAO,OAAO,KAAK,WAAS,CAAC,MAAM,KAAK,CAAC;AAC3C;AAEA,YAAY,YAAY;AAExB,IAAO,sBAAQ;;;ACpBf,SAAS,SAAAC,cAAa;AAQtB,IAAM,WAAkC,SAASC,UAAS,EAAE,MAAM,GAAG,SAAS,WAAW;AACvF,SAAO,WAAW,UAAU,OAAO,UAAU,WACzC,CAACD,OAAM,MAAM,KAAK,CAAC,IACnB,CAACA,OAAM,KAAK;AAClB;AAKA,SAAS,YAAY;AAErB,IAAO,mBAAQ;;;ACZf,IAAM,cAAqC,SAASE,aAClD,EAAE,MAAM,MACL,OACH;AACA,MAAI,OAAO,UAAU,YAAY,MAAM,QAAQ;AAC7C,WAAO,MAAM,KAAK,CAAC,SAAS;AAC1B,aAAO,MAAM,WAAW,IAAI;AAAA,IAC9B,CAAC;AAAA,EACH,WAAW,OAAO,UAAU,YAAY,MAAM,WAAW,GAAG;AAC1D,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAEA,IAAO,sBAAQ;;;ACdf,IAAM,SAAgC,SAAU,EAAE,MAAM,GAAG;AACzD,SAAO,oBAAoB,KAAK,OAAO,KAAK,CAAC;AAC/C;AAEA,IAAO,iBAAQ;;;ACXf,SAAS,OAAAhB,aAAW;AAQpB,IAAM,YAAmC,SAAU,EAAE,MAAM,GAAG,MAAM,WAAW;AAC7E,QAAM,OAAO;AAAA,IACX,SAAS;AAAA,IACT,OAAO;AAAA,EACT;AACA,QAAM,cAAmCA,MAAI,MAAM,GAAG,IAAI,MAAM;AAChE,SAAO,KAAK,WAAW,EAAE,KAAK,OAAO,KAAK,CAAC;AAC7C;AAEA,IAAO,oBAAQ;;;ACVf,IAAM,MAA6B,SAASiB,KAAI,EAAE,MAAM,MAAM,OAAO;AACnE,MAAI;AACF,UAAM,YAAY,MAAM,SAAS,QAAQ,CAAC,SAAS,QAAQ;AAC3D,UAAMA,OAAM,IAAI,IAAI,OAAO,KAAK,CAAC;AACjC,WAAO,UAAU,SAASA,KAAI,QAAQ;AAAA,EACxC,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAEA,IAAO,cAAQ","sourcesContent":["import { FormKitValidationRule } from '@formkit/validation'\n\n/**\n * Determine if the given input's value was should be considered \"accepted\".\n * @param context - The FormKitValidationContext\n * @public\n */\nconst accepted: FormKitValidationRule = function accepted({ value }) {\n return ['yes', 'on', '1', 1, true, 'true'].includes(value as string)\n}\n\naccepted.skipEmpty = false\n\nexport default accepted\n","import { FormKitValidationRule } from '@formkit/validation'\n\n/**\n * Determine if the given input's value is after a given date.\n * Defaults to current time.\n * @param context - The FormKitValidationContext\n * @public\n */\nconst date_after: FormKitValidationRule = function (\n { value },\n compare = false\n) {\n const timestamp = Date.parse(compare || new Date())\n const fieldValue = Date.parse(String(value))\n return isNaN(fieldValue) ? false : fieldValue > timestamp\n}\n\nexport default date_after\n","import { FormKitValidationRule } from '@formkit/validation'\n\n/**\n * Determine if the given input's value is after or equal to a given date.\n * Defaults to current time.\n * @param context - The FormKitValidationContext\n * @public\n */\nconst date_after_or_equal: FormKitValidationRule = function (\n { value },\n compare = false\n) {\n const timestamp = Date.parse(compare || new Date())\n const fieldValue = Date.parse(String(value))\n return isNaN(fieldValue) ? false : fieldValue > timestamp || fieldValue === timestamp\n}\n\nexport default date_after_or_equal\n","import { FormKitValidationRule } from '@formkit/validation'\n\n/**\n * Determine if the given input's value is after a given date.\n * Defaults to current time.\n * @param context - The FormKitValidationContext\n * @public\n */\nconst date_after_node: FormKitValidationRule = function (\n node,\n address: string\n) {\n if (!address) return false\n\n const fieldValue = Date.parse(String(node.value))\n const foreignValue = Date.parse(String(node.at(address)?.value))\n\n if (isNaN(foreignValue)) return true\n\n return isNaN(fieldValue) ? false : fieldValue > foreignValue\n}\n\nexport default date_after_node\n","import { has } from '@formkit/utils'\nimport { FormKitValidationRule } from '@formkit/validation'\n\n/**\n * Determine if the given input's value contains only alpha characters.\n * @param context - The FormKitValidationContext\n * @public\n */\nconst alpha: FormKitValidationRule = function ({ value }, set = 'default') {\n const sets = {\n default: /^\\p{L}+$/u,\n latin: /^[a-z]+$/i,\n }\n const selectedSet: 'default' | 'latin' = has(sets, set) ? set : 'default'\n return sets[selectedSet].test(String(value))\n}\n\nexport default alpha\n","import { has } from '@formkit/utils'\nimport { FormKitValidationRule } from '@formkit/validation'\n\n/**\n * Determine if the given input's value contains only alpha characters or space.\n * @param context - The FormKitValidationContext\n * @public\n */\nconst alpha_spaces: FormKitValidationRule = function (\n { value },\n set = 'default'\n) {\n const sets = {\n default: /^[\\p{L} ]+$/u,\n latin: /^[a-z ]+$/i,\n }\n const selectedSet: 'default' | 'latin' = has(sets, set) ? set : 'default'\n return sets[selectedSet].test(String(value))\n}\n\nexport default alpha_spaces\n","import { has } from '@formkit/utils'\nimport { FormKitValidationRule } from '@formkit/validation'\n\n/**\n * Determine if the given input's value contains only alpha or numeric characters.\n * @param context - The FormKitValidationContext\n * @public\n */\nconst alphanumeric: FormKitValidationRule = function (\n { value },\n set = 'default'\n) {\n const sets = {\n default: /^[0-9\\p{L}]+$/u,\n latin: /^[0-9a-z]+$/i,\n }\n const selectedSet: 'default' | 'latin' = has(sets, set) ? set : 'default'\n return sets[selectedSet].test(String(value))\n}\n\nexport default alphanumeric\n","import { FormKitValidationRule } from '@formkit/validation'\n\n/**\n * Determine if the given input's value is before a given date.\n * @param context - The FormKitValidationContext\n * @public\n */\nconst date_before: FormKitValidationRule = function (\n { value },\n compare = false\n) {\n const timestamp = Date.parse(compare || new Date())\n const fieldValue = Date.parse(String(value))\n return isNaN(fieldValue) ? false : fieldValue < timestamp\n}\n\nexport default date_before\n","import { FormKitValidationRule } from '@formkit/validation'\n\n/**\n * Determine if the given input's value is before a given date.\n * Defaults to current time.\n * @param context - The FormKitValidationContext\n * @public\n */\nconst date_before_node: FormKitValidationRule = function (\n node,\n address: string\n) {\n if (!address) return false\n\n const fieldValue = Date.parse(String(node.value))\n const foreignValue = Date.parse(String(node.at(address)?.value))\n\n if (isNaN(foreignValue)) return true\n\n return isNaN(fieldValue) ? false : fieldValue < foreignValue\n}\n\nexport default date_before_node\n","import { FormKitValidationRule } from '@formkit/validation'\n\n/**\n * Determine if the given input's value is before or equal to a given date.\n * @param context - The FormKitValidationContext\n * @public\n */\nconst date_before_or_equal: FormKitValidationRule = function (\n { value },\n compare = false\n) {\n const timestamp = Date.parse(compare || new Date())\n const fieldValue = Date.parse(String(value))\n return isNaN(fieldValue) ? false : fieldValue < timestamp || fieldValue === timestamp\n}\n\nexport default date_before_or_equal\n","import { FormKitValidationRule } from '@formkit/validation'\n\n/**\n * Determine if the given input's value is between two other values.\n * @param context - The FormKitValidationContext\n * @public\n */\nconst between: FormKitValidationRule = function between(\n { value },\n from: any,\n to: any\n) {\n if (!isNaN(value as number) && !isNaN(from) && !isNaN(to)) {\n const val = 1 * (value as number)\n from = Number(from)\n to = Number(to)\n const [a, b] = from <= to ? [from, to] : [to, from]\n return val >= 1 * a && val <= 1 * b\n }\n return false\n}\n\nexport default between\n","import { FormKitValidationRule } from '@formkit/validation'\n\nconst hasConfirm = /(_confirm(?:ed)?)$/\n\n/**\n * Determine if the given input's value matches another input's value.\n * @param context - The FormKitValidationContext\n * @public\n */\nconst confirm: FormKitValidationRule = function confirm(\n node,\n address?,\n comparison = 'loose'\n) {\n if (!address) {\n address = hasConfirm.test(node.name)\n ? node.name.replace(hasConfirm, '')\n : `${node.name}_confirm`\n }\n const foreignValue = node.at(address)?.value\n return comparison === 'strict'\n ? node.value === foreignValue\n : node.value == foreignValue\n}\n\nexport default confirm\n","import { has } from '@formkit/utils'\nimport { FormKitValidationRule } from '@formkit/validation'\n\n/**\n * Determine if the given input's value contains alpha characters.\n * @param context - The FormKitValidationContext\n * @public\n */\nconst contains_alpha: FormKitValidationRule = function (\n { value },\n set = 'default'\n) {\n const sets = {\n default: /\\p{L}/u,\n latin: /[a-z]/i,\n }\n const selectedSet: 'default' | 'latin' = has(sets, set) ? set : 'default'\n return sets[selectedSet].test(String(value))\n}\n\nexport default contains_alpha\n","import { has } from '@formkit/utils'\nimport { FormKitValidationRule } from '@formkit/validation'\n\n/**\n * Determine if the given input's value contains alpha characters or space.\n * @param context - The FormKitValidationContext\n * @public\n */\nconst contains_alpha_spaces: FormKitValidationRule = function (\n { value },\n set = 'default'\n) {\n const sets = {\n default: /[\\p{L} ]/u,\n latin: /[a-z ]/i,\n }\n const selectedSet: 'default' | 'latin' = has(sets, set) ? set : 'default'\n return sets[selectedSet].test(String(value))\n}\n\nexport default contains_alpha_spaces\n","import { has } from '@formkit/utils'\nimport { FormKitValidationRule } from '@formkit/validation'\n\n/**\n * Determine if the given input's value contains alpha or numeric characters.\n * @param context - The FormKitValidationContext\n * @public\n */\nconst contains_alphanumeric: FormKitValidationRule = function (\n { value },\n set = 'default'\n) {\n const sets = {\n default: /[0-9\\p{L}]/u,\n latin: /[0-9a-z]/i,\n }\n const selectedSet: 'default' | 'latin' = has(sets, set) ? set : 'default'\n return sets[selectedSet].test(String(value))\n}\n\nexport default contains_alphanumeric\n","import { has } from '@formkit/utils'\nimport { FormKitValidationRule } from '@formkit/validation'\n\n/**\n * Determine if the given input's value contains lowercase characters.\n * @param context - The FormKitValidationContext\n * @public\n */\nconst contains_lowercase: FormKitValidationRule = function (\n { value },\n set = 'default'\n) {\n const sets = {\n default: /\\p{Ll}/u,\n latin: /[a-z]/,\n }\n const selectedSet: 'default' | 'latin' = has(sets, set) ? set : 'default'\n return sets[selectedSet].test(String(value))\n}\n\nexport default contains_lowercase\n","import { FormKitValidationRule } from '@formkit/validation'\n\n/**\n * Determine if the given input's value contains numeric characters.\n * @param context - The FormKitValidationContext\n * @public\n */\nconst contains_numeric: FormKitValidationRule = function number({ value }) {\n return /[0-9]/.test(String(value))\n}\n\nexport default contains_numeric\n","import { FormKitValidationRule } from '@formkit/validation'\n\n/**\n * Determine if the given input's value contains symbol characters.\n * @param context - The FormKitValidationContext\n * @public\n */\nconst contains_symbol: FormKitValidationRule = function ({ value }) {\n return /[!-/:-@[-`{-~]/.test(String(value))\n}\n\nexport default contains_symbol\n","import { has } from '@formkit/utils'\nimport { FormKitValidationRule } from '@formkit/validation'\n\n/**\n * Determine if the given input's value contains uppercase characters.\n * @param context - The FormKitValidationContext\n * @public\n */\nconst contains_uppercase: FormKitValidationRule = function (\n { value },\n set = 'default'\n) {\n const sets = {\n default: /\\p{Lu}/u,\n latin: /[A-Z]/,\n }\n const selectedSet: 'default' | 'latin' = has(sets, set) ? set : 'default'\n return sets[selectedSet].test(String(value))\n}\n\nexport default contains_uppercase\n","import { FormKitValidationRule } from '@formkit/validation'\n\n/**\n * Determine if the given input's value is between two other dates.\n * @param context - The FormKitValidationContext\n * @public\n */\nconst date_between: FormKitValidationRule = function date_between(\n { value },\n dateA,\n dateB\n) {\n dateA = dateA instanceof Date ? dateA.getTime() : Date.parse(dateA)\n dateB = dateB instanceof Date ? dateB.getTime() : Date.parse(dateB)\n const compareTo =\n value instanceof Date ? value.getTime() : Date.parse(String(value))\n if (dateA && !dateB) {\n dateB = dateA\n dateA = Date.now()\n } else if (!dateA || !compareTo) {\n return false\n }\n return compareTo >= dateA && compareTo <= dateB\n}\n\nexport default date_between\n","import { regexForFormat } from '@formkit/utils'\nimport { FormKitValidationRule } from '@formkit/validation'\n\n/**\n * Determine if the given input's value matches a specified date format.\n * @param context - The FormKitValidationContext\n * @public\n */\nconst date_format: FormKitValidationRule = function date(\n { value },\n format?: string\n) {\n if (format && typeof format === 'string') {\n return regexForFormat(format).test(String(value))\n }\n return !isNaN(Date.parse(String(value)))\n}\n\nexport default date_format\n","import { FormKitValidationRule } from '@formkit/validation'\n\n/**\n * Determine if the given input's value is a plausible email address.\n * @param context - The FormKitValidationContext\n * @public\n */\nconst email: FormKitValidationRule = function email({ value }) {\n const isEmail = /^(([^<>()\\[\\]\\.,;:\\s@\\\"]+(\\.[^<>()\\[\\]\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@(([^<>()[\\]\\.,;:\\s@\\\"]+\\.)+[^<>()[\\]\\.,;:\\s@\\\"]{2,})$/i\n return isEmail.test(String(value))\n}\n\nexport default email\n","import { FormKitValidationRule } from '@formkit/validation'\n\n/**\n * Determine if the given input's value ends with a given string.\n * @param context - The FormKitValidationContext\n * @public\n */\nconst ends_with: FormKitValidationRule = function ends_with(\n { value },\n ...stack: string[]\n) {\n if (typeof value === 'string' && stack.length) {\n return stack.some((item) => {\n return value.endsWith(item)\n })\n } else if (typeof value === 'string' && stack.length === 0) {\n return true\n }\n return false\n}\n\nexport default ends_with\n","import { eq } from '@formkit/utils'\nimport { FormKitValidationRule } from '@formkit/validation'\n\n/**\n * Determine if the given input's value is in a set of possible values.\n * @param context - The FormKitValidationContext\n * @public\n */\nconst is: FormKitValidationRule = function is({ value }, ...stack: any[]) {\n return stack.some((item) => {\n if (typeof item === 'object') {\n return eq(item, value)\n }\n return item == value\n })\n}\n\nexport default is\n","import { FormKitValidationRule } from '@formkit/validation'\n\n/**\n * Determine if the given input's value length is full width.\n * @param context - The FormKitValidationContext\n * @public\n */\nconst length: FormKitValidationRule = function length(\n { value },\n first = 0,\n second = Infinity\n) {\n first = parseInt(first)\n second = isNaN(parseInt(second)) ? Infinity : parseInt(second)\n const min = first <= second ? first : second\n const max = second >= first ? second : first\n if (typeof value === 'string' || Array.isArray(value)) {\n return value.length >= min && value.length <= max\n } else if (value && typeof value === 'object') {\n const length = Object.keys(value).length\n return length >= min && length <= max\n }\n return false\n}\n\nexport default length\n","import { has } from '@formkit/utils'\nimport { FormKitValidationRule } from '@formkit/validation'\n\n/**\n * Determine if the given input's value contains only lowercase characters.\n * @param context - The FormKitValidationContext\n * @public\n */\nconst lowercase: FormKitValidationRule = function ({ value }, set = 'default') {\n const sets = {\n default: /^\\p{Ll}+$/u,\n allow_non_alpha: /^[0-9\\p{Ll}!-/:-@[-`{-~]+$/u,\n allow_numeric: /^[0-9\\p{Ll}]+$/u,\n allow_numeric_dashes: /^[0-9\\p{Ll}-]+$/u,\n latin: /^[a-z]+$/,\n }\n const selectedSet: 'default' | 'allow_non_alpha' | 'allow_numeric' | 'allow_numeric_dashes' | 'latin' = has(sets, set) ? set : 'default'\n return sets[selectedSet].test(String(value))\n}\n\nexport default lowercase\n","import { FormKitValidationRule } from '@formkit/validation'\n\n/**\n * Determine if the given input's value matches one or more values or regular expressions.\n * @param context - The FormKitValidationContext\n * @public\n */\nconst matches: FormKitValidationRule = function matches({ value }, ...stack) {\n return stack.some((pattern) => {\n if (\n typeof pattern === 'string' &&\n pattern.substr(0, 1) === '/' &&\n pattern.substr(-1) === '/'\n ) {\n pattern = new RegExp(pattern.substr(1, pattern.length - 2))\n }\n if (pattern instanceof RegExp) {\n return pattern.test(String(value))\n }\n return pattern === value\n })\n}\n\nexport default matches\n","import { FormKitValidationRule } from '@formkit/validation'\n\n/**\n * Determine if the given input's value is less than or equal to the maximum.\n * @param context - The FormKitValidationContext\n * @public\n */\nconst max: FormKitValidationRule = function max({ value }, maximum = 10) {\n if (Array.isArray(value)) {\n return value.length <= maximum\n }\n return Number(value) <= Number(maximum)\n}\n\nexport default max\n","import { FormKitValidationRule } from '@formkit/validation'\n\n/**\n * Determine if the given input's value is greater than or equal to the minimum.\n * @param context - The FormKitValidationContext\n * @public\n */\nconst min: FormKitValidationRule = function min({ value }, minimum = 1) {\n if (Array.isArray(value)) {\n return value.length >= minimum\n }\n return Number(value) >= Number(minimum)\n}\n\nexport default min\n","import { FormKitValidationRule } from '@formkit/validation'\nimport { eq } from '@formkit/utils'\n\n/**\n * Determine if the given input's value is not in a given stack.\n * @param context - The FormKitValidationContext\n * @public\n */\nconst not: FormKitValidationRule = function not({ value }, ...stack) {\n return !stack.some((item) => {\n if (typeof item === 'object') {\n return eq(item, value)\n }\n return item === value\n })\n}\n\nexport default not\n","import { FormKitValidationRule } from '@formkit/validation'\n\n/**\n * Determine if the given input's value is numeric.\n * @param context - The FormKitValidationContext\n * @public\n */\nconst number: FormKitValidationRule = function number({ value }) {\n return !isNaN(value as number)\n}\n\nexport default number\n","import { empty } from '@formkit/utils'\nimport { FormKitValidationRule } from '@formkit/validation'\n\n/**\n * Determine if any of the given inputs have a value.\n * @param context - The FormKitValidationContext\n * @public\n */\nconst require_one: FormKitValidationRule = function (\n node,\n ...inputNames: string[]\n) {\n if (!empty(node.value)) return true\n\n const values = inputNames.map(name => node.at(name)?.value)\n return values.some(value => !empty(value))\n}\n\nrequire_one.skipEmpty = false\n\nexport default require_one\n","import { empty } from '@formkit/utils'\nimport { FormKitValidationRule } from '@formkit/validation'\n\n/**\n * Determine if the given input's value is required.\n * @param context - The FormKitValidationContext\n * @public\n */\nconst required: FormKitValidationRule = function required({ value }, action = 'default') {\n return action === 'trim' && typeof value === 'string'\n ? !empty(value.trim())\n : !empty(value)\n}\n\n/**\n * This rules should run even if the inputs is empty (obviously)\n */\nrequired.skipEmpty = false\n\nexport default required\n","import { FormKitValidationRule } from '@formkit/validation'\n\n/**\n * Determine if the given input's value starts with a substring.\n * @param context - The FormKitValidationContext\n * @public\n */\nconst starts_with: FormKitValidationRule = function starts_with(\n { value },\n ...stack\n) {\n if (typeof value === 'string' && stack.length) {\n return stack.some((item) => {\n return value.startsWith(item)\n })\n } else if (typeof value === 'string' && stack.length === 0) {\n return true\n }\n return false\n}\n\nexport default starts_with\n","import { FormKitValidationRule } from '@formkit/validation'\n\n/**\n * Determine if the given input's value contains only symbol characters.\n * @param context - The FormKitValidationContext\n * @public\n */\nconst symbol: FormKitValidationRule = function ({ value }) {\n return /^[!-/:-@[-`{-~]+$/.test(String(value))\n}\n\nexport default symbol\n","import { has } from '@formkit/utils'\nimport { FormKitValidationRule } from '@formkit/validation'\n\n/**\n * Determine if the given input's value contains only uppercase characters.\n * @param context - The FormKitValidationContext\n * @public\n */\nconst uppercase: FormKitValidationRule = function ({ value }, set = 'default') {\n const sets = {\n default: /^\\p{Lu}+$/u,\n latin: /^[A-Z]+$/,\n }\n const selectedSet: 'default' | 'latin' = has(sets, set) ? set : 'default'\n return sets[selectedSet].test(String(value))\n}\n\nexport default uppercase\n","import { FormKitValidationRule } from '@formkit/validation'\n\n/**\n * Determine if the given input's value is a URL.\n * @param context - The FormKitValidationContext\n * @public\n */\nconst url: FormKitValidationRule = function url({ value }, ...stack) {\n try {\n const protocols = stack.length ? stack : ['http:', 'https:']\n const url = new URL(String(value))\n return protocols.includes(url.protocol)\n } catch {\n return false\n }\n}\n\nexport default url\n"]}