@mertcankocak/core-project 1.0.0 → 1.3.0
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/README.md +88 -7
- package/dist/components/FormikTextField/FormikTextField.d.ts +46 -0
- package/dist/components/FormikTextField/FormikTextField.d.ts.map +1 -0
- package/dist/components/FormikTextField/constants.d.ts +14 -0
- package/dist/components/FormikTextField/constants.d.ts.map +1 -0
- package/dist/components/FormikTextField/helpers.d.ts +9 -0
- package/dist/components/FormikTextField/helpers.d.ts.map +1 -0
- package/dist/components/FormikTextField/index.d.ts +5 -0
- package/dist/components/FormikTextField/index.d.ts.map +1 -0
- package/dist/components/index.d.ts +3 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/core-project.es.js +1288 -0
- package/dist/core-project.umd.js +30 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/stringUtils.d.ts +5 -0
- package/dist/utils/stringUtils.d.ts.map +1 -0
- package/dist/validators/creditCard.d.ts +15 -0
- package/dist/validators/creditCard.d.ts.map +1 -0
- package/dist/validators/date.d.ts +22 -0
- package/dist/validators/date.d.ts.map +1 -0
- package/dist/validators/email.d.ts +15 -0
- package/dist/validators/email.d.ts.map +1 -0
- package/dist/validators/file.d.ts +46 -0
- package/dist/validators/file.d.ts.map +1 -0
- package/dist/validators/iban.d.ts +15 -0
- package/dist/validators/iban.d.ts.map +1 -0
- package/dist/validators/index.d.ts +13 -0
- package/dist/validators/index.d.ts.map +1 -0
- package/dist/validators/name.d.ts +15 -0
- package/dist/validators/name.d.ts.map +1 -0
- package/dist/validators/password.d.ts +18 -0
- package/dist/validators/password.d.ts.map +1 -0
- package/dist/validators/phone.d.ts +16 -0
- package/dist/validators/phone.d.ts.map +1 -0
- package/dist/validators/plate.d.ts +16 -0
- package/dist/validators/plate.d.ts.map +1 -0
- package/dist/validators/tcKimlikNo.d.ts +57 -0
- package/dist/validators/tcKimlikNo.d.ts.map +1 -0
- package/dist/validators/types.d.ts +149 -0
- package/dist/validators/types.d.ts.map +1 -0
- package/dist/validators/vkn.d.ts +16 -0
- package/dist/validators/vkn.d.ts.map +1 -0
- package/package.json +26 -3
package/dist/core-project.umd.js
CHANGED
|
@@ -1 +1,30 @@
|
|
|
1
|
-
(function(n){typeof define=="function"&&define.amd?define(n):n()})(function(){"use strict"});
|
|
1
|
+
(function(f,Q){typeof exports=="object"&&typeof module<"u"?Q(exports,require("yup"),require("file-type"),require("react"),require("formik"),require("@mui/material"),require("lodash")):typeof define=="function"&&define.amd?define(["exports","yup","file-type","react","formik","@mui/material","lodash"],Q):(f=typeof globalThis<"u"?globalThis:f||self,Q(f.CoreProject={},f.Yup,f.FileType,f.React,f.Formik,f.MaterialUI,f._))})(this,function(f,Q,ze,z,fr,$,cr){"use strict";function dr(t){const i=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const o in t)if(o!=="default"){const u=Object.getOwnPropertyDescriptor(t,o);Object.defineProperty(i,o,u.get?u:{enumerable:!0,get:()=>t[o]})}}return i.default=t,Object.freeze(i)}const A=dr(Q),_e=/^[0-9]{11}$/;function Ae(t){if(!_e.test(t))return!1;const i=t.split("").map(Number);return!(i[0]===0||i.slice(0,9).reduce((l,r)=>l+r,0)%10!==i[9]||i.slice(0,10).reduce((l,r)=>l+r,0)%10!==i[10])}function mr(t){const{required:i=!1,message:o="Geçerli bir T.C. kimlik numarası giriniz",requiredMessage:u="T.C. kimlik numarası zorunludur",name:l="tcKimlikNo"}=t||{};let r=A.string();return i&&(r=r.required(u)),r=r.matches(_e,"T.C. kimlik numarası 11 haneli olmalıdır"),r=r.test({name:l,message:o,test(a){return!i&&(!a||a.trim()==="")?!0:i&&!a||!a||typeof a!="string"?!1:Ae(a)}}),r}const Ie=/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;function Me(t){return Ie.test(t)}function gr(t){const{required:i=!1,message:o="Geçerli bir email adresi giriniz",requiredMessage:u="Email zorunludur",name:l="email"}=t||{};let r=A.string();return i&&(r=r.required(u)),r=r.email(o).test({name:l,message:o,test(a){return!i&&(!a||a.trim()==="")?!0:i&&!a||!a||typeof a!="string"?!1:Me(a)}}),r}const Fe=/^(\+90\s?)?(0?5\d{2})\s?(\d{3})\s?(\d{2})\s?(\d{2})$/;function Ne(t){const i=t.replace(/\s+/g,"").replace(/[-\+()]/g,"");return i.length!==10&&i.length!==11||!i.match(/^(0?5\d{9})$/)?!1:Fe.test(t)||/^0?5\d{9}$/.test(i)}function hr(t){const{required:i=!1,message:o="Geçerli bir telefon numarası giriniz (05XX XXX XX XX)",requiredMessage:u="Telefon numarası zorunludur",name:l="phone"}=t||{};let r=A.string();return i&&(r=r.required(u)),r=r.test({name:l,message:o,test(a){return!i&&(!a||a.trim()==="")?!0:i&&!a||!a||typeof a!="string"?!1:Ne(a)}}),r}function pr(t,i){const{minLength:o=8,requireUppercase:u=!0,requireLowercase:l=!0,requireNumber:r=!0,requireSpecialChar:a=!0}=i||{},d=[];return t.length<o&&d.push(`Şifre en az ${o} karakter olmalıdır`),u&&!/[A-Z]/.test(t)&&d.push("Şifre en az bir büyük harf içermelidir"),l&&!/[a-z]/.test(t)&&d.push("Şifre en az bir küçük harf içermelidir"),r&&!/\d/.test(t)&&d.push("Şifre en az bir rakam içermelidir"),a&&!/[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]/.test(t)&&d.push("Şifre en az bir özel karakter içermelidir"),{isValid:d.length===0,errors:d}}function vr(t){const{required:i=!1,requiredMessage:o="Şifre zorunludur",minLength:u=8,requireUppercase:l=!0,requireLowercase:r=!0,requireNumber:a=!0,requireSpecialChar:d=!0,minLengthMessage:h=`Şifre en az ${u} karakter olmalıdır`,uppercaseMessage:S="Şifre en az bir büyük harf içermelidir",lowercaseMessage:R="Şifre en az bir küçük harf içermelidir",numberMessage:b="Şifre en az bir rakam içermelidir",specialCharMessage:E="Şifre en az bir özel karakter içermelidir"}=t||{};let p=A.string();return i&&(p=p.required(o)),p=p.min(u,h),l&&(p=p.matches(/[A-Z]/,S)),r&&(p=p.matches(/[a-z]/,R)),a&&(p=p.matches(/\d/,b)),d&&(p=p.matches(/[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]/,E)),p}function yr(t,i){const{required:o=!1,message:u="Şifreler eşleşmiyor",requiredMessage:l="Şifre tekrarı zorunludur"}=i||{};let r=A.string();return o&&(r=r.required(l)),r=r.oneOf([A.ref(t)],u),r}const Re=/^[a-zA-ZçğıöşüÇĞIİÖŞÜ\s]+$/;function xe(t){return!t||t.trim().length===0||t.trim().length<2?!1:Re.test(t)}function Er(t){const{required:i=!1,message:o="İsim sadece harf içermelidir",requiredMessage:u="İsim zorunludur",name:l="name"}=t||{};let r=A.string();return i&&(r=r.required(u)),r=r.min(2,"İsim en az 2 karakter olmalıdır").matches(Re,o).test({name:l,message:o,test(a){return!i&&(!a||a.trim()==="")?!0:i&&!a||!a||typeof a!="string"?!1:xe(a)}}),r}const qe=/^TR\d{2}[0-9A-Z]{4}\d{1}[0-9A-Z]{15,30}$/i;function Be(t){const i=t.replace(/\s+/g,"").toUpperCase();if(!qe.test(i))return!1;const u=(i.slice(4)+i.slice(0,4)).split("").map(r=>{const a=r.charCodeAt(0);return a>=65&&a<=90?a-55:r}).join("");return BigInt(u)%BigInt(97)===BigInt(1)}function br(t){const{required:i=!1,message:o="Geçerli bir IBAN numarası giriniz",requiredMessage:u="IBAN zorunludur",name:l="iban"}=t||{};let r=A.string();return i&&(r=r.required(u)),r=r.test({name:l,message:o,test(a){return!i&&(!a||a.trim()==="")?!0:i&&!a||!a||typeof a!="string"?!1:Be(a)}}),r}const Le=/^\d{13,19}$/;function Ve(t){const i=t.replace(/\s+/g,"").replace(/-/g,"");if(!Le.test(i))return!1;let o=0,u=!1;for(let l=i.length-1;l>=0;l--){let r=parseInt(i[l],10);u&&(r*=2,r>9&&(r-=9)),o+=r,u=!u}return o%10===0}function _r(t){const{required:i=!1,message:o="Geçerli bir kredi kartı numarası giriniz",requiredMessage:u="Kredi kartı numarası zorunludur",name:l="creditCard"}=t||{};let r=A.string();return i&&(r=r.required(u)),r=r.test({name:l,message:o,test(a){return!i&&(!a||a.trim()==="")?!0:i&&!a||!a||typeof a!="string"?!1:Ve(a)}}),r}const Ge=/^\d{10}$/;function $e(t){if(!Ge.test(t))return!1;const i=t.split("").map(Number);return i.slice(0,9).reduce((l,r,a)=>{const d=(a+1)%9||9;return l+r*d},0)%11%10===i[9]}function Rr(t){const{required:i=!1,message:o="Geçerli bir VKN (Vergi Kimlik Numarası) giriniz",requiredMessage:u="VKN zorunludur",name:l="vkn"}=t||{};let r=A.string();return i&&(r=r.required(u)),r=r.test({name:l,message:o,test(a){return!i&&(!a||a.trim()==="")?!0:i&&!a||!a||typeof a!="string"?!1:$e(a)}}),r}const Te=/^(\d{2})\s?([A-ZÇĞIİÖŞÜ]{1,3})\s?(\d{2,4})$/i;function Ue(t){const i=t.replace(/\s+/g," ").trim().toUpperCase();if(!Te.test(i))return!1;const o=i.match(Te);if(!o)return!1;const[,u,l,r]=o,a=parseInt(u,10);return!(a<1||a>81||l.length<1||l.length>3||r.length<2||r.length>4)}function Tr(t){const{required:i=!1,message:o="Geçerli bir araç plakası giriniz (örn: 34 ABC 123)",requiredMessage:u="Araç plakası zorunludur",name:l="plate"}=t||{};let r=A.string();return i&&(r=r.required(u)),r=r.test({name:l,message:o,test(a){return!i&&(!a||a.trim()==="")?!0:i&&!a||!a||typeof a!="string"?!1:Ue(a)}}),r}function ee(t){const i=t.split(".");return i.length>1?i[i.length-1].toLowerCase():""}async function kr(t,i){const{maxSize:o,minSize:u,allowedExtensions:l=[],allowedMimeTypes:r=[]}=i||{},a=[];if(o&&t.size>o){const d=(o/1048576).toFixed(2);a.push(`Dosya boyutu en fazla ${d} MB olmalıdır`)}if(u&&t.size<u){const d=(u/1048576).toFixed(2);a.push(`Dosya boyutu en az ${d} MB olmalıdır`)}if(l.length>0&&r.length===0&&console.warn("⚠️ UYARI: Sadece dosya uzantısı kontrolü yapılıyor. Güvenlik için 'allowedMimeTypes' parametresini kullanarak magic bytes kontrolü yapmanız önerilir."),l.length>0&&t instanceof File){const d=ee(t.name);l.includes(d)||a.push(`İzin verilen dosya uzantıları: ${l.join(", ")}`)}if(r.length>0)try{const d=await t.arrayBuffer(),h=new Uint8Array(d),S=await ze.fileTypeFromBuffer(h);S?r.includes(S.mime)||a.push(`Dosya tipi uyumsuz. Beklenen: ${r.join(", ")}, Tespit edilen: ${S.mime}. (Dosya uzantısı: ${t instanceof File?ee(t.name):"bilinmiyor"})`):a.push("Dosya tipi belirlenemedi. Dosya bozuk olabilir veya desteklenmeyen bir formatta olabilir.")}catch{a.push("Dosya tipi kontrol edilemedi. Dosya okunamadı.")}return{isValid:a.length===0,errors:a}}function Sr(t){const{required:i=!1,message:o="Geçerli bir dosya seçiniz",requiredMessage:u="Dosya zorunludur",name:l="file",maxSize:r,minSize:a,allowedExtensions:d=[],allowedMimeTypes:h=[],sizeMessage:S,extensionMessage:R}=t||{};let b=A.mixed();return i&&(b=b.required(u)),b=b.test({name:l,message:o||"Geçerli bir dosya seçiniz",async test(E){if(!i&&!E)return!0;if(i&&!E||!(E instanceof File))return!1;if(r&&E.size>r){const p=(r/1048576).toFixed(2);return this.createError({message:S||`Dosya boyutu en fazla ${p} MB olmalıdır`})}if(a&&E.size<a){const p=(a/1048576).toFixed(2);return this.createError({message:S||`Dosya boyutu en az ${p} MB olmalıdır`})}if(d.length>0){const p=ee(E.name);if(!d.includes(p))return this.createError({message:R||`İzin verilen dosya uzantıları: ${d.join(", ")}`})}if(h.length>0)try{const p=await E.arrayBuffer(),L=new Uint8Array(p),F=await ze.fileTypeFromBuffer(L);if(!F)return this.createError({message:"Dosya tipi belirlenemedi. Dosya bozuk olabilir veya desteklenmeyen bir formatta olabilir."});if(!h.includes(F.mime)){const ne=ee(E.name);return this.createError({message:`Dosya tipi uyumsuz. Beklenen: ${h.join(", ")}, Tespit edilen: ${F.mime}. (Dosya uzantısı: ${ne})`})}}catch{return this.createError({message:"Dosya tipi kontrol edilemedi. Dosya okunamadı."})}return!0}}),b}function Cr(t,i){const{minDate:o,maxDate:u}=i||{},l=typeof t=="string"?new Date(t):t;if(isNaN(l.getTime()))return{isValid:!1,error:"Geçersiz tarih formatı"};if(o){const r=typeof o=="string"?new Date(o):o;if(l<r)return{isValid:!1,error:`Tarih ${r.toLocaleDateString("tr-TR")} tarihinden sonra olmalıdır`}}if(u){const r=typeof u=="string"?new Date(u):u;if(l>r)return{isValid:!1,error:`Tarih ${r.toLocaleDateString("tr-TR")} tarihinden önce olmalıdır`}}return{isValid:!0}}function ke(t){const{required:i=!1,requiredMessage:o="Tarih zorunludur",minDate:u,maxDate:l,minDateMessage:r,maxDateMessage:a}=t||{};let d=A.date();if(i&&(d=d.required(o)),u){const h=typeof u=="string"?new Date(u):u;d=d.min(h,r||`Tarih ${h.toLocaleDateString("tr-TR")} tarihinden sonra olmalıdır`)}if(l){const h=typeof l=="string"?new Date(l):l;d=d.max(h,a||`Tarih ${h.toLocaleDateString("tr-TR")} tarihinden önce olmalıdır`)}return d}function Dr(t){return ke({...t,maxDate:new Date,maxDateMessage:(t==null?void 0:t.message)||"Tarih geçmiş bir tarih olmalıdır"})}function wr(t){return ke({...t,minDate:new Date,minDateMessage:(t==null?void 0:t.message)||"Tarih gelecek bir tarih olmalıdır"})}var Se={exports:{}},re={};/**
|
|
2
|
+
* @license React
|
|
3
|
+
* react-jsx-runtime.production.min.js
|
|
4
|
+
*
|
|
5
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
6
|
+
*
|
|
7
|
+
* This source code is licensed under the MIT license found in the
|
|
8
|
+
* LICENSE file in the root directory of this source tree.
|
|
9
|
+
*/var Xe;function Or(){if(Xe)return re;Xe=1;var t=z,i=Symbol.for("react.element"),o=Symbol.for("react.fragment"),u=Object.prototype.hasOwnProperty,l=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,r={key:!0,ref:!0,__self:!0,__source:!0};function a(d,h,S){var R,b={},E=null,p=null;S!==void 0&&(E=""+S),h.key!==void 0&&(E=""+h.key),h.ref!==void 0&&(p=h.ref);for(R in h)u.call(h,R)&&!r.hasOwnProperty(R)&&(b[R]=h[R]);if(d&&d.defaultProps)for(R in h=d.defaultProps,h)b[R]===void 0&&(b[R]=h[R]);return{$$typeof:i,type:d,key:E,ref:p,props:b,_owner:l.current}}return re.Fragment=o,re.jsx=a,re.jsxs=a,re}var te={};/**
|
|
10
|
+
* @license React
|
|
11
|
+
* react-jsx-runtime.development.js
|
|
12
|
+
*
|
|
13
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
14
|
+
*
|
|
15
|
+
* This source code is licensed under the MIT license found in the
|
|
16
|
+
* LICENSE file in the root directory of this source tree.
|
|
17
|
+
*/var Ye;function Pr(){return Ye||(Ye=1,process.env.NODE_ENV!=="production"&&function(){var t=z,i=Symbol.for("react.element"),o=Symbol.for("react.portal"),u=Symbol.for("react.fragment"),l=Symbol.for("react.strict_mode"),r=Symbol.for("react.profiler"),a=Symbol.for("react.provider"),d=Symbol.for("react.context"),h=Symbol.for("react.forward_ref"),S=Symbol.for("react.suspense"),R=Symbol.for("react.suspense_list"),b=Symbol.for("react.memo"),E=Symbol.for("react.lazy"),p=Symbol.for("react.offscreen"),L=Symbol.iterator,F="@@iterator";function ne(e){if(e===null||typeof e!="object")return null;var n=L&&e[L]||e[F];return typeof n=="function"?n:null}var q=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function C(e){{for(var n=arguments.length,s=new Array(n>1?n-1:0),c=1;c<n;c++)s[c-1]=arguments[c];de("error",e,s)}}function de(e,n,s){{var c=q.ReactDebugCurrentFrame,v=c.getStackAddendum();v!==""&&(n+="%s",s=s.concat([v]));var y=s.map(function(g){return String(g)});y.unshift("Warning: "+n),Function.prototype.apply.call(console[e],console,y)}}var me=!1,ge=!1,he=!1,ae=!1,pe=!1,ie;ie=Symbol.for("react.module.reference");function se(e){return!!(typeof e=="string"||typeof e=="function"||e===u||e===r||pe||e===l||e===S||e===R||ae||e===p||me||ge||he||typeof e=="object"&&e!==null&&(e.$$typeof===E||e.$$typeof===b||e.$$typeof===a||e.$$typeof===d||e.$$typeof===h||e.$$typeof===ie||e.getModuleId!==void 0))}function oe(e,n,s){var c=e.displayName;if(c)return c;var v=n.displayName||n.name||"";return v!==""?s+"("+v+")":s}function U(e){return e.displayName||"Context"}function I(e){if(e==null)return null;if(typeof e.tag=="number"&&C("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case u:return"Fragment";case o:return"Portal";case r:return"Profiler";case l:return"StrictMode";case S:return"Suspense";case R:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case d:var n=e;return U(n)+".Consumer";case a:var s=e;return U(s._context)+".Provider";case h:return oe(e,e.render,"ForwardRef");case b:var c=e.displayName||null;return c!==null?c:I(e.type)||"Memo";case E:{var v=e,y=v._payload,g=v._init;try{return I(g(y))}catch{return null}}}return null}var P=Object.assign,w=0,V,ve,X,ue,le,ye,fe;function N(){}N.__reactDisabledLog=!0;function Y(){{if(w===0){V=console.log,ve=console.info,X=console.warn,ue=console.error,le=console.group,ye=console.groupCollapsed,fe=console.groupEnd;var e={configurable:!0,enumerable:!0,value:N,writable:!0};Object.defineProperties(console,{info:e,log:e,warn:e,error:e,group:e,groupCollapsed:e,groupEnd:e})}w++}}function K(){{if(w--,w===0){var e={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:P({},e,{value:V}),info:P({},e,{value:ve}),warn:P({},e,{value:X}),error:P({},e,{value:ue}),group:P({},e,{value:le}),groupCollapsed:P({},e,{value:ye}),groupEnd:P({},e,{value:fe})})}w<0&&C("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var W=q.ReactCurrentDispatcher,B;function Z(e,n,s){{if(B===void 0)try{throw Error()}catch(v){var c=v.stack.trim().match(/\n( *(at )?)/);B=c&&c[1]||""}return`
|
|
18
|
+
`+B+e}}var k=!1,D;{var Ce=typeof WeakMap=="function"?WeakMap:Map;D=new Ce}function We(e,n){if(!e||k)return"";{var s=D.get(e);if(s!==void 0)return s}var c;k=!0;var v=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var y;y=W.current,W.current=null,Y();try{if(n){var g=function(){throw Error()};if(Object.defineProperty(g.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(g,[])}catch(j){c=j}Reflect.construct(e,[],g)}else{try{g.call()}catch(j){c=j}e.call(g.prototype)}}else{try{throw Error()}catch(j){c=j}e()}}catch(j){if(j&&c&&typeof j.stack=="string"){for(var m=j.stack.split(`
|
|
19
|
+
`),O=c.stack.split(`
|
|
20
|
+
`),_=m.length-1,T=O.length-1;_>=1&&T>=0&&m[_]!==O[T];)T--;for(;_>=1&&T>=0;_--,T--)if(m[_]!==O[T]){if(_!==1||T!==1)do if(_--,T--,T<0||m[_]!==O[T]){var M=`
|
|
21
|
+
`+m[_].replace(" at new "," at ");return e.displayName&&M.includes("<anonymous>")&&(M=M.replace("<anonymous>",e.displayName)),typeof e=="function"&&D.set(e,M),M}while(_>=1&&T>=0);break}}}finally{k=!1,W.current=y,K(),Error.prepareStackTrace=v}var H=e?e.displayName||e.name:"",G=H?Z(H):"";return typeof e=="function"&&D.set(e,G),G}function xr(e,n,s){return We(e,!1)}function qr(e){var n=e.prototype;return!!(n&&n.isReactComponent)}function Ee(e,n,s){if(e==null)return"";if(typeof e=="function")return We(e,qr(e));if(typeof e=="string")return Z(e);switch(e){case S:return Z("Suspense");case R:return Z("SuspenseList")}if(typeof e=="object")switch(e.$$typeof){case h:return xr(e.render);case b:return Ee(e.type,n,s);case E:{var c=e,v=c._payload,y=c._init;try{return Ee(y(v),n,s)}catch{}}}return""}var ce=Object.prototype.hasOwnProperty,Ze={},Je=q.ReactDebugCurrentFrame;function be(e){if(e){var n=e._owner,s=Ee(e.type,e._source,n?n.type:null);Je.setExtraStackFrame(s)}else Je.setExtraStackFrame(null)}function Br(e,n,s,c,v){{var y=Function.call.bind(ce);for(var g in e)if(y(e,g)){var m=void 0;try{if(typeof e[g]!="function"){var O=Error((c||"React class")+": "+s+" type `"+g+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof e[g]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw O.name="Invariant Violation",O}m=e[g](n,g,c,s,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(_){m=_}m&&!(m instanceof Error)&&(be(v),C("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",c||"React class",s,g,typeof m),be(null)),m instanceof Error&&!(m.message in Ze)&&(Ze[m.message]=!0,be(v),C("Failed %s type: %s",s,m.message),be(null))}}}var Lr=Array.isArray;function De(e){return Lr(e)}function Vr(e){{var n=typeof Symbol=="function"&&Symbol.toStringTag,s=n&&e[Symbol.toStringTag]||e.constructor.name||"Object";return s}}function Gr(e){try{return He(e),!1}catch{return!0}}function He(e){return""+e}function Qe(e){if(Gr(e))return C("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",Vr(e)),He(e)}var er=q.ReactCurrentOwner,$r={key:!0,ref:!0,__self:!0,__source:!0},rr,tr;function Ur(e){if(ce.call(e,"ref")){var n=Object.getOwnPropertyDescriptor(e,"ref").get;if(n&&n.isReactWarning)return!1}return e.ref!==void 0}function Xr(e){if(ce.call(e,"key")){var n=Object.getOwnPropertyDescriptor(e,"key").get;if(n&&n.isReactWarning)return!1}return e.key!==void 0}function Yr(e,n){typeof e.ref=="string"&&er.current}function Kr(e,n){{var s=function(){rr||(rr=!0,C("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",n))};s.isReactWarning=!0,Object.defineProperty(e,"key",{get:s,configurable:!0})}}function Wr(e,n){{var s=function(){tr||(tr=!0,C("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",n))};s.isReactWarning=!0,Object.defineProperty(e,"ref",{get:s,configurable:!0})}}var Zr=function(e,n,s,c,v,y,g){var m={$$typeof:i,type:e,key:n,ref:s,props:g,_owner:y};return m._store={},Object.defineProperty(m._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(m,"_self",{configurable:!1,enumerable:!1,writable:!1,value:c}),Object.defineProperty(m,"_source",{configurable:!1,enumerable:!1,writable:!1,value:v}),Object.freeze&&(Object.freeze(m.props),Object.freeze(m)),m};function Jr(e,n,s,c,v){{var y,g={},m=null,O=null;s!==void 0&&(Qe(s),m=""+s),Xr(n)&&(Qe(n.key),m=""+n.key),Ur(n)&&(O=n.ref,Yr(n,v));for(y in n)ce.call(n,y)&&!$r.hasOwnProperty(y)&&(g[y]=n[y]);if(e&&e.defaultProps){var _=e.defaultProps;for(y in _)g[y]===void 0&&(g[y]=_[y])}if(m||O){var T=typeof e=="function"?e.displayName||e.name||"Unknown":e;m&&Kr(g,T),O&&Wr(g,T)}return Zr(e,m,O,v,c,er.current,g)}}var we=q.ReactCurrentOwner,nr=q.ReactDebugCurrentFrame;function J(e){if(e){var n=e._owner,s=Ee(e.type,e._source,n?n.type:null);nr.setExtraStackFrame(s)}else nr.setExtraStackFrame(null)}var Oe;Oe=!1;function Pe(e){return typeof e=="object"&&e!==null&&e.$$typeof===i}function ar(){{if(we.current){var e=I(we.current.type);if(e)return`
|
|
22
|
+
|
|
23
|
+
Check the render method of \``+e+"`."}return""}}function Hr(e){return""}var ir={};function Qr(e){{var n=ar();if(!n){var s=typeof e=="string"?e:e.displayName||e.name;s&&(n=`
|
|
24
|
+
|
|
25
|
+
Check the top-level render call using <`+s+">.")}return n}}function sr(e,n){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var s=Qr(n);if(ir[s])return;ir[s]=!0;var c="";e&&e._owner&&e._owner!==we.current&&(c=" It was passed a child from "+I(e._owner.type)+"."),J(e),C('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',s,c),J(null)}}function or(e,n){{if(typeof e!="object")return;if(De(e))for(var s=0;s<e.length;s++){var c=e[s];Pe(c)&&sr(c,n)}else if(Pe(e))e._store&&(e._store.validated=!0);else if(e){var v=ne(e);if(typeof v=="function"&&v!==e.entries)for(var y=v.call(e),g;!(g=y.next()).done;)Pe(g.value)&&sr(g.value,n)}}}function et(e){{var n=e.type;if(n==null||typeof n=="string")return;var s;if(typeof n=="function")s=n.propTypes;else if(typeof n=="object"&&(n.$$typeof===h||n.$$typeof===b))s=n.propTypes;else return;if(s){var c=I(n);Br(s,e.props,"prop",c,e)}else if(n.PropTypes!==void 0&&!Oe){Oe=!0;var v=I(n);C("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",v||"Unknown")}typeof n.getDefaultProps=="function"&&!n.getDefaultProps.isReactClassApproved&&C("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function rt(e){{for(var n=Object.keys(e.props),s=0;s<n.length;s++){var c=n[s];if(c!=="children"&&c!=="key"){J(e),C("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",c),J(null);break}}e.ref!==null&&(J(e),C("Invalid attribute `ref` supplied to `React.Fragment`."),J(null))}}var ur={};function lr(e,n,s,c,v,y){{var g=se(e);if(!g){var m="";(e===void 0||typeof e=="object"&&e!==null&&Object.keys(e).length===0)&&(m+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var O=Hr();O?m+=O:m+=ar();var _;e===null?_="null":De(e)?_="array":e!==void 0&&e.$$typeof===i?(_="<"+(I(e.type)||"Unknown")+" />",m=" Did you accidentally export a JSX literal instead of a component?"):_=typeof e,C("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",_,m)}var T=Jr(e,n,s,v,y);if(T==null)return T;if(g){var M=n.children;if(M!==void 0)if(c)if(De(M)){for(var H=0;H<M.length;H++)or(M[H],e);Object.freeze&&Object.freeze(M)}else C("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else or(M,e)}if(ce.call(n,"key")){var G=I(e),j=Object.keys(n).filter(function(ot){return ot!=="key"}),je=j.length>0?"{key: someKey, "+j.join(": ..., ")+": ...}":"{key: someKey}";if(!ur[G+je]){var st=j.length>0?"{"+j.join(": ..., ")+": ...}":"{}";C(`A props object containing a "key" prop is being spread into JSX:
|
|
26
|
+
let props = %s;
|
|
27
|
+
<%s {...props} />
|
|
28
|
+
React keys must be passed directly to JSX without using spread:
|
|
29
|
+
let props = %s;
|
|
30
|
+
<%s key={someKey} {...props} />`,je,G,st,G),ur[G+je]=!0}}return e===u?rt(T):et(T),T}}function tt(e,n,s){return lr(e,n,s,!0)}function nt(e,n,s){return lr(e,n,s,!1)}var at=nt,it=tt;te.Fragment=u,te.jsx=at,te.jsxs=it}()),te}process.env.NODE_ENV==="production"?Se.exports=Or():Se.exports=Pr();var x=Se.exports;function Ke(t){return t.replace(/ı/g,"I").replace(/i/g,"İ").replace(/ğ/g,"Ğ").replace(/ü/g,"Ü").replace(/ş/g,"Ş").replace(/ö/g,"Ö").replace(/ç/g,"Ç").toUpperCase().replace(/I/g,"ı").replace(/İ/g,"İ").replace(/Ğ/g,"ğ").replace(/Ü/g,"ü").replace(/Ş/g,"ş").replace(/Ö/g,"ö").replace(/Ç/g,"ç")}const jr=300,zr=1,Ar=["password","email","number","tel","url"],Ir=["Backspace","Delete","ArrowLeft","ArrowRight","Tab","Enter","Escape"];function Mr(t,i,o){return o||Ar.includes(i)||!t?t:Ke(t)}function Fr(t){return/[0-9.]/.test(t)||Ir.includes(t)}const Nr=({name:t,label:i,type:o="text",placeholder:u,className:l,fieldToSearch:r,onSuggestionSearch:a,disabled:d=!1,step:h,min:S,max:R,startAdornment:b,endAdornment:E,disableUppercase:p=!1,required:L=!1,fullWidth:F,debounceDelay:ne=jr,minSearchLength:q=zr,helperText:C,autoFocus:de,multiline:me,rows:ge,maxLength:he,errorMessageFormatter:ae,"aria-label":pe,"aria-describedby":ie,sx:se,inputSx:oe,inputElementSx:U,...I})=>{const[P,w,V]=fr.useField(t),[ve,X]=z.useState([]),[ue,le]=z.useState(!1),[ye,fe]=z.useState(!1),N=z.useRef(r&&a?cr.debounce(async k=>{if(k.length>=q){le(!0);try{const D=await a(r,k);X(D)}catch(D){console.error("Search error:",D),X([])}le(!1)}else X([])},ne):null).current;z.useEffect(()=>{N&&P.value&&N(P.value)},[P.value,N]),z.useEffect(()=>()=>{N&&N.cancel()},[N]);const Y=z.useCallback(k=>Mr(k,o,p),[o,p]),K=z.useMemo(()=>{if(!(!w.touched||!w.error))return ae?ae(w.error):w.error},[w.touched,w.error,ae]),W=z.useMemo(()=>K||C,[K,C]),B=z.useMemo(()=>({name:t,label:i,type:o,placeholder:u,required:L,disabled:d,error:w.touched&&!!w.error,helperText:W,className:l,fullWidth:F!==void 0?F:!!i,autoFocus:de,multiline:me,rows:ge,sx:U?[se,{"& .MuiInputBase-input":U}].filter(Boolean):se,inputProps:{maxLength:he,step:h,min:S,max:R,...o==="number"&&{onKeyDown:k=>{Fr(k.key)||k.preventDefault()}},...I.inputProps},InputProps:{startAdornment:b?x.jsx($.InputAdornment,{position:"start",children:b}):void 0,endAdornment:E?x.jsx($.InputAdornment,{position:"end",children:E}):void 0,...oe&&{sx:oe},...I.InputProps},"aria-label":pe,"aria-describedby":ie||(K?`${t}-error`:void 0),...I}),[t,i,o,u,L,d,w.touched,w.error,W,l,F,de,me,ge,he,h,S,R,b,E,pe,ie,se,oe,U,I]);if(r&&a)return x.jsx($.Autocomplete,{freeSolo:!0,open:ye,onOpen:()=>fe(!0),onClose:()=>fe(!1),options:ve,loading:ue,disabled:d,value:P.value||"",onChange:(k,D)=>{const Ce=D||"";V.setValue(Y(Ce))},onInputChange:(k,D)=>{V.setValue(Y(D))},renderInput:k=>{var D;return x.jsx($.TextField,{...k,...B,InputProps:{...k.InputProps,...B.InputProps,endAdornment:x.jsxs(x.Fragment,{children:[ue?x.jsx($.CircularProgress,{color:"inherit",size:20}):null,(D=B.InputProps)==null?void 0:D.endAdornment,k.InputProps.endAdornment]})}})}});const Z=z.useCallback(k=>{const D=k.target.value;V.setValue(Y(D))},[V,Y]);return x.jsx($.TextField,{...B,value:P.value||"",onChange:Z,onBlur:P.onBlur})};f.CREDIT_CARD_REGEX=Le,f.EMAIL_REGEX=Ie,f.FormikTextField=Nr,f.IBAN_REGEX=qe,f.NAME_REGEX=Re,f.PHONE_REGEX=Fe,f.PLATE_REGEX=Te,f.TC_KIMLIK_NO_REGEX=_e,f.VKN_REGEX=Ge,f.creditCardSchema=_r,f.dateSchema=ke,f.emailSchema=gr,f.fileSchema=Sr,f.futureDateSchema=wr,f.getFileExtension=ee,f.ibanSchema=br,f.nameSchema=Er,f.passwordMatchSchema=yr,f.passwordSchema=vr,f.pastDateSchema=Dr,f.phoneSchema=hr,f.plateSchema=Tr,f.tcKimlikNoSchema=mr,f.toTurkishUpperCase=Ke,f.validateCreditCard=Ve,f.validateDate=Cr,f.validateEmail=Me,f.validateFile=kr,f.validateIBAN=Be,f.validateName=xe,f.validatePassword=pr,f.validatePhone=Ne,f.validatePlate=Ue,f.validateTCKimlikNo=Ae,f.validateVKN=$e,f.vknSchema=Rr,Object.defineProperty(f,Symbol.toStringTag,{value:"Module"})});
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,cAAc,CAAA;AAG5B,cAAc,cAAc,CAAA;AAG5B,cAAc,SAAS,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stringUtils.d.ts","sourceRoot":"","sources":["../../src/utils/stringUtils.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAiBtD"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ValidatorOptions } from './types';
|
|
2
|
+
import * as yup from "yup";
|
|
3
|
+
/**
|
|
4
|
+
* Kredi kartı numarası regex'i (sadece rakamlar, 13-19 hane)
|
|
5
|
+
*/
|
|
6
|
+
export declare const CREDIT_CARD_REGEX: RegExp;
|
|
7
|
+
/**
|
|
8
|
+
* Luhn algoritması ile kredi kartı validasyonu
|
|
9
|
+
*/
|
|
10
|
+
export declare function validateCreditCard(cardNumber: string): boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Kredi kartı için yup schema
|
|
13
|
+
*/
|
|
14
|
+
export declare function creditCardSchema(options?: ValidatorOptions): yup.StringSchema<string | undefined, yup.AnyObject, undefined, "">;
|
|
15
|
+
//# sourceMappingURL=creditCard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"creditCard.d.ts","sourceRoot":"","sources":["../../src/validators/creditCard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD;;GAEG;AACH,eAAO,MAAM,iBAAiB,QAAgB,CAAC;AAE/C;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CA6B9D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,CAAC,EAAE,gBAAgB,sEAmC1D"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { DateValidatorOptions, ValidatorOptions } from './types';
|
|
2
|
+
import * as yup from "yup";
|
|
3
|
+
/**
|
|
4
|
+
* Tarih validasyonu
|
|
5
|
+
*/
|
|
6
|
+
export declare function validateDate(date: Date | string, options?: Omit<DateValidatorOptions, "required" | "message" | "requiredMessage" | "name">): {
|
|
7
|
+
isValid: boolean;
|
|
8
|
+
error?: string;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Tarih için yup schema
|
|
12
|
+
*/
|
|
13
|
+
export declare function dateSchema(options?: DateValidatorOptions): yup.DateSchema<Date | undefined, yup.AnyObject, undefined, "">;
|
|
14
|
+
/**
|
|
15
|
+
* Geçmiş tarih kontrolü
|
|
16
|
+
*/
|
|
17
|
+
export declare function pastDateSchema(options?: ValidatorOptions): yup.DateSchema<Date | undefined, yup.AnyObject, undefined, "">;
|
|
18
|
+
/**
|
|
19
|
+
* Gelecek tarih kontrolü
|
|
20
|
+
*/
|
|
21
|
+
export declare function futureDateSchema(options?: ValidatorOptions): yup.DateSchema<Date | undefined, yup.AnyObject, undefined, "">;
|
|
22
|
+
//# sourceMappingURL=date.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"date.d.ts","sourceRoot":"","sources":["../../src/validators/date.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,OAAO,KAAK,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEtE;;GAEG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,IAAI,GAAG,MAAM,EACnB,OAAO,CAAC,EAAE,IAAI,CACZ,oBAAoB,EACpB,UAAU,GAAG,SAAS,GAAG,iBAAiB,GAAG,MAAM,CACpD,GACA;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAgCtC;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,CAAC,EAAE,oBAAoB,kEAqCxD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,CAAC,EAAE,gBAAgB,kEAMxD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,CAAC,EAAE,gBAAgB,kEAM1D"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ValidatorOptions } from './types';
|
|
2
|
+
import * as yup from "yup";
|
|
3
|
+
/**
|
|
4
|
+
* Türkiye email formatı regex'i
|
|
5
|
+
*/
|
|
6
|
+
export declare const EMAIL_REGEX: RegExp;
|
|
7
|
+
/**
|
|
8
|
+
* Email validasyonu
|
|
9
|
+
*/
|
|
10
|
+
export declare function validateEmail(email: string): boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Email için yup schema
|
|
13
|
+
*/
|
|
14
|
+
export declare function emailSchema(options?: ValidatorOptions): yup.StringSchema<string | undefined, yup.AnyObject, undefined, "">;
|
|
15
|
+
//# sourceMappingURL=email.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"email.d.ts","sourceRoot":"","sources":["../../src/validators/email.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD;;GAEG;AACH,eAAO,MAAM,WAAW,QAAqD,CAAC;AAE9E;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,CAAC,EAAE,gBAAgB,sEAmCrD"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { FileValidatorOptions } from './types';
|
|
2
|
+
import * as yup from "yup";
|
|
3
|
+
/**
|
|
4
|
+
* Dosya uzantısını al
|
|
5
|
+
*/
|
|
6
|
+
export declare function getFileExtension(filename: string): string;
|
|
7
|
+
/**
|
|
8
|
+
* Dosya validasyonu
|
|
9
|
+
*
|
|
10
|
+
* ÖNEMLİ: Dosya uzantısı kontrolü yeterli değildir!
|
|
11
|
+
* Gerçek dosya tipini belirlemek için magic bytes kontrolü yapılmalıdır.
|
|
12
|
+
*
|
|
13
|
+
* Magic bytes: Dosyanın içeriğinin ilk birkaç byte'ına bakarak
|
|
14
|
+
* gerçek dosya tipini belirler. Örneğin:
|
|
15
|
+
* - PDF: %PDF- (ilk 5 byte)
|
|
16
|
+
* - JPEG: FF D8 FF
|
|
17
|
+
* - PNG: 89 50 4E 47
|
|
18
|
+
*
|
|
19
|
+
* Bu sayede birisi bir .exe dosyasını .pdf olarak adlandırsa bile,
|
|
20
|
+
* magic bytes kontrolü ile gerçek tipi tespit edilir.
|
|
21
|
+
*/
|
|
22
|
+
export declare function validateFile(file: File | Blob, options?: Omit<FileValidatorOptions, "required" | "message" | "requiredMessage" | "name">): Promise<{
|
|
23
|
+
isValid: boolean;
|
|
24
|
+
errors: string[];
|
|
25
|
+
}>;
|
|
26
|
+
/**
|
|
27
|
+
* Dosya için yup schema
|
|
28
|
+
*
|
|
29
|
+
* ÖNEMLİ: Güvenlik için mutlaka 'allowedMimeTypes' kullanın!
|
|
30
|
+
*
|
|
31
|
+
* Örnek kullanım:
|
|
32
|
+
* ```ts
|
|
33
|
+
* // ✅ DOĞRU: Magic bytes kontrolü ile
|
|
34
|
+
* fileSchema({
|
|
35
|
+
* allowedExtensions: ['pdf'],
|
|
36
|
+
* allowedMimeTypes: ['application/pdf'] // Magic bytes kontrolü yapar
|
|
37
|
+
* })
|
|
38
|
+
*
|
|
39
|
+
* // ⚠️ YETERSİZ: Sadece uzantı kontrolü (güvenli değil)
|
|
40
|
+
* fileSchema({
|
|
41
|
+
* allowedExtensions: ['pdf'] // Birisi .exe dosyasını .pdf olarak adlandırabilir!
|
|
42
|
+
* })
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
export declare function fileSchema(options?: FileValidatorOptions): yup.MixedSchema<File | undefined, yup.AnyObject, undefined, "">;
|
|
46
|
+
//# sourceMappingURL=file.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../src/validators/file.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAE3B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAEpD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGzD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,IAAI,GAAG,IAAI,EACjB,OAAO,CAAC,EAAE,IAAI,CACZ,oBAAoB,EACpB,UAAU,GAAG,SAAS,GAAG,iBAAiB,GAAG,MAAM,CACpD,GACA,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CA+EjD;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,UAAU,CAAC,OAAO,CAAC,EAAE,oBAAoB,mEA6GxD"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ValidatorOptions } from './types';
|
|
2
|
+
import * as yup from "yup";
|
|
3
|
+
/**
|
|
4
|
+
* IBAN regex'i (Türkiye için TR ile başlamalı)
|
|
5
|
+
*/
|
|
6
|
+
export declare const IBAN_REGEX: RegExp;
|
|
7
|
+
/**
|
|
8
|
+
* IBAN validasyonu (mod 97 algoritması)
|
|
9
|
+
*/
|
|
10
|
+
export declare function validateIBAN(iban: string): boolean;
|
|
11
|
+
/**
|
|
12
|
+
* IBAN için yup schema
|
|
13
|
+
*/
|
|
14
|
+
export declare function ibanSchema(options?: ValidatorOptions): yup.StringSchema<string | undefined, yup.AnyObject, undefined, "">;
|
|
15
|
+
//# sourceMappingURL=iban.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iban.d.ts","sourceRoot":"","sources":["../../src/validators/iban.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD;;GAEG;AACH,eAAO,MAAM,UAAU,QAA8C,CAAC;AAEtE;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAsBlD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,CAAC,EAAE,gBAAgB,sEAmCpD"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export type { ValidatorOptions, FileValidatorOptions, PasswordValidatorOptions, DateValidatorOptions, } from './types';
|
|
2
|
+
export { tcKimlikNoSchema, TC_KIMLIK_NO_REGEX, validateTCKimlikNo, } from './tcKimlikNo';
|
|
3
|
+
export { emailSchema, EMAIL_REGEX, validateEmail } from './email';
|
|
4
|
+
export { phoneSchema, PHONE_REGEX, validatePhone } from './phone';
|
|
5
|
+
export { passwordSchema, passwordMatchSchema, validatePassword, } from './password';
|
|
6
|
+
export { nameSchema, NAME_REGEX, validateName } from './name';
|
|
7
|
+
export { ibanSchema, IBAN_REGEX, validateIBAN } from './iban';
|
|
8
|
+
export { creditCardSchema, CREDIT_CARD_REGEX, validateCreditCard, } from './creditCard';
|
|
9
|
+
export { vknSchema, VKN_REGEX, validateVKN } from './vkn';
|
|
10
|
+
export { plateSchema, PLATE_REGEX, validatePlate } from './plate';
|
|
11
|
+
export { fileSchema, validateFile, getFileExtension, } from './file';
|
|
12
|
+
export { dateSchema, pastDateSchema, futureDateSchema, validateDate, } from './date';
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/validators/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,gBAAgB,EAChB,oBAAoB,EACpB,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAGlE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAGlE,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAG9D,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAG9D,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAG1D,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAGlE,OAAO,EACL,UAAU,EACV,YAAY,EACZ,gBAAgB,GACjB,MAAM,QAAQ,CAAC;AAGhB,OAAO,EACL,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,YAAY,GACb,MAAM,QAAQ,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ValidatorOptions } from './types';
|
|
2
|
+
import * as yup from "yup";
|
|
3
|
+
/**
|
|
4
|
+
* Sadece harf içeren isim regex'i (Türkçe karakterler dahil)
|
|
5
|
+
*/
|
|
6
|
+
export declare const NAME_REGEX: RegExp;
|
|
7
|
+
/**
|
|
8
|
+
* İsim validasyonu (sadece harf)
|
|
9
|
+
*/
|
|
10
|
+
export declare function validateName(name: string): boolean;
|
|
11
|
+
/**
|
|
12
|
+
* İsim için yup schema
|
|
13
|
+
*/
|
|
14
|
+
export declare function nameSchema(options?: ValidatorOptions): yup.StringSchema<string | undefined, yup.AnyObject, undefined, "">;
|
|
15
|
+
//# sourceMappingURL=name.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"name.d.ts","sourceRoot":"","sources":["../../src/validators/name.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD;;GAEG;AACH,eAAO,MAAM,UAAU,QAA+B,CAAC;AAEvD;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAWlD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,CAAC,EAAE,gBAAgB,sEAsCpD"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { PasswordValidatorOptions, ValidatorOptions } from './types';
|
|
2
|
+
import * as yup from "yup";
|
|
3
|
+
/**
|
|
4
|
+
* Şifre validasyonu
|
|
5
|
+
*/
|
|
6
|
+
export declare function validatePassword(password: string, options?: Omit<PasswordValidatorOptions, "required" | "message" | "requiredMessage" | "name">): {
|
|
7
|
+
isValid: boolean;
|
|
8
|
+
errors: string[];
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Şifre için yup schema
|
|
12
|
+
*/
|
|
13
|
+
export declare function passwordSchema(options?: PasswordValidatorOptions): yup.StringSchema<string | undefined, yup.AnyObject, undefined, "">;
|
|
14
|
+
/**
|
|
15
|
+
* Şifre eşleşme kontrolü
|
|
16
|
+
*/
|
|
17
|
+
export declare function passwordMatchSchema(passwordFieldName: string, options?: ValidatorOptions): yup.StringSchema<string | undefined, yup.AnyObject, undefined, "">;
|
|
18
|
+
//# sourceMappingURL=password.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"password.d.ts","sourceRoot":"","sources":["../../src/validators/password.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,OAAO,KAAK,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE1E;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,IAAI,CACZ,wBAAwB,EACxB,UAAU,GAAG,SAAS,GAAG,iBAAiB,GAAG,MAAM,CACpD,GACA;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAsCxC;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,CAAC,EAAE,wBAAwB,sEAiDhE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,iBAAiB,EAAE,MAAM,EACzB,OAAO,CAAC,EAAE,gBAAgB,sEAiB3B"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ValidatorOptions } from './types';
|
|
2
|
+
import * as yup from "yup";
|
|
3
|
+
/**
|
|
4
|
+
* Türkiye telefon numarası regex'i
|
|
5
|
+
* Formatlar: 05XX XXX XX XX, +90 5XX XXX XX XX, 5XX XXX XX XX
|
|
6
|
+
*/
|
|
7
|
+
export declare const PHONE_REGEX: RegExp;
|
|
8
|
+
/**
|
|
9
|
+
* Telefon numarası validasyonu
|
|
10
|
+
*/
|
|
11
|
+
export declare function validatePhone(phone: string): boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Telefon numarası için yup schema
|
|
14
|
+
*/
|
|
15
|
+
export declare function phoneSchema(options?: ValidatorOptions): yup.StringSchema<string | undefined, yup.AnyObject, undefined, "">;
|
|
16
|
+
//# sourceMappingURL=phone.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phone.d.ts","sourceRoot":"","sources":["../../src/validators/phone.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD;;;GAGG;AACH,eAAO,MAAM,WAAW,QACgC,CAAC;AAEzD;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAepD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,CAAC,EAAE,gBAAgB,sEAmCrD"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ValidatorOptions } from './types';
|
|
2
|
+
import * as yup from "yup";
|
|
3
|
+
/**
|
|
4
|
+
* Türkiye araç plakası regex'i
|
|
5
|
+
* Format: 34 ABC 123 veya 34ABC123
|
|
6
|
+
*/
|
|
7
|
+
export declare const PLATE_REGEX: RegExp;
|
|
8
|
+
/**
|
|
9
|
+
* Araç plakası validasyonu
|
|
10
|
+
*/
|
|
11
|
+
export declare function validatePlate(plate: string): boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Araç plakası için yup schema
|
|
14
|
+
*/
|
|
15
|
+
export declare function plateSchema(options?: ValidatorOptions): yup.StringSchema<string | undefined, yup.AnyObject, undefined, "">;
|
|
16
|
+
//# sourceMappingURL=plate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plate.d.ts","sourceRoot":"","sources":["../../src/validators/plate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD;;;GAGG;AACH,eAAO,MAAM,WAAW,QAAiD,CAAC;AAE1E;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAgCpD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,CAAC,EAAE,gBAAgB,sEAmCrD"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { ValidatorOptions } from './types';
|
|
2
|
+
import * as yup from "yup";
|
|
3
|
+
/**
|
|
4
|
+
* T.C. Kimlik Numarası validasyon regex'i
|
|
5
|
+
* 11 haneli, sadece rakamlardan oluşmalı
|
|
6
|
+
*/
|
|
7
|
+
export declare const TC_KIMLIK_NO_REGEX: RegExp;
|
|
8
|
+
/**
|
|
9
|
+
* T.C. Kimlik Numarası algoritma kontrolü
|
|
10
|
+
* T.C. kimlik numarasının geçerliliğini kontrol eder
|
|
11
|
+
*/
|
|
12
|
+
export declare function validateTCKimlikNo(tcKimlikNo: string): boolean;
|
|
13
|
+
/**
|
|
14
|
+
* T.C. kimlik numarası için yup schema
|
|
15
|
+
* Zorunluluk dışarıdan belirlenir
|
|
16
|
+
*
|
|
17
|
+
* @param options - Validator seçenekleri
|
|
18
|
+
* @param options.required - Alanın zorunlu olup olmadığı (default: false)
|
|
19
|
+
* @param options.message - Özel hata mesajı
|
|
20
|
+
* @param options.requiredMessage - Required alan için özel hata mesajı
|
|
21
|
+
* @param options.name - Validator test adı (default: 'tcKimlikNo')
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```ts
|
|
25
|
+
* import * as yup from 'yup'
|
|
26
|
+
* import { tcKimlikNoSchema } from '@mertcankocak/core-project'
|
|
27
|
+
*
|
|
28
|
+
* // Optional kullanım
|
|
29
|
+
* const optionalSchema = yup.object({
|
|
30
|
+
* tcKimlikNo: tcKimlikNoSchema()
|
|
31
|
+
* })
|
|
32
|
+
*
|
|
33
|
+
* // Required kullanım
|
|
34
|
+
* const requiredSchema = yup.object({
|
|
35
|
+
* tcKimlikNo: tcKimlikNoSchema({ required: true })
|
|
36
|
+
* })
|
|
37
|
+
*
|
|
38
|
+
* // Özel mesajlarla
|
|
39
|
+
* const customSchema = yup.object({
|
|
40
|
+
* tcKimlikNo: tcKimlikNoSchema({
|
|
41
|
+
* required: true,
|
|
42
|
+
* message: 'Geçersiz T.C. kimlik numarası',
|
|
43
|
+
* requiredMessage: 'T.C. kimlik numarası boş bırakılamaz'
|
|
44
|
+
* })
|
|
45
|
+
* })
|
|
46
|
+
*
|
|
47
|
+
* // Özel name ile
|
|
48
|
+
* const customNameSchema = yup.object({
|
|
49
|
+
* userTCNo: tcKimlikNoSchema({
|
|
50
|
+
* name: 'userTCNo',
|
|
51
|
+
* required: true
|
|
52
|
+
* })
|
|
53
|
+
* })
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
export declare function tcKimlikNoSchema(options?: ValidatorOptions): yup.StringSchema<string | undefined, yup.AnyObject, undefined, "">;
|
|
57
|
+
//# sourceMappingURL=tcKimlikNo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tcKimlikNo.d.ts","sourceRoot":"","sources":["../../src/validators/tcKimlikNo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD;;;GAGG;AACH,eAAO,MAAM,kBAAkB,QAAgB,CAAC;AAEhD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAyB9D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,CAAC,EAAE,gBAAgB,sEA8C1D"}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Validator seçenekleri
|
|
3
|
+
* Tüm validatörler için ortak seçenekler
|
|
4
|
+
*/
|
|
5
|
+
export interface ValidatorOptions {
|
|
6
|
+
/**
|
|
7
|
+
* Alanın zorunlu olup olmadığı
|
|
8
|
+
* @default false (optional)
|
|
9
|
+
*/
|
|
10
|
+
required?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Özel hata mesajı
|
|
13
|
+
*/
|
|
14
|
+
message?: string;
|
|
15
|
+
/**
|
|
16
|
+
* Required alan için özel hata mesajı
|
|
17
|
+
*/
|
|
18
|
+
requiredMessage?: string;
|
|
19
|
+
/**
|
|
20
|
+
* Validator test adı (yup test name)
|
|
21
|
+
*/
|
|
22
|
+
name?: string;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Dosya validasyon seçenekleri
|
|
26
|
+
*
|
|
27
|
+
* ÖNEMLİ: Güvenlik için mutlaka 'allowedMimeTypes' kullanın!
|
|
28
|
+
*
|
|
29
|
+
* Dosya uzantısı kontrolü tek başına yeterli değildir çünkü:
|
|
30
|
+
* - Birisi bir .exe dosyasını .pdf olarak adlandırabilir
|
|
31
|
+
* - Birisi bir virüslü dosyayı .jpg olarak adlandırabilir
|
|
32
|
+
*
|
|
33
|
+
* 'allowedMimeTypes' parametresi magic bytes kontrolü yapar:
|
|
34
|
+
* - Dosyanın içeriğinin ilk byte'larına bakarak gerçek tipini belirler
|
|
35
|
+
* - Örnek: PDF dosyası %PDF- ile başlar, JPEG FF D8 FF ile başlar
|
|
36
|
+
* - Bu sayede dosya adı ne olursa olsun, gerçek tipi tespit edilir
|
|
37
|
+
*/
|
|
38
|
+
export interface FileValidatorOptions extends ValidatorOptions {
|
|
39
|
+
/**
|
|
40
|
+
* Maksimum dosya boyutu (byte cinsinden)
|
|
41
|
+
*/
|
|
42
|
+
maxSize?: number;
|
|
43
|
+
/**
|
|
44
|
+
* Minimum dosya boyutu (byte cinsinden)
|
|
45
|
+
*/
|
|
46
|
+
minSize?: number;
|
|
47
|
+
/**
|
|
48
|
+
* İzin verilen dosya uzantıları (örn: ['pdf', 'jpg', 'png'])
|
|
49
|
+
*
|
|
50
|
+
* ⚠️ UYARI: Bu kontrol tek başına güvenli değildir!
|
|
51
|
+
* Mutlaka 'allowedMimeTypes' ile birlikte kullanın.
|
|
52
|
+
*/
|
|
53
|
+
allowedExtensions?: string[];
|
|
54
|
+
/**
|
|
55
|
+
* İzin verilen MIME tipleri (örn: ['application/pdf', 'image/jpeg'])
|
|
56
|
+
*
|
|
57
|
+
* ✅ ÖNERİLEN: Magic bytes kontrolü yapar, gerçek dosya tipini belirler.
|
|
58
|
+
* Bu parametre belirtilmezse sadece uzantı kontrolü yapılır (güvenli değil).
|
|
59
|
+
*
|
|
60
|
+
* Yaygın MIME tipleri:
|
|
61
|
+
* - PDF: 'application/pdf'
|
|
62
|
+
* - JPEG: 'image/jpeg'
|
|
63
|
+
* - PNG: 'image/png'
|
|
64
|
+
* - GIF: 'image/gif'
|
|
65
|
+
* - ZIP: 'application/zip'
|
|
66
|
+
* - DOCX: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
|
|
67
|
+
*/
|
|
68
|
+
allowedMimeTypes?: string[];
|
|
69
|
+
/**
|
|
70
|
+
* Dosya boyutu için özel hata mesajı
|
|
71
|
+
*/
|
|
72
|
+
sizeMessage?: string;
|
|
73
|
+
/**
|
|
74
|
+
* Dosya uzantısı için özel hata mesajı
|
|
75
|
+
*/
|
|
76
|
+
extensionMessage?: string;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Şifre validasyon seçenekleri
|
|
80
|
+
*/
|
|
81
|
+
export interface PasswordValidatorOptions extends ValidatorOptions {
|
|
82
|
+
/**
|
|
83
|
+
* Minimum şifre uzunluğu
|
|
84
|
+
* @default 8
|
|
85
|
+
*/
|
|
86
|
+
minLength?: number;
|
|
87
|
+
/**
|
|
88
|
+
* Büyük harf gereksinimi
|
|
89
|
+
* @default true
|
|
90
|
+
*/
|
|
91
|
+
requireUppercase?: boolean;
|
|
92
|
+
/**
|
|
93
|
+
* Küçük harf gereksinimi
|
|
94
|
+
* @default true
|
|
95
|
+
*/
|
|
96
|
+
requireLowercase?: boolean;
|
|
97
|
+
/**
|
|
98
|
+
* Rakam gereksinimi
|
|
99
|
+
* @default true
|
|
100
|
+
*/
|
|
101
|
+
requireNumber?: boolean;
|
|
102
|
+
/**
|
|
103
|
+
* Özel karakter gereksinimi
|
|
104
|
+
* @default true
|
|
105
|
+
*/
|
|
106
|
+
requireSpecialChar?: boolean;
|
|
107
|
+
/**
|
|
108
|
+
* Minimum uzunluk için özel hata mesajı
|
|
109
|
+
*/
|
|
110
|
+
minLengthMessage?: string;
|
|
111
|
+
/**
|
|
112
|
+
* Büyük harf için özel hata mesajı
|
|
113
|
+
*/
|
|
114
|
+
uppercaseMessage?: string;
|
|
115
|
+
/**
|
|
116
|
+
* Küçük harf için özel hata mesajı
|
|
117
|
+
*/
|
|
118
|
+
lowercaseMessage?: string;
|
|
119
|
+
/**
|
|
120
|
+
* Rakam için özel hata mesajı
|
|
121
|
+
*/
|
|
122
|
+
numberMessage?: string;
|
|
123
|
+
/**
|
|
124
|
+
* Özel karakter için özel hata mesajı
|
|
125
|
+
*/
|
|
126
|
+
specialCharMessage?: string;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Tarih validasyon seçenekleri
|
|
130
|
+
*/
|
|
131
|
+
export interface DateValidatorOptions extends ValidatorOptions {
|
|
132
|
+
/**
|
|
133
|
+
* Minimum tarih (geçmiş tarih kontrolü)
|
|
134
|
+
*/
|
|
135
|
+
minDate?: Date | string;
|
|
136
|
+
/**
|
|
137
|
+
* Maksimum tarih (gelecek tarih kontrolü)
|
|
138
|
+
*/
|
|
139
|
+
maxDate?: Date | string;
|
|
140
|
+
/**
|
|
141
|
+
* Minimum tarih için özel hata mesajı
|
|
142
|
+
*/
|
|
143
|
+
minDateMessage?: string;
|
|
144
|
+
/**
|
|
145
|
+
* Maksimum tarih için özel hata mesajı
|
|
146
|
+
*/
|
|
147
|
+
maxDateMessage?: string;
|
|
148
|
+
}
|
|
149
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/validators/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB;IAC5D;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B;;;;;;;;;;;;;OAaG;IACH,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,wBAAyB,SAAQ,gBAAgB;IAChE;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB;IAC5D;;OAEG;IACH,OAAO,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;IACxB;;OAEG;IACH,OAAO,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;IACxB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ValidatorOptions } from './types';
|
|
2
|
+
import * as yup from "yup";
|
|
3
|
+
/**
|
|
4
|
+
* VKN (Vergi Kimlik Numarası) regex'i
|
|
5
|
+
* 10 haneli rakam
|
|
6
|
+
*/
|
|
7
|
+
export declare const VKN_REGEX: RegExp;
|
|
8
|
+
/**
|
|
9
|
+
* VKN validasyonu
|
|
10
|
+
*/
|
|
11
|
+
export declare function validateVKN(vkn: string): boolean;
|
|
12
|
+
/**
|
|
13
|
+
* VKN için yup schema
|
|
14
|
+
*/
|
|
15
|
+
export declare function vknSchema(options?: ValidatorOptions): yup.StringSchema<string | undefined, yup.AnyObject, undefined, "">;
|
|
16
|
+
//# sourceMappingURL=vkn.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vkn.d.ts","sourceRoot":"","sources":["../../src/validators/vkn.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD;;;GAGG;AACH,eAAO,MAAM,SAAS,QAAa,CAAC;AAEpC;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAgBhD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,OAAO,CAAC,EAAE,gBAAgB,sEAmCnD"}
|