{"version":3,"sources":["jsdelivr-header.js","/npm/serverless-plugin-cloudformation-cross-region-variables@1.0.9/src/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,wSCJA,SAAA,QAAA,a,wEAFA,MAAM,WAAa,QAAQ,WAAW,WAIhC,UAAY,OACZ,SAAW,uCACX,aAAe,wCAEf,WAAa,QACb,UAAY,qDAKH,MAAM,iCACnB,YAAY,EAAY,GACtB,KAAK,eAAiB,GACtB,MAAM,EAAW,EAAW,UAAU,mBAAmB,KAAK,EAAW,WACzE,EAAW,UAAU,mBAAsB,IACzC,GAAG,KAAK,eAAe,GACnB,OAAO,UAAA,QAAQ,QAAQ,KAAK,eAAe,IAE/C,GAAI,EAAe,WAAY,SAAiB,CAE9C,GAAa,QADT,EAAQ,SAAS,KAAK,IAAmB,aAAa,KAAK,IAE7D,MAAM,IAAI,MAAO,2DAA0D,MAE7E,IAAK,EAAQ,EAAM,EAAQ,EAAO,GAAY,EAC9C,OAAO,KAAK,gBAAgB,EAAQ,EAAO,EAAU,EACtD,CACI,GAAI,EAAe,WAAY,UAAkB,CACpD,IAAI,EACJ,GAAa,QADT,EAAQ,UAAU,KAAK,IAEzB,MAAM,IAAI,MAAO,0DAAyD,MAE5E,IAAK,EAAQ,EAAO,EAAQ,EAAU,GAAW,EACjD,OAAO,KAAK,eAAe,EAAQ,EAAU,EAAS,EACvD,CACD,OAAO,EAAS,EAAhB,CAEH,CAEK,eAAe,EAAQ,EAAU,EAAS,GAAgB,IAAA,EAAA,KAAA,SAAA,mBAAA,UAAA,YAC9D,IACE,MAAM,QAAc,EAAA,SAAA,eAAc,EAAQ,EAAU,GAEpD,OADA,EAAK,eAAe,GAAkB,EAC/B,CACR,CAAC,MAAO,GACP,QAAQ,KAAK,EAAE,QAChB,CAP6D,KAQ/D,CAEK,gBAAgB,EAAQ,EAAO,EAAU,GAAgB,IAAA,EAAA,KAAA,SAAA,mBAAA,UAAA,YAC7D,IACE,MAAM,QAAc,EAAA,SAAA,gBAAe,EAAQ,EAAO,GAElD,OADA,EAAK,eAAe,GAAkB,EAC/B,CACR,CAAC,MAAO,GACP,QAAQ,KAAK,EAAE,QAChB,CAP4D,KAQ9D,E,gBA9CkB,iC","file":"/npm/serverless-plugin-cloudformation-cross-region-variables@1.0.9/lib/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/serverless-plugin-cloudformation-cross-region-variables@1.0.9/lib/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","const Observable = require('rxjs/Rx').Observable;\n\nimport {getValueSSMCR, getValueFromCF} from './awsVars';\n\nconst CF_PREFIX = 'cfcr';\nconst CF_SPLIT = /(cfcr):(.*?):(.*?):([0-9a-zA-Z\\-_]*)/;\nconst CF_SPLIT_DOT = /(cfcr):(.*?)\\.(.*?):([0-9a-zA-Z\\-_]*)/;\n\nconst SSM_PREFIX = 'ssmcr';\nconst SSM_SPLIT = /(ssmcr):(.*?):([a-zA-Z0-9_.\\-/]+)[~]?(true|false)?/;\n\n\n\n\nexport default class ServerlessCFCrossRegionVariables {\n  constructor(serverless, options) {\n    this.resolvedValues = {};\n    const delegate = serverless.variables.getValueFromSource.bind(serverless.variables);\n    serverless.variables.getValueFromSource = (variableString) => {\n      if(this.resolvedValues[variableString]){\n          return Promise.resolve(this.resolvedValues[variableString])\n      }\n      if (variableString.startsWith(`${CF_PREFIX}:`)) {\n        var split = CF_SPLIT.exec(variableString) || CF_SPLIT_DOT.exec(variableString);\n        if(split === null){\n          throw new Error(`Invalid syntax, must be cfcr:region:service:output got \"${variableString}\"`)\n        }\n        var [string, cfcr, region, stack, variable] = split;\n        return this._getValueFromCF(region, stack, variable, variableString)\n      }\n      else if (variableString.startsWith(`${SSM_PREFIX}:`)) {\n        var split = SSM_SPLIT.exec(variableString);\n        if(split === null){\n          throw new Error(`Invalid syntax, must be  ssmcr:region:varlocation got \"${variableString}\"`)\n        }\n        var [string, ssmcr, region, variable, decrypt] = split;\n        return this._getValueSSMCR(region, variable, decrypt, variableString)\n      }\n      return delegate(variableString)\n    }\n  }\n\n  async _getValueSSMCR(region, variable, decrypt, variableString) {\n    try{\n      const value = await getValueSSMCR(region, variable, decrypt);\n      this.resolvedValues[variableString] = value;\n      return value;\n    } catch (e){\n      console.warn(e.message);\n    }\n  }\n\n  async _getValueFromCF(region, stack, variable, variableString) {\n    try{\n      const value = await getValueFromCF(region, stack, variable);\n      this.resolvedValues[variableString] = value;\n      return value;\n    } catch (e){\n      console.warn(e.message);\n    }\n  }\n}\n"]}