validation-box
Version:
The only validation library - with flexible regex - you need.
1 lines • 4.01 kB
Source Map (JSON)
{"version":3,"sources":["../../src/manual/schema.ts"],"sourcesContent":["import { vboxSchema, validator } from \"../schemas\";\r\n\r\nconst userSchema = new vboxSchema({\r\n username: validator.username({\r\n required: true,\r\n min: 5,\r\n messages: {\r\n required: \"Username is required\",\r\n min: \"Username must be at least 5 characters\"\r\n }\r\n }),\r\n email: validator.email({\r\n required: true,\r\n allowedDomains: [\"gmail.com\"],\r\n messages: {\r\n required: \"Email is required\",\r\n domain: \"Only Gmail addresses are allowed\"\r\n }\r\n })\r\n}, // {\r\n// validateAll: true,\r\n// showErrors: true\r\n// }\r\n);\r\n\r\nconst testData = [\r\n { \r\n input: { \r\n username: \"admin\", \r\n email: \"user@gmail.com\", \r\n password: \"Secure@12345678901234\" \r\n } // ❌ Username \"admin\" is banned\r\n },\r\n { \r\n input: { \r\n username: \"test_123\", \r\n email: \"example@outlook.com\", \r\n password: \"Strong!P@ss4567890\" \r\n } // ✅ All valid\r\n },\r\n { \r\n input: { \r\n username: \"valid_user\", \r\n email: \"test@hotmail.com\", \r\n password: \"Valid@123\" \r\n } // ❌ Invalid email domain\r\n },\r\n { \r\n input: { \r\n username: \"ab\", \r\n email: \"test@gmail.com\", \r\n password: \"short\" \r\n } // ❌ Username too short, weak password\r\n }\r\n];\r\n\r\nconsole.log(\"\\n📌 Running Schema Tests...\\n\");\r\n\r\nlet passedTests = 0;\r\nconst totalTests = testData.length;\r\n\r\ntestData.forEach(({ input }, index) => {\r\n const result = userSchema.validate(input);\r\n \r\n console.log(`🔹 Test ${index + 1}:`);\r\n console.log(\"🔸 Input:\", JSON.stringify(input, null, 2));\r\n console.log(\"🔸 Result:\", JSON.stringify(result, null, 2));\r\n\r\n const expectedSuccess = Object.values(result.errors || {}).length === 0;\r\n const expected = expectedSuccess \r\n ? { success: true, data: input } \r\n : { success: false, errors: result.errors };\r\n\r\n console.log(\"🔸 Expected:\", JSON.stringify(expected, null, 2));\r\n\r\n const testPassed = JSON.stringify(result) === JSON.stringify(expected);\r\n if (testPassed) passedTests++;\r\n\r\n console.log(testPassed ? \"✅ Test Passed!\\n\" : \"❌ Test Failed!\\n\");\r\n});\r\n\r\n// Test Summary\r\nconsole.log(\"📊 Test Summary\");\r\nconsole.log(`✅ Passed: ${passedTests}/${totalTests}`);\r\nconsole.log(`❌ Failed: ${totalTests - passedTests}/${totalTests}\\n`);"],"mappings":";;;;;;;AAEA,IAAM,aAAa,IAAI;AAAA,EAAW;AAAA,IAChC,UAAU,UAAU,SAAS;AAAA,MAC3B,UAAU;AAAA,MACV,KAAK;AAAA,MACL,UAAU;AAAA,QACR,UAAU;AAAA,QACV,KAAK;AAAA,MACP;AAAA,IACF,CAAC;AAAA,IACD,OAAO,UAAU,MAAM;AAAA,MACrB,UAAU;AAAA,MACV,gBAAgB,CAAC,WAAW;AAAA,MAC5B,UAAU;AAAA,QACR,UAAU;AAAA,QACV,QAAQ;AAAA,MACV;AAAA,IACF,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAIA;AAEA,IAAM,WAAW;AAAA,EACf;AAAA,IACE,OAAO;AAAA,MACL,UAAU;AAAA,MACV,OAAO;AAAA,MACP,UAAU;AAAA,IACZ;AAAA;AAAA,EACF;AAAA,EACA;AAAA,IACE,OAAO;AAAA,MACL,UAAU;AAAA,MACV,OAAO;AAAA,MACP,UAAU;AAAA,IACZ;AAAA;AAAA,EACF;AAAA,EACA;AAAA,IACE,OAAO;AAAA,MACL,UAAU;AAAA,MACV,OAAO;AAAA,MACP,UAAU;AAAA,IACZ;AAAA;AAAA,EACF;AAAA,EACA;AAAA,IACE,OAAO;AAAA,MACL,UAAU;AAAA,MACV,OAAO;AAAA,MACP,UAAU;AAAA,IACZ;AAAA;AAAA,EACF;AACF;AAEA,QAAQ,IAAI,uCAAgC;AAE5C,IAAI,cAAc;AAClB,IAAM,aAAa,SAAS;AAE5B,SAAS,QAAQ,CAAC,EAAE,MAAM,GAAG,UAAU;AACrC,QAAM,SAAS,WAAW,SAAS,KAAK;AAExC,UAAQ,IAAI,kBAAW,QAAQ,CAAC,GAAG;AACnC,UAAQ,IAAI,oBAAa,KAAK,UAAU,OAAO,MAAM,CAAC,CAAC;AACvD,UAAQ,IAAI,qBAAc,KAAK,UAAU,QAAQ,MAAM,CAAC,CAAC;AAEzD,QAAM,kBAAkB,OAAO,OAAO,OAAO,UAAU,CAAC,CAAC,EAAE,WAAW;AACtE,QAAM,WAAW,kBACb,EAAE,SAAS,MAAM,MAAM,MAAM,IAC7B,EAAE,SAAS,OAAO,QAAQ,OAAO,OAAO;AAE5C,UAAQ,IAAI,uBAAgB,KAAK,UAAU,UAAU,MAAM,CAAC,CAAC;AAE7D,QAAM,aAAa,KAAK,UAAU,MAAM,MAAM,KAAK,UAAU,QAAQ;AACrE,MAAI,WAAY;AAEhB,UAAQ,IAAI,aAAa,0BAAqB,uBAAkB;AAClE,CAAC;AAGD,QAAQ,IAAI,wBAAiB;AAC7B,QAAQ,IAAI,kBAAa,WAAW,IAAI,UAAU,EAAE;AACpD,QAAQ,IAAI,kBAAa,aAAa,WAAW,IAAI,UAAU;AAAA,CAAI;","names":[]}