@hedystia/validations 1.2.13 → 1.2.15
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/dist/index.d.ts +9 -0
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -115,6 +115,8 @@ declare class StringSchemaType extends BaseSchema<unknown, string> {
|
|
|
115
115
|
private _validateRegex;
|
|
116
116
|
private _validateEmail;
|
|
117
117
|
private _validatePhone;
|
|
118
|
+
private _validateDomain;
|
|
119
|
+
private _requireHttpOrHttps;
|
|
118
120
|
private _minLength?;
|
|
119
121
|
private _maxLength?;
|
|
120
122
|
constructor();
|
|
@@ -125,11 +127,13 @@ declare class StringSchemaType extends BaseSchema<unknown, string> {
|
|
|
125
127
|
regex(regex: RegExp): StringSchemaType;
|
|
126
128
|
email(): StringSchemaType;
|
|
127
129
|
phone(): StringSchemaType;
|
|
130
|
+
domain(requireHttpOrHttps?: boolean): StringSchemaType;
|
|
128
131
|
readonly "~standard": StandardSchemaV1.Props<unknown, string>;
|
|
129
132
|
private _isValidUUID;
|
|
130
133
|
private _isValidRegex;
|
|
131
134
|
private _isValidEmail;
|
|
132
135
|
private _isValidPhone;
|
|
136
|
+
private _isValidDomain;
|
|
133
137
|
}
|
|
134
138
|
declare class NumberSchemaType extends BaseSchema<unknown, number> {
|
|
135
139
|
readonly type: SchemaPrimitive;
|
|
@@ -288,6 +292,11 @@ declare const h: {
|
|
|
288
292
|
* @returns {StringSchemaType} Phone schema type
|
|
289
293
|
*/
|
|
290
294
|
phone: () => StringSchemaType;
|
|
295
|
+
/** Create domain schema type
|
|
296
|
+
* @param {boolean} requireHttpOrHttps - Require http or https
|
|
297
|
+
* @returns {StringSchemaType} Domain schema type
|
|
298
|
+
*/
|
|
299
|
+
domain: (requireHttpOrHttps?: boolean) => StringSchemaType;
|
|
291
300
|
/**
|
|
292
301
|
* Convert schema to standard schema
|
|
293
302
|
* @param {AnySchema} schema - Schema
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var g=Object.defineProperty;var j=Object.getOwnPropertyDescriptor;var T=Object.getOwnPropertyNames;var
|
|
1
|
+
"use strict";var g=Object.defineProperty;var j=Object.getOwnPropertyDescriptor;var T=Object.getOwnPropertyNames;var _=Object.prototype.hasOwnProperty;var V=(a,e)=>{for(var n in e)g(a,n,{get:e[n],enumerable:!0})},P=(a,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of T(e))!_.call(a,t)&&t!==n&&g(a,t,{get:()=>e[t],enumerable:!(r=j(e,t))||r.enumerable});return a};var R=a=>P(g({},"__esModule",{value:!0}),a);var E={};V(E,{h:()=>m});module.exports=R(E);var i=class{jsonSchema={};get inferred(){return null}schema=this;_coerce=!1;coerce(){return this._coerce=!0,this}optional(){return new u(this)}enum(e){return new O(this,e)}array(){return new x(this)}instanceOf(e){return new k(this,e)}};function K(a,e){return typeof e=="string"&&a==="string"||typeof e=="number"&&a==="number"&&!Number.isNaN(e)||typeof e=="boolean"&&a==="boolean"}var S=class a extends i{type="string";_validateUUID=!1;_validateRegex=!1;_validateEmail=!1;_validatePhone=!1;_validateDomain=!1;_requireHttpOrHttps=!1;_minLength;_maxLength;constructor(){super(),this.jsonSchema={type:"string"}}primitive(){return this.type}minLength(e){let n=new a;return Object.assign(n,this),n._minLength=e,n.jsonSchema={...this.jsonSchema,minLength:e},n}maxLength(e){let n=new a;return Object.assign(n,this),n._maxLength=e,n.jsonSchema={...this.jsonSchema,maxLength:e},n}uuid(){let e=new a;return e._validateUUID=!0,e.jsonSchema={...this.jsonSchema,format:"uuid"},e}regex(e){let n=new a;return n._validateRegex=!0,n.jsonSchema={...this.jsonSchema,pattern:e.source},n}email(){let e=new a;return e._validateEmail=!0,e.jsonSchema={...this.jsonSchema,format:"email"},e}phone(){let e=new a;return e._validatePhone=!0,e.jsonSchema={...this.jsonSchema,format:"phone"},e}domain(e=!0){let n=new a;return n._validateDomain=!0,n.jsonSchema={...this.jsonSchema,format:"domain"},n._requireHttpOrHttps=e,n}"~standard"={version:1,vendor:"h-schema",validate:e=>(this._coerce&&typeof e!="string"&&(e=String(e)),typeof e!="string"?{issues:[{message:"Expected string, received "+typeof e}]}:this._minLength!==void 0&&e.length<this._minLength?{issues:[{message:`String shorter than ${this._minLength}`}]}:this._maxLength!==void 0&&e.length>this._maxLength?{issues:[{message:`String longer than ${this._maxLength}`}]}:this._validateUUID&&!this._isValidUUID(e)?{issues:[{message:"Invalid UUID format"}]}:this._validateRegex&&!this._isValidRegex(e)?{issues:[{message:"Invalid regex format"}]}:this._validateEmail&&!this._isValidEmail(e)?{issues:[{message:"Invalid email format"}]}:this._validatePhone&&!this._isValidPhone(e)?{issues:[{message:"Invalid phone number format"}]}:this._validateDomain&&!this._isValidDomain(e)?{issues:[{message:"Invalid domain format"}]}:{value:e}),types:{input:{},output:{}}};_isValidUUID(e){return/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(e)}_isValidRegex(e){return new RegExp(this.jsonSchema.pattern).test(e)}_isValidEmail(e){return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)}_isValidPhone(e){return/^\+?[0-9]{7,15}$/.test(e)}_isValidDomain(e){let n=/^[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,6}$/;return this._requireHttpOrHttps&&(n=/^https?:\/\/[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,6}$/),n.test(e)}},p=class a extends i{type="number";_min;_max;constructor(){super(),this.jsonSchema={type:"number"}}primitive(){return this.type}min(e){let n=new a;return Object.assign(n,this),n._min=e,n.jsonSchema={...this.jsonSchema,minimum:e},n}max(e){let n=new a;return Object.assign(n,this),n._max=e,n.jsonSchema={...this.jsonSchema,maximum:e},n}"~standard"={version:1,vendor:"h-schema",validate:e=>{if(this._coerce&&typeof e!="number"){let n=Number(e);Number.isNaN(n)||(e=n)}return typeof e!="number"||Number.isNaN(e)?{issues:[{message:"Expected number, received "+typeof e}]}:this._min!==void 0&&e<this._min?{issues:[{message:`Number less than ${this._min}`}]}:this._max!==void 0&&e>this._max?{issues:[{message:`Number greater than ${this._max}`}]}:{value:e}},types:{input:{},output:{}}}},l=class extends i{type="boolean";constructor(){super(),this.jsonSchema={type:"boolean"}}primitive(){return this.type}"~standard"={version:1,vendor:"h-schema",validate:e=>(this._coerce&&typeof e!="boolean"&&(e==="true"||e===1||e==="1"?e=!0:(e==="false"||e===0||e==="0")&&(e=!1)),typeof e!="boolean"?{issues:[{message:"Expected boolean, received "+typeof e}]}:{value:e}),types:{input:{},output:{}}}},b=class extends i{type="any";"~standard"={version:1,vendor:"h-schema",validate:e=>({value:e}),types:{input:{},output:{}}}},w=class extends i{value;constructor(e){super(),this.value=e,this.jsonSchema={const:e,type:typeof e}}"~standard"={version:1,vendor:"h-schema",validate:e=>e!==this.value?{issues:[{message:`Expected literal value ${this.value}, received ${e}`}]}:{value:e},types:{input:{},output:{}}}},u=class extends i{innerSchema;constructor(e){super(),this.innerSchema=e,this.jsonSchema={...e.jsonSchema}}"~standard"={version:1,vendor:"h-schema",validate:async e=>e==null?{value:void 0}:await this.innerSchema["~standard"].validate(e),types:{input:{},output:{}}}},v=class extends i{type="null";constructor(){super(),this.jsonSchema={type:"null"}}"~standard"={version:1,vendor:"h-schema",validate:e=>e!==null?{issues:[{message:`Expected null, received ${e===void 0?"undefined":typeof e}`}]}:{value:null},types:{input:{},output:{}}}},I=class extends i{schemas;constructor(...e){super(),this.schemas=e,this.jsonSchema={anyOf:e.map(n=>n.jsonSchema)}}"~standard"={version:1,vendor:"h-schema",validate:async e=>{let n=[];for(let r of this.schemas){let t=await r["~standard"].validate(e);if(!("issues"in t))return{value:t.value};n.push(...t.issues)}return{issues:n}},types:{input:{},output:{}}}},O=class extends i{innerSchema;values;constructor(e,n){super(),this.innerSchema=e,this.values=n,this.jsonSchema={...e.jsonSchema,enum:n}}"~standard"={version:1,vendor:"h-schema",validate:async e=>{let n=await this.innerSchema["~standard"].validate(e);return"issues"in n?n:this.values.includes(n.value)?{value:n.value}:{issues:[{message:`Invalid enum value. Expected one of: ${this.values.join(", ")}`}]}},types:{input:{},output:{}}}},x=class extends i{innerSchema;constructor(e){super(),this.innerSchema=e,this.jsonSchema={type:"array",items:e.jsonSchema}}"~standard"={version:1,vendor:"h-schema",validate:async e=>{if(!Array.isArray(e))return{issues:[{message:"Expected array, received "+typeof e}]};let n=await Promise.all(e.map(async(t,s)=>{let o=await this.innerSchema["~standard"].validate(t);return"issues"in o?{index:s,issues:o.issues?.map(h=>({...h,path:h.path?[s,...h.path]:[s]}))}:{index:s,value:o.value}})),r=n.filter(t=>"issues"in t);return r.length>0?{issues:r.flatMap(t=>t.issues)}:{value:n.map(t=>"value"in t?t.value:null)}},types:{input:{},output:{}}}},k=class extends i{innerSchema;classConstructor;constructor(e,n){super(),this.innerSchema=e,this.classConstructor=n,this.jsonSchema={...e.jsonSchema,instanceOf:n.name}}"~standard"={version:1,vendor:"h-schema",validate:async e=>e instanceof this.classConstructor?await this.innerSchema["~standard"].validate(e):{issues:[{message:`Expected instance of ${this.classConstructor.name}`}]},types:{input:{},output:{}}}},y=class extends i{definition;constructor(e){super(),this.definition=e;let n={},r=[];for(let t in e){let s=e[t];s instanceof u||r.push(t),typeof s=="string"?n[t]={type:s}:s instanceof i?n[t]=s.jsonSchema:typeof s=="object"&&s!==null&&(n[t]={type:"object",properties:{}})}this.jsonSchema={type:"object",properties:n,required:r.length>0?r:void 0}}"~standard"={version:1,vendor:"h-schema",validate:async e=>{if(typeof e!="object"||e===null||Array.isArray(e))return{issues:[{message:"Expected object, received "+(e===null?"null":Array.isArray(e)?"array":typeof e)}]};let n=e,r={},t=[];for(let s in this.definition){let o=this.definition[s],h=o instanceof u;if(!(s in n)&&!h){t.push({message:`Missing required property: ${s}`,path:[s]});continue}if(s in n){if(typeof o=="string"&&o in["string","number","boolean"]){let c=o;K(c,n[s])?r[s]=n[s]:t.push({message:`Invalid type for property ${s}: expected ${c}`,path:[s]})}else if(o instanceof i){let c=await o["~standard"].validate(n[s]);"issues"in c?c.issues&&t.push(...c.issues.map(f=>({...f,path:f.path?[s,...f.path]:[s]}))):r[s]=c.value}}}return t.length>0?{issues:t}:{value:r}},types:{input:{},output:{}}}};function d(a){let e;if(a instanceof i)e=a;else if(typeof a=="string")if(a==="string")e=new S;else if(a==="number")e=new p;else if(a==="boolean")e=new l;else throw new Error("Invalid schema type provided to toStandard");else if(typeof a=="object"&&a!==null&&!Array.isArray(a))e=new y(a);else throw new Error("Invalid schema type provided to toStandard");let n={toJSONSchema:r=>r.jsonSchema};return{...e,inferred:null,"~standard":e["~standard"],jsonSchema:n.toJSONSchema(e),schema:e,optional:()=>new u(e),enum:e.enum.bind(e),array:e.array.bind(e),instanceOf:e.instanceOf.bind(e)}}var m={string:()=>new S,number:()=>new p,boolean:()=>new l,null:()=>new v,any:()=>new b,literal:a=>new w(a),object:a=>new y(a||{}),array:a=>d(a).array(),enum:a=>{let e=a[0],n;if(typeof e=="string")n=m.string();else if(typeof e=="number")n=m.number();else if(typeof e=="boolean")n=m.boolean();else throw new Error("Enum values must be primitives");return n.enum(a)},optional:a=>d(a).optional(),options:(...a)=>{let e=a.map(n=>d(n).schema);return new I(...e)},instanceOf:a=>m.object({}).instanceOf(a),uuid:()=>m.string().uuid(),regex:a=>m.string().regex(a),email:()=>m.string().email(),phone:()=>m.string().phone(),domain:(a=!0)=>m.string().domain(a),toStandard:d};0&&(module.exports={h});
|