Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

adaptate

Package Overview
Dependencies
Maintainers
1
Versions
26
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

adaptate - npm Package Compare versions

Comparing version
1.0.0-alpha.1
to
1.0.0-alpha.2
+1
-1
package.json
{
"name": "adaptate",
"version": "1.0.0-alpha.1",
"version": "1.0.0-alpha.2",
"author": {

@@ -5,0 +5,0 @@ "name": "Peramanathan Sathyamoorthy",

@@ -1,23 +0,23 @@

import { ZodArray as j, z as m, ZodObject as d } from "zod";
function l(r, i) {
function a(s, n) {
const u = s?.isOptional?.() ? (
import { ZodArray as l, z as m, ZodObject as d } from "zod";
function j(r, f) {
function s(a, o) {
const u = a?.isOptional?.() ? (
// @ts-ignore
s.unwrap()
) : s;
if (u instanceof d && typeof n == "object" && !Array.isArray(n)) {
const c = u.shape, o = Object.fromEntries(
a.unwrap()
) : a;
if (u instanceof d && typeof o == "object" && !Array.isArray(o)) {
const i = u.shape, t = Object.fromEntries(
// @ts-ignore
Object.entries(c).map(([t, p]) => {
let b = p?.isOptional?.() ? p.unwrap() : p;
return n[t] === !0 ? [t, b] : n[t] === !1 ? [t, b.optional()] : typeof n[t] == "object" ? [t, a(p, n[t])] : [t, p];
Object.entries(i).map(([n, c]) => {
let b = c?.isOptional?.() ? c.unwrap() : c;
return o[n] === !0 ? [n, b] : o[n] === !1 ? [n, b.optional()] : typeof o[n] == "object" ? [n, s(c, o[n])] : [n, c];
})
);
let f = m.object(o);
return u.merge(f);
let p = m.object(t);
return u.merge(p);
}
if (u instanceof j && n["*"]) {
const c = u.element;
if (u instanceof l && o["*"]) {
const i = u.element;
return m.array(
a(c, n["*"])
s(i, o["*"])
);

@@ -28,6 +28,6 @@ }

let e = r;
if (r instanceof j && i["*"])
e = l(r.element, i["*"]), e = m.array(r.element.merge(e));
if (r instanceof l && f["*"])
e = j(r.element, f["*"]), e = m.array(r.element.merge(e));
else if (r instanceof d)
e = a(r, i), e = r.merge(e);
e = s(r, f), e = r.merge(e);
else

@@ -38,22 +38,26 @@ throw new Error("The given schema must be a Zod object.");

function h(r) {
return function(a, e) {
let s = {
run: () => a.parse(r),
schema: a
return function(s, e) {
let a = {
run: () => s.parse(r),
schema: s,
staticConfig: {}
};
if (a instanceof d && typeof e == "object" && !Array.isArray(e)) {
const n = a.shape, u = Object.fromEntries(
Object.entries(n).map(([o, f]) => {
if (e[o] && (e[o].requiredIf || typeof e[o] == "function")) {
const t = e[o].requiredIf ?? e[o];
if (typeof t == "function" && t(r))
return [o, f.unwrap()];
}
return [o, f];
if (s instanceof d && typeof e == "object" && !Array.isArray(e)) {
const o = s.shape, u = Object.fromEntries(
Object.entries(o).map(([t, p]) => {
if (e[t] && (e[t].requiredIf || typeof e[t] == "function")) {
const n = e[t].requiredIf ?? e[t];
if (typeof n == "function" && n(r))
return [t, p.unwrap()];
} else e[t] && (a.staticConfig[t] = e[t]);
return [t, p];
})
);
let c = m.object(u);
s.run = () => c.parse(r), s.schema = c;
let i = j(
m.object(u),
a.staticConfig
);
a.run = () => i.parse(r), a.schema = i;
}
return s;
return a;
};

@@ -63,4 +67,4 @@ }

h as makeConditionalSchemaTransformer,
l as transformSchema
j as transformSchema
};
//# sourceMappingURL=index.es.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.es.js","sources":["../src/index.ts"],"sourcesContent":["import { z, ZodObject, ZodArray, ZodTypeAny } from 'zod';\n\nexport type Config = Record<string, any>;\n\n/**\n * Make the given Zod schema required as per the configuration.\n * @param schema - The Zod schema to make required.\n * @param config - The configuration object.\n * @returns The updated Zod schema with required properties.\n * @throws If the given schema is not a Zod object.\n * @example\n * const schema = z.object({\n * name: z.string().optional(),\n * age: z.number().optional(),\n * address: z.object({\n * street: z.string().optional(),\n * city: z.string().optional(),\n * }).optional(),\n * });\n *\n * // Specify which properties are required, false will not make required\n * // In original schema optional properties yet\n * const config = {\n * name: true,\n * address: {\n * city: true\n * }\n * };\n * const updatedSchema = transformSchema(schema, config);\n * const validData = {\n * name: 'John Doe',\n * address: { city: 'New York' },\n * };\n * const invalidDataMissingName = {\n * address: { city: 'New York' },\n * };\n * const invalidDataMissingCity = {\n * name: 'John Doe',\n * address: {},\n * };\n * schema.parse(validData); // Should pass\n * schema.parse(invalidDataMissingName); // Should fail due to missing 'name'\n * schema.parse(invalidDataMissingCity); // Should fail due to missing 'address.city'\n * @category Helper\n * @module transformSchema\n * */\n// @ts-ignore\nexport function transformSchema(\n schema: ZodTypeAny,\n config: Config\n): ZodTypeAny {\n function extendSchema(\n partialSchema: ZodObject<any>,\n partialConfig: Config\n ): ZodObject<any> {\n const unwrappedPartialSchema = partialSchema?.isOptional?.()\n ? // @ts-ignore\n partialSchema.unwrap()\n : partialSchema;\n\n if (\n unwrappedPartialSchema instanceof ZodObject &&\n typeof partialConfig === 'object' &&\n !Array.isArray(partialConfig)\n ) {\n const shape = unwrappedPartialSchema.shape;\n // @ts-ignore\n const newShape = Object.fromEntries(\n // @ts-ignore\n Object.entries(shape).map(([key, value]) => {\n // @ts-ignore\n let unwrappedValue = value?.isOptional?.() ? value.unwrap() : value;\n if (partialConfig[key] === true) {\n // @ts-ignore\n return [key, unwrappedValue];\n } else if (partialConfig[key] === false) {\n // @ts-ignore\n return [key, unwrappedValue.optional()];\n } else if (typeof partialConfig[key] === 'object') {\n // @ts-ignore\n return [key, extendSchema(value, partialConfig[key])];\n }\n return [key, value];\n })\n );\n\n let updatedPartialSchema = z.object(newShape);\n\n // @ts-ignore\n return unwrappedPartialSchema.merge(updatedPartialSchema);\n }\n\n if (unwrappedPartialSchema instanceof ZodArray && partialConfig['*']) {\n const elementSchema = unwrappedPartialSchema.element as ZodObject<any>;\n\n let updatedPartialSchema = z.array(\n extendSchema(elementSchema, partialConfig['*'])\n );\n\n // @ts-ignore\n return updatedPartialSchema;\n }\n return unwrappedPartialSchema;\n }\n\n let updatedSchema = schema;\n\n if (schema instanceof ZodArray && config['*']) {\n // @ts-ignore\n updatedSchema = transformSchema(schema.element, config['*']);\n updatedSchema = z.array(schema.element.merge(updatedSchema));\n } else if (schema instanceof ZodObject) {\n // @ts-ignore\n updatedSchema = extendSchema(schema, config);\n // @ts-ignore\n updatedSchema = schema.merge(updatedSchema);\n } else {\n throw new Error('The given schema must be a Zod object.');\n }\n\n return updatedSchema;\n}\n\nexport function makeConditionalSchemaTransformer(data: any) {\n return function conditionalSchemaTransformer(\n schema: ZodTypeAny,\n config: any\n ) {\n let transformer = {\n run: () => schema.parse(data),\n schema: schema,\n };\n if (\n schema instanceof ZodObject &&\n typeof config === 'object' &&\n !Array.isArray(config)\n ) {\n const shape = schema.shape;\n const newShape = Object.fromEntries(\n Object.entries(shape).map(([key, value]) => {\n if (\n config[key] &&\n (config[key].requiredIf || typeof config[key] === 'function')\n ) {\n const condition = config[key].requiredIf ?? config[key];\n if (typeof condition === 'function' && condition(data)) {\n // @ts-ignore\n return [key, value.unwrap()];\n }\n }\n return [key, value];\n })\n );\n\n let updatedSchema = z.object(newShape);\n\n transformer.run = () => updatedSchema.parse(data);\n transformer.schema = updatedSchema;\n }\n\n return transformer;\n };\n}\n"],"names":["transformSchema","schema","config","extendSchema","partialSchema","partialConfig","unwrappedPartialSchema","ZodObject","shape","newShape","key","value","unwrappedValue","updatedPartialSchema","z","ZodArray","elementSchema","updatedSchema","makeConditionalSchemaTransformer","data","transformer","condition"],"mappings":";AA+CgB,SAAAA,EACdC,GACAC,GACY;AACH,WAAAC,EACPC,GACAC,GACgB;AACV,UAAAC,IAAyBF,GAAe,aAAa;AAAA;AAAA,MAEvDA,EAAc,OAAO;AAAA,QACrBA;AAGF,QAAAE,aAAkCC,KAClC,OAAOF,KAAkB,YACzB,CAAC,MAAM,QAAQA,CAAa,GAC5B;AACA,YAAMG,IAAQF,EAAuB,OAE/BG,IAAW,OAAO;AAAA;AAAA,QAEtB,OAAO,QAAQD,CAAK,EAAE,IAAI,CAAC,CAACE,GAAKC,CAAK,MAAM;AAE1C,cAAIC,IAAiBD,GAAO,aAAiB,IAAAA,EAAM,WAAWA;AAC1D,iBAAAN,EAAcK,CAAG,MAAM,KAElB,CAACA,GAAKE,CAAc,IAClBP,EAAcK,CAAG,MAAM,KAEzB,CAACA,GAAKE,EAAe,UAAU,IAC7B,OAAOP,EAAcK,CAAG,KAAM,WAEhC,CAACA,GAAKP,EAAaQ,GAAON,EAAcK,CAAG,CAAC,CAAC,IAE/C,CAACA,GAAKC,CAAK;AAAA,QACnB,CAAA;AAAA,MACH;AAEI,UAAAE,IAAuBC,EAAE,OAAOL,CAAQ;AAGrC,aAAAH,EAAuB,MAAMO,CAAoB;AAAA,IAAA;AAG1D,QAAIP,aAAkCS,KAAYV,EAAc,GAAG,GAAG;AACpE,YAAMW,IAAgBV,EAAuB;AAOtC,aALoBQ,EAAE;AAAA,QAC3BX,EAAaa,GAAeX,EAAc,GAAG,CAAC;AAAA,MAChD;AAAA,IAGO;AAEF,WAAAC;AAAA,EAAA;AAGT,MAAIW,IAAgBhB;AAEpB,MAAIA,aAAkBc,KAAYb,EAAO,GAAG;AAE1C,IAAAe,IAAgBjB,EAAgBC,EAAO,SAASC,EAAO,GAAG,CAAC,GAC3De,IAAgBH,EAAE,MAAMb,EAAO,QAAQ,MAAMgB,CAAa,CAAC;AAAA,WAClDhB,aAAkBM;AAEX,IAAAU,IAAAd,EAAaF,GAAQC,CAAM,GAE3Be,IAAAhB,EAAO,MAAMgB,CAAa;AAAA;AAEpC,UAAA,IAAI,MAAM,wCAAwC;AAGnD,SAAAA;AACT;AAEO,SAASC,EAAiCC,GAAW;AACnD,SAAA,SACLlB,GACAC,GACA;AACA,QAAIkB,IAAc;AAAA,MAChB,KAAK,MAAMnB,EAAO,MAAMkB,CAAI;AAAA,MAC5B,QAAAlB;AAAA,IACF;AAEE,QAAAA,aAAkBM,KAClB,OAAOL,KAAW,YAClB,CAAC,MAAM,QAAQA,CAAM,GACrB;AACA,YAAMM,IAAQP,EAAO,OACfQ,IAAW,OAAO;AAAA,QACtB,OAAO,QAAQD,CAAK,EAAE,IAAI,CAAC,CAACE,GAAKC,CAAK,MAAM;AAExC,cAAAT,EAAOQ,CAAG,MACTR,EAAOQ,CAAG,EAAE,cAAc,OAAOR,EAAOQ,CAAG,KAAM,aAClD;AACA,kBAAMW,IAAYnB,EAAOQ,CAAG,EAAE,cAAcR,EAAOQ,CAAG;AACtD,gBAAI,OAAOW,KAAc,cAAcA,EAAUF,CAAI;AAEnD,qBAAO,CAACT,GAAKC,EAAM,QAAQ;AAAA,UAC7B;AAEK,iBAAA,CAACD,GAAKC,CAAK;AAAA,QACnB,CAAA;AAAA,MACH;AAEI,UAAAM,IAAgBH,EAAE,OAAOL,CAAQ;AAErC,MAAAW,EAAY,MAAM,MAAMH,EAAc,MAAME,CAAI,GAChDC,EAAY,SAASH;AAAA,IAAA;AAGhB,WAAAG;AAAA,EACT;AACF;"}
{"version":3,"file":"index.es.js","sources":["../src/index.ts"],"sourcesContent":["import { z, ZodObject, ZodArray, ZodTypeAny } from 'zod';\n\nexport type Config = Record<string, any>;\n\n/**\n * Make the given Zod schema required as per the configuration.\n * @param schema - The Zod schema to make required.\n * @param config - The configuration object.\n * @returns The updated Zod schema with required properties.\n * @throws If the given schema is not a Zod object.\n * @example\n * const schema = z.object({\n * name: z.string().optional(),\n * age: z.number().optional(),\n * address: z.object({\n * street: z.string().optional(),\n * city: z.string().optional(),\n * }).optional(),\n * });\n *\n * // Specify which properties are required, false will not make required\n * // In original schema optional properties yet\n * const config = {\n * name: true,\n * address: {\n * city: true\n * }\n * };\n * const updatedSchema = transformSchema(schema, config);\n * const validData = {\n * name: 'John Doe',\n * address: { city: 'New York' },\n * };\n * const invalidDataMissingName = {\n * address: { city: 'New York' },\n * };\n * const invalidDataMissingCity = {\n * name: 'John Doe',\n * address: {},\n * };\n * schema.parse(validData); // Should pass\n * schema.parse(invalidDataMissingName); // Should fail due to missing 'name'\n * schema.parse(invalidDataMissingCity); // Should fail due to missing 'address.city'\n * @category Helper\n * @module transformSchema\n * */\n// @ts-ignore\nexport function transformSchema(\n schema: ZodTypeAny,\n config: Config\n): ZodTypeAny {\n function extendSchema(\n partialSchema: ZodObject<any>,\n partialConfig: Config\n ): ZodObject<any> {\n const unwrappedPartialSchema = partialSchema?.isOptional?.()\n ? // @ts-ignore\n partialSchema.unwrap()\n : partialSchema;\n\n if (\n unwrappedPartialSchema instanceof ZodObject &&\n typeof partialConfig === 'object' &&\n !Array.isArray(partialConfig)\n ) {\n const shape = unwrappedPartialSchema.shape;\n // @ts-ignore\n const newShape = Object.fromEntries(\n // @ts-ignore\n Object.entries(shape).map(([key, value]) => {\n // @ts-ignore\n let unwrappedValue = value?.isOptional?.() ? value.unwrap() : value;\n if (partialConfig[key] === true) {\n // @ts-ignore\n return [key, unwrappedValue];\n } else if (partialConfig[key] === false) {\n // @ts-ignore\n return [key, unwrappedValue.optional()];\n } else if (typeof partialConfig[key] === 'object') {\n // @ts-ignore\n return [key, extendSchema(value, partialConfig[key])];\n }\n return [key, value];\n })\n );\n\n let updatedPartialSchema = z.object(newShape);\n\n // @ts-ignore\n return unwrappedPartialSchema.merge(updatedPartialSchema);\n }\n\n if (unwrappedPartialSchema instanceof ZodArray && partialConfig['*']) {\n const elementSchema = unwrappedPartialSchema.element as ZodObject<any>;\n\n let updatedPartialSchema = z.array(\n extendSchema(elementSchema, partialConfig['*'])\n );\n\n // @ts-ignore\n return updatedPartialSchema;\n }\n return unwrappedPartialSchema;\n }\n\n let updatedSchema = schema;\n\n if (schema instanceof ZodArray && config['*']) {\n // @ts-ignore\n updatedSchema = transformSchema(schema.element, config['*']);\n updatedSchema = z.array(schema.element.merge(updatedSchema));\n } else if (schema instanceof ZodObject) {\n // @ts-ignore\n updatedSchema = extendSchema(schema, config);\n // @ts-ignore\n updatedSchema = schema.merge(updatedSchema);\n } else {\n throw new Error('The given schema must be a Zod object.');\n }\n\n return updatedSchema;\n}\n\nexport function makeConditionalSchemaTransformer(data: any) {\n return function conditionalSchemaTransformer(\n schema: ZodTypeAny,\n config: any\n ) {\n let transformer = {\n run: () => schema.parse(data),\n schema: schema,\n staticConfig: {},\n };\n if (\n schema instanceof ZodObject &&\n typeof config === 'object' &&\n !Array.isArray(config)\n ) {\n const shape = schema.shape;\n const newShape = Object.fromEntries(\n Object.entries(shape).map(([key, value]) => {\n if (\n config[key] &&\n (config[key].requiredIf || typeof config[key] === 'function')\n ) {\n const condition = config[key].requiredIf ?? config[key];\n if (typeof condition === 'function' && condition(data)) {\n // @ts-ignore\n return [key, value.unwrap()];\n }\n } else if (config[key]) {\n // @ts-ignore\n transformer.staticConfig[key] = config[key];\n }\n return [key, value];\n })\n );\n\n let updatedSchema = transformSchema(\n z.object(newShape),\n transformer.staticConfig\n );\n\n transformer.run = () => updatedSchema.parse(data);\n transformer.schema = updatedSchema;\n }\n\n return transformer;\n };\n}\n"],"names":["transformSchema","schema","config","extendSchema","partialSchema","partialConfig","unwrappedPartialSchema","ZodObject","shape","newShape","key","value","unwrappedValue","updatedPartialSchema","z","ZodArray","elementSchema","updatedSchema","makeConditionalSchemaTransformer","data","transformer","condition"],"mappings":";AA+CgB,SAAAA,EACdC,GACAC,GACY;AACH,WAAAC,EACPC,GACAC,GACgB;AACV,UAAAC,IAAyBF,GAAe,aAAa;AAAA;AAAA,MAEvDA,EAAc,OAAO;AAAA,QACrBA;AAGF,QAAAE,aAAkCC,KAClC,OAAOF,KAAkB,YACzB,CAAC,MAAM,QAAQA,CAAa,GAC5B;AACA,YAAMG,IAAQF,EAAuB,OAE/BG,IAAW,OAAO;AAAA;AAAA,QAEtB,OAAO,QAAQD,CAAK,EAAE,IAAI,CAAC,CAACE,GAAKC,CAAK,MAAM;AAE1C,cAAIC,IAAiBD,GAAO,aAAiB,IAAAA,EAAM,WAAWA;AAC1D,iBAAAN,EAAcK,CAAG,MAAM,KAElB,CAACA,GAAKE,CAAc,IAClBP,EAAcK,CAAG,MAAM,KAEzB,CAACA,GAAKE,EAAe,UAAU,IAC7B,OAAOP,EAAcK,CAAG,KAAM,WAEhC,CAACA,GAAKP,EAAaQ,GAAON,EAAcK,CAAG,CAAC,CAAC,IAE/C,CAACA,GAAKC,CAAK;AAAA,QACnB,CAAA;AAAA,MACH;AAEI,UAAAE,IAAuBC,EAAE,OAAOL,CAAQ;AAGrC,aAAAH,EAAuB,MAAMO,CAAoB;AAAA,IAAA;AAG1D,QAAIP,aAAkCS,KAAYV,EAAc,GAAG,GAAG;AACpE,YAAMW,IAAgBV,EAAuB;AAOtC,aALoBQ,EAAE;AAAA,QAC3BX,EAAaa,GAAeX,EAAc,GAAG,CAAC;AAAA,MAChD;AAAA,IAGO;AAEF,WAAAC;AAAA,EAAA;AAGT,MAAIW,IAAgBhB;AAEpB,MAAIA,aAAkBc,KAAYb,EAAO,GAAG;AAE1C,IAAAe,IAAgBjB,EAAgBC,EAAO,SAASC,EAAO,GAAG,CAAC,GAC3De,IAAgBH,EAAE,MAAMb,EAAO,QAAQ,MAAMgB,CAAa,CAAC;AAAA,WAClDhB,aAAkBM;AAEX,IAAAU,IAAAd,EAAaF,GAAQC,CAAM,GAE3Be,IAAAhB,EAAO,MAAMgB,CAAa;AAAA;AAEpC,UAAA,IAAI,MAAM,wCAAwC;AAGnD,SAAAA;AACT;AAEO,SAASC,EAAiCC,GAAW;AACnD,SAAA,SACLlB,GACAC,GACA;AACA,QAAIkB,IAAc;AAAA,MAChB,KAAK,MAAMnB,EAAO,MAAMkB,CAAI;AAAA,MAC5B,QAAAlB;AAAA,MACA,cAAc,CAAA;AAAA,IAChB;AAEE,QAAAA,aAAkBM,KAClB,OAAOL,KAAW,YAClB,CAAC,MAAM,QAAQA,CAAM,GACrB;AACA,YAAMM,IAAQP,EAAO,OACfQ,IAAW,OAAO;AAAA,QACtB,OAAO,QAAQD,CAAK,EAAE,IAAI,CAAC,CAACE,GAAKC,CAAK,MAAM;AAExC,cAAAT,EAAOQ,CAAG,MACTR,EAAOQ,CAAG,EAAE,cAAc,OAAOR,EAAOQ,CAAG,KAAM,aAClD;AACA,kBAAMW,IAAYnB,EAAOQ,CAAG,EAAE,cAAcR,EAAOQ,CAAG;AACtD,gBAAI,OAAOW,KAAc,cAAcA,EAAUF,CAAI;AAEnD,qBAAO,CAACT,GAAKC,EAAM,QAAQ;AAAA,UAC7B,MACF,CAAWT,EAAOQ,CAAG,MAEnBU,EAAY,aAAaV,CAAG,IAAIR,EAAOQ,CAAG;AAErC,iBAAA,CAACA,GAAKC,CAAK;AAAA,QACnB,CAAA;AAAA,MACH;AAEA,UAAIM,IAAgBjB;AAAA,QAClBc,EAAE,OAAOL,CAAQ;AAAA,QACjBW,EAAY;AAAA,MACd;AAEA,MAAAA,EAAY,MAAM,MAAMH,EAAc,MAAME,CAAI,GAChDC,EAAY,SAASH;AAAA,IAAA;AAGhB,WAAAG;AAAA,EACT;AACF;"}