{"version":3,"file":"isVersionInBounds.mjs","sourceRoot":"","sources":["../../../src/NotificationServicesController/utils/isVersionInBounds.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,eAAe;AAQhC;;;;;;;;;GASG;AACH,MAAM,UAAU,iBAAiB,CAAC,EAChC,cAAc,EACd,UAAU,EACV,UAAU,GACQ;IAClB,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,IAAI,gBAAgB,GAAG,IAAI,CAAC;QAE5B,sEAAsE;QACtE,IAAI,UAAU,EAAE,CAAC;YACf,gBAAgB,GAAG,gBAAgB,IAAI,EAAE,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;QACxE,CAAC;QAED,mEAAmE;QACnE,IAAI,UAAU,EAAE,CAAC;YACf,gBAAgB,GAAG,gBAAgB,IAAI,EAAE,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;QACxE,CAAC;QAED,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,uCAAuC;QACvC,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC","sourcesContent":["import { gt, lt } from 'semver';\n\ntype IsVersionInBounds = {\n  currentVersion?: string;\n  minVersion?: string;\n  maxVersion?: string;\n};\n\n/**\n * Checks if a given version is within bounds against a min and max bound\n * Uses semver strings\n *\n * @param params - Object param containing current/min/max versions\n * @param params.currentVersion - (optional) current version of application\n * @param params.minVersion - (optional) exclusive min bounds\n * @param params.maxVersion - (optional) exclusive max bounds\n * @returns boolean is version provided is within bounds\n */\nexport function isVersionInBounds({\n  currentVersion,\n  minVersion,\n  maxVersion,\n}: IsVersionInBounds): boolean {\n  if (!currentVersion) {\n    return true;\n  }\n\n  try {\n    let showNotification = true;\n\n    // Check minimum version: current version must be greater than minimum\n    if (minVersion) {\n      showNotification = showNotification && gt(currentVersion, minVersion);\n    }\n\n    // Check maximum version: current version must be less than maximum\n    if (maxVersion) {\n      showNotification = showNotification && lt(currentVersion, maxVersion);\n    }\n\n    return showNotification;\n  } catch {\n    // something went wrong checking bounds\n    return false;\n  }\n}\n"]}