{"version":3,"file":"assert.cjs","sources":["../../../src/utils/assert.ts"],"sourcesContent":["import { ConvergenceError } from '../errors';\n\n/**\n * Error indicating that an assertion failed.\n * @group Errors\n */\nexport class AssertionError extends Error {\n  constructor(message: string) {\n    super(message);\n    this.name = 'AssertionError';\n    if (Error.captureStackTrace) {\n      Error.captureStackTrace(this, this.constructor);\n    }\n  }\n}\n\n/**\n * Assserts that the provided condition is true.\n * @internal\n */\nexport function assert(\n  condition: boolean,\n  message?: string\n): asserts condition {\n  if (!condition) {\n    throw new AssertionError(message ?? 'Assertion failed');\n  }\n}\n\n/**\n * Asserts that both values are strictly equal.\n * @internal\n */\nassert.equal = function assertEqual<T>(\n  actual: unknown,\n  expected: T,\n  message?: string\n): asserts actual is T {\n  if (actual !== expected) {\n    throw new AssertionError((message ?? '') + ` ${actual} !== ${expected}`);\n  }\n};\n\n/**\n * Asserts that a given object contains the specified\n * keys such that their values are defined.\n */\nexport function assertObjectHasDefinedKeys<\n  T extends object,\n  K extends keyof T = keyof T\n>(\n  input: T,\n  keys: K[],\n  onError: (missingKeys: K[]) => ConvergenceError\n): asserts input is { [key in keyof T]: T[key] } & { [key in K]-?: T[key] } {\n  const missingKeys = keys.filter(\n    (property) => input?.[property] === undefined\n  );\n\n  if (missingKeys.length > 0) {\n    throw onError(missingKeys);\n  }\n}\n"],"names":["AssertionError","_Error","_inherits","message","_this","_classCallCheck","_callSuper","name","Error","captureStackTrace","_assertThisInitialized","constructor","_createClass","_wrapNativeSuper","assert","condition","equal","assertEqual","actual","expected","concat","assertObjectHasDefinedKeys","input","keys","onError","missingKeys","filter","property","undefined","length"],"mappings":";;;;;;AAEA;AACA;AACA;AACA;AACaA,IAAAA,cAAc,0BAAAC,MAAA,EAAA;EAAAC,kCAAA,CAAAF,cAAA,EAAAC,MAAA,CAAA,CAAA;EACzB,SAAAD,cAAAA,CAAYG,OAAe,EAAE;AAAA,IAAA,IAAAC,KAAA,CAAA;AAAAC,IAAAA,wCAAA,OAAAL,cAAA,CAAA,CAAA;AAC3BI,IAAAA,KAAA,GAAAE,mCAAA,CAAAN,IAAAA,EAAAA,cAAA,GAAMG,OAAO,CAAA,CAAA,CAAA;IACbC,KAAA,CAAKG,IAAI,GAAG,gBAAgB,CAAA;IAC5B,IAAIC,KAAK,CAACC,iBAAiB,EAAE;MAC3BD,KAAK,CAACC,iBAAiB,CAAAC,+CAAA,CAAAN,KAAA,CAAOA,EAAAA,KAAA,CAAKO,WAAW,CAAC,CAAA;AACjD,KAAA;AAAC,IAAA,OAAAP,KAAA,CAAA;AACH,GAAA;EAAC,OAAAQ,qCAAA,CAAAZ,cAAA,CAAA,CAAA;AAAA,CAAAa,eAAAA,yCAAA,CAPiCL,KAAK,CAAA,EAAA;;AAUzC;AACA;AACA;AACA;AACO,SAASM,MAAMA,CACpBC,SAAkB,EAClBZ,OAAgB,EACG;EACnB,IAAI,CAACY,SAAS,EAAE;IACd,MAAM,IAAIf,cAAc,CAACG,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAPA,KAAAA,CAAAA,GAAAA,OAAO,GAAI,kBAAkB,CAAC,CAAA;AACzD,GAAA;AACF,CAAA;;AAEA;AACA;AACA;AACA;AACAW,MAAM,CAACE,KAAK,GAAG,SAASC,WAAWA,CACjCC,MAAe,EACfC,QAAW,EACXhB,OAAgB,EACK;EACrB,IAAIe,MAAM,KAAKC,QAAQ,EAAE;IACvB,MAAM,IAAInB,cAAc,CAAC,CAACG,OAAO,KAAPA,IAAAA,IAAAA,OAAO,cAAPA,OAAO,GAAI,EAAE,IAAAiB,GAAAA,CAAAA,MAAA,CAAQF,MAAM,EAAA,OAAA,CAAA,CAAAE,MAAA,CAAQD,QAAQ,CAAE,CAAC,CAAA;AAC1E,GAAA;AACF,CAAC,CAAA;;AAED;AACA;AACA;AACA;AACO,SAASE,0BAA0BA,CAIxCC,KAAQ,EACRC,IAAS,EACTC,OAA+C,EAC2B;AAC1E,EAAA,IAAMC,WAAW,GAAGF,IAAI,CAACG,MAAM,CAC7B,UAACC,QAAQ,EAAA;IAAA,OAAK,CAAAL,KAAK,KAAA,IAAA,IAALA,KAAK,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAALA,KAAK,CAAGK,QAAQ,CAAC,MAAKC,SAAS,CAAA;AAAA,GAC/C,CAAC,CAAA;AAED,EAAA,IAAIH,WAAW,CAACI,MAAM,GAAG,CAAC,EAAE;IAC1B,MAAML,OAAO,CAACC,WAAW,CAAC,CAAA;AAC5B,GAAA;AACF;;;;;;"}