{"version":3,"file":"dev.mjs","sources":["../../../../../../../core/src/utils/dev.ts"],"sourcesContent":["import { StytchSDKUsageError } from '../public';\n\n/**\n * This function and its parameter is stripped in production builds using rollup plugin.\n * NOTE: Be careful when wrapping render function return values. React before v18 do not allow undefined\n *       to be returned, so wrapping the entire return value will crash those runtimes.\n */\nexport const DEV = <T>(input: T): T | undefined => input;\n\n/**\n * This function is stripped in production builds using rollup plugin. Useful for adding\n * logging or validation in dev only\n */\nexport function RUN_IN_DEV(callback: () => void) {\n  callback();\n}\n\nexport type ValidateRule =\n  | 'object'\n  | 'optionalObject'\n  | 'string'\n  | 'optionalString'\n  | 'number'\n  | 'optionalNumber'\n  | 'stringArray'\n  | 'optionalStringArray'\n  | 'boolean'\n  | 'optionalBoolean';\n\nexport const validateInDev = <T extends Record<string, unknown>>(\n  methodName: string,\n  obj: T,\n  rules: Partial<Record<keyof T, ValidateRule>>,\n) => {\n  const errors: StytchSDKUsageError[] = [];\n  for (const [key, rule] of Object.entries(rules)) {\n    if (rule == null) continue;\n\n    const val = obj[key];\n    if (rule.startsWith('optional') && val == null) continue;\n\n    switch (rule) {\n      case 'object':\n      case 'optionalObject': {\n        const isObject = typeof val === 'object' && !Array.isArray(val) && val !== null;\n        if (!isObject) {\n          errors.push(new StytchSDKUsageError(methodName, `${key} must be an object.`));\n        }\n        break;\n      }\n\n      case 'string':\n      case 'optionalString':\n        if (typeof val !== 'string') {\n          errors.push(new StytchSDKUsageError(methodName, `${key} must be a string.`));\n        }\n        break;\n\n      case 'number':\n      case 'optionalNumber':\n        if (typeof val !== 'number') {\n          errors.push(new StytchSDKUsageError(methodName, `${key} must be a number.`));\n        }\n        break;\n\n      case 'stringArray':\n      case 'optionalStringArray':\n        if (!Array.isArray(val) || !val.every((str) => typeof str === 'string')) {\n          errors.push(new StytchSDKUsageError(methodName, `${key} must be an array of strings.`));\n        }\n        break;\n\n      case 'boolean':\n      case 'optionalBoolean':\n        if (typeof val !== 'boolean') {\n          errors.push(new StytchSDKUsageError(methodName, `${key} must be a boolean.`));\n        }\n        break;\n    }\n  }\n\n  if (errors.length > 0) {\n    if (errors.length === 1) {\n      throw errors[0];\n    } else {\n      throw new AggregateError(errors);\n    }\n  }\n};\n"],"names":["DEV","input","RUN_IN_DEV","callback","validateInDev","methodName","obj","rules","errors","key","rule","Object","entries","val","startsWith","isObject","Array","isArray","push","StytchSDKUsageError","every","str","length","AggregateError"],"mappings":";;AAEA;;;;AAIC,IACM,MAAMA,GAAAA,GAAM,CAAIC,QAA4BA;AAEnD;;;IAIO,SAASC,UAAAA,CAAWC,QAAoB,EAAA;AAC7CA,IAAAA,QAAAA,EAAAA;AACF;AAcO,MAAMC,aAAAA,GAAgB,CAC3BC,UAAAA,EACAC,GAAAA,EACAC,KAAAA,GAAAA;AAEA,IAAA,MAAMC,SAAgC,EAAE;IACxC,KAAK,MAAM,CAACC,GAAAA,EAAKC,IAAAA,CAAK,IAAIC,MAAAA,CAAOC,OAAO,CAACL,KAAAA,CAAAA,CAAQ;AAC/C,QAAA,IAAIG,QAAQ,IAAA,EAAM;QAElB,MAAMG,GAAAA,GAAMP,GAAG,CAACG,GAAAA,CAAI;AACpB,QAAA,IAAIC,IAAAA,CAAKI,UAAU,CAAC,UAAA,CAAA,IAAeD,OAAO,IAAA,EAAM;QAEhD,OAAQH,IAAAA;YACN,KAAK,QAAA;YACL,KAAK,gBAAA;AAAkB,gBAAA;oBACrB,MAAMK,QAAAA,GAAW,OAAOF,GAAAA,KAAQ,QAAA,IAAY,CAACG,KAAAA,CAAMC,OAAO,CAACJ,GAAAA,CAAAA,IAAQA,GAAAA,KAAQ,IAAA;AAC3E,oBAAA,IAAI,CAACE,QAAAA,EAAU;wBACbP,MAAAA,CAAOU,IAAI,CAAC,IAAIC,mBAAAA,CAAoBd,YAAY,CAAA,EAAGI,GAAAA,CAAI,mBAAmB,CAAC,CAAA,CAAA;AAC7E,oBAAA;AACA,oBAAA;AACF,gBAAA;YAEA,KAAK,QAAA;YACL,KAAK,gBAAA;gBACH,IAAI,OAAOI,QAAQ,QAAA,EAAU;oBAC3BL,MAAAA,CAAOU,IAAI,CAAC,IAAIC,mBAAAA,CAAoBd,YAAY,CAAA,EAAGI,GAAAA,CAAI,kBAAkB,CAAC,CAAA,CAAA;AAC5E,gBAAA;AACA,gBAAA;YAEF,KAAK,QAAA;YACL,KAAK,gBAAA;gBACH,IAAI,OAAOI,QAAQ,QAAA,EAAU;oBAC3BL,MAAAA,CAAOU,IAAI,CAAC,IAAIC,mBAAAA,CAAoBd,YAAY,CAAA,EAAGI,GAAAA,CAAI,kBAAkB,CAAC,CAAA,CAAA;AAC5E,gBAAA;AACA,gBAAA;YAEF,KAAK,aAAA;YACL,KAAK,qBAAA;AACH,gBAAA,IAAI,CAACO,KAAAA,CAAMC,OAAO,CAACJ,GAAAA,CAAAA,IAAQ,CAACA,GAAAA,CAAIO,KAAK,CAAC,CAACC,GAAAA,GAAQ,OAAOA,QAAQ,QAAA,CAAA,EAAW;oBACvEb,MAAAA,CAAOU,IAAI,CAAC,IAAIC,mBAAAA,CAAoBd,YAAY,CAAA,EAAGI,GAAAA,CAAI,6BAA6B,CAAC,CAAA,CAAA;AACvF,gBAAA;AACA,gBAAA;YAEF,KAAK,SAAA;YACL,KAAK,iBAAA;gBACH,IAAI,OAAOI,QAAQ,SAAA,EAAW;oBAC5BL,MAAAA,CAAOU,IAAI,CAAC,IAAIC,mBAAAA,CAAoBd,YAAY,CAAA,EAAGI,GAAAA,CAAI,mBAAmB,CAAC,CAAA,CAAA;AAC7E,gBAAA;AACA,gBAAA;AACJ;AACF,IAAA;IAEA,IAAID,MAAAA,CAAOc,MAAM,GAAG,CAAA,EAAG;QACrB,IAAId,MAAAA,CAAOc,MAAM,KAAK,CAAA,EAAG;YACvB,MAAMd,MAAM,CAAC,CAAA,CAAE;QACjB,CAAA,MAAO;AACL,YAAA,MAAM,IAAIe,cAAAA,CAAef,MAAAA,CAAAA;AAC3B,QAAA;AACF,IAAA;AACF;;;;"}