{"version":3,"file":"unknown-key.mjs","names":[],"sources":["../../../../../../../../@warlock.js/seal/src/rules/common/unknown-key.ts"],"sourcesContent":["import { invalidRule, VALID_RULE } from \"../../helpers\";\nimport type { Schema, SchemaRule } from \"../../types\";\n\n/**\n * Unknown key rule - validates that object doesn't have unknown keys\n */\nexport const unknownKeyRule: SchemaRule<{\n  schema: Schema;\n  allowedKeys: string[];\n}> = {\n  name: \"unknownKeys\",\n  defaultErrorMessage: \"The :input contains unknown keys: :unknownKeys\",\n  async validate(value: any, context) {\n    const schema = this.context.options.schema;\n    const allowedKeys = [...Object.keys(schema), ...(this.context.options.allowedKeys || [])];\n\n    const unknownKeys = Object.keys(value).filter((key) => !allowedKeys.includes(key));\n\n    if (unknownKeys.length > 0) {\n      this.context.translationParams.unknownKeys = unknownKeys.join(\", \");\n\n      return invalidRule(this, context);\n    }\n\n    return VALID_RULE;\n  },\n};\n"],"mappings":";;;;;;;AAMA,MAAa,iBAGR;CACH,MAAM;CACN,qBAAqB;CACrB,MAAM,SAAS,OAAY,SAAS;EAClC,MAAM,SAAS,KAAK,QAAQ,QAAQ;EACpC,MAAM,cAAc,CAAC,GAAG,OAAO,KAAK,MAAM,GAAG,GAAI,KAAK,QAAQ,QAAQ,eAAe,CAAC,CAAE;EAExF,MAAM,cAAc,OAAO,KAAK,KAAK,CAAC,CAAC,QAAQ,QAAQ,CAAC,YAAY,SAAS,GAAG,CAAC;EAEjF,IAAI,YAAY,SAAS,GAAG;GAC1B,KAAK,QAAQ,kBAAkB,cAAc,YAAY,KAAK,IAAI;GAElE,OAAO,YAAY,MAAM,OAAO;EAClC;EAEA,OAAO;CACT;AACF"}