{"version":3,"file":"matchers.mjs","sources":["../../../src/transformations/matchers.ts"],"sourcesContent":["// Load the Builtin matchers\nimport {\n  FieldMatcherInfo,\n  MatcherConfig,\n  FrameMatcherInfo,\n  FieldMatcher,\n  FrameMatcher,\n  ValueMatcherInfo,\n  ValueMatcher,\n} from '../types/transformations';\nimport { Registry } from '../utils/Registry';\n\nimport { getFieldTypeMatchers } from './matchers/fieldTypeMatcher';\nimport { fieldValueMatcherInfo } from './matchers/fieldValueMatcher';\nimport { getFieldNameMatchers, getFrameNameMatchers } from './matchers/nameMatcher';\nimport { getFieldPredicateMatchers, getFramePredicateMatchers } from './matchers/predicates';\nimport { getRefIdMatchers } from './matchers/refIdMatcher';\nimport { getSimpleFieldMatchers } from './matchers/simpleFieldMatcher';\nimport { getEqualValueMatchers } from './matchers/valueMatchers/equalMatchers';\nimport { getNullValueMatchers } from './matchers/valueMatchers/nullMatchers';\nimport { getNumericValueMatchers } from './matchers/valueMatchers/numericMatchers';\nimport { getRangeValueMatchers } from './matchers/valueMatchers/rangeMatchers';\nimport { getRegexValueMatcher } from './matchers/valueMatchers/regexMatchers';\nimport { getSubstringValueMatchers } from './matchers/valueMatchers/substringMatchers';\n\n/**\n * Registry that contains all of the built in field matchers.\n * @public\n */\nexport const fieldMatchers = new Registry<FieldMatcherInfo>(() => {\n  return [\n    ...getFieldPredicateMatchers(), // Predicates\n    ...getFieldTypeMatchers(), // by type\n    ...getFieldNameMatchers(), // by name\n    ...getSimpleFieldMatchers(), // first\n    fieldValueMatcherInfo, // reduce field (all null/zero)\n  ];\n});\n\n/**\n * Registry that contains all of the built in frame matchers.\n * @public\n */\nexport const frameMatchers = new Registry<FrameMatcherInfo>(() => {\n  return [\n    ...getFramePredicateMatchers(), // Predicates\n    ...getFrameNameMatchers(), // by name\n    ...getRefIdMatchers(), // by query refId\n  ];\n});\n\n/**\n * Registry that contains all of the built in value matchers.\n * @public\n */\nexport const valueMatchers = new Registry<ValueMatcherInfo>(() => {\n  return [\n    ...getNullValueMatchers(),\n    ...getNumericValueMatchers(),\n    ...getEqualValueMatchers(),\n    ...getSubstringValueMatchers(),\n    ...getRangeValueMatchers(),\n    ...getRegexValueMatcher(),\n  ];\n});\n\n/**\n * Resolves a field matcher from the registry for given config.\n * Will throw an error if matcher can not be resolved.\n * @public\n */\nexport function getFieldMatcher(config: MatcherConfig): FieldMatcher {\n  const info = fieldMatchers.get(config.id);\n  if (!info) {\n    throw new Error('Unknown field matcher: ' + config.id);\n  }\n  return info.get(config.options);\n}\n\n/**\n * Resolves a frame matcher from the registry for given config.\n * Will throw an error if matcher can not be resolved.\n * @public\n */\nexport function getFrameMatchers(config: MatcherConfig): FrameMatcher {\n  const info = frameMatchers.get(config.id);\n  if (!info) {\n    throw new Error('Unknown frame matcher: ' + config.id);\n  }\n  return info.get(config.options);\n}\n\n/**\n * Resolves a value matcher from the registry for given config.\n * Will throw an error if matcher can not be resolved.\n * @public\n */\nexport function getValueMatcher(config: MatcherConfig): ValueMatcher {\n  const info = valueMatchers.get(config.id);\n  if (!info) {\n    throw new Error('Unknown value matcher: ' + config.id);\n  }\n  return info.get(config.options);\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AA6BO,MAAM,aAAA,GAAgB,IAAI,QAAA,CAA2B,MAAM;AAChE,EAAA,OAAO;AAAA,IACL,GAAG,yBAAA,EAA0B;AAAA;AAAA,IAC7B,GAAG,oBAAA,EAAqB;AAAA;AAAA,IACxB,GAAG,oBAAA,EAAqB;AAAA;AAAA,IACxB,GAAG,sBAAA,EAAuB;AAAA;AAAA,IAC1B;AAAA;AAAA,GACF;AACF,CAAC;AAMM,MAAM,aAAA,GAAgB,IAAI,QAAA,CAA2B,MAAM;AAChE,EAAA,OAAO;AAAA,IACL,GAAG,yBAAA,EAA0B;AAAA;AAAA,IAC7B,GAAG,oBAAA,EAAqB;AAAA;AAAA,IACxB,GAAG,gBAAA;AAAiB;AAAA,GACtB;AACF,CAAC;AAMM,MAAM,aAAA,GAAgB,IAAI,QAAA,CAA2B,MAAM;AAChE,EAAA,OAAO;AAAA,IACL,GAAG,oBAAA,EAAqB;AAAA,IACxB,GAAG,uBAAA,EAAwB;AAAA,IAC3B,GAAG,qBAAA,EAAsB;AAAA,IACzB,GAAG,yBAAA,EAA0B;AAAA,IAC7B,GAAG,qBAAA,EAAsB;AAAA,IACzB,GAAG,oBAAA;AAAqB,GAC1B;AACF,CAAC;AAOM,SAAS,gBAAgB,MAAA,EAAqC;AACnE,EAAA,MAAM,IAAA,GAAO,aAAA,CAAc,GAAA,CAAI,MAAA,CAAO,EAAE,CAAA;AACxC,EAAA,IAAI,CAAC,IAAA,EAAM;AACT,IAAA,MAAM,IAAI,KAAA,CAAM,yBAAA,GAA4B,MAAA,CAAO,EAAE,CAAA;AAAA,EACvD;AACA,EAAA,OAAO,IAAA,CAAK,GAAA,CAAI,MAAA,CAAO,OAAO,CAAA;AAChC;AAOO,SAAS,iBAAiB,MAAA,EAAqC;AACpE,EAAA,MAAM,IAAA,GAAO,aAAA,CAAc,GAAA,CAAI,MAAA,CAAO,EAAE,CAAA;AACxC,EAAA,IAAI,CAAC,IAAA,EAAM;AACT,IAAA,MAAM,IAAI,KAAA,CAAM,yBAAA,GAA4B,MAAA,CAAO,EAAE,CAAA;AAAA,EACvD;AACA,EAAA,OAAO,IAAA,CAAK,GAAA,CAAI,MAAA,CAAO,OAAO,CAAA;AAChC;AAOO,SAAS,gBAAgB,MAAA,EAAqC;AACnE,EAAA,MAAM,IAAA,GAAO,aAAA,CAAc,GAAA,CAAI,MAAA,CAAO,EAAE,CAAA;AACxC,EAAA,IAAI,CAAC,IAAA,EAAM;AACT,IAAA,MAAM,IAAI,KAAA,CAAM,yBAAA,GAA4B,MAAA,CAAO,EAAE,CAAA;AAAA,EACvD;AACA,EAAA,OAAO,IAAA,CAAK,GAAA,CAAI,MAAA,CAAO,OAAO,CAAA;AAChC;;;;"}