{"version":3,"file":"OpenApiTupleValidator.mjs","sources":["../../../src/utils/internal/OpenApiTupleValidator.ts"],"sourcesContent":["import { OpenApi } from \"../../OpenApi\";\nimport { IOpenApiValidatorContext } from \"./IOpenApiValidatorContext\";\nimport { OpenApiStationValidator } from \"./OpenApiStationValidator\";\n\nexport namespace OpenApiTupleValidator {\n  export const validate = (\n    ctx: IOpenApiValidatorContext<OpenApi.IJsonSchema.ITuple>,\n  ): boolean => {\n    if (!Array.isArray(ctx.value)) return ctx.report(ctx);\n    else if (!!ctx.schema.additionalItems === false) {\n      if (ctx.value.length !== ctx.schema.prefixItems.length)\n        return ctx.report(ctx);\n      return ctx.value\n        .map((v, i) =>\n          OpenApiStationValidator.validate({\n            ...ctx,\n            schema: ctx.schema.prefixItems[i],\n            value: v,\n            path: `${ctx.path}[${i}]`,\n          }),\n        )\n        .every((v) => v);\n    }\n\n    if (ctx.value.length < ctx.schema.prefixItems.length)\n      return ctx.report(ctx);\n    const next =\n      typeof ctx.schema.additionalItems === \"object\" &&\n      ctx.schema.additionalItems !== null\n        ? (v: unknown, i: number) =>\n            OpenApiStationValidator.validate({\n              ...ctx,\n              schema: ctx.schema.additionalItems as OpenApi.IJsonSchema,\n              value: v,\n              path: `${ctx.path}[${i}]`,\n            })\n        : () => true;\n    return (\n      ctx.value.length >= ctx.schema.prefixItems.length &&\n      ctx.value\n        .map((v, i) =>\n          i < ctx.schema.prefixItems.length\n            ? OpenApiStationValidator.validate({\n                ...ctx,\n                schema: ctx.schema.prefixItems[i],\n                value: v,\n                path: `${ctx.path}[${i}]`,\n              })\n            : next(v, i),\n        )\n        .every((v) => v)\n    );\n  };\n}\n"],"names":["OpenApiTupleValidator","validate","ctx","Array","isArray","value","report","schema","additionalItems","length","prefixItems","map","v","i","OpenApiStationValidator","path","every","next"],"mappings":";;AAIM,IAAWA;;CAAjB,SAAiBA;IACFA,sBAAAC,WACXC;QAEA,KAAKC,MAAMC,QAAQF,IAAIG,QAAQ,OAAOH,IAAII,OAAOJ,WAC5C,MAAMA,IAAIK,OAAOC,oBAAoB,OAAO;YAC/C,IAAIN,IAAIG,MAAMI,WAAWP,IAAIK,OAAOG,YAAYD,QAC9C,OAAOP,IAAII,OAAOJ;YACpB,OAAOA,IAAIG,MACRM,IAAI,CAACC,GAAGC,MACPC,wBAAwBb,SAAS;mBAC5BC;gBACHK,QAAQL,IAAIK,OAAOG,YAAYG;gBAC/BR,OAAOO;gBACPG,MAAM,GAAGb,IAAIa,QAAQF;gBAGxBG,MAAOJ,KAAMA;AAClB;QAEA,IAAIV,IAAIG,MAAMI,SAASP,IAAIK,OAAOG,YAAYD,QAC5C,OAAOP,IAAII,OAAOJ;QACpB,MAAMe,cACGf,IAAIK,OAAOC,oBAAoB,YACtCN,IAAIK,OAAOC,oBAAoB,OAC3B,CAACI,GAAYC,MACXC,wBAAwBb,SAAS;eAC5BC;YACHK,QAAQL,IAAIK,OAAOC;YACnBH,OAAOO;YACPG,MAAM,GAAGb,IAAIa,QAAQF;aAEzB,MAAM;QACZ,OACEX,IAAIG,MAAMI,UAAUP,IAAIK,OAAOG,YAAYD,UAC3CP,IAAIG,MACDM,IAAI,CAACC,GAAGC,MACPA,IAAIX,IAAIK,OAAOG,YAAYD,SACvBK,wBAAwBb,SAAS;eAC5BC;YACHK,QAAQL,IAAIK,OAAOG,YAAYG;YAC/BR,OAAOO;YACPG,MAAM,GAAGb,IAAIa,QAAQF;aAEvBI,KAAKL,GAAGC,IAEbG,MAAOJ,KAAMA;;AAGrB,EAjDD,CAAiBZ,0BAAAA,wBAAqB,CAAA;;"}