{"version":3,"file":"customer-experience/cx-main.js","mappings":"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,WAAY,UAAY,WAAY,UAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,QAAY,UAAY,UAAY,WAAY,UAChD,WAAY,WAAY,WAAY,WAAY,WAChD,UAAY,SAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,UAAY,WAAY,UAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,WAAY,WAChD,SAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,SAAY,UAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,SAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,WAAY,UAAY,UAAY,UAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,WAAY,UAAY,UAChD,WAAY,WAAY,WAAY,WAAY,UAChD,UAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,UAAY,WAAY,UAAY,UAAY,UAChD,WAAY,UAAY,WAAY,UAAY,WAChD,WAAY,SAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,WAAY,UAChD,WAAY,UAAY,UAAY,UAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,SAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,UAAY,WAChD,UAAY,UAAY,WAAY,WAAY,UAChD,WAAY,SAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,UAAY,UAAY,UAAY,WAAY,WAChD,WAAY,WAAY,UAAY,WAAY,UAChD,WAAY,WAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,UAAY,WAAY,UAChD,UAAY,WAAY,UAAY,UAAY,UAChD,UAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,UAChD,WAAY,UAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,UAChD,WAAY,UAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,SAAY,WAChD,UAAY,WAAY,WAAY,WAAY,WAChD,UAAY,WAAY,UAAY,WAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,UAChD,UAAY,WAAY,UAAY,WAAY,UAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,SAAY,WAAY,SAAY,WAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,UAAY,UAChD,SAAY,WAAY,WAAY,WAAY,UAChD,UAAY,WAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,UAChD,WAAY,UAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,UAAY,WAChD,UAAY,UAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,UAAY,WAChD,UAAY,UAAY,UAAY,WAAY,UAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,QAChD,UAAY,UAAY,UAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,UAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,UAAY,SAAY,WAChD,SAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,UAChD,WAAY,SAAY,SAAY,WAAY,WAChD,WAAY,WAAY,UAAY,UAAY,WAChD,UAAY,WAAY,WAAY,SAAY,WAChD,UAAY,WAAY,WAAY,WAAY,WAChD,UAAY,UAAY,WAAY,W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AAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,eAAgB,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,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AAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,GAAI,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,C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AS,IAAS,UAAU,IAAS,SAAS,IAAS,UAAU,IAAS,QAAQ,KAAe,SAAS,IAAS,QAAQ,KAAe,SAAS,IAAS,QAAQ,IAAS,SAAS,IAAS,SAAS,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,SAAS,IAAS,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAS,SAAS,IAAS,QAAQ,IAAS,MAAM,IAAS,MAAM,IAAS,SAAS,IAAS,QAAQ,IAAS,SAAS,IAAS,QAAQ,IAAS,SAAS,IAAS,SAAS,IAAS,QAAQ,IAAS,SAAS,IAAS,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,SAAS,KAAe,UAAU,IAAS,QAAQ,IAAS,SAAS,KAAe,UAAU,IAAS,SAAS,IAAS,OAAO,IAAS,QAAQ,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,UAAU,IAAS,QAAQ,IAAS,QAAQ,IAAS,MAAM,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,OAAO,IAAS,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,KAAK,KAAe,MAAM,IAAS,KAAK,KAAe,MAAM,KAAe,OAAO,IAAS,MAAM,IAAS,MAAM,KAAe,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,SAAS,IAAS,QAAQ,IAAS,UAAU,KAAe,WAAW,IAAS,UAAU,IAAS,UAAU,IAAS,QAAQ,KAAe,SAAS,IAAS,OAAO,IAAS,OAAO,IAAS,MAAM,IAAS,UAAU,IAAS,UAAU,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,OAAO,IAAS,WAAW,IAAS,WAAW,IAAS,SAAS,IAAS,SAAS,IAAS,SA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AAS,QAAQ,GAAe,MAAM,GAAe,OAAO,GAAe,OAAO,EAAS,OAAO,GAAe,MAAM,GAAe,OAAO,GAAe,OAAO,GAAe,MAAM,GAAe,OAAO,GAAe,OAAO,GAAe,MAAM,EAAS,OAAO,EAAS,SAAS,GAAe,MAAM,GAAe,OAAO,GAAe,OAAO,EAAS,OAAO,EAAS,KAAK,EAAS,OAAO,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,GAAe,OAAO,GAAe,OAAO,GAAe,MAAM,GAAe,OAAO,GAAe,MAAM,GAAe,OAAO,IAAS,KAAK,EAAS,SAAS,EAAS,SAAS,EAAS,QAAQ,EAAS,QAAQ,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,EAAO,QAAQ,GAAe,MAAM,GAAe,OAAO,GAAe,OAAO,GAAe,OAAO,GAAe,MAAM,GAAe,OAAO,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,IAAS,QAAQ,EAAS,SAAS,EAAS,SAAS,GAAe,OAAO,GAAe,OAAO,GAAe,MAAM,GAAe,OAAO,GAAe,MAAM,GAAe,OAAO,EAAO,SAAS,EAAO,SAAS,EAAO,SAAS,EAAO,SAAS,EAAS,SAAS,EAAS,SAAS,EAAO,QAAQ,EAAO,QAAQ,EAAS,QAAQ,EAAS,QAAQ,EAAO,OAAO,EAAO,OAAO,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,EAAS,QAAQ,EAAS,QAAQ,EAAS,QAAQ,EAAS,QAAQ,GAAe,MAAM,GAAe,OAAO,GAAe,OAAO,GAAe,MAAM,GAAe,OAAO,GAAe,OAAO,GAAe,OAAO,GAAe,OAAO,GAAe,MAAM,GAAe,OAAO,GAAe,OAAO,GAAe,MAAM,EAAS,QAAQ,EAAS,QAAQ,GAAe,MAAM,GAAe,OAAO,GAAe,OAAO,GAAe,OAAO,GAAe,MAAM,GAAe,OAAO,GAAe,MAAM,GAAe,OAAO,GAAe,OAAO,GAAe,OAAO,GAAe,MAAM,GAAe,OAAO,EAAO,SAAS,EAAO,SAAS,EAAS,QAAQ,EAAS,QAAQ,EAAO,OAAO,EAAS,OAAO,GAAe,OAAO,GAAe,MAAM,GAAe,OAAO,EAAS,MAAM,EAAS,OAAO,GAAe,OAAO,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,EAAS,SAAS,EAAS,OAAO,EAAS,OAAO,EAAS,QAAQ,EAAO,QAAQ,EAAO,QAAQ,EAAS,QAAQ,EAAS,QAAQ,EAAS,QAAQ,EAAS,OAAO,EAAS,OAAO,EAAS,QAAQ,EAAS,QAAQ,EAAS,QAAQ,EAAS,QAAQ,EAAS,OAAO,EAAS,QAAQ,EAAS,UAAU,EAAS,SAAS,EAAS,SAAS,EAAS,OAAO,EAAS,OAAO,EAAS,MAAM,EAAS,MAAM,EAAS,QAAQ,EAAS,SAAS,EAAS,QAAQ,EAAS,OAAO,EAAS,OAAO,EAAS,QAAQ,EAAS,SAAS,EAAS,QAAQ,EAAS,SAAS,EAAS,SAAS,EAAS,KAAK,EAAO,QAAQ,EAAS,KAAK,EAAS,KAAK,EAAS,KAAK,EAAS,KAAK,EAAS,KAAK,EAAS,UAAU,EAAS,UAAU,EAAS,KAAK,EAAS,MAAM,EAAS,KAAK,EAAS,MAAM,EAAS,OAAO,EAAS,MAAM,EAAS,QAAQ,EAAS,QAAQ,EAAS,SAAS,EAAS,MAAM,EAAS,MAAM,EAAS,OAAO,EAAS,UAAU,EAAS,OAAO,EAAS,MAAM,EAAS,OAAO,EAAS,MAAM,EAAS,MAAM,EAAS,MAAM,EAAS,MAAM,EAAS,MAAM,EAAS,QAAQ,EAAS,MAAM,EAAS,MAAM,EAAS,MAAM,EAAS,MAAM,EAAS,MAAM,EAAS,MAAM,EAAS,MAAM,EAAS,MAAM,EAAS,MAAM,EAAS,OAAO,EAAS,OAAO,EAAS,MAAM,EAAS,MAAM,EAAS,OAAO,EAAS,OAAO,EAAS,OAAO,EAAS,OAAO,EAAS,OAAO,EAAS,OAAO,EAAS,QAAQ,EAAS,QAAQ,EAAS,OAAO,EAAS,OAAO,EAAS,MAAM,EAAS,MAAM,EAAS,OAAO,EAAS,OAAO,EAAS,MAAM,EAAS,MAAM,EAAS,QAAQ,EAAS,QAAQ,EAAS,OAAO,EAAS,OAAO,EAAS,MAAM,EAAS,MAAM,EAAS,SAAS,EAAS,SAAS,EAAS,MAAM,EAAS,MAAM,EAAS,OAAO,EAAS,OAAO,EAAS,MAAM,EAAS,MAAM,EAAS,OAAO,EAAS,OAAO,EAAS,MAAM,EAAS,MAAM,EAAS,MAAM,EAAS,MAAM,EAAS,OAAO,EAAS,OAAO,EAAS,MAAM,EAAS,MAAM,E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","sources":["webpack:///./node_modules/@atlassiansox/asc-core/node_modules/cookie/index.js","webpack:///./node_modules/@sentry/hub/esm/flags.js","webpack:///./node_modules/@sentry/hub/esm/session.js","webpack:///./node_modules/@sentry/hub/esm/hub.js","webpack:///./node_modules/@sentry/hub/esm/scope.js","webpack:///./node_modules/@sentry/hub/node_modules/tslib/tslib.es6.js","webpack:///./node_modules/@sentry/minimal/node_modules/tslib/tslib.es6.js","webpack:///./node_modules/@sentry/minimal/esm/index.js","webpack:///./node_modules/@sentry/types/esm/severity.js","webpack:///./node_modules/@sentry/utils/esm/browser.js","webpack:///./node_modules/@sentry/utils/esm/flags.js","webpack:///./node_modules/@sentry/utils/esm/global.js","webpack:///./node_modules/@sentry/utils/esm/is.js","webpack:///./node_modules/@sentry/utils/esm/logger.js","webpack:///./node_modules/@sentry/utils/esm/misc.js","webpack:///./node_modules/@sentry/utils/esm/node.js","webpack:///./node_modules/@sentry/utils/esm/env.js","webpack:///./node_modules/@sentry/utils/esm/object.js","webpack:///./node_modules/@sentry/utils/esm/string.js","webpack:///./node_modules/@sentry/utils/esm/syncpromise.js","webpack:///./node_modules/@sentry/utils/esm/time.js","webpack:///./node_modules/@sentry/utils/node_modules/tslib/tslib.es6.js","webpack:///./node_modules/async-retry/lib/index.js","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/bcryptjs/dist/bcrypt.js","webpack:///./node_modules/buffer/index.js","webpack:///./node_modules/contentful/dist/contentful.browser.min.js","webpack:///./node_modules/cross-fetch/dist/browser-ponyfill.js","webpack:///./node_modules/deepmerge/dist/cjs.js","webpack:///./node_modules/dom-serializer/lib/foreignNames.js","webpack:///./node_modules/dom-serializer/lib/index.js","webpack:///./node_modules/domelementtype/lib/index.js","webpack:///./node_modules/domhandler/lib/index.js","webpack:///./node_modules/domhandler/lib/node.js","webpack:///./node_modules/domutils/lib/feeds.js","webpack:///./node_modules/domutils/lib/helpers.js","webpack:///./node_modules/domutils/lib/index.js","webpack:///./node_modules/domutils/lib/legacy.js","webpack:///./node_modules/domutils/lib/manipulation.js","webpack:///./node_modules/domutils/lib/querying.js","webpack:///./node_modules/domutils/lib/stringify.js","webpack:///./node_modules/domutils/lib/traversal.js","webpack:///./node_modules/entities/lib/decode.js","webpack:///./node_modules/entities/lib/decode_codepoint.js","webpack:///./node_modules/entities/lib/encode.js","webpack:///./node_modules/entities/lib/escape.js","webpack:///./node_modules/entities/lib/generated/decode-data-html.js","webpack:///./node_modules/entities/lib/generated/decode-data-xml.js","webpack:///./node_modules/entities/lib/generated/encode-html.js","webpack:///./node_modules/entities/lib/index.js","webpack:///./node_modules/he/he.js","webpack:///./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack:///./node_modules/htmlparser2/lib/Parser.js","webpack:///./node_modules/htmlparser2/lib/Tokenizer.js","webpack:///./node_modules/htmlparser2/lib/index.js","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/intl-messageformat-parser/index.js","webpack:///./node_modules/intl-messageformat-parser/lib/parser.js","webpack:///./node_modules/intl-relativeformat/index.js","webpack:///./node_modules/intl-relativeformat/lib/core.js","webpack:///./node_modules/intl-relativeformat/lib/diff.js","webpack:///./node_modules/intl-relativeformat/lib/en.js","webpack:///./node_modules/intl-relativeformat/lib/es5.js","webpack:///./node_modules/intl-relativeformat/lib/main.js","webpack:///./node_modules/intl-relativeformat/node_modules/intl-messageformat/index.js","webpack:///./node_modules/intl-relativeformat/node_modules/intl-messageformat/lib/compiler.js","webpack:///./node_modules/intl-relativeformat/node_modules/intl-messageformat/lib/core.js","webpack:///./node_modules/intl-relativeformat/node_modules/intl-messageformat/lib/en.js","webpack:///./node_modules/intl-relativeformat/node_modules/intl-messageformat/lib/es5.js","webpack:///./node_modules/intl-relativeformat/node_modules/intl-messageformat/lib/main.js","webpack:///./node_modules/intl-relativeformat/node_modules/intl-messageformat/lib/utils.js","webpack:///./node_modules/invariant/browser.js","webpack:///./node_modules/js-cookie/src/js.cookie.js","webpack:///./node_modules/jstimezonedetect/dist/jstz.min.js","webpack:///./node_modules/parse-srcset/src/parse-srcset.js","webpack:///./node_modules/picocolors/picocolors.browser.js","webpack:///./node_modules/prop-types/factoryWithThrowingShims.js","webpack:///./node_modules/prop-types/index.js","webpack:///./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///./node_modules/querystring/decode.js","webpack:///./node_modules/querystring/encode.js","webpack:///./node_modules/querystring/index.js","webpack:///./node_modules/intl-format-cache/lib/index.js","webpack:///./node_modules/react-intl/lib/index.es.js","webpack:///./node_modules/react-intl/node_modules/intl-messageformat/index.js","webpack:///./node_modules/react-intl/node_modules/intl-messageformat/lib/compiler.js","webpack:///./node_modules/react-intl/node_modules/intl-messageformat/lib/core.js","webpack:///./node_modules/react-intl/node_modules/intl-messageformat/lib/en.js","webpack:///./node_modules/react-intl/node_modules/intl-messageformat/lib/es5.js","webpack:///./node_modules/react-intl/node_modules/intl-messageformat/lib/main.js","webpack:///./node_modules/react-intl/node_modules/intl-messageformat/lib/utils.js","webpack:///./node_modules/react-is/cjs/react-is.production.min.js","webpack:///./node_modules/react-is/index.js","webpack:///./node_modules/react/cjs/react.production.min.js","webpack:///./node_modules/react/index.js","webpack:///./node_modules/retry/index.js","webpack:///./node_modules/retry/lib/retry.js","webpack:///./node_modules/retry/lib/retry_operation.js","webpack:///./node_modules/sanitize-html/index.js","webpack:///./node_modules/sanitize-html/node_modules/escape-string-regexp/index.js","webpack:///./node_modules/sanitize-html/node_modules/is-plain-object/dist/is-plain-object.js","webpack:///./node_modules/sanitize-html/node_modules/postcss/lib/at-rule.js","webpack:///./node_modules/sanitize-html/node_modules/postcss/lib/comment.js","webpack:///./node_modules/sanitize-html/node_modules/postcss/lib/container.js","webpack:///./node_modules/sanitize-html/node_modules/postcss/lib/css-syntax-error.js","webpack:///./node_modules/sanitize-html/node_modules/postcss/lib/declaration.js","webpack:///./node_modules/sanitize-html/node_modules/postcss/lib/document.js","webpack:///./node_modules/sanitize-html/node_modules/postcss/lib/fromJSON.js","webpack:///./node_modules/sanitize-html/node_modules/postcss/lib/input.js","webpack:///./node_modules/sanitize-html/node_modules/postcss/lib/lazy-result.js","webpack:///./node_modules/sanitize-html/node_modules/postcss/lib/list.js","webpack:///./node_modules/sanitize-html/node_modules/postcss/lib/map-generator.js","webpack:///./node_modules/sanitize-html/node_modules/postcss/lib/no-work-result.js","webpack:///./node_modules/sanitize-html/node_modules/postcss/lib/node.js","webpack:///./node_modules/sanitize-html/node_modules/postcss/lib/parse.js","webpack:///./node_modules/sanitize-html/node_modules/postcss/lib/parser.js","webpack:///./node_modules/sanitize-html/node_modules/postcss/lib/postcss.js","webpack:///./node_modules/sanitize-html/node_modules/postcss/lib/previous-map.js","webpack:///./node_modules/sanitize-html/node_modules/postcss/lib/processor.js","webpack:///./node_modules/sanitize-html/node_modules/postcss/lib/result.js","webpack:///./node_modules/sanitize-html/node_modules/postcss/lib/root.js","webpack:///./node_modules/sanitize-html/node_modules/postcss/lib/rule.js","webpack:///./node_modules/sanitize-html/node_modules/postcss/lib/stringifier.js","webpack:///./node_modules/sanitize-html/node_modules/postcss/lib/stringify.js","webpack:///./node_modules/sanitize-html/node_modules/postcss/lib/symbols.js","webpack:///./node_modules/sanitize-html/node_modules/postcss/lib/tokenize.js","webpack:///./node_modules/sanitize-html/node_modules/postcss/lib/warn-once.js","webpack:///./node_modules/sanitize-html/node_modules/postcss/lib/warning.js","webpack:///./node_modules/@atlassian/bxp-product-pricing/src/models/pricing-period.ts","webpack:///./node_modules/@atlassian/bxp-product-pricing/src/models/pricing-breakdown.ts","webpack:///./node_modules/@atlassian/bxp-product-pricing/src/utils/pricing-tier.ts","webpack:///./node_modules/@atlassian/bxp-product-pricing/src/utils/sanitize-pricing-plans.ts","webpack:///./node_modules/@atlassian/bxp-product-pricing/src/utils/ccp-to-hams-pricing-plan-converter.ts","webpack:///./node_modules/@atlassian/bxp-product-pricing/src/utils/marginal-per-unit.ts","webpack:///./node_modules/@atlassian/bxp-product-pricing/src/pricing-calculator.ts","webpack:///./node_modules/@atlassian/bxp-product-pricing/src/product-pricing-store.ts","webpack:///./node_modules/@atlassiansox/asc-core/src/errors/unsuccessful-fetch-error.ts","webpack:///./node_modules/@atlassiansox/asc-core/src/utils/cookies.ts","webpack:///./node_modules/@atlassiansox/asc-core/src/utils/headers.ts","webpack:///./node_modules/@atlassiansox/asc-core/src/utils/responses.ts","webpack:///./node_modules/@atlassiansox/asc-core/src/utils/url.ts","webpack:///./node_modules/@atlassiansox/asc-product-catalog/src/constants.ts","webpack:///./node_modules/@atlassiansox/asc-product-catalog/src/models/pricing-strategy.ts","webpack:///./node_modules/@atlassiansox/asc-product-catalog/src/product-catalog-client.types.ts","webpack:///./node_modules/@atlassiansox/asc-product-catalog/src/product-catalog-client.ts","webpack:///./node_modules/@atlassiansox/asc-product-catalog/src/ccp-product-catalog-client.ts","webpack:///./node_modules/@atlassiansox/asc-stargate/src/stargate-client.types.ts","webpack:///./node_modules/@atlassiansox/asc-stargate/src/constants.ts","webpack:///./node_modules/@atlassiansox/asc-stargate/src/utils/cookies.ts","webpack:///./node_modules/@atlassiansox/asc-stargate/src/utils/sites.ts","webpack:///./node_modules/@atlassiansox/asc-stargate/src/stargate-client.ts","webpack:///./node_modules/@atlassiansox/bxp-express-client/src/bxp-express-client.ts","webpack:///./node_modules/@atlassiansox/bxp-express-client/src/bxp-express-stargate-client.ts","webpack:///./node_modules/@atlassiansox/bxp-shared-utils/src/undefined.ts","webpack:///./node_modules/@atlassiansox/bxpkit-core/node_modules/@atlassiansox/asc-hamlet/src/hamlet-client.ts","webpack:///./node_modules/@atlassiansox/bxpkit-core/src/contexts/hamlet.ts","webpack:///./node_modules/@atlassiansox/bxpkit-core/src/contexts/pricing-calculator.ts","webpack:///./node_modules/@atlassiansox/bxpkit-core/src/contexts/marie-schema-analytics.tsx","webpack:///./node_modules/@atlassiansox/bxpkit-core/src/hooks/use-async.ts","webpack:///./node_modules/@atlassiansox/bxpkit-core/src/hooks/use-stargate-client.tsx","webpack:///./node_modules/@atlassiansox/bxpkit-core/src/hooks/use-available-products.ts","webpack:///./node_modules/@atlassiansox/bxpkit-core/src/hooks/use-bitbucket-workspaces.ts","webpack:///./node_modules/@atlassiansox/bxpkit-core/src/hooks/use-bxp-express-client.tsx","webpack:///./node_modules/@atlassiansox/bxpkit-core/src/hooks/use-hamlet-client.tsx","webpack:///./node_modules/@atlassiansox/bxpkit-core/src/hooks/use-cnas-client.tsx","webpack:///./node_modules/@atlassiansox/bxpkit-core/node_modules/@atlassiansox/asc-cnas/src/cnas-client.ts","webpack:///./node_modules/@atlassiansox/bxpkit-core/node_modules/@atlassiansox/asc-cofs/src/auth/xsrf-token.ts","webpack:///./node_modules/@atlassiansox/bxpkit-core/node_modules/@atlassiansox/asc-cofs/src/cofs-client.ts","webpack:///./node_modules/@atlassiansox/bxpkit-core/src/hooks/use-cofs-client.tsx","webpack:///./node_modules/@atlassiansox/bxpkit-core/src/hooks/use-locale.tsx","webpack:///./node_modules/@atlassiansox/bxpkit-core/src/hooks/use-me.ts","webpack:///./node_modules/@atlassiansox/bxpkit-core/src/hooks/use-pricing.ts","webpack:///./node_modules/@atlassiansox/bxpkit-core/node_modules/@atlassiansox/asc-identity/src/identity-client.types.ts","webpack:///./node_modules/@atlassiansox/bxpkit-core/node_modules/@atlassiansox/asc-identity/src/identity-client.ts","webpack:///./node_modules/@atlassiansox/bxpkit-core/src/constants.ts","webpack:///./node_modules/@atlassiansox/bxpkit-core/src/utils/url.ts","webpack:///./node_modules/@atlassiansox/bxpkit-core/src/utils/environment.ts","webpack:///./node_modules/@atlassiansox/bxpkit-core/src/utils/user.ts","webpack:///./node_modules/@atlassiansox/bxpkit-core/src/utils/storage.ts","webpack:///./node_modules/@atlassiansox/bxpkit-core/src/utils/bundle-check.ts","webpack:///./node_modules/@atlassiansox/bxpkit-core/src/utils/ccp-offerings-ids-map.ts","webpack:///./node_modules/@atlassiansox/bxpkit-core/src/utils/define-messages-simple.ts","webpack:///./node_modules/@atlassiansox/bxpkit-core/src/hooks/use-identity-client.tsx","webpack:///./node_modules/@atlassiansox/bxpkit-core/src/hooks/use-available-sites.ts","webpack:///./node_modules/@atlassiansox/bxpkit-core/src/components/sanitized-html.tsx","webpack:///./node_modules/@atlassiansox/bxpkit-core/src/components/sanitized-formatted-html-message.tsx","webpack:///./node_modules/@atlassiansox/bxpkit-core/src/components/feature-gates.tsx","webpack:///./node_modules/@atlassiansox/bxpkit-product-pricing-store/src/product-pricing-store.tsx","webpack:///./node_modules/@atlassiansox/origin-tracing/dist/es2019/env.js","webpack:///./node_modules/@atlassiansox/origin-tracing/dist/es2019/encoder.js","webpack:///./node_modules/@atlassiansox/origin-tracing/dist/es2019/origin-tracer.js","webpack:///./node_modules/@atlassiansox/origin-tracing/dist/es2019/util/base64url.js","webpack:///./node_modules/@atlassiansox/signup-context-builder/signup-context-builder.js","webpack:///./node_modules/statsig-js-lite/dist/DynamicConfig.js","webpack:///./node_modules/statsig-js-lite/dist/ErrorBoundary.js","webpack:///./node_modules/statsig-js-lite/dist/Errors.js","webpack:///./node_modules/statsig-js-lite/dist/Layer.js","webpack:///./node_modules/statsig-js-lite/dist/LocalOverrides.js","webpack:///./node_modules/statsig-js-lite/dist/LogEvent.js","webpack:///./node_modules/statsig-js-lite/dist/SDKVersion.js","webpack:///./node_modules/statsig-js-lite/dist/StatsigClient.js","webpack:///./node_modules/statsig-js-lite/dist/StatsigIdentity.js","webpack:///./node_modules/statsig-js-lite/dist/StatsigLogger.js","webpack:///./node_modules/statsig-js-lite/dist/StatsigNetwork.js","webpack:///./node_modules/statsig-js-lite/dist/StatsigSDKOptions.js","webpack:///./node_modules/statsig-js-lite/dist/StatsigStore.js","webpack:///./node_modules/statsig-js-lite/dist/index.js","webpack:///./node_modules/statsig-js-lite/dist/utils/BootstrapValidator.js","webpack:///./node_modules/statsig-js-lite/dist/utils/Constants.js","webpack:///./node_modules/statsig-js-lite/dist/utils/Hashing.js","webpack:///./node_modules/statsig-js-lite/dist/utils/StatsigLocalStorage.js","webpack:///./node_modules/statsig-js-lite/dist/utils/Timing.js","webpack:///./config.ts","webpack:///./resources/js/buyer-experience/common/environment.ts","webpack:///./resources/js/common/consentHubV2/ConsentHelper.ts","webpack:///./resources/js/common/analytics.ts","webpack:///./resources/js/common/consentHubV2/ConsentClient.ts","webpack:///./resources/js/common/environment.ts","webpack:///./resources/js/common/hamlet/hamlet-api.ts","webpack:///./resources/js/common/hamlet/hamlet-user.ts","webpack:///./resources/js/common/tracking/index.ts","webpack:///./resources/js/common/logger.ts","webpack:///./resources/js/common/tracking/constants.ts","webpack:///./resources/js/common/tracking/platforms/gasv2.ts","webpack:///./resources/js/common/tracking/platforms/gasv3.ts","webpack:///./resources/js/common/tracking/platforms/googleAnalytics.ts","webpack:///./resources/js/common/tracking/platforms/segment.ts","webpack:///./resources/js/common/tracking/platforms/index.ts","webpack:///./resources/js/customer-experience/modules/cloud-family.ts","webpack:///./resources/js/customer-experience/modules/hamlet-product-model-orderable-item.ts","webpack:///./resources/js/customer-experience/modules/hamlet-product-model-pricing-block.ts","webpack:///./resources/js/customer-experience/modules/hamlet-product-model.ts","webpack:///./resources/js/customer-experience/modules/hamlet-product-constants.ts","webpack:///./resources/js/customer-experience/modules/hamlet-product-content-data-model.ts","webpack:///./resources/js/customer-experience/modules/hamlet-product-content-data.ts","webpack:///./resources/js/customer-experience/modules/hamlet-products.ts","webpack:///./resources/js/customer-experience/modules/cart-service.ts","webpack:///./resources/js/customer-experience/modules/hamlet.ts","webpack:///./resources/js/customer-experience/modules/cofs.ts","webpack:///./resources/js/customer-experience/modules/growth-tracker.ts","webpack:///./resources/js/customer-experience/modules/experiments.ts","webpack:///./resources/js/customer-experience/modules/passwordstrength.ts","webpack:///./resources/js/customer-experience/modules/social-login.ts","webpack:///./resources/js/customer-experience/modules/combined-bundles.ts","webpack:///./resources/js/customer-experience/index.ts","webpack:///./resources/js/customer-experience/modules/atl-storage.ts","webpack:///./resources/js/customer-experience/modules/atl-url.ts","webpack:///./resources/js/imkt.ts","webpack:///./resources/js/utils/api.ts","webpack:///./resources/js/utils/browser.ts","webpack:///./resources/js/utils/event.ts","webpack:///./resources/js/utils/general.ts","webpack:///./resources/js/utils/get-script.ts","webpack:///./resources/js/utils/history.ts","webpack:///./resources/js/utils/storage.ts","webpack:///./resources/js/utils/string.ts","webpack:///./resources/js/utils/tracking.ts","webpack:///./resources/js/utils/url.ts","webpack:///./node_modules/url/node_modules/punycode/punycode.js","webpack:///./node_modules/url/url.js","webpack:///./node_modules/url/util.js","webpack:///./node_modules/uuid/lib/bytesToUuid.js","webpack:///./node_modules/uuid/lib/rng-browser.js","webpack:///./node_modules/uuid/v4.js","webpack:///external var \"jQuery\"","webpack:///./node_modules/nanoid/non-secure/index.cjs","webpack:///./node_modules/@atlassian/feature-gate-js-client/dist/fetcher/Fetcher.js","webpack:///./node_modules/@atlassian/feature-gate-js-client/dist/fetcher/errors.js","webpack:///./node_modules/@atlassian/feature-gate-js-client/dist/fetcher/index.js","webpack:///./node_modules/@atlassian/feature-gate-js-client/dist/index.js","webpack:///./node_modules/@atlassian/feature-gate-js-client/dist/types.js","webpack:///./node_modules/@atlassian/feature-gate-js-client/dist/version.js","webpack:///./node_modules/@atlassian/feature-gates-react/dist/FeatureGatesInitialization.js","webpack:///./node_modules/@atlassian/feature-gates-react/dist/FeatureGatesInitializationWithDefaults.js","webpack:///./node_modules/@atlassian/feature-gates-react/dist/FeatureGatesInitializationWithValues.js","webpack:///./node_modules/@atlassian/feature-gates-react/dist/index.js","webpack:///./node_modules/@atlassian/feature-gates-react/dist/utils.js","webpack:///./node_modules/@atlassiansox/bxpkit-core/node_modules/@atlassian/feature-gate-js-client/dist/fetcher/Fetcher.js","webpack:///./node_modules/@atlassiansox/bxpkit-core/node_modules/@atlassian/feature-gate-js-client/dist/fetcher/errors.js","webpack:///./node_modules/@atlassiansox/bxpkit-core/node_modules/@atlassian/feature-gate-js-client/dist/fetcher/index.js","webpack:///./node_modules/@atlassiansox/bxpkit-core/node_modules/@atlassian/feature-gate-js-client/dist/index.js","webpack:///./node_modules/@atlassiansox/bxpkit-core/node_modules/@atlassian/feature-gate-js-client/dist/types.js","webpack:///./node_modules/@atlassiansox/bxpkit-core/node_modules/@atlassian/feature-gate-js-client/dist/version.js","webpack:///./node_modules/axios/lib/helpers/bind.js","webpack:///./node_modules/axios/lib/utils.js","webpack:///./node_modules/axios/lib/core/AxiosError.js","webpack:///./node_modules/axios/lib/helpers/toFormData.js","webpack:///./node_modules/axios/lib/helpers/AxiosURLSearchParams.js","webpack:///./node_modules/axios/lib/helpers/buildURL.js","webpack:///./node_modules/axios/lib/core/InterceptorManager.js","webpack:///./node_modules/axios/lib/defaults/transitional.js","webpack:///./node_modules/axios/lib/platform/browser/index.js","webpack:///./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","webpack:///./node_modules/axios/lib/platform/browser/classes/FormData.js","webpack:///./node_modules/axios/lib/platform/browser/classes/Blob.js","webpack:///./node_modules/axios/lib/platform/common/utils.js","webpack:///./node_modules/axios/lib/platform/index.js","webpack:///./node_modules/axios/lib/helpers/formDataToJSON.js","webpack:///./node_modules/axios/lib/defaults/index.js","webpack:///./node_modules/axios/lib/helpers/toURLEncodedForm.js","webpack:///./node_modules/axios/lib/helpers/parseHeaders.js","webpack:///./node_modules/axios/lib/core/AxiosHeaders.js","webpack:///./node_modules/axios/lib/core/transformData.js","webpack:///./node_modules/axios/lib/cancel/isCancel.js","webpack:///./node_modules/axios/lib/cancel/CanceledError.js","webpack:///./node_modules/axios/lib/core/settle.js","webpack:///./node_modules/axios/lib/helpers/speedometer.js","webpack:///./node_modules/axios/lib/helpers/progressEventReducer.js","webpack:///./node_modules/axios/lib/helpers/throttle.js","webpack:///./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack:///./node_modules/axios/lib/helpers/cookies.js","webpack:///./node_modules/axios/lib/core/buildFullPath.js","webpack:///./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack:///./node_modules/axios/lib/helpers/combineURLs.js","webpack:///./node_modules/axios/lib/core/mergeConfig.js","webpack:///./node_modules/axios/lib/helpers/resolveConfig.js","webpack:///./node_modules/axios/lib/adapters/xhr.js","webpack:///./node_modules/axios/lib/helpers/parseProtocol.js","webpack:///./node_modules/axios/lib/helpers/composeSignals.js","webpack:///./node_modules/axios/lib/helpers/trackStream.js","webpack:///./node_modules/axios/lib/adapters/fetch.js","webpack:///./node_modules/axios/lib/adapters/adapters.js","webpack:///./node_modules/axios/lib/helpers/null.js","webpack:///./node_modules/axios/lib/core/dispatchRequest.js","webpack:///./node_modules/axios/lib/env/data.js","webpack:///./node_modules/axios/lib/helpers/validator.js","webpack:///./node_modules/axios/lib/core/Axios.js","webpack:///./node_modules/axios/lib/cancel/CancelToken.js","webpack:///./node_modules/axios/lib/helpers/HttpStatusCode.js","webpack:///./node_modules/axios/lib/axios.js","webpack:///./node_modules/axios/lib/helpers/spread.js","webpack:///./node_modules/axios/lib/helpers/isAxiosError.js","webpack:///./node_modules/underscore/modules/_setup.js","webpack:///./node_modules/underscore/modules/restArguments.js","webpack:///./node_modules/underscore/modules/isObject.js","webpack:///./node_modules/underscore/modules/isNull.js","webpack:///./node_modules/underscore/modules/isUndefined.js","webpack:///./node_modules/underscore/modules/isBoolean.js","webpack:///./node_modules/underscore/modules/isElement.js","webpack:///./node_modules/underscore/modules/_tagTester.js","webpack:///./node_modules/underscore/modules/isString.js","webpack:///./node_modules/underscore/modules/isNumber.js","webpack:///./node_modules/underscore/modules/isDate.js","webpack:///./node_modules/underscore/modules/isRegExp.js","webpack:///./node_modules/underscore/modules/isError.js","webpack:///./node_modules/underscore/modules/isSymbol.js","webpack:///./node_modules/underscore/modules/isArrayBuffer.js","webpack:///./node_modules/underscore/modules/isFunction.js","webpack:///./node_modules/underscore/modules/_hasObjectTag.js","webpack:///./node_modules/underscore/modules/_stringTagBug.js","webpack:///./node_modules/underscore/modules/isDataView.js","webpack:///./node_modules/underscore/modules/isArray.js","webpack:///./node_modules/underscore/modules/_has.js","webpack:///./node_modules/underscore/modules/isArguments.js","webpack:///./node_modules/underscore/modules/isFinite.js","webpack:///./node_modules/underscore/modules/isNaN.js","webpack:///./node_modules/underscore/modules/constant.js","webpack:///./node_modules/underscore/modules/_createSizePropertyCheck.js","webpack:///./node_modules/underscore/modules/_shallowProperty.js","webpack:///./node_modules/underscore/modules/_getByteLength.js","webpack:///./node_modules/underscore/modules/_isBufferLike.js","webpack:///./node_modules/underscore/modules/isTypedArray.js","webpack:///./node_modules/underscore/modules/_getLength.js","webpack:///./node_modules/underscore/modules/_collectNonEnumProps.js","webpack:///./node_modules/underscore/modules/keys.js","webpack:///./node_modules/underscore/modules/isEmpty.js","webpack:///./node_modules/underscore/modules/isMatch.js","webpack:///./node_modules/underscore/modules/underscore.js","webpack:///./node_modules/underscore/modules/_toBufferView.js","webpack:///./node_modules/underscore/modules/isEqual.js","webpack:///./node_modules/underscore/modules/allKeys.js","webpack:///./node_modules/underscore/modules/_methodFingerprint.js","webpack:///./node_modules/underscore/modules/isMap.js","webpack:///./node_modules/underscore/modules/isWeakMap.js","webpack:///./node_modules/underscore/modules/isSet.js","webpack:///./node_modules/underscore/modules/isWeakSet.js","webpack:///./node_modules/underscore/modules/values.js","webpack:///./node_modules/underscore/modules/pairs.js","webpack:///./node_modules/underscore/modules/invert.js","webpack:///./node_modules/underscore/modules/functions.js","webpack:///./node_modules/underscore/modules/_createAssigner.js","webpack:///./node_modules/underscore/modules/extend.js","webpack:///./node_modules/underscore/modules/extendOwn.js","webpack:///./node_modules/underscore/modules/defaults.js","webpack:///./node_modules/underscore/modules/_baseCreate.js","webpack:///./node_modules/underscore/modules/create.js","webpack:///./node_modules/underscore/modules/clone.js","webpack:///./node_modules/underscore/modules/tap.js","webpack:///./node_modules/underscore/modules/toPath.js","webpack:///./node_modules/underscore/modules/_toPath.js","webpack:///./node_modules/underscore/modules/_deepGet.js","webpack:///./node_modules/underscore/modules/get.js","webpack:///./node_modules/underscore/modules/has.js","webpack:///./node_modules/underscore/modules/identity.js","webpack:///./node_modules/underscore/modules/matcher.js","webpack:///./node_modules/underscore/modules/property.js","webpack:///./node_modules/underscore/modules/_optimizeCb.js","webpack:///./node_modules/underscore/modules/_baseIteratee.js","webpack:///./node_modules/underscore/modules/iteratee.js","webpack:///./node_modules/underscore/modules/_cb.js","webpack:///./node_modules/underscore/modules/mapObject.js","webpack:///./node_modules/underscore/modules/noop.js","webpack:///./node_modules/underscore/modules/propertyOf.js","webpack:///./node_modules/underscore/modules/times.js","webpack:///./node_modules/underscore/modules/random.js","webpack:///./node_modules/underscore/modules/now.js","webpack:///./node_modules/underscore/modules/_createEscaper.js","webpack:///./node_modules/underscore/modules/_escapeMap.js","webpack:///./node_modules/underscore/modules/escape.js","webpack:///./node_modules/underscore/modules/unescape.js","webpack:///./node_modules/underscore/modules/_unescapeMap.js","webpack:///./node_modules/underscore/modules/templateSettings.js","webpack:///./node_modules/underscore/modules/template.js","webpack:///./node_modules/underscore/modules/result.js","webpack:///./node_modules/underscore/modules/uniqueId.js","webpack:///./node_modules/underscore/modules/chain.js","webpack:///./node_modules/underscore/modules/_executeBound.js","webpack:///./node_modules/underscore/modules/partial.js","webpack:///./node_modules/underscore/modules/bind.js","webpack:///./node_modules/underscore/modules/_isArrayLike.js","webpack:///./node_modules/underscore/modules/_flatten.js","webpack:///./node_modules/underscore/modules/bindAll.js","webpack:///./node_modules/underscore/modules/memoize.js","webpack:///./node_modules/underscore/modules/delay.js","webpack:///./node_modules/underscore/modules/defer.js","webpack:///./node_modules/underscore/modules/throttle.js","webpack:///./node_modules/underscore/modules/debounce.js","webpack:///./node_modules/underscore/modules/wrap.js","webpack:///./node_modules/underscore/modules/negate.js","webpack:///./node_modules/underscore/modules/compose.js","webpack:///./node_modules/underscore/modules/after.js","webpack:///./node_modules/underscore/modules/before.js","webpack:///./node_modules/underscore/modules/once.js","webpack:///./node_modules/underscore/modules/findKey.js","webpack:///./node_modules/underscore/modules/_createPredicateIndexFinder.js","webpack:///./node_modules/underscore/modules/findIndex.js","webpack:///./node_modules/underscore/modules/findLastIndex.js","webpack:///./node_modules/underscore/modules/sortedIndex.js","webpack:///./node_modules/underscore/modules/_createIndexFinder.js","webpack:///./node_modules/underscore/modules/indexOf.js","webpack:///./node_modules/underscore/modules/lastIndexOf.js","webpack:///./node_modules/underscore/modules/find.js","webpack:///./node_modules/underscore/modules/findWhere.js","webpack:///./node_modules/underscore/modules/each.js","webpack:///./node_modules/underscore/modules/map.js","webpack:///./node_modules/underscore/modules/_createReduce.js","webpack:///./node_modules/underscore/modules/reduce.js","webpack:///./node_modules/underscore/modules/reduceRight.js","webpack:///./node_modules/underscore/modules/filter.js","webpack:///./node_modules/underscore/modules/reject.js","webpack:///./node_modules/underscore/modules/every.js","webpack:///./node_modules/underscore/modules/some.js","webpack:///./node_modules/underscore/modules/contains.js","webpack:///./node_modules/underscore/modules/invoke.js","webpack:///./node_modules/underscore/modules/pluck.js","webpack:///./node_modules/underscore/modules/where.js","webpack:///./node_modules/underscore/modules/max.js","webpack:///./node_modules/underscore/modules/min.js","webpack:///./node_modules/underscore/modules/toArray.js","webpack:///./node_modules/underscore/modules/sample.js","webpack:///./node_modules/underscore/modules/shuffle.js","webpack:///./node_modules/underscore/modules/sortBy.js","webpack:///./node_modules/underscore/modules/_group.js","webpack:///./node_modules/underscore/modules/groupBy.js","webpack:///./node_modules/underscore/modules/indexBy.js","webpack:///./node_modules/underscore/modules/countBy.js","webpack:///./node_modules/underscore/modules/partition.js","webpack:///./node_modules/underscore/modules/size.js","webpack:///./node_modules/underscore/modules/_keyInObj.js","webpack:///./node_modules/underscore/modules/pick.js","webpack:///./node_modules/underscore/modules/omit.js","webpack:///./node_modules/underscore/modules/initial.js","webpack:///./node_modules/underscore/modules/first.js","webpack:///./node_modules/underscore/modules/rest.js","webpack:///./node_modules/underscore/modules/last.js","webpack:///./node_modules/underscore/modules/compact.js","webpack:///./node_modules/underscore/modules/flatten.js","webpack:///./node_modules/underscore/modules/difference.js","webpack:///./node_modules/underscore/modules/without.js","webpack:///./node_modules/underscore/modules/uniq.js","webpack:///./node_modules/underscore/modules/union.js","webpack:///./node_modules/underscore/modules/intersection.js","webpack:///./node_modules/underscore/modules/unzip.js","webpack:///./node_modules/underscore/modules/zip.js","webpack:///./node_modules/underscore/modules/object.js","webpack:///./node_modules/underscore/modules/range.js","webpack:///./node_modules/underscore/modules/chunk.js","webpack:///./node_modules/underscore/modules/_chainResult.js","webpack:///./node_modules/underscore/modules/mixin.js","webpack:///./node_modules/underscore/modules/underscore-array-methods.js","webpack:///./node_modules/underscore/modules/index-default.js"],"sourcesContent":["/*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module exports.\n * @public\n */\n\nexports.parse = parse;\nexports.serialize = serialize;\n\n/**\n * Module variables.\n * @private\n */\n\nvar decode = decodeURIComponent;\nvar encode = encodeURIComponent;\n\n/**\n * RegExp to match field-content in RFC 7230 sec 3.2\n *\n * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n * field-vchar = VCHAR / obs-text\n * obs-text = %x80-FF\n */\n\nvar fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\n\n/**\n * Parse a cookie header.\n *\n * Parse the given cookie header string into an object\n * The object has the various cookies as keys(names) => values\n *\n * @param {string} str\n * @param {object} [options]\n * @return {object}\n * @public\n */\n\nfunction parse(str, options) {\n if (typeof str !== 'string') {\n throw new TypeError('argument str must be a string');\n }\n\n var obj = {}\n var opt = options || {};\n var pairs = str.split(';')\n var dec = opt.decode || decode;\n\n for (var i = 0; i < pairs.length; i++) {\n var pair = pairs[i];\n var index = pair.indexOf('=')\n\n // skip things that don't look like key=value\n if (index < 0) {\n continue;\n }\n\n var key = pair.substring(0, index).trim()\n\n // only assign once\n if (undefined == obj[key]) {\n var val = pair.substring(index + 1, pair.length).trim()\n\n // quoted values\n if (val[0] === '\"') {\n val = val.slice(1, -1)\n }\n\n obj[key] = tryDecode(val, dec);\n }\n }\n\n return obj;\n}\n\n/**\n * Serialize data into a cookie header.\n *\n * Serialize the a name value pair into a cookie string suitable for\n * http headers. An optional options object specified cookie parameters.\n *\n * serialize('foo', 'bar', { httpOnly: true })\n * => \"foo=bar; httpOnly\"\n *\n * @param {string} name\n * @param {string} val\n * @param {object} [options]\n * @return {string}\n * @public\n */\n\nfunction serialize(name, val, options) {\n var opt = options || {};\n var enc = opt.encode || encode;\n\n if (typeof enc !== 'function') {\n throw new TypeError('option encode is invalid');\n }\n\n if (!fieldContentRegExp.test(name)) {\n throw new TypeError('argument name is invalid');\n }\n\n var value = enc(val);\n\n if (value && !fieldContentRegExp.test(value)) {\n throw new TypeError('argument val is invalid');\n }\n\n var str = name + '=' + value;\n\n if (null != opt.maxAge) {\n var maxAge = opt.maxAge - 0;\n\n if (isNaN(maxAge) || !isFinite(maxAge)) {\n throw new TypeError('option maxAge is invalid')\n }\n\n str += '; Max-Age=' + Math.floor(maxAge);\n }\n\n if (opt.domain) {\n if (!fieldContentRegExp.test(opt.domain)) {\n throw new TypeError('option domain is invalid');\n }\n\n str += '; Domain=' + opt.domain;\n }\n\n if (opt.path) {\n if (!fieldContentRegExp.test(opt.path)) {\n throw new TypeError('option path is invalid');\n }\n\n str += '; Path=' + opt.path;\n }\n\n if (opt.expires) {\n if (typeof opt.expires.toUTCString !== 'function') {\n throw new TypeError('option expires is invalid');\n }\n\n str += '; Expires=' + opt.expires.toUTCString();\n }\n\n if (opt.httpOnly) {\n str += '; HttpOnly';\n }\n\n if (opt.secure) {\n str += '; Secure';\n }\n\n if (opt.sameSite) {\n var sameSite = typeof opt.sameSite === 'string'\n ? opt.sameSite.toLowerCase() : opt.sameSite;\n\n switch (sameSite) {\n case true:\n str += '; SameSite=Strict';\n break;\n case 'lax':\n str += '; SameSite=Lax';\n break;\n case 'strict':\n str += '; SameSite=Strict';\n break;\n case 'none':\n str += '; SameSite=None';\n break;\n default:\n throw new TypeError('option sameSite is invalid');\n }\n }\n\n return str;\n}\n\n/**\n * Try decoding a string using a decoding function.\n *\n * @param {string} str\n * @param {function} decode\n * @private\n */\n\nfunction tryDecode(str, decode) {\n try {\n return decode(str);\n } catch (e) {\n return str;\n }\n}\n","/*\n * This file defines flags and constants that can be modified during compile time in order to facilitate tree shaking\n * for users.\n *\n * Debug flags need to be declared in each package individually and must not be imported across package boundaries,\n * because some build tools have trouble tree-shaking imported guards.\n *\n * As a convention, we define debug flags in a `flags.ts` file in the root of a package's `src` folder.\n *\n * Debug flag files will contain \"magic strings\" like `__SENTRY_DEBUG__` that may get replaced with actual values during\n * our, or the user's build process. Take care when introducing new flags - they must not throw if they are not\n * replaced.\n */\n/** Flag that is true for debug builds, false otherwise. */\nexport var IS_DEBUG_BUILD = typeof __SENTRY_DEBUG__ === 'undefined' ? true : __SENTRY_DEBUG__;\n//# sourceMappingURL=flags.js.map","import { dropUndefinedKeys, timestampInSeconds, uuid4 } from '@sentry/utils';\n/**\n * @inheritdoc\n */\nvar Session = /** @class */ (function () {\n function Session(context) {\n this.errors = 0;\n this.sid = uuid4();\n this.duration = 0;\n this.status = 'ok';\n this.init = true;\n this.ignoreDuration = false;\n // Both timestamp and started are in seconds since the UNIX epoch.\n var startingTime = timestampInSeconds();\n this.timestamp = startingTime;\n this.started = startingTime;\n if (context) {\n this.update(context);\n }\n }\n /** JSDoc */\n // eslint-disable-next-line complexity\n Session.prototype.update = function (context) {\n if (context === void 0) { context = {}; }\n if (context.user) {\n if (!this.ipAddress && context.user.ip_address) {\n this.ipAddress = context.user.ip_address;\n }\n if (!this.did && !context.did) {\n this.did = context.user.id || context.user.email || context.user.username;\n }\n }\n this.timestamp = context.timestamp || timestampInSeconds();\n if (context.ignoreDuration) {\n this.ignoreDuration = context.ignoreDuration;\n }\n if (context.sid) {\n // Good enough uuid validation. — Kamil\n this.sid = context.sid.length === 32 ? context.sid : uuid4();\n }\n if (context.init !== undefined) {\n this.init = context.init;\n }\n if (!this.did && context.did) {\n this.did = \"\" + context.did;\n }\n if (typeof context.started === 'number') {\n this.started = context.started;\n }\n if (this.ignoreDuration) {\n this.duration = undefined;\n }\n else if (typeof context.duration === 'number') {\n this.duration = context.duration;\n }\n else {\n var duration = this.timestamp - this.started;\n this.duration = duration >= 0 ? duration : 0;\n }\n if (context.release) {\n this.release = context.release;\n }\n if (context.environment) {\n this.environment = context.environment;\n }\n if (!this.ipAddress && context.ipAddress) {\n this.ipAddress = context.ipAddress;\n }\n if (!this.userAgent && context.userAgent) {\n this.userAgent = context.userAgent;\n }\n if (typeof context.errors === 'number') {\n this.errors = context.errors;\n }\n if (context.status) {\n this.status = context.status;\n }\n };\n /** JSDoc */\n Session.prototype.close = function (status) {\n if (status) {\n this.update({ status: status });\n }\n else if (this.status === 'ok') {\n this.update({ status: 'exited' });\n }\n else {\n this.update();\n }\n };\n /** JSDoc */\n Session.prototype.toJSON = function () {\n return dropUndefinedKeys({\n sid: \"\" + this.sid,\n init: this.init,\n // Make sure that sec is converted to ms for date constructor\n started: new Date(this.started * 1000).toISOString(),\n timestamp: new Date(this.timestamp * 1000).toISOString(),\n status: this.status,\n errors: this.errors,\n did: typeof this.did === 'number' || typeof this.did === 'string' ? \"\" + this.did : undefined,\n duration: this.duration,\n attrs: {\n release: this.release,\n environment: this.environment,\n ip_address: this.ipAddress,\n user_agent: this.userAgent,\n },\n });\n };\n return Session;\n}());\nexport { Session };\n//# sourceMappingURL=session.js.map","import { __assign, __read, __spread } from \"tslib\";\nimport { consoleSandbox, dateTimestampInSeconds, getGlobalObject, getGlobalSingleton, isNodeEnv, logger, uuid4, } from '@sentry/utils';\nimport { IS_DEBUG_BUILD } from './flags';\nimport { Scope } from './scope';\nimport { Session } from './session';\n/**\n * API compatibility version of this hub.\n *\n * WARNING: This number should only be increased when the global interface\n * changes and new methods are introduced.\n *\n * @hidden\n */\nexport var API_VERSION = 4;\n/**\n * Default maximum number of breadcrumbs added to an event. Can be overwritten\n * with {@link Options.maxBreadcrumbs}.\n */\nvar DEFAULT_BREADCRUMBS = 100;\n/**\n * @inheritDoc\n */\nvar Hub = /** @class */ (function () {\n /**\n * Creates a new instance of the hub, will push one {@link Layer} into the\n * internal stack on creation.\n *\n * @param client bound to the hub.\n * @param scope bound to the hub.\n * @param version number, higher number means higher priority.\n */\n function Hub(client, scope, _version) {\n if (scope === void 0) { scope = new Scope(); }\n if (_version === void 0) { _version = API_VERSION; }\n this._version = _version;\n /** Is a {@link Layer}[] containing the client and scope */\n this._stack = [{}];\n this.getStackTop().scope = scope;\n if (client) {\n this.bindClient(client);\n }\n }\n /**\n * @inheritDoc\n */\n Hub.prototype.isOlderThan = function (version) {\n return this._version < version;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.bindClient = function (client) {\n var top = this.getStackTop();\n top.client = client;\n if (client && client.setupIntegrations) {\n client.setupIntegrations();\n }\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.pushScope = function () {\n // We want to clone the content of prev scope\n var scope = Scope.clone(this.getScope());\n this.getStack().push({\n client: this.getClient(),\n scope: scope,\n });\n return scope;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.popScope = function () {\n if (this.getStack().length <= 1)\n return false;\n return !!this.getStack().pop();\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.withScope = function (callback) {\n var scope = this.pushScope();\n try {\n callback(scope);\n }\n finally {\n this.popScope();\n }\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.getClient = function () {\n return this.getStackTop().client;\n };\n /** Returns the scope of the top stack. */\n Hub.prototype.getScope = function () {\n return this.getStackTop().scope;\n };\n /** Returns the scope stack for domains or the process. */\n Hub.prototype.getStack = function () {\n return this._stack;\n };\n /** Returns the topmost scope layer in the order domain > local > process. */\n Hub.prototype.getStackTop = function () {\n return this._stack[this._stack.length - 1];\n };\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n Hub.prototype.captureException = function (exception, hint) {\n var eventId = (this._lastEventId = hint && hint.event_id ? hint.event_id : uuid4());\n var finalHint = hint;\n // If there's no explicit hint provided, mimic the same thing that would happen\n // in the minimal itself to create a consistent behavior.\n // We don't do this in the client, as it's the lowest level API, and doing this,\n // would prevent user from having full control over direct calls.\n if (!hint) {\n var syntheticException = void 0;\n try {\n throw new Error('Sentry syntheticException');\n }\n catch (exception) {\n syntheticException = exception;\n }\n finalHint = {\n originalException: exception,\n syntheticException: syntheticException,\n };\n }\n this._invokeClient('captureException', exception, __assign(__assign({}, finalHint), { event_id: eventId }));\n return eventId;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.captureMessage = function (message, level, hint) {\n var eventId = (this._lastEventId = hint && hint.event_id ? hint.event_id : uuid4());\n var finalHint = hint;\n // If there's no explicit hint provided, mimic the same thing that would happen\n // in the minimal itself to create a consistent behavior.\n // We don't do this in the client, as it's the lowest level API, and doing this,\n // would prevent user from having full control over direct calls.\n if (!hint) {\n var syntheticException = void 0;\n try {\n throw new Error(message);\n }\n catch (exception) {\n syntheticException = exception;\n }\n finalHint = {\n originalException: message,\n syntheticException: syntheticException,\n };\n }\n this._invokeClient('captureMessage', message, level, __assign(__assign({}, finalHint), { event_id: eventId }));\n return eventId;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.captureEvent = function (event, hint) {\n var eventId = hint && hint.event_id ? hint.event_id : uuid4();\n if (event.type !== 'transaction') {\n this._lastEventId = eventId;\n }\n this._invokeClient('captureEvent', event, __assign(__assign({}, hint), { event_id: eventId }));\n return eventId;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.lastEventId = function () {\n return this._lastEventId;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.addBreadcrumb = function (breadcrumb, hint) {\n var _a = this.getStackTop(), scope = _a.scope, client = _a.client;\n if (!scope || !client)\n return;\n // eslint-disable-next-line @typescript-eslint/unbound-method\n var _b = (client.getOptions && client.getOptions()) || {}, _c = _b.beforeBreadcrumb, beforeBreadcrumb = _c === void 0 ? null : _c, _d = _b.maxBreadcrumbs, maxBreadcrumbs = _d === void 0 ? DEFAULT_BREADCRUMBS : _d;\n if (maxBreadcrumbs <= 0)\n return;\n var timestamp = dateTimestampInSeconds();\n var mergedBreadcrumb = __assign({ timestamp: timestamp }, breadcrumb);\n var finalBreadcrumb = beforeBreadcrumb\n ? consoleSandbox(function () { return beforeBreadcrumb(mergedBreadcrumb, hint); })\n : mergedBreadcrumb;\n if (finalBreadcrumb === null)\n return;\n scope.addBreadcrumb(finalBreadcrumb, maxBreadcrumbs);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.setUser = function (user) {\n var scope = this.getScope();\n if (scope)\n scope.setUser(user);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.setTags = function (tags) {\n var scope = this.getScope();\n if (scope)\n scope.setTags(tags);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.setExtras = function (extras) {\n var scope = this.getScope();\n if (scope)\n scope.setExtras(extras);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.setTag = function (key, value) {\n var scope = this.getScope();\n if (scope)\n scope.setTag(key, value);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.setExtra = function (key, extra) {\n var scope = this.getScope();\n if (scope)\n scope.setExtra(key, extra);\n };\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Hub.prototype.setContext = function (name, context) {\n var scope = this.getScope();\n if (scope)\n scope.setContext(name, context);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.configureScope = function (callback) {\n var _a = this.getStackTop(), scope = _a.scope, client = _a.client;\n if (scope && client) {\n callback(scope);\n }\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.run = function (callback) {\n var oldHub = makeMain(this);\n try {\n callback(this);\n }\n finally {\n makeMain(oldHub);\n }\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.getIntegration = function (integration) {\n var client = this.getClient();\n if (!client)\n return null;\n try {\n return client.getIntegration(integration);\n }\n catch (_oO) {\n IS_DEBUG_BUILD && logger.warn(\"Cannot retrieve integration \" + integration.id + \" from the current Hub\");\n return null;\n }\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.startSpan = function (context) {\n return this._callExtensionMethod('startSpan', context);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.startTransaction = function (context, customSamplingContext) {\n return this._callExtensionMethod('startTransaction', context, customSamplingContext);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.traceHeaders = function () {\n return this._callExtensionMethod('traceHeaders');\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.captureSession = function (endSession) {\n if (endSession === void 0) { endSession = false; }\n // both send the update and pull the session from the scope\n if (endSession) {\n return this.endSession();\n }\n // only send the update\n this._sendSessionUpdate();\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.endSession = function () {\n var layer = this.getStackTop();\n var scope = layer && layer.scope;\n var session = scope && scope.getSession();\n if (session) {\n session.close();\n }\n this._sendSessionUpdate();\n // the session is over; take it off of the scope\n if (scope) {\n scope.setSession();\n }\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.startSession = function (context) {\n var _a = this.getStackTop(), scope = _a.scope, client = _a.client;\n var _b = (client && client.getOptions()) || {}, release = _b.release, environment = _b.environment;\n // Will fetch userAgent if called from browser sdk\n var global = getGlobalObject();\n var userAgent = (global.navigator || {}).userAgent;\n var session = new Session(__assign(__assign(__assign({ release: release,\n environment: environment }, (scope && { user: scope.getUser() })), (userAgent && { userAgent: userAgent })), context));\n if (scope) {\n // End existing session if there's one\n var currentSession = scope.getSession && scope.getSession();\n if (currentSession && currentSession.status === 'ok') {\n currentSession.update({ status: 'exited' });\n }\n this.endSession();\n // Afterwards we set the new session on the scope\n scope.setSession(session);\n }\n return session;\n };\n /**\n * Sends the current Session on the scope\n */\n Hub.prototype._sendSessionUpdate = function () {\n var _a = this.getStackTop(), scope = _a.scope, client = _a.client;\n if (!scope)\n return;\n var session = scope.getSession && scope.getSession();\n if (session) {\n if (client && client.captureSession) {\n client.captureSession(session);\n }\n }\n };\n /**\n * Internal helper function to call a method on the top client if it exists.\n *\n * @param method The method to call on the client.\n * @param args Arguments to pass to the client function.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Hub.prototype._invokeClient = function (method) {\n var _a;\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var _b = this.getStackTop(), scope = _b.scope, client = _b.client;\n if (client && client[method]) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any\n (_a = client)[method].apply(_a, __spread(args, [scope]));\n }\n };\n /**\n * Calls global extension method and binding current instance to the function call\n */\n // @ts-ignore Function lacks ending return statement and return type does not include 'undefined'. ts(2366)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Hub.prototype._callExtensionMethod = function (method) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var carrier = getMainCarrier();\n var sentry = carrier.__SENTRY__;\n if (sentry && sentry.extensions && typeof sentry.extensions[method] === 'function') {\n return sentry.extensions[method].apply(this, args);\n }\n IS_DEBUG_BUILD && logger.warn(\"Extension method \" + method + \" couldn't be found, doing nothing.\");\n };\n return Hub;\n}());\nexport { Hub };\n/**\n * Returns the global shim registry.\n *\n * FIXME: This function is problematic, because despite always returning a valid Carrier,\n * it has an optional `__SENTRY__` property, which then in turn requires us to always perform an unnecessary check\n * at the call-site. We always access the carrier through this function, so we can guarantee that `__SENTRY__` is there.\n **/\nexport function getMainCarrier() {\n var carrier = getGlobalObject();\n carrier.__SENTRY__ = carrier.__SENTRY__ || {\n extensions: {},\n hub: undefined,\n };\n return carrier;\n}\n/**\n * Replaces the current main hub with the passed one on the global object\n *\n * @returns The old replaced hub\n */\nexport function makeMain(hub) {\n var registry = getMainCarrier();\n var oldHub = getHubFromCarrier(registry);\n setHubOnCarrier(registry, hub);\n return oldHub;\n}\n/**\n * Returns the default hub instance.\n *\n * If a hub is already registered in the global carrier but this module\n * contains a more recent version, it replaces the registered version.\n * Otherwise, the currently registered hub will be returned.\n */\nexport function getCurrentHub() {\n // Get main carrier (global for every environment)\n var registry = getMainCarrier();\n // If there's no hub, or its an old API, assign a new one\n if (!hasHubOnCarrier(registry) || getHubFromCarrier(registry).isOlderThan(API_VERSION)) {\n setHubOnCarrier(registry, new Hub());\n }\n // Prefer domains over global if they are there (applicable only to Node environment)\n if (isNodeEnv()) {\n return getHubFromActiveDomain(registry);\n }\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n}\n/**\n * Returns the active domain, if one exists\n * @deprecated No longer used; remove in v7\n * @returns The domain, or undefined if there is no active domain\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function getActiveDomain() {\n IS_DEBUG_BUILD && logger.warn('Function `getActiveDomain` is deprecated and will be removed in a future version.');\n var sentry = getMainCarrier().__SENTRY__;\n return sentry && sentry.extensions && sentry.extensions.domain && sentry.extensions.domain.active;\n}\n/**\n * Try to read the hub from an active domain, and fallback to the registry if one doesn't exist\n * @returns discovered hub\n */\nfunction getHubFromActiveDomain(registry) {\n try {\n var sentry = getMainCarrier().__SENTRY__;\n var activeDomain = sentry && sentry.extensions && sentry.extensions.domain && sentry.extensions.domain.active;\n // If there's no active domain, just return global hub\n if (!activeDomain) {\n return getHubFromCarrier(registry);\n }\n // If there's no hub on current domain, or it's an old API, assign a new one\n if (!hasHubOnCarrier(activeDomain) || getHubFromCarrier(activeDomain).isOlderThan(API_VERSION)) {\n var registryHubTopStack = getHubFromCarrier(registry).getStackTop();\n setHubOnCarrier(activeDomain, new Hub(registryHubTopStack.client, Scope.clone(registryHubTopStack.scope)));\n }\n // Return hub that lives on a domain\n return getHubFromCarrier(activeDomain);\n }\n catch (_Oo) {\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n }\n}\n/**\n * This will tell whether a carrier has a hub on it or not\n * @param carrier object\n */\nfunction hasHubOnCarrier(carrier) {\n return !!(carrier && carrier.__SENTRY__ && carrier.__SENTRY__.hub);\n}\n/**\n * This will create a new {@link Hub} and add to the passed object on\n * __SENTRY__.hub.\n * @param carrier object\n * @hidden\n */\nexport function getHubFromCarrier(carrier) {\n return getGlobalSingleton('hub', function () { return new Hub(); }, carrier);\n}\n/**\n * This will set passed {@link Hub} on the passed object's __SENTRY__.hub attribute\n * @param carrier object\n * @param hub Hub\n * @returns A boolean indicating success or failure\n */\nexport function setHubOnCarrier(carrier, hub) {\n if (!carrier)\n return false;\n var __SENTRY__ = (carrier.__SENTRY__ = carrier.__SENTRY__ || {});\n __SENTRY__.hub = hub;\n return true;\n}\n//# sourceMappingURL=hub.js.map","import { __assign, __read, __spread } from \"tslib\";\nimport { dateTimestampInSeconds, getGlobalSingleton, isPlainObject, isThenable, SyncPromise } from '@sentry/utils';\n/**\n * Absolute maximum number of breadcrumbs added to an event.\n * The `maxBreadcrumbs` option cannot be higher than this value.\n */\nvar MAX_BREADCRUMBS = 100;\n/**\n * Holds additional event information. {@link Scope.applyToEvent} will be\n * called by the client before an event will be sent.\n */\nvar Scope = /** @class */ (function () {\n function Scope() {\n /** Flag if notifying is happening. */\n this._notifyingListeners = false;\n /** Callback for client to receive scope changes. */\n this._scopeListeners = [];\n /** Callback list that will be called after {@link applyToEvent}. */\n this._eventProcessors = [];\n /** Array of breadcrumbs. */\n this._breadcrumbs = [];\n /** User */\n this._user = {};\n /** Tags */\n this._tags = {};\n /** Extra */\n this._extra = {};\n /** Contexts */\n this._contexts = {};\n /**\n * A place to stash data which is needed at some point in the SDK's event processing pipeline but which shouldn't get\n * sent to Sentry\n */\n this._sdkProcessingMetadata = {};\n }\n /**\n * Inherit values from the parent scope.\n * @param scope to clone.\n */\n Scope.clone = function (scope) {\n var newScope = new Scope();\n if (scope) {\n newScope._breadcrumbs = __spread(scope._breadcrumbs);\n newScope._tags = __assign({}, scope._tags);\n newScope._extra = __assign({}, scope._extra);\n newScope._contexts = __assign({}, scope._contexts);\n newScope._user = scope._user;\n newScope._level = scope._level;\n newScope._span = scope._span;\n newScope._session = scope._session;\n newScope._transactionName = scope._transactionName;\n newScope._fingerprint = scope._fingerprint;\n newScope._eventProcessors = __spread(scope._eventProcessors);\n newScope._requestSession = scope._requestSession;\n }\n return newScope;\n };\n /**\n * Add internal on change listener. Used for sub SDKs that need to store the scope.\n * @hidden\n */\n Scope.prototype.addScopeListener = function (callback) {\n this._scopeListeners.push(callback);\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.addEventProcessor = function (callback) {\n this._eventProcessors.push(callback);\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setUser = function (user) {\n this._user = user || {};\n if (this._session) {\n this._session.update({ user: user });\n }\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.getUser = function () {\n return this._user;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.getRequestSession = function () {\n return this._requestSession;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setRequestSession = function (requestSession) {\n this._requestSession = requestSession;\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setTags = function (tags) {\n this._tags = __assign(__assign({}, this._tags), tags);\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setTag = function (key, value) {\n var _a;\n this._tags = __assign(__assign({}, this._tags), (_a = {}, _a[key] = value, _a));\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setExtras = function (extras) {\n this._extra = __assign(__assign({}, this._extra), extras);\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setExtra = function (key, extra) {\n var _a;\n this._extra = __assign(__assign({}, this._extra), (_a = {}, _a[key] = extra, _a));\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setFingerprint = function (fingerprint) {\n this._fingerprint = fingerprint;\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setLevel = function (level) {\n this._level = level;\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setTransactionName = function (name) {\n this._transactionName = name;\n this._notifyScopeListeners();\n return this;\n };\n /**\n * Can be removed in major version.\n * @deprecated in favor of {@link this.setTransactionName}\n */\n Scope.prototype.setTransaction = function (name) {\n return this.setTransactionName(name);\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setContext = function (key, context) {\n var _a;\n if (context === null) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this._contexts[key];\n }\n else {\n this._contexts = __assign(__assign({}, this._contexts), (_a = {}, _a[key] = context, _a));\n }\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setSpan = function (span) {\n this._span = span;\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.getSpan = function () {\n return this._span;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.getTransaction = function () {\n // Often, this span (if it exists at all) will be a transaction, but it's not guaranteed to be. Regardless, it will\n // have a pointer to the currently-active transaction.\n var span = this.getSpan();\n return span && span.transaction;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setSession = function (session) {\n if (!session) {\n delete this._session;\n }\n else {\n this._session = session;\n }\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.getSession = function () {\n return this._session;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.update = function (captureContext) {\n if (!captureContext) {\n return this;\n }\n if (typeof captureContext === 'function') {\n var updatedScope = captureContext(this);\n return updatedScope instanceof Scope ? updatedScope : this;\n }\n if (captureContext instanceof Scope) {\n this._tags = __assign(__assign({}, this._tags), captureContext._tags);\n this._extra = __assign(__assign({}, this._extra), captureContext._extra);\n this._contexts = __assign(__assign({}, this._contexts), captureContext._contexts);\n if (captureContext._user && Object.keys(captureContext._user).length) {\n this._user = captureContext._user;\n }\n if (captureContext._level) {\n this._level = captureContext._level;\n }\n if (captureContext._fingerprint) {\n this._fingerprint = captureContext._fingerprint;\n }\n if (captureContext._requestSession) {\n this._requestSession = captureContext._requestSession;\n }\n }\n else if (isPlainObject(captureContext)) {\n // eslint-disable-next-line no-param-reassign\n captureContext = captureContext;\n this._tags = __assign(__assign({}, this._tags), captureContext.tags);\n this._extra = __assign(__assign({}, this._extra), captureContext.extra);\n this._contexts = __assign(__assign({}, this._contexts), captureContext.contexts);\n if (captureContext.user) {\n this._user = captureContext.user;\n }\n if (captureContext.level) {\n this._level = captureContext.level;\n }\n if (captureContext.fingerprint) {\n this._fingerprint = captureContext.fingerprint;\n }\n if (captureContext.requestSession) {\n this._requestSession = captureContext.requestSession;\n }\n }\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.clear = function () {\n this._breadcrumbs = [];\n this._tags = {};\n this._extra = {};\n this._user = {};\n this._contexts = {};\n this._level = undefined;\n this._transactionName = undefined;\n this._fingerprint = undefined;\n this._requestSession = undefined;\n this._span = undefined;\n this._session = undefined;\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.addBreadcrumb = function (breadcrumb, maxBreadcrumbs) {\n var maxCrumbs = typeof maxBreadcrumbs === 'number' ? Math.min(maxBreadcrumbs, MAX_BREADCRUMBS) : MAX_BREADCRUMBS;\n // No data has been changed, so don't notify scope listeners\n if (maxCrumbs <= 0) {\n return this;\n }\n var mergedBreadcrumb = __assign({ timestamp: dateTimestampInSeconds() }, breadcrumb);\n this._breadcrumbs = __spread(this._breadcrumbs, [mergedBreadcrumb]).slice(-maxCrumbs);\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.clearBreadcrumbs = function () {\n this._breadcrumbs = [];\n this._notifyScopeListeners();\n return this;\n };\n /**\n * Applies the current context and fingerprint to the event.\n * Note that breadcrumbs will be added by the client.\n * Also if the event has already breadcrumbs on it, we do not merge them.\n * @param event Event\n * @param hint May contain additional information about the original exception.\n * @hidden\n */\n Scope.prototype.applyToEvent = function (event, hint) {\n if (this._extra && Object.keys(this._extra).length) {\n event.extra = __assign(__assign({}, this._extra), event.extra);\n }\n if (this._tags && Object.keys(this._tags).length) {\n event.tags = __assign(__assign({}, this._tags), event.tags);\n }\n if (this._user && Object.keys(this._user).length) {\n event.user = __assign(__assign({}, this._user), event.user);\n }\n if (this._contexts && Object.keys(this._contexts).length) {\n event.contexts = __assign(__assign({}, this._contexts), event.contexts);\n }\n if (this._level) {\n event.level = this._level;\n }\n if (this._transactionName) {\n event.transaction = this._transactionName;\n }\n // We want to set the trace context for normal events only if there isn't already\n // a trace context on the event. There is a product feature in place where we link\n // errors with transaction and it relies on that.\n if (this._span) {\n event.contexts = __assign({ trace: this._span.getTraceContext() }, event.contexts);\n var transactionName = this._span.transaction && this._span.transaction.name;\n if (transactionName) {\n event.tags = __assign({ transaction: transactionName }, event.tags);\n }\n }\n this._applyFingerprint(event);\n event.breadcrumbs = __spread((event.breadcrumbs || []), this._breadcrumbs);\n event.breadcrumbs = event.breadcrumbs.length > 0 ? event.breadcrumbs : undefined;\n event.sdkProcessingMetadata = this._sdkProcessingMetadata;\n return this._notifyEventProcessors(__spread(getGlobalEventProcessors(), this._eventProcessors), event, hint);\n };\n /**\n * Add data which will be accessible during event processing but won't get sent to Sentry\n */\n Scope.prototype.setSDKProcessingMetadata = function (newData) {\n this._sdkProcessingMetadata = __assign(__assign({}, this._sdkProcessingMetadata), newData);\n return this;\n };\n /**\n * This will be called after {@link applyToEvent} is finished.\n */\n Scope.prototype._notifyEventProcessors = function (processors, event, hint, index) {\n var _this = this;\n if (index === void 0) { index = 0; }\n return new SyncPromise(function (resolve, reject) {\n var processor = processors[index];\n if (event === null || typeof processor !== 'function') {\n resolve(event);\n }\n else {\n var result = processor(__assign({}, event), hint);\n if (isThenable(result)) {\n void result\n .then(function (final) { return _this._notifyEventProcessors(processors, final, hint, index + 1).then(resolve); })\n .then(null, reject);\n }\n else {\n void _this._notifyEventProcessors(processors, result, hint, index + 1)\n .then(resolve)\n .then(null, reject);\n }\n }\n });\n };\n /**\n * This will be called on every set call.\n */\n Scope.prototype._notifyScopeListeners = function () {\n var _this = this;\n // We need this check for this._notifyingListeners to be able to work on scope during updates\n // If this check is not here we'll produce endless recursion when something is done with the scope\n // during the callback.\n if (!this._notifyingListeners) {\n this._notifyingListeners = true;\n this._scopeListeners.forEach(function (callback) {\n callback(_this);\n });\n this._notifyingListeners = false;\n }\n };\n /**\n * Applies fingerprint from the scope to the event if there's one,\n * uses message if there's one instead or get rid of empty fingerprint\n */\n Scope.prototype._applyFingerprint = function (event) {\n // Make sure it's an array first and we actually have something in place\n event.fingerprint = event.fingerprint\n ? Array.isArray(event.fingerprint)\n ? event.fingerprint\n : [event.fingerprint]\n : [];\n // If we have something on the scope, then merge it with event\n if (this._fingerprint) {\n event.fingerprint = event.fingerprint.concat(this._fingerprint);\n }\n // If we have no data at all, remove empty array default\n if (event.fingerprint && !event.fingerprint.length) {\n delete event.fingerprint;\n }\n };\n return Scope;\n}());\nexport { Scope };\n/**\n * Returns the global event processors.\n */\nfunction getGlobalEventProcessors() {\n return getGlobalSingleton('globalEventProcessors', function () { return []; });\n}\n/**\n * Add a EventProcessor to be kept globally.\n * @param callback EventProcessor to add\n */\nexport function addGlobalEventProcessor(callback) {\n getGlobalEventProcessors().push(callback);\n}\n//# sourceMappingURL=scope.js.map","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { __assign, __read, __spread } from \"tslib\";\nimport { getCurrentHub } from '@sentry/hub';\n/**\n * This calls a function on the current hub.\n * @param method function to call on hub.\n * @param args to pass to function.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction callOnHub(method) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var hub = getCurrentHub();\n if (hub && hub[method]) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return hub[method].apply(hub, __spread(args));\n }\n throw new Error(\"No hub defined or \" + method + \" was not found on the hub, please open a bug report.\");\n}\n/**\n * Captures an exception event and sends it to Sentry.\n *\n * @param exception An exception-like object.\n * @returns The generated eventId.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\nexport function captureException(exception, captureContext) {\n var syntheticException = new Error('Sentry syntheticException');\n return callOnHub('captureException', exception, {\n captureContext: captureContext,\n originalException: exception,\n syntheticException: syntheticException,\n });\n}\n/**\n * Captures a message event and sends it to Sentry.\n *\n * @param message The message to send to Sentry.\n * @param Severity Define the level of the message.\n * @returns The generated eventId.\n */\nexport function captureMessage(message, captureContext) {\n var syntheticException = new Error(message);\n // This is necessary to provide explicit scopes upgrade, without changing the original\n // arity of the `captureMessage(message, level)` method.\n var level = typeof captureContext === 'string' ? captureContext : undefined;\n var context = typeof captureContext !== 'string' ? { captureContext: captureContext } : undefined;\n return callOnHub('captureMessage', message, level, __assign({ originalException: message, syntheticException: syntheticException }, context));\n}\n/**\n * Captures a manually created event and sends it to Sentry.\n *\n * @param event The event to send to Sentry.\n * @returns The generated eventId.\n */\nexport function captureEvent(event) {\n return callOnHub('captureEvent', event);\n}\n/**\n * Callback to set context information onto the scope.\n * @param callback Callback function that receives Scope.\n */\nexport function configureScope(callback) {\n callOnHub('configureScope', callback);\n}\n/**\n * Records a new breadcrumb which will be attached to future events.\n *\n * Breadcrumbs will be added to subsequent events to provide more context on\n * user's actions prior to an error or crash.\n *\n * @param breadcrumb The breadcrumb to record.\n */\nexport function addBreadcrumb(breadcrumb) {\n callOnHub('addBreadcrumb', breadcrumb);\n}\n/**\n * Sets context data with the given name.\n * @param name of the context\n * @param context Any kind of data. This data will be normalized.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function setContext(name, context) {\n callOnHub('setContext', name, context);\n}\n/**\n * Set an object that will be merged sent as extra data with the event.\n * @param extras Extras object to merge into current context.\n */\nexport function setExtras(extras) {\n callOnHub('setExtras', extras);\n}\n/**\n * Set an object that will be merged sent as tags data with the event.\n * @param tags Tags context object to merge into current context.\n */\nexport function setTags(tags) {\n callOnHub('setTags', tags);\n}\n/**\n * Set key:value that will be sent as extra data with the event.\n * @param key String of extra\n * @param extra Any kind of data. This data will be normalized.\n */\nexport function setExtra(key, extra) {\n callOnHub('setExtra', key, extra);\n}\n/**\n * Set key:value that will be sent as tags data with the event.\n *\n * Can also be used to unset a tag, by passing `undefined`.\n *\n * @param key String key of tag\n * @param value Value of tag\n */\nexport function setTag(key, value) {\n callOnHub('setTag', key, value);\n}\n/**\n * Updates user context information for future events.\n *\n * @param user User context object to be set in the current context. Pass `null` to unset the user.\n */\nexport function setUser(user) {\n callOnHub('setUser', user);\n}\n/**\n * Creates a new scope with and executes the given operation within.\n * The scope is automatically removed once the operation\n * finishes or throws.\n *\n * This is essentially a convenience function for:\n *\n * pushScope();\n * callback();\n * popScope();\n *\n * @param callback that will be enclosed into push/popScope.\n */\nexport function withScope(callback) {\n callOnHub('withScope', callback);\n}\n/**\n * Calls a function on the latest client. Use this with caution, it's meant as\n * in \"internal\" helper so we don't need to expose every possible function in\n * the shim. It is not guaranteed that the client actually implements the\n * function.\n *\n * @param method The method to call on the client/client.\n * @param args Arguments to pass to the client/fontend.\n * @hidden\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function _callOnClient(method) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n callOnHub.apply(void 0, __spread(['_invokeClient', method], args));\n}\n/**\n * Starts a new `Transaction` and returns it. This is the entry point to manual tracing instrumentation.\n *\n * A tree structure can be built by adding child spans to the transaction, and child spans to other spans. To start a\n * new child span within the transaction or any span, call the respective `.startChild()` method.\n *\n * Every child span must be finished before the transaction is finished, otherwise the unfinished spans are discarded.\n *\n * The transaction must be finished with a call to its `.finish()` method, at which point the transaction with all its\n * finished child spans will be sent to Sentry.\n *\n * @param context Properties of the new `Transaction`.\n * @param customSamplingContext Information given to the transaction sampling function (along with context-dependent\n * default values). See {@link Options.tracesSampler}.\n *\n * @returns The transaction which was just started\n */\nexport function startTransaction(context, customSamplingContext) {\n return callOnHub('startTransaction', __assign({}, context), customSamplingContext);\n}\n//# sourceMappingURL=index.js.map","/**\n * TODO(v7): Remove this enum and replace with SeverityLevel\n */\nexport var Severity;\n(function (Severity) {\n /** JSDoc */\n Severity[\"Fatal\"] = \"fatal\";\n /** JSDoc */\n Severity[\"Error\"] = \"error\";\n /** JSDoc */\n Severity[\"Warning\"] = \"warning\";\n /** JSDoc */\n Severity[\"Log\"] = \"log\";\n /** JSDoc */\n Severity[\"Info\"] = \"info\";\n /** JSDoc */\n Severity[\"Debug\"] = \"debug\";\n /** JSDoc */\n Severity[\"Critical\"] = \"critical\";\n})(Severity || (Severity = {}));\n// TODO: in v7, these can disappear, because they now also exist in `@sentry/utils`. (Having them there rather than here\n// is nice because then it enforces the idea that only types are exported from `@sentry/types`.)\nexport var SeverityLevels = ['fatal', 'error', 'warning', 'log', 'info', 'debug', 'critical'];\n//# sourceMappingURL=severity.js.map","import { getGlobalObject } from './global';\nimport { isString } from './is';\n/**\n * Given a child DOM element, returns a query-selector statement describing that\n * and its ancestors\n * e.g. [HTMLElement] => body > div > input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nexport function htmlTreeAsString(elem, keyAttrs) {\n // try/catch both:\n // - accessing event.target (see getsentry/raven-js#838, #768)\n // - `htmlTreeAsString` because it's complex, and just accessing the DOM incorrectly\n // - can throw an exception in some circumstances.\n try {\n var currentElem = elem;\n var MAX_TRAVERSE_HEIGHT = 5;\n var MAX_OUTPUT_LEN = 80;\n var out = [];\n var height = 0;\n var len = 0;\n var separator = ' > ';\n var sepLength = separator.length;\n var nextStr = void 0;\n // eslint-disable-next-line no-plusplus\n while (currentElem && height++ < MAX_TRAVERSE_HEIGHT) {\n nextStr = _htmlElementAsString(currentElem, keyAttrs);\n // bail out if\n // - nextStr is the 'html' element\n // - the length of the string that would be created exceeds MAX_OUTPUT_LEN\n // (ignore this limit if we are on the first iteration)\n if (nextStr === 'html' || (height > 1 && len + out.length * sepLength + nextStr.length >= MAX_OUTPUT_LEN)) {\n break;\n }\n out.push(nextStr);\n len += nextStr.length;\n currentElem = currentElem.parentNode;\n }\n return out.reverse().join(separator);\n }\n catch (_oO) {\n return '';\n }\n}\n/**\n * Returns a simple, query-selector representation of a DOM element\n * e.g. [HTMLElement] => input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nfunction _htmlElementAsString(el, keyAttrs) {\n var elem = el;\n var out = [];\n var className;\n var classes;\n var key;\n var attr;\n var i;\n if (!elem || !elem.tagName) {\n return '';\n }\n out.push(elem.tagName.toLowerCase());\n // Pairs of attribute keys defined in `serializeAttribute` and their values on element.\n var keyAttrPairs = keyAttrs && keyAttrs.length\n ? keyAttrs.filter(function (keyAttr) { return elem.getAttribute(keyAttr); }).map(function (keyAttr) { return [keyAttr, elem.getAttribute(keyAttr)]; })\n : null;\n if (keyAttrPairs && keyAttrPairs.length) {\n keyAttrPairs.forEach(function (keyAttrPair) {\n out.push(\"[\" + keyAttrPair[0] + \"=\\\"\" + keyAttrPair[1] + \"\\\"]\");\n });\n }\n else {\n if (elem.id) {\n out.push(\"#\" + elem.id);\n }\n // eslint-disable-next-line prefer-const\n className = elem.className;\n if (className && isString(className)) {\n classes = className.split(/\\s+/);\n for (i = 0; i < classes.length; i++) {\n out.push(\".\" + classes[i]);\n }\n }\n }\n var allowedAttrs = ['type', 'name', 'title', 'alt'];\n for (i = 0; i < allowedAttrs.length; i++) {\n key = allowedAttrs[i];\n attr = elem.getAttribute(key);\n if (attr) {\n out.push(\"[\" + key + \"=\\\"\" + attr + \"\\\"]\");\n }\n }\n return out.join('');\n}\n/**\n * A safe form of location.href\n */\nexport function getLocationHref() {\n var global = getGlobalObject();\n try {\n return global.document.location.href;\n }\n catch (oO) {\n return '';\n }\n}\n//# sourceMappingURL=browser.js.map","/*\n * This file defines flags and constants that can be modified during compile time in order to facilitate tree shaking\n * for users.\n *\n * Debug flags need to be declared in each package individually and must not be imported across package boundaries,\n * because some build tools have trouble tree-shaking imported guards.\n *\n * As a convention, we define debug flags in a `flags.ts` file in the root of a package's `src` folder.\n *\n * Debug flag files will contain \"magic strings\" like `__SENTRY_DEBUG__` that may get replaced with actual values during\n * our, or the user's build process. Take care when introducing new flags - they must not throw if they are not\n * replaced.\n */\n/** Flag that is true for debug builds, false otherwise. */\nexport var IS_DEBUG_BUILD = typeof __SENTRY_DEBUG__ === 'undefined' ? true : __SENTRY_DEBUG__;\n//# sourceMappingURL=flags.js.map","/**\n * NOTE: In order to avoid circular dependencies, if you add a function to this module and it needs to print something,\n * you must either a) use `console.log` rather than the logger, or b) put your function elsewhere.\n */\nimport { isNodeEnv } from './node';\nvar fallbackGlobalObject = {};\n/**\n * Safely get global scope object\n *\n * @returns Global scope object\n */\nexport function getGlobalObject() {\n return (isNodeEnv()\n ? global\n : typeof window !== 'undefined' // eslint-disable-line no-restricted-globals\n ? window // eslint-disable-line no-restricted-globals\n : typeof self !== 'undefined'\n ? self\n : fallbackGlobalObject);\n}\n/**\n * Returns a global singleton contained in the global `__SENTRY__` object.\n *\n * If the singleton doesn't already exist in `__SENTRY__`, it will be created using the given factory\n * function and added to the `__SENTRY__` object.\n *\n * @param name name of the global singleton on __SENTRY__\n * @param creator creator Factory function to create the singleton if it doesn't already exist on `__SENTRY__`\n * @param obj (Optional) The global object on which to look for `__SENTRY__`, if not `getGlobalObject`'s return value\n * @returns the singleton\n */\nexport function getGlobalSingleton(name, creator, obj) {\n var global = (obj || getGlobalObject());\n var __SENTRY__ = (global.__SENTRY__ = global.__SENTRY__ || {});\n var singleton = __SENTRY__[name] || (__SENTRY__[name] = creator());\n return singleton;\n}\n//# sourceMappingURL=global.js.map","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n// eslint-disable-next-line @typescript-eslint/unbound-method\nvar objectToString = Object.prototype.toString;\n/**\n * Checks whether given value's type is one of a few Error or Error-like\n * {@link isError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isError(wat) {\n switch (objectToString.call(wat)) {\n case '[object Error]':\n case '[object Exception]':\n case '[object DOMException]':\n return true;\n default:\n return isInstanceOf(wat, Error);\n }\n}\nfunction isBuiltin(wat, ty) {\n return objectToString.call(wat) === \"[object \" + ty + \"]\";\n}\n/**\n * Checks whether given value's type is ErrorEvent\n * {@link isErrorEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isErrorEvent(wat) {\n return isBuiltin(wat, 'ErrorEvent');\n}\n/**\n * Checks whether given value's type is DOMError\n * {@link isDOMError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isDOMError(wat) {\n return isBuiltin(wat, 'DOMError');\n}\n/**\n * Checks whether given value's type is DOMException\n * {@link isDOMException}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isDOMException(wat) {\n return isBuiltin(wat, 'DOMException');\n}\n/**\n * Checks whether given value's type is a string\n * {@link isString}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isString(wat) {\n return isBuiltin(wat, 'String');\n}\n/**\n * Checks whether given value is a primitive (undefined, null, number, boolean, string, bigint, symbol)\n * {@link isPrimitive}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isPrimitive(wat) {\n return wat === null || (typeof wat !== 'object' && typeof wat !== 'function');\n}\n/**\n * Checks whether given value's type is an object literal\n * {@link isPlainObject}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isPlainObject(wat) {\n return isBuiltin(wat, 'Object');\n}\n/**\n * Checks whether given value's type is an Event instance\n * {@link isEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isEvent(wat) {\n return typeof Event !== 'undefined' && isInstanceOf(wat, Event);\n}\n/**\n * Checks whether given value's type is an Element instance\n * {@link isElement}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isElement(wat) {\n return typeof Element !== 'undefined' && isInstanceOf(wat, Element);\n}\n/**\n * Checks whether given value's type is an regexp\n * {@link isRegExp}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isRegExp(wat) {\n return isBuiltin(wat, 'RegExp');\n}\n/**\n * Checks whether given value has a then function.\n * @param wat A value to be checked.\n */\nexport function isThenable(wat) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return Boolean(wat && wat.then && typeof wat.then === 'function');\n}\n/**\n * Checks whether given value's type is a SyntheticEvent\n * {@link isSyntheticEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isSyntheticEvent(wat) {\n return isPlainObject(wat) && 'nativeEvent' in wat && 'preventDefault' in wat && 'stopPropagation' in wat;\n}\n/**\n * Checks whether given value is NaN\n * {@link isNaN}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isNaN(wat) {\n return typeof wat === 'number' && wat !== wat;\n}\n/**\n * Checks whether given value's type is an instance of provided constructor.\n * {@link isInstanceOf}.\n *\n * @param wat A value to be checked.\n * @param base A constructor to be used in a check.\n * @returns A boolean representing the result.\n */\nexport function isInstanceOf(wat, base) {\n try {\n return wat instanceof base;\n }\n catch (_e) {\n return false;\n }\n}\n//# sourceMappingURL=is.js.map","import { __read, __spread } from \"tslib\";\nimport { IS_DEBUG_BUILD } from './flags';\nimport { getGlobalObject, getGlobalSingleton } from './global';\n// TODO: Implement different loggers for different environments\nvar global = getGlobalObject();\n/** Prefix for logging strings */\nvar PREFIX = 'Sentry Logger ';\nexport var CONSOLE_LEVELS = ['debug', 'info', 'warn', 'error', 'log', 'assert'];\n/**\n * Temporarily disable sentry console instrumentations.\n *\n * @param callback The function to run against the original `console` messages\n * @returns The results of the callback\n */\nexport function consoleSandbox(callback) {\n var global = getGlobalObject();\n if (!('console' in global)) {\n return callback();\n }\n var originalConsole = global.console;\n var wrappedLevels = {};\n // Restore all wrapped console methods\n CONSOLE_LEVELS.forEach(function (level) {\n // TODO(v7): Remove this check as it's only needed for Node 6\n var originalWrappedFunc = originalConsole[level] && originalConsole[level].__sentry_original__;\n if (level in global.console && originalWrappedFunc) {\n wrappedLevels[level] = originalConsole[level];\n originalConsole[level] = originalWrappedFunc;\n }\n });\n try {\n return callback();\n }\n finally {\n // Revert restoration to wrapped state\n Object.keys(wrappedLevels).forEach(function (level) {\n originalConsole[level] = wrappedLevels[level];\n });\n }\n}\nfunction makeLogger() {\n var enabled = false;\n var logger = {\n enable: function () {\n enabled = true;\n },\n disable: function () {\n enabled = false;\n },\n };\n if (IS_DEBUG_BUILD) {\n CONSOLE_LEVELS.forEach(function (name) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n logger[name] = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (enabled) {\n consoleSandbox(function () {\n var _a;\n (_a = global.console)[name].apply(_a, __spread([PREFIX + \"[\" + name + \"]:\"], args));\n });\n }\n };\n });\n }\n else {\n CONSOLE_LEVELS.forEach(function (name) {\n logger[name] = function () { return undefined; };\n });\n }\n return logger;\n}\n// Ensure we only have a single logger instance, even if multiple versions of @sentry/utils are being used\nvar logger;\nif (IS_DEBUG_BUILD) {\n logger = getGlobalSingleton('logger', makeLogger);\n}\nelse {\n logger = makeLogger();\n}\nexport { logger };\n//# sourceMappingURL=logger.js.map","import { __assign } from \"tslib\";\nimport { getGlobalObject } from './global';\nimport { addNonEnumerableProperty } from './object';\nimport { snipLine } from './string';\n/**\n * UUID4 generator\n *\n * @returns string Generated UUID4.\n */\nexport function uuid4() {\n var global = getGlobalObject();\n var crypto = global.crypto || global.msCrypto;\n if (!(crypto === void 0) && crypto.getRandomValues) {\n // Use window.crypto API if available\n var arr = new Uint16Array(8);\n crypto.getRandomValues(arr);\n // set 4 in byte 7\n // eslint-disable-next-line no-bitwise\n arr[3] = (arr[3] & 0xfff) | 0x4000;\n // set 2 most significant bits of byte 9 to '10'\n // eslint-disable-next-line no-bitwise\n arr[4] = (arr[4] & 0x3fff) | 0x8000;\n var pad = function (num) {\n var v = num.toString(16);\n while (v.length < 4) {\n v = \"0\" + v;\n }\n return v;\n };\n return (pad(arr[0]) + pad(arr[1]) + pad(arr[2]) + pad(arr[3]) + pad(arr[4]) + pad(arr[5]) + pad(arr[6]) + pad(arr[7]));\n }\n // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523\n return 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n // eslint-disable-next-line no-bitwise\n var r = (Math.random() * 16) | 0;\n // eslint-disable-next-line no-bitwise\n var v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n}\n/**\n * Parses string form of URL into an object\n * // borrowed from https://tools.ietf.org/html/rfc3986#appendix-B\n * // intentionally using regex and not href parsing trick because React Native and other\n * // environments where DOM might not be available\n * @returns parsed URL object\n */\nexport function parseUrl(url) {\n if (!url) {\n return {};\n }\n var match = url.match(/^(([^:/?#]+):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/);\n if (!match) {\n return {};\n }\n // coerce to undefined values to empty string so we don't get 'undefined'\n var query = match[6] || '';\n var fragment = match[8] || '';\n return {\n host: match[4],\n path: match[5],\n protocol: match[2],\n relative: match[5] + query + fragment,\n };\n}\nfunction getFirstException(event) {\n return event.exception && event.exception.values ? event.exception.values[0] : undefined;\n}\n/**\n * Extracts either message or type+value from an event that can be used for user-facing logs\n * @returns event's description\n */\nexport function getEventDescription(event) {\n var message = event.message, eventId = event.event_id;\n if (message) {\n return message;\n }\n var firstException = getFirstException(event);\n if (firstException) {\n if (firstException.type && firstException.value) {\n return firstException.type + \": \" + firstException.value;\n }\n return firstException.type || firstException.value || eventId || '';\n }\n return eventId || '';\n}\n/**\n * Adds exception values, type and value to an synthetic Exception.\n * @param event The event to modify.\n * @param value Value of the exception.\n * @param type Type of the exception.\n * @hidden\n */\nexport function addExceptionTypeValue(event, value, type) {\n var exception = (event.exception = event.exception || {});\n var values = (exception.values = exception.values || []);\n var firstException = (values[0] = values[0] || {});\n if (!firstException.value) {\n firstException.value = value || '';\n }\n if (!firstException.type) {\n firstException.type = type || 'Error';\n }\n}\n/**\n * Adds exception mechanism data to a given event. Uses defaults if the second parameter is not passed.\n *\n * @param event The event to modify.\n * @param newMechanism Mechanism data to add to the event.\n * @hidden\n */\nexport function addExceptionMechanism(event, newMechanism) {\n var firstException = getFirstException(event);\n if (!firstException) {\n return;\n }\n var defaultMechanism = { type: 'generic', handled: true };\n var currentMechanism = firstException.mechanism;\n firstException.mechanism = __assign(__assign(__assign({}, defaultMechanism), currentMechanism), newMechanism);\n if (newMechanism && 'data' in newMechanism) {\n var mergedData = __assign(__assign({}, (currentMechanism && currentMechanism.data)), newMechanism.data);\n firstException.mechanism.data = mergedData;\n }\n}\n// https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string\nvar SEMVER_REGEXP = /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\n/**\n * Parses input into a SemVer interface\n * @param input string representation of a semver version\n */\nexport function parseSemver(input) {\n var match = input.match(SEMVER_REGEXP) || [];\n var major = parseInt(match[1], 10);\n var minor = parseInt(match[2], 10);\n var patch = parseInt(match[3], 10);\n return {\n buildmetadata: match[5],\n major: isNaN(major) ? undefined : major,\n minor: isNaN(minor) ? undefined : minor,\n patch: isNaN(patch) ? undefined : patch,\n prerelease: match[4],\n };\n}\n/**\n * This function adds context (pre/post/line) lines to the provided frame\n *\n * @param lines string[] containing all lines\n * @param frame StackFrame that will be mutated\n * @param linesOfContext number of context lines we want to add pre/post\n */\nexport function addContextToFrame(lines, frame, linesOfContext) {\n if (linesOfContext === void 0) { linesOfContext = 5; }\n var lineno = frame.lineno || 0;\n var maxLines = lines.length;\n var sourceLine = Math.max(Math.min(maxLines, lineno - 1), 0);\n frame.pre_context = lines\n .slice(Math.max(0, sourceLine - linesOfContext), sourceLine)\n .map(function (line) { return snipLine(line, 0); });\n frame.context_line = snipLine(lines[Math.min(maxLines - 1, sourceLine)], frame.colno || 0);\n frame.post_context = lines\n .slice(Math.min(sourceLine + 1, maxLines), sourceLine + 1 + linesOfContext)\n .map(function (line) { return snipLine(line, 0); });\n}\n/**\n * Strip the query string and fragment off of a given URL or path (if present)\n *\n * @param urlPath Full URL or path, including possible query string and/or fragment\n * @returns URL or path without query string or fragment\n */\nexport function stripUrlQueryAndFragment(urlPath) {\n // eslint-disable-next-line no-useless-escape\n return urlPath.split(/[\\?#]/, 1)[0];\n}\n/**\n * Checks whether or not we've already captured the given exception (note: not an identical exception - the very object\n * in question), and marks it captured if not.\n *\n * This is useful because it's possible for an error to get captured by more than one mechanism. After we intercept and\n * record an error, we rethrow it (assuming we've intercepted it before it's reached the top-level global handlers), so\n * that we don't interfere with whatever effects the error might have had were the SDK not there. At that point, because\n * the error has been rethrown, it's possible for it to bubble up to some other code we've instrumented. If it's not\n * caught after that, it will bubble all the way up to the global handlers (which of course we also instrument). This\n * function helps us ensure that even if we encounter the same error more than once, we only record it the first time we\n * see it.\n *\n * Note: It will ignore primitives (always return `false` and not mark them as seen), as properties can't be set on\n * them. {@link: Object.objectify} can be used on exceptions to convert any that are primitives into their equivalent\n * object wrapper forms so that this check will always work. However, because we need to flag the exact object which\n * will get rethrown, and because that rethrowing happens outside of the event processing pipeline, the objectification\n * must be done before the exception captured.\n *\n * @param A thrown exception to check or flag as having been seen\n * @returns `true` if the exception has already been captured, `false` if not (with the side effect of marking it seen)\n */\nexport function checkOrSetAlreadyCaught(exception) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (exception && exception.__sentry_captured__) {\n return true;\n }\n try {\n // set it this way rather than by assignment so that it's not ennumerable and therefore isn't recorded by the\n // `ExtraErrorData` integration\n addNonEnumerableProperty(exception, '__sentry_captured__', true);\n }\n catch (err) {\n // `exception` is a primitive, so we can't mark it seen\n }\n return false;\n}\n//# sourceMappingURL=misc.js.map","/**\n * NOTE: In order to avoid circular dependencies, if you add a function to this module and it needs to print something,\n * you must either a) use `console.log` rather than the logger, or b) put your function elsewhere.\n */\nimport { isBrowserBundle } from './env';\n/**\n * Checks whether we're in the Node.js or Browser environment\n *\n * @returns Answer to given question\n */\nexport function isNodeEnv() {\n // explicitly check for browser bundles as those can be optimized statically\n // by terser/rollup.\n return (!isBrowserBundle() &&\n Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]');\n}\n/**\n * Requires a module which is protected against bundler minification.\n *\n * @param request The module path to resolve\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\nexport function dynamicRequire(mod, request) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return mod.require(request);\n}\n/**\n * Helper for dynamically loading module that should work with linked dependencies.\n * The problem is that we _should_ be using `require(require.resolve(moduleName, { paths: [cwd()] }))`\n * However it's _not possible_ to do that with Webpack, as it has to know all the dependencies during\n * build time. `require.resolve` is also not available in any other way, so we cannot create,\n * a fake helper like we do with `dynamicRequire`.\n *\n * We always prefer to use local package, thus the value is not returned early from each `try/catch` block.\n * That is to mimic the behavior of `require.resolve` exactly.\n *\n * @param moduleName module name to require\n * @returns possibly required module\n */\nexport function loadModule(moduleName) {\n var mod;\n try {\n mod = dynamicRequire(module, moduleName);\n }\n catch (e) {\n // no-empty\n }\n try {\n var cwd = dynamicRequire(module, 'process').cwd;\n mod = dynamicRequire(module, cwd() + \"/node_modules/\" + moduleName);\n }\n catch (e) {\n // no-empty\n }\n return mod;\n}\n//# sourceMappingURL=node.js.map","/*\n * This module exists for optimizations in the build process through rollup and terser. We define some global\n * constants, which can be overridden during build. By guarding certain pieces of code with functions that return these\n * constants, we can control whether or not they appear in the final bundle. (Any code guarded by a false condition will\n * never run, and will hence be dropped during treeshaking.) The two primary uses for this are stripping out calls to\n * `logger` and preventing node-related code from appearing in browser bundles.\n *\n * Attention:\n * This file should not be used to define constants/flags that are intended to be used for tree-shaking conducted by\n * users. These fags should live in their respective packages, as we identified user tooling (specifically webpack)\n * having issues tree-shaking these constants across package boundaries.\n * An example for this is the __SENTRY_DEBUG__ constant. It is declared in each package individually because we want\n * users to be able to shake away expressions that it guards.\n */\n/**\n * Figures out if we're building a browser bundle.\n *\n * @returns true if this is a browser bundle build.\n */\nexport function isBrowserBundle() {\n return typeof __SENTRY_BROWSER_BUNDLE__ !== 'undefined' && !!__SENTRY_BROWSER_BUNDLE__;\n}\n//# sourceMappingURL=env.js.map","import { __assign, __values } from \"tslib\";\nimport { htmlTreeAsString } from './browser';\nimport { isElement, isError, isEvent, isInstanceOf, isPlainObject, isPrimitive } from './is';\nimport { truncate } from './string';\n/**\n * Replace a method in an object with a wrapped version of itself.\n *\n * @param source An object that contains a method to be wrapped.\n * @param name The name of the method to be wrapped.\n * @param replacementFactory A higher-order function that takes the original version of the given method and returns a\n * wrapped version. Note: The function returned by `replacementFactory` needs to be a non-arrow function, in order to\n * preserve the correct value of `this`, and the original method must be called using `origMethod.call(this, )` or `origMethod.apply(this, [])` (rather than being called directly), again to preserve `this`.\n * @returns void\n */\nexport function fill(source, name, replacementFactory) {\n if (!(name in source)) {\n return;\n }\n var original = source[name];\n var wrapped = replacementFactory(original);\n // Make sure it's a function first, as we need to attach an empty prototype for `defineProperties` to work\n // otherwise it'll throw \"TypeError: Object.defineProperties called on non-object\"\n if (typeof wrapped === 'function') {\n try {\n markFunctionWrapped(wrapped, original);\n }\n catch (_Oo) {\n // This can throw if multiple fill happens on a global object like XMLHttpRequest\n // Fixes https://github.com/getsentry/sentry-javascript/issues/2043\n }\n }\n source[name] = wrapped;\n}\n/**\n * Defines a non-enumerable property on the given object.\n *\n * @param obj The object on which to set the property\n * @param name The name of the property to be set\n * @param value The value to which to set the property\n */\nexport function addNonEnumerableProperty(obj, name, value) {\n Object.defineProperty(obj, name, {\n // enumerable: false, // the default, so we can save on bundle size by not explicitly setting it\n value: value,\n writable: true,\n configurable: true,\n });\n}\n/**\n * Remembers the original function on the wrapped function and\n * patches up the prototype.\n *\n * @param wrapped the wrapper function\n * @param original the original function that gets wrapped\n */\nexport function markFunctionWrapped(wrapped, original) {\n var proto = original.prototype || {};\n wrapped.prototype = original.prototype = proto;\n addNonEnumerableProperty(wrapped, '__sentry_original__', original);\n}\n/**\n * This extracts the original function if available. See\n * `markFunctionWrapped` for more information.\n *\n * @param func the function to unwrap\n * @returns the unwrapped version of the function if available.\n */\nexport function getOriginalFunction(func) {\n return func.__sentry_original__;\n}\n/**\n * Encodes given object into url-friendly format\n *\n * @param object An object that contains serializable values\n * @returns string Encoded\n */\nexport function urlEncode(object) {\n return Object.keys(object)\n .map(function (key) { return encodeURIComponent(key) + \"=\" + encodeURIComponent(object[key]); })\n .join('&');\n}\n/**\n * Transforms any object into an object literal with all its attributes\n * attached to it.\n *\n * @param value Initial source that we have to transform in order for it to be usable by the serializer\n */\nexport function convertToPlainObject(value) {\n var newObj = value;\n if (isError(value)) {\n newObj = __assign({ message: value.message, name: value.name, stack: value.stack }, getOwnProperties(value));\n }\n else if (isEvent(value)) {\n var event_1 = value;\n newObj = __assign({ type: event_1.type, target: serializeEventTarget(event_1.target), currentTarget: serializeEventTarget(event_1.currentTarget) }, getOwnProperties(event_1));\n if (typeof CustomEvent !== 'undefined' && isInstanceOf(value, CustomEvent)) {\n newObj.detail = event_1.detail;\n }\n }\n return newObj;\n}\n/** Creates a string representation of the target of an `Event` object */\nfunction serializeEventTarget(target) {\n try {\n return isElement(target) ? htmlTreeAsString(target) : Object.prototype.toString.call(target);\n }\n catch (_oO) {\n return '';\n }\n}\n/** Filters out all but an object's own properties */\nfunction getOwnProperties(obj) {\n var extractedProps = {};\n for (var property in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, property)) {\n extractedProps[property] = obj[property];\n }\n }\n return extractedProps;\n}\n/**\n * Given any captured exception, extract its keys and create a sorted\n * and truncated list that will be used inside the event message.\n * eg. `Non-error exception captured with keys: foo, bar, baz`\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function extractExceptionKeysForMessage(exception, maxLength) {\n if (maxLength === void 0) { maxLength = 40; }\n var keys = Object.keys(convertToPlainObject(exception));\n keys.sort();\n if (!keys.length) {\n return '[object has no keys]';\n }\n if (keys[0].length >= maxLength) {\n return truncate(keys[0], maxLength);\n }\n for (var includedKeys = keys.length; includedKeys > 0; includedKeys--) {\n var serialized = keys.slice(0, includedKeys).join(', ');\n if (serialized.length > maxLength) {\n continue;\n }\n if (includedKeys === keys.length) {\n return serialized;\n }\n return truncate(serialized, maxLength);\n }\n return '';\n}\n/**\n * Given any object, return the new object with removed keys that value was `undefined`.\n * Works recursively on objects and arrays.\n */\nexport function dropUndefinedKeys(val) {\n var e_1, _a;\n if (isPlainObject(val)) {\n var rv = {};\n try {\n for (var _b = __values(Object.keys(val)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n if (typeof val[key] !== 'undefined') {\n rv[key] = dropUndefinedKeys(val[key]);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return rv;\n }\n if (Array.isArray(val)) {\n return val.map(dropUndefinedKeys);\n }\n return val;\n}\n/**\n * Ensure that something is an object.\n *\n * Turns `undefined` and `null` into `String`s and all other primitives into instances of their respective wrapper\n * classes (String, Boolean, Number, etc.). Acts as the identity function on non-primitives.\n *\n * @param wat The subject of the objectification\n * @returns A version of `wat` which can safely be used with `Object` class methods\n */\nexport function objectify(wat) {\n var objectified;\n switch (true) {\n case wat === undefined || wat === null:\n objectified = new String(wat);\n break;\n // Though symbols and bigints do have wrapper classes (`Symbol` and `BigInt`, respectively), for whatever reason\n // those classes don't have constructors which can be used with the `new` keyword. We therefore need to cast each as\n // an object in order to wrap it.\n case typeof wat === 'symbol' || typeof wat === 'bigint':\n objectified = Object(wat);\n break;\n // this will catch the remaining primitives: `String`, `Number`, and `Boolean`\n case isPrimitive(wat):\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n objectified = new wat.constructor(wat);\n break;\n // by process of elimination, at this point we know that `wat` must already be an object\n default:\n objectified = wat;\n break;\n }\n return objectified;\n}\n//# sourceMappingURL=object.js.map","import { isRegExp, isString } from './is';\n/**\n * Truncates given string to the maximum characters count\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string (0 = unlimited)\n * @returns string Encoded\n */\nexport function truncate(str, max) {\n if (max === void 0) { max = 0; }\n if (typeof str !== 'string' || max === 0) {\n return str;\n }\n return str.length <= max ? str : str.substr(0, max) + \"...\";\n}\n/**\n * This is basically just `trim_line` from\n * https://github.com/getsentry/sentry/blob/master/src/sentry/lang/javascript/processor.py#L67\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string\n * @returns string Encoded\n */\nexport function snipLine(line, colno) {\n var newLine = line;\n var lineLength = newLine.length;\n if (lineLength <= 150) {\n return newLine;\n }\n if (colno > lineLength) {\n // eslint-disable-next-line no-param-reassign\n colno = lineLength;\n }\n var start = Math.max(colno - 60, 0);\n if (start < 5) {\n start = 0;\n }\n var end = Math.min(start + 140, lineLength);\n if (end > lineLength - 5) {\n end = lineLength;\n }\n if (end === lineLength) {\n start = Math.max(end - 140, 0);\n }\n newLine = newLine.slice(start, end);\n if (start > 0) {\n newLine = \"'{snip} \" + newLine;\n }\n if (end < lineLength) {\n newLine += ' {snip}';\n }\n return newLine;\n}\n/**\n * Join values in array\n * @param input array of values to be joined together\n * @param delimiter string to be placed in-between values\n * @returns Joined values\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function safeJoin(input, delimiter) {\n if (!Array.isArray(input)) {\n return '';\n }\n var output = [];\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (var i = 0; i < input.length; i++) {\n var value = input[i];\n try {\n output.push(String(value));\n }\n catch (e) {\n output.push('[value cannot be serialized]');\n }\n }\n return output.join(delimiter);\n}\n/**\n * Checks if the value matches a regex or includes the string\n * @param value The string value to be checked against\n * @param pattern Either a regex or a string that must be contained in value\n */\nexport function isMatchingPattern(value, pattern) {\n if (!isString(value)) {\n return false;\n }\n if (isRegExp(pattern)) {\n return pattern.test(value);\n }\n if (typeof pattern === 'string') {\n return value.indexOf(pattern) !== -1;\n }\n return false;\n}\n/**\n * Given a string, escape characters which have meaning in the regex grammar, such that the result is safe to feed to\n * `new RegExp()`.\n *\n * Based on https://github.com/sindresorhus/escape-string-regexp. Vendored to a) reduce the size by skipping the runtime\n * type-checking, and b) ensure it gets down-compiled for old versions of Node (the published package only supports Node\n * 12+).\n *\n * @param regexString The string to escape\n * @returns An version of the string with all special regex characters escaped\n */\nexport function escapeStringForRegex(regexString) {\n // escape the hyphen separately so we can also replace it with a unicode literal hyphen, to avoid the problems\n // discussed in https://github.com/sindresorhus/escape-string-regexp/issues/20.\n return regexString.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&').replace(/-/g, '\\\\x2d');\n}\n//# sourceMappingURL=string.js.map","/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable @typescript-eslint/typedef */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { isThenable } from './is';\n/**\n * Creates a resolved sync promise.\n *\n * @param value the value to resolve the promise with\n * @returns the resolved sync promise\n */\nexport function resolvedSyncPromise(value) {\n return new SyncPromise(function (resolve) {\n resolve(value);\n });\n}\n/**\n * Creates a rejected sync promise.\n *\n * @param value the value to reject the promise with\n * @returns the rejected sync promise\n */\nexport function rejectedSyncPromise(reason) {\n return new SyncPromise(function (_, reject) {\n reject(reason);\n });\n}\n/**\n * Thenable class that behaves like a Promise and follows it's interface\n * but is not async internally\n */\nvar SyncPromise = /** @class */ (function () {\n function SyncPromise(executor) {\n var _this = this;\n this._state = 0 /* PENDING */;\n this._handlers = [];\n /** JSDoc */\n this._resolve = function (value) {\n _this._setResult(1 /* RESOLVED */, value);\n };\n /** JSDoc */\n this._reject = function (reason) {\n _this._setResult(2 /* REJECTED */, reason);\n };\n /** JSDoc */\n this._setResult = function (state, value) {\n if (_this._state !== 0 /* PENDING */) {\n return;\n }\n if (isThenable(value)) {\n void value.then(_this._resolve, _this._reject);\n return;\n }\n _this._state = state;\n _this._value = value;\n _this._executeHandlers();\n };\n /** JSDoc */\n this._executeHandlers = function () {\n if (_this._state === 0 /* PENDING */) {\n return;\n }\n var cachedHandlers = _this._handlers.slice();\n _this._handlers = [];\n cachedHandlers.forEach(function (handler) {\n if (handler[0]) {\n return;\n }\n if (_this._state === 1 /* RESOLVED */) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n handler[1](_this._value);\n }\n if (_this._state === 2 /* REJECTED */) {\n handler[2](_this._value);\n }\n handler[0] = true;\n });\n };\n try {\n executor(this._resolve, this._reject);\n }\n catch (e) {\n this._reject(e);\n }\n }\n /** JSDoc */\n SyncPromise.prototype.then = function (onfulfilled, onrejected) {\n var _this = this;\n return new SyncPromise(function (resolve, reject) {\n _this._handlers.push([\n false,\n function (result) {\n if (!onfulfilled) {\n // TODO: ¯\\_(ツ)_/¯\n // TODO: FIXME\n resolve(result);\n }\n else {\n try {\n resolve(onfulfilled(result));\n }\n catch (e) {\n reject(e);\n }\n }\n },\n function (reason) {\n if (!onrejected) {\n reject(reason);\n }\n else {\n try {\n resolve(onrejected(reason));\n }\n catch (e) {\n reject(e);\n }\n }\n },\n ]);\n _this._executeHandlers();\n });\n };\n /** JSDoc */\n SyncPromise.prototype.catch = function (onrejected) {\n return this.then(function (val) { return val; }, onrejected);\n };\n /** JSDoc */\n SyncPromise.prototype.finally = function (onfinally) {\n var _this = this;\n return new SyncPromise(function (resolve, reject) {\n var val;\n var isRejected;\n return _this.then(function (value) {\n isRejected = false;\n val = value;\n if (onfinally) {\n onfinally();\n }\n }, function (reason) {\n isRejected = true;\n val = reason;\n if (onfinally) {\n onfinally();\n }\n }).then(function () {\n if (isRejected) {\n reject(val);\n return;\n }\n resolve(val);\n });\n });\n };\n return SyncPromise;\n}());\nexport { SyncPromise };\n//# sourceMappingURL=syncpromise.js.map","import { getGlobalObject } from './global';\nimport { dynamicRequire, isNodeEnv } from './node';\n/**\n * A TimestampSource implementation for environments that do not support the Performance Web API natively.\n *\n * Note that this TimestampSource does not use a monotonic clock. A call to `nowSeconds` may return a timestamp earlier\n * than a previously returned value. We do not try to emulate a monotonic behavior in order to facilitate debugging. It\n * is more obvious to explain \"why does my span have negative duration\" than \"why my spans have zero duration\".\n */\nvar dateTimestampSource = {\n nowSeconds: function () { return Date.now() / 1000; },\n};\n/**\n * Returns a wrapper around the native Performance API browser implementation, or undefined for browsers that do not\n * support the API.\n *\n * Wrapping the native API works around differences in behavior from different browsers.\n */\nfunction getBrowserPerformance() {\n var performance = getGlobalObject().performance;\n if (!performance || !performance.now) {\n return undefined;\n }\n // Replace performance.timeOrigin with our own timeOrigin based on Date.now().\n //\n // This is a partial workaround for browsers reporting performance.timeOrigin such that performance.timeOrigin +\n // performance.now() gives a date arbitrarily in the past.\n //\n // Additionally, computing timeOrigin in this way fills the gap for browsers where performance.timeOrigin is\n // undefined.\n //\n // The assumption that performance.timeOrigin + performance.now() ~= Date.now() is flawed, but we depend on it to\n // interact with data coming out of performance entries.\n //\n // Note that despite recommendations against it in the spec, browsers implement the Performance API with a clock that\n // might stop when the computer is asleep (and perhaps under other circumstances). Such behavior causes\n // performance.timeOrigin + performance.now() to have an arbitrary skew over Date.now(). In laptop computers, we have\n // observed skews that can be as long as days, weeks or months.\n //\n // See https://github.com/getsentry/sentry-javascript/issues/2590.\n //\n // BUG: despite our best intentions, this workaround has its limitations. It mostly addresses timings of pageload\n // transactions, but ignores the skew built up over time that can aversely affect timestamps of navigation\n // transactions of long-lived web pages.\n var timeOrigin = Date.now() - performance.now();\n return {\n now: function () { return performance.now(); },\n timeOrigin: timeOrigin,\n };\n}\n/**\n * Returns the native Performance API implementation from Node.js. Returns undefined in old Node.js versions that don't\n * implement the API.\n */\nfunction getNodePerformance() {\n try {\n var perfHooks = dynamicRequire(module, 'perf_hooks');\n return perfHooks.performance;\n }\n catch (_) {\n return undefined;\n }\n}\n/**\n * The Performance API implementation for the current platform, if available.\n */\nvar platformPerformance = isNodeEnv() ? getNodePerformance() : getBrowserPerformance();\nvar timestampSource = platformPerformance === undefined\n ? dateTimestampSource\n : {\n nowSeconds: function () { return (platformPerformance.timeOrigin + platformPerformance.now()) / 1000; },\n };\n/**\n * Returns a timestamp in seconds since the UNIX epoch using the Date API.\n */\nexport var dateTimestampInSeconds = dateTimestampSource.nowSeconds.bind(dateTimestampSource);\n/**\n * Returns a timestamp in seconds since the UNIX epoch using either the Performance or Date APIs, depending on the\n * availability of the Performance API.\n *\n * See `usingPerformanceAPI` to test whether the Performance API is used.\n *\n * BUG: Note that because of how browsers implement the Performance API, the clock might stop when the computer is\n * asleep. This creates a skew between `dateTimestampInSeconds` and `timestampInSeconds`. The\n * skew can grow to arbitrary amounts like days, weeks or months.\n * See https://github.com/getsentry/sentry-javascript/issues/2590.\n */\nexport var timestampInSeconds = timestampSource.nowSeconds.bind(timestampSource);\n// Re-exported with an old name for backwards-compatibility.\nexport var timestampWithMs = timestampInSeconds;\n/**\n * A boolean that is true when timestampInSeconds uses the Performance API to produce monotonic timestamps.\n */\nexport var usingPerformanceAPI = platformPerformance !== undefined;\n/**\n * Internal helper to store what is the source of browserPerformanceTimeOrigin below. For debugging only.\n */\nexport var _browserPerformanceTimeOriginMode;\n/**\n * The number of milliseconds since the UNIX epoch. This value is only usable in a browser, and only when the\n * performance API is available.\n */\nexport var browserPerformanceTimeOrigin = (function () {\n // Unfortunately browsers may report an inaccurate time origin data, through either performance.timeOrigin or\n // performance.timing.navigationStart, which results in poor results in performance data. We only treat time origin\n // data as reliable if they are within a reasonable threshold of the current time.\n var performance = getGlobalObject().performance;\n if (!performance || !performance.now) {\n _browserPerformanceTimeOriginMode = 'none';\n return undefined;\n }\n var threshold = 3600 * 1000;\n var performanceNow = performance.now();\n var dateNow = Date.now();\n // if timeOrigin isn't available set delta to threshold so it isn't used\n var timeOriginDelta = performance.timeOrigin\n ? Math.abs(performance.timeOrigin + performanceNow - dateNow)\n : threshold;\n var timeOriginIsReliable = timeOriginDelta < threshold;\n // While performance.timing.navigationStart is deprecated in favor of performance.timeOrigin, performance.timeOrigin\n // is not as widely supported. Namely, performance.timeOrigin is undefined in Safari as of writing.\n // Also as of writing, performance.timing is not available in Web Workers in mainstream browsers, so it is not always\n // a valid fallback. In the absence of an initial time provided by the browser, fallback to the current time from the\n // Date API.\n // eslint-disable-next-line deprecation/deprecation\n var navigationStart = performance.timing && performance.timing.navigationStart;\n var hasNavigationStart = typeof navigationStart === 'number';\n // if navigationStart isn't available set delta to threshold so it isn't used\n var navigationStartDelta = hasNavigationStart ? Math.abs(navigationStart + performanceNow - dateNow) : threshold;\n var navigationStartIsReliable = navigationStartDelta < threshold;\n if (timeOriginIsReliable || navigationStartIsReliable) {\n // Use the more reliable time origin\n if (timeOriginDelta <= navigationStartDelta) {\n _browserPerformanceTimeOriginMode = 'timeOrigin';\n return performance.timeOrigin;\n }\n else {\n _browserPerformanceTimeOriginMode = 'navigationStart';\n return navigationStart;\n }\n }\n // Either both timeOrigin and navigationStart are skewed or neither is available, fallback to Date.\n _browserPerformanceTimeOriginMode = 'dateNow';\n return dateNow;\n})();\n//# sourceMappingURL=time.js.map","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","// Packages\nvar retrier = require('retry');\n\nfunction retry(fn, opts) {\n function run(resolve, reject) {\n var options = opts || {};\n var op;\n\n // Default `randomize` to true\n if (!('randomize' in options)) {\n options.randomize = true;\n }\n\n op = retrier.operation(options);\n\n // We allow the user to abort retrying\n // this makes sense in the cases where\n // knowledge is obtained that retrying\n // would be futile (e.g.: auth errors)\n\n function bail(err) {\n reject(err || new Error('Aborted'));\n }\n\n function onError(err, num) {\n if (err.bail) {\n bail(err);\n return;\n }\n\n if (!op.retry(err)) {\n reject(op.mainError());\n } else if (options.onRetry) {\n options.onRetry(err, num);\n }\n }\n\n function runAttempt(num) {\n var val;\n\n try {\n val = fn(bail, num);\n } catch (err) {\n onError(err, num);\n return;\n }\n\n Promise.resolve(val)\n .then(resolve)\n .catch(function catchIt(err) {\n onError(err, num);\n });\n }\n\n op.attempt(runAttempt);\n }\n\n return new Promise(run);\n}\n\nmodule.exports = retry;\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*\r\n Copyright (c) 2012 Nevins Bartolomeo \r\n Copyright (c) 2012 Shane Girish \r\n Copyright (c) 2014 Daniel Wirtz \r\n\r\n Redistribution and use in source and binary forms, with or without\r\n modification, are permitted provided that the following conditions\r\n are met:\r\n 1. Redistributions of source code must retain the above copyright\r\n notice, this list of conditions and the following disclaimer.\r\n 2. Redistributions in binary form must reproduce the above copyright\r\n notice, this list of conditions and the following disclaimer in the\r\n documentation and/or other materials provided with the distribution.\r\n 3. The name of the author may not be used to endorse or promote products\r\n derived from this software without specific prior written permission.\r\n\r\n THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\r\n IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\r\n OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\r\n IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\r\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\r\n NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\r\n DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\r\n THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\r\n (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\r\n THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r\n */\r\n\r\n/**\r\n * @license bcrypt.js (c) 2013 Daniel Wirtz \r\n * Released under the Apache License, Version 2.0\r\n * see: https://github.com/dcodeIO/bcrypt.js for details\r\n */\r\n(function(global, factory) {\r\n\r\n /* AMD */ if (typeof define === 'function' && define[\"amd\"])\r\n define([], factory);\r\n /* CommonJS */ else if (typeof require === 'function' && typeof module === \"object\" && module && module[\"exports\"])\r\n module[\"exports\"] = factory();\r\n /* Global */ else\r\n (global[\"dcodeIO\"] = global[\"dcodeIO\"] || {})[\"bcrypt\"] = factory();\r\n\r\n}(this, function() {\r\n \"use strict\";\r\n\r\n /**\r\n * bcrypt namespace.\r\n * @type {Object.}\r\n */\r\n var bcrypt = {};\r\n\r\n /**\r\n * The random implementation to use as a fallback.\r\n * @type {?function(number):!Array.}\r\n * @inner\r\n */\r\n var randomFallback = null;\r\n\r\n /**\r\n * Generates cryptographically secure random bytes.\r\n * @function\r\n * @param {number} len Bytes length\r\n * @returns {!Array.} Random bytes\r\n * @throws {Error} If no random implementation is available\r\n * @inner\r\n */\r\n function random(len) {\r\n /* node */ if (typeof module !== 'undefined' && module && module['exports'])\r\n try {\r\n return require(\"crypto\")['randomBytes'](len);\r\n } catch (e) {}\r\n /* WCA */ try {\r\n var a; (self['crypto']||self['msCrypto'])['getRandomValues'](a = new Uint32Array(len));\r\n return Array.prototype.slice.call(a);\r\n } catch (e) {}\r\n /* fallback */ if (!randomFallback)\r\n throw Error(\"Neither WebCryptoAPI nor a crypto module is available. Use bcrypt.setRandomFallback to set an alternative\");\r\n return randomFallback(len);\r\n }\r\n\r\n // Test if any secure randomness source is available\r\n var randomAvailable = false;\r\n try {\r\n random(1);\r\n randomAvailable = true;\r\n } catch (e) {}\r\n\r\n // Default fallback, if any\r\n randomFallback = null;\r\n /**\r\n * Sets the pseudo random number generator to use as a fallback if neither node's `crypto` module nor the Web Crypto\r\n * API is available. Please note: It is highly important that the PRNG used is cryptographically secure and that it\r\n * is seeded properly!\r\n * @param {?function(number):!Array.} random Function taking the number of bytes to generate as its\r\n * sole argument, returning the corresponding array of cryptographically secure random byte values.\r\n * @see http://nodejs.org/api/crypto.html\r\n * @see http://www.w3.org/TR/WebCryptoAPI/\r\n */\r\n bcrypt.setRandomFallback = function(random) {\r\n randomFallback = random;\r\n };\r\n\r\n /**\r\n * Synchronously generates a salt.\r\n * @param {number=} rounds Number of rounds to use, defaults to 10 if omitted\r\n * @param {number=} seed_length Not supported.\r\n * @returns {string} Resulting salt\r\n * @throws {Error} If a random fallback is required but not set\r\n * @expose\r\n */\r\n bcrypt.genSaltSync = function(rounds, seed_length) {\r\n rounds = rounds || GENSALT_DEFAULT_LOG2_ROUNDS;\r\n if (typeof rounds !== 'number')\r\n throw Error(\"Illegal arguments: \"+(typeof rounds)+\", \"+(typeof seed_length));\r\n if (rounds < 4)\r\n rounds = 4;\r\n else if (rounds > 31)\r\n rounds = 31;\r\n var salt = [];\r\n salt.push(\"$2a$\");\r\n if (rounds < 10)\r\n salt.push(\"0\");\r\n salt.push(rounds.toString());\r\n salt.push('$');\r\n salt.push(base64_encode(random(BCRYPT_SALT_LEN), BCRYPT_SALT_LEN)); // May throw\r\n return salt.join('');\r\n };\r\n\r\n /**\r\n * Asynchronously generates a salt.\r\n * @param {(number|function(Error, string=))=} rounds Number of rounds to use, defaults to 10 if omitted\r\n * @param {(number|function(Error, string=))=} seed_length Not supported.\r\n * @param {function(Error, string=)=} callback Callback receiving the error, if any, and the resulting salt\r\n * @returns {!Promise} If `callback` has been omitted\r\n * @throws {Error} If `callback` is present but not a function\r\n * @expose\r\n */\r\n bcrypt.genSalt = function(rounds, seed_length, callback) {\r\n if (typeof seed_length === 'function')\r\n callback = seed_length,\r\n seed_length = undefined; // Not supported.\r\n if (typeof rounds === 'function')\r\n callback = rounds,\r\n rounds = undefined;\r\n if (typeof rounds === 'undefined')\r\n rounds = GENSALT_DEFAULT_LOG2_ROUNDS;\r\n else if (typeof rounds !== 'number')\r\n throw Error(\"illegal arguments: \"+(typeof rounds));\r\n\r\n function _async(callback) {\r\n nextTick(function() { // Pretty thin, but salting is fast enough\r\n try {\r\n callback(null, bcrypt.genSaltSync(rounds));\r\n } catch (err) {\r\n callback(err);\r\n }\r\n });\r\n }\r\n\r\n if (callback) {\r\n if (typeof callback !== 'function')\r\n throw Error(\"Illegal callback: \"+typeof(callback));\r\n _async(callback);\r\n } else\r\n return new Promise(function(resolve, reject) {\r\n _async(function(err, res) {\r\n if (err) {\r\n reject(err);\r\n return;\r\n }\r\n resolve(res);\r\n });\r\n });\r\n };\r\n\r\n /**\r\n * Synchronously generates a hash for the given string.\r\n * @param {string} s String to hash\r\n * @param {(number|string)=} salt Salt length to generate or salt to use, default to 10\r\n * @returns {string} Resulting hash\r\n * @expose\r\n */\r\n bcrypt.hashSync = function(s, salt) {\r\n if (typeof salt === 'undefined')\r\n salt = GENSALT_DEFAULT_LOG2_ROUNDS;\r\n if (typeof salt === 'number')\r\n salt = bcrypt.genSaltSync(salt);\r\n if (typeof s !== 'string' || typeof salt !== 'string')\r\n throw Error(\"Illegal arguments: \"+(typeof s)+', '+(typeof salt));\r\n return _hash(s, salt);\r\n };\r\n\r\n /**\r\n * Asynchronously generates a hash for the given string.\r\n * @param {string} s String to hash\r\n * @param {number|string} salt Salt length to generate or salt to use\r\n * @param {function(Error, string=)=} callback Callback receiving the error, if any, and the resulting hash\r\n * @param {function(number)=} progressCallback Callback successively called with the percentage of rounds completed\r\n * (0.0 - 1.0), maximally once per `MAX_EXECUTION_TIME = 100` ms.\r\n * @returns {!Promise} If `callback` has been omitted\r\n * @throws {Error} If `callback` is present but not a function\r\n * @expose\r\n */\r\n bcrypt.hash = function(s, salt, callback, progressCallback) {\r\n\r\n function _async(callback) {\r\n if (typeof s === 'string' && typeof salt === 'number')\r\n bcrypt.genSalt(salt, function(err, salt) {\r\n _hash(s, salt, callback, progressCallback);\r\n });\r\n else if (typeof s === 'string' && typeof salt === 'string')\r\n _hash(s, salt, callback, progressCallback);\r\n else\r\n nextTick(callback.bind(this, Error(\"Illegal arguments: \"+(typeof s)+', '+(typeof salt))));\r\n }\r\n\r\n if (callback) {\r\n if (typeof callback !== 'function')\r\n throw Error(\"Illegal callback: \"+typeof(callback));\r\n _async(callback);\r\n } else\r\n return new Promise(function(resolve, reject) {\r\n _async(function(err, res) {\r\n if (err) {\r\n reject(err);\r\n return;\r\n }\r\n resolve(res);\r\n });\r\n });\r\n };\r\n\r\n /**\r\n * Compares two strings of the same length in constant time.\r\n * @param {string} known Must be of the correct length\r\n * @param {string} unknown Must be the same length as `known`\r\n * @returns {boolean}\r\n * @inner\r\n */\r\n function safeStringCompare(known, unknown) {\r\n var right = 0,\r\n wrong = 0;\r\n for (var i=0, k=known.length; i} UTF8 bytes\r\n * @inner\r\n */\r\n function stringToBytes(str) {\r\n var out = [],\r\n i = 0;\r\n utfx.encodeUTF16toUTF8(function() {\r\n if (i >= str.length) return null;\r\n return str.charCodeAt(i++);\r\n }, function(b) {\r\n out.push(b);\r\n });\r\n return out;\r\n }\r\n\r\n // A base64 implementation for the bcrypt algorithm. This is partly non-standard.\r\n\r\n /**\r\n * bcrypt's own non-standard base64 dictionary.\r\n * @type {!Array.}\r\n * @const\r\n * @inner\r\n **/\r\n var BASE64_CODE = \"./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\".split('');\r\n\r\n /**\r\n * @type {!Array.}\r\n * @const\r\n * @inner\r\n **/\r\n var BASE64_INDEX = [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\r\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\r\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0,\r\n 1, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, -1, -1, -1, -1,\r\n -1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,\r\n 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, -1, -1, -1, -1, 28, 29, 30,\r\n 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\r\n 48, 49, 50, 51, 52, 53, -1, -1, -1, -1, -1];\r\n\r\n /**\r\n * @type {!function(...number):string}\r\n * @inner\r\n */\r\n var stringFromCharCode = String.fromCharCode;\r\n\r\n /**\r\n * Encodes a byte array to base64 with up to len bytes of input.\r\n * @param {!Array.} b Byte array\r\n * @param {number} len Maximum input length\r\n * @returns {string}\r\n * @inner\r\n */\r\n function base64_encode(b, len) {\r\n var off = 0,\r\n rs = [],\r\n c1, c2;\r\n if (len <= 0 || len > b.length)\r\n throw Error(\"Illegal len: \"+len);\r\n while (off < len) {\r\n c1 = b[off++] & 0xff;\r\n rs.push(BASE64_CODE[(c1 >> 2) & 0x3f]);\r\n c1 = (c1 & 0x03) << 4;\r\n if (off >= len) {\r\n rs.push(BASE64_CODE[c1 & 0x3f]);\r\n break;\r\n }\r\n c2 = b[off++] & 0xff;\r\n c1 |= (c2 >> 4) & 0x0f;\r\n rs.push(BASE64_CODE[c1 & 0x3f]);\r\n c1 = (c2 & 0x0f) << 2;\r\n if (off >= len) {\r\n rs.push(BASE64_CODE[c1 & 0x3f]);\r\n break;\r\n }\r\n c2 = b[off++] & 0xff;\r\n c1 |= (c2 >> 6) & 0x03;\r\n rs.push(BASE64_CODE[c1 & 0x3f]);\r\n rs.push(BASE64_CODE[c2 & 0x3f]);\r\n }\r\n return rs.join('');\r\n }\r\n\r\n /**\r\n * Decodes a base64 encoded string to up to len bytes of output.\r\n * @param {string} s String to decode\r\n * @param {number} len Maximum output length\r\n * @returns {!Array.}\r\n * @inner\r\n */\r\n function base64_decode(s, len) {\r\n var off = 0,\r\n slen = s.length,\r\n olen = 0,\r\n rs = [],\r\n c1, c2, c3, c4, o, code;\r\n if (len <= 0)\r\n throw Error(\"Illegal len: \"+len);\r\n while (off < slen - 1 && olen < len) {\r\n code = s.charCodeAt(off++);\r\n c1 = code < BASE64_INDEX.length ? BASE64_INDEX[code] : -1;\r\n code = s.charCodeAt(off++);\r\n c2 = code < BASE64_INDEX.length ? BASE64_INDEX[code] : -1;\r\n if (c1 == -1 || c2 == -1)\r\n break;\r\n o = (c1 << 2) >>> 0;\r\n o |= (c2 & 0x30) >> 4;\r\n rs.push(stringFromCharCode(o));\r\n if (++olen >= len || off >= slen)\r\n break;\r\n code = s.charCodeAt(off++);\r\n c3 = code < BASE64_INDEX.length ? BASE64_INDEX[code] : -1;\r\n if (c3 == -1)\r\n break;\r\n o = ((c2 & 0x0f) << 4) >>> 0;\r\n o |= (c3 & 0x3c) >> 2;\r\n rs.push(stringFromCharCode(o));\r\n if (++olen >= len || off >= slen)\r\n break;\r\n code = s.charCodeAt(off++);\r\n c4 = code < BASE64_INDEX.length ? BASE64_INDEX[code] : -1;\r\n o = ((c3 & 0x03) << 6) >>> 0;\r\n o |= c4;\r\n rs.push(stringFromCharCode(o));\r\n ++olen;\r\n }\r\n var res = [];\r\n for (off = 0; off\r\n * Released under the Apache License, Version 2.0\r\n * see: https://github.com/dcodeIO/utfx for details\r\n */\r\n var utfx = function() {\r\n \"use strict\";\r\n\r\n /**\r\n * utfx namespace.\r\n * @inner\r\n * @type {!Object.}\r\n */\r\n var utfx = {};\r\n\r\n /**\r\n * Maximum valid code point.\r\n * @type {number}\r\n * @const\r\n */\r\n utfx.MAX_CODEPOINT = 0x10FFFF;\r\n\r\n /**\r\n * Encodes UTF8 code points to UTF8 bytes.\r\n * @param {(!function():number|null) | number} src Code points source, either as a function returning the next code point\r\n * respectively `null` if there are no more code points left or a single numeric code point.\r\n * @param {!function(number)} dst Bytes destination as a function successively called with the next byte\r\n */\r\n utfx.encodeUTF8 = function(src, dst) {\r\n var cp = null;\r\n if (typeof src === 'number')\r\n cp = src,\r\n src = function() { return null; };\r\n while (cp !== null || (cp = src()) !== null) {\r\n if (cp < 0x80)\r\n dst(cp&0x7F);\r\n else if (cp < 0x800)\r\n dst(((cp>>6)&0x1F)|0xC0),\r\n dst((cp&0x3F)|0x80);\r\n else if (cp < 0x10000)\r\n dst(((cp>>12)&0x0F)|0xE0),\r\n dst(((cp>>6)&0x3F)|0x80),\r\n dst((cp&0x3F)|0x80);\r\n else\r\n dst(((cp>>18)&0x07)|0xF0),\r\n dst(((cp>>12)&0x3F)|0x80),\r\n dst(((cp>>6)&0x3F)|0x80),\r\n dst((cp&0x3F)|0x80);\r\n cp = null;\r\n }\r\n };\r\n\r\n /**\r\n * Decodes UTF8 bytes to UTF8 code points.\r\n * @param {!function():number|null} src Bytes source as a function returning the next byte respectively `null` if there\r\n * are no more bytes left.\r\n * @param {!function(number)} dst Code points destination as a function successively called with each decoded code point.\r\n * @throws {RangeError} If a starting byte is invalid in UTF8\r\n * @throws {Error} If the last sequence is truncated. Has an array property `bytes` holding the\r\n * remaining bytes.\r\n */\r\n utfx.decodeUTF8 = function(src, dst) {\r\n var a, b, c, d, fail = function(b) {\r\n b = b.slice(0, b.indexOf(null));\r\n var err = Error(b.toString());\r\n err.name = \"TruncatedError\";\r\n err['bytes'] = b;\r\n throw err;\r\n };\r\n while ((a = src()) !== null) {\r\n if ((a&0x80) === 0)\r\n dst(a);\r\n else if ((a&0xE0) === 0xC0)\r\n ((b = src()) === null) && fail([a, b]),\r\n dst(((a&0x1F)<<6) | (b&0x3F));\r\n else if ((a&0xF0) === 0xE0)\r\n ((b=src()) === null || (c=src()) === null) && fail([a, b, c]),\r\n dst(((a&0x0F)<<12) | ((b&0x3F)<<6) | (c&0x3F));\r\n else if ((a&0xF8) === 0xF0)\r\n ((b=src()) === null || (c=src()) === null || (d=src()) === null) && fail([a, b, c ,d]),\r\n dst(((a&0x07)<<18) | ((b&0x3F)<<12) | ((c&0x3F)<<6) | (d&0x3F));\r\n else throw RangeError(\"Illegal starting byte: \"+a);\r\n }\r\n };\r\n\r\n /**\r\n * Converts UTF16 characters to UTF8 code points.\r\n * @param {!function():number|null} src Characters source as a function returning the next char code respectively\r\n * `null` if there are no more characters left.\r\n * @param {!function(number)} dst Code points destination as a function successively called with each converted code\r\n * point.\r\n */\r\n utfx.UTF16toUTF8 = function(src, dst) {\r\n var c1, c2 = null;\r\n while (true) {\r\n if ((c1 = c2 !== null ? c2 : src()) === null)\r\n break;\r\n if (c1 >= 0xD800 && c1 <= 0xDFFF) {\r\n if ((c2 = src()) !== null) {\r\n if (c2 >= 0xDC00 && c2 <= 0xDFFF) {\r\n dst((c1-0xD800)*0x400+c2-0xDC00+0x10000);\r\n c2 = null; continue;\r\n }\r\n }\r\n }\r\n dst(c1);\r\n }\r\n if (c2 !== null) dst(c2);\r\n };\r\n\r\n /**\r\n * Converts UTF8 code points to UTF16 characters.\r\n * @param {(!function():number|null) | number} src Code points source, either as a function returning the next code point\r\n * respectively `null` if there are no more code points left or a single numeric code point.\r\n * @param {!function(number)} dst Characters destination as a function successively called with each converted char code.\r\n * @throws {RangeError} If a code point is out of range\r\n */\r\n utfx.UTF8toUTF16 = function(src, dst) {\r\n var cp = null;\r\n if (typeof src === 'number')\r\n cp = src, src = function() { return null; };\r\n while (cp !== null || (cp = src()) !== null) {\r\n if (cp <= 0xFFFF)\r\n dst(cp);\r\n else\r\n cp -= 0x10000,\r\n dst((cp>>10)+0xD800),\r\n dst((cp%0x400)+0xDC00);\r\n cp = null;\r\n }\r\n };\r\n\r\n /**\r\n * Converts and encodes UTF16 characters to UTF8 bytes.\r\n * @param {!function():number|null} src Characters source as a function returning the next char code respectively `null`\r\n * if there are no more characters left.\r\n * @param {!function(number)} dst Bytes destination as a function successively called with the next byte.\r\n */\r\n utfx.encodeUTF16toUTF8 = function(src, dst) {\r\n utfx.UTF16toUTF8(src, function(cp) {\r\n utfx.encodeUTF8(cp, dst);\r\n });\r\n };\r\n\r\n /**\r\n * Decodes and converts UTF8 bytes to UTF16 characters.\r\n * @param {!function():number|null} src Bytes source as a function returning the next byte respectively `null` if there\r\n * are no more bytes left.\r\n * @param {!function(number)} dst Characters destination as a function successively called with each converted char code.\r\n * @throws {RangeError} If a starting byte is invalid in UTF8\r\n * @throws {Error} If the last sequence is truncated. Has an array property `bytes` holding the remaining bytes.\r\n */\r\n utfx.decodeUTF8toUTF16 = function(src, dst) {\r\n utfx.decodeUTF8(src, function(cp) {\r\n utfx.UTF8toUTF16(cp, dst);\r\n });\r\n };\r\n\r\n /**\r\n * Calculates the byte length of an UTF8 code point.\r\n * @param {number} cp UTF8 code point\r\n * @returns {number} Byte length\r\n */\r\n utfx.calculateCodePoint = function(cp) {\r\n return (cp < 0x80) ? 1 : (cp < 0x800) ? 2 : (cp < 0x10000) ? 3 : 4;\r\n };\r\n\r\n /**\r\n * Calculates the number of UTF8 bytes required to store UTF8 code points.\r\n * @param {(!function():number|null)} src Code points source as a function returning the next code point respectively\r\n * `null` if there are no more code points left.\r\n * @returns {number} The number of UTF8 bytes required\r\n */\r\n utfx.calculateUTF8 = function(src) {\r\n var cp, l=0;\r\n while ((cp = src()) !== null)\r\n l += utfx.calculateCodePoint(cp);\r\n return l;\r\n };\r\n\r\n /**\r\n * Calculates the number of UTF8 code points respectively UTF8 bytes required to store UTF16 char codes.\r\n * @param {(!function():number|null)} src Characters source as a function returning the next char code respectively\r\n * `null` if there are no more characters left.\r\n * @returns {!Array.} The number of UTF8 code points at index 0 and the number of UTF8 bytes required at index 1.\r\n */\r\n utfx.calculateUTF16asUTF8 = function(src) {\r\n var n=0, l=0;\r\n utfx.UTF16toUTF8(src, function(cp) {\r\n ++n; l += utfx.calculateCodePoint(cp);\r\n });\r\n return [n,l];\r\n };\r\n\r\n return utfx;\r\n }();\r\n\r\n Date.now = Date.now || function() { return +new Date; };\r\n\r\n /**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\n var BCRYPT_SALT_LEN = 16;\r\n\r\n /**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\n var GENSALT_DEFAULT_LOG2_ROUNDS = 10;\r\n\r\n /**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\n var BLOWFISH_NUM_ROUNDS = 16;\r\n\r\n /**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\n var MAX_EXECUTION_TIME = 100;\r\n\r\n /**\r\n * @type {Array.}\r\n * @const\r\n * @inner\r\n */\r\n var P_ORIG = [\r\n 0x243f6a88, 0x85a308d3, 0x13198a2e, 0x03707344, 0xa4093822,\r\n 0x299f31d0, 0x082efa98, 0xec4e6c89, 0x452821e6, 0x38d01377,\r\n 0xbe5466cf, 0x34e90c6c, 0xc0ac29b7, 0xc97c50dd, 0x3f84d5b5,\r\n 0xb5470917, 0x9216d5d9, 0x8979fb1b\r\n ];\r\n\r\n /**\r\n * @type {Array.}\r\n * @const\r\n * @inner\r\n */\r\n var S_ORIG = [\r\n 0xd1310ba6, 0x98dfb5ac, 0x2ffd72db, 0xd01adfb7, 0xb8e1afed,\r\n 0x6a267e96, 0xba7c9045, 0xf12c7f99, 0x24a19947, 0xb3916cf7,\r\n 0x0801f2e2, 0x858efc16, 0x636920d8, 0x71574e69, 0xa458fea3,\r\n 0xf4933d7e, 0x0d95748f, 0x728eb658, 0x718bcd58, 0x82154aee,\r\n 0x7b54a41d, 0xc25a59b5, 0x9c30d539, 0x2af26013, 0xc5d1b023,\r\n 0x286085f0, 0xca417918, 0xb8db38ef, 0x8e79dcb0, 0x603a180e,\r\n 0x6c9e0e8b, 0xb01e8a3e, 0xd71577c1, 0xbd314b27, 0x78af2fda,\r\n 0x55605c60, 0xe65525f3, 0xaa55ab94, 0x57489862, 0x63e81440,\r\n 0x55ca396a, 0x2aab10b6, 0xb4cc5c34, 0x1141e8ce, 0xa15486af,\r\n 0x7c72e993, 0xb3ee1411, 0x636fbc2a, 0x2ba9c55d, 0x741831f6,\r\n 0xce5c3e16, 0x9b87931e, 0xafd6ba33, 0x6c24cf5c, 0x7a325381,\r\n 0x28958677, 0x3b8f4898, 0x6b4bb9af, 0xc4bfe81b, 0x66282193,\r\n 0x61d809cc, 0xfb21a991, 0x487cac60, 0x5dec8032, 0xef845d5d,\r\n 0xe98575b1, 0xdc262302, 0xeb651b88, 0x23893e81, 0xd396acc5,\r\n 0x0f6d6ff3, 0x83f44239, 0x2e0b4482, 0xa4842004, 0x69c8f04a,\r\n 0x9e1f9b5e, 0x21c66842, 0xf6e96c9a, 0x670c9c61, 0xabd388f0,\r\n 0x6a51a0d2, 0xd8542f68, 0x960fa728, 0xab5133a3, 0x6eef0b6c,\r\n 0x137a3be4, 0xba3bf050, 0x7efb2a98, 0xa1f1651d, 0x39af0176,\r\n 0x66ca593e, 0x82430e88, 0x8cee8619, 0x456f9fb4, 0x7d84a5c3,\r\n 0x3b8b5ebe, 0xe06f75d8, 0x85c12073, 0x401a449f, 0x56c16aa6,\r\n 0x4ed3aa62, 0x363f7706, 0x1bfedf72, 0x429b023d, 0x37d0d724,\r\n 0xd00a1248, 0xdb0fead3, 0x49f1c09b, 0x075372c9, 0x80991b7b,\r\n 0x25d479d8, 0xf6e8def7, 0xe3fe501a, 0xb6794c3b, 0x976ce0bd,\r\n 0x04c006ba, 0xc1a94fb6, 0x409f60c4, 0x5e5c9ec2, 0x196a2463,\r\n 0x68fb6faf, 0x3e6c53b5, 0x1339b2eb, 0x3b52ec6f, 0x6dfc511f,\r\n 0x9b30952c, 0xcc814544, 0xaf5ebd09, 0xbee3d004, 0xde334afd,\r\n 0x660f2807, 0x192e4bb3, 0xc0cba857, 0x45c8740f, 0xd20b5f39,\r\n 0xb9d3fbdb, 0x5579c0bd, 0x1a60320a, 0xd6a100c6, 0x402c7279,\r\n 0x679f25fe, 0xfb1fa3cc, 0x8ea5e9f8, 0xdb3222f8, 0x3c7516df,\r\n 0xfd616b15, 0x2f501ec8, 0xad0552ab, 0x323db5fa, 0xfd238760,\r\n 0x53317b48, 0x3e00df82, 0x9e5c57bb, 0xca6f8ca0, 0x1a87562e,\r\n 0xdf1769db, 0xd542a8f6, 0x287effc3, 0xac6732c6, 0x8c4f5573,\r\n 0x695b27b0, 0xbbca58c8, 0xe1ffa35d, 0xb8f011a0, 0x10fa3d98,\r\n 0xfd2183b8, 0x4afcb56c, 0x2dd1d35b, 0x9a53e479, 0xb6f84565,\r\n 0xd28e49bc, 0x4bfb9790, 0xe1ddf2da, 0xa4cb7e33, 0x62fb1341,\r\n 0xcee4c6e8, 0xef20cada, 0x36774c01, 0xd07e9efe, 0x2bf11fb4,\r\n 0x95dbda4d, 0xae909198, 0xeaad8e71, 0x6b93d5a0, 0xd08ed1d0,\r\n 0xafc725e0, 0x8e3c5b2f, 0x8e7594b7, 0x8ff6e2fb, 0xf2122b64,\r\n 0x8888b812, 0x900df01c, 0x4fad5ea0, 0x688fc31c, 0xd1cff191,\r\n 0xb3a8c1ad, 0x2f2f2218, 0xbe0e1777, 0xea752dfe, 0x8b021fa1,\r\n 0xe5a0cc0f, 0xb56f74e8, 0x18acf3d6, 0xce89e299, 0xb4a84fe0,\r\n 0xfd13e0b7, 0x7cc43b81, 0xd2ada8d9, 0x165fa266, 0x80957705,\r\n 0x93cc7314, 0x211a1477, 0xe6ad2065, 0x77b5fa86, 0xc75442f5,\r\n 0xfb9d35cf, 0xebcdaf0c, 0x7b3e89a0, 0xd6411bd3, 0xae1e7e49,\r\n 0x00250e2d, 0x2071b35e, 0x226800bb, 0x57b8e0af, 0x2464369b,\r\n 0xf009b91e, 0x5563911d, 0x59dfa6aa, 0x78c14389, 0xd95a537f,\r\n 0x207d5ba2, 0x02e5b9c5, 0x83260376, 0x6295cfa9, 0x11c81968,\r\n 0x4e734a41, 0xb3472dca, 0x7b14a94a, 0x1b510052, 0x9a532915,\r\n 0xd60f573f, 0xbc9bc6e4, 0x2b60a476, 0x81e67400, 0x08ba6fb5,\r\n 0x571be91f, 0xf296ec6b, 0x2a0dd915, 0xb6636521, 0xe7b9f9b6,\r\n 0xff34052e, 0xc5855664, 0x53b02d5d, 0xa99f8fa1, 0x08ba4799,\r\n 0x6e85076a, 0x4b7a70e9, 0xb5b32944, 0xdb75092e, 0xc4192623,\r\n 0xad6ea6b0, 0x49a7df7d, 0x9cee60b8, 0x8fedb266, 0xecaa8c71,\r\n 0x699a17ff, 0x5664526c, 0xc2b19ee1, 0x193602a5, 0x75094c29,\r\n 0xa0591340, 0xe4183a3e, 0x3f54989a, 0x5b429d65, 0x6b8fe4d6,\r\n 0x99f73fd6, 0xa1d29c07, 0xefe830f5, 0x4d2d38e6, 0xf0255dc1,\r\n 0x4cdd2086, 0x8470eb26, 0x6382e9c6, 0x021ecc5e, 0x09686b3f,\r\n 0x3ebaefc9, 0x3c971814, 0x6b6a70a1, 0x687f3584, 0x52a0e286,\r\n 0xb79c5305, 0xaa500737, 0x3e07841c, 0x7fdeae5c, 0x8e7d44ec,\r\n 0x5716f2b8, 0xb03ada37, 0xf0500c0d, 0xf01c1f04, 0x0200b3ff,\r\n 0xae0cf51a, 0x3cb574b2, 0x25837a58, 0xdc0921bd, 0xd19113f9,\r\n 0x7ca92ff6, 0x94324773, 0x22f54701, 0x3ae5e581, 0x37c2dadc,\r\n 0xc8b57634, 0x9af3dda7, 0xa9446146, 0x0fd0030e, 0xecc8c73e,\r\n 0xa4751e41, 0xe238cd99, 0x3bea0e2f, 0x3280bba1, 0x183eb331,\r\n 0x4e548b38, 0x4f6db908, 0x6f420d03, 0xf60a04bf, 0x2cb81290,\r\n 0x24977c79, 0x5679b072, 0xbcaf89af, 0xde9a771f, 0xd9930810,\r\n 0xb38bae12, 0xdccf3f2e, 0x5512721f, 0x2e6b7124, 0x501adde6,\r\n 0x9f84cd87, 0x7a584718, 0x7408da17, 0xbc9f9abc, 0xe94b7d8c,\r\n 0xec7aec3a, 0xdb851dfa, 0x63094366, 0xc464c3d2, 0xef1c1847,\r\n 0x3215d908, 0xdd433b37, 0x24c2ba16, 0x12a14d43, 0x2a65c451,\r\n 0x50940002, 0x133ae4dd, 0x71dff89e, 0x10314e55, 0x81ac77d6,\r\n 0x5f11199b, 0x043556f1, 0xd7a3c76b, 0x3c11183b, 0x5924a509,\r\n 0xf28fe6ed, 0x97f1fbfa, 0x9ebabf2c, 0x1e153c6e, 0x86e34570,\r\n 0xeae96fb1, 0x860e5e0a, 0x5a3e2ab3, 0x771fe71c, 0x4e3d06fa,\r\n 0x2965dcb9, 0x99e71d0f, 0x803e89d6, 0x5266c825, 0x2e4cc978,\r\n 0x9c10b36a, 0xc6150eba, 0x94e2ea78, 0xa5fc3c53, 0x1e0a2df4,\r\n 0xf2f74ea7, 0x361d2b3d, 0x1939260f, 0x19c27960, 0x5223a708,\r\n 0xf71312b6, 0xebadfe6e, 0xeac31f66, 0xe3bc4595, 0xa67bc883,\r\n 0xb17f37d1, 0x018cff28, 0xc332ddef, 0xbe6c5aa5, 0x65582185,\r\n 0x68ab9802, 0xeecea50f, 0xdb2f953b, 0x2aef7dad, 0x5b6e2f84,\r\n 0x1521b628, 0x29076170, 0xecdd4775, 0x619f1510, 0x13cca830,\r\n 0xeb61bd96, 0x0334fe1e, 0xaa0363cf, 0xb5735c90, 0x4c70a239,\r\n 0xd59e9e0b, 0xcbaade14, 0xeecc86bc, 0x60622ca7, 0x9cab5cab,\r\n 0xb2f3846e, 0x648b1eaf, 0x19bdf0ca, 0xa02369b9, 0x655abb50,\r\n 0x40685a32, 0x3c2ab4b3, 0x319ee9d5, 0xc021b8f7, 0x9b540b19,\r\n 0x875fa099, 0x95f7997e, 0x623d7da8, 0xf837889a, 0x97e32d77,\r\n 0x11ed935f, 0x16681281, 0x0e358829, 0xc7e61fd6, 0x96dedfa1,\r\n 0x7858ba99, 0x57f584a5, 0x1b227263, 0x9b83c3ff, 0x1ac24696,\r\n 0xcdb30aeb, 0x532e3054, 0x8fd948e4, 0x6dbc3128, 0x58ebf2ef,\r\n 0x34c6ffea, 0xfe28ed61, 0xee7c3c73, 0x5d4a14d9, 0xe864b7e3,\r\n 0x42105d14, 0x203e13e0, 0x45eee2b6, 0xa3aaabea, 0xdb6c4f15,\r\n 0xfacb4fd0, 0xc742f442, 0xef6abbb5, 0x654f3b1d, 0x41cd2105,\r\n 0xd81e799e, 0x86854dc7, 0xe44b476a, 0x3d816250, 0xcf62a1f2,\r\n 0x5b8d2646, 0xfc8883a0, 0xc1c7b6a3, 0x7f1524c3, 0x69cb7492,\r\n 0x47848a0b, 0x5692b285, 0x095bbf00, 0xad19489d, 0x1462b174,\r\n 0x23820e00, 0x58428d2a, 0x0c55f5ea, 0x1dadf43e, 0x233f7061,\r\n 0x3372f092, 0x8d937e41, 0xd65fecf1, 0x6c223bdb, 0x7cde3759,\r\n 0xcbee7460, 0x4085f2a7, 0xce77326e, 0xa6078084, 0x19f8509e,\r\n 0xe8efd855, 0x61d99735, 0xa969a7aa, 0xc50c06c2, 0x5a04abfc,\r\n 0x800bcadc, 0x9e447a2e, 0xc3453484, 0xfdd56705, 0x0e1e9ec9,\r\n 0xdb73dbd3, 0x105588cd, 0x675fda79, 0xe3674340, 0xc5c43465,\r\n 0x713e38d8, 0x3d28f89e, 0xf16dff20, 0x153e21e7, 0x8fb03d4a,\r\n 0xe6e39f2b, 0xdb83adf7, 0xe93d5a68, 0x948140f7, 0xf64c261c,\r\n 0x94692934, 0x411520f7, 0x7602d4f7, 0xbcf46b2e, 0xd4a20068,\r\n 0xd4082471, 0x3320f46a, 0x43b7d4b7, 0x500061af, 0x1e39f62e,\r\n 0x97244546, 0x14214f74, 0xbf8b8840, 0x4d95fc1d, 0x96b591af,\r\n 0x70f4ddd3, 0x66a02f45, 0xbfbc09ec, 0x03bd9785, 0x7fac6dd0,\r\n 0x31cb8504, 0x96eb27b3, 0x55fd3941, 0xda2547e6, 0xabca0a9a,\r\n 0x28507825, 0x530429f4, 0x0a2c86da, 0xe9b66dfb, 0x68dc1462,\r\n 0xd7486900, 0x680ec0a4, 0x27a18dee, 0x4f3ffea2, 0xe887ad8c,\r\n 0xb58ce006, 0x7af4d6b6, 0xaace1e7c, 0xd3375fec, 0xce78a399,\r\n 0x406b2a42, 0x20fe9e35, 0xd9f385b9, 0xee39d7ab, 0x3b124e8b,\r\n 0x1dc9faf7, 0x4b6d1856, 0x26a36631, 0xeae397b2, 0x3a6efa74,\r\n 0xdd5b4332, 0x6841e7f7, 0xca7820fb, 0xfb0af54e, 0xd8feb397,\r\n 0x454056ac, 0xba489527, 0x55533a3a, 0x20838d87, 0xfe6ba9b7,\r\n 0xd096954b, 0x55a867bc, 0xa1159a58, 0xcca92963, 0x99e1db33,\r\n 0xa62a4a56, 0x3f3125f9, 0x5ef47e1c, 0x9029317c, 0xfdf8e802,\r\n 0x04272f70, 0x80bb155c, 0x05282ce3, 0x95c11548, 0xe4c66d22,\r\n 0x48c1133f, 0xc70f86dc, 0x07f9c9ee, 0x41041f0f, 0x404779a4,\r\n 0x5d886e17, 0x325f51eb, 0xd59bc0d1, 0xf2bcc18f, 0x41113564,\r\n 0x257b7834, 0x602a9c60, 0xdff8e8a3, 0x1f636c1b, 0x0e12b4c2,\r\n 0x02e1329e, 0xaf664fd1, 0xcad18115, 0x6b2395e0, 0x333e92e1,\r\n 0x3b240b62, 0xeebeb922, 0x85b2a20e, 0xe6ba0d99, 0xde720c8c,\r\n 0x2da2f728, 0xd0127845, 0x95b794fd, 0x647d0862, 0xe7ccf5f0,\r\n 0x5449a36f, 0x877d48fa, 0xc39dfd27, 0xf33e8d1e, 0x0a476341,\r\n 0x992eff74, 0x3a6f6eab, 0xf4f8fd37, 0xa812dc60, 0xa1ebddf8,\r\n 0x991be14c, 0xdb6e6b0d, 0xc67b5510, 0x6d672c37, 0x2765d43b,\r\n 0xdcd0e804, 0xf1290dc7, 0xcc00ffa3, 0xb5390f92, 0x690fed0b,\r\n 0x667b9ffb, 0xcedb7d9c, 0xa091cf0b, 0xd9155ea3, 0xbb132f88,\r\n 0x515bad24, 0x7b9479bf, 0x763bd6eb, 0x37392eb3, 0xcc115979,\r\n 0x8026e297, 0xf42e312d, 0x6842ada7, 0xc66a2b3b, 0x12754ccc,\r\n 0x782ef11c, 0x6a124237, 0xb79251e7, 0x06a1bbe6, 0x4bfb6350,\r\n 0x1a6b1018, 0x11caedfa, 0x3d25bdd8, 0xe2e1c3c9, 0x44421659,\r\n 0x0a121386, 0xd90cec6e, 0xd5abea2a, 0x64af674e, 0xda86a85f,\r\n 0xbebfe988, 0x64e4c3fe, 0x9dbc8057, 0xf0f7c086, 0x60787bf8,\r\n 0x6003604d, 0xd1fd8346, 0xf6381fb0, 0x7745ae04, 0xd736fccc,\r\n 0x83426b33, 0xf01eab71, 0xb0804187, 0x3c005e5f, 0x77a057be,\r\n 0xbde8ae24, 0x55464299, 0xbf582e61, 0x4e58f48f, 0xf2ddfda2,\r\n 0xf474ef38, 0x8789bdc2, 0x5366f9c3, 0xc8b38e74, 0xb475f255,\r\n 0x46fcd9b9, 0x7aeb2661, 0x8b1ddf84, 0x846a0e79, 0x915f95e2,\r\n 0x466e598e, 0x20b45770, 0x8cd55591, 0xc902de4c, 0xb90bace1,\r\n 0xbb8205d0, 0x11a86248, 0x7574a99e, 0xb77f19b6, 0xe0a9dc09,\r\n 0x662d09a1, 0xc4324633, 0xe85a1f02, 0x09f0be8c, 0x4a99a025,\r\n 0x1d6efe10, 0x1ab93d1d, 0x0ba5a4df, 0xa186f20f, 0x2868f169,\r\n 0xdcb7da83, 0x573906fe, 0xa1e2ce9b, 0x4fcd7f52, 0x50115e01,\r\n 0xa70683fa, 0xa002b5c4, 0x0de6d027, 0x9af88c27, 0x773f8641,\r\n 0xc3604c06, 0x61a806b5, 0xf0177a28, 0xc0f586e0, 0x006058aa,\r\n 0x30dc7d62, 0x11e69ed7, 0x2338ea63, 0x53c2dd94, 0xc2c21634,\r\n 0xbbcbee56, 0x90bcb6de, 0xebfc7da1, 0xce591d76, 0x6f05e409,\r\n 0x4b7c0188, 0x39720a3d, 0x7c927c24, 0x86e3725f, 0x724d9db9,\r\n 0x1ac15bb4, 0xd39eb8fc, 0xed545578, 0x08fca5b5, 0xd83d7cd3,\r\n 0x4dad0fc4, 0x1e50ef5e, 0xb161e6f8, 0xa28514d9, 0x6c51133c,\r\n 0x6fd5c7e7, 0x56e14ec4, 0x362abfce, 0xddc6c837, 0xd79a3234,\r\n 0x92638212, 0x670efa8e, 0x406000e0, 0x3a39ce37, 0xd3faf5cf,\r\n 0xabc27737, 0x5ac52d1b, 0x5cb0679e, 0x4fa33742, 0xd3822740,\r\n 0x99bc9bbe, 0xd5118e9d, 0xbf0f7315, 0xd62d1c7e, 0xc700c47b,\r\n 0xb78c1b6b, 0x21a19045, 0xb26eb1be, 0x6a366eb4, 0x5748ab2f,\r\n 0xbc946e79, 0xc6a376d2, 0x6549c2c8, 0x530ff8ee, 0x468dde7d,\r\n 0xd5730a1d, 0x4cd04dc6, 0x2939bbdb, 0xa9ba4650, 0xac9526e8,\r\n 0xbe5ee304, 0xa1fad5f0, 0x6a2d519a, 0x63ef8ce2, 0x9a86ee22,\r\n 0xc089c2b8, 0x43242ef6, 0xa51e03aa, 0x9cf2d0a4, 0x83c061ba,\r\n 0x9be96a4d, 0x8fe51550, 0xba645bd6, 0x2826a2f9, 0xa73a3ae1,\r\n 0x4ba99586, 0xef5562e9, 0xc72fefd3, 0xf752f7da, 0x3f046f69,\r\n 0x77fa0a59, 0x80e4a915, 0x87b08601, 0x9b09e6ad, 0x3b3ee593,\r\n 0xe990fd5a, 0x9e34d797, 0x2cf0b7d9, 0x022b8b51, 0x96d5ac3a,\r\n 0x017da67d, 0xd1cf3ed6, 0x7c7d2d28, 0x1f9f25cf, 0xadf2b89b,\r\n 0x5ad6b472, 0x5a88f54c, 0xe029ac71, 0xe019a5e6, 0x47b0acfd,\r\n 0xed93fa9b, 0xe8d3c48d, 0x283b57cc, 0xf8d56629, 0x79132e28,\r\n 0x785f0191, 0xed756055, 0xf7960e44, 0xe3d35e8c, 0x15056dd4,\r\n 0x88f46dba, 0x03a16125, 0x0564f0bd, 0xc3eb9e15, 0x3c9057a2,\r\n 0x97271aec, 0xa93a072a, 0x1b3f6d9b, 0x1e6321f5, 0xf59c66fb,\r\n 0x26dcf319, 0x7533d928, 0xb155fdf5, 0x03563482, 0x8aba3cbb,\r\n 0x28517711, 0xc20ad9f8, 0xabcc5167, 0xccad925f, 0x4de81751,\r\n 0x3830dc8e, 0x379d5862, 0x9320f991, 0xea7a90c2, 0xfb3e7bce,\r\n 0x5121ce64, 0x774fbe32, 0xa8b6e37e, 0xc3293d46, 0x48de5369,\r\n 0x6413e680, 0xa2ae0810, 0xdd6db224, 0x69852dfd, 0x09072166,\r\n 0xb39a460a, 0x6445c0dd, 0x586cdecf, 0x1c20c8ae, 0x5bbef7dd,\r\n 0x1b588d40, 0xccd2017f, 0x6bb4e3bb, 0xdda26a7e, 0x3a59ff45,\r\n 0x3e350a44, 0xbcb4cdd5, 0x72eacea8, 0xfa6484bb, 0x8d6612ae,\r\n 0xbf3c6f47, 0xd29be463, 0x542f5d9e, 0xaec2771b, 0xf64e6370,\r\n 0x740e0d8d, 0xe75b1357, 0xf8721671, 0xaf537d5d, 0x4040cb08,\r\n 0x4eb4e2cc, 0x34d2466a, 0x0115af84, 0xe1b00428, 0x95983a1d,\r\n 0x06b89fb4, 0xce6ea048, 0x6f3f3b82, 0x3520ab82, 0x011a1d4b,\r\n 0x277227f8, 0x611560b1, 0xe7933fdc, 0xbb3a792b, 0x344525bd,\r\n 0xa08839e1, 0x51ce794b, 0x2f32c9b7, 0xa01fbac9, 0xe01cc87e,\r\n 0xbcc7d1f6, 0xcf0111c3, 0xa1e8aac7, 0x1a908749, 0xd44fbd9a,\r\n 0xd0dadecb, 0xd50ada38, 0x0339c32a, 0xc6913667, 0x8df9317c,\r\n 0xe0b12b4f, 0xf79e59b7, 0x43f5bb3a, 0xf2d519ff, 0x27d9459c,\r\n 0xbf97222c, 0x15e6fc2a, 0x0f91fc71, 0x9b941525, 0xfae59361,\r\n 0xceb69ceb, 0xc2a86459, 0x12baa8d1, 0xb6c1075e, 0xe3056a0c,\r\n 0x10d25065, 0xcb03a442, 0xe0ec6e0e, 0x1698db3b, 0x4c98a0be,\r\n 0x3278e964, 0x9f1f9532, 0xe0d392df, 0xd3a0342b, 0x8971f21e,\r\n 0x1b0a7441, 0x4ba3348c, 0xc5be7120, 0xc37632d8, 0xdf359f8d,\r\n 0x9b992f2e, 0xe60b6f47, 0x0fe3f11d, 0xe54cda54, 0x1edad891,\r\n 0xce6279cf, 0xcd3e7e6f, 0x1618b166, 0xfd2c1d05, 0x848fd2c5,\r\n 0xf6fb2299, 0xf523f357, 0xa6327623, 0x93a83531, 0x56cccd02,\r\n 0xacf08162, 0x5a75ebb5, 0x6e163697, 0x88d273cc, 0xde966292,\r\n 0x81b949d0, 0x4c50901b, 0x71c65614, 0xe6c6c7bd, 0x327a140a,\r\n 0x45e1d006, 0xc3f27b9a, 0xc9aa53fd, 0x62a80f00, 0xbb25bfe2,\r\n 0x35bdd2f6, 0x71126905, 0xb2040222, 0xb6cbcf7c, 0xcd769c2b,\r\n 0x53113ec0, 0x1640e3d3, 0x38abbd60, 0x2547adf0, 0xba38209c,\r\n 0xf746ce76, 0x77afa1c5, 0x20756060, 0x85cbfe4e, 0x8ae88dd8,\r\n 0x7aaaf9b0, 0x4cf9aa7e, 0x1948c25c, 0x02fb8a8c, 0x01c36ae4,\r\n 0xd6ebe1f9, 0x90d4f869, 0xa65cdea0, 0x3f09252d, 0xc208e69f,\r\n 0xb74e6132, 0xce77e25b, 0x578fdfe3, 0x3ac372e6\r\n ];\r\n\r\n /**\r\n * @type {Array.}\r\n * @const\r\n * @inner\r\n */\r\n var C_ORIG = [\r\n 0x4f727068, 0x65616e42, 0x65686f6c, 0x64657253, 0x63727944,\r\n 0x6f756274\r\n ];\r\n\r\n /**\r\n * @param {Array.} lr\r\n * @param {number} off\r\n * @param {Array.} P\r\n * @param {Array.} S\r\n * @returns {Array.}\r\n * @inner\r\n */\r\n function _encipher(lr, off, P, S) { // This is our bottleneck: 1714/1905 ticks / 90% - see profile.txt\r\n var n,\r\n l = lr[off],\r\n r = lr[off + 1];\r\n\r\n l ^= P[0];\r\n\r\n /*\r\n for (var i=0, k=BLOWFISH_NUM_ROUNDS-2; i<=k;)\r\n // Feistel substitution on left word\r\n n = S[l >>> 24],\r\n n += S[0x100 | ((l >> 16) & 0xff)],\r\n n ^= S[0x200 | ((l >> 8) & 0xff)],\r\n n += S[0x300 | (l & 0xff)],\r\n r ^= n ^ P[++i],\r\n // Feistel substitution on right word\r\n n = S[r >>> 24],\r\n n += S[0x100 | ((r >> 16) & 0xff)],\r\n n ^= S[0x200 | ((r >> 8) & 0xff)],\r\n n += S[0x300 | (r & 0xff)],\r\n l ^= n ^ P[++i];\r\n */\r\n\r\n //The following is an unrolled version of the above loop.\r\n //Iteration 0\r\n n = S[l >>> 24];\r\n n += S[0x100 | ((l >> 16) & 0xff)];\r\n n ^= S[0x200 | ((l >> 8) & 0xff)];\r\n n += S[0x300 | (l & 0xff)];\r\n r ^= n ^ P[1];\r\n n = S[r >>> 24];\r\n n += S[0x100 | ((r >> 16) & 0xff)];\r\n n ^= S[0x200 | ((r >> 8) & 0xff)];\r\n n += S[0x300 | (r & 0xff)];\r\n l ^= n ^ P[2];\r\n //Iteration 1\r\n n = S[l >>> 24];\r\n n += S[0x100 | ((l >> 16) & 0xff)];\r\n n ^= S[0x200 | ((l >> 8) & 0xff)];\r\n n += S[0x300 | (l & 0xff)];\r\n r ^= n ^ P[3];\r\n n = S[r >>> 24];\r\n n += S[0x100 | ((r >> 16) & 0xff)];\r\n n ^= S[0x200 | ((r >> 8) & 0xff)];\r\n n += S[0x300 | (r & 0xff)];\r\n l ^= n ^ P[4];\r\n //Iteration 2\r\n n = S[l >>> 24];\r\n n += S[0x100 | ((l >> 16) & 0xff)];\r\n n ^= S[0x200 | ((l >> 8) & 0xff)];\r\n n += S[0x300 | (l & 0xff)];\r\n r ^= n ^ P[5];\r\n n = S[r >>> 24];\r\n n += S[0x100 | ((r >> 16) & 0xff)];\r\n n ^= S[0x200 | ((r >> 8) & 0xff)];\r\n n += S[0x300 | (r & 0xff)];\r\n l ^= n ^ P[6];\r\n //Iteration 3\r\n n = S[l >>> 24];\r\n n += S[0x100 | ((l >> 16) & 0xff)];\r\n n ^= S[0x200 | ((l >> 8) & 0xff)];\r\n n += S[0x300 | (l & 0xff)];\r\n r ^= n ^ P[7];\r\n n = S[r >>> 24];\r\n n += S[0x100 | ((r >> 16) & 0xff)];\r\n n ^= S[0x200 | ((r >> 8) & 0xff)];\r\n n += S[0x300 | (r & 0xff)];\r\n l ^= n ^ P[8];\r\n //Iteration 4\r\n n = S[l >>> 24];\r\n n += S[0x100 | ((l >> 16) & 0xff)];\r\n n ^= S[0x200 | ((l >> 8) & 0xff)];\r\n n += S[0x300 | (l & 0xff)];\r\n r ^= n ^ P[9];\r\n n = S[r >>> 24];\r\n n += S[0x100 | ((r >> 16) & 0xff)];\r\n n ^= S[0x200 | ((r >> 8) & 0xff)];\r\n n += S[0x300 | (r & 0xff)];\r\n l ^= n ^ P[10];\r\n //Iteration 5\r\n n = S[l >>> 24];\r\n n += S[0x100 | ((l >> 16) & 0xff)];\r\n n ^= S[0x200 | ((l >> 8) & 0xff)];\r\n n += S[0x300 | (l & 0xff)];\r\n r ^= n ^ P[11];\r\n n = S[r >>> 24];\r\n n += S[0x100 | ((r >> 16) & 0xff)];\r\n n ^= S[0x200 | ((r >> 8) & 0xff)];\r\n n += S[0x300 | (r & 0xff)];\r\n l ^= n ^ P[12];\r\n //Iteration 6\r\n n = S[l >>> 24];\r\n n += S[0x100 | ((l >> 16) & 0xff)];\r\n n ^= S[0x200 | ((l >> 8) & 0xff)];\r\n n += S[0x300 | (l & 0xff)];\r\n r ^= n ^ P[13];\r\n n = S[r >>> 24];\r\n n += S[0x100 | ((r >> 16) & 0xff)];\r\n n ^= S[0x200 | ((r >> 8) & 0xff)];\r\n n += S[0x300 | (r & 0xff)];\r\n l ^= n ^ P[14];\r\n //Iteration 7\r\n n = S[l >>> 24];\r\n n += S[0x100 | ((l >> 16) & 0xff)];\r\n n ^= S[0x200 | ((l >> 8) & 0xff)];\r\n n += S[0x300 | (l & 0xff)];\r\n r ^= n ^ P[15];\r\n n = S[r >>> 24];\r\n n += S[0x100 | ((r >> 16) & 0xff)];\r\n n ^= S[0x200 | ((r >> 8) & 0xff)];\r\n n += S[0x300 | (r & 0xff)];\r\n l ^= n ^ P[16];\r\n\r\n lr[off] = r ^ P[BLOWFISH_NUM_ROUNDS + 1];\r\n lr[off + 1] = l;\r\n return lr;\r\n }\r\n\r\n /**\r\n * @param {Array.} data\r\n * @param {number} offp\r\n * @returns {{key: number, offp: number}}\r\n * @inner\r\n */\r\n function _streamtoword(data, offp) {\r\n for (var i = 0, word = 0; i < 4; ++i)\r\n word = (word << 8) | (data[offp] & 0xff),\r\n offp = (offp + 1) % data.length;\r\n return { key: word, offp: offp };\r\n }\r\n\r\n /**\r\n * @param {Array.} key\r\n * @param {Array.} P\r\n * @param {Array.} S\r\n * @inner\r\n */\r\n function _key(key, P, S) {\r\n var offset = 0,\r\n lr = [0, 0],\r\n plen = P.length,\r\n slen = S.length,\r\n sw;\r\n for (var i = 0; i < plen; i++)\r\n sw = _streamtoword(key, offset),\r\n offset = sw.offp,\r\n P[i] = P[i] ^ sw.key;\r\n for (i = 0; i < plen; i += 2)\r\n lr = _encipher(lr, 0, P, S),\r\n P[i] = lr[0],\r\n P[i + 1] = lr[1];\r\n for (i = 0; i < slen; i += 2)\r\n lr = _encipher(lr, 0, P, S),\r\n S[i] = lr[0],\r\n S[i + 1] = lr[1];\r\n }\r\n\r\n /**\r\n * Expensive key schedule Blowfish.\r\n * @param {Array.} data\r\n * @param {Array.} key\r\n * @param {Array.} P\r\n * @param {Array.} S\r\n * @inner\r\n */\r\n function _ekskey(data, key, P, S) {\r\n var offp = 0,\r\n lr = [0, 0],\r\n plen = P.length,\r\n slen = S.length,\r\n sw;\r\n for (var i = 0; i < plen; i++)\r\n sw = _streamtoword(key, offp),\r\n offp = sw.offp,\r\n P[i] = P[i] ^ sw.key;\r\n offp = 0;\r\n for (i = 0; i < plen; i += 2)\r\n sw = _streamtoword(data, offp),\r\n offp = sw.offp,\r\n lr[0] ^= sw.key,\r\n sw = _streamtoword(data, offp),\r\n offp = sw.offp,\r\n lr[1] ^= sw.key,\r\n lr = _encipher(lr, 0, P, S),\r\n P[i] = lr[0],\r\n P[i + 1] = lr[1];\r\n for (i = 0; i < slen; i += 2)\r\n sw = _streamtoword(data, offp),\r\n offp = sw.offp,\r\n lr[0] ^= sw.key,\r\n sw = _streamtoword(data, offp),\r\n offp = sw.offp,\r\n lr[1] ^= sw.key,\r\n lr = _encipher(lr, 0, P, S),\r\n S[i] = lr[0],\r\n S[i + 1] = lr[1];\r\n }\r\n\r\n /**\r\n * Internaly crypts a string.\r\n * @param {Array.} b Bytes to crypt\r\n * @param {Array.} salt Salt bytes to use\r\n * @param {number} rounds Number of rounds\r\n * @param {function(Error, Array.=)=} callback Callback receiving the error, if any, and the resulting bytes. If\r\n * omitted, the operation will be performed synchronously.\r\n * @param {function(number)=} progressCallback Callback called with the current progress\r\n * @returns {!Array.|undefined} Resulting bytes if callback has been omitted, otherwise `undefined`\r\n * @inner\r\n */\r\n function _crypt(b, salt, rounds, callback, progressCallback) {\r\n var cdata = C_ORIG.slice(),\r\n clen = cdata.length,\r\n err;\r\n\r\n // Validate\r\n if (rounds < 4 || rounds > 31) {\r\n err = Error(\"Illegal number of rounds (4-31): \"+rounds);\r\n if (callback) {\r\n nextTick(callback.bind(this, err));\r\n return;\r\n } else\r\n throw err;\r\n }\r\n if (salt.length !== BCRYPT_SALT_LEN) {\r\n err =Error(\"Illegal salt length: \"+salt.length+\" != \"+BCRYPT_SALT_LEN);\r\n if (callback) {\r\n nextTick(callback.bind(this, err));\r\n return;\r\n } else\r\n throw err;\r\n }\r\n rounds = (1 << rounds) >>> 0;\r\n\r\n var P, S, i = 0, j;\r\n\r\n //Use typed arrays when available - huge speedup!\r\n if (Int32Array) {\r\n P = new Int32Array(P_ORIG);\r\n S = new Int32Array(S_ORIG);\r\n } else {\r\n P = P_ORIG.slice();\r\n S = S_ORIG.slice();\r\n }\r\n\r\n _ekskey(salt, b, P, S);\r\n\r\n /**\r\n * Calcualtes the next round.\r\n * @returns {Array.|undefined} Resulting array if callback has been omitted, otherwise `undefined`\r\n * @inner\r\n */\r\n function next() {\r\n if (progressCallback)\r\n progressCallback(i / rounds);\r\n if (i < rounds) {\r\n var start = Date.now();\r\n for (; i < rounds;) {\r\n i = i + 1;\r\n _key(b, P, S);\r\n _key(salt, P, S);\r\n if (Date.now() - start > MAX_EXECUTION_TIME)\r\n break;\r\n }\r\n } else {\r\n for (i = 0; i < 64; i++)\r\n for (j = 0; j < (clen >> 1); j++)\r\n _encipher(cdata, j << 1, P, S);\r\n var ret = [];\r\n for (i = 0; i < clen; i++)\r\n ret.push(((cdata[i] >> 24) & 0xff) >>> 0),\r\n ret.push(((cdata[i] >> 16) & 0xff) >>> 0),\r\n ret.push(((cdata[i] >> 8) & 0xff) >>> 0),\r\n ret.push((cdata[i] & 0xff) >>> 0);\r\n if (callback) {\r\n callback(null, ret);\r\n return;\r\n } else\r\n return ret;\r\n }\r\n if (callback)\r\n nextTick(next);\r\n }\r\n\r\n // Async\r\n if (typeof callback !== 'undefined') {\r\n next();\r\n\r\n // Sync\r\n } else {\r\n var res;\r\n while (true)\r\n if (typeof(res = next()) !== 'undefined')\r\n return res || [];\r\n }\r\n }\r\n\r\n /**\r\n * Internally hashes a string.\r\n * @param {string} s String to hash\r\n * @param {?string} salt Salt to use, actually never null\r\n * @param {function(Error, string=)=} callback Callback receiving the error, if any, and the resulting hash. If omitted,\r\n * hashing is perormed synchronously.\r\n * @param {function(number)=} progressCallback Callback called with the current progress\r\n * @returns {string|undefined} Resulting hash if callback has been omitted, otherwise `undefined`\r\n * @inner\r\n */\r\n function _hash(s, salt, callback, progressCallback) {\r\n var err;\r\n if (typeof s !== 'string' || typeof salt !== 'string') {\r\n err = Error(\"Invalid string / salt: Not a string\");\r\n if (callback) {\r\n nextTick(callback.bind(this, err));\r\n return;\r\n }\r\n else\r\n throw err;\r\n }\r\n\r\n // Validate the salt\r\n var minor, offset;\r\n if (salt.charAt(0) !== '$' || salt.charAt(1) !== '2') {\r\n err = Error(\"Invalid salt version: \"+salt.substring(0,2));\r\n if (callback) {\r\n nextTick(callback.bind(this, err));\r\n return;\r\n }\r\n else\r\n throw err;\r\n }\r\n if (salt.charAt(2) === '$')\r\n minor = String.fromCharCode(0),\r\n offset = 3;\r\n else {\r\n minor = salt.charAt(2);\r\n if ((minor !== 'a' && minor !== 'b' && minor !== 'y') || salt.charAt(3) !== '$') {\r\n err = Error(\"Invalid salt revision: \"+salt.substring(2,4));\r\n if (callback) {\r\n nextTick(callback.bind(this, err));\r\n return;\r\n } else\r\n throw err;\r\n }\r\n offset = 4;\r\n }\r\n\r\n // Extract number of rounds\r\n if (salt.charAt(offset + 2) > '$') {\r\n err = Error(\"Missing salt rounds\");\r\n if (callback) {\r\n nextTick(callback.bind(this, err));\r\n return;\r\n } else\r\n throw err;\r\n }\r\n var r1 = parseInt(salt.substring(offset, offset + 1), 10) * 10,\r\n r2 = parseInt(salt.substring(offset + 1, offset + 2), 10),\r\n rounds = r1 + r2,\r\n real_salt = salt.substring(offset + 3, offset + 25);\r\n s += minor >= 'a' ? \"\\x00\" : \"\";\r\n\r\n var passwordb = stringToBytes(s),\r\n saltb = base64_decode(real_salt, BCRYPT_SALT_LEN);\r\n\r\n /**\r\n * Finishes hashing.\r\n * @param {Array.} bytes Byte array\r\n * @returns {string}\r\n * @inner\r\n */\r\n function finish(bytes) {\r\n var res = [];\r\n res.push(\"$2\");\r\n if (minor >= 'a')\r\n res.push(minor);\r\n res.push(\"$\");\r\n if (rounds < 10)\r\n res.push(\"0\");\r\n res.push(rounds.toString());\r\n res.push(\"$\");\r\n res.push(base64_encode(saltb, saltb.length));\r\n res.push(base64_encode(bytes, C_ORIG.length * 4 - 1));\r\n return res.join('');\r\n }\r\n\r\n // Sync\r\n if (typeof callback == 'undefined')\r\n return finish(_crypt(passwordb, saltb, rounds));\r\n\r\n // Async\r\n else {\r\n _crypt(passwordb, saltb, rounds, function(err, bytes) {\r\n if (err)\r\n callback(err, null);\r\n else\r\n callback(null, finish(bytes));\r\n }, progressCallback);\r\n }\r\n }\r\n\r\n /**\r\n * Encodes a byte array to base64 with up to len bytes of input, using the custom bcrypt alphabet.\r\n * @function\r\n * @param {!Array.} b Byte array\r\n * @param {number} len Maximum input length\r\n * @returns {string}\r\n * @expose\r\n */\r\n bcrypt.encodeBase64 = base64_encode;\r\n\r\n /**\r\n * Decodes a base64 encoded string to up to len bytes of output, using the custom bcrypt alphabet.\r\n * @function\r\n * @param {string} s String to decode\r\n * @param {number} len Maximum output length\r\n * @returns {!Array.}\r\n * @expose\r\n */\r\n bcrypt.decodeBase64 = base64_decode;\r\n\r\n return bcrypt;\r\n}));\r\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nvar K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n var arr = new Uint8Array(1)\n var proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n var buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n var valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n var b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(\n value[Symbol.toPrimitive]('string'), encodingOrOffset, length\n )\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n var length = byteLength(string, encoding) | 0\n var buf = createBuffer(length)\n\n var actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n var buf = createBuffer(length)\n for (var i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n var copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n var buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n var buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n Buffer.from(buf).copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n var len = string.length\n var mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return ''\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n var strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (var i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n var limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n var limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n var len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nvar hexSliceLookupTable = (function () {\n var alphabet = '0123456789abcdef'\n var table = new Array(256)\n for (var i = 0; i < 16; ++i) {\n var i16 = i * 16\n for (var j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.contentful=t():e.contentful=t()}(self,(function(){return function(){var e={737:function(e,t,r){\"use strict\";var n=r(750),o=r(573),i=o(n(\"String.prototype.indexOf\"));e.exports=function(e,t){var r=n(e,!!t);return\"function\"==typeof r&&i(e,\".prototype.\")>-1?o(r):r}},573:function(e,t,r){\"use strict\";var n=r(132),o=r(750),i=r(504),a=o(\"%TypeError%\"),s=o(\"%Function.prototype.apply%\"),c=o(\"%Function.prototype.call%\"),u=o(\"%Reflect.apply%\",!0)||n.call(c,s),l=o(\"%Object.defineProperty%\",!0),f=o(\"%Math.max%\");if(l)try{l({},\"a\",{value:1})}catch(e){l=null}e.exports=function(e){if(\"function\"!=typeof e)throw new a(\"a function is required\");var t=u(n,c,arguments);return i(t,1+f(0,e.length-(arguments.length-1)),!0)};var p=function(){return u(n,s,arguments)};l?l(e.exports,\"apply\",{value:p}):e.exports.apply=p},137:function(e){\"use strict\";var t=String.prototype.replace,r=/%20/g,n=\"RFC3986\";e.exports={default:n,formatters:{RFC1738:function(e){return t.call(e,r,\"+\")},RFC3986:function(e){return String(e)}},RFC1738:\"RFC1738\",RFC3986:n}},122:function(e,t,r){\"use strict\";var n=r(892),o=r(15),i=r(137);e.exports={formats:i,parse:o,stringify:n}},15:function(e,t,r){\"use strict\";var n=r(634),o=Object.prototype.hasOwnProperty,i=Array.isArray,a={allowDots:!1,allowPrototypes:!1,allowSparse:!1,arrayLimit:20,charset:\"utf-8\",charsetSentinel:!1,comma:!1,decoder:n.decode,delimiter:\"&\",depth:5,ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictNullHandling:!1},s=function(e){return e.replace(/&#(\\d+);/g,(function(e,t){return String.fromCharCode(parseInt(t,10))}))},c=function(e,t){return e&&\"string\"==typeof e&&t.comma&&e.indexOf(\",\")>-1?e.split(\",\"):e},u=function(e,t,r,n){if(e){var i=r.allowDots?e.replace(/\\.([^.[]+)/g,\"[$1]\"):e,a=/(\\[[^[\\]]*])/g,s=r.depth>0&&/(\\[[^[\\]]*])/.exec(i),u=s?i.slice(0,s.index):i,l=[];if(u){if(!r.plainObjects&&o.call(Object.prototype,u)&&!r.allowPrototypes)return;l.push(u)}for(var f=0;r.depth>0&&null!==(s=a.exec(i))&&f=0;--i){var a,s=e[i];if(\"[]\"===s&&r.parseArrays)a=[].concat(o);else{a=r.plainObjects?Object.create(null):{};var u=\"[\"===s.charAt(0)&&\"]\"===s.charAt(s.length-1)?s.slice(1,-1):s,l=parseInt(u,10);r.parseArrays||\"\"!==u?!isNaN(l)&&s!==u&&String(l)===u&&l>=0&&r.parseArrays&&l<=r.arrayLimit?(a=[])[l]=o:\"__proto__\"!==u&&(a[u]=o):a={0:o}}o=a}return o}(l,t,r,n)}};e.exports=function(e,t){var r=function(e){if(!e)return a;if(null!==e.decoder&&void 0!==e.decoder&&\"function\"!=typeof e.decoder)throw new TypeError(\"Decoder has to be a function.\");if(void 0!==e.charset&&\"utf-8\"!==e.charset&&\"iso-8859-1\"!==e.charset)throw new TypeError(\"The charset option must be either utf-8, iso-8859-1, or undefined\");var t=void 0===e.charset?a.charset:e.charset;return{allowDots:void 0===e.allowDots?a.allowDots:!!e.allowDots,allowPrototypes:\"boolean\"==typeof e.allowPrototypes?e.allowPrototypes:a.allowPrototypes,allowSparse:\"boolean\"==typeof e.allowSparse?e.allowSparse:a.allowSparse,arrayLimit:\"number\"==typeof e.arrayLimit?e.arrayLimit:a.arrayLimit,charset:t,charsetSentinel:\"boolean\"==typeof e.charsetSentinel?e.charsetSentinel:a.charsetSentinel,comma:\"boolean\"==typeof e.comma?e.comma:a.comma,decoder:\"function\"==typeof e.decoder?e.decoder:a.decoder,delimiter:\"string\"==typeof e.delimiter||n.isRegExp(e.delimiter)?e.delimiter:a.delimiter,depth:\"number\"==typeof e.depth||!1===e.depth?+e.depth:a.depth,ignoreQueryPrefix:!0===e.ignoreQueryPrefix,interpretNumericEntities:\"boolean\"==typeof e.interpretNumericEntities?e.interpretNumericEntities:a.interpretNumericEntities,parameterLimit:\"number\"==typeof e.parameterLimit?e.parameterLimit:a.parameterLimit,parseArrays:!1!==e.parseArrays,plainObjects:\"boolean\"==typeof e.plainObjects?e.plainObjects:a.plainObjects,strictNullHandling:\"boolean\"==typeof e.strictNullHandling?e.strictNullHandling:a.strictNullHandling}}(t);if(\"\"===e||null==e)return r.plainObjects?Object.create(null):{};for(var l=\"string\"==typeof e?function(e,t){var r,u={__proto__:null},l=t.ignoreQueryPrefix?e.replace(/^\\?/,\"\"):e,f=t.parameterLimit===1/0?void 0:t.parameterLimit,p=l.split(t.delimiter,f),y=-1,d=t.charset;if(t.charsetSentinel)for(r=0;r-1&&(m=i(m)?[m]:m),o.call(u,h)?u[h]=n.combine(u[h],m):u[h]=m}return u}(e,r):e,f=r.plainObjects?Object.create(null):{},p=Object.keys(l),y=0;y0?A.join(\",\")||null:void 0}];else if(c(p))k=p;else{var L=Object.keys(A);k=h?L.sort(h):L}for(var U=a&&c(A)&&1===A.length?r+\"[]\":r,N=0;N0?O+w:\"\"}},634:function(e,t,r){\"use strict\";var n=r(137),o=Object.prototype.hasOwnProperty,i=Array.isArray,a=function(){for(var e=[],t=0;t<256;++t)e.push(\"%\"+((t<16?\"0\":\"\")+t.toString(16)).toUpperCase());return e}(),s=function(e,t){for(var r=t&&t.plainObjects?Object.create(null):{},n=0;n1;){var t=e.pop(),r=t.obj[t.prop];if(i(r)){for(var n=[],o=0;o=48&&l<=57||l>=65&&l<=90||l>=97&&l<=122||i===n.RFC1738&&(40===l||41===l)?c+=s.charAt(u):l<128?c+=a[l]:l<2048?c+=a[192|l>>6]+a[128|63&l]:l<55296||l>=57344?c+=a[224|l>>12]+a[128|l>>6&63]+a[128|63&l]:(u+=1,l=65536+((1023&l)<<10|1023&s.charCodeAt(u)),c+=a[240|l>>18]+a[128|l>>12&63]+a[128|l>>6&63]+a[128|63&l])}return c},isBuffer:function(e){return!(!e||\"object\"!=typeof e||!(e.constructor&&e.constructor.isBuffer&&e.constructor.isBuffer(e)))},isRegExp:function(e){return\"[object RegExp]\"===Object.prototype.toString.call(e)},maybeMap:function(e,t){if(i(e)){for(var r=[],n=0;n3&&\"boolean\"!=typeof arguments[3]&&null!==arguments[3])throw new s(\"`nonEnumerable`, if provided, must be a boolean or null\");if(arguments.length>4&&\"boolean\"!=typeof arguments[4]&&null!==arguments[4])throw new s(\"`nonWritable`, if provided, must be a boolean or null\");if(arguments.length>5&&\"boolean\"!=typeof arguments[5]&&null!==arguments[5])throw new s(\"`nonConfigurable`, if provided, must be a boolean or null\");if(arguments.length>6&&\"boolean\"!=typeof arguments[6])throw new s(\"`loose`, if provided, must be a boolean\");var n=arguments.length>3?arguments[3]:null,o=arguments.length>4?arguments[4]:null,u=arguments.length>5?arguments[5]:null,l=arguments.length>6&&arguments[6],f=!!c&&c(e,t);if(i)i(e,t,{configurable:null===u&&f?f.configurable:!u,enumerable:null===n&&f?f.enumerable:!n,value:r,writable:null===o&&f?f.writable:!o});else{if(!l&&(n||o||u))throw new a(\"This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.\");e[t]=r}}},581:function(e,t,r){e.exports=function(){\"use strict\";var e=Function.prototype.toString,t=Object.create,n=Object.defineProperty,o=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,a=Object.getOwnPropertySymbols,s=Object.getPrototypeOf,c=Object.prototype,u=c.hasOwnProperty,l=c.propertyIsEnumerable,f=\"function\"==typeof a,p=\"function\"==typeof WeakMap,y=function(){if(p)return function(){return new WeakMap};var e=function(){function e(){this._keys=[],this._values=[]}return e.prototype.has=function(e){return!!~this._keys.indexOf(e)},e.prototype.get=function(e){return this._values[this._keys.indexOf(e)]},e.prototype.set=function(e,t){this._keys.push(e),this._values.push(t)},e}();return function(){return new e}}(),d=function(r,n){var o=r.__proto__||s(r);if(!o)return t(null);var i=o.constructor;if(i===n.Object)return o===n.Object.prototype?{}:t(o);if(~e.call(i).indexOf(\"[native code]\"))try{return new i}catch(e){}return t(o)},h=function(e,t,r,n){var o=d(e,t);for(var i in n.set(e,o),e)u.call(e,i)&&(o[i]=r(e[i],n));if(f)for(var s=a(e),c=0,p=s.length,y=void 0;c1&&\"boolean\"!=typeof t)throw new a('\"allowMissing\" argument must be a boolean');if(null===x(/^%?[^%]*%?$/,e))throw new o(\"`%` may not be present anywhere but at the beginning and end of the intrinsic name\");var r=function(e){var t=E(e,0,1),r=E(e,-1);if(\"%\"===t&&\"%\"!==r)throw new o(\"invalid intrinsic syntax, expected closing `%`\");if(\"%\"===r&&\"%\"!==t)throw new o(\"invalid intrinsic syntax, expected opening `%`\");var n=[];return A(e,P,(function(e,t,r,o){n[n.length]=r?A(o,R,\"$1\"):t||e})),n}(e),n=r.length>0?r[0]:\"\",i=k(\"%\"+n+\"%\",t),s=i.name,u=i.value,l=!1,f=i.alias;f&&(n=f[0],j(r,S([0,1],f)));for(var p=1,y=!0;p=r.length){var b=c(u,d);u=(y=!!b)&&\"get\"in b&&!(\"originalValue\"in b.get)?b.get:u[d]}else y=O(u,d),u=u[d];y&&!l&&(m[s]=u)}}return u}},502:function(e,t,r){\"use strict\";var n=r(750)(\"%Object.getOwnPropertyDescriptor%\",!0);if(n)try{n([],\"length\")}catch(e){n=null}e.exports=n},365:function(e,t,r){\"use strict\";var n=r(750)(\"%Object.defineProperty%\",!0),o=function(){if(n)try{return n({},\"a\",{value:1}),!0}catch(e){return!1}return!1};o.hasArrayLengthDefineBug=function(){if(!o())return null;try{return 1!==n([],\"length\",{value:1}).length}catch(e){return!0}},e.exports=o},574:function(e){\"use strict\";var t={foo:{}},r=Object;e.exports=function(){return{__proto__:t}.foo===t.foo&&!({__proto__:null}instanceof r)}},679:function(e,t,r){\"use strict\";var n=\"undefined\"!=typeof Symbol&&Symbol,o=r(186);e.exports=function(){return\"function\"==typeof n&&\"function\"==typeof Symbol&&\"symbol\"==typeof n(\"foo\")&&\"symbol\"==typeof Symbol(\"bar\")&&o()}},186:function(e){\"use strict\";e.exports=function(){if(\"function\"!=typeof Symbol||\"function\"!=typeof Object.getOwnPropertySymbols)return!1;if(\"symbol\"==typeof Symbol.iterator)return!0;var e={},t=Symbol(\"test\"),r=Object(t);if(\"string\"==typeof t)return!1;if(\"[object Symbol]\"!==Object.prototype.toString.call(t))return!1;if(\"[object Symbol]\"!==Object.prototype.toString.call(r))return!1;for(t in e[t]=42,e)return!1;if(\"function\"==typeof Object.keys&&0!==Object.keys(e).length)return!1;if(\"function\"==typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(e).length)return!1;var n=Object.getOwnPropertySymbols(e);if(1!==n.length||n[0]!==t)return!1;if(!Object.prototype.propertyIsEnumerable.call(e,t))return!1;if(\"function\"==typeof Object.getOwnPropertyDescriptor){var o=Object.getOwnPropertyDescriptor(e,t);if(42!==o.value||!0!==o.enumerable)return!1}return!0}},712:function(e,t,r){\"use strict\";var n=Function.prototype.call,o=Object.prototype.hasOwnProperty,i=r(132);e.exports=i.call(n,o)},784:function(e,t){function r(e,t){var r=[],n=[];return null==t&&(t=function(e,t){return r[0]===t?\"[Circular ~]\":\"[Circular ~.\"+n.slice(0,r.indexOf(t)).join(\".\")+\"]\"}),function(o,i){if(r.length>0){var a=r.indexOf(this);~a?r.splice(a+1):r.push(this),~a?n.splice(a,1/0,o):n.push(o),~r.indexOf(i)&&(i=t.call(this,o,i))}else r.push(i);return null==e?i:e.call(this,o,i)}}(e.exports=function(e,t,n,o){return JSON.stringify(e,r(t,o),n)}).getSerialize=r},261:function(e){var t,r,n=Function.prototype,o=Object.prototype,i=n.toString,a=o.hasOwnProperty,s=i.call(Object),c=o.toString,u=(t=Object.getPrototypeOf,r=Object,function(e){return t(r(e))});e.exports=function(e){if(!function(e){return!!e&&\"object\"==typeof e}(e)||\"[object Object]\"!=c.call(e)||function(e){var t=!1;if(null!=e&&\"function\"!=typeof e.toString)try{t=!!(e+\"\")}catch(e){}return t}(e))return!1;var t=u(e);if(null===t)return!0;var r=a.call(t,\"constructor\")&&t.constructor;return\"function\"==typeof r&&r instanceof r&&i.call(r)==s}},451:function(e){var t=Object.prototype.toString,r=Array.isArray;e.exports=function(e){return\"string\"==typeof e||!r(e)&&function(e){return!!e&&\"object\"==typeof e}(e)&&\"[object String]\"==t.call(e)}},524:function(e,t,r){var n=\"function\"==typeof Map&&Map.prototype,o=Object.getOwnPropertyDescriptor&&n?Object.getOwnPropertyDescriptor(Map.prototype,\"size\"):null,i=n&&o&&\"function\"==typeof o.get?o.get:null,a=n&&Map.prototype.forEach,s=\"function\"==typeof Set&&Set.prototype,c=Object.getOwnPropertyDescriptor&&s?Object.getOwnPropertyDescriptor(Set.prototype,\"size\"):null,u=s&&c&&\"function\"==typeof c.get?c.get:null,l=s&&Set.prototype.forEach,f=\"function\"==typeof WeakMap&&WeakMap.prototype?WeakMap.prototype.has:null,p=\"function\"==typeof WeakSet&&WeakSet.prototype?WeakSet.prototype.has:null,y=\"function\"==typeof WeakRef&&WeakRef.prototype?WeakRef.prototype.deref:null,d=Boolean.prototype.valueOf,h=Object.prototype.toString,m=Function.prototype.toString,g=String.prototype.match,b=String.prototype.slice,v=String.prototype.replace,w=String.prototype.toUpperCase,O=String.prototype.toLowerCase,S=RegExp.prototype.test,j=Array.prototype.concat,A=Array.prototype.join,E=Array.prototype.slice,x=Math.floor,P=\"function\"==typeof BigInt?BigInt.prototype.valueOf:null,R=Object.getOwnPropertySymbols,k=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?Symbol.prototype.toString:null,T=\"function\"==typeof Symbol&&\"object\"==typeof Symbol.iterator,L=\"function\"==typeof Symbol&&Symbol.toStringTag&&(Symbol.toStringTag,1)?Symbol.toStringTag:null,U=Object.prototype.propertyIsEnumerable,N=(\"function\"==typeof Reflect?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(e){return e.__proto__}:null);function _(e,t){if(e===1/0||e===-1/0||e!=e||e&&e>-1e3&&e<1e3||S.call(/e/,t))return t;var r=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if(\"number\"==typeof e){var n=e<0?-x(-e):x(e);if(n!==e){var o=String(n),i=b.call(t,o.length+1);return v.call(o,r,\"$&_\")+\".\"+v.call(v.call(i,/([0-9]{3})/g,\"$&_\"),/_$/,\"\")}}return v.call(t,r,\"$&_\")}var F=r(553),C=F.custom,B=W(C)?C:null;function I(e,t,r){var n=\"double\"===(r.quoteStyle||t)?'\"':\"'\";return n+e+n}function D(e){return v.call(String(e),/\"/g,\""\")}function M(e){return!(\"[object Array]\"!==$(e)||L&&\"object\"==typeof e&&L in e)}function q(e){return!(\"[object RegExp]\"!==$(e)||L&&\"object\"==typeof e&&L in e)}function W(e){if(T)return e&&\"object\"==typeof e&&e instanceof Symbol;if(\"symbol\"==typeof e)return!0;if(!e||\"object\"!=typeof e||!k)return!1;try{return k.call(e),!0}catch(e){}return!1}e.exports=function e(t,n,o,s){var c=n||{};if(H(c,\"quoteStyle\")&&\"single\"!==c.quoteStyle&&\"double\"!==c.quoteStyle)throw new TypeError('option \"quoteStyle\" must be \"single\" or \"double\"');if(H(c,\"maxStringLength\")&&(\"number\"==typeof c.maxStringLength?c.maxStringLength<0&&c.maxStringLength!==1/0:null!==c.maxStringLength))throw new TypeError('option \"maxStringLength\", if provided, must be a positive integer, Infinity, or `null`');var h=!H(c,\"customInspect\")||c.customInspect;if(\"boolean\"!=typeof h&&\"symbol\"!==h)throw new TypeError(\"option \\\"customInspect\\\", if provided, must be `true`, `false`, or `'symbol'`\");if(H(c,\"indent\")&&null!==c.indent&&\"\\t\"!==c.indent&&!(parseInt(c.indent,10)===c.indent&&c.indent>0))throw new TypeError('option \"indent\" must be \"\\\\t\", an integer > 0, or `null`');if(H(c,\"numericSeparator\")&&\"boolean\"!=typeof c.numericSeparator)throw new TypeError('option \"numericSeparator\", if provided, must be `true` or `false`');var w=c.numericSeparator;if(void 0===t)return\"undefined\";if(null===t)return\"null\";if(\"boolean\"==typeof t)return t?\"true\":\"false\";if(\"string\"==typeof t)return J(t,c);if(\"number\"==typeof t){if(0===t)return 1/0/t>0?\"0\":\"-0\";var S=String(t);return w?_(t,S):S}if(\"bigint\"==typeof t){var x=String(t)+\"n\";return w?_(t,x):x}var R=void 0===c.depth?5:c.depth;if(void 0===o&&(o=0),o>=R&&R>0&&\"object\"==typeof t)return M(t)?\"[Array]\":\"[Object]\";var C,z=function(e,t){var r;if(\"\\t\"===e.indent)r=\"\\t\";else{if(!(\"number\"==typeof e.indent&&e.indent>0))return null;r=A.call(Array(e.indent+1),\" \")}return{base:r,prev:A.call(Array(t+1),r)}}(c,o);if(void 0===s)s=[];else if(G(s,t)>=0)return\"[Circular]\";function V(t,r,n){if(r&&(s=E.call(s)).push(r),n){var i={depth:c.depth};return H(c,\"quoteStyle\")&&(i.quoteStyle=c.quoteStyle),e(t,i,o+1,s)}return e(t,c,o+1,s)}if(\"function\"==typeof t&&!q(t)){var ee=function(e){if(e.name)return e.name;var t=g.call(m.call(e),/^function\\s*([\\w$]+)/);return t?t[1]:null}(t),te=Y(t,V);return\"[Function\"+(ee?\": \"+ee:\" (anonymous)\")+\"]\"+(te.length>0?\" { \"+A.call(te,\", \")+\" }\":\"\")}if(W(t)){var re=T?v.call(String(t),/^(Symbol\\(.*\\))_[^)]*$/,\"$1\"):k.call(t);return\"object\"!=typeof t||T?re:K(re)}if((C=t)&&\"object\"==typeof C&&(\"undefined\"!=typeof HTMLElement&&C instanceof HTMLElement||\"string\"==typeof C.nodeName&&\"function\"==typeof C.getAttribute)){for(var ne=\"<\"+O.call(String(t.nodeName)),oe=t.attributes||[],ie=0;ie\",t.childNodes&&t.childNodes.length&&(ne+=\"...\"),ne+\"\"}if(M(t)){if(0===t.length)return\"[]\";var ae=Y(t,V);return z&&!function(e){for(var t=0;t=0)return!1;return!0}(ae)?\"[\"+Z(ae,z)+\"]\":\"[ \"+A.call(ae,\", \")+\" ]\"}if(function(e){return!(\"[object Error]\"!==$(e)||L&&\"object\"==typeof e&&L in e)}(t)){var se=Y(t,V);return\"cause\"in Error.prototype||!(\"cause\"in t)||U.call(t,\"cause\")?0===se.length?\"[\"+String(t)+\"]\":\"{ [\"+String(t)+\"] \"+A.call(se,\", \")+\" }\":\"{ [\"+String(t)+\"] \"+A.call(j.call(\"[cause]: \"+V(t.cause),se),\", \")+\" }\"}if(\"object\"==typeof t&&h){if(B&&\"function\"==typeof t[B]&&F)return F(t,{depth:R-o});if(\"symbol\"!==h&&\"function\"==typeof t.inspect)return t.inspect()}if(function(e){if(!i||!e||\"object\"!=typeof e)return!1;try{i.call(e);try{u.call(e)}catch(e){return!0}return e instanceof Map}catch(e){}return!1}(t)){var ce=[];return a&&a.call(t,(function(e,r){ce.push(V(r,t,!0)+\" => \"+V(e,t))})),X(\"Map\",i.call(t),ce,z)}if(function(e){if(!u||!e||\"object\"!=typeof e)return!1;try{u.call(e);try{i.call(e)}catch(e){return!0}return e instanceof Set}catch(e){}return!1}(t)){var ue=[];return l&&l.call(t,(function(e){ue.push(V(e,t))})),X(\"Set\",u.call(t),ue,z)}if(function(e){if(!f||!e||\"object\"!=typeof e)return!1;try{f.call(e,f);try{p.call(e,p)}catch(e){return!0}return e instanceof WeakMap}catch(e){}return!1}(t))return Q(\"WeakMap\");if(function(e){if(!p||!e||\"object\"!=typeof e)return!1;try{p.call(e,p);try{f.call(e,f)}catch(e){return!0}return e instanceof WeakSet}catch(e){}return!1}(t))return Q(\"WeakSet\");if(function(e){if(!y||!e||\"object\"!=typeof e)return!1;try{return y.call(e),!0}catch(e){}return!1}(t))return Q(\"WeakRef\");if(function(e){return!(\"[object Number]\"!==$(e)||L&&\"object\"==typeof e&&L in e)}(t))return K(V(Number(t)));if(function(e){if(!e||\"object\"!=typeof e||!P)return!1;try{return P.call(e),!0}catch(e){}return!1}(t))return K(V(P.call(t)));if(function(e){return!(\"[object Boolean]\"!==$(e)||L&&\"object\"==typeof e&&L in e)}(t))return K(d.call(t));if(function(e){return!(\"[object String]\"!==$(e)||L&&\"object\"==typeof e&&L in e)}(t))return K(V(String(t)));if(\"undefined\"!=typeof window&&t===window)return\"{ [object Window] }\";if(t===r.g)return\"{ [object globalThis] }\";if(!function(e){return!(\"[object Date]\"!==$(e)||L&&\"object\"==typeof e&&L in e)}(t)&&!q(t)){var le=Y(t,V),fe=N?N(t)===Object.prototype:t instanceof Object||t.constructor===Object,pe=t instanceof Object?\"\":\"null prototype\",ye=!fe&&L&&Object(t)===t&&L in t?b.call($(t),8,-1):pe?\"Object\":\"\",de=(fe||\"function\"!=typeof t.constructor?\"\":t.constructor.name?t.constructor.name+\" \":\"\")+(ye||pe?\"[\"+A.call(j.call([],ye||[],pe||[]),\": \")+\"] \":\"\");return 0===le.length?de+\"{}\":z?de+\"{\"+Z(le,z)+\"}\":de+\"{ \"+A.call(le,\", \")+\" }\"}return String(t)};var z=Object.prototype.hasOwnProperty||function(e){return e in this};function H(e,t){return z.call(e,t)}function $(e){return h.call(e)}function G(e,t){if(e.indexOf)return e.indexOf(t);for(var r=0,n=e.length;rt.maxStringLength){var r=e.length-t.maxStringLength,n=\"... \"+r+\" more character\"+(r>1?\"s\":\"\");return J(b.call(e,0,t.maxStringLength),t)+n}return I(v.call(v.call(e,/(['\\\\])/g,\"\\\\$1\"),/[\\x00-\\x1f]/g,V),\"single\",t)}function V(e){var t=e.charCodeAt(0),r={8:\"b\",9:\"t\",10:\"n\",12:\"f\",13:\"r\"}[t];return r?\"\\\\\"+r:\"\\\\x\"+(t<16?\"0\":\"\")+w.call(t.toString(16))}function K(e){return\"Object(\"+e+\")\"}function Q(e){return e+\" { ? }\"}function X(e,t,r,n){return e+\" (\"+t+\") {\"+(n?Z(r,n):A.call(r,\", \"))+\"}\"}function Z(e,t){if(0===e.length)return\"\";var r=\"\\n\"+t.prev+t.base;return r+A.call(e,\",\"+r)+\"\\n\"+t.prev}function Y(e,t){var r=M(e),n=[];if(r){n.length=e.length;for(var o=0;o{if(!Number.isFinite(e))throw new TypeError(\"Expected `limit` to be a finite number\");if(!Number.isFinite(r))throw new TypeError(\"Expected `interval` to be a finite number\");const o=new Map;let i=0,a=0;const s=[],c=n?function(){const t=Date.now();if(s.length=n?(s.push(t),0):(s.push(n),n-t)}:function(){const t=Date.now();return t-i>r?(a=1,i=t,0):(a{const r=function(...t){if(!r.isEnabled)return(async()=>e.apply(this,t))();let n;return new Promise(((r,i)=>{n=setTimeout((()=>{r(e.apply(this,t)),o.delete(n)}),c()),o.set(n,i)}))};return r.abort=()=>{for(const e of o.keys())clearTimeout(e),o.get(e)(new t);o.clear(),s.splice(0,s.length)},r.isEnabled=!0,r}},e.exports.AbortError=t},504:function(e,t,r){\"use strict\";var n=r(750),o=r(300),i=r(365)(),a=r(502),s=n(\"%TypeError%\"),c=n(\"%Math.floor%\");e.exports=function(e,t){if(\"function\"!=typeof e)throw new s(\"`fn` is not a function\");if(\"number\"!=typeof t||t<0||t>4294967295||c(t)!==t)throw new s(\"`length` must be a positive 32-bit integer\");var r=arguments.length>2&&!!arguments[2],n=!0,u=!0;if(\"length\"in e&&a){var l=a(e,\"length\");l&&!l.configurable&&(n=!1),l&&!l.writable&&(u=!1)}return(n||u||!r)&&(i?o(e,\"length\",t,!0,!0):o(e,\"length\",t)),e}},337:function(e,t,r){\"use strict\";var n=r(750),o=r(737),i=r(524),a=n(\"%TypeError%\"),s=n(\"%WeakMap%\",!0),c=n(\"%Map%\",!0),u=o(\"WeakMap.prototype.get\",!0),l=o(\"WeakMap.prototype.set\",!0),f=o(\"WeakMap.prototype.has\",!0),p=o(\"Map.prototype.get\",!0),y=o(\"Map.prototype.set\",!0),d=o(\"Map.prototype.has\",!0),h=function(e,t){for(var r,n=e;null!==(r=n.next);n=r)if(r.key===t)return n.next=r.next,r.next=e.next,e.next=r,r};e.exports=function(){var e,t,r,n={assert:function(e){if(!n.has(e))throw new a(\"Side channel does not contain \"+i(e))},get:function(n){if(s&&n&&(\"object\"==typeof n||\"function\"==typeof n)){if(e)return u(e,n)}else if(c){if(t)return p(t,n)}else if(r)return function(e,t){var r=h(e,t);return r&&r.value}(r,n)},has:function(n){if(s&&n&&(\"object\"==typeof n||\"function\"==typeof n)){if(e)return f(e,n)}else if(c){if(t)return d(t,n)}else if(r)return function(e,t){return!!h(e,t)}(r,n);return!1},set:function(n,o){s&&n&&(\"object\"==typeof n||\"function\"==typeof n)?(e||(e=new s),l(e,n,o)):c?(t||(t=new c),y(t,n,o)):(r||(r={key:{},next:null}),function(e,t,r){var n=h(e,t);n?n.value=r:e.next={key:t,next:e.next,value:r}}(r,n,o))}};return n}},553:function(){}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var i=t[n]={exports:{}};return e[n].call(i.exports,i,i.exports,r),i.exports}r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,{a:t}),t},r.d=function(e,t){for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.g=function(){if(\"object\"==typeof globalThis)return globalThis;try{return this||new Function(\"return this\")()}catch(e){if(\"object\"==typeof window)return window}}(),r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})};var n={};return function(){\"use strict\";r.r(n),r.d(n,{createClient:function(){return Jt},createGlobalOptions:function(){return St}});var e={};function t(e,t){return function(){return e.apply(t,arguments)}}r.r(e),r.d(e,{hasBrowserEnv:function(){return re},hasStandardBrowserEnv:function(){return ne},hasStandardBrowserWebWorkerEnv:function(){return ie}});const{toString:o}=Object.prototype,{getPrototypeOf:i}=Object,a=(s=Object.create(null),e=>{const t=o.call(e);return s[t]||(s[t]=t.slice(8,-1).toLowerCase())});var s;const c=e=>(e=e.toLowerCase(),t=>a(t)===e),u=e=>t=>typeof t===e,{isArray:l}=Array,f=u(\"undefined\"),p=c(\"ArrayBuffer\"),y=u(\"string\"),d=u(\"function\"),h=u(\"number\"),m=e=>null!==e&&\"object\"==typeof e,g=e=>{if(\"object\"!==a(e))return!1;const t=i(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t)||Symbol.toStringTag in e||Symbol.iterator in e)},b=c(\"Date\"),v=c(\"File\"),w=c(\"Blob\"),O=c(\"FileList\"),S=c(\"URLSearchParams\");function j(e,t,{allOwnKeys:r=!1}={}){if(null==e)return;let n,o;if(\"object\"!=typeof e&&(e=[e]),l(e))for(n=0,o=e.length;n0;)if(n=r[o],t===n.toLowerCase())return n;return null}const E=\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:global,x=e=>!f(e)&&e!==E,P=(R=\"undefined\"!=typeof Uint8Array&&i(Uint8Array),e=>R&&e instanceof R);var R;const k=c(\"HTMLFormElement\"),T=(({hasOwnProperty:e})=>(t,r)=>e.call(t,r))(Object.prototype),L=c(\"RegExp\"),U=(e,t)=>{const r=Object.getOwnPropertyDescriptors(e),n={};j(r,((r,o)=>{let i;!1!==(i=t(r,o,e))&&(n[o]=i||r)})),Object.defineProperties(e,n)},N=\"abcdefghijklmnopqrstuvwxyz\",_=\"0123456789\",F={DIGIT:_,ALPHA:N,ALPHA_DIGIT:N+N.toUpperCase()+_},C=c(\"AsyncFunction\");var B={isArray:l,isArrayBuffer:p,isBuffer:function(e){return null!==e&&!f(e)&&null!==e.constructor&&!f(e.constructor)&&d(e.constructor.isBuffer)&&e.constructor.isBuffer(e)},isFormData:e=>{let t;return e&&(\"function\"==typeof FormData&&e instanceof FormData||d(e.append)&&(\"formdata\"===(t=a(e))||\"object\"===t&&d(e.toString)&&\"[object FormData]\"===e.toString()))},isArrayBufferView:function(e){let t;return t=\"undefined\"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&p(e.buffer),t},isString:y,isNumber:h,isBoolean:e=>!0===e||!1===e,isObject:m,isPlainObject:g,isUndefined:f,isDate:b,isFile:v,isBlob:w,isRegExp:L,isFunction:d,isStream:e=>m(e)&&d(e.pipe),isURLSearchParams:S,isTypedArray:P,isFileList:O,forEach:j,merge:function e(){const{caseless:t}=x(this)&&this||{},r={},n=(n,o)=>{const i=t&&A(r,o)||o;g(r[i])&&g(n)?r[i]=e(r[i],n):g(n)?r[i]=e({},n):l(n)?r[i]=n.slice():r[i]=n};for(let e=0,t=arguments.length;e(j(r,((r,o)=>{n&&d(r)?e[o]=t(r,n):e[o]=r}),{allOwnKeys:o}),e),trim:e=>e.trim?e.trim():e.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,\"\"),stripBOM:e=>(65279===e.charCodeAt(0)&&(e=e.slice(1)),e),inherits:(e,t,r,n)=>{e.prototype=Object.create(t.prototype,n),e.prototype.constructor=e,Object.defineProperty(e,\"super\",{value:t.prototype}),r&&Object.assign(e.prototype,r)},toFlatObject:(e,t,r,n)=>{let o,a,s;const c={};if(t=t||{},null==e)return t;do{for(o=Object.getOwnPropertyNames(e),a=o.length;a-- >0;)s=o[a],n&&!n(s,e,t)||c[s]||(t[s]=e[s],c[s]=!0);e=!1!==r&&i(e)}while(e&&(!r||r(e,t))&&e!==Object.prototype);return t},kindOf:a,kindOfTest:c,endsWith:(e,t,r)=>{e=String(e),(void 0===r||r>e.length)&&(r=e.length),r-=t.length;const n=e.indexOf(t,r);return-1!==n&&n===r},toArray:e=>{if(!e)return null;if(l(e))return e;let t=e.length;if(!h(t))return null;const r=new Array(t);for(;t-- >0;)r[t]=e[t];return r},forEachEntry:(e,t)=>{const r=(e&&e[Symbol.iterator]).call(e);let n;for(;(n=r.next())&&!n.done;){const r=n.value;t.call(e,r[0],r[1])}},matchAll:(e,t)=>{let r;const n=[];for(;null!==(r=e.exec(t));)n.push(r);return n},isHTMLForm:k,hasOwnProperty:T,hasOwnProp:T,reduceDescriptors:U,freezeMethods:e=>{U(e,((t,r)=>{if(d(e)&&-1!==[\"arguments\",\"caller\",\"callee\"].indexOf(r))return!1;const n=e[r];d(n)&&(t.enumerable=!1,\"writable\"in t?t.writable=!1:t.set||(t.set=()=>{throw Error(\"Can not rewrite read-only method '\"+r+\"'\")}))}))},toObjectSet:(e,t)=>{const r={},n=e=>{e.forEach((e=>{r[e]=!0}))};return l(e)?n(e):n(String(e).split(t)),r},toCamelCase:e=>e.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,(function(e,t,r){return t.toUpperCase()+r})),noop:()=>{},toFiniteNumber:(e,t)=>(e=+e,Number.isFinite(e)?e:t),findKey:A,global:E,isContextDefined:x,ALPHABET:F,generateString:(e=16,t=F.ALPHA_DIGIT)=>{let r=\"\";const{length:n}=t;for(;e--;)r+=t[Math.random()*n|0];return r},isSpecCompliantForm:function(e){return!!(e&&d(e.append)&&\"FormData\"===e[Symbol.toStringTag]&&e[Symbol.iterator])},toJSONObject:e=>{const t=new Array(10),r=(e,n)=>{if(m(e)){if(t.indexOf(e)>=0)return;if(!(\"toJSON\"in e)){t[n]=e;const o=l(e)?[]:{};return j(e,((e,t)=>{const i=r(e,n+1);!f(i)&&(o[t]=i)})),t[n]=void 0,o}}return e};return r(e,0)},isAsyncFn:C,isThenable:e=>e&&(m(e)||d(e))&&d(e.then)&&d(e.catch)};function I(e,t,r,n,o){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=e,this.name=\"AxiosError\",t&&(this.code=t),r&&(this.config=r),n&&(this.request=n),o&&(this.response=o)}B.inherits(I,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:B.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const D=I.prototype,M={};[\"ERR_BAD_OPTION_VALUE\",\"ERR_BAD_OPTION\",\"ECONNABORTED\",\"ETIMEDOUT\",\"ERR_NETWORK\",\"ERR_FR_TOO_MANY_REDIRECTS\",\"ERR_DEPRECATED\",\"ERR_BAD_RESPONSE\",\"ERR_BAD_REQUEST\",\"ERR_CANCELED\",\"ERR_NOT_SUPPORT\",\"ERR_INVALID_URL\"].forEach((e=>{M[e]={value:e}})),Object.defineProperties(I,M),Object.defineProperty(D,\"isAxiosError\",{value:!0}),I.from=(e,t,r,n,o,i)=>{const a=Object.create(D);return B.toFlatObject(e,a,(function(e){return e!==Error.prototype}),(e=>\"isAxiosError\"!==e)),I.call(a,e.message,t,r,n,o),a.cause=e,a.name=e.name,i&&Object.assign(a,i),a};var q=I;function W(e){return B.isPlainObject(e)||B.isArray(e)}function z(e){return B.endsWith(e,\"[]\")?e.slice(0,-2):e}function H(e,t,r){return e?e.concat(t).map((function(e,t){return e=z(e),!r&&t?\"[\"+e+\"]\":e})).join(r?\".\":\"\"):t}const $=B.toFlatObject(B,{},null,(function(e){return/^is[A-Z]/.test(e)}));var G=function(e,t,r){if(!B.isObject(e))throw new TypeError(\"target must be an object\");t=t||new FormData;const n=(r=B.toFlatObject(r,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(e,t){return!B.isUndefined(t[e])}))).metaTokens,o=r.visitor||u,i=r.dots,a=r.indexes,s=(r.Blob||\"undefined\"!=typeof Blob&&Blob)&&B.isSpecCompliantForm(t);if(!B.isFunction(o))throw new TypeError(\"visitor must be a function\");function c(e){if(null===e)return\"\";if(B.isDate(e))return e.toISOString();if(!s&&B.isBlob(e))throw new q(\"Blob is not supported. Use a Buffer instead.\");return B.isArrayBuffer(e)||B.isTypedArray(e)?s&&\"function\"==typeof Blob?new Blob([e]):Buffer.from(e):e}function u(e,r,o){let s=e;if(e&&!o&&\"object\"==typeof e)if(B.endsWith(r,\"{}\"))r=n?r:r.slice(0,-2),e=JSON.stringify(e);else if(B.isArray(e)&&function(e){return B.isArray(e)&&!e.some(W)}(e)||(B.isFileList(e)||B.endsWith(r,\"[]\"))&&(s=B.toArray(e)))return r=z(r),s.forEach((function(e,n){!B.isUndefined(e)&&null!==e&&t.append(!0===a?H([r],n,i):null===a?r:r+\"[]\",c(e))})),!1;return!!W(e)||(t.append(H(o,r,i),c(e)),!1)}const l=[],f=Object.assign($,{defaultVisitor:u,convertValue:c,isVisitable:W});if(!B.isObject(e))throw new TypeError(\"data must be an object\");return function e(r,n){if(!B.isUndefined(r)){if(-1!==l.indexOf(r))throw Error(\"Circular reference detected in \"+n.join(\".\"));l.push(r),B.forEach(r,(function(r,i){!0===(!(B.isUndefined(r)||null===r)&&o.call(t,r,B.isString(i)?i.trim():i,n,f))&&e(r,n?n.concat(i):[i])})),l.pop()}}(e),t};function J(e){const t={\"!\":\"%21\",\"'\":\"%27\",\"(\":\"%28\",\")\":\"%29\",\"~\":\"%7E\",\"%20\":\"+\",\"%00\":\"\\0\"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,(function(e){return t[e]}))}function V(e,t){this._pairs=[],e&&G(e,this,t)}const K=V.prototype;K.append=function(e,t){this._pairs.push([e,t])},K.toString=function(e){const t=e?function(t){return e.call(this,t,J)}:J;return this._pairs.map((function(e){return t(e[0])+\"=\"+t(e[1])}),\"\").join(\"&\")};var Q=V;function X(e){return encodeURIComponent(e).replace(/%3A/gi,\":\").replace(/%24/g,\"$\").replace(/%2C/gi,\",\").replace(/%20/g,\"+\").replace(/%5B/gi,\"[\").replace(/%5D/gi,\"]\")}function Z(e,t,r){if(!t)return e;const n=r&&r.encode||X,o=r&&r.serialize;let i;if(i=o?o(t,r):B.isURLSearchParams(t)?t.toString():new Q(t,r).toString(n),i){const t=e.indexOf(\"#\");-1!==t&&(e=e.slice(0,t)),e+=(-1===e.indexOf(\"?\")?\"?\":\"&\")+i}return e}var Y=class{constructor(){this.handlers=[]}use(e,t,r){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!r&&r.synchronous,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){B.forEach(this.handlers,(function(t){null!==t&&e(t)}))}},ee={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},te={isBrowser:!0,classes:{URLSearchParams:\"undefined\"!=typeof URLSearchParams?URLSearchParams:Q,FormData:\"undefined\"!=typeof FormData?FormData:null,Blob:\"undefined\"!=typeof Blob?Blob:null},protocols:[\"http\",\"https\",\"file\",\"blob\",\"url\",\"data\"]};const re=\"undefined\"!=typeof window&&\"undefined\"!=typeof document,ne=(oe=\"undefined\"!=typeof navigator&&navigator.product,re&&[\"ReactNative\",\"NativeScript\",\"NS\"].indexOf(oe)<0);var oe;const ie=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&\"function\"==typeof self.importScripts;var ae={...e,...te},se=function(e){function t(e,r,n,o){let i=e[o++];if(\"__proto__\"===i)return!0;const a=Number.isFinite(+i),s=o>=e.length;return i=!i&&B.isArray(n)?n.length:i,s?(B.hasOwnProp(n,i)?n[i]=[n[i],r]:n[i]=r,!a):(n[i]&&B.isObject(n[i])||(n[i]=[]),t(e,r,n[i],o)&&B.isArray(n[i])&&(n[i]=function(e){const t={},r=Object.keys(e);let n;const o=r.length;let i;for(n=0;n{t(function(e){return B.matchAll(/\\w+|\\[(\\w*)]/g,e).map((e=>\"[]\"===e[0]?\"\":e[1]||e[0]))}(e),n,r,0)})),r}return null};const ce={transitional:ee,adapter:[\"xhr\",\"http\"],transformRequest:[function(e,t){const r=t.getContentType()||\"\",n=r.indexOf(\"application/json\")>-1,o=B.isObject(e);if(o&&B.isHTMLForm(e)&&(e=new FormData(e)),B.isFormData(e))return n&&n?JSON.stringify(se(e)):e;if(B.isArrayBuffer(e)||B.isBuffer(e)||B.isStream(e)||B.isFile(e)||B.isBlob(e))return e;if(B.isArrayBufferView(e))return e.buffer;if(B.isURLSearchParams(e))return t.setContentType(\"application/x-www-form-urlencoded;charset=utf-8\",!1),e.toString();let i;if(o){if(r.indexOf(\"application/x-www-form-urlencoded\")>-1)return function(e,t){return G(e,new ae.classes.URLSearchParams,Object.assign({visitor:function(e,t,r,n){return ae.isNode&&B.isBuffer(e)?(this.append(t,e.toString(\"base64\")),!1):n.defaultVisitor.apply(this,arguments)}},t))}(e,this.formSerializer).toString();if((i=B.isFileList(e))||r.indexOf(\"multipart/form-data\")>-1){const t=this.env&&this.env.FormData;return G(i?{\"files[]\":e}:e,t&&new t,this.formSerializer)}}return o||n?(t.setContentType(\"application/json\",!1),function(e,t,r){if(B.isString(e))try{return(0,JSON.parse)(e),B.trim(e)}catch(e){if(\"SyntaxError\"!==e.name)throw e}return(0,JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){const t=this.transitional||ce.transitional,r=t&&t.forcedJSONParsing,n=\"json\"===this.responseType;if(e&&B.isString(e)&&(r&&!this.responseType||n)){const r=!(t&&t.silentJSONParsing)&&n;try{return JSON.parse(e)}catch(e){if(r){if(\"SyntaxError\"===e.name)throw q.from(e,q.ERR_BAD_RESPONSE,this,null,this.response);throw e}}}return e}],timeout:0,xsrfCookieName:\"XSRF-TOKEN\",xsrfHeaderName:\"X-XSRF-TOKEN\",maxContentLength:-1,maxBodyLength:-1,env:{FormData:ae.classes.FormData,Blob:ae.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:\"application/json, text/plain, */*\",\"Content-Type\":void 0}}};B.forEach([\"delete\",\"get\",\"head\",\"post\",\"put\",\"patch\"],(e=>{ce.headers[e]={}}));var ue=ce;const le=B.toObjectSet([\"age\",\"authorization\",\"content-length\",\"content-type\",\"etag\",\"expires\",\"from\",\"host\",\"if-modified-since\",\"if-unmodified-since\",\"last-modified\",\"location\",\"max-forwards\",\"proxy-authorization\",\"referer\",\"retry-after\",\"user-agent\"]),fe=Symbol(\"internals\");function pe(e){return e&&String(e).trim().toLowerCase()}function ye(e){return!1===e||null==e?e:B.isArray(e)?e.map(ye):String(e)}function de(e,t,r,n,o){return B.isFunction(n)?n.call(this,t,r):(o&&(t=r),B.isString(t)?B.isString(n)?-1!==t.indexOf(n):B.isRegExp(n)?n.test(t):void 0:void 0)}class he{constructor(e){e&&this.set(e)}set(e,t,r){const n=this;function o(e,t,r){const o=pe(t);if(!o)throw new Error(\"header name must be a non-empty string\");const i=B.findKey(n,o);(!i||void 0===n[i]||!0===r||void 0===r&&!1!==n[i])&&(n[i||t]=ye(e))}const i=(e,t)=>B.forEach(e,((e,r)=>o(e,r,t)));return B.isPlainObject(e)||e instanceof this.constructor?i(e,t):B.isString(e)&&(e=e.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim())?i((e=>{const t={};let r,n,o;return e&&e.split(\"\\n\").forEach((function(e){o=e.indexOf(\":\"),r=e.substring(0,o).trim().toLowerCase(),n=e.substring(o+1).trim(),!r||t[r]&&le[r]||(\"set-cookie\"===r?t[r]?t[r].push(n):t[r]=[n]:t[r]=t[r]?t[r]+\", \"+n:n)})),t})(e),t):null!=e&&o(t,e,r),this}get(e,t){if(e=pe(e)){const r=B.findKey(this,e);if(r){const e=this[r];if(!t)return e;if(!0===t)return function(e){const t=Object.create(null),r=/([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;let n;for(;n=r.exec(e);)t[n[1]]=n[2];return t}(e);if(B.isFunction(t))return t.call(this,e,r);if(B.isRegExp(t))return t.exec(e);throw new TypeError(\"parser must be boolean|regexp|function\")}}}has(e,t){if(e=pe(e)){const r=B.findKey(this,e);return!(!r||void 0===this[r]||t&&!de(0,this[r],r,t))}return!1}delete(e,t){const r=this;let n=!1;function o(e){if(e=pe(e)){const o=B.findKey(r,e);!o||t&&!de(0,r[o],o,t)||(delete r[o],n=!0)}}return B.isArray(e)?e.forEach(o):o(e),n}clear(e){const t=Object.keys(this);let r=t.length,n=!1;for(;r--;){const o=t[r];e&&!de(0,this[o],o,e,!0)||(delete this[o],n=!0)}return n}normalize(e){const t=this,r={};return B.forEach(this,((n,o)=>{const i=B.findKey(r,o);if(i)return t[i]=ye(n),void delete t[o];const a=e?function(e){return e.trim().toLowerCase().replace(/([a-z\\d])(\\w*)/g,((e,t,r)=>t.toUpperCase()+r))}(o):String(o).trim();a!==o&&delete t[o],t[a]=ye(n),r[a]=!0})),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);return B.forEach(this,((r,n)=>{null!=r&&!1!==r&&(t[n]=e&&B.isArray(r)?r.join(\", \"):r)})),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map((([e,t])=>e+\": \"+t)).join(\"\\n\")}get[Symbol.toStringTag](){return\"AxiosHeaders\"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){const r=new this(e);return t.forEach((e=>r.set(e))),r}static accessor(e){const t=(this[fe]=this[fe]={accessors:{}}).accessors,r=this.prototype;function n(e){const n=pe(e);t[n]||(function(e,t){const r=B.toCamelCase(\" \"+t);[\"get\",\"set\",\"has\"].forEach((n=>{Object.defineProperty(e,n+r,{value:function(e,r,o){return this[n].call(this,t,e,r,o)},configurable:!0})}))}(r,e),t[n]=!0)}return B.isArray(e)?e.forEach(n):n(e),this}}he.accessor([\"Content-Type\",\"Content-Length\",\"Accept\",\"Accept-Encoding\",\"User-Agent\",\"Authorization\"]),B.reduceDescriptors(he.prototype,(({value:e},t)=>{let r=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[r]=e}}})),B.freezeMethods(he);var me=he;function ge(e,t){const r=this||ue,n=t||r,o=me.from(n.headers);let i=n.data;return B.forEach(e,(function(e){i=e.call(r,i,o.normalize(),t?t.status:void 0)})),o.normalize(),i}function be(e){return!(!e||!e.__CANCEL__)}function ve(e,t,r){q.call(this,null==e?\"canceled\":e,q.ERR_CANCELED,t,r),this.name=\"CanceledError\"}B.inherits(ve,q,{__CANCEL__:!0});var we=ve,Oe=ae.hasStandardBrowserEnv?{write(e,t,r,n,o,i){const a=[e+\"=\"+encodeURIComponent(t)];B.isNumber(r)&&a.push(\"expires=\"+new Date(r).toGMTString()),B.isString(n)&&a.push(\"path=\"+n),B.isString(o)&&a.push(\"domain=\"+o),!0===i&&a.push(\"secure\"),document.cookie=a.join(\"; \")},read(e){const t=document.cookie.match(new RegExp(\"(^|;\\\\s*)(\"+e+\")=([^;]*)\"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,\"\",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function Se(e,t){return e&&!/^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(t)?function(e,t){return t?e.replace(/\\/?\\/$/,\"\")+\"/\"+t.replace(/^\\/+/,\"\"):e}(e,t):t}var je=ae.hasStandardBrowserEnv?function(){const e=/(msie|trident)/i.test(navigator.userAgent),t=document.createElement(\"a\");let r;function n(r){let n=r;return e&&(t.setAttribute(\"href\",n),n=t.href),t.setAttribute(\"href\",n),{href:t.href,protocol:t.protocol?t.protocol.replace(/:$/,\"\"):\"\",host:t.host,search:t.search?t.search.replace(/^\\?/,\"\"):\"\",hash:t.hash?t.hash.replace(/^#/,\"\"):\"\",hostname:t.hostname,port:t.port,pathname:\"/\"===t.pathname.charAt(0)?t.pathname:\"/\"+t.pathname}}return r=n(window.location.href),function(e){const t=B.isString(e)?n(e):e;return t.protocol===r.protocol&&t.host===r.host}}():function(){return!0};function Ae(e,t){let r=0;const n=function(e,t){e=e||10;const r=new Array(e),n=new Array(e);let o,i=0,a=0;return t=void 0!==t?t:1e3,function(s){const c=Date.now(),u=n[a];o||(o=c),r[i]=s,n[i]=c;let l=a,f=0;for(;l!==i;)f+=r[l++],l%=e;if(i=(i+1)%e,i===a&&(a=(a+1)%e),c-o{const i=o.loaded,a=o.lengthComputable?o.total:void 0,s=i-r,c=n(s);r=i;const u={loaded:i,total:a,progress:a?i/a:void 0,bytes:s,rate:c||void 0,estimated:c&&a&&i<=a?(a-i)/c:void 0,event:o};u[t?\"download\":\"upload\"]=!0,e(u)}}const Ee={http:null,xhr:\"undefined\"!=typeof XMLHttpRequest&&function(e){return new Promise((function(t,r){let n=e.data;const o=me.from(e.headers).normalize();let i,a,{responseType:s,withXSRFToken:c}=e;function u(){e.cancelToken&&e.cancelToken.unsubscribe(i),e.signal&&e.signal.removeEventListener(\"abort\",i)}if(B.isFormData(n))if(ae.hasStandardBrowserEnv||ae.hasStandardBrowserWebWorkerEnv)o.setContentType(!1);else if(!1!==(a=o.getContentType())){const[e,...t]=a?a.split(\";\").map((e=>e.trim())).filter(Boolean):[];o.setContentType([e||\"multipart/form-data\",...t].join(\"; \"))}let l=new XMLHttpRequest;if(e.auth){const t=e.auth.username||\"\",r=e.auth.password?unescape(encodeURIComponent(e.auth.password)):\"\";o.set(\"Authorization\",\"Basic \"+btoa(t+\":\"+r))}const f=Se(e.baseURL,e.url);function p(){if(!l)return;const n=me.from(\"getAllResponseHeaders\"in l&&l.getAllResponseHeaders());!function(e,t,r){const n=r.config.validateStatus;r.status&&n&&!n(r.status)?t(new q(\"Request failed with status code \"+r.status,[q.ERR_BAD_REQUEST,q.ERR_BAD_RESPONSE][Math.floor(r.status/100)-4],r.config,r.request,r)):e(r)}((function(e){t(e),u()}),(function(e){r(e),u()}),{data:s&&\"text\"!==s&&\"json\"!==s?l.response:l.responseText,status:l.status,statusText:l.statusText,headers:n,config:e,request:l}),l=null}if(l.open(e.method.toUpperCase(),Z(f,e.params,e.paramsSerializer),!0),l.timeout=e.timeout,\"onloadend\"in l?l.onloadend=p:l.onreadystatechange=function(){l&&4===l.readyState&&(0!==l.status||l.responseURL&&0===l.responseURL.indexOf(\"file:\"))&&setTimeout(p)},l.onabort=function(){l&&(r(new q(\"Request aborted\",q.ECONNABORTED,e,l)),l=null)},l.onerror=function(){r(new q(\"Network Error\",q.ERR_NETWORK,e,l)),l=null},l.ontimeout=function(){let t=e.timeout?\"timeout of \"+e.timeout+\"ms exceeded\":\"timeout exceeded\";const n=e.transitional||ee;e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),r(new q(t,n.clarifyTimeoutError?q.ETIMEDOUT:q.ECONNABORTED,e,l)),l=null},ae.hasStandardBrowserEnv&&(c&&B.isFunction(c)&&(c=c(e)),c||!1!==c&&je(f))){const t=e.xsrfHeaderName&&e.xsrfCookieName&&Oe.read(e.xsrfCookieName);t&&o.set(e.xsrfHeaderName,t)}void 0===n&&o.setContentType(null),\"setRequestHeader\"in l&&B.forEach(o.toJSON(),(function(e,t){l.setRequestHeader(t,e)})),B.isUndefined(e.withCredentials)||(l.withCredentials=!!e.withCredentials),s&&\"json\"!==s&&(l.responseType=e.responseType),\"function\"==typeof e.onDownloadProgress&&l.addEventListener(\"progress\",Ae(e.onDownloadProgress,!0)),\"function\"==typeof e.onUploadProgress&&l.upload&&l.upload.addEventListener(\"progress\",Ae(e.onUploadProgress)),(e.cancelToken||e.signal)&&(i=t=>{l&&(r(!t||t.type?new we(null,e,l):t),l.abort(),l=null)},e.cancelToken&&e.cancelToken.subscribe(i),e.signal&&(e.signal.aborted?i():e.signal.addEventListener(\"abort\",i)));const y=function(e){const t=/^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(e);return t&&t[1]||\"\"}(f);y&&-1===ae.protocols.indexOf(y)?r(new q(\"Unsupported protocol \"+y+\":\",q.ERR_BAD_REQUEST,e)):l.send(n||null)}))}};B.forEach(Ee,((e,t)=>{if(e){try{Object.defineProperty(e,\"name\",{value:t})}catch(e){}Object.defineProperty(e,\"adapterName\",{value:t})}}));const xe=e=>`- ${e}`,Pe=e=>B.isFunction(e)||null===e||!1===e;var Re=e=>{e=B.isArray(e)?e:[e];const{length:t}=e;let r,n;const o={};for(let i=0;i`adapter ${e} `+(!1===t?\"is not supported by the environment\":\"is not available in the build\")));let r=t?e.length>1?\"since :\\n\"+e.map(xe).join(\"\\n\"):\" \"+xe(e[0]):\"as no adapter specified\";throw new q(\"There is no suitable adapter to dispatch the request \"+r,\"ERR_NOT_SUPPORT\")}return n};function ke(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new we(null,e)}function Te(e){return ke(e),e.headers=me.from(e.headers),e.data=ge.call(e,e.transformRequest),-1!==[\"post\",\"put\",\"patch\"].indexOf(e.method)&&e.headers.setContentType(\"application/x-www-form-urlencoded\",!1),Re(e.adapter||ue.adapter)(e).then((function(t){return ke(e),t.data=ge.call(e,e.transformResponse,t),t.headers=me.from(t.headers),t}),(function(t){return be(t)||(ke(e),t&&t.response&&(t.response.data=ge.call(e,e.transformResponse,t.response),t.response.headers=me.from(t.response.headers))),Promise.reject(t)}))}const Le=e=>e instanceof me?e.toJSON():e;function Ue(e,t){t=t||{};const r={};function n(e,t,r){return B.isPlainObject(e)&&B.isPlainObject(t)?B.merge.call({caseless:r},e,t):B.isPlainObject(t)?B.merge({},t):B.isArray(t)?t.slice():t}function o(e,t,r){return B.isUndefined(t)?B.isUndefined(e)?void 0:n(void 0,e,r):n(e,t,r)}function i(e,t){if(!B.isUndefined(t))return n(void 0,t)}function a(e,t){return B.isUndefined(t)?B.isUndefined(e)?void 0:n(void 0,e):n(void 0,t)}function s(r,o,i){return i in t?n(r,o):i in e?n(void 0,r):void 0}const c={url:i,method:i,data:i,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,withXSRFToken:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,beforeRedirect:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:s,headers:(e,t)=>o(Le(e),Le(t),!0)};return B.forEach(Object.keys(Object.assign({},e,t)),(function(n){const i=c[n]||o,a=i(e[n],t[n],n);B.isUndefined(a)&&i!==s||(r[n]=a)})),r}const Ne={};[\"object\",\"boolean\",\"number\",\"function\",\"string\",\"symbol\"].forEach(((e,t)=>{Ne[e]=function(r){return typeof r===e||\"a\"+(t<1?\"n \":\" \")+e}}));const _e={};Ne.transitional=function(e,t,r){function n(e,t){return\"[Axios v1.6.4] Transitional option '\"+e+\"'\"+t+(r?\". \"+r:\"\")}return(r,o,i)=>{if(!1===e)throw new q(n(o,\" has been removed\"+(t?\" in \"+t:\"\")),q.ERR_DEPRECATED);return t&&!_e[o]&&(_e[o]=!0,console.warn(n(o,\" has been deprecated since v\"+t+\" and will be removed in the near future\"))),!e||e(r,o,i)}};var Fe={assertOptions:function(e,t,r){if(\"object\"!=typeof e)throw new q(\"options must be an object\",q.ERR_BAD_OPTION_VALUE);const n=Object.keys(e);let o=n.length;for(;o-- >0;){const i=n[o],a=t[i];if(a){const t=e[i],r=void 0===t||a(t,i,e);if(!0!==r)throw new q(\"option \"+i+\" must be \"+r,q.ERR_BAD_OPTION_VALUE)}else if(!0!==r)throw new q(\"Unknown option \"+i,q.ERR_BAD_OPTION)}},validators:Ne};const Ce=Fe.validators;class Be{constructor(e){this.defaults=e,this.interceptors={request:new Y,response:new Y}}request(e,t){\"string\"==typeof e?(t=t||{}).url=e:t=e||{},t=Ue(this.defaults,t);const{transitional:r,paramsSerializer:n,headers:o}=t;void 0!==r&&Fe.assertOptions(r,{silentJSONParsing:Ce.transitional(Ce.boolean),forcedJSONParsing:Ce.transitional(Ce.boolean),clarifyTimeoutError:Ce.transitional(Ce.boolean)},!1),null!=n&&(B.isFunction(n)?t.paramsSerializer={serialize:n}:Fe.assertOptions(n,{encode:Ce.function,serialize:Ce.function},!0)),t.method=(t.method||this.defaults.method||\"get\").toLowerCase();let i=o&&B.merge(o.common,o[t.method]);o&&B.forEach([\"delete\",\"get\",\"head\",\"post\",\"put\",\"patch\",\"common\"],(e=>{delete o[e]})),t.headers=me.concat(i,o);const a=[];let s=!0;this.interceptors.request.forEach((function(e){\"function\"==typeof e.runWhen&&!1===e.runWhen(t)||(s=s&&e.synchronous,a.unshift(e.fulfilled,e.rejected))}));const c=[];let u;this.interceptors.response.forEach((function(e){c.push(e.fulfilled,e.rejected)}));let l,f=0;if(!s){const e=[Te.bind(this),void 0];for(e.unshift.apply(e,a),e.push.apply(e,c),l=e.length,u=Promise.resolve(t);f{if(!r._listeners)return;let t=r._listeners.length;for(;t-- >0;)r._listeners[t](e);r._listeners=null})),this.promise.then=e=>{let t;const n=new Promise((e=>{r.subscribe(e),t=e})).then(e);return n.cancel=function(){r.unsubscribe(t)},n},e((function(e,n,o){r.reason||(r.reason=new we(e,n,o),t(r.reason))}))}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}static source(){let e;return{token:new De((function(t){e=t})),cancel:e}}}var Me=De;const qe={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(qe).forEach((([e,t])=>{qe[t]=e}));var We=qe;const ze=function e(r){const n=new Ie(r),o=t(Ie.prototype.request,n);return B.extend(o,Ie.prototype,n,{allOwnKeys:!0}),B.extend(o,n,null,{allOwnKeys:!0}),o.create=function(t){return e(Ue(r,t))},o}(ue);ze.Axios=Ie,ze.CanceledError=we,ze.CancelToken=Me,ze.isCancel=be,ze.VERSION=\"1.6.4\",ze.toFormData=G,ze.AxiosError=q,ze.Cancel=ze.CanceledError,ze.all=function(e){return Promise.all(e)},ze.spread=function(e){return function(t){return e.apply(null,t)}},ze.isAxiosError=function(e){return B.isObject(e)&&!0===e.isAxiosError},ze.mergeConfig=Ue,ze.AxiosHeaders=me,ze.formToJSON=e=>se(B.isHTMLForm(e)?new FormData(e):e),ze.getAdapter=Re,ze.HttpStatusCode=We,ze.default=ze;var He=ze,$e=r(581),Ge=r.n($e),Je=r(122),Ve=r.n(Je),Ke=r(451),Qe=r.n(Ke),Xe=r(930),Ze=r.n(Xe),Ye=r(261),et=r.n(Ye);function tt(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function rt(e){for(var t=1;t]+)>/g,(function(e,t){var r=i[t];return\"$\"+(Array.isArray(r)?r.join(\"$\"):r)})))}if(\"function\"==typeof o){var a=this;return e[Symbol.replace].call(this,r,(function(){var e=arguments;return\"object\"!=typeof e[e.length-1]&&(e=[].slice.call(e)).push(n(e,a)),o.apply(this,e)}))}return e[Symbol.replace].call(this,r,o)},ot.apply(this,arguments)}function it(e,t){return it=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},it(e,t)}function at(e,t){if(e){if(\"string\"==typeof e)return st(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return\"Object\"===r&&e.constructor&&(r=e.constructor.name),\"Map\"===r||\"Set\"===r?Array.from(e):\"Arguments\"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?st(e,t):void 0}}function st(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r1&&void 0!==arguments[1]?arguments[1]:7,r=t;if(ft.test(e)){var n,o=null===(n=e.match(ft))||void 0===n?void 0:n.groups;if(o&&o.value){var i=parseInt(o.value)/100;r=Math.round(t*i)}}return Math.min(30,Math.max(1,r))}function yt(e,t){return t(\"info\",\"Throttle request to \".concat(e,\"/s\")),Ze()({limit:e,interval:1e3,strict:!1})}var dt=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"auto\",r=e.defaults.logHandler,n=void 0===r?ct:r,o=Qe()(t)?pt(t):pt(\"auto\",t),i=yt(o,n),a=!1,s=e.interceptors.request.use((function(e){return i((function(){return e}))()}),(function(e){return Promise.reject(e)})),c=e.interceptors.response.use((function(r){if(!a&&Qe()(t)&&(\"auto\"===t||ft.test(t))&&r.headers&&r.headers[\"x-contentful-ratelimit-second-limit\"]){var c=parseInt(r.headers[\"x-contentful-ratelimit-second-limit\"]),u=pt(t,c);u!==o&&(s&&e.interceptors.request.eject(s),o=u,i=yt(u,n),s=e.interceptors.request.use((function(e){return i((function(){return e}))()}),(function(e){return Promise.reject(e)}))),a=!0}return r}),(function(e){return Promise.reject(e)}));return function(){e.interceptors.request.eject(s),e.interceptors.response.eject(c)}},ht=/^(?!\\w+:\\/\\/)([^\\s:]+\\.?[^\\s:]+)(?::(\\d+))?(?!:)$/;function mt(e,t){var r=rt(rt({},{insecure:!1,retryOnError:!0,logHandler:function(e,t){if(\"error\"===e&&t){var r=[t.name,t.message].filter((function(e){return e})).join(\" - \");return console.error(\"[error] \".concat(r)),void console.error(t)}console.log(\"[\".concat(e,\"] \").concat(t))},headers:{},httpAgent:!1,httpsAgent:!1,timeout:3e4,throttle:0,basePath:\"\",adapter:void 0,maxContentLength:1073741824,maxBodyLength:1073741824}),t);if(!r.accessToken){var n=new TypeError(\"Expected parameter accessToken\");throw r.logHandler(\"error\",n),n}var o,i,a=r.insecure?\"http\":\"https\",s=r.space?\"\".concat(r.space,\"/\"):\"\",c=r.defaultHostname,u=r.insecure?80:443;if(r.host&&ht.test(r.host)){var l=r.host.split(\":\");if(2===l.length){var f=(i=2,function(e){if(Array.isArray(e))return e}(o=l)||function(e,t){var r=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=r){var n,o,i,a,s=[],c=!0,u=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=i.call(r)).done)&&(s.push(n.value),s.length!==t);c=!0);}catch(e){u=!0,o=e}finally{try{if(!c&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(u)throw o}}return s}}(o,i)||at(o,i)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}());c=f[0],u=f[1]}else c=l[0]}r.basePath&&(r.basePath=\"/\".concat(r.basePath.split(\"/\").filter(Boolean).join(\"/\")));var p=t.baseURL||\"\".concat(a,\"://\").concat(c,\":\").concat(u).concat(r.basePath,\"/spaces/\").concat(s);r.headers.Authorization||\"function\"==typeof r.accessToken||(r.headers.Authorization=\"Bearer \"+r.accessToken);var y={baseURL:p,headers:r.headers,httpAgent:r.httpAgent,httpsAgent:r.httpsAgent,proxy:r.proxy,timeout:r.timeout,adapter:r.adapter,maxContentLength:r.maxContentLength,maxBodyLength:r.maxBodyLength,paramsSerializer:{serialize:function(e){return Ve().stringify(e)}},logHandler:r.logHandler,responseLogger:r.responseLogger,requestLogger:r.requestLogger,retryOnError:r.retryOnError},d=e.create(y);return d.httpClientParams=t,d.cloneWithNewParams=function(r){return mt(e,rt(rt({},Ge()(t)),r))},r.onBeforeRequest&&d.interceptors.request.use(r.onBeforeRequest),\"function\"==typeof r.accessToken&&function(e,t){e.interceptors.request.use((function(e){return t().then((function(t){return e.headers.set(\"Authorization\",\"Bearer \".concat(t)),e}))}))}(d,r.accessToken),r.throttle&&dt(d,r.throttle),function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:5,r=e.defaults,n=r.responseLogger,o=void 0===n?ct:n,i=r.requestLogger,a=void 0===i?ct:i;e.interceptors.request.use((function(e){return a(e),e}),(function(e){return a(e),Promise.reject(e)})),e.interceptors.response.use((function(e){return o(e),e}),(function(r){var n=r.response,i=r.config;if(o(r),!i||!e.defaults.retryOnError)return Promise.reject(r);var a=i.attempts||1;if(a>t)return r.attempts=i.attempts,Promise.reject(r);var s=null,c=lt(a);return n?n.status>=500&&n.status<600?s=\"Server \".concat(n.status):429===n.status&&(s=\"Rate limit\",n.headers&&r.response.headers[\"x-contentful-ratelimit-reset\"]&&(c=n.headers[\"x-contentful-ratelimit-reset\"])):s=\"Connection\",s?(c=Math.floor(1e3*c+200*Math.random()+500),e.defaults.logHandler(\"warning\",\"\".concat(s,\" error occurred. Waiting for \").concat(c,\" ms before retrying...\")),i.attempts=a+1,delete i.httpAgent,delete i.httpsAgent,ut(c).then((function(){return e(i)}))):Promise.reject(r)}))}(d,r.retryLimit),r.onError&&d.interceptors.response.use((function(e){return e}),r.onError),d}function gt(e){var t=e.query,r={};return delete t.resolveLinks,r.params=Ge()(t),r}function bt(e){var t,r=function(e,t){var r=\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(!r){if(Array.isArray(e)||(r=at(e))){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var i,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}(Object.getOwnPropertyNames(e));try{for(r.s();!(t=r.n()).done;){var n=e[t.value];n&&\"object\"===nt(n)&&bt(n)}}catch(e){r.e(e)}finally{r.f()}return Object.freeze(e)}function vt(){var e=window;if(!e)return null;var t=e.navigator.userAgent,r=e.navigator.platform;return-1!==[\"Macintosh\",\"MacIntel\",\"MacPPC\",\"Mac68K\"].indexOf(r)?\"macOS\":-1!==[\"iPhone\",\"iPad\",\"iPod\"].indexOf(r)?\"iOS\":-1!==[\"Win32\",\"Win64\",\"Windows\",\"WinCE\"].indexOf(r)?\"Windows\":/Android/.test(t)?\"Android\":/Linux/.test(r)?\"Linux\":null}function wt(e){return Object.defineProperty(e,\"toPlainObject\",{enumerable:!1,configurable:!1,writable:!1,value:function(){return Ge()(this)}})}function Ot(e){var t,r=e.config,n=e.response;if(r&&r.headers&&r.headers.Authorization){var o=\"...\".concat(r.headers.Authorization.toString().substr(-5));r.headers.Authorization=\"Bearer \".concat(o)}if(!et()(n)||!et()(r))throw e;var i,a=null==n?void 0:n.data,s={status:null==n?void 0:n.status,statusText:null==n?void 0:n.statusText,message:\"\",details:{}};r&&et()(r)&&(s.request={url:r.url,headers:r.headers,method:r.method,payloadData:r.data}),a&&\"object\"===nt(a)&&(\"requestId\"in a&&(s.requestId=a.requestId||\"UNKNOWN\"),\"message\"in a&&(s.message=a.message||\"\"),\"details\"in a&&(s.details=a.details||{}),t=null===(i=a.sys)||void 0===i?void 0:i.id);var c=new Error;c.name=t&&\"Unknown\"!==t?t:\"\".concat(null==n?void 0:n.status,\" \").concat(null==n?void 0:n.statusText);try{c.message=JSON.stringify(s,null,\" \")}catch(e){var u;c.message=null!==(u=null==s?void 0:s.message)&&void 0!==u?u:\"\"}throw c}function St(e){return function(t){return Object.assign({},e,t)}}var jt=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e};function At(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);t({sys:{type:\"Link\",linkType:\"Entry\",id:t.sys.id,circular:!0}})))}})}async function Nt(e,t,r){if(!t||!t.initial&&!t.nextSyncToken&&!t.nextPageToken)throw new Error(\"Please provide one of `initial`, `nextSyncToken` or `nextPageToken` parameters for syncing\");if(t.content_type&&!t.type)t.type=\"Entry\";else if(t.content_type&&t.type&&\"Entry\"!==t.type)throw new Error(\"When using the `content_type` filter your `type` parameter cannot be different from `Entry`.\");const{withoutLinkResolution:n,withoutUnresolvableLinks:o,paginate:i}={withoutLinkResolution:!1,withoutUnresolvableLinks:!1,paginate:!0,...r},a=await _t(e,[],t,{paginate:i});n||(a.items=kt(a,{removeUnresolved:o,itemEntryPoints:[\"fields\"]}));const s=function(e){const t=e=>(t,r)=>(r.sys.type===e&&t.push(wt(r)),t);return{entries:e.reduce(t(\"Entry\"),[]),assets:e.reduce(t(\"Asset\"),[]),deletedEntries:e.reduce(t(\"DeletedEntry\"),[]),deletedAssets:e.reduce(t(\"DeletedAsset\"),[])}}(a.items);return a.nextSyncToken&&(s.nextSyncToken=a.nextSyncToken),a.nextPageToken&&(s.nextPageToken=a.nextPageToken),bt((c=Ut(wt(s))).sys||{}),c;var c}async function _t(e,t,r,{paginate:n}){const o=(i=r).nextPageToken?{sync_token:i.nextPageToken}:i.nextSyncToken?{sync_token:i.nextSyncToken}:i.sync_token?{sync_token:i.sync_token}:i;var i;const a=(await e.get(\"sync\",gt({query:o}))).data||{};return t=t.concat(a.items||[]),a.nextPageUrl?n?(delete o.initial,o.sync_token=Ft(a.nextPageUrl),_t(e,t,o,{paginate:n})):{items:t,nextPageToken:Ft(a.nextPageUrl)}:a.nextSyncUrl?{items:t,nextSyncToken:Ft(a.nextSyncUrl)}:{items:[]}}function Ft(e){const t=e.split(\"?\");return t.length>0?t[1].replace(\"sync_token=\",\"\"):\"\"}function Ct(e){const t={};let r=!1;for(const n in e)Array.isArray(e[n])&&(t[n]=e[n].join(\",\"),r=!0);return r?{...e,...t}:e}function Bt(e){if(!e.select)return e;const t=Array.isArray(e.select)?e.select:e.select.split(\",\").map((e=>e.trim())),r=new Set(t);return r.has(\"sys\")?e:(r.add(\"sys.id\"),r.add(\"sys.type\"),{...e,select:[...r].join(\",\")})}function It(e,{resolveLinks:t,removeUnresolved:r}){const n=Ut(e);return t&&(n.items=kt(n,{removeUnresolved:r,itemEntryPoints:[\"fields\"]})),n}class Dt extends Error{constructor(e,t){super(`Invalid \"${e}\" provided, `+t),this.name=\"ValidationError\"}}function Mt(e,t){t?function(e){if(e.locale)throw new Dt(\"locale\",\"The `locale` parameter is not allowed\")}(e):function(e){if(\"*\"===e.locale)throw new Dt(\"locale\",\"The use of locale='*' is no longer supported.To fetch an entry in all existing locales, \\n use client.withAllLocales instead of the locale='*' parameter.\")}(e)}function qt(e){if(\"resolveLinks\"in e)throw new Dt(\"resolveLinks\",\"The use of the 'resolveLinks' parameter is no longer supported. By default, links are resolved. \\n If you do not want to resolve links, use client.withoutLinkResolution.\")}function Wt(e){if(\"removeUnresolved\"in e)throw new Dt(\"removeUnresolved\",\"The use of the 'removeUnresolved' parameter is no longer supported. By default, unresolved links are kept as link objects.\\n If you do not want to include unresolved links, use client.withoutUnresolvableLinks.\")}function zt(e){for(const t in e){const r=e[t];if(\"object\"==typeof r&&null!==r&&!Array.isArray(r))throw new Error(`Objects are not supported as value for the \"${t}\" query parameter.`)}}class Ht extends Error{sys;details;constructor(e,t,r){super(\"The resource could not be found.\"),this.sys={type:\"Error\",id:\"NotFound\"},this.details={type:\"Entry\",id:e,environment:t,space:r}}}function $t({http:e,getGlobalOptions:t},r){const n=(e=\"unknown\")=>new Ht(e,t().environment,t().space),o=e=>{let r=\"space\"===e?t().spaceBaseUrl:t().environmentBaseUrl;if(!r)throw new Error(\"Please define baseUrl for \"+e);return r.endsWith(\"/\")||(r+=\"/\"),r};async function i({context:t,path:r,config:n}){const i=o(t);try{return(await e.get(i+r,n)).data}catch(e){Ot(e)}}async function a(e,t){const{withoutLinkResolution:r,withoutUnresolvableLinks:n}=t;try{return It(await i({context:\"environment\",path:\"entries\",config:gt({query:Ct(Bt(e))})}),{resolveLinks:!r??!0,removeUnresolved:n??!1})}catch(e){Ot(e)}}return{version:\"10.6.21\",getSpace:async function(){return i({context:\"space\",path:\"\"})},getContentType:async function(e){return i({context:\"environment\",path:`content_types/${e}`})},getContentTypes:async function(e={}){return i({context:\"environment\",path:\"content_types\",config:gt({query:e})})},getAsset:async function(e,t={}){return async function(e,t,r={withAllLocales:!1,withoutLinkResolution:!1,withoutUnresolvableLinks:!1}){const{withAllLocales:n}=r;Mt(t,n),zt(t);return async function(e,t){try{return i({context:\"environment\",path:`assets/${e}`,config:gt({query:Bt(t)})})}catch(e){Ot(e)}}(e,n?{...t,locale:\"*\"}:t)}(e,t,r)},getAssets:async function(e={}){return async function(e,t={withAllLocales:!1,withoutLinkResolution:!1,withoutUnresolvableLinks:!1}){const{withAllLocales:r}=t;Mt(e,r),zt(e);return async function(e){try{return i({context:\"environment\",path:\"assets\",config:gt({query:Ct(Bt(e))})})}catch(e){Ot(e)}}(r?{...e,locale:\"*\"}:e)}(e,r)},getTag:async function(e){return i({context:\"environment\",path:`tags/${e}`})},getTags:async function(e={}){return zt(e),i({context:\"environment\",path:\"tags\",config:gt({query:Ct(Bt(e))})})},getLocales:async function(e={}){return zt(e),i({context:\"environment\",path:\"locales\",config:gt({query:Bt(e)})})},parseEntries:function(e){return function(e,t={withAllLocales:!1,withoutLinkResolution:!1,withoutUnresolvableLinks:!1}){return function(e,t){const{withoutLinkResolution:r,withoutUnresolvableLinks:n}=t;return It(e,{resolveLinks:!r??!0,removeUnresolved:n??!1})}(e,t)}(e,r)},sync:async function(n,o={paginate:!0}){return async function(r,n,o={withAllLocales:!1,withoutLinkResolution:!1,withoutUnresolvableLinks:!1}){qt(r),Wt(r);const i={...n,...o};return function(e){e.defaults.baseURL=t().environmentBaseUrl}(e),Nt(e,r,i)}(n,o,r)},getEntry:async function(e,t={}){return async function(e,t,r={withAllLocales:!1,withoutLinkResolution:!1,withoutUnresolvableLinks:!1}){const{withAllLocales:o}=r;return Mt(t,o),qt(t),Wt(t),zt(t),async function(e,t,r){if(!e)throw n(e);try{const o=await a({\"sys.id\":e,...t},r);if(o.items.length>0)return o.items[0];throw n(e)}catch(e){Ot(e)}}(e,o?{...t,locale:\"*\"}:t,r)}(e,t,r)},getEntries:async function(e={}){return async function(e,t={withAllLocales:!1,withoutLinkResolution:!1,withoutUnresolvableLinks:!1}){const{withAllLocales:r}=t;return Mt(e,r),qt(e),Wt(e),zt(e),a(r?{...e,locale:\"*\"}:e,t)}(e,r)},createAssetKey:async function(t){try{const e=Math.floor(Date.now()/1e3);!function(e,t,r){if(r=r||{},\"number\"!=typeof t)throw new Dt(e,`only numeric values are allowed for timestamps, provided type was \"${typeof t}\"`);if(r.maximum&&t>r.maximum)throw new Dt(e,`value (${t}) cannot be further in the future than expected maximum (${r.maximum})`);if(r.now&&t{function r(n){return function({http:e,getGlobalOptions:t},r,n){const o=$t({http:e,getGlobalOptions:t},r);return Object.defineProperty(o,\"withAllLocales\",{get:()=>n({...r,withAllLocales:!0})}),Object.defineProperty(o,\"withoutLinkResolution\",{get:()=>n({...r,withoutLinkResolution:!0})}),Object.defineProperty(o,\"withoutUnresolvableLinks\",{get:()=>n({...r,withoutUnresolvableLinks:!0})}),Object.create(o)}({http:e,getGlobalOptions:t},n,r)}return{...$t({http:e,getGlobalOptions:t},{withoutLinkResolution:!1,withAllLocales:!1,withoutUnresolvableLinks:!1}),get withAllLocales(){return r({withAllLocales:!0,withoutLinkResolution:!1,withoutUnresolvableLinks:!1})},get withoutLinkResolution(){return r({withAllLocales:!1,withoutLinkResolution:!0,withoutUnresolvableLinks:!1})},get withoutUnresolvableLinks(){return r({withAllLocales:!1,withoutLinkResolution:!1,withoutUnresolvableLinks:!0})}}};function Jt(e){if(!e.accessToken)throw new TypeError(\"Expected parameter accessToken\");if(!e.space)throw new TypeError(\"Expected parameter space\");qt(e),Wt(e);const t={resolveLinks:!0,removeUnresolved:!1,defaultHostname:\"cdn.contentful.com\",environment:\"master\",...e},r=function(e,t,r,n){var o=[];t&&o.push(\"app \".concat(t)),r&&o.push(\"integration \".concat(r)),n&&o.push(\"feature \"+n),o.push(\"sdk \".concat(e));var i=null;try{\"undefined\"!=typeof window&&\"navigator\"in window&&\"product\"in window.navigator&&\"ReactNative\"===window.navigator.product?(i=vt(),o.push(\"platform ReactNative\")):\"undefined\"==typeof process||process.browser?(i=vt(),o.push(\"platform browser\")):(i=function(){var e=process.platform||\"linux\",t=process.version||\"0.0.0\",r={android:\"Android\",aix:\"Linux\",darwin:\"macOS\",freebsd:\"Linux\",linux:\"Linux\",openbsd:\"Linux\",sunos:\"Linux\",win32:\"Windows\"};return e in r?\"\".concat(r[e]||\"Linux\",\"/\").concat(t):null}(),o.push(\"platform node.js/\".concat(process.versions&&process.versions.node?\"v\".concat(process.versions.node):process.version)))}catch(e){i=null}return i&&o.push(\"os \".concat(i)),\"\".concat(o.filter((function(e){return\"\"!==e})).join(\"; \"),\";\")}(\"contentful.js/10.6.21\",t.application,t.integration);t.headers={...t.headers,\"Content-Type\":\"application/vnd.contentful.delivery.v1+json\",\"X-Contentful-User-Agent\":r};const n=mt(He,t);if(!n.defaults.baseURL)throw new Error(\"Please define a baseURL\");const o=St({space:t.space,environment:t.environment,spaceBaseUrl:n.defaults.baseURL,environmentBaseUrl:`${n.defaults.baseURL}environments/${t.environment}`});return n.defaults.baseURL=o({}).environmentBaseUrl,Gt({http:n,getGlobalOptions:o})}}(),n}()}));","var global = typeof self !== 'undefined' ? self : this;\nvar __self__ = (function () {\nfunction F() {\nthis.fetch = false;\nthis.DOMException = global.DOMException\n}\nF.prototype = global;\nreturn new F();\n})();\n(function(self) {\n\nvar irrelevant = (function (exports) {\n\n var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob:\n 'FileReader' in self &&\n 'Blob' in self &&\n (function() {\n try {\n new Blob();\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n };\n\n function isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ];\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n };\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name);\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value);\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift();\n return {done: value === undefined, value: value}\n }\n };\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n };\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {};\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value);\n }, this);\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1]);\n }, this);\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name]);\n }, this);\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name);\n value = normalizeValue(value);\n var oldValue = this.map[name];\n this.map[name] = oldValue ? oldValue + ', ' + value : value;\n };\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)];\n };\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name);\n return this.has(name) ? this.map[name] : null\n };\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n };\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value);\n };\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this);\n }\n }\n };\n\n Headers.prototype.keys = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push(name);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.values = function() {\n var items = [];\n this.forEach(function(value) {\n items.push(value);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.entries = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push([name, value]);\n });\n return iteratorFor(items)\n };\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries;\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true;\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result);\n };\n reader.onerror = function() {\n reject(reader.error);\n };\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsArrayBuffer(blob);\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsText(blob);\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf);\n var chars = new Array(view.length);\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i]);\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength);\n view.set(new Uint8Array(buf));\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false;\n\n this._initBody = function(body) {\n this._bodyInit = body;\n if (!body) {\n this._bodyText = '';\n } else if (typeof body === 'string') {\n this._bodyText = body;\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body;\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body;\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString();\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer);\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer]);\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body);\n } else {\n this._bodyText = body = Object.prototype.toString.call(body);\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8');\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type);\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n }\n };\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n };\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n };\n }\n\n this.text = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n };\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n };\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n };\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT'];\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase();\n return methods.indexOf(upcased) > -1 ? upcased : method\n }\n\n function Request(input, options) {\n options = options || {};\n var body = options.body;\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url;\n this.credentials = input.credentials;\n if (!options.headers) {\n this.headers = new Headers(input.headers);\n }\n this.method = input.method;\n this.mode = input.mode;\n this.signal = input.signal;\n if (!body && input._bodyInit != null) {\n body = input._bodyInit;\n input.bodyUsed = true;\n }\n } else {\n this.url = String(input);\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin';\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers);\n }\n this.method = normalizeMethod(options.method || this.method || 'GET');\n this.mode = options.mode || this.mode || null;\n this.signal = options.signal || this.signal;\n this.referrer = null;\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body);\n }\n\n Request.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n };\n\n function decode(body) {\n var form = new FormData();\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=');\n var name = split.shift().replace(/\\+/g, ' ');\n var value = split.join('=').replace(/\\+/g, ' ');\n form.append(decodeURIComponent(name), decodeURIComponent(value));\n }\n });\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers();\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ');\n preProcessedHeaders.split(/\\r?\\n/).forEach(function(line) {\n var parts = line.split(':');\n var key = parts.shift().trim();\n if (key) {\n var value = parts.join(':').trim();\n headers.append(key, value);\n }\n });\n return headers\n }\n\n Body.call(Request.prototype);\n\n function Response(bodyInit, options) {\n if (!options) {\n options = {};\n }\n\n this.type = 'default';\n this.status = options.status === undefined ? 200 : options.status;\n this.ok = this.status >= 200 && this.status < 300;\n this.statusText = 'statusText' in options ? options.statusText : 'OK';\n this.headers = new Headers(options.headers);\n this.url = options.url || '';\n this._initBody(bodyInit);\n }\n\n Body.call(Response.prototype);\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n };\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''});\n response.type = 'error';\n return response\n };\n\n var redirectStatuses = [301, 302, 303, 307, 308];\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n };\n\n exports.DOMException = self.DOMException;\n try {\n new exports.DOMException();\n } catch (err) {\n exports.DOMException = function(message, name) {\n this.message = message;\n this.name = name;\n var error = Error(message);\n this.stack = error.stack;\n };\n exports.DOMException.prototype = Object.create(Error.prototype);\n exports.DOMException.prototype.constructor = exports.DOMException;\n }\n\n function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init);\n\n if (request.signal && request.signal.aborted) {\n return reject(new exports.DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest();\n\n function abortXhr() {\n xhr.abort();\n }\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n };\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL');\n var body = 'response' in xhr ? xhr.response : xhr.responseText;\n resolve(new Response(body, options));\n };\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.onabort = function() {\n reject(new exports.DOMException('Aborted', 'AbortError'));\n };\n\n xhr.open(request.method, request.url, true);\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true;\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false;\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob';\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value);\n });\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr);\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr);\n }\n };\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit);\n })\n }\n\n fetch.polyfill = true;\n\n if (!self.fetch) {\n self.fetch = fetch;\n self.Headers = Headers;\n self.Request = Request;\n self.Response = Response;\n }\n\n exports.Headers = Headers;\n exports.Request = Request;\n exports.Response = Response;\n exports.fetch = fetch;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n return exports;\n\n})({});\n})(__self__);\n__self__.fetch.ponyfill = true;\n// Remove \"polyfill\" property added by whatwg-fetch\ndelete __self__.fetch.polyfill;\n// Choose between native implementation (global) or custom implementation (__self__)\n// var ctx = global.fetch ? global : __self__;\nvar ctx = __self__; // this line disable service worker support temporarily\nexports = ctx.fetch // To enable: import fetch from 'cross-fetch'\nexports.default = ctx.fetch // For TypeScript consumers without esModuleInterop.\nexports.fetch = ctx.fetch // To enable: import {fetch} from 'cross-fetch'\nexports.Headers = ctx.Headers\nexports.Request = ctx.Request\nexports.Response = ctx.Response\nmodule.exports = exports\n","'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn Object.propertyIsEnumerable.call(target, symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.attributeNames = exports.elementNames = void 0;\nexports.elementNames = new Map([\n \"altGlyph\",\n \"altGlyphDef\",\n \"altGlyphItem\",\n \"animateColor\",\n \"animateMotion\",\n \"animateTransform\",\n \"clipPath\",\n \"feBlend\",\n \"feColorMatrix\",\n \"feComponentTransfer\",\n \"feComposite\",\n \"feConvolveMatrix\",\n \"feDiffuseLighting\",\n \"feDisplacementMap\",\n \"feDistantLight\",\n \"feDropShadow\",\n \"feFlood\",\n \"feFuncA\",\n \"feFuncB\",\n \"feFuncG\",\n \"feFuncR\",\n \"feGaussianBlur\",\n \"feImage\",\n \"feMerge\",\n \"feMergeNode\",\n \"feMorphology\",\n \"feOffset\",\n \"fePointLight\",\n \"feSpecularLighting\",\n \"feSpotLight\",\n \"feTile\",\n \"feTurbulence\",\n \"foreignObject\",\n \"glyphRef\",\n \"linearGradient\",\n \"radialGradient\",\n \"textPath\",\n].map(function (val) { return [val.toLowerCase(), val]; }));\nexports.attributeNames = new Map([\n \"definitionURL\",\n \"attributeName\",\n \"attributeType\",\n \"baseFrequency\",\n \"baseProfile\",\n \"calcMode\",\n \"clipPathUnits\",\n \"diffuseConstant\",\n \"edgeMode\",\n \"filterUnits\",\n \"glyphRef\",\n \"gradientTransform\",\n \"gradientUnits\",\n \"kernelMatrix\",\n \"kernelUnitLength\",\n \"keyPoints\",\n \"keySplines\",\n \"keyTimes\",\n \"lengthAdjust\",\n \"limitingConeAngle\",\n \"markerHeight\",\n \"markerUnits\",\n \"markerWidth\",\n \"maskContentUnits\",\n \"maskUnits\",\n \"numOctaves\",\n \"pathLength\",\n \"patternContentUnits\",\n \"patternTransform\",\n \"patternUnits\",\n \"pointsAtX\",\n \"pointsAtY\",\n \"pointsAtZ\",\n \"preserveAlpha\",\n \"preserveAspectRatio\",\n \"primitiveUnits\",\n \"refX\",\n \"refY\",\n \"repeatCount\",\n \"repeatDur\",\n \"requiredExtensions\",\n \"requiredFeatures\",\n \"specularConstant\",\n \"specularExponent\",\n \"spreadMethod\",\n \"startOffset\",\n \"stdDeviation\",\n \"stitchTiles\",\n \"surfaceScale\",\n \"systemLanguage\",\n \"tableValues\",\n \"targetX\",\n \"targetY\",\n \"textLength\",\n \"viewBox\",\n \"viewTarget\",\n \"xChannelSelector\",\n \"yChannelSelector\",\n \"zoomAndPan\",\n].map(function (val) { return [val.toLowerCase(), val]; }));\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.render = void 0;\n/*\n * Module dependencies\n */\nvar ElementType = __importStar(require(\"domelementtype\"));\nvar entities_1 = require(\"entities\");\n/**\n * Mixed-case SVG and MathML tags & attributes\n * recognized by the HTML parser.\n *\n * @see https://html.spec.whatwg.org/multipage/parsing.html#parsing-main-inforeign\n */\nvar foreignNames_js_1 = require(\"./foreignNames.js\");\nvar unencodedElements = new Set([\n \"style\",\n \"script\",\n \"xmp\",\n \"iframe\",\n \"noembed\",\n \"noframes\",\n \"plaintext\",\n \"noscript\",\n]);\nfunction replaceQuotes(value) {\n return value.replace(/\"/g, \""\");\n}\n/**\n * Format attributes\n */\nfunction formatAttributes(attributes, opts) {\n var _a;\n if (!attributes)\n return;\n var encode = ((_a = opts.encodeEntities) !== null && _a !== void 0 ? _a : opts.decodeEntities) === false\n ? replaceQuotes\n : opts.xmlMode || opts.encodeEntities !== \"utf8\"\n ? entities_1.encodeXML\n : entities_1.escapeAttribute;\n return Object.keys(attributes)\n .map(function (key) {\n var _a, _b;\n var value = (_a = attributes[key]) !== null && _a !== void 0 ? _a : \"\";\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case attribute names */\n key = (_b = foreignNames_js_1.attributeNames.get(key)) !== null && _b !== void 0 ? _b : key;\n }\n if (!opts.emptyAttrs && !opts.xmlMode && value === \"\") {\n return key;\n }\n return \"\".concat(key, \"=\\\"\").concat(encode(value), \"\\\"\");\n })\n .join(\" \");\n}\n/**\n * Self-enclosing tags\n */\nvar singleTag = new Set([\n \"area\",\n \"base\",\n \"basefont\",\n \"br\",\n \"col\",\n \"command\",\n \"embed\",\n \"frame\",\n \"hr\",\n \"img\",\n \"input\",\n \"isindex\",\n \"keygen\",\n \"link\",\n \"meta\",\n \"param\",\n \"source\",\n \"track\",\n \"wbr\",\n]);\n/**\n * Renders a DOM node or an array of DOM nodes to a string.\n *\n * Can be thought of as the equivalent of the `outerHTML` of the passed node(s).\n *\n * @param node Node to be rendered.\n * @param options Changes serialization behavior\n */\nfunction render(node, options) {\n if (options === void 0) { options = {}; }\n var nodes = \"length\" in node ? node : [node];\n var output = \"\";\n for (var i = 0; i < nodes.length; i++) {\n output += renderNode(nodes[i], options);\n }\n return output;\n}\nexports.render = render;\nexports.default = render;\nfunction renderNode(node, options) {\n switch (node.type) {\n case ElementType.Root:\n return render(node.children, options);\n // @ts-expect-error We don't use `Doctype` yet\n case ElementType.Doctype:\n case ElementType.Directive:\n return renderDirective(node);\n case ElementType.Comment:\n return renderComment(node);\n case ElementType.CDATA:\n return renderCdata(node);\n case ElementType.Script:\n case ElementType.Style:\n case ElementType.Tag:\n return renderTag(node, options);\n case ElementType.Text:\n return renderText(node, options);\n }\n}\nvar foreignModeIntegrationPoints = new Set([\n \"mi\",\n \"mo\",\n \"mn\",\n \"ms\",\n \"mtext\",\n \"annotation-xml\",\n \"foreignObject\",\n \"desc\",\n \"title\",\n]);\nvar foreignElements = new Set([\"svg\", \"math\"]);\nfunction renderTag(elem, opts) {\n var _a;\n // Handle SVG / MathML in HTML\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case element names */\n elem.name = (_a = foreignNames_js_1.elementNames.get(elem.name)) !== null && _a !== void 0 ? _a : elem.name;\n /* Exit foreign mode at integration points */\n if (elem.parent &&\n foreignModeIntegrationPoints.has(elem.parent.name)) {\n opts = __assign(__assign({}, opts), { xmlMode: false });\n }\n }\n if (!opts.xmlMode && foreignElements.has(elem.name)) {\n opts = __assign(__assign({}, opts), { xmlMode: \"foreign\" });\n }\n var tag = \"<\".concat(elem.name);\n var attribs = formatAttributes(elem.attribs, opts);\n if (attribs) {\n tag += \" \".concat(attribs);\n }\n if (elem.children.length === 0 &&\n (opts.xmlMode\n ? // In XML mode or foreign mode, and user hasn't explicitly turned off self-closing tags\n opts.selfClosingTags !== false\n : // User explicitly asked for self-closing tags, even in HTML mode\n opts.selfClosingTags && singleTag.has(elem.name))) {\n if (!opts.xmlMode)\n tag += \" \";\n tag += \"/>\";\n }\n else {\n tag += \">\";\n if (elem.children.length > 0) {\n tag += render(elem.children, opts);\n }\n if (opts.xmlMode || !singleTag.has(elem.name)) {\n tag += \"\");\n }\n }\n return tag;\n}\nfunction renderDirective(elem) {\n return \"<\".concat(elem.data, \">\");\n}\nfunction renderText(elem, opts) {\n var _a;\n var data = elem.data || \"\";\n // If entities weren't decoded, no need to encode them back\n if (((_a = opts.encodeEntities) !== null && _a !== void 0 ? _a : opts.decodeEntities) !== false &&\n !(!opts.xmlMode &&\n elem.parent &&\n unencodedElements.has(elem.parent.name))) {\n data =\n opts.xmlMode || opts.encodeEntities !== \"utf8\"\n ? (0, entities_1.encodeXML)(data)\n : (0, entities_1.escapeText)(data);\n }\n return data;\n}\nfunction renderCdata(elem) {\n return \"\");\n}\nfunction renderComment(elem) {\n return \"\");\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Doctype = exports.CDATA = exports.Tag = exports.Style = exports.Script = exports.Comment = exports.Directive = exports.Text = exports.Root = exports.isTag = exports.ElementType = void 0;\n/** Types of elements found in htmlparser2's DOM */\nvar ElementType;\n(function (ElementType) {\n /** Type for the root element of a document */\n ElementType[\"Root\"] = \"root\";\n /** Type for Text */\n ElementType[\"Text\"] = \"text\";\n /** Type for */\n ElementType[\"Directive\"] = \"directive\";\n /** Type for */\n ElementType[\"Comment\"] = \"comment\";\n /** Type for `.\n this.sequenceIndex = Number(c === CharCodes.Lt);\n }\n };\n Tokenizer.prototype.stateCDATASequence = function (c) {\n if (c === Sequences.Cdata[this.sequenceIndex]) {\n if (++this.sequenceIndex === Sequences.Cdata.length) {\n this.state = State.InCommentLike;\n this.currentSequence = Sequences.CdataEnd;\n this.sequenceIndex = 0;\n this.sectionStart = this.index + 1;\n }\n }\n else {\n this.sequenceIndex = 0;\n this.state = State.InDeclaration;\n this.stateInDeclaration(c); // Reconsume the character\n }\n };\n /**\n * When we wait for one specific character, we can speed things up\n * by skipping through the buffer until we find it.\n *\n * @returns Whether the character was found.\n */\n Tokenizer.prototype.fastForwardTo = function (c) {\n while (++this.index < this.buffer.length + this.offset) {\n if (this.buffer.charCodeAt(this.index - this.offset) === c) {\n return true;\n }\n }\n /*\n * We increment the index at the end of the `parse` loop,\n * so set it to `buffer.length - 1` here.\n *\n * TODO: Refactor `parse` to increment index before calling states.\n */\n this.index = this.buffer.length + this.offset - 1;\n return false;\n };\n /**\n * Comments and CDATA end with `-->` and `]]>`.\n *\n * Their common qualities are:\n * - Their end sequences have a distinct character they start with.\n * - That character is then repeated, so we have to check multiple repeats.\n * - All characters but the start character of the sequence can be skipped.\n */\n Tokenizer.prototype.stateInCommentLike = function (c) {\n if (c === this.currentSequence[this.sequenceIndex]) {\n if (++this.sequenceIndex === this.currentSequence.length) {\n if (this.currentSequence === Sequences.CdataEnd) {\n this.cbs.oncdata(this.sectionStart, this.index, 2);\n }\n else {\n this.cbs.oncomment(this.sectionStart, this.index, 2);\n }\n this.sequenceIndex = 0;\n this.sectionStart = this.index + 1;\n this.state = State.Text;\n }\n }\n else if (this.sequenceIndex === 0) {\n // Fast-forward to the first character of the sequence\n if (this.fastForwardTo(this.currentSequence[0])) {\n this.sequenceIndex = 1;\n }\n }\n else if (c !== this.currentSequence[this.sequenceIndex - 1]) {\n // Allow long sequences, eg. --->, ]]]>\n this.sequenceIndex = 0;\n }\n };\n /**\n * HTML only allows ASCII alpha characters (a-z and A-Z) at the beginning of a tag name.\n *\n * XML allows a lot more characters here (@see https://www.w3.org/TR/REC-xml/#NT-NameStartChar).\n * We allow anything that wouldn't end the tag.\n */\n Tokenizer.prototype.isTagStartChar = function (c) {\n return this.xmlMode ? !isEndOfTagSection(c) : isASCIIAlpha(c);\n };\n Tokenizer.prototype.startSpecial = function (sequence, offset) {\n this.isSpecial = true;\n this.currentSequence = sequence;\n this.sequenceIndex = offset;\n this.state = State.SpecialStartSequence;\n };\n Tokenizer.prototype.stateBeforeTagName = function (c) {\n if (c === CharCodes.ExclamationMark) {\n this.state = State.BeforeDeclaration;\n this.sectionStart = this.index + 1;\n }\n else if (c === CharCodes.Questionmark) {\n this.state = State.InProcessingInstruction;\n this.sectionStart = this.index + 1;\n }\n else if (this.isTagStartChar(c)) {\n var lower = c | 0x20;\n this.sectionStart = this.index;\n if (!this.xmlMode && lower === Sequences.TitleEnd[2]) {\n this.startSpecial(Sequences.TitleEnd, 3);\n }\n else {\n this.state =\n !this.xmlMode && lower === Sequences.ScriptEnd[2]\n ? State.BeforeSpecialS\n : State.InTagName;\n }\n }\n else if (c === CharCodes.Slash) {\n this.state = State.BeforeClosingTagName;\n }\n else {\n this.state = State.Text;\n this.stateText(c);\n }\n };\n Tokenizer.prototype.stateInTagName = function (c) {\n if (isEndOfTagSection(c)) {\n this.cbs.onopentagname(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n };\n Tokenizer.prototype.stateBeforeClosingTagName = function (c) {\n if (isWhitespace(c)) {\n // Ignore\n }\n else if (c === CharCodes.Gt) {\n this.state = State.Text;\n }\n else {\n this.state = this.isTagStartChar(c)\n ? State.InClosingTagName\n : State.InSpecialComment;\n this.sectionStart = this.index;\n }\n };\n Tokenizer.prototype.stateInClosingTagName = function (c) {\n if (c === CharCodes.Gt || isWhitespace(c)) {\n this.cbs.onclosetag(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = State.AfterClosingTagName;\n this.stateAfterClosingTagName(c);\n }\n };\n Tokenizer.prototype.stateAfterClosingTagName = function (c) {\n // Skip everything until \">\"\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.state = State.Text;\n this.baseState = State.Text;\n this.sectionStart = this.index + 1;\n }\n };\n Tokenizer.prototype.stateBeforeAttributeName = function (c) {\n if (c === CharCodes.Gt) {\n this.cbs.onopentagend(this.index);\n if (this.isSpecial) {\n this.state = State.InSpecialTag;\n this.sequenceIndex = 0;\n }\n else {\n this.state = State.Text;\n }\n this.baseState = this.state;\n this.sectionStart = this.index + 1;\n }\n else if (c === CharCodes.Slash) {\n this.state = State.InSelfClosingTag;\n }\n else if (!isWhitespace(c)) {\n this.state = State.InAttributeName;\n this.sectionStart = this.index;\n }\n };\n Tokenizer.prototype.stateInSelfClosingTag = function (c) {\n if (c === CharCodes.Gt) {\n this.cbs.onselfclosingtag(this.index);\n this.state = State.Text;\n this.baseState = State.Text;\n this.sectionStart = this.index + 1;\n this.isSpecial = false; // Reset special state, in case of self-closing special tags\n }\n else if (!isWhitespace(c)) {\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n };\n Tokenizer.prototype.stateInAttributeName = function (c) {\n if (c === CharCodes.Eq || isEndOfTagSection(c)) {\n this.cbs.onattribname(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = State.AfterAttributeName;\n this.stateAfterAttributeName(c);\n }\n };\n Tokenizer.prototype.stateAfterAttributeName = function (c) {\n if (c === CharCodes.Eq) {\n this.state = State.BeforeAttributeValue;\n }\n else if (c === CharCodes.Slash || c === CharCodes.Gt) {\n this.cbs.onattribend(QuoteType.NoValue, this.index);\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n else if (!isWhitespace(c)) {\n this.cbs.onattribend(QuoteType.NoValue, this.index);\n this.state = State.InAttributeName;\n this.sectionStart = this.index;\n }\n };\n Tokenizer.prototype.stateBeforeAttributeValue = function (c) {\n if (c === CharCodes.DoubleQuote) {\n this.state = State.InAttributeValueDq;\n this.sectionStart = this.index + 1;\n }\n else if (c === CharCodes.SingleQuote) {\n this.state = State.InAttributeValueSq;\n this.sectionStart = this.index + 1;\n }\n else if (!isWhitespace(c)) {\n this.sectionStart = this.index;\n this.state = State.InAttributeValueNq;\n this.stateInAttributeValueNoQuotes(c); // Reconsume token\n }\n };\n Tokenizer.prototype.handleInAttributeValue = function (c, quote) {\n if (c === quote ||\n (!this.decodeEntities && this.fastForwardTo(quote))) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.cbs.onattribend(quote === CharCodes.DoubleQuote\n ? QuoteType.Double\n : QuoteType.Single, this.index);\n this.state = State.BeforeAttributeName;\n }\n else if (this.decodeEntities && c === CharCodes.Amp) {\n this.baseState = this.state;\n this.state = State.BeforeEntity;\n }\n };\n Tokenizer.prototype.stateInAttributeValueDoubleQuotes = function (c) {\n this.handleInAttributeValue(c, CharCodes.DoubleQuote);\n };\n Tokenizer.prototype.stateInAttributeValueSingleQuotes = function (c) {\n this.handleInAttributeValue(c, CharCodes.SingleQuote);\n };\n Tokenizer.prototype.stateInAttributeValueNoQuotes = function (c) {\n if (isWhitespace(c) || c === CharCodes.Gt) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.cbs.onattribend(QuoteType.Unquoted, this.index);\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n else if (this.decodeEntities && c === CharCodes.Amp) {\n this.baseState = this.state;\n this.state = State.BeforeEntity;\n }\n };\n Tokenizer.prototype.stateBeforeDeclaration = function (c) {\n if (c === CharCodes.OpeningSquareBracket) {\n this.state = State.CDATASequence;\n this.sequenceIndex = 0;\n }\n else {\n this.state =\n c === CharCodes.Dash\n ? State.BeforeComment\n : State.InDeclaration;\n }\n };\n Tokenizer.prototype.stateInDeclaration = function (c) {\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.cbs.ondeclaration(this.sectionStart, this.index);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n };\n Tokenizer.prototype.stateInProcessingInstruction = function (c) {\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.cbs.onprocessinginstruction(this.sectionStart, this.index);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n };\n Tokenizer.prototype.stateBeforeComment = function (c) {\n if (c === CharCodes.Dash) {\n this.state = State.InCommentLike;\n this.currentSequence = Sequences.CommentEnd;\n // Allow short comments (eg. )\n this.sequenceIndex = 2;\n this.sectionStart = this.index + 1;\n }\n else {\n this.state = State.InDeclaration;\n }\n };\n Tokenizer.prototype.stateInSpecialComment = function (c) {\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.cbs.oncomment(this.sectionStart, this.index, 0);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n };\n Tokenizer.prototype.stateBeforeSpecialS = function (c) {\n var lower = c | 0x20;\n if (lower === Sequences.ScriptEnd[3]) {\n this.startSpecial(Sequences.ScriptEnd, 4);\n }\n else if (lower === Sequences.StyleEnd[3]) {\n this.startSpecial(Sequences.StyleEnd, 4);\n }\n else {\n this.state = State.InTagName;\n this.stateInTagName(c); // Consume the token again\n }\n };\n Tokenizer.prototype.stateBeforeEntity = function (c) {\n // Start excess with 1 to include the '&'\n this.entityExcess = 1;\n this.entityResult = 0;\n if (c === CharCodes.Number) {\n this.state = State.BeforeNumericEntity;\n }\n else if (c === CharCodes.Amp) {\n // We have two `&` characters in a row. Stay in the current state.\n }\n else {\n this.trieIndex = 0;\n this.trieCurrent = this.entityTrie[0];\n this.state = State.InNamedEntity;\n this.stateInNamedEntity(c);\n }\n };\n Tokenizer.prototype.stateInNamedEntity = function (c) {\n this.entityExcess += 1;\n this.trieIndex = (0, decode_js_1.determineBranch)(this.entityTrie, this.trieCurrent, this.trieIndex + 1, c);\n if (this.trieIndex < 0) {\n this.emitNamedEntity();\n this.index--;\n return;\n }\n this.trieCurrent = this.entityTrie[this.trieIndex];\n var masked = this.trieCurrent & decode_js_1.BinTrieFlags.VALUE_LENGTH;\n // If the branch is a value, store it and continue\n if (masked) {\n // The mask is the number of bytes of the value, including the current byte.\n var valueLength = (masked >> 14) - 1;\n // If we have a legacy entity while parsing strictly, just skip the number of bytes\n if (!this.allowLegacyEntity() && c !== CharCodes.Semi) {\n this.trieIndex += valueLength;\n }\n else {\n // Add 1 as we have already incremented the excess\n var entityStart = this.index - this.entityExcess + 1;\n if (entityStart > this.sectionStart) {\n this.emitPartial(this.sectionStart, entityStart);\n }\n // If this is a surrogate pair, consume the next two bytes\n this.entityResult = this.trieIndex;\n this.trieIndex += valueLength;\n this.entityExcess = 0;\n this.sectionStart = this.index + 1;\n if (valueLength === 0) {\n this.emitNamedEntity();\n }\n }\n }\n };\n Tokenizer.prototype.emitNamedEntity = function () {\n this.state = this.baseState;\n if (this.entityResult === 0) {\n return;\n }\n var valueLength = (this.entityTrie[this.entityResult] & decode_js_1.BinTrieFlags.VALUE_LENGTH) >>\n 14;\n switch (valueLength) {\n case 1: {\n this.emitCodePoint(this.entityTrie[this.entityResult] &\n ~decode_js_1.BinTrieFlags.VALUE_LENGTH);\n break;\n }\n case 2: {\n this.emitCodePoint(this.entityTrie[this.entityResult + 1]);\n break;\n }\n case 3: {\n this.emitCodePoint(this.entityTrie[this.entityResult + 1]);\n this.emitCodePoint(this.entityTrie[this.entityResult + 2]);\n }\n }\n };\n Tokenizer.prototype.stateBeforeNumericEntity = function (c) {\n if ((c | 0x20) === CharCodes.LowerX) {\n this.entityExcess++;\n this.state = State.InHexEntity;\n }\n else {\n this.state = State.InNumericEntity;\n this.stateInNumericEntity(c);\n }\n };\n Tokenizer.prototype.emitNumericEntity = function (strict) {\n var entityStart = this.index - this.entityExcess - 1;\n var numberStart = entityStart + 2 + Number(this.state === State.InHexEntity);\n if (numberStart !== this.index) {\n // Emit leading data if any\n if (entityStart > this.sectionStart) {\n this.emitPartial(this.sectionStart, entityStart);\n }\n this.sectionStart = this.index + Number(strict);\n this.emitCodePoint((0, decode_js_1.replaceCodePoint)(this.entityResult));\n }\n this.state = this.baseState;\n };\n Tokenizer.prototype.stateInNumericEntity = function (c) {\n if (c === CharCodes.Semi) {\n this.emitNumericEntity(true);\n }\n else if (isNumber(c)) {\n this.entityResult = this.entityResult * 10 + (c - CharCodes.Zero);\n this.entityExcess++;\n }\n else {\n if (this.allowLegacyEntity()) {\n this.emitNumericEntity(false);\n }\n else {\n this.state = this.baseState;\n }\n this.index--;\n }\n };\n Tokenizer.prototype.stateInHexEntity = function (c) {\n if (c === CharCodes.Semi) {\n this.emitNumericEntity(true);\n }\n else if (isNumber(c)) {\n this.entityResult = this.entityResult * 16 + (c - CharCodes.Zero);\n this.entityExcess++;\n }\n else if (isHexDigit(c)) {\n this.entityResult =\n this.entityResult * 16 + ((c | 0x20) - CharCodes.LowerA + 10);\n this.entityExcess++;\n }\n else {\n if (this.allowLegacyEntity()) {\n this.emitNumericEntity(false);\n }\n else {\n this.state = this.baseState;\n }\n this.index--;\n }\n };\n Tokenizer.prototype.allowLegacyEntity = function () {\n return (!this.xmlMode &&\n (this.baseState === State.Text ||\n this.baseState === State.InSpecialTag));\n };\n /**\n * Remove data that has already been consumed from the buffer.\n */\n Tokenizer.prototype.cleanup = function () {\n // If we are inside of text or attributes, emit what we already have.\n if (this.running && this.sectionStart !== this.index) {\n if (this.state === State.Text ||\n (this.state === State.InSpecialTag && this.sequenceIndex === 0)) {\n this.cbs.ontext(this.sectionStart, this.index);\n this.sectionStart = this.index;\n }\n else if (this.state === State.InAttributeValueDq ||\n this.state === State.InAttributeValueSq ||\n this.state === State.InAttributeValueNq) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = this.index;\n }\n }\n };\n Tokenizer.prototype.shouldContinue = function () {\n return this.index < this.buffer.length + this.offset && this.running;\n };\n /**\n * Iterates through the buffer, calling the function corresponding to the current state.\n *\n * States that are more likely to be hit are higher up, as a performance improvement.\n */\n Tokenizer.prototype.parse = function () {\n while (this.shouldContinue()) {\n var c = this.buffer.charCodeAt(this.index - this.offset);\n switch (this.state) {\n case State.Text: {\n this.stateText(c);\n break;\n }\n case State.SpecialStartSequence: {\n this.stateSpecialStartSequence(c);\n break;\n }\n case State.InSpecialTag: {\n this.stateInSpecialTag(c);\n break;\n }\n case State.CDATASequence: {\n this.stateCDATASequence(c);\n break;\n }\n case State.InAttributeValueDq: {\n this.stateInAttributeValueDoubleQuotes(c);\n break;\n }\n case State.InAttributeName: {\n this.stateInAttributeName(c);\n break;\n }\n case State.InCommentLike: {\n this.stateInCommentLike(c);\n break;\n }\n case State.InSpecialComment: {\n this.stateInSpecialComment(c);\n break;\n }\n case State.BeforeAttributeName: {\n this.stateBeforeAttributeName(c);\n break;\n }\n case State.InTagName: {\n this.stateInTagName(c);\n break;\n }\n case State.InClosingTagName: {\n this.stateInClosingTagName(c);\n break;\n }\n case State.BeforeTagName: {\n this.stateBeforeTagName(c);\n break;\n }\n case State.AfterAttributeName: {\n this.stateAfterAttributeName(c);\n break;\n }\n case State.InAttributeValueSq: {\n this.stateInAttributeValueSingleQuotes(c);\n break;\n }\n case State.BeforeAttributeValue: {\n this.stateBeforeAttributeValue(c);\n break;\n }\n case State.BeforeClosingTagName: {\n this.stateBeforeClosingTagName(c);\n break;\n }\n case State.AfterClosingTagName: {\n this.stateAfterClosingTagName(c);\n break;\n }\n case State.BeforeSpecialS: {\n this.stateBeforeSpecialS(c);\n break;\n }\n case State.InAttributeValueNq: {\n this.stateInAttributeValueNoQuotes(c);\n break;\n }\n case State.InSelfClosingTag: {\n this.stateInSelfClosingTag(c);\n break;\n }\n case State.InDeclaration: {\n this.stateInDeclaration(c);\n break;\n }\n case State.BeforeDeclaration: {\n this.stateBeforeDeclaration(c);\n break;\n }\n case State.BeforeComment: {\n this.stateBeforeComment(c);\n break;\n }\n case State.InProcessingInstruction: {\n this.stateInProcessingInstruction(c);\n break;\n }\n case State.InNamedEntity: {\n this.stateInNamedEntity(c);\n break;\n }\n case State.BeforeEntity: {\n this.stateBeforeEntity(c);\n break;\n }\n case State.InHexEntity: {\n this.stateInHexEntity(c);\n break;\n }\n case State.InNumericEntity: {\n this.stateInNumericEntity(c);\n break;\n }\n default: {\n // `this._state === State.BeforeNumericEntity`\n this.stateBeforeNumericEntity(c);\n }\n }\n this.index++;\n }\n this.cleanup();\n };\n Tokenizer.prototype.finish = function () {\n if (this.state === State.InNamedEntity) {\n this.emitNamedEntity();\n }\n // If there is remaining data, emit it in a reasonable way\n if (this.sectionStart < this.index) {\n this.handleTrailingData();\n }\n this.cbs.onend();\n };\n /** Handle any trailing data. */\n Tokenizer.prototype.handleTrailingData = function () {\n var endIndex = this.buffer.length + this.offset;\n if (this.state === State.InCommentLike) {\n if (this.currentSequence === Sequences.CdataEnd) {\n this.cbs.oncdata(this.sectionStart, endIndex, 0);\n }\n else {\n this.cbs.oncomment(this.sectionStart, endIndex, 0);\n }\n }\n else if (this.state === State.InNumericEntity &&\n this.allowLegacyEntity()) {\n this.emitNumericEntity(false);\n // All trailing data will have been consumed\n }\n else if (this.state === State.InHexEntity &&\n this.allowLegacyEntity()) {\n this.emitNumericEntity(false);\n // All trailing data will have been consumed\n }\n else if (this.state === State.InTagName ||\n this.state === State.BeforeAttributeName ||\n this.state === State.BeforeAttributeValue ||\n this.state === State.AfterAttributeName ||\n this.state === State.InAttributeName ||\n this.state === State.InAttributeValueSq ||\n this.state === State.InAttributeValueDq ||\n this.state === State.InAttributeValueNq ||\n this.state === State.InClosingTagName) {\n /*\n * If we are currently in an opening or closing tag, us not calling the\n * respective callback signals that the tag should be ignored.\n */\n }\n else {\n this.cbs.ontext(this.sectionStart, endIndex);\n }\n };\n Tokenizer.prototype.emitPartial = function (start, endIndex) {\n if (this.baseState !== State.Text &&\n this.baseState !== State.InSpecialTag) {\n this.cbs.onattribdata(start, endIndex);\n }\n else {\n this.cbs.ontext(start, endIndex);\n }\n };\n Tokenizer.prototype.emitCodePoint = function (cp) {\n if (this.baseState !== State.Text &&\n this.baseState !== State.InSpecialTag) {\n this.cbs.onattribentity(cp);\n }\n else {\n this.cbs.ontextentity(cp);\n }\n };\n return Tokenizer;\n}());\nexports.default = Tokenizer;\n//# sourceMappingURL=Tokenizer.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DomUtils = exports.parseFeed = exports.getFeed = exports.ElementType = exports.Tokenizer = exports.createDomStream = exports.parseDOM = exports.parseDocument = exports.DefaultHandler = exports.DomHandler = exports.Parser = void 0;\nvar Parser_js_1 = require(\"./Parser.js\");\nvar Parser_js_2 = require(\"./Parser.js\");\nObject.defineProperty(exports, \"Parser\", { enumerable: true, get: function () { return Parser_js_2.Parser; } });\nvar domhandler_1 = require(\"domhandler\");\nvar domhandler_2 = require(\"domhandler\");\nObject.defineProperty(exports, \"DomHandler\", { enumerable: true, get: function () { return domhandler_2.DomHandler; } });\n// Old name for DomHandler\nObject.defineProperty(exports, \"DefaultHandler\", { enumerable: true, get: function () { return domhandler_2.DomHandler; } });\n// Helper methods\n/**\n * Parses the data, returns the resulting document.\n *\n * @param data The data that should be parsed.\n * @param options Optional options for the parser and DOM builder.\n */\nfunction parseDocument(data, options) {\n var handler = new domhandler_1.DomHandler(undefined, options);\n new Parser_js_1.Parser(handler, options).end(data);\n return handler.root;\n}\nexports.parseDocument = parseDocument;\n/**\n * Parses data, returns an array of the root nodes.\n *\n * Note that the root nodes still have a `Document` node as their parent.\n * Use `parseDocument` to get the `Document` node instead.\n *\n * @param data The data that should be parsed.\n * @param options Optional options for the parser and DOM builder.\n * @deprecated Use `parseDocument` instead.\n */\nfunction parseDOM(data, options) {\n return parseDocument(data, options).children;\n}\nexports.parseDOM = parseDOM;\n/**\n * Creates a parser instance, with an attached DOM handler.\n *\n * @param callback A callback that will be called once parsing has been completed.\n * @param options Optional options for the parser and DOM builder.\n * @param elementCallback An optional callback that will be called every time a tag has been completed inside of the DOM.\n */\nfunction createDomStream(callback, options, elementCallback) {\n var handler = new domhandler_1.DomHandler(callback, options, elementCallback);\n return new Parser_js_1.Parser(handler, options);\n}\nexports.createDomStream = createDomStream;\nvar Tokenizer_js_1 = require(\"./Tokenizer.js\");\nObject.defineProperty(exports, \"Tokenizer\", { enumerable: true, get: function () { return __importDefault(Tokenizer_js_1).default; } });\n/*\n * All of the following exports exist for backwards-compatibility.\n * They should probably be removed eventually.\n */\nexports.ElementType = __importStar(require(\"domelementtype\"));\nvar domutils_1 = require(\"domutils\");\nvar domutils_2 = require(\"domutils\");\nObject.defineProperty(exports, \"getFeed\", { enumerable: true, get: function () { return domutils_2.getFeed; } });\nvar parseFeedDefaultOptions = { xmlMode: true };\n/**\n * Parse a feed.\n *\n * @param feed The feed that should be parsed, as a string.\n * @param options Optionally, options for parsing. When using this, you should set `xmlMode` to `true`.\n */\nfunction parseFeed(feed, options) {\n if (options === void 0) { options = parseFeedDefaultOptions; }\n return (0, domutils_1.getFeed)(parseDOM(feed, options));\n}\nexports.parseFeed = parseFeed;\nexports.DomUtils = __importStar(require(\"domutils\"));\n//# sourceMappingURL=index.js.map","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","'use strict';\n\nexports = module.exports = require('./lib/parser')['default'];\nexports['default'] = exports;\n","\"use strict\";\n\nexports[\"default\"] = (function() {\n \"use strict\";\n\n /*\n * Generated by PEG.js 0.9.0.\n *\n * http://pegjs.org/\n */\n\n function peg$subclass(child, parent) {\n function ctor() { this.constructor = child; }\n ctor.prototype = parent.prototype;\n child.prototype = new ctor();\n }\n\n function peg$SyntaxError(message, expected, found, location) {\n this.message = message;\n this.expected = expected;\n this.found = found;\n this.location = location;\n this.name = \"SyntaxError\";\n\n if (typeof Error.captureStackTrace === \"function\") {\n Error.captureStackTrace(this, peg$SyntaxError);\n }\n }\n\n peg$subclass(peg$SyntaxError, Error);\n\n function peg$parse(input) {\n var options = arguments.length > 1 ? arguments[1] : {},\n parser = this,\n\n peg$FAILED = {},\n\n peg$startRuleFunctions = { start: peg$parsestart },\n peg$startRuleFunction = peg$parsestart,\n\n peg$c0 = function(elements) {\n return {\n type : 'messageFormatPattern',\n elements: elements,\n location: location()\n };\n },\n peg$c1 = function(text) {\n var string = '',\n i, j, outerLen, inner, innerLen;\n\n for (i = 0, outerLen = text.length; i < outerLen; i += 1) {\n inner = text[i];\n\n for (j = 0, innerLen = inner.length; j < innerLen; j += 1) {\n string += inner[j];\n }\n }\n\n return string;\n },\n peg$c2 = function(messageText) {\n return {\n type : 'messageTextElement',\n value: messageText,\n location: location()\n };\n },\n peg$c3 = /^[^ \\t\\n\\r,.+={}#]/,\n peg$c4 = { type: \"class\", value: \"[^ \\\\t\\\\n\\\\r,.+={}#]\", description: \"[^ \\\\t\\\\n\\\\r,.+={}#]\" },\n peg$c5 = \"{\",\n peg$c6 = { type: \"literal\", value: \"{\", description: \"\\\"{\\\"\" },\n peg$c7 = \",\",\n peg$c8 = { type: \"literal\", value: \",\", description: \"\\\",\\\"\" },\n peg$c9 = \"}\",\n peg$c10 = { type: \"literal\", value: \"}\", description: \"\\\"}\\\"\" },\n peg$c11 = function(id, format) {\n return {\n type : 'argumentElement',\n id : id,\n format: format && format[2],\n location: location()\n };\n },\n peg$c12 = \"number\",\n peg$c13 = { type: \"literal\", value: \"number\", description: \"\\\"number\\\"\" },\n peg$c14 = \"date\",\n peg$c15 = { type: \"literal\", value: \"date\", description: \"\\\"date\\\"\" },\n peg$c16 = \"time\",\n peg$c17 = { type: \"literal\", value: \"time\", description: \"\\\"time\\\"\" },\n peg$c18 = function(type, style) {\n return {\n type : type + 'Format',\n style: style && style[2],\n location: location()\n };\n },\n peg$c19 = \"plural\",\n peg$c20 = { type: \"literal\", value: \"plural\", description: \"\\\"plural\\\"\" },\n peg$c21 = function(pluralStyle) {\n return {\n type : pluralStyle.type,\n ordinal: false,\n offset : pluralStyle.offset || 0,\n options: pluralStyle.options,\n location: location()\n };\n },\n peg$c22 = \"selectordinal\",\n peg$c23 = { type: \"literal\", value: \"selectordinal\", description: \"\\\"selectordinal\\\"\" },\n peg$c24 = function(pluralStyle) {\n return {\n type : pluralStyle.type,\n ordinal: true,\n offset : pluralStyle.offset || 0,\n options: pluralStyle.options,\n location: location()\n }\n },\n peg$c25 = \"select\",\n peg$c26 = { type: \"literal\", value: \"select\", description: \"\\\"select\\\"\" },\n peg$c27 = function(options) {\n return {\n type : 'selectFormat',\n options: options,\n location: location()\n };\n },\n peg$c28 = \"=\",\n peg$c29 = { type: \"literal\", value: \"=\", description: \"\\\"=\\\"\" },\n peg$c30 = function(selector, pattern) {\n return {\n type : 'optionalFormatPattern',\n selector: selector,\n value : pattern,\n location: location()\n };\n },\n peg$c31 = \"offset:\",\n peg$c32 = { type: \"literal\", value: \"offset:\", description: \"\\\"offset:\\\"\" },\n peg$c33 = function(number) {\n return number;\n },\n peg$c34 = function(offset, options) {\n return {\n type : 'pluralFormat',\n offset : offset,\n options: options,\n location: location()\n };\n },\n peg$c35 = { type: \"other\", description: \"whitespace\" },\n peg$c36 = /^[ \\t\\n\\r]/,\n peg$c37 = { type: \"class\", value: \"[ \\\\t\\\\n\\\\r]\", description: \"[ \\\\t\\\\n\\\\r]\" },\n peg$c38 = { type: \"other\", description: \"optionalWhitespace\" },\n peg$c39 = /^[0-9]/,\n peg$c40 = { type: \"class\", value: \"[0-9]\", description: \"[0-9]\" },\n peg$c41 = /^[0-9a-f]/i,\n peg$c42 = { type: \"class\", value: \"[0-9a-f]i\", description: \"[0-9a-f]i\" },\n peg$c43 = \"0\",\n peg$c44 = { type: \"literal\", value: \"0\", description: \"\\\"0\\\"\" },\n peg$c45 = /^[1-9]/,\n peg$c46 = { type: \"class\", value: \"[1-9]\", description: \"[1-9]\" },\n peg$c47 = function(digits) {\n return parseInt(digits, 10);\n },\n peg$c48 = /^[^{}\\\\\\0-\\x1F \\t\\n\\r]/,\n peg$c49 = { type: \"class\", value: \"[^{}\\\\\\\\\\\\0-\\\\x1F\\\\x7f \\\\t\\\\n\\\\r]\", description: \"[^{}\\\\\\\\\\\\0-\\\\x1F\\\\x7f \\\\t\\\\n\\\\r]\" },\n peg$c50 = \"\\\\\\\\\",\n peg$c51 = { type: \"literal\", value: \"\\\\\\\\\", description: \"\\\"\\\\\\\\\\\\\\\\\\\"\" },\n peg$c52 = function() { return '\\\\'; },\n peg$c53 = \"\\\\#\",\n peg$c54 = { type: \"literal\", value: \"\\\\#\", description: \"\\\"\\\\\\\\#\\\"\" },\n peg$c55 = function() { return '\\\\#'; },\n peg$c56 = \"\\\\{\",\n peg$c57 = { type: \"literal\", value: \"\\\\{\", description: \"\\\"\\\\\\\\{\\\"\" },\n peg$c58 = function() { return '\\u007B'; },\n peg$c59 = \"\\\\}\",\n peg$c60 = { type: \"literal\", value: \"\\\\}\", description: \"\\\"\\\\\\\\}\\\"\" },\n peg$c61 = function() { return '\\u007D'; },\n peg$c62 = \"\\\\u\",\n peg$c63 = { type: \"literal\", value: \"\\\\u\", description: \"\\\"\\\\\\\\u\\\"\" },\n peg$c64 = function(digits) {\n return String.fromCharCode(parseInt(digits, 16));\n },\n peg$c65 = function(chars) { return chars.join(''); },\n\n peg$currPos = 0,\n peg$savedPos = 0,\n peg$posDetailsCache = [{ line: 1, column: 1, seenCR: false }],\n peg$maxFailPos = 0,\n peg$maxFailExpected = [],\n peg$silentFails = 0,\n\n peg$result;\n\n if (\"startRule\" in options) {\n if (!(options.startRule in peg$startRuleFunctions)) {\n throw new Error(\"Can't start parsing from rule \\\"\" + options.startRule + \"\\\".\");\n }\n\n peg$startRuleFunction = peg$startRuleFunctions[options.startRule];\n }\n\n function text() {\n return input.substring(peg$savedPos, peg$currPos);\n }\n\n function location() {\n return peg$computeLocation(peg$savedPos, peg$currPos);\n }\n\n function expected(description) {\n throw peg$buildException(\n null,\n [{ type: \"other\", description: description }],\n input.substring(peg$savedPos, peg$currPos),\n peg$computeLocation(peg$savedPos, peg$currPos)\n );\n }\n\n function error(message) {\n throw peg$buildException(\n message,\n null,\n input.substring(peg$savedPos, peg$currPos),\n peg$computeLocation(peg$savedPos, peg$currPos)\n );\n }\n\n function peg$computePosDetails(pos) {\n var details = peg$posDetailsCache[pos],\n p, ch;\n\n if (details) {\n return details;\n } else {\n p = pos - 1;\n while (!peg$posDetailsCache[p]) {\n p--;\n }\n\n details = peg$posDetailsCache[p];\n details = {\n line: details.line,\n column: details.column,\n seenCR: details.seenCR\n };\n\n while (p < pos) {\n ch = input.charAt(p);\n if (ch === \"\\n\") {\n if (!details.seenCR) { details.line++; }\n details.column = 1;\n details.seenCR = false;\n } else if (ch === \"\\r\" || ch === \"\\u2028\" || ch === \"\\u2029\") {\n details.line++;\n details.column = 1;\n details.seenCR = true;\n } else {\n details.column++;\n details.seenCR = false;\n }\n\n p++;\n }\n\n peg$posDetailsCache[pos] = details;\n return details;\n }\n }\n\n function peg$computeLocation(startPos, endPos) {\n var startPosDetails = peg$computePosDetails(startPos),\n endPosDetails = peg$computePosDetails(endPos);\n\n return {\n start: {\n offset: startPos,\n line: startPosDetails.line,\n column: startPosDetails.column\n },\n end: {\n offset: endPos,\n line: endPosDetails.line,\n column: endPosDetails.column\n }\n };\n }\n\n function peg$fail(expected) {\n if (peg$currPos < peg$maxFailPos) { return; }\n\n if (peg$currPos > peg$maxFailPos) {\n peg$maxFailPos = peg$currPos;\n peg$maxFailExpected = [];\n }\n\n peg$maxFailExpected.push(expected);\n }\n\n function peg$buildException(message, expected, found, location) {\n function cleanupExpected(expected) {\n var i = 1;\n\n expected.sort(function(a, b) {\n if (a.description < b.description) {\n return -1;\n } else if (a.description > b.description) {\n return 1;\n } else {\n return 0;\n }\n });\n\n while (i < expected.length) {\n if (expected[i - 1] === expected[i]) {\n expected.splice(i, 1);\n } else {\n i++;\n }\n }\n }\n\n function buildMessage(expected, found) {\n function stringEscape(s) {\n function hex(ch) { return ch.charCodeAt(0).toString(16).toUpperCase(); }\n\n return s\n .replace(/\\\\/g, '\\\\\\\\')\n .replace(/\"/g, '\\\\\"')\n .replace(/\\x08/g, '\\\\b')\n .replace(/\\t/g, '\\\\t')\n .replace(/\\n/g, '\\\\n')\n .replace(/\\f/g, '\\\\f')\n .replace(/\\r/g, '\\\\r')\n .replace(/[\\x00-\\x07\\x0B\\x0E\\x0F]/g, function(ch) { return '\\\\x0' + hex(ch); })\n .replace(/[\\x10-\\x1F\\x80-\\xFF]/g, function(ch) { return '\\\\x' + hex(ch); })\n .replace(/[\\u0100-\\u0FFF]/g, function(ch) { return '\\\\u0' + hex(ch); })\n .replace(/[\\u1000-\\uFFFF]/g, function(ch) { return '\\\\u' + hex(ch); });\n }\n\n var expectedDescs = new Array(expected.length),\n expectedDesc, foundDesc, i;\n\n for (i = 0; i < expected.length; i++) {\n expectedDescs[i] = expected[i].description;\n }\n\n expectedDesc = expected.length > 1\n ? expectedDescs.slice(0, -1).join(\", \")\n + \" or \"\n + expectedDescs[expected.length - 1]\n : expectedDescs[0];\n\n foundDesc = found ? \"\\\"\" + stringEscape(found) + \"\\\"\" : \"end of input\";\n\n return \"Expected \" + expectedDesc + \" but \" + foundDesc + \" found.\";\n }\n\n if (expected !== null) {\n cleanupExpected(expected);\n }\n\n return new peg$SyntaxError(\n message !== null ? message : buildMessage(expected, found),\n expected,\n found,\n location\n );\n }\n\n function peg$parsestart() {\n var s0;\n\n s0 = peg$parsemessageFormatPattern();\n\n return s0;\n }\n\n function peg$parsemessageFormatPattern() {\n var s0, s1, s2;\n\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsemessageFormatElement();\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsemessageFormatElement();\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c0(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n function peg$parsemessageFormatElement() {\n var s0;\n\n s0 = peg$parsemessageTextElement();\n if (s0 === peg$FAILED) {\n s0 = peg$parseargumentElement();\n }\n\n return s0;\n }\n\n function peg$parsemessageText() {\n var s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$currPos;\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n s4 = peg$parsechars();\n if (s4 !== peg$FAILED) {\n s5 = peg$parse_();\n if (s5 !== peg$FAILED) {\n s3 = [s3, s4, s5];\n s2 = s3;\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$currPos;\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n s4 = peg$parsechars();\n if (s4 !== peg$FAILED) {\n s5 = peg$parse_();\n if (s5 !== peg$FAILED) {\n s3 = [s3, s4, s5];\n s2 = s3;\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n }\n } else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c1(s1);\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parsews();\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n } else {\n s0 = s1;\n }\n }\n\n return s0;\n }\n\n function peg$parsemessageTextElement() {\n var s0, s1;\n\n s0 = peg$currPos;\n s1 = peg$parsemessageText();\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c2(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n function peg$parseargument() {\n var s0, s1, s2;\n\n s0 = peg$parsenumber();\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = [];\n if (peg$c3.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c4); }\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n if (peg$c3.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c4); }\n }\n }\n } else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n } else {\n s0 = s1;\n }\n }\n\n return s0;\n }\n\n function peg$parseargumentElement() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 123) {\n s1 = peg$c5;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c6); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseargument();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 44) {\n s6 = peg$c7;\n peg$currPos++;\n } else {\n s6 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c8); }\n }\n if (s6 !== peg$FAILED) {\n s7 = peg$parse_();\n if (s7 !== peg$FAILED) {\n s8 = peg$parseelementFormat();\n if (s8 !== peg$FAILED) {\n s6 = [s6, s7, s8];\n s5 = s6;\n } else {\n peg$currPos = s5;\n s5 = peg$FAILED;\n }\n } else {\n peg$currPos = s5;\n s5 = peg$FAILED;\n }\n } else {\n peg$currPos = s5;\n s5 = peg$FAILED;\n }\n if (s5 === peg$FAILED) {\n s5 = null;\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s7 = peg$c9;\n peg$currPos++;\n } else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c10); }\n }\n if (s7 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c11(s3, s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parseelementFormat() {\n var s0;\n\n s0 = peg$parsesimpleFormat();\n if (s0 === peg$FAILED) {\n s0 = peg$parsepluralFormat();\n if (s0 === peg$FAILED) {\n s0 = peg$parseselectOrdinalFormat();\n if (s0 === peg$FAILED) {\n s0 = peg$parseselectFormat();\n }\n }\n }\n\n return s0;\n }\n\n function peg$parsesimpleFormat() {\n var s0, s1, s2, s3, s4, s5, s6;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 6) === peg$c12) {\n s1 = peg$c12;\n peg$currPos += 6;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c13); }\n }\n if (s1 === peg$FAILED) {\n if (input.substr(peg$currPos, 4) === peg$c14) {\n s1 = peg$c14;\n peg$currPos += 4;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c15); }\n }\n if (s1 === peg$FAILED) {\n if (input.substr(peg$currPos, 4) === peg$c16) {\n s1 = peg$c16;\n peg$currPos += 4;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c17); }\n }\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 44) {\n s4 = peg$c7;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c8); }\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parse_();\n if (s5 !== peg$FAILED) {\n s6 = peg$parsechars();\n if (s6 !== peg$FAILED) {\n s4 = [s4, s5, s6];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n if (s3 === peg$FAILED) {\n s3 = null;\n }\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c18(s1, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parsepluralFormat() {\n var s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 6) === peg$c19) {\n s1 = peg$c19;\n peg$currPos += 6;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c20); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s3 = peg$c7;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c8); }\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = peg$parsepluralStyle();\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c21(s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parseselectOrdinalFormat() {\n var s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 13) === peg$c22) {\n s1 = peg$c22;\n peg$currPos += 13;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c23); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s3 = peg$c7;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c8); }\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = peg$parsepluralStyle();\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c24(s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parseselectFormat() {\n var s0, s1, s2, s3, s4, s5, s6;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 6) === peg$c25) {\n s1 = peg$c25;\n peg$currPos += 6;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c26); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s3 = peg$c7;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c8); }\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = [];\n s6 = peg$parseoptionalFormatPattern();\n if (s6 !== peg$FAILED) {\n while (s6 !== peg$FAILED) {\n s5.push(s6);\n s6 = peg$parseoptionalFormatPattern();\n }\n } else {\n s5 = peg$FAILED;\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c27(s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parseselector() {\n var s0, s1, s2, s3;\n\n s0 = peg$currPos;\n s1 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 61) {\n s2 = peg$c28;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c29); }\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parsenumber();\n if (s3 !== peg$FAILED) {\n s2 = [s2, s3];\n s1 = s2;\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n } else {\n s0 = s1;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$parsechars();\n }\n\n return s0;\n }\n\n function peg$parseoptionalFormatPattern() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8;\n\n s0 = peg$currPos;\n s1 = peg$parse_();\n if (s1 !== peg$FAILED) {\n s2 = peg$parseselector();\n if (s2 !== peg$FAILED) {\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 123) {\n s4 = peg$c5;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c6); }\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parse_();\n if (s5 !== peg$FAILED) {\n s6 = peg$parsemessageFormatPattern();\n if (s6 !== peg$FAILED) {\n s7 = peg$parse_();\n if (s7 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s8 = peg$c9;\n peg$currPos++;\n } else {\n s8 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c10); }\n }\n if (s8 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c30(s2, s6);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parseoffset() {\n var s0, s1, s2, s3;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 7) === peg$c31) {\n s1 = peg$c31;\n peg$currPos += 7;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c32); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parsenumber();\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c33(s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parsepluralStyle() {\n var s0, s1, s2, s3, s4;\n\n s0 = peg$currPos;\n s1 = peg$parseoffset();\n if (s1 === peg$FAILED) {\n s1 = null;\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = [];\n s4 = peg$parseoptionalFormatPattern();\n if (s4 !== peg$FAILED) {\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$parseoptionalFormatPattern();\n }\n } else {\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c34(s1, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parsews() {\n var s0, s1;\n\n peg$silentFails++;\n s0 = [];\n if (peg$c36.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c37); }\n }\n if (s1 !== peg$FAILED) {\n while (s1 !== peg$FAILED) {\n s0.push(s1);\n if (peg$c36.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c37); }\n }\n }\n } else {\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c35); }\n }\n\n return s0;\n }\n\n function peg$parse_() {\n var s0, s1, s2;\n\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsews();\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsews();\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n } else {\n s0 = s1;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c38); }\n }\n\n return s0;\n }\n\n function peg$parsedigit() {\n var s0;\n\n if (peg$c39.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c40); }\n }\n\n return s0;\n }\n\n function peg$parsehexDigit() {\n var s0;\n\n if (peg$c41.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c42); }\n }\n\n return s0;\n }\n\n function peg$parsenumber() {\n var s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 48) {\n s1 = peg$c43;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c44); }\n }\n if (s1 === peg$FAILED) {\n s1 = peg$currPos;\n s2 = peg$currPos;\n if (peg$c45.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c46); }\n }\n if (s3 !== peg$FAILED) {\n s4 = [];\n s5 = peg$parsedigit();\n while (s5 !== peg$FAILED) {\n s4.push(s5);\n s5 = peg$parsedigit();\n }\n if (s4 !== peg$FAILED) {\n s3 = [s3, s4];\n s2 = s3;\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n s1 = input.substring(s1, peg$currPos);\n } else {\n s1 = s2;\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c47(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n function peg$parsechar() {\n var s0, s1, s2, s3, s4, s5, s6, s7;\n\n if (peg$c48.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c49); }\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c50) {\n s1 = peg$c50;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c51); }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c52();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c53) {\n s1 = peg$c53;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c54); }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c55();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c56) {\n s1 = peg$c56;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c57); }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c58();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c59) {\n s1 = peg$c59;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c60); }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c61();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c62) {\n s1 = peg$c62;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c63); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$currPos;\n s3 = peg$currPos;\n s4 = peg$parsehexDigit();\n if (s4 !== peg$FAILED) {\n s5 = peg$parsehexDigit();\n if (s5 !== peg$FAILED) {\n s6 = peg$parsehexDigit();\n if (s6 !== peg$FAILED) {\n s7 = peg$parsehexDigit();\n if (s7 !== peg$FAILED) {\n s4 = [s4, s5, s6, s7];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n s2 = input.substring(s2, peg$currPos);\n } else {\n s2 = s3;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c64(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n }\n }\n }\n }\n\n return s0;\n }\n\n function peg$parsechars() {\n var s0, s1, s2;\n\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsechar();\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsechar();\n }\n } else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c65(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n peg$result = peg$startRuleFunction();\n\n if (peg$result !== peg$FAILED && peg$currPos === input.length) {\n return peg$result;\n } else {\n if (peg$result !== peg$FAILED && peg$currPos < input.length) {\n peg$fail({ type: \"end\", description: \"end of input\" });\n }\n\n throw peg$buildException(\n null,\n peg$maxFailExpected,\n peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null,\n peg$maxFailPos < input.length\n ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1)\n : peg$computeLocation(peg$maxFailPos, peg$maxFailPos)\n );\n }\n }\n\n return {\n SyntaxError: peg$SyntaxError,\n parse: peg$parse\n };\n})();\n\n//# sourceMappingURL=parser.js.map","/* jshint node:true */\n\n'use strict';\n\nvar IntlRelativeFormat = require('./lib/main')['default'];\n\n// Add all locale data to `IntlRelativeFormat`. This module will be ignored when\n// bundling for the browser with Browserify/Webpack.\nrequire('./lib/locales');\n\n// Re-export `IntlRelativeFormat` as the CommonJS default exports with all the\n// locale data registered, and with English set as the default locale. Define\n// the `default` prop for use with other compiled ES6 Modules.\nexports = module.exports = IntlRelativeFormat;\nexports['default'] = exports;\n","\"use strict\";\n/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/* jslint esnext: true */\nvar intl_messageformat_1 = require(\"intl-messageformat\");\nvar diff_1 = require(\"./diff\");\nvar es5_1 = require(\"./es5\");\nexports.default = RelativeFormat;\n// -----------------------------------------------------------------------------\nvar FIELDS = [\n 'second', 'second-short',\n 'minute', 'minute-short',\n 'hour', 'hour-short',\n 'day', 'day-short',\n 'month', 'month-short',\n 'year', 'year-short'\n];\nvar STYLES = ['best fit', 'numeric'];\n// -- RelativeFormat -----------------------------------------------------------\nfunction RelativeFormat(locales, options) {\n options = options || {};\n // Make a copy of `locales` if it's an array, so that it doesn't change\n // since it's used lazily.\n if (es5_1.isArray(locales)) {\n locales = locales.concat();\n }\n es5_1.defineProperty(this, '_locale', { value: this._resolveLocale(locales) });\n es5_1.defineProperty(this, '_options', { value: {\n style: this._resolveStyle(options.style),\n units: this._isValidUnits(options.units) && options.units\n } });\n es5_1.defineProperty(this, '_locales', { value: locales });\n es5_1.defineProperty(this, '_fields', { value: this._findFields(this._locale) });\n es5_1.defineProperty(this, '_messages', { value: es5_1.objCreate(null) });\n // \"Bind\" `format()` method to `this` so it can be passed by reference like\n // the other `Intl` APIs.\n var relativeFormat = this;\n this.format = function format(date, options) {\n return relativeFormat._format(date, options);\n };\n}\n// Define internal private properties for dealing with locale data.\nes5_1.defineProperty(RelativeFormat, '__localeData__', { value: es5_1.objCreate(null) });\nes5_1.defineProperty(RelativeFormat, '__addLocaleData', { value: function () {\n for (var i = 0; i < arguments.length; i++) {\n var datum = arguments[i];\n if (!(datum && datum.locale)) {\n throw new Error('Locale data provided to IntlRelativeFormat is missing a ' +\n '`locale` property value');\n }\n RelativeFormat.__localeData__[datum.locale.toLowerCase()] = datum;\n // Add data to IntlMessageFormat.\n intl_messageformat_1.default.__addLocaleData(datum);\n }\n } });\n// Define public `defaultLocale` property which can be set by the developer, or\n// it will be set when the first RelativeFormat instance is created by\n// leveraging the resolved locale from `Intl`.\nes5_1.defineProperty(RelativeFormat, 'defaultLocale', {\n enumerable: true,\n writable: true,\n value: undefined\n});\n// Define public `thresholds` property which can be set by the developer, and\n// defaults to relative time thresholds from moment.js.\nes5_1.defineProperty(RelativeFormat, 'thresholds', {\n enumerable: true,\n value: {\n second: 45, 'second-short': 45,\n minute: 45, 'minute-short': 45,\n hour: 22, 'hour-short': 22,\n day: 26, 'day-short': 26,\n month: 11, 'month-short': 11 // months to year\n }\n});\nRelativeFormat.prototype.resolvedOptions = function () {\n return {\n locale: this._locale,\n style: this._options.style,\n units: this._options.units\n };\n};\nRelativeFormat.prototype._compileMessage = function (units) {\n // `this._locales` is the original set of locales the user specified to the\n // constructor, while `this._locale` is the resolved root locale.\n var locales = this._locales;\n var resolvedLocale = this._locale;\n var field = this._fields[units];\n var relativeTime = field.relativeTime;\n var future = '';\n var past = '';\n var i;\n for (i in relativeTime.future) {\n if (relativeTime.future.hasOwnProperty(i)) {\n future += ' ' + i + ' {' +\n relativeTime.future[i].replace('{0}', '#') + '}';\n }\n }\n for (i in relativeTime.past) {\n if (relativeTime.past.hasOwnProperty(i)) {\n past += ' ' + i + ' {' +\n relativeTime.past[i].replace('{0}', '#') + '}';\n }\n }\n var message = '{when, select, future {{0, plural, ' + future + '}}' +\n 'past {{0, plural, ' + past + '}}}';\n // Create the synthetic IntlMessageFormat instance using the original\n // locales value specified by the user when constructing the the parent\n // IntlRelativeFormat instance.\n return new intl_messageformat_1.default(message, locales);\n};\nRelativeFormat.prototype._getMessage = function (units) {\n var messages = this._messages;\n // Create a new synthetic message based on the locale data from CLDR.\n if (!messages[units]) {\n messages[units] = this._compileMessage(units);\n }\n return messages[units];\n};\nRelativeFormat.prototype._getRelativeUnits = function (diff, units) {\n var field = this._fields[units];\n if (field.relative) {\n return field.relative[diff];\n }\n};\nRelativeFormat.prototype._findFields = function (locale) {\n var localeData = RelativeFormat.__localeData__;\n var data = localeData[locale.toLowerCase()];\n // The locale data is de-duplicated, so we have to traverse the locale's\n // hierarchy until we find `fields` to return.\n while (data) {\n if (data.fields) {\n return data.fields;\n }\n data = data.parentLocale && localeData[data.parentLocale.toLowerCase()];\n }\n throw new Error('Locale data added to IntlRelativeFormat is missing `fields` for :' +\n locale);\n};\nRelativeFormat.prototype._format = function (date, options) {\n var now = options && options.now !== undefined ? options.now : es5_1.dateNow();\n if (date === undefined) {\n date = now;\n }\n // Determine if the `date` and optional `now` values are valid, and throw a\n // similar error to what `Intl.DateTimeFormat#format()` would throw.\n if (!isFinite(now)) {\n throw new RangeError('The `now` option provided to IntlRelativeFormat#format() is not ' +\n 'in valid range.');\n }\n if (!isFinite(date)) {\n throw new RangeError('The date value provided to IntlRelativeFormat#format() is not ' +\n 'in valid range.');\n }\n var diffReport = diff_1.default(now, date);\n var units = this._options.units || this._selectUnits(diffReport);\n var diffInUnits = diffReport[units];\n if (this._options.style !== 'numeric') {\n var relativeUnits = this._getRelativeUnits(diffInUnits, units);\n if (relativeUnits) {\n return relativeUnits;\n }\n }\n return this._getMessage(units).format({\n '0': Math.abs(diffInUnits),\n when: diffInUnits < 0 ? 'past' : 'future'\n });\n};\nRelativeFormat.prototype._isValidUnits = function (units) {\n if (!units || es5_1.arrIndexOf.call(FIELDS, units) >= 0) {\n return true;\n }\n if (typeof units === 'string') {\n var suggestion = /s$/.test(units) && units.substr(0, units.length - 1);\n if (suggestion && es5_1.arrIndexOf.call(FIELDS, suggestion) >= 0) {\n throw new Error('\"' + units + '\" is not a valid IntlRelativeFormat `units` ' +\n 'value, did you mean: ' + suggestion);\n }\n }\n throw new Error('\"' + units + '\" is not a valid IntlRelativeFormat `units` value, it ' +\n 'must be one of: \"' + FIELDS.join('\", \"') + '\"');\n};\nRelativeFormat.prototype._resolveLocale = function (locales) {\n if (typeof locales === 'string') {\n locales = [locales];\n }\n // Create a copy of the array so we can push on the default locale.\n locales = (locales || []).concat(RelativeFormat.defaultLocale);\n var localeData = RelativeFormat.__localeData__;\n var i, len, localeParts, data;\n // Using the set of locales + the default locale, we look for the first one\n // which that has been registered. When data does not exist for a locale, we\n // traverse its ancestors to find something that's been registered within\n // its hierarchy of locales. Since we lack the proper `parentLocale` data\n // here, we must take a naive approach to traversal.\n for (i = 0, len = locales.length; i < len; i += 1) {\n localeParts = locales[i].toLowerCase().split('-');\n while (localeParts.length) {\n data = localeData[localeParts.join('-')];\n if (data) {\n // Return the normalized locale string; e.g., we return \"en-US\",\n // instead of \"en-us\".\n return data.locale;\n }\n localeParts.pop();\n }\n }\n var defaultLocale = locales.pop();\n throw new Error('No locale data has been added to IntlRelativeFormat for: ' +\n locales.join(', ') + ', or the default locale: ' + defaultLocale);\n};\nRelativeFormat.prototype._resolveStyle = function (style) {\n // Default to \"best fit\" style.\n if (!style) {\n return STYLES[0];\n }\n if (es5_1.arrIndexOf.call(STYLES, style) >= 0) {\n return style;\n }\n throw new Error('\"' + style + '\" is not a valid IntlRelativeFormat `style` value, it ' +\n 'must be one of: \"' + STYLES.join('\", \"') + '\"');\n};\nRelativeFormat.prototype._selectUnits = function (diffReport) {\n var i, l, units;\n var fields = FIELDS.filter(function (field) {\n return field.indexOf('-short') < 1;\n });\n for (i = 0, l = fields.length; i < l; i += 1) {\n units = fields[i];\n if (Math.abs(diffReport[units]) < RelativeFormat.thresholds[units]) {\n break;\n }\n }\n return units;\n};\n//# sourceMappingURL=core.js.map","\"use strict\";\n/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/* jslint esnext: true */\nvar round = Math.round;\nfunction daysToYears(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n return days * 400 / 146097;\n}\n// Thanks to date-fns\n// https://github.com/date-fns/date-fns\n// MIT © Sasha Koss\nvar MILLISECONDS_IN_MINUTE = 60000;\nvar MILLISECONDS_IN_DAY = 86400000;\nfunction startOfDay(dirtyDate) {\n var date = new Date(dirtyDate);\n date.setHours(0, 0, 0, 0);\n return date;\n}\nfunction differenceInCalendarDays(dirtyDateLeft, dirtyDateRight) {\n var startOfDayLeft = startOfDay(dirtyDateLeft);\n var startOfDayRight = startOfDay(dirtyDateRight);\n var timestampLeft = startOfDayLeft.getTime() -\n startOfDayLeft.getTimezoneOffset() * MILLISECONDS_IN_MINUTE;\n var timestampRight = startOfDayRight.getTime() -\n startOfDayRight.getTimezoneOffset() * MILLISECONDS_IN_MINUTE;\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a day is not constant\n // (e.g. it's different in the day of the daylight saving time clock shift)\n return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_DAY);\n}\nfunction default_1(from, to) {\n // Convert to ms timestamps.\n from = +from;\n to = +to;\n var millisecond = round(to - from), second = round(millisecond / 1000), minute = round(second / 60), hour = round(minute / 60);\n // We expect a more precision in rounding when dealing with\n // days as it feels wrong when something happended 13 hours ago and\n // is regarded as \"yesterday\" even if the time was this morning.\n var day = differenceInCalendarDays(to, from);\n var week = round(day / 7);\n var rawYears = daysToYears(day), month = round(rawYears * 12), year = round(rawYears);\n return {\n millisecond: millisecond,\n second: second,\n 'second-short': second,\n minute: minute,\n 'minute-short': minute,\n hour: hour,\n 'hour-short': hour,\n day: day,\n 'day-short': day,\n week: week,\n 'week-short': week,\n month: month,\n 'month-short': month,\n year: year,\n 'year-short': year\n };\n}\nexports.default = default_1;\n//# sourceMappingURL=diff.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/* @generated */\nexports.default = { \"locale\": \"en\", \"pluralRuleFunction\": function (n, ord) {\n var s = String(n).split('.'), v0 = !s[1], t0 = Number(s[0]) == n, n10 = t0 && s[0].slice(-1), n100 = t0 && s[0].slice(-2);\n if (ord)\n return (n10 == 1 && n100 != 11) ? 'one'\n : (n10 == 2 && n100 != 12) ? 'two'\n : (n10 == 3 && n100 != 13) ? 'few'\n : 'other';\n return (n == 1 && v0) ? 'one' : 'other';\n }, \"fields\": { \"year\": { \"displayName\": \"year\", \"relative\": { \"0\": \"this year\", \"1\": \"next year\", \"-1\": \"last year\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} year\", \"other\": \"in {0} years\" }, \"past\": { \"one\": \"{0} year ago\", \"other\": \"{0} years ago\" } } }, \"year-short\": { \"displayName\": \"yr.\", \"relative\": { \"0\": \"this yr.\", \"1\": \"next yr.\", \"-1\": \"last yr.\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} yr.\", \"other\": \"in {0} yr.\" }, \"past\": { \"one\": \"{0} yr. ago\", \"other\": \"{0} yr. ago\" } } }, \"month\": { \"displayName\": \"month\", \"relative\": { \"0\": \"this month\", \"1\": \"next month\", \"-1\": \"last month\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} month\", \"other\": \"in {0} months\" }, \"past\": { \"one\": \"{0} month ago\", \"other\": \"{0} months ago\" } } }, \"month-short\": { \"displayName\": \"mo.\", \"relative\": { \"0\": \"this mo.\", \"1\": \"next mo.\", \"-1\": \"last mo.\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} mo.\", \"other\": \"in {0} mo.\" }, \"past\": { \"one\": \"{0} mo. ago\", \"other\": \"{0} mo. ago\" } } }, \"week\": { \"displayName\": \"week\", \"relativePeriod\": \"the week of {0}\", \"relative\": { \"0\": \"this week\", \"1\": \"next week\", \"-1\": \"last week\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} week\", \"other\": \"in {0} weeks\" }, \"past\": { \"one\": \"{0} week ago\", \"other\": \"{0} weeks ago\" } } }, \"week-short\": { \"displayName\": \"wk.\", \"relativePeriod\": \"the week of {0}\", \"relative\": { \"0\": \"this wk.\", \"1\": \"next wk.\", \"-1\": \"last wk.\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} wk.\", \"other\": \"in {0} wk.\" }, \"past\": { \"one\": \"{0} wk. ago\", \"other\": \"{0} wk. ago\" } } }, \"day\": { \"displayName\": \"day\", \"relative\": { \"0\": \"today\", \"1\": \"tomorrow\", \"-1\": \"yesterday\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} day\", \"other\": \"in {0} days\" }, \"past\": { \"one\": \"{0} day ago\", \"other\": \"{0} days ago\" } } }, \"day-short\": { \"displayName\": \"day\", \"relative\": { \"0\": \"today\", \"1\": \"tomorrow\", \"-1\": \"yesterday\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} day\", \"other\": \"in {0} days\" }, \"past\": { \"one\": \"{0} day ago\", \"other\": \"{0} days ago\" } } }, \"hour\": { \"displayName\": \"hour\", \"relative\": { \"0\": \"this hour\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} hour\", \"other\": \"in {0} hours\" }, \"past\": { \"one\": \"{0} hour ago\", \"other\": \"{0} hours ago\" } } }, \"hour-short\": { \"displayName\": \"hr.\", \"relative\": { \"0\": \"this hour\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} hr.\", \"other\": \"in {0} hr.\" }, \"past\": { \"one\": \"{0} hr. ago\", \"other\": \"{0} hr. ago\" } } }, \"minute\": { \"displayName\": \"minute\", \"relative\": { \"0\": \"this minute\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} minute\", \"other\": \"in {0} minutes\" }, \"past\": { \"one\": \"{0} minute ago\", \"other\": \"{0} minutes ago\" } } }, \"minute-short\": { \"displayName\": \"min.\", \"relative\": { \"0\": \"this minute\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} min.\", \"other\": \"in {0} min.\" }, \"past\": { \"one\": \"{0} min. ago\", \"other\": \"{0} min. ago\" } } }, \"second\": { \"displayName\": \"second\", \"relative\": { \"0\": \"now\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} second\", \"other\": \"in {0} seconds\" }, \"past\": { \"one\": \"{0} second ago\", \"other\": \"{0} seconds ago\" } } }, \"second-short\": { \"displayName\": \"sec.\", \"relative\": { \"0\": \"now\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} sec.\", \"other\": \"in {0} sec.\" }, \"past\": { \"one\": \"{0} sec. ago\", \"other\": \"{0} sec. ago\" } } } } };\n//# sourceMappingURL=en.js.map","\"use strict\";\n/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/* jslint esnext: true */\n// Purposely using the same implementation as the Intl.js `Intl` polyfill.\n// Copyright 2013 Andy Earnshaw, MIT License\nvar hop = Object.prototype.hasOwnProperty;\nvar toString = Object.prototype.toString;\nvar realDefineProp = (function () {\n try {\n return !!Object.defineProperty({}, 'a', {});\n }\n catch (e) {\n return false;\n }\n})();\nvar es3 = !realDefineProp && !Object.prototype.__defineGetter__;\nvar defineProperty = realDefineProp ? Object.defineProperty :\n function (obj, name, desc) {\n if ('get' in desc && obj.__defineGetter__) {\n obj.__defineGetter__(name, desc.get);\n }\n else if (!hop.call(obj, name) || 'value' in desc) {\n obj[name] = desc.value;\n }\n };\nexports.defineProperty = defineProperty;\nvar objCreate = Object.create || function (proto, props) {\n var obj, k;\n function F() { }\n F.prototype = proto;\n obj = new F();\n for (k in props) {\n if (hop.call(props, k)) {\n defineProperty(obj, k, props[k]);\n }\n }\n return obj;\n};\nexports.objCreate = objCreate;\nvar arrIndexOf = Array.prototype.indexOf || function (search, fromIndex) {\n /*jshint validthis:true */\n var arr = this;\n if (!arr.length) {\n return -1;\n }\n for (var i = fromIndex || 0, max = arr.length; i < max; i++) {\n if (arr[i] === search) {\n return i;\n }\n }\n return -1;\n};\nexports.arrIndexOf = arrIndexOf;\nvar isArray = Array.isArray || function (obj) {\n return toString.call(obj) === '[object Array]';\n};\nexports.isArray = isArray;\nvar dateNow = Date.now || function () {\n return new Date().getTime();\n};\nexports.dateNow = dateNow;\n//# sourceMappingURL=es5.js.map","\"use strict\";\n/* jslint esnext: true */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar core_1 = require(\"./core\");\nvar en_1 = require(\"./en\");\ncore_1.default.__addLocaleData(en_1.default);\ncore_1.default.defaultLocale = 'en';\nexports.default = core_1.default;\n//# sourceMappingURL=main.js.map","/* jshint node:true */\n\n'use strict';\n\nvar IntlMessageFormat = require('./lib/main')['default'];\n\n// Add all locale data to `IntlMessageFormat`. This module will be ignored when\n// bundling for the browser with Browserify/Webpack.\nrequire('./lib/locales');\n\n// Re-export `IntlMessageFormat` as the CommonJS default exports with all the\n// locale data registered, and with English set as the default locale. Define\n// the `default` prop for use with other compiled ES6 Modules.\nexports = module.exports = IntlMessageFormat;\nexports['default'] = exports;\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\n\"use strict\";\nexports[\"default\"] = Compiler;\n\nfunction Compiler(locales, formats, pluralFn) {\n this.locales = locales;\n this.formats = formats;\n this.pluralFn = pluralFn;\n}\n\nCompiler.prototype.compile = function (ast) {\n this.pluralStack = [];\n this.currentPlural = null;\n this.pluralNumberFormat = null;\n\n return this.compileMessage(ast);\n};\n\nCompiler.prototype.compileMessage = function (ast) {\n if (!(ast && ast.type === 'messageFormatPattern')) {\n throw new Error('Message AST is not of type: \"messageFormatPattern\"');\n }\n\n var elements = ast.elements,\n pattern = [];\n\n var i, len, element;\n\n for (i = 0, len = elements.length; i < len; i += 1) {\n element = elements[i];\n\n switch (element.type) {\n case 'messageTextElement':\n pattern.push(this.compileMessageText(element));\n break;\n\n case 'argumentElement':\n pattern.push(this.compileArgument(element));\n break;\n\n default:\n throw new Error('Message element does not have a valid type');\n }\n }\n\n return pattern;\n};\n\nCompiler.prototype.compileMessageText = function (element) {\n // When this `element` is part of plural sub-pattern and its value contains\n // an unescaped '#', use a `PluralOffsetString` helper to properly output\n // the number with the correct offset in the string.\n if (this.currentPlural && /(^|[^\\\\])#/g.test(element.value)) {\n // Create a cache a NumberFormat instance that can be reused for any\n // PluralOffsetString instance in this message.\n if (!this.pluralNumberFormat) {\n this.pluralNumberFormat = new Intl.NumberFormat(this.locales);\n }\n\n return new PluralOffsetString(\n this.currentPlural.id,\n this.currentPlural.format.offset,\n this.pluralNumberFormat,\n element.value);\n }\n\n // Unescape the escaped '#'s in the message text.\n return element.value.replace(/\\\\#/g, '#');\n};\n\nCompiler.prototype.compileArgument = function (element) {\n var format = element.format;\n\n if (!format) {\n return new StringFormat(element.id);\n }\n\n var formats = this.formats,\n locales = this.locales,\n pluralFn = this.pluralFn,\n options;\n\n switch (format.type) {\n case 'numberFormat':\n options = formats.number[format.style];\n return {\n id : element.id,\n format: new Intl.NumberFormat(locales, options).format\n };\n\n case 'dateFormat':\n options = formats.date[format.style];\n return {\n id : element.id,\n format: new Intl.DateTimeFormat(locales, options).format\n };\n\n case 'timeFormat':\n options = formats.time[format.style];\n return {\n id : element.id,\n format: new Intl.DateTimeFormat(locales, options).format\n };\n\n case 'pluralFormat':\n options = this.compileOptions(element);\n return new PluralFormat(\n element.id, format.ordinal, format.offset, options, pluralFn\n );\n\n case 'selectFormat':\n options = this.compileOptions(element);\n return new SelectFormat(element.id, options);\n\n default:\n throw new Error('Message element does not have a valid format type');\n }\n};\n\nCompiler.prototype.compileOptions = function (element) {\n var format = element.format,\n options = format.options,\n optionsHash = {};\n\n // Save the current plural element, if any, then set it to a new value when\n // compiling the options sub-patterns. This conforms the spec's algorithm\n // for handling `\"#\"` syntax in message text.\n this.pluralStack.push(this.currentPlural);\n this.currentPlural = format.type === 'pluralFormat' ? element : null;\n\n var i, len, option;\n\n for (i = 0, len = options.length; i < len; i += 1) {\n option = options[i];\n\n // Compile the sub-pattern and save it under the options's selector.\n optionsHash[option.selector] = this.compileMessage(option.value);\n }\n\n // Pop the plural stack to put back the original current plural value.\n this.currentPlural = this.pluralStack.pop();\n\n return optionsHash;\n};\n\n// -- Compiler Helper Classes --------------------------------------------------\n\nfunction StringFormat(id) {\n this.id = id;\n}\n\nStringFormat.prototype.format = function (value) {\n if (!value && typeof value !== 'number') {\n return '';\n }\n\n return typeof value === 'string' ? value : String(value);\n};\n\nfunction PluralFormat(id, useOrdinal, offset, options, pluralFn) {\n this.id = id;\n this.useOrdinal = useOrdinal;\n this.offset = offset;\n this.options = options;\n this.pluralFn = pluralFn;\n}\n\nPluralFormat.prototype.getOption = function (value) {\n var options = this.options;\n\n var option = options['=' + value] ||\n options[this.pluralFn(value - this.offset, this.useOrdinal)];\n\n return option || options.other;\n};\n\nfunction PluralOffsetString(id, offset, numberFormat, string) {\n this.id = id;\n this.offset = offset;\n this.numberFormat = numberFormat;\n this.string = string;\n}\n\nPluralOffsetString.prototype.format = function (value) {\n var number = this.numberFormat.format(value - this.offset);\n\n return this.string\n .replace(/(^|[^\\\\])#/g, '$1' + number)\n .replace(/\\\\#/g, '#');\n};\n\nfunction SelectFormat(id, options) {\n this.id = id;\n this.options = options;\n}\n\nSelectFormat.prototype.getOption = function (value) {\n var options = this.options;\n return options[value] || options.other;\n};\n\n//# sourceMappingURL=compiler.js.map","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\n\"use strict\";\nvar src$utils$$ = require(\"./utils\"), src$es5$$ = require(\"./es5\"), src$compiler$$ = require(\"./compiler\"), intl$messageformat$parser$$ = require(\"intl-messageformat-parser\");\nexports[\"default\"] = MessageFormat;\n\n// -- MessageFormat --------------------------------------------------------\n\nfunction MessageFormat(message, locales, formats) {\n // Parse string messages into an AST.\n var ast = typeof message === 'string' ?\n MessageFormat.__parse(message) : message;\n\n if (!(ast && ast.type === 'messageFormatPattern')) {\n throw new TypeError('A message must be provided as a String or AST.');\n }\n\n // Creates a new object with the specified `formats` merged with the default\n // formats.\n formats = this._mergeFormats(MessageFormat.formats, formats);\n\n // Defined first because it's used to build the format pattern.\n src$es5$$.defineProperty(this, '_locale', {value: this._resolveLocale(locales)});\n\n // Compile the `ast` to a pattern that is highly optimized for repeated\n // `format()` invocations. **Note:** This passes the `locales` set provided\n // to the constructor instead of just the resolved locale.\n var pluralFn = this._findPluralRuleFunction(this._locale);\n var pattern = this._compilePattern(ast, locales, formats, pluralFn);\n\n // \"Bind\" `format()` method to `this` so it can be passed by reference like\n // the other `Intl` APIs.\n var messageFormat = this;\n this.format = function (values) {\n try {\n return messageFormat._format(pattern, values);\n } catch (e) {\n if (e.variableId) {\n throw new Error(\n 'The intl string context variable \\'' + e.variableId + '\\'' +\n ' was not provided to the string \\'' + message + '\\''\n );\n } else {\n throw e;\n }\n }\n };\n}\n\n// Default format options used as the prototype of the `formats` provided to the\n// constructor. These are used when constructing the internal Intl.NumberFormat\n// and Intl.DateTimeFormat instances.\nsrc$es5$$.defineProperty(MessageFormat, 'formats', {\n enumerable: true,\n\n value: {\n number: {\n 'currency': {\n style: 'currency'\n },\n\n 'percent': {\n style: 'percent'\n }\n },\n\n date: {\n 'short': {\n month: 'numeric',\n day : 'numeric',\n year : '2-digit'\n },\n\n 'medium': {\n month: 'short',\n day : 'numeric',\n year : 'numeric'\n },\n\n 'long': {\n month: 'long',\n day : 'numeric',\n year : 'numeric'\n },\n\n 'full': {\n weekday: 'long',\n month : 'long',\n day : 'numeric',\n year : 'numeric'\n }\n },\n\n time: {\n 'short': {\n hour : 'numeric',\n minute: 'numeric'\n },\n\n 'medium': {\n hour : 'numeric',\n minute: 'numeric',\n second: 'numeric'\n },\n\n 'long': {\n hour : 'numeric',\n minute : 'numeric',\n second : 'numeric',\n timeZoneName: 'short'\n },\n\n 'full': {\n hour : 'numeric',\n minute : 'numeric',\n second : 'numeric',\n timeZoneName: 'short'\n }\n }\n }\n});\n\n// Define internal private properties for dealing with locale data.\nsrc$es5$$.defineProperty(MessageFormat, '__localeData__', {value: src$es5$$.objCreate(null)});\nsrc$es5$$.defineProperty(MessageFormat, '__addLocaleData', {value: function (data) {\n if (!(data && data.locale)) {\n throw new Error(\n 'Locale data provided to IntlMessageFormat is missing a ' +\n '`locale` property'\n );\n }\n\n MessageFormat.__localeData__[data.locale.toLowerCase()] = data;\n}});\n\n// Defines `__parse()` static method as an exposed private.\nsrc$es5$$.defineProperty(MessageFormat, '__parse', {value: intl$messageformat$parser$$[\"default\"].parse});\n\n// Define public `defaultLocale` property which defaults to English, but can be\n// set by the developer.\nsrc$es5$$.defineProperty(MessageFormat, 'defaultLocale', {\n enumerable: true,\n writable : true,\n value : undefined\n});\n\nMessageFormat.prototype.resolvedOptions = function () {\n // TODO: Provide anything else?\n return {\n locale: this._locale\n };\n};\n\nMessageFormat.prototype._compilePattern = function (ast, locales, formats, pluralFn) {\n var compiler = new src$compiler$$[\"default\"](locales, formats, pluralFn);\n return compiler.compile(ast);\n};\n\nMessageFormat.prototype._findPluralRuleFunction = function (locale) {\n var localeData = MessageFormat.__localeData__;\n var data = localeData[locale.toLowerCase()];\n\n // The locale data is de-duplicated, so we have to traverse the locale's\n // hierarchy until we find a `pluralRuleFunction` to return.\n while (data) {\n if (data.pluralRuleFunction) {\n return data.pluralRuleFunction;\n }\n\n data = data.parentLocale && localeData[data.parentLocale.toLowerCase()];\n }\n\n throw new Error(\n 'Locale data added to IntlMessageFormat is missing a ' +\n '`pluralRuleFunction` for :' + locale\n );\n};\n\nMessageFormat.prototype._format = function (pattern, values) {\n var result = '',\n i, len, part, id, value, err;\n\n for (i = 0, len = pattern.length; i < len; i += 1) {\n part = pattern[i];\n\n // Exist early for string parts.\n if (typeof part === 'string') {\n result += part;\n continue;\n }\n\n id = part.id;\n\n // Enforce that all required values are provided by the caller.\n if (!(values && src$utils$$.hop.call(values, id))) {\n err = new Error('A value must be provided for: ' + id);\n err.variableId = id;\n throw err;\n }\n\n value = values[id];\n\n // Recursively format plural and select parts' option — which can be a\n // nested pattern structure. The choosing of the option to use is\n // abstracted-by and delegated-to the part helper object.\n if (part.options) {\n result += this._format(part.getOption(value), values);\n } else {\n result += part.format(value);\n }\n }\n\n return result;\n};\n\nMessageFormat.prototype._mergeFormats = function (defaults, formats) {\n var mergedFormats = {},\n type, mergedType;\n\n for (type in defaults) {\n if (!src$utils$$.hop.call(defaults, type)) { continue; }\n\n mergedFormats[type] = mergedType = src$es5$$.objCreate(defaults[type]);\n\n if (formats && src$utils$$.hop.call(formats, type)) {\n src$utils$$.extend(mergedType, formats[type]);\n }\n }\n\n return mergedFormats;\n};\n\nMessageFormat.prototype._resolveLocale = function (locales) {\n if (typeof locales === 'string') {\n locales = [locales];\n }\n\n // Create a copy of the array so we can push on the default locale.\n locales = (locales || []).concat(MessageFormat.defaultLocale);\n\n var localeData = MessageFormat.__localeData__;\n var i, len, localeParts, data;\n\n // Using the set of locales + the default locale, we look for the first one\n // which that has been registered. When data does not exist for a locale, we\n // traverse its ancestors to find something that's been registered within\n // its hierarchy of locales. Since we lack the proper `parentLocale` data\n // here, we must take a naive approach to traversal.\n for (i = 0, len = locales.length; i < len; i += 1) {\n localeParts = locales[i].toLowerCase().split('-');\n\n while (localeParts.length) {\n data = localeData[localeParts.join('-')];\n if (data) {\n // Return the normalized locale string; e.g., we return \"en-US\",\n // instead of \"en-us\".\n return data.locale;\n }\n\n localeParts.pop();\n }\n }\n\n var defaultLocale = locales.pop();\n throw new Error(\n 'No locale data has been added to IntlMessageFormat for: ' +\n locales.join(', ') + ', or the default locale: ' + defaultLocale\n );\n};\n\n//# sourceMappingURL=core.js.map","// GENERATED FILE\n\"use strict\";\nexports[\"default\"] = {\"locale\":\"en\",\"pluralRuleFunction\":function (n,ord){var s=String(n).split(\".\"),v0=!s[1],t0=Number(s[0])==n,n10=t0&&s[0].slice(-1),n100=t0&&s[0].slice(-2);if(ord)return n10==1&&n100!=11?\"one\":n10==2&&n100!=12?\"two\":n10==3&&n100!=13?\"few\":\"other\";return n==1&&v0?\"one\":\"other\"}};\n\n//# sourceMappingURL=en.js.map","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\n\"use strict\";\nvar src$utils$$ = require(\"./utils\");\n\n// Purposely using the same implementation as the Intl.js `Intl` polyfill.\n// Copyright 2013 Andy Earnshaw, MIT License\n\nvar realDefineProp = (function () {\n try { return !!Object.defineProperty({}, 'a', {}); }\n catch (e) { return false; }\n})();\n\nvar es3 = !realDefineProp && !Object.prototype.__defineGetter__;\n\nvar defineProperty = realDefineProp ? Object.defineProperty :\n function (obj, name, desc) {\n\n if ('get' in desc && obj.__defineGetter__) {\n obj.__defineGetter__(name, desc.get);\n } else if (!src$utils$$.hop.call(obj, name) || 'value' in desc) {\n obj[name] = desc.value;\n }\n};\n\nvar objCreate = Object.create || function (proto, props) {\n var obj, k;\n\n function F() {}\n F.prototype = proto;\n obj = new F();\n\n for (k in props) {\n if (src$utils$$.hop.call(props, k)) {\n defineProperty(obj, k, props[k]);\n }\n }\n\n return obj;\n};\n\nexports.defineProperty = defineProperty, exports.objCreate = objCreate;\n\n//# sourceMappingURL=es5.js.map","/* jslint esnext: true */\n\n\"use strict\";\nvar src$core$$ = require(\"./core\"), src$en$$ = require(\"./en\");\n\nsrc$core$$[\"default\"].__addLocaleData(src$en$$[\"default\"]);\nsrc$core$$[\"default\"].defaultLocale = 'en';\n\nexports[\"default\"] = src$core$$[\"default\"];\n\n//# sourceMappingURL=main.js.map","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\n\"use strict\";\nexports.extend = extend;\nvar hop = Object.prototype.hasOwnProperty;\n\nfunction extend(obj) {\n var sources = Array.prototype.slice.call(arguments, 1),\n i, len, source, key;\n\n for (i = 0, len = sources.length; i < len; i += 1) {\n source = sources[i];\n if (!source) { continue; }\n\n for (key in source) {\n if (hop.call(source, key)) {\n obj[key] = source[key];\n }\n }\n }\n\n return obj;\n}\nexports.hop = hop;\n\n//# sourceMappingURL=utils.js.map","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","/*!\n * JavaScript Cookie v2.2.1\n * https://github.com/js-cookie/js-cookie\n *\n * Copyright 2006, 2015 Klaus Hartl & Fagner Brack\n * Released under the MIT license\n */\n;(function (factory) {\n\tvar registeredInModuleLoader;\n\tif (typeof define === 'function' && define.amd) {\n\t\tdefine(factory);\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (typeof exports === 'object') {\n\t\tmodule.exports = factory();\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (!registeredInModuleLoader) {\n\t\tvar OldCookies = window.Cookies;\n\t\tvar api = window.Cookies = factory();\n\t\tapi.noConflict = function () {\n\t\t\twindow.Cookies = OldCookies;\n\t\t\treturn api;\n\t\t};\n\t}\n}(function () {\n\tfunction extend () {\n\t\tvar i = 0;\n\t\tvar result = {};\n\t\tfor (; i < arguments.length; i++) {\n\t\t\tvar attributes = arguments[ i ];\n\t\t\tfor (var key in attributes) {\n\t\t\t\tresult[key] = attributes[key];\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tfunction decode (s) {\n\t\treturn s.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent);\n\t}\n\n\tfunction init (converter) {\n\t\tfunction api() {}\n\n\t\tfunction set (key, value, attributes) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tattributes = extend({\n\t\t\t\tpath: '/'\n\t\t\t}, api.defaults, attributes);\n\n\t\t\tif (typeof attributes.expires === 'number') {\n\t\t\t\tattributes.expires = new Date(new Date() * 1 + attributes.expires * 864e+5);\n\t\t\t}\n\n\t\t\t// We're using \"expires\" because \"max-age\" is not supported by IE\n\t\t\tattributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';\n\n\t\t\ttry {\n\t\t\t\tvar result = JSON.stringify(value);\n\t\t\t\tif (/^[\\{\\[]/.test(result)) {\n\t\t\t\t\tvalue = result;\n\t\t\t\t}\n\t\t\t} catch (e) {}\n\n\t\t\tvalue = converter.write ?\n\t\t\t\tconverter.write(value, key) :\n\t\t\t\tencodeURIComponent(String(value))\n\t\t\t\t\t.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);\n\n\t\t\tkey = encodeURIComponent(String(key))\n\t\t\t\t.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent)\n\t\t\t\t.replace(/[\\(\\)]/g, escape);\n\n\t\t\tvar stringifiedAttributes = '';\n\t\t\tfor (var attributeName in attributes) {\n\t\t\t\tif (!attributes[attributeName]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tstringifiedAttributes += '; ' + attributeName;\n\t\t\t\tif (attributes[attributeName] === true) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Considers RFC 6265 section 5.2:\n\t\t\t\t// ...\n\t\t\t\t// 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n\t\t\t\t// character:\n\t\t\t\t// Consume the characters of the unparsed-attributes up to,\n\t\t\t\t// not including, the first %x3B (\";\") character.\n\t\t\t\t// ...\n\t\t\t\tstringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n\t\t\t}\n\n\t\t\treturn (document.cookie = key + '=' + value + stringifiedAttributes);\n\t\t}\n\n\t\tfunction get (key, json) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar jar = {};\n\t\t\t// To prevent the for loop in the first place assign an empty array\n\t\t\t// in case there are no cookies at all.\n\t\t\tvar cookies = document.cookie ? document.cookie.split('; ') : [];\n\t\t\tvar i = 0;\n\n\t\t\tfor (; i < cookies.length; i++) {\n\t\t\t\tvar parts = cookies[i].split('=');\n\t\t\t\tvar cookie = parts.slice(1).join('=');\n\n\t\t\t\tif (!json && cookie.charAt(0) === '\"') {\n\t\t\t\t\tcookie = cookie.slice(1, -1);\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tvar name = decode(parts[0]);\n\t\t\t\t\tcookie = (converter.read || converter)(cookie, name) ||\n\t\t\t\t\t\tdecode(cookie);\n\n\t\t\t\t\tif (json) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tcookie = JSON.parse(cookie);\n\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t}\n\n\t\t\t\t\tjar[name] = cookie;\n\n\t\t\t\t\tif (key === name) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {}\n\t\t\t}\n\n\t\t\treturn key ? jar[key] : jar;\n\t\t}\n\n\t\tapi.set = set;\n\t\tapi.get = function (key) {\n\t\t\treturn get(key, false /* read as raw */);\n\t\t};\n\t\tapi.getJSON = function (key) {\n\t\t\treturn get(key, true /* read as json */);\n\t\t};\n\t\tapi.remove = function (key, attributes) {\n\t\t\tset(key, '', extend(attributes, {\n\t\t\t\texpires: -1\n\t\t\t}));\n\t\t};\n\n\t\tapi.defaults = {};\n\n\t\tapi.withConverter = init;\n\n\t\treturn api;\n\t}\n\n\treturn init(function () {});\n}));\n","/* jstz.min.js Version: 1.0.6 Build date: 2019-09-09 */\n!function(e){var a=function(){\"use strict\";var e=\"s\",s={DAY:864e5,HOUR:36e5,MINUTE:6e4,SECOND:1e3,BASELINE_YEAR:2014,MAX_SCORE:864e6,AMBIGUITIES:{\"America/Denver\":[\"America/Mazatlan\"],\"America/Chicago\":[\"America/Mexico_City\"],\"America/Asuncion\":[\"America/Campo_Grande\",\"America/Santiago\"],\"America/Montevideo\":[\"America/Sao_Paulo\",\"America/Santiago\"],\"Asia/Beirut\":[\"Asia/Amman\",\"Asia/Jerusalem\",\"Europe/Helsinki\",\"Asia/Damascus\",\"Africa/Cairo\",\"Asia/Gaza\",\"Europe/Minsk\",\"Africa/Windhoek\"],\"Pacific/Auckland\":[\"Pacific/Fiji\"],\"America/Los_Angeles\":[\"America/Santa_Isabel\"],\"America/New_York\":[\"America/Havana\"],\"America/Halifax\":[\"America/Goose_Bay\"],\"America/Godthab\":[\"America/Miquelon\"],\"Asia/Dubai\":[\"Asia/Yerevan\"],\"Asia/Jakarta\":[\"Asia/Krasnoyarsk\"],\"Asia/Shanghai\":[\"Asia/Irkutsk\",\"Australia/Perth\"],\"Australia/Sydney\":[\"Australia/Lord_Howe\"],\"Asia/Tokyo\":[\"Asia/Yakutsk\"],\"Asia/Dhaka\":[\"Asia/Omsk\"],\"Asia/Baku\":[\"Asia/Yerevan\"],\"Australia/Brisbane\":[\"Asia/Vladivostok\"],\"Pacific/Noumea\":[\"Asia/Vladivostok\"],\"Pacific/Majuro\":[\"Asia/Kamchatka\",\"Pacific/Fiji\"],\"Pacific/Tongatapu\":[\"Pacific/Apia\"],\"Asia/Baghdad\":[\"Europe/Minsk\",\"Europe/Moscow\"],\"Asia/Karachi\":[\"Asia/Yekaterinburg\"],\"Africa/Johannesburg\":[\"Asia/Gaza\",\"Africa/Cairo\"]}},i=function(e){var a=-e.getTimezoneOffset();return null!==a?a:0},r=function(){for(var e=[],a=0;a<=11;a++)for(var r=1;r<=28;r++){var n=i(new Date(s.BASELINE_YEAR,a,r));e?e&&e[e.length-1]!==n&&e.push(n):e.push()}return e},n=function(){var a=0,s=r();return s.length>1&&(a=s[0]-s[1]),s.length>3?s[0]+\",1,weird\":a<0?s[0]+\",1\":a>0?s[1]+\",1,\"+e:s[0]+\",0\"},o=function(){var e,a;if(Intl&&\"undefined\"!=typeof Intl&&\"undefined\"!=typeof Intl.DateTimeFormat&&(e=Intl.DateTimeFormat(),\"undefined\"!=typeof e&&\"undefined\"!=typeof e.resolvedOptions))return a=e.resolvedOptions().timeZone,a&&(a.indexOf(\"/\")>-1||\"UTC\"===a)?a:void 0},t=function(e){for(var a=new Date(e,0,1,0,0,1,0).getTime(),s=new Date(e,12,31,23,59,59).getTime(),i=a,r=new Date(i).getTimezoneOffset(),n=null,o=null;ir&&(o=t),r=A),i+=864e5}return!(!n||!o)&&{s:u(n).getTime(),e:u(o).getTime()}},u=function f(e,a,i){\"undefined\"==typeof a&&(a=s.DAY,i=s.HOUR);for(var r=new Date(e.getTime()-a).getTime(),n=e.getTime()+a,o=new Date(r).getTimezoneOffset(),t=r,u=null;t=a.rules[n].s&&e[n].e<=a.rules[n].e)){r=\"N/A\";break}if(r=0,r+=Math.abs(e[n].s-a.rules[n].s),r+=Math.abs(a.rules[n].e-e[n].e),r>s.MAX_SCORE){r=\"N/A\";break}}return r=A(e,i,r,a)},n={},o=a.olson.dst_rules.zones,t=o.length,u=s.AMBIGUITIES[i],c=0;c\n *\n * @returns Array [{url: _, d: _, w: _, h:_}, ...]\n *\n * Based super duper closely on the reference algorithm at:\n * https://html.spec.whatwg.org/multipage/embedded-content.html#parse-a-srcset-attribute\n *\n * Most comments are copied in directly from the spec\n * (except for comments in parens).\n */\n\n(function (root, factory) {\n\tif (typeof define === 'function' && define.amd) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([], factory);\n\t} else if (typeof module === 'object' && module.exports) {\n\t\t// Node. Does not work with strict CommonJS, but\n\t\t// only CommonJS-like environments that support module.exports,\n\t\t// like Node.\n\t\tmodule.exports = factory();\n\t} else {\n\t\t// Browser globals (root is window)\n\t\troot.parseSrcset = factory();\n\t}\n}(this, function () {\n\n\t// 1. Let input be the value passed to this algorithm.\n\treturn function (input) {\n\n\t\t// UTILITY FUNCTIONS\n\n\t\t// Manual is faster than RegEx\n\t\t// http://bjorn.tipling.com/state-and-regular-expressions-in-javascript\n\t\t// http://jsperf.com/whitespace-character/5\n\t\tfunction isSpace(c) {\n\t\t\treturn (c === \"\\u0020\" || // space\n\t\t\tc === \"\\u0009\" || // horizontal tab\n\t\t\tc === \"\\u000A\" || // new line\n\t\t\tc === \"\\u000C\" || // form feed\n\t\t\tc === \"\\u000D\"); // carriage return\n\t\t}\n\n\t\tfunction collectCharacters(regEx) {\n\t\t\tvar chars,\n\t\t\t\tmatch = regEx.exec(input.substring(pos));\n\t\t\tif (match) {\n\t\t\t\tchars = match[ 0 ];\n\t\t\t\tpos += chars.length;\n\t\t\t\treturn chars;\n\t\t\t}\n\t\t}\n\n\t\tvar inputLength = input.length,\n\n\t\t\t// (Don't use \\s, to avoid matching non-breaking space)\n\t\t\tregexLeadingSpaces = /^[ \\t\\n\\r\\u000c]+/,\n\t\t\tregexLeadingCommasOrSpaces = /^[, \\t\\n\\r\\u000c]+/,\n\t\t\tregexLeadingNotSpaces = /^[^ \\t\\n\\r\\u000c]+/,\n\t\t\tregexTrailingCommas = /[,]+$/,\n\t\t\tregexNonNegativeInteger = /^\\d+$/,\n\n\t\t\t// ( Positive or negative or unsigned integers or decimals, without or without exponents.\n\t\t\t// Must include at least one digit.\n\t\t\t// According to spec tests any decimal point must be followed by a digit.\n\t\t\t// No leading plus sign is allowed.)\n\t\t\t// https://html.spec.whatwg.org/multipage/infrastructure.html#valid-floating-point-number\n\t\t\tregexFloatingPoint = /^-?(?:[0-9]+|[0-9]*\\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/,\n\n\t\t\turl,\n\t\t\tdescriptors,\n\t\t\tcurrentDescriptor,\n\t\t\tstate,\n\t\t\tc,\n\n\t\t\t// 2. Let position be a pointer into input, initially pointing at the start\n\t\t\t// of the string.\n\t\t\tpos = 0,\n\n\t\t\t// 3. Let candidates be an initially empty source set.\n\t\t\tcandidates = [];\n\n\t\t// 4. Splitting loop: Collect a sequence of characters that are space\n\t\t// characters or U+002C COMMA characters. If any U+002C COMMA characters\n\t\t// were collected, that is a parse error.\n\t\twhile (true) {\n\t\t\tcollectCharacters(regexLeadingCommasOrSpaces);\n\n\t\t\t// 5. If position is past the end of input, return candidates and abort these steps.\n\t\t\tif (pos >= inputLength) {\n\t\t\t\treturn candidates; // (we're done, this is the sole return path)\n\t\t\t}\n\n\t\t\t// 6. Collect a sequence of characters that are not space characters,\n\t\t\t// and let that be url.\n\t\t\turl = collectCharacters(regexLeadingNotSpaces);\n\n\t\t\t// 7. Let descriptors be a new empty list.\n\t\t\tdescriptors = [];\n\n\t\t\t// 8. If url ends with a U+002C COMMA character (,), follow these substeps:\n\t\t\t//\t\t(1). Remove all trailing U+002C COMMA characters from url. If this removed\n\t\t\t// more than one character, that is a parse error.\n\t\t\tif (url.slice(-1) === \",\") {\n\t\t\t\turl = url.replace(regexTrailingCommas, \"\");\n\t\t\t\t// (Jump ahead to step 9 to skip tokenization and just push the candidate).\n\t\t\t\tparseDescriptors();\n\n\t\t\t\t//\tOtherwise, follow these substeps:\n\t\t\t} else {\n\t\t\t\ttokenize();\n\t\t\t} // (close else of step 8)\n\n\t\t\t// 16. Return to the step labeled splitting loop.\n\t\t} // (Close of big while loop.)\n\n\t\t/**\n\t\t * Tokenizes descriptor properties prior to parsing\n\t\t * Returns undefined.\n\t\t */\n\t\tfunction tokenize() {\n\n\t\t\t// 8.1. Descriptor tokeniser: Skip whitespace\n\t\t\tcollectCharacters(regexLeadingSpaces);\n\n\t\t\t// 8.2. Let current descriptor be the empty string.\n\t\t\tcurrentDescriptor = \"\";\n\n\t\t\t// 8.3. Let state be in descriptor.\n\t\t\tstate = \"in descriptor\";\n\n\t\t\twhile (true) {\n\n\t\t\t\t// 8.4. Let c be the character at position.\n\t\t\t\tc = input.charAt(pos);\n\n\t\t\t\t// Do the following depending on the value of state.\n\t\t\t\t// For the purpose of this step, \"EOF\" is a special character representing\n\t\t\t\t// that position is past the end of input.\n\n\t\t\t\t// In descriptor\n\t\t\t\tif (state === \"in descriptor\") {\n\t\t\t\t\t// Do the following, depending on the value of c:\n\n\t\t\t\t\t// Space character\n\t\t\t\t\t// If current descriptor is not empty, append current descriptor to\n\t\t\t\t\t// descriptors and let current descriptor be the empty string.\n\t\t\t\t\t// Set state to after descriptor.\n\t\t\t\t\tif (isSpace(c)) {\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t\tcurrentDescriptor = \"\";\n\t\t\t\t\t\t\tstate = \"after descriptor\";\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// U+002C COMMA (,)\n\t\t\t\t\t\t// Advance position to the next character in input. If current descriptor\n\t\t\t\t\t\t// is not empty, append current descriptor to descriptors. Jump to the step\n\t\t\t\t\t\t// labeled descriptor parser.\n\t\t\t\t\t} else if (c === \",\") {\n\t\t\t\t\t\tpos += 1;\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t\t// U+0028 LEFT PARENTHESIS (()\n\t\t\t\t\t\t// Append c to current descriptor. Set state to in parens.\n\t\t\t\t\t} else if (c === \"\\u0028\") {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t\tstate = \"in parens\";\n\n\t\t\t\t\t\t// EOF\n\t\t\t\t\t\t// If current descriptor is not empty, append current descriptor to\n\t\t\t\t\t\t// descriptors. Jump to the step labeled descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t\t// Anything else\n\t\t\t\t\t\t// Append c to current descriptor.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t}\n\t\t\t\t\t// (end \"in descriptor\"\n\n\t\t\t\t\t// In parens\n\t\t\t\t} else if (state === \"in parens\") {\n\n\t\t\t\t\t// U+0029 RIGHT PARENTHESIS ())\n\t\t\t\t\t// Append c to current descriptor. Set state to in descriptor.\n\t\t\t\t\tif (c === \")\") {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t\tstate = \"in descriptor\";\n\n\t\t\t\t\t\t// EOF\n\t\t\t\t\t\t// Append current descriptor to descriptors. Jump to the step labeled\n\t\t\t\t\t\t// descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t\t// Anything else\n\t\t\t\t\t\t// Append c to current descriptor.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t}\n\n\t\t\t\t\t// After descriptor\n\t\t\t\t} else if (state === \"after descriptor\") {\n\n\t\t\t\t\t// Do the following, depending on the value of c:\n\t\t\t\t\t// Space character: Stay in this state.\n\t\t\t\t\tif (isSpace(c)) {\n\n\t\t\t\t\t\t// EOF: Jump to the step labeled descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t\t// Anything else\n\t\t\t\t\t\t// Set state to in descriptor. Set position to the previous character in input.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tstate = \"in descriptor\";\n\t\t\t\t\t\tpos -= 1;\n\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Advance position to the next character in input.\n\t\t\t\tpos += 1;\n\n\t\t\t\t// Repeat this step.\n\t\t\t} // (close while true loop)\n\t\t}\n\n\t\t/**\n\t\t * Adds descriptor properties to a candidate, pushes to the candidates array\n\t\t * @return undefined\n\t\t */\n\t\t// Declared outside of the while loop so that it's only created once.\n\t\tfunction parseDescriptors() {\n\n\t\t\t// 9. Descriptor parser: Let error be no.\n\t\t\tvar pError = false,\n\n\t\t\t\t// 10. Let width be absent.\n\t\t\t\t// 11. Let density be absent.\n\t\t\t\t// 12. Let future-compat-h be absent. (We're implementing it now as h)\n\t\t\t\tw, d, h, i,\n\t\t\t\tcandidate = {},\n\t\t\t\tdesc, lastChar, value, intVal, floatVal;\n\n\t\t\t// 13. For each descriptor in descriptors, run the appropriate set of steps\n\t\t\t// from the following list:\n\t\t\tfor (i = 0 ; i < descriptors.length; i++) {\n\t\t\t\tdesc = descriptors[ i ];\n\n\t\t\t\tlastChar = desc[ desc.length - 1 ];\n\t\t\t\tvalue = desc.substring(0, desc.length - 1);\n\t\t\t\tintVal = parseInt(value, 10);\n\t\t\t\tfloatVal = parseFloat(value);\n\n\t\t\t\t// If the descriptor consists of a valid non-negative integer followed by\n\t\t\t\t// a U+0077 LATIN SMALL LETTER W character\n\t\t\t\tif (regexNonNegativeInteger.test(value) && (lastChar === \"w\")) {\n\n\t\t\t\t\t// If width and density are not both absent, then let error be yes.\n\t\t\t\t\tif (w || d) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing non-negative integers to the descriptor.\n\t\t\t\t\t// If the result is zero, let error be yes.\n\t\t\t\t\t// Otherwise, let width be the result.\n\t\t\t\t\tif (intVal === 0) {pError = true;} else {w = intVal;}\n\n\t\t\t\t\t// If the descriptor consists of a valid floating-point number followed by\n\t\t\t\t\t// a U+0078 LATIN SMALL LETTER X character\n\t\t\t\t} else if (regexFloatingPoint.test(value) && (lastChar === \"x\")) {\n\n\t\t\t\t\t// If width, density and future-compat-h are not all absent, then let error\n\t\t\t\t\t// be yes.\n\t\t\t\t\tif (w || d || h) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing floating-point number values to the descriptor.\n\t\t\t\t\t// If the result is less than zero, let error be yes. Otherwise, let density\n\t\t\t\t\t// be the result.\n\t\t\t\t\tif (floatVal < 0) {pError = true;} else {d = floatVal;}\n\n\t\t\t\t\t// If the descriptor consists of a valid non-negative integer followed by\n\t\t\t\t\t// a U+0068 LATIN SMALL LETTER H character\n\t\t\t\t} else if (regexNonNegativeInteger.test(value) && (lastChar === \"h\")) {\n\n\t\t\t\t\t// If height and density are not both absent, then let error be yes.\n\t\t\t\t\tif (h || d) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing non-negative integers to the descriptor.\n\t\t\t\t\t// If the result is zero, let error be yes. Otherwise, let future-compat-h\n\t\t\t\t\t// be the result.\n\t\t\t\t\tif (intVal === 0) {pError = true;} else {h = intVal;}\n\n\t\t\t\t\t// Anything else, Let error be yes.\n\t\t\t\t} else {pError = true;}\n\t\t\t} // (close step 13 for loop)\n\n\t\t\t// 15. If error is still no, then append a new image source to candidates whose\n\t\t\t// URL is url, associated with a width width if not absent and a pixel\n\t\t\t// density density if not absent. Otherwise, there is a parse error.\n\t\t\tif (!pError) {\n\t\t\t\tcandidate.url = url;\n\t\t\t\tif (w) { candidate.w = w;}\n\t\t\t\tif (d) { candidate.d = d;}\n\t\t\t\tif (h) { candidate.h = h;}\n\t\t\t\tcandidates.push(candidate);\n\t\t\t} else if (console && console.log) {\n\t\t\t\tconsole.log(\"Invalid srcset descriptor found in '\" +\n\t\t\t\t\tinput + \"' at '\" + desc + \"'.\");\n\t\t\t}\n\t\t} // (close parseDescriptors fn)\n\n\t}\n}));\n","var x=String;\nvar create=function() {return {isColorSupported:false,reset:x,bold:x,dim:x,italic:x,underline:x,inverse:x,hidden:x,strikethrough:x,black:x,red:x,green:x,yellow:x,blue:x,magenta:x,cyan:x,white:x,gray:x,bgBlack:x,bgRed:x,bgGreen:x,bgYellow:x,bgBlue:x,bgMagenta:x,bgCyan:x,bgWhite:x}};\nmodule.exports=create();\nmodule.exports.createColors = create;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n// If obj.hasOwnProperty has been overridden, then calling\n// obj.hasOwnProperty(prop) will break.\n// See: https://github.com/joyent/node/issues/1707\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nmodule.exports = function(qs, sep, eq, options) {\n sep = sep || '&';\n eq = eq || '=';\n var obj = {};\n\n if (typeof qs !== 'string' || qs.length === 0) {\n return obj;\n }\n\n var regexp = /\\+/g;\n qs = qs.split(sep);\n\n var maxKeys = 1000;\n if (options && typeof options.maxKeys === 'number') {\n maxKeys = options.maxKeys;\n }\n\n var len = qs.length;\n // maxKeys <= 0 means that we should not limit keys count\n if (maxKeys > 0 && len > maxKeys) {\n len = maxKeys;\n }\n\n for (var i = 0; i < len; ++i) {\n var x = qs[i].replace(regexp, '%20'),\n idx = x.indexOf(eq),\n kstr, vstr, k, v;\n\n if (idx >= 0) {\n kstr = x.substr(0, idx);\n vstr = x.substr(idx + 1);\n } else {\n kstr = x;\n vstr = '';\n }\n\n k = decodeURIComponent(kstr);\n v = decodeURIComponent(vstr);\n\n if (!hasOwnProperty(obj, k)) {\n obj[k] = v;\n } else if (Array.isArray(obj[k])) {\n obj[k].push(v);\n } else {\n obj[k] = [obj[k], v];\n }\n }\n\n return obj;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar stringifyPrimitive = function(v) {\n switch (typeof v) {\n case 'string':\n return v;\n\n case 'boolean':\n return v ? 'true' : 'false';\n\n case 'number':\n return isFinite(v) ? v : '';\n\n default:\n return '';\n }\n};\n\nmodule.exports = function(obj, sep, eq, name) {\n sep = sep || '&';\n eq = eq || '=';\n if (obj === null) {\n obj = undefined;\n }\n\n if (typeof obj === 'object') {\n return Object.keys(obj).map(function(k) {\n var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;\n if (Array.isArray(obj[k])) {\n return obj[k].map(function(v) {\n return ks + encodeURIComponent(stringifyPrimitive(v));\n }).join(sep);\n } else {\n return ks + encodeURIComponent(stringifyPrimitive(obj[k]));\n }\n }).join(sep);\n\n }\n\n if (!name) return '';\n return encodeURIComponent(stringifyPrimitive(name)) + eq +\n encodeURIComponent(stringifyPrimitive(obj));\n};\n","'use strict';\n\nexports.decode = exports.parse = require('./decode');\nexports.encode = exports.stringify = require('./encode');\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\nvar RelativeTimeFormat;\n// -- Utilities ----------------------------------------------------------------\nfunction getCacheId(inputs) {\n return JSON.stringify(inputs.map(function (input) {\n return input && typeof input === 'object' ? orderedProps(input) : input;\n }));\n}\nfunction orderedProps(obj) {\n return Object.keys(obj)\n .sort()\n .map(function (k) {\n var _a;\n return (_a = {}, _a[k] = obj[k], _a);\n });\n}\nvar memoizeFormatConstructor = function (FormatConstructor, cache) {\n if (cache === void 0) { cache = {}; }\n return function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var cacheId = getCacheId(args);\n var format = cacheId && cache[cacheId];\n if (!format) {\n format = new ((_a = FormatConstructor).bind.apply(_a, [void 0].concat(args)))();\n if (cacheId) {\n cache[cacheId] = format;\n }\n }\n return format;\n };\n};\nexport default memoizeFormatConstructor;\n//# sourceMappingURL=index.js.map","/*\n * Copyright 2019, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nimport allLocaleData from '../locale-data/index.js';\nimport IntlMessageFormat from 'intl-messageformat';\nimport IntlRelativeFormat from 'intl-relativeformat';\nimport PropTypes from 'prop-types';\nimport React, { Children, Component, createElement, isValidElement } from 'react';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport invariant from 'invariant';\nimport memoizeIntlConstructor from 'intl-format-cache';\n\n// GENERATED FILE\nvar defaultLocaleData = { \"locale\": \"en\", \"pluralRuleFunction\": function pluralRuleFunction(n, ord) {\n var s = String(n).split(\".\"),\n v0 = !s[1],\n t0 = Number(s[0]) == n,\n n10 = t0 && s[0].slice(-1),\n n100 = t0 && s[0].slice(-2);if (ord) return n10 == 1 && n100 != 11 ? \"one\" : n10 == 2 && n100 != 12 ? \"two\" : n10 == 3 && n100 != 13 ? \"few\" : \"other\";return n == 1 && v0 ? \"one\" : \"other\";\n }, \"fields\": { \"year\": { \"displayName\": \"year\", \"relative\": { \"0\": \"this year\", \"1\": \"next year\", \"-1\": \"last year\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} year\", \"other\": \"in {0} years\" }, \"past\": { \"one\": \"{0} year ago\", \"other\": \"{0} years ago\" } } }, \"year-short\": { \"displayName\": \"yr.\", \"relative\": { \"0\": \"this yr.\", \"1\": \"next yr.\", \"-1\": \"last yr.\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} yr.\", \"other\": \"in {0} yr.\" }, \"past\": { \"one\": \"{0} yr. ago\", \"other\": \"{0} yr. ago\" } } }, \"month\": { \"displayName\": \"month\", \"relative\": { \"0\": \"this month\", \"1\": \"next month\", \"-1\": \"last month\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} month\", \"other\": \"in {0} months\" }, \"past\": { \"one\": \"{0} month ago\", \"other\": \"{0} months ago\" } } }, \"month-short\": { \"displayName\": \"mo.\", \"relative\": { \"0\": \"this mo.\", \"1\": \"next mo.\", \"-1\": \"last mo.\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} mo.\", \"other\": \"in {0} mo.\" }, \"past\": { \"one\": \"{0} mo. ago\", \"other\": \"{0} mo. ago\" } } }, \"day\": { \"displayName\": \"day\", \"relative\": { \"0\": \"today\", \"1\": \"tomorrow\", \"-1\": \"yesterday\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} day\", \"other\": \"in {0} days\" }, \"past\": { \"one\": \"{0} day ago\", \"other\": \"{0} days ago\" } } }, \"day-short\": { \"displayName\": \"day\", \"relative\": { \"0\": \"today\", \"1\": \"tomorrow\", \"-1\": \"yesterday\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} day\", \"other\": \"in {0} days\" }, \"past\": { \"one\": \"{0} day ago\", \"other\": \"{0} days ago\" } } }, \"hour\": { \"displayName\": \"hour\", \"relative\": { \"0\": \"this hour\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} hour\", \"other\": \"in {0} hours\" }, \"past\": { \"one\": \"{0} hour ago\", \"other\": \"{0} hours ago\" } } }, \"hour-short\": { \"displayName\": \"hr.\", \"relative\": { \"0\": \"this hour\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} hr.\", \"other\": \"in {0} hr.\" }, \"past\": { \"one\": \"{0} hr. ago\", \"other\": \"{0} hr. ago\" } } }, \"minute\": { \"displayName\": \"minute\", \"relative\": { \"0\": \"this minute\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} minute\", \"other\": \"in {0} minutes\" }, \"past\": { \"one\": \"{0} minute ago\", \"other\": \"{0} minutes ago\" } } }, \"minute-short\": { \"displayName\": \"min.\", \"relative\": { \"0\": \"this minute\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} min.\", \"other\": \"in {0} min.\" }, \"past\": { \"one\": \"{0} min. ago\", \"other\": \"{0} min. ago\" } } }, \"second\": { \"displayName\": \"second\", \"relative\": { \"0\": \"now\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} second\", \"other\": \"in {0} seconds\" }, \"past\": { \"one\": \"{0} second ago\", \"other\": \"{0} seconds ago\" } } }, \"second-short\": { \"displayName\": \"sec.\", \"relative\": { \"0\": \"now\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} sec.\", \"other\": \"in {0} sec.\" }, \"past\": { \"one\": \"{0} sec. ago\", \"other\": \"{0} sec. ago\" } } } } };\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nfunction addLocaleData() {\n var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n var locales = Array.isArray(data) ? data : [data];\n\n locales.forEach(function (localeData) {\n if (localeData && localeData.locale) {\n IntlMessageFormat.__addLocaleData(localeData);\n IntlRelativeFormat.__addLocaleData(localeData);\n }\n });\n}\n\nfunction hasLocaleData(locale) {\n var localeParts = (locale || '').split('-');\n\n while (localeParts.length > 0) {\n if (hasIMFAndIRFLocaleData(localeParts.join('-'))) {\n return true;\n }\n\n localeParts.pop();\n }\n\n return false;\n}\n\nfunction hasIMFAndIRFLocaleData(locale) {\n var normalizedLocale = locale && locale.toLowerCase();\n\n return !!(IntlMessageFormat.__localeData__[normalizedLocale] && IntlRelativeFormat.__localeData__[normalizedLocale]);\n}\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\n\n\n\n\nvar asyncGenerator = function () {\n function AwaitValue(value) {\n this.value = value;\n }\n\n function AsyncGenerator(gen) {\n var front, back;\n\n function send(key, arg) {\n return new Promise(function (resolve, reject) {\n var request = {\n key: key,\n arg: arg,\n resolve: resolve,\n reject: reject,\n next: null\n };\n\n if (back) {\n back = back.next = request;\n } else {\n front = back = request;\n resume(key, arg);\n }\n });\n }\n\n function resume(key, arg) {\n try {\n var result = gen[key](arg);\n var value = result.value;\n\n if (value instanceof AwaitValue) {\n Promise.resolve(value.value).then(function (arg) {\n resume(\"next\", arg);\n }, function (arg) {\n resume(\"throw\", arg);\n });\n } else {\n settle(result.done ? \"return\" : \"normal\", result.value);\n }\n } catch (err) {\n settle(\"throw\", err);\n }\n }\n\n function settle(type, value) {\n switch (type) {\n case \"return\":\n front.resolve({\n value: value,\n done: true\n });\n break;\n\n case \"throw\":\n front.reject(value);\n break;\n\n default:\n front.resolve({\n value: value,\n done: false\n });\n break;\n }\n\n front = front.next;\n\n if (front) {\n resume(front.key, front.arg);\n } else {\n back = null;\n }\n }\n\n this._invoke = send;\n\n if (typeof gen.return !== \"function\") {\n this.return = undefined;\n }\n }\n\n if (typeof Symbol === \"function\" && Symbol.asyncIterator) {\n AsyncGenerator.prototype[Symbol.asyncIterator] = function () {\n return this;\n };\n }\n\n AsyncGenerator.prototype.next = function (arg) {\n return this._invoke(\"next\", arg);\n };\n\n AsyncGenerator.prototype.throw = function (arg) {\n return this._invoke(\"throw\", arg);\n };\n\n AsyncGenerator.prototype.return = function (arg) {\n return this._invoke(\"return\", arg);\n };\n\n return {\n wrap: function (fn) {\n return function () {\n return new AsyncGenerator(fn.apply(this, arguments));\n };\n },\n await: function (value) {\n return new AwaitValue(value);\n }\n };\n}();\n\n\n\n\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n\n\nvar inherits = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\n\n\n\n\n\n\n\n\nvar objectWithoutProperties = function (obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\nvar possibleConstructorReturn = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar toConsumableArray = function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n } else {\n return Array.from(arr);\n }\n};\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar bool = PropTypes.bool;\nvar number = PropTypes.number;\nvar string = PropTypes.string;\nvar func = PropTypes.func;\nvar object = PropTypes.object;\nvar oneOf = PropTypes.oneOf;\nvar shape = PropTypes.shape;\nvar any = PropTypes.any;\nvar oneOfType = PropTypes.oneOfType;\n\nvar localeMatcher = oneOf(['best fit', 'lookup']);\nvar narrowShortLong = oneOf(['narrow', 'short', 'long']);\nvar numeric2digit = oneOf(['numeric', '2-digit']);\nvar funcReq = func.isRequired;\n\nvar intlConfigPropTypes = {\n locale: string,\n timeZone: string,\n formats: object,\n messages: object,\n textComponent: any,\n\n defaultLocale: string,\n defaultFormats: object,\n\n onError: func\n};\n\nvar intlFormatPropTypes = {\n formatDate: funcReq,\n formatTime: funcReq,\n formatRelative: funcReq,\n formatNumber: funcReq,\n formatPlural: funcReq,\n formatMessage: funcReq,\n formatHTMLMessage: funcReq\n};\n\nvar intlShape = shape(_extends({}, intlConfigPropTypes, intlFormatPropTypes, {\n formatters: object,\n now: funcReq\n}));\n\nvar messageDescriptorPropTypes = {\n id: string.isRequired,\n description: oneOfType([string, object]),\n defaultMessage: string\n};\n\nvar dateTimeFormatPropTypes = {\n localeMatcher: localeMatcher,\n formatMatcher: oneOf(['basic', 'best fit']),\n\n timeZone: string,\n hour12: bool,\n\n weekday: narrowShortLong,\n era: narrowShortLong,\n year: numeric2digit,\n month: oneOf(['numeric', '2-digit', 'narrow', 'short', 'long']),\n day: numeric2digit,\n hour: numeric2digit,\n minute: numeric2digit,\n second: numeric2digit,\n timeZoneName: oneOf(['short', 'long'])\n};\n\nvar numberFormatPropTypes = {\n localeMatcher: localeMatcher,\n\n style: oneOf(['decimal', 'currency', 'percent']),\n currency: string,\n currencyDisplay: oneOf(['symbol', 'code', 'name']),\n useGrouping: bool,\n\n minimumIntegerDigits: number,\n minimumFractionDigits: number,\n maximumFractionDigits: number,\n minimumSignificantDigits: number,\n maximumSignificantDigits: number\n};\n\nvar relativeFormatPropTypes = {\n style: oneOf(['best fit', 'numeric']),\n units: oneOf(['second', 'minute', 'hour', 'day', 'month', 'year', 'second-short', 'minute-short', 'hour-short', 'day-short', 'month-short', 'year-short'])\n};\n\nvar pluralFormatPropTypes = {\n style: oneOf(['cardinal', 'ordinal'])\n};\n\n/*\nHTML escaping and shallow-equals implementations are the same as React's\n(on purpose.) Therefore, it has the following Copyright and Licensing:\n\nCopyright 2013-2014, Facebook, Inc.\nAll rights reserved.\n\nThis source code is licensed under the BSD-style license found in the LICENSE\nfile in the root directory of React's source tree.\n*/\n\nvar intlConfigPropNames = Object.keys(intlConfigPropTypes);\n\nvar ESCAPED_CHARS = {\n '&': '&',\n '>': '>',\n '<': '<',\n '\"': '"',\n \"'\": '''\n};\n\nvar UNSAFE_CHARS_REGEX = /[&><\"']/g;\n\nfunction escape(str) {\n return ('' + str).replace(UNSAFE_CHARS_REGEX, function (match) {\n return ESCAPED_CHARS[match];\n });\n}\n\nfunction filterProps(props, whitelist) {\n var defaults$$1 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n return whitelist.reduce(function (filtered, name) {\n if (props.hasOwnProperty(name)) {\n filtered[name] = props[name];\n } else if (defaults$$1.hasOwnProperty(name)) {\n filtered[name] = defaults$$1[name];\n }\n\n return filtered;\n }, {});\n}\n\nfunction invariantIntlContext() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n intl = _ref.intl;\n\n invariant(intl, '[React Intl] Could not find required `intl` object. ' + ' needs to exist in the component ancestry.');\n}\n\nfunction shallowEquals(objA, objB) {\n if (objA === objB) {\n return true;\n }\n\n if ((typeof objA === 'undefined' ? 'undefined' : _typeof(objA)) !== 'object' || objA === null || (typeof objB === 'undefined' ? 'undefined' : _typeof(objB)) !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n // Test for A's keys different from B.\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n for (var i = 0; i < keysA.length; i++) {\n if (!bHasOwnProperty(keysA[i]) || objA[keysA[i]] !== objB[keysA[i]]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction shouldIntlComponentUpdate(_ref2, nextProps, nextState) {\n var props = _ref2.props,\n state = _ref2.state,\n _ref2$context = _ref2.context,\n context = _ref2$context === undefined ? {} : _ref2$context;\n var nextContext = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var _context$intl = context.intl,\n intl = _context$intl === undefined ? {} : _context$intl;\n var _nextContext$intl = nextContext.intl,\n nextIntl = _nextContext$intl === undefined ? {} : _nextContext$intl;\n\n\n return !shallowEquals(nextProps, props) || !shallowEquals(nextState, state) || !(nextIntl === intl || shallowEquals(filterProps(nextIntl, intlConfigPropNames), filterProps(intl, intlConfigPropNames)));\n}\n\nfunction createError(message, exception) {\n var eMsg = exception ? '\\n' + exception : '';\n return '[React Intl] ' + message + eMsg;\n}\n\nfunction defaultErrorHandler(error) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(error);\n }\n}\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\n// Inspired by react-redux's `connect()` HOC factory function implementation:\n// https://github.com/rackt/react-redux\n\nfunction getDisplayName(Component$$1) {\n return Component$$1.displayName || Component$$1.name || 'Component';\n}\n\nfunction injectIntl(WrappedComponent) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _options$intlPropName = options.intlPropName,\n intlPropName = _options$intlPropName === undefined ? 'intl' : _options$intlPropName,\n _options$withRef = options.withRef,\n withRef = _options$withRef === undefined ? false : _options$withRef;\n\n var InjectIntl = function (_Component) {\n inherits(InjectIntl, _Component);\n\n function InjectIntl(props, context) {\n classCallCheck(this, InjectIntl);\n\n var _this = possibleConstructorReturn(this, (InjectIntl.__proto__ || Object.getPrototypeOf(InjectIntl)).call(this, props, context));\n\n invariantIntlContext(context);\n return _this;\n }\n\n createClass(InjectIntl, [{\n key: 'getWrappedInstance',\n value: function getWrappedInstance() {\n invariant(withRef, '[React Intl] To access the wrapped instance, ' + 'the `{withRef: true}` option must be set when calling: ' + '`injectIntl()`');\n\n return this._wrappedInstance;\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n return React.createElement(WrappedComponent, _extends({}, this.props, defineProperty({}, intlPropName, this.context.intl), {\n ref: withRef ? /* istanbul ignore next */function (ref) {\n return _this2._wrappedInstance = ref;\n } : null\n }));\n }\n }]);\n return InjectIntl;\n }(Component);\n\n InjectIntl.displayName = 'InjectIntl(' + getDisplayName(WrappedComponent) + ')';\n InjectIntl.contextTypes = {\n intl: intlShape\n };\n InjectIntl.WrappedComponent = WrappedComponent;\n\n\n return hoistNonReactStatics(InjectIntl, WrappedComponent);\n}\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nfunction defineMessages(messageDescriptors) {\n // This simply returns what's passed-in because it's meant to be a hook for\n // babel-plugin-react-intl.\n return messageDescriptors;\n}\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\n// This is a \"hack\" until a proper `intl-pluralformat` package is created.\n\nfunction resolveLocale(locales) {\n // IntlMessageFormat#_resolveLocale() does not depend on `this`.\n return IntlMessageFormat.prototype._resolveLocale(locales);\n}\n\nfunction findPluralFunction(locale) {\n // IntlMessageFormat#_findPluralFunction() does not depend on `this`.\n return IntlMessageFormat.prototype._findPluralRuleFunction(locale);\n}\n\nvar IntlPluralFormat = function IntlPluralFormat(locales) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n classCallCheck(this, IntlPluralFormat);\n\n var useOrdinal = options.style === 'ordinal';\n var pluralFn = findPluralFunction(resolveLocale(locales));\n\n this.format = function (value) {\n return pluralFn(value, useOrdinal);\n };\n};\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar DATE_TIME_FORMAT_OPTIONS = Object.keys(dateTimeFormatPropTypes);\nvar NUMBER_FORMAT_OPTIONS = Object.keys(numberFormatPropTypes);\nvar RELATIVE_FORMAT_OPTIONS = Object.keys(relativeFormatPropTypes);\nvar PLURAL_FORMAT_OPTIONS = Object.keys(pluralFormatPropTypes);\n\nvar RELATIVE_FORMAT_THRESHOLDS = {\n second: 60, // seconds to minute\n minute: 60, // minutes to hour\n hour: 24, // hours to day\n day: 30, // days to month\n month: 12 };\n\nfunction updateRelativeFormatThresholds(newThresholds) {\n var thresholds = IntlRelativeFormat.thresholds;\n thresholds.second = newThresholds.second;\n thresholds.minute = newThresholds.minute;\n thresholds.hour = newThresholds.hour;\n thresholds.day = newThresholds.day;\n thresholds.month = newThresholds.month;\n thresholds['second-short'] = newThresholds['second-short'];\n thresholds['minute-short'] = newThresholds['minute-short'];\n thresholds['hour-short'] = newThresholds['hour-short'];\n thresholds['day-short'] = newThresholds['day-short'];\n thresholds['month-short'] = newThresholds['month-short'];\n}\n\nfunction getNamedFormat(formats, type, name, onError) {\n var format = formats && formats[type] && formats[type][name];\n if (format) {\n return format;\n }\n\n onError(createError('No ' + type + ' format named: ' + name));\n}\n\nfunction formatDate(config, state, value) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var locale = config.locale,\n formats = config.formats,\n timeZone = config.timeZone;\n var format = options.format;\n\n\n var onError = config.onError || defaultErrorHandler;\n var date = new Date(value);\n var defaults$$1 = _extends({}, timeZone && { timeZone: timeZone }, format && getNamedFormat(formats, 'date', format, onError));\n var filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, defaults$$1);\n\n try {\n return state.getDateTimeFormat(locale, filteredOptions).format(date);\n } catch (e) {\n onError(createError('Error formatting date.', e));\n }\n\n return String(date);\n}\n\nfunction formatTime(config, state, value) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var locale = config.locale,\n formats = config.formats,\n timeZone = config.timeZone;\n var format = options.format;\n\n\n var onError = config.onError || defaultErrorHandler;\n var date = new Date(value);\n var defaults$$1 = _extends({}, timeZone && { timeZone: timeZone }, format && getNamedFormat(formats, 'time', format, onError));\n var filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, defaults$$1);\n\n if (!filteredOptions.hour && !filteredOptions.minute && !filteredOptions.second) {\n // Add default formatting options if hour, minute, or second isn't defined.\n filteredOptions = _extends({}, filteredOptions, { hour: 'numeric', minute: 'numeric' });\n }\n\n try {\n return state.getDateTimeFormat(locale, filteredOptions).format(date);\n } catch (e) {\n onError(createError('Error formatting time.', e));\n }\n\n return String(date);\n}\n\nfunction formatRelative(config, state, value) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var locale = config.locale,\n formats = config.formats;\n var format = options.format;\n\n\n var onError = config.onError || defaultErrorHandler;\n var date = new Date(value);\n var now = new Date(options.now);\n var defaults$$1 = format && getNamedFormat(formats, 'relative', format, onError);\n var filteredOptions = filterProps(options, RELATIVE_FORMAT_OPTIONS, defaults$$1);\n\n // Capture the current threshold values, then temporarily override them with\n // specific values just for this render.\n var oldThresholds = _extends({}, IntlRelativeFormat.thresholds);\n updateRelativeFormatThresholds(RELATIVE_FORMAT_THRESHOLDS);\n\n try {\n return state.getRelativeFormat(locale, filteredOptions).format(date, {\n now: isFinite(now) ? now : state.now()\n });\n } catch (e) {\n onError(createError('Error formatting relative time.', e));\n } finally {\n updateRelativeFormatThresholds(oldThresholds);\n }\n\n return String(date);\n}\n\nfunction formatNumber(config, state, value) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var locale = config.locale,\n formats = config.formats;\n var format = options.format;\n\n\n var onError = config.onError || defaultErrorHandler;\n var defaults$$1 = format && getNamedFormat(formats, 'number', format, onError);\n var filteredOptions = filterProps(options, NUMBER_FORMAT_OPTIONS, defaults$$1);\n\n try {\n return state.getNumberFormat(locale, filteredOptions).format(value);\n } catch (e) {\n onError(createError('Error formatting number.', e));\n }\n\n return String(value);\n}\n\nfunction formatPlural(config, state, value) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var locale = config.locale;\n\n\n var filteredOptions = filterProps(options, PLURAL_FORMAT_OPTIONS);\n var onError = config.onError || defaultErrorHandler;\n\n try {\n return state.getPluralFormat(locale, filteredOptions).format(value);\n } catch (e) {\n onError(createError('Error formatting plural.', e));\n }\n\n return 'other';\n}\n\nfunction formatMessage(config, state) {\n var messageDescriptor = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var values = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var locale = config.locale,\n formats = config.formats,\n messages = config.messages,\n defaultLocale = config.defaultLocale,\n defaultFormats = config.defaultFormats;\n var id = messageDescriptor.id,\n defaultMessage = messageDescriptor.defaultMessage;\n\n // Produce a better error if the user calls `intl.formatMessage(element)`\n\n if (process.env.NODE_ENV !== 'production') {\n invariant(!isValidElement(config), '[React Intl] Don\\'t pass React elements to ' + 'formatMessage(), pass `.props`.');\n }\n\n // `id` is a required field of a Message Descriptor.\n invariant(id, '[React Intl] An `id` must be provided to format a message.');\n\n var message = messages && messages[id];\n var hasValues = Object.keys(values).length > 0;\n\n // Avoid expensive message formatting for simple messages without values. In\n // development messages will always be formatted in case of missing values.\n if (!hasValues && process.env.NODE_ENV === 'production') {\n return message || defaultMessage || id;\n }\n\n var formattedMessage = void 0;\n var onError = config.onError || defaultErrorHandler;\n\n if (message) {\n try {\n var formatter = state.getMessageFormat(message, locale, formats);\n\n formattedMessage = formatter.format(values);\n } catch (e) {\n onError(createError('Error formatting message: \"' + id + '\" for locale: \"' + locale + '\"' + (defaultMessage ? ', using default message as fallback.' : ''), e));\n }\n } else {\n // This prevents warnings from littering the console in development\n // when no `messages` are passed into the for the\n // default locale, and a default message is in the source.\n if (!defaultMessage || locale && locale.toLowerCase() !== defaultLocale.toLowerCase()) {\n onError(createError('Missing message: \"' + id + '\" for locale: \"' + locale + '\"' + (defaultMessage ? ', using default message as fallback.' : '')));\n }\n }\n\n if (!formattedMessage && defaultMessage) {\n try {\n var _formatter = state.getMessageFormat(defaultMessage, defaultLocale, defaultFormats);\n\n formattedMessage = _formatter.format(values);\n } catch (e) {\n onError(createError('Error formatting the default message for: \"' + id + '\"', e));\n }\n }\n\n if (!formattedMessage) {\n onError(createError('Cannot format message: \"' + id + '\", ' + ('using message ' + (message || defaultMessage ? 'source' : 'id') + ' as fallback.')));\n }\n\n return formattedMessage || message || defaultMessage || id;\n}\n\nfunction formatHTMLMessage(config, state, messageDescriptor) {\n var rawValues = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n // Process all the values before they are used when formatting the ICU\n // Message string. Since the formatted message might be injected via\n // `innerHTML`, all String-based values need to be HTML-escaped.\n var escapedValues = Object.keys(rawValues).reduce(function (escaped, name) {\n var value = rawValues[name];\n escaped[name] = typeof value === 'string' ? escape(value) : value;\n return escaped;\n }, {});\n\n return formatMessage(config, state, messageDescriptor, escapedValues);\n}\n\n\n\nvar format = Object.freeze({\n\tformatDate: formatDate,\n\tformatTime: formatTime,\n\tformatRelative: formatRelative,\n\tformatNumber: formatNumber,\n\tformatPlural: formatPlural,\n\tformatMessage: formatMessage,\n\tformatHTMLMessage: formatHTMLMessage\n});\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar intlConfigPropNames$1 = Object.keys(intlConfigPropTypes);\nvar intlFormatPropNames = Object.keys(intlFormatPropTypes);\n\n// These are not a static property on the `IntlProvider` class so the intl\n// config values can be inherited from an ancestor.\nvar defaultProps = {\n formats: {},\n messages: {},\n timeZone: null,\n textComponent: 'span',\n\n defaultLocale: 'en',\n defaultFormats: {},\n\n onError: defaultErrorHandler\n};\n\nvar IntlProvider = function (_Component) {\n inherits(IntlProvider, _Component);\n\n function IntlProvider(props) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n classCallCheck(this, IntlProvider);\n\n var _this = possibleConstructorReturn(this, (IntlProvider.__proto__ || Object.getPrototypeOf(IntlProvider)).call(this, props, context));\n\n invariant(typeof Intl !== 'undefined', '[React Intl] The `Intl` APIs must be available in the runtime, ' + 'and do not appear to be built-in. An `Intl` polyfill should be loaded.\\n' + 'See: http://formatjs.io/guides/runtime-environments/');\n\n var intlContext = context.intl;\n\n // Used to stabilize time when performing an initial rendering so that\n // all relative times use the same reference \"now\" time.\n\n var initialNow = void 0;\n if (isFinite(props.initialNow)) {\n initialNow = Number(props.initialNow);\n } else {\n // When an `initialNow` isn't provided via `props`, look to see an\n // exists in the ancestry and call its `now()`\n // function to propagate its value for \"now\".\n initialNow = intlContext ? intlContext.now() : Date.now();\n }\n\n // Creating `Intl*` formatters is expensive. If there's a parent\n // ``, then its formatters will be used. Otherwise, this\n // memoize the `Intl*` constructors and cache them for the lifecycle of\n // this IntlProvider instance.\n\n var _ref = intlContext || {},\n _ref$formatters = _ref.formatters,\n formatters = _ref$formatters === undefined ? {\n getDateTimeFormat: memoizeIntlConstructor(Intl.DateTimeFormat),\n getNumberFormat: memoizeIntlConstructor(Intl.NumberFormat),\n getMessageFormat: memoizeIntlConstructor(IntlMessageFormat),\n getRelativeFormat: memoizeIntlConstructor(IntlRelativeFormat),\n getPluralFormat: memoizeIntlConstructor(IntlPluralFormat)\n } : _ref$formatters;\n\n _this.state = _extends({}, formatters, {\n\n // Wrapper to provide stable \"now\" time for initial render.\n now: function now() {\n return _this._didDisplay ? Date.now() : initialNow;\n }\n });\n return _this;\n }\n\n createClass(IntlProvider, [{\n key: 'getConfig',\n value: function getConfig() {\n var intlContext = this.context.intl;\n\n // Build a whitelisted config object from `props`, defaults, and\n // `context.intl`, if an exists in the ancestry.\n\n var config = filterProps(this.props, intlConfigPropNames$1, intlContext);\n\n // Apply default props. This must be applied last after the props have\n // been resolved and inherited from any in the ancestry.\n // This matches how React resolves `defaultProps`.\n for (var propName in defaultProps) {\n if (config[propName] === undefined) {\n config[propName] = defaultProps[propName];\n }\n }\n\n if (!hasLocaleData(config.locale)) {\n var _config = config,\n locale = _config.locale,\n defaultLocale = _config.defaultLocale,\n defaultFormats = _config.defaultFormats,\n onError = _config.onError;\n\n\n onError(createError('Missing locale data for locale: \"' + locale + '\". ' + ('Using default locale: \"' + defaultLocale + '\" as fallback.')));\n\n // Since there's no registered locale data for `locale`, this will\n // fallback to the `defaultLocale` to make sure things can render.\n // The `messages` are overridden to the `defaultProps` empty object\n // to maintain referential equality across re-renders. It's assumed\n // each contains a `defaultMessage` prop.\n config = _extends({}, config, {\n locale: defaultLocale,\n formats: defaultFormats,\n messages: defaultProps.messages\n });\n }\n\n return config;\n }\n }, {\n key: 'getBoundFormatFns',\n value: function getBoundFormatFns(config, state) {\n return intlFormatPropNames.reduce(function (boundFormatFns, name) {\n boundFormatFns[name] = format[name].bind(null, config, state);\n return boundFormatFns;\n }, {});\n }\n }, {\n key: 'getChildContext',\n value: function getChildContext() {\n var config = this.getConfig();\n\n // Bind intl factories and current config to the format functions.\n var boundFormatFns = this.getBoundFormatFns(config, this.state);\n\n var _state = this.state,\n now = _state.now,\n formatters = objectWithoutProperties(_state, ['now']);\n\n\n return {\n intl: _extends({}, config, boundFormatFns, {\n formatters: formatters,\n now: now\n })\n };\n }\n }, {\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate() {\n for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n next[_key] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n this._didDisplay = true;\n }\n }, {\n key: 'render',\n value: function render() {\n return Children.only(this.props.children);\n }\n }]);\n return IntlProvider;\n}(Component);\n\nIntlProvider.displayName = 'IntlProvider';\nIntlProvider.contextTypes = {\n intl: intlShape\n};\nIntlProvider.childContextTypes = {\n intl: intlShape.isRequired\n};\nprocess.env.NODE_ENV !== \"production\" ? IntlProvider.propTypes = _extends({}, intlConfigPropTypes, {\n children: PropTypes.element.isRequired,\n initialNow: PropTypes.any\n}) : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar FormattedDate = function (_Component) {\n inherits(FormattedDate, _Component);\n\n function FormattedDate(props, context) {\n classCallCheck(this, FormattedDate);\n\n var _this = possibleConstructorReturn(this, (FormattedDate.__proto__ || Object.getPrototypeOf(FormattedDate)).call(this, props, context));\n\n invariantIntlContext(context);\n return _this;\n }\n\n createClass(FormattedDate, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate() {\n for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n next[_key] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$intl = this.context.intl,\n formatDate = _context$intl.formatDate,\n Text = _context$intl.textComponent;\n var _props = this.props,\n value = _props.value,\n children = _props.children;\n\n\n var formattedDate = formatDate(value, this.props);\n\n if (typeof children === 'function') {\n return children(formattedDate);\n }\n\n return React.createElement(\n Text,\n null,\n formattedDate\n );\n }\n }]);\n return FormattedDate;\n}(Component);\n\nFormattedDate.displayName = 'FormattedDate';\nFormattedDate.contextTypes = {\n intl: intlShape\n};\nprocess.env.NODE_ENV !== \"production\" ? FormattedDate.propTypes = _extends({}, dateTimeFormatPropTypes, {\n value: PropTypes.any.isRequired,\n format: PropTypes.string,\n children: PropTypes.func\n}) : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar FormattedTime = function (_Component) {\n inherits(FormattedTime, _Component);\n\n function FormattedTime(props, context) {\n classCallCheck(this, FormattedTime);\n\n var _this = possibleConstructorReturn(this, (FormattedTime.__proto__ || Object.getPrototypeOf(FormattedTime)).call(this, props, context));\n\n invariantIntlContext(context);\n return _this;\n }\n\n createClass(FormattedTime, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate() {\n for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n next[_key] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$intl = this.context.intl,\n formatTime = _context$intl.formatTime,\n Text = _context$intl.textComponent;\n var _props = this.props,\n value = _props.value,\n children = _props.children;\n\n\n var formattedTime = formatTime(value, this.props);\n\n if (typeof children === 'function') {\n return children(formattedTime);\n }\n\n return React.createElement(\n Text,\n null,\n formattedTime\n );\n }\n }]);\n return FormattedTime;\n}(Component);\n\nFormattedTime.displayName = 'FormattedTime';\nFormattedTime.contextTypes = {\n intl: intlShape\n};\nprocess.env.NODE_ENV !== \"production\" ? FormattedTime.propTypes = _extends({}, dateTimeFormatPropTypes, {\n value: PropTypes.any.isRequired,\n format: PropTypes.string,\n children: PropTypes.func\n}) : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar SECOND = 1000;\nvar MINUTE = 1000 * 60;\nvar HOUR = 1000 * 60 * 60;\nvar DAY = 1000 * 60 * 60 * 24;\n\n// The maximum timer delay value is a 32-bit signed integer.\n// See: https://mdn.io/setTimeout\nvar MAX_TIMER_DELAY = 2147483647;\n\nfunction selectUnits(delta) {\n var absDelta = Math.abs(delta);\n\n if (absDelta < MINUTE) {\n return 'second';\n }\n\n if (absDelta < HOUR) {\n return 'minute';\n }\n\n if (absDelta < DAY) {\n return 'hour';\n }\n\n // The maximum scheduled delay will be measured in days since the maximum\n // timer delay is less than the number of milliseconds in 25 days.\n return 'day';\n}\n\nfunction getUnitDelay(units) {\n switch (units) {\n case 'second':\n return SECOND;\n case 'minute':\n return MINUTE;\n case 'hour':\n return HOUR;\n case 'day':\n return DAY;\n default:\n return MAX_TIMER_DELAY;\n }\n}\n\nfunction isSameDate(a, b) {\n if (a === b) {\n return true;\n }\n\n var aTime = new Date(a).getTime();\n var bTime = new Date(b).getTime();\n\n return isFinite(aTime) && isFinite(bTime) && aTime === bTime;\n}\n\nvar FormattedRelative = function (_Component) {\n inherits(FormattedRelative, _Component);\n\n function FormattedRelative(props, context) {\n classCallCheck(this, FormattedRelative);\n\n var _this = possibleConstructorReturn(this, (FormattedRelative.__proto__ || Object.getPrototypeOf(FormattedRelative)).call(this, props, context));\n\n invariantIntlContext(context);\n\n var now = isFinite(props.initialNow) ? Number(props.initialNow) : context.intl.now();\n\n // `now` is stored as state so that `render()` remains a function of\n // props + state, instead of accessing `Date.now()` inside `render()`.\n _this.state = { now: now };\n return _this;\n }\n\n createClass(FormattedRelative, [{\n key: 'scheduleNextUpdate',\n value: function scheduleNextUpdate(props, state) {\n var _this2 = this;\n\n // Cancel and pending update because we're scheduling a new update.\n clearTimeout(this._timer);\n\n var value = props.value,\n units = props.units,\n updateInterval = props.updateInterval;\n\n var time = new Date(value).getTime();\n\n // If the `updateInterval` is falsy, including `0` or we don't have a\n // valid date, then auto updates have been turned off, so we bail and\n // skip scheduling an update.\n if (!updateInterval || !isFinite(time)) {\n return;\n }\n\n var delta = time - state.now;\n var unitDelay = getUnitDelay(units || selectUnits(delta));\n var unitRemainder = Math.abs(delta % unitDelay);\n\n // We want the largest possible timer delay which will still display\n // accurate information while reducing unnecessary re-renders. The delay\n // should be until the next \"interesting\" moment, like a tick from\n // \"1 minute ago\" to \"2 minutes ago\" when the delta is 120,000ms.\n var delay = delta < 0 ? Math.max(updateInterval, unitDelay - unitRemainder) : Math.max(updateInterval, unitRemainder);\n\n this._timer = setTimeout(function () {\n _this2.setState({ now: _this2.context.intl.now() });\n }, delay);\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.scheduleNextUpdate(this.props, this.state);\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(_ref) {\n var nextValue = _ref.value;\n\n // When the `props.value` date changes, `state.now` needs to be updated,\n // and the next update can be rescheduled.\n if (!isSameDate(nextValue, this.props.value)) {\n this.setState({ now: this.context.intl.now() });\n }\n }\n }, {\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate() {\n for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n next[_key] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n }\n }, {\n key: 'componentWillUpdate',\n value: function componentWillUpdate(nextProps, nextState) {\n this.scheduleNextUpdate(nextProps, nextState);\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n clearTimeout(this._timer);\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$intl = this.context.intl,\n formatRelative = _context$intl.formatRelative,\n Text = _context$intl.textComponent;\n var _props = this.props,\n value = _props.value,\n children = _props.children;\n\n\n var formattedRelative = formatRelative(value, _extends({}, this.props, this.state));\n\n if (typeof children === 'function') {\n return children(formattedRelative);\n }\n\n return React.createElement(\n Text,\n null,\n formattedRelative\n );\n }\n }]);\n return FormattedRelative;\n}(Component);\n\nFormattedRelative.displayName = 'FormattedRelative';\nFormattedRelative.contextTypes = {\n intl: intlShape\n};\nFormattedRelative.defaultProps = {\n updateInterval: 1000 * 10\n};\nprocess.env.NODE_ENV !== \"production\" ? FormattedRelative.propTypes = _extends({}, relativeFormatPropTypes, {\n value: PropTypes.any.isRequired,\n format: PropTypes.string,\n updateInterval: PropTypes.number,\n initialNow: PropTypes.any,\n children: PropTypes.func\n}) : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar FormattedNumber = function (_Component) {\n inherits(FormattedNumber, _Component);\n\n function FormattedNumber(props, context) {\n classCallCheck(this, FormattedNumber);\n\n var _this = possibleConstructorReturn(this, (FormattedNumber.__proto__ || Object.getPrototypeOf(FormattedNumber)).call(this, props, context));\n\n invariantIntlContext(context);\n return _this;\n }\n\n createClass(FormattedNumber, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate() {\n for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n next[_key] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$intl = this.context.intl,\n formatNumber = _context$intl.formatNumber,\n Text = _context$intl.textComponent;\n var _props = this.props,\n value = _props.value,\n children = _props.children;\n\n\n var formattedNumber = formatNumber(value, this.props);\n\n if (typeof children === 'function') {\n return children(formattedNumber);\n }\n\n return React.createElement(\n Text,\n null,\n formattedNumber\n );\n }\n }]);\n return FormattedNumber;\n}(Component);\n\nFormattedNumber.displayName = 'FormattedNumber';\nFormattedNumber.contextTypes = {\n intl: intlShape\n};\nprocess.env.NODE_ENV !== \"production\" ? FormattedNumber.propTypes = _extends({}, numberFormatPropTypes, {\n value: PropTypes.any.isRequired,\n format: PropTypes.string,\n children: PropTypes.func\n}) : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar FormattedPlural = function (_Component) {\n inherits(FormattedPlural, _Component);\n\n function FormattedPlural(props, context) {\n classCallCheck(this, FormattedPlural);\n\n var _this = possibleConstructorReturn(this, (FormattedPlural.__proto__ || Object.getPrototypeOf(FormattedPlural)).call(this, props, context));\n\n invariantIntlContext(context);\n return _this;\n }\n\n createClass(FormattedPlural, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate() {\n for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n next[_key] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$intl = this.context.intl,\n formatPlural = _context$intl.formatPlural,\n Text = _context$intl.textComponent;\n var _props = this.props,\n value = _props.value,\n other = _props.other,\n children = _props.children;\n\n\n var pluralCategory = formatPlural(value, this.props);\n var formattedPlural = this.props[pluralCategory] || other;\n\n if (typeof children === 'function') {\n return children(formattedPlural);\n }\n\n return React.createElement(\n Text,\n null,\n formattedPlural\n );\n }\n }]);\n return FormattedPlural;\n}(Component);\n\nFormattedPlural.displayName = 'FormattedPlural';\nFormattedPlural.contextTypes = {\n intl: intlShape\n};\nFormattedPlural.defaultProps = {\n style: 'cardinal'\n};\nprocess.env.NODE_ENV !== \"production\" ? FormattedPlural.propTypes = _extends({}, pluralFormatPropTypes, {\n value: PropTypes.any.isRequired,\n\n other: PropTypes.node.isRequired,\n zero: PropTypes.node,\n one: PropTypes.node,\n two: PropTypes.node,\n few: PropTypes.node,\n many: PropTypes.node,\n\n children: PropTypes.func\n}) : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar defaultFormatMessage = function defaultFormatMessage(descriptor, values) {\n if (process.env.NODE_ENV !== 'production') {\n console.error('[React Intl] Could not find required `intl` object. needs to exist in the component ancestry. Using default message as fallback.');\n }\n return formatMessage({}, { getMessageFormat: memoizeIntlConstructor(IntlMessageFormat) }, descriptor, values);\n};\n\nvar FormattedMessage = function (_Component) {\n inherits(FormattedMessage, _Component);\n\n function FormattedMessage(props, context) {\n classCallCheck(this, FormattedMessage);\n\n var _this = possibleConstructorReturn(this, (FormattedMessage.__proto__ || Object.getPrototypeOf(FormattedMessage)).call(this, props, context));\n\n if (!props.defaultMessage) {\n invariantIntlContext(context);\n }\n return _this;\n }\n\n createClass(FormattedMessage, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate(nextProps) {\n var values = this.props.values;\n var nextValues = nextProps.values;\n\n\n if (!shallowEquals(nextValues, values)) {\n return true;\n }\n\n // Since `values` has already been checked, we know they're not\n // different, so the current `values` are carried over so the shallow\n // equals comparison on the other props isn't affected by the `values`.\n var nextPropsToCheck = _extends({}, nextProps, {\n values: values\n });\n\n for (var _len = arguments.length, next = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n next[_key - 1] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this, nextPropsToCheck].concat(next));\n }\n }, {\n key: 'render',\n value: function render() {\n var _ref = this.context.intl || {},\n _ref$formatMessage = _ref.formatMessage,\n formatMessage$$1 = _ref$formatMessage === undefined ? defaultFormatMessage : _ref$formatMessage,\n _ref$textComponent = _ref.textComponent,\n Text = _ref$textComponent === undefined ? 'span' : _ref$textComponent;\n\n var _props = this.props,\n id = _props.id,\n description = _props.description,\n defaultMessage = _props.defaultMessage,\n values = _props.values,\n _props$tagName = _props.tagName,\n Component$$1 = _props$tagName === undefined ? Text : _props$tagName,\n children = _props.children;\n\n\n var tokenDelimiter = void 0;\n var tokenizedValues = void 0;\n var elements = void 0;\n\n var hasValues = values && Object.keys(values).length > 0;\n if (hasValues) {\n // Creates a token with a random UID that should not be guessable or\n // conflict with other parts of the `message` string.\n var uid = Math.floor(Math.random() * 0x10000000000).toString(16);\n\n var generateToken = function () {\n var counter = 0;\n return function () {\n return 'ELEMENT-' + uid + '-' + (counter += 1);\n };\n }();\n\n // Splitting with a delimiter to support IE8. When using a regex\n // with a capture group IE8 does not include the capture group in\n // the resulting array.\n tokenDelimiter = '@__' + uid + '__@';\n tokenizedValues = {};\n elements = {};\n\n // Iterates over the `props` to keep track of any React Element\n // values so they can be represented by the `token` as a placeholder\n // when the `message` is formatted. This allows the formatted\n // message to then be broken-up into parts with references to the\n // React Elements inserted back in.\n Object.keys(values).forEach(function (name) {\n var value = values[name];\n\n if (isValidElement(value)) {\n var token = generateToken();\n tokenizedValues[name] = tokenDelimiter + token + tokenDelimiter;\n elements[token] = value;\n } else {\n tokenizedValues[name] = value;\n }\n });\n }\n\n var descriptor = { id: id, description: description, defaultMessage: defaultMessage };\n var formattedMessage = formatMessage$$1(descriptor, tokenizedValues || values);\n\n var nodes = void 0;\n\n var hasElements = elements && Object.keys(elements).length > 0;\n if (hasElements) {\n // Split the message into parts so the React Element values captured\n // above can be inserted back into the rendered message. This\n // approach allows messages to render with React Elements while\n // keeping React's virtual diffing working properly.\n nodes = formattedMessage.split(tokenDelimiter).filter(function (part) {\n return !!part;\n }).map(function (part) {\n return elements[part] || part;\n });\n } else {\n nodes = [formattedMessage];\n }\n\n if (typeof children === 'function') {\n return children.apply(undefined, toConsumableArray(nodes));\n }\n\n // Needs to use `createElement()` instead of JSX, otherwise React will\n // warn about a missing `key` prop with rich-text message formatting.\n return createElement.apply(undefined, [Component$$1, null].concat(toConsumableArray(nodes)));\n }\n }]);\n return FormattedMessage;\n}(Component);\n\nFormattedMessage.displayName = 'FormattedMessage';\nFormattedMessage.contextTypes = {\n intl: intlShape\n};\nFormattedMessage.defaultProps = {\n values: {}\n};\nprocess.env.NODE_ENV !== \"production\" ? FormattedMessage.propTypes = _extends({}, messageDescriptorPropTypes, {\n values: PropTypes.object,\n tagName: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n children: PropTypes.func\n}) : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar FormattedHTMLMessage = function (_Component) {\n inherits(FormattedHTMLMessage, _Component);\n\n function FormattedHTMLMessage(props, context) {\n classCallCheck(this, FormattedHTMLMessage);\n\n var _this = possibleConstructorReturn(this, (FormattedHTMLMessage.__proto__ || Object.getPrototypeOf(FormattedHTMLMessage)).call(this, props, context));\n\n invariantIntlContext(context);\n return _this;\n }\n\n createClass(FormattedHTMLMessage, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate(nextProps) {\n var values = this.props.values;\n var nextValues = nextProps.values;\n\n\n if (!shallowEquals(nextValues, values)) {\n return true;\n }\n\n // Since `values` has already been checked, we know they're not\n // different, so the current `values` are carried over so the shallow\n // equals comparison on the other props isn't affected by the `values`.\n var nextPropsToCheck = _extends({}, nextProps, {\n values: values\n });\n\n for (var _len = arguments.length, next = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n next[_key - 1] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this, nextPropsToCheck].concat(next));\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$intl = this.context.intl,\n formatHTMLMessage = _context$intl.formatHTMLMessage,\n Text = _context$intl.textComponent;\n var _props = this.props,\n id = _props.id,\n description = _props.description,\n defaultMessage = _props.defaultMessage,\n rawValues = _props.values,\n _props$tagName = _props.tagName,\n Component$$1 = _props$tagName === undefined ? Text : _props$tagName,\n children = _props.children;\n\n\n var descriptor = { id: id, description: description, defaultMessage: defaultMessage };\n var formattedHTMLMessage = formatHTMLMessage(descriptor, rawValues);\n\n if (typeof children === 'function') {\n return children(formattedHTMLMessage);\n }\n\n // Since the message presumably has HTML in it, we need to set\n // `innerHTML` in order for it to be rendered and not escaped by React.\n // To be safe, all string prop values were escaped when formatting the\n // message. It is assumed that the message is not UGC, and came from the\n // developer making it more like a template.\n //\n // Note: There's a perf impact of using this component since there's no\n // way for React to do its virtual DOM diffing.\n var html = { __html: formattedHTMLMessage };\n return React.createElement(Component$$1, { dangerouslySetInnerHTML: html });\n }\n }]);\n return FormattedHTMLMessage;\n}(Component);\n\nFormattedHTMLMessage.displayName = 'FormattedHTMLMessage';\nFormattedHTMLMessage.contextTypes = {\n intl: intlShape\n};\nFormattedHTMLMessage.defaultProps = {\n values: {}\n};\nprocess.env.NODE_ENV !== \"production\" ? FormattedHTMLMessage.propTypes = _extends({}, messageDescriptorPropTypes, {\n values: PropTypes.object,\n tagName: PropTypes.string,\n children: PropTypes.func\n}) : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\naddLocaleData(defaultLocaleData);\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\naddLocaleData(allLocaleData);\n\nexport { addLocaleData, intlShape, injectIntl, defineMessages, IntlProvider, FormattedDate, FormattedTime, FormattedRelative, FormattedNumber, FormattedPlural, FormattedMessage, FormattedHTMLMessage };\n","/* jshint node:true */\n\n'use strict';\n\nvar IntlMessageFormat = require('./lib/main')['default'];\n\n// Add all locale data to `IntlMessageFormat`. This module will be ignored when\n// bundling for the browser with Browserify/Webpack.\nrequire('./lib/locales');\n\n// Re-export `IntlMessageFormat` as the CommonJS default exports with all the\n// locale data registered, and with English set as the default locale. Define\n// the `default` prop for use with other compiled ES6 Modules.\nexports = module.exports = IntlMessageFormat;\nexports['default'] = exports;\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\n\"use strict\";\nexports[\"default\"] = Compiler;\n\nfunction Compiler(locales, formats, pluralFn) {\n this.locales = locales;\n this.formats = formats;\n this.pluralFn = pluralFn;\n}\n\nCompiler.prototype.compile = function (ast) {\n this.pluralStack = [];\n this.currentPlural = null;\n this.pluralNumberFormat = null;\n\n return this.compileMessage(ast);\n};\n\nCompiler.prototype.compileMessage = function (ast) {\n if (!(ast && ast.type === 'messageFormatPattern')) {\n throw new Error('Message AST is not of type: \"messageFormatPattern\"');\n }\n\n var elements = ast.elements,\n pattern = [];\n\n var i, len, element;\n\n for (i = 0, len = elements.length; i < len; i += 1) {\n element = elements[i];\n\n switch (element.type) {\n case 'messageTextElement':\n pattern.push(this.compileMessageText(element));\n break;\n\n case 'argumentElement':\n pattern.push(this.compileArgument(element));\n break;\n\n default:\n throw new Error('Message element does not have a valid type');\n }\n }\n\n return pattern;\n};\n\nCompiler.prototype.compileMessageText = function (element) {\n // When this `element` is part of plural sub-pattern and its value contains\n // an unescaped '#', use a `PluralOffsetString` helper to properly output\n // the number with the correct offset in the string.\n if (this.currentPlural && /(^|[^\\\\])#/g.test(element.value)) {\n // Create a cache a NumberFormat instance that can be reused for any\n // PluralOffsetString instance in this message.\n if (!this.pluralNumberFormat) {\n this.pluralNumberFormat = new Intl.NumberFormat(this.locales);\n }\n\n return new PluralOffsetString(\n this.currentPlural.id,\n this.currentPlural.format.offset,\n this.pluralNumberFormat,\n element.value);\n }\n\n // Unescape the escaped '#'s in the message text.\n return element.value.replace(/\\\\#/g, '#');\n};\n\nCompiler.prototype.compileArgument = function (element) {\n var format = element.format;\n\n if (!format) {\n return new StringFormat(element.id);\n }\n\n var formats = this.formats,\n locales = this.locales,\n pluralFn = this.pluralFn,\n options;\n\n switch (format.type) {\n case 'numberFormat':\n options = formats.number[format.style];\n return {\n id : element.id,\n format: new Intl.NumberFormat(locales, options).format\n };\n\n case 'dateFormat':\n options = formats.date[format.style];\n return {\n id : element.id,\n format: new Intl.DateTimeFormat(locales, options).format\n };\n\n case 'timeFormat':\n options = formats.time[format.style];\n return {\n id : element.id,\n format: new Intl.DateTimeFormat(locales, options).format\n };\n\n case 'pluralFormat':\n options = this.compileOptions(element);\n return new PluralFormat(\n element.id, format.ordinal, format.offset, options, pluralFn\n );\n\n case 'selectFormat':\n options = this.compileOptions(element);\n return new SelectFormat(element.id, options);\n\n default:\n throw new Error('Message element does not have a valid format type');\n }\n};\n\nCompiler.prototype.compileOptions = function (element) {\n var format = element.format,\n options = format.options,\n optionsHash = {};\n\n // Save the current plural element, if any, then set it to a new value when\n // compiling the options sub-patterns. This conforms the spec's algorithm\n // for handling `\"#\"` syntax in message text.\n this.pluralStack.push(this.currentPlural);\n this.currentPlural = format.type === 'pluralFormat' ? element : null;\n\n var i, len, option;\n\n for (i = 0, len = options.length; i < len; i += 1) {\n option = options[i];\n\n // Compile the sub-pattern and save it under the options's selector.\n optionsHash[option.selector] = this.compileMessage(option.value);\n }\n\n // Pop the plural stack to put back the original current plural value.\n this.currentPlural = this.pluralStack.pop();\n\n return optionsHash;\n};\n\n// -- Compiler Helper Classes --------------------------------------------------\n\nfunction StringFormat(id) {\n this.id = id;\n}\n\nStringFormat.prototype.format = function (value) {\n if (!value && typeof value !== 'number') {\n return '';\n }\n\n return typeof value === 'string' ? value : String(value);\n};\n\nfunction PluralFormat(id, useOrdinal, offset, options, pluralFn) {\n this.id = id;\n this.useOrdinal = useOrdinal;\n this.offset = offset;\n this.options = options;\n this.pluralFn = pluralFn;\n}\n\nPluralFormat.prototype.getOption = function (value) {\n var options = this.options;\n\n var option = options['=' + value] ||\n options[this.pluralFn(value - this.offset, this.useOrdinal)];\n\n return option || options.other;\n};\n\nfunction PluralOffsetString(id, offset, numberFormat, string) {\n this.id = id;\n this.offset = offset;\n this.numberFormat = numberFormat;\n this.string = string;\n}\n\nPluralOffsetString.prototype.format = function (value) {\n var number = this.numberFormat.format(value - this.offset);\n\n return this.string\n .replace(/(^|[^\\\\])#/g, '$1' + number)\n .replace(/\\\\#/g, '#');\n};\n\nfunction SelectFormat(id, options) {\n this.id = id;\n this.options = options;\n}\n\nSelectFormat.prototype.getOption = function (value) {\n var options = this.options;\n return options[value] || options.other;\n};\n\n//# sourceMappingURL=compiler.js.map","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\n\"use strict\";\nvar src$utils$$ = require(\"./utils\"), src$es5$$ = require(\"./es5\"), src$compiler$$ = require(\"./compiler\"), intl$messageformat$parser$$ = require(\"intl-messageformat-parser\");\nexports[\"default\"] = MessageFormat;\n\n// -- MessageFormat --------------------------------------------------------\n\nfunction MessageFormat(message, locales, formats) {\n // Parse string messages into an AST.\n var ast = typeof message === 'string' ?\n MessageFormat.__parse(message) : message;\n\n if (!(ast && ast.type === 'messageFormatPattern')) {\n throw new TypeError('A message must be provided as a String or AST.');\n }\n\n // Creates a new object with the specified `formats` merged with the default\n // formats.\n formats = this._mergeFormats(MessageFormat.formats, formats);\n\n // Defined first because it's used to build the format pattern.\n src$es5$$.defineProperty(this, '_locale', {value: this._resolveLocale(locales)});\n\n // Compile the `ast` to a pattern that is highly optimized for repeated\n // `format()` invocations. **Note:** This passes the `locales` set provided\n // to the constructor instead of just the resolved locale.\n var pluralFn = this._findPluralRuleFunction(this._locale);\n var pattern = this._compilePattern(ast, locales, formats, pluralFn);\n\n // \"Bind\" `format()` method to `this` so it can be passed by reference like\n // the other `Intl` APIs.\n var messageFormat = this;\n this.format = function (values) {\n try {\n return messageFormat._format(pattern, values);\n } catch (e) {\n if (e.variableId) {\n throw new Error(\n 'The intl string context variable \\'' + e.variableId + '\\'' +\n ' was not provided to the string \\'' + message + '\\''\n );\n } else {\n throw e;\n }\n }\n };\n}\n\n// Default format options used as the prototype of the `formats` provided to the\n// constructor. These are used when constructing the internal Intl.NumberFormat\n// and Intl.DateTimeFormat instances.\nsrc$es5$$.defineProperty(MessageFormat, 'formats', {\n enumerable: true,\n\n value: {\n number: {\n 'currency': {\n style: 'currency'\n },\n\n 'percent': {\n style: 'percent'\n }\n },\n\n date: {\n 'short': {\n month: 'numeric',\n day : 'numeric',\n year : '2-digit'\n },\n\n 'medium': {\n month: 'short',\n day : 'numeric',\n year : 'numeric'\n },\n\n 'long': {\n month: 'long',\n day : 'numeric',\n year : 'numeric'\n },\n\n 'full': {\n weekday: 'long',\n month : 'long',\n day : 'numeric',\n year : 'numeric'\n }\n },\n\n time: {\n 'short': {\n hour : 'numeric',\n minute: 'numeric'\n },\n\n 'medium': {\n hour : 'numeric',\n minute: 'numeric',\n second: 'numeric'\n },\n\n 'long': {\n hour : 'numeric',\n minute : 'numeric',\n second : 'numeric',\n timeZoneName: 'short'\n },\n\n 'full': {\n hour : 'numeric',\n minute : 'numeric',\n second : 'numeric',\n timeZoneName: 'short'\n }\n }\n }\n});\n\n// Define internal private properties for dealing with locale data.\nsrc$es5$$.defineProperty(MessageFormat, '__localeData__', {value: src$es5$$.objCreate(null)});\nsrc$es5$$.defineProperty(MessageFormat, '__addLocaleData', {value: function (data) {\n if (!(data && data.locale)) {\n throw new Error(\n 'Locale data provided to IntlMessageFormat is missing a ' +\n '`locale` property'\n );\n }\n\n MessageFormat.__localeData__[data.locale.toLowerCase()] = data;\n}});\n\n// Defines `__parse()` static method as an exposed private.\nsrc$es5$$.defineProperty(MessageFormat, '__parse', {value: intl$messageformat$parser$$[\"default\"].parse});\n\n// Define public `defaultLocale` property which defaults to English, but can be\n// set by the developer.\nsrc$es5$$.defineProperty(MessageFormat, 'defaultLocale', {\n enumerable: true,\n writable : true,\n value : undefined\n});\n\nMessageFormat.prototype.resolvedOptions = function () {\n // TODO: Provide anything else?\n return {\n locale: this._locale\n };\n};\n\nMessageFormat.prototype._compilePattern = function (ast, locales, formats, pluralFn) {\n var compiler = new src$compiler$$[\"default\"](locales, formats, pluralFn);\n return compiler.compile(ast);\n};\n\nMessageFormat.prototype._findPluralRuleFunction = function (locale) {\n var localeData = MessageFormat.__localeData__;\n var data = localeData[locale.toLowerCase()];\n\n // The locale data is de-duplicated, so we have to traverse the locale's\n // hierarchy until we find a `pluralRuleFunction` to return.\n while (data) {\n if (data.pluralRuleFunction) {\n return data.pluralRuleFunction;\n }\n\n data = data.parentLocale && localeData[data.parentLocale.toLowerCase()];\n }\n\n throw new Error(\n 'Locale data added to IntlMessageFormat is missing a ' +\n '`pluralRuleFunction` for :' + locale\n );\n};\n\nMessageFormat.prototype._format = function (pattern, values) {\n var result = '',\n i, len, part, id, value, err;\n\n for (i = 0, len = pattern.length; i < len; i += 1) {\n part = pattern[i];\n\n // Exist early for string parts.\n if (typeof part === 'string') {\n result += part;\n continue;\n }\n\n id = part.id;\n\n // Enforce that all required values are provided by the caller.\n if (!(values && src$utils$$.hop.call(values, id))) {\n err = new Error('A value must be provided for: ' + id);\n err.variableId = id;\n throw err;\n }\n\n value = values[id];\n\n // Recursively format plural and select parts' option — which can be a\n // nested pattern structure. The choosing of the option to use is\n // abstracted-by and delegated-to the part helper object.\n if (part.options) {\n result += this._format(part.getOption(value), values);\n } else {\n result += part.format(value);\n }\n }\n\n return result;\n};\n\nMessageFormat.prototype._mergeFormats = function (defaults, formats) {\n var mergedFormats = {},\n type, mergedType;\n\n for (type in defaults) {\n if (!src$utils$$.hop.call(defaults, type)) { continue; }\n\n mergedFormats[type] = mergedType = src$es5$$.objCreate(defaults[type]);\n\n if (formats && src$utils$$.hop.call(formats, type)) {\n src$utils$$.extend(mergedType, formats[type]);\n }\n }\n\n return mergedFormats;\n};\n\nMessageFormat.prototype._resolveLocale = function (locales) {\n if (typeof locales === 'string') {\n locales = [locales];\n }\n\n // Create a copy of the array so we can push on the default locale.\n locales = (locales || []).concat(MessageFormat.defaultLocale);\n\n var localeData = MessageFormat.__localeData__;\n var i, len, localeParts, data;\n\n // Using the set of locales + the default locale, we look for the first one\n // which that has been registered. When data does not exist for a locale, we\n // traverse its ancestors to find something that's been registered within\n // its hierarchy of locales. Since we lack the proper `parentLocale` data\n // here, we must take a naive approach to traversal.\n for (i = 0, len = locales.length; i < len; i += 1) {\n localeParts = locales[i].toLowerCase().split('-');\n\n while (localeParts.length) {\n data = localeData[localeParts.join('-')];\n if (data) {\n // Return the normalized locale string; e.g., we return \"en-US\",\n // instead of \"en-us\".\n return data.locale;\n }\n\n localeParts.pop();\n }\n }\n\n var defaultLocale = locales.pop();\n throw new Error(\n 'No locale data has been added to IntlMessageFormat for: ' +\n locales.join(', ') + ', or the default locale: ' + defaultLocale\n );\n};\n\n//# sourceMappingURL=core.js.map","// GENERATED FILE\n\"use strict\";\nexports[\"default\"] = {\"locale\":\"en\",\"pluralRuleFunction\":function (n,ord){var s=String(n).split(\".\"),v0=!s[1],t0=Number(s[0])==n,n10=t0&&s[0].slice(-1),n100=t0&&s[0].slice(-2);if(ord)return n10==1&&n100!=11?\"one\":n10==2&&n100!=12?\"two\":n10==3&&n100!=13?\"few\":\"other\";return n==1&&v0?\"one\":\"other\"}};\n\n//# sourceMappingURL=en.js.map","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\n\"use strict\";\nvar src$utils$$ = require(\"./utils\");\n\n// Purposely using the same implementation as the Intl.js `Intl` polyfill.\n// Copyright 2013 Andy Earnshaw, MIT License\n\nvar realDefineProp = (function () {\n try { return !!Object.defineProperty({}, 'a', {}); }\n catch (e) { return false; }\n})();\n\nvar es3 = !realDefineProp && !Object.prototype.__defineGetter__;\n\nvar defineProperty = realDefineProp ? Object.defineProperty :\n function (obj, name, desc) {\n\n if ('get' in desc && obj.__defineGetter__) {\n obj.__defineGetter__(name, desc.get);\n } else if (!src$utils$$.hop.call(obj, name) || 'value' in desc) {\n obj[name] = desc.value;\n }\n};\n\nvar objCreate = Object.create || function (proto, props) {\n var obj, k;\n\n function F() {}\n F.prototype = proto;\n obj = new F();\n\n for (k in props) {\n if (src$utils$$.hop.call(props, k)) {\n defineProperty(obj, k, props[k]);\n }\n }\n\n return obj;\n};\n\nexports.defineProperty = defineProperty, exports.objCreate = objCreate;\n\n//# sourceMappingURL=es5.js.map","/* jslint esnext: true */\n\n\"use strict\";\nvar src$core$$ = require(\"./core\"), src$en$$ = require(\"./en\");\n\nsrc$core$$[\"default\"].__addLocaleData(src$en$$[\"default\"]);\nsrc$core$$[\"default\"].defaultLocale = 'en';\n\nexports[\"default\"] = src$core$$[\"default\"];\n\n//# sourceMappingURL=main.js.map","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\n\"use strict\";\nexports.extend = extend;\nvar hop = Object.prototype.hasOwnProperty;\n\nfunction extend(obj) {\n var sources = Array.prototype.slice.call(arguments, 1),\n i, len, source, key;\n\n for (i = 0, len = sources.length; i < len; i += 1) {\n source = sources[i];\n if (!source) { continue; }\n\n for (key in source) {\n if (hop.call(source, key)) {\n obj[key] = source[key];\n }\n }\n }\n\n return obj;\n}\nexports.hop = hop;\n\n//# sourceMappingURL=utils.js.map","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1 opts.maxTimeout) {\n throw new Error('minTimeout is greater than maxTimeout');\n }\n\n var timeouts = [];\n for (var i = 0; i < opts.retries; i++) {\n timeouts.push(this.createTimeout(i, opts));\n }\n\n if (options && options.forever && !timeouts.length) {\n timeouts.push(this.createTimeout(i, opts));\n }\n\n // sort the array numerically ascending\n timeouts.sort(function(a,b) {\n return a - b;\n });\n\n return timeouts;\n};\n\nexports.createTimeout = function(attempt, opts) {\n var random = (opts.randomize)\n ? (Math.random() + 1)\n : 1;\n\n var timeout = Math.round(random * Math.max(opts.minTimeout, 1) * Math.pow(opts.factor, attempt));\n timeout = Math.min(timeout, opts.maxTimeout);\n\n return timeout;\n};\n\nexports.wrap = function(obj, options, methods) {\n if (options instanceof Array) {\n methods = options;\n options = null;\n }\n\n if (!methods) {\n methods = [];\n for (var key in obj) {\n if (typeof obj[key] === 'function') {\n methods.push(key);\n }\n }\n }\n\n for (var i = 0; i < methods.length; i++) {\n var method = methods[i];\n var original = obj[method];\n\n obj[method] = function retryWrapper(original) {\n var op = exports.operation(options);\n var args = Array.prototype.slice.call(arguments, 1);\n var callback = args.pop();\n\n args.push(function(err) {\n if (op.retry(err)) {\n return;\n }\n if (err) {\n arguments[0] = op.mainError();\n }\n callback.apply(this, arguments);\n });\n\n op.attempt(function() {\n original.apply(obj, args);\n });\n }.bind(obj, original);\n obj[method].options = options;\n }\n};\n","function RetryOperation(timeouts, options) {\n // Compatibility for the old (timeouts, retryForever) signature\n if (typeof options === 'boolean') {\n options = { forever: options };\n }\n\n this._originalTimeouts = JSON.parse(JSON.stringify(timeouts));\n this._timeouts = timeouts;\n this._options = options || {};\n this._maxRetryTime = options && options.maxRetryTime || Infinity;\n this._fn = null;\n this._errors = [];\n this._attempts = 1;\n this._operationTimeout = null;\n this._operationTimeoutCb = null;\n this._timeout = null;\n this._operationStart = null;\n this._timer = null;\n\n if (this._options.forever) {\n this._cachedTimeouts = this._timeouts.slice(0);\n }\n}\nmodule.exports = RetryOperation;\n\nRetryOperation.prototype.reset = function() {\n this._attempts = 1;\n this._timeouts = this._originalTimeouts.slice(0);\n}\n\nRetryOperation.prototype.stop = function() {\n if (this._timeout) {\n clearTimeout(this._timeout);\n }\n if (this._timer) {\n clearTimeout(this._timer);\n }\n\n this._timeouts = [];\n this._cachedTimeouts = null;\n};\n\nRetryOperation.prototype.retry = function(err) {\n if (this._timeout) {\n clearTimeout(this._timeout);\n }\n\n if (!err) {\n return false;\n }\n var currentTime = new Date().getTime();\n if (err && currentTime - this._operationStart >= this._maxRetryTime) {\n this._errors.push(err);\n this._errors.unshift(new Error('RetryOperation timeout occurred'));\n return false;\n }\n\n this._errors.push(err);\n\n var timeout = this._timeouts.shift();\n if (timeout === undefined) {\n if (this._cachedTimeouts) {\n // retry forever, only keep last error\n this._errors.splice(0, this._errors.length - 1);\n timeout = this._cachedTimeouts.slice(-1);\n } else {\n return false;\n }\n }\n\n var self = this;\n this._timer = setTimeout(function() {\n self._attempts++;\n\n if (self._operationTimeoutCb) {\n self._timeout = setTimeout(function() {\n self._operationTimeoutCb(self._attempts);\n }, self._operationTimeout);\n\n if (self._options.unref) {\n self._timeout.unref();\n }\n }\n\n self._fn(self._attempts);\n }, timeout);\n\n if (this._options.unref) {\n this._timer.unref();\n }\n\n return true;\n};\n\nRetryOperation.prototype.attempt = function(fn, timeoutOps) {\n this._fn = fn;\n\n if (timeoutOps) {\n if (timeoutOps.timeout) {\n this._operationTimeout = timeoutOps.timeout;\n }\n if (timeoutOps.cb) {\n this._operationTimeoutCb = timeoutOps.cb;\n }\n }\n\n var self = this;\n if (this._operationTimeoutCb) {\n this._timeout = setTimeout(function() {\n self._operationTimeoutCb();\n }, self._operationTimeout);\n }\n\n this._operationStart = new Date().getTime();\n\n this._fn(this._attempts);\n};\n\nRetryOperation.prototype.try = function(fn) {\n console.log('Using RetryOperation.try() is deprecated');\n this.attempt(fn);\n};\n\nRetryOperation.prototype.start = function(fn) {\n console.log('Using RetryOperation.start() is deprecated');\n this.attempt(fn);\n};\n\nRetryOperation.prototype.start = RetryOperation.prototype.try;\n\nRetryOperation.prototype.errors = function() {\n return this._errors;\n};\n\nRetryOperation.prototype.attempts = function() {\n return this._attempts;\n};\n\nRetryOperation.prototype.mainError = function() {\n if (this._errors.length === 0) {\n return null;\n }\n\n var counts = {};\n var mainError = null;\n var mainErrorCount = 0;\n\n for (var i = 0; i < this._errors.length; i++) {\n var error = this._errors[i];\n var message = error.message;\n var count = (counts[message] || 0) + 1;\n\n counts[message] = count;\n\n if (count >= mainErrorCount) {\n mainError = error;\n mainErrorCount = count;\n }\n }\n\n return mainError;\n};\n","const htmlparser = require('htmlparser2');\nconst escapeStringRegexp = require('escape-string-regexp');\nconst { isPlainObject } = require('is-plain-object');\nconst deepmerge = require('deepmerge');\nconst parseSrcset = require('parse-srcset');\nconst { parse: postcssParse } = require('postcss');\n// Tags that can conceivably represent stand-alone media.\nconst mediaTags = [\n 'img', 'audio', 'video', 'picture', 'svg',\n 'object', 'map', 'iframe', 'embed'\n];\n// Tags that are inherently vulnerable to being used in XSS attacks.\nconst vulnerableTags = [ 'script', 'style' ];\n\nfunction each(obj, cb) {\n if (obj) {\n Object.keys(obj).forEach(function (key) {\n cb(obj[key], key);\n });\n }\n}\n\n// Avoid false positives with .__proto__, .hasOwnProperty, etc.\nfunction has(obj, key) {\n return ({}).hasOwnProperty.call(obj, key);\n}\n\n// Returns those elements of `a` for which `cb(a)` returns truthy\nfunction filter(a, cb) {\n const n = [];\n each(a, function(v) {\n if (cb(v)) {\n n.push(v);\n }\n });\n return n;\n}\n\nfunction isEmptyObject(obj) {\n for (const key in obj) {\n if (has(obj, key)) {\n return false;\n }\n }\n return true;\n}\n\nfunction stringifySrcset(parsedSrcset) {\n return parsedSrcset.map(function(part) {\n if (!part.url) {\n throw new Error('URL missing');\n }\n\n return (\n part.url +\n (part.w ? ` ${part.w}w` : '') +\n (part.h ? ` ${part.h}h` : '') +\n (part.d ? ` ${part.d}x` : '')\n );\n }).join(', ');\n}\n\nmodule.exports = sanitizeHtml;\n\n// A valid attribute name.\n// We use a tolerant definition based on the set of strings defined by\n// html.spec.whatwg.org/multipage/parsing.html#before-attribute-name-state\n// and html.spec.whatwg.org/multipage/parsing.html#attribute-name-state .\n// The characters accepted are ones which can be appended to the attribute\n// name buffer without triggering a parse error:\n// * unexpected-equals-sign-before-attribute-name\n// * unexpected-null-character\n// * unexpected-character-in-attribute-name\n// We exclude the empty string because it's impossible to get to the after\n// attribute name state with an empty attribute name buffer.\nconst VALID_HTML_ATTRIBUTE_NAME = /^[^\\0\\t\\n\\f\\r /<=>]+$/;\n\n// Ignore the _recursing flag; it's there for recursive\n// invocation as a guard against this exploit:\n// https://github.com/fb55/htmlparser2/issues/105\n\nfunction sanitizeHtml(html, options, _recursing) {\n if (html == null) {\n return '';\n }\n if (typeof html === 'number') {\n html = html.toString();\n }\n\n let result = '';\n // Used for hot swapping the result variable with an empty string in order to \"capture\" the text written to it.\n let tempResult = '';\n\n function Frame(tag, attribs) {\n const that = this;\n this.tag = tag;\n this.attribs = attribs || {};\n this.tagPosition = result.length;\n this.text = ''; // Node inner text\n this.mediaChildren = [];\n\n this.updateParentNodeText = function() {\n if (stack.length) {\n const parentFrame = stack[stack.length - 1];\n parentFrame.text += that.text;\n }\n };\n\n this.updateParentNodeMediaChildren = function() {\n if (stack.length && mediaTags.includes(this.tag)) {\n const parentFrame = stack[stack.length - 1];\n parentFrame.mediaChildren.push(this.tag);\n }\n };\n }\n\n options = Object.assign({}, sanitizeHtml.defaults, options);\n options.parser = Object.assign({}, htmlParserDefaults, options.parser);\n\n const tagAllowed = function (name) {\n return options.allowedTags === false || (options.allowedTags || []).indexOf(name) > -1;\n };\n\n // vulnerableTags\n vulnerableTags.forEach(function (tag) {\n if (tagAllowed(tag) && !options.allowVulnerableTags) {\n console.warn(`\\n\\n⚠️ Your \\`allowedTags\\` option includes, \\`${tag}\\`, which is inherently\\nvulnerable to XSS attacks. Please remove it from \\`allowedTags\\`.\\nOr, to disable this warning, add the \\`allowVulnerableTags\\` option\\nand ensure you are accounting for this risk.\\n\\n`);\n }\n });\n\n // Tags that contain something other than HTML, or where discarding\n // the text when the tag is disallowed makes sense for other reasons.\n // If we are not allowing these tags, we should drop their content too.\n // For other tags you would drop the tag but keep its content.\n const nonTextTagsArray = options.nonTextTags || [\n 'script',\n 'style',\n 'textarea',\n 'option'\n ];\n let allowedAttributesMap;\n let allowedAttributesGlobMap;\n if (options.allowedAttributes) {\n allowedAttributesMap = {};\n allowedAttributesGlobMap = {};\n each(options.allowedAttributes, function(attributes, tag) {\n allowedAttributesMap[tag] = [];\n const globRegex = [];\n attributes.forEach(function(obj) {\n if (typeof obj === 'string' && obj.indexOf('*') >= 0) {\n globRegex.push(escapeStringRegexp(obj).replace(/\\\\\\*/g, '.*'));\n } else {\n allowedAttributesMap[tag].push(obj);\n }\n });\n if (globRegex.length) {\n allowedAttributesGlobMap[tag] = new RegExp('^(' + globRegex.join('|') + ')$');\n }\n });\n }\n const allowedClassesMap = {};\n const allowedClassesGlobMap = {};\n const allowedClassesRegexMap = {};\n each(options.allowedClasses, function(classes, tag) {\n // Implicitly allows the class attribute\n if (allowedAttributesMap) {\n if (!has(allowedAttributesMap, tag)) {\n allowedAttributesMap[tag] = [];\n }\n allowedAttributesMap[tag].push('class');\n }\n\n allowedClassesMap[tag] = classes;\n\n if (Array.isArray(classes)) {\n const globRegex = [];\n allowedClassesMap[tag] = [];\n allowedClassesRegexMap[tag] = [];\n classes.forEach(function(obj) {\n if (typeof obj === 'string' && obj.indexOf('*') >= 0) {\n globRegex.push(escapeStringRegexp(obj).replace(/\\\\\\*/g, '.*'));\n } else if (obj instanceof RegExp) {\n allowedClassesRegexMap[tag].push(obj);\n } else {\n allowedClassesMap[tag].push(obj);\n }\n });\n if (globRegex.length) {\n allowedClassesGlobMap[tag] = new RegExp('^(' + globRegex.join('|') + ')$');\n }\n }\n });\n\n const transformTagsMap = {};\n let transformTagsAll;\n each(options.transformTags, function(transform, tag) {\n let transFun;\n if (typeof transform === 'function') {\n transFun = transform;\n } else if (typeof transform === 'string') {\n transFun = sanitizeHtml.simpleTransform(transform);\n }\n if (tag === '*') {\n transformTagsAll = transFun;\n } else {\n transformTagsMap[tag] = transFun;\n }\n });\n\n let depth;\n let stack;\n let skipMap;\n let transformMap;\n let skipText;\n let skipTextDepth;\n let addedText = false;\n\n initializeState();\n\n const parser = new htmlparser.Parser({\n onopentag: function(name, attribs) {\n // If `enforceHtmlBoundary` is `true` and this has found the opening\n // `html` tag, reset the state.\n if (options.enforceHtmlBoundary && name === 'html') {\n initializeState();\n }\n\n if (skipText) {\n skipTextDepth++;\n return;\n }\n const frame = new Frame(name, attribs);\n stack.push(frame);\n\n let skip = false;\n const hasText = !!frame.text;\n let transformedTag;\n if (has(transformTagsMap, name)) {\n transformedTag = transformTagsMap[name](name, attribs);\n\n frame.attribs = attribs = transformedTag.attribs;\n\n if (transformedTag.text !== undefined) {\n frame.innerText = transformedTag.text;\n }\n\n if (name !== transformedTag.tagName) {\n frame.name = name = transformedTag.tagName;\n transformMap[depth] = transformedTag.tagName;\n }\n }\n if (transformTagsAll) {\n transformedTag = transformTagsAll(name, attribs);\n\n frame.attribs = attribs = transformedTag.attribs;\n if (name !== transformedTag.tagName) {\n frame.name = name = transformedTag.tagName;\n transformMap[depth] = transformedTag.tagName;\n }\n }\n\n if (!tagAllowed(name) || (options.disallowedTagsMode === 'recursiveEscape' && !isEmptyObject(skipMap)) || (options.nestingLimit != null && depth >= options.nestingLimit)) {\n skip = true;\n skipMap[depth] = true;\n if (options.disallowedTagsMode === 'discard') {\n if (nonTextTagsArray.indexOf(name) !== -1) {\n skipText = true;\n skipTextDepth = 1;\n }\n }\n skipMap[depth] = true;\n }\n depth++;\n if (skip) {\n if (options.disallowedTagsMode === 'discard') {\n // We want the contents but not this tag\n return;\n }\n tempResult = result;\n result = '';\n }\n result += '<' + name;\n\n if (name === 'script') {\n if (options.allowedScriptHostnames || options.allowedScriptDomains) {\n frame.innerText = '';\n }\n }\n\n if (!allowedAttributesMap || has(allowedAttributesMap, name) || allowedAttributesMap['*']) {\n each(attribs, function(value, a) {\n if (!VALID_HTML_ATTRIBUTE_NAME.test(a)) {\n // This prevents part of an attribute name in the output from being\n // interpreted as the end of an attribute, or end of a tag.\n delete frame.attribs[a];\n return;\n }\n // If the value is empty, check if the attribute is in the allowedEmptyAttributes array.\n // If it is not in the allowedEmptyAttributes array, and it is a known non-boolean attribute, delete it\n // List taken from https://html.spec.whatwg.org/multipage/indices.html#attributes-3\n if (value === '' && (!options.allowedEmptyAttributes.includes(a)) &&\n (options.nonBooleanAttributes.includes(a) || options.nonBooleanAttributes.includes('*'))) {\n delete frame.attribs[a];\n return;\n }\n // check allowedAttributesMap for the element and attribute and modify the value\n // as necessary if there are specific values defined.\n let passedAllowedAttributesMapCheck = false;\n if (!allowedAttributesMap ||\n (has(allowedAttributesMap, name) && allowedAttributesMap[name].indexOf(a) !== -1) ||\n (allowedAttributesMap['*'] && allowedAttributesMap['*'].indexOf(a) !== -1) ||\n (has(allowedAttributesGlobMap, name) && allowedAttributesGlobMap[name].test(a)) ||\n (allowedAttributesGlobMap['*'] && allowedAttributesGlobMap['*'].test(a))) {\n passedAllowedAttributesMapCheck = true;\n } else if (allowedAttributesMap && allowedAttributesMap[name]) {\n for (const o of allowedAttributesMap[name]) {\n if (isPlainObject(o) && o.name && (o.name === a)) {\n passedAllowedAttributesMapCheck = true;\n let newValue = '';\n if (o.multiple === true) {\n // verify the values that are allowed\n const splitStrArray = value.split(' ');\n for (const s of splitStrArray) {\n if (o.values.indexOf(s) !== -1) {\n if (newValue === '') {\n newValue = s;\n } else {\n newValue += ' ' + s;\n }\n }\n }\n } else if (o.values.indexOf(value) >= 0) {\n // verified an allowed value matches the entire attribute value\n newValue = value;\n }\n value = newValue;\n }\n }\n }\n if (passedAllowedAttributesMapCheck) {\n if (options.allowedSchemesAppliedToAttributes.indexOf(a) !== -1) {\n if (naughtyHref(name, value)) {\n delete frame.attribs[a];\n return;\n }\n }\n\n if (name === 'script' && a === 'src') {\n\n let allowed = true;\n\n try {\n const parsed = parseUrl(value);\n\n if (options.allowedScriptHostnames || options.allowedScriptDomains) {\n const allowedHostname = (options.allowedScriptHostnames || []).find(function (hostname) {\n return hostname === parsed.url.hostname;\n });\n const allowedDomain = (options.allowedScriptDomains || []).find(function(domain) {\n return parsed.url.hostname === domain || parsed.url.hostname.endsWith(`.${domain}`);\n });\n allowed = allowedHostname || allowedDomain;\n }\n } catch (e) {\n allowed = false;\n }\n\n if (!allowed) {\n delete frame.attribs[a];\n return;\n }\n }\n\n if (name === 'iframe' && a === 'src') {\n let allowed = true;\n try {\n const parsed = parseUrl(value);\n\n if (parsed.isRelativeUrl) {\n // default value of allowIframeRelativeUrls is true\n // unless allowedIframeHostnames or allowedIframeDomains specified\n allowed = has(options, 'allowIframeRelativeUrls')\n ? options.allowIframeRelativeUrls\n : (!options.allowedIframeHostnames && !options.allowedIframeDomains);\n } else if (options.allowedIframeHostnames || options.allowedIframeDomains) {\n const allowedHostname = (options.allowedIframeHostnames || []).find(function (hostname) {\n return hostname === parsed.url.hostname;\n });\n const allowedDomain = (options.allowedIframeDomains || []).find(function(domain) {\n return parsed.url.hostname === domain || parsed.url.hostname.endsWith(`.${domain}`);\n });\n allowed = allowedHostname || allowedDomain;\n }\n } catch (e) {\n // Unparseable iframe src\n allowed = false;\n }\n if (!allowed) {\n delete frame.attribs[a];\n return;\n }\n }\n if (a === 'srcset') {\n try {\n let parsed = parseSrcset(value);\n parsed.forEach(function(value) {\n if (naughtyHref('srcset', value.url)) {\n value.evil = true;\n }\n });\n parsed = filter(parsed, function(v) {\n return !v.evil;\n });\n if (!parsed.length) {\n delete frame.attribs[a];\n return;\n } else {\n value = stringifySrcset(filter(parsed, function(v) {\n return !v.evil;\n }));\n frame.attribs[a] = value;\n }\n } catch (e) {\n // Unparseable srcset\n delete frame.attribs[a];\n return;\n }\n }\n if (a === 'class') {\n const allowedSpecificClasses = allowedClassesMap[name];\n const allowedWildcardClasses = allowedClassesMap['*'];\n const allowedSpecificClassesGlob = allowedClassesGlobMap[name];\n const allowedSpecificClassesRegex = allowedClassesRegexMap[name];\n const allowedWildcardClassesGlob = allowedClassesGlobMap['*'];\n const allowedClassesGlobs = [\n allowedSpecificClassesGlob,\n allowedWildcardClassesGlob\n ]\n .concat(allowedSpecificClassesRegex)\n .filter(function (t) {\n return t;\n });\n if (allowedSpecificClasses && allowedWildcardClasses) {\n value = filterClasses(value, deepmerge(allowedSpecificClasses, allowedWildcardClasses), allowedClassesGlobs);\n } else {\n value = filterClasses(value, allowedSpecificClasses || allowedWildcardClasses, allowedClassesGlobs);\n }\n if (!value.length) {\n delete frame.attribs[a];\n return;\n }\n }\n if (a === 'style') {\n if (options.parseStyleAttributes) {\n try {\n const abstractSyntaxTree = postcssParse(name + ' {' + value + '}', { map: false });\n const filteredAST = filterCss(abstractSyntaxTree, options.allowedStyles);\n\n value = stringifyStyleAttributes(filteredAST);\n\n if (value.length === 0) {\n delete frame.attribs[a];\n return;\n }\n } catch (e) {\n if (typeof window !== 'undefined') {\n console.warn('Failed to parse \"' + name + ' {' + value + '}' + '\", If you\\'re running this in a browser, we recommend to disable style parsing: options.parseStyleAttributes: false, since this only works in a node environment due to a postcss dependency, More info: https://github.com/apostrophecms/sanitize-html/issues/547');\n }\n delete frame.attribs[a];\n return;\n }\n } else if (options.allowedStyles) {\n throw new Error('allowedStyles option cannot be used together with parseStyleAttributes: false.');\n }\n }\n result += ' ' + a;\n if (value && value.length) {\n result += '=\"' + escapeHtml(value, true) + '\"';\n } else if (options.allowedEmptyAttributes.includes(a)) {\n result += '=\"\"';\n }\n } else {\n delete frame.attribs[a];\n }\n });\n }\n if (options.selfClosing.indexOf(name) !== -1) {\n result += ' />';\n } else {\n result += '>';\n if (frame.innerText && !hasText && !options.textFilter) {\n result += escapeHtml(frame.innerText);\n addedText = true;\n }\n }\n if (skip) {\n result = tempResult + escapeHtml(result);\n tempResult = '';\n }\n },\n ontext: function(text) {\n if (skipText) {\n return;\n }\n const lastFrame = stack[stack.length - 1];\n let tag;\n\n if (lastFrame) {\n tag = lastFrame.tag;\n // If inner text was set by transform function then let's use it\n text = lastFrame.innerText !== undefined ? lastFrame.innerText : text;\n }\n\n if (options.disallowedTagsMode === 'discard' && ((tag === 'script') || (tag === 'style'))) {\n // htmlparser2 gives us these as-is. Escaping them ruins the content. Allowing\n // script tags is, by definition, game over for XSS protection, so if that's\n // your concern, don't allow them. The same is essentially true for style tags\n // which have their own collection of XSS vectors.\n result += text;\n } else {\n const escaped = escapeHtml(text, false);\n if (options.textFilter && !addedText) {\n result += options.textFilter(escaped, tag);\n } else if (!addedText) {\n result += escaped;\n }\n }\n if (stack.length) {\n const frame = stack[stack.length - 1];\n frame.text += text;\n }\n },\n onclosetag: function(name, isImplied) {\n\n if (skipText) {\n skipTextDepth--;\n if (!skipTextDepth) {\n skipText = false;\n } else {\n return;\n }\n }\n\n const frame = stack.pop();\n if (!frame) {\n // Do not crash on bad markup\n return;\n }\n\n if (frame.tag !== name) {\n // Another case of bad markup.\n // Push to stack, so that it will be used in future closing tags.\n stack.push(frame);\n return;\n }\n\n skipText = options.enforceHtmlBoundary ? name === 'html' : false;\n depth--;\n const skip = skipMap[depth];\n if (skip) {\n delete skipMap[depth];\n if (options.disallowedTagsMode === 'discard') {\n frame.updateParentNodeText();\n return;\n }\n tempResult = result;\n result = '';\n }\n\n if (transformMap[depth]) {\n name = transformMap[depth];\n delete transformMap[depth];\n }\n\n if (options.exclusiveFilter && options.exclusiveFilter(frame)) {\n result = result.substr(0, frame.tagPosition);\n return;\n }\n\n frame.updateParentNodeMediaChildren();\n frame.updateParentNodeText();\n\n if (\n // Already output />\n options.selfClosing.indexOf(name) !== -1 ||\n // Escaped tag, closing tag is implied\n (isImplied && !tagAllowed(name) && [ 'escape', 'recursiveEscape' ].indexOf(options.disallowedTagsMode) >= 0)\n ) {\n if (skip) {\n result = tempResult;\n tempResult = '';\n }\n return;\n }\n\n result += '';\n if (skip) {\n result = tempResult + escapeHtml(result);\n tempResult = '';\n }\n addedText = false;\n }\n }, options.parser);\n parser.write(html);\n parser.end();\n\n return result;\n\n function initializeState() {\n result = '';\n depth = 0;\n stack = [];\n skipMap = {};\n transformMap = {};\n skipText = false;\n skipTextDepth = 0;\n }\n\n function escapeHtml(s, quote) {\n if (typeof (s) !== 'string') {\n s = s + '';\n }\n if (options.parser.decodeEntities) {\n s = s.replace(/&/g, '&').replace(//g, '>');\n if (quote) {\n s = s.replace(/\"/g, '"');\n }\n }\n // TODO: this is inadequate because it will pass `&0;`. This approach\n // will not work, each & must be considered with regard to whether it\n // is followed by a 100% syntactically valid entity or not, and escaped\n // if it is not. If this bothers you, don't set parser.decodeEntities\n // to false. (The default is true.)\n s = s.replace(/&(?![a-zA-Z0-9#]{1,20};)/g, '&') // Match ampersands not part of existing HTML entity\n .replace(//g, '>');\n if (quote) {\n s = s.replace(/\"/g, '"');\n }\n return s;\n }\n\n function naughtyHref(name, href) {\n // Browsers ignore character codes of 32 (space) and below in a surprising\n // number of situations. Start reading here:\n // https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet#Embedded_tab\n // eslint-disable-next-line no-control-regex\n href = href.replace(/[\\x00-\\x20]+/g, '');\n // Clobber any comments in URLs, which the browser might\n // interpret inside an XML data island, allowing\n // a javascript: URL to be snuck through\n while (true) {\n const firstIndex = href.indexOf('', firstIndex + 4);\n if (lastIndex === -1) {\n break;\n }\n href = href.substring(0, firstIndex) + href.substring(lastIndex + 3);\n }\n // Case insensitive so we don't get faked out by JAVASCRIPT #1\n // Allow more characters after the first so we don't get faked\n // out by certain schemes browsers accept\n const matches = href.match(/^([a-zA-Z][a-zA-Z0-9.\\-+]*):/);\n if (!matches) {\n // Protocol-relative URL starting with any combination of '/' and '\\'\n if (href.match(/^[/\\\\]{2}/)) {\n return !options.allowProtocolRelative;\n }\n\n // No scheme\n return false;\n }\n const scheme = matches[1].toLowerCase();\n\n if (has(options.allowedSchemesByTag, name)) {\n return options.allowedSchemesByTag[name].indexOf(scheme) === -1;\n }\n\n return !options.allowedSchemes || options.allowedSchemes.indexOf(scheme) === -1;\n }\n\n function parseUrl(value) {\n value = value.replace(/^(\\w+:)?\\s*[\\\\/]\\s*[\\\\/]/, '$1//');\n if (value.startsWith('relative:')) {\n // An attempt to exploit our workaround for base URLs being\n // mandatory for relative URL validation in the WHATWG\n // URL parser, reject it\n throw new Error('relative: exploit attempt');\n }\n // naughtyHref is in charge of whether protocol relative URLs\n // are cool. Here we are concerned just with allowed hostnames and\n // whether to allow relative URLs.\n //\n // Build a placeholder \"base URL\" against which any reasonable\n // relative URL may be parsed successfully\n let base = 'relative://relative-site';\n for (let i = 0; (i < 100); i++) {\n base += `/${i}`;\n }\n\n const parsed = new URL(value, base);\n\n const isRelativeUrl = parsed && parsed.hostname === 'relative-site' && parsed.protocol === 'relative:';\n return {\n isRelativeUrl,\n url: parsed\n };\n }\n /**\n * Filters user input css properties by allowlisted regex attributes.\n * Modifies the abstractSyntaxTree object.\n *\n * @param {object} abstractSyntaxTree - Object representation of CSS attributes.\n * @property {array[Declaration]} abstractSyntaxTree.nodes[0] - Each object cointains prop and value key, i.e { prop: 'color', value: 'red' }.\n * @param {object} allowedStyles - Keys are properties (i.e color), value is list of permitted regex rules (i.e /green/i).\n * @return {object} - The modified tree.\n */\n function filterCss(abstractSyntaxTree, allowedStyles) {\n if (!allowedStyles) {\n return abstractSyntaxTree;\n }\n\n const astRules = abstractSyntaxTree.nodes[0];\n let selectedRule;\n\n // Merge global and tag-specific styles into new AST.\n if (allowedStyles[astRules.selector] && allowedStyles['*']) {\n selectedRule = deepmerge(\n allowedStyles[astRules.selector],\n allowedStyles['*']\n );\n } else {\n selectedRule = allowedStyles[astRules.selector] || allowedStyles['*'];\n }\n\n if (selectedRule) {\n abstractSyntaxTree.nodes[0].nodes = astRules.nodes.reduce(filterDeclarations(selectedRule), []);\n }\n\n return abstractSyntaxTree;\n }\n\n /**\n * Extracts the style attributes from an AbstractSyntaxTree and formats those\n * values in the inline style attribute format.\n *\n * @param {AbstractSyntaxTree} filteredAST\n * @return {string} - Example: \"color:yellow;text-align:center !important;font-family:helvetica;\"\n */\n function stringifyStyleAttributes(filteredAST) {\n return filteredAST.nodes[0].nodes\n .reduce(function(extractedAttributes, attrObject) {\n extractedAttributes.push(\n `${attrObject.prop}:${attrObject.value}${attrObject.important ? ' !important' : ''}`\n );\n return extractedAttributes;\n }, [])\n .join(';');\n }\n\n /**\n * Filters the existing attributes for the given property. Discards any attributes\n * which don't match the allowlist.\n *\n * @param {object} selectedRule - Example: { color: red, font-family: helvetica }\n * @param {array} allowedDeclarationsList - List of declarations which pass the allowlist.\n * @param {object} attributeObject - Object representing the current css property.\n * @property {string} attributeObject.type - Typically 'declaration'.\n * @property {string} attributeObject.prop - The CSS property, i.e 'color'.\n * @property {string} attributeObject.value - The corresponding value to the css property, i.e 'red'.\n * @return {function} - When used in Array.reduce, will return an array of Declaration objects\n */\n function filterDeclarations(selectedRule) {\n return function (allowedDeclarationsList, attributeObject) {\n // If this property is allowlisted...\n if (has(selectedRule, attributeObject.prop)) {\n const matchesRegex = selectedRule[attributeObject.prop].some(function(regularExpression) {\n return regularExpression.test(attributeObject.value);\n });\n\n if (matchesRegex) {\n allowedDeclarationsList.push(attributeObject);\n }\n }\n return allowedDeclarationsList;\n };\n }\n\n function filterClasses(classes, allowed, allowedGlobs) {\n if (!allowed) {\n // The class attribute is allowed without filtering on this tag\n return classes;\n }\n classes = classes.split(/\\s+/);\n return classes.filter(function(clss) {\n return allowed.indexOf(clss) !== -1 || allowedGlobs.some(function(glob) {\n return glob.test(clss);\n });\n }).join(' ');\n }\n}\n\n// Defaults are accessible to you so that you can use them as a starting point\n// programmatically if you wish\n\nconst htmlParserDefaults = {\n decodeEntities: true\n};\nsanitizeHtml.defaults = {\n allowedTags: [\n // Sections derived from MDN element categories and limited to the more\n // benign categories.\n // https://developer.mozilla.org/en-US/docs/Web/HTML/Element\n // Content sectioning\n 'address', 'article', 'aside', 'footer', 'header',\n 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'hgroup',\n 'main', 'nav', 'section',\n // Text content\n 'blockquote', 'dd', 'div', 'dl', 'dt', 'figcaption', 'figure',\n 'hr', 'li', 'main', 'ol', 'p', 'pre', 'ul',\n // Inline text semantics\n 'a', 'abbr', 'b', 'bdi', 'bdo', 'br', 'cite', 'code', 'data', 'dfn',\n 'em', 'i', 'kbd', 'mark', 'q',\n 'rb', 'rp', 'rt', 'rtc', 'ruby',\n 's', 'samp', 'small', 'span', 'strong', 'sub', 'sup', 'time', 'u', 'var', 'wbr',\n // Table content\n 'caption', 'col', 'colgroup', 'table', 'tbody', 'td', 'tfoot', 'th',\n 'thead', 'tr'\n ],\n // Tags that cannot be boolean\n nonBooleanAttributes: [\n 'abbr', 'accept', 'accept-charset', 'accesskey', 'action',\n 'allow', 'alt', 'as', 'autocapitalize', 'autocomplete',\n 'blocking', 'charset', 'cite', 'class', 'color', 'cols',\n 'colspan', 'content', 'contenteditable', 'coords', 'crossorigin',\n 'data', 'datetime', 'decoding', 'dir', 'dirname', 'download',\n 'draggable', 'enctype', 'enterkeyhint', 'fetchpriority', 'for',\n 'form', 'formaction', 'formenctype', 'formmethod', 'formtarget',\n 'headers', 'height', 'hidden', 'high', 'href', 'hreflang',\n 'http-equiv', 'id', 'imagesizes', 'imagesrcset', 'inputmode',\n 'integrity', 'is', 'itemid', 'itemprop', 'itemref', 'itemtype',\n 'kind', 'label', 'lang', 'list', 'loading', 'low', 'max',\n 'maxlength', 'media', 'method', 'min', 'minlength', 'name',\n 'nonce', 'optimum', 'pattern', 'ping', 'placeholder', 'popover',\n 'popovertarget', 'popovertargetaction', 'poster', 'preload',\n 'referrerpolicy', 'rel', 'rows', 'rowspan', 'sandbox', 'scope',\n 'shape', 'size', 'sizes', 'slot', 'span', 'spellcheck', 'src',\n 'srcdoc', 'srclang', 'srcset', 'start', 'step', 'style',\n 'tabindex', 'target', 'title', 'translate', 'type', 'usemap',\n 'value', 'width', 'wrap',\n // Event handlers\n 'onauxclick', 'onafterprint', 'onbeforematch', 'onbeforeprint',\n 'onbeforeunload', 'onbeforetoggle', 'onblur', 'oncancel',\n 'oncanplay', 'oncanplaythrough', 'onchange', 'onclick', 'onclose',\n 'oncontextlost', 'oncontextmenu', 'oncontextrestored', 'oncopy',\n 'oncuechange', 'oncut', 'ondblclick', 'ondrag', 'ondragend',\n 'ondragenter', 'ondragleave', 'ondragover', 'ondragstart',\n 'ondrop', 'ondurationchange', 'onemptied', 'onended',\n 'onerror', 'onfocus', 'onformdata', 'onhashchange', 'oninput',\n 'oninvalid', 'onkeydown', 'onkeypress', 'onkeyup',\n 'onlanguagechange', 'onload', 'onloadeddata', 'onloadedmetadata',\n 'onloadstart', 'onmessage', 'onmessageerror', 'onmousedown',\n 'onmouseenter', 'onmouseleave', 'onmousemove', 'onmouseout',\n 'onmouseover', 'onmouseup', 'onoffline', 'ononline', 'onpagehide',\n 'onpageshow', 'onpaste', 'onpause', 'onplay', 'onplaying',\n 'onpopstate', 'onprogress', 'onratechange', 'onreset', 'onresize',\n 'onrejectionhandled', 'onscroll', 'onscrollend',\n 'onsecuritypolicyviolation', 'onseeked', 'onseeking', 'onselect',\n 'onslotchange', 'onstalled', 'onstorage', 'onsubmit', 'onsuspend',\n 'ontimeupdate', 'ontoggle', 'onunhandledrejection', 'onunload',\n 'onvolumechange', 'onwaiting', 'onwheel'\n ],\n disallowedTagsMode: 'discard',\n allowedAttributes: {\n a: [ 'href', 'name', 'target' ],\n // We don't currently allow img itself by default, but\n // these attributes would make sense if we did.\n img: [ 'src', 'srcset', 'alt', 'title', 'width', 'height', 'loading' ]\n },\n allowedEmptyAttributes: [\n 'alt'\n ],\n // Lots of these won't come up by default because we don't allow them\n selfClosing: [ 'img', 'br', 'hr', 'area', 'base', 'basefont', 'input', 'link', 'meta' ],\n // URL schemes we permit\n allowedSchemes: [ 'http', 'https', 'ftp', 'mailto', 'tel' ],\n allowedSchemesByTag: {},\n allowedSchemesAppliedToAttributes: [ 'href', 'src', 'cite' ],\n allowProtocolRelative: true,\n enforceHtmlBoundary: false,\n parseStyleAttributes: true\n};\n\nsanitizeHtml.simpleTransform = function(newTagName, newAttribs, merge) {\n merge = (merge === undefined) ? true : merge;\n newAttribs = newAttribs || {};\n\n return function(tagName, attribs) {\n let attrib;\n if (merge) {\n for (attrib in newAttribs) {\n attribs[attrib] = newAttribs[attrib];\n }\n } else {\n attribs = newAttribs;\n }\n\n return {\n tagName: newTagName,\n attribs: attribs\n };\n };\n};\n","'use strict';\n\nmodule.exports = string => {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\t// Escape characters with special meaning either inside or outside character sets.\n\t// Use a simple backslash escape when it’s always valid, and a \\unnnn escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.\n\treturn string\n\t\t.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&')\n\t\t.replace(/-/g, '\\\\x2d');\n};\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n/*!\n * is-plain-object \n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\nfunction isObject(o) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nfunction isPlainObject(o) {\n var ctor,prot;\n\n if (isObject(o) === false) return false;\n\n // If has modified constructor\n ctor = o.constructor;\n if (ctor === undefined) return true;\n\n // If has modified prototype\n prot = ctor.prototype;\n if (isObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n if (prot.hasOwnProperty('isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n}\n\nexports.isPlainObject = isPlainObject;\n","'use strict'\n\nlet Container = require('./container')\n\nclass AtRule extends Container {\n constructor(defaults) {\n super(defaults)\n this.type = 'atrule'\n }\n\n append(...children) {\n if (!this.proxyOf.nodes) this.nodes = []\n return super.append(...children)\n }\n\n prepend(...children) {\n if (!this.proxyOf.nodes) this.nodes = []\n return super.prepend(...children)\n }\n}\n\nmodule.exports = AtRule\nAtRule.default = AtRule\n\nContainer.registerAtRule(AtRule)\n","'use strict'\n\nlet Node = require('./node')\n\nclass Comment extends Node {\n constructor(defaults) {\n super(defaults)\n this.type = 'comment'\n }\n}\n\nmodule.exports = Comment\nComment.default = Comment\n","'use strict'\n\nlet { isClean, my } = require('./symbols')\nlet Declaration = require('./declaration')\nlet Comment = require('./comment')\nlet Node = require('./node')\n\nlet parse, Rule, AtRule, Root\n\nfunction cleanSource(nodes) {\n return nodes.map(i => {\n if (i.nodes) i.nodes = cleanSource(i.nodes)\n delete i.source\n return i\n })\n}\n\nfunction markDirtyUp(node) {\n node[isClean] = false\n if (node.proxyOf.nodes) {\n for (let i of node.proxyOf.nodes) {\n markDirtyUp(i)\n }\n }\n}\n\nclass Container extends Node {\n push(child) {\n child.parent = this\n this.proxyOf.nodes.push(child)\n return this\n }\n\n each(callback) {\n if (!this.proxyOf.nodes) return undefined\n let iterator = this.getIterator()\n\n let index, result\n while (this.indexes[iterator] < this.proxyOf.nodes.length) {\n index = this.indexes[iterator]\n result = callback(this.proxyOf.nodes[index], index)\n if (result === false) break\n\n this.indexes[iterator] += 1\n }\n\n delete this.indexes[iterator]\n return result\n }\n\n walk(callback) {\n return this.each((child, i) => {\n let result\n try {\n result = callback(child, i)\n } catch (e) {\n throw child.addToError(e)\n }\n if (result !== false && child.walk) {\n result = child.walk(callback)\n }\n\n return result\n })\n }\n\n walkDecls(prop, callback) {\n if (!callback) {\n callback = prop\n return this.walk((child, i) => {\n if (child.type === 'decl') {\n return callback(child, i)\n }\n })\n }\n if (prop instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === 'decl' && prop.test(child.prop)) {\n return callback(child, i)\n }\n })\n }\n return this.walk((child, i) => {\n if (child.type === 'decl' && child.prop === prop) {\n return callback(child, i)\n }\n })\n }\n\n walkRules(selector, callback) {\n if (!callback) {\n callback = selector\n\n return this.walk((child, i) => {\n if (child.type === 'rule') {\n return callback(child, i)\n }\n })\n }\n if (selector instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === 'rule' && selector.test(child.selector)) {\n return callback(child, i)\n }\n })\n }\n return this.walk((child, i) => {\n if (child.type === 'rule' && child.selector === selector) {\n return callback(child, i)\n }\n })\n }\n\n walkAtRules(name, callback) {\n if (!callback) {\n callback = name\n return this.walk((child, i) => {\n if (child.type === 'atrule') {\n return callback(child, i)\n }\n })\n }\n if (name instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === 'atrule' && name.test(child.name)) {\n return callback(child, i)\n }\n })\n }\n return this.walk((child, i) => {\n if (child.type === 'atrule' && child.name === name) {\n return callback(child, i)\n }\n })\n }\n\n walkComments(callback) {\n return this.walk((child, i) => {\n if (child.type === 'comment') {\n return callback(child, i)\n }\n })\n }\n\n append(...children) {\n for (let child of children) {\n let nodes = this.normalize(child, this.last)\n for (let node of nodes) this.proxyOf.nodes.push(node)\n }\n\n this.markDirty()\n\n return this\n }\n\n prepend(...children) {\n children = children.reverse()\n for (let child of children) {\n let nodes = this.normalize(child, this.first, 'prepend').reverse()\n for (let node of nodes) this.proxyOf.nodes.unshift(node)\n for (let id in this.indexes) {\n this.indexes[id] = this.indexes[id] + nodes.length\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n cleanRaws(keepBetween) {\n super.cleanRaws(keepBetween)\n if (this.nodes) {\n for (let node of this.nodes) node.cleanRaws(keepBetween)\n }\n }\n\n insertBefore(exist, add) {\n let existIndex = this.index(exist)\n let type = existIndex === 0 ? 'prepend' : false\n let nodes = this.normalize(add, this.proxyOf.nodes[existIndex], type).reverse()\n existIndex = this.index(exist)\n for (let node of nodes) this.proxyOf.nodes.splice(existIndex, 0, node)\n\n let index\n for (let id in this.indexes) {\n index = this.indexes[id]\n if (existIndex <= index) {\n this.indexes[id] = index + nodes.length\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n insertAfter(exist, add) {\n let existIndex = this.index(exist)\n let nodes = this.normalize(add, this.proxyOf.nodes[existIndex]).reverse()\n existIndex = this.index(exist)\n for (let node of nodes) this.proxyOf.nodes.splice(existIndex + 1, 0, node)\n\n let index\n for (let id in this.indexes) {\n index = this.indexes[id]\n if (existIndex < index) {\n this.indexes[id] = index + nodes.length\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n removeChild(child) {\n child = this.index(child)\n this.proxyOf.nodes[child].parent = undefined\n this.proxyOf.nodes.splice(child, 1)\n\n let index\n for (let id in this.indexes) {\n index = this.indexes[id]\n if (index >= child) {\n this.indexes[id] = index - 1\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n removeAll() {\n for (let node of this.proxyOf.nodes) node.parent = undefined\n this.proxyOf.nodes = []\n\n this.markDirty()\n\n return this\n }\n\n replaceValues(pattern, opts, callback) {\n if (!callback) {\n callback = opts\n opts = {}\n }\n\n this.walkDecls(decl => {\n if (opts.props && !opts.props.includes(decl.prop)) return\n if (opts.fast && !decl.value.includes(opts.fast)) return\n\n decl.value = decl.value.replace(pattern, callback)\n })\n\n this.markDirty()\n\n return this\n }\n\n every(condition) {\n return this.nodes.every(condition)\n }\n\n some(condition) {\n return this.nodes.some(condition)\n }\n\n index(child) {\n if (typeof child === 'number') return child\n if (child.proxyOf) child = child.proxyOf\n return this.proxyOf.nodes.indexOf(child)\n }\n\n get first() {\n if (!this.proxyOf.nodes) return undefined\n return this.proxyOf.nodes[0]\n }\n\n get last() {\n if (!this.proxyOf.nodes) return undefined\n return this.proxyOf.nodes[this.proxyOf.nodes.length - 1]\n }\n\n normalize(nodes, sample) {\n if (typeof nodes === 'string') {\n nodes = cleanSource(parse(nodes).nodes)\n } else if (Array.isArray(nodes)) {\n nodes = nodes.slice(0)\n for (let i of nodes) {\n if (i.parent) i.parent.removeChild(i, 'ignore')\n }\n } else if (nodes.type === 'root' && this.type !== 'document') {\n nodes = nodes.nodes.slice(0)\n for (let i of nodes) {\n if (i.parent) i.parent.removeChild(i, 'ignore')\n }\n } else if (nodes.type) {\n nodes = [nodes]\n } else if (nodes.prop) {\n if (typeof nodes.value === 'undefined') {\n throw new Error('Value field is missed in node creation')\n } else if (typeof nodes.value !== 'string') {\n nodes.value = String(nodes.value)\n }\n nodes = [new Declaration(nodes)]\n } else if (nodes.selector) {\n nodes = [new Rule(nodes)]\n } else if (nodes.name) {\n nodes = [new AtRule(nodes)]\n } else if (nodes.text) {\n nodes = [new Comment(nodes)]\n } else {\n throw new Error('Unknown node type in node creation')\n }\n\n let processed = nodes.map(i => {\n /* c8 ignore next */\n if (!i[my]) Container.rebuild(i)\n i = i.proxyOf\n if (i.parent) i.parent.removeChild(i)\n if (i[isClean]) markDirtyUp(i)\n if (typeof i.raws.before === 'undefined') {\n if (sample && typeof sample.raws.before !== 'undefined') {\n i.raws.before = sample.raws.before.replace(/\\S/g, '')\n }\n }\n i.parent = this.proxyOf\n return i\n })\n\n return processed\n }\n\n getProxyProcessor() {\n return {\n set(node, prop, value) {\n if (node[prop] === value) return true\n node[prop] = value\n if (prop === 'name' || prop === 'params' || prop === 'selector') {\n node.markDirty()\n }\n return true\n },\n\n get(node, prop) {\n if (prop === 'proxyOf') {\n return node\n } else if (!node[prop]) {\n return node[prop]\n } else if (\n prop === 'each' ||\n (typeof prop === 'string' && prop.startsWith('walk'))\n ) {\n return (...args) => {\n return node[prop](\n ...args.map(i => {\n if (typeof i === 'function') {\n return (child, index) => i(child.toProxy(), index)\n } else {\n return i\n }\n })\n )\n }\n } else if (prop === 'every' || prop === 'some') {\n return cb => {\n return node[prop]((child, ...other) =>\n cb(child.toProxy(), ...other)\n )\n }\n } else if (prop === 'root') {\n return () => node.root().toProxy()\n } else if (prop === 'nodes') {\n return node.nodes.map(i => i.toProxy())\n } else if (prop === 'first' || prop === 'last') {\n return node[prop].toProxy()\n } else {\n return node[prop]\n }\n }\n }\n }\n\n getIterator() {\n if (!this.lastEach) this.lastEach = 0\n if (!this.indexes) this.indexes = {}\n\n this.lastEach += 1\n let iterator = this.lastEach\n this.indexes[iterator] = 0\n\n return iterator\n }\n}\n\nContainer.registerParse = dependant => {\n parse = dependant\n}\n\nContainer.registerRule = dependant => {\n Rule = dependant\n}\n\nContainer.registerAtRule = dependant => {\n AtRule = dependant\n}\n\nContainer.registerRoot = dependant => {\n Root = dependant\n}\n\nmodule.exports = Container\nContainer.default = Container\n\n/* c8 ignore start */\nContainer.rebuild = node => {\n if (node.type === 'atrule') {\n Object.setPrototypeOf(node, AtRule.prototype)\n } else if (node.type === 'rule') {\n Object.setPrototypeOf(node, Rule.prototype)\n } else if (node.type === 'decl') {\n Object.setPrototypeOf(node, Declaration.prototype)\n } else if (node.type === 'comment') {\n Object.setPrototypeOf(node, Comment.prototype)\n } else if (node.type === 'root') {\n Object.setPrototypeOf(node, Root.prototype)\n }\n\n node[my] = true\n\n if (node.nodes) {\n node.nodes.forEach(child => {\n Container.rebuild(child)\n })\n }\n}\n/* c8 ignore stop */\n","'use strict'\n\nlet pico = require('picocolors')\n\nlet terminalHighlight = require('./terminal-highlight')\n\nclass CssSyntaxError extends Error {\n constructor(message, line, column, source, file, plugin) {\n super(message)\n this.name = 'CssSyntaxError'\n this.reason = message\n\n if (file) {\n this.file = file\n }\n if (source) {\n this.source = source\n }\n if (plugin) {\n this.plugin = plugin\n }\n if (typeof line !== 'undefined' && typeof column !== 'undefined') {\n if (typeof line === 'number') {\n this.line = line\n this.column = column\n } else {\n this.line = line.line\n this.column = line.column\n this.endLine = column.line\n this.endColumn = column.column\n }\n }\n\n this.setMessage()\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, CssSyntaxError)\n }\n }\n\n setMessage() {\n this.message = this.plugin ? this.plugin + ': ' : ''\n this.message += this.file ? this.file : ''\n if (typeof this.line !== 'undefined') {\n this.message += ':' + this.line + ':' + this.column\n }\n this.message += ': ' + this.reason\n }\n\n showSourceCode(color) {\n if (!this.source) return ''\n\n let css = this.source\n if (color == null) color = pico.isColorSupported\n if (terminalHighlight) {\n if (color) css = terminalHighlight(css)\n }\n\n let lines = css.split(/\\r?\\n/)\n let start = Math.max(this.line - 3, 0)\n let end = Math.min(this.line + 2, lines.length)\n\n let maxWidth = String(end).length\n\n let mark, aside\n if (color) {\n let { bold, red, gray } = pico.createColors(true)\n mark = text => bold(red(text))\n aside = text => gray(text)\n } else {\n mark = aside = str => str\n }\n\n return lines\n .slice(start, end)\n .map((line, index) => {\n let number = start + 1 + index\n let gutter = ' ' + (' ' + number).slice(-maxWidth) + ' | '\n if (number === this.line) {\n let spacing =\n aside(gutter.replace(/\\d/g, ' ')) +\n line.slice(0, this.column - 1).replace(/[^\\t]/g, ' ')\n return mark('>') + aside(gutter) + line + '\\n ' + spacing + mark('^')\n }\n return ' ' + aside(gutter) + line\n })\n .join('\\n')\n }\n\n toString() {\n let code = this.showSourceCode()\n if (code) {\n code = '\\n\\n' + code + '\\n'\n }\n return this.name + ': ' + this.message + code\n }\n}\n\nmodule.exports = CssSyntaxError\nCssSyntaxError.default = CssSyntaxError\n","'use strict'\n\nlet Node = require('./node')\n\nclass Declaration extends Node {\n constructor(defaults) {\n if (\n defaults &&\n typeof defaults.value !== 'undefined' &&\n typeof defaults.value !== 'string'\n ) {\n defaults = { ...defaults, value: String(defaults.value) }\n }\n super(defaults)\n this.type = 'decl'\n }\n\n get variable() {\n return this.prop.startsWith('--') || this.prop[0] === '$'\n }\n}\n\nmodule.exports = Declaration\nDeclaration.default = Declaration\n","'use strict'\n\nlet Container = require('./container')\n\nlet LazyResult, Processor\n\nclass Document extends Container {\n constructor(defaults) {\n // type needs to be passed to super, otherwise child roots won't be normalized correctly\n super({ type: 'document', ...defaults })\n\n if (!this.nodes) {\n this.nodes = []\n }\n }\n\n toResult(opts = {}) {\n let lazy = new LazyResult(new Processor(), this, opts)\n\n return lazy.stringify()\n }\n}\n\nDocument.registerLazyResult = dependant => {\n LazyResult = dependant\n}\n\nDocument.registerProcessor = dependant => {\n Processor = dependant\n}\n\nmodule.exports = Document\nDocument.default = Document\n","'use strict'\n\nlet Declaration = require('./declaration')\nlet PreviousMap = require('./previous-map')\nlet Comment = require('./comment')\nlet AtRule = require('./at-rule')\nlet Input = require('./input')\nlet Root = require('./root')\nlet Rule = require('./rule')\n\nfunction fromJSON(json, inputs) {\n if (Array.isArray(json)) return json.map(n => fromJSON(n))\n\n let { inputs: ownInputs, ...defaults } = json\n if (ownInputs) {\n inputs = []\n for (let input of ownInputs) {\n let inputHydrated = { ...input, __proto__: Input.prototype }\n if (inputHydrated.map) {\n inputHydrated.map = {\n ...inputHydrated.map,\n __proto__: PreviousMap.prototype\n }\n }\n inputs.push(inputHydrated)\n }\n }\n if (defaults.nodes) {\n defaults.nodes = json.nodes.map(n => fromJSON(n, inputs))\n }\n if (defaults.source) {\n let { inputId, ...source } = defaults.source\n defaults.source = source\n if (inputId != null) {\n defaults.source.input = inputs[inputId]\n }\n }\n if (defaults.type === 'root') {\n return new Root(defaults)\n } else if (defaults.type === 'decl') {\n return new Declaration(defaults)\n } else if (defaults.type === 'rule') {\n return new Rule(defaults)\n } else if (defaults.type === 'comment') {\n return new Comment(defaults)\n } else if (defaults.type === 'atrule') {\n return new AtRule(defaults)\n } else {\n throw new Error('Unknown node type: ' + json.type)\n }\n}\n\nmodule.exports = fromJSON\nfromJSON.default = fromJSON\n","'use strict'\n\nlet { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')\nlet { fileURLToPath, pathToFileURL } = require('url')\nlet { resolve, isAbsolute } = require('path')\nlet { nanoid } = require('nanoid/non-secure')\n\nlet terminalHighlight = require('./terminal-highlight')\nlet CssSyntaxError = require('./css-syntax-error')\nlet PreviousMap = require('./previous-map')\n\nlet fromOffsetCache = Symbol('fromOffsetCache')\n\nlet sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator)\nlet pathAvailable = Boolean(resolve && isAbsolute)\n\nclass Input {\n constructor(css, opts = {}) {\n if (\n css === null ||\n typeof css === 'undefined' ||\n (typeof css === 'object' && !css.toString)\n ) {\n throw new Error(`PostCSS received ${css} instead of CSS string`)\n }\n\n this.css = css.toString()\n\n if (this.css[0] === '\\uFEFF' || this.css[0] === '\\uFFFE') {\n this.hasBOM = true\n this.css = this.css.slice(1)\n } else {\n this.hasBOM = false\n }\n\n if (opts.from) {\n if (\n !pathAvailable ||\n /^\\w+:\\/\\//.test(opts.from) ||\n isAbsolute(opts.from)\n ) {\n this.file = opts.from\n } else {\n this.file = resolve(opts.from)\n }\n }\n\n if (pathAvailable && sourceMapAvailable) {\n let map = new PreviousMap(this.css, opts)\n if (map.text) {\n this.map = map\n let file = map.consumer().file\n if (!this.file && file) this.file = this.mapResolve(file)\n }\n }\n\n if (!this.file) {\n this.id = ''\n }\n if (this.map) this.map.file = this.from\n }\n\n fromOffset(offset) {\n let lastLine, lineToIndex\n if (!this[fromOffsetCache]) {\n let lines = this.css.split('\\n')\n lineToIndex = new Array(lines.length)\n let prevIndex = 0\n\n for (let i = 0, l = lines.length; i < l; i++) {\n lineToIndex[i] = prevIndex\n prevIndex += lines[i].length + 1\n }\n\n this[fromOffsetCache] = lineToIndex\n } else {\n lineToIndex = this[fromOffsetCache]\n }\n lastLine = lineToIndex[lineToIndex.length - 1]\n\n let min = 0\n if (offset >= lastLine) {\n min = lineToIndex.length - 1\n } else {\n let max = lineToIndex.length - 2\n let mid\n while (min < max) {\n mid = min + ((max - min) >> 1)\n if (offset < lineToIndex[mid]) {\n max = mid - 1\n } else if (offset >= lineToIndex[mid + 1]) {\n min = mid + 1\n } else {\n min = mid\n break\n }\n }\n }\n return {\n line: min + 1,\n col: offset - lineToIndex[min] + 1\n }\n }\n\n error(message, line, column, opts = {}) {\n let result, endLine, endColumn\n\n if (line && typeof line === 'object') {\n let start = line\n let end = column\n if (typeof start.offset === 'number') {\n let pos = this.fromOffset(start.offset)\n line = pos.line\n column = pos.col\n } else {\n line = start.line\n column = start.column\n }\n if (typeof end.offset === 'number') {\n let pos = this.fromOffset(end.offset)\n endLine = pos.line\n endColumn = pos.col\n } else {\n endLine = end.line\n endColumn = end.column\n }\n } else if (!column) {\n let pos = this.fromOffset(line)\n line = pos.line\n column = pos.col\n }\n\n let origin = this.origin(line, column, endLine, endColumn)\n if (origin) {\n result = new CssSyntaxError(\n message,\n origin.endLine === undefined\n ? origin.line\n : { line: origin.line, column: origin.column },\n origin.endLine === undefined\n ? origin.column\n : { line: origin.endLine, column: origin.endColumn },\n origin.source,\n origin.file,\n opts.plugin\n )\n } else {\n result = new CssSyntaxError(\n message,\n endLine === undefined ? line : { line, column },\n endLine === undefined ? column : { line: endLine, column: endColumn },\n this.css,\n this.file,\n opts.plugin\n )\n }\n\n result.input = { line, column, endLine, endColumn, source: this.css }\n if (this.file) {\n if (pathToFileURL) {\n result.input.url = pathToFileURL(this.file).toString()\n }\n result.input.file = this.file\n }\n\n return result\n }\n\n origin(line, column, endLine, endColumn) {\n if (!this.map) return false\n let consumer = this.map.consumer()\n\n let from = consumer.originalPositionFor({ line, column })\n if (!from.source) return false\n\n let to\n if (typeof endLine === 'number') {\n to = consumer.originalPositionFor({ line: endLine, column: endColumn })\n }\n\n let fromUrl\n\n if (isAbsolute(from.source)) {\n fromUrl = pathToFileURL(from.source)\n } else {\n fromUrl = new URL(\n from.source,\n this.map.consumer().sourceRoot || pathToFileURL(this.map.mapFile)\n )\n }\n\n let result = {\n url: fromUrl.toString(),\n line: from.line,\n column: from.column,\n endLine: to && to.line,\n endColumn: to && to.column\n }\n\n if (fromUrl.protocol === 'file:') {\n if (fileURLToPath) {\n result.file = fileURLToPath(fromUrl)\n } else {\n /* c8 ignore next 2 */\n throw new Error(`file: protocol is not available in this PostCSS build`)\n }\n }\n\n let source = consumer.sourceContentFor(from.source)\n if (source) result.source = source\n\n return result\n }\n\n mapResolve(file) {\n if (/^\\w+:\\/\\//.test(file)) {\n return file\n }\n return resolve(this.map.consumer().sourceRoot || this.map.root || '.', file)\n }\n\n get from() {\n return this.file || this.id\n }\n\n toJSON() {\n let json = {}\n for (let name of ['hasBOM', 'css', 'file', 'id']) {\n if (this[name] != null) {\n json[name] = this[name]\n }\n }\n if (this.map) {\n json.map = { ...this.map }\n if (json.map.consumerCache) {\n json.map.consumerCache = undefined\n }\n }\n return json\n }\n}\n\nmodule.exports = Input\nInput.default = Input\n\nif (terminalHighlight && terminalHighlight.registerInput) {\n terminalHighlight.registerInput(Input)\n}\n","'use strict'\n\nlet { isClean, my } = require('./symbols')\nlet MapGenerator = require('./map-generator')\nlet stringify = require('./stringify')\nlet Container = require('./container')\nlet Document = require('./document')\nlet warnOnce = require('./warn-once')\nlet Result = require('./result')\nlet parse = require('./parse')\nlet Root = require('./root')\n\nconst TYPE_TO_CLASS_NAME = {\n document: 'Document',\n root: 'Root',\n atrule: 'AtRule',\n rule: 'Rule',\n decl: 'Declaration',\n comment: 'Comment'\n}\n\nconst PLUGIN_PROPS = {\n postcssPlugin: true,\n prepare: true,\n Once: true,\n Document: true,\n Root: true,\n Declaration: true,\n Rule: true,\n AtRule: true,\n Comment: true,\n DeclarationExit: true,\n RuleExit: true,\n AtRuleExit: true,\n CommentExit: true,\n RootExit: true,\n DocumentExit: true,\n OnceExit: true\n}\n\nconst NOT_VISITORS = {\n postcssPlugin: true,\n prepare: true,\n Once: true\n}\n\nconst CHILDREN = 0\n\nfunction isPromise(obj) {\n return typeof obj === 'object' && typeof obj.then === 'function'\n}\n\nfunction getEvents(node) {\n let key = false\n let type = TYPE_TO_CLASS_NAME[node.type]\n if (node.type === 'decl') {\n key = node.prop.toLowerCase()\n } else if (node.type === 'atrule') {\n key = node.name.toLowerCase()\n }\n\n if (key && node.append) {\n return [\n type,\n type + '-' + key,\n CHILDREN,\n type + 'Exit',\n type + 'Exit-' + key\n ]\n } else if (key) {\n return [type, type + '-' + key, type + 'Exit', type + 'Exit-' + key]\n } else if (node.append) {\n return [type, CHILDREN, type + 'Exit']\n } else {\n return [type, type + 'Exit']\n }\n}\n\nfunction toStack(node) {\n let events\n if (node.type === 'document') {\n events = ['Document', CHILDREN, 'DocumentExit']\n } else if (node.type === 'root') {\n events = ['Root', CHILDREN, 'RootExit']\n } else {\n events = getEvents(node)\n }\n\n return {\n node,\n events,\n eventIndex: 0,\n visitors: [],\n visitorIndex: 0,\n iterator: 0\n }\n}\n\nfunction cleanMarks(node) {\n node[isClean] = false\n if (node.nodes) node.nodes.forEach(i => cleanMarks(i))\n return node\n}\n\nlet postcss = {}\n\nclass LazyResult {\n constructor(processor, css, opts) {\n this.stringified = false\n this.processed = false\n\n let root\n if (\n typeof css === 'object' &&\n css !== null &&\n (css.type === 'root' || css.type === 'document')\n ) {\n root = cleanMarks(css)\n } else if (css instanceof LazyResult || css instanceof Result) {\n root = cleanMarks(css.root)\n if (css.map) {\n if (typeof opts.map === 'undefined') opts.map = {}\n if (!opts.map.inline) opts.map.inline = false\n opts.map.prev = css.map\n }\n } else {\n let parser = parse\n if (opts.syntax) parser = opts.syntax.parse\n if (opts.parser) parser = opts.parser\n if (parser.parse) parser = parser.parse\n\n try {\n root = parser(css, opts)\n } catch (error) {\n this.processed = true\n this.error = error\n }\n\n if (root && !root[my]) {\n /* c8 ignore next 2 */\n Container.rebuild(root)\n }\n }\n\n this.result = new Result(processor, root, opts)\n this.helpers = { ...postcss, result: this.result, postcss }\n this.plugins = this.processor.plugins.map(plugin => {\n if (typeof plugin === 'object' && plugin.prepare) {\n return { ...plugin, ...plugin.prepare(this.result) }\n } else {\n return plugin\n }\n })\n }\n\n get [Symbol.toStringTag]() {\n return 'LazyResult'\n }\n\n get processor() {\n return this.result.processor\n }\n\n get opts() {\n return this.result.opts\n }\n\n get css() {\n return this.stringify().css\n }\n\n get content() {\n return this.stringify().content\n }\n\n get map() {\n return this.stringify().map\n }\n\n get root() {\n return this.sync().root\n }\n\n get messages() {\n return this.sync().messages\n }\n\n warnings() {\n return this.sync().warnings()\n }\n\n toString() {\n return this.css\n }\n\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== 'production') {\n if (!('from' in this.opts)) {\n warnOnce(\n 'Without `from` option PostCSS could generate wrong source map ' +\n 'and will not find Browserslist config. Set it to CSS file path ' +\n 'or to `undefined` to prevent this warning.'\n )\n }\n }\n return this.async().then(onFulfilled, onRejected)\n }\n\n catch(onRejected) {\n return this.async().catch(onRejected)\n }\n\n finally(onFinally) {\n return this.async().then(onFinally, onFinally)\n }\n\n async() {\n if (this.error) return Promise.reject(this.error)\n if (this.processed) return Promise.resolve(this.result)\n if (!this.processing) {\n this.processing = this.runAsync()\n }\n return this.processing\n }\n\n sync() {\n if (this.error) throw this.error\n if (this.processed) return this.result\n this.processed = true\n\n if (this.processing) {\n throw this.getAsyncError()\n }\n\n for (let plugin of this.plugins) {\n let promise = this.runOnRoot(plugin)\n if (isPromise(promise)) {\n throw this.getAsyncError()\n }\n }\n\n this.prepareVisitors()\n if (this.hasListener) {\n let root = this.result.root\n while (!root[isClean]) {\n root[isClean] = true\n this.walkSync(root)\n }\n if (this.listeners.OnceExit) {\n if (root.type === 'document') {\n for (let subRoot of root.nodes) {\n this.visitSync(this.listeners.OnceExit, subRoot)\n }\n } else {\n this.visitSync(this.listeners.OnceExit, root)\n }\n }\n }\n\n return this.result\n }\n\n stringify() {\n if (this.error) throw this.error\n if (this.stringified) return this.result\n this.stringified = true\n\n this.sync()\n\n let opts = this.result.opts\n let str = stringify\n if (opts.syntax) str = opts.syntax.stringify\n if (opts.stringifier) str = opts.stringifier\n if (str.stringify) str = str.stringify\n\n let map = new MapGenerator(str, this.result.root, this.result.opts)\n let data = map.generate()\n this.result.css = data[0]\n this.result.map = data[1]\n\n return this.result\n }\n\n walkSync(node) {\n node[isClean] = true\n let events = getEvents(node)\n for (let event of events) {\n if (event === CHILDREN) {\n if (node.nodes) {\n node.each(child => {\n if (!child[isClean]) this.walkSync(child)\n })\n }\n } else {\n let visitors = this.listeners[event]\n if (visitors) {\n if (this.visitSync(visitors, node.toProxy())) return\n }\n }\n }\n }\n\n visitSync(visitors, node) {\n for (let [plugin, visitor] of visitors) {\n this.result.lastPlugin = plugin\n let promise\n try {\n promise = visitor(node, this.helpers)\n } catch (e) {\n throw this.handleError(e, node.proxyOf)\n }\n if (node.type !== 'root' && node.type !== 'document' && !node.parent) {\n return true\n }\n if (isPromise(promise)) {\n throw this.getAsyncError()\n }\n }\n }\n\n runOnRoot(plugin) {\n this.result.lastPlugin = plugin\n try {\n if (typeof plugin === 'object' && plugin.Once) {\n if (this.result.root.type === 'document') {\n let roots = this.result.root.nodes.map(root =>\n plugin.Once(root, this.helpers)\n )\n\n if (isPromise(roots[0])) {\n return Promise.all(roots)\n }\n\n return roots\n }\n\n return plugin.Once(this.result.root, this.helpers)\n } else if (typeof plugin === 'function') {\n return plugin(this.result.root, this.result)\n }\n } catch (error) {\n throw this.handleError(error)\n }\n }\n\n getAsyncError() {\n throw new Error('Use process(css).then(cb) to work with async plugins')\n }\n\n handleError(error, node) {\n let plugin = this.result.lastPlugin\n try {\n if (node) node.addToError(error)\n this.error = error\n if (error.name === 'CssSyntaxError' && !error.plugin) {\n error.plugin = plugin.postcssPlugin\n error.setMessage()\n } else if (plugin.postcssVersion) {\n if (process.env.NODE_ENV !== 'production') {\n let pluginName = plugin.postcssPlugin\n let pluginVer = plugin.postcssVersion\n let runtimeVer = this.result.processor.version\n let a = pluginVer.split('.')\n let b = runtimeVer.split('.')\n\n if (a[0] !== b[0] || parseInt(a[1]) > parseInt(b[1])) {\n // eslint-disable-next-line no-console\n console.error(\n 'Unknown error from PostCSS plugin. Your current PostCSS ' +\n 'version is ' +\n runtimeVer +\n ', but ' +\n pluginName +\n ' uses ' +\n pluginVer +\n '. Perhaps this is the source of the error below.'\n )\n }\n }\n }\n } catch (err) {\n /* c8 ignore next 3 */\n // eslint-disable-next-line no-console\n if (console && console.error) console.error(err)\n }\n return error\n }\n\n async runAsync() {\n this.plugin = 0\n for (let i = 0; i < this.plugins.length; i++) {\n let plugin = this.plugins[i]\n let promise = this.runOnRoot(plugin)\n if (isPromise(promise)) {\n try {\n await promise\n } catch (error) {\n throw this.handleError(error)\n }\n }\n }\n\n this.prepareVisitors()\n if (this.hasListener) {\n let root = this.result.root\n while (!root[isClean]) {\n root[isClean] = true\n let stack = [toStack(root)]\n while (stack.length > 0) {\n let promise = this.visitTick(stack)\n if (isPromise(promise)) {\n try {\n await promise\n } catch (e) {\n let node = stack[stack.length - 1].node\n throw this.handleError(e, node)\n }\n }\n }\n }\n\n if (this.listeners.OnceExit) {\n for (let [plugin, visitor] of this.listeners.OnceExit) {\n this.result.lastPlugin = plugin\n try {\n if (root.type === 'document') {\n let roots = root.nodes.map(subRoot =>\n visitor(subRoot, this.helpers)\n )\n\n await Promise.all(roots)\n } else {\n await visitor(root, this.helpers)\n }\n } catch (e) {\n throw this.handleError(e)\n }\n }\n }\n }\n\n this.processed = true\n return this.stringify()\n }\n\n prepareVisitors() {\n this.listeners = {}\n let add = (plugin, type, cb) => {\n if (!this.listeners[type]) this.listeners[type] = []\n this.listeners[type].push([plugin, cb])\n }\n for (let plugin of this.plugins) {\n if (typeof plugin === 'object') {\n for (let event in plugin) {\n if (!PLUGIN_PROPS[event] && /^[A-Z]/.test(event)) {\n throw new Error(\n `Unknown event ${event} in ${plugin.postcssPlugin}. ` +\n `Try to update PostCSS (${this.processor.version} now).`\n )\n }\n if (!NOT_VISITORS[event]) {\n if (typeof plugin[event] === 'object') {\n for (let filter in plugin[event]) {\n if (filter === '*') {\n add(plugin, event, plugin[event][filter])\n } else {\n add(\n plugin,\n event + '-' + filter.toLowerCase(),\n plugin[event][filter]\n )\n }\n }\n } else if (typeof plugin[event] === 'function') {\n add(plugin, event, plugin[event])\n }\n }\n }\n }\n }\n this.hasListener = Object.keys(this.listeners).length > 0\n }\n\n visitTick(stack) {\n let visit = stack[stack.length - 1]\n let { node, visitors } = visit\n\n if (node.type !== 'root' && node.type !== 'document' && !node.parent) {\n stack.pop()\n return\n }\n\n if (visitors.length > 0 && visit.visitorIndex < visitors.length) {\n let [plugin, visitor] = visitors[visit.visitorIndex]\n visit.visitorIndex += 1\n if (visit.visitorIndex === visitors.length) {\n visit.visitors = []\n visit.visitorIndex = 0\n }\n this.result.lastPlugin = plugin\n try {\n return visitor(node.toProxy(), this.helpers)\n } catch (e) {\n throw this.handleError(e, node)\n }\n }\n\n if (visit.iterator !== 0) {\n let iterator = visit.iterator\n let child\n while ((child = node.nodes[node.indexes[iterator]])) {\n node.indexes[iterator] += 1\n if (!child[isClean]) {\n child[isClean] = true\n stack.push(toStack(child))\n return\n }\n }\n visit.iterator = 0\n delete node.indexes[iterator]\n }\n\n let events = visit.events\n while (visit.eventIndex < events.length) {\n let event = events[visit.eventIndex]\n visit.eventIndex += 1\n if (event === CHILDREN) {\n if (node.nodes && node.nodes.length) {\n node[isClean] = true\n visit.iterator = node.getIterator()\n }\n return\n } else if (this.listeners[event]) {\n visit.visitors = this.listeners[event]\n return\n }\n }\n stack.pop()\n }\n}\n\nLazyResult.registerPostcss = dependant => {\n postcss = dependant\n}\n\nmodule.exports = LazyResult\nLazyResult.default = LazyResult\n\nRoot.registerLazyResult(LazyResult)\nDocument.registerLazyResult(LazyResult)\n","'use strict'\n\nlet list = {\n split(string, separators, last) {\n let array = []\n let current = ''\n let split = false\n\n let func = 0\n let inQuote = false\n let prevQuote = ''\n let escape = false\n\n for (let letter of string) {\n if (escape) {\n escape = false\n } else if (letter === '\\\\') {\n escape = true\n } else if (inQuote) {\n if (letter === prevQuote) {\n inQuote = false\n }\n } else if (letter === '\"' || letter === \"'\") {\n inQuote = true\n prevQuote = letter\n } else if (letter === '(') {\n func += 1\n } else if (letter === ')') {\n if (func > 0) func -= 1\n } else if (func === 0) {\n if (separators.includes(letter)) split = true\n }\n\n if (split) {\n if (current !== '') array.push(current.trim())\n current = ''\n split = false\n } else {\n current += letter\n }\n }\n\n if (last || current !== '') array.push(current.trim())\n return array\n },\n\n space(string) {\n let spaces = [' ', '\\n', '\\t']\n return list.split(string, spaces)\n },\n\n comma(string) {\n return list.split(string, [','], true)\n }\n}\n\nmodule.exports = list\nlist.default = list\n","'use strict'\n\nlet { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')\nlet { dirname, resolve, relative, sep } = require('path')\nlet { pathToFileURL } = require('url')\n\nlet Input = require('./input')\n\nlet sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator)\nlet pathAvailable = Boolean(dirname && resolve && relative && sep)\n\nclass MapGenerator {\n constructor(stringify, root, opts, cssString) {\n this.stringify = stringify\n this.mapOpts = opts.map || {}\n this.root = root\n this.opts = opts\n this.css = cssString\n this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute\n }\n\n isMap() {\n if (typeof this.opts.map !== 'undefined') {\n return !!this.opts.map\n }\n return this.previous().length > 0\n }\n\n previous() {\n if (!this.previousMaps) {\n this.previousMaps = []\n if (this.root) {\n this.root.walk(node => {\n if (node.source && node.source.input.map) {\n let map = node.source.input.map\n if (!this.previousMaps.includes(map)) {\n this.previousMaps.push(map)\n }\n }\n })\n } else {\n let input = new Input(this.css, this.opts)\n if (input.map) this.previousMaps.push(input.map)\n }\n }\n\n return this.previousMaps\n }\n\n isInline() {\n if (typeof this.mapOpts.inline !== 'undefined') {\n return this.mapOpts.inline\n }\n\n let annotation = this.mapOpts.annotation\n if (typeof annotation !== 'undefined' && annotation !== true) {\n return false\n }\n\n if (this.previous().length) {\n return this.previous().some(i => i.inline)\n }\n return true\n }\n\n isSourcesContent() {\n if (typeof this.mapOpts.sourcesContent !== 'undefined') {\n return this.mapOpts.sourcesContent\n }\n if (this.previous().length) {\n return this.previous().some(i => i.withContent())\n }\n return true\n }\n\n clearAnnotation() {\n if (this.mapOpts.annotation === false) return\n\n if (this.root) {\n let node\n for (let i = this.root.nodes.length - 1; i >= 0; i--) {\n node = this.root.nodes[i]\n if (node.type !== 'comment') continue\n if (node.text.indexOf('# sourceMappingURL=') === 0) {\n this.root.removeChild(i)\n }\n }\n } else if (this.css) {\n this.css = this.css.replace(/(\\n)?\\/\\*#[\\S\\s]*?\\*\\/$/gm, '')\n }\n }\n\n setSourcesContent() {\n let already = {}\n if (this.root) {\n this.root.walk(node => {\n if (node.source) {\n let from = node.source.input.from\n if (from && !already[from]) {\n already[from] = true\n let fromUrl = this.usesFileUrls\n ? this.toFileUrl(from)\n : this.toUrl(this.path(from))\n this.map.setSourceContent(fromUrl, node.source.input.css)\n }\n }\n })\n } else if (this.css) {\n let from = this.opts.from\n ? this.toUrl(this.path(this.opts.from))\n : ''\n this.map.setSourceContent(from, this.css)\n }\n }\n\n applyPrevMaps() {\n for (let prev of this.previous()) {\n let from = this.toUrl(this.path(prev.file))\n let root = prev.root || dirname(prev.file)\n let map\n\n if (this.mapOpts.sourcesContent === false) {\n map = new SourceMapConsumer(prev.text)\n if (map.sourcesContent) {\n map.sourcesContent = map.sourcesContent.map(() => null)\n }\n } else {\n map = prev.consumer()\n }\n\n this.map.applySourceMap(map, from, this.toUrl(this.path(root)))\n }\n }\n\n isAnnotation() {\n if (this.isInline()) {\n return true\n }\n if (typeof this.mapOpts.annotation !== 'undefined') {\n return this.mapOpts.annotation\n }\n if (this.previous().length) {\n return this.previous().some(i => i.annotation)\n }\n return true\n }\n\n toBase64(str) {\n if (Buffer) {\n return Buffer.from(str).toString('base64')\n } else {\n return window.btoa(unescape(encodeURIComponent(str)))\n }\n }\n\n addAnnotation() {\n let content\n\n if (this.isInline()) {\n content =\n 'data:application/json;base64,' + this.toBase64(this.map.toString())\n } else if (typeof this.mapOpts.annotation === 'string') {\n content = this.mapOpts.annotation\n } else if (typeof this.mapOpts.annotation === 'function') {\n content = this.mapOpts.annotation(this.opts.to, this.root)\n } else {\n content = this.outputFile() + '.map'\n }\n let eol = '\\n'\n if (this.css.includes('\\r\\n')) eol = '\\r\\n'\n\n this.css += eol + '/*# sourceMappingURL=' + content + ' */'\n }\n\n outputFile() {\n if (this.opts.to) {\n return this.path(this.opts.to)\n } else if (this.opts.from) {\n return this.path(this.opts.from)\n } else {\n return 'to.css'\n }\n }\n\n generateMap() {\n if (this.root) {\n this.generateString()\n } else if (this.previous().length === 1) {\n let prev = this.previous()[0].consumer()\n prev.file = this.outputFile()\n this.map = SourceMapGenerator.fromSourceMap(prev)\n } else {\n this.map = new SourceMapGenerator({ file: this.outputFile() })\n this.map.addMapping({\n source: this.opts.from\n ? this.toUrl(this.path(this.opts.from))\n : '',\n generated: { line: 1, column: 0 },\n original: { line: 1, column: 0 }\n })\n }\n\n if (this.isSourcesContent()) this.setSourcesContent()\n if (this.root && this.previous().length > 0) this.applyPrevMaps()\n if (this.isAnnotation()) this.addAnnotation()\n\n if (this.isInline()) {\n return [this.css]\n } else {\n return [this.css, this.map]\n }\n }\n\n path(file) {\n if (file.indexOf('<') === 0) return file\n if (/^\\w+:\\/\\//.test(file)) return file\n if (this.mapOpts.absolute) return file\n\n let from = this.opts.to ? dirname(this.opts.to) : '.'\n\n if (typeof this.mapOpts.annotation === 'string') {\n from = dirname(resolve(from, this.mapOpts.annotation))\n }\n\n file = relative(from, file)\n return file\n }\n\n toUrl(path) {\n if (sep === '\\\\') {\n path = path.replace(/\\\\/g, '/')\n }\n return encodeURI(path).replace(/[#?]/g, encodeURIComponent)\n }\n\n toFileUrl(path) {\n if (pathToFileURL) {\n return pathToFileURL(path).toString()\n } else {\n throw new Error(\n '`map.absolute` option is not available in this PostCSS build'\n )\n }\n }\n\n sourcePath(node) {\n if (this.mapOpts.from) {\n return this.toUrl(this.mapOpts.from)\n } else if (this.usesFileUrls) {\n return this.toFileUrl(node.source.input.from)\n } else {\n return this.toUrl(this.path(node.source.input.from))\n }\n }\n\n generateString() {\n this.css = ''\n this.map = new SourceMapGenerator({ file: this.outputFile() })\n\n let line = 1\n let column = 1\n\n let noSource = ''\n let mapping = {\n source: '',\n generated: { line: 0, column: 0 },\n original: { line: 0, column: 0 }\n }\n\n let lines, last\n this.stringify(this.root, (str, node, type) => {\n this.css += str\n\n if (node && type !== 'end') {\n mapping.generated.line = line\n mapping.generated.column = column - 1\n if (node.source && node.source.start) {\n mapping.source = this.sourcePath(node)\n mapping.original.line = node.source.start.line\n mapping.original.column = node.source.start.column - 1\n this.map.addMapping(mapping)\n } else {\n mapping.source = noSource\n mapping.original.line = 1\n mapping.original.column = 0\n this.map.addMapping(mapping)\n }\n }\n\n lines = str.match(/\\n/g)\n if (lines) {\n line += lines.length\n last = str.lastIndexOf('\\n')\n column = str.length - last\n } else {\n column += str.length\n }\n\n if (node && type !== 'start') {\n let p = node.parent || { raws: {} }\n let childless =\n node.type === 'decl' || (node.type === 'atrule' && !node.nodes)\n if (!childless || node !== p.last || p.raws.semicolon) {\n if (node.source && node.source.end) {\n mapping.source = this.sourcePath(node)\n mapping.original.line = node.source.end.line\n mapping.original.column = node.source.end.column - 1\n mapping.generated.line = line\n mapping.generated.column = column - 2\n this.map.addMapping(mapping)\n } else {\n mapping.source = noSource\n mapping.original.line = 1\n mapping.original.column = 0\n mapping.generated.line = line\n mapping.generated.column = column - 1\n this.map.addMapping(mapping)\n }\n }\n }\n })\n }\n\n generate() {\n this.clearAnnotation()\n if (pathAvailable && sourceMapAvailable && this.isMap()) {\n return this.generateMap()\n } else {\n let result = ''\n this.stringify(this.root, i => {\n result += i\n })\n return [result]\n }\n }\n}\n\nmodule.exports = MapGenerator\n","'use strict'\n\nlet MapGenerator = require('./map-generator')\nlet stringify = require('./stringify')\nlet warnOnce = require('./warn-once')\nlet parse = require('./parse')\nconst Result = require('./result')\n\nclass NoWorkResult {\n constructor(processor, css, opts) {\n css = css.toString()\n this.stringified = false\n\n this._processor = processor\n this._css = css\n this._opts = opts\n this._map = undefined\n let root\n\n let str = stringify\n this.result = new Result(this._processor, root, this._opts)\n this.result.css = css\n\n let self = this\n Object.defineProperty(this.result, 'root', {\n get() {\n return self.root\n }\n })\n\n let map = new MapGenerator(str, root, this._opts, css)\n if (map.isMap()) {\n let [generatedCSS, generatedMap] = map.generate()\n if (generatedCSS) {\n this.result.css = generatedCSS\n }\n if (generatedMap) {\n this.result.map = generatedMap\n }\n }\n }\n\n get [Symbol.toStringTag]() {\n return 'NoWorkResult'\n }\n\n get processor() {\n return this.result.processor\n }\n\n get opts() {\n return this.result.opts\n }\n\n get css() {\n return this.result.css\n }\n\n get content() {\n return this.result.css\n }\n\n get map() {\n return this.result.map\n }\n\n get root() {\n if (this._root) {\n return this._root\n }\n\n let root\n let parser = parse\n\n try {\n root = parser(this._css, this._opts)\n } catch (error) {\n this.error = error\n }\n\n if (this.error) {\n throw this.error\n } else {\n this._root = root\n return root\n }\n }\n\n get messages() {\n return []\n }\n\n warnings() {\n return []\n }\n\n toString() {\n return this._css\n }\n\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== 'production') {\n if (!('from' in this._opts)) {\n warnOnce(\n 'Without `from` option PostCSS could generate wrong source map ' +\n 'and will not find Browserslist config. Set it to CSS file path ' +\n 'or to `undefined` to prevent this warning.'\n )\n }\n }\n\n return this.async().then(onFulfilled, onRejected)\n }\n\n catch(onRejected) {\n return this.async().catch(onRejected)\n }\n\n finally(onFinally) {\n return this.async().then(onFinally, onFinally)\n }\n\n async() {\n if (this.error) return Promise.reject(this.error)\n return Promise.resolve(this.result)\n }\n\n sync() {\n if (this.error) throw this.error\n return this.result\n }\n}\n\nmodule.exports = NoWorkResult\nNoWorkResult.default = NoWorkResult\n","'use strict'\n\nlet { isClean, my } = require('./symbols')\nlet CssSyntaxError = require('./css-syntax-error')\nlet Stringifier = require('./stringifier')\nlet stringify = require('./stringify')\n\nfunction cloneNode(obj, parent) {\n let cloned = new obj.constructor()\n\n for (let i in obj) {\n if (!Object.prototype.hasOwnProperty.call(obj, i)) {\n /* c8 ignore next 2 */\n continue\n }\n if (i === 'proxyCache') continue\n let value = obj[i]\n let type = typeof value\n\n if (i === 'parent' && type === 'object') {\n if (parent) cloned[i] = parent\n } else if (i === 'source') {\n cloned[i] = value\n } else if (Array.isArray(value)) {\n cloned[i] = value.map(j => cloneNode(j, cloned))\n } else {\n if (type === 'object' && value !== null) value = cloneNode(value)\n cloned[i] = value\n }\n }\n\n return cloned\n}\n\nclass Node {\n constructor(defaults = {}) {\n this.raws = {}\n this[isClean] = false\n this[my] = true\n\n for (let name in defaults) {\n if (name === 'nodes') {\n this.nodes = []\n for (let node of defaults[name]) {\n if (typeof node.clone === 'function') {\n this.append(node.clone())\n } else {\n this.append(node)\n }\n }\n } else {\n this[name] = defaults[name]\n }\n }\n }\n\n error(message, opts = {}) {\n if (this.source) {\n let { start, end } = this.rangeBy(opts)\n return this.source.input.error(\n message,\n { line: start.line, column: start.column },\n { line: end.line, column: end.column },\n opts\n )\n }\n return new CssSyntaxError(message)\n }\n\n warn(result, text, opts) {\n let data = { node: this }\n for (let i in opts) data[i] = opts[i]\n return result.warn(text, data)\n }\n\n remove() {\n if (this.parent) {\n this.parent.removeChild(this)\n }\n this.parent = undefined\n return this\n }\n\n toString(stringifier = stringify) {\n if (stringifier.stringify) stringifier = stringifier.stringify\n let result = ''\n stringifier(this, i => {\n result += i\n })\n return result\n }\n\n assign(overrides = {}) {\n for (let name in overrides) {\n this[name] = overrides[name]\n }\n return this\n }\n\n clone(overrides = {}) {\n let cloned = cloneNode(this)\n for (let name in overrides) {\n cloned[name] = overrides[name]\n }\n return cloned\n }\n\n cloneBefore(overrides = {}) {\n let cloned = this.clone(overrides)\n this.parent.insertBefore(this, cloned)\n return cloned\n }\n\n cloneAfter(overrides = {}) {\n let cloned = this.clone(overrides)\n this.parent.insertAfter(this, cloned)\n return cloned\n }\n\n replaceWith(...nodes) {\n if (this.parent) {\n let bookmark = this\n let foundSelf = false\n for (let node of nodes) {\n if (node === this) {\n foundSelf = true\n } else if (foundSelf) {\n this.parent.insertAfter(bookmark, node)\n bookmark = node\n } else {\n this.parent.insertBefore(bookmark, node)\n }\n }\n\n if (!foundSelf) {\n this.remove()\n }\n }\n\n return this\n }\n\n next() {\n if (!this.parent) return undefined\n let index = this.parent.index(this)\n return this.parent.nodes[index + 1]\n }\n\n prev() {\n if (!this.parent) return undefined\n let index = this.parent.index(this)\n return this.parent.nodes[index - 1]\n }\n\n before(add) {\n this.parent.insertBefore(this, add)\n return this\n }\n\n after(add) {\n this.parent.insertAfter(this, add)\n return this\n }\n\n root() {\n let result = this\n while (result.parent && result.parent.type !== 'document') {\n result = result.parent\n }\n return result\n }\n\n raw(prop, defaultType) {\n let str = new Stringifier()\n return str.raw(this, prop, defaultType)\n }\n\n cleanRaws(keepBetween) {\n delete this.raws.before\n delete this.raws.after\n if (!keepBetween) delete this.raws.between\n }\n\n toJSON(_, inputs) {\n let fixed = {}\n let emitInputs = inputs == null\n inputs = inputs || new Map()\n let inputsNextIndex = 0\n\n for (let name in this) {\n if (!Object.prototype.hasOwnProperty.call(this, name)) {\n /* c8 ignore next 2 */\n continue\n }\n if (name === 'parent' || name === 'proxyCache') continue\n let value = this[name]\n\n if (Array.isArray(value)) {\n fixed[name] = value.map(i => {\n if (typeof i === 'object' && i.toJSON) {\n return i.toJSON(null, inputs)\n } else {\n return i\n }\n })\n } else if (typeof value === 'object' && value.toJSON) {\n fixed[name] = value.toJSON(null, inputs)\n } else if (name === 'source') {\n let inputId = inputs.get(value.input)\n if (inputId == null) {\n inputId = inputsNextIndex\n inputs.set(value.input, inputsNextIndex)\n inputsNextIndex++\n }\n fixed[name] = {\n inputId,\n start: value.start,\n end: value.end\n }\n } else {\n fixed[name] = value\n }\n }\n\n if (emitInputs) {\n fixed.inputs = [...inputs.keys()].map(input => input.toJSON())\n }\n\n return fixed\n }\n\n positionInside(index) {\n let string = this.toString()\n let column = this.source.start.column\n let line = this.source.start.line\n\n for (let i = 0; i < index; i++) {\n if (string[i] === '\\n') {\n column = 1\n line += 1\n } else {\n column += 1\n }\n }\n\n return { line, column }\n }\n\n positionBy(opts) {\n let pos = this.source.start\n if (opts.index) {\n pos = this.positionInside(opts.index)\n } else if (opts.word) {\n let index = this.toString().indexOf(opts.word)\n if (index !== -1) pos = this.positionInside(index)\n }\n return pos\n }\n\n rangeBy(opts) {\n let start = {\n line: this.source.start.line,\n column: this.source.start.column\n }\n let end = this.source.end\n ? {\n line: this.source.end.line,\n column: this.source.end.column + 1\n }\n : {\n line: start.line,\n column: start.column + 1\n }\n\n if (opts.word) {\n let index = this.toString().indexOf(opts.word)\n if (index !== -1) {\n start = this.positionInside(index)\n end = this.positionInside(index + opts.word.length)\n }\n } else {\n if (opts.start) {\n start = {\n line: opts.start.line,\n column: opts.start.column\n }\n } else if (opts.index) {\n start = this.positionInside(opts.index)\n }\n\n if (opts.end) {\n end = {\n line: opts.end.line,\n column: opts.end.column\n }\n } else if (opts.endIndex) {\n end = this.positionInside(opts.endIndex)\n } else if (opts.index) {\n end = this.positionInside(opts.index + 1)\n }\n }\n\n if (\n end.line < start.line ||\n (end.line === start.line && end.column <= start.column)\n ) {\n end = { line: start.line, column: start.column + 1 }\n }\n\n return { start, end }\n }\n\n getProxyProcessor() {\n return {\n set(node, prop, value) {\n if (node[prop] === value) return true\n node[prop] = value\n if (\n prop === 'prop' ||\n prop === 'value' ||\n prop === 'name' ||\n prop === 'params' ||\n prop === 'important' ||\n /* c8 ignore next */\n prop === 'text'\n ) {\n node.markDirty()\n }\n return true\n },\n\n get(node, prop) {\n if (prop === 'proxyOf') {\n return node\n } else if (prop === 'root') {\n return () => node.root().toProxy()\n } else {\n return node[prop]\n }\n }\n }\n }\n\n toProxy() {\n if (!this.proxyCache) {\n this.proxyCache = new Proxy(this, this.getProxyProcessor())\n }\n return this.proxyCache\n }\n\n addToError(error) {\n error.postcssNode = this\n if (error.stack && this.source && /\\n\\s{4}at /.test(error.stack)) {\n let s = this.source\n error.stack = error.stack.replace(\n /\\n\\s{4}at /,\n `$&${s.input.from}:${s.start.line}:${s.start.column}$&`\n )\n }\n return error\n }\n\n markDirty() {\n if (this[isClean]) {\n this[isClean] = false\n let next = this\n while ((next = next.parent)) {\n next[isClean] = false\n }\n }\n }\n\n get proxyOf() {\n return this\n }\n}\n\nmodule.exports = Node\nNode.default = Node\n","'use strict'\n\nlet Container = require('./container')\nlet Parser = require('./parser')\nlet Input = require('./input')\n\nfunction parse(css, opts) {\n let input = new Input(css, opts)\n let parser = new Parser(input)\n try {\n parser.parse()\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n if (e.name === 'CssSyntaxError' && opts && opts.from) {\n if (/\\.scss$/i.test(opts.from)) {\n e.message +=\n '\\nYou tried to parse SCSS with ' +\n 'the standard CSS parser; ' +\n 'try again with the postcss-scss parser'\n } else if (/\\.sass/i.test(opts.from)) {\n e.message +=\n '\\nYou tried to parse Sass with ' +\n 'the standard CSS parser; ' +\n 'try again with the postcss-sass parser'\n } else if (/\\.less$/i.test(opts.from)) {\n e.message +=\n '\\nYou tried to parse Less with ' +\n 'the standard CSS parser; ' +\n 'try again with the postcss-less parser'\n }\n }\n }\n throw e\n }\n\n return parser.root\n}\n\nmodule.exports = parse\nparse.default = parse\n\nContainer.registerParse(parse)\n","'use strict'\n\nlet Declaration = require('./declaration')\nlet tokenizer = require('./tokenize')\nlet Comment = require('./comment')\nlet AtRule = require('./at-rule')\nlet Root = require('./root')\nlet Rule = require('./rule')\n\nconst SAFE_COMMENT_NEIGHBOR = {\n empty: true,\n space: true\n}\n\nfunction findLastWithPosition(tokens) {\n for (let i = tokens.length - 1; i >= 0; i--) {\n let token = tokens[i]\n let pos = token[3] || token[2]\n if (pos) return pos\n }\n}\n\nclass Parser {\n constructor(input) {\n this.input = input\n\n this.root = new Root()\n this.current = this.root\n this.spaces = ''\n this.semicolon = false\n this.customProperty = false\n\n this.createTokenizer()\n this.root.source = { input, start: { offset: 0, line: 1, column: 1 } }\n }\n\n createTokenizer() {\n this.tokenizer = tokenizer(this.input)\n }\n\n parse() {\n let token\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken()\n\n switch (token[0]) {\n case 'space':\n this.spaces += token[1]\n break\n\n case ';':\n this.freeSemicolon(token)\n break\n\n case '}':\n this.end(token)\n break\n\n case 'comment':\n this.comment(token)\n break\n\n case 'at-word':\n this.atrule(token)\n break\n\n case '{':\n this.emptyRule(token)\n break\n\n default:\n this.other(token)\n break\n }\n }\n this.endFile()\n }\n\n comment(token) {\n let node = new Comment()\n this.init(node, token[2])\n node.source.end = this.getPosition(token[3] || token[2])\n\n let text = token[1].slice(2, -2)\n if (/^\\s*$/.test(text)) {\n node.text = ''\n node.raws.left = text\n node.raws.right = ''\n } else {\n let match = text.match(/^(\\s*)([^]*\\S)(\\s*)$/)\n node.text = match[2]\n node.raws.left = match[1]\n node.raws.right = match[3]\n }\n }\n\n emptyRule(token) {\n let node = new Rule()\n this.init(node, token[2])\n node.selector = ''\n node.raws.between = ''\n this.current = node\n }\n\n other(start) {\n let end = false\n let type = null\n let colon = false\n let bracket = null\n let brackets = []\n let customProperty = start[1].startsWith('--')\n\n let tokens = []\n let token = start\n while (token) {\n type = token[0]\n tokens.push(token)\n\n if (type === '(' || type === '[') {\n if (!bracket) bracket = token\n brackets.push(type === '(' ? ')' : ']')\n } else if (customProperty && colon && type === '{') {\n if (!bracket) bracket = token\n brackets.push('}')\n } else if (brackets.length === 0) {\n if (type === ';') {\n if (colon) {\n this.decl(tokens, customProperty)\n return\n } else {\n break\n }\n } else if (type === '{') {\n this.rule(tokens)\n return\n } else if (type === '}') {\n this.tokenizer.back(tokens.pop())\n end = true\n break\n } else if (type === ':') {\n colon = true\n }\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop()\n if (brackets.length === 0) bracket = null\n }\n\n token = this.tokenizer.nextToken()\n }\n\n if (this.tokenizer.endOfFile()) end = true\n if (brackets.length > 0) this.unclosedBracket(bracket)\n\n if (end && colon) {\n if (!customProperty) {\n while (tokens.length) {\n token = tokens[tokens.length - 1][0]\n if (token !== 'space' && token !== 'comment') break\n this.tokenizer.back(tokens.pop())\n }\n }\n this.decl(tokens, customProperty)\n } else {\n this.unknownWord(tokens)\n }\n }\n\n rule(tokens) {\n tokens.pop()\n\n let node = new Rule()\n this.init(node, tokens[0][2])\n\n node.raws.between = this.spacesAndCommentsFromEnd(tokens)\n this.raw(node, 'selector', tokens)\n this.current = node\n }\n\n decl(tokens, customProperty) {\n let node = new Declaration()\n this.init(node, tokens[0][2])\n\n let last = tokens[tokens.length - 1]\n if (last[0] === ';') {\n this.semicolon = true\n tokens.pop()\n }\n\n node.source.end = this.getPosition(\n last[3] || last[2] || findLastWithPosition(tokens)\n )\n\n while (tokens[0][0] !== 'word') {\n if (tokens.length === 1) this.unknownWord(tokens)\n node.raws.before += tokens.shift()[1]\n }\n node.source.start = this.getPosition(tokens[0][2])\n\n node.prop = ''\n while (tokens.length) {\n let type = tokens[0][0]\n if (type === ':' || type === 'space' || type === 'comment') {\n break\n }\n node.prop += tokens.shift()[1]\n }\n\n node.raws.between = ''\n\n let token\n while (tokens.length) {\n token = tokens.shift()\n\n if (token[0] === ':') {\n node.raws.between += token[1]\n break\n } else {\n if (token[0] === 'word' && /\\w/.test(token[1])) {\n this.unknownWord([token])\n }\n node.raws.between += token[1]\n }\n }\n\n if (node.prop[0] === '_' || node.prop[0] === '*') {\n node.raws.before += node.prop[0]\n node.prop = node.prop.slice(1)\n }\n\n let firstSpaces = []\n let next\n while (tokens.length) {\n next = tokens[0][0]\n if (next !== 'space' && next !== 'comment') break\n firstSpaces.push(tokens.shift())\n }\n\n this.precheckMissedSemicolon(tokens)\n\n for (let i = tokens.length - 1; i >= 0; i--) {\n token = tokens[i]\n if (token[1].toLowerCase() === '!important') {\n node.important = true\n let string = this.stringFrom(tokens, i)\n string = this.spacesFromEnd(tokens) + string\n if (string !== ' !important') node.raws.important = string\n break\n } else if (token[1].toLowerCase() === 'important') {\n let cache = tokens.slice(0)\n let str = ''\n for (let j = i; j > 0; j--) {\n let type = cache[j][0]\n if (str.trim().indexOf('!') === 0 && type !== 'space') {\n break\n }\n str = cache.pop()[1] + str\n }\n if (str.trim().indexOf('!') === 0) {\n node.important = true\n node.raws.important = str\n tokens = cache\n }\n }\n\n if (token[0] !== 'space' && token[0] !== 'comment') {\n break\n }\n }\n\n let hasWord = tokens.some(i => i[0] !== 'space' && i[0] !== 'comment')\n\n if (hasWord) {\n node.raws.between += firstSpaces.map(i => i[1]).join('')\n firstSpaces = []\n }\n this.raw(node, 'value', firstSpaces.concat(tokens), customProperty)\n\n if (node.value.includes(':') && !customProperty) {\n this.checkMissedSemicolon(tokens)\n }\n }\n\n atrule(token) {\n let node = new AtRule()\n node.name = token[1].slice(1)\n if (node.name === '') {\n this.unnamedAtrule(node, token)\n }\n this.init(node, token[2])\n\n let type\n let prev\n let shift\n let last = false\n let open = false\n let params = []\n let brackets = []\n\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken()\n type = token[0]\n\n if (type === '(' || type === '[') {\n brackets.push(type === '(' ? ')' : ']')\n } else if (type === '{' && brackets.length > 0) {\n brackets.push('}')\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop()\n }\n\n if (brackets.length === 0) {\n if (type === ';') {\n node.source.end = this.getPosition(token[2])\n this.semicolon = true\n break\n } else if (type === '{') {\n open = true\n break\n } else if (type === '}') {\n if (params.length > 0) {\n shift = params.length - 1\n prev = params[shift]\n while (prev && prev[0] === 'space') {\n prev = params[--shift]\n }\n if (prev) {\n node.source.end = this.getPosition(prev[3] || prev[2])\n }\n }\n this.end(token)\n break\n } else {\n params.push(token)\n }\n } else {\n params.push(token)\n }\n\n if (this.tokenizer.endOfFile()) {\n last = true\n break\n }\n }\n\n node.raws.between = this.spacesAndCommentsFromEnd(params)\n if (params.length) {\n node.raws.afterName = this.spacesAndCommentsFromStart(params)\n this.raw(node, 'params', params)\n if (last) {\n token = params[params.length - 1]\n node.source.end = this.getPosition(token[3] || token[2])\n this.spaces = node.raws.between\n node.raws.between = ''\n }\n } else {\n node.raws.afterName = ''\n node.params = ''\n }\n\n if (open) {\n node.nodes = []\n this.current = node\n }\n }\n\n end(token) {\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon\n }\n this.semicolon = false\n\n this.current.raws.after = (this.current.raws.after || '') + this.spaces\n this.spaces = ''\n\n if (this.current.parent) {\n this.current.source.end = this.getPosition(token[2])\n this.current = this.current.parent\n } else {\n this.unexpectedClose(token)\n }\n }\n\n endFile() {\n if (this.current.parent) this.unclosedBlock()\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon\n }\n this.current.raws.after = (this.current.raws.after || '') + this.spaces\n }\n\n freeSemicolon(token) {\n this.spaces += token[1]\n if (this.current.nodes) {\n let prev = this.current.nodes[this.current.nodes.length - 1]\n if (prev && prev.type === 'rule' && !prev.raws.ownSemicolon) {\n prev.raws.ownSemicolon = this.spaces\n this.spaces = ''\n }\n }\n }\n\n // Helpers\n\n getPosition(offset) {\n let pos = this.input.fromOffset(offset)\n return {\n offset,\n line: pos.line,\n column: pos.col\n }\n }\n\n init(node, offset) {\n this.current.push(node)\n node.source = {\n start: this.getPosition(offset),\n input: this.input\n }\n node.raws.before = this.spaces\n this.spaces = ''\n if (node.type !== 'comment') this.semicolon = false\n }\n\n raw(node, prop, tokens, customProperty) {\n let token, type\n let length = tokens.length\n let value = ''\n let clean = true\n let next, prev\n\n for (let i = 0; i < length; i += 1) {\n token = tokens[i]\n type = token[0]\n if (type === 'space' && i === length - 1 && !customProperty) {\n clean = false\n } else if (type === 'comment') {\n prev = tokens[i - 1] ? tokens[i - 1][0] : 'empty'\n next = tokens[i + 1] ? tokens[i + 1][0] : 'empty'\n if (!SAFE_COMMENT_NEIGHBOR[prev] && !SAFE_COMMENT_NEIGHBOR[next]) {\n if (value.slice(-1) === ',') {\n clean = false\n } else {\n value += token[1]\n }\n } else {\n clean = false\n }\n } else {\n value += token[1]\n }\n }\n if (!clean) {\n let raw = tokens.reduce((all, i) => all + i[1], '')\n node.raws[prop] = { value, raw }\n }\n node[prop] = value\n }\n\n spacesAndCommentsFromEnd(tokens) {\n let lastTokenType\n let spaces = ''\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0]\n if (lastTokenType !== 'space' && lastTokenType !== 'comment') break\n spaces = tokens.pop()[1] + spaces\n }\n return spaces\n }\n\n spacesAndCommentsFromStart(tokens) {\n let next\n let spaces = ''\n while (tokens.length) {\n next = tokens[0][0]\n if (next !== 'space' && next !== 'comment') break\n spaces += tokens.shift()[1]\n }\n return spaces\n }\n\n spacesFromEnd(tokens) {\n let lastTokenType\n let spaces = ''\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0]\n if (lastTokenType !== 'space') break\n spaces = tokens.pop()[1] + spaces\n }\n return spaces\n }\n\n stringFrom(tokens, from) {\n let result = ''\n for (let i = from; i < tokens.length; i++) {\n result += tokens[i][1]\n }\n tokens.splice(from, tokens.length - from)\n return result\n }\n\n colon(tokens) {\n let brackets = 0\n let token, type, prev\n for (let [i, element] of tokens.entries()) {\n token = element\n type = token[0]\n\n if (type === '(') {\n brackets += 1\n }\n if (type === ')') {\n brackets -= 1\n }\n if (brackets === 0 && type === ':') {\n if (!prev) {\n this.doubleColon(token)\n } else if (prev[0] === 'word' && prev[1] === 'progid') {\n continue\n } else {\n return i\n }\n }\n\n prev = token\n }\n return false\n }\n\n // Errors\n\n unclosedBracket(bracket) {\n throw this.input.error(\n 'Unclosed bracket',\n { offset: bracket[2] },\n { offset: bracket[2] + 1 }\n )\n }\n\n unknownWord(tokens) {\n throw this.input.error(\n 'Unknown word',\n { offset: tokens[0][2] },\n { offset: tokens[0][2] + tokens[0][1].length }\n )\n }\n\n unexpectedClose(token) {\n throw this.input.error(\n 'Unexpected }',\n { offset: token[2] },\n { offset: token[2] + 1 }\n )\n }\n\n unclosedBlock() {\n let pos = this.current.source.start\n throw this.input.error('Unclosed block', pos.line, pos.column)\n }\n\n doubleColon(token) {\n throw this.input.error(\n 'Double colon',\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n )\n }\n\n unnamedAtrule(node, token) {\n throw this.input.error(\n 'At-rule without name',\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n )\n }\n\n precheckMissedSemicolon(/* tokens */) {\n // Hook for Safe Parser\n }\n\n checkMissedSemicolon(tokens) {\n let colon = this.colon(tokens)\n if (colon === false) return\n\n let founded = 0\n let token\n for (let j = colon - 1; j >= 0; j--) {\n token = tokens[j]\n if (token[0] !== 'space') {\n founded += 1\n if (founded === 2) break\n }\n }\n // If the token is a word, e.g. `!important`, `red` or any other valid property's value.\n // Then we need to return the colon after that word token. [3] is the \"end\" colon of that word.\n // And because we need it after that one we do +1 to get the next one.\n throw this.input.error(\n 'Missed semicolon',\n token[0] === 'word' ? token[3] + 1 : token[2]\n )\n }\n}\n\nmodule.exports = Parser\n","'use strict'\n\nlet CssSyntaxError = require('./css-syntax-error')\nlet Declaration = require('./declaration')\nlet LazyResult = require('./lazy-result')\nlet Container = require('./container')\nlet Processor = require('./processor')\nlet stringify = require('./stringify')\nlet fromJSON = require('./fromJSON')\nlet Document = require('./document')\nlet Warning = require('./warning')\nlet Comment = require('./comment')\nlet AtRule = require('./at-rule')\nlet Result = require('./result.js')\nlet Input = require('./input')\nlet parse = require('./parse')\nlet list = require('./list')\nlet Rule = require('./rule')\nlet Root = require('./root')\nlet Node = require('./node')\n\nfunction postcss(...plugins) {\n if (plugins.length === 1 && Array.isArray(plugins[0])) {\n plugins = plugins[0]\n }\n return new Processor(plugins)\n}\n\npostcss.plugin = function plugin(name, initializer) {\n let warningPrinted = false\n function creator(...args) {\n // eslint-disable-next-line no-console\n if (console && console.warn && !warningPrinted) {\n warningPrinted = true\n // eslint-disable-next-line no-console\n console.warn(\n name +\n ': postcss.plugin was deprecated. Migration guide:\\n' +\n 'https://evilmartians.com/chronicles/postcss-8-plugin-migration'\n )\n if (process.env.LANG && process.env.LANG.startsWith('cn')) {\n /* c8 ignore next 7 */\n // eslint-disable-next-line no-console\n console.warn(\n name +\n ': 里面 postcss.plugin 被弃用. 迁移指南:\\n' +\n 'https://www.w3ctech.com/topic/2226'\n )\n }\n }\n let transformer = initializer(...args)\n transformer.postcssPlugin = name\n transformer.postcssVersion = new Processor().version\n return transformer\n }\n\n let cache\n Object.defineProperty(creator, 'postcss', {\n get() {\n if (!cache) cache = creator()\n return cache\n }\n })\n\n creator.process = function (css, processOpts, pluginOpts) {\n return postcss([creator(pluginOpts)]).process(css, processOpts)\n }\n\n return creator\n}\n\npostcss.stringify = stringify\npostcss.parse = parse\npostcss.fromJSON = fromJSON\npostcss.list = list\n\npostcss.comment = defaults => new Comment(defaults)\npostcss.atRule = defaults => new AtRule(defaults)\npostcss.decl = defaults => new Declaration(defaults)\npostcss.rule = defaults => new Rule(defaults)\npostcss.root = defaults => new Root(defaults)\npostcss.document = defaults => new Document(defaults)\n\npostcss.CssSyntaxError = CssSyntaxError\npostcss.Declaration = Declaration\npostcss.Container = Container\npostcss.Processor = Processor\npostcss.Document = Document\npostcss.Comment = Comment\npostcss.Warning = Warning\npostcss.AtRule = AtRule\npostcss.Result = Result\npostcss.Input = Input\npostcss.Rule = Rule\npostcss.Root = Root\npostcss.Node = Node\n\nLazyResult.registerPostcss(postcss)\n\nmodule.exports = postcss\npostcss.default = postcss\n","'use strict'\n\nlet { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')\nlet { existsSync, readFileSync } = require('fs')\nlet { dirname, join } = require('path')\n\nfunction fromBase64(str) {\n if (Buffer) {\n return Buffer.from(str, 'base64').toString()\n } else {\n /* c8 ignore next 2 */\n return window.atob(str)\n }\n}\n\nclass PreviousMap {\n constructor(css, opts) {\n if (opts.map === false) return\n this.loadAnnotation(css)\n this.inline = this.startWith(this.annotation, 'data:')\n\n let prev = opts.map ? opts.map.prev : undefined\n let text = this.loadMap(opts.from, prev)\n if (!this.mapFile && opts.from) {\n this.mapFile = opts.from\n }\n if (this.mapFile) this.root = dirname(this.mapFile)\n if (text) this.text = text\n }\n\n consumer() {\n if (!this.consumerCache) {\n this.consumerCache = new SourceMapConsumer(this.text)\n }\n return this.consumerCache\n }\n\n withContent() {\n return !!(\n this.consumer().sourcesContent &&\n this.consumer().sourcesContent.length > 0\n )\n }\n\n startWith(string, start) {\n if (!string) return false\n return string.substr(0, start.length) === start\n }\n\n getAnnotationURL(sourceMapString) {\n return sourceMapString.replace(/^\\/\\*\\s*# sourceMappingURL=/, '').trim()\n }\n\n loadAnnotation(css) {\n let comments = css.match(/\\/\\*\\s*# sourceMappingURL=/gm)\n if (!comments) return\n\n // sourceMappingURLs from comments, strings, etc.\n let start = css.lastIndexOf(comments.pop())\n let end = css.indexOf('*/', start)\n\n if (start > -1 && end > -1) {\n // Locate the last sourceMappingURL to avoid pickin\n this.annotation = this.getAnnotationURL(css.substring(start, end))\n }\n }\n\n decodeInline(text) {\n let baseCharsetUri = /^data:application\\/json;charset=utf-?8;base64,/\n let baseUri = /^data:application\\/json;base64,/\n let charsetUri = /^data:application\\/json;charset=utf-?8,/\n let uri = /^data:application\\/json,/\n\n if (charsetUri.test(text) || uri.test(text)) {\n return decodeURIComponent(text.substr(RegExp.lastMatch.length))\n }\n\n if (baseCharsetUri.test(text) || baseUri.test(text)) {\n return fromBase64(text.substr(RegExp.lastMatch.length))\n }\n\n let encoding = text.match(/data:application\\/json;([^,]+),/)[1]\n throw new Error('Unsupported source map encoding ' + encoding)\n }\n\n loadFile(path) {\n this.root = dirname(path)\n if (existsSync(path)) {\n this.mapFile = path\n return readFileSync(path, 'utf-8').toString().trim()\n }\n }\n\n loadMap(file, prev) {\n if (prev === false) return false\n\n if (prev) {\n if (typeof prev === 'string') {\n return prev\n } else if (typeof prev === 'function') {\n let prevPath = prev(file)\n if (prevPath) {\n let map = this.loadFile(prevPath)\n if (!map) {\n throw new Error(\n 'Unable to load previous source map: ' + prevPath.toString()\n )\n }\n return map\n }\n } else if (prev instanceof SourceMapConsumer) {\n return SourceMapGenerator.fromSourceMap(prev).toString()\n } else if (prev instanceof SourceMapGenerator) {\n return prev.toString()\n } else if (this.isMap(prev)) {\n return JSON.stringify(prev)\n } else {\n throw new Error(\n 'Unsupported previous source map format: ' + prev.toString()\n )\n }\n } else if (this.inline) {\n return this.decodeInline(this.annotation)\n } else if (this.annotation) {\n let map = this.annotation\n if (file) map = join(dirname(file), map)\n return this.loadFile(map)\n }\n }\n\n isMap(map) {\n if (typeof map !== 'object') return false\n return (\n typeof map.mappings === 'string' ||\n typeof map._mappings === 'string' ||\n Array.isArray(map.sections)\n )\n }\n}\n\nmodule.exports = PreviousMap\nPreviousMap.default = PreviousMap\n","'use strict'\n\nlet NoWorkResult = require('./no-work-result')\nlet LazyResult = require('./lazy-result')\nlet Document = require('./document')\nlet Root = require('./root')\n\nclass Processor {\n constructor(plugins = []) {\n this.version = '8.4.23'\n this.plugins = this.normalize(plugins)\n }\n\n use(plugin) {\n this.plugins = this.plugins.concat(this.normalize([plugin]))\n return this\n }\n\n process(css, opts = {}) {\n if (\n this.plugins.length === 0 &&\n typeof opts.parser === 'undefined' &&\n typeof opts.stringifier === 'undefined' &&\n typeof opts.syntax === 'undefined'\n ) {\n return new NoWorkResult(this, css, opts)\n } else {\n return new LazyResult(this, css, opts)\n }\n }\n\n normalize(plugins) {\n let normalized = []\n for (let i of plugins) {\n if (i.postcss === true) {\n i = i()\n } else if (i.postcss) {\n i = i.postcss\n }\n\n if (typeof i === 'object' && Array.isArray(i.plugins)) {\n normalized = normalized.concat(i.plugins)\n } else if (typeof i === 'object' && i.postcssPlugin) {\n normalized.push(i)\n } else if (typeof i === 'function') {\n normalized.push(i)\n } else if (typeof i === 'object' && (i.parse || i.stringify)) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n 'PostCSS syntaxes cannot be used as plugins. Instead, please use ' +\n 'one of the syntax/parser/stringifier options as outlined ' +\n 'in your PostCSS runner documentation.'\n )\n }\n } else {\n throw new Error(i + ' is not a PostCSS plugin')\n }\n }\n return normalized\n }\n}\n\nmodule.exports = Processor\nProcessor.default = Processor\n\nRoot.registerProcessor(Processor)\nDocument.registerProcessor(Processor)\n","'use strict'\n\nlet Warning = require('./warning')\n\nclass Result {\n constructor(processor, root, opts) {\n this.processor = processor\n this.messages = []\n this.root = root\n this.opts = opts\n this.css = undefined\n this.map = undefined\n }\n\n toString() {\n return this.css\n }\n\n warn(text, opts = {}) {\n if (!opts.plugin) {\n if (this.lastPlugin && this.lastPlugin.postcssPlugin) {\n opts.plugin = this.lastPlugin.postcssPlugin\n }\n }\n\n let warning = new Warning(text, opts)\n this.messages.push(warning)\n\n return warning\n }\n\n warnings() {\n return this.messages.filter(i => i.type === 'warning')\n }\n\n get content() {\n return this.css\n }\n}\n\nmodule.exports = Result\nResult.default = Result\n","'use strict'\n\nlet Container = require('./container')\n\nlet LazyResult, Processor\n\nclass Root extends Container {\n constructor(defaults) {\n super(defaults)\n this.type = 'root'\n if (!this.nodes) this.nodes = []\n }\n\n removeChild(child, ignore) {\n let index = this.index(child)\n\n if (!ignore && index === 0 && this.nodes.length > 1) {\n this.nodes[1].raws.before = this.nodes[index].raws.before\n }\n\n return super.removeChild(child)\n }\n\n normalize(child, sample, type) {\n let nodes = super.normalize(child)\n\n if (sample) {\n if (type === 'prepend') {\n if (this.nodes.length > 1) {\n sample.raws.before = this.nodes[1].raws.before\n } else {\n delete sample.raws.before\n }\n } else if (this.first !== sample) {\n for (let node of nodes) {\n node.raws.before = sample.raws.before\n }\n }\n }\n\n return nodes\n }\n\n toResult(opts = {}) {\n let lazy = new LazyResult(new Processor(), this, opts)\n return lazy.stringify()\n }\n}\n\nRoot.registerLazyResult = dependant => {\n LazyResult = dependant\n}\n\nRoot.registerProcessor = dependant => {\n Processor = dependant\n}\n\nmodule.exports = Root\nRoot.default = Root\n\nContainer.registerRoot(Root)\n","'use strict'\n\nlet Container = require('./container')\nlet list = require('./list')\n\nclass Rule extends Container {\n constructor(defaults) {\n super(defaults)\n this.type = 'rule'\n if (!this.nodes) this.nodes = []\n }\n\n get selectors() {\n return list.comma(this.selector)\n }\n\n set selectors(values) {\n let match = this.selector ? this.selector.match(/,\\s*/) : null\n let sep = match ? match[0] : ',' + this.raw('between', 'beforeOpen')\n this.selector = values.join(sep)\n }\n}\n\nmodule.exports = Rule\nRule.default = Rule\n\nContainer.registerRule(Rule)\n","'use strict'\n\nconst DEFAULT_RAW = {\n colon: ': ',\n indent: ' ',\n beforeDecl: '\\n',\n beforeRule: '\\n',\n beforeOpen: ' ',\n beforeClose: '\\n',\n beforeComment: '\\n',\n after: '\\n',\n emptyBody: '',\n commentLeft: ' ',\n commentRight: ' ',\n semicolon: false\n}\n\nfunction capitalize(str) {\n return str[0].toUpperCase() + str.slice(1)\n}\n\nclass Stringifier {\n constructor(builder) {\n this.builder = builder\n }\n\n stringify(node, semicolon) {\n /* c8 ignore start */\n if (!this[node.type]) {\n throw new Error(\n 'Unknown AST node type ' +\n node.type +\n '. ' +\n 'Maybe you need to change PostCSS stringifier.'\n )\n }\n /* c8 ignore stop */\n this[node.type](node, semicolon)\n }\n\n document(node) {\n this.body(node)\n }\n\n root(node) {\n this.body(node)\n if (node.raws.after) this.builder(node.raws.after)\n }\n\n comment(node) {\n let left = this.raw(node, 'left', 'commentLeft')\n let right = this.raw(node, 'right', 'commentRight')\n this.builder('/*' + left + node.text + right + '*/', node)\n }\n\n decl(node, semicolon) {\n let between = this.raw(node, 'between', 'colon')\n let string = node.prop + between + this.rawValue(node, 'value')\n\n if (node.important) {\n string += node.raws.important || ' !important'\n }\n\n if (semicolon) string += ';'\n this.builder(string, node)\n }\n\n rule(node) {\n this.block(node, this.rawValue(node, 'selector'))\n if (node.raws.ownSemicolon) {\n this.builder(node.raws.ownSemicolon, node, 'end')\n }\n }\n\n atrule(node, semicolon) {\n let name = '@' + node.name\n let params = node.params ? this.rawValue(node, 'params') : ''\n\n if (typeof node.raws.afterName !== 'undefined') {\n name += node.raws.afterName\n } else if (params) {\n name += ' '\n }\n\n if (node.nodes) {\n this.block(node, name + params)\n } else {\n let end = (node.raws.between || '') + (semicolon ? ';' : '')\n this.builder(name + params + end, node)\n }\n }\n\n body(node) {\n let last = node.nodes.length - 1\n while (last > 0) {\n if (node.nodes[last].type !== 'comment') break\n last -= 1\n }\n\n let semicolon = this.raw(node, 'semicolon')\n for (let i = 0; i < node.nodes.length; i++) {\n let child = node.nodes[i]\n let before = this.raw(child, 'before')\n if (before) this.builder(before)\n this.stringify(child, last !== i || semicolon)\n }\n }\n\n block(node, start) {\n let between = this.raw(node, 'between', 'beforeOpen')\n this.builder(start + between + '{', node, 'start')\n\n let after\n if (node.nodes && node.nodes.length) {\n this.body(node)\n after = this.raw(node, 'after')\n } else {\n after = this.raw(node, 'after', 'emptyBody')\n }\n\n if (after) this.builder(after)\n this.builder('}', node, 'end')\n }\n\n raw(node, own, detect) {\n let value\n if (!detect) detect = own\n\n // Already had\n if (own) {\n value = node.raws[own]\n if (typeof value !== 'undefined') return value\n }\n\n let parent = node.parent\n\n if (detect === 'before') {\n // Hack for first rule in CSS\n if (!parent || (parent.type === 'root' && parent.first === node)) {\n return ''\n }\n\n // `root` nodes in `document` should use only their own raws\n if (parent && parent.type === 'document') {\n return ''\n }\n }\n\n // Floating child without parent\n if (!parent) return DEFAULT_RAW[detect]\n\n // Detect style by other nodes\n let root = node.root()\n if (!root.rawCache) root.rawCache = {}\n if (typeof root.rawCache[detect] !== 'undefined') {\n return root.rawCache[detect]\n }\n\n if (detect === 'before' || detect === 'after') {\n return this.beforeAfter(node, detect)\n } else {\n let method = 'raw' + capitalize(detect)\n if (this[method]) {\n value = this[method](root, node)\n } else {\n root.walk(i => {\n value = i.raws[own]\n if (typeof value !== 'undefined') return false\n })\n }\n }\n\n if (typeof value === 'undefined') value = DEFAULT_RAW[detect]\n\n root.rawCache[detect] = value\n return value\n }\n\n rawSemicolon(root) {\n let value\n root.walk(i => {\n if (i.nodes && i.nodes.length && i.last.type === 'decl') {\n value = i.raws.semicolon\n if (typeof value !== 'undefined') return false\n }\n })\n return value\n }\n\n rawEmptyBody(root) {\n let value\n root.walk(i => {\n if (i.nodes && i.nodes.length === 0) {\n value = i.raws.after\n if (typeof value !== 'undefined') return false\n }\n })\n return value\n }\n\n rawIndent(root) {\n if (root.raws.indent) return root.raws.indent\n let value\n root.walk(i => {\n let p = i.parent\n if (p && p !== root && p.parent && p.parent === root) {\n if (typeof i.raws.before !== 'undefined') {\n let parts = i.raws.before.split('\\n')\n value = parts[parts.length - 1]\n value = value.replace(/\\S/g, '')\n return false\n }\n }\n })\n return value\n }\n\n rawBeforeComment(root, node) {\n let value\n root.walkComments(i => {\n if (typeof i.raws.before !== 'undefined') {\n value = i.raws.before\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n })\n if (typeof value === 'undefined') {\n value = this.raw(node, null, 'beforeDecl')\n } else if (value) {\n value = value.replace(/\\S/g, '')\n }\n return value\n }\n\n rawBeforeDecl(root, node) {\n let value\n root.walkDecls(i => {\n if (typeof i.raws.before !== 'undefined') {\n value = i.raws.before\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n })\n if (typeof value === 'undefined') {\n value = this.raw(node, null, 'beforeRule')\n } else if (value) {\n value = value.replace(/\\S/g, '')\n }\n return value\n }\n\n rawBeforeRule(root) {\n let value\n root.walk(i => {\n if (i.nodes && (i.parent !== root || root.first !== i)) {\n if (typeof i.raws.before !== 'undefined') {\n value = i.raws.before\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n }\n })\n if (value) value = value.replace(/\\S/g, '')\n return value\n }\n\n rawBeforeClose(root) {\n let value\n root.walk(i => {\n if (i.nodes && i.nodes.length > 0) {\n if (typeof i.raws.after !== 'undefined') {\n value = i.raws.after\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n }\n })\n if (value) value = value.replace(/\\S/g, '')\n return value\n }\n\n rawBeforeOpen(root) {\n let value\n root.walk(i => {\n if (i.type !== 'decl') {\n value = i.raws.between\n if (typeof value !== 'undefined') return false\n }\n })\n return value\n }\n\n rawColon(root) {\n let value\n root.walkDecls(i => {\n if (typeof i.raws.between !== 'undefined') {\n value = i.raws.between.replace(/[^\\s:]/g, '')\n return false\n }\n })\n return value\n }\n\n beforeAfter(node, detect) {\n let value\n if (node.type === 'decl') {\n value = this.raw(node, null, 'beforeDecl')\n } else if (node.type === 'comment') {\n value = this.raw(node, null, 'beforeComment')\n } else if (detect === 'before') {\n value = this.raw(node, null, 'beforeRule')\n } else {\n value = this.raw(node, null, 'beforeClose')\n }\n\n let buf = node.parent\n let depth = 0\n while (buf && buf.type !== 'root') {\n depth += 1\n buf = buf.parent\n }\n\n if (value.includes('\\n')) {\n let indent = this.raw(node, null, 'indent')\n if (indent.length) {\n for (let step = 0; step < depth; step++) value += indent\n }\n }\n\n return value\n }\n\n rawValue(node, prop) {\n let value = node[prop]\n let raw = node.raws[prop]\n if (raw && raw.value === value) {\n return raw.raw\n }\n\n return value\n }\n}\n\nmodule.exports = Stringifier\nStringifier.default = Stringifier\n","'use strict'\n\nlet Stringifier = require('./stringifier')\n\nfunction stringify(node, builder) {\n let str = new Stringifier(builder)\n str.stringify(node)\n}\n\nmodule.exports = stringify\nstringify.default = stringify\n","'use strict'\n\nmodule.exports.isClean = Symbol('isClean')\n\nmodule.exports.my = Symbol('my')\n","'use strict'\n\nconst SINGLE_QUOTE = \"'\".charCodeAt(0)\nconst DOUBLE_QUOTE = '\"'.charCodeAt(0)\nconst BACKSLASH = '\\\\'.charCodeAt(0)\nconst SLASH = '/'.charCodeAt(0)\nconst NEWLINE = '\\n'.charCodeAt(0)\nconst SPACE = ' '.charCodeAt(0)\nconst FEED = '\\f'.charCodeAt(0)\nconst TAB = '\\t'.charCodeAt(0)\nconst CR = '\\r'.charCodeAt(0)\nconst OPEN_SQUARE = '['.charCodeAt(0)\nconst CLOSE_SQUARE = ']'.charCodeAt(0)\nconst OPEN_PARENTHESES = '('.charCodeAt(0)\nconst CLOSE_PARENTHESES = ')'.charCodeAt(0)\nconst OPEN_CURLY = '{'.charCodeAt(0)\nconst CLOSE_CURLY = '}'.charCodeAt(0)\nconst SEMICOLON = ';'.charCodeAt(0)\nconst ASTERISK = '*'.charCodeAt(0)\nconst COLON = ':'.charCodeAt(0)\nconst AT = '@'.charCodeAt(0)\n\nconst RE_AT_END = /[\\t\\n\\f\\r \"#'()/;[\\\\\\]{}]/g\nconst RE_WORD_END = /[\\t\\n\\f\\r !\"#'():;@[\\\\\\]{}]|\\/(?=\\*)/g\nconst RE_BAD_BRACKET = /.[\\n\"'(/\\\\]/\nconst RE_HEX_ESCAPE = /[\\da-f]/i\n\nmodule.exports = function tokenizer(input, options = {}) {\n let css = input.css.valueOf()\n let ignore = options.ignoreErrors\n\n let code, next, quote, content, escape\n let escaped, escapePos, prev, n, currentToken\n\n let length = css.length\n let pos = 0\n let buffer = []\n let returned = []\n\n function position() {\n return pos\n }\n\n function unclosed(what) {\n throw input.error('Unclosed ' + what, pos)\n }\n\n function endOfFile() {\n return returned.length === 0 && pos >= length\n }\n\n function nextToken(opts) {\n if (returned.length) return returned.pop()\n if (pos >= length) return\n\n let ignoreUnclosed = opts ? opts.ignoreUnclosed : false\n\n code = css.charCodeAt(pos)\n\n switch (code) {\n case NEWLINE:\n case SPACE:\n case TAB:\n case CR:\n case FEED: {\n next = pos\n do {\n next += 1\n code = css.charCodeAt(next)\n } while (\n code === SPACE ||\n code === NEWLINE ||\n code === TAB ||\n code === CR ||\n code === FEED\n )\n\n currentToken = ['space', css.slice(pos, next)]\n pos = next - 1\n break\n }\n\n case OPEN_SQUARE:\n case CLOSE_SQUARE:\n case OPEN_CURLY:\n case CLOSE_CURLY:\n case COLON:\n case SEMICOLON:\n case CLOSE_PARENTHESES: {\n let controlChar = String.fromCharCode(code)\n currentToken = [controlChar, controlChar, pos]\n break\n }\n\n case OPEN_PARENTHESES: {\n prev = buffer.length ? buffer.pop()[1] : ''\n n = css.charCodeAt(pos + 1)\n if (\n prev === 'url' &&\n n !== SINGLE_QUOTE &&\n n !== DOUBLE_QUOTE &&\n n !== SPACE &&\n n !== NEWLINE &&\n n !== TAB &&\n n !== FEED &&\n n !== CR\n ) {\n next = pos\n do {\n escaped = false\n next = css.indexOf(')', next + 1)\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos\n break\n } else {\n unclosed('bracket')\n }\n }\n escapePos = next\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1\n escaped = !escaped\n }\n } while (escaped)\n\n currentToken = ['brackets', css.slice(pos, next + 1), pos, next]\n\n pos = next\n } else {\n next = css.indexOf(')', pos + 1)\n content = css.slice(pos, next + 1)\n\n if (next === -1 || RE_BAD_BRACKET.test(content)) {\n currentToken = ['(', '(', pos]\n } else {\n currentToken = ['brackets', content, pos, next]\n pos = next\n }\n }\n\n break\n }\n\n case SINGLE_QUOTE:\n case DOUBLE_QUOTE: {\n quote = code === SINGLE_QUOTE ? \"'\" : '\"'\n next = pos\n do {\n escaped = false\n next = css.indexOf(quote, next + 1)\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos + 1\n break\n } else {\n unclosed('string')\n }\n }\n escapePos = next\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1\n escaped = !escaped\n }\n } while (escaped)\n\n currentToken = ['string', css.slice(pos, next + 1), pos, next]\n pos = next\n break\n }\n\n case AT: {\n RE_AT_END.lastIndex = pos + 1\n RE_AT_END.test(css)\n if (RE_AT_END.lastIndex === 0) {\n next = css.length - 1\n } else {\n next = RE_AT_END.lastIndex - 2\n }\n\n currentToken = ['at-word', css.slice(pos, next + 1), pos, next]\n\n pos = next\n break\n }\n\n case BACKSLASH: {\n next = pos\n escape = true\n while (css.charCodeAt(next + 1) === BACKSLASH) {\n next += 1\n escape = !escape\n }\n code = css.charCodeAt(next + 1)\n if (\n escape &&\n code !== SLASH &&\n code !== SPACE &&\n code !== NEWLINE &&\n code !== TAB &&\n code !== CR &&\n code !== FEED\n ) {\n next += 1\n if (RE_HEX_ESCAPE.test(css.charAt(next))) {\n while (RE_HEX_ESCAPE.test(css.charAt(next + 1))) {\n next += 1\n }\n if (css.charCodeAt(next + 1) === SPACE) {\n next += 1\n }\n }\n }\n\n currentToken = ['word', css.slice(pos, next + 1), pos, next]\n\n pos = next\n break\n }\n\n default: {\n if (code === SLASH && css.charCodeAt(pos + 1) === ASTERISK) {\n next = css.indexOf('*/', pos + 2) + 1\n if (next === 0) {\n if (ignore || ignoreUnclosed) {\n next = css.length\n } else {\n unclosed('comment')\n }\n }\n\n currentToken = ['comment', css.slice(pos, next + 1), pos, next]\n pos = next\n } else {\n RE_WORD_END.lastIndex = pos + 1\n RE_WORD_END.test(css)\n if (RE_WORD_END.lastIndex === 0) {\n next = css.length - 1\n } else {\n next = RE_WORD_END.lastIndex - 2\n }\n\n currentToken = ['word', css.slice(pos, next + 1), pos, next]\n buffer.push(currentToken)\n pos = next\n }\n\n break\n }\n }\n\n pos++\n return currentToken\n }\n\n function back(token) {\n returned.push(token)\n }\n\n return {\n back,\n nextToken,\n endOfFile,\n position\n }\n}\n","/* eslint-disable no-console */\n'use strict'\n\nlet printed = {}\n\nmodule.exports = function warnOnce(message) {\n if (printed[message]) return\n printed[message] = true\n\n if (typeof console !== 'undefined' && console.warn) {\n console.warn(message)\n }\n}\n","'use strict'\n\nclass Warning {\n constructor(text, opts = {}) {\n this.type = 'warning'\n this.text = text\n\n if (opts.node && opts.node.source) {\n let range = opts.node.rangeBy(opts)\n this.line = range.start.line\n this.column = range.start.column\n this.endLine = range.end.line\n this.endColumn = range.end.column\n }\n\n for (let opt in opts) this[opt] = opts[opt]\n }\n\n toString() {\n if (this.node) {\n return this.node.error(this.text, {\n plugin: this.plugin,\n index: this.index,\n word: this.word\n }).message\n }\n\n if (this.plugin) {\n return this.plugin + ': ' + this.text\n }\n\n return this.text\n }\n}\n\nmodule.exports = Warning\nWarning.default = Warning\n","export enum PricingPeriod {\n MONTHLY = 'MONTHLY',\n ANNUAL = 'ANNUAL'\n}\n","import {\n PricingStrategy,\n PricingTier\n} from '@atlassiansox/asc-product-catalog';\n\nimport { PricingCalculation } from './pricing-calculation';\n\nexport type PricingBreakdown = ReadonlyArray;\n\nexport type PricingBreakdownItem = {\n readonly units: number;\n readonly unitPrice: number;\n readonly tier: PricingTier;\n};\n\nexport function reduceBreakdownToPricingCalculation(\n { total, currencyIsoCode, breakdown, pricingPlan }: PricingCalculation,\n { tier, units, unitPrice }: PricingBreakdownItem\n) {\n return {\n currencyIsoCode,\n breakdown,\n pricingPlan,\n total: updateTotal(total, tier.pricingStrategy, units, unitPrice)\n };\n}\n\nfunction updateTotal(\n total: number,\n pricingStrategy: PricingStrategy,\n units: number,\n unitPrice: number\n) {\n switch (pricingStrategy) {\n case PricingStrategy.FIXED_COST:\n return unitPrice;\n case PricingStrategy.MARGINAL_PER_UNIT:\n return total + units * unitPrice;\n case PricingStrategy.PER_UNIT:\n return units * unitPrice;\n }\n}\n","import { PricingTier } from '@atlassiansox/asc-product-catalog';\nimport { Predicate } from './predicate';\n\nexport function createPricingTierIsInUnitLimitsPredicate(\n units: number\n): Predicate {\n return ({ unitLimitLower, unitLimitUpper }) =>\n (unitLimitLower === null || units >= unitLimitLower) &&\n (unitLimitUpper === null || units <= unitLimitUpper);\n}\n\nexport function getUnitPrice(\n tier: PricingTier,\n currencyIsoCode: string\n): number {\n const locale = tier.prices.find(\n ({ currency }) => currency === currencyIsoCode\n );\n\n return locale ? locale.unitPrice : -1;\n}\n","import {\n PricingPlan as RawPricingPlan,\n PricingPlans as RawPricingPlans,\n PricingStrategy,\n PricingTierPrice\n} from '@atlassiansox/asc-product-catalog';\nimport { PricingPeriod } from '../models';\n\nexport type PricingTier = {\n readonly starter: boolean;\n readonly pricingStrategy: PricingStrategy;\n readonly unitDescription: string;\n readonly unitLimitLower: number;\n readonly unitLimitUpper: number | null;\n readonly prices: ReadonlyArray;\n};\n\nexport type PricingPlan = ReadonlyArray;\n\nexport type PricingPlans = {\n readonly [key in PricingPeriod]?: PricingPlan;\n};\n\nexport function sanitizePricingPlans({\n monthly,\n annual\n}: RawPricingPlans): PricingPlans {\n return {\n [PricingPeriod.MONTHLY]: sanitizePricingPlan(monthly),\n [PricingPeriod.ANNUAL]: sanitizePricingPlan(annual)\n };\n}\n\nconst MIN_UNIT_LIMIT = 1;\n\n// the first tier starts with a lower unit limit of 0, which for WAC needs to be 1\nconst correctFirstTierUnitLimitLower = (\n priceTiers: RawPricingPlan\n): PricingPlan => {\n const { unitLimitLower } = priceTiers[0];\n\n const correctedUnitLimitLower = Math.max(\n unitLimitLower || MIN_UNIT_LIMIT,\n MIN_UNIT_LIMIT\n );\n\n return [\n {\n ...priceTiers[0],\n unitLimitLower: correctedUnitLimitLower\n } as PricingTier\n ].concat(priceTiers.slice(1) as PricingTier[]);\n};\n\nexport function sanitizePricingPlan(\n pricingPlan?: RawPricingPlan\n): PricingPlan | undefined {\n if (pricingPlan) {\n return correctFirstTierUnitLimitLower(pricingPlan);\n } else {\n return undefined;\n }\n}\n\n// import { PriceTier } from '@atlassian/bxp-price-calculation';\n\n// const MAX_UNIT_LIMIT = 5000;\n\n// // pricing tiers out of HAMS have data that is invalid\n// // in various ways for displaying pricing on WAC\n\n// // these functions each make a transformation that makes valid\n// // the price tier data for our use case\n\n// // it doesn't make sense to have a unit limit below one on any tier\n// // for display on WAC, also the max tier limit shown should be 5000\n// const clampUnitLimits = (priceTiers: PriceTier[]): PriceTier[] =>\n// priceTiers.map(priceTier => {\n// const { unitLimitLower, unitLimitUpper } = priceTier;\n\n// const [clampedUnitLimitLower, clampedUnitLimitUpper] = [\n// unitLimitLower,\n// unitLimitUpper\n// ].map(unitLimit =>\n// Math.max(Math.min(unitLimit, MAX_UNIT_LIMIT), MIN_UNIT_LIMIT)\n// );\n\n// priceTier.unitLimitLower = clampedUnitLimitLower;\n// priceTier.unitLimitUpper = clampedUnitLimitUpper;\n\n// return priceTier;\n// });\n\n// // sometimes the first tier has a lower and upper unit limit of -987654321\n// // so drop this tier entirely\n// const dropInvalidFirstTier = (priceTiers: PriceTier[]): PriceTier[] => {\n// const { unitLimitLower, unitLimitUpper } = priceTiers[0];\n\n// return unitLimitLower === -987654321 &&\n// unitLimitLower === unitLimitUpper &&\n// priceTiers.length > 1\n// ? priceTiers.slice(1)\n// : priceTiers;\n// };\n\n// export default function(priceTiers: PriceTier[]): PriceTier[] {\n// return [\n// dropInvalidFirstTier,\n// clampUnitLimits,\n// correctFirstTierUnitLimitLower\n// ].reduce((tiers, tiersTransformFn) => tiersTransformFn(tiers), priceTiers);\n// }\n","import {\n CCPPricingPlanContent,\n CCPPricingPlanTier,\n PricingStrategy,\n PricingTier\n} from '@atlassiansox/asc-product-catalog';\nimport { PricingPlan, PricingPlans } from '.';\nimport { PricingPeriod } from '../models';\n\nconst HAMS_PRICING_STRATEGY_BY_CCP_PRICING_POLICY = {\n ['BLOCK']: PricingStrategy.FIXED_COST,\n ['MARGINAL_PER_UNIT']: PricingStrategy.MARGINAL_PER_UNIT,\n ['PER_UNIT']: PricingStrategy.PER_UNIT\n};\n\nconst convertCCPPricingStrategyToHAMS = (\n ccpPricingPolicy: string\n): PricingStrategy => {\n const hamsPricingStrategy =\n HAMS_PRICING_STRATEGY_BY_CCP_PRICING_POLICY[\n ccpPricingPolicy as 'BLOCK' | 'MARGINAL_PER_UNIT' | 'PER_UNIT'\n ];\n\n if (!hamsPricingStrategy) {\n throw new Error(\n `Could not find HAMS pricing strategy to match CCP pricing policy: \"${ccpPricingPolicy}\"`\n );\n }\n\n return hamsPricingStrategy;\n};\n\nconst convertCCPTiersToHAMS = (\n ccpTiers: CCPPricingPlanTier[],\n chargeElement: string,\n currency: string\n): PricingTier[] =>\n ccpTiers.map(ccpTier => ({\n starter: false,\n pricingStrategy: convertCCPPricingStrategyToHAMS(ccpTier.policy),\n unitDescription: chargeElement,\n unitLimitLower: ccpTier.floor,\n unitLimitUpper: ccpTier.ceiling,\n prices: [\n {\n currency,\n unitPrice: ccpTier.policy.includes('UNIT')\n ? ccpTier.unitAmount\n : ccpTier.flatAmount\n }\n ]\n }));\n\nconst convertCCPPricingPlansToHAMS = (\n pricingPlans: CCPPricingPlanContent[]\n): PricingPlans => {\n const [monthlyCCP, annualCCP] = ['MONTH', 'YEAR'].map(primaryCycle =>\n pricingPlans.find(\n pricingPlan => pricingPlan.primaryCycle_interval === primaryCycle\n )\n );\n\n const [monthly, annual] = [monthlyCCP, annualCCP].map(ccpPPContent => {\n if (!ccpPPContent) {\n return undefined;\n }\n\n const { tiers, chargeElement } = ccpPPContent.items[0];\n return convertCCPTiersToHAMS(tiers, chargeElement, ccpPPContent.currency);\n });\n\n return {\n [PricingPeriod.MONTHLY]: monthly as PricingPlan,\n [PricingPeriod.ANNUAL]: annual as PricingPlan\n };\n};\n\nexport { convertCCPPricingPlansToHAMS };\n","import { PricingPlan } from '@atlassiansox/asc-product-catalog';\nimport { PricingStrategy, PricingTier } from '@atlassiansox/asc-product-catalog';\n\nimport { PricingBreakdown, PricingBreakdownItem } from '../models';\nimport { Predicate } from './predicate';\nimport { getUnitPrice } from './pricing-tier';\n\nexport type PricingTierToPricingBreakdownItemTransform = (\n tier: PricingTier,\n index: number\n) => PricingBreakdownItem;\n\nexport function createMarginalPerUnitBreakdown(\n pricingPlan: PricingPlan,\n units: number,\n currencyIsoCode: string\n): PricingBreakdown {\n return pricingPlan\n .filter(createPricingTierIsMarginalPerUnitStrategy(units))\n .sort(comparePricingTierByUnitLimitLower)\n .map(\n createPricingTierToPricingBreakdownItemTransform(units, currencyIsoCode)\n );\n}\n\nexport function comparePricingTierByUnitLimitLower(\n { unitLimitLower: firstLimit }: PricingTier,\n { unitLimitLower: secondLimit }: PricingTier\n): number {\n if (firstLimit !== null && secondLimit !== null) {\n return firstLimit - secondLimit;\n } else if (firstLimit === null) {\n return 1;\n } else {\n return -1;\n }\n}\n\nexport function createPricingTierToPricingBreakdownItemTransform(\n units: number,\n currencyIsoCode: string\n): PricingTierToPricingBreakdownItemTransform {\n return (tier, index) => {\n const unitPrice = getUnitPrice(tier, currencyIsoCode);\n const ignoreUnitLimitLower = index === 0;\n \n if (ignoreUnitLimitLower) {\n return {\n units: Math.min(units, tier.unitLimitUpper || Infinity),\n unitPrice,\n tier: {\n ...tier,\n unitLimitLower: 1\n }\n };\n } else {\n const unitLimitLower = tier.unitLimitLower || 1;\n if (units < unitLimitLower) {\n return { units: 0, unitPrice, tier };\n } else {\n return {\n units:\n Math.min(units, tier.unitLimitUpper || Infinity) -\n unitLimitLower +\n 1,\n unitPrice,\n tier\n };\n }\n }\n };\n}\n\nfunction createPricingTierIsMarginalPerUnitStrategy(\n units: number\n): Predicate {\n return ({ pricingStrategy, unitLimitLower }) =>\n pricingStrategy === PricingStrategy.MARGINAL_PER_UNIT &&\n (unitLimitLower === null || units >= unitLimitLower);\n}\n","import {\n PricingStrategy,\n PricingTierPrice,\n ProductKey\n} from '@atlassiansox/asc-product-catalog';\nimport {\n PricingBreakdown,\n PricingCalculation,\n PricingPeriod,\n reduceBreakdownToPricingCalculation\n} from './models';\nimport { IProductPricingStore } from './product-pricing-store';\nimport {\n createPricingTierIsInUnitLimitsPredicate,\n getUnitPrice,\n PricingPlan\n} from './utils';\nimport { createMarginalPerUnitBreakdown } from './utils/marginal-per-unit';\n\nconst DEFAULT_CURRENCY = 'USD';\n\nexport type PricingCalculatorOptions = {\n readonly productPricingStore: IProductPricingStore;\n};\n\nexport class PricingCalculator {\n private readonly store: IProductPricingStore;\n\n constructor({ productPricingStore }: PricingCalculatorOptions) {\n this.store = productPricingStore;\n }\n\n async calculatePrice({\n productKey,\n units,\n period,\n currencyIsoCode\n }: GetPriceCalculationOptions): Promise {\n const pricingPlan = await this.getPricingPlan({ productKey, period });\n\n if (\n !pricingPlan[0].prices.some(\n ({ currency }) => currency === currencyIsoCode\n )\n ) {\n currencyIsoCode = DEFAULT_CURRENCY;\n }\n\n return await this.calculatePriceWithPricingPlan({\n units,\n currencyIsoCode,\n pricingPlan\n });\n }\n\n async calculatePriceWithPricingPlan({\n units,\n currencyIsoCode,\n pricingPlan\n }: GetPriceCalculationWithPricingPlanOptions): Promise {\n const breakdown = await this.getBreakdown({\n pricingPlan,\n units,\n currencyIsoCode\n });\n\n return breakdown.reduce(reduceBreakdownToPricingCalculation, {\n currencyIsoCode,\n breakdown,\n pricingPlan,\n total: 0\n });\n }\n\n private async getPricingPlan({\n productKey,\n period\n }: GetPricingPlanOptions): Promise {\n const {\n [PricingPeriod.MONTHLY]: monthly,\n [PricingPeriod.ANNUAL]: annual\n } = await this.store.getPricingPlans(productKey);\n\n // there are no \"annual free\" pricing plans but consumers of this package need to request\n // free pricing along with annual non-free pricing in one call so we need to return the\n // free monthly pricing plan always when the product key ends in '.free'\n const adjPeriod = productKey.endsWith('.free')\n ? PricingPeriod.MONTHLY\n : period;\n\n switch (adjPeriod) {\n case PricingPeriod.MONTHLY:\n if (monthly) {\n return monthly;\n } else {\n throw new Error(\n `Monthly pricing plan does not exist for product key: ${productKey}`\n );\n }\n case PricingPeriod.ANNUAL:\n if (annual) {\n return annual;\n } else {\n throw new Error(\n `Annual pricing plan does not exist for product key: ${productKey}`\n );\n }\n }\n }\n\n private async getBreakdown({\n pricingPlan,\n units,\n currencyIsoCode\n }: GetBreakdownOptions): Promise {\n const selectedTier = pricingPlan.find(\n createPricingTierIsInUnitLimitsPredicate(units)\n );\n if (selectedTier) {\n switch (selectedTier.pricingStrategy) {\n case PricingStrategy.MARGINAL_PER_UNIT:\n return createMarginalPerUnitBreakdown(\n pricingPlan,\n units,\n currencyIsoCode\n );\n default:\n return [\n {\n units,\n unitPrice: getUnitPrice(selectedTier, currencyIsoCode),\n tier: selectedTier\n }\n ];\n }\n } else {\n throw new Error(`Could not find pricing plan tier for ${units} units`);\n }\n }\n}\n\nexport type GetPriceCalculationOptions = {\n readonly productKey: ProductKey;\n readonly units: number;\n readonly period: PricingPeriod;\n readonly currencyIsoCode: string;\n};\n\nexport type GetPriceCalculationWithPricingPlanOptions = {\n readonly units: number;\n readonly currencyIsoCode: string;\n readonly pricingPlan: PricingPlan;\n};\n\nexport type GetBreakdownOptions = {\n readonly pricingPlan: PricingPlan;\n readonly units: number;\n readonly currencyIsoCode: string;\n};\n\nexport type GetPricingPlanOptions = {\n readonly productKey: ProductKey;\n readonly period: PricingPeriod;\n};\n\nexport { PricingStrategy, PricingTierPrice, ProductKey };\n","import {\n ICCPProductCatalogClient,\n IProductCatalogClient,\n OfferingSKU,\n OfferingSKUMap,\n ProductKey,\n ProductKeyMap\n} from '@atlassiansox/asc-product-catalog';\nimport { AddonProduct } from './models';\nimport {\n convertCCPPricingPlansToHAMS,\n PricingPlans,\n sanitizePricingPlans\n} from './utils';\n\nexport type ProductPricingStoreOptions = {\n readonly productCatalogClient: IProductCatalogClient;\n readonly ccpProductCatalogClient: ICCPProductCatalogClient;\n};\n\nexport interface IProductPricingStore {\n getPricingPlans(productKey: ProductKey): Promise;\n getProducts(\n productKeys: ReadonlyArray\n ): Promise>;\n searchAddons(\n parentProductKey: string,\n query: string,\n limit: number\n ): Promise;\n getOfferings(\n offeringSKUs: ReadonlyArray\n ): Promise>;\n}\n\nexport class ProductPricingStore implements IProductPricingStore {\n private readonly productCatalogClient: IProductCatalogClient;\n private readonly ccpProductCatalogClient: ICCPProductCatalogClient;\n private readonly cache: Map>;\n\n constructor({\n productCatalogClient,\n ccpProductCatalogClient\n }: ProductPricingStoreOptions) {\n this.productCatalogClient = productCatalogClient;\n this.ccpProductCatalogClient = ccpProductCatalogClient;\n this.cache = new Map();\n }\n\n public async getPricingPlans(productKey: ProductKey): Promise {\n const pricingPlans = (await this.getProducts([productKey]))[productKey];\n if (pricingPlans) {\n return pricingPlans;\n } else {\n throw new Error(\n `Could not find pricing plans for product key: ${productKey}`\n );\n }\n }\n\n public async getProducts(\n productKeys: ReadonlyArray\n ): Promise> {\n const uncachedProductKeys = productKeys.filter(this.isProductKeyUncached);\n\n if (uncachedProductKeys.length > 0) {\n this.fetchProducts(uncachedProductKeys);\n return this.getProducts(productKeys);\n } else {\n return this.getCachedProducts(productKeys);\n }\n }\n\n public async getOfferings(\n offeringSKUs: ReadonlyArray\n ): Promise> {\n const uncachedOfferingSKUs = offeringSKUs.filter(\n this.isOfferingSKUUncached\n );\n\n if (uncachedOfferingSKUs.length > 0) {\n this.fetchOfferings(uncachedOfferingSKUs);\n return this.getOfferings(offeringSKUs);\n } else {\n return this.getCachedOfferings(offeringSKUs);\n }\n }\n\n public async searchAddons(\n parentProductKey: string,\n query: string,\n limit = 100\n ): Promise {\n const addons = await this.productCatalogClient.searchAddons({\n parentProductKey,\n query,\n limit\n });\n\n return addons.map(addon => ({\n ...addon,\n pricing: sanitizePricingPlans(addon.pricing)\n }));\n }\n\n private fetchProducts(productKeys: ReadonlyArray): void {\n const pricingPromise = this.productCatalogClient.getPricing({\n productKeys\n });\n productKeys.forEach(productKey => {\n this.cache.set(\n productKey,\n new Promise(async resolve => {\n const pricing = await pricingPromise;\n const pricingPlans = pricing[productKey];\n if (pricingPlans) {\n resolve(sanitizePricingPlans(pricingPlans));\n } else {\n resolve(null);\n }\n })\n );\n });\n }\n\n private fetchOfferings(offeringSKUs: ReadonlyArray): void {\n const pricingPromise = this.ccpProductCatalogClient.getOfferingsBySKU({\n offeringSKUs\n });\n\n offeringSKUs.forEach(offeringSKU => {\n this.cache.set(\n offeringSKU,\n new Promise(\n async (resolve: (value: PricingPlans | null) => void, reject) => {\n const pricing = await pricingPromise;\n const offering = pricing[offeringSKU];\n\n let ccpPricingPlans;\n if (offering && offering.fields.defaultPricingPlans) {\n ccpPricingPlans = offering.fields.defaultPricingPlans.map(\n ccpPPContent => ccpPPContent.fields\n );\n }\n\n if (ccpPricingPlans && ccpPricingPlans.length > 0) {\n try {\n resolve(convertCCPPricingPlansToHAMS(ccpPricingPlans));\n } catch (e) {\n reject(e);\n }\n } else {\n resolve(null);\n }\n }\n )\n );\n });\n }\n\n private readonly isProductKeyUncached = (productKey: ProductKey): boolean =>\n !this.cache.has(productKey);\n\n private readonly isOfferingSKUUncached = (\n offeringSKU: OfferingSKU\n ): boolean => !this.cache.has(offeringSKU);\n\n private readonly getCachedProducts = async (\n productKeys: ReadonlyArray\n ): Promise> => {\n const products = await Promise.all(\n productKeys.map(async productKey => {\n const pricingPlans = await this.cache.get(productKey);\n return { productKey, pricingPlans };\n })\n );\n\n return products\n .filter(({ pricingPlans }) => !!pricingPlans)\n .reduce((result, { productKey, pricingPlans }) => {\n return { ...result, [productKey]: pricingPlans };\n }, {});\n };\n\n private readonly getCachedOfferings = async (\n offeringSKUs: ReadonlyArray\n ): Promise> => {\n const offerings = await Promise.all(\n offeringSKUs.map(async offeringSKU => {\n const pricingPlans = await this.cache.get(offeringSKU);\n return { offeringSKU, pricingPlans };\n })\n );\n\n return offerings\n .filter(({ pricingPlans }) => !!pricingPlans)\n .reduce((result, { offeringSKU, pricingPlans }) => {\n return { ...result, [offeringSKU]: pricingPlans };\n }, {});\n };\n}\n","export type UnsucessfulFetchErrorOptions = {\n readonly message?: string;\n readonly response: Response;\n};\n\nexport class UnsucessfulFetchError extends Error {\n public readonly response: Response;\n\n public constructor({ message, response }: UnsucessfulFetchErrorOptions) {\n super(message ?? response.statusText);\n this.name = UnsucessfulFetchError.name;\n this.response = response;\n }\n\n public get url(): string {\n return this.response.url;\n }\n\n public get status(): number {\n return this.response.status;\n }\n}\n\nexport function isUnsucessfulFetchError(\n value: unknown\n): value is UnsucessfulFetchError {\n return (value as UnsucessfulFetchError).name === UnsucessfulFetchError.name;\n}\n","import { serialize } from 'cookie';\n\nimport { Cookie } from '../models';\n\nexport function serializeCookie({ name, value }: Cookie): string {\n return serialize(name, value);\n}\n\nexport function mapCookieToHeaders(cookie?: Cookie): HeadersInit {\n if (cookie) {\n return { cookie: serializeCookie(cookie) };\n } else {\n return {};\n }\n}\n","import { isUndefined } from '@atlassiansox/bxp-shared-utils';\n\nexport type Headers = {\n readonly [name: string]: string;\n};\n\nexport function createHeaders(headers: {\n readonly [name: string]: string | number | boolean | undefined;\n}): Headers {\n return Object.keys(headers).reduce((result, name) => {\n const value = headers[name];\n if (!isUndefined(value)) {\n return {\n ...result,\n [name]: value.toString()\n };\n } else {\n return result;\n }\n }, {});\n}\n","import { UnsucessfulFetchError } from '../errors';\n\nexport async function mapResponseToText(response: Response): Promise {\n if (response.ok) {\n return await response.text();\n } else {\n throw new UnsucessfulFetchError({\n message: await mapResponseToMessage(response),\n response\n });\n }\n}\n\nexport async function mapResponseToJson(\n response: Response\n): Promise {\n if (response.ok) {\n return await response.json();\n } else {\n throw new UnsucessfulFetchError({\n message: await mapResponseToMessage(response),\n response\n });\n }\n}\n\nasync function mapResponseToMessage(response: Response): Promise {\n const { statusText } = response;\n const message = await response.text();\n if (message.length > 0) {\n return `${statusText} ${message}`;\n } else {\n return statusText;\n }\n}\n","import { isUndefined } from '@atlassiansox/bxp-shared-utils';\n\nexport type CreateUrlOptions = {\n readonly baseUrl?: string;\n readonly path?: string;\n readonly query?: Query;\n};\n\nexport type Query = Readonly<\n Record\n>;\n\nexport function createUrl({\n baseUrl = '',\n path = '',\n query\n}: CreateUrlOptions = {}): string {\n const queryString = mapQueryToQueryString(query);\n if (queryString) {\n return `${baseUrl}${path}?${queryString}`;\n } else {\n return `${baseUrl}${path}`;\n }\n}\n\nfunction mapQueryToQueryString(query: Query = {}): string | null {\n const queryString = Object.keys(query)\n .reduce((pairs, name) => {\n const value = query[name];\n if (isUndefined(value)) {\n return pairs;\n } else if (\n typeof value === 'string' ||\n typeof value === 'number' ||\n typeof value === 'boolean'\n ) {\n return [\n ...pairs,\n `${encodeURIComponent(name)}=${encodeURIComponent(value)}`\n ];\n } else {\n return [\n ...pairs,\n value.map((item) => mapQueryToQueryString({ [name]: item })).join('&')\n ];\n }\n }, [])\n .join('&');\n\n if (queryString.length > 0) {\n return queryString;\n } else {\n return null;\n }\n}\n","export const DEFAULT_HOST = 'cdn-mr.contentful.com';\n\nexport const contentTypeIds = {\n ccpProduct: '5SYgp4uHBcLFL1K0EsCY4l',\n ccpOffering: '31uDFGQ9rMyZpBgP4oexja',\n ccpPricingPlan: '4mPAebkrFzFAhwblQ6PmRx'\n};\n","export enum PricingStrategy {\n FIXED_COST = 'FIXED_COST',\n MARGINAL_PER_UNIT = 'MARGINAL_PER_UNIT',\n PER_UNIT = 'PER_UNIT'\n}\n\nexport function isPricingStrategy(value: string): value is PricingStrategy {\n switch (value) {\n case PricingStrategy.FIXED_COST:\n case PricingStrategy.MARGINAL_PER_UNIT:\n case PricingStrategy.PER_UNIT:\n return true;\n default:\n return false;\n }\n}\n\nexport function parsePricingStrategy(value: string): PricingStrategy {\n if (isPricingStrategy(value)) {\n return value;\n } else {\n throw new SyntaxError(`${value} is not a valid PricingStrategy`);\n }\n}\n","import * as Contentful from 'contentful';\n\nimport {\n parsePricingStrategy,\n PricingPlan,\n PricingTier,\n PricingTierPrice\n} from './models';\n\nexport type ProductContentSkeleton = {\n contentTypeId: string;\n fields: ProductContent;\n};\n\nexport type ProductContent = {\n name?: Contentful.EntryFields.Text;\n platform?: Contentful.EntrySkeletonType;\n catalogItemId?: Contentful.EntryFields.Text;\n description: Contentful.EntryFields.Text;\n productFamily?: Contentful.EntryFields.Text;\n productType?: Contentful.EntryFields.Text;\n unitLabel?: Contentful.EntryFields.Text;\n billingType?: Contentful.EntryFields.Text;\n vendor?: Contentful.EntrySkeletonType;\n parentProducts?: ProductContent[];\n parentProductName?: Contentful.EntryFields.Text;\n defaultPricingPlanMonthly: Contentful.EntrySkeletonType | null;\n defaultPricingPlanYearly: Contentful.EntrySkeletonType | null;\n defaultStdPricingPlanMonthly: Contentful.EntrySkeletonType | null;\n defaultStdPricingPlanYearly: Contentful.EntrySkeletonType | null;\n defaultFreePricingPlanMonthly: Contentful.EntrySkeletonType | null;\n defaultFreePricingPlanYearly: Contentful.EntrySkeletonType | null;\n defaultPremiumPricingPlanMonthly: Contentful.EntrySkeletonType | null;\n defaultPremiumPricingPlanYearly: Contentful.EntrySkeletonType | null;\n defaultEnterprisePricingPlanMonthly: Contentful.EntrySkeletonType | null;\n defaultEnterprisePricingPlanYearly: Contentful.EntrySkeletonType | null;\n key?: Contentful.EntryFields.Text;\n sourceSequence?: Contentful.EntryFields.Number;\n};\n\nexport type PlatformContent = {\n readonly name?: Contentful.EntryFields.Text;\n};\n\nexport type VendorContent = {\n readonly name?: Contentful.EntryFields.Text;\n};\nexport type PricingPlanContent = {\n configuration: PricingPlanContentConfigurationItem[];\n product?: Contentful.EntrySkeletonType;\n periodUnit?: string;\n periodCount?: number;\n status?: string;\n edition?: string;\n pricingPlanId?: string;\n sourceSequence?: number;\n};\n\nexport type PricingPlanContentConfiguration =\n ReadonlyArray;\n\nexport type PricingPlanContentConfigurationItem = {\n readonly starter: boolean;\n readonly pricing_strategy: string;\n readonly unit_description: string;\n readonly unit_limit_lower: number | null;\n readonly unit_limit_upper: number | null;\n readonly prices: ReadonlyArray;\n};\n\nexport type PricingPlanContentConfigurationItemPrice = {\n readonly currency: string;\n readonly unit_price: number;\n};\n\nexport function mapPricingPlanContentEntryToPricingPlan(\n entry: Contentful.EntrySkeletonType | null\n): PricingPlan | undefined {\n if (entry) {\n return mapPricingPlanContentToPricingPlan(entry.fields.configuration);\n } else {\n return undefined;\n }\n}\n\nfunction mapPricingPlanContentToPricingPlan(\n content: PricingPlanContentConfiguration\n): PricingPlan {\n return content.map(mapPricingPlanContentConfigurationItemToPricingTier);\n}\n\nfunction mapPricingPlanContentConfigurationItemToPricingTier({\n starter,\n pricing_strategy,\n unit_description,\n unit_limit_lower,\n unit_limit_upper,\n prices\n}: PricingPlanContentConfigurationItem): PricingTier {\n return {\n starter,\n pricingStrategy: parsePricingStrategy(pricing_strategy),\n unitDescription: unit_description,\n unitLimitLower: unit_limit_lower,\n unitLimitUpper: unit_limit_upper,\n prices: prices.map(\n mapPricingPlanContentConfigurationItemPriceToPricingTierPrice\n )\n };\n}\n\nfunction mapPricingPlanContentConfigurationItemPriceToPricingTierPrice({\n currency,\n unit_price\n}: PricingPlanContentConfigurationItemPrice): PricingTierPrice {\n return {\n currency,\n unitPrice: unit_price\n };\n}\n","import { ContentfulClientApi, createClient } from 'contentful';\nimport { DEFAULT_HOST } from './constants';\nimport { PricingPlans, ProductKey, ProductKeyMap } from './models';\nimport { AddonProduct } from './models/addon-product';\nimport {\n mapPricingPlanContentEntryToPricingPlan,\n PricingPlanContent,\n ProductContentSkeleton\n} from './product-catalog-client.types';\nimport * as Contentful from 'contentful';\n\nexport type ProductCatalogClientOptions = {\n readonly space: string;\n readonly environment: string;\n readonly accessToken: string;\n readonly host?: string;\n};\n\nexport const SELECT_QUERY = [\n 'fields.key',\n 'fields.defaultStdPricingPlanMonthly',\n 'fields.defaultStdPricingPlanYearly',\n 'fields.defaultPremiumPricingPlanMonthly',\n 'fields.defaultPremiumPricingPlanYearly',\n 'fields.defaultStdPricingPlanYearly',\n 'fields.defaultFreePricingPlanMonthly',\n 'fields.defaultFreePricingPlanMonthly',\n 'fields.defaultEnterprisePricingPlanMonthly',\n 'fields.defaultEnterprisePricingPlanYearly'\n];\n\nexport interface IProductCatalogClient {\n getPricing({\n productKeys\n }: GetPricingOptions): Promise>;\n searchAddons({\n parentProductKey,\n query,\n limit\n }: SearchAddonsOptions): Promise;\n}\n\nexport class ProductCatalogClient implements IProductCatalogClient {\n private readonly contentfulClient: ContentfulClientApi;\n\n public constructor(options: ProductCatalogClientOptions) {\n this.contentfulClient = createClient({\n ...options,\n host: options.host || DEFAULT_HOST\n });\n }\n\n public async getPricing({\n productKeys\n }: GetPricingOptions): Promise> {\n const { items } =\n await this.contentfulClient.getEntries({\n 'content_type': 'product',\n //@ts-ignore\n 'fields.key[in]': [\n ...new Set(productKeys.map(removeEditionSuffix)).values()\n ],\n 'select': [\n 'fields.key',\n 'fields.defaultStdPricingPlanMonthly',\n 'fields.defaultStdPricingPlanYearly',\n 'fields.defaultPremiumPricingPlanMonthly',\n 'fields.defaultPremiumPricingPlanYearly',\n 'fields.defaultStdPricingPlanYearly',\n 'fields.defaultFreePricingPlanMonthly',\n 'fields.defaultFreePricingPlanMonthly',\n 'fields.defaultEnterprisePricingPlanMonthly',\n 'fields.defaultEnterprisePricingPlanYearly'\n ]\n });\n\n let ret: ProductKeyMap = {};\n for (const productKey of productKeys) {\n const editionlessKey = removeEditionSuffix(productKey);\n const entry = items.find(({ fields: { key } }) => key === editionlessKey);\n if (entry) {\n ret = {\n ...ret,\n [productKey]: getPricingPlansForEditionSuffixedKey(entry, productKey)\n };\n }\n }\n\n return ret;\n }\n\n public async searchAddons({\n parentProductKey,\n query,\n limit\n }: SearchAddonsOptions): Promise {\n const { items } = await this.contentfulClient.getEntries({\n 'content_type': 'product',\n 'select': [\n 'fields.key',\n 'fields.defaultStdPricingPlanMonthly',\n 'fields.defaultStdPricingPlanYearly',\n 'fields.defaultPremiumPricingPlanMonthly',\n 'fields.defaultPremiumPricingPlanYearly',\n 'fields.defaultStdPricingPlanYearly',\n 'fields.defaultFreePricingPlanMonthly',\n 'fields.defaultFreePricingPlanMonthly',\n 'fields.defaultEnterprisePricingPlanMonthly',\n 'fields.defaultEnterprisePricingPlanYearly',\n 'fields.description'\n ],\n 'fields.productType[match]': 'ADDON',\n 'fields.description[match]': query,\n 'fields.parentProductName[match]': parentProductKey,\n limit\n });\n\n const ret = items.map(({ fields: { description, key } }) => ({\n name: description,\n hamsProductKey: key || ''\n }));\n\n //@ts-ignore\n return ret;\n }\n}\n\nenum EDITION_SUFFIXES {\n FREE = '.free',\n STANDARD = '',\n PREMIUM = '.premium',\n ENTERPRISE = '.enterprise'\n}\n\ntype EditionSuffix = { [P in keyof EDITION_SUFFIXES]: EDITION_SUFFIXES[P] };\n\nconst NON_STANDARD_EDITION_SUFFIXES = [\n EDITION_SUFFIXES.FREE,\n EDITION_SUFFIXES.PREMIUM,\n EDITION_SUFFIXES.ENTERPRISE\n];\n\nexport const removeEditionSuffix = (productKey: string) =>\n productKey.replace(\n new RegExp(\n NON_STANDARD_EDITION_SUFFIXES.map((suffix) => `\\\\${suffix}`).join('|') +\n '$'\n ),\n ''\n );\n\nconst getPricingPlansForEditionSuffixedKey = (\n productContent: Contentful.Entry,\n editionSuffixedProductKey: string\n): PricingPlans => {\n const matchedEditionSuffix: EditionSuffix =\n NON_STANDARD_EDITION_SUFFIXES.reduce(\n (matchingEditionSuffix, editionSuffix) =>\n editionSuffixedProductKey.endsWith(editionSuffix)\n ? editionSuffix\n : matchingEditionSuffix,\n EDITION_SUFFIXES.STANDARD\n );\n\n let monthly: Contentful.EntrySkeletonType | null = null;\n let annual: Contentful.EntrySkeletonType | null = null;\n switch (matchedEditionSuffix) {\n case EDITION_SUFFIXES.FREE: {\n const { defaultFreePricingPlanMonthly, defaultFreePricingPlanYearly } =\n productContent.fields;\n\n monthly =\n defaultFreePricingPlanMonthly as unknown as Contentful.EntrySkeletonType;\n annual =\n defaultFreePricingPlanYearly as unknown as Contentful.EntrySkeletonType;\n break;\n }\n\n case EDITION_SUFFIXES.STANDARD: {\n const { defaultStdPricingPlanMonthly, defaultStdPricingPlanYearly } =\n productContent.fields;\n monthly =\n defaultStdPricingPlanMonthly as unknown as Contentful.EntrySkeletonType;\n annual =\n defaultStdPricingPlanYearly as unknown as Contentful.EntrySkeletonType;\n break;\n }\n\n case EDITION_SUFFIXES.PREMIUM: {\n const {\n defaultPremiumPricingPlanMonthly,\n defaultPremiumPricingPlanYearly\n } = productContent.fields;\n\n monthly =\n defaultPremiumPricingPlanMonthly as unknown as Contentful.EntrySkeletonType;\n annual =\n defaultPremiumPricingPlanYearly as unknown as Contentful.EntrySkeletonType;\n break;\n }\n\n case EDITION_SUFFIXES.ENTERPRISE: {\n const {\n defaultEnterprisePricingPlanMonthly,\n defaultEnterprisePricingPlanYearly\n } = productContent.fields;\n\n monthly =\n defaultEnterprisePricingPlanMonthly as unknown as Contentful.EntrySkeletonType;\n annual =\n defaultEnterprisePricingPlanYearly as unknown as Contentful.EntrySkeletonType;\n break;\n }\n }\n\n return {\n monthly: mapPricingPlanContentEntryToPricingPlan(monthly),\n annual: mapPricingPlanContentEntryToPricingPlan(annual)\n };\n};\n\nexport type GetPricingOptions = {\n readonly productKeys: ReadonlyArray;\n};\n\nexport type SearchAddonsOptions = {\n readonly parentProductKey: ProductKey;\n readonly query: string;\n readonly limit?: number;\n};\n","import { ContentfulClientApi, createClient, Entry } from 'contentful';\nimport {\n CCPOfferingContent,\n CCPOfferingContentSkeleton,\n CCPPricingPlanContent,\n CCPPricingPlanItem,\n CCPPricingPlanTier,\n CCPProductContentSkeleton\n} from './ccp-product-catalog-client.types';\nimport { contentTypeIds, DEFAULT_HOST } from './constants';\nimport { CCPAddonProduct, OfferingSKU, OfferingSKUMap } from './models';\n\nexport type CCPProductCatalogClientOptions = {\n readonly space: string;\n readonly environment: string;\n readonly accessToken: string;\n readonly host?: string;\n};\n\n// the Contentful SDK does not actually include these methods in the Entry object\nexport type ContentfulOffering = Omit<\n Entry,\n 'toPlainObject' | 'update'\n>;\n\nexport interface ICCPProductCatalogClient {\n getOfferingsBySKU({\n offeringSKUs\n }: GetCCPPricingOptions): Promise>;\n\n ccpSearchAddons({\n query,\n limit\n }: CCPSearchAddonsOptions): Promise;\n\n getOfferingSkuByProductKey(key: string): Promise;\n}\n\nexport class CCPProductCatalogClient implements ICCPProductCatalogClient {\n private readonly contentfulClient: ContentfulClientApi;\n\n public constructor(options: CCPProductCatalogClientOptions) {\n this.contentfulClient = createClient({\n ...options,\n host: options.host || DEFAULT_HOST\n });\n }\n\n public async getOfferingsBySKU({\n offeringSKUs\n }: GetCCPPricingOptions): Promise> {\n const { items } =\n await this.contentfulClient.getEntries({\n 'content_type': contentTypeIds.ccpOffering,\n //@ts-ignore\n 'fields.sku[in]': [...new Set(offeringSKUs).values()]\n });\n\n let ret: OfferingSKUMap = {};\n for (const offeringSKU of offeringSKUs) {\n const entry = items.find(({ fields: { sku } }) => sku === offeringSKU);\n const contentfulOffering = entry as unknown as CCPOfferingContent;\n\n ret = {\n ...ret,\n [offeringSKU]: contentfulOffering || undefined\n };\n }\n\n return ret;\n }\n\n /* istanbul ignore next */\n public async ccpSearchAddons({\n query,\n limit\n }: CCPSearchAddonsOptions): Promise {\n const { items } =\n await this.contentfulClient.getEntries({\n 'content_type': contentTypeIds.ccpProduct,\n 'select': ['fields.key', 'fields.name'],\n //@ts-ignore\n 'fields.name[match]': query,\n limit\n });\n\n const addonProducts: CCPAddonProduct[] = items.map((item) => {\n const {\n fields: { name, key }\n } = item;\n\n return {\n name: name ?? '',\n ccpProductKey: key\n };\n });\n\n return addonProducts;\n }\n\n /* istanbul ignore next */\n public async getOfferingSkuByProductKey(key: string): Promise {\n const { items: offerings } =\n await this.contentfulClient.getEntries({\n 'content_type': contentTypeIds.ccpOffering,\n //@ts-ignore\n 'fields.productKey': key\n });\n\n return offerings[0]?.fields.sku ?? '';\n }\n}\n\nexport type GetCCPPricingOptions = {\n readonly offeringSKUs: ReadonlyArray;\n};\n\nexport type CCPSearchAddonsOptions = {\n readonly query: string;\n readonly limit?: number;\n};\n\nexport { CCPPricingPlanContent, CCPPricingPlanItem, CCPPricingPlanTier };\n","import { Cookie } from '@atlassiansox/asc-core';\nimport { Asap, UserProfile } from './models';\nimport { PRODUCT_KEY_MAP } from './constants';\nimport { XOR } from './utils';\n\ntype ProductActivation = {\n readonly productKey: string;\n readonly edition?: string;\n};\n\nexport type GetUserPermissionsIsPermittedRequest = {\n readonly permissionId: GetUserPermissionsIsPermittedRequestPermissionId;\n readonly resourceId: string;\n readonly dontRequirePrincipalInSite?: boolean;\n readonly webPlatform?: string;\n};\n\nexport type GetUserPermissionsIsPermittedResponse = {\n readonly permitted: boolean;\n};\n\nexport enum AuthenticationMethodsType {\n PASSWORD = 'password',\n GOOGLE = 'google',\n SAML = 'saml',\n MICROSOFT = 'microsoft',\n APPLE = 'apple',\n SLACK = 'slack'\n}\n\ntype Method = {\n readonly type: AuthenticationMethodsType;\n readonly redirect_to?: string;\n};\n\nexport type CheckAuthenticationMethodsAvailableResponse = {\n readonly methods: Method[];\n readonly userExists: boolean;\n readonly passwordEnabled: boolean;\n readonly samlRequired: boolean;\n};\n\nexport type PostCloudSignUpRequest = {\n payload: FormPayloadType | FormPayloadActivateProducts;\n webPlatform?: string;\n};\n\ntype ProductPayloadObject = {\n readonly accountName?: string | null;\n readonly edition?: string | null;\n readonly product?: string | null;\n readonly productKey?: string | null;\n};\n\ntype FormPayloadActivateProducts = {\n activateProducts?: boolean;\n products: ProductPayloadObject[];\n cloudId?: string;\n cloudName: string | null;\n advancedSettings?: {\n [key: string]: number | boolean | string | Record;\n };\n signupContext?: string;\n};\n\ntype ConsentsObject = {\n key: string;\n displayedText: unknown;\n granted: boolean;\n};\n\nexport type Consent = {\n readonly site: string | null;\n readonly locale: string | null;\n readonly formUrl: string | null;\n readonly consents: ConsentsObject[];\n};\n\ntype FormPayloadType = {\n adminUsername: string;\n gRecaptchaResponse?: string;\n cloudName: string | null;\n email: string | null;\n timezone: string | null;\n firstName: string | null;\n lastName: string | null;\n adminPassword?: string | null;\n signupContext?: string;\n dataRegion?: string;\n consent: Consent;\n} & FormPayloadActivateProducts;\n\nexport type CheckAuthenticationMethodsAvailableRequest = {\n readonly email: string;\n readonly application?: string;\n readonly webPlatform?: string;\n readonly successRedirect: string;\n};\n\nexport enum GetUserPermissionsIsPermittedRequestPermissionId {\n ADD_PRODUCTS = 'add-products',\n INVITE_USERS = 'invite-users',\n MANAGE = 'manage',\n WRITE = 'write',\n /**\n * @deprecated ADD_PRODUCT is a legacy permissionId, use ADD_PRODUCTS instead.\n */\n ADD_PRODUCT = 'addProduct'\n}\n\nexport type RenameCloudRequest = {\n readonly webPlatform?: string;\n readonly cloudId: string;\n readonly cloudName: string;\n};\n\nexport type RenameCloudResponse = {\n readonly progressUri: string;\n};\n\nexport type CheckCloudNameAvailabilityRequest = {\n readonly cloudName: string;\n readonly webPlatform?: string;\n};\n\nexport type CheckCloudNameAvailabilityResponse = {\n readonly availability: CloudNameAvailability;\n};\n\nexport type GetUserCloudSitesRequest = {\n readonly product: string;\n readonly editions: string[];\n readonly adminAccess: boolean;\n readonly billingFrequency: string[];\n readonly licenseLevels: string[];\n};\n\nexport type GetUserCloudSitesResponse = {\n readonly name: string;\n readonly sites: ReadonlyArray;\n};\n\ntype CloudSitesInfo = {\n readonly siteName: string;\n readonly edition: string;\n readonly license: string;\n readonly product: string;\n readonly siteId: string;\n readonly adminAccess: boolean;\n};\n\nexport type CloudNameAvailability =\n | 'AVAILABLE'\n | 'TAKEN'\n | 'ERROR'\n | 'INVALID'\n | 'NOT_AVAILABLE_FOR_TRANSFER';\n\nexport type SitesType = {\n readonly adminAccess: boolean;\n readonly cloudId: string;\n readonly products: string[];\n readonly url: string;\n readonly displayName: string;\n readonly edition?: string | null;\n readonly orgId?: string | null;\n readonly productsAndEditions: ProductsAndEditionsObjectType[];\n};\n\nexport type CloudSessionTokenCookieType = {\n readonly cloudSessionTokenCookie?: Cookie;\n};\n\nexport type AvailableProductsResponse = {\n sites: SitesType[];\n isNewUser: boolean;\n};\n\nexport type AvailableProductsLegacyResponse = SitesType[];\n\nexport type AvailableProductsOptions = {\n readonly includeInvalidSites?: boolean;\n readonly includeInvalidBitbucketSite?: boolean;\n readonly removeNonAdminSites?: boolean;\n} & CloudSessionTokenCookieType;\n\nexport type ProductType = {\n productKey?: string;\n edition?: string;\n};\n\nexport type UserSignupRequest = {\n email: string;\n locale: string;\n redirectTo: string;\n displayName: string;\n gRecaptchaResponse?: string;\n webPlatform?: string;\n products?: ProductType[];\n};\n\nexport type UserSignupResponse = {\n id: string;\n otpRedirect?: string;\n};\n\ntype ActivateProductResponseItems = {\n itemId: string;\n orderItemId: string;\n};\n\nexport type Platform = 'ccp' | 'hams' | 'routing';\n\nexport type CcpProduct = {\n readonly offeringId: string;\n readonly pricingPlanId: string;\n readonly productKey: string;\n readonly edition: string;\n readonly chargeElement: string;\n readonly pricingType?: string;\n};\n\nexport type ActivateProductRequest = {\n email: string;\n ccpProducts: CcpProduct[];\n siteName?: string;\n timezone: string;\n useCcpPlatform: boolean;\n platform: Platform;\n displayName?: string;\n consent?: Consent;\n signupContext?: string;\n advancedSettings?: {\n [key: string]: number | boolean | string | Record;\n };\n gRecaptchaResponse?: string;\n testingPurposes?: boolean;\n isNewUser?: boolean;\n migrationId?: string;\n webPlatform?: string;\n orgId?: string;\n workspaceId?: string;\n};\n\nexport type ActivateProductUpstreamResponse = XOR<\n ActivateProductCcpUpstreamResponse,\n ActivateProductCofsResponse\n>;\n\nexport type ActivateProductCcpUpstreamResponse = {\n statusUrl: string;\n orderId: string;\n slug: string;\n items: ActivateProductResponseItems[];\n transactionAccountId: string;\n invoiceGroupId: string;\n metadata: {\n provisionRequestId: string;\n };\n cloudId: string;\n service: string;\n};\n\nexport type ActivateProductResponse = XOR<\n ActivateProductCcpResponse,\n ActivateProductCofsResponse\n>;\n\nexport type ActivateProductCcpResponse = {\n orderId: string;\n slug: string;\n transactionAccountId: string;\n invoiceGroupId: string;\n metadata: {\n provisionRequestId: string;\n };\n items: ActivateProductResponseItems[];\n cloudId: string;\n service: string;\n};\n\nexport type ActivateProductCofsResponse = {\n cloudId: string;\n progressUri: string;\n service: string;\n};\nexport type CofsActivateProductExistingRequest = {\n cloudId: string;\n products: ProductActivation[];\n timezone: string;\n signupContext?: string;\n webPlatform?: string;\n advancedSettings?: {\n [key: string]: number | boolean | string | Record;\n };\n gRecaptchaResponse?: string;\n};\nexport interface ProductActivationStatusRequest {\n provisioningRequestId: string;\n webPlatform?: string;\n}\n\nexport interface ProductActivationStatusResponse {\n provisionRequestId: string;\n resourcePackages: ResourcePackage[];\n}\n\nexport interface GetLicenceInformationRequest {\n cloudId: string;\n webPlatform?: string;\n}\nexport type GetLicenseInformationResponse = {\n readonly firstActivationDate: number;\n readonly hostname: string;\n readonly products: {\n [key: string]: GetLicenseInformationProduct;\n };\n};\n\nexport type GetLicenseInformationProduct = {\n readonly ccpEntitlementId?: string;\n readonly ccpTransactionAccountId: string;\n readonly edition: string;\n readonly isSuspended?: boolean;\n readonly state: string;\n readonly relatesFromEntitlements?: GetLicenseInformationRelatedEntitlement[];\n};\n\nexport type GetLicenseInformationRelatedEntitlement = {\n readonly relationshipType: string;\n readonly entitlementId: string;\n readonly relationshipId: string;\n};\n\nexport interface ProductActivateRequest {\n readonly transactionAccountId: string;\n readonly entitlementId: string;\n readonly offerings: OfferingsType[];\n readonly cloudId: string;\n readonly siteName?: string;\n readonly webPlatform?: string;\n readonly advancedSettings?: advancedSettingsType;\n}\n\n// For cross flow /product/activate endpoint\nexport type advancedSettingsType = {\n readonly signupContext?: string;\n};\n\nexport interface COFSProductActivateRequest {\n readonly edition: string;\n readonly productKey: string;\n readonly cloudId: string;\n readonly webPlatform?: string;\n}\n\nexport type OfferingsType = {\n readonly offeringId: string;\n readonly pricingPlanId: string;\n readonly chargeElement: string;\n};\n\nexport type ProductActivateResponse = {\n readonly orderId: string;\n readonly progressUri: string;\n readonly cloudId: string;\n};\nexport type COFSProductActivateResponse = {\n readonly progressUri: string;\n readonly cloudId: string;\n};\n\nexport interface ResourcePackage {\n entitlementId: string;\n action: {\n type: RecourcePackageActionTypes;\n status: ProductActivationStatus;\n errorDetails?: ResourceActivationError[];\n };\n resourceAris: string[];\n}\n\nexport type RecourcePackageActionTypes = 'ACTIVATE';\n\nexport type ProductActivationStatus =\n | 'IN_PROGRESS'\n | 'SUCCESS'\n | 'PROVISIONING_FAILURE';\n\nexport interface ResourceActivationError {\n source: string;\n message: string;\n}\n\n/**\n * Identity Client section\n */\nexport type AsapAuth = {\n readonly asap: Asap;\n};\n\nexport function isAsapAuth(auth: AsapAuth) {\n return !!auth.asap;\n}\n\nexport type MeResponse = {\n readonly account_id: string;\n readonly name: string;\n readonly email: string;\n readonly picture: string;\n readonly locale: string;\n readonly zoneinfo: string;\n};\n\nexport type MeOptions = CloudSessionTokenCookieType;\n\nexport function mapMeResponseToUserProfile({\n account_id,\n ...others\n}: MeResponse): UserProfile {\n return {\n accountId: account_id,\n ...others\n };\n}\n\nexport type BitbucketWorkspaceOptions = {\n readonly nextUrl?: string;\n readonly urlQuery?: string;\n} & CloudSessionTokenCookieType;\n\nexport type BitbucketWorkspacesResponse = {\n readonly page: number;\n readonly pagelen: number;\n readonly size: number;\n readonly next?: string;\n readonly previous?: string;\n readonly values: [\n {\n // owner: has admin access, collaborator: has write access\n readonly permission: 'owner' | 'member' | 'collaborator';\n readonly user?: WorkspaceUserType;\n readonly workspace?: WorkspaceType;\n readonly last_accessed?: string | null;\n readonly type?: string;\n readonly links?: Record;\n readonly added_on?: string | null;\n }\n ];\n};\n\nexport type WorkspaceUserType = {\n readonly display_name: string;\n readonly account_id: string;\n readonly links: Record;\n readonly nickname: string;\n readonly type: string;\n readonly uuid: string;\n};\n\nexport type WorkspaceType = {\n readonly name: string;\n readonly type: string;\n readonly uuid: string;\n readonly links: Record;\n readonly slug: string;\n};\n\nexport type AvailableProductsType = {\n readonly adminAccess: boolean;\n readonly cloudId: string;\n readonly displayName: string;\n readonly url: string;\n readonly availableProducts: [\n {\n readonly activityCount: number;\n readonly productType: keyof typeof PRODUCT_KEY_MAP;\n readonly url?: string;\n }\n ];\n readonly avatar?: string;\n};\n\n/**\n * /user/:id/manage/profile\n */\n\nexport type PatchUserProfileRequestBody = {\n readonly name?: string;\n readonly nickname: string;\n};\n\nexport type PatchUserProfileRequest = {\n readonly cloudSessionTokenCookie: Cookie;\n readonly body: PatchUserProfileRequestBody;\n readonly userId: string;\n};\n\nexport type PermissionsPermittedRequestAsap = {\n readonly auth: AsapAuth;\n};\nexport type PermissionsPermittedRequestParams = {\n readonly dontRequirePrincipalInSite: boolean;\n readonly permissionId: string;\n readonly principalId: string;\n readonly resourceId: string;\n};\nexport type GetCcpHamsStatus = {\n readonly cloudId: string;\n readonly offeringKeys: string;\n};\nexport type GetCcpHamsResponse = {\n readonly service: string;\n};\n\nexport type GetAvailableSitesRequest = {\n readonly orderId: string;\n readonly transactionAccount: string;\n readonly webPlatform?: string;\n};\ntype ProductsAndEditionsObjectType = {\n readonly productEdition: string;\n readonly productKey: string;\n};\nexport type Site = {\n readonly siteName: string;\n readonly cloudId: string;\n readonly products: string[];\n readonly displayName: string;\n readonly url: string;\n readonly edition: string;\n readonly productsAndEditions: ProductsAndEditionsObjectType[];\n readonly entitlements: {\n ccpEntitlementId: string;\n billingSourceSystem: string;\n productKey: string;\n }[];\n readonly adminAccess: boolean;\n};\n\nexport type SiteFlags = {\n readonly useLockedInSite: boolean;\n};\n\nexport type GetAvailableSitesResponse = {\n readonly sites: Site[];\n readonly flags: SiteFlags;\n};\n\nexport type PermissionsPermittedRequest = PermissionsPermittedRequestAsap &\n PermissionsPermittedRequestParams;\n\nexport type PermissionsPermittedResponse = string;\n\n/**\n * getProductHubInfo section\n * TODO: find a single source for these models (these were just copied over from bxp-express)\n */\n\nexport enum Editions {\n FREE = 'free',\n STANDARD = 'standard',\n PREMIUM = 'premium'\n}\n\nexport enum ProductKeys {\n CONFLUENCE = 'confluence.ondemand',\n JIRA_CORE = 'jira-core.ondemand',\n JIRA_SERVICE_DESK = 'jira-servicedesk.ondemand',\n JIRA_SOFTWARE = 'jira-software.ondemand',\n JIRA_PRODUCT_DISCOVERY = 'jira-product-discovery',\n TRELLO = 'trello',\n OPSGENIE = 'opsgenie',\n BITBUCKET = 'bitbucket.ondemand',\n BITBUCKET_COFS = 'com.atlassian.bitbucket',\n STATUSPAGE = 'statuspage',\n TEAM_CENTRAL = 'townsquare',\n AVOCADO = 'avocado',\n COMPASS = 'compass',\n ANALYTICS = 'atlassian-analytics-free',\n WHITEBOARD = 'atlassian-whiteboard'\n}\n\nexport interface RelatesFromEntitlements {\n entitlementId: string;\n relationshipId: string;\n relationshipType: string;\n}\n\nexport interface Product {\n applicationUrl: string;\n edition: Editions;\n isSuspended: boolean;\n state: 'ACTIVE' | 'DEACTIVATED' | string;\n adminAccess?: boolean;\n billingPeriod?: 'MONTHLY' | 'ANNUAL';\n ccpTransactionAccountId?: string;\n ccpEntitlementId?: string;\n relatesFromEntitlements?: RelatesFromEntitlements[];\n trialEndDate?: string;\n lastActiveTimestamp: string | null;\n}\n\nexport interface ProductHub {\n cloudId: string;\n hostname: string;\n firstActivationDate: number;\n products?: Partial<{\n [key in ProductKeys]: Product;\n }>;\n adminAccess: boolean;\n}\n\nexport type GetProductHubInfoResponse = {\n readonly sites: ProductHub[];\n};\n\nexport interface ActivateDirectBuyProductRequest {\n timezone: string;\n region: string;\n orderId: string;\n transactionAccountId: string;\n webPlatform?: string;\n site: XOR<\n ActivateDirectBuyProductForExistingSiteRequest,\n ActivateDirectBuyProductForNewSiteRequest\n >;\n}\n\nexport interface ActivateDirectBuyProductForExistingSiteRequest {\n cloudId: string;\n}\n\nexport interface ActivateDirectBuyProductForNewSiteRequest {\n name: string;\n}\n\nexport interface ActivateDirectBuyProductResponse {\n provisionRequestId: string;\n}\n\nexport interface GetCloudProductInfoRequest {\n cloudId: string;\n webPlatform?: string;\n}\n\nexport type CloudProductInfo = Record;\n\nexport type GetProductEditionRequest = {\n readonly cloudId: string;\n readonly productKey: string;\n};\n\nexport type GetProductEditionResponse = {\n readonly edition: string;\n};\n\nexport type getConsentConfigResponse = {\n readonly locale: string;\n readonly localeRequiresMarketingCommunicationOptIn: boolean;\n readonly hasUserMadeChoiceOnMarketingCommunicationOptIn: boolean;\n readonly usersChoiceOnMarketingCommunicationOptIn: boolean;\n};\n\nexport type postConsentConfigResponse = {\n readonly locale: string;\n readonly localeRequiresMarketingCommunicationOptIn: boolean;\n readonly hasUserMadeChoiceOnMarketingCommunicationOptIn: boolean;\n readonly usersChoiceOnMarketingCommunicationOptIn: boolean;\n};\n\nexport type PostExpandFreeValidationRequest = {\n readonly cloudId: string;\n readonly productKeys: string[];\n};\n\nexport type PostExpandFreeValidationResponse = {\n readonly isInBreachOfFree: boolean;\n};\n\nexport type GetActivationAuthorizationRequest = {\n readonly productKeys: string[];\n readonly productEdition: string;\n readonly cloudId?: string;\n readonly webPlatform?: string;\n readonly siteName: string;\n};\n\nexport type GetActivationAuthorizationResponse = {\n readonly redirectUrl: string;\n readonly authorized: boolean;\n};\n\nexport type GetFeatureFlagRequest = string;\n\nexport type GetFeatureFlagResponse = {\n readonly result: unknown;\n};\n\nexport type GetFeatureFlagSyncRequest = string;\n\nexport type GetFeatureFlagSyncResponse = {\n readonly result: unknown;\n};\n\nexport type GetRecommendedSiteNameRequest = {\n readonly email: string;\n readonly webPlatform?: string;\n} & CloudSessionTokenCookieType;\n\nexport type GetRecommendedSiteNameResponse = {\n readonly recommendedName: string;\n};\n\nexport type GetAccountOrgsRequest = {\n readonly includeVortexMode?: boolean;\n readonly webPlatform?: string;\n};\n\nexport type GetAccountOrgsResponse = {\n readonly id: string;\n readonly name: string;\n readonly isAdmin: boolean;\n readonly vortexMode?: string;\n}[];\n\nexport type CreateOrgRequest = {\n readonly orgDisplayName: string;\n readonly webPlatform?: string;\n};\n\nexport type CreateOrgResponse = {\n readonly orgId: string;\n readonly progressUri: string;\n};\n\nexport type BitbucketValidateWorkspaceSlugRequest = {\n readonly workspaceSlug: string;\n};\n\nexport type BitbucketValidateWorkspaceSlugResponse = {\n readonly new_ari: string;\n};\n","export const ASAP_AUDIENCE = 'identity-platform';\n\nexport const PRODUCT_KEY_MAP = {\n CONFLUENCE: 'confluence.ondemand',\n JIRA_CORE: 'jira-core.ondemand',\n JIRA_BUSINESS: 'jira-core.ondemand',\n JIRA_SOFTWARE: 'jira-software.ondemand',\n JIRA_SERVICE_DESK: 'jira-servicedesk.ondemand',\n BITBUCKET: 'com.atlassian.bitbucket',\n OPSGENIE: 'opsgenie',\n STATUSPAGE: 'statuspage',\n TRELLO: 'trello'\n};\n","import Cookies from 'js-cookie';\n\nexport function getAtlCohortIdFromCookie() {\n let atlCohortId;\n try {\n const cookie = JSON.parse(Cookies.get('atlCohort') || '');\n atlCohortId = cookie['bucketAll'].index;\n } catch (e) {\n atlCohortId = '';\n console.warn('Cannot parse atlCohort cookie', e);\n }\n return atlCohortId;\n}\n","import { SitesType } from '../stargate-client.types';\n\n/**\n * Filter out internal/invalid sites\n */\n\ntype IsValidSiteType = {\n readonly site: SitesType;\n readonly includeInvalidBitbucketSite?: boolean;\n};\n\nexport const isValidSite = ({\n site,\n includeInvalidBitbucketSite\n}: IsValidSiteType): boolean => {\n const ignoreSiteNames = [\n 'servicedog',\n 'ecosystem',\n 'atlassiantraining',\n 'Atlassian Stride',\n 'volunteerhub',\n 'atlassiantraining',\n 'hello-staging',\n 'ecosystem',\n 'riskmanagement',\n 'hello-staging3',\n 'hello-staging6',\n 'hello-staging9',\n 'jdog',\n 'sre-ehlo',\n 'trello',\n 'Trello'\n ];\n\n if (!includeInvalidBitbucketSite) {\n ignoreSiteNames.push('bitbucket', 'Bitbucket');\n }\n\n if (ignoreSiteNames.includes(site.displayName)) {\n return false;\n }\n\n if (site.cloudId.startsWith('DUMMY')) {\n return false;\n }\n\n return true;\n};\n","import axios from 'axios';\nimport _ from 'lodash';\nimport {\n mapCookieToHeaders,\n mapResponseToJson,\n mapResponseToText,\n serializeCookie,\n UnsucessfulFetchError\n} from '@atlassiansox/asc-core';\nimport { fetch } from 'cross-fetch';\nimport Cookies from 'js-cookie';\n\nimport {\n ActivateProductUpstreamResponse,\n ActivateProductResponse,\n ActivateProductRequest,\n AvailableProductsOptions,\n AvailableProductsResponse,\n AvailableProductsType,\n BitbucketWorkspaceOptions,\n BitbucketWorkspacesResponse,\n CheckAuthenticationMethodsAvailableResponse,\n CheckAuthenticationMethodsAvailableRequest,\n CheckCloudNameAvailabilityRequest,\n CheckCloudNameAvailabilityResponse,\n GetUserCloudSitesRequest,\n GetUserCloudSitesResponse,\n GetLicenseInformationResponse,\n GetLicenceInformationRequest,\n GetUserPermissionsIsPermittedRequest,\n GetUserPermissionsIsPermittedResponse,\n MeOptions,\n mapMeResponseToUserProfile,\n PostCloudSignUpRequest,\n ProductActivationStatusRequest,\n ProductActivationStatusResponse,\n PatchUserProfileRequest,\n RenameCloudRequest,\n RenameCloudResponse,\n SitesType,\n UserSignupRequest,\n UserSignupResponse,\n ProductActivateRequest,\n ProductActivateResponse,\n COFSProductActivateRequest,\n COFSProductActivateResponse,\n GetProductHubInfoResponse,\n GetCcpHamsStatus,\n GetCcpHamsResponse,\n GetAvailableSitesRequest,\n GetAvailableSitesResponse,\n ActivateDirectBuyProductRequest,\n ActivateDirectBuyProductResponse,\n GetCloudProductInfoRequest,\n CloudProductInfo,\n GetProductEditionRequest,\n GetProductEditionResponse,\n GetActivationAuthorizationRequest,\n GetActivationAuthorizationResponse,\n GetFeatureFlagRequest,\n GetFeatureFlagResponse,\n AvailableProductsLegacyResponse,\n getConsentConfigResponse,\n postConsentConfigResponse,\n GetFeatureFlagSyncRequest,\n GetFeatureFlagSyncResponse,\n PostExpandFreeValidationResponse,\n PostExpandFreeValidationRequest,\n GetRecommendedSiteNameResponse,\n GetRecommendedSiteNameRequest,\n GetAccountOrgsResponse,\n GetAccountOrgsRequest,\n CreateOrgRequest,\n CreateOrgResponse,\n CofsActivateProductExistingRequest,\n ActivateProductCofsResponse,\n BitbucketValidateWorkspaceSlugRequest,\n BitbucketValidateWorkspaceSlugResponse\n} from './stargate-client.types';\nimport { PRODUCT_KEY_MAP } from './constants';\nimport { UserProfile } from './models';\nimport { getAtlCohortIdFromCookie, isValidSite } from './utils';\n\nexport interface IStargateClient {\n activateProduct(\n request: ActivateProductRequest\n ): Promise;\n availableProducts(\n options: AvailableProductsOptions\n ): Promise;\n availableProductsLegacy(\n options: AvailableProductsOptions\n ): Promise;\n bitbucketWorkspaces(\n options: BitbucketWorkspaceOptions\n ): Promise;\n checkCloudNameAvailability(\n request: CheckCloudNameAvailabilityRequest\n ): Promise;\n checkAuthenticationMethodsAvailable(\n request: CheckAuthenticationMethodsAvailableRequest\n ): Promise;\n getLicenceInformationStatus(\n request: GetLicenceInformationRequest\n ): Promise;\n getSignupServerXsrfToken(): Promise;\n getProductActivationStatus(\n requires: ProductActivationStatusRequest\n ): Promise;\n getUserCloudSites(\n request: GetUserCloudSitesRequest\n ): Promise;\n getUserPermissionsIsPermitted(\n request: GetUserPermissionsIsPermittedRequest\n ): Promise;\n getCurrentAuthenticatedUser(): Promise;\n getProductHubInfo(): Promise;\n me(options: MeOptions): Promise;\n patchUserProfile(request: PatchUserProfileRequest): Promise;\n postCloudSignUp(payload: PostCloudSignUpRequest): Promise;\n postProductActivate(\n request: ProductActivateRequest\n ): Promise;\n postCOFSProductActivate(\n request: COFSProductActivateRequest\n ): Promise;\n renameCloud(request: RenameCloudRequest): Promise;\n userSignup(request: UserSignupRequest): Promise;\n getCcpHamsStatus(request: GetCcpHamsStatus): Promise;\n getAvailableSites(\n request: GetAvailableSitesRequest\n ): Promise;\n activateDirectBuyProduct(\n request: ActivateDirectBuyProductRequest\n ): Promise;\n getCloudProductInfo(\n request: GetCloudProductInfoRequest\n ): Promise;\n getProductEdition(\n request: GetProductEditionRequest\n ): Promise;\n getActivationAuthorization(\n request: GetActivationAuthorizationRequest\n ): Promise;\n getFeatureFlag(\n request: GetFeatureFlagRequest\n ): Promise;\n postExpandFreeValidation(\n request: PostExpandFreeValidationRequest\n ): Promise;\n getFeatureFlagSync(\n request: GetFeatureFlagSyncRequest\n ): Promise;\n postConsentConfig(): Promise;\n getConsentConfig(): Promise;\n getRecommendedSiteName(\n request: GetRecommendedSiteNameRequest\n ): Promise;\n getAccountOrgs(\n request: GetAccountOrgsRequest\n ): Promise;\n cofsCreateOrg(request: CreateOrgRequest): Promise;\n cofsActivateProductExisting(\n request: CofsActivateProductExistingRequest\n ): Promise;\n bitbucketValidateWorkspaceSlug(\n request: BitbucketValidateWorkspaceSlugRequest\n ): Promise;\n}\n\nexport const DEFAULT_STARGATE_BASE_URL =\n 'https://wac.stg.internal.atlassian.com/gateway/api';\nexport const DEFAULT_IDENTITY_BASE_URL = 'https://id.staging.atl-paas.net';\n\nexport type StargateClientOptions = {\n readonly baseUrl: string;\n readonly disableRequestDeduplication?: boolean;\n};\n\nconst openRequestCache = new Map>();\n\n/**\n * @see https://bitbucket.org/atlassian/stargate/src/master/src/main/resources/application.yml\n */\nexport class StargateClient implements IStargateClient {\n public readonly baseUrl: string;\n public readonly disableRequestDeduplication?: boolean;\n\n public constructor({\n baseUrl,\n disableRequestDeduplication\n }: StargateClientOptions) {\n this.baseUrl = baseUrl;\n this.disableRequestDeduplication = disableRequestDeduplication;\n }\n\n /**\n * Deduplicate fetch requests made while there is an open request with the same cacheKey\n * @param cacheKey\n * @param input\n * @param init\n * @private\n */\n private async dedupeFetch(\n cacheKey: string,\n input: RequestInfo,\n init?: RequestInit\n ): Promise {\n if (this.disableRequestDeduplication) {\n return fetch(input, init);\n }\n\n // Check for an open request\n const cachedResult = openRequestCache.get(cacheKey);\n if (cachedResult) {\n return cachedResult.then((res) => res.clone());\n }\n\n // Create a new request based on the input\n const request = fetch(input, init);\n openRequestCache.set(cacheKey, request);\n\n // Return the request and clear it from cache when it completes\n return request.finally(() => {\n openRequestCache.delete(cacheKey);\n });\n }\n\n /**\n * Get the xsrf token required to make calls to the signup server\n *\n * @see https://bxp-signup-server.staging.atl-paas.net/swagger/#/Authentication/get_auth_xsrf\n */\n public async getSignupServerXsrfToken(webPlatform?: string): Promise {\n return mapResponseToText(\n await fetch(`${this.baseUrl}/bxp/signup/auth/xsrf`, {\n method: 'GET',\n credentials: 'include',\n headers: {\n 'accept': 'text/plain',\n 'web-platform': webPlatform || 'no-platform'\n }\n })\n );\n }\n\n /**\n * Get the authentication methods available to a given user.\n *\n * @see https://bxp-signup-server.us-west-2.prod.atl-paas.net/swagger/#/Identity/post_authentication_methods_available\n */\n public async checkAuthenticationMethodsAvailable({\n email,\n application = 'wac',\n successRedirect,\n webPlatform\n }: CheckAuthenticationMethodsAvailableRequest): Promise {\n const xsrfToken = await this.getSignupServerXsrfToken();\n const atlCohortId = getAtlCohortIdFromCookie();\n\n return mapResponseToJson(\n await fetch(\n `${this.baseUrl}/bxp/signup/authentication/methods-available`,\n {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'xsrf-token': xsrfToken,\n 'X-Atl-Cohort-Id': atlCohortId,\n 'web-platform': webPlatform || 'no-platform'\n },\n credentials: 'include',\n body: JSON.stringify({\n email,\n application,\n continue: successRedirect\n })\n }\n )\n );\n }\n\n /**\n * Get whether a user has a permission for a particular resource.\n *\n * @see https://id-public-api-facade.prod.atl-paas.net/swagger.json\n */\n public async getUserPermissionsIsPermitted({\n permissionId,\n resourceId,\n dontRequirePrincipalInSite,\n webPlatform\n }: GetUserPermissionsIsPermittedRequest): Promise {\n return mapResponseToJson(\n await fetch(`${this.baseUrl}/permissions/permitted`, {\n credentials: 'include',\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'web-platform': webPlatform || 'no-platform'\n },\n body: JSON.stringify({\n permissionId,\n resourceId,\n dontRequirePrincipalInSite\n })\n })\n );\n }\n\n /**\n * Returns details about the current authenticated user.\n * This is expected to be consistent with Atlassian account.\n *\n * @see https://id-public-api-facade.prod.atl-paas.net/swagger.json\n */\n public async getCurrentAuthenticatedUser(): Promise {\n return mapResponseToJson(\n await fetch(`${this.baseUrl}/me`, {\n credentials: 'include'\n })\n );\n }\n\n /**\n * Gets trial information for Atlassian products. Currently only supports\n * JSW.\n *\n * @returns\n */\n public async getProductHubInfo(): Promise {\n return mapResponseToJson(\n await fetch(`${this.baseUrl}/producthub/info`, {\n credentials: 'include'\n })\n );\n }\n\n public async postCloudSignUp({\n payload,\n webPlatform\n }: PostCloudSignUpRequest): Promise {\n return mapResponseToJson(\n await fetch(`${this.baseUrl}/cloud/signup`, {\n method: 'POST',\n headers: {\n 'web-platform': webPlatform || 'no-platform',\n 'Content-Type': 'application/json',\n 'atl-cookies': JSON.stringify({\n _ga: Cookies.get('_ga') || '',\n seg_xid: localStorage.getItem('seg_xid') || '',\n __atl_path: Cookies.get('__atl_path') || '',\n ajs_anonymous_id: Cookies.get('ajs_anonymous_id') || ''\n })\n },\n body: JSON.stringify(payload),\n credentials: 'include'\n })\n );\n }\n\n /**\n * Rename a Cloud\n * @see https://cofs.dev.public.atl-paas.net/api.html#external__cloudId__rename_put\n */\n public async renameCloud({\n cloudId,\n cloudName,\n webPlatform\n }: RenameCloudRequest): Promise {\n return mapResponseToJson(\n await fetch(`${this.baseUrl}/cofs/${cloudId}/rename`, {\n method: 'put',\n body: JSON.stringify({\n cloudName\n }),\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json',\n 'web-platform': webPlatform || 'no-platform'\n },\n credentials: 'include'\n })\n );\n }\n\n /**\n * @see https://cloud-name-availability.prod.atl-paas.net/swagger-ui/index.html#/name-availability-stargate-controller/checkAvailabilityUsingPOST\n */\n public async checkCloudNameAvailability({\n cloudName,\n webPlatform\n }: CheckCloudNameAvailabilityRequest): Promise {\n return mapResponseToJson(\n await fetch(`${this.baseUrl}/hostname/cloud/availability/check`, {\n method: 'post',\n body: JSON.stringify({\n cloudName\n }),\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json',\n 'web-platform': webPlatform || 'no-platform'\n },\n credentials: 'include'\n })\n );\n }\n\n public async getUserCloudSites({\n product,\n editions,\n adminAccess,\n licenseLevels,\n billingFrequency\n }: GetUserCloudSitesRequest): Promise {\n return mapResponseToJson(\n await fetch(`${this.baseUrl}/cloud/users/cloudsites`, {\n method: 'post',\n body: JSON.stringify({\n product,\n editions,\n adminAccess,\n licenseLevels,\n billingFrequency\n }),\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json'\n },\n credentials: 'include'\n })\n );\n }\n\n /**\n * Get the new ais/available-products\n */\n public async availableProducts({\n includeInvalidSites,\n includeInvalidBitbucketSite,\n removeNonAdminSites\n }: AvailableProductsOptions): Promise {\n const reqUrl = `${this.baseUrl}/ais/available-products`;\n const response = await this.dedupeFetch(reqUrl, reqUrl, {\n method: 'GET',\n credentials: 'include'\n });\n if (response.ok) {\n const result = await response.json();\n let sites = (result && result.sites) || [];\n\n if (removeNonAdminSites) {\n sites = sites.filter((site: SitesType) => site.adminAccess);\n }\n\n if (!includeInvalidSites) {\n sites = sites.filter((site: SitesType) =>\n isValidSite({\n site,\n includeInvalidBitbucketSite\n })\n );\n }\n\n return Promise.resolve({\n sites,\n isNewUser: !!(result && result.isNewUser)\n });\n } else {\n throw new UnsucessfulFetchError({\n response\n });\n }\n }\n\n public async userSignup(\n request: UserSignupRequest\n ): Promise {\n const xsrfToken = await this.getSignupServerXsrfToken();\n const atlCohortId = getAtlCohortIdFromCookie();\n\n return mapResponseToJson(\n await fetch(`${this.baseUrl}/bxp/signup/identity/user-signup`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'xsrf-token': xsrfToken,\n 'X-Atl-Cohort-Id': atlCohortId,\n 'web-platform': request.webPlatform || 'no-platform'\n },\n credentials: 'include',\n body: JSON.stringify({ ...request })\n })\n );\n }\n\n public async activateProduct(\n request: ActivateProductRequest\n ): Promise {\n const xsrfToken = await this.getSignupServerXsrfToken();\n const atlCohortId = getAtlCohortIdFromCookie();\n\n const upstreamResponse =\n await mapResponseToJson(\n await fetch(`${this.baseUrl}/bxp/signup/activate-product`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'xsrf-token': xsrfToken,\n 'X-Atl-Cohort-Id': atlCohortId,\n 'web-platform': request.webPlatform || 'no-platform'\n },\n credentials: 'include',\n body: JSON.stringify(request)\n })\n );\n\n return upstreamResponse;\n }\n\n public async getProductActivationStatus(\n request: ProductActivationStatusRequest\n ): Promise {\n const xsrfToken = await this.getSignupServerXsrfToken();\n\n return mapResponseToJson(\n await fetch(\n `${this.baseUrl}/bxp/signup/activate/status/${request.provisioningRequestId}`,\n {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n 'xsrf-token': xsrfToken,\n 'web-platform': request.webPlatform || 'no-platform'\n },\n credentials: 'include'\n }\n )\n );\n }\n\n public async getLicenceInformationStatus(\n request: GetLicenceInformationRequest\n ): Promise {\n const xsrfToken = await this.getSignupServerXsrfToken();\n\n return mapResponseToJson(\n await fetch(\n `${this.baseUrl}/bxp/signup/cloud/${request.cloudId}/license-information`,\n {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n 'xsrf-token': xsrfToken,\n 'web-platform': request.webPlatform || 'no-platform'\n },\n credentials: 'include'\n }\n )\n );\n }\n // for attaching a product to an existing site, xflow worked on the endpoint\n public async postProductActivate(\n request: ProductActivateRequest\n ): Promise {\n const xsrfToken = await this.getSignupServerXsrfToken();\n\n return mapResponseToJson(\n await fetch(`${this.baseUrl}/bxp/signup/product/activate`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'xsrf-token': xsrfToken,\n 'web-platform': request.webPlatform || 'no-platform'\n },\n credentials: 'include',\n body: JSON.stringify(request)\n })\n );\n }\n // for attaching a product to an existing site using COFS, xflow worked on the endpoint\n public async postCOFSProductActivate(\n request: COFSProductActivateRequest\n ): Promise {\n const xsrfToken = await this.getSignupServerXsrfToken();\n const { cloudId } = request;\n return mapResponseToJson(\n await fetch(`${this.baseUrl}/xflow/${cloudId}/activate`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'xsrf-token': xsrfToken,\n 'web-platform': request.webPlatform || 'no-platform'\n },\n credentials: 'include',\n body: JSON.stringify(request)\n })\n );\n }\n /**\n * Indentity calls\n */\n public async me({\n cloudSessionTokenCookie\n }: MeOptions): Promise {\n const url = `${this.baseUrl}/me`;\n const response = await this.dedupeFetch(\n `${url}-${cloudSessionTokenCookie}`,\n url,\n {\n headers: mapCookieToHeaders(cloudSessionTokenCookie),\n credentials: 'include'\n }\n );\n if (response.ok) {\n return mapMeResponseToUserProfile(await response.json());\n } else {\n throw new UnsucessfulFetchError({\n response\n });\n }\n }\n\n /**\n * Get a list of Bitbucket workspaces\n * @param nextUrl - override the request URL for pagination\n * bitbucket/user/permissions/workspaces?sort=workspace.slug\n */\n public async bitbucketWorkspaces({\n nextUrl,\n cloudSessionTokenCookie,\n urlQuery\n }: BitbucketWorkspaceOptions): Promise {\n let reqUrl = `${this.baseUrl}/bitbucket/user/permissions/workspaces`;\n if (nextUrl) {\n reqUrl = nextUrl;\n }\n if (urlQuery) {\n reqUrl = `${reqUrl}?${urlQuery}`;\n }\n\n const response = await fetch(reqUrl, {\n headers: mapCookieToHeaders(cloudSessionTokenCookie),\n credentials: 'include'\n });\n\n if (response.ok) {\n return Promise.resolve(await response.json());\n } else {\n throw new UnsucessfulFetchError({\n response\n });\n }\n }\n\n /**\n * The legacy get availableProducts call from IdentityClient\n */\n public async availableProductsLegacy({\n cloudSessionTokenCookie,\n includeInvalidSites,\n includeInvalidBitbucketSite\n }: AvailableProductsOptions): Promise {\n const reqUrl = `${this.baseUrl}/available-products/api/available-products`;\n const response = await fetch(reqUrl, {\n headers: mapCookieToHeaders(cloudSessionTokenCookie),\n credentials: 'include'\n });\n\n if (response.ok) {\n const result = await response.json();\n let sites = (result && result.sites) || [];\n\n sites = _.remove(\n _.map(sites, (site: AvailableProductsType) => {\n const products = _.map(site.availableProducts, (product) => {\n return PRODUCT_KEY_MAP[product.productType];\n }).filter((product) => product !== undefined);\n\n if (!_.isEmpty(products)) {\n return {\n adminAccess: site.adminAccess,\n cloudId: site.cloudId,\n displayName: site.displayName,\n url: site.url,\n products\n };\n } else {\n return null;\n }\n }),\n (site) => site !== undefined && site !== null\n );\n\n if (!includeInvalidSites) {\n sites = sites.filter((site: SitesType) =>\n isValidSite({\n site,\n includeInvalidBitbucketSite\n })\n );\n }\n\n return Promise.resolve(sites);\n } else {\n throw new UnsucessfulFetchError({\n response\n });\n }\n }\n\n public async patchUserProfile(\n request: PatchUserProfileRequest\n ): Promise {\n const { body, userId, cloudSessionTokenCookie } = request;\n\n const options = {\n headers: {\n 'content-type': 'application/json',\n 'Cookie': serializeCookie(cloudSessionTokenCookie)\n }\n };\n return new Promise((resolve, reject) => {\n axios\n .patch(`${this.baseUrl}/users/${userId}/manage/profile`, body, options)\n .then((response) => {\n resolve(response.data);\n })\n .catch((err) => {\n reject(err.toString());\n });\n });\n }\n\n public async getCcpHamsStatus(\n request: GetCcpHamsStatus\n ): Promise {\n const { cloudId, offeringKeys } = request;\n\n return mapResponseToJson(\n await fetch(\n `${this.baseUrl}/bag/rollout/service?cloudId=${cloudId}&offeringKeys=${offeringKeys}`,\n {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json'\n },\n credentials: 'include'\n }\n )\n );\n }\n\n public async getAvailableSites(\n request: GetAvailableSitesRequest\n ): Promise {\n const { orderId, transactionAccount } = request;\n\n return mapResponseToJson(\n await fetch(\n `${this.baseUrl}/bxp/signup/v1/order/${orderId}/available-sites`,\n {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n 'X-Transaction-Account': transactionAccount,\n 'web-platform': request.webPlatform || 'no-platform'\n },\n credentials: 'include'\n }\n )\n );\n }\n\n public async activateDirectBuyProduct(\n request: ActivateDirectBuyProductRequest\n ): Promise {\n const xsrfToken = await this.getSignupServerXsrfToken();\n\n return mapResponseToJson(\n await fetch(\n `${this.baseUrl}/bxp/signup/v1/order/${request.orderId}/activation`,\n {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'xsrf-token': xsrfToken,\n 'X-Transaction-Account': request.transactionAccountId,\n 'web-platform': request.webPlatform || 'no-platform'\n },\n credentials: 'include',\n body: JSON.stringify({\n timezone: request.timezone,\n region: request.region,\n site: request.site\n })\n }\n )\n );\n }\n\n public async getCloudProductInfo(\n request: GetCloudProductInfoRequest\n ): Promise {\n return mapResponseToJson(\n await fetch(\n `${this.baseUrl}/bxp/signup/v1/cloud/${request.cloudId}/product-information`,\n {\n headers: {\n 'web-platform': request.webPlatform || 'no-platform'\n },\n credentials: 'include'\n }\n )\n );\n }\n\n public async getProductEdition(\n request: GetProductEditionRequest\n ): Promise {\n const { cloudId, productKey } = request;\n\n return mapResponseToJson(\n await fetch(`${this.baseUrl}/cloud/edition/${cloudId}/${productKey}`, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json'\n },\n credentials: 'include'\n })\n );\n }\n\n public async getConsentConfig(): Promise {\n return mapResponseToJson(\n await fetch(`${this.baseUrl}/preferencesV2/consent-config`, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json'\n },\n credentials: 'include'\n })\n );\n }\n\n public async postConsentConfig(): Promise {\n return mapResponseToJson(\n await fetch(`${this.baseUrl}/preferencesV2/consent-config`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n credentials: 'include'\n })\n );\n }\n\n public async postExpandFreeValidation(\n request: PostExpandFreeValidationRequest\n ): Promise {\n const { cloudId, productKeys } = request;\n\n return mapResponseToJson(\n await fetch(`${this.baseUrl}/cloud/expand-free-validation`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n credentials: 'include',\n body: JSON.stringify({\n cloudId,\n productKeys\n })\n })\n );\n }\n\n public async getActivationAuthorization(\n request: GetActivationAuthorizationRequest\n ): Promise {\n const { productKeys, productEdition, cloudId, siteName } = request;\n const atlCohortId = getAtlCohortIdFromCookie();\n\n return mapResponseToJson(\n await fetch(\n `${\n this.baseUrl\n }/bxp/signup/activation-authorization?${new URLSearchParams({\n productKeys: productKeys.join(','),\n productEdition: productEdition,\n cloudId: cloudId ?? '',\n siteName\n })}`,\n {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n 'X-Atl-Cohort-Id': atlCohortId,\n 'web-platform': request.webPlatform || 'no-platform'\n },\n credentials: 'include'\n }\n )\n );\n }\n\n public async getFeatureFlag(\n request: GetFeatureFlagRequest,\n webPlatform?: string\n ): Promise {\n const flag = request;\n\n return mapResponseToJson(\n await fetch(`${this.baseUrl}/bxp/signup/feature-flag/${flag}`, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n 'web-platform': webPlatform || 'no-platform'\n },\n credentials: 'include'\n })\n );\n }\n\n public async getFeatureFlagSync(\n request: GetFeatureFlagSyncRequest,\n webPlatform?: string\n ): Promise {\n const flag = request;\n const atlCohortId = getAtlCohortIdFromCookie();\n\n return mapResponseToJson(\n await fetch(`${this.baseUrl}/bxp/signup/feature-flag/sync/${flag}`, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n 'X-Atl-Cohort-Id': atlCohortId,\n 'web-platform': webPlatform || 'no-platform'\n },\n credentials: 'include'\n })\n );\n }\n\n public async getRecommendedSiteName(\n request: GetRecommendedSiteNameRequest\n ): Promise {\n const xsrfToken = await this.getSignupServerXsrfToken();\n const atlCohortId = getAtlCohortIdFromCookie();\n const headers = mapCookieToHeaders(request.cloudSessionTokenCookie);\n Object.assign(headers, {\n 'Content-Type': 'application/json',\n 'xsrf-token': xsrfToken,\n 'X-Atl-Cohort-Id': atlCohortId,\n 'web-platform': request.webPlatform || 'no-platform'\n });\n\n const response = await mapResponseToJson(\n await fetch(`${this.baseUrl}/bxp/signup/site/recommended-name`, {\n method: 'POST',\n headers,\n credentials: 'include',\n body: JSON.stringify(request)\n })\n );\n\n return response;\n }\n\n public async getAccountOrgs({\n includeVortexMode,\n webPlatform\n }: GetAccountOrgsRequest): Promise {\n const params = includeVortexMode === true ? `?includeVortexMode=true` : '';\n\n return mapResponseToJson(\n await fetch(`${this.baseUrl}/bxp/signup/account/orgs${params}`, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n 'web-platform': webPlatform || 'no-platform'\n },\n credentials: 'include'\n })\n );\n }\n\n public async cofsCreateOrg(\n request: CreateOrgRequest\n ): Promise {\n const xsrfToken = await this.getSignupServerXsrfToken();\n const atlCohortId = getAtlCohortIdFromCookie();\n\n return mapResponseToJson(\n await fetch(`${this.baseUrl}/bxp/signup/cofs-create-organization`, {\n method: 'POST',\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json',\n 'xsrf-token': xsrfToken,\n 'X-Atl-Cohort-Id': atlCohortId,\n 'web-platform': request.webPlatform || 'no-platform'\n },\n credentials: 'include',\n body: JSON.stringify(request)\n })\n );\n }\n\n public async cofsActivateProductExisting(\n request: CofsActivateProductExistingRequest\n ): Promise {\n const xsrfToken = await this.getSignupServerXsrfToken();\n const atlCohortId = getAtlCohortIdFromCookie();\n\n const upstreamResponse =\n await mapResponseToJson(\n await fetch(\n `${this.baseUrl}/bxp/signup/cofs-activate-product-existing`,\n {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'xsrf-token': xsrfToken,\n 'X-Atl-Cohort-Id': atlCohortId,\n 'web-platform': request.webPlatform || 'no-platform'\n },\n credentials: 'include',\n body: JSON.stringify(request)\n }\n )\n );\n\n return upstreamResponse;\n }\n\n public async bitbucketValidateWorkspaceSlug({\n workspaceSlug\n }: BitbucketValidateWorkspaceSlugRequest): Promise {\n return mapResponseToJson(\n await fetch(\n `${this.baseUrl}/bitbucket/api/internal/workspace/slug/validate`,\n {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n credentials: 'include',\n body: JSON.stringify({\n workspace_slug: workspaceSlug\n })\n }\n )\n );\n }\n}\n","import { mapResponseToJson, mapResponseToText } from '@atlassiansox/asc-core';\nimport { fetch } from 'cross-fetch';\n\nimport {\n CloudExpandFreeValidationRequest,\n CloudExpandFreeValidationResponse,\n CloudSignUpRequest,\n CloudSignUpResponse,\n FreeBreachRequest,\n FreeBreachResponse,\n ProductEditionByCloudIdRequest,\n ProductEditionByCloudIdResponse,\n MarketplaceAppInstallRequest,\n MarketplaceAppInstallResponse\n} from './bxp-express-client.types';\n\nexport type BXPExpressClientOptions = {\n readonly baseUrl?: string;\n};\n\nexport interface IBXPExpressClient {\n getXsrfToken(): Promise;\n cloudSignupAnonymous(\n request: CloudSignUpRequest\n ): Promise;\n cloudExpandFreeValidation(\n request: CloudExpandFreeValidationRequest\n ): Promise;\n postBreachStatus(request: FreeBreachRequest): Promise;\n productEditionByCloudId(\n request: ProductEditionByCloudIdRequest\n ): Promise;\n marketplaceAppInstall(\n request: MarketplaceAppInstallRequest\n ): Promise;\n}\n\nexport class BXPExpressClient implements IBXPExpressClient {\n public static DEFAULT_BASE_URL =\n 'https://wac.stg.internal.atlassian.com/endpoint';\n\n private readonly baseUrl: string;\n\n public constructor({\n baseUrl = BXPExpressClient.DEFAULT_BASE_URL\n }: BXPExpressClientOptions = {}) {\n this.baseUrl = baseUrl;\n }\n\n public async getXsrfToken(): Promise {\n return mapResponseToText(\n await fetch(`${this.baseUrl}/auth/xsrf`, {\n method: 'GET',\n credentials: 'include',\n headers: {\n accept: 'text/plain'\n }\n })\n );\n }\n\n public async cloudSignupAnonymous({\n payload,\n cookies\n }: CloudSignUpRequest): Promise {\n return mapResponseToJson(\n await fetch(`${this.baseUrl}/cloud/signupAnon`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'ATL-Cookies': JSON.stringify(cookies)\n },\n body: JSON.stringify(payload),\n credentials: 'include'\n })\n );\n }\n\n public async marketplaceAppInstall({\n siteName,\n appKey,\n xsrfToken\n }: MarketplaceAppInstallRequest): Promise {\n return mapResponseToJson(\n await fetch(`${this.baseUrl}/marketplace/app/install`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'xsrf-token': xsrfToken\n },\n body: JSON.stringify({ siteName, appKey }),\n credentials: 'include'\n })\n );\n }\n\n public async cloudExpandFreeValidation({\n cloudId,\n productKeys,\n edition\n }: CloudExpandFreeValidationRequest): Promise {\n return mapResponseToJson(\n await fetch(`${this.baseUrl}/cloud/expand-free-validation`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n cloudId,\n productKeys,\n edition\n })\n })\n );\n }\n\n public async postBreachStatus({\n payload\n }: FreeBreachRequest): Promise {\n const options = {\n headers: {\n 'content-type': 'application/json'\n },\n method: 'POST',\n body: JSON.stringify(payload)\n };\n\n return mapResponseToJson(\n await fetch(`${this.baseUrl}/cloud/expand-free-validation`, options)\n );\n }\n\n public async productEditionByCloudId({\n cloudId,\n productKey\n }: ProductEditionByCloudIdRequest): Promise {\n return mapResponseToJson(\n await fetch(`${this.baseUrl}/cloud/edition/${cloudId}/${productKey}`, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json'\n },\n credentials: 'include'\n })\n );\n }\n}\n","import { createHeaders, mapResponseToJson } from '@atlassiansox/asc-core';\nimport { fetch } from 'cross-fetch';\n\nimport {\n CloudSignUpRequest,\n CloudSignUpResponse\n} from './bxp-express-client.types';\n\nexport type BXPExpressStargateClientOptions = {\n readonly baseUrl?: string;\n};\n\nexport class BXPExpressStargateClient {\n public static DEFAULT_BASE_URL =\n 'https://wac.stg.internal.atlassian.com/gateway/api';\n\n private readonly baseUrl: string;\n\n public constructor({\n baseUrl = BXPExpressStargateClient.DEFAULT_BASE_URL\n }: BXPExpressStargateClientOptions = {}) {\n this.baseUrl = baseUrl;\n }\n\n public async cloudSignup({\n payload,\n cookies\n }: CloudSignUpRequest): Promise {\n return mapResponseToJson(\n await fetch(`${this.baseUrl}/cloud/signup`, {\n method: 'POST',\n headers: createHeaders({\n 'Content-Type': 'application/json',\n 'ATL-Cookies': JSON.stringify(cookies)\n }),\n body: JSON.stringify(payload),\n credentials: 'include'\n })\n );\n }\n}\n","export function isUndefined(value: T | undefined): value is undefined {\n return value === undefined;\n}\n\nexport function assertIsUndefined(\n value: T | undefined\n): asserts value is undefined {\n if (!isUndefined(value)) {\n throw new TypeError(`Value is not undefined.`);\n }\n}\n\nexport function isNotUndefined(value: T | undefined): value is T {\n return value !== undefined;\n}\n\nexport function assertIsNotUndefined(\n value: T | undefined\n): asserts value is T {\n if (!isNotUndefined(value)) {\n throw new TypeError(`Value is undefined.`);\n }\n}\n","import {\n createUrl,\n mapResponseToJson,\n mapResponseToText,\n serializeCookie\n} from '@atlassiansox/asc-core';\nimport { generateAsapHeader } from '@atlassiansox/asc-asap';\nimport { fetch, Headers } from 'cross-fetch';\n\nimport {\n GetCartRequest,\n GetEmailExistsRequest,\n GetEmailExistsResponse,\n GetProductPricingRequest,\n GetProductPricingResponse,\n GetXsrfTokenRequest,\n PatchUserRequest,\n GetCloudSiteRequest,\n GetCloudSiteResponse\n} from './hamlet-client.types';\nimport { Cart, Contact } from './models';\n\nexport const DEFAULT_BASE_URL = 'https://hamlet.atlassian.com';\n\nconst ASAP_AUDIENCE = 'micros/hams';\n\nexport type HamletClientOptions = {\n readonly baseUrl?: string;\n};\n\nexport interface IHamletClient {\n getXsrfToken(request: GetXsrfTokenRequest): Promise;\n getEmailExists(\n request: GetEmailExistsRequest\n ): Promise;\n getCart(request: GetCartRequest): Promise;\n patchUser(request: PatchUserRequest): Promise;\n getProductPricing(\n request: GetProductPricingRequest\n ): Promise;\n getCloudSite(request: GetCloudSiteRequest): Promise;\n}\n\n/**\n * @see: https://hello.atlassian.net/wiki/spaces/HAMS/pages/127995591/Hamlet+API\n */\nexport class HamletClient implements IHamletClient {\n private readonly baseUrl: string;\n\n public constructor({ baseUrl = DEFAULT_BASE_URL }: HamletClientOptions = {}) {\n this.baseUrl = baseUrl;\n }\n\n public async getXsrfToken({\n cloudSessionTokenCookie\n }: GetXsrfTokenRequest): Promise {\n return mapResponseToText(\n await fetch(`${this.baseUrl}/1.0/auth/xsrf/plain`, {\n headers: {\n cookie: serializeCookie(cloudSessionTokenCookie)\n }\n })\n );\n }\n\n public async getEmailExists({\n email\n }: GetEmailExistsRequest): Promise {\n return mapResponseToJson(\n await fetch(`${this.baseUrl}/1.0/public/aid/exists/${email}`, {\n method: 'POST'\n })\n );\n }\n\n public async getCart({ cartId }: GetCartRequest): Promise {\n return mapResponseToJson(\n await fetch(`${this.baseUrl}/1.0/public/order/cart/${cartId}`)\n );\n }\n\n public async patchUser({\n cloudSessionTokenCookie,\n firstName,\n lastName\n }: PatchUserRequest): Promise {\n return mapResponseToJson(\n await fetch(`${this.baseUrl}/1.0/public/contact/currentUser/patch`, {\n method: 'PATCH',\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json',\n 'ATL-XSRF-Token': await this.getXsrfToken({\n cloudSessionTokenCookie\n }),\n 'Cookie': serializeCookie(cloudSessionTokenCookie)\n },\n body: JSON.stringify([\n {\n op: 'replace',\n path: '/contactDetails/firstName',\n value: firstName\n },\n {\n op: 'replace',\n path: '/contactDetails/lastName',\n value: lastName\n }\n ])\n })\n );\n }\n\n public async getProductPricing({\n productKeys,\n licenseType = 'evaluation',\n requestingApplication = 'WAC',\n monthsValid = '1'\n }: GetProductPricingRequest): Promise {\n return mapResponseToJson(\n await fetch(\n createUrl({\n baseUrl: this.baseUrl,\n path: `/1.0/public/pricing/query`,\n query: {\n licenseType,\n productKey: productKeys,\n requestingApplication,\n monthsValid,\n cacheBuster: Date.now()\n }\n })\n )\n );\n }\n\n public async getCloudSite({\n cloudId,\n auth\n }: GetCloudSiteRequest): Promise {\n const headers = new Headers();\n\n headers.append(\n 'Authorization',\n generateAsapHeader({\n ...auth.asap,\n audience: ASAP_AUDIENCE\n })\n );\n\n return mapResponseToJson(\n await fetch(\n createUrl({\n baseUrl: this.baseUrl,\n path: `/1.0/private/cloud/${cloudId}`\n }),\n { headers }\n )\n );\n }\n}\n","import { HamletClient, IHamletClient } from '@atlassiansox/asc-hamlet';\nimport { createContext } from 'react';\n\nexport const HamletClientContext = createContext(\n new HamletClient()\n);\n","import { PricingCalculator } from '@atlassian/bxp-product-pricing';\nimport { useMemo } from 'react';\n\nimport { useProductPricingStore } from '@atlassiansox/bxpkit-product-pricing-store';\n\nexport function usePricingCalculator() {\n const productPricingStore = useProductPricingStore();\n return useMemo(\n () => new PricingCalculator({ productPricingStore }),\n [productPricingStore]\n );\n}\n","import { hash } from 'bcryptjs';\nimport { createContext } from 'react';\nimport type { AnalyticsTrackType, ProductKeysType } from '../model';\n\nexport const hashEmail = async (email: string) => {\n const salt = '$2b$11$wgr1TJNVKwiK/dQBd3HKm.';\n if (!email || typeof email === 'number') {\n return Promise.resolve('');\n }\n\n // set email to lowercase, split username & domain\n // tslint:disable-next-line: prefer-const\n const [username, domain] = email.toLowerCase().split('@');\n // strip fullstops\n let sanitizedUsername = username.replace(/\\./g, '');\n // ignore anything after '+' char\n if (sanitizedUsername.includes('+')) {\n sanitizedUsername = sanitizedUsername.split('+')[0];\n }\n // rejoin the email\n const cleanEmail = sanitizedUsername + '@' + domain;\n const hashResult = await hash(cleanEmail, salt).catch(() => '');\n\n return Promise.resolve(hashResult);\n};\n\nconst MarieSchema = {\n eventContainer: '',\n productKey: [],\n\n productEdition: '',\n productPlatform: '',\n schemaVersion: 1,\n\n loginUserDetected: 0,\n suiteName: '',\n // tslint:disable-next-line:no-empty\n setSuiteName: () => undefined,\n userEmail: '',\n // tslint:disable-next-line:no-empty\n setUserEmail: () => undefined,\n\n productsOffered: []\n};\nexport type MarieSchemaAnalyticsType = {\n readonly eventContainer: string;\n readonly setEventContainer?: (value: string) => void;\n\n readonly productKey: ProductKeysType[];\n readonly productEdition: string;\n readonly productPlatform: string;\n readonly schemaVersion: number;\n\n readonly loginUserDetected: number;\n readonly suiteName: string;\n readonly setSuiteName: (value: string) => void;\n readonly userEmail: string;\n readonly setUserEmail: (value: string) => void;\n readonly productsOffered: string[];\n readonly analyticsTrack?: AnalyticsTrackType;\n};\n\nexport const MarieSchemaAnalytics =\n createContext(MarieSchema);\n","import { DependencyList, useEffect, useState } from 'react';\n\nexport function useAsync(\n task: () => Promise,\n dependencies?: DependencyList\n): AsyncResult {\n const [result, setResult] = useState(AsyncResult.pending());\n\n useEffect(() => {\n let inEffect = true;\n\n task()\n .then((value) => {\n if (inEffect) {\n setResult(AsyncResult.complete(value));\n }\n })\n .catch((error) => {\n if (inEffect) {\n setResult(AsyncResult.error(error));\n }\n });\n\n return () => {\n inEffect = false;\n };\n }, dependencies);\n\n return result;\n}\n\nexport abstract class AsyncResult {\n public static pending(): AsyncResult {\n return new PendingAsyncResult();\n }\n\n public static complete(\n value: T\n ): AsyncResult {\n return new CompleteAsyncResult(value);\n }\n\n public static error(error: E): AsyncResult {\n return new ErrorAsyncResult(error);\n }\n\n public static isPending(\n result: AsyncResult\n ): result is PendingAsyncResult {\n return result.isPending === true;\n }\n\n public static isComplete(\n result: AsyncResult\n ): result is CompleteAsyncResult {\n return (\n result.isPending === false &&\n (result as ErrorAsyncResult).error === undefined\n );\n }\n\n public static isError(\n result: AsyncResult\n ): result is ErrorAsyncResult {\n return (\n result.isPending === false &&\n (result as ErrorAsyncResult).error !== undefined\n );\n }\n\n protected constructor(public readonly isPending: boolean) {}\n\n abstract map(mapper: (value: T) => U): AsyncResult;\n\n abstract catch(catcher: (error: E) => T): AsyncResult;\n\n abstract get value(): T;\n}\n\nclass PendingAsyncResult extends AsyncResult {\n public constructor() {\n super(true);\n }\n\n public map(): AsyncResult {\n return new PendingAsyncResult();\n }\n\n public catch(): AsyncResult {\n return this;\n }\n\n public get value(): T {\n throw new Error('AsyncResult is pending...');\n }\n}\n\nclass CompleteAsyncResult extends AsyncResult {\n public constructor(public readonly value: T) {\n super(false);\n }\n\n public map(mapper: (value: T) => U): AsyncResult {\n return new CompleteAsyncResult(mapper(this.value));\n }\n\n public catch(): AsyncResult {\n return this;\n }\n}\n\nclass ErrorAsyncResult extends AsyncResult {\n public constructor(public readonly error: E) {\n super(false);\n }\n\n public map(): AsyncResult {\n return new ErrorAsyncResult(this.error);\n }\n\n public catch(catcher: (error: E) => T): AsyncResult {\n return new CompleteAsyncResult(catcher(this.error));\n }\n\n public get value(): T {\n throw new AsyncResultError(this.error);\n }\n}\n\nexport class AsyncResultError extends Error {\n public constructor(public readonly cause: Error) {\n super(cause.message);\n this.name = AsyncResultError.name;\n }\n}\n","import { IStargateClient, StargateClient } from '@atlassiansox/asc-stargate';\nimport React, { createContext, PropsWithChildren, useContext } from 'react';\n\nconst DEFAULT_BASE_URL = 'https://wac.stg.internal.atlassian.com/gateway/api';\n\nconst StargateClientContext = createContext(\n new StargateClient({\n baseUrl: DEFAULT_BASE_URL\n })\n);\n\nexport function useStargateClient(): IStargateClient {\n return useContext(StargateClientContext);\n}\n\nexport type StargateClientProviderProps =\n | InterfaceStargateClientProviderProps\n | BaseUrlStargateClientProviderProps;\n\nexport type InterfaceStargateClientProviderProps = {\n readonly client: IStargateClient;\n};\n\nexport type BaseUrlStargateClientProviderProps = {\n readonly baseUrl: string;\n};\n\nexport function StargateClientProvider(\n props: PropsWithChildren\n) {\n const { children } = props;\n if (isBaseUrlStargateClientProviderProps(props)) {\n return (\n \n {children}\n \n );\n } else {\n return (\n \n {children}\n \n );\n }\n}\n\nfunction isBaseUrlStargateClientProviderProps(\n props: StargateClientProviderProps\n): props is BaseUrlStargateClientProviderProps {\n return !!(props as BaseUrlStargateClientProviderProps)?.baseUrl;\n}\n","import {\n AvailableProductsOptions,\n AvailableProductsOptions as AISAvailableProductsOptions,\n AvailableProductsLegacyResponse as AISAvailableProductsLegacyResponse,\n AvailableProductsResponse as AISAvailableProductsResponse\n} from '@atlassiansox/asc-stargate';\nimport { AsyncResult, useAsync } from './use-async';\nimport { useStargateClient } from './use-stargate-client';\n\nexport function useAvailableProducts({\n includeInvalidSites,\n includeInvalidBitbucketSite\n}: AvailableProductsOptions): AsyncResult {\n const stargateClient = useStargateClient();\n\n return useAsync(\n () =>\n stargateClient.availableProductsLegacy({\n includeInvalidSites,\n includeInvalidBitbucketSite\n }),\n []\n );\n}\n\nexport function useAISAvailableProducts({\n includeInvalidSites,\n includeInvalidBitbucketSite,\n removeNonAdminSites\n}: AISAvailableProductsOptions): AsyncResult {\n const stargateClient = useStargateClient();\n\n return useAsync(\n () =>\n stargateClient.availableProducts({\n includeInvalidSites,\n includeInvalidBitbucketSite,\n removeNonAdminSites\n }),\n []\n );\n}\n","import {\n BitbucketWorkspacesResponse,\n BitbucketWorkspaceOptions\n} from '@atlassiansox/asc-stargate';\n\nimport { useStargateClient } from './use-stargate-client';\nimport { AsyncResult, useAsync } from './use-async';\n\ntype UseBitbucketWorkspacesTypeOptions = {\n readonly makeRequest?: boolean;\n} & BitbucketWorkspaceOptions;\n\nexport function useBitbucketWorkspaces({\n nextUrl,\n urlQuery,\n makeRequest\n}: UseBitbucketWorkspacesTypeOptions): AsyncResult {\n const stargateClient = useStargateClient();\n\n return useAsync(\n () =>\n makeRequest\n ? stargateClient.bitbucketWorkspaces({ nextUrl, urlQuery })\n : Promise.resolve(null),\n [makeRequest]\n );\n}\n","import {\n IBXPExpressClient,\n BXPExpressClient\n} from '@atlassiansox/bxp-express-client';\nimport React, { createContext, PropsWithChildren, useContext } from 'react';\n\nconst BXPExpressClientContext = createContext(\n new BXPExpressClient()\n);\n\nexport function useBXPExpressClient(): IBXPExpressClient {\n return useContext(BXPExpressClientContext);\n}\n\nexport type BXPExpressClientProviderProps = PropsWithChildren<{\n readonly client: IBXPExpressClient;\n}>;\n\nexport function BXPExpressClientProvider({\n client,\n children\n}: BXPExpressClientProviderProps) {\n return (\n \n {children}\n \n );\n}\n","import { HamletClient, IHamletClient } from '@atlassiansox/asc-hamlet';\nimport React, { createContext, PropsWithChildren, useContext } from 'react';\n\nconst HamletClientContext = createContext(new HamletClient());\n\nexport function useHamletClient(): IHamletClient {\n return useContext(HamletClientContext);\n}\n\nexport type HamletClientProviderProps = PropsWithChildren<{\n readonly client: IHamletClient;\n}>;\n\nexport function HamletClientProvider({\n client,\n children\n}: HamletClientProviderProps) {\n return (\n \n {children}\n \n );\n}\n","import { ICnasClient, CnasClient } from '@atlassiansox/asc-cnas';\nimport React, { createContext, PropsWithChildren, useContext } from 'react';\n\nconst CnasClientContext = createContext(new CnasClient());\n\nexport function useCnasClient(): ICnasClient {\n return useContext(CnasClientContext);\n}\n\nexport type CnasClientProviderProps = PropsWithChildren<{\n readonly client: ICnasClient;\n}>;\n\nexport function CnasClientProvider({\n client,\n children\n}: CnasClientProviderProps) {\n return (\n \n {children}\n \n );\n}\n","import { generateAsapHeader } from '@atlassiansox/asc-asap';\nimport { mapResponseToJson, mapResponseToText } from '@atlassiansox/asc-core';\nimport { fetch, Headers } from 'cross-fetch';\nimport {\n CloudNameAvailabilityRequest,\n CloudNameAvailabilityResponse,\n GetNameAvailabilityRequest,\n GetNameAvailabilityResponse\n} from './cnas-client.types';\n\nexport const STAGING_BASE_URL =\n 'https://wac.stg.internal.atlassian.com/apis/stg/cnas';\nexport const PRODUCTION_BASE_URL = 'https://www.atlassian.com/apis/prod/cnas';\nexport const ASAP_AUDIENCE = 'cloud-name-availability';\n\nexport type CnasClientOptions = {\n readonly baseUrl?: string;\n};\n\nexport interface ICnasClient {\n getNameAvailability: ({\n cloudName\n }: GetNameAvailabilityRequest) => Promise;\n cloudNameAvailabilityCheck: ({\n cloudName,\n auth\n }: CloudNameAvailabilityRequest) => Promise;\n getHealthCheck: () => Promise;\n}\n\nexport class CnasClient implements ICnasClient {\n private readonly baseUrl: string;\n\n public constructor({ baseUrl = STAGING_BASE_URL }: CnasClientOptions = {}) {\n this.baseUrl = baseUrl;\n }\n\n public async getNameAvailability({\n cloudName\n }: GetNameAvailabilityRequest): Promise {\n return mapResponseToJson(\n await fetch(`${this.baseUrl}/shopping-cart/name-availability/queries`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n cloudName\n })\n })\n );\n }\n\n public async getHealthCheck(): Promise {\n return mapResponseToText(\n await fetch(`${this.baseUrl}/healthcheck`, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json'\n }\n })\n );\n }\n\n public async cloudNameAvailabilityCheck({\n cloudName,\n auth\n }: CloudNameAvailabilityRequest): Promise {\n const headers = new Headers();\n\n headers.append('Content-Type', 'application/json');\n headers.append(\n 'Authorization',\n generateAsapHeader({\n ...auth.asap,\n audience: ASAP_AUDIENCE\n })\n );\n return mapResponseToJson(\n await fetch(`${this.baseUrl}/name-availability/check`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n cloudName\n })\n })\n );\n }\n}\n","import { Cookie } from '@atlassiansox/asc-core';\n\nexport type XsrfToken = string;\n\nexport type AtlassianIdAuth = {\n readonly xsrfToken: XsrfToken;\n readonly cloudSessionTokenCookie: Cookie;\n};\n\nexport function isAtlassianIdAuth(value: unknown): value is AtlassianIdAuth {\n const auth = value as AtlassianIdAuth | undefined;\n return !!auth?.xsrfToken && !!auth.cloudSessionTokenCookie;\n}\n","import { generateAsapHeader } from '@atlassiansox/asc-asap';\nimport {\n Cookie,\n mapResponseToJson,\n mapResponseToText,\n serializeCookie\n} from '@atlassiansox/asc-core';\nimport { fetch, Headers } from 'cross-fetch';\n\nimport { isAtlassianIdAuth } from './auth';\nimport {\n ActivateProductsRequest,\n ActivateProductsResponse,\n CloudStatusResponse,\n CreateCloudRequest,\n CreateCloudResponse,\n GetCloudStatusOptions,\n GetNameAvailabilityOptions,\n GetNameAvailabilityResponseBody,\n ReserveNameOptions,\n ReserveNameResponseBody,\n RenameSiteOptions,\n RenameSiteResponseBody,\n PollProgressOptions,\n PollProgressResponseBody,\n ResourcePackagesCheckOptions,\n ResourcePackagesCheckResponseBody\n} from './cofs-client.types';\n\nexport const PUBLIC_PROD_BASE_URL = 'https://www.atlassian.com/apis/prod/cofs';\nexport const PROD_BASE_URL = 'https://cofs.prod.public.atl-paas.net';\nexport const STAGING_BASE_URL = 'https://cofs.staging.public.atl-paas.net';\n\nconst AUDIENCE = 'cofs';\n\nexport type CofsClientOptions = {\n readonly baseUrl?: string;\n};\n\nexport interface ICofsClient {\n activateProducts(\n request: ActivateProductsRequest\n ): Promise;\n createCloud(\n originalRequest: CreateCloudRequest\n ): Promise;\n getNameAvailability(options: GetNameAvailabilityOptions): Promise;\n reserveName(options: ReserveNameOptions): Promise;\n renameSite({ cloudId, newSiteName }: RenameSiteOptions): Promise;\n pollProgress({\n progressUri\n }: PollProgressOptions): Promise;\n getCloudStatus(request: GetCloudStatusOptions): Promise;\n getHealthCheck(): Promise;\n resourcePackagesCheck(\n options: ResourcePackagesCheckOptions\n ): Promise;\n}\n\n/**\n * @see: https://cofs.prod.public.atl-paas.net/api.html\n */\nexport class CofsClient implements ICofsClient {\n private readonly baseUrl: string;\n\n public constructor({ baseUrl = STAGING_BASE_URL }: CofsClientOptions = {}) {\n this.baseUrl = baseUrl;\n }\n\n public async activateProducts(\n request: ActivateProductsRequest\n ): Promise {\n const headers = new Headers({\n 'Accept': 'application/json',\n 'Content-Type': 'application/json'\n });\n const { cloudId, body, auth, analyticsData, userContextToken } = request;\n\n let cookiesList: Cookie[] = [];\n if (analyticsData) {\n cookiesList = analyticsData;\n }\n\n if (isAtlassianIdAuth(auth)) {\n headers.append('ATL-XSRF-Token', auth.xsrfToken);\n cookiesList.push(auth.cloudSessionTokenCookie);\n } else {\n headers.append(\n 'Authorization',\n generateAsapHeader({\n ...auth.asap,\n audience: AUDIENCE\n })\n );\n\n if (userContextToken) {\n headers.append('User-Context', userContextToken);\n }\n }\n\n if (cookiesList.length) {\n headers.append(\n 'Cookie',\n cookiesList.map((cookieItem) => serializeCookie(cookieItem)).join('; ')\n );\n }\n\n return mapResponseToJson(\n await fetch(`${this.baseUrl}/cloud/${cloudId}/activateProducts`, {\n method: 'POST',\n headers,\n body: JSON.stringify(body)\n })\n );\n }\n\n public async createCloud(\n originalRequest: CreateCloudRequest\n ): Promise {\n const request = originalRequest;\n const headers = new Headers({\n 'Accept': 'application/json',\n 'Content-Type': 'application/json'\n });\n const {\n body,\n auth,\n userContextToken,\n source,\n clientIp,\n analyticsData\n } = request;\n\n if (source) {\n headers.append('X-ATL-Source', source);\n }\n\n let cookiesList: Cookie[] = [];\n if (analyticsData) {\n cookiesList = analyticsData;\n }\n\n if (isAtlassianIdAuth(auth)) {\n headers.append('ATL-XSRF-Token', auth.xsrfToken);\n cookiesList.push(auth.cloudSessionTokenCookie);\n } else {\n headers.append(\n 'Authorization',\n generateAsapHeader({\n ...auth.asap,\n audience: AUDIENCE\n })\n );\n\n if (userContextToken) {\n headers.append('User-Context', userContextToken);\n }\n }\n\n if (cookiesList.length) {\n headers.append(\n 'Cookie',\n cookiesList.map((cookieItem) => serializeCookie(cookieItem)).join('; ')\n );\n }\n\n if (clientIp) {\n headers.append('X-Forwarded-For', clientIp);\n }\n\n return mapResponseToJson(\n await fetch(`${this.baseUrl}/cloud`, {\n method: 'POST',\n headers,\n body: JSON.stringify(body)\n })\n );\n }\n\n public async getNameAvailability({\n name\n }: GetNameAvailabilityOptions): Promise {\n const {\n success\n } = await mapResponseToJson(\n await fetch(`${this.baseUrl}/nameAvailability`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n name\n })\n })\n );\n\n return success;\n }\n\n public async reserveName({\n cloudName,\n auth\n }: ReserveNameOptions): Promise {\n const headers = new Headers({\n 'Accept': 'application/json',\n 'Content-Type': 'application/json'\n });\n\n headers.append(\n 'Authorization',\n generateAsapHeader({\n ...auth.asap,\n audience: AUDIENCE\n })\n );\n\n return mapResponseToJson(\n await fetch(`${this.baseUrl}/cloudname/availability/reserve`, {\n method: 'POST',\n headers,\n body: JSON.stringify({\n cloudName\n }),\n credentials: 'include'\n })\n );\n }\n\n public async resourcePackagesCheck({\n entitlements,\n auth\n }: ResourcePackagesCheckOptions): Promise {\n const headers = new Headers({\n 'Accept': 'application/json',\n 'Content-Type': 'application/json'\n });\n const packageUris = entitlements.map((entitlement) => {\n return `ari:cloud:platform::lifecycle-resource-package/${entitlement}`;\n });\n\n headers.append(\n 'Authorization',\n generateAsapHeader({\n ...auth.asap,\n audience: AUDIENCE\n })\n );\n\n return mapResponseToJson(\n await fetch(`${this.baseUrl}/resource-packages/info`, {\n method: 'POST',\n headers,\n body: JSON.stringify({\n 'package-uris': packageUris\n }),\n credentials: 'include'\n })\n );\n }\n\n public async renameSite({\n cloudId,\n newSiteName\n }: RenameSiteOptions): Promise {\n const { progressUri } = await mapResponseToJson(\n await fetch(`${this.baseUrl}/${cloudId}/rename`, {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json'\n },\n credentials: 'include',\n body: JSON.stringify({ cloudName: newSiteName })\n })\n );\n return progressUri;\n }\n\n public async getCloudStatus({\n cloudId,\n requestId\n }: GetCloudStatusOptions): Promise {\n return mapResponseToJson(\n await fetch(`${this.baseUrl}/cloud/${cloudId}/status/${requestId}`, {\n headers: {\n 'Content-Type': 'application/json'\n },\n credentials: 'include'\n })\n );\n }\n\n public async pollProgress({\n progressUri\n }: PollProgressOptions): Promise {\n return mapResponseToJson(\n await fetch(progressUri, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json'\n },\n credentials: 'include'\n })\n );\n }\n\n public async getHealthCheck(): Promise {\n return mapResponseToText(\n await fetch(`${this.baseUrl}/healthcheck`, {\n method: 'GET',\n\n headers: {\n 'Content-Type': 'application/json'\n }\n })\n );\n }\n}\n","import { ICofsClient, CofsClient } from '@atlassiansox/asc-cofs';\nimport React, { createContext, PropsWithChildren, useContext } from 'react';\n\nconst CofsClientContext = createContext(new CofsClient());\n\nexport function useCofsClient(): ICofsClient {\n return useContext(CofsClientContext);\n}\n\nexport type CofsClientProviderProps = PropsWithChildren<{\n readonly client: ICofsClient;\n}>;\n\nexport function CofsClientProvider({\n client,\n children\n}: CofsClientProviderProps) {\n return (\n \n {children}\n \n );\n}\n","import React, { createContext, PropsWithChildren, useContext } from 'react';\n\nconst LocaleContext = createContext('en');\n\n/**\n * this should be replaced with new version of react-intl\n */\nexport function useLocale(): string {\n return useContext(LocaleContext);\n}\n\nexport type LocaleProviderProps = {\n readonly locale: string;\n};\n\nexport function LocaleProvider({\n locale,\n children\n}: PropsWithChildren) {\n return (\n {children}\n );\n}\n","import { UserProfile } from '@atlassiansox/asc-stargate';\n\nimport { useStargateClient } from './use-stargate-client';\nimport { AsyncResult, useAsync } from './use-async';\n\nexport function useMe(): AsyncResult {\n const stargateClient = useStargateClient();\n\n return useAsync(() => stargateClient.me({}), []);\n}\n","import { ProductKey } from '@atlassiansox/asc-product-catalog';\nimport {\n PricingCalculation,\n PricingPeriod\n} from '@atlassian/bxp-product-pricing';\n\nimport { usePricingCalculator } from '../contexts';\nimport { AsyncResult, useAsync } from './use-async';\n\nexport type PricingResult = PricingCalculation & {\n readonly units: number;\n readonly period: PricingPeriod;\n};\n\nexport function usePricing(\n productKey: ProductKey,\n units: number,\n period: PricingPeriod,\n currencyIsoCode: string\n): AsyncResult {\n const calculator = usePricingCalculator();\n return useAsync(async () => {\n const pricing = await calculator.calculatePrice({\n productKey,\n units,\n period,\n currencyIsoCode\n });\n return {\n ...pricing,\n units,\n period\n };\n }, [productKey, units, period, currencyIsoCode]);\n}\n","import { Cookie } from '@atlassiansox/asc-core';\nimport { Asap } from './models';\n\n/**\n * Auth\n */\n\nexport type AsapAuth = {\n readonly asap: Asap;\n};\n\nexport function isAsapAuth(auth: AsapAuth) {\n return !!auth.asap.issuer && !!auth.asap.keyId && !!auth.asap.privateKey;\n}\n\nexport type CloudSessionTokenCookieType = {\n readonly cloudSessionTokenCookie?: Cookie;\n};\n\n/**\n * /me\n */\n\nexport type MeResponse = {\n readonly account_id: string;\n readonly name: string;\n readonly email: string;\n readonly picture: string;\n readonly locale: string;\n readonly zoneinfo: string;\n};\n\nexport type WorkspaceUserType = {\n readonly display_name: string;\n readonly account_id: string;\n readonly links: Record;\n readonly nickname: string;\n readonly type: string;\n readonly uuid: string;\n};\n\nexport type WorkspaceType = {\n readonly name: string;\n readonly type: string;\n readonly uuid: string;\n readonly links: Record;\n readonly slug: string;\n};\n\nexport const CHECK_ADD_PROJECT_ACTION = 'addProduct';\nexport const CHECK_ADD_PROJECT_ARI_PREFIX = 'ari:cloud:platform::site/';\n\nexport type CheckAddProductCapabilitiesRequestAsap = {\n readonly auth: AsapAuth;\n};\n\nexport type CheckAddProductCapabilitiesRequest = {\n readonly cloudId: string;\n readonly product: string;\n readonly licenceLimit: number;\n} & CheckAddProductCapabilitiesRequestAsap;\n\nexport type CheckAddProductCapabilitiesRequestItem = {\n readonly action: string;\n readonly owner: string;\n readonly product: string;\n readonly licenceLimit: number;\n};\n\nexport type CheckAddProductCapabilitiesResponse = {\n readonly capable: boolean;\n readonly resources: [\n {\n readonly resource: string;\n readonly availableLicences: number;\n readonly requiredLicences: number;\n }\n ];\n};\n\nexport type CheckAuthenticationMethodsAvailableRequest = {\n readonly email: string;\n readonly application: string;\n readonly redirect_to: string;\n readonly auth: AsapAuth;\n};\n\nexport type CheckAuthenticationMethodsAvailableResponse = {\n readonly account_id: string;\n readonly methods: [\n {\n readonly type: string;\n readonly redirect_to: string;\n }\n ];\n};\n\nexport type UserSignupResponse = {\n readonly id: string;\n};\n\nexport type PermissionsPermittedRequestAsap = {\n readonly auth: AsapAuth;\n};\n\nexport type PermissionsPermittedRequestParams = {\n readonly dontRequirePrincipalInSite: boolean;\n readonly permissionId: string;\n readonly principalId: string;\n readonly resourceId: string;\n};\n\nexport type PermissionsPermittedRequest = PermissionsPermittedRequestAsap &\n PermissionsPermittedRequestParams;\n\nexport type PermissionsPermittedResponse = string;\n\nexport type PermissionsBulkPermittedRequestParams = {\n readonly query: PermissionsPermittedRequestParams[];\n};\n\nexport type PermissionsBulkPermittedRequest = PermissionsPermittedRequestAsap &\n PermissionsBulkPermittedRequestParams;\n\nexport type PermissionsBulkPermittedResponse = string;\n\nexport type SignupRequest = {\n readonly email: string;\n readonly displayName?: string;\n readonly application: string;\n readonly redirectTo?: string;\n readonly suppressEmail?: boolean;\n readonly locale?: string;\n readonly recaptchaScore?: number;\n readonly userAgent?: string;\n readonly anonymousId?: string;\n};\n\nexport type SignupRequestOptions = {\n readonly auth: AsapAuth;\n};\n\nexport type GetUserUpstreamResponse = {\n name: string;\n email: string;\n};\n\nexport type GetUsersByCloudIdRequest = {\n readonly cloudId: string;\n readonly auth: AsapAuth;\n};\n\nexport type GetUsersByCloudIdResponse = {\n Resources: Array;\n};\n\nexport type User = {\n id: string;\n displayName: string;\n locale: string;\n emails: Array<{\n value: string;\n primary: boolean;\n }>;\n};\n\nexport type GetUserByCloudAndAaIdRequest = {\n readonly cloudId: string;\n readonly atlassianAccountId: string;\n readonly auth: AsapAuth;\n};\n\nexport type GetUserByCloudAndAaIdResponseEmail = {\n readonly value: string;\n readonly type: string;\n readonly primary: boolean;\n};\n\nexport type GetUserByCloudAndAaIdResponseGroup = {\n readonly value: string;\n readonly display: string;\n};\n\nexport type GetUserByCloudAndAaIdResponse = {\n readonly id: string;\n readonly userName: string;\n readonly displayName: string;\n readonly title: string;\n readonly active: boolean;\n readonly timezone: string;\n readonly emails: GetUserByCloudAndAaIdResponseEmail[];\n readonly groups: GetUserByCloudAndAaIdResponseGroup[];\n};\n\nexport type GetPrincipalsByResourceRequest = {\n readonly auth: AsapAuth;\n readonly resourceId: string;\n readonly permissionId: string;\n readonly principalFilter: string;\n};\n\nexport type GetPrincipalsByResourceResponse = {\n readonly results: {\n resourceId: string;\n principalId: string;\n permissionId: string;\n }[];\n};\n\nexport type InviteUserRequest = {\n readonly auth: AsapAuth;\n readonly inviter: string;\n readonly invitee: string;\n readonly application?: string;\n readonly daysValidFor?: number;\n readonly continueUrl?: string;\n readonly suppressEmail?: boolean;\n};\n\nexport type InviteUserResponse = {\n readonly invitationUrl: string;\n};\n\nexport type GetUserIdByEmailAddressesRequest = {\n readonly auth: AsapAuth;\n readonly emailAddresses: string[];\n};\n\nexport type GetUserIdByEmailAddressesResponseItem = {\n readonly email: string;\n readonly account_id: string;\n};\n","import _ from 'lodash';\n\nimport {\n mapResponseToJson,\n mapResponseToText,\n UnsucessfulFetchError\n} from '@atlassiansox/asc-core';\nimport { generateAsapHeader } from '@atlassiansox/asc-asap';\nimport { fetch, Headers } from 'cross-fetch';\n\nimport {\n CHECK_ADD_PROJECT_ACTION,\n CHECK_ADD_PROJECT_ARI_PREFIX,\n CheckAddProductCapabilitiesRequest,\n CheckAddProductCapabilitiesRequestItem,\n CheckAddProductCapabilitiesResponse,\n CheckAuthenticationMethodsAvailableRequest,\n CheckAuthenticationMethodsAvailableResponse,\n isAsapAuth,\n PermissionsPermittedRequest,\n PermissionsPermittedRequestParams,\n PermissionsPermittedResponse,\n PermissionsBulkPermittedRequest,\n GetUserUpstreamResponse,\n SignupRequest,\n SignupRequestOptions,\n UserSignupResponse,\n GetUsersByCloudIdRequest,\n GetUsersByCloudIdResponse,\n GetUserByCloudAndAaIdRequest,\n GetUserByCloudAndAaIdResponse,\n GetPrincipalsByResourceRequest,\n GetPrincipalsByResourceResponse,\n PermissionsBulkPermittedResponse,\n InviteUserRequest,\n InviteUserResponse,\n GetUserIdByEmailAddressesRequest,\n GetUserIdByEmailAddressesResponseItem\n} from './identity-client.types';\n\nexport const DEFAULT_IDENTITY_BASE_URL = 'https://id.staging.atl-paas.net';\nconst ASAP_AUDIENCE = 'identity-platform';\n\nexport interface IIdentityClient {\n permissionsPermitted(\n request: PermissionsPermittedRequest\n ): Promise;\n permissionsBulkPermitted(\n request: PermissionsBulkPermittedRequest\n ): Promise;\n checkAddProductCapabilities(\n request: CheckAddProductCapabilitiesRequest\n ): Promise;\n checkAuthenticationMethodsAvailable(\n options: CheckAuthenticationMethodsAvailableRequest\n ): Promise;\n getUser(accountId: string): Promise;\n getUserName(accountId: string): Promise;\n userSignup(\n request: SignupRequest,\n options: SignupRequestOptions\n ): Promise;\n getUsersByCloudId(\n request: GetUsersByCloudIdRequest\n ): Promise;\n getHealthCheck(): Promise;\n getUserByCloudAndAaId(\n request: GetUserByCloudAndAaIdRequest\n ): Promise;\n getPrincipalsByResource(\n request: GetPrincipalsByResourceRequest\n ): Promise;\n inviteUser(request: InviteUserRequest): Promise;\n getUserIdsByEmailAddresses(\n emailAddresses: GetUserIdByEmailAddressesRequest\n ): Promise;\n}\n\nexport type IdentityClientOptions = {\n readonly baseUrlStargate?: string;\n readonly baseUrlIdentity?: string;\n};\n\nexport class IdentityClient implements IIdentityClient {\n private readonly baseUrlIdentity: string;\n\n public constructor({\n baseUrlIdentity = DEFAULT_IDENTITY_BASE_URL\n }: IdentityClientOptions = {}) {\n this.baseUrlIdentity = baseUrlIdentity;\n }\n\n public async permissionsPermitted(\n request: PermissionsPermittedRequest\n ): Promise {\n const {\n auth,\n permissionId,\n principalId,\n resourceId,\n dontRequirePrincipalInSite\n } = request;\n\n // URL is defined globally for node versions >= 10.0.0 and globally in browsers,\n // so I'm assuming this should work cross platform\n const url = new URL(`${this.baseUrlIdentity}/v1/permissions/permitted`);\n const params: PermissionsPermittedRequestParams = {\n permissionId,\n principalId,\n resourceId,\n dontRequirePrincipalInSite\n };\n _.map(params, (val, key) => {\n url.searchParams.append(key, val.toString());\n });\n\n const headers = new Headers();\n\n if (isAsapAuth(auth)) {\n headers.append(\n 'Authorization',\n generateAsapHeader({\n ...auth.asap,\n audience: ASAP_AUDIENCE\n })\n );\n }\n\n return mapResponseToText(\n await fetch(`${url}`, {\n method: 'GET',\n headers\n })\n );\n }\n\n public async permissionsBulkPermitted(\n request: PermissionsBulkPermittedRequest\n ): Promise {\n const { auth, query } = request;\n\n const url = new URL(\n `${this.baseUrlIdentity}/v3/permissions/bulk/permitted`\n );\n\n const headers = new Headers();\n\n if (isAsapAuth(auth)) {\n headers.append(\n 'Authorization',\n generateAsapHeader({\n ...auth.asap,\n audience: ASAP_AUDIENCE\n })\n );\n }\n\n headers.append('Accept', 'application/json');\n headers.append('Content-Type', 'application/json');\n\n return mapResponseToText(\n await fetch(`${url}`, {\n method: 'POST',\n headers,\n body: JSON.stringify(query)\n })\n );\n }\n\n public async checkAddProductCapabilities(\n request: CheckAddProductCapabilitiesRequest\n ): Promise {\n const { auth, cloudId, product, licenceLimit } = request;\n\n const url = new URL(`${this.baseUrlIdentity}/v2/licences/capabilities`);\n const requestData: CheckAddProductCapabilitiesRequestItem[] = [\n {\n action: CHECK_ADD_PROJECT_ACTION,\n owner: `${CHECK_ADD_PROJECT_ARI_PREFIX}${cloudId}`,\n product,\n licenceLimit\n }\n ];\n const headers = new Headers();\n\n headers.append('Content-Type', 'application/json');\n\n if (isAsapAuth(auth)) {\n headers.append(\n 'Authorization',\n generateAsapHeader({\n ...auth.asap,\n audience: ASAP_AUDIENCE\n })\n );\n }\n\n const response = await fetch(`${url}`, {\n method: 'post',\n headers,\n body: JSON.stringify(requestData)\n });\n\n if (response.ok) {\n return response.json();\n } else {\n throw new UnsucessfulFetchError({\n response\n });\n }\n }\n\n public async checkAuthenticationMethodsAvailable(\n options: CheckAuthenticationMethodsAvailableRequest\n ): Promise {\n const { email, redirect_to, application, auth } = options;\n\n return mapResponseToJson(\n await fetch(\n `${this.baseUrlIdentity}/v2/authentication/methods-available`,\n {\n method: 'POST',\n headers: {\n 'Authorization': generateAsapHeader({\n ...auth.asap,\n audience: ASAP_AUDIENCE\n }),\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n email,\n redirect_to,\n application\n })\n }\n )\n );\n }\n\n public async getUser(\n accountId: string\n ): Promise {\n const result = await fetch(`${this.baseUrlIdentity}/v2/users/${accountId}`);\n\n if (result.status === 404) {\n return undefined;\n }\n\n if (!result.ok) {\n throw new Error(await result.text());\n }\n\n return (await result.json()) as GetUserUpstreamResponse;\n }\n\n public async getUserName(accountId: string): Promise {\n const user = await this.getUser(accountId);\n if (!user) {\n return undefined;\n }\n return user.name;\n }\n\n public async getHealthCheck(): Promise {\n return mapResponseToText(\n await fetch(`${this.baseUrlIdentity}/healthcheck`)\n );\n }\n\n public async userSignup(\n request: SignupRequest,\n options: SignupRequestOptions\n ): Promise {\n const {\n application,\n displayName,\n email,\n locale,\n recaptchaScore,\n redirectTo,\n suppressEmail,\n userAgent,\n anonymousId\n } = request;\n\n const headers = new Headers({\n 'Authorization': generateAsapHeader({\n ...options.auth.asap,\n audience: ASAP_AUDIENCE\n }),\n 'Content-Type': 'application/json'\n });\n\n if (anonymousId) {\n headers.append('X-Atl-Anonymous-Id', anonymousId);\n }\n\n const context = {\n ...(userAgent && {\n deviceInfo: {\n userAgent\n }\n }),\n ...(recaptchaScore && {\n riskScore: {\n type: 'reCAPTCHA',\n value: recaptchaScore\n }\n })\n };\n const body = {\n application,\n ...(displayName && { displayName }),\n email,\n ...(locale && { locale }),\n ...(suppressEmail !== undefined && { suppressEmail }),\n ...(redirectTo && { redirect_to: redirectTo }),\n ...(Object.keys(context).length && { context })\n };\n\n return mapResponseToJson(\n await fetch(`${this.baseUrlIdentity}/v2/users/signup`, {\n method: 'POST',\n headers,\n body: JSON.stringify({\n ...body,\n redirect_to: redirectTo\n })\n })\n );\n }\n\n public async getUsersByCloudId(\n request: GetUsersByCloudIdRequest\n ): Promise {\n return mapResponseToJson(\n await fetch(`${this.baseUrlIdentity}/v1/site/${request.cloudId}/Users`, {\n method: 'GET',\n headers: {\n 'Authorization': generateAsapHeader({\n ...request.auth.asap,\n audience: ASAP_AUDIENCE\n }),\n 'Content-Type': 'application/json'\n }\n })\n );\n }\n\n public async getUserByCloudAndAaId(\n request: GetUserByCloudAndAaIdRequest\n ): Promise {\n return mapResponseToJson(\n await fetch(\n `${this.baseUrlIdentity}/v1/site/${request.cloudId}/Users/${request.atlassianAccountId}`,\n {\n method: 'GET',\n headers: {\n 'Authorization': generateAsapHeader({\n ...request.auth.asap,\n audience: ASAP_AUDIENCE\n }),\n 'Content-Type': 'application/json'\n }\n }\n )\n );\n }\n\n public async getPrincipalsByResource(\n request: GetPrincipalsByResourceRequest\n ): Promise {\n return mapResponseToJson(\n await fetch(\n `${this.baseUrlIdentity}/v3/permissions/principalsByResource`,\n {\n method: 'POST',\n headers: {\n 'Authorization': generateAsapHeader({\n ...request.auth.asap,\n audience: ASAP_AUDIENCE\n }),\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n principalFilter: request.principalFilter,\n resourceId: request.resourceId,\n permissionId: request.permissionId\n })\n }\n )\n );\n }\n\n public async inviteUser(\n request: InviteUserRequest\n ): Promise {\n const { auth, ...requestPayload } = request;\n\n const response = await fetch(`${this.baseUrlIdentity}/v1/Users/invite`, {\n method: 'Post',\n headers: {\n 'Authorization': generateAsapHeader({\n ...auth.asap,\n audience: ASAP_AUDIENCE\n }),\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(requestPayload)\n });\n\n if (!response.ok) {\n throw new UnsucessfulFetchError({\n message: `${response.statusText} ${await response.text()}`,\n response\n });\n }\n\n const invitationUrl = response.headers.get('location');\n if (!invitationUrl) {\n throw new Error(\n 'invitation request succeeded but no location header was returned'\n );\n }\n\n return { invitationUrl };\n }\n\n public async getUserIdsByEmailAddresses(\n request: GetUserIdByEmailAddressesRequest\n ): Promise {\n const response = await fetch(\n `${this.baseUrlIdentity}/v2/users/fetch/by-email`,\n {\n method: 'POST',\n headers: {\n 'Authorization': generateAsapHeader({\n ...request.auth.asap,\n audience: ASAP_AUDIENCE\n }),\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n emails: request.emailAddresses\n })\n }\n );\n\n if (!response.ok) {\n throw new Error(`${response.statusText} ${await response.text()}`);\n }\n\n return response.json();\n }\n}\n","/**\n * Commonly-used constants, enums/mappings\n */\n\nexport const DEFAULT_COUNTRY_ISO_CODE = 'US';\nexport const DEFAULT_CURRENCY_ISO_CODE = 'USD';\n\nexport const ENV_DEV = 'dev';\nexport const ENV_STAGING = 'staging';\nexport const ENV_PRODUCTION = 'production';\n\nexport const URL_STAGING_IDENTITY = 'https://id.stg.internal.atlassian.com';\nexport const URL_PRODUCTION_IDENTITY = 'https://id.atlassian.com';\n\nexport const URL_STAGING_WAC_DEPRECATED =\n 'https://qa-wac.internal.atlassian.com';\nexport const URL_STAGING_WAC = 'https://wac.stg.internal.atlassian.com';\nexport const URL_PRODUCTION_WAC = 'https://www.atlassian.com';\n\nexport const URL_STAGING_API_PRIVATE =\n 'https://wac.stg.internal.atlassian.com/gateway/api';\nexport const URL_PRODUCTION_API_PRIVATE =\n 'https://www.atlassian.com/gateway/api';\n\nexport const RECAPTCHA_KEY = '6LeTa5ocAAAAAJefQaFL-1ENlPNY3Wq2j-GhcZ6n';\nexport const RECAPTCHA_KEY_TEST = '6Lf0JekdAAAAAAWT2kBc89gFVKhxkwTPxa-e9tvx';\n\nexport enum ProductKey {\n JIRA_SOFTWARE = 'jira-software.ondemand',\n BITBUCKET = 'com.atlassian.bitbucket',\n CONFLUENCE = 'confluence.ondemand',\n OPSGENIE = 'opsgenie',\n JIRA_SERVICE_DESK = 'jira-servicedesk.ondemand',\n JIRA_SERVICE_MANAGEMENT = 'jira-servicedesk.ondemand',\n JIRA_CORE = 'jira-core.ondemand',\n JIRA_WORK_MANAGEMENT = 'jira-core.ondemand',\n ACCESS = 'com.atlassian.identity-manager',\n STATUSPAGE = 'statuspage',\n CONFLUENCE_PLUGIN_QUESTIONS = 'com.atlassian.confluence.plugins.confluence-questions.ondemand',\n CONFLUENCE_TEAM_CALENDARS = 'team.calendars.confluence.ondemand',\n JIRA_ROADMAPS = 'com.radiantminds.roadmaps-jira.ondemand',\n JIRA_BONFIRE = 'bonfire.jira.ondemand',\n JIRA_REFAPP = 'refapp',\n TEAM_CENTRAL = 'townsquare',\n JIRA_PRODUCT_DISCOVERY = 'jira-product-discovery',\n COMPASS = 'compass',\n ATLAS = 'townsquare',\n FABRIC = 'atlassian-whiteboard',\n BEACON = 'beacon'\n}\n\nexport enum AppKey {\n TEMPO = 'is.origo.jira.tempo-plugin',\n ZEPHYR = 'com.thed.zephyr.je',\n BIGPICTURE = 'eu.softwareplant.bigpicture'\n}\n","export namespace Url {\n export function getLocation(): Location {\n return window.location;\n }\n\n export function getUrl(): string {\n return getLocation().href;\n }\n\n export function getUnhashedUrl(url = getUrl()) {\n url = url || window.location.href;\n const hashIndex = url.indexOf('#');\n return url.substring(0, hashIndex > -1 ? hashIndex : url.length);\n }\n\n export function htmlEscape(str: string) {\n return String(str)\n .replace(/&/g, '&')\n .replace(/\"/g, '"')\n .replace(/'/g, ''')\n .replace(//g, '>');\n }\n\n export function getParameterByName(name: string, url = getUrl()): string {\n name = name.replace(/[\\[\\]]/g, '\\\\$&');\n const regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)');\n const results = regex.exec(url);\n\n if (!results || !results[2]) {\n return '';\n }\n return decodeURIComponent(results[2].replace(/\\+/g, ' '));\n }\n\n export function getQueryString(url = getUrl()) {\n let questionIndex;\n let r = window.location?.search?.substring(\n 1,\n window.location.search.length\n );\n if (url) {\n url = getUnhashedUrl(url);\n questionIndex = url.indexOf('?');\n r = questionIndex > -1 ? url.substring(questionIndex + 1) : '';\n }\n return r;\n }\n\n export function getUrlParams(url = getUrl()) {\n const qs: string = getQueryString(url);\n let r: { [key: string]: any } | null = null;\n let paramPairs;\n let keyValuePair: string[] | null;\n if (qs) {\n paramPairs = decodeURIComponent(qs).split('&');\n for (let i = 0, iLen = paramPairs.length; i < iLen; i++) {\n if (!r) {\n r = {};\n }\n keyValuePair = paramPairs[i].split('=');\n if (keyValuePair.length > 2) {\n keyValuePair[1] = paramPairs[i].split('=').slice(1).join('=');\n }\n r[keyValuePair[0]] =\n keyValuePair.length > 1 ? decodeURIComponent(keyValuePair[1]) : null;\n }\n }\n return r;\n }\n}\n","import {\n ENV_DEV,\n ENV_PRODUCTION,\n ENV_STAGING,\n URL_PRODUCTION_API_PRIVATE,\n URL_PRODUCTION_IDENTITY,\n URL_PRODUCTION_WAC,\n URL_STAGING_API_PRIVATE,\n URL_STAGING_IDENTITY,\n URL_STAGING_WAC,\n URL_STAGING_WAC_DEPRECATED,\n RECAPTCHA_KEY,\n RECAPTCHA_KEY_TEST\n} from '../constants';\nimport { Url } from './url';\n\nexport namespace Environment {\n const VALID_LOCALES = [\n 'cn',\n 'cs',\n 'de',\n 'es',\n 'fr',\n 'it',\n 'ko',\n 'hu',\n 'nl',\n 'ja',\n 'pl',\n 'br',\n 'ro',\n 'fi',\n 'ru',\n 'zh'\n ];\n\n // Map of bxp-kit locales to equivalent growth-kit locale, as found in\n // https://bitbucket.org/atlassian/growth-kit/src/master/packages/components/up-flow/_locales/\n // NOTE: List compiled using WAC language switcher, as VALID_LOCALES is not accurate\n type LocaleMap = { [key: string]: string };\n const BXP_TO_GROWTH_LOCALE_MAP: LocaleMap = {\n de: 'de',\n es: 'es',\n fr: 'fr',\n it: 'it',\n ko: 'ko',\n hu: 'hu',\n nl: 'nl',\n ja: 'ja',\n pl: 'pl',\n br: 'pt-BR',\n ru: 'ru',\n zh: 'zh'\n };\n\n export function getSubdomain() {\n const urlParts = Url.getLocation().hostname.split('.');\n\n if (urlParts[1] === 'dev') {\n return 'localhost';\n }\n\n return urlParts[0];\n }\n\n export function getEnvironment() {\n switch (getSubdomain()) {\n case 'wac':\n case 'qa-wac':\n case 'author':\n case 'proof':\n case 'statlas':\n case 'truth':\n return ENV_STAGING;\n case 'localhost':\n case 'local':\n return ENV_DEV;\n case 'www':\n case 'atlassian':\n case 'bitbucket':\n case 'sourcetreeapp':\n case 'agile':\n case 'git':\n case 'software':\n return ENV_PRODUCTION;\n default:\n /* for omlet instances */\n return ENV_STAGING;\n }\n }\n\n export function isProduction() {\n return getEnvironment() === ENV_PRODUCTION;\n }\n\n export function isDev() {\n return getEnvironment() === ENV_DEV;\n }\n\n export function isStaging() {\n return getEnvironment() === ENV_STAGING;\n }\n\n export function getIdentityBaseUrl() {\n if (!isProduction()) {\n return URL_STAGING_IDENTITY;\n } else {\n return URL_PRODUCTION_IDENTITY;\n }\n }\n\n export function getWacIntegrationUrl() {\n if (!isProduction()) {\n const useQaWAC =\n window.location.hostname.includes('qa-wac') ||\n window.location.hostname.includes('author');\n\n return useQaWAC ? URL_STAGING_WAC_DEPRECATED : URL_STAGING_WAC;\n } else {\n return URL_PRODUCTION_WAC;\n }\n }\n\n export function getApiPrivateUrl() {\n if (!isProduction()) {\n return URL_STAGING_API_PRIVATE;\n } else {\n return URL_PRODUCTION_API_PRIVATE;\n }\n }\n\n export function getHamletUrl() {\n if (!isProduction()) {\n return `${getWacIntegrationUrl()}/apis/stg/hamlet`;\n } else {\n return `${getWacIntegrationUrl()}/hamlet`;\n }\n }\n\n export function getInternationalSubdomain() {\n const hostnameSubdomain = getSubdomain();\n if (!VALID_LOCALES.includes(hostnameSubdomain)) {\n return false;\n }\n return hostnameSubdomain;\n }\n\n export function getPathLocale() {\n const pathParts = window.location.pathname.split('/');\n\n // check for https://author.marketing.internal.atlassian.com/wac/ja\n const localeIndex = pathParts.length > 2 && pathParts[1] === 'wac' ? 2 : 1;\n return pathParts.length > 1 &&\n VALID_LOCALES.includes(pathParts[localeIndex])\n ? `/${pathParts[localeIndex]}`\n : '';\n }\n\n // Return a locale that is compatible with growth-kit\n // https://bitbucket.org/atlassian/growth-kit/src/master/packages/components/up-flow/_locales/\n export function getGrowthKitLocale(): string {\n const currentLocale = getPathLocale().substring(1);\n const growthKitLocale = BXP_TO_GROWTH_LOCALE_MAP[currentLocale];\n if (growthKitLocale !== undefined) {\n return growthKitLocale;\n }\n return '';\n }\n\n type GetCurrentSearchParamOptions = {\n readonly bundle?: string;\n readonly product?: string;\n readonly edition?: string;\n readonly templateId?: string;\n readonly migrationSourceUuid?: string;\n readonly developer?: string;\n readonly src?: string;\n };\n\n export function getCurrentSearchParam({\n bundle,\n product,\n edition,\n templateId,\n migrationSourceUuid,\n developer,\n src\n }: GetCurrentSearchParamOptions) {\n const location = Url.getLocation();\n const internationalSubdomain = getInternationalSubdomain();\n\n const params = new URLSearchParams(location.search.slice(1));\n\n if (internationalSubdomain) {\n params.set('lang', internationalSubdomain);\n }\n\n if (bundle) {\n params.set('bundle', bundle);\n }\n\n if (product) {\n params.set('product', product);\n }\n\n if (edition) {\n params.set('edition', edition);\n }\n\n if (templateId) {\n params.set('templateId', templateId);\n }\n\n if (migrationSourceUuid) {\n params.set('migrationSourceUuid', migrationSourceUuid);\n }\n\n if (developer) {\n params.set('developer', developer);\n }\n\n if (src) {\n params.set('src', src);\n }\n\n return '?' + params.toString();\n }\n\n export function getParam(param: string) {\n const params = new URLSearchParams(location.search.slice(1));\n return params.get(param);\n }\n\n type GetSocialSignUpUrlOptions = {\n readonly loginGoogleOrigin: string;\n readonly socialContinueUrl: string;\n readonly bundle?: string;\n readonly product?: string;\n readonly edition?: string;\n readonly templateId?: string;\n readonly migrationSourceUuid?: string;\n readonly developer?: string;\n readonly src?: string;\n readonly continueUrlOverride?: string;\n };\n\n export function getSocialSignUpUrl({\n loginGoogleOrigin,\n socialContinueUrl,\n bundle,\n product,\n edition,\n templateId,\n migrationSourceUuid,\n developer,\n src,\n continueUrlOverride\n }: GetSocialSignUpUrlOptions) {\n const splitPath = socialContinueUrl.split('/');\n\n if (splitPath.length >= 2 && splitPath[1].includes('wac')) {\n // remove contextual path if applicable\n splitPath.splice(0, 2);\n socialContinueUrl = `/${splitPath.join('/')}`;\n }\n socialContinueUrl = `${getWacIntegrationUrl()}${socialContinueUrl}`;\n\n const signupSocialUrl = `${socialContinueUrl}${getCurrentSearchParam({\n bundle,\n product,\n edition,\n templateId,\n migrationSourceUuid,\n developer,\n src\n })}`;\n const cobranding = `application=wac`;\n const socialSignup = `&social-signup-login=true`;\n const atlOrigin = `&atlOrigin=${encodeURIComponent(loginGoogleOrigin)}`;\n let continueUrl = `&continue=${encodeURIComponent(\n `${signupSocialUrl}${socialSignup}`\n )}`;\n const accountPrompt = `&prompt=select_account`;\n\n if (templateId && continueUrlOverride) {\n continueUrl = `&continue=${encodeURIComponent(continueUrlOverride)}`;\n }\n return `${getIdentityBaseUrl()}/login/initiate/google?${cobranding}${atlOrigin}${continueUrl}${accountPrompt}`;\n }\n\n export function getIdSigninUrl(\n atlOriginId?: string,\n skipEncoding?: boolean,\n continueUrlOverride?: string\n ) {\n let currentUrl = skipEncoding\n ? Url.getUrl()\n : encodeURIComponent(Url.getUrl());\n if (continueUrlOverride) {\n currentUrl = skipEncoding\n ? continueUrlOverride\n : encodeURIComponent(continueUrlOverride);\n }\n const returnUrl = atlOriginId\n ? `${getIdentityBaseUrl()}/login?atlOrigin=${atlOriginId}&continue=${currentUrl}`\n : `${getIdentityBaseUrl()}/login?continue=${currentUrl}`;\n return returnUrl;\n }\n\n export function getIdSwitchUserUrl(atlOriginId?: string) {\n const idSigninUrl = new URL(getIdSigninUrl(atlOriginId, false));\n idSigninUrl.searchParams.set('application', 'wac');\n idSigninUrl.searchParams.set('prompt', 'select_account');\n return idSigninUrl.toString();\n }\n\n export const reCaptchaKey = isProduction()\n ? RECAPTCHA_KEY\n : RECAPTCHA_KEY_TEST;\n}\n","import { StargateClient, UserProfile } from '@atlassiansox/asc-stargate';\nimport { Environment } from '../';\n\n/**\n * Promisified `/me`, for when using the hook is not applicable\n */\n\nexport function requestMe(): Promise {\n const stargateClient = new StargateClient({\n baseUrl: Environment.getApiPrivateUrl()\n });\n\n return stargateClient.me({});\n}\n\n/**\n * Name utilities\n */\n\nexport const getFirstName = (fullName = ''): string => {\n return fullName.trim().split(' ')[0];\n};\n\nexport const getLastName = (fullName = ''): string => {\n let lastName = '';\n const names = fullName.trim().split(' ');\n\n if (names.length > 1) {\n names.shift();\n lastName = names.join(' ');\n }\n\n return lastName || '.';\n};\n","/**\n * sessionStorage, localStorage, cookie storage, etc.\n */\n\nexport namespace Storage {\n export function hasStorage(): boolean {\n return (\n localStorage &&\n sessionStorage &&\n typeof localStorage.getItem === 'function' &&\n typeof sessionStorage.getItem === 'function'\n );\n }\n\n /**\n * Localstorage (w/ fallback to cookies)\n */\n\n export function getLocalStorage(key: string) {\n if (!hasStorage) {\n return getCookie(key);\n }\n return localStorage.getItem(key);\n }\n\n export function setLocalStorage(key: string, value: string) {\n if (!hasStorage) {\n setCookie(key, value);\n }\n\n try {\n localStorage.setItem(key, value);\n } catch (e) {\n // Don't store for private browsing\n // tslint:disable-next-line:no-console\n console.log(\n 'Local Storage failed, check if browsing in Safari private window.'\n );\n }\n }\n\n export function removeLocalStorage(key: string) {\n if (!hasStorage) {\n removeCookie(key);\n }\n try {\n localStorage.removeItem(key);\n } catch (e) {\n // Don't remove for private browsing\n // tslint:disable-next-line:no-console\n console.log(\n 'Local Storage failed, check if browsing in Safari private window.'\n );\n }\n }\n\n /**\n * Sessionstorage (w/ fallback to cookies)\n */\n\n export function getSessionStorage(key: string) {\n if (!hasStorage) {\n return getCookie(key);\n }\n return sessionStorage.getItem(key);\n }\n\n export function setSessionStorage(key: string, value: string) {\n if (!hasStorage) {\n setCookie(key, value);\n }\n try {\n sessionStorage.setItem(key, value);\n } catch (e) {\n // Don't store for private browsing\n // tslint:disable-next-line:no-console\n console.log(\n 'Session Storage failed, check if browsing in Safari private window.'\n );\n }\n }\n\n export function removeSessionStorage(key: string) {\n if (!hasStorage) {\n removeCookie(key);\n }\n try {\n sessionStorage.removeItem(key);\n } catch (e) {\n // Don't remove for private browsing\n // tslint:disable-next-line:no-console\n console.log(\n 'Session Storage failed, check if browsing in Safari private window.'\n );\n }\n }\n\n /**\n * Cookie\n */\n\n export function getCookie(key: string) {\n const encodedName = encodeURIComponent(key).replace(/[\\-\\.\\+\\*]/g, '\\\\$&');\n const regex = new RegExp(\n '(?:(?:^|.*;)\\\\s*' + encodedName + '\\\\s*\\\\=\\\\s*([^;]*).*$)|^.*$'\n );\n return decodeURIComponent(document.cookie.replace(regex, '$1')) || null;\n }\n\n export function setCookie(\n key: string,\n value: string,\n days?: number,\n sameSite?: string\n ) {\n let expires = '';\n const sameSiteString = sameSite\n ? `; SameSite=${\n (sameSite && sameSite === 'Strict') || sameSite === 'Lax'\n ? sameSite\n : 'None'\n }`\n : '';\n if (days) {\n const date = new Date();\n date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000);\n expires = '; expires=' + date.toUTCString();\n }\n document.cookie = key + '=' + value + expires + sameSiteString + '; path=/';\n }\n\n export function removeCookie(key: string) {\n setCookie(key, '', -1);\n }\n}\n","import _ from 'lodash';\nimport { Product, ProductKey } from '../';\n\n/**\n * Check whether a signup is for BB/JSW\n */\n\nexport const getIsBundleBbJsw = (products: Product[]): boolean => {\n return (\n products.length === 2 &&\n _.includes(\n _.map(products, (val) => val.product === ProductKey.JIRA_SOFTWARE),\n true\n ) &&\n _.includes(\n _.map(products, (val) => val.product === ProductKey.BITBUCKET),\n true\n )\n );\n};\n\n/**\n * Check whether a signup is for BB\n */\n\nexport const getIsBitbucket = (products: Product[]): boolean => {\n return (\n products.length === 1 &&\n _.includes(\n _.map(products, (val) => val.product === ProductKey.BITBUCKET),\n true\n )\n );\n};\n\n/**\n * Check whether a signup is for Devops (JSW, Conf, BB, OG)\n */\n\nexport const getIsBundleDevops = (products: Product[]): boolean => {\n return (\n products.length === 4 &&\n _.includes(\n _.map(products, (val) => val.product === ProductKey.JIRA_SOFTWARE),\n true\n ) &&\n _.includes(\n _.map(products, (val) => val.product === ProductKey.CONFLUENCE),\n true\n ) &&\n _.includes(\n _.map(products, (val) => val.product === ProductKey.BITBUCKET),\n true\n ) &&\n _.includes(\n _.map(products, (val) => val.product === ProductKey.OPSGENIE),\n true\n )\n );\n};\n","// Here is the ticket, where we pulled the offering ID's\n// https://hello.atlassian.net/browse/BXPSU-421\n\nimport { ProductKey as ProductKeys } from '../constants';\n\nenum PricingType {\n FREE = 'FREE',\n PAID = 'PAID',\n LIMITED_FREE = 'LIMITED_FREE'\n}\n\nconst OFFERING_IDS = {\n dev: {\n [ProductKeys.JIRA_SOFTWARE]: {\n free: {\n offeringId: 'de2887c9-8a55-41d5-b5cf-ad6a5589ebed',\n productKey: ProductKeys.JIRA_SOFTWARE,\n pricingType: PricingType.FREE,\n edition: 'free',\n chargeElement: 'user'\n },\n standard: {\n offeringId: 'a70b5cbb-1ae1-4003-8f4a-9001a4a50526',\n productKey: ProductKeys.JIRA_SOFTWARE,\n pricingType: PricingType.PAID,\n edition: 'standard',\n chargeElement: 'user'\n },\n premium: {\n offeringId: '6dd805b4-da75-4374-a7a7-cf0b12f7ea07',\n productKey: ProductKeys.JIRA_SOFTWARE,\n pricingType: PricingType.PAID,\n edition: 'premium',\n chargeElement: 'user'\n }\n },\n [ProductKeys.CONFLUENCE]: {\n free: {\n offeringId: '7547cfd6-a804-4e42-8bed-e656d49ea09e',\n productKey: ProductKeys.CONFLUENCE,\n pricingType: PricingType.FREE,\n edition: 'free',\n chargeElement: 'user'\n },\n standard: {\n offeringId: '2eda1119-fab4-4699-ab37-ff8f12052cde',\n productKey: ProductKeys.CONFLUENCE,\n pricingType: PricingType.PAID,\n edition: 'standard',\n chargeElement: 'user'\n },\n premium: {\n offeringId: '06ef245c-5fa3-473b-8822-5e6fe072ae4b',\n productKey: ProductKeys.CONFLUENCE,\n pricingType: PricingType.PAID,\n edition: 'premium',\n chargeElement: 'user'\n }\n },\n [ProductKeys.JIRA_SERVICE_MANAGEMENT]: {\n free: {\n offeringId: '2bad3c2f-d740-44a9-b08d-849202f11830',\n productKey: ProductKeys.JIRA_SERVICE_MANAGEMENT,\n pricingType: PricingType.FREE,\n edition: 'free',\n chargeElement: 'agent'\n },\n standard: {\n offeringId: '396efb16-749b-41fa-9cd1-ad10cfefa1d0',\n productKey: ProductKeys.JIRA_SERVICE_MANAGEMENT,\n pricingType: PricingType.PAID,\n edition: 'standard',\n chargeElement: 'agent'\n },\n premium: {\n offeringId: '0c6683b4-4633-4673-beca-690d171de6a5',\n productKey: ProductKeys.JIRA_SERVICE_MANAGEMENT,\n pricingType: PricingType.PAID,\n edition: 'premium',\n chargeElement: 'agent'\n },\n halp: {\n offeringId: `396efb16-749b-41fa-9cd1-ad10cfefa1d0`, // https://workbench.staging.atl-paas.net/offerings/396efb16-749b-41fa-9cd1-ad10cfefa1d0\n pricingPlanId: '7701f274-6c84-45cd-bdb0-493a67355e61', // https://workbench.staging.atl-paas.net/products/jira-servicedesk.ondemand/plans/7701f274-6c84-45cd-bdb0-493a67355e61\n pricingType: PricingType.PAID, // pricing type for CCP\n productKey: ProductKeys.JIRA_SERVICE_MANAGEMENT,\n edition: 'standard',\n chargeElement: 'agent'\n }\n },\n [ProductKeys.JIRA_WORK_MANAGEMENT]: {\n free: {\n offeringId: '769055e8-05f5-4b1a-ba1a-a1afc874ee6d',\n productKey: ProductKeys.JIRA_WORK_MANAGEMENT,\n pricingType: PricingType.FREE,\n edition: 'free',\n chargeElement: 'user'\n },\n standard: {\n offeringId: '5ab35ef5-e441-493a-b6e0-ba2d21a72ac6',\n productKey: ProductKeys.JIRA_WORK_MANAGEMENT,\n pricingType: PricingType.PAID,\n edition: 'standard',\n chargeElement: 'user'\n },\n premium: {\n offeringId: 'd8e9a61a-c83b-4e40-a757-997d5bae2bb2',\n productKey: ProductKeys.JIRA_WORK_MANAGEMENT,\n pricingType: PricingType.PAID,\n edition: 'premium',\n chargeElement: 'user'\n }\n },\n [ProductKeys.JIRA_PRODUCT_DISCOVERY]: {\n free: {\n offeringId: 'd843dd9e-23c5-4d27-af44-5009d568cb6e',\n productKey: ProductKeys.JIRA_PRODUCT_DISCOVERY,\n pricingType: PricingType.FREE,\n edition: 'free',\n chargeElement: 'user'\n },\n standard: {\n offeringId: '35b9268e-66e2-45fb-81d3-dacd1e31831a',\n productKey: ProductKeys.JIRA_PRODUCT_DISCOVERY,\n pricingType: PricingType.PAID,\n edition: 'standard',\n chargeElement: 'user'\n }\n },\n [ProductKeys.COMPASS]: {\n beta: {\n offeringId: '7af07cb3-d4e5-473e-87b3-3ae3bc9248a6',\n productKey: ProductKeys.COMPASS,\n edition: 'beta',\n chargeElement: 'user'\n },\n free: {\n offeringId: '1d1951e5-881c-4f75-b0cd-3c6859dd5759',\n productKey: ProductKeys.COMPASS,\n pricingType: PricingType.FREE,\n edition: 'free',\n chargeElement: 'user'\n },\n standard: {\n offeringId: '575abf20-6cac-4bbc-9666-1791fae8d822',\n productKey: ProductKeys.COMPASS,\n pricingType: PricingType.PAID,\n edition: 'standard',\n chargeElement: 'user'\n }\n },\n [ProductKeys.ATLAS]: {\n free: {\n offeringId: '88064fa1-b573-4358-a9de-ec350aac1ddc',\n productKey: ProductKeys.ATLAS,\n pricingType: PricingType.FREE,\n edition: 'free',\n chargeElement: 'user'\n },\n standard: {\n offeringId: '01c8ddad-8ea4-4da9-8127-71d6ff6de1c9',\n productKey: ProductKeys.ATLAS,\n pricingType: PricingType.PAID,\n edition: 'standard',\n chargeElement: 'user'\n },\n premium: {\n offeringId: 'f7866043-d6e4-4d54-9c6a-4f82c6a1ebe5',\n productKey: ProductKeys.ATLAS,\n pricingType: PricingType.PAID,\n edition: 'premium',\n chargeElement: 'user'\n }\n },\n [ProductKeys.OPSGENIE]: {\n free: {\n offeringId: 'd0c6ab1d-d8ea-49f8-8893-eafca2e05158',\n productKey: ProductKeys.OPSGENIE,\n pricingType: PricingType.FREE,\n edition: 'essentials',\n chargeElement: 'user'\n }\n },\n [ProductKeys.FABRIC]: {\n free: {\n offeringId: 'b0c7b413-b264-4c01-8b67-c61aa2c3e455',\n productKey: ProductKeys.FABRIC,\n pricingType: PricingType.FREE,\n edition: 'free',\n chargeElement: 'user'\n }\n },\n [ProductKeys.STATUSPAGE]: {\n free: {\n offeringId: 'cff16c60-539b-11ea-8d77-2e728ce88125',\n productKey: ProductKeys.STATUSPAGE,\n pricingType: PricingType.FREE,\n edition: 'free',\n chargeElement: 'user'\n }\n },\n [ProductKeys.BITBUCKET]: {\n free: {\n offeringId: '00000000-0000-0000-0000-000000000000',\n productKey: ProductKeys.BITBUCKET,\n pricingType: PricingType.FREE,\n edition: 'free',\n chargeElement: 'user'\n },\n standard: {\n offeringId: '00000000-0000-0000-0000-000000000000',\n productKey: ProductKeys.BITBUCKET,\n pricingType: PricingType.PAID,\n edition: 'standard',\n chargeElement: 'user'\n },\n premium: {\n offeringId: '00000000-0000-0000-0000-000000000000',\n productKey: ProductKeys.BITBUCKET,\n pricingType: PricingType.PAID,\n edition: 'premium',\n chargeElement: 'user'\n }\n }\n },\n staging: {\n [ProductKeys.JIRA_SOFTWARE]: {\n free: {\n offeringId: 'de2887c9-8a55-41d5-b5cf-ad6a5589ebed',\n productKey: ProductKeys.JIRA_SOFTWARE,\n pricingType: PricingType.FREE,\n edition: 'free',\n chargeElement: 'user',\n jiraFamilyOfferingId: '009f8789-c10c-4366-9420-f712d02a6499'\n },\n standard: {\n offeringId: 'a70b5cbb-1ae1-4003-8f4a-9001a4a50526',\n productKey: ProductKeys.JIRA_SOFTWARE,\n pricingType: PricingType.PAID,\n edition: 'standard',\n chargeElement: 'user',\n jiraFamilyOfferingId: '009f8789-c10c-4366-9420-f712d02a6499'\n },\n premium: {\n offeringId: '6dd805b4-da75-4374-a7a7-cf0b12f7ea07',\n productKey: ProductKeys.JIRA_SOFTWARE,\n pricingType: PricingType.PAID,\n edition: 'premium',\n chargeElement: 'user',\n jiraFamilyOfferingId: '009f8789-c10c-4366-9420-f712d02a6499'\n }\n },\n [ProductKeys.CONFLUENCE]: {\n free: {\n offeringId: '7547cfd6-a804-4e42-8bed-e656d49ea09e',\n productKey: ProductKeys.CONFLUENCE,\n pricingType: PricingType.FREE,\n edition: 'free',\n chargeElement: 'user'\n },\n standard: {\n offeringId: '2eda1119-fab4-4699-ab37-ff8f12052cde',\n productKey: ProductKeys.CONFLUENCE,\n pricingType: PricingType.PAID,\n edition: 'standard',\n chargeElement: 'user'\n },\n premium: {\n offeringId: '06ef245c-5fa3-473b-8822-5e6fe072ae4b',\n productKey: ProductKeys.CONFLUENCE,\n pricingType: PricingType.PAID,\n edition: 'premium',\n chargeElement: 'user'\n }\n },\n [ProductKeys.JIRA_SERVICE_MANAGEMENT]: {\n free: {\n offeringId: '2bad3c2f-d740-44a9-b08d-849202f11830',\n productKey: ProductKeys.JIRA_SERVICE_MANAGEMENT,\n pricingType: PricingType.FREE,\n edition: 'free',\n chargeElement: 'agent',\n jiraFamilyOfferingId: '009f8789-c10c-4366-9420-f712d02a6499'\n },\n standard: {\n offeringId: '396efb16-749b-41fa-9cd1-ad10cfefa1d0',\n productKey: ProductKeys.JIRA_SERVICE_MANAGEMENT,\n pricingType: PricingType.PAID,\n edition: 'standard',\n chargeElement: 'agent',\n jiraFamilyOfferingId: '009f8789-c10c-4366-9420-f712d02a6499'\n },\n premium: {\n offeringId: '0c6683b4-4633-4673-beca-690d171de6a5',\n productKey: ProductKeys.JIRA_SERVICE_MANAGEMENT,\n pricingType: PricingType.PAID,\n edition: 'premium',\n chargeElement: 'agent',\n jiraFamilyOfferingId: '009f8789-c10c-4366-9420-f712d02a6499'\n },\n halp: {\n offeringId: `396efb16-749b-41fa-9cd1-ad10cfefa1d0`, // https://workbench.staging.atl-paas.net/offerings/396efb16-749b-41fa-9cd1-ad10cfefa1d0\n pricingPlanId: '7701f274-6c84-45cd-bdb0-493a67355e61', // https://workbench.staging.atl-paas.net/products/jira-servicedesk.ondemand/plans/7701f274-6c84-45cd-bdb0-493a67355e61\n pricingType: PricingType.PAID, // pricing type for CCP\n productKey: ProductKeys.JIRA_SERVICE_MANAGEMENT,\n edition: 'standard',\n chargeElement: 'agent'\n }\n },\n [ProductKeys.JIRA_WORK_MANAGEMENT]: {\n free: {\n offeringId: '769055e8-05f5-4b1a-ba1a-a1afc874ee6d',\n productKey: ProductKeys.JIRA_WORK_MANAGEMENT,\n pricingType: PricingType.FREE,\n edition: 'free',\n chargeElement: 'user',\n jiraFamilyOfferingId: '009f8789-c10c-4366-9420-f712d02a6499'\n },\n standard: {\n offeringId: '5ab35ef5-e441-493a-b6e0-ba2d21a72ac6',\n productKey: ProductKeys.JIRA_WORK_MANAGEMENT,\n pricingType: PricingType.PAID,\n edition: 'standard',\n chargeElement: 'user',\n jiraFamilyOfferingId: '009f8789-c10c-4366-9420-f712d02a6499'\n },\n premium: {\n offeringId: 'd8e9a61a-c83b-4e40-a757-997d5bae2bb2',\n productKey: ProductKeys.JIRA_WORK_MANAGEMENT,\n pricingType: PricingType.PAID,\n edition: 'premium',\n chargeElement: 'user'\n }\n },\n [ProductKeys.JIRA_PRODUCT_DISCOVERY]: {\n free: {\n offeringId: 'd843dd9e-23c5-4d27-af44-5009d568cb6e',\n productKey: ProductKeys.JIRA_PRODUCT_DISCOVERY,\n pricingType: PricingType.FREE,\n edition: 'free',\n chargeElement: 'user'\n },\n standard: {\n offeringId: '35b9268e-66e2-45fb-81d3-dacd1e31831a',\n productKey: ProductKeys.JIRA_PRODUCT_DISCOVERY,\n pricingType: PricingType.PAID,\n edition: 'standard',\n chargeElement: 'user'\n }\n },\n [ProductKeys.COMPASS]: {\n beta: {\n offeringId: '7af07cb3-d4e5-473e-87b3-3ae3bc9248a6',\n productKey: ProductKeys.COMPASS,\n edition: 'beta',\n chargeElement: 'user'\n },\n free: {\n offeringId: '1d1951e5-881c-4f75-b0cd-3c6859dd5759',\n productKey: ProductKeys.COMPASS,\n pricingType: PricingType.FREE,\n edition: 'free',\n chargeElement: 'user'\n },\n standard: {\n offeringId: '575abf20-6cac-4bbc-9666-1791fae8d822',\n productKey: ProductKeys.COMPASS,\n pricingType: PricingType.PAID,\n edition: 'standard',\n chargeElement: 'user'\n }\n },\n [ProductKeys.ATLAS]: {\n free: {\n offeringId: '88064fa1-b573-4358-a9de-ec350aac1ddc',\n productKey: ProductKeys.ATLAS,\n pricingType: PricingType.FREE,\n edition: 'free',\n chargeElement: 'user'\n },\n standard: {\n offeringId: '01c8ddad-8ea4-4da9-8127-71d6ff6de1c9',\n productKey: ProductKeys.ATLAS,\n pricingType: PricingType.PAID,\n edition: 'standard',\n chargeElement: 'user'\n },\n premium: {\n offeringId: 'f7866043-d6e4-4d54-9c6a-4f82c6a1ebe5',\n productKey: ProductKeys.ATLAS,\n pricingType: PricingType.PAID,\n edition: 'premium',\n chargeElement: 'user'\n }\n },\n [ProductKeys.OPSGENIE]: {\n free: {\n offeringId: 'd0c6ab1d-d8ea-49f8-8893-eafca2e05158',\n productKey: ProductKeys.OPSGENIE,\n pricingType: PricingType.FREE,\n edition: 'essentials',\n chargeElement: 'user'\n }\n },\n [ProductKeys.FABRIC]: {\n free: {\n offeringId: 'b0c7b413-b264-4c01-8b67-c61aa2c3e455',\n productKey: ProductKeys.FABRIC,\n pricingType: PricingType.FREE,\n edition: 'free',\n chargeElement: 'user'\n }\n },\n [ProductKeys.STATUSPAGE]: {\n free: {\n offeringId: 'cff16c60-539b-11ea-8d77-2e728ce88125',\n productKey: ProductKeys.STATUSPAGE,\n pricingType: PricingType.FREE,\n edition: 'free',\n chargeElement: 'user'\n }\n },\n [ProductKeys.BITBUCKET]: {\n free: {\n offeringId: '00000000-0000-0000-0000-000000000000',\n productKey: ProductKeys.BITBUCKET,\n pricingType: PricingType.FREE,\n edition: 'free',\n chargeElement: 'user'\n },\n standard: {\n offeringId: '00000000-0000-0000-0000-000000000000',\n productKey: ProductKeys.BITBUCKET,\n pricingType: PricingType.PAID,\n edition: 'standard',\n chargeElement: 'user'\n },\n premium: {\n offeringId: '00000000-0000-0000-0000-000000000000',\n productKey: ProductKeys.BITBUCKET,\n pricingType: PricingType.PAID,\n edition: 'premium',\n chargeElement: 'user'\n }\n }\n },\n production: {\n [ProductKeys.JIRA_SOFTWARE]: {\n free: {\n offeringId: 'de2887c9-8a55-41d5-b5cf-ad6a5589ebed',\n productKey: ProductKeys.JIRA_SOFTWARE,\n pricingType: PricingType.FREE,\n edition: 'free',\n chargeElement: 'user'\n },\n standard: {\n offeringId: 'a70b5cbb-1ae1-4003-8f4a-9001a4a50526',\n productKey: ProductKeys.JIRA_SOFTWARE,\n pricingType: PricingType.PAID,\n edition: 'standard',\n chargeElement: 'user'\n },\n premium: {\n offeringId: '6dd805b4-da75-4374-a7a7-cf0b12f7ea07',\n productKey: ProductKeys.JIRA_SOFTWARE,\n pricingType: PricingType.PAID,\n edition: 'premium',\n chargeElement: 'user'\n }\n },\n [ProductKeys.CONFLUENCE]: {\n free: {\n offeringId: '7547cfd6-a804-4e42-8bed-e656d49ea09e',\n productKey: ProductKeys.CONFLUENCE,\n pricingType: PricingType.FREE,\n edition: 'free',\n chargeElement: 'user'\n },\n standard: {\n offeringId: '2eda1119-fab4-4699-ab37-ff8f12052cde',\n productKey: ProductKeys.CONFLUENCE,\n pricingType: PricingType.PAID,\n edition: 'standard',\n chargeElement: 'user'\n },\n premium: {\n offeringId: '06ef245c-5fa3-473b-8822-5e6fe072ae4b',\n productKey: ProductKeys.CONFLUENCE,\n pricingType: PricingType.PAID,\n edition: 'premium',\n chargeElement: 'user'\n }\n },\n [ProductKeys.JIRA_SERVICE_MANAGEMENT]: {\n free: {\n offeringId: '2bad3c2f-d740-44a9-b08d-849202f11830',\n productKey: ProductKeys.JIRA_SERVICE_MANAGEMENT,\n pricingType: PricingType.FREE,\n edition: 'free',\n chargeElement: 'agent'\n },\n standard: {\n offeringId: '396efb16-749b-41fa-9cd1-ad10cfefa1d0',\n productKey: ProductKeys.JIRA_SERVICE_MANAGEMENT,\n pricingType: PricingType.PAID,\n edition: 'standard',\n chargeElement: 'agent'\n },\n premium: {\n offeringId: '0c6683b4-4633-4673-beca-690d171de6a5',\n productKey: ProductKeys.JIRA_SERVICE_MANAGEMENT,\n pricingType: PricingType.PAID,\n edition: 'premium',\n chargeElement: 'agent'\n },\n halp: {\n offeringId: `396efb16-749b-41fa-9cd1-ad10cfefa1d0`,\n pricingPlanId: '200b2088-934b-4669-b7c5-7ae6961c9368', // https://workbench.prod.atl-paas.net/products/jira-servicedesk.ondemand/plans/200b2088-934b-4669-b7c5-7ae6961c9368\n pricingType: PricingType.PAID, // pricing type for CCP\n productKey: ProductKeys.JIRA_SERVICE_MANAGEMENT,\n edition: 'standard',\n chargeElement: 'agent'\n }\n },\n [ProductKeys.JIRA_WORK_MANAGEMENT]: {\n free: {\n offeringId: '769055e8-05f5-4b1a-ba1a-a1afc874ee6d',\n productKey: ProductKeys.JIRA_WORK_MANAGEMENT,\n pricingType: PricingType.FREE,\n edition: 'free',\n chargeElement: 'user'\n },\n standard: {\n offeringId: '5ab35ef5-e441-493a-b6e0-ba2d21a72ac6',\n productKey: ProductKeys.JIRA_WORK_MANAGEMENT,\n pricingType: PricingType.PAID,\n edition: 'standard',\n chargeElement: 'user'\n },\n premium: {\n offeringId: 'd8e9a61a-c83b-4e40-a757-997d5bae2bb2',\n productKey: ProductKeys.JIRA_WORK_MANAGEMENT,\n pricingType: PricingType.PAID,\n edition: 'premium',\n chargeElement: 'user'\n }\n },\n [ProductKeys.JIRA_PRODUCT_DISCOVERY]: {\n free: {\n offeringId: 'd843dd9e-23c5-4d27-af44-5009d568cb6e',\n productKey: ProductKeys.JIRA_PRODUCT_DISCOVERY,\n pricingType: PricingType.FREE,\n edition: 'free',\n chargeElement: 'user'\n },\n standard: {\n offeringId: '35b9268e-66e2-45fb-81d3-dacd1e31831a',\n productKey: ProductKeys.JIRA_PRODUCT_DISCOVERY,\n pricingType: PricingType.PAID,\n edition: 'standard',\n chargeElement: 'user'\n }\n },\n [ProductKeys.COMPASS]: {\n beta: {\n offeringId: '7af07cb3-d4e5-473e-87b3-3ae3bc9248a6',\n productKey: 'compass',\n edition: 'beta',\n chargeElement: 'user'\n },\n free: {\n offeringId: '1d1951e5-881c-4f75-b0cd-3c6859dd5759',\n productKey: ProductKeys.COMPASS,\n pricingType: PricingType.FREE,\n edition: 'free',\n chargeElement: 'user'\n },\n standard: {\n offeringId: '575abf20-6cac-4bbc-9666-1791fae8d822',\n productKey: ProductKeys.COMPASS,\n pricingType: PricingType.PAID,\n edition: 'standard',\n chargeElement: 'user'\n }\n },\n [ProductKeys.ATLAS]: {\n free: {\n offeringId: '88064fa1-b573-4358-a9de-ec350aac1ddc',\n productKey: ProductKeys.ATLAS,\n pricingType: PricingType.FREE,\n edition: 'free',\n chargeElement: 'user'\n },\n standard: {\n offeringId: '01c8ddad-8ea4-4da9-8127-71d6ff6de1c9',\n productKey: ProductKeys.ATLAS,\n pricingType: PricingType.PAID,\n edition: 'standard',\n chargeElement: 'user'\n },\n premium: {\n offeringId: 'f7866043-d6e4-4d54-9c6a-4f82c6a1ebe5',\n productKey: ProductKeys.ATLAS,\n pricingType: PricingType.PAID,\n edition: 'premium',\n chargeElement: 'user'\n }\n },\n [ProductKeys.OPSGENIE]: {\n free: {\n offeringId: 'd0c6ab1d-d8ea-49f8-8893-eafca2e05158',\n productKey: ProductKeys.OPSGENIE,\n pricingType: PricingType.FREE,\n edition: 'essentials',\n chargeElement: 'user'\n }\n },\n [ProductKeys.FABRIC]: {\n free: {\n offeringId: 'b0c7b413-b264-4c01-8b67-c61aa2c3e455',\n productKey: ProductKeys.FABRIC,\n pricingType: PricingType.FREE,\n edition: 'free',\n chargeElement: 'user'\n }\n },\n [ProductKeys.STATUSPAGE]: {\n free: {\n offeringId: 'cff16c60-539b-11ea-8d77-2e728ce88125',\n productKey: ProductKeys.STATUSPAGE,\n pricingType: PricingType.FREE,\n edition: 'free',\n chargeElement: 'user'\n }\n },\n [ProductKeys.BITBUCKET]: {\n free: {\n offeringId: '00000000-0000-0000-0000-000000000000',\n productKey: ProductKeys.BITBUCKET,\n pricingType: PricingType.FREE,\n edition: 'free',\n chargeElement: 'user'\n },\n standard: {\n offeringId: '00000000-0000-0000-0000-000000000000',\n productKey: ProductKeys.BITBUCKET,\n pricingType: PricingType.PAID,\n edition: 'standard',\n chargeElement: 'user'\n },\n premium: {\n offeringId: '00000000-0000-0000-0000-000000000000',\n productKey: ProductKeys.BITBUCKET,\n pricingType: PricingType.PAID,\n edition: 'premium',\n chargeElement: 'user'\n }\n }\n }\n} as const;\n\nexport type EnvironmentType = keyof typeof OFFERING_IDS;\n\nexport type CcpProduct = {\n readonly offeringId: string;\n readonly pricingPlanId: string;\n readonly pricingType: PricingType;\n readonly productKey: string;\n readonly edition: string;\n readonly chargeElement: string;\n};\n\ntype MapProductKeyAndEditionToCcpProductOptions = {\n productKey: ProductKeys;\n edition: string;\n};\n\nexport class OfferingCatalog {\n private readonly environmentType: EnvironmentType;\n\n public constructor(environmentType: EnvironmentType) {\n this.environmentType = environmentType;\n }\n\n public mapProductKeyAndEditionToCcpProduct = ({\n productKey,\n edition\n }: MapProductKeyAndEditionToCcpProductOptions): CcpProduct => {\n const products = OFFERING_IDS[this.environmentType];\n const editions =\n OFFERING_IDS[this.environmentType][productKey as keyof typeof products];\n\n return products[productKey as keyof typeof products][\n edition as keyof typeof editions\n ] as CcpProduct;\n };\n}\n","import { defineMessages, Messages, FormattedMessage } from 'react-intl';\n\n/**\n * These two statements are equivalent:\n *\n * defineMessagesSimple(\"prefix\",{\n * name: \"Your name\",\n * email: \"Your email\"\n * })\n *\n * defineMessages({\n * name: {\n * id: 'prefix.name',\n * defaultMessage: 'Your name'\n * },\n * email: {\n * id: 'prefix.email',\n * defaultMessage: 'Your email'\n * }\n * });\n *\n * @param prefix String to prefix key\n * @param messages Object of keys and translation text\n * @returns react-intl formatted messages object\n */\nexport function defineMessagesSimple(\n prefix: string,\n messages: Record\n): Messages {\n const tranformedMessages: Messages = {};\n Object.entries(messages).map(([key, value]) => {\n tranformedMessages[key] = {\n id: `${prefix}.${key}`,\n defaultMessage: value\n } as FormattedMessage.MessageDescriptor;\n });\n return defineMessages(tranformedMessages);\n}\n","import { IdentityClient, IIdentityClient } from '@atlassiansox/asc-identity';\nimport React, { createContext, PropsWithChildren, useContext } from 'react';\nimport { Environment } from '../utils';\n\n// this is a hack to keep this working for now, since we don't have\n// client providers in magnolia yet\nexport const IdentityClientContext = createContext(\n new IdentityClient({\n baseUrlStargate: Environment.getApiPrivateUrl(),\n baseUrlIdentity: Environment.getIdentityBaseUrl()\n })\n);\n\nexport function useIdentityClient(): IIdentityClient {\n return useContext(IdentityClientContext);\n}\n\nexport type IdentityClientProviderProps = PropsWithChildren<{\n readonly client: IIdentityClient;\n}>;\n\nexport function IdentityClientProvider({\n client,\n children\n}: IdentityClientProviderProps) {\n return (\n \n {children}\n \n );\n}\n","import {\n GetAvailableSitesRequest,\n GetAvailableSitesResponse\n} from '@atlassiansox/asc-stargate';\nimport { AsyncResult, useAsync } from './use-async';\nimport { useStargateClient } from './use-stargate-client';\n\nexport type { GetAvailableSitesRequest, GetAvailableSitesResponse };\n\nexport function useAvailableSites({\n orderId,\n transactionAccount\n}: GetAvailableSitesRequest): AsyncResult {\n const stargateClient = useStargateClient();\n\n return useAsync(\n () =>\n stargateClient.getAvailableSites({\n orderId,\n transactionAccount,\n webPlatform: 'magnolia'\n }),\n []\n );\n}\n","import React, { ReactType } from 'react';\nimport sanitizeHtml from 'sanitize-html';\n\nexport type SanitizedHtmlProps = {\n readonly innerHTML: string | JSX.Element;\n readonly tagName?: ReactType;\n};\n\nexport function SanitizedHtml({\n innerHTML,\n tagName: Component = 'span'\n}: SanitizedHtmlProps) {\n if (typeof innerHTML === 'string') {\n return (\n \n );\n } else {\n return null;\n }\n}\n","import { escape } from 'he';\nimport React, { ElementType } from 'react';\nimport { FormattedMessage, MessageValue } from 'react-intl';\nimport { SanitizedHtml } from './sanitized-html';\n\nexport type SanitizedFormattedHtmlMessageProps = {\n readonly id: string;\n\n readonly description?: string;\n readonly defaultMessage?: string;\n readonly values?: { [key: string]: MessageValue };\n readonly tagName?: ElementType;\n};\n\nexport function SanitizedFormattedHtmlMessage({\n tagName,\n values,\n ...messageDescriptor\n}: SanitizedFormattedHtmlMessageProps) {\n return (\n \n {(html) => {\n return ;\n }}\n \n );\n}\n\nfunction escapeValues(\n messageValues: { [key: string]: MessageValue | JSX.Element } = {}\n): { [key: string]: MessageValue | JSX.Element } {\n Object.keys(messageValues).forEach((keyName) => {\n const messageValue = messageValues[keyName];\n messageValues[keyName] =\n typeof messageValue === 'string' ? escape(messageValue) : messageValue;\n });\n\n return messageValues;\n}\n","import {\n FeatureGateEnvironment,\n Identifiers\n} from '@atlassian/feature-gate-js-client';\nimport { FeatureGatesInitialization } from '@atlassian/feature-gates-react';\nimport React, { PropsWithChildren } from 'react';\nimport {\n ENV_DEV,\n ENV_PRODUCTION,\n ENV_STAGING,\n Environment,\n Storage\n} from '../';\n\ntype EnvConfig = {\n apiKey: string;\n environment: FeatureGateEnvironment;\n};\n\n// WAC Statsig api keys - https://developer.atlassian.com/platform/frontend-feature-flags/resources/api-keys/#statsig-only-supported\nconst getEnvironmentConfig = (): EnvConfig => {\n const environment = Environment.getEnvironment();\n switch (environment) {\n case ENV_PRODUCTION:\n return {\n apiKey: '4e18bcb9-52fb-4f76-b7b6-a0d9d8e56f8f',\n environment: FeatureGateEnvironment.Production\n };\n case ENV_STAGING:\n return {\n apiKey: 'ff9c70b0-ab7e-4abc-be4f-53f9c3fd37d6',\n environment: FeatureGateEnvironment.Staging\n };\n case ENV_DEV:\n default:\n return {\n apiKey: 'ab9944a4-9eb2-482b-b997-36f41f3a1edf',\n environment: FeatureGateEnvironment.Development\n };\n }\n};\n\nexport type BxpKitFeatureGatesInitializationProps = PropsWithChildren<{\n identifiers: Identifiers;\n}>;\n\n/**\n * Initializes the feature gate client\n */\nexport const BxpKitFeatureGatesInitialization = ({\n identifiers,\n children\n}: BxpKitFeatureGatesInitializationProps) => {\n const envConfig: EnvConfig = getEnvironmentConfig();\n\n const analyticsAnonymousId = (\n Storage.getCookie('ajs_anonymous_id') ?? ''\n ).replace(/\\\"/g, '');\n\n return (\n \n {children}\n \n );\n};\n","import {\n IProductPricingStore,\n ProductPricingStore\n} from '@atlassian/bxp-product-pricing';\nimport {\n ICCPProductCatalogClient,\n IProductCatalogClient\n} from '@atlassiansox/asc-product-catalog';\nimport React, { createContext, ReactChild, useContext } from 'react';\n\nconst notProvided = async () => {\n throw new Error(\n 'ProductPricingStore was not provided. Use '\n );\n};\n\nexport const ProductPricingStoreContext = createContext({\n getPricingPlans: notProvided,\n getProducts: notProvided,\n searchAddons: notProvided,\n getOfferings: notProvided\n});\n\nexport function useProductPricingStore(): IProductPricingStore {\n return useContext(ProductPricingStoreContext);\n}\n\nexport type ProductPricingStoreProviderProps = {\n readonly productCatalogClient: IProductCatalogClient;\n readonly ccpProductCatalogClient: ICCPProductCatalogClient;\n readonly children: ReactChild;\n};\n\nexport function ProductPricingStoreProvider({\n productCatalogClient,\n ccpProductCatalogClient,\n children\n}: ProductPricingStoreProviderProps) {\n return (\n \n {children}\n \n );\n}\n","export const getEnvGlobals = () => ({\n atob: // atob/btoa need to be bound because they throw an illegal invocation error when called as a method (obj.atob())\n typeof atob === 'function' && atob.bind(undefined) || typeof Buffer !== 'undefined' && (encoded => Buffer.from(encoded, 'base64').toString()),\n btoa: typeof btoa === 'function' && btoa.bind(undefined) || typeof Buffer !== 'undefined' && (str => Buffer.from(str).toString('base64')),\n URLSearchParams: typeof URLSearchParams === 'function' && URLSearchParams || typeof require === 'function' && require('url').URLSearchParams\n});\nlet env;\nexport const getEnv = () => env || (env = validateEnv(getEnvGlobals()));\n\nconst validateEnv = env => {\n if (!(env.atob && env.btoa && env.URLSearchParams)) {\n throw new TypeError(`Origin-Tracing: missing environment APIs. Required: btoa(), atob(), URLSearchParams() (or in Node: Buffer, require('url').URLSearchParams).`);\n }\n\n return env;\n};","import { base64ToBase64Url, base64UrlToBase64 } from './util/base64url';\nimport { getEnv } from './env';\nconst productShorthands = {\n confluence: 'c',\n jira: 'j',\n stride: 's',\n bitbucket: 'b',\n trello: 't'\n};\nexport function encode(originData) {\n const json = JSON.stringify(toJSONObject(originData));\n const base64 = getEnv().btoa(json);\n return base64ToBase64Url(base64);\n}\nexport function decode(encodedOriginString) {\n const base64 = base64UrlToBase64(encodedOriginString);\n const json = getEnv().atob(base64);\n return fromJSONObject(JSON.parse(json));\n}\nexport function toJSONObject({\n id,\n product\n}) {\n return {\n i: id,\n p: product && product in productShorthands ? productShorthands[product] : product\n };\n}\nexport function fromJSONObject(originJSONObject) {\n const originData = {};\n\n if (originJSONObject.i) {\n originData.id = originJSONObject.i;\n }\n\n if (originJSONObject.p) {\n originData.product = expandProductShorthand(originJSONObject.p);\n }\n\n return originData;\n}\n\nfunction expandProductShorthand(maybeShorthand) {\n const products = Object.keys(productShorthands);\n\n for (let i = 0; i < products.length; i++) {\n const product = products[i];\n const shorthand = productShorthands[product];\n\n if (maybeShorthand === shorthand) {\n return product;\n }\n }\n\n return maybeShorthand;\n}","import uuid from 'uuid/v4';\nimport { encode, decode } from './encoder';\nimport { getEnv } from './env';\nconst packageVersion = \"6.0.7\";\nconst originParamName = 'atlOrigin';\nconst originVersioningAttributes = {\n originLibrary: `origin-tracing.js@${packageVersion}`\n};\nexport default class OriginTracer {\n constructor({\n id = OriginTracer.generateId(),\n product,\n dangerouslySkipValidation = false\n }) {\n this.id = id;\n this.product = product;\n\n if (!dangerouslySkipValidation) {\n this.validate();\n }\n }\n\n static isValidId(value) {\n return typeof value === 'string' && /^[-_a-zA-Z0-9]{1,36}$/.test(value);\n }\n\n static isValidProduct(value) {\n return typeof value === 'string' && /^[-_a-zA-Z0-9]{1,20}$/.test(value);\n }\n\n static generateId() {\n const id = uuid(); // Dash positions are fixed so they don't add to uniqueness.\n // Remove them to save space in the encoded form.\n\n return id.replace(/-/g, '');\n }\n\n static createEmpty() {\n return new EmptyOriginTracer();\n }\n\n static createMalformed() {\n return new MalformedOriginTracer();\n }\n\n static fromUrl(url) {\n let params = new (getEnv().URLSearchParams)();\n replaceQuery(url, queryString => {\n params = new (getEnv().URLSearchParams)(queryString);\n });\n return OriginTracer.fromEncoded(params.get(originParamName));\n }\n\n static fromEncoded(encoded) {\n if (!encoded) {\n return OriginTracer.createEmpty();\n }\n\n try {\n return OriginTracer.decode(encoded);\n } catch (e) {\n return OriginTracer.createMalformed();\n }\n }\n\n static removeFromUrl(url) {\n return replaceQuery(url, queryString => {\n const params = new (getEnv().URLSearchParams)(queryString);\n params.delete(originParamName);\n return params.toString();\n });\n }\n\n static decode(encodedOrigin) {\n const originData = decode(encodedOrigin);\n return new OriginTracer(originData);\n }\n\n encode() {\n return encode({\n id: this.id,\n product: this.product\n });\n }\n\n addToUrl(url) {\n return replaceQuery(url, originalQueryString => {\n const params = new (getEnv().URLSearchParams)(originalQueryString);\n params.set(originParamName, this.encode());\n return params.toString();\n });\n }\n\n isEmpty() {\n return false;\n }\n\n isMalformed() {\n return !this.isEmpty() && !this.isValid();\n }\n\n isValid() {\n return true;\n }\n\n toAnalyticsAttributes({\n transformValue = v => v === null ? undefined : v,\n hasGeneratedId = false\n } = {}) {\n // `originIdGenerated` should be used in analytic events that generated this originId.\n // Subsequent events should use `originId`.\n // No two events should have the same value of originIdGenerated.\n const originIdProp = hasGeneratedId ? 'originIdGenerated' : 'originId';\n return {\n [originIdProp]: transformValue(this.id),\n originProduct: transformValue(this.product),\n ...originVersioningAttributes\n };\n }\n\n validate() {\n if (!OriginTracer.isValidId(this.id)) {\n throw new TypeError('Invalid Origin id');\n }\n\n if (!OriginTracer.isValidProduct(this.product)) {\n throw new TypeError('Missing/invalid Origin product');\n }\n }\n\n}\n\nclass EmptyOriginTracer extends OriginTracer {\n constructor() {\n super({\n id: null,\n product: null,\n dangerouslySkipValidation: true\n });\n }\n\n isValid() {\n return false;\n }\n\n isEmpty() {\n return true;\n }\n\n toAnalyticsAttributes() {\n return { ...originVersioningAttributes\n };\n }\n\n}\n\nclass MalformedOriginTracer extends OriginTracer {\n constructor() {\n super({\n id: null,\n product: null,\n dangerouslySkipValidation: true\n });\n }\n\n isValid() {\n return false;\n }\n\n isEmpty() {\n return false;\n }\n\n toAnalyticsAttributes() {\n return {\n originMalformed: true,\n ...originVersioningAttributes\n };\n }\n\n}\n\nfunction replaceQuery(url, replacer) {\n const urlWithQueryStringRegex = /(^[^?#]*)(?:\\?)?([^#]*?)(#.*|$)$/; // If we get passed window.location, we don't want to call window.location.replace()\n\n const urlString = String(url);\n return urlString.replace(urlWithQueryStringRegex, (wholeMatch, beforeQuery, queryString, afterQuery) => {\n let newQueryString = replacer(queryString);\n\n if (newQueryString) {\n newQueryString = `?${newQueryString}`;\n }\n\n return `${beforeQuery}${newQueryString}${afterQuery}`;\n });\n}","/**\n * This file converts between Base64 and Base 64 Encoding with URL and Filename Safe Alphabet,\n * the latter of which has URL-safe characters only (drops =, + and /).\n *\n * Why not use a library? The popular libs use Buffer to be able to\n * encode any data to base64. We don't need this capability, and it causes\n * Webpack to include 30KB of a Buffer polyfill.\n * Webpack's/UglifyJS's Tree Shaking seems to be unable to drop it.\n *\n * See: RFC 4648 section 5 (https://tools.ietf.org/html/rfc4648#section-5)\n */\nexport function base64ToBase64Url(base64) {\n if (base64 == null) {\n return '';\n }\n\n return String(base64).replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=/g, '');\n}\nexport function base64UrlToBase64(base64url) {\n if (base64url == null) {\n return '';\n }\n\n const base64 = String(base64url).replace(/-/g, '+').replace(/_/g, '/');\n const padLength = (4 - base64url.length % 4) % 4;\n const pad = '==='.slice(0, padLength);\n return base64 + pad;\n}","class SignupContextBuilder {\n\n static getActiveExperiments() {\n if (window['optimizely'] && window['optimizely'].activeExperiments) {\n return window['optimizely'].activeExperiments;\n }\n return [];\n }\n\n static getVarationMapForExperiment(experimentId) {\n return window['optimizely'].data.state.variationMap[experimentId];\n }\n\n static getVariationIdForExperiment(experimentId, variationIndex) {\n return window['optimizely'].data.experiments[experimentId].variation_ids[variationIndex];\n }\n\n static getOptimizelyVariations() {\n const optimizelyExperiments = SignupContextBuilder.getActiveExperiments();\n return optimizelyExperiments.map(experimentId => {\n const variationIndex = SignupContextBuilder.getVarationMapForExperiment(experimentId);\n return SignupContextBuilder.getVariationIdForExperiment(experimentId, variationIndex);\n });\n }\n\n constructor() {\n const optimizelyVariations = SignupContextBuilder.getOptimizelyVariations();\n let metadata = [];\n\n return {\n withMetadata: function (metadataString) {\n if (typeof metadataString !== 'string') {\n throw new Error('Unable to add metadata which is not a string');\n }\n metadata.push(metadataString);\n return this;\n },\n withMetadataArray: function (metadataArray) {\n for (const metadataItem of metadataArray) {\n if (typeof metadataItem !== 'string') {\n throw new Error('Unable to add metadata which is not a string');\n }\n }\n metadata = metadata.concat(metadataArray);\n return this;\n },\n build: function () {\n const signupContext = {\n 'safeData': {\n 'optimizelyVariations': optimizelyVariations,\n 'metadata': metadata\n },\n 'unsafeData': {}\n };\n return JSON.stringify(signupContext);\n }\n }\n }\n}\n\nmodule.exports = SignupContextBuilder;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar DynamicConfig = /** @class */ (function () {\n function DynamicConfig(configName, configValue, ruleID, evaluationDetails, secondaryExposures, allocatedExperimentName, onDefaultValueFallback) {\n if (secondaryExposures === void 0) { secondaryExposures = []; }\n if (allocatedExperimentName === void 0) { allocatedExperimentName = ''; }\n if (onDefaultValueFallback === void 0) { onDefaultValueFallback = null; }\n this._onDefaultValueFallback = null;\n this.value = JSON.parse(JSON.stringify(configValue !== null && configValue !== void 0 ? configValue : {}));\n this._name = configName;\n this._ruleID = ruleID !== null && ruleID !== void 0 ? ruleID : '';\n this._secondaryExposures = secondaryExposures;\n this._allocatedExperimentName = allocatedExperimentName;\n this._evaluationDetails = evaluationDetails;\n this._onDefaultValueFallback = onDefaultValueFallback;\n }\n DynamicConfig.prototype.get = function (key, defaultValue, typeGuard) {\n var _a, _b;\n var val = this.getValue(key, defaultValue);\n if (val == null) {\n return defaultValue;\n }\n var expectedType = Array.isArray(defaultValue)\n ? 'array'\n : typeof defaultValue;\n var actualType = Array.isArray(val) ? 'array' : typeof val;\n if (typeGuard) {\n if (typeGuard(val)) {\n return val;\n }\n (_a = this._onDefaultValueFallback) === null || _a === void 0 ? void 0 : _a.call(this, this, key, expectedType, actualType);\n return defaultValue;\n }\n if (defaultValue == null || expectedType === actualType) {\n return val;\n }\n (_b = this._onDefaultValueFallback) === null || _b === void 0 ? void 0 : _b.call(this, this, key, expectedType, actualType);\n return defaultValue;\n };\n DynamicConfig.prototype.getValue = function (key, defaultValue) {\n if (key == null) {\n return this.value;\n }\n if (defaultValue == null) {\n defaultValue = null;\n }\n if (this.value[key] == null) {\n return defaultValue;\n }\n return this.value[key];\n };\n return DynamicConfig;\n}());\nexports.default = DynamicConfig;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ExceptionEndpoint = void 0;\nvar Errors_1 = require(\"./Errors\");\nexports.ExceptionEndpoint = 'https://statsigapi.net/v1/sdk_exception';\nvar ErrorBoundary = /** @class */ (function () {\n function ErrorBoundary(sdkKey) {\n this._seen = new Set();\n this._sdkKey = sdkKey;\n }\n ErrorBoundary.prototype._setStatsigMetadata = function (statsigMetadata) {\n this._statsigMetadata = statsigMetadata;\n };\n ErrorBoundary.prototype._swallow = function (tag, task) {\n this._capture(tag, task, function () {\n return undefined;\n });\n };\n ErrorBoundary.prototype._capture = function (tag, task, recover, getExtraData) {\n var _this = this;\n try {\n var result = task();\n if (result instanceof Promise) {\n return result.catch(function (e) {\n return _this._onCaught(tag, e, recover, getExtraData);\n });\n }\n return result;\n }\n catch (error) {\n return this._onCaught(tag, error, recover, getExtraData);\n }\n };\n ErrorBoundary.prototype._logError = function (tag, error, getExtraData) {\n var _this = this;\n try {\n var impl = function () { return __awaiter(_this, void 0, void 0, function () {\n var extra, _a, unwrapped, isError, name, info, metadata, body;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n if (!(typeof getExtraData === 'function')) return [3 /*break*/, 2];\n return [4 /*yield*/, getExtraData()];\n case 1:\n _a = _c.sent();\n return [3 /*break*/, 3];\n case 2:\n _a = null;\n _c.label = 3;\n case 3:\n extra = _a;\n unwrapped = (error !== null && error !== void 0 ? error : Error('[Statsig] Error was empty'));\n isError = unwrapped instanceof Error;\n name = isError ? unwrapped.name : 'No Name';\n if (this._seen.has(name))\n return [2 /*return*/];\n this._seen.add(name);\n info = isError\n ? unwrapped.stack\n : this._getDescription(unwrapped);\n metadata = (_b = this._statsigMetadata) !== null && _b !== void 0 ? _b : {};\n body = JSON.stringify({\n tag: tag,\n exception: name,\n info: info,\n statsigMetadata: metadata,\n extra: extra !== null && extra !== void 0 ? extra : {},\n });\n return [2 /*return*/, fetch(exports.ExceptionEndpoint, {\n method: 'POST',\n headers: {\n 'STATSIG-API-KEY': this._sdkKey,\n 'STATSIG-SDK-TYPE': String(metadata['sdkType']),\n 'STATSIG-SDK-VERSION': String(metadata['sdkVersion']),\n 'Content-Type': 'application/json',\n 'Content-Length': \"\".concat(body.length),\n },\n body: body,\n })];\n }\n });\n }); };\n impl()\n .then(function () {\n /* noop */\n })\n .catch(function () {\n /* noop */\n });\n }\n catch (_error) {\n /* noop */\n }\n };\n ErrorBoundary.prototype._onCaught = function (tag, error, recover, getExtraData) {\n if (error instanceof Errors_1.StatsigUninitializedError ||\n error instanceof Errors_1.StatsigInvalidArgumentError) {\n throw error; // Don't catch these\n }\n console.error('[Statsig] An unexpected exception occurred.', error);\n this._logError(tag, error, getExtraData);\n return recover();\n };\n ErrorBoundary.prototype._getDescription = function (obj) {\n try {\n return JSON.stringify(obj);\n }\n catch (_a) {\n return '[Statsig] Failed to get string for error.';\n }\n };\n return ErrorBoundary;\n}());\nexports.default = ErrorBoundary;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StatsigInvalidArgumentError = exports.StatsigUninitializedError = exports.StatsigErrorMessage = void 0;\nvar StatsigErrorMessage;\n(function (StatsigErrorMessage) {\n StatsigErrorMessage[\"REQUIRE_ASYNC_INITIALIZE\"] = \"Call initialize() first.\";\n StatsigErrorMessage[\"REQUIRE_SYNC_INITIALIZE\"] = \"Call and wait for initialize() to finish first.\";\n StatsigErrorMessage[\"REQUIRE_INITIALIZE_FOR_LOG_EVENT\"] = \"Must initialize() before logging events.\";\n})(StatsigErrorMessage = exports.StatsigErrorMessage || (exports.StatsigErrorMessage = {}));\nvar StatsigUninitializedError = /** @class */ (function (_super) {\n __extends(StatsigUninitializedError, _super);\n function StatsigUninitializedError(message) {\n var _this = _super.call(this, message !== null && message !== void 0 ? message : StatsigErrorMessage.REQUIRE_SYNC_INITIALIZE) || this;\n Object.setPrototypeOf(_this, StatsigUninitializedError.prototype);\n return _this;\n }\n return StatsigUninitializedError;\n}(Error));\nexports.StatsigUninitializedError = StatsigUninitializedError;\nvar StatsigInvalidArgumentError = /** @class */ (function (_super) {\n __extends(StatsigInvalidArgumentError, _super);\n function StatsigInvalidArgumentError(message) {\n var _this = _super.call(this, message) || this;\n Object.setPrototypeOf(_this, StatsigInvalidArgumentError.prototype);\n return _this;\n }\n return StatsigInvalidArgumentError;\n}(Error));\nexports.StatsigInvalidArgumentError = StatsigInvalidArgumentError;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Layer = /** @class */ (function () {\n function Layer(name, layerValue, ruleID, evaluationDetails, logParameterFunction, secondaryExposures, undelegatedSecondaryExposures, allocatedExperimentName, explicitParameters) {\n if (logParameterFunction === void 0) { logParameterFunction = null; }\n if (secondaryExposures === void 0) { secondaryExposures = []; }\n if (undelegatedSecondaryExposures === void 0) { undelegatedSecondaryExposures = []; }\n if (allocatedExperimentName === void 0) { allocatedExperimentName = ''; }\n if (explicitParameters === void 0) { explicitParameters = []; }\n this._logParameterFunction = logParameterFunction;\n this._name = name;\n this._value = JSON.parse(JSON.stringify(layerValue !== null && layerValue !== void 0 ? layerValue : {}));\n this._ruleID = ruleID !== null && ruleID !== void 0 ? ruleID : '';\n this._evaluationDetails = evaluationDetails;\n this._secondaryExposures = secondaryExposures;\n this._undelegatedSecondaryExposures = undelegatedSecondaryExposures;\n this._allocatedExperimentName = allocatedExperimentName;\n this._explicitParameters = explicitParameters;\n }\n Layer._create = function (name, value, ruleID, evaluationDetails, logParameterFunction, secondaryExposures, undelegatedSecondaryExposures, allocatedExperimentName, explicitParameters) {\n if (logParameterFunction === void 0) { logParameterFunction = null; }\n if (secondaryExposures === void 0) { secondaryExposures = []; }\n if (undelegatedSecondaryExposures === void 0) { undelegatedSecondaryExposures = []; }\n if (allocatedExperimentName === void 0) { allocatedExperimentName = ''; }\n if (explicitParameters === void 0) { explicitParameters = []; }\n return new Layer(name, value, ruleID, evaluationDetails, logParameterFunction, secondaryExposures, undelegatedSecondaryExposures, allocatedExperimentName, explicitParameters);\n };\n Layer.prototype.get = function (key, defaultValue, typeGuard) {\n var _this = this;\n var val = this._value[key];\n if (val == null) {\n return defaultValue;\n }\n var logAndReturn = function () {\n _this._logLayerParameterExposure(key);\n return val;\n };\n if (typeGuard) {\n return typeGuard(val) ? logAndReturn() : defaultValue;\n }\n if (defaultValue == null) {\n return logAndReturn();\n }\n if (typeof val === typeof defaultValue &&\n Array.isArray(defaultValue) === Array.isArray(val)) {\n return logAndReturn();\n }\n return defaultValue;\n };\n Layer.prototype.getValue = function (key, defaultValue) {\n if (defaultValue == undefined) {\n defaultValue = null;\n }\n var val = this._value[key];\n if (val != null) {\n this._logLayerParameterExposure(key);\n }\n return val !== null && val !== void 0 ? val : defaultValue;\n };\n Layer.prototype._logLayerParameterExposure = function (parameterName) {\n var _a;\n (_a = this._logParameterFunction) === null || _a === void 0 ? void 0 : _a.call(this, this, parameterName);\n };\n return Layer;\n}());\nexports.default = Layer;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.saveOverridesToLocalStorage = exports.loadOverridesFromLocalStorage = exports.makeEmptyOverrides = exports.STORAGE_KEY = void 0;\nvar StatsigLocalStorage_1 = __importDefault(require(\"./utils/StatsigLocalStorage\"));\nexports.STORAGE_KEY = 'STATSIG_JS_LITE_LOCAL_OVERRIDES';\nfunction makeEmptyOverrides() {\n return { gates: {}, configs: {}, layers: {} };\n}\nexports.makeEmptyOverrides = makeEmptyOverrides;\nfunction loadOverridesFromLocalStorage() {\n var raw = StatsigLocalStorage_1.default.getItem(exports.STORAGE_KEY);\n if (raw) {\n try {\n return JSON.parse(raw);\n }\n catch (error) {\n // noop\n }\n }\n return makeEmptyOverrides();\n}\nexports.loadOverridesFromLocalStorage = loadOverridesFromLocalStorage;\nfunction saveOverridesToLocalStorage(overrides) {\n StatsigLocalStorage_1.default.setItem(exports.STORAGE_KEY, JSON.stringify(overrides));\n}\nexports.saveOverridesToLocalStorage = saveOverridesToLocalStorage;\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction makeLogEvent(eventName, user, statsigMetadata, value, metadata, secondaryExposures) {\n if (value === void 0) { value = null; }\n if (metadata === void 0) { metadata = null; }\n var logUser = user;\n if (logUser === null || logUser === void 0 ? void 0 : logUser.privateAttributes) {\n logUser = __assign({}, user);\n delete logUser.privateAttributes;\n }\n return {\n time: Date.now(),\n eventName: eventName,\n statsigMetadata: statsigMetadata,\n user: logUser,\n value: value,\n metadata: metadata,\n secondaryExposures: secondaryExposures,\n };\n}\nexports.default = makeLogEvent;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.version = void 0;\n// Generated by genversion.\nexports.version = '1.2.1';\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar DynamicConfig_1 = __importDefault(require(\"./DynamicConfig\"));\nvar ErrorBoundary_1 = __importDefault(require(\"./ErrorBoundary\"));\nvar Errors_1 = require(\"./Errors\");\nvar Layer_1 = __importDefault(require(\"./Layer\"));\nvar StatsigIdentity_1 = __importDefault(require(\"./StatsigIdentity\"));\nvar StatsigLogger_1 = __importDefault(require(\"./StatsigLogger\"));\nvar StatsigNetwork_1 = __importDefault(require(\"./StatsigNetwork\"));\nvar StatsigSDKOptions_1 = __importDefault(require(\"./StatsigSDKOptions\"));\nvar StatsigStore_1 = __importStar(require(\"./StatsigStore\"));\nvar StatsigLocalStorage_1 = __importDefault(require(\"./utils/StatsigLocalStorage\"));\nvar Timing_1 = require(\"./utils/Timing\");\nvar LogEvent_1 = __importDefault(require(\"./LogEvent\"));\nvar LocalOverrides_1 = require(\"./LocalOverrides\");\nvar StatsigClient = /** @class */ (function () {\n function StatsigClient(sdkKey, user, options) {\n var _this = this;\n this._initCalled = false;\n this._pendingInitPromise = null;\n this._logLayerParameterExposureForLayer = function (layer, parameterName, isManualExposure) {\n if (isManualExposure === void 0) { isManualExposure = false; }\n var allocatedExperiment = '';\n var exposures = layer._undelegatedSecondaryExposures;\n var isExplicit = layer._explicitParameters.includes(parameterName);\n if (isExplicit) {\n allocatedExperiment = layer._allocatedExperimentName;\n exposures = layer._secondaryExposures;\n }\n _this._logger.logLayerExposure(_this._identity._user, layer._name, layer._ruleID, exposures, allocatedExperiment, parameterName, isExplicit, layer._evaluationDetails, isManualExposure);\n };\n if ((options === null || options === void 0 ? void 0 : options.localMode) !== true &&\n (typeof sdkKey !== 'string' || !sdkKey.startsWith('client-'))) {\n throw new Errors_1.StatsigInvalidArgumentError('Invalid key provided. You must use a Client SDK Key from the Statsig console to initialize the sdk');\n }\n this._startTime = (0, Timing_1.now)();\n this._errorBoundary = new ErrorBoundary_1.default(sdkKey);\n this._ready = false;\n this._options = new StatsigSDKOptions_1.default(options);\n StatsigLocalStorage_1.default.disabled = this._options.disableLocalStorage;\n this._overrides = (0, LocalOverrides_1.loadOverridesFromLocalStorage)();\n this._identity = new StatsigIdentity_1.default(sdkKey, this._normalizeUser(user !== null && user !== void 0 ? user : null), this._options.overrideStableID);\n this._network = new StatsigNetwork_1.default(this._options, this._identity, this._errorBoundary);\n this._logger = new StatsigLogger_1.default(this._options, this._identity, this._network, this._errorBoundary);\n this._store = new StatsigStore_1.default(this._identity, this._logger.logConfigDefaultValueFallback, this._options.initializeValues);\n this._errorBoundary._setStatsigMetadata(this._identity._statsigMetadata);\n if (this._options.initializeValues != null) {\n this._ready = true;\n this._initCalled = true;\n setTimeout(function () { return _this._delayedSetup(); }, 20);\n }\n }\n StatsigClient.prototype.setInitializeValues = function (initializeValues) {\n var _this = this;\n this._errorBoundary._capture('setInitializeValues', function () {\n _this._store.bootstrap(initializeValues);\n if (!_this._ready) {\n // the sdk is usable and considered initialized when configured\n // with initializeValues\n _this._ready = true;\n _this._initCalled = true;\n }\n // we wont have access to window/document/localStorage if these run on the server\n // so try to run whenever this is called\n _this._logger.sendSavedRequests();\n }, function () {\n _this._ready = true;\n _this._initCalled = true;\n });\n };\n StatsigClient.prototype.initializeAsync = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n return [2 /*return*/, this._errorBoundary._capture('initializeAsync', function () { return __awaiter(_this, void 0, void 0, function () {\n var user;\n var _this = this;\n return __generator(this, function (_a) {\n if (this._pendingInitPromise != null) {\n return [2 /*return*/, this._pendingInitPromise];\n }\n if (this._ready) {\n return [2 /*return*/, Promise.resolve()];\n }\n this._initCalled = true;\n if (this._options.localMode) {\n return [2 /*return*/, Promise.resolve()];\n }\n user = this._identity._user;\n this._pendingInitPromise = this._fetchAndSaveValues(user, this._options.initTimeoutMs)\n .then(function () {\n return;\n })\n .catch(function (e) {\n _this._errorBoundary._logError('initializeAsync:fetchAndSaveValues', e);\n return { success: false, message: e.message };\n })\n .then(function () {\n return;\n })\n .finally(function () { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n this._pendingInitPromise = null;\n this._ready = true;\n this._delayedSetup();\n return [2 /*return*/];\n });\n }); });\n return [2 /*return*/, this._pendingInitPromise];\n });\n }); }, function () {\n _this._ready = true;\n _this._initCalled = true;\n return Promise.resolve();\n })];\n });\n });\n };\n StatsigClient.prototype.getEvaluationDetails = function () {\n var _this = this;\n return this._errorBoundary._capture('getEvaluationDetails', function () {\n return _this._store.getGlobalEvaluationDetails();\n }, function () {\n return {\n time: Date.now(),\n reason: StatsigStore_1.EvaluationReason.Error,\n };\n });\n };\n /**\n * Checks the value of a gate for the current user\n * @param {string} gateName - the name of the gate to check\n * @returns {boolean} - value of a gate for the user. Gates are \"off\" (return false) by default\n * @throws Error if initialize() is not called first, or gateName is not a string\n */\n StatsigClient.prototype.checkGate = function (gateName) {\n return this._checkGateImpl(gateName, 'checkGate');\n };\n StatsigClient.prototype.checkGateWithExposureLoggingDisabled = function (gateName) {\n return this._checkGateImpl(gateName, 'checkGateWithExposureLoggingDisabled');\n };\n StatsigClient.prototype.logGateExposure = function (gateName) {\n var _this = this;\n this._errorBoundary._swallow('logGateExposure', function () {\n _this._logGateExposureImpl(gateName);\n });\n };\n /**\n * Checks the value of a config for the current user\n * @param {string} configName - the name of the config to get\n * @returns {DynamicConfig} - value of a config for the user\n * @throws Error if initialize() is not called first, or configName is not a string\n */\n StatsigClient.prototype.getConfig = function (configName) {\n return this._getConfigImpl(configName, 'getConfig');\n };\n StatsigClient.prototype.getConfigWithExposureLoggingDisabled = function (configName) {\n return this._getConfigImpl(configName, 'getConfigWithExposureLoggingDisabled');\n };\n StatsigClient.prototype.logConfigExposure = function (configName) {\n var _this = this;\n this._errorBoundary._swallow('logConfigExposure', function () {\n _this._logConfigExposureImpl(configName);\n });\n };\n StatsigClient.prototype.getExperiment = function (experimentName) {\n return this.getConfig(experimentName);\n };\n StatsigClient.prototype.getExperimentWithExposureLoggingDisabled = function (experimentName) {\n return this.getConfigWithExposureLoggingDisabled(experimentName);\n };\n StatsigClient.prototype.logExperimentExposure = function (experimentName) {\n this.logConfigExposure(experimentName);\n };\n StatsigClient.prototype.getLayer = function (layerName) {\n return this._getLayerImpl(layerName, 'getLayer');\n };\n StatsigClient.prototype.getLayerWithExposureLoggingDisabled = function (layerName) {\n return this._getLayerImpl(layerName, 'getLayerWithExposureLoggingDisabled');\n };\n StatsigClient.prototype.logLayerParameterExposure = function (layerName, parameterName) {\n var _this = this;\n this._errorBoundary._swallow('logLayerParameterExposure', function () {\n var layer = _this._getLayerFromStore(null, layerName);\n _this._logLayerParameterExposureForLayer(layer, parameterName, true);\n });\n };\n StatsigClient.prototype.logEvent = function (eventName, value, metadata) {\n var _this = this;\n if (value === void 0) { value = null; }\n if (metadata === void 0) { metadata = null; }\n this._errorBoundary._swallow('logEvent', function () {\n if (!_this._logger || !_this._identity._sdkKey) {\n throw new Errors_1.StatsigUninitializedError(Errors_1.StatsigErrorMessage.REQUIRE_INITIALIZE_FOR_LOG_EVENT);\n }\n if (typeof eventName !== 'string' || eventName.length === 0) {\n return;\n }\n var event = (0, LogEvent_1.default)(eventName, _this._identity._user, _this._identity._statsigMetadata, value, metadata);\n _this._logger.log(event);\n });\n };\n StatsigClient.prototype.updateUserWithValues = function (user, values) {\n var _this = this;\n var updateStartTime = Date.now();\n var fireCompletionCallback;\n return this._errorBoundary._capture('updateUserWithValues', function () {\n if (!_this.initializeCalled()) {\n throw new Errors_1.StatsigUninitializedError(Errors_1.StatsigErrorMessage.REQUIRE_ASYNC_INITIALIZE);\n }\n fireCompletionCallback = function (success, error) {\n var cb = _this._options.updateUserCompletionCallback;\n cb === null || cb === void 0 ? void 0 : cb(Date.now() - updateStartTime, success, error);\n };\n _this._identity._user = _this._normalizeUser(user);\n _this._store.bootstrap(values);\n fireCompletionCallback(true, null);\n return true;\n }, function () {\n fireCompletionCallback === null || fireCompletionCallback === void 0 ? void 0 : fireCompletionCallback(false, 'Failed to update user. An unexpected error occured.');\n return false;\n });\n };\n StatsigClient.prototype.updateUser = function (user) {\n return __awaiter(this, void 0, void 0, function () {\n var updateStartTime, fireCompletionCallback;\n var _this = this;\n return __generator(this, function (_a) {\n updateStartTime = Date.now();\n return [2 /*return*/, this._errorBoundary._capture('updateUser', function () { return __awaiter(_this, void 0, void 0, function () {\n var currentUser;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this.initializeCalled()) {\n throw new Errors_1.StatsigUninitializedError(Errors_1.StatsigErrorMessage.REQUIRE_ASYNC_INITIALIZE);\n }\n fireCompletionCallback = function (success, error) {\n var cb = _this._options.updateUserCompletionCallback;\n cb === null || cb === void 0 ? void 0 : cb(Date.now() - updateStartTime, success, error);\n };\n this._identity._user = this._normalizeUser(user);\n this._store.updateUser();\n this._logger.resetDedupeKeys();\n if (!(this._pendingInitPromise != null)) return [3 /*break*/, 2];\n return [4 /*yield*/, this._pendingInitPromise];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2:\n if (this._options.localMode) {\n fireCompletionCallback(true, null);\n return [2 /*return*/, Promise.resolve(true)];\n }\n currentUser = this._identity._user;\n this._pendingInitPromise = this._fetchAndSaveValues(currentUser).finally(function () {\n _this._pendingInitPromise = null;\n });\n return [2 /*return*/, this._pendingInitPromise\n .then(function () {\n fireCompletionCallback(true, null);\n return Promise.resolve(true);\n })\n .catch(function (error) {\n fireCompletionCallback(false, \"Failed to update user: \".concat(error));\n return Promise.resolve(false);\n })];\n }\n });\n }); }, function () {\n fireCompletionCallback(false, 'Failed to update user. An unexpected error occured.');\n return Promise.resolve(false);\n })];\n });\n });\n };\n /**\n * Informs the statsig SDK that the client is closing or shutting down\n * so the SDK can clean up internal state\n */\n StatsigClient.prototype.shutdown = function () {\n var _this = this;\n this._errorBoundary._swallow('shutdown', function () {\n _this._logger.shutdown();\n });\n };\n /**\n * @returns The Statsig stable ID used for device level experiments\n */\n StatsigClient.prototype.getStableID = function () {\n var _this = this;\n return this._errorBoundary._capture('getStableID', function () { return _this._identity._statsigMetadata.stableID; }, function () { return ''; });\n };\n StatsigClient.prototype.initializeCalled = function () {\n return this._initCalled;\n };\n StatsigClient.prototype.overrideGate = function (gate, result) {\n this._setOverride('gates', gate, result);\n };\n StatsigClient.prototype.overrideConfig = function (config, result) {\n this._setOverride('configs', config, result);\n };\n StatsigClient.prototype.overrideLayer = function (layer, result) {\n this._setOverride('layers', layer, result);\n };\n StatsigClient.prototype.setOverrides = function (overrides) {\n var _this = this;\n this._errorBoundary._swallow('setOverrides', function () {\n _this._overrides = overrides !== null && overrides !== void 0 ? overrides : (0, LocalOverrides_1.makeEmptyOverrides)();\n (0, LocalOverrides_1.saveOverridesToLocalStorage)(_this._overrides);\n });\n };\n StatsigClient.prototype.getOverrides = function () {\n var _this = this;\n return this._errorBoundary._capture('getOverrides', function () { return _this._overrides; }, function () { return (0, LocalOverrides_1.makeEmptyOverrides)(); });\n };\n // Private\n StatsigClient.prototype._delayedSetup = function () {\n var _this = this;\n this._errorBoundary._swallow('delayedSetup', function () {\n _this._identity.saveStableID();\n _this._logger.sendSavedRequests().then(function () {\n /* noop */\n });\n });\n };\n StatsigClient.prototype._normalizeUser = function (user) {\n var userCopy = {};\n try {\n userCopy = JSON.parse(JSON.stringify(user));\n }\n catch (error) {\n throw new Errors_1.StatsigInvalidArgumentError('User object must be convertable to JSON string.');\n }\n if (this._options.environment != null) {\n userCopy = __assign(__assign({}, userCopy), { statsigEnvironment: this._options.environment });\n }\n return userCopy;\n };\n StatsigClient.prototype._ensureStoreLoaded = function () {\n if (!this._store.isLoaded()) {\n throw new Errors_1.StatsigUninitializedError();\n }\n };\n StatsigClient.prototype._getEvaluationDetailsForError = function () {\n return {\n time: Date.now(),\n reason: StatsigStore_1.EvaluationReason.Error,\n };\n };\n StatsigClient.prototype._fetchAndSaveValues = function (user, timeout) {\n if (timeout === void 0) { timeout = this._options.initTimeoutMs; }\n return __awaiter(this, void 0, void 0, function () {\n var sinceTime, previousDerivedFields;\n var _this = this;\n return __generator(this, function (_a) {\n sinceTime = null;\n sinceTime = this._store.getLastUpdateTime(user);\n previousDerivedFields = this._store.getPreviousDerivedFields(user);\n return [2 /*return*/, this._network\n .fetchValues(user, sinceTime, timeout, previousDerivedFields)\n .eventually(function (json) {\n if (json === null || json === void 0 ? void 0 : json.has_updates) {\n _this._store.save(user, json, false);\n }\n })\n .then(function (json) { return __awaiter(_this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n return [2 /*return*/, this._errorBoundary._swallow('fetchAndSaveValues', function () { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(json === null || json === void 0 ? void 0 : json.has_updates)) return [3 /*break*/, 2];\n return [4 /*yield*/, this._store.save(user, json)];\n case 1:\n _a.sent();\n return [3 /*break*/, 3];\n case 2:\n if (json === null || json === void 0 ? void 0 : json.is_no_content) {\n this._store.setEvaluationReason(StatsigStore_1.EvaluationReason.NetworkNotModified);\n }\n _a.label = 3;\n case 3: return [2 /*return*/];\n }\n });\n }); })];\n });\n }); })];\n });\n });\n };\n StatsigClient.prototype._checkGateImpl = function (gateName, callsite) {\n var _this = this;\n return this._errorBoundary._capture(callsite, function () {\n if (typeof _this._overrides.gates[gateName] === 'boolean') {\n return _this._overrides.gates[gateName];\n }\n var result = _this._getGateFromStore(gateName);\n if (callsite === 'checkGate') {\n _this._logGateExposureImpl(gateName, result);\n }\n return result.gate.value === true;\n }, function () { return false; });\n };\n StatsigClient.prototype._getGateFromStore = function (gateName) {\n this._ensureStoreLoaded();\n if (typeof gateName !== 'string' || gateName.length === 0) {\n throw new Errors_1.StatsigInvalidArgumentError('Must pass a valid string as the gateName.');\n }\n return this._store.checkGate(gateName);\n };\n StatsigClient.prototype._logGateExposureImpl = function (gateName, fetchResult) {\n var isManualExposure = !fetchResult;\n var result = fetchResult !== null && fetchResult !== void 0 ? fetchResult : this._getGateFromStore(gateName);\n var gate = result.gate;\n this._logger.logGateExposure(this._identity._user, gateName, gate.value, gate.rule_id, gate.secondary_exposures, result.evaluationDetails, isManualExposure);\n };\n StatsigClient.prototype._getConfigImpl = function (configName, callsite) {\n var _this = this;\n return this._errorBoundary._capture(callsite, function () {\n if (_this._overrides.configs[configName]) {\n return new DynamicConfig_1.default(configName, _this._overrides.configs[configName], 'local_override', {\n reason: StatsigStore_1.EvaluationReason.LocalOverride,\n time: Date.now(),\n });\n }\n var result = _this._getConfigFromStore(configName);\n if (callsite === 'getConfig') {\n _this._logConfigExposureImpl(configName, result);\n }\n return result;\n }, function () { return _this._getEmptyConfig(configName); });\n };\n StatsigClient.prototype._getConfigFromStore = function (configName) {\n this._ensureStoreLoaded();\n if (typeof configName !== 'string' || configName.length === 0) {\n throw new Errors_1.StatsigInvalidArgumentError('Must pass a valid string as the configName.');\n }\n return this._store.getConfig(configName);\n };\n StatsigClient.prototype._logConfigExposureImpl = function (configName, config) {\n var isManualExposure = !config;\n var localConfig = config !== null && config !== void 0 ? config : this._getConfigFromStore(configName);\n this._logger.logConfigExposure(this._identity._user, configName, localConfig._ruleID, localConfig._secondaryExposures, localConfig._evaluationDetails, isManualExposure);\n };\n StatsigClient.prototype._getLayerImpl = function (layerName, callsite) {\n var _this = this;\n return this._errorBoundary._capture(callsite, function () {\n if (_this._overrides.layers[layerName]) {\n return Layer_1.default._create(layerName, _this._overrides.layers[layerName], 'local_override', {\n reason: StatsigStore_1.EvaluationReason.LocalOverride,\n time: Date.now(),\n });\n }\n var logFunc = callsite === 'getLayer'\n ? _this._logLayerParameterExposureForLayer\n : null;\n return _this._getLayerFromStore(logFunc, layerName);\n }, function () {\n return Layer_1.default._create(layerName, {}, '', _this._getEvaluationDetailsForError());\n });\n };\n StatsigClient.prototype._getLayerFromStore = function (logParameterFunction, layerName) {\n this._ensureStoreLoaded();\n if (typeof layerName !== 'string' || layerName.length === 0) {\n throw new Errors_1.StatsigInvalidArgumentError('Must pass a valid string as the layerName.');\n }\n return this._store.getLayer(logParameterFunction, layerName);\n };\n StatsigClient.prototype._getEmptyConfig = function (configName) {\n return new DynamicConfig_1.default(configName, {}, '', this._getEvaluationDetailsForError());\n };\n StatsigClient.prototype._setOverride = function (type, key, result) {\n if (result == null) {\n delete this._overrides[type][key];\n }\n else {\n this._overrides[type][key] = result;\n }\n this.setOverrides(this._overrides);\n };\n return StatsigClient;\n}());\nexports.default = StatsigClient;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Constants_1 = require(\"./utils/Constants\");\nvar Hashing_1 = require(\"./utils/Hashing\");\nvar StatsigLocalStorage_1 = __importDefault(require(\"./utils/StatsigLocalStorage\"));\nvar SDKVersion_1 = require(\"./SDKVersion\");\nvar Identity = /** @class */ (function () {\n function Identity(sdkKey, user, overrideStableID) {\n var _a;\n this._sdkType = 'js-lite';\n this._sdkKey = sdkKey;\n this._user = user;\n this._sdkVersion = SDKVersion_1.version;\n var stableID = overrideStableID;\n stableID =\n (_a = stableID !== null && stableID !== void 0 ? stableID : StatsigLocalStorage_1.default.getItem(Constants_1.STATSIG_STABLE_ID_KEY)) !== null && _a !== void 0 ? _a : this._getUUID();\n this._statsigMetadata = {\n stableID: stableID,\n sdkType: this._sdkType,\n sdkVersion: this._sdkVersion,\n };\n }\n Identity.prototype.saveStableID = function () {\n if (this._statsigMetadata.stableID != null) {\n StatsigLocalStorage_1.default.setItem(Constants_1.STATSIG_STABLE_ID_KEY, this._statsigMetadata.stableID);\n }\n };\n Identity.prototype.getUserCacheKey = function () {\n return (0, Hashing_1.getUserCacheKey)(this._user);\n };\n Identity.prototype._getUUID = function () {\n var uuid = '';\n for (var i = 0; i < 32; i++) {\n if (i === 8 || i === 12 || i === 16 || i === 20) {\n uuid += '-';\n }\n var randomDigit = (Math.random() * 16) | 0;\n if (i === 12) {\n uuid += '4';\n }\n else if (i === 16) {\n uuid += ((randomDigit & 3) | 8).toString(16);\n }\n else {\n uuid += randomDigit.toString(16);\n }\n }\n return uuid;\n };\n return Identity;\n}());\nexports.default = Identity;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar LogEvent_1 = __importDefault(require(\"./LogEvent\"));\nvar StatsigNetwork_1 = require(\"./StatsigNetwork\");\nvar Constants_1 = require(\"./utils/Constants\");\nvar StatsigLocalStorage_1 = __importDefault(require(\"./utils/StatsigLocalStorage\"));\nvar INTERNAL_EVENT_PREFIX = 'statsig::';\nvar CONFIG_EXPOSURE_EVENT = INTERNAL_EVENT_PREFIX + 'config_exposure';\nvar LAYER_EXPOSURE_EVENT = INTERNAL_EVENT_PREFIX + 'layer_exposure';\nvar GATE_EXPOSURE_EVENT = INTERNAL_EVENT_PREFIX + 'gate_exposure';\nvar LOG_FAILURE_EVENT = INTERNAL_EVENT_PREFIX + 'log_event_failed';\nvar DEFAULT_VALUE_WARNING = INTERNAL_EVENT_PREFIX + 'default_value_type_mismatch';\nvar MS_RETRY_LOGS_CUTOFF = 5 * 24 * 60 * 60 * 1000;\nvar MAX_BATCHES_TO_RETRY = 100;\nvar MAX_FAILED_EVENTS = 1000;\nvar MAX_LOCAL_STORAGE_SIZE = 1024 * MAX_FAILED_EVENTS;\nvar StatsigLogger = /** @class */ (function () {\n function StatsigLogger(options, identity, network, errorBoundary) {\n var _this = this;\n this._failedLogEventCount = 0;\n this.logConfigDefaultValueFallback = function (user, message, metadata) {\n var defaultValueEvent = (0, LogEvent_1.default)(DEFAULT_VALUE_WARNING, user, _this._identity._statsigMetadata, message, metadata);\n _this.log(defaultValueEvent);\n _this._loggedErrors.add(message);\n };\n this._options = options;\n this._identity = identity;\n this._network = network;\n this._errorBoundary = errorBoundary;\n this._queue = [];\n this._flushInterval = null;\n this._loggedErrors = new Set();\n this._failedLogEvents = [];\n this._exposureDedupeKeys = {};\n this._failedLogEventCount = 0;\n this._init();\n }\n StatsigLogger.prototype.log = function (event) {\n try {\n if (!this._options.disableCurrentPageLogging &&\n typeof window !== 'undefined' &&\n window != null &&\n typeof window.location === 'object' &&\n typeof window.location.href === 'string') {\n // https://stackoverflow.com/questions/6257463/how-to-get-the-url-without-any-parameters-in-javascript\n var parts = window.location.href.split(/[?#]/);\n if ((parts === null || parts === void 0 ? void 0 : parts.length) > 0) {\n event.statsigMetadata.currentPage = parts[0];\n }\n }\n }\n catch (_e) { }\n this._queue.push(event);\n if (this._queue.length >= this._options.loggingBufferMaxSize) {\n this.flush();\n }\n };\n StatsigLogger.prototype.resetDedupeKeys = function () {\n this._exposureDedupeKeys = {};\n };\n StatsigLogger.prototype.logGateExposure = function (user, gateName, gateValue, ruleID, secondaryExposures, details, isManualExposure) {\n var dedupeKey = gateName + String(gateValue) + ruleID + details.reason;\n if (!this._shouldLogExposure(dedupeKey)) {\n return;\n }\n var metadata = {\n gate: gateName,\n gateValue: String(gateValue),\n ruleID: ruleID,\n reason: details.reason,\n time: details.time,\n };\n if (isManualExposure) {\n metadata['isManualExposure'] = 'true';\n }\n var gateExposure = (0, LogEvent_1.default)(GATE_EXPOSURE_EVENT, user, this._identity._statsigMetadata, null, metadata, secondaryExposures);\n this.log(gateExposure);\n };\n StatsigLogger.prototype.logConfigExposure = function (user, configName, ruleID, secondaryExposures, details, isManualExposure) {\n var dedupeKey = configName + ruleID + details.reason;\n if (!this._shouldLogExposure(dedupeKey)) {\n return;\n }\n var metadata = {\n config: configName,\n ruleID: ruleID,\n reason: details.reason,\n time: details.time,\n };\n if (isManualExposure) {\n metadata['isManualExposure'] = 'true';\n }\n var configExposure = (0, LogEvent_1.default)(CONFIG_EXPOSURE_EVENT, user, this._identity._statsigMetadata, null, metadata, secondaryExposures);\n this.log(configExposure);\n };\n StatsigLogger.prototype.logLayerExposure = function (user, configName, ruleID, secondaryExposures, allocatedExperiment, parameterName, isExplicitParameter, details, isManualExposure) {\n var dedupeKey = [\n configName,\n ruleID,\n allocatedExperiment,\n parameterName,\n String(isExplicitParameter),\n details.reason,\n ].join('|');\n if (!this._shouldLogExposure(dedupeKey)) {\n return;\n }\n var metadata = {\n config: configName,\n ruleID: ruleID,\n allocatedExperiment: allocatedExperiment,\n parameterName: parameterName,\n isExplicitParameter: String(isExplicitParameter),\n reason: details.reason,\n time: details.time,\n };\n if (isManualExposure) {\n metadata['isManualExposure'] = 'true';\n }\n var configExposure = (0, LogEvent_1.default)(LAYER_EXPOSURE_EVENT, user, this._identity._statsigMetadata, null, metadata, secondaryExposures);\n this.log(configExposure);\n };\n StatsigLogger.prototype.shutdown = function () {\n if (this._flushInterval) {\n clearInterval(this._flushInterval);\n this._flushInterval = null;\n }\n this.flush(true);\n };\n StatsigLogger.prototype.flush = function (isClosing) {\n var _this = this;\n if (isClosing === void 0) { isClosing = false; }\n if (this._queue.length === 0) {\n return;\n }\n var statsigMetadata = this._identity._statsigMetadata;\n var oldQueue = this._queue;\n this._queue = [];\n if (isClosing &&\n !this._network.supportsKeepalive() &&\n typeof navigator !== 'undefined' &&\n navigator != null &&\n // @ts-ignore\n navigator.sendBeacon) {\n var beacon = this._network.sendLogBeacon({\n events: oldQueue,\n statsigMetadata: statsigMetadata,\n });\n if (!beacon) {\n this._queue = oldQueue.concat(this._queue);\n if (this._queue.length > 0) {\n this._addFailedRequest({\n events: this._queue,\n statsigMetadata: statsigMetadata,\n time: Date.now(),\n });\n this._queue = [];\n }\n this._saveFailedRequests();\n }\n return;\n }\n var processor = this;\n this._network\n .postToEndpoint(StatsigNetwork_1.StatsigEndpoint.Rgstr, {\n events: oldQueue,\n statsigMetadata: statsigMetadata,\n }, 3 /* retries */, 1000 /* backoff */, isClosing /* useKeepalive */)\n .then(function (response) {\n if (!response.ok) {\n throw response;\n }\n })\n .catch(function (error) {\n if (typeof error.text === 'function') {\n error.text().then(function (errorText) {\n _this._errorBoundary._logError(LOG_FAILURE_EVENT, error, function () { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, {\n eventCount: oldQueue.length,\n error: errorText,\n }];\n });\n }); });\n });\n }\n else {\n _this._errorBoundary._logError(LOG_FAILURE_EVENT, error, function () { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, {\n eventCount: oldQueue.length,\n error: error.message,\n }];\n });\n }); });\n }\n processor._newFailedRequest(LOG_FAILURE_EVENT, oldQueue);\n })\n .finally(function () { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!isClosing) return [3 /*break*/, 2];\n if (this._queue.length > 0) {\n this._addFailedRequest({\n events: this._queue,\n statsigMetadata: statsigMetadata,\n time: Date.now(),\n });\n // on app background/window blur, save unsent events as a request and clean up the queue (in case app foregrounds)\n this._queue = [];\n }\n return [4 /*yield*/, processor._saveFailedRequests()];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2: return [2 /*return*/];\n }\n });\n }); });\n };\n StatsigLogger.prototype.sendSavedRequests = function () {\n return __awaiter(this, void 0, void 0, function () {\n var failedRequests, fireAndForget, requestBodies, _loop_1, this_1, _i, requestBodies_1, requestBody;\n var _this = this;\n return __generator(this, function (_a) {\n fireAndForget = false;\n failedRequests = StatsigLocalStorage_1.default.getItem(Constants_1.STATSIG_LOCAL_STORAGE_LOGGING_REQUEST_KEY);\n if (failedRequests == null) {\n this._clearLocalStorageRequests();\n return [2 /*return*/];\n }\n if (failedRequests.length > MAX_LOCAL_STORAGE_SIZE) {\n fireAndForget = true;\n }\n requestBodies = [];\n try {\n requestBodies = JSON.parse(failedRequests);\n _loop_1 = function (requestBody) {\n if (requestBody != null &&\n requestBody.events &&\n Array.isArray(requestBody.events)) {\n this_1._network\n .postToEndpoint(StatsigNetwork_1.StatsigEndpoint.Rgstr, requestBody)\n .then(function (response) {\n if (!response.ok) {\n throw Error(response.status + '');\n }\n })\n .catch(function (_e) {\n if (fireAndForget) {\n return;\n }\n _this._addFailedRequest(requestBody);\n });\n }\n };\n this_1 = this;\n for (_i = 0, requestBodies_1 = requestBodies; _i < requestBodies_1.length; _i++) {\n requestBody = requestBodies_1[_i];\n _loop_1(requestBody);\n }\n }\n catch (_e) {\n }\n finally {\n this._clearLocalStorageRequests();\n }\n return [2 /*return*/];\n });\n });\n };\n StatsigLogger.prototype._init = function () {\n var _this = this;\n if (typeof window !== 'undefined' &&\n typeof window.addEventListener === 'function') {\n window.addEventListener('blur', function () { return _this.flush(true); });\n window.addEventListener('beforeunload', function () { return _this.flush(true); });\n window.addEventListener('load', function () {\n setTimeout(function () { return _this.flush(); }, 100);\n setTimeout(function () { return _this.flush(); }, 1000);\n });\n }\n if (typeof document !== 'undefined' &&\n typeof document.addEventListener === 'function') {\n document.addEventListener('visibilitychange', function () {\n _this.flush(document.visibilityState !== 'visible');\n });\n }\n if (!this._options.ignoreWindowUndefined &&\n (typeof window === 'undefined' || window == null)) {\n // dont set the flush interval outside of client browser environments\n return;\n }\n if (this._options.localMode) {\n // unnecessary interval in local mode since logs dont flush anyway\n return;\n }\n var me = this;\n this._flushInterval = setInterval(function () {\n me.flush();\n }, this._options.loggingIntervalMillis);\n // Quick flush\n setTimeout(function () { return _this.flush(); }, 100);\n setTimeout(function () { return _this.flush(); }, 1000);\n };\n StatsigLogger.prototype._shouldLogExposure = function (key) {\n var lastTime = this._exposureDedupeKeys[key];\n var now = Date.now();\n if (lastTime == null) {\n this._exposureDedupeKeys[key] = now;\n return true;\n }\n if (lastTime >= now - 600 * 1000) {\n return false;\n }\n this._exposureDedupeKeys[key] = now;\n return true;\n };\n StatsigLogger.prototype._saveFailedRequests = function () {\n return __awaiter(this, void 0, void 0, function () {\n var requestsCopy;\n return __generator(this, function (_a) {\n if (this._failedLogEvents.length > 0) {\n requestsCopy = JSON.stringify(this._failedLogEvents);\n if (requestsCopy.length > MAX_LOCAL_STORAGE_SIZE) {\n this._clearLocalStorageRequests();\n return [2 /*return*/];\n }\n StatsigLocalStorage_1.default.setItem(Constants_1.STATSIG_LOCAL_STORAGE_LOGGING_REQUEST_KEY, requestsCopy);\n }\n return [2 /*return*/];\n });\n });\n };\n StatsigLogger.prototype._addFailedRequest = function (requestBody) {\n if (requestBody.time < Date.now() - MS_RETRY_LOGS_CUTOFF) {\n return;\n }\n if (this._failedLogEvents.length > MAX_BATCHES_TO_RETRY) {\n return;\n }\n var additionalEvents = requestBody.events.length;\n if (this._failedLogEventCount + additionalEvents > MAX_FAILED_EVENTS) {\n return;\n }\n this._failedLogEvents.push(requestBody);\n this._failedLogEventCount += additionalEvents;\n };\n StatsigLogger.prototype._clearLocalStorageRequests = function () {\n StatsigLocalStorage_1.default.removeItem(Constants_1.STATSIG_LOCAL_STORAGE_LOGGING_REQUEST_KEY);\n };\n StatsigLogger.prototype._newFailedRequest = function (name, queue) {\n if (this._loggedErrors.has(name)) {\n return;\n }\n this._loggedErrors.add(name);\n this._failedLogEvents.push({\n events: queue,\n statsigMetadata: this._identity._statsigMetadata,\n time: Date.now(),\n });\n this._saveFailedRequests().then(function () { });\n };\n return StatsigLogger;\n}());\nexports.default = StatsigLogger;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StatsigEndpoint = void 0;\nvar StatsigEndpoint;\n(function (StatsigEndpoint) {\n StatsigEndpoint[\"Initialize\"] = \"initialize\";\n StatsigEndpoint[\"Rgstr\"] = \"rgstr\";\n StatsigEndpoint[\"LogEventBeacon\"] = \"log_event_beacon\";\n})(StatsigEndpoint = exports.StatsigEndpoint || (exports.StatsigEndpoint = {}));\nvar NO_CONTENT = 204;\nvar StatsigNetwork = /** @class */ (function () {\n function StatsigNetwork(options, identity, errorBoundary) {\n this.retryCodes = {\n 408: true,\n 500: true,\n 502: true,\n 503: true,\n 504: true,\n 522: true,\n 524: true,\n 599: true,\n };\n this.canUseKeepalive = false;\n this._options = options;\n this._identity = identity;\n this._errorBoundary = errorBoundary;\n this.leakyBucket = {};\n this._init();\n }\n StatsigNetwork.prototype.fetchValues = function (user, sinceTime, timeout, previousDerivedFields) {\n var input = {\n user: user,\n statsigMetadata: this._identity._statsigMetadata,\n sinceTime: sinceTime !== null && sinceTime !== void 0 ? sinceTime : undefined,\n hash: 'djb2',\n previousDerivedFields: previousDerivedFields,\n };\n return this._postWithTimeout(StatsigEndpoint.Initialize, input, timeout, // timeout for early returns\n 3);\n };\n StatsigNetwork.prototype.sendLogBeacon = function (payload) {\n if (this._options.localMode) {\n return true;\n }\n var url = new URL(this._options.eventLoggingApi + StatsigEndpoint.LogEventBeacon);\n url.searchParams.append('k', this._identity._sdkKey);\n payload.clientTime = Date.now() + '';\n var stringPayload = null;\n try {\n stringPayload = JSON.stringify(payload);\n }\n catch (_e) {\n return false;\n }\n return navigator.sendBeacon(url.toString(), stringPayload);\n };\n StatsigNetwork.prototype.postToEndpoint = function (endpointName, body, retries, backoff, useKeepalive) {\n if (retries === void 0) { retries = 0; }\n if (backoff === void 0) { backoff = 1000; }\n if (useKeepalive === void 0) { useKeepalive = false; }\n return __awaiter(this, void 0, void 0, function () {\n var api, url, counter, postBody, statsigMetadata, params;\n var _this = this;\n return __generator(this, function (_a) {\n if (this._options.localMode) {\n return [2 /*return*/, Promise.reject('no network requests in localMode')];\n }\n if (typeof fetch !== 'function') {\n // fetch is not defined in this environment, short circuit\n return [2 /*return*/, Promise.reject('fetch is not defined')];\n }\n if (typeof window === 'undefined' && !this._options.ignoreWindowUndefined) {\n // by default, dont issue requests from the server\n return [2 /*return*/, Promise.reject('window is not defined')];\n }\n api = [StatsigEndpoint.Initialize].includes(endpointName)\n ? this._options.api\n : this._options.eventLoggingApi;\n url = api + endpointName;\n counter = this.leakyBucket[url];\n if (counter != null && counter >= 30) {\n return [2 /*return*/, Promise.reject(new Error('Request failed because you are making the same request too frequently.'))];\n }\n if (counter == null) {\n this.leakyBucket[url] = 1;\n }\n else {\n this.leakyBucket[url] = counter + 1;\n }\n postBody = JSON.stringify(body);\n statsigMetadata = this._identity._statsigMetadata;\n params = {\n method: 'POST',\n body: postBody,\n headers: {\n 'Content-type': 'application/json; charset=UTF-8',\n 'STATSIG-API-KEY': this._identity._sdkKey,\n 'STATSIG-CLIENT-TIME': Date.now() + '',\n 'STATSIG-SDK-TYPE': statsigMetadata.sdkType,\n 'STATSIG-SDK-VERSION': statsigMetadata.sdkVersion,\n },\n };\n if (this.canUseKeepalive && useKeepalive) {\n params.keepalive = true;\n }\n return [2 /*return*/, fetch(url, params)\n .then(function (res) { return __awaiter(_this, void 0, void 0, function () {\n var networkResponse, text, errorText;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!res.ok) return [3 /*break*/, 4];\n networkResponse = res;\n if (!(res.status === NO_CONTENT)) return [3 /*break*/, 1];\n networkResponse.data = { has_updates: false, is_no_content: true };\n return [3 /*break*/, 3];\n case 1: return [4 /*yield*/, res.text()];\n case 2:\n text = _a.sent();\n networkResponse.data = JSON.parse(text);\n _a.label = 3;\n case 3: return [2 /*return*/, Promise.resolve(networkResponse)];\n case 4:\n if (!this.retryCodes[res.status]) {\n retries = 0;\n }\n return [4 /*yield*/, res.text()];\n case 5:\n errorText = _a.sent();\n return [2 /*return*/, Promise.reject(new Error(\"\".concat(res.status, \": \").concat(errorText)))];\n }\n });\n }); })\n .catch(function (e) {\n if (retries > 0) {\n return new Promise(function (resolve, reject) {\n setTimeout(function () {\n _this.leakyBucket[url] = Math.max(_this.leakyBucket[url] - 1, 0);\n _this.postToEndpoint(endpointName, body, retries - 1, backoff * 2, useKeepalive)\n .then(resolve)\n .catch(reject);\n }, backoff);\n });\n }\n return Promise.reject(e);\n })\n .finally(function () {\n _this.leakyBucket[url] = Math.max(_this.leakyBucket[url] - 1, 0);\n })];\n });\n });\n };\n StatsigNetwork.prototype.supportsKeepalive = function () {\n return this.canUseKeepalive;\n };\n StatsigNetwork.prototype._init = function () {\n if (!this._options.disableNetworkKeepalive) {\n try {\n this.canUseKeepalive = 'keepalive' in new Request('');\n }\n catch (_e) { }\n }\n };\n StatsigNetwork.prototype._postWithTimeout = function (endpointName, body, timeout, retries, backoff) {\n var _this = this;\n if (timeout === void 0) { timeout = 0; }\n if (retries === void 0) { retries = 0; }\n if (backoff === void 0) { backoff = 1000; }\n var hasTimedOut = false;\n var timer = null;\n var cachedReturnValue = null;\n var eventuals = [];\n var eventually = function (boundScope) { return function (fn) {\n if (hasTimedOut && cachedReturnValue) {\n fn(cachedReturnValue);\n }\n else {\n eventuals.push(fn);\n }\n return boundScope;\n }; };\n if (timeout != 0) {\n timer = new Promise(function (resolve, reject) {\n setTimeout(function () {\n hasTimedOut = true;\n reject(new Error(\"The initialization timeout of \".concat(timeout, \"ms has been hit before the network request has completed.\")));\n }, timeout);\n });\n }\n var fetchPromise = this.postToEndpoint(endpointName, body, retries, backoff)\n .then(function (res) {\n if (!res.ok) {\n return Promise.reject(new Error(\"Request to \".concat(endpointName, \" failed with status \").concat(res.status)));\n }\n if (typeof res.data !== 'object') {\n var error = new Error(\"Request to \".concat(endpointName, \" received invalid response type. Expected 'object' but got '\").concat(typeof res.data, \"'\"));\n _this._errorBoundary._logError('postWithTimeoutInvalidRes', error, function () { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this._getErrorData(endpointName, body, retries, backoff, res)];\n });\n }); });\n return Promise.reject(error);\n }\n var json = res.data;\n return _this._errorBoundary._capture('postWithTimeout', function () { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n cachedReturnValue = json;\n if (hasTimedOut) {\n eventuals.forEach(function (fn) { return fn(json); });\n eventuals = [];\n }\n return [2 /*return*/, Promise.resolve(json)];\n });\n }); }, function () {\n return Promise.resolve({});\n }, function () { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this._getErrorData(endpointName, body, retries, backoff, res)];\n });\n }); });\n })\n .catch(function (e) {\n return Promise.reject(e);\n });\n var racingPromise = (timer ? Promise.race([fetchPromise, timer]) : fetchPromise);\n racingPromise.eventually = eventually(racingPromise);\n return racingPromise;\n };\n StatsigNetwork.prototype._getErrorData = function (endpointName, body, retries, backoff, res) {\n var _a;\n return __awaiter(this, void 0, void 0, function () {\n var headers_1;\n return __generator(this, function (_b) {\n try {\n headers_1 = {};\n ((_a = res.headers) !== null && _a !== void 0 ? _a : []).forEach(function (value, key) {\n headers_1[key] = value;\n });\n return [2 /*return*/, {\n responseInfo: {\n headers: headers_1,\n status: res.status,\n statusText: res.statusText,\n type: res.type,\n url: res.url,\n redirected: res.redirected,\n bodySnippet: res.data ? JSON.stringify(res.data).slice(0, 500) : null,\n },\n requestInfo: {\n endpointName: endpointName,\n bodySnippet: JSON.stringify(body).slice(0, 500),\n retries: retries,\n backoff: backoff,\n },\n }];\n }\n catch (_e) {\n return [2 /*return*/, {\n statusText: 'statsig::failed to extract extra data',\n }];\n }\n return [2 /*return*/];\n });\n });\n };\n return StatsigNetwork;\n}());\nexports.default = StatsigNetwork;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.INIT_TIMEOUT_DEFAULT_MS = void 0;\nvar DEFAULT_FEATURE_GATE_API = 'https://featuregates.org/v1/';\nvar DEFAULT_EVENT_LOGGING_API = 'https://events.statsigapi.net/v1/';\nexports.INIT_TIMEOUT_DEFAULT_MS = 3000;\nvar StatsigSDKOptions = /** @class */ (function () {\n function StatsigSDKOptions(options) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;\n if (options == null) {\n options = {};\n }\n var api = (_a = options.api) !== null && _a !== void 0 ? _a : DEFAULT_FEATURE_GATE_API;\n this.api = api.endsWith('/') ? api : api + '/';\n this.disableCurrentPageLogging = (_b = options.disableCurrentPageLogging) !== null && _b !== void 0 ? _b : false;\n this.environment = (_c = options.environment) !== null && _c !== void 0 ? _c : null;\n this.loggingIntervalMillis = this.normalizeNumberInput(options.loggingIntervalMillis, {\n default: 10000,\n min: 1000,\n max: 60000,\n });\n this.loggingBufferMaxSize = this.normalizeNumberInput(options.loggingBufferMaxSize, {\n default: 100,\n min: 2,\n max: 500,\n });\n this.disableNetworkKeepalive = (_d = options.disableNetworkKeepalive) !== null && _d !== void 0 ? _d : false;\n this.overrideStableID = (_e = options.overrideStableID) !== null && _e !== void 0 ? _e : null;\n this.localMode = (_f = options.localMode) !== null && _f !== void 0 ? _f : false;\n this.initTimeoutMs =\n options.initTimeoutMs && options.initTimeoutMs >= 0\n ? options.initTimeoutMs\n : exports.INIT_TIMEOUT_DEFAULT_MS;\n this.disableErrorLogging = (_g = options.disableErrorLogging) !== null && _g !== void 0 ? _g : false;\n this.disableAutoMetricsLogging = (_h = options.disableAutoMetricsLogging) !== null && _h !== void 0 ? _h : false;\n this.initializeValues = (_j = options.initializeValues) !== null && _j !== void 0 ? _j : null;\n var eventLoggingApi = (_l = (_k = options.eventLoggingApi) !== null && _k !== void 0 ? _k : options.api) !== null && _l !== void 0 ? _l : DEFAULT_EVENT_LOGGING_API;\n this.eventLoggingApi = eventLoggingApi.endsWith('/')\n ? eventLoggingApi\n : eventLoggingApi + '/';\n this.disableLocalStorage = (_m = options.disableLocalStorage) !== null && _m !== void 0 ? _m : false;\n this.ignoreWindowUndefined = (_o = options === null || options === void 0 ? void 0 : options.ignoreWindowUndefined) !== null && _o !== void 0 ? _o : false;\n this.updateUserCompletionCallback = (_p = options === null || options === void 0 ? void 0 : options.updateUserCompletionCallback) !== null && _p !== void 0 ? _p : null;\n }\n StatsigSDKOptions.prototype.normalizeNumberInput = function (input, bounds) {\n if (input == null) {\n return bounds.default;\n }\n return Math.max(Math.min(input, bounds.max), bounds.min);\n };\n return StatsigSDKOptions;\n}());\nexports.default = StatsigSDKOptions;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EvaluationReason = void 0;\nvar DynamicConfig_1 = __importDefault(require(\"./DynamicConfig\"));\nvar Layer_1 = __importDefault(require(\"./Layer\"));\nvar BootstrapValidator_1 = __importDefault(require(\"./utils/BootstrapValidator\"));\nvar Constants_1 = require(\"./utils/Constants\");\nvar Hashing_1 = require(\"./utils/Hashing\");\nvar StatsigLocalStorage_1 = __importDefault(require(\"./utils/StatsigLocalStorage\"));\nvar EvaluationReason;\n(function (EvaluationReason) {\n EvaluationReason[\"Network\"] = \"Network\";\n EvaluationReason[\"Bootstrap\"] = \"Bootstrap\";\n EvaluationReason[\"InvalidBootstrap\"] = \"InvalidBootstrap\";\n EvaluationReason[\"Cache\"] = \"Cache\";\n EvaluationReason[\"Unrecognized\"] = \"Unrecognized\";\n EvaluationReason[\"Uninitialized\"] = \"Uninitialized\";\n EvaluationReason[\"Error\"] = \"Error\";\n EvaluationReason[\"NetworkNotModified\"] = \"NetworkNotModified\";\n EvaluationReason[\"LocalOverride\"] = \"LocalOverride\";\n})(EvaluationReason = exports.EvaluationReason || (exports.EvaluationReason = {}));\nvar MAX_USER_VALUE_CACHED = 10;\nvar StatsigStore = /** @class */ (function () {\n function StatsigStore(identity, onDefaultValueFallback, initializeValues) {\n this._identity = identity;\n this._onDefaultValueFallback = onDefaultValueFallback;\n this._userCacheKey = this._identity.getUserCacheKey();\n this._values = {};\n this._userValues = this._getDefaultUserCacheValues();\n this._loaded = false;\n this._reason = EvaluationReason.Uninitialized;\n if (initializeValues) {\n this.bootstrap(initializeValues);\n }\n else {\n this._loadFromLocalStorage();\n }\n }\n StatsigStore.prototype.updateUser = function () {\n this._userCacheKey = this._identity.getUserCacheKey();\n return this._setUserValueFromCache();\n };\n StatsigStore.prototype.bootstrap = function (initializeValues) {\n var _a, _b, _c;\n var key = this._identity.getUserCacheKey();\n var user = this._identity._user;\n var reason = BootstrapValidator_1.default.isValid(user, initializeValues)\n ? EvaluationReason.Bootstrap\n : EvaluationReason.InvalidBootstrap;\n // clients are going to assume that the SDK is bootstrapped after this method runs\n // if we fail to parse, we will fall back to defaults, but we dont want to throw\n // when clients try to check gates/configs/etc after this point\n this._loaded = true;\n try {\n this._userValues.feature_gates = (_a = initializeValues.feature_gates) !== null && _a !== void 0 ? _a : {};\n this._userValues.dynamic_configs = (_b = initializeValues.dynamic_configs) !== null && _b !== void 0 ? _b : {};\n this._userValues.layer_configs = (_c = initializeValues.layer_configs) !== null && _c !== void 0 ? _c : {};\n this._userValues.evaluation_time = Date.now();\n this._userValues.time = Date.now();\n this._values[key] = this._userValues;\n this._reason = reason;\n }\n catch (_e) {\n return;\n }\n };\n StatsigStore.prototype.isLoaded = function () {\n return this._loaded;\n };\n StatsigStore.prototype.getLastUpdateTime = function (user) {\n var userHash = (0, Hashing_1.djb2HashForObject)(user);\n if (this._userValues.user_hash == userHash) {\n return this._userValues.time;\n }\n return null;\n };\n StatsigStore.prototype.getPreviousDerivedFields = function (user) {\n var userHash = (0, Hashing_1.djb2HashForObject)(user);\n if (this._userValues.user_hash == userHash) {\n return this._userValues.derived_fields;\n }\n return undefined;\n };\n StatsigStore.prototype.setEvaluationReason = function (evalReason) {\n this._reason = evalReason;\n };\n StatsigStore.prototype.save = function (user, jsonConfigs, updateState) {\n if (updateState === void 0) { updateState = true; }\n return __awaiter(this, void 0, void 0, function () {\n var requestedUserCacheKey, initResponse, userValues, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n requestedUserCacheKey = (0, Hashing_1.getUserCacheKey)(user);\n initResponse = jsonConfigs;\n this._mergeInitializeResponseIntoUserMap(initResponse, this._values, requestedUserCacheKey, user, function (userValues) { return userValues; });\n if (updateState) {\n userValues = this._values[requestedUserCacheKey];\n if (userValues &&\n requestedUserCacheKey &&\n requestedUserCacheKey == this._userCacheKey) {\n this._userValues = userValues;\n this._reason = EvaluationReason.Network;\n }\n }\n _a = this;\n return [4 /*yield*/, this._writeValuesToStorage(this._values)];\n case 1:\n _a._values = _b.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n StatsigStore.prototype.checkGate = function (gateName) {\n var _a;\n var gateNameHash = (0, Hashing_1.getHashValue)(gateName);\n var gateValue = {\n name: gateName,\n value: false,\n rule_id: '',\n secondary_exposures: [],\n };\n var details;\n var value = (_a = this._userValues) === null || _a === void 0 ? void 0 : _a.feature_gates[gateNameHash];\n if (value) {\n gateValue = value;\n }\n details = this._getEvaluationDetails(value != null);\n return { evaluationDetails: details, gate: gateValue };\n };\n StatsigStore.prototype.getConfig = function (configName) {\n var _a, _b;\n var configNameHash = (0, Hashing_1.getHashValue)(configName);\n var configValue;\n var details;\n if (((_a = this._userValues) === null || _a === void 0 ? void 0 : _a.dynamic_configs[configNameHash]) != null) {\n var rawConfigValue = (_b = this._userValues) === null || _b === void 0 ? void 0 : _b.dynamic_configs[configNameHash];\n details = this._getEvaluationDetails(true);\n configValue = this._createDynamicConfig(configName, rawConfigValue, details);\n }\n else {\n details = this._getEvaluationDetails(false);\n configValue = new DynamicConfig_1.default(configName, {}, '', details);\n }\n return configValue;\n };\n StatsigStore.prototype.getLayer = function (logParameterFunction, layerName) {\n var _a, _b, _c;\n var latestValue = this._getLatestValue(layerName, 'layer_configs');\n var details = this._getEvaluationDetails(latestValue != null);\n return Layer_1.default._create(layerName, (_a = latestValue === null || latestValue === void 0 ? void 0 : latestValue.value) !== null && _a !== void 0 ? _a : {}, (_b = latestValue === null || latestValue === void 0 ? void 0 : latestValue.rule_id) !== null && _b !== void 0 ? _b : '', details, logParameterFunction, latestValue === null || latestValue === void 0 ? void 0 : latestValue.secondary_exposures, latestValue === null || latestValue === void 0 ? void 0 : latestValue.undelegated_secondary_exposures, (_c = latestValue === null || latestValue === void 0 ? void 0 : latestValue.allocated_experiment_name) !== null && _c !== void 0 ? _c : '', latestValue === null || latestValue === void 0 ? void 0 : latestValue.explicit_parameters);\n };\n StatsigStore.prototype.getGlobalEvaluationDetails = function () {\n var _a, _b;\n return {\n reason: (_a = this._reason) !== null && _a !== void 0 ? _a : EvaluationReason.Uninitialized,\n time: (_b = this._userValues.evaluation_time) !== null && _b !== void 0 ? _b : 0,\n };\n };\n StatsigStore.prototype._loadFromLocalStorage = function () {\n this._parseCachedValues(StatsigLocalStorage_1.default.getItem(Constants_1.INTERNAL_STORE_KEY));\n this._loaded = true;\n };\n StatsigStore.prototype._parseCachedValues = function (allValues) {\n try {\n this._values = allValues ? JSON.parse(allValues) : this._values;\n this._setUserValueFromCache();\n }\n catch (e) {\n // Cached value corrupted, remove cache\n this._removeFromStorage(Constants_1.INTERNAL_STORE_KEY);\n }\n };\n StatsigStore.prototype._setUserValueFromCache = function () {\n var _a;\n var cachedValues = this._values[this._userCacheKey];\n if (cachedValues == null) {\n this._resetUserValues();\n this._reason = EvaluationReason.Uninitialized;\n return null;\n }\n this._userValues = cachedValues;\n this._reason = EvaluationReason.Cache;\n return (_a = cachedValues.evaluation_time) !== null && _a !== void 0 ? _a : 0;\n };\n StatsigStore.prototype._removeFromStorage = function (key) {\n StatsigLocalStorage_1.default.removeItem(key);\n };\n /**\n * Merges the provided init configs into the provided config map, according to the provided merge function\n */\n StatsigStore.prototype._mergeInitializeResponseIntoUserMap = function (data, configMap, requestedUserCacheKey, user, mergeFn) {\n if (requestedUserCacheKey) {\n var requestedUserValues = this._convertAPIDataToCacheValues(data, requestedUserCacheKey);\n if (data.has_updates && data.time) {\n var userHash = (0, Hashing_1.djb2HashForObject)(user);\n requestedUserValues.user_hash = userHash;\n }\n configMap[requestedUserCacheKey] = mergeFn(requestedUserValues, requestedUserCacheKey);\n }\n };\n StatsigStore.prototype._getDefaultUserCacheValues = function () {\n return {\n feature_gates: {},\n layer_configs: {},\n dynamic_configs: {},\n time: 0,\n evaluation_time: 0,\n has_updates: false,\n };\n };\n /**\n * Writes the provided values to storage, truncating down to\n * MAX_USER_VALUE_CACHED number entries.\n * @returns The truncated entry list\n */\n StatsigStore.prototype._writeValuesToStorage = function (valuesToWrite) {\n return __awaiter(this, void 0, void 0, function () {\n var filteredValues;\n return __generator(this, function (_a) {\n filteredValues = Object.entries(valuesToWrite)\n .sort(function (_a, _b) {\n var _c, _d;\n var a = _a[1];\n var b = _b[1];\n if (a == null) {\n return 1;\n }\n if (b == null) {\n return -1;\n }\n return (((_c = b === null || b === void 0 ? void 0 : b.evaluation_time) !== null && _c !== void 0 ? _c : b === null || b === void 0 ? void 0 : b.time) - ((_d = a === null || a === void 0 ? void 0 : a.evaluation_time) !== null && _d !== void 0 ? _d : a === null || a === void 0 ? void 0 : a.time));\n })\n .slice(0, MAX_USER_VALUE_CACHED);\n valuesToWrite = Object.fromEntries(filteredValues);\n StatsigLocalStorage_1.default.setItem(Constants_1.INTERNAL_STORE_KEY, JSON.stringify(valuesToWrite));\n return [2 /*return*/, valuesToWrite];\n });\n });\n };\n StatsigStore.prototype._getLatestValue = function (name, topLevelKey) {\n var _a, _b, _c, _d, _f;\n var hash = (0, Hashing_1.getHashValue)(name);\n return ((_c = (_b = (_a = this._userValues) === null || _a === void 0 ? void 0 : _a[topLevelKey]) === null || _b === void 0 ? void 0 : _b[hash]) !== null && _c !== void 0 ? _c : (_f = (_d = this._userValues) === null || _d === void 0 ? void 0 : _d[topLevelKey]) === null || _f === void 0 ? void 0 : _f[name]);\n };\n StatsigStore.prototype._createDynamicConfig = function (name, apiConfig, details) {\n var _a, _b, _c;\n return new DynamicConfig_1.default(name, (_a = apiConfig === null || apiConfig === void 0 ? void 0 : apiConfig.value) !== null && _a !== void 0 ? _a : {}, (_b = apiConfig === null || apiConfig === void 0 ? void 0 : apiConfig.rule_id) !== null && _b !== void 0 ? _b : '', details, apiConfig === null || apiConfig === void 0 ? void 0 : apiConfig.secondary_exposures, (_c = apiConfig === null || apiConfig === void 0 ? void 0 : apiConfig.allocated_experiment_name) !== null && _c !== void 0 ? _c : '', this._makeOnConfigDefaultValueFallback(this._identity._user));\n };\n StatsigStore.prototype._getEvaluationDetails = function (valueExists, reasonOverride) {\n var _a;\n if (valueExists) {\n return {\n reason: this._reason,\n time: (_a = this._userValues.evaluation_time) !== null && _a !== void 0 ? _a : Date.now(),\n };\n }\n else {\n return {\n reason: reasonOverride !== null && reasonOverride !== void 0 ? reasonOverride : (this._reason == EvaluationReason.Uninitialized\n ? EvaluationReason.Uninitialized\n : EvaluationReason.Unrecognized),\n time: Date.now(),\n };\n }\n };\n StatsigStore.prototype._resetUserValues = function () {\n this._userValues = this._getDefaultUserCacheValues();\n };\n StatsigStore.prototype._convertAPIDataToCacheValues = function (data, cacheKey) {\n // Specifically pulling keys from data here to avoid pulling in unwanted keys\n return {\n feature_gates: data.feature_gates,\n layer_configs: data.layer_configs,\n dynamic_configs: data.dynamic_configs,\n time: data.time == null || isNaN(data.time) ? 0 : data.time,\n evaluation_time: Date.now(),\n derived_fields: data.derived_fields,\n };\n };\n StatsigStore.prototype._makeOnConfigDefaultValueFallback = function (user) {\n var _this = this;\n return function (config, parameter, defaultValueType, valueType) {\n if (!_this.isLoaded()) {\n return;\n }\n _this._onDefaultValueFallback(user, \"Parameter \".concat(parameter, \" is a value of type \").concat(valueType, \".\\n Returning requested defaultValue type \").concat(defaultValueType), {\n name: config._name,\n ruleID: config._ruleID,\n parameter: parameter,\n defaultValueType: defaultValueType,\n valueType: valueType,\n });\n };\n };\n return StatsigStore;\n}());\nexports.default = StatsigStore;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EvaluationReason = exports.DynamicConfig = void 0;\nvar Errors_1 = require(\"./Errors\");\nvar StatsigClient_1 = __importDefault(require(\"./StatsigClient\"));\nvar StatsigStore_1 = require(\"./StatsigStore\");\nvar DynamicConfig_1 = require(\"./DynamicConfig\");\nObject.defineProperty(exports, \"DynamicConfig\", { enumerable: true, get: function () { return __importDefault(DynamicConfig_1).default; } });\nvar StatsigStore_2 = require(\"./StatsigStore\");\nObject.defineProperty(exports, \"EvaluationReason\", { enumerable: true, get: function () { return StatsigStore_2.EvaluationReason; } });\nvar Statsig = /** @class */ (function () {\n function Statsig() {\n }\n Statsig.initialize = function (sdkKey, user, options) {\n var _a;\n return __awaiter(this, void 0, void 0, function () {\n var inst;\n return __generator(this, function (_b) {\n inst = (_a = Statsig.instance) !== null && _a !== void 0 ? _a : new StatsigClient_1.default(sdkKey, user, options);\n if (!Statsig.instance) {\n Statsig.instance = inst;\n }\n return [2 /*return*/, inst.initializeAsync()];\n });\n });\n };\n Statsig.setInitializeValues = function (initializeValues) {\n Statsig._getClientX().setInitializeValues(initializeValues);\n };\n // Gate\n Statsig.checkGate = function (gateName) {\n return Statsig._getClientX().checkGate(gateName);\n };\n Statsig.checkGateWithExposureLoggingDisabled = function (gateName) {\n return Statsig._getClientX().checkGateWithExposureLoggingDisabled(gateName);\n };\n Statsig.manuallyLogGateExposure = function (gateName) {\n Statsig._getClientX().logGateExposure(gateName);\n };\n // Config\n Statsig.getConfig = function (configName) {\n return Statsig._getClientX().getConfig(configName);\n };\n Statsig.getConfigWithExposureLoggingDisabled = function (configName) {\n return Statsig._getClientX().getConfigWithExposureLoggingDisabled(configName);\n };\n Statsig.manuallyLogConfigExposure = function (configName) {\n Statsig._getClientX().logConfigExposure(configName);\n };\n // Experiment\n Statsig.getExperiment = function (experimentName) {\n return Statsig._getClientX().getExperiment(experimentName);\n };\n Statsig.getExperimentWithExposureLoggingDisabled = function (experimentName) {\n return Statsig._getClientX().getExperimentWithExposureLoggingDisabled(experimentName);\n };\n Statsig.manuallyLogExperimentExposure = function (configName) {\n Statsig._getClientX().logExperimentExposure(configName);\n };\n // Layer\n Statsig.getLayer = function (layerName) {\n return Statsig._getClientX().getLayer(layerName);\n };\n Statsig.getLayerWithExposureLoggingDisabled = function (layerName) {\n return Statsig._getClientX().getLayerWithExposureLoggingDisabled(layerName);\n };\n Statsig.manuallyLogLayerParameterExposure = function (layerName, parameterName) {\n Statsig._getClientX().logLayerParameterExposure(layerName, parameterName);\n };\n Statsig.logEvent = function (eventName, value, metadata) {\n if (value === void 0) { value = null; }\n if (metadata === void 0) { metadata = null; }\n return Statsig._getClientX().logEvent(eventName, value, metadata);\n };\n Statsig.updateUser = function (user) {\n return Statsig._getClientX().updateUser(user);\n };\n Statsig.updateUserWithValues = function (user, values) {\n return Statsig._getClientX().updateUserWithValues(user, values);\n };\n Statsig.shutdown = function () {\n Statsig._getClientX().shutdown();\n Statsig.instance = null;\n };\n Statsig.overrideGate = function (gate, result) {\n Statsig._getClientX().overrideGate(gate, result);\n };\n Statsig.overrideConfig = function (config, result) {\n Statsig._getClientX().overrideConfig(config, result);\n };\n Statsig.overrideLayer = function (layer, result) {\n Statsig._getClientX().overrideLayer(layer, result);\n };\n Statsig.setOverrides = function (overrides) {\n Statsig._getClientX().setOverrides(overrides);\n };\n Statsig.getOverrides = function () {\n return Statsig._getClientX().getOverrides();\n };\n /**\n * @returns The Statsig stable ID used for device level experiments\n */\n Statsig.getStableID = function () {\n return Statsig._getClientX().getStableID();\n };\n /**\n *\n * @returns The reason and time associated with the evaluation for the current set\n * of gates and configs\n */\n Statsig.getEvaluationDetails = function () {\n var _a, _b;\n return ((_b = (_a = Statsig.instance) === null || _a === void 0 ? void 0 : _a.getEvaluationDetails()) !== null && _b !== void 0 ? _b : {\n reason: StatsigStore_1.EvaluationReason.Uninitialized,\n time: 0,\n });\n };\n /**\n *\n * @returns true if initialize has already been called, false otherwise\n */\n Statsig.initializeCalled = function () {\n return Statsig.instance != null && Statsig.instance.initializeCalled();\n };\n Statsig._getClientX = function () {\n if (!Statsig.instance) {\n throw new Errors_1.StatsigUninitializedError();\n }\n return Statsig.instance;\n };\n Statsig.instance = null;\n return Statsig;\n}());\nexports.default = Statsig;\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BootstrapValidator = /** @class */ (function () {\n function BootstrapValidator() {\n }\n BootstrapValidator.isValid = function (user, values) {\n try {\n var evaluatedKeys = values['evaluated_keys'];\n if (!evaluatedKeys || typeof evaluatedKeys !== 'object') {\n return true;\n }\n var evaluatedKeysRecord = this.copyObject(evaluatedKeys);\n var userToCompare = user == null ? null : this.copyObject(user);\n return (BootstrapValidator.validate(evaluatedKeysRecord, userToCompare) &&\n BootstrapValidator.validate(userToCompare, evaluatedKeysRecord));\n }\n catch (error) {\n // This is best-effort. If we fail, return true.\n }\n return true;\n };\n BootstrapValidator.validate = function (one, two) {\n if (one == null) {\n return two == null;\n }\n else if (two == null) {\n return false;\n }\n for (var _i = 0, _a = Object.entries(one); _i < _a.length; _i++) {\n var _b = _a[_i], key = _b[0], value = _b[1];\n if (key === 'stableID') {\n continue;\n }\n if (typeof value !== typeof two[key]) {\n return false;\n }\n if (typeof value === 'string') {\n if (value !== two[key]) {\n return false;\n }\n }\n else if (typeof value === 'object') {\n return this.validate(value, two[key]);\n }\n else {\n // unexpected\n return false;\n }\n }\n return true;\n };\n BootstrapValidator.copyObject = function (obj) {\n if (obj == null) {\n return null;\n }\n var copy = {};\n if (obj === null || obj === void 0 ? void 0 : obj.userID) {\n copy['userID'] = obj === null || obj === void 0 ? void 0 : obj.userID;\n }\n if (obj === null || obj === void 0 ? void 0 : obj.customIDs) {\n var customIDs = __assign({}, obj.customIDs);\n delete customIDs['stableID'];\n if (Object.keys(customIDs).length !== 0) {\n copy['customIDs'] = customIDs;\n }\n }\n return copy;\n };\n return BootstrapValidator;\n}());\nexports.default = BootstrapValidator;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LOCAL_STORAGE_KEYS = exports.STATSIG_LOCAL_STORAGE_LOGGING_REQUEST_KEY = exports.STATSIG_STABLE_ID_KEY = exports.INTERNAL_STORE_KEY = void 0;\nexports.INTERNAL_STORE_KEY = 'STATSIG_STORE';\nexports.STATSIG_STABLE_ID_KEY = 'STATSIG_STABLE_ID';\nexports.STATSIG_LOCAL_STORAGE_LOGGING_REQUEST_KEY = 'STATSIG_LOGS';\nexports.LOCAL_STORAGE_KEYS = {\n INTERNAL_STORE_KEY: true,\n STATSIG_STABLE_ID_KEY: true,\n STATSIG_LOCAL_STORAGE_LOGGING_REQUEST_KEY: true,\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getUserCacheKey = exports.getSortedObject = exports.djb2HashForObject = exports.getHashValue = exports.SimpleHash = void 0;\nfunction SimpleHash(value) {\n var hash = 0;\n for (var i = 0; i < value.length; i++) {\n var character = value.charCodeAt(i);\n hash = (hash << 5) - hash + character;\n hash = hash & hash; // Convert to 32bit integer\n }\n return String(hash >>> 0);\n}\nexports.SimpleHash = SimpleHash;\nfunction getHashValue(value) {\n return SimpleHash(value);\n}\nexports.getHashValue = getHashValue;\nfunction djb2HashForObject(object) {\n return SimpleHash(JSON.stringify(getSortedObject(object)));\n}\nexports.djb2HashForObject = djb2HashForObject;\nfunction getSortedObject(object) {\n if (object == null) {\n return null;\n }\n var keys = Object.keys(object).sort();\n var sortedObject = {};\n keys.forEach(function (key) {\n var value = object[key];\n if (value instanceof Object) {\n value = getSortedObject(value);\n }\n sortedObject[key] = value;\n });\n return sortedObject;\n}\nexports.getSortedObject = getSortedObject;\nfunction getUserCacheKey(user) {\n var _a;\n var key = \"userID:\".concat(String((_a = user === null || user === void 0 ? void 0 : user.userID) !== null && _a !== void 0 ? _a : ''));\n var customIDs = user === null || user === void 0 ? void 0 : user.customIDs;\n if (customIDs != null) {\n for (var _i = 0, _b = Object.entries(customIDs); _i < _b.length; _i++) {\n var _c = _b[_i], type = _c[0], value = _c[1];\n key += \";\".concat(type, \":\").concat(value);\n }\n }\n return SimpleHash(key);\n}\nexports.getUserCacheKey = getUserCacheKey;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar StatsigLocalStorage = /** @class */ (function () {\n function StatsigLocalStorage() {\n }\n StatsigLocalStorage.getItem = function (key) {\n var _a;\n try {\n if (this.isStorageAccessible()) {\n return window.localStorage.getItem(key);\n }\n }\n catch (e) { }\n return (_a = this.fallbackSessionCache[key]) !== null && _a !== void 0 ? _a : null;\n };\n StatsigLocalStorage.setItem = function (key, value) {\n try {\n if (this.isStorageAccessible()) {\n window.localStorage.setItem(key, value);\n return;\n }\n }\n catch (e) { }\n this.fallbackSessionCache[key] = value;\n };\n StatsigLocalStorage.removeItem = function (key) {\n try {\n if (this.isStorageAccessible()) {\n window.localStorage.removeItem(key);\n return;\n }\n }\n catch (e) { }\n delete this.fallbackSessionCache[key];\n };\n StatsigLocalStorage.isStorageAccessible = function (ignoreDisabledOption) {\n if (ignoreDisabledOption === void 0) { ignoreDisabledOption = false; }\n if (this.canAccessStorageAccessible == null) {\n this.canAccessStorageAccessible =\n typeof Storage !== 'undefined' &&\n typeof window !== 'undefined' &&\n window != null &&\n window.localStorage != null;\n }\n var canAccess = this.canAccessStorageAccessible;\n if (ignoreDisabledOption) {\n return canAccess;\n }\n return !this.disabled && canAccess;\n };\n StatsigLocalStorage.disabled = false;\n StatsigLocalStorage.fallbackSessionCache = {};\n StatsigLocalStorage.canAccessStorageAccessible = null;\n return StatsigLocalStorage;\n}());\nexports.default = StatsigLocalStorage;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.difference = exports.now = void 0;\nfunction now() {\n if (typeof performance === 'undefined' || !performance) {\n return Date.now();\n }\n return performance.now() | 0;\n}\nexports.now = now;\nfunction difference(time) {\n return now() - time;\n}\nexports.difference = difference;\n","/**\n * url Config for de cluttering endpoints so that we can change it in one place and it will reflect\n * across the whole code base, eventually we can make one for prod but just dev for right now\n * stgWacInternalUrl(formerly): \"qa-wac.internal.atlassian.com\"\n */\n\n\nexport const stgConfig = {\n stgWacInternalUrl: \"https://wac.stg.internal.atlassian.com\"\n};\n\nexport default stgConfig;\n","const ENV_DEV = 'dev';\nconst ENV_STAGING = 'staging';\nconst ENV_PRODUCTION = 'production';\n\nexport default class Environment {\n\n static getEnvironment() {\n let env = ENV_PRODUCTION;\n const hostname = window.location.hostname.split('.')[0];\n const forceStaging = window.location.search.includes('forceProdTesting=true');\n \n if (forceStaging) {\n return ENV_PRODUCTION;\n }\n \n switch (hostname) {\n case 'wac':\n case 'qa-wac':\n case 'author':\n case 'proof':\n env = ENV_STAGING;\n break;\n case 'localhost':\n case 'local':\n env = ENV_DEV;\n break;\n case \"truth\":\n case \"www\":\n case \"atlassian\":\n case \"bitbucket\":\n case \"sourcetreeapp\":\n case \"agile\": \n case \"git\":\n case \"software\":\n return ENV_PRODUCTION;\n default:\n /* for omlet instances */\n env = ENV_STAGING;\n }\n return env;\n }\n\n static production() {\n return ENV_PRODUCTION;\n }\n\n static staging() {\n return ENV_STAGING;\n }\n\n static dev() {\n return ENV_DEV;\n }\n}\n","import Client from \"./ConsentClient\";\n\nexport type ConsentHelperParams = {\n paramsLocale?: string;\n formId?: string;\n needsConsent?: boolean;\n isAllowSetCustomLocale?: boolean;\n selectedLocale?: string;\n forceShowConsentMessaging?: boolean;\n gdprId?: string;\n consentLabelEUCAN?: string;\n consentLabel?: string;\n privacyPolicy?: string;\n site?: string;\n source?: string;\n subscriptionKey: string;\n eapTermsOfService?: string;\n consentKey?: string;\n};\n\nexport interface ConsentHelperForm extends HTMLElement {\n jquery?: boolean;\n 0: ConsentHelperForm; // TODO: Factor this out\n}\n\nclass ConsentHelper extends Client {\n params: ConsentHelperParams;\n form: ConsentHelperForm;\n submitButtonWrapper?: ParentNode | null;\n configPromise: Promise;\n\n constructor(params: ConsentHelperParams, form: ConsentHelperForm) {\n super();\n this.params = params;\n const isJquery = !!(form instanceof jQuery || (form && form.jquery));\n this.form = isJquery ? form[0] : form;\n this.submitButtonWrapper =\n this.form.querySelector('[type=\"submit\"]')?.parentNode;\n\n // A promise is expected for some legacy GDPR logic\n this.configPromise = this.init();\n\n return this;\n }\n\n async init() {\n const {\n needsConsent,\n isAllowSetCustomLocale,\n selectedLocale,\n forceShowConsentMessaging,\n } = this.params;\n\n try {\n await this.requestConfig();\n\n if (needsConsent) {\n if (isAllowSetCustomLocale && selectedLocale) {\n this.config.locale = selectedLocale;\n }\n this.insertConsent(forceShowConsentMessaging);\n }\n } catch (error) {\n if (needsConsent) {\n this.config = {\n locale: \"\",\n localeRequiresMarketingCommunicationOptIn: true,\n };\n\n this.insertConsent();\n }\n }\n\n return this;\n }\n\n buildConsentMarkup(requiresOptIn: boolean) {\n const { gdprId, consentLabelEUCAN, consentLabel, privacyPolicy } =\n this.params;\n\n const wrapperDiv = document.createElement(\"div\");\n\n wrapperDiv.className = `gdpr-checkbox${requiresOptIn ? \" gdpr-checkbox--optin\" : \"\"\n }`;\n wrapperDiv.innerHTML = `\n
${privacyPolicy}
\n \n `;\n return wrapperDiv;\n }\n\n insertConsent(forceShowConsent = false) {\n const markup = this.buildConsentMarkup(\n !!(forceShowConsent || this.config.localeRequiresMarketingCommunicationOptIn)\n );\n if (this.submitButtonWrapper && this.submitButtonWrapper.parentNode) {\n this.submitButtonWrapper.parentNode.insertBefore(\n markup,\n this.submitButtonWrapper\n );\n } else {\n this.form.appendChild(markup);\n }\n }\n\n getConsentCheckboxValue() {\n const checkbox = this.form.querySelector(`#${this.params.gdprId}`);\n return checkbox ? checkbox.checked : true;\n }\n\n async submitForm(onSuccess: () => void, onFail: (error: unknown) => void) {\n try {\n if (!this.params.formId) {\n throw 'formId cannot be undefined or null'\n }\n\n const email = (this.form.querySelector('input[type=\"email\"]'))?.value || '';\n\n await this.updatePreferences({\n paramsLocale: this.params.paramsLocale,\n formId: this.params.formId,\n site: this.params.site,\n source: this.params.source,\n email,\n formUrl: window.location.href,\n consentLabelText: this.params.consentLabel?.replace(/\"/g, '\\\\\"'),\n privacyPolicyText: this.params.privacyPolicy?.replace(/\"/g, '\\\\\"'),\n consentCheckboxValue: this.getConsentCheckboxValue(),\n ndaText: document.getElementById('nda-text')?.innerText.replace(/\"/g, '\\\\\"')\n });\n onSuccess();\n } catch (error: unknown) {\n console.error(error);\n onFail(error);\n }\n }\n}\n\nexport default ConsentHelper;\n","import axios from 'axios';\nimport * as Sentry from \"@sentry/browser\";\n\n\nlet capturedEventsPromise: Array = [];\nlet onAnalyticsLoad = () => {\n Promise.all(capturedEventsPromise.map(fn => fn()));\n};\n\nexport const piiScrub = (val: string) => {\n return val.replace(\n /(([^\\/]*@[^\\/]*\\.[^\\/]*)|([^\\/]*%40[^\\/]*\\.[^\\/]*))/g,\n '[REDACTED]'\n )\n}\n\nexport const trackEvent = function (event: string, data?: Record) {\n const trySentryErrorLog = () => {\n try {\n Sentry.captureMessage(\n 'Analytics wrapper errored',\n Sentry.Severity.Error\n );\n } catch (error) {\n // Intentionally leaving this blank since there's nothing we can do at this point \n }\n }\n // First try to use the atl-global wrapper\n try {\n if (typeof ace !== \"undefined\") {\n ace.analytics.Tracking.trackEvent(event, data);\n } else {\n capturedEventsPromise.push(\n () => new Promise((resolve) => {\n trackEvent(event, data);\n resolve(null);\n })\n );\n\n window.segmentPageReady = onAnalyticsLoad;\n }\n } catch (error) {\n trySentryErrorLog()\n }\n};\n\n/**\n* Iterates through event keys, ensures that values are lowercase,\n* and replaces whitespace with `-` character\n**/\nexport const sanitizeEventProperties = function (propertiesObj) {\n let result = {};\n Object.keys(propertiesObj).map(key => {\n // do a quick check just in case values are null\n result[key] = propertiesObj[key] && propertiesObj[key].replace(/\\s+/g, '-').toLowerCase();\n });\n return result;\n}\n\nexport const trackGas = function (postBody) {\n const analyticsApiUrl = 'https://mgas.prod.public.atl-paas.net/v1/event';\n const options = {\n headers: {\n 'content-type': 'application/json'\n },\n withCredentials: true\n };\n\n return axios.post(analyticsApiUrl, postBody, options)\n .then(() => Promise.resolve());\n};\n","import stgConfig from \"../../../../config\";\nimport axios from \"axios\";\n\nimport Environment from \"../../buyer-experience/common/environment\";\nimport { useStargateClient } from \"@atlassiansox/bxpkit-core\";\n\nconst DEV_ENV = Environment.dev();\nconst STAGING_ENV = Environment.staging();\nconst PRODUCTION_ENV = Environment.production();\n\nconst STARGATE_ENDPOINT: { [key: string]: string } = {};\nSTARGATE_ENDPOINT[PRODUCTION_ENV] = \"https://www.atlassian.com/gateway/api\";\nSTARGATE_ENDPOINT[STAGING_ENV] = `${window.location.hostname.indexOf(\"qa-wac\") > -1\n ? \"https://qa-wac.internal.atlassian.com\"\n : stgConfig.stgWacInternalUrl\n}/gateway/api`;\nSTARGATE_ENDPOINT[DEV_ENV] = STARGATE_ENDPOINT[STAGING_ENV]\n\nexport type Consent = {\n key: string;\n displayedText: string;\n granted: boolean;\n};\n\nexport type SubscriptionKey = string;\n\nexport type Subscription = {\n key: SubscriptionKey;\n subscribed: boolean;\n};\n\ntype SubsciberDetails = { [key: string]: string };\n\n// Should match `UpdatePreferencesPayload` in `bxp-express`\ntype UpdatePreferencesPayload = {\n formId: string;\n site?: string;\n source?: string;\n email: string;\n locale: string;\n formUrl: string;\n subscriberDetails?: SubsciberDetails;\n consentLabelText?: string;\n consentCheckboxValue: boolean;\n privacyPolicyText?: string;\n ndaText?: string;\n};\n\ntype UpdatePreferencesParams = {\n formId: string;\n site?: string;\n source?: string;\n email: string;\n locale?: string;\n paramsLocale?: string;\n formUrl: string;\n consentLabelText?: string;\n consentCheckboxValue: boolean;\n privacyPolicyText?: string;\n ndaText?: string;\n};\n\nconst requiredProps = [\"email\", \"site\", \"locale\", \"formUrl\"];\n\nclass ConsentHubClient {\n config: {\n locale?: string;\n localeRequiresMarketingCommunicationOptIn?: boolean;\n };\n stargateEndpoint: string;\n\n constructor() {\n this.config = {};\n\n this.stargateEndpoint = STARGATE_ENDPOINT[Environment.getEnvironment()];\n }\n\n /**\n * Set a user's subscriptions & consents (for a specific mailing list).\n */\n async updatePreferences(params: UpdatePreferencesParams) {\n const paramsLocale = params.paramsLocale ? params.paramsLocale : \"UNKNOWN\";\n const postData: UpdatePreferencesPayload = { locale: (this.config.locale || paramsLocale), ...params };\n\n // eslint-disable-next-line no-prototype-builtins\n if (!requiredProps.every((prop) => postData.hasOwnProperty(prop))) {\n throw `Invalid parameters. Required: {${requiredProps.toString()}}`;\n }\n\n const endpoint = `${this.stargateEndpoint}/preferencesV2/update`;\n const response = await axios.post(endpoint, postData, {\n headers: {\n \"Content-Type\": \"application/json\",\n },\n });\n return response.status;\n }\n\n /**\n * Get \"config\" data from ConsentHub\n */\n async requestConfig() {\n return this.config = (await axios.post(\n `${this.stargateEndpoint}/preferencesV2/consent-config`\n )).data;\n }\n}\nexport default ConsentHubClient;\n","import stgConfig from \"../../../config\";\nconst ENV_DEV = \"dev\";\nconst ENV_STAGING = \"staging\";\nconst ENV_PRODUCTION = \"production\";\nconst ENV_AUTHOR = \"author\";\n\nexport default class Environment {\n static getWindowLocation() {\n return window.location;\n }\n\n static getSubdomain() {\n const urlParts = this.getWindowLocation().hostname.split(\".\");\n\n if (urlParts[1] === \"dev\") {\n return \"localhost\";\n }\n\n return urlParts[0];\n }\n\n static getSubdirectory() {\n const urlParts = this.getWindowLocation().pathname.split(\"/\");\n if (urlParts[1] === \"wac\") {\n return urlParts.length > 1 ? urlParts[2] : \"\";\n } else {\n return urlParts[1];\n }\n }\n\n static isStagingPublicEnvironment() {\n return (\n this.getWindowLocation().hostname.indexOf(\"wac.stg.internal.atlassian\") >\n -1 || this.getWindowLocation().hostname.indexOf(\"qa-wac.atlassian\") > -1\n );\n }\n\n static getEnvironment() {\n const forceStaging = window.location.search.includes('forceProdTesting=true');\n \n if (forceStaging) {\n return ENV_PRODUCTION;\n }\n switch (this.getSubdomain()) {\n case \"wac\":\n case \"qa-wac\":\n case \"author\":\n case \"proof\":\n return ENV_STAGING;\n case \"localhost\":\n case \"local\":\n return ENV_DEV;\n case \"truth\":\n case \"www\":\n case \"atlassian\":\n case \"bitbucket\":\n case \"sourcetreeapp\":\n case \"agile\": \n case \"git\":\n case \"software\":\n return ENV_PRODUCTION;\n default:\n /* for omlet instances */\n return ENV_STAGING;\n }\n }\n\n static getInternationalSubdomain() {\n const hostnameSubdomain = this.getSubdomain();\n const validLocales = [\n \"cn\",\n \"cs\",\n \"de\",\n \"es\",\n \"fr\",\n \"it\",\n \"ko\",\n \"hu\",\n \"nl\",\n \"ja\",\n \"pl\",\n \"br\",\n \"ro\",\n \"fi\",\n \"ru\",\n ];\n\n if (validLocales.indexOf(hostnameSubdomain) === -1) {\n return false;\n }\n\n return hostnameSubdomain;\n }\n\n static getInternationalSubdirectory() {\n const subdirectory = this.getSubdirectory();\n const validLocales = [\n \"zh\",\n \"cs\",\n \"de\",\n \"es\",\n \"fr\",\n \"it\",\n \"ko\",\n \"hu\",\n \"nl\",\n \"ja\",\n \"pl\",\n \"br\",\n \"ro\",\n \"fi\",\n \"ru\",\n ];\n\n if (validLocales.indexOf(subdirectory) === -1) {\n return false;\n }\n\n return subdirectory;\n }\n\n static isInternationalSubdomain() {\n return !!this.getInternationalSubdomain();\n }\n\n static production() {\n return ENV_PRODUCTION;\n }\n\n static staging() {\n return ENV_STAGING;\n }\n\n static dev() {\n return ENV_DEV;\n }\n\n static author() {\n return ENV_AUTHOR;\n }\n\n static isProduction() {\n return this.getEnvironment() === this.production();\n }\n\n static isStaging() {\n return this.getEnvironment() === this.staging();\n }\n\n static isDev() {\n return this.getEnvironment() === this.dev();\n }\n\n static isAuthor() {\n return this.getSubdomain() === this.author();\n }\n\n static getIdentityBaseUrl() {\n if (this.isStaging() || this.isDev()) {\n return \"https://id.stg.internal.atlassian.com\";\n } else {\n return \"https://id.atlassian.com\";\n }\n }\n\n static getLoginUrl(skipEncoding: boolean) {\n const continueUrl = this.getWindowLocation().href;\n if (!skipEncoding) {\n return `${this.getIdentityBaseUrl()}/login?continue=${encodeURIComponent(\n continueUrl\n )}`;\n } else {\n return `${this.getIdentityBaseUrl()}/login?continue=${continueUrl}`;\n }\n }\n\n static getLogoutUrl() {\n const continueUrl = this.getWindowLocation().href;\n return `${this.getIdentityBaseUrl()}/logout?continue=${encodeURIComponent(\n continueUrl\n )}`;\n }\n\n static getSwitchAccountURL(continueUrlParam?: string) {\n const continueUrl = continueUrlParam ? continueUrlParam : this.getWindowLocation().href;\n return `${this.getIdentityBaseUrl()}/login/select-account?continue=${encodeURIComponent(\n continueUrl\n )}`;\n }\n \n static getManageProfileUrl(userEmail: string) {\n const applicationParam = encodeURIComponent(\"wac\")\n const continueUrlParam = encodeURIComponent(`${this.getIdentityBaseUrl()}/manage-profile`)\n const loginHintParam = encodeURIComponent(userEmail)\n \n return `${this.getIdentityBaseUrl()}/login?application=${applicationParam}&continue=${continueUrlParam}&login_hint=${loginHintParam}`;\n }\n\n static getMacUrl() {\n if (this.isStaging() || this.isDev()) {\n return \"https://my.stg.internal.atlassian.com\";\n } else {\n return \"https://my.atlassian.com\";\n }\n }\n\n static getStartUrl() {\n if (this.isStaging() || this.isDev()) {\n return \"https://start.stg.atlassian.com\";\n } else {\n return \"https://start.atlassian.com\";\n }\n }\n\n static getAPIPrivateURL() {\n if (this.isStaging() || this.isDev()) {\n return \"https://wac.stg.internal.atlassian.com/gateway/api\";\n }\n\n return \"https://www.atlassian.com/gateway/api\";\n }\n\n static getMyAdminAtlasBaseURL() {\n if (this.isStaging() || this.isDev()) {\n return \"https://admin.stg.atlassian.com\";\n }\n\n return \"https://admin.atlassian.com\";\n }\n\n static getBaseURL() {\n if (this.isStaging() || this.isDev()) {\n return \"https://wac.stg.internal.atlassian.com\";\n }\n\n return \"https://www.atlassian.com\";\n }\n\n static getWacIntegrationUrl() {\n if (this.isStaging() || this.isDev()) {\n const useQaWAC =\n window.location.hostname.indexOf(\"qa-wac\") > -1 ||\n window.location.hostname.indexOf(\"author\") > -1;\n return `${useQaWAC\n ? \"https://qa-wac.internal.atlassian.com\"\n : stgConfig.stgWacInternalUrl\n }`;\n } else {\n return \"https://www.atlassian.com\";\n }\n }\n\n static getProductTld = (): string => {\n return this.getEnvironment() === ENV_PRODUCTION ? '.atlassian.net' : '.jira-dev.com';\n };\n\n static getBBIntegrationUrl() {\n if (this.isStaging() || this.isDev()) {\n return \"https://integration.bb-inf.net\";\n } else {\n return \"https://bitbucket.org\";\n }\n }\n}\n","import _ from 'underscore';\nimport axios from 'axios';\nimport Environment from '../environment';\nimport stgConfig from \"../../../../config\";\nimport { hamletUser } from './hamlet-user';\n\nexport class HamletApi {\n baseDomain: string;\n\n constructor() {\n this.baseDomain = this.getBaseDomain();\n }\n\n getBaseDomain() {\n if (!Environment.isProduction()) {\n return `${window.location.hostname.indexOf('qa-wac') > -1 ? 'https://qa-wac.internal.atlassian.com' : stgConfig.stgWacInternalUrl}`;\n }\n\n return 'https://www.atlassian.com';\n }\n\n getHamletPath() {\n if (!Environment.isProduction()) {\n return `${this.baseDomain}/apis/stg/hamlet`;\n }\n\n return `${this.baseDomain}/hamlet`;\n }\n\n getCofsPath() {\n if (!Environment.isProduction()) {\n return `${this.baseDomain}/apis/stg/cofs`;\n }\n\n return `${this.baseDomain}/apis/prod/cofs`;\n }\n\n getCnasPath() {\n if (!Environment.isProduction()) {\n return `${this.baseDomain}/apis/stg/cnas`;\n }\n\n return `${this.baseDomain}/apis/prod/cnas`;\n }\n\n getBxpPath() {\n return `${this.baseDomain}/endpoint`;\n }\n\n hamletRequest(params, useCofsPath) {\n\n let basePath = useCofsPath ? this.getCofsPath() : this.getHamletPath();\n\n let request = {\n url: `${basePath}${params.url}`,\n method: params.method || 'GET',\n headers: params.headers || {},\n params: params.params\n };\n\n if (request.method === 'GET') {\n request.params = {cacheBuster: new Date().getTime(), ...params.params };\n }\n\n if (request.method === 'POST') {\n request.headers['Content-Type'] = 'application/json';\n request.data = params.data || '';\n }\n\n if (params.authenticated && hamletUser.getToken()) {\n request.headers['ATL-XSRF-Token'] = hamletUser.getToken();\n request.withCredentials = true;\n }\n\n return axios(request);\n }\n\n bxpRequest(params) {\n\n let request = {\n url: `${params.url.startsWith('http') ? '' : this.getBxpPath()}${params.url}`,\n method: params.method || 'GET',\n headers: params.headers || {},\n params: params.params\n };\n\n if (request.method === 'GET') {\n request.params = { cacheBuster: new Date().getTime(), ...params.params };\n }\n\n if (request.method === 'POST') {\n request.headers['Content-Type'] = 'application/json';\n request.data = params.data || '';\n }\n\n if (params.authenticated && hamletUser.getToken()) {\n request.withCredentials = true;\n }\n\n return axios(request);\n }\n\n get(data) {\n let options = { method: 'GET' };\n\n if (_.isString(data)) {\n options.url = data;\n } else if (_.isObject(data)) {\n Object.assign(options, data);\n }\n\n return this.hamletRequest(options);\n }\n\n post(data) {\n let options = { method: 'POST' };\n\n if (_.isString(data)) {\n options.url = data;\n } else {\n Object.assign(options, data);\n }\n\n return this.hamletRequest(options);\n }\n\n /**\n * Generic request wrapper\n */\n request(options) {\n return axios(options);\n }\n\n}\n\nexport let hamletApi = new HamletApi();\n","import Environment from '../environment';\nimport { hamletApi } from './hamlet-api';\n\nconst ProductKeys = {\n CONFLUENCE: \"confluence.ondemand\",\n JIRA_CORE: \"jira-core.ondemand\",\n JIRA_BUSINESS: \"jira-core.ondemand\",\n JIRA_SOFTWARE: \"jira-software.ondemand\",\n JIRA_SERVICE_DESK: \"jira-servicedesk.ondemand\",\n BITBUCKET: \"com.atlassian.bitbucket\",\n OPSGENIE: \"opsgenie\",\n STATUSPAGE: \"statuspage\",\n TRELLO: \"trello\",\n};\n\nexport const transformAvailableProductsIntoAvailableSites = (availableProductsSites) => {\n return availableProductsSites.map(site => {\n return {\n adminAccess: site.adminAccess,\n products: site.products ?? site.availableProducts.map(availableProduct => ProductKeys[availableProduct.productType]),\n cloudId: site.cloudId,\n displayName: site.displayName,\n avatarUrl: site.avatar,\n url: site.url,\n };\n });\n}\n\nexport class HamletUser {\n token: null;\n initialized: boolean;\n user: any;\n sites: any[];\n performanceBoostExperiment: boolean;\n extendedTrialAvailability: any;\n organisationDetails: any;\n\n availableProductsData: { cached: any | null; request: Promise | null } = { cached: null, request: null };\n meData: { cached: any | null; request: Promise | null } = {cached: null, request: null};\n\n constructor() {\n\n this.token = null;\n this.initialized = false;\n\n this.user = {\n contactDetails: {\n firstName: '',\n lastName: '',\n email: ''\n },\n organisationDetails: {\n address1: '',\n address2: '',\n city: '',\n state: '',\n postcode: '',\n isoCountryCode: '',\n organisationName: '',\n organisationType: null,\n payOnAccount: false,\n taxId: ''\n },\n lassoDetails: {\n firstName: '',\n lastName: '',\n username: '',\n displayName: ''\n },\n myDetails: {\n aaid: null,\n avatar: null,\n email: '',\n name: '',\n firstName: '',\n lastName: ''\n },\n isLoggedIn: false\n };\n\n this.sites = [];\n this.performanceBoostExperiment = false;\n\n }\n\n initUser(performanceBoostExperiment: boolean, enableAisAvailableProducts) {\n\n if (this.initialized) {\n return Promise.resolve(this.user);\n }\n this.initialized = true;\n\n return Promise.all([\n this.retrieveXsrfToken(),\n this.getStargateProfile(performanceBoostExperiment, false, enableAisAvailableProducts)\n ])\n .then(() => {\n return Promise.resolve(this.user);\n })\n .catch(() => {\n return Promise.resolve(this.user);\n });\n }\n\n retrieveXsrfToken() {\n\n const options = {\n url: `${hamletApi.getHamletPath()}/1.0/auth/xsrf/plain`,\n method: 'GET',\n withCredentials: true\n };\n\n return hamletApi.request(options)\n .then((response) => {\n\n if (response.data && response.data !== '') {\n\n this.setToken(response.data);\n this.user.isLoggedIn = true;\n\n return Promise.resolve();\n }\n\n this.user.isLoggedIn = false;\n return Promise.reject();\n })\n .catch(() => {\n\n this.user.isLoggedIn = false;\n return Promise.reject();\n });\n }\n\n getStargateProfile(performanceBoostExperiment: boolean, debugAllSites?: boolean) {\n\n if (performanceBoostExperiment) {\n this.performanceBoostExperiment = true;\n }\n\n return Promise.all([\n this.retrieveMe(),\n this.retrieveSitesData(debugAllSites)\n ])\n .then(([identityData, sitesData]) => {\n if (identityData && sitesData) {\n Object.assign(this.user.myDetails, identityData);\n this.setSites(sitesData);\n this.user.isLoggedIn = true;\n }\n\n return Promise.resolve();\n })\n .catch(() => {\n\n this.user.isLoggedIn = false;\n return Promise.resolve();\n });\n }\n\n retrieveCurrentUser(params) {\n params.url = '/1.0/public/contact/currentUser';\n\n return hamletApi.hamletRequest(params);\n }\n\n retrieveUserDetails(params) {\n params.url = '/1.0/public/auth/user/details'\n\n return hamletApi.hamletRequest(params);\n }\n\n retrieveMe() {\n const hostname = Environment.getAPIPrivateURL();\n const url = `${hostname}/me`;\n\n const options = {\n url: url,\n method: 'GET',\n withCredentials: true\n };\n\n\n let request;\n if (this.meData.cached) {\n // response available\n request = Promise.resolve(this.meData.cached);\n } else if (this.meData.request) {\n // pending request\n request = this.meData.request;\n } else {\n // first request\n this.meData.request = hamletApi.request(options);\n request = this.meData.request;\n }\n return request\n .then(result => {\n\n if (!result.data) {\n return Promise.reject();\n }\n\n this.meData.cached = result;\n this.meData.request = null;\n\n // clean up any names that are emails here\n let name = result.data.name;\n if (name.indexOf('@') > -1) {\n name = name.split('@')[0];\n }\n\n const stargateData = {\n aaid: (result.data.account_id),\n avatar: (result.data.picture),\n email: (result.data.email),\n name: (name),\n firstName: (this.getFirstName(name)),\n lastName: (this.getLastName(name))\n };\n\n return Promise.resolve(stargateData);\n })\n .catch(() => {\n\n this.user.isLoggedIn = false;\n return Promise.reject();\n });\n }\n\n retrieveSitesData(debugAllSites?: boolean) {\n return this.retrieveAvailableProductsData(debugAllSites).then(availableProductsSites => {\n const sitesData = transformAvailableProductsIntoAvailableSites(availableProductsSites);\n return sitesData;\n }).catch(() => {\n this.user.isLoggedIn = false;\n });\n }\n\n retrieveAvailableProductsData(debugAllSites?: boolean) {\n let url = `${Environment.getAPIPrivateURL()}/ais/available-products`;\n const options = {\n url: url,\n method: 'GET',\n withCredentials: true\n };\n\n let request;\n if (this.availableProductsData.cached) {\n // response available\n request = Promise.resolve(this.availableProductsData.cached);\n } else if (this.availableProductsData.request) {\n // pending request\n request = this.availableProductsData.request;\n } else {\n // first request\n this.availableProductsData.request = hamletApi.request(options);\n request = this.availableProductsData.request;\n }\n return request.then(result => {\n\n if (!result.data) {\n return [];\n }\n\n this.availableProductsData.cached = result;\n this.availableProductsData.request = null;\n\n const sitesResult = result.data.sites || [];\n const availableProductsSites = debugAllSites ? sitesResult : sitesResult.filter((site) => this.isValidSite(site));\n return Promise.resolve(availableProductsSites);\n }).catch(() => {\n this.user.isLoggedIn = false;\n return Promise.reject();\n });\n }\n\n checkExtendedTrialAvailability(migrationSourceUuid, productKey, cloudIds) {\n const options = {\n url: `${hamletApi.getHamletPath()}/1.0/public/account/${migrationSourceUuid}/extendedTrial/availability`,\n method: 'POST',\n data: {\n productKey,\n cloudIds,\n },\n withCredentials: true\n };\n\n return hamletApi.request(options)\n .then((response) => {\n if (response.data && response.data !== '') {\n this.setExtendedTrialAvailability(response.data);\n return Promise.resolve(response.data);\n }\n\n return Promise.resolve();\n })\n .catch(() => {\n return Promise.resolve();\n });\n }\n\n getExtendedTrialAvailability() {\n return this.extendedTrialAvailability;\n }\n\n setExtendedTrialAvailability(extendedTrialAvailability) {\n this.extendedTrialAvailability = extendedTrialAvailability;\n }\n\n setToken(token) {\n this.token = token;\n }\n\n getToken() {\n return this.token;\n }\n\n setUser(options) {\n Object.assign(this.user, options);\n }\n\n getUser() {\n return this.user;\n }\n\n setSites(sites) {\n this.sites = sites;\n }\n\n getSites() {\n return this.sites;\n }\n\n getSitesByProduct(availableProducts) {\n\n let groupSitesByProduct = {};\n\n this.sites.forEach((site) => {\n site.products.forEach((product) => {\n (groupSitesByProduct[product] = groupSitesByProduct[product] || []).push({\n cloudId: site.cloudId,\n displayName: site.displayName,\n url: site.url,\n avatarUrl: site.avatarUrl || '',\n isVertigo: site.isVertigo || false,\n })\n })\n });\n\n let result = [];\n for (var product in groupSitesByProduct) {\n\n if (product.length) {\n result.push({\n name: availableProducts[product].name,\n icon: availableProducts[product].login_logo_url || '',\n sites: groupSitesByProduct[product].map((site) => site.url)\n });\n }\n }\n return result;\n }\n\n getDisplayName() {\n return this.user.myDetails.name;\n }\n\n getFirstName(fullName = '') {\n return fullName.trim().split(' ')[0];\n }\n\n getLastName(fullName = '') {\n let lastName = '';\n let names = fullName.trim().split(' ');\n\n if (names.length > 1) {\n names.shift();\n lastName = names.join(' ');\n }\n\n return lastName;\n }\n\n getUserEmail() {\n return this.user.myDetails.email || '';\n }\n\n getUserAaid() {\n return this.user.myDetails.aaid || '';\n }\n\n getAvatar() {\n return this.user.myDetails.avatar;\n }\n\n isLoggedIn() {\n return this.user.isLoggedIn && this.user.myDetails.email.length > 0;\n }\n\n isExpert() {\n return this.organisationDetails.organisationType === 'EXPERT';\n }\n\n isReseller() {\n return this.organisationDetails.organisationType === 'RESELLER';\n }\n\n isPlatinumExpert() {\n return this.organisationDetails.organisationType === 'EXPERT' && this.organisationDetails.payOnAccount;\n }\n\n isValidSite(site) {\n\n const ignoreSiteNames = [\n 'servicedog',\n 'ecosystem',\n 'atlassiantraining',\n 'Atlassian Stride',\n 'volunteerhub',\n 'atlassiantraining',\n 'hello-staging',\n 'ecosystem',\n 'riskmanagement',\n 'hello-staging3',\n 'hello-staging6',\n 'hello-staging9',\n 'jdog',\n 'sre-ehlo',\n 'trello',\n 'Trello',\n 'bitbucket',\n 'Bitbucket'\n ];\n\n if (ignoreSiteNames.indexOf(site.displayName) > -1) {\n return false;\n }\n\n if (site.cloudId.startsWith('DUMMY')) {\n return false;\n }\n\n if (site.displayName.toUpperCase().match(\".*-SANDBOX-\\\\d{3}$\")) {\n return false\n }\n\n return true;\n }\n\n}\n\nexport let hamletUser = new HamletUser();\n","import { trackAllPlatforms } from './platforms';\n\nclass Tracking {\n /**\n * Process the value attribute to remove newlines, if the value attribute exists.\n *\n * @param {any} attributes\n */\n processAttributes(attributes: { [x: string]: any; value?: any; }) {\n if (!attributes) return {};\n\n let { value, ...additionalAttributes } = attributes;\n if (value) {\n value = value.replace(/\\r?\\n|\\r/g, \"\");\n }\n return { value, ...additionalAttributes };\n }\n\n /**\n * Send a tracking event to any tracking platforms defined in the `trackAllPlatforms` array.\n *\n * @param {string} category The event category, e.g. \"cart-cloud\" or \"bxp.formCloudSignup\".\n * @param {string} action The action name, e.g. \"page-unload\" or \"time-to-form-ready\".\n * @param {string} label An event label, e.g. \"form-event\" or \"signup-social-login\". Not used by all platforms.\n * @param {any} attributes Additional attributes passed to the tracking platform.\n * @param {boolean} isNonInteraction Whether or not the event is a non-interaction event (Google Analytics). See also, https://support.google.com/analytics/answer/1033068#NonInteractionEvents\n */\n trackAll(category: string, action: string, label: string, attributes = {}, isNonInteraction: boolean | undefined) {\n const attrs = this.processAttributes(attributes);\n\n trackAllPlatforms.forEach(platform => {\n platform.track({\n category,\n action,\n label,\n attributes: attrs,\n isNonInteraction,\n });\n })\n }\n}\n\nexport { Tracking };\n\nexport default new Tracking();\n","import Environment from './environment';\n\nconst debug = Environment.isDev();\n\nexport const log = function (msg: string, title = '') {\n if (debug) {\n console.log(msg, title);\n }\n};\n\nexport const todo = function (msg: string) {\n if (debug) {\n console.log(`%c todo: ${msg}`, 'background: #2684FF; color: #fff; padding-right: 10px;');\n }\n};\n\nexport const warn = function (msg: string) {\n if (debug) {\n console.warn(msg);\n }\n};\n\nexport const error = function (msg: string, title = '') {\n if (debug) {\n console.error(msg, title);\n } else {\n // @todo: track error somewhere\n }\n};\n\n","export default {\n categories: {\n none: 'no-category',\n googleAnalyticsTracking: 'google-analytics-tracking',\n gasv2Tracking: 'gas-v2-tracking',\n },\n actions: {\n none: 'no-action',\n inferredNameMatch: 'inferred-name-match',\n inferredNameMismatch: 'inferred-name-mismatch',\n noNameProvided: 'no-name-provided',\n trackingFailure: 'tracking-failure',\n },\n labels: {\n none: 'no-label',\n },\n reasons: {\n trackingNotLoaded: 'tracking-not-loaded',\n },\n urls: {\n gasv2Url: 'https://mgas.prod.public.atl-paas.net/v1/event',\n },\n};\n","import axios from 'axios';\nimport * as Logger from '../../logger';\nimport Constants from '../constants';\n\nclass GASv2 {\n hasShownWarning: boolean;\n \n constructor() {\n this.hasShownWarning = false;\n }\n\n track(postBody: any) {\n if (!this.hasShownWarning) {\n this.hasShownWarning = true;\n Logger.warn('GASv2 is deprecated! Please migrate to GASv3 when possible.');\n }\n\n let options = {\n headers: {\n 'content-type': 'application/json'\n },\n withCredentials: true\n };\n\n return axios.post(Constants.urls.gasv2Url, postBody, options)\n .then(d => {\n return d;\n })\n .catch(e => {\n return Promise.reject(e);\n });\n }\n}\n\nexport { GASv2 };\n\nexport default new GASv2();\n","class GASv3 {\n track() {\n return Promise.reject('Not yet implemented.');\n }\n}\n\nexport { GASv3 };\n\nexport default new GASv3();\n","class GoogleAnalytics {\n track(data: any) {\n const { action, attributes, category, label, isNonInteraction } = data;\n const { value } = (attributes || {});\n\n if (typeof ga !== 'undefined') {\n ga('send', 'event', category, action, label, value, {\n nonInteraction: isNonInteraction\n });\n }\n }\n}\n\nexport { GoogleAnalytics };\n\nexport default new GoogleAnalytics();\n","import tracking from '../../../utils/tracking';\nimport url from '../../../utils/url';\n\nclass Segment {\n track(data: any) {\n const { action, attributes, category, label } = data;\n const { value, ...additionalAttributes } = (attributes || {});\n\n var eventProperties = {\n category,\n label,\n value,\n eventAction: action,\n urlParams: url.getUrlParams() || {},\n ...additionalAttributes\n };\n tracking.trackEvent(action, eventProperties);\n }\n}\n\nexport { Segment };\n\nexport default new Segment();\n","import GASv2 from './gasv2';\nimport GASv3 from './gasv3';\nimport GoogleAnalytics from './googleAnalytics';\nimport Segment from './segment';\n\n// platforms to send to when Tracking.trackAll() is called.\nexport const trackAllPlatforms = [GoogleAnalytics, Segment];\n\n// all supported platforms.\nexport {\n GASv2,\n GASv3,\n GoogleAnalytics,\n Segment,\n};\n","import _ from 'underscore';\n\nexport default class CloudFamily {\n JIRA_KEY: string;\n CONFLUENCE_KEY: string;\n ROLE_BASED_PRICING_PRODUCTS: string[];\n DEPRECATED: string[];\n JIRA_FAMILY: { family: string; primaryParent: any; products: any[]; };\n CONFLUENCE_FAMILY: { family: string; primaryParent: any; products: any[]; };\n\n constructor() {\n this.JIRA_KEY = 'jira-software.ondemand';\n this.CONFLUENCE_KEY = 'confluence.ondemand';\n\n this.ROLE_BASED_PRICING_PRODUCTS = ['jira-servicedesk.ondemand', 'com.atlassian.servicedesk.ondemand'];\n\n this.DEPRECATED = [\n 'bamboo.ondemand',\n 'com.atlassian.bitbucket',\n 'com.atlassian.hipchat'\n ];\n\n this.JIRA_FAMILY = {\n family: 'jira',\n primaryParent: this.JIRA_KEY,\n products: [\n this.JIRA_KEY,\n 'jira-servicedesk.ondemand',\n 'jira-core.ondemand',\n 'com.radiantminds.roadmaps-jira.ondemand',\n 'bonfire.jira.ondemand'\n ]\n };\n\n this.CONFLUENCE_FAMILY = {\n family: 'confluence',\n primaryParent: this.CONFLUENCE_KEY,\n products: [\n this.CONFLUENCE_KEY,\n 'com.atlassian.confluence.plugins.confluence-questions.ondemand',\n 'team.calendars.confluence.ondemand'\n ]\n };\n\n }\n\n getFamilies() {\n return [this.JIRA_FAMILY, this.CONFLUENCE_FAMILY];\n }\n\n getProductKeys() {\n return _.flatten(_.pluck(this.getFamilies(), 'products'));\n }\n\n getDeprecatedProductKeys() {\n return this.DEPRECATED;\n }\n\n getFamiliesPrimaryKey() {\n let primaryKeys: { [name: string]: any } = {};\n\n _.each(this.getFamilies(), (family) => {\n primaryKeys[family.family] = family.primaryParent;\n });\n\n return primaryKeys;\n }\n\n isParent(product) {\n return !!(product && product.parentKeys &&\n (_.isEmpty(product.parentKeys) || _.contains(product.parentKeys, 'atlassian.ondemand')));\n }\n\n getByKey(objects, key) {\n return _.findWhere(objects, {productKey: key});\n }\n\n hasKey(objects, key) {\n return !!this.getByKey(objects, key);\n }\n\n isRoleBasedProduct(product) {\n return _.include(this.ROLE_BASED_PRICING_PRODUCTS, product.productKey);\n }\n\n}\n","import _ from 'underscore';\n\nexport default class OrderableItem {\n amount: number = 0;\n description?: string;\n editionDescription?: string;\n editionId?: string;\n enterprise: boolean = false;\n billingType?: string;\n licenseType?: string;\n monthsValid: number = 12;\n orderableItemId?: string;\n publiclyAvailable: boolean = true;\n renewalAmount: number = 0;\n saleType?: string;\n starter: boolean = false;\n unitCount: number = 0;\n unitLabel: string = 'USER';\n\n constructor(options: OrderableItem, product: OrderableItem) {\n\n Object.assign(this, options, _.pick(product, 'productKey', 'parentKey', 'productType', 'productDescription', 'parentDescription', 'billingType'));\n\n this.unitCount = (this.unitCount === 987654321) ? -1 : this.unitCount;\n this.editionDescription = this.editionDescription?.replace(/enterprise /i, '');\n this.description = this.description?.replace(/enterprise /i, '');\n }\n}\n","import _ from 'underscore';\n\nexport default class PricingBlock {\n amount: any;\n price: any;\n renewalAmount: any;\n unitLabel: string;\n productKey: any;\n rolePricing?: string;\n\n constructor(options: PricingBlock, product: PricingBlock) {\n Object.assign(this, options, _.pick(product, 'productKey', 'parentKey', 'productType', 'productDescription', 'parentDescription'));\n this.amount = this.price;\n this.renewalAmount = this.price;\n this.unitLabel = 'USER';\n\n switch(this.productKey) {\n case 'com.atlassian.servicedesk.ondemand':\n case 'jira-servicedesk.ondemand':\n this.unitLabel = 'AGENT';\n this.rolePricing = 'Per Service Desk agent';\n break;\n case 'com.atlassian.hipchat':\n this.rolePricing = 'Per Hipchat user';\n break;\n }\n }\n}\n","import _ from 'underscore';\nimport OrderableItem from './hamlet-product-model-orderable-item';\nimport PricingBlock from './hamlet-product-model-pricing-block';\n\n\nexport default class HamletProductModel {\n productDescription: any;\n parentDescription: any;\n productKey?: string;\n userCountEnforced?: boolean;\n productContentData: any;\n contentData: any;\n orderableItems: any;\n monthly: any;\n annual: any;\n productType?: string;\n parentKey?: any[];\n $renewalItems: never[];\n $upgradeItems: never[];\n $licenseItems: any;\n\n constructor(options: HamletProductModel, productContentData: any) {\n var defaults = {\n productKey: null, // jira\n productDescription: null, // Jira\n productType: null, // PERPETUAL, HOSTED, ADDON, HOSTED_ADDON, EVALUATION, SUBSCRIPTION\n parentKeys: null,\n parentDescription: null,\n userCountEnforced: false,\n marketplaceAddon: false,\n lastModified: (new Date()).toISOString(),\n contactSalesForAdditionalPricing: false,\n orderableItems: [], // User-tier based pricing will have orderable items\n annual: [], // agent/role based pricing will have monthly/annual blocks defining the block limits\n monthly: [],\n billingType: null\n };\n\n Object.assign(this, defaults, options);\n this.productDescription = this.productDescription ? this.productDescription.replace(/\\s*\\((Server|Cloud)\\)/, '') : null;\n this.parentDescription = this.parentDescription ? this.parentDescription.replace(/\\s*\\((Server|Cloud)\\)/, '') : null;\n\n if (this.productKey === 'com.atlassian.servicedesk' || this.productKey === 'com.atlassian.servicedesk.ondemand') {\n this.userCountEnforced = false;\n }\n\n // Get Content Data\n this.productContentData = productContentData;\n if (this.productContentData.has(this.productKey)) {\n this.contentData = this.productContentData.get(this.productKey);\n } else {\n this.contentData = this.productContentData.createFromHamletApi(this);\n }\n\n if (this.contentData.overrides) {\n this.orderableItems = this.contentData.overrides.orderableItems ? this.contentData.orderableItems : this.orderableItems;\n this.monthly = this.contentData.overrides.monthly ? this.contentData.overrides.monthly : this.monthly;\n this.annual = this.contentData.overrides.annual ? this.contentData.overrides.annual : this.annual;\n }\n\n if (this.productType === 'ADDON' || this.productType === 'HOSTED_ADDON') {\n if (_.isEmpty(this.parentKeys)) {\n this.parentKeys = this.parentKey && [this.parentKey] || [];\n\n // Multiple parent compatibility hack (for data center)\n switch (this.parentKey) {\n\n case 'jira':\n this.parentKeys.push('jira-data-center');\n break;\n\n case 'confluence':\n this.parentKeys.push('confluence-data-center');\n break;\n\n case 'stash':\n this.parentKeys.push('stash-data-center');\n break;\n }\n }\n }\n\n var self = this;\n var orderables = _.uniq(this.orderableItems, 'orderableItemId');\n this.orderableItems = [];\n this.$renewalItems = [];\n this.$upgradeItems = [];\n _.each(orderables, function (item) {\n var orderable = new OrderableItem(item, self);\n if (orderable.saleType === 'RENEWAL') {\n self.$renewalItems.push(orderable);\n } else if (orderable.saleType === 'UPGRADE') {\n self.$upgradeItems.push(orderable);\n } else {\n self.orderableItems.push(orderable);\n }\n });\n this.orderableItems = this.orderableItems.sort(this.sortOrderables);\n this.$renewalItems = this.$renewalItems.sort(this.sortOrderables);\n this.$upgradeItems = this.$upgradeItems.sort(this.sortOrderables);\n this.setLicenseItems();\n\n _.each(['monthly', 'annual'], function (section) {\n var original = self[section];\n self[section] = [];\n _.each(original, function (block) {\n self[section].push(new PricingBlock(block, self));\n });\n });\n }\n\n sortOrderables(a, b) {\n var key = (a.$tierHierarchy === b.$tierHierarchy) ? 'amount' : '$tierHierarchy';\n return a[key] - b[key];\n }\n\n findOrderables(id) {\n var matches = [];\n matches = matches.concat(_.where(this.orderableItems, { orderableItemId: id }));\n matches = matches.concat(_.where(this.$renewalItems, { orderableItemId: id }));\n matches = matches.concat(_.where(this.$upgradeItems, { orderableItemId: id }));\n return matches;\n }\n\n hasAnyOrderables() {\n return this.orderableItems.length > 0;\n }\n\n hasOrderable(id) {\n return this.findOrderables(id).length > 0;\n }\n\n getOrderable(id) {\n return this.findOrderables(id)[0];\n }\n\n addOrderable(item) {\n if (!this.hasOrderable(item.orderableItemId)) {\n var orderable = new OrderableItem(item, this);\n if (orderable.saleType === 'RENEWAL') {\n this.$renewalItems.push(orderable);\n } else if (orderable.saleType === 'UPGRADE') {\n this.$upgradeItems.push(orderable);\n } else {\n this.orderableItems.push(orderable);\n }\n this.orderableItems = this.orderableItems.sort(this.sortOrderables);\n this.$renewalItems = this.$renewalItems.sort(this.sortOrderables);\n this.$upgradeItems = this.$upgradeItems.sort(this.sortOrderables);\n this.setLicenseItems();\n }\n }\n\n setLicenseItems() {\n var self = this,\n items = _.groupBy(this.orderableItems, 'licenseType');\n\n this.$licenseItems = this.$licenseItems || {};\n _.each(items, function (list, key) {\n self.$licenseItems[key] = list.sort(self.sortOrderables);\n });\n }\n\n isCompatibleWith(parent: any) {\n return _.contains(this.parentKeys, parent);\n }\n\n hasTheseLicenses(types: any) {\n\n var currentLicenses = _.uniq(_.pluck(this.orderableItems, 'licenseType')),\n licenseTypes = _.map(types, function (type) { return type.toUpperCase(); }),\n difference = _.difference(licenseTypes, currentLicenses);\n\n if (_.contains(['clover'], this.productKey)) {\n return _.has(this.$licenseItems, 'COMMERCIAL') && _.has(this.$licenseItems, 'ACADEMIC');\n } else if (/university/.test(this.productKey) || /training/.test(this.productKey)) {\n return _.has(this.$licenseItems, 'COMMERCIAL');\n } else {\n return difference.length === 0;\n }\n }\n}\n","import _ from 'underscore';\n\nexport default class ProductConstants {\n products: any;\n \n constructor() {\n this.products = this.initialProducts();\n\n this.products['com.atlassian.hipchat.data-center'] = {\n 'productLongDescription': {\n 'default': 'Hipchat is a hosted private chat service for your company and team. Share ideas and files in persistent group chat rooms, video chats, and more. Get your team off AIM, Google Talk, and Skype – Hipchat is built for business.'\n },\n 'productTagLine': {\n 'default': 'Chat and share'\n },\n 'images': {\n 'xxx' : '/sc-shared/img/productLogos/Hipchat-blue.svg',\n 'xx' : '/sc-shared/img/productLogos/Hipchat-blue.svg'\n },\n 'onDemand': {\n 'available': true,\n 'url': 'https://www.hipchat.com/sign_up?utm_source=atlassian&utm_medium=wac-order-form&utm_campaign=hipchat-launch'\n },\n 'url': 'product/com.atlassian.hipchat.data-center',\n 'productName': 'Hipchat',\n 'productGroup': 'com.atlassian.hipchat',\n 'editionName': 'dataCenter'\n };\n\n\n this.products['crowd.data-center'] = {\n 'productLongDescription': {\n 'default': 'Identity management for your users, web apps, and directory servers.'\n },\n 'productTagLine': {\n 'default': 'Identity management'\n },\n 'images': {\n 'xxx': '/sc-shared/img/productLogos/Crowd-blue.svg',\n 'xx': '/sc-shared/img/productLogos/Crowd-blue.svg'\n },\n 'moreLink': 'https://www.atlassian.com/software/crowd/overview',\n 'onDemand': {\n 'available': false,\n 'key': null\n },\n 'url': 'product/crowd',\n 'productName': 'Crowd Data Center',\n 'productGroup': 'crowd',\n 'editionName': 'dataCenter'\n };\n\n this.products['premier-support'] = {\n 'productLongDescription': {\n 'default': 'Our highest level of support, including coverage for all of your Atlassian applications and 24/7 access to a team of dedicated senior support engineers.'\n },\n 'productTagLine': {\n 'default': 'Account-level coverage'\n },\n 'support': {\n 'description': 'Premier Support connects our top tier engineers with the customer. In order to ensure the best outcomes, we limit the number of individuals within an account to three named contacts.'\n },\n 'url': 'product/premier-support',\n 'productName': 'Premier Support',\n 'productGroup': 'premierSupport',\n 'editionName': 'support'\n };\n\n var prioritySupport = {\n 'productLongDescription': {\n 'default': 'Ensure your mission-critical Atlassian Server and Data Center applications scale successfully.'\n },\n 'productTagLine': {\n 'default': 'Flexible coverage'\n },\n 'support': {\n 'description': 'Priority Support for Atlassian Server ensures your mission-critical Atlassian Server and Data Center applications scale successfully.'\n },\n 'productName': 'Priority Support',\n 'productGroup': 'prioritySupport'\n };\n\n this.products['priority-support.server'] = _.defaults({\n 'url': 'product/priority-support.server',\n 'editionName': 'server'\n }, prioritySupport);\n\n this.products['priority-support.data-center'] = _.defaults({\n 'url': 'product/priority-support.data-center',\n 'editionName': 'dataCenter'\n }, prioritySupport);\n }\n\n initialProducts() {\n return {\n 'jira': {\n 'productLongDescription': {\n 'default': 'Enable development and IT teams to capture issues, plan work, and resolve requests. Spend less time managing work and more time building great software.'\n },\n 'productTagLine': {\n 'default': 'Plan, track, work'\n },\n 'images': {\n 'xxx': '/sc-shared/img/productLogos/Jira-blue.svg',\n 'xx': '/sc-shared/img/productLogos/Jira-blue.svg'\n },\n 'recommendedProducts': ['com.pyxis.greenhopper.jira', 'com.atlassian.servicedesk', 'confluence', 'stash', 'com.radiantminds.roadmaps-jira'],\n 'moreLink': 'https://www.atlassian.com/software/jira',\n 'onDemand': {\n 'available': true,\n 'key': 'jira.ondemand'\n },\n 'url': 'product/jira',\n store: false,\n 'productName': 'Jira'\n },\n 'jira-data-center': {\n 'productLongDescription': {\n 'default': 'Enable development and IT teams to capture issues, plan work, and resolve requests. Spend less time managing work and more time building great software.'\n },\n 'productTagLine': {\n 'default': 'Plan, track, work'\n },\n 'images': {\n 'xxx': '/sc-shared/img/productLogos/Jira-blue.svg',\n 'xx': '/sc-shared/img/productLogos/Jira-blue.svg'\n },\n 'moreLink': 'https://www.atlassian.com/software/jira',\n 'onDemand': null,\n 'productName': 'Jira Data Center'\n },\n 'com.pyxis.greenhopper.jira': {\n 'productLongDescription': {\n 'default': 'Agile project management for scrum or kanban teams.'\n },\n 'productTagLine': {\n 'default': 'Agile project management'\n },\n 'images': {\n 'xxx': '/sc-shared/img/productLogos/jiraagile_blue_xxxsmall.png',\n 'xx': '/sc-shared/img/productLogos/jiraagile_blue_xxsmall.png'\n },\n 'recommendedProducts': [],\n 'moreLink': 'https://www.atlassian.com/software/jira-agile/overview',\n 'onDemand': {\n 'available': true,\n 'key': 'greenhopper.jira.ondemand'\n },\n 'url': 'addon/com.pyxis.greenhopper.jira',\n store: false,\n 'productName': 'Jira Agile'\n },\n 'com.atlassian.servicedesk': {\n 'productLongDescription': {\n 'default': 'Deliver an effortless service experience with powerful ticket management, an intuitive self-service portal, advanced SLAs and real-time reporting.'\n },\n 'productTagLine': {\n 'default': 'Service and support',\n 'jira': ' '\n },\n 'images': {\n 'xxx': '/sc-shared/img/productLogos/Jira_Service_Desk-blue.svg',\n 'xx': '/sc-shared/img/productLogos/Jira_Service_Desk-blue.svg'\n },\n 'recommendedProducts': [],\n 'moreLink': 'https://www.atlassian.com/software/jira/service-desk',\n 'onDemand': {\n 'available': true,\n 'key': 'com.atlassian.servicedesk.ondemand'\n },\n 'url': 'software/com.atlassian.servicedesk',\n store: false,\n 'productName': 'Jira Service Desk'\n },\n 'com.atlassian.bonfire.plugin': {\n 'productLongDescription': {\n 'default': 'Rapid bug reporting for exploratory and session-based testing.'\n },\n 'productTagLine': {\n 'default': 'Exploratory testing'\n },\n 'images': {\n 'xxx': null,\n 'xx': null\n },\n 'recommendedProducts': [],\n 'moreLink': 'https://www.atlassian.com/software/jira-capture/overview',\n 'onDemand': {\n 'available': true,\n 'key': 'bonfire.jira.ondemand'\n },\n 'url': 'addon/com.atlassian.bonfire.plugin',\n 'productName': 'Capture for Jira',\n addon: true,\n 'productGroup': 'com.atlassian.bonfire.plugin',\n 'editionName': 'server'\n },\n 'com.radiantminds.roadmaps-jira': {\n 'productLongDescription': {\n 'default': 'Know when you can deliver, react to change and keep everyone on the same page.'\n },\n 'productTagLine': {\n 'default': 'See the big picture: Plan across multiple projects and teams'\n },\n 'images': {\n 'xxx': null,\n 'xx': null\n },\n 'recommendedProducts': [],\n 'moreLink': 'https://marketplace.atlassian.com/plugins/com.radiantminds.roadmaps-jira',\n 'onDemand': {\n 'available': true,\n 'key': 'com.radiantminds.roadmaps-jira.ondemand'\n },\n 'url': 'addon/com.radiantminds.roadmaps-jira',\n 'productName': 'Portfolio for Jira',\n addon: true,\n 'productGroup': 'com.radiantminds.roadmaps-jira',\n 'editionName': 'server'\n },\n 'confluence': {\n 'productLongDescription': {\n 'default': 'Give your team one place to share, find, and collaborate on information they need to get work done.'\n },\n 'productTagLine': {\n 'default': 'Create & collaborate'\n },\n 'images': {\n 'xxx': '/sc-shared/img/productLogos/Confluence-blue.svg',\n 'xx': '/sc-shared/img/productLogos/Confluence-blue.svg'\n },\n 'recommendedProducts': [ 'com.atlassian.confluence.plugins.confluence-questions', 'com.atlassian.confluence.extra.team-calendars', 'jira', 'jira-software' ],\n 'moreLink': 'https://www.atlassian.com/software/confluence',\n 'onDemand': {\n 'available': true,\n 'key': 'confluence.ondemand'\n },\n 'url': 'product/confluence',\n 'productName': 'Confluence',\n 'productGroup': 'confluence',\n 'editionName': 'server'\n },\n 'confluence-data-center': {\n 'productLongDescription': {\n 'default': 'Give your team one place to share, find, and collaborate on information they need to get work done.'\n },\n 'productTagLine': {\n 'default': 'Create & collaborate'\n },\n 'images': {\n 'xxx': '/sc-shared/img/productLogos/Confluence-blue.svg',\n 'xx': '/sc-shared/img/productLogos/Confluence-blue.svg'\n },\n 'moreLink': 'https://www.atlassian.com/software/confluence',\n 'onDemand': null,\n 'productName': 'Confluence Data Center',\n 'productGroup': 'confluence',\n 'editionName': 'dataCenter'\n },\n 'com.atlassian.confluence.plugins.confluence-questions': {\n 'productLongDescription': {\n 'default': 'Capture, learn from, and retain the collective knowledge of your organization as it grows.'\n },\n 'productTagLine': {\n 'default': 'Share knowledge'\n },\n 'images': {\n 'xxx': null,\n 'xx': null\n },\n 'recommendedProducts': [],\n 'moreLink': 'https://marketplace.atlassian.com/plugins/com.atlassian.confluence.plugins.confluence-questions',\n 'onDemand': {\n 'available': true,\n 'key': 'com.atlassian.confluence.plugins.confluence-questions.ondemand'\n },\n 'url': 'addon/com.atlassian.confluence.plugins.confluence-questions',\n 'productName': 'Questions for Confluence',\n addon: true,\n 'productGroup': 'com.atlassian.confluence.plugins.confluence-questions',\n 'editionName': 'server'\n },\n 'com.atlassian.confluence.extra.team-calendars': {\n 'productLongDescription': {\n 'default': 'Your team\\'s single source of truth for managing team leave, tracking Jira projects, and planning events. Confluence Team Calendars connects Confluence and Jira like never before.'\n },\n 'productTagLine': {\n 'default': 'Shared calendars',\n 'confluence': ' '\n },\n 'images': {\n 'xxx': null,\n 'xx': null,\n 'xxx_short': null,\n 'xx_short': null\n },\n 'recommendedProducts': [],\n 'moreLink': 'https://www.atlassian.com/software/confluence/team-calendars',\n 'onDemand': {\n 'available': true,\n 'key': 'team.calendars.confluence.ondemand'\n },\n 'url': 'addon/com.atlassian.confluence.extra.team-calendars',\n 'productName': 'Team Calendars for Confluence',\n addon: true,\n 'productGroup': 'com.atlassian.confluence.extra.team-calendars',\n 'editionName': 'server'\n },\n 'stash': {\n 'productLongDescription': {\n 'default': 'Collaborate on code with inline comments and pull requests. Manage and share your Git repositories. Build and ship as a team.'\n },\n 'productTagLine': {\n 'default': 'Git-based code collaboration and management'\n },\n 'images': {\n 'xxx': '/sc-shared/img/productLogos/Bitbucket-blue.svg',\n 'xx': '/sc-shared/img/productLogos/Bitbucket-blue.svg'\n },\n 'recommendedProducts': [ 'jira', 'bamboo', 'jira-software' ],\n 'moreLink': 'https://www.atlassian.com/software/bitbucket/overview',\n 'onDemand': {\n 'available': true,\n 'url' : 'https://www.bitbucket.org/plans?utm_source=WAC&utm_medium=Button&utm_content=purchase_form&utm_campaign=BB',\n 'key': 'bitbucket.ondemand',\n 'crossSell': null\n },\n 'url': 'product/bitbucket',\n 'productName': 'Bitbucket',\n 'productGroup': 'stash',\n 'editionName': 'server'\n },\n 'stash-data-center': {\n 'productLongDescription': {\n 'default': 'Collaborate on code with inline comments and pull requests. Manage and share your Git repositories. Build and ship as a team.'\n },\n 'productTagLine': {\n 'default': 'Git-based code collaboration and management'\n },\n 'images': {\n 'xxx': '/sc-shared/img/productLogos/Bitbucket-blue.svg',\n 'xx': '/sc-shared/img/productLogos/Bitbucket-blue.svg'\n },\n 'moreLink': 'https://www.atlassian.com/software/bitbucket/overview',\n 'onDemand': {\n 'available': true,\n 'url' : 'https://www.bitbucket.org/plans?utm_source=WAC&utm_medium=Button&utm_content=purchase_form&utm_campaign=BB',\n 'key': 'bitbucket.ondemand',\n 'crossSell': null\n },\n 'url': 'product/stash-data-center',\n 'productName': 'Bitbucket Data Center',\n 'productGroup': 'stash',\n 'editionName': 'dataCenter'\n },\n /** When Bitbucket rebranding is on, stash data will mainly be used for displaying info in shopping cart\n * Note that the product key is stash, so where we want to access data from productConstants for bitbucket server we should be using the\n * stash product key. This is also the product key if we want to access Bitbucket Server data from Hams/Hamlet.\n * TODO remove all properties except productKey in PUR-4703\n */\n 'bitbucket': {\n 'productLongDescription': {\n 'default': 'Collaborate on code with inline comments and pull requests. Manage and share your Git repositories. Build and ship as a team.'\n },\n 'productTagLine': {\n 'default': 'Git-based code collaboration and management'\n },\n 'images': {\n 'xxx': '/sc-shared/img/productLogos/Bitbucket-blue.svg',\n 'xx': '/sc-shared/img/productLogos/Bitbucket-blue.svg'\n },\n 'recommendedProducts': [ 'jira', 'bamboo', 'jira-software' ],\n 'moreLink': 'https://www.atlassian.com/software/bitbucket/overview',\n 'onDemand': {\n 'available': true,\n 'key': 'bitbucket.ondemand'\n },\n 'url': 'product/bitbucket',\n 'productName': 'Bitbucket',\n 'productKey' : 'stash'\n },\n // similar to bitbucket, this exists to get the product config page to display stash-data-center info while the url says bitbucket-data-center\n 'bitbucket-data-center': {\n 'productKey' : 'stash-data-center'\n },\n 'fisheye': {\n 'productLongDescription': {\n 'default': 'Search, monitor, and track your Subversion repositories.'\n },\n 'productTagLine': {\n 'default': 'Browse & search code'\n },\n 'images': {\n 'xxx': '/sc-shared/img/productLogos/Fisheye-blue.svg',\n 'xx': '/sc-shared/img/productLogos/Fisheye-blue.svg'\n },\n 'recommendedProducts': [ 'crucible' ],\n 'moreLink': 'https://www.atlassian.com/software/fisheye/overview',\n 'onDemand': {\n 'available': false,\n 'key': null,\n 'crossSell': null\n },\n 'url': 'product/fisheye',\n 'productName': 'Fisheye',\n 'productGroup': 'fisheye',\n 'editionName': 'server'\n },\n 'crucible': {\n 'productLongDescription': {\n 'default': 'Find bugs and improve code quality through peer code review.'\n },\n 'productTagLine': {\n 'default': 'Peer code review'\n },\n 'images': {\n 'xxx': '/sc-shared/img/productLogos/Crucible-blue.svg',\n 'xx': '/sc-shared/img/productLogos/Crucible-blue.svg'\n },\n 'recommendedProducts': [ 'fisheye' ],\n 'moreLink': 'https://www.atlassian.com/software/crucible/overview',\n 'onDemand': {\n 'available': false,\n 'key': null,\n 'crossSell': null\n },\n 'url': 'product/crucible',\n 'productName': 'Crucible',\n 'productGroup': 'crucible',\n 'editionName': 'server'\n },\n 'bamboo': {\n 'productLongDescription': {\n 'default': 'Continuous integration, deployment, and release management.'\n },\n 'productTagLine': {\n 'default': 'Continuous integration'\n },\n 'images': {\n 'xxx': '/sc-shared/img/productLogos/Bamboo-blue.svg',\n 'xx': '/sc-shared/img/productLogos/Bamboo-blue.svg'\n },\n 'moreLink': 'https://www.atlassian.com/software/bamboo/overview',\n 'onDemand': {\n 'available': false,\n 'key': null\n },\n 'url': 'product/bamboo',\n 'productName': 'Bamboo',\n 'productGroup': 'bamboo',\n 'editionName': 'server'\n },\n 'crowd': {\n 'productLongDescription': {\n 'default': 'Identity management for your users, web apps, and directory servers.'\n },\n 'productTagLine': {\n 'default': 'Identity management'\n },\n 'images': {\n 'xxx': '/sc-shared/img/productLogos/Crowd-blue.svg',\n 'xx': '/sc-shared/img/productLogos/Crowd-blue.svg'\n },\n 'moreLink': 'https://www.atlassian.com/software/crowd/overview',\n 'onDemand': {\n 'available': false,\n 'key': null\n },\n 'url': 'product/crowd',\n 'productName': 'Crowd',\n 'productGroup': 'crowd',\n 'editionName': 'server'\n },\n 'atlassian.university.confluence': {\n 'productLongDescription': null,\n 'productTagLine': null,\n 'images': {\n 'xxx': '/sc-shared/img/productLogos/Atlassian_University-blue-rgb.svg',\n 'xx': '/sc-shared/img/productLogos/Atlassian_University-blue-rgb.svg'\n },\n 'productName': 'Atlassian University for Confluence'\n },\n 'atlassian.university.jira': {\n 'productLongDescription': null,\n 'productTagLine': null,\n 'images': {\n 'xxx': '/sc-shared/img/productLogos/Atlassian_University-blue-rgb.svg',\n 'xx': '/sc-shared/img/productLogos/Atlassian_University-blue-rgb.svg'\n },\n 'productName': 'Atlassian University for Jira'\n },\n 'atlassian.university.greenhopper': {\n 'productLongDescription': null,\n 'productTagLine': null,\n 'images': {\n 'xxx': '/sc-shared/img/productLogos/Atlassian_University-blue-rgb.svg',\n 'xx': '/sc-shared/img/productLogos/Atlassian_University-blue-rgb.svg'\n },\n 'productName': 'Atlassian University for Jira Agile'\n },\n 'jira.ondemand': {\n 'productLongDescription':{\n 'default': 'Enable development and IT teams to capture issues, plan work, and resolve requests. Spend less time managing work and more time building great software.'\n },\n 'productTagLine':{\n 'default': 'Plan, track, work'\n },\n 'images':{\n 'xxx': '/sc-shared/img/productLogos/Jira-blue.svg',\n 'xx':'/sc-shared/img/productLogos/Jira-blue.svg'\n },\n 'listOrder': 0,\n 'moreLink':'http://www.atlassian.com/en/software/jira'\n },\n 'greenhopper.jira.ondemand': {\n 'productLongDescription':{\n 'default': 'Agile project management for scrum or kanban teams.'\n },\n 'productTagLine':{\n 'default': 'Agile project management'\n },\n 'images':{\n 'xxx': '/sc-shared/img/productLogos/jiraagile_blue_xxxsmall.png',\n 'xx':'/sc-shared/img/productLogos/jiraagile_blue_xxsmall.png'\n },\n 'listOrder': 10,\n 'moreLink':'http://www.atlassian.com/en/software/jira/agile'\n },\n 'com.atlassian.servicedesk.ondemand': {\n 'productLongDescription':{\n 'default': 'Deliver an effortless service experience with powerful ticket management, an intuitive self-service portal, advanced SLAs and real-time reporting.'\n },\n 'productTagLine':{\n 'default': 'Service and support'\n },\n 'images':{\n 'xxx': '/sc-shared/img/productLogos/Jira_Service_Desk-blue.svg',\n 'xx': '/sc-shared/img/productLogos/Jira_Service_Desk-blue.svg'\n },\n 'listOrder': 20,\n 'moreLink':'http://www.atlassian.com/en/software/jira/service-desk'\n },\n 'com.radiantminds.roadmaps-jira.ondemand': {\n 'productLongDescription': {\n 'default': 'Know when you can deliver, react to change and keep everyone on the same page.'\n },\n 'productTagLine': {\n 'default': 'Project portfolio management'\n },\n 'images': {\n 'xxx': null,\n 'xx': null\n },\n 'listOrder': 30,\n 'moreLink': 'https://marketplace.atlassian.com/plugins/com.radiantminds.roadmaps-jira',\n 'productGroup': 'com.radiantminds.roadmaps-jira',\n 'editionName': 'cloud'\n },\n 'bonfire.jira.ondemand': {\n 'productLongDescription':{\n 'default': 'Rapid bug reporting for exploratory and session-based testing.'\n },\n 'productTagLine':{\n 'default': 'Exploratory testing'\n },\n 'images':{\n 'xxx': null,\n 'xx': null\n },\n 'listOrder': 40,\n 'moreLink':'http://www.atlassian.com/en/software/jira-capture/overview',\n 'productGroup': 'com.atlassian.bonfire.plugin',\n 'editionName': 'cloud'\n },\n 'com.atlassian.bitbucket': {\n 'productLongDescription':{\n 'default': 'Your code, in the cloud. Manage, review, and share your Git and Mercurial source code with free unlimited private repositories.'\n },\n 'productTagLine':{\n 'default': 'Git & Mercurial code hosting'\n },\n 'images':{\n 'xxx': '/sc-shared/img/productLogos/Bitbucket-blue.svg',\n 'xx':'/sc-shared/img/productLogos/Bitbucket-blue.svg'\n },\n 'listOrder': 60,\n 'moreLink':'https://www.atlassian.com/en/software/bitbucket/overview',\n 'productGroup': 'stash',\n 'editionName': 'cloud'\n },\n 'confluence.ondemand': {\n 'productLongDescription':{\n 'default': 'Give your team one place to share, find, and collaborate on information they need to get work done.'\n },\n 'productTagLine':{\n 'default': 'Create & collaborate'\n },\n 'images':{\n 'xxx': '/sc-shared/img/productLogos/Confluence-blue.svg',\n 'xx':'/sc-shared/img/productLogos/Confluence-blue.svg'\n },\n 'listOrder': 0,\n 'moreLink':'https://www.atlassian.com/en/software/confluence',\n 'productGroup': 'confluence',\n 'editionName': 'cloud',\n 'instanceRedirectSuffix': '/wiki'\n },\n 'com.atlassian.confluence.plugins.confluence-questions.ondemand': {\n 'productLongDescription': {\n 'default': 'Capture, learn from, and retain the collective knowledge of your organization as it grows.'\n },\n 'productTagLine': {\n 'default': 'Share knowledge'\n },\n 'images': {\n 'xxx': null,\n 'xx': null\n },\n 'listOrder': 10,\n 'recommendedProducts': [],\n 'moreLink': 'https://www.atlassian.com/en/software/confluence/questions',\n 'productGroup': 'com.atlassian.confluence.plugins.confluence-questions',\n 'editionName': 'cloud'\n },\n 'team.calendars.confluence.ondemand': {\n 'productLongDescription':{\n 'default': 'Your team\\'s single source of truth for managing team leave, tracking Jira projects, and planning events. Confluence Team Calendars connects Confluence and Jira like never before.'\n },\n 'productTagLine':{\n 'default': ' '\n },\n 'images':{\n 'xxx' : null,\n 'xx' : null\n },\n 'listOrder': 20,\n 'moreLink':'http://www.atlassian.com/en/software/confluence/team-calendars',\n 'productGroup': 'com.atlassian.confluence.extra.team-calendars',\n 'editionName': 'cloud'\n },\n 'com.atlassian.hipchat': {\n 'productLongDescription': {\n 'default': 'Hipchat is a hosted private chat service for your company and team. Share ideas and files in persistent group chat rooms, video chats, and more. Get a free month of Hipchat Plus with your Atlassian Cloud subscription.'\n },\n 'productTagLine': {\n 'default': 'Chat and share'\n },\n 'images': {\n 'xxx' : '/sc-shared/img/productLogos/Hipchat-blue.svg',\n 'xx' : '/sc-shared/img/productLogos/Hipchat-blue.svg'\n },\n 'marketplace': false,\n 'listOrder': 10,\n 'moreLink':'http://www.atlassian.com/en/software/hipchat',\n 'url': 'https://www.hipchat.com/sign_up?utm_source=atlassian&utm_medium=wac-order-form&utm_campaign=hipchat-launch',\n 'overrides': {\n monthly: [{\n editionType: \"role-tier\",\n editionTypeIsDeprecated: true,\n price: 0,\n unitBlockSize: 987654321,\n unitLabel: \"USER\",\n unitLimit: -1,\n unitStart: 1\n }]\n },\n 'featured': true,\n 'productGroup': 'com.atlassian.hipchat',\n 'editionName': 'cloud'\n },\n 'jira-software': {\n 'productLongDescription': {\n 'default': 'The #1 software development tool used by agile teams. Plan, track, and release world-class software.'\n },\n 'productTagLine': {\n 'default': 'Issue tracking and code integration'\n },\n 'images': {\n 'xxx': '/sc-shared/img/productLogos/Jira_Software-blue.svg',\n 'xx': '/sc-shared/img/productLogos/Jira_Software-blue.svg'\n },\n 'recommendedProducts': ['com.radiantminds.roadmaps-jira', 'jira-servicedesk', 'confluence', 'stash'],\n 'onDemand': {\n 'available': true,\n 'key': 'jira-software.ondemand'\n },\n url: 'product/jira-software',\n 'store': false,\n productName: 'Jira Software',\n 'productGroup': 'jira-software',\n 'editionName': 'server'\n },\n 'jira-software.data-center': {\n 'productLongDescription': {\n 'default': 'The #1 software development tool used by agile teams. Plan, track, and release world-class software.'\n },\n 'productTagLine': {\n 'default': 'Issue tracking and code integration'\n },\n 'images': {\n 'xxx': '/sc-shared/img/productLogos/Jira_Software-blue.svg',\n 'xx': '/sc-shared/img/productLogos/Jira_Software-blue.svg'\n },\n 'onDemand': {\n 'available': true,\n 'key': 'jira-software.ondemand'\n },\n url: 'product/jira-software',\n 'store': false,\n productName: 'Jira Software Data Center',\n 'productGroup': 'jira-software',\n 'editionName': 'dataCenter'\n },\n 'jira-core': {\n 'productLongDescription': {\n 'default': 'Simplify projects, from marketing campaigns, HR onboarding, to purchasing approvals and legal document reviews.'\n },\n 'productTagLine': {\n 'default': 'Project management for business teams'\n },\n 'images': {\n 'xxx': '/sc-shared/img/productLogos/Jira_Core-blue.svg',\n 'xx': '/sc-shared/img/productLogos/Jira_Core-blue.svg'\n },\n 'onDemand': {\n 'available': true,\n 'key': 'jira-core.ondemand'\n },\n url: 'product/jira-core',\n store: false,\n productName: 'Jira Core',\n 'productGroup': 'jira-core',\n 'editionName': 'server'\n },\n 'jira-servicedesk': {\n 'productLongDescription': {\n 'default': 'Give your customers an easy way to ask for help and your agents a fast way to resolve incidents.'\n },\n 'productTagLine': {\n 'default': 'IT support and self-service'\n },\n 'images': {\n 'xxx': '/sc-shared/img/productLogos/Jira_Service_Desk-blue.svg',\n 'xx': '/sc-shared/img/productLogos/Jira_Service_Desk-blue.svg'\n },\n 'recommendedProducts': ['confluence'],\n 'onDemand': {\n 'available': true,\n 'key': 'jira-servicedesk.ondemand'\n },\n 'message': {\n 'userTier': 'Choose your Jira Service Desk agent tier'\n },\n url: 'product/jira-servicedesk',\n store: false,\n productName: 'Jira Service Desk',\n 'productGroup': 'jira-servicedesk',\n 'editionName': 'server'\n },\n 'jira-servicedesk.data-center': {\n 'productLongDescription': {\n 'default': 'Give your customers an easy way to ask for help and your agents a fast way to resolve incidents.'\n },\n 'productTagLine': {\n 'default': 'IT support and self-service'\n },\n 'images': {\n 'xxx': '/sc-shared/img/productLogos/Jira_Service_Desk-blue.svg',\n 'xx': '/sc-shared/img/productLogos/Jira_Service_Desk-blue.svg'\n },\n 'onDemand': {\n 'available': true,\n 'key': 'jira-servicedesk.ondemand'\n },\n 'message': {\n 'userTier': 'Choose your Jira Service Desk agent tier'\n },\n url: 'product/jira-servicedesk',\n store: false,\n productName: 'Jira Service Desk Data Center',\n 'productGroup': 'jira-servicedesk',\n 'editionName': 'dataCenter'\n },\n 'jira-software.ondemand': {\n 'productLongDescription': {\n 'default': 'The #1 software development tool used by agile teams. Plan, track, and release world-class software.'\n },\n 'images': {\n 'xxx': '/sc-shared/img/productLogos/Jira_Software-blue.svg',\n 'xx': '/sc-shared/img/productLogos/Jira_Software-blue.svg'\n },\n 'listOrder': 0,\n 'moreLink': '/software/jira',\n 'productGroup': 'jira-software',\n 'editionName': 'cloud'\n },\n 'jira-servicedesk.ondemand': {\n 'productLongDescription': {\n 'default': 'Give your customers an easy way to ask for help and your agents a fast way to resolve incidents.'\n },\n 'images': {\n 'xxx': '/sc-shared/img/productLogos/Jira_Service_Desk-blue.svg',\n 'xx': '/sc-shared/img/productLogos/Jira_Service_Desk-blue.svg'\n },\n 'listOrder': 1,\n 'moreLink': '/software/jira/service-desk',\n 'productGroup': 'jira-servicedesk',\n 'editionName': 'cloud'\n },\n 'jira-core.ondemand': {\n 'productLongDescription': {\n 'default': 'Simplify projects, from marketing campaigns, HR onboarding, to purchasing approvals and legal document reviews.'\n },\n 'images': {\n 'xxx': '/sc-shared/img/productLogos/Jira_Core-blue.svg',\n 'xx': '/sc-shared/img/productLogos/Jira_Core-blue.svg'\n },\n 'listOrder': 2,\n 'moreLink': '/software/jira/core',\n 'productGroup': 'jira-core',\n 'editionName': 'cloud'\n },\n // Deprecated product left behind to support existing Hipchat (Server) accounts (renew/upgrade pages), and to support the old Hipchat url (to redirect)\n 'com.atlassian.hipchat.server': {\n 'productLongDescription': {\n 'default': 'Hipchat is a hosted private chat service for your company and team. Share ideas and files in persistent group chat rooms, video chats, and more. Get your team off AIM, Google Talk, and Skype – Hipchat is built for business.'\n },\n 'productTagLine': {\n 'default': 'Chat and share'\n },\n 'images': {\n 'xxx' : '/sc-shared/img/productLogos/Hipchat-blue.svg',\n 'xx' : '/sc-shared/img/productLogos/Hipchat-blue.svg'\n },\n 'url': 'product/com.atlassian.hipchat.server',\n 'productName': 'Hipchat',\n 'editionName': 'server'\n }\n };\n }\n\n updateProductDescriptions() {\n // stubbed\n }\n\n}\n","export default function(options) {\n const defaults = {\n productTagLine: {\n 'default': null\n },\n productLongDescription: {\n 'default': null\n },\n marketplace: false,\n listOrder: 99,\n eula: null,\n moreLink: null,\n universityParent: null,\n recommendedProducts: [],\n images: {\n xxx: null,\n xx: null\n },\n onDemand: {\n available: false,\n key: null,\n crossSell: null\n }\n };\n\n return Object.assign(this, defaults, options);\n}\n","import _ from 'underscore';\nimport AtlStorage from './atl-storage';\nimport ProductConstants from './hamlet-product-constants';\nimport ProductContentDataModel from './hamlet-product-content-data-model';\n\nexport default class ProductContentData {\n storage: AtlStorage;\n stored: any;\n productConstants: ProductConstants;\n products: any;\n\n constructor() {\n this.storage = new AtlStorage();\n this.stored = this.storage.local.get('common.constants') || {};\n this.productConstants = new ProductConstants();\n\n this.products = { ...this.stored };\n _.each(this.productConstants.products, (data, key) => {\n this.products[key] = new ProductContentDataModel(data);\n });\n }\n\n has(productKey: string) {\n return !!this.products[productKey];\n }\n\n get(productKey: string) {\n return this.products[productKey];\n }\n\n create(product) {\n if (_.has(product, 'productKey')) {\n return this.add(product.productKey, this.createFromHamletApi(product));\n } else if (_.has(product, 'pluginKey')) {\n this.add(product.pluginKey + '.ondemand', this.createFromMarketplaceApi(product));\n return this.add(product.pluginKey, this.createFromMarketplaceApi(product));\n }\n }\n\n /*\n * Create a new entry based on a Product Object from the Hamlet API\n * If the product is a marketplace product, will use the productDescription (name)\n * and productKey to create a generic plugin entry. Will not contain a meaningful\n * description of the plugin :(\n * If it is not a marketplace plugin (highly unlikely), it will add an empty model\n */\n createFromHamletApi(product) {\n if (product.productType === 'ADDON' || product.productType === 'HOSTED_ADDON') {\n return {\n productTagLine: {\n 'default': product.productDescription\n },\n productLongDescription: {\n 'default': product.productDescription\n },\n marketplace: true,\n listOrder: 99,\n images: {\n xxx: '/sc-shared/img/mpac-icon.png',\n xx: 'https://marketplace.atlassian.com/plugins/' + product.productKey + '/icon'\n },\n moreLink: 'https://marketplace.atlassian.com/plugins/' + product.productKey,\n onDemand: {\n available: false,\n key: product.productKey + '.ondemand'\n }\n };\n }\n return {};\n }\n\n /*\n * Create a new entry based on a Plugin Object from the MPAC API. Will contain a\n * verbose description, potentially a populated OnDemand object with/without cross-sell\n * text and/or a eula.\n */\n createFromMarketplaceApi(plugin) {\n\n var content = {\n productTagLine: {\n 'default': plugin.name\n },\n productLongDescription: {\n 'default': plugin.summary\n },\n marketplace: true,\n listOrder: 99,\n images: {\n xxx: '/sc-shared/img/mpac-icon.png',\n xx: 'https://marketplace.atlassian.com/plugins/' + plugin.pluginKey + '/icon'\n },\n moreLink: 'https://marketplace.atlassian.com/plugins/' + plugin.pluginKey,\n onDemand: {\n available: false,\n key: null\n }\n };\n\n // Check for a EULA\n if (_.has(plugin, 'version') && _.has(plugin.version, 'links')) {\n var eula = _.where(plugin.version.links, { 'rel': 'eula' });\n if (eula.length > 0) {\n content.eula = eula[0].href;\n }\n }\n\n // Check for OnDemand deployment\n if (_.isObject(plugin.deployment) &&\n plugin.deployment.onDemand &&\n _.isObject(plugin.version) &&\n _.isObject(plugin.version.marketplaceType) &&\n _.isString(plugin.version.marketplaceType.type)) {\n\n if (plugin.version.marketplaceType.type === 'Paid via Atlassian') {\n content.onDemand = {\n available: true,\n key: plugin.pluginKey + '.ondemand'\n };\n } else if (plugin.version.marketplaceType.type === 'Free') {\n content.onDemand = {\n available: false,\n crossSell: 'This add-on is free and pre-installed on your Cloud instance.',\n key: null\n };\n } else if (plugin.version.marketplaceType.type === 'Paid via Vendor') {\n content.onDemand = {\n available: false,\n crossSell: 'This add-on is pre-installed on your Cloud instance. Contact the vendor for a license.',\n key: null\n };\n }\n }\n\n return content;\n }\n\n /*\n * Provided a productKey and a contentData object, add a new entry to the list\n * and update the localStorage\n */\n add(productKey, data) {\n this.products[productKey] = new ProductContentDataModel(data);\n this.storage.local.set('common.constants', this.products);\n return this.products[productKey];\n }\n\n}\n","import _ from 'underscore';\nimport axios from 'axios';\nimport AtlStorage from './atl-storage';\nimport HamletProductModel from './hamlet-product-model';\nimport ProductContentData from './hamlet-product-content-data';\nimport { hamletApi } from '../../common/hamlet/hamlet-api';\n\n\n\nexport default class HamletProducts {\n products: any[];\n options: any[];\n storage: AtlStorage;\n productContentData: ProductContentData;\n hamletProductsSessionKey: string;\n hamletProductsClearReasonSessionKey: string;\n\n constructor() {\n this.products = [];\n this.options = [];\n this.storage = new AtlStorage();\n this.productContentData = new ProductContentData();\n\n this.hamletProductsSessionKey = 'hamlet.api.products';\n this.hamletProductsClearReasonSessionKey = 'hamlet.api.products.clear.reason';\n\n const lastProductsClearReason = this.storage.session.get(this.hamletProductsClearReasonSessionKey) || '';\n const currentProductsClearReason = 'PUR-8984';\n\n let stored = this.storage.session.get(this.hamletProductsSessionKey) || [];\n if (lastProductsClearReason !== currentProductsClearReason) {\n this.storage.session.remove(this.hamletProductsSessionKey);\n this.storage.session.set(this.hamletProductsClearReasonSessionKey, currentProductsClearReason);\n stored = [];\n }\n\n _.each(stored, (product) => {\n if (product.orderableItems.length > 0) {\n this.addProduct(product);\n }\n });\n\n }\n\n /*\n * Query Hamlet for the given products/licenseTypes. If the given products already\n * exist locally, then resolve with those products. Otherwise, hit the API, and\n * store the results in our local cache\n */\n queryProducts(providedOptions: { products: string[]; licenseTypes: string[]; monthsValid: number; }) {\n const options = {\n products: [],\n licenseTypes: [ 'commercial' ],\n ...providedOptions,\n };\n\n let params = {\n licenseType: options.licenseTypes,\n productKey: [],\n requestingApplication: 'WAC'\n };\n\n let cached = [];\n\n if (_.has(options, 'monthsValid')) {\n params.monthsValid = [ options.monthsValid ];\n }\n\n /*\n * Loop through the provided productKeys and see which ones we have in the\n * cache already. Create a list for each\n */\n _.each(_.uniq(options.products), productKey => {\n\n let product = this.findByKey(productKey);\n\n if (!(product && product.hasTheseLicenses(options.licenseTypes))) {\n params.productKey.push(productKey);\n } else {\n cached.push(product);\n }\n });\n\n /*\n * If all the products are already in the cache, return the product\n * list from the cache\n *\n * Else\n * Hit the Hamlet API for the products not already cached. Concat the cached\n * ones we already had to the results\n */\n if (params.productKey.length === 0) {\n return Promise.resolve({\n products: cached\n });\n } else {\n\n const qstring = this.createQueryStringParamsForHamlet(params);\n const url = `${hamletApi.getHamletPath()}/1.0/public/pricing/query?${qstring}`;\n\n return axios.get(url)\n .then( result => {\n\n _.each(result.data.products, (product) => {\n cached.push(this.addProduct(product));\n });\n\n return Promise.resolve({\n products: cached\n });\n })\n .catch( e => {\n return Promise.reject(e);\n });\n }\n }\n\n createQueryStringParamsForHamlet(params) {\n let qStringParams = {};\n let qStringBuilder = [];\n\n _.each(params, function (value, key) {\n if (Array.isArray(value)) {\n qStringParams[key] = _.map(value, function (item) {\n return key + '=' + item;\n });\n } else {\n qStringParams[key] = [key + '=' + value];\n }\n });\n\n _.each(qStringParams, (item) => {\n qStringBuilder.push(item);\n });\n\n return _.flatten(qStringBuilder).join('&');\n }\n\n findByKey(key: string) {\n return _.where (this.products, { productKey: key })[0];\n }\n\n /*\n * Add a new product to the list. If the product already exists in the list, check each\n * orderable to make sure all orderable items are accounted for. Once done, save to\n * local storage for later retrieval to prevent redundant API calls\n */\n addProduct(product) {\n\n const existing = this.findByKey(product.productKey);\n if (!existing) {\n let p = new HamletProductModel(product, this.productContentData);\n this.products.push(p);\n } else {\n for (var i=0,l=product.orderableItems.length; i {\n\n if (_.keys(urlProducts).length > 0) {\n urlProducts = _.omit(urlProducts, deprecatedProductKeys);\n\n _.each(urlProducts, (unitCount, productKey) => {\n\n const product = this.hamletProducts.findByKey(productKey);\n let orderable = null;\n\n if (product) {\n if (product.parentKey === 'atlassian.ondemand' || product.productType === 'HOSTED_ADDON' || unitCount !== 0) {\n orderable = _.where(product.orderableItems, { unitCount: unitCount })[0];\n }\n if (!orderable) {\n orderable = product.monthly.length > 0 ? product.monthly[0] : product.orderableItems[0];\n }\n }\n\n if (product && orderable) {\n const tier = {\n ...orderable,\n amount: orderable.renewalAmount,\n eula: product.contentData.eula,\n mpac: (product.marketplaceAddon === true)\n };\n this.items.push(tier);\n }\n });\n\n }\n\n return Promise.resolve(this.items);\n })\n .catch( e => {\n console.error(e);\n return Promise.reject();\n });\n }\n\n getItems() {\n return this.items;\n }\n\n setItems(itemList: any[]) {\n this.items = itemList;\n }\n\n getUtmSource() {\n return this.utmSource;\n }\n\n getAllURLProducts(jiraKey: string, confluenceKey: string) {\n\n let products = {};\n const DEFAULT_PRODUCT_COUNT = '10';\n\n let queryProducts = AtlUrl.getParameter('product');\n if (!queryProducts) {\n queryProducts = AtlUrl.getParameter('products') || '';\n }\n queryProducts = queryProducts.split(',');\n\n // if JSM in-url, change to JSD productKey\n queryProducts = queryProducts.map(function(product) {\n return product === 'jira-service-management.ondemand'\n ? 'jira-servicedesk.ondemand' : product;\n });\n\n let unitCounts = AtlUrl.getParameter('unitCount') || DEFAULT_PRODUCT_COUNT;\n unitCounts = unitCounts.split(',').map( count => parseInt(count, 10) );\n\n for (let i = 0; i < queryProducts.length; i++) {\n let key = queryProducts[i];\n let count = 10;\n\n if (unitCounts.length === 1) {\n if (key === jiraKey || key === confluenceKey) {\n count = unitCounts[0];\n }\n } else if (unitCounts.length === queryProducts.length) {\n count = unitCounts[i];\n }\n\n if (key) {\n products[key] = count;\n }\n }\n\n return products;\n }\n\n /*\n * Whether you have any MARKETPLACE addons in your cart\n */\n MPACAddons() {\n return _.where(this.items, { mpac: true }).length > 0;\n }\n\n /*\n * A list of products in your basket that have role=based pricing\n */\n roleBasedProducts() {\n return _.where(this.items, { unitBlockSize: 1 });\n }\n\n /*\n * Whether you have any addons in your cart\n */\n addons() {\n return _.where(this.items, { productType: 'HOSTED_ADDON' }).length > 0;\n }\n\n /*\n * Which addons in your cart\n */\n getAddons() {\n return _.where(this.items, { productType: 'HOSTED_ADDON' });\n }\n\n /*\n * Which core products in your cart\n */\n getCoreProducts() {\n return _.filter(this.items, function(item) {\n return item.productType !== 'HOSTED_ADDON';\n });\n }\n\n /**\n * Returns array of deprecated products attempted to be added to the cart\n * @returns {Array}\n */\n getDeprecatedProductsInCart() {\n return this.deprecatedItems;\n }\n\n /*\n * Returns an array of product keys for all items in the cart\n */\n productsInCart() {\n return _.reduce(this.items, function (memo, item) {\n memo.push(item.productKey);\n return memo;\n }, []);\n }\n\n /*\n * Get a list of cart items that have third-part eulas\n */\n getEulas() {\n return _.filter(this.items, function (item) {\n return _.has(item, 'eula') && !!item.eula;\n });\n }\n\n /*\n * Wipe out everything in the ondemand form fields and in local storage. Complete data reset\n * for completed and successful orders after they're done.\n */\n clearFields() {\n this.storage.session.clear();\n this.storage.cookie.remove('ONDEMANDCART');\n this.items = [];\n this.utmSource = null;\n }\n\n}\n","import CartService from './cart-service';\nimport { hamletApi } from '../../common/hamlet/hamlet-api';\nimport { hamletUser } from '../../common/hamlet/hamlet-user';\n\nexport default class Hamlet {\n identifiedProducts: any[];\n cartService: CartService;\n\n constructor() {\n this.identifiedProducts = [];\n this.cartService = new CartService();\n }\n\n init(cachingEnabled: boolean) {\n const initPromises = [this.getUser(cachingEnabled)];\n\n return Promise.all(initPromises)\n .then((response) => {\n const user = response[0];\n return Promise.resolve(user);\n })\n .catch(() => {\n // @todo: refactor main.js handle a reject state\n return Promise.reject();\n });\n }\n\n getUser(cachingEnabled: boolean, enableAisAvailableProducts = false) {\n return hamletUser.initUser(cachingEnabled, enableAisAvailableProducts);\n }\n\n getUserXsrfToken(cb) {\n return hamletUser.retrieveXsrfToken()\n .then(() => {\n cb();\n })\n .catch(() => {\n cb();\n });\n }\n\n isLoggedIn() {\n return hamletUser.getToken() && hamletUser.isLoggedIn();\n }\n\n getSites() {\n return hamletUser.getSites();\n }\n\n getSitesByProduct(availableProducts) {\n return hamletUser.getSitesByProduct(availableProducts);\n }\n\n checkExtendedTrialAvailability(migrationSourceUuid, productKey, cloudSiteIds) {\n return hamletUser.checkExtendedTrialAvailability(migrationSourceUuid, productKey, cloudSiteIds);\n }\n\n getExtendedTrialAvailability() {\n return hamletUser.getExtendedTrialAvailability();\n }\n\n getExtendedTrialAvailableSites() {\n const result = this.getExtendedTrialAvailability();\n if (!result || !result.cloudCreation.available) {\n return [];\n }\n return Object.keys(result.sites).filter(cloudId => result.sites[cloudId].available);\n }\n\n validateEmail(email: string) {\n\n const options = {\n url: `/1.0/public/aid/exists/${email}`\n };\n\n return hamletApi.post(options)\n .then((response) => {\n return Promise.resolve(response.data);\n })\n .catch((e) => {\n return Promise.reject(e);\n });\n }\n\n mapHamletData(formData) {\n\n return {\n \"contactDetails\": {\n \"email\": formData.email,\n \"firstName\": formData.firstName,\n \"lastName\": formData.lastName\n },\n \"organisationDetails\": null,\n \"onDemandAccountDetails\": {\n \"accountName\": formData.accountName,\n \"adminUsername\": \"admin\",\n \"adminPassword\": formData.aodPass,\n \"productKeys\": formData.productKeys,\n \"timeZone\": null\n },\n \"termsOfServiceAccepted\": true,\n \"creditCardDetails\": null\n };\n }\n\n identifyProducts() {\n return this.cartService.init()\n .then(products => {\n this.setIdentifiedProducts(products);\n return Promise.resolve(products);\n })\n .catch(() => Promise.reject());\n }\n\n getIdentifiedProducts() {\n return this.identifiedProducts;\n }\n\n setIdentifiedProducts(products) {\n this.identifiedProducts = products;\n }\n\n getCartServiceItems() {\n return this.cartService.getItems();\n }\n\n setCartServiceItems(items) {\n this.cartService.setItems(items);\n }\n\n hasAddons() {\n return this.cartService.addons();\n }\n\n getAddons() {\n return this.cartService.getAddons();\n }\n\n getCoreProducts() {\n return this.cartService.getCoreProducts();\n }\n\n getEulas() {\n return this.cartService.getEulas();\n }\n\n}\n","import _ from \"underscore\";\nimport Environment from \"../../common/environment\";\nimport jstz from \"jstimezonedetect\";\nimport { ProductKey } from '@atlassiansox/bxpkit-core';\nimport expSignupContextBuilder from \"@atlassiansox/signup-context-builder\";\nimport { hamletApi } from \"../../common/hamlet/hamlet-api\";\nimport storage from \"../../utils/storage\";\n\nexport default class Cofs {\n constructor(\n paramsBaseDomain,\n paramsBaseCofsPath,\n hamlet,\n jQuery,\n experiments,\n environment = null\n ) {\n const ACCOUNT_NAME_MAX = 50;\n const ACCOUNT_NAME_MIN = 3;\n // COFS /cloud api requires that the signup context has a maximum size\n // see: https://cofs.prod.public.atl-paas.net/api.html#cloud_post\n const SIGNUP_CONTEXT_MAX_LENGTH = 8192;\n new expSignupContextBuilder();\n const RESEND_DATA = 'r.e.d';\n\n return {\n init: function () {\n // Nothing used here yet\n },\n\n /**\n * Test accounts/tenants are targeted by a specific environment and account name pattern.\n * @see https://extranet.atlassian.com/jira/browse/WCF-384\n *\n * @param {String} accountName\n * @return {Boolean}\n */\n isTestTenant(accountName) {\n return (\n this.isTestTenantByAccountName(accountName) &&\n this.isTestTenantByEnvironment()\n );\n },\n\n /**\n * Test accounts/tenants should only be targeted in the \"staging\" environment.\n * @see https://extranet.atlassian.com/jira/browse/WCF-384\n *\n * @param {String} environment\n * @return {boolean}\n */\n isTestTenantByEnvironment() {\n return environment === Environment.staging();\n },\n\n /**\n * Test accounts/tenants are identified by a specific account name pattern.\n * @see https://extranet.atlassian.com/jira/browse/WCF-384\n *\n * @param {String} accountName\n * @return {boolean}\n */\n isTestTenantByAccountName(accountName) {\n const TEST_TENANT_PATTERN = /^atl-vertigo--(((?:jira|j|rolex|stg)+-jira-branch-[^-]+--)|(conf-(conf|stg)-proxy-\\w+--[\\w-]+)).*$/;\n return TEST_TENANT_PATTERN.test(accountName);\n },\n\n validateCNAS: function (name) {\n const accountName = name.toLowerCase();\n const basePath = hamletApi.getCnasPath();\n const options = {\n url: `${basePath}/shopping-cart/name-availability/queries`,\n method: \"POST\",\n headers: {\n ContentType: \"application/json\"\n },\n data: {\n cloudName: accountName\n }\n };\n\n return hamletApi\n .request(options)\n .then(response => {\n if (response.data && response.data.availability) {\n if (response.data.availability === \"AVAILABLE\") {\n return Promise.resolve({ available: true });\n }\n }\n return Promise.resolve({ available: false });\n })\n .catch(() => {\n return this.validateCofsAccountName(accountName);\n });\n },\n\n validateCofsAccountName: function (name) {\n const accountName = name.toLowerCase();\n const basePath = hamletApi.getCofsPath();\n const options = {\n url: `${basePath}/nameAvailability`,\n method: \"POST\",\n headers: {\n ContentType: \"application/json\"\n },\n data: {\n name: accountName\n }\n };\n\n return hamletApi\n .request(options)\n .then(response => {\n if (response.data && response.data.success) {\n return Promise.resolve({ available: true });\n }\n return Promise.resolve({ available: false });\n })\n .catch(() => {\n return Promise.resolve({ available: false });\n });\n },\n\n validateCoupon: function (coupon) {\n const options = {\n url: \"/validateCoupon\",\n method: \"POST\",\n data: {\n coupon: coupon\n }\n };\n\n const useCofsPath = true;\n let result = { success: false };\n\n return hamletApi\n .hamletRequest(options, useCofsPath)\n .then(response => {\n if (response.status === 200) {\n result.success = true;\n result.eligibleProducts = response.data.eligibleProducts;\n\n return Promise.resolve(result);\n }\n return Promise.reject(result);\n })\n .catch(() => {\n return Promise.reject(result);\n });\n },\n\n createCloud: function (cofsData, submitThroughBxp = false, isLoggedIn = false) {\n const options = {\n url: \"/cloud\",\n method: \"POST\",\n data: cofsData,\n authenticated: true,\n headers: {},\n };\n\n const useCofsPath = true;\n const defaultError = {\n createRequest: \"Cloud request error\"\n };\n\n if (submitThroughBxp) {\n options.url = `${\n isLoggedIn ? Environment.getAPIPrivateURL() : ''\n }/cloud/signup${\n isLoggedIn ? '' : 'Anon'\n }`;\n\n const atlCookies = {\n _ga: storage.getCookie('_ga') || '',\n seg_xid: storage.getLocalStorage('seg_xid') || '',\n __atl_path: storage.getCookie('__atl_path') || '',\n ajs_anonymous_id: storage.getCookie('ajs_anonymous_id') || '',\n };\n\n options.headers['atl-cookies'] = JSON.stringify(atlCookies);\n\n return hamletApi.bxpRequest(options).then(response => {\n if (response.data && response.data.progressUri) {\n return Promise.resolve(response.data);\n }\n return Promise.reject(defaultError);\n })\n .catch(() => {\n return;\n });\n }\n // Bxp Express does not need this header\n options.headers[\"X-ATL-SOURCE\"] = window.location.href;\n\n return hamletApi\n .hamletRequest(options, useCofsPath)\n .then(response => {\n if (response.data && response.data.progressUri) {\n return Promise.resolve(response.data);\n }\n\n return Promise.reject(defaultError);\n })\n .catch(() => {\n return Promise.reject(defaultError);\n });\n },\n\n checkCloudNameMin: function (value) {\n return value.length >= ACCOUNT_NAME_MIN;\n },\n\n checkCloudNameMax: function (value) {\n return value.length < ACCOUNT_NAME_MAX;\n },\n\n isValidCloudNamePattern: function (value) {\n return (\n value.length >= ACCOUNT_NAME_MIN &&\n /^[a-z0-9]+[a-z0-9-]+[a-z0-9]+$/.test(value)\n );\n },\n\n isCloudIdAnnual: function (cloudId, userId) {\n const options = {\n url: \"/cloud\",\n method: \"GET\",\n authenticated: true\n };\n const defaultError = {\n validationRequest: \"isCloudIdAnnual request error\"\n };\n\n options.url += `/isCloudIdAnnual/${cloudId}?user_id=${userId}`;\n\n return hamletApi\n .bxpRequest(options)\n .then(response => {\n if (\n response.data &&\n typeof response.data.isCloudIdAnnual === \"boolean\"\n ) {\n return Promise.resolve(response.data.isCloudIdAnnual);\n }\n return Promise.reject(defaultError);\n })\n .catch(() => {\n return Promise.reject(defaultError);\n });\n },\n\n mapValidateData: function (formData) {\n let result = {\n contactDetails: {\n email: formData.email,\n firstName: formData.firstName,\n lastName: formData.lastName\n },\n organisationDetails: null,\n onDemandAccountDetails: {\n accountName: formData.accountName,\n adminUsername: \"admin\",\n adminPassword: formData.aodPass,\n productKeys: formData.productKeys,\n timeZone: jstz.determine().name()\n },\n termsOfServiceAccepted: true,\n creditCardDetails: null\n };\n\n return result;\n },\n\n mapCofsData: function (formData, features) {\n let productData = [];\n _.each(formData.productKeys, function (productKey) {\n let thisProduct = {\n product: productKey,\n accountName: formData.accountName\n };\n\n if (formData.edition) {\n thisProduct.edition = formData.edition;\n }\n\n if (formData.migrationSourceUuid) {\n thisProduct.migrationSourceUuid = formData.migrationSourceUuid;\n }\n\n productData.push(thisProduct);\n });\n\n let result = {\n adminUsername: \"admin\",\n adminPassword: formData.aodPass,\n cloudName: formData.accountName,\n email: formData.email,\n timezone: jstz.determine().name(),\n firstName: formData.firstName,\n lastName: formData.lastName,\n products: productData\n };\n\n // Extract templateid and optimizely cohorts for signupContext, if available\n let signupContext = {};\n // Check for templateid param to pass in to provisioning\n if (\n formData.templateId &&\n this.isValidTemplateId(formData.templateId)\n ) {\n signupContext.templateId = formData.templateId;\n\n if (!formData.productKeys.includes(ProductKey.CONFLUENCE)) {\n if (!result.advancedSettings) {\n result.advancedSettings = {};\n }\n if (!result.advancedSettings.additionalProvisioningData) {\n result.advancedSettings.additionalProvisioningData = {};\n }\n result.advancedSettings.additionalProvisioningData.hideUserSegmentation = true;\n }\n }\n\n if (features.enableAutogenSiteName) {\n signupContext.autogenSiteName = 1;\n result.cloudName = null;\n }\n\n if (features.enableAutogenSiteName && !features.useSocialLogin) {\n signupContext.pagePath = 'rename/site';\n }\n\n // Confluence account set up flow\n if (features.enableConfluenceAccountSetup) {\n signupContext.pagePath = 'account/setup';\n }\n\n if (features.allowResendVerificationEmail && signupContext.pagePath) {\n var resendEmailData = {};\n resendEmailData['pagePath'] = signupContext.pagePath;\n sessionStorage.setItem(RESEND_DATA, JSON.stringify(resendEmailData));\n }\n\n if (Object.entries(signupContext).length > 0) {\n // Enforce COFS /cloud API restriction on signupContext size\n // see: https://cofs.prod.public.atl-paas.net/api.html#cloud_post\n let signupContextString = JSON.stringify(signupContext);\n if (signupContextString.length <= SIGNUP_CONTEXT_MAX_LENGTH) {\n result.signupContext = signupContextString;\n } else {\n // Please log to let us know when signupContext field is empty because it was too long\n // Waiting on a front end logger. https://hello.atlassian.net/browse/WPI-344\n // Backlog project to add log event when logger is available: https://hello.atlassian.net/browse/NUX-123\n }\n }\n\n // Coupon will be added to formdata if available\n if (formData.coupon) {\n result.coupon = formData.coupon;\n }\n\n // Consent will be added to formdata if available\n if (formData.consent) {\n result.consent = formData.consent;\n }\n\n // Data Region and Initial Product URL for Opsgenie Signup will be added if available\n if (formData.dataRegion || formData.initialProductURL) {\n const { dataRegion, initialProductURL } = formData;\n if (!result.advancedSettings) {\n result.advancedSettings = {};\n }\n if (!result.advancedSettings.additionalProvisioningData) {\n result.advancedSettings.additionalProvisioningData = {};\n }\n if (dataRegion) {\n result.advancedSettings.additionalProvisioningData.dataRegion = dataRegion;\n }\n if (initialProductURL) {\n result.advancedSettings.initialProductURL = initialProductURL;\n }\n }\n\n // Statuspage Signups\n const isStatusPageSignup = productData.some(\n ({ product }) => product === 'statuspage',\n );\n\n if (isStatusPageSignup) {\n if (!result.advancedSettings) {\n result.advancedSettings = {};\n }\n if (!result.advancedSettings.additionalProvisioningData) {\n result.advancedSettings.additionalProvisioningData = {};\n }\n result.advancedSettings.initialProductURL = (\n Environment.isStaging()\n ? 'manage.statuspagestaging.com'\n : 'manage.statuspage.io'\n );\n result.advancedSettings.additionalProvisioningData.signupLocation = 'WAC';\n result.advancedSettings.additionalProvisioningData.spProduct = 'public';\n }\n\n // Add Captcha Token\n if (formData.responseToken && features.submitThroughBxp) {\n result.gRecaptchaResponse = formData.responseToken;\n }\n\n // map experiment data to experiment object for cofs create endpoint\n if (formData.experimentKey || formData.experimentAttribute) {\n result.experiment = {};\n\n if (formData.experimentKey) {\n result.experiment.experimentKey = formData.experimentKey;\n }\n if (formData.experimentAttribute) {\n result.experiment.experimentAttribute =\n formData.experimentAttribute;\n }\n }\n\n // @see https://extranet.atlassian.com/jira/browse/WCF-384\n if (this.isTestTenant(formData.accountName)) {\n result.testingPurposes = true;\n }\n\n return result;\n },\n\n isValidTemplateId: function (templateString) {\n const validTestPattern = /^([\\\\.:a-zA-Z0-9_-]+)$/;\n return templateString && validTestPattern.test(templateString);\n },\n\n /**\n * Progress Uri structure includes request id needed for confirmation page status check\n * Object data: Progress json data\n * String progressUri: e.g. /cloud//status/\n */\n getRequestId: function (progressUri) {\n const pattern = new RegExp(/cloud\\/[\\w-]+\\/status\\/([\\w-]+)$/);\n const matches = pattern.exec(progressUri);\n\n return matches ? matches[1] : \"\";\n }\n };\n }\n}\n","import * as $ from \"jquery\";\nimport tracking from '../../utils/tracking';\nimport storage from \"../../utils/storage\";\n\nexport default class CloudGrowthTracker {\n VERSION = 'prd';\n\n sendTrackVisitCounter(cookieName: string) {\n let visitCounter = storage.getCookie(cookieName) || 0;\n\n if (visitCounter) {\n visitCounter = parseInt(visitCounter, 10);\n }\n\n if (visitCounter < 0) {\n visitCounter = 0;\n }\n\n visitCounter++;\n storage.setCookie(cookieName, visitCounter);\n\n this.sendTrack('signupPageVisitCount', { visitCount: visitCounter} );\n }\n\n sendTrackSubmitCounter(cookieName: string) {\n let submitCounter = storage.getCookie(cookieName) || 0;\n\n if (submitCounter) {\n submitCounter = parseInt(submitCounter, 10);\n }\n\n if (submitCounter < 0) {\n submitCounter = 0;\n }\n\n submitCounter++;\n storage.setCookie(cookieName, submitCounter);\n\n this.sendTrack('repeat_submit', { 'submitCount': submitCounter});\n }\n\n sendTrackSubmitSuccess(cookieName: string) {\n\n let counter = storage.getCookie(cookieName) || 0;\n\n if (counter) {\n counter = parseInt(counter, 10);\n }\n\n if (counter < 0) {\n counter = 0;\n }\n\n counter++;\n storage.setCookie(cookieName, counter);\n\n this.sendTrack('form_submit_signup_success', { 'submitCount': counter});\n }\n\n sendTrack(eventName: string, props: any) {\n // standardize event name\n const standardEventName = `grow.expevt.prd.${eventName}`;\n\n this.sendToGAS(standardEventName, props);\n this.sendToSegmentJS(standardEventName, props);\n }\n\n sendToSegmentJS(e_name: string, props: any) {\n let data = {\n 'eventAction': e_name,\n 'product': 'wac',\n 'page_path': window.location.pathname,\n 'page_url': window.location.href,\n 'referrer': document.referrer,\n 'version': this.VERSION\n };\n\n if (props) {\n Object.assign(data, props);\n }\n\n try {\n tracking.trackEvent(e_name, data);\n } catch(e) {\n this.sendToGAS(`ERR: ${e.toString()}` );\n }\n }\n\n sendToSegmentHTTP(e_name: string, props: any) {\n const anonId = decodeURIComponent(storage.getCookie('ajs_user_id')).replace(/\"/g, '');\n\n let data = {\n 'anonymousId': anonId,\n 'event': e_name,\n 'timestamp': new Date(),\n 'writeKey': 'kiv6wyh2nw',\n 'properties': {\n 'product': 'wac',\n 'page_path': window.location.pathname,\n 'page_url': window.location.href,\n 'referrer': document.referrer,\n 'version': this.VERSION\n }\n };\n\n if (props) {\n Object.assign(data.properties, props);\n }\n\n $.ajax({\n type: 'POST',\n url: 'https://api.segment.io/v1/track',\n data: JSON.stringify(data),\n contentType: 'application/json'\n })\n .fail( () => {\n this.sendToGAS('segmentHTTP_fail');\n });\n }\n\n sendToGAS() {\n // Noop - GasV2 events are deprecated; 'https://analytics.atlassian.com/analytics/event' endpoint throws 422.\n }\n}\n","export default class Experiments {\n\n constructor(imktStorageUtils) {\n const CUSTOM_EXPERIMENTS_ITEM_KEY = \"custom.experiment.opts\";\n let storageUtils = imktStorageUtils;\n\n return {\n\n experimentKey: undefined,\n experimentAttribute: undefined,\n simplifiedAdminPassword: undefined,\n bypassEmailCheck: undefined,\n blockRedirect: undefined,\n\n init: function() {\n // nothing at the moment\n },\n\n insertExperimentProperties: function (data) {\n\n if (this.experimentKey) {\n Object.assign(data, {experimentKey: this.experimentKey});\n }\n\n if (this.experimentAttribute) {\n Object.assign(data, {experimentAttribute: this.experimentAttribute});\n }\n\n if (this.simplifiedAdminPassword) {\n Object.assign(data.onDemandAccountDetails, {adminPassword: this.simplifiedAdminPassword});\n }\n },\n\n getExperimentsNotificationOpts: function(accountName, productKeys) {\n var opts = {\n onDemandAccountName: accountName,\n onDemandProductKeys: productKeys,\n customExperimentOpts: this.getExperimentDataStored()\n };\n\n return opts;\n },\n\n getExperimentDataStored: function() {\n let data = storageUtils.getLocalStorage(CUSTOM_EXPERIMENTS_ITEM_KEY);\n\n if (data) {\n return JSON.parse(data);\n }\n return null;\n },\n\n clearExperimentDataStored: function() {\n storageUtils.removeLocalStorage(CUSTOM_EXPERIMENTS_ITEM_KEY);\n },\n\n enableEmailCheckBypass: function() {\n // PUR-8609: for users not logged in, bypass check email route\n this.bypassEmailCheck = true;\n },\n\n enableSimplifiedAdminPassword: function() {\n // PUR-6032: generate random password to prefill form for validation purposes\n this.simplifiedAdminPassword = Math.random().toString(36);\n },\n\n enableBlockRedirect: function() {\n this.blockRedirect = true;\n },\n\n setExperimentKey: function (key) {\n this.experimentKey = key;\n },\n\n setExperimentAttribute: function (attr) {\n this.experimentAttribute = attr;\n }\n\n };\n }\n}\n","export default class PasswordStrength {\n\n constructor() {\n const zxcvbnUrl = '//common-admin-cdn.atlassian.com/zxcvbn/f2a8cda/zxcvbn.js';\n\n return {\n init: function() {\n // @ts-ignore\n if (typeof window.zxcvbn === 'undefined') {\n // load zxcvbn script\n let zxcvbnScript = document.createElement('script');\n zxcvbnScript.type = 'text/javascript';\n zxcvbnScript.charset = 'utf-8';\n zxcvbnScript.async = true;\n zxcvbnScript.src = zxcvbnUrl;\n document.getElementsByTagName(\"head\")[0].appendChild(zxcvbnScript);\n }\n },\n\n evaluatePasswordStrength: function(val) {\n return typeof window.zxcvbn !== 'undefined' ? window.zxcvbn(val).score : null;\n },\n\n };\n }\n}\n","import _ from 'underscore';\nimport Environment from \"../../common/environment\";\nimport Tracking from '../../common/tracking';\nimport OriginTracing from '@atlassiansox/origin-tracing';\nimport tracking from '../../utils/tracking';\n\nexport default class SocialLogin {\n constructor(\n baseDomain: string,\n baseIdDomain: any,\n hamlet: { isLoggedIn: () => any; getSites: () => any[]; getExtendedTrialAvailableSites: () => any; },\n jQuery: JQueryStatic,\n imktUtils: { storage: { getCookie: (arg0: string) => string; }; },\n localeParam: any,\n urlRenameSitePath: any\n ) {\n\n const URL_CONFIRMATION_PATH = '/ondemand/signup/confirmation';\n const URL_LOGIN_GOOGLE_PATH = '/login/initiate/google';\n const URL_LOGIN_MICROSOFT_PATH = '/login/initiate/microsoft';\n const URL_RENAME_SITE_PATH = urlRenameSitePath;\n const URL_SIGNUP_SOCIAL_LOGIN_PATH = '/try/cloud/signup-social-login';\n const URL_TRY_CLOUD_SIGNUP_PATH = '/try/cloud/signup';\n const URL_IDENTITY_LOGOUT_PATH = '/logout';\n\n const SIGNUP_ATLLOGO_CONTAINER_CLASS = 'atl-logo';\n const SIGNUP_CONTENT_CONTAINER_CLASS = 'signup-content';\n const SOCIAL_LOGIN_WAIT_CONTAINER_CLASS = 'social-login-wait-banner';\n const SOCIAL_LOGIN_ERROR_CONTAINER_CLASS = 'social-login-error-display';\n const SOCIAL_LOGIN_CHECKING_WAIT_TEXT_CLASS = 'checking-wait-text';\n const SOCIAL_LOGIN_PREPARING_WAIT_TEXT_CLASS = 'preparing-wait-text';\n const SOCIAL_LOGIN_ERROR_TRYAGAIN_ID = '#try-signup-again';\n\n\n const WAC_SIGNUP_GOOGLE = 'wac-signup-google';\n const loginGoogleOrigin = new OriginTracing({ product: WAC_SIGNUP_GOOGLE });\n\n const WAC_SIGNUP_MICROSOFT = 'wac-signup-microsoft';\n const loginMicrosoftOrigin = new OriginTracing({ product: WAC_SIGNUP_MICROSOFT });\n\n const WAC_TRY_SIGNUP = 'wac-try-signup';\n const trySignupOrigin = new OriginTracing({ product: WAC_TRY_SIGNUP });\n\n const SS_SOCIAL_LOGIN_CLOUDDATA_KEY = 'w.s.l.c.d';\n\n return {\n init: function () {\n if (!this.detectSocialLoginPage()) {\n this.sessionStorageClearCloudData();\n }\n },\n\n sessionStorageSaveCloudData: function (userDetails, cloudDetails) {\n window.sessionStorage.setItem(SS_SOCIAL_LOGIN_CLOUDDATA_KEY, window.btoa(JSON.stringify({ userDetails, cloudDetails })));\n },\n\n sessionStorageGetCloudData: function () {\n const cloudData = window.sessionStorage.getItem(SS_SOCIAL_LOGIN_CLOUDDATA_KEY);\n if (cloudData) {\n try {\n return JSON.parse(window.atob(cloudData));\n } catch (e) {\n return JSON.parse(window.atob({ cloudData }));\n }\n }\n return undefined;\n },\n\n sessionStorageClearCloudData: function () {\n window.sessionStorage.removeItem(SS_SOCIAL_LOGIN_CLOUDDATA_KEY);\n },\n\n /**\n * Determine search params\n * - if the form settings have products AND/OR edition set\n * - we are going to replace the current paraems with the dialog's\n */\n determineSearchParams: function (products, edition) {\n var urlParams = new URLSearchParams(this.getCurrentSearchParam());\n\n // delete bundle\n urlParams.delete(\"bundle\");\n urlParams.set('product', products);\n\n if (edition) {\n urlParams.set('edition', edition);\n }\n return urlParams.toString();\n },\n\n /**\n * Render social login UI components:\n * - Continue with Google\n * - Sign up with email\n */\n renderSocialLogin: function ({\n enableContinueWithGoogle,\n enableContinueWithMicrosoft,\n labels,\n products,\n edition\n }) {\n const self = this;\n const searchParams = self.determineSearchParams(products, edition);\n if (enableContinueWithGoogle && enableContinueWithMicrosoft) {\n self.renderGoogleAndMicrosoftLogin(labels, searchParams);\n }\n else if (enableContinueWithGoogle) {\n self.renderGoogleLogin(labels, searchParams);\n }\n else if (enableContinueWithMicrosoft) {\n self.renderMicrosoftLogin(labels, searchParams);\n }\n },\n\n /**\n * Render Google login UI components:\n * - Continue with Google\n * - Sign up with email\n */\n renderGoogleLogin: function (labels, searchParams) {\n const self = this;\n\n const formContainer = jQuery('.imkt--cloud-signup');\n const socialHeading = formContainer.find('.heading--social-show');\n formContainer.addClass('social-login');\n\n // Hide the full signup form\n const fullForm = jQuery('.imkt--cloud-signup__form');\n fullForm.detach();\n fullForm.addClass('hidden');\n\n // Construct the new social login form from template\n const googleSignInFormTemplate = _.template(jQuery('.template--cloud-signup__form--continue-with-google').html());\n const newForm = jQuery('
');\n newForm\n .append(googleSignInFormTemplate({ labels: labels }))\n .append(fullForm)\n .insertAfter('.imkt--cloud-signup .heading--products');\n\n // Continue with Google button\n const googleSigninButton = newForm.find('#google-signup');\n googleSigninButton.prop('href', this.getContinueWithGoogleUrl(searchParams));\n googleSigninButton.click(() => {\n self.sendTrackingAnalytics(\"Clicked Google Button\", {}, false);\n tracking.trackEvent(WAC_SIGNUP_GOOGLE, loginGoogleOrigin.toAnalyticsAttributes({ hasGeneratedId: true }));\n });\n\n // Continue with email button\n const emailSigninButton = newForm.find('.btn.email-signup');\n\n // WCF-1796 we need to add more bottom margin to account for the heading\n // TO-DO add same treatment to Microsoft and both in the furture\n if (socialHeading) {\n emailSigninButton.css(\"margin-bottom\", \"20px\");\n }\n\n emailSigninButton.click(() => {\n self.sendTrackingAnalytics(\"Clicked Email Button\", {}, false);\n formContainer.addClass('form-shown');\n emailSigninButton.addClass('clicked');\n fullForm.removeClass('hidden');\n socialHeading.remove();\n });\n },\n\n\n /**\n * Render Microsoft login UI components:\n * - Continue with Microsoft\n * - Sign up with email\n */\n renderMicrosoftLogin: function (labels, searchParams) {\n const self = this;\n\n const formContainer = jQuery('.imkt--cloud-signup');\n formContainer.addClass('social-login');\n\n // Hide the full signup form\n const fullForm = jQuery('.imkt--cloud-signup__form');\n fullForm.detach();\n fullForm.addClass('hidden');\n\n // Construct the new social login form from template\n const microsoftSignInFormTemplate = _.template(jQuery('.template--cloud-signup__form--continue-with-microsoft').html());\n const newForm = jQuery('
');\n newForm\n .append(microsoftSignInFormTemplate({ labels: labels }))\n .append(fullForm)\n .insertAfter('.imkt--cloud-signup .heading--products');\n\n // Continue with Microsoft button\n this.renderMicrosoftButton(newForm, searchParams);\n\n // Continue with email button\n const emailSigninButton = newForm.find('.btn.email-signup');\n emailSigninButton.click(() => {\n self.sendTrackingAnalytics(\"Clicked Email Button\", {}, false);\n formContainer.addClass('form-shown');\n emailSigninButton.addClass('clicked');\n fullForm.removeClass('hidden');\n });\n },\n\n /**\n * Render Google and Microsoft login UI components:\n * - Continue with Google\n * - Continue with Microsoft\n * - Sign up with email\n */\n renderGoogleAndMicrosoftLogin: function (labels, searchParams) {\n const self = this;\n\n const formContainer = jQuery('.imkt--cloud-signup');\n formContainer.addClass('social-login');\n\n // Hide the full signup form\n const fullForm = jQuery('.imkt--cloud-signup__form');\n fullForm.detach();\n fullForm.addClass('hidden');\n\n // Construct the new social login form from template\n const socialSignInFormTemplate = _.template(jQuery('.template--cloud-signup__form--continue-with-google-and-microsoft').html());\n const newForm = jQuery('
');\n newForm\n .append(socialSignInFormTemplate({ labels: labels }))\n .append(fullForm)\n .insertAfter('.imkt--cloud-signup .heading--products');\n\n // Continue with Google button\n this.renderGoogleButton(newForm, searchParams);\n\n // Continue with Microsoft button\n this.renderMicrosoftButton(newForm, searchParams);\n\n // Continue with email button\n const emailSigninButton = newForm.find('.btn.email-signup');\n emailSigninButton.click(() => {\n self.sendTrackingAnalytics(\"Clicked Email Button\", {}, false);\n formContainer.addClass('form-shown');\n emailSigninButton.addClass('clicked');\n fullForm.removeClass('hidden');\n });\n },\n\n /**\n * Render Continue with Google button\n */\n renderGoogleButton: function (newForm, searchParams) {\n const self = this;\n\n // Continue with Google button\n const googleSigninButton = newForm.find('#google-signup');\n googleSigninButton.prop('href', this.getContinueWithGoogleUrl(searchParams));\n googleSigninButton.click(() => {\n self.sendTrackingAnalytics(\"Clicked Google Button\", {}, false);\n tracking.trackEvent(WAC_SIGNUP_GOOGLE, loginGoogleOrigin.toAnalyticsAttributes({ hasGeneratedId: true }));\n });\n },\n\n /**\n * Render Continue with Microsoft button\n */\n renderMicrosoftButton: function (newForm, searchParams) {\n const self = this;\n\n // Continue with Microsoft button\n const microsoftSigninButton = newForm.find('#microsoft-signup');\n microsoftSigninButton.prop('href', this.getContinueWithMicrosoftUrl(searchParams));\n microsoftSigninButton.click(() => {\n self.sendTrackingAnalytics(\"Clicked Microsoft Button\", {}, false);\n tracking.trackEvent(WAC_SIGNUP_MICROSOFT, loginMicrosoftOrigin.toAnalyticsAttributes({ hasGeneratedId: true }));\n });\n },\n\n /**\n * Determine whether the current flow is part of a social login\n */\n detectSocialLoginPage: function () {\n return (window.location.pathname.indexOf(URL_SIGNUP_SOCIAL_LOGIN_PATH) >= 0);\n },\n\n /**\n * Determine if the user is on signup-social-login page with email, firstName and lastName info\n */\n isValidSocialLoginUser: function (user) {\n const isUserLoggedIn = hamlet.isLoggedIn();\n const isValidUser = (\n this.detectSocialLoginPage() &&\n hamlet.isLoggedIn() &&\n user && user.myDetails &&\n user.myDetails.email &&\n user.myDetails.firstName &&\n user.myDetails.lastName);\n if (!isValidUser) {\n this.sendTrackingAnalytics(\"Detected Invalid User\", { isUserLoggedIn });\n }\n return isValidUser;\n },\n\n /**\n * Determine if the user is in social login flow\n */\n isSocialLogin: function (user, productKeys, newUsersOnlyRestriction, existingUserCloudData) {\n if (this.detectSocialLoginPage()) {\n this.sendTrackingAnalytics(\"Viewed Checking Page\", { productKeys });\n\n try {\n const cloudData = this.sessionStorageGetCloudData();\n if (cloudData) {\n if (cloudData.cloudDetails && cloudData.userDetails &&\n user.myDetails && cloudData.userDetails.email === user.myDetails.email) {\n // Back to this signup social login page using the same account,\n // should proceed to rename site page directly.\n this.sendTrackingAnalytics(\"Detected Back Same Account\", { cloudDetails: cloudData.cloudDetails });\n if (existingUserCloudData) {\n existingUserCloudData.cloudDetails = cloudData.cloudDetails;\n }\n return true;\n } else {\n // Back to this signup social login page using a different account,\n // should proceed to N2E signup form.\n this.sendTrackingAnalytics(\"Detected Back Diff Account\", { cloudDetails: cloudData.cloudDetails });\n }\n } else {\n const eligibleSites = this.getEligibleSites(user, productKeys);\n if (eligibleSites && eligibleSites.length) {\n // Has eligible sites -> N2E\n const eventProps = { numEligibleSites: eligibleSites.length, productKeys };\n this.sendTrackingAnalytics(\"Found Eligible Sites\", eventProps);\n } else {\n // No eligible sites, check all existing sites\n const existingSites = hamlet.getSites();\n if (existingSites && existingSites.length) {\n // Has existing sites but none are eligible for the target product\n const eventProps = { numExistingSites: existingSites.length, productKeys };\n this.sendTrackingAnalytics(\"Found Existing Sites\", eventProps);\n return !newUsersOnlyRestriction;\n } else {\n // No existing sites -> N2N\n this.sendTrackingAnalytics(\"Found No Sites\", {});\n return true;\n }\n }\n }\n // eslint-disable-next-line no-empty\n } catch (e) { }\n\n // A N2E user is detected\n this.showSignupForm();\n }\n\n return false;\n },\n\n /**\n * Display the signup form.\n */\n showSignupForm: function () {\n // Hide social login containers\n this.updateElementsByClassName(SOCIAL_LOGIN_WAIT_CONTAINER_CLASS, 'display', 'none');\n this.updateElementsByClassName(SOCIAL_LOGIN_ERROR_CONTAINER_CLASS, 'display', 'none');\n\n // Show signup form containers\n this.updateElementsByClassName(SIGNUP_ATLLOGO_CONTAINER_CLASS, 'display', 'block');\n this.updateElementsByClassName(SIGNUP_CONTENT_CONTAINER_CLASS, 'display', 'block');\n\n this.sendTrackingAnalytics(\"Viewed Signup Form\", {});\n },\n\n /**\n * Replace checking message with preparing message\n */\n showPreparingCloudMessage: function () {\n // Hide checking... text\n this.updateElementsByClassName(SOCIAL_LOGIN_CHECKING_WAIT_TEXT_CLASS, 'display', 'none');\n\n // Show preparing... text\n this.updateElementsByClassName(SOCIAL_LOGIN_PREPARING_WAIT_TEXT_CLASS, 'display', 'block');\n },\n\n /**\n * Display the sogical login error message\n */\n showSocialLoginError: function (errorType) {\n try {\n // Update try signup again href\n const self = this;\n const linkTrySignupAgain = jQuery(`${SOCIAL_LOGIN_ERROR_TRYAGAIN_ID} a`);\n linkTrySignupAgain.prop('href', this.getTrySignupAgainUrl());\n linkTrySignupAgain.click(() => {\n self.sendTrackingAnalytics(\"Clicked Try Signup Button\", {}, false);\n tracking.trackEvent(WAC_TRY_SIGNUP, trySignupOrigin.toAnalyticsAttributes({ hasGeneratedId: true }));\n });\n // eslint-disable-next-line no-empty\n } catch (e) { }\n\n // Hide social login wait container\n this.updateElementsByClassName(SOCIAL_LOGIN_WAIT_CONTAINER_CLASS, 'display', 'none');\n\n // Hide signup form container\n this.updateElementsByClassName(SIGNUP_CONTENT_CONTAINER_CLASS, 'display', 'none');\n\n // Show atlassian logo and social login error containers\n this.updateElementsByClassName(SIGNUP_ATLLOGO_CONTAINER_CLASS, 'display', 'block');\n this.updateElementsByClassName(SOCIAL_LOGIN_ERROR_CONTAINER_CLASS, 'display', 'block');\n\n this.sendTrackingAnalytics(\"Viewed Error Message\", { errorType });\n },\n\n /**\n * Update the html elements style by class name\n */\n updateElementsByClassName: function (className, stylePropName, stylePropValue) {\n try {\n const allElems = document.getElementsByClassName(className);\n for (let i = 0; i < allElems.length; i++) {\n allElems[i].style[stylePropName] = stylePropValue;\n }\n // eslint-disable-next-line no-empty\n } catch (e) { }\n },\n\n /**\n * Determine the eligible sites for the user to add the new product\n */\n getEligibleSites: function (user, productKeys) {\n let eligibleSites = [];\n\n try {\n if (!user || !hamlet.isLoggedIn()) {\n return eligibleSites;\n }\n\n // sites as Free edition or regular trial should be eligible to be overlaid\n const extendedTrialOverridableSites = hamlet.getExtendedTrialAvailableSites();\n\n // filter users sites by products keys being signed up for\n eligibleSites = hamlet.getSites().filter((site) => {\n return !_.some(site.products, (product) => productKeys.indexOf(product) > -1) || extendedTrialOverridableSites.includes(site.cloudId);\n });\n // eslint-disable-next-line no-empty\n } catch (e) { }\n\n return eligibleSites;\n },\n\n getCurrentSearchParam: function () {\n const location = Environment.getWindowLocation();\n const internationalSubdomain = Environment.getInternationalSubdomain();\n\n let search = location.search;\n if (internationalSubdomain && !localeParam) {\n search = search.length ? `${search}&lang=${internationalSubdomain}` : `?lang=${internationalSubdomain}`;\n }\n\n return search;\n },\n\n /**\n * Compute the Identity login with Google Url.\n */\n getContinueWithGoogleUrl: function (searchParams) {\n // Get Identity initiate Google url\n const loginGoogleUrl = `${baseIdDomain}${URL_LOGIN_GOOGLE_PATH}?`;\n\n // Get WAC signup social login url\n const signupSocialUrl = `${baseDomain}${URL_SIGNUP_SOCIAL_LOGIN_PATH}?${searchParams}`;\n\n const cobranding = `application=wac`;\n const atlOrigin = `&atlOrigin=${loginGoogleOrigin.encode()}`;\n const continueUrl = `&continue=${encodeURIComponent(signupSocialUrl)}`;\n return `${loginGoogleUrl}${cobranding}${atlOrigin}${continueUrl}`;\n },\n\n /**\n * Compute the Identity login with Microsoft Url.\n */\n getContinueWithMicrosoftUrl: function (searchParams) {\n // Get Identity initiate Microsoft url\n const loginMicrosoftUrl = `${baseIdDomain}${URL_LOGIN_MICROSOFT_PATH}?`;\n\n // Get WAC signup social login url\n const signupSocialUrl = `${baseDomain}${URL_SIGNUP_SOCIAL_LOGIN_PATH}?${searchParams}`;\n\n const cobranding = `application=wac`;\n const atlOrigin = `&atlOrigin=${loginMicrosoftOrigin.encode()}`;\n const continueUrl = `&continue=${encodeURIComponent(signupSocialUrl)}`;\n return `${loginMicrosoftUrl}${cobranding}${atlOrigin}${continueUrl}`;\n },\n\n /**\n * Compute the site rename page Url.\n */\n getRenameSiteUrl: function ({ cloudId, cloudName, requestId, productKeys, isPermitted }) {\n // Build redirect confirmation url (user segmentation)\n const confirmationParams = {\n \"ondemandurl\": cloudName,\n \"products\": productKeys.join(\",\"),\n \"cloudId\": cloudId,\n \"requestId\": requestId,\n };\n const confirmationUrlParams = jQuery.param(confirmationParams);\n const confirmationUrl = baseDomain + URL_CONFIRMATION_PATH + \"?\" + confirmationUrlParams;\n\n // Build rename site url\n const renameSiteParams = {\n \"cloudId\": cloudId,\n \"requestId\": requestId,\n \"redirecturl\": encodeURIComponent(confirmationUrl),\n \"isPermitted\": isPermitted,\n };\n const renameSiteUrlParams = jQuery.param(renameSiteParams);\n return `${baseDomain}${URL_RENAME_SITE_PATH}?${renameSiteUrlParams}`;\n },\n\n /**\n * Computes WAC try cloud signup Url\n */\n getWacTryCloudSignupUrl: function () {\n return `${baseDomain}${URL_TRY_CLOUD_SIGNUP_PATH}${this.getCurrentSearchParam()}`;\n },\n\n /**\n * Compute try signup again Url.\n */\n getTrySignupAgainUrl: function () {\n // Get Identity ATL account logout url\n const logoutAtlUrl = `${baseIdDomain}${URL_IDENTITY_LOGOUT_PATH}?`;\n\n // Get WAC try cloud signup url\n const trySignupUrl = this.getWacTryCloudSignupUrl();\n\n const atlOrigin = `atlOrigin=${trySignupOrigin.encode()}`;\n const continueUrl = `&continue=${encodeURIComponent(trySignupUrl)}`;\n return `${logoutAtlUrl}${atlOrigin}${continueUrl}`;\n },\n\n /**\n * Send analytics data.\n */\n sendTrackingAnalytics: function (eventAction, eventProps, isNonInteraction = true) {\n const anonymous_id = imktUtils.storage.getCookie('ajs_anonymous_id') || '-'; // Anonymous user, otherwise send the userID\n const opt_id = 'unknown';\n const cross_domain_id = imktUtils.storage.getCookie('seg_xid') || '';\n\n const eventCategory = 'cart-cloud';\n const eventLabel = 'signup-social-login';\n try {\n Tracking.trackAll(\"cart-cloud\", eventAction, eventLabel, { ...eventProps, anonymous_id, opt_id, cross_domain_id }, isNonInteraction);\n // eslint-disable-next-line no-empty\n } catch (e) { }\n },\n\n };\n }\n}\n","import * as $ from \"jquery\";\nimport _ from 'underscore';\nimport Tracking from \"../../common/tracking\";\n\nexport default class CombinedBundles {\n\n constructor() {\n\n const COMBINED_BUNDLE_JSW =\n {name: \"Jira Software\", feature: \"Agile project management\", bundles:[\n {name:\"\", feature:\"\", isPopular: false, value: \"jira-software\"},\n {name: \"Confluence\", feature: \"documentation\", isPopular: true, value: \"jira-software-confluence\"},\n {name: \"Jira Service Desk\", feature: \"IT service management\", isPopular: false, value: \"jira-software-jira-service-desk\"}\n ]};\n\n const COMBINED_BUNDLE_CONFLUENCE =\n {name: \"Confluence\", feature: \"Document collaboration\", bundles:[\n {name:\"\", feature:\"\", isPopular: false, value: \"confluence\"},\n {name: \"Jira Software\", feature: \"agile project management\", isPopular: true, value: \"confluence-jira-software\"},\n {name: \"Jira Service Desk\", feature: \"IT service management\", isPopular: false, value: \"confluence-jira-service-desk\"}\n ]};\n\n const COMBINED_BUNDLE_JIRA_CORE =\n {name: \"Jira Core\", feature: \"Business project management\", bundles:[\n {name:\"\", feature:\"\", isPopular: false, value: \"jira-core\"},\n {name: \"Confluence\", feature: \"documentation\", isPopular: true, value: \"jira-core-confluence\"},\n ]};\n\n const COMBINED_BUNDLE_JSD =\n {name: \"Jira Service Desk\", feature: \"IT service management\", bundles:[\n {name:\"\", feature:\"\", isPopular: false, value: \"jira-service-desk\"},\n {name: \"Confluence\", feature: \"documentation collaboration\", isPopular: true, value: \"jira-service-desk-confluence\"},\n ]};\n\n const COMBINED_BUNDLE = {\n \"jira-software\": COMBINED_BUNDLE_JSW,\n \"confluence\": COMBINED_BUNDLE_CONFLUENCE,\n \"jira-core\": COMBINED_BUNDLE_JIRA_CORE,\n \"jira-service-desk\": COMBINED_BUNDLE_JSD\n }\n\n return {\n\n renderCombinedBundlesForm: function () {\n\n // url health check\n var urlParams = new URLSearchParams(window.location.search);\n if (!urlParams.get(\"edition\") || urlParams.get(\"edition\").toLocaleLowerCase() !== 'free') {\n window.location.href = '/try/cloud/signup' + window.location.search;\n Tracking.trackAll(\n \"cart-cloud\",\n \"Invalid Edition Redirect\",\n \"combined-bundles-signup-page\",\n { selectedEdition: urlParams.get(\"edition\") },\n false\n );\n }\n\n // get bundle information\n var bundle = this.getBundle();\n\n // Hide the full signup form\n const fullForm = $('.trial-info-data.combined-bundles');\n fullForm.detach();\n fullForm.addClass('hidden');\n\n // Construct the new combined bundle form from template\n const combinedBundleFormTemplate = _.template($('.template--cloud-combined-bundle-feature-list').html());\n const newForm = $('
');\n newForm\n .append(combinedBundleFormTemplate({ combinedBundles: COMBINED_BUNDLE[bundle] }))\n .insertAfter('.imkt--cloud-signup .trial-info-data-combined-bundle');\n\n // set first focus and urls when user land or refresh on the page\n this.setFirstFocus();\n this.resetDownloadLink();\n\n // additional UI changers\n this.additionalUIChanges();\n\n\n },\n\n getBundle: function () {\n var bundle = new URLSearchParams(window.location.search).get(\"bundle\");\n if ( bundle === \"confluence\" || bundle === \"confluence-jira-software\" || bundle === \"confluence-jira-service-desk\"){\n return \"confluence\";\n }\n else if ( bundle === \"jira-core\" || bundle === \"jira-core-confluence\") {\n return \"jira-core\";\n }\n else if ( bundle === \"jira-service-desk\" || bundle === \"jira-service-desk-confluence\" ) {\n return \"jira-service-desk\";\n }\n else {\n return \"jira-software\";\n }\n },\n\n setFirstFocus: function () {\n var bundle = new URLSearchParams(window.location.search).get(\"bundle\");\n if (bundle === \"confluence-jira-software\" || bundle === \"jira-software-confluence\" || bundle === \"jira-core-confluence\" || bundle === \"jira-service-desk-confluence\" ){\n $('input[name=\"bundles[1]\"]').parent().addClass(\"selected\");\n $('.combined-bundle-products:nth-child(2)').addClass(\"selected\");\n }\n else if ( bundle === \"confluence-jira-service-desk\" || bundle === \"jira-software-jira-service-desk\") {\n $('input[name=\"bundles[2]\"]').parent().addClass(\"selected\");\n $('.combined-bundle-products:nth-child(3)').addClass(\"selected\");\n }\n else {\n $('input[name=\"bundles[0]\"]').parent().addClass(\"selected\");\n $('.combined-bundle-products:first-child').addClass(\"selected\");\n }\n },\n\n resetDownloadLink: function () {\n var bundle = new URLSearchParams(window.location.search).get(\"bundle\");\n var downloadLinkId = '#host_on_server_link_download';\n if ( bundle === \"confluence\" ){\n $(downloadLinkId).prop('href', \"/software/confluence/download\");\n }\n else if ( bundle === \"jira-core\") {\n $(downloadLinkId).prop('href', \"/software/jira/core/download\");\n }\n else if ( bundle === \"jira-service-desk\" ) {\n $(downloadLinkId).prop('href', \"/software/jira/service-desk/download\");\n }\n else if (bundle === \"jira-software-confluence\" || bundle === \"jira-software-jira-service-desk\" ||\n bundle === \"jira-core-confluence\" ||\n bundle === \"jira-service-desk-confluence\" ||\n bundle === \"confluence-jira-software\" || bundle === \"confluence-jira-service-desk\"){\n $(downloadLinkId).prop('href', \"/download\");\n }\n else {\n $(downloadLinkId).prop('href', \"/software/jira/download\");\n }\n },\n\n additionalUIChanges: function () {\n var bundle = new URLSearchParams(window.location.search).get(\"bundle\");\n if (bundle === \"jira-service-desk\") {\n $('.trial-info-data__features-heading').html(\"Free for up to 3 agents\");\n }\n if (bundle === \"jira-core\" || bundle === \"jira-core-confluence\") {\n $('#combined-bundles-bottom-feature-list').html(\"Accounts for 10 users · 2 GB storage · community support\")\n }\n if ( bundle === \"confluence\" || bundle === \"confluence-jira-software\" || bundle === \"confluence-jira-service-desk\"){\n $('#host_on_server_link_pricing').prop(\"href\", \"/software/confluence/pricing#feature-comparison\");\n }\n else if ( bundle === \"jira-core\" || bundle === \"jira-core-confluence\") {\n $('#host_on_server_link_pricing').prop(\"href\", \"/software/jira/core/pricing#feature-comparison\");\n }\n else if ( bundle === \"jira-service-desk\" || bundle === \"jira-service-desk-confluence\" ) {\n $('#host_on_server_link_pricing').prop(\"href\", \"/software/jira/service-desk/pricing#feature-comparison\");\n }\n }\n };\n }\n}\n","import * as $ from \"jquery\";\nimport { ConsentHubClient } from \"../common/ConsentHubV2\";\nimport Environment from \"../common/environment\";\nimport _ from \"underscore\";\nimport Hamlet from \"./modules/hamlet\";\nimport Cofs from \"./modules/cofs\";\nimport CloudGrowthTracker from \"./modules/growth-tracker\";\nimport Experiments from \"./modules/experiments\";\nimport PasswordStrength from \"./modules/passwordstrength\";\nimport SocialLogin from \"./modules/social-login\";\nimport CombinedBundles from \"./modules/combined-bundles\";\nimport Tracking from \"../common/tracking\";\nimport { GASv2, GoogleAnalytics, Segment } from \"../common/tracking/platforms\";\nimport OriginTracing from \"@atlassiansox/origin-tracing\";\nimport retry from \"async-retry\";\nimport onThrottled from \"../utils/event\";\nimport imkt from '../imkt';\nimport storage from \"../utils/storage\";\nimport tracking from '../utils/tracking';\nimport url from '../utils/url';\n\nvar FORCE_RECAPTCHA_COOKIE = \"bxp.force.captcha\";\nvar MICROSOFT_SIGN_UP_EXPERIMENT_COOKIE = \"NUXAPOLLO-257\";\n\nvar CONFLUENCE_ACCOUNT_SETUP_EXPERIMENT_COOKIE = \"NUXAPOLLO-210\";\nvar CONFLUENCE_PRODUCT_KEY = \"confluence.ondemand\";\nconst RESEND_DATA = \"r.e.d\";\n\nimkt.cx = imkt.cx || {};\n\nconst performanceStartTime = performance.now();\n\n// used for tracking purposes\nvar captchaFilled = false;\n\nimkt.cx.FormCloudSignup = class FormCloudSignup {\n PRODUCTS_STORAGE_KEY: string;\n URL_CONFIRMATION_PATH: string;\n URL_CHECKEMAIL_PATH: string;\n URL_BUY_SIGNUP_PATH: string;\n URL_ACCOUNT_SETUP_PATH: string;\n STATUS_PROCESSING_COMPLETE_REVIEW_REQUIRED: string;\n STATUS_PROCESSING_COMPLETE: string;\n STATUS_INCOMPLETE: string;\n STATUS_ERROR: string;\n ERROR_CLASS: string;\n isDeveloper: boolean;\n $domRoot: JQuery;\n params: any;\n labels: any;\n baseDomain: string;\n useGDPR: any;\n opsgenieSignupIsActive: boolean;\n availableProducts: any;\n possiblyPremium: any;\n products: any;\n isBundle: any;\n bundleData: any;\n trialBundleData: any;\n useAlternateLayout: boolean;\n consentLabelMarketing: any;\n baseIdDomain: any;\n templateId: any;\n formData: {};\n userSubmittedWithCaptcha: boolean;\n features: {\n allowCoupon: any; allowBitbucket: any; allowDeveloperMode: any; recaptcha: boolean; simpleForm: any;\n /* Enforce Captcha for all forms */\n invisibleRecaptcha: boolean; enableAutogenSiteName: boolean; performanceBoost: any; enableContinueWithGoogle: any; enableContinueWithMicrosoft: boolean; enableFirstImpressions: any; enableCombinedBundles: boolean; enableConfluenceAccountSetup: boolean; allowResendVerificationEmail: any; enableAisAvailableProducts: any;\n };\n availableEditions: { standard: string; premium: string; free: string; };\n edition: null;\n migrationSourceUuid: null;\n simplifiedSiteSelected: string;\n user: null;\n accounts: never[];\n simpleFormAdminPath: any;\n simpleFormExperienceVersion: any;\n coupon: boolean;\n useSocialLogin: boolean;\n consentHub: ConsentHubClient;\n environment: string;\n loginOrigin: OriginTracing;\n switchOrigin: OriginTracing;\n experiments: Experiments;\n hamlet: Hamlet;\n cofs: Cofs;\n growthTracker: CloudGrowthTracker;\n pw: PasswordStrength;\n socialLogin: SocialLogin;\n combinedBundles: CombinedBundles;\n developerWarning: any;\n selectedProducts: never[];\n selectedAddons: never[];\n hamletProducts: never[];\n hamletCoreProducts: never[];\n hamletAddonProducts: never[];\n consentConfig: { locale: string; localeRequiresMarketingCommunicationOptIn: boolean; };\n productKeys: any;\n form: any;\n captchaContainer: any;\n showBundle: any;\n activeBundle: null;\n cofsListContainer: JQuery;\n fields: JQuery;\n emailField: any;\n accountNameField: any;\n firstNameField: any;\n lastNameField: any;\n passwordField: any;\n showPasswordField: any;\n submitButton: any;\n timeoutWarnings: JQuery;\n passwordScoreTemplateTarget: any;\n marketingConsentContainer: any;\n eulaContainer: any;\n annualSubscriptionContent: JQuery;\n linkLoginUser: any;\n linkExistingUser: any;\n dataRegionField: any;\n \n constructor(domRoot: HTMLElement, params: any) {\n this.PRODUCTS_STORAGE_KEY = \"wac_cofs_products\";\n this.URL_CONFIRMATION_PATH = \"/ondemand/signup/confirmation\";\n this.URL_CHECKEMAIL_PATH = \"/ondemand/signup/checkemail\";\n this.URL_BUY_SIGNUP_PATH = \"/buy/signup\";\n this.URL_ACCOUNT_SETUP_PATH = \"/signup/account/setup\";\n\n this.STATUS_PROCESSING_COMPLETE_REVIEW_REQUIRED =\n \"PROCESSING_COMPLETE_REVIEW_REQUIRED\";\n this.STATUS_PROCESSING_COMPLETE = \"PROCESSING_COMPLETE\";\n this.STATUS_INCOMPLETE = \"INCOMPLETE\";\n this.STATUS_ERROR = \"ERROR\";\n this.ERROR_CLASS = \"has-error\";\n\n // Is a developer account for the Ecosystem developer signup flow\n this.isDeveloper = false;\n\n this.$domRoot = $(domRoot);\n this.params = params;\n this.labels = this.params.labels || {};\n\n // Set WAC Base domain\n this.baseDomain = Environment.getWacIntegrationUrl();\n\n // GDPR Enabled\n this.useGDPR = this.params.useGDPR;\n\n // Opsgenie\n this.opsgenieSignupIsActive = false;\n\n // Identify products\n this.availableProducts = this.params.availableProducts || [];\n this.possiblyPremium = this.availableProducts.some(\n (product) => product.premium_enabled === true\n );\n this.products = this.params.products || \"\";\n this.isBundle = this.params.isBundle || false;\n this.bundleData = this.params.bundleData;\n\n // Use Alternate Layout if enabled in params\n this.trialBundleData = this.params.trialBundle || null;\n this.useAlternateLayout =\n this.trialBundleData && this.trialBundleData.useTrialInfo ? true : false;\n\n this.consentLabelMarketing = this.params.consentLabelMarketing;\n\n // Id base per environment\n this.baseIdDomain = this.params.baseIdDomain || \"https://id.atlassian.com\";\n\n // Template ID\n this.templateId = this.params.templateId || this.getTemplateFromUrl();\n\n this.formData = {};\n\n this.userSubmittedWithCaptcha = false;\n this.features = {\n allowCoupon: this.params.allowCoupon || false,\n allowBitbucket: this.params.allowBitbucket || false,\n allowDeveloperMode: this.params.allowDeveloperMode || false,\n recaptcha: !!(\n this.params.allowCaptcha &&\n (Environment.isProduction() ||\n storage.getCookie(FORCE_RECAPTCHA_COOKIE) !== null)\n ),\n simpleForm: this.params.allowSimpleForm || false,\n /* Enforce Captcha for all forms */\n invisibleRecaptcha: true,\n enableAutogenSiteName: !!this.params.allowEnableAutogenSiteName,\n performanceBoost: this.params.allowPerformanceBoost || false,\n enableContinueWithGoogle:\n this.params.allowEnableContinueWithGoogle || false,\n enableContinueWithMicrosoft: !!(\n this.params.allowEnableContinueWithMicrosoft &&\n storage.getCookie(MICROSOFT_SIGN_UP_EXPERIMENT_COOKIE) !== null\n ),\n enableFirstImpressions: this.params.allowFirstImpressions || false,\n enableCombinedBundles: !!this.params.allowCombinedBundles,\n enableConfluenceAccountSetup: !!(\n this.params.allowConfluenceAccountSetup &&\n storage.getCookie(\n CONFLUENCE_ACCOUNT_SETUP_EXPERIMENT_COOKIE\n ) !== null\n ),\n allowResendVerificationEmail:\n this.params.allowResendVerificationEmail || false,\n enableAisAvailableProducts: this.params.enableAisAvailableProducts || false,\n };\n\n this.availableEditions = {\n standard: \"standard\",\n premium: \"premium\",\n free: \"free\",\n };\n this.edition = null;\n\n this.migrationSourceUuid = null;\n\n this.simplifiedSiteSelected = \"\";\n this.user = null;\n this.accounts = [];\n this.simpleFormAdminPath = (this.params.simpleFormAdminPath || \"\").trim();\n this.simpleFormExperienceVersion = (\n this.params.simpleFormExperienceVersion || \"\"\n ).trim();\n this.coupon = false;\n this.useSocialLogin = false;\n\n this.consentHub = new ConsentHubClient();\n\n this.environment = Environment.getEnvironment();\n\n // Origin IDs\n this.loginOrigin = new OriginTracing({ product: \"wac-signup-login\" });\n this.switchOrigin = new OriginTracing({ product: \"wac-signup-switch\" });\n\n // Initialize Component\n this.init();\n }\n\n async init() {\n // Switch on WCF-459\n if (this.useAlternateLayout) {\n this.activateFormVariation();\n }\n\n // Cache dom queries for elements\n this.bindElements();\n\n // Update id urls for existing email accounts\n this.updateIdUrls();\n\n // Update for i18n tranlsated text\n this.updateLocaleText();\n\n this.updateFormReady();\n\n if (!this.features.simpleForm) {\n $(\".icon--cohort-pending\").remove();\n this.$domRoot.find(\".cohort-pending\").removeClass(\"cohort-pending\");\n }\n\n // Initialize base modules\n this.experiments = new Experiments(storage, _);\n this.hamlet = new Hamlet();\n this.cofs = new Cofs(\n this.baseDomain,\n this.params.baseCofsPath,\n this.hamlet,\n $,\n this.experiments,\n this.environment\n );\n this.growthTracker = new CloudGrowthTracker();\n this.pw = new PasswordStrength();\n this.socialLogin = new SocialLogin(\n this.baseDomain,\n this.baseIdDomain,\n this.hamlet,\n $,\n imkt.utils,\n this.getLocaleParam(),\n this.params.urlRenameSitePath\n );\n this.combinedBundles = new CombinedBundles($);\n this.cofs.init();\n this.pw.init();\n this.experiments.init();\n this.socialLogin.init();\n\n // Enable Developer signup flow for Atlassian Connect devs\n if (this.features.allowDeveloperMode) {\n this.isDeveloper = !!(url.getUrlParams() || {}).developer;\n if (this.isDeveloper) {\n this.experiments.setExperimentKey(\"PUR-7747\");\n this.developerWarning.show().removeClass(\"hide-all, display-none\");\n }\n }\n\n // Initialize Products\n this.selectedProducts = [];\n this.selectedAddons = [];\n this.hamletProducts = [];\n this.hamletCoreProducts = [];\n this.hamletAddonProducts = [];\n\n //Disable invisible recaptcha\n window.addEventListener(\"DOMContentLoaded\", () => {\n this.disableSubmitButton(true);\n });\n window.onbeforeunload = (e) => {\n const eventLabel = \"form event\";\n try {\n //if the user leaves the page before the hamlet call was completed, the event will be fired with isExistingUser = false\n const isExistingUser = this.hamlet.isLoggedIn();\n let properties = {\n existingUser: isExistingUser,\n firstNameFilled: Boolean(e.target.querySelector(\"#firstName\").value),\n lastNameFilled: Boolean(e.target.querySelector(\"#lastName\").value),\n emailFilled: isExistingUser\n ? true\n : Boolean(e.target.querySelector(\"#email\").value),\n passwordFilled: isExistingUser\n ? false\n : Boolean(e.target.querySelector(\"#aod-password\").value),\n siteNameFilled: Boolean(e.target.querySelector(\"#accountName\").value),\n reCaptchaFilled: captchaFilled,\n };\n if (Environment.isProduction())\n this.fireBeaconAnalyticsEvent(properties, false);\n Tracking.trackAll(\n \"cart-cloud\",\n \"Page unload\",\n eventLabel,\n properties,\n false\n );\n } catch (e) {\n if (Environment.isProduction()) this.fireBeaconAnalyticsEvent({}, true);\n Tracking.trackAll(\n \"cart-cloud\",\n \"Page unload error\",\n eventLabel,\n {},\n false\n );\n }\n };\n\n // Check for GDPR locale\n if (this.params.useGDPR) {\n // default config\n this.consentConfig = {\n locale: \"UNKNOWN\",\n localeRequiresMarketingCommunicationOptIn: true,\n };\n\n // get/request config from ConsentHub\n this.consentHub = new ConsentHubClient();\n try {\n this.consentConfig = await this.consentHub.requestConfig();\n } catch (_error) {\n Tracking.trackAll(\n \"cart-cloud\",\n \"ConsentHub config request error\",\n \"cloud\",\n {},\n false\n );\n }\n\n this.renderMarketingConsent(\n this.consentConfig.localeRequiresMarketingCommunicationOptIn,\n this.consentLabelMarketing\n );\n }\n\n if (this.features.allowCoupon) {\n this.checkUrlCouponKey();\n }\n\n if (this.features.recaptcha) {\n $(document).on(\"ReCaptchaReady\", () => this.renderCaptcha());\n }\n\n if (this.features.invisibleRecaptcha) {\n $(document).on(\"InvReCaptchaReady\", () => this.renderInvCaptcha());\n $(document).on(\"recaptchaApproved\", () => {\n this.submitHandler();\n });\n }\n\n this.hamlet\n .identifyProducts()\n .then(() => {\n this.setProducts();\n this.renderProductSelections();\n this.initUser();\n })\n .catch(() => {\n this.setProducts();\n this.renderProductSelections();\n this.initUser();\n });\n }\n\n initUser() {\n var self = this;\n\n this.hamlet\n .init(this.features.performanceBoost)\n .then(() => {\n if (!this.migrationSourceUuid) {\n return Promise.resolve();\n }\n // If migrationSourceUuid is set, we need to check in HAMLET which of the user sites\n // is eligible for it.\n const productKey = this.productKeys[0]; // ECTL is allowed only if one prod is set\n const cloudIds = this.hamlet.getSites().map((site) => site.cloudId);\n return this.hamlet.checkExtendedTrialAvailability(\n this.migrationSourceUuid,\n productKey,\n cloudIds\n );\n })\n .then(() => this.hamlet.getUser())\n .then((user) => {\n if (this.migrationSourceUuid) {\n const extendedTrialAvailability =\n this.hamlet.getExtendedTrialAvailability();\n if (extendedTrialAvailability) {\n this.renderExtendedTrialBullets(\n extendedTrialAvailability.usageLimit,\n extendedTrialAvailability.usageType\n );\n const status = extendedTrialAvailability.cloudCreation;\n if (!status.available) {\n return this.renderExtendedTrialError(status.reason);\n }\n } else {\n return this.renderExtendedTrialError();\n }\n }\n\n if (\n this.socialLogin.detectSocialLoginPage() &&\n !this.socialLogin.isValidSocialLoginUser(user)\n ) {\n // User is on signup-social-login page with invalid user details\n window.location.replace(this.socialLogin.getWacTryCloudSignupUrl());\n return;\n }\n\n if (this.hamlet.isLoggedIn()) {\n /**\n * NUXAPOLLO-611 redirect user back to sign up page if user is logged in\n */\n if (this.features.enableCombinedBundles) {\n window.location.href = \"/try/cloud/signup\" + window.location.search;\n Tracking.trackAll(\n \"cart-cloud\",\n \"Logged-In User Redirect\",\n \"combined-bundles-signup-page\",\n { existingUser: true },\n true\n );\n }\n\n self.user = user;\n const newUsersOnlyRestriction =\n this.productKeys.indexOf(\"com.atlassian.bitbucket\") !== -1\n ? true\n : false;\n const existingUserCloudData = {};\n const isSocialLogin = this.socialLogin.isSocialLogin(\n user,\n this.productKeys,\n newUsersOnlyRestriction,\n existingUserCloudData\n );\n if (isSocialLogin) {\n if (existingUserCloudData.cloudDetails) {\n // Back to this signup social login page using the same account,\n // should proceed to rename site or account setup page directly.\n if (this.features.enableConfluenceAccountSetup) {\n this.goToAccountSetup(\n existingUserCloudData.cloudDetails.cloudId,\n existingUserCloudData.cloudDetails.requestId,\n existingUserCloudData.cloudDetails.cloudName\n );\n } else {\n window.location.replace(\n this.socialLogin.getRenameSiteUrl(\n existingUserCloudData.cloudDetails\n )\n );\n }\n } else {\n this.continueWithSocialLogin(user);\n }\n } else {\n if (newUsersOnlyRestriction) {\n // BB can only handle new users for now, not existing users that\n // might already have BB, JSW or both.\n const products = this.productKeys\n .join(\",\")\n .replace(\"com.atlassian.bitbucket\", \"bitbucket.ondemand\");\n const url =\n this.baseDomain +\n this.URL_BUY_SIGNUP_PATH +\n \"?product=\" +\n products;\n window.location = url;\n } else {\n this.formRenderLoggedIn(user);\n }\n }\n } else {\n self.user = null;\n this.formRenderLoggedOut();\n }\n this.updateSignupDomainLabels();\n })\n .catch(() => {\n if (this.socialLogin.detectSocialLoginPage()) {\n this.socialLogin.showSocialLoginError(\"init-user-error\");\n } else {\n this.formRenderLoggedOut();\n this.updateSignupDomainLabels();\n }\n });\n }\n\n /**\n * Continue with social login\n */\n continueWithSocialLogin(user) {\n this.useSocialLogin = true;\n this.socialLogin.showPreparingCloudMessage();\n\n // Populate form data\n this.formData[\"email\"] = user.myDetails.email;\n this.formData[\"firstName\"] = user.myDetails.firstName;\n this.formData[\"lastName\"] = user.myDetails.lastName;\n this.formData[\"productKeys\"] = this.productKeys;\n this.submitCloud();\n }\n\n /**\n * On successful cloud creation, redirect to rename site page\n */\n goToRenameSite({ progressUri, cloudId, cloudName = \"\" }) {\n if (!progressUri) {\n console.error(\"undefined progressUri\");\n return;\n }\n\n try {\n // Send finish analytics\n const trackingProps = {\n value: cloudId,\n isSocialLogin: this.useSocialLogin,\n isRecaptchaV2: this.features.recaptcha,\n isInvisibleRecaptcha: this.features.invisibleRecaptcha,\n existingUser: this.hamlet.isLoggedIn(),\n };\n Tracking.trackAll(\n \"cart-cloud\",\n \"Completed Checkout Step\",\n \"complete-signup-page\",\n trackingProps,\n true\n );\n this.trackAnalyticsProduct(\n 0,\n \"Confirmed Evaluation\",\n \"cart-cloud.confirmed-evaluation.\"\n );\n this.growthTracker.sendTrack(\"navigatedToRenameSite\");\n // eslint-disable-next-line no-empty\n } catch (e) { }\n\n // Redirect to rename site\n const requestId = this.cofs.getRequestId(progressUri);\n const cloudDetails = {\n cloudId,\n cloudName,\n requestId,\n productKeys: this.productKeys,\n };\n\n // NUXAPOLLO-510 check if the user is permitted to rename the site before redirecting the user to the rename site page\n this.checkPerms(cloudId)\n .then((res) => {\n cloudDetails.isPermitted = res.permitted;\n Tracking.trackAll(\n \"cart-cloud\",\n \"Completed permissions check\",\n \"complete-social-signup-page\",\n {\n cloudId,\n status: 200,\n permitted: res.permitted,\n },\n true\n );\n window.location.replace(\n this.socialLogin.getRenameSiteUrl(cloudDetails)\n );\n })\n .catch((e) => {\n cloudDetails.isPermitted = false;\n Tracking.trackAll(\n \"cart-cloud\",\n \"Failed permissions check\",\n \"complete-social-signup-page\",\n {\n cloudId,\n message: e.message,\n },\n true\n );\n window.location.replace(\n this.socialLogin.getRenameSiteUrl(cloudDetails)\n );\n });\n }\n\n setResendEmailParams(cloudId, requestId, autoGeneratedCloudName) {\n if (\n this.features.allowResendVerificationEmail &&\n !this.opsgenieSignupIsActive\n ) {\n try {\n var data = sessionStorage.getItem(RESEND_DATA)\n ? JSON.parse(sessionStorage.getItem(RESEND_DATA))\n : {};\n if (this.formData.email) {\n data[\"email\"] = this.formData.email;\n }\n if (cloudId && requestId) {\n data[\"cloudId\"] = cloudId;\n data[\"requestId\"] = requestId;\n }\n if (autoGeneratedCloudName) {\n data[\"cloudName\"] = autoGeneratedCloudName;\n }\n sessionStorage.setItem(RESEND_DATA, window.btoa(JSON.stringify(data)));\n } catch (e) {\n sessionStorage.removeItem(RESEND_DATA);\n }\n } else {\n sessionStorage.removeItem(RESEND_DATA);\n }\n }\n\n fireBeaconAnalyticsEvent(data, error) {\n if (typeof ace !== \"undefined\") {\n ace.analytics.Tracking.trackUnloadEvent(\n error ? \"unload beacon error\" : \"unload beacon\",\n data\n );\n }\n }\n\n activateFormVariation() {\n this.reorderFormFields();\n\n // to be deprecated with an event emitted in wrapper when segment is available\n window.segmentPageReady = function () {\n tracking.trackEvent(\"wcf-459-signup-shown\", {});\n };\n }\n\n reorderFormFields() {\n const emailField = $(this.params.fieldIds.emailId);\n const passwordField = $(this.params.fieldIds.passwordId);\n const fullnameField = $(this.params.fieldIds.fullnameId);\n const sitenameField = $(this.params.fieldIds.sitenameId);\n const dataRegionFieldContainer = $(this.params.fieldIds.dataRegionId);\n\n const sitenameLoadingIcon = sitenameField.find(\"span.loading\").first();\n const sitenameValidationIcon = sitenameField\n .find(\"span.validation-success\")\n .first();\n const signupDomainSpan = sitenameField.find(\"span.signup-domain\").first();\n\n const greeting = $(\n `
${this.params.trialBundle.signupFormGreeting}
`\n );\n\n emailField.insertBefore(sitenameField);\n passwordField.insertBefore(sitenameField);\n fullnameField.insertBefore(sitenameField);\n dataRegionFieldContainer.insertBefore(sitenameField);\n\n // Add first and last name labels instead of full name\n fullnameField.find('label[for=\"firstName\"]').remove();\n fullnameField\n .find(\".half.left\")\n .prepend(\n ``\n );\n fullnameField\n .find(\".half.right\")\n .prepend(\n ``\n );\n\n // Add greeting and post submit text\n greeting.insertBefore(emailField);\n\n // Update site name label\n sitenameField\n .find('label[for=\"accountName\"] > span')\n .text(this.params.altLabels.siteNameLabel);\n\n // move site name loading and validation success icons after signup domain span\n sitenameLoadingIcon.remove();\n sitenameValidationIcon.remove();\n signupDomainSpan.after([sitenameLoadingIcon, sitenameValidationIcon]);\n\n // fix tabs after reordering\n emailField.find(\"input\").attr(\"tabindex\", \"0\");\n passwordField.find(\"input\").attr(\"tabindex\", \"0\");\n fullnameField.find(\"input\").attr(\"tabindex\", \"0\");\n sitenameField.find(\"input\").attr(\"tabindex\", \"0\");\n passwordField.find(\"input[type=checkbox]\").attr(\"tabindex\", \"-1\");\n\n this.changeSiteNameVisibility();\n }\n\n changeSiteNameVisibility() {\n const sitenameField = $(this.params.fieldIds.sitenameId);\n if (this.features.enableAutogenSiteName) {\n sitenameField.css(\"display\", \"none\");\n sitenameField.attr(\"aria-hidden\", true);\n\n // the sitename field is still required. adding a value to the field will ensure that we pass form validation.\n sitenameField.find(\"input\").val(\"nuxsignup-default\");\n } else {\n sitenameField.removeAttr(\"style\");\n sitenameField.removeAttr(\"aria-hidden\");\n sitenameField.find(\"input\").val(\"\");\n }\n }\n\n // First Impression UI changes\n enableFirstImpression() {\n const self = this;\n\n // class changes\n $(\".imkt--cloud-signup\").addClass(\"firstimpression\");\n $(\".column--cloud-signup-bundle\").addClass(\"firstimpression\");\n $(\".with-bundle\").addClass(\"firstimpression\");\n $(\".trial-info-data__features\").addClass(\"firstimpression\");\n $(\".trial-info-data__download\").addClass(\"firstimpression\");\n $(\".heading--products--hide\").addClass(\"firstimpression\");\n $(\".row\").removeClass(\"reduced-row\");\n\n // css changes\n $(\".imkt--cloud-signup\").css(\"background-color\", \"transparent\");\n $(\"#invisible_recaptcha_text\").css(\"margin-top\", \"0px\");\n //$(\".already-sign-in\").css(\"display\", \"block\");\n $(\".firstimpression-right\").css(\"display\", \"block\");\n $(\".firstimpression-left\").css(\"display\", \"none\");\n $(\".firstimpression-left-img\").css(\"display\", \"block\");\n $(\".post-submit-text\").css(\"display\", \"none\");\n\n // html changes\n //$(\".trial-info-data__features-heading\").html(\"Free 7 Day Trial - No Credit Card\");\n $(\".trial-info-data__features ul li:nth-child(2)\").html(\n \"No credit card needed\"\n );\n $(\".trial-info-data__features ul li:nth-child(4)\").html(\n \"Access to support\"\n );\n\n // metrics\n const signinLink = $(\".already-sign-in\").find(\"p a:first\");\n if (signinLink) {\n // update url with OriginTracing\n signinLink.attr(\"href\", this.getIdSigninAccountUrl());\n\n signinLink.on(\"click\", function () {\n // publish metrics events\n try {\n Tracking.trackAll(\n \"cart-cloud\",\n \"Clicked Existing User Sign In\",\n \"first-impressions-signup-page\",\n { existingUser: self.hamlet.isLoggedIn() },\n false\n );\n tracking.trackEvent(\n \"wac-signup-first-impressions-existing-user-signin\",\n self.loginOrigin.toAnalyticsAttributes({ hasGeneratedId: true })\n );\n } catch (err) { }\n });\n }\n }\n\n getIdSigninAccountUrl() {\n const signinUrl = `${this.baseIdDomain}/login?`;\n const atlOrigin = `atlOrigin=${this.loginOrigin.encode()}`;\n return signinUrl + atlOrigin;\n }\n\n formRenderLoggedOut() {\n if (\n this.features.enableContinueWithGoogle ||\n this.features.enableContinueWithMicrosoft\n ) {\n this.socialLogin.renderSocialLogin({\n enableContinueWithGoogle: this.features.enableContinueWithGoogle,\n enableContinueWithMicrosoft: this.features.enableContinueWithMicrosoft,\n labels: this.labels,\n products: this.products,\n edition: this.edition,\n });\n }\n\n /**\n * NUXAPOLLO-611 enable combined bundles\n */\n if (this.features.enableCombinedBundles) {\n // enable first impression changes for UI backbone\n this.enableFirstImpression();\n\n // render UI changes for left form\n this.combinedBundles.renderCombinedBundlesForm();\n\n var _this = this;\n\n // define click event\n var combinedBundleProducts = $(\".combined-bundle-products\");\n\n $(combinedBundleProducts).click(function () {\n // update class\n $(combinedBundleProducts)\n .not(this)\n .each(function () {\n $(this).find(\".custom-radio\").removeClass(\"selected\");\n $(this).removeClass(\"selected\");\n });\n $(this).find(\".custom-radio\").addClass(\"selected\");\n $(this).addClass(\"selected\");\n\n // track click events for selectors\n try {\n Tracking.trackAll(\n \"cart-cloud\",\n \"Clicked Bundle Selector\",\n \"combined-bundles-signup-page\",\n { selectedBundle: $(this).attr(\"data-value\") },\n false\n );\n // eslint-disable-next-line no-empty\n } catch (err) { }\n\n // rewrite url and reset product keys\n var newUrl =\n document.location.href.split(\"?\")[0] +\n \"?bundle=\" +\n $(this).attr(\"data-value\") +\n \"&edition=free\";\n history.replaceState(null, null, newUrl);\n\n //reset google login url\n $(\"#google-signup\").prop(\n \"href\",\n _this.socialLogin.getContinueWithGoogleUrl()\n );\n\n //reset download link\n _this.combinedBundles.resetDownloadLink($(this).attr(\"data-value\"));\n\n //reset log in url\n var loginUrl = _this.getLoginAccountUrl();\n $(\".login-account-url\").attr(\"href\", loginUrl);\n\n // reset products before calling create cloud\n _this.setProducts();\n });\n }\n\n if (this.features.enableFirstImpressions) {\n // enable NUXAPOLLO-273 First Impression only for JSW and Logged Out users.\n this.enableFirstImpression();\n }\n\n $(\".icon--cohort-pending\").remove();\n this.$domRoot.find(\".cohort-pending\").removeClass(\"cohort-pending\");\n this.growthTracker.sendTrack(\"onload.notloggedin\");\n $(this.$domRoot)\n .find(\"label .icon--help\")\n .mouseover(() => {\n Tracking.trackAll(\n \"cart-cloud\",\n \"Tooltip displayed\",\n \"?\",\n { labelContainer: \"help\", existingUser: false },\n false\n );\n });\n $(\"#host_on_server_link a\").click((e) => {\n if (e.target.href.match(\".*/download\"))\n Tracking.trackAll(\n \"cart-cloud\",\n \"Link clicked\",\n \"host this on your own server?\",\n { labelContainer: \"cloudSignupBundle\", existingUser: false },\n false\n );\n var urlParams = new URLSearchParams(window.location.search);\n if (e.target.href.match(\".*/pricing\"))\n Tracking.trackAll(\n \"cart-cloud\",\n \"Clicked Large Team Link\",\n \"buy for a large team?\",\n { selectedBundle: urlParams.get(\"bundle\") },\n false\n );\n });\n //add disableSubmitButton call here as the `g-recaptcha` in the submit button class enables it when page loads\n this.disableSubmitButton(true);\n this.formRenderReady();\n }\n\n renderExtendedTrialBullets(usageLimit, usageType) {\n const humanUsageType = (usageType) => {\n switch (usageType) {\n case \"remote-agent-tier\":\n case \"bamboo-agent-tier\":\n case \"servicedesk-agent-tier\":\n return \"agents\";\n default:\n return \"users\";\n }\n };\n const features = [\n ...this.selectedProducts.map(\n (product) => `Try ${product.name} cloud at no cost`\n ),\n ...(!!usageLimit && [`Up to ${usageLimit} ${humanUsageType(usageType)}`]),\n \"No impact to your existing self-hosted products\",\n ];\n $(\".trial-info-data__features > ul\", self.$domRoot).append(\n features.map((feature) => `
  • ${feature}
  • `)\n );\n\n // Show the trial heading\n $(\".trial-info-data__features-heading\").addClass(\"active\");\n }\n\n renderExtendedTrialError(reason: string) {\n $(\".icon--cohort-pending\").remove();\n this.$domRoot.find(\".cohort-pending\").removeClass(\"cohort-pending\");\n this.form.hide();\n if (reason === \"ALREADY_CLAIMED\") {\n $(\".extended-trial-error__claimed\").show();\n } else {\n $(\".extended-trial-error__invalid\").show();\n }\n }\n\n //Set Invisible recaptcha for N2N if features.invisibleRecaptcha is enabled and disable recaptcha or N2E\n setInvisibleRecaptcha() {\n if (this.hamlet.isLoggedIn()) {\n $(\"#inv-recaptcha-signup_submit\").hide();\n $(\"#invisible_recaptcha_text\").hide();\n $(\"#signup_submit\").show();\n this.features.recaptcha = false;\n this.captchaContainer.remove();\n this.features.invisibleRecaptcha = false;\n } else {\n if (this.features.invisibleRecaptcha) {\n $(\"#inv-recaptcha-signup_submit\").show();\n $(\"#signup_submit\").hide();\n } else {\n $(\"#inv-recaptcha-signup_submit\").remove();\n $(\"#invisible_recaptcha_text\").hide();\n $(\".grecaptcha-badge\").remove();\n $(\"#signup_submit\").show();\n }\n }\n this.disableSubmitButton(true);\n }\n\n formRenderReady() {\n this.setInvisibleRecaptcha();\n // Bind User Interactions\n this.bindEvents();\n\n // Pass initial page view for custom tracking\n if (this.$domRoot.is(\":visible\")) {\n // Tracking used by Optimizely\n this.growthTracker.sendTrack(\"signup.init\", {\n productCount: this.selectedProducts.length,\n referrer: document.referrer,\n });\n this.growthTracker.sendTrackVisitCounter(\"bxp_form_visit\");\n\n const cartedProducts = this.products.split(\",\");\n const productAttributes = {\n cartedProducts,\n intendedProduct: cartedProducts[0],\n };\n Tracking.trackAll(\n \"cart-cloud\",\n \"Viewed Checkout Step\",\n \"view-signup-page\",\n productAttributes,\n true\n );\n this.trackAnalyticsProduct(\n 0,\n \"Added Product\",\n \"cart-cloud.added-product.\"\n );\n }\n\n // Show the trial duration now that we know the duration (logged in / logged out)\n $(\".trial-info-data__features-heading\").addClass(\"active\");\n\n // Track the time from init to form ready state\n const performanceDuration = performance.now() - performanceStartTime;\n tracking.trackEvent(\"bxp.formCloudSignup.timeToFormReady\", {\n performanceDuration: performanceDuration,\n performanceBoosted: this.features.performanceBoost,\n isLoggedIn: this.hamlet.isLoggedIn(),\n });\n }\n\n setProducts() {\n this.showBundle = this.params.showBundle || false;\n if (this.products && !this.showBundle) {\n this.productKeys =\n this.productKeys || _.without(this.products.split(\",\"), \"\");\n this.assignSelectedProducts(this.productKeys);\n this.productKeys = _.uniq(this.productKeys);\n return;\n }\n\n this.hamletProducts = this.hamlet.getIdentifiedProducts();\n this.hamletCoreProducts = this.hamlet.getCoreProducts();\n this.hamletAddonProducts = this.hamlet.getAddons();\n\n this.activeBundle = null;\n if (this.showBundle) {\n if (!this.hamletProducts.length) {\n this.activeBundle = this.checkUrlBundleKey();\n } else {\n let productKeyMatch = _.pluck(\n this.hamletCoreProducts,\n \"productKey\"\n ).join(\", \");\n this.activeBundle = this.findBundleWithProductsKeys(productKeyMatch);\n }\n\n this.activeBundle =\n this.activeBundle || this.params.bundleData[\"default\"];\n this.products = this.activeBundle.bundleProductKeys || \"\";\n this.products = this.products.replace(/ /g, \"\");\n } else {\n this.products = _.pluck(this.hamletCoreProducts, \"productKey\").join(\",\");\n }\n\n this.productKeys =\n this.productKeys || _.without(this.products.split(\",\"), \"\");\n\n /**\n NUXAPOLLO-611 reset product keys based on url\n */\n if (this.features.enableCombinedBundles) {\n this.productKeys = _.without(this.products.split(\",\"), \"\");\n }\n\n this.assignSelectedProducts(this.productKeys);\n this.assignSelectedExternalProducts();\n\n this.productKeys = _.uniq(this.productKeys);\n this.productKeys = this.productKeys.concat(\n _.pluck(this.hamletAddonProducts, \"productKey\")\n );\n // Override for no products/addons still after checking all sources - JSW + Confluence default;\n if (\n this.availableProducts.length &&\n !this.selectedProducts.length &&\n !this.selectedAddons.length\n ) {\n this.assignSelectedProducts([\n \"jira-software.ondemand\",\n \"confluence.ondemand\",\n ]);\n }\n if (this.showBundle) {\n this.renderBundle(this.activeBundle);\n }\n }\n\n findBundleWithProductsKeys(matchKey: string) {\n const bundles = this.params.bundleData;\n let result = null;\n\n Object.keys(bundles).map((bundleKey) => {\n let bundle = bundles[bundleKey];\n if (bundle.bundleProductKeys === matchKey) {\n result = bundle;\n }\n });\n return result;\n }\n\n getCurrentUrl() {\n const location = Environment.getWindowLocation();\n const internationalSubdomain = Environment.getInternationalSubdomain();\n var newLocation = location.pathname;\n if (\n this.features.enableCombinedBundles &&\n newLocation.includes(\"/signup-bundles\")\n ) {\n newLocation = location.pathname.replace(\"signup-bundles\", \"signup\");\n }\n let search = location.search;\n if (internationalSubdomain && !this.getLocaleParam()) {\n search = search.length\n ? `${search}&lang=${internationalSubdomain}`\n : `?lang=${internationalSubdomain}`;\n }\n\n return encodeURIComponent(`${this.baseDomain}${newLocation}${search}`);\n }\n\n getLoginAccountUrl() {\n const loginUrl = `${this.baseIdDomain}/login?`;\n const currentUrl = this.getCurrentUrl();\n const atlOrigin = `atlOrigin=${this.loginOrigin.encode()}`;\n const continueUrl = `&continue=${currentUrl}`;\n return loginUrl + atlOrigin + continueUrl;\n }\n\n getSwitchAccountUrl() {\n const logoutUrl = `${this.baseIdDomain}/logout?continue=`;\n const loginUrl = `${this.baseIdDomain}/login?`;\n const currentUrl = `&continue=${this.getCurrentUrl()}`;\n const atlOrigin = `atlOrigin=${this.switchOrigin.encode()}`;\n\n let continueUrl = currentUrl;\n if (this.socialLogin && this.socialLogin.detectSocialLoginPage()) {\n continueUrl = `&continue=${encodeURIComponent(\n this.socialLogin.getWacTryCloudSignupUrl()\n )}`;\n }\n\n return logoutUrl + encodeURIComponent(loginUrl + atlOrigin + continueUrl);\n }\n\n bindElements() {\n this.form = $(\"form\", this.$domRoot);\n this.cofsListContainer = $(\n \".heading--products .products-list\",\n this.$domRoot\n );\n this.fields = $(\"input:input, textarea:input\", this.form);\n this.emailField = this.fields.filter(\"[name=email]\");\n this.accountNameField = this.fields.filter(\"[name=accountName]\");\n this.firstNameField = this.fields.filter(\"[name=firstName]\");\n this.lastNameField = this.fields.filter(\"[name=lastName]\");\n this.passwordField = this.fields.filter(\"[name=aodPass]\");\n this.showPasswordField = this.fields.filter(\"#show-password-checkbox\");\n this.submitButton = this.form.find(\".imkt--cloud-signup__button--submit\");\n this.timeoutWarnings = $(\".timeout-warnings\", this.$domRoot);\n this.passwordScoreTemplateTarget = this.form.find(\n \".passwordstrength--wrapper\"\n );\n this.developerWarning = this.form.find(\".developer-container\");\n this.captchaContainer = this.form.find(\".g-recaptcha-container\");\n this.marketingConsentContainer = this.form.find(\n \".marketing-consent--container\"\n );\n this.eulaContainer = this.form.find(\".eula-container\");\n this.annualSubscriptionContent = $(\"#annual-subscription-chat-link\");\n this.linkLoginUser = this.emailField.parent().find(\".login-account-url\");\n this.linkExistingUser = this.emailField\n .parent()\n .find(\".switch-account-url\");\n this.dataRegionField = this.form.find(\"input[type=radio][name=dataRegion]\");\n }\n\n updateSignupDomainLabels() {\n const signupDomainLabels = this.form\n .parent()\n .find(\".signup-domain, .site-domain-radix, .signupDomain\");\n\n if (!Environment.isProduction() && signupDomainLabels.length) {\n signupDomainLabels.text(\".jira-dev.com\");\n }\n\n // test to see if we are on an opsgenie signup page\n if (this.opsgenieSignupIsActive) {\n const siteInputDomain = this.form.parent().find(\".signup-domain\");\n var siteHost = this.getOpsgenieSiteHostName();\n siteInputDomain.addClass(\"opsgenie-signup-domain\");\n siteInputDomain.text(siteHost);\n this.accountNameField.addClass(\"opsgenie-signup-domain\");\n }\n }\n\n updateIdUrls() {\n this.linkLoginUser.attr(\"href\", this.getLoginAccountUrl());\n this.linkExistingUser.attr(\"href\", this.getSwitchAccountUrl());\n }\n\n bindEvents() {\n var self = this;\n\n // data center region change handler, update site domain on change\n self.dataRegionField.change(function () {\n // test to see if we are on an opsgenie signup page\n if (self.opsgenieSignupIsActive) {\n const signupDomainLabels = self.form.parent().find(\".signup-domain\");\n\n const siteHost = self.getOpsgenieSiteHostName();\n\n signupDomainLabels.text(siteHost);\n Segment.track({\n category: \"wac\",\n action: \"Opsgenie data region\",\n label: this.value,\n });\n }\n });\n\n onThrottled(this.passwordField,\n \"input\",\n function (e) {\n self.checkPasswordField(self.passwordField);\n self.renderPasswordStrength(\n self.pw.evaluatePasswordStrength(e.currentTarget.value)\n );\n self.updateFormReady();\n },\n 300\n );\n this.showPasswordField.on(\"click\", this.togglePasswordShow.bind(this));\n\n // Generic Track Link directive\n $(\"a[track-link-ga]\").on(\"click\", function () {\n GoogleAnalytics.track({\n category: \"cart-cloud\",\n action: \"Clicked\",\n label: $(this).attr(\"track-link-ga\"),\n });\n });\n\n // Hamlet validation required on these user inputs\n onThrottled(this.emailField,\n \"input\",\n this.validateEmailField.bind(this),\n 300\n );\n\n onThrottled(this.accountNameField,\n \"input\",\n this.validateAccountField.bind(this),\n 300\n );\n\n // Check form ready state on throttled input of first and last name fields\n onThrottled(this.firstNameField,\n \"input\",\n () => {\n this.checkNameField(this.firstNameField, true);\n this.updateFormReady();\n },\n 300\n );\n onThrottled(this.lastNameField,\n \"input\",\n () => {\n this.checkNameField(this.lastNameField, true);\n this.updateFormReady();\n },\n 300\n );\n\n this.form.on(\"submit\", (e) => {\n e.preventDefault();\n this.submitHandler();\n });\n\n $(document).on(\"triggerFormInitTracking\", function () {\n Tracking.trackAll(\n \"cart-cloud\",\n \"Viewed Checkout Step\",\n \"view-signup-page\",\n {},\n true\n );\n self.trackAnalyticsProduct(\n 0,\n \"Added Product\",\n \"cart-cloud.added-product.\"\n );\n });\n\n // Simplified form events\n if (this.features.simpleForm) {\n $(document).on(\n \"click\",\n \".imkt--cloud-signup__form--simplified .simplified-switch-site\",\n function (e) {\n e.preventDefault();\n\n $(\".imkt--cloud-signup__form--simplified .site-chooser-1\").hide();\n $(\".imkt--cloud-signup__form--simplified .site-chooser-2\").show();\n }\n );\n\n $(document).on(\n \"click\",\n \".imkt--cloud-signup__form--simplified .simplified-start-new\",\n function (e) {\n e.preventDefault();\n\n // Experiment for 'wcf-459'\n if (\n self.useAlternateLayout &&\n !self.possiblyPremium &&\n !self.migrationSourceUuid &&\n !self.opsgenieSignupIsActive\n ) {\n $(\".trial-info-data__trial-length\", self.$domRoot).text(\n self.trialBundleData.signupOfferingTrialLengthTextNewSite\n );\n }\n if (\n self.useAlternateLayout &&\n self.possiblyPremium &&\n !self.migrationSourceUuid &&\n self.edition !== self.availableEditions.free\n ) {\n $(\".trial-info-data__features-heading\", self.$domRoot).text(\n self.trialBundleData.signupOfferingTrialLengthTextNewSite\n );\n }\n // (End) Experiment for 'wcf-459'\n\n $(\".imkt--cloud-signup__form--simplified\").hide();\n $(\".imkt--cloud-signup__form\").show();\n\n self.trackOptimizedFormEvents(\"grow.wcf.n2eform.start-new-clicked\");\n }\n );\n\n $(document).on(\n \"change\",\n \".imkt--cloud-signup__form--simplified input[name='imkt--selected-site']\",\n function () {\n var radioButtons = $(\n \".imkt--cloud-signup__form--simplified input[name='imkt--selected-site']\"\n );\n var selectedIndex = radioButtons.index(\n radioButtons.filter(\":checked\")\n );\n self.simplifiedSiteSelected = self.accounts[selectedIndex];\n if ($(this)[0]) {\n self.validateFreeAnnual($(this)[0].value);\n }\n self.trackOptimizedFormEvents(\"grow.wcf.n2eform.switched\");\n }\n );\n\n $(document).on(\n \"click\",\n \".imkt--cloud-signup__form--simplified .imkt--cloud-signup__button--submit\",\n function (e) {\n e.preventDefault();\n self.disableSubmitButtonSimplified();\n self.submitSimplifiedForm(\n self.simplifiedSiteSelected,\n self.productKeys\n );\n }\n );\n\n $(document).on(\n \"click\",\n \".imkt--cloud-signup__form--simplified .switch-account-url-n2e\",\n function (e) {\n e.preventDefault();\n tracking.trackEvent(\n \"wac-signup-existing-user-switch\",\n self.switchOrigin.toAnalyticsAttributes({ hasGeneratedId: true })\n );\n window.location.href = self.getSwitchAccountUrl();\n }\n );\n }\n\n self.linkExistingUser.on(\"click\", function (e) {\n e.preventDefault();\n tracking.trackEvent(\n \"wac-signup-existing-user-switch\",\n self.switchOrigin.toAnalyticsAttributes({ hasGeneratedId: true })\n );\n window.location.href = self.getSwitchAccountUrl();\n });\n\n self.linkLoginUser.on(\"click\", function (e) {\n e.preventDefault();\n tracking.trackEvent(\n \"wac-signup-existing-user-signin\",\n self.loginOrigin.toAnalyticsAttributes({ hasGeneratedId: true })\n );\n window.location.href = self.getLoginAccountUrl();\n });\n }\n\n submitHandler() {\n this.disableSubmitButton();\n this.trackOnSubmitEvents();\n this.validateForm();\n }\n\n formRenderLoggedIn(user) {\n //WCF-1796 we need to remove the social heading when the user is logged in\n $(\".heading--social-show\").remove();\n this.formRenderReady();\n\n if (user.myDetails.email) {\n // Update email address field and disable it\n this.emailField.val(user.myDetails.email);\n this.emailField.attr(\"disabled\", \"disabled\").addClass(\"disabled\");\n this.emailField\n .nextAll(\".error-message, .aui-icon, .hamlet-error-message\")\n .hide();\n this.emailField.parent().find(\".inform-message.logged-in\").show();\n this.passwordField.parent().remove();\n\n if (this.possiblyPremium && this.edition === \"premium\") {\n $(this.params.fieldIds.sitenameId).find(\"label .help\").replaceWith(`\n
    \n
    \n \n ${this.trialBundleData.premiumUpgradeHelpTooltipTrigger}\n
    \n
    \n ${this.trialBundleData.premiumUpgradeHelpTooltipText}\n
    \n
    \n `);\n }\n\n if (!this.accountNameField.val()) {\n this.accountNameField.parent().find(\".inform-message.logged-in\").show();\n }\n\n // Hide captcha\n if (this.features.recaptcha) {\n this.features.recaptcha = false;\n this.captchaContainer.remove();\n }\n\n // Update name fields\n this.firstNameField.val(user.myDetails.firstName);\n this.lastNameField.val(user.myDetails.lastName);\n\n // No random generated site name for logged in users\n this.features.enableAutogenSiteName = false;\n this.changeSiteNameVisibility(); // force site name to be visible if we've already hidden it\n\n // NUXAPOLLO-273 No first impression for logged in users.\n this.features.enableFirstImpressions = false;\n\n // NUXAPOLLO-611 No combined bundles signup for logged in users.\n this.features.enableCombinedBundles = false;\n\n // NUXAPOLLO-210 No Confluence account setup for logged in users.\n this.features.enableConfluenceAccountSetup = false;\n\n this.validateEmailField();\n this.updateFormReady();\n\n this.growthTracker.sendTrack(\"onload.loggedin\");\n\n if (\n this.features.simpleForm &&\n this.validateN2EProducts() &&\n !this.isDeveloper\n ) {\n // sites as Free edition or regular trial should be eligible to be overlaid\n const extendedTrialOverridableSites =\n this.hamlet.getExtendedTrialAvailableSites();\n\n // filter users sites by products keys being signed up for\n let filteredSites = this.hamlet.getSites().filter((site) => {\n return (\n !_.some(\n site.products,\n (product) => this.productKeys.indexOf(product) > -1\n ) || extendedTrialOverridableSites.includes(site.cloudId)\n );\n });\n\n const sortByKey = (array, key) => {\n return array.sort((a, b) => {\n let x = a[key];\n let y = b[key];\n return x < y ? -1 : x > y ? 1 : 0;\n });\n };\n this.accounts = sortByKey(filteredSites, \"displayName\");\n this.renderOptimizedFlowForm(\n user.myDetails.email,\n user.myDetails.firstName\n );\n }\n\n // Free: check if first site is on annual billing\n if (\n this.accounts &&\n this.accounts.length > 0 &&\n this.edition == this.availableEditions.free\n ) {\n this.validateFreeAnnualOnLoad(this.accounts[0]);\n }\n }\n\n $(\".icon--cohort-pending\").remove();\n this.$domRoot.find(\".cohort-pending\").removeClass(\"cohort-pending\");\n $(this.$domRoot)\n .find(\"label .icon--help\")\n .mouseover(() => {\n Tracking.trackAll(\n \"cart-cloud\",\n \"Tooltip displayed\",\n \"?\",\n { labelContainer: \"help\", existingUser: true },\n false\n );\n });\n $(\"#host_on_server_link a\").click((e) => {\n if (e.target.href.match(\".*/download\"))\n Tracking.trackAll(\n \"cart-cloud\",\n \"Link clicked\",\n \"host this on your own server?\",\n { labelContainer: \"cloudSignupBundle\", existingUser: true },\n false\n );\n });\n }\n\n isJsdStandalone(bundle) {\n return (\n (bundle.queryParam &&\n (bundle.queryParam === \"jira-service-desk\" ||\n bundle.queryParam === \"jira-service-management\")) ||\n (bundle.bundleProductKeys &&\n (bundle.bundleProductKeys === \"jira-servicedesk.ondemand\" ||\n bundle.bundleProductKeys === \"jira-service-management.ondemand\"))\n );\n }\n\n renderBundle(bundle) {\n var template = _.template(\n $(\".template--cloud-signup__form--bundle\").html()\n );\n\n var getFeatureList = (edition) => {\n // Opsgenie only supports one edition\n if (this.opsgenieSignupIsActive) {\n return this.trialBundleData.featureIncludesFreeOpsgenie;\n }\n\n if (bundle.queryParam === \"statuspage\") {\n return this.trialBundleData.featureIncludesStatuspage;\n }\n\n switch (edition) {\n case this.availableEditions.free:\n if (bundle.queryParam) {\n if (this.isJsdStandalone(bundle)) {\n // free bundle, just JSD/JSM\n return this.trialBundleData.featureIncludesFreeJSD;\n } else if (\n bundle.queryParam.indexOf(\"jira-service-desk\") > -1 ||\n bundle.queryParam.indexOf(\"jira-service-management\") > -1 ||\n bundle.bundleProductKeys.indexOf(\"jira-servicedesk.ondemand\") >\n -1 ||\n bundle.bundleProductKeys.indexOf(\n \"jira-service-management.ondemand\"\n ) > -1\n ) {\n // free bundle that includes JSD\n return this.trialBundleData.featureIncludesFreeBundleJSD;\n }\n }\n return this.trialBundleData.featureIncludesFree;\n case this.availableEditions.premium:\n if (this.isJsdStandalone(bundle)) {\n return this.trialBundleData.featureIncludesPremiumJSD;\n }\n return this.trialBundleData.featureIncludesPremium;\n case this.availableEditions.standard:\n if (this.isJsdStandalone(bundle)) {\n return this.trialBundleData.featureIncludesStandardJSD;\n }\n return this.trialBundleData.featureIncludesStandard;\n default:\n if (this.isJsdStandalone(bundle)) {\n return this.trialBundleData.featureIncludesStandardJSD;\n }\n return this.trialBundleData.featureIncludesStandard;\n }\n };\n\n $(\".column--cloud-signup-bundle\").append(\n template({\n useAlternateLayout: this.useAlternateLayout, // Experiment for 'wcf-459'\n trialData: this.trialBundleData, // Experiment for 'wcf-459'\n featureList: getFeatureList(this.edition),\n data: bundle,\n bundleProducts: this.selectedProducts,\n addons: this.hamletAddonProducts,\n edition: this.edition,\n isPremiumEdition: this.edition === \"premium\",\n possiblyPremium: this.possiblyPremium,\n isExtendedTrial: !!this.migrationSourceUuid,\n isOpsgenie: this.opsgenieSignupIsActive,\n isStatuspage: this.activeBundle.queryParam === \"statuspage\",\n })\n );\n\n // We swap out trail length info for Opsgenie\n if (this.opsgenieSignupIsActive) {\n $(\".trial-info-data__edition-text\", this.$domRoot).text(\n this.trialBundleData.signupOfferingTrialLengthTextNewSiteOpsgenie\n );\n }\n }\n\n /**\n * Enable simplified signup form if all true:\n * - feature is turned on in CMS\n * - hamlet returned accounts for user\n * - only one selected product (no bundles allowed yet)\n */\n renderOptimizedFlowForm(email, firstName) {\n var productsIncludeStride = this.productKeys.indexOf(\"hipchat.cloud\") > -1;\n\n if (this.accounts.length && !productsIncludeStride) {\n this.simplifiedSiteSelected = this.accounts[0];\n\n var simpleTemplate = _.template(\n $(\".template--cloud-signup__form--simplified\").html()\n );\n this.form.hide();\n this.form.parent().append(\n simpleTemplate({\n useAlternateLayout: this.useAlternateLayout, // Experiment for 'wcf-459'\n trialData: this.trialBundleData, // Experiment for 'wcf-459'\n accounts: this.accounts,\n labels: this.labels,\n email: email,\n firstName: firstName, // Experiment for 'wcf-459'\n switchAccountUrl: this.getSwitchAccountUrl(),\n isPremiumEdition: this.edition === \"premium\",\n possiblyPremium: this.possiblyPremium,\n isExtendedTrial: !!this.migrationSourceUuid,\n })\n );\n\n if (\n this.useAlternateLayout &&\n this.possiblyPremium &&\n this.edition !== this.availableEditions.free &&\n !this.migrationSourceUuid &&\n !this.opsgenieSignupIsActive &&\n this.activeBundle.bundleProductKeys !== \"statuspage\"\n ) {\n $(\".trial-info-data__features-heading\", this.$domRoot).text(\n this.trialBundleData.signupOfferingTrialLengthTextExistingSite\n );\n }\n\n this.trackOptimizedFormEvents(\"grow.wcf.n2eform.loaded\");\n } else {\n this.trackOptimizedFormEvents(\"grow.wcf.n2eform.no-valid-sites\");\n }\n }\n\n // Check the form to see if we should enable the submit button\n updateFormReady() {\n if (this.isFormReady()) {\n this.enableSubmitButton();\n } else {\n var preventSubmitActionText = true;\n this.disableSubmitButton(preventSubmitActionText);\n }\n }\n\n // Form is ready for submit if fields are valid\n isFormReady() {\n // if form has empty text fields\n var emptyFields = false;\n\n this.form.find(\".required\").each((i, item) => {\n if (!$(item).val()) {\n emptyFields = true;\n return false;\n }\n });\n\n if (emptyFields) {\n return false;\n }\n\n // if form has errors\n if (this.form.find(\".has-error\").length) {\n return false;\n }\n\n return true;\n }\n\n trackOptimizedFormEvents(eventName) {\n var anonymous_id = storage.getCookie(\"ajs_anonymous_id\") || \"-\";\n var opt_id = \"unknown\";\n var cohort = this.productKeys.length > 1 ? \"control\" : \"variation-home\";\n\n var siteHost = Environment.isProduction()\n ? \".atlassian.net\"\n : \".jira-dev.com\";\n if (this.opsgenieSignupIsActive) {\n siteHost = this.getOpsgenieSiteHostName();\n }\n\n var selectedSiteFull = this.simplifiedSiteSelected.displayName + siteHost;\n\n var postBody = {\n name: eventName,\n properties: {\n variationValue: cohort,\n formId: \"wcf\",\n opt_id: opt_id,\n pathname: window.location.pathname || \"\",\n products: this.productKeys.join(\",\"),\n },\n cloud_id: this.simplifiedSiteSelected.cloudId || \"\",\n server: selectedSiteFull,\n serverTime: Date.now(),\n product: \"wac\",\n user: anonymous_id,\n };\n\n GASv2.track(postBody);\n }\n\n // this takes the products in productkeys and check availableProducts for their N2E properties\n // if ALL the products have N2E enabled, then we pass the check\n validateN2EProducts() {\n var self = this;\n var enableOptimizedFlow = true;\n this.productKeys.forEach(function (product) {\n var matchingProduct = _.find(self.availableProducts, {\n product_key: product,\n });\n if (matchingProduct) {\n enableOptimizedFlow =\n enableOptimizedFlow && matchingProduct.n2e_enabled;\n }\n });\n return enableOptimizedFlow;\n }\n\n validateEmailField() {\n var self = this;\n var email = this.emailField.val();\n\n // reset error messages\n this.emailField\n .nextAll(\".error-message, .hamlet-error-message, .aui-icon\")\n .hide();\n this.emailField.removeClass(this.ERROR_CLASS);\n\n // Experiment for 'wcf-459'\n if (this.useAlternateLayout) {\n this.emailField.removeClass(\"is-success\");\n }\n\n // Fail fast if email was filled in from logged in session\n // Note: if user is logged in, email should be already assigned and disabled\n if (email && this.hamlet.isLoggedIn()) {\n this.updateFormReady();\n return;\n }\n\n // test for valid email syntax\n var re =\n /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n if (!re.test(email)) {\n this.emailField.nextAll(\".error-message\").show();\n this.emailField.addClass(this.ERROR_CLASS);\n this.growthTracker.sendTrack(\"email.errors\");\n this.updateFormReady();\n return false;\n }\n\n // show spinner icon\n this.emailField\n .nextAll(\".aui-iconfont-build\")\n .css(\"display\", \"inline-block\");\n\n // Check hamlet for existing email\n var successApi = function (res) {\n self.emailField.nextAll(\".aui-iconfont-build\").hide();\n\n // Success response means that email exists, which we dont want here...\n var success = res && !res.success;\n if (!success && res.message) {\n self.emailField.nextAll(\".hamlet-error-message\").show();\n self.emailField.addClass(self.ERROR_CLASS);\n self.growthTracker.sendTrack(\"email.errors\");\n } else {\n self.emailField\n .nextAll(\".email-validation-success\")\n .css(\"display\", \"inline-block\");\n\n // Experiment for 'wcf-459'\n if (self.useAlternateLayout) {\n self.emailField.addClass(\"is-success\");\n }\n }\n self.updateFormReady();\n };\n var failApi = function () {\n self.emailField.nextAll(\".hamlet-error-message\").show();\n self.emailField.addClass(self.ERROR_CLASS);\n self.emailField.nextAll(\".aui-iconfont-build\").hide();\n self.growthTracker.sendTrack(\"email.errors\");\n self.updateFormReady();\n };\n\n this.hamlet\n .validateEmail(email)\n .then((result) => successApi(result))\n .catch((e) => failApi(e));\n }\n\n validateAccountField() {\n var self = this;\n var value = this.accountNameField.val();\n\n this.accountNameField\n .nextAll(\".error-message, .aui-icon, .inform-message\")\n .hide();\n this.accountNameField.removeClass(this.ERROR_CLASS);\n\n // Experiment for 'wcf-459'\n if (this.useAlternateLayout) {\n this.accountNameField.removeClass(\"is-success\");\n }\n\n if (!value) {\n this.updateFormReady();\n return false;\n }\n\n if (\n !this.cofs.checkCloudNameMin(value) ||\n !this.cofs.isValidCloudNamePattern(value)\n ) {\n this.accountNameField.nextAll(\".error-message.domain-length-min\").show();\n this.accountNameField.addClass(this.ERROR_CLASS);\n this.updateFormReady();\n return false;\n }\n if (!this.cofs.checkCloudNameMax(value)) {\n this.accountNameField.nextAll(\".error-message.domain-length-max\").show();\n this.accountNameField.addClass(this.ERROR_CLASS);\n this.updateFormReady();\n return false;\n }\n\n this.accountNameField\n .nextAll(\".aui-iconfont-build\")\n .css(\"display\", \"inline-block\");\n\n var successApi = function (res) {\n var success = res && res.available;\n self.accountNameField.nextAll(\".aui-iconfont-build\").hide();\n\n // Show user the domain is in use\n if (success) {\n // domain is available\n self.accountNameField\n .nextAll(\".validation-success\")\n .css(\"display\", \"inline-block\");\n\n // Experiment for 'wcf-459'\n if (self.useAlternateLayout) {\n self.accountNameField.addClass(\"is-success\");\n }\n } else {\n self.accountNameField\n .nextAll(\".error-message.domain-unavailable\")\n .show();\n self.accountNameField.addClass(self.ERROR_CLASS);\n\n // Experiment for 'wcf-459'\n if (this.useAlternateLayout) {\n this.accountNameField.removeClass(\"is-success\");\n }\n\n // If user is logged in ask them if they want to add products their domain\n if (self.hamlet.isLoggedIn()) {\n self.accountNameField\n .nextAll(\".inform-message.domain-unavailable.logged-in\")\n .show();\n }\n\n self.growthTracker.sendTrack(\"accountName.errors\");\n }\n self.updateFormReady();\n };\n\n var failApi = function () {\n self.accountNameField.nextAll(\".aui-iconfont-build\").hide();\n self.accountNameField.nextAll(\".error-message.domain-unavailable\").show();\n self.accountNameField.addClass(self.ERROR_CLASS);\n self.growthTracker.sendTrack(\"accountName.errors\");\n self.updateFormReady();\n };\n\n this.cofs\n .validateCNAS(value)\n .then((result) => successApi(result))\n .catch(() => failApi());\n }\n\n validateForm() {\n var self = this;\n\n if (!this.validateClientSide()) {\n return false;\n }\n\n // Track form submit attempt (pre-server validation)\n var productTrackingValue = {\n value: `cart-cloud.submitted.${this.selectedProducts[0].product_key}`,\n };\n var bxpProductTrackingValue = { value: \"cart-cloud.submitted.bxp\" };\n\n Tracking.trackAll(\n \"cart-cloud\",\n \"Submitted\",\n \"cloud\",\n productTrackingValue,\n false\n );\n Tracking.trackAll(\n \"cart-cloud\",\n \"Submitted.user.status\",\n \"form event\",\n { existingUser: this.hamlet.isLoggedIn() },\n false\n );\n Tracking.trackAll(\n \"cart-cloud\",\n \"Submitted BXP Form\",\n \"cloud\",\n bxpProductTrackingValue,\n false\n );\n\n // Disable submit while server side validating\n if (!this.features.performanceBoost) {\n this.disableSubmitButton();\n }\n\n // Popup warning for external products signup\n if (self.selectedAddons.length) {\n self.popupReminderExternalProducts();\n }\n\n // Validate server side\n this.formData = _.object(\n this.form.serializeArray().map(function (v) {\n return [v.name, v.value];\n })\n );\n this.formData[\"productKeys\"] = this.productKeys;\n if (typeof this.formData[\"email\"] === \"undefined\") {\n this.formData[\"email\"] = this.emailField.val();\n }\n\n if (this.features.enableAutogenSiteName) {\n this.formData[\"accountName\"] = `NUXSIGNUP-default-${Date.now()}`;\n }\n\n this.submitCloud();\n }\n\n validateClientSide() {\n // reset main error message\n this.form.find(\".validation-error-message, .error-message\").hide();\n this.hideErrorCaptcha();\n\n this.checkField(this.firstNameField, true);\n this.checkField(this.lastNameField, true);\n this.checkAccountField(this.accountNameField);\n this.checkField(this.emailField);\n this.checkPasswordField(this.passwordField);\n\n // Find visible field errors\n var errors = $(\".error-message, .hamlet-error-message\").filter(\":visible\");\n if (errors.length) {\n this.form.find(\".validation-error-message\").show();\n\n // Send each client-side validation error to analytics\n $(errors).each(function () {\n var errorMsg = $(this)\n .text()\n .toLowerCase()\n .replace(/ /g, \"-\")\n .replace(/,/g, \"\");\n if (errorMsg) {\n Tracking.trackAll(\n \"cart-cloud\",\n \"Submitted with validation Error\",\n \"cloud\",\n { value: errorMsg },\n false\n );\n }\n });\n\n return false;\n }\n\n return true;\n }\n\n submitSimplifiedForm(site, productKeys) {\n const startUrl = Environment.getStartUrl();\n let startSearch = `?startTrialProduct=${productKeys[0]}&startTrialCloudId=${site.cloudId\n }&startTrialInstance=${site.url.replace(\"https://\", \"\")}`;\n\n if (this.edition) {\n startSearch += `&edition=${this.edition}`;\n }\n if (this.migrationSourceUuid) {\n startSearch += `&migrationSourceUuid=${this.migrationSourceUuid}`;\n }\n\n const adminPath = \"/admin/billing/applications\";\n const adminSearch = \"\";\n\n let url = `${site.url}${adminPath}${adminSearch}`;\n let cohort = \"control\";\n\n if (productKeys.length === 1) {\n url = `${startUrl}${startSearch}`;\n cohort = \"variation-start\";\n }\n\n const anonymous_id =\n storage.getCookie(\"ajs_anonymous_id\") || \"-\";\n const opt_id = \"unknown\";\n\n const eventName = \"grow.wcf.n2eform.submit\";\n\n const postBody = {\n name: eventName,\n properties: {\n variationValue: cohort,\n formId: \"wcf\",\n opt_id: opt_id,\n pathname: window.location.pathname || \"\",\n products: productKeys.join(\",\"),\n },\n cloud_id: site.cloudId || \"\",\n server: url,\n serverTime: Date.now(),\n product: \"wac\",\n user: anonymous_id,\n };\n\n var redirectCallback = function () {\n window.location.href = url;\n };\n\n GASv2.track(postBody).then(redirectCallback).catch(redirectCallback);\n }\n\n isCloudIdAnnualAsync(options, errCallback) {\n const { cloudId, cloudName, userId } = options;\n $(\".site-switcher label\").removeClass(\"error-active\");\n\n this.cofs\n .isCloudIdAnnual(cloudId, userId)\n .then((result) => {\n if (result === true) {\n $(`.site-switcher label[for='${cloudName}']`).addClass(\n \"error-active\"\n );\n this.disableSubmitButtonSimplified();\n if (errCallback) errCallback();\n } else {\n this.enableSubmitButtonSimplified();\n }\n })\n .catch((e) => console.error(e));\n }\n\n validateFreeAnnualOnLoad(cloudObj) {\n const opts = {\n cloudId: cloudObj.cloudId,\n cloudName: cloudObj.displayName,\n userId: this.user?.myDetails?.aaid,\n };\n\n if (!opts.cloudId || !opts.cloudName || !opts.userId) {\n return;\n }\n\n this.isCloudIdAnnualAsync(opts, function () {\n $(\".imkt--cloud-signup__form--simplified .site-chooser-1\").hide();\n $(\".imkt--cloud-signup__form--simplified .site-chooser-2\").show();\n });\n }\n\n // validate that Free is not annual\n validateFreeAnnual(inputId) {\n var userId = this.user?.myDetails?.aaid;\n var cloudId = this.simplifiedSiteSelected.cloudId;\n\n if (\n !userId ||\n !cloudId ||\n !inputId ||\n this.edition !== this.availableEditions.free\n )\n return;\n\n this.isCloudIdAnnualAsync({\n cloudId,\n cloudName: inputId,\n userId,\n });\n }\n\n submitCloud() {\n this.cofsCreateCloud();\n }\n\n cofsCreateCloud() {\n var self = this;\n var data = this.formData;\n const submitThroughBxp = this.params.submitBxpExpress || false;\n\n // Data Center Region\n // remove if we are not dealing with opsgenie product\n if (!this.opsgenieSignupIsActive) {\n data.dataRegion = null;\n } else {\n data.initialProductURL = this.getOpsgenieInitialProductURL();\n }\n\n // Insert coupon if its valid/exists\n if (this.coupon) {\n data.coupon = this.coupon;\n }\n\n // Insert template id if it exists\n if (this.templateId) {\n data.templateId = this.templateId;\n }\n\n // Insert Users Captcha token\n if (!this.hamlet.isLoggedIn()) {\n data.responseToken = grecaptcha.getResponse();\n this.userSubmittedWithCaptcha = true;\n }\n\n // Insert consent payload if gdpr enabled\n if (this.params.useGDPR) {\n if (this.useSocialLogin) {\n // In social login flow, Identity will capture and send the marketing consent\n // info to the ConsentHub once the user confirms the ATL account creation.\n // Setting consent data to undefined in the payload to COFS create cloud API\n // will allow COFS to skip the CONSENTHUB_SEND_CONSENT step and avoid overriding\n // the marketing consent info captured by Identity.\n delete data.consent;\n } else {\n var consent = this.buildConsentPayload();\n\n if (consent) {\n data.consent = consent;\n }\n }\n }\n\n // Insert edition property if it exists\n if (this.edition) {\n data.edition = this.edition;\n }\n\n // Insert migrationSourceUuid property if it exists\n if (this.migrationSourceUuid) {\n data.migrationSourceUuid = this.migrationSourceUuid;\n }\n\n this.experiments.insertExperimentProperties(data);\n var cofsData = this.cofs.mapCofsData(data, {\n submitThroughBxp,\n enableAutogenSiteName:\n this.features.enableAutogenSiteName || this.useSocialLogin,\n useSocialLogin: this.useSocialLogin,\n enableConfluenceAccountSetup: this.features.enableConfluenceAccountSetup,\n allowResendVerificationEmail: this.features.allowResendVerificationEmail,\n });\n\n var fail = function (error) {\n if (self.useSocialLogin) {\n self.socialLogin.showSocialLoginError(\"create-cloud-error\");\n return;\n }\n\n if (submitThroughBxp && error.response && error.response.data) {\n if (error.response.data.cloudName) {\n self.accountNameField\n .nextAll(\".error-message.domain-length-min\")\n .show();\n self.accountNameField.addClass(self.ERROR_CLASS);\n }\n if (error.response.data.firstName) {\n self.firstNameField.nextAll(\".error-message\").show();\n self.firstNameField.addClass(self.ERROR_CLASS);\n }\n if (error.response.data.lastName) {\n self.lastNameField.nextAll(\".error-message\").show();\n self.lastNameField.addClass(self.ERROR_CLASS);\n }\n if (error.response.data.email) {\n self.emailField.nextAll(\".error-message\").show();\n self.emailField.addClass(self.ERROR_CLASS);\n }\n if (error.response.data.adminPassword) {\n self.passwordField.nextAll(\".error-message\").show();\n self.passwordField.addClass(self.ERROR_CLASS);\n }\n }\n\n self.timeoutWarnings.find(\".error-message.timeout-error\").show();\n Tracking.trackAll(\n \"cart-cloud\",\n \"Submitted with Error\",\n \"cloud\",\n {},\n false\n );\n\n // Additional tracking for field error keys when server error\n self.trackServerValidationFieldErrors(error);\n\n return;\n };\n\n this.cofs\n .createCloud(cofsData, submitThroughBxp, this.hamlet.isLoggedIn())\n .then((resData) => {\n const cloudName = resData.cloudName\n ? resData.cloudName\n : cofsData.cloudName;\n const clientName = this.formData[\"accountName\"];\n const cloudId = resData.cloudId || null;\n\n try {\n if (this.useSocialLogin) {\n // Save social login cloud data to session storage to prevent additional cloud\n // creation if the user navigates back to the signup social login page via\n // the BACK button\n this.socialLogin.sessionStorageSaveCloudData(this.user.myDetails, {\n cloudId,\n cloudName,\n requestId: this.cofs.getRequestId(resData.progressUri),\n productKeys: this.productKeys,\n });\n }\n // eslint-disable-next-line no-empty\n } catch (e) { }\n\n if (this.useSocialLogin && this.features.enableConfluenceAccountSetup) {\n this.updateStatusResults(resData.progressUri, cloudName, clientName);\n } else if (this.useSocialLogin) {\n this.goToRenameSite(resData);\n } else {\n this.updateStatusResults(resData.progressUri, cloudName, clientName);\n }\n })\n .catch((e) => fail(e));\n }\n\n buildConsentPayload() {\n var consentEulaText = this.form\n .find(\".eula-container\")\n .html()\n .replace(/\"/g, '\\\\\"')\n .trim();\n var generalMarketingOptInLabel = this.form\n .find(\".marketing-consent--container\")\n .text()\n .replace(/\"/g, '\\\\\"')\n .trim();\n var marketingConsentGranted = this.form\n .find(\"#marketing_consent\")\n .is(\":checked\");\n\n if (!this.consentConfig.localeRequiresMarketingCommunicationOptIn) {\n generalMarketingOptInLabel = \"general consent captured\";\n marketingConsentGranted = true;\n }\n\n if (\n !this.consentConfig.locale ||\n !consentEulaText ||\n !generalMarketingOptInLabel\n ) {\n Tracking.trackAll(\n \"cart-cloud\",\n \"ConsentHub payload error\",\n \"cloud\",\n {},\n false\n );\n return false;\n }\n\n return {\n site: \"atlassian\",\n locale: this.consentConfig.locale,\n formUrl: encodeURIComponent(window.location.href),\n consents: [\n {\n key: \"termsOfService\",\n displayedText: consentEulaText,\n granted: true,\n },\n {\n key: \"privacyPolicy\",\n displayedText: consentEulaText,\n granted: true,\n },\n {\n key: \"generalMarketingOptIn\",\n displayedText: generalMarketingOptInLabel,\n granted: marketingConsentGranted,\n },\n ],\n };\n }\n\n cancelSignupTimeoutEvents() {\n clearTimeout(this.timerWarning);\n clearTimeout(this.timerError);\n clearInterval(this.tryAgain);\n\n this.timerWarning = 0;\n this.timerError = 0;\n this.tryAgain = 0;\n }\n\n /**\n * Track Analytics for complete signup\n */\n sendFinishAnalytics(cloudId, cloudName, requestId, callback) {\n this.growthTracker.sendTrack(\"form_submit_signup_success\");\n Tracking.trackAll(\n \"cart-cloud\",\n \"form_submit_signup_success.user.status\",\n \"form event\",\n { existingUser: this.hamlet.isLoggedIn() },\n false\n );\n this.growthTracker.sendTrackSubmitSuccess(\"bxp_form_success\");\n\n var anonymous_id = storage.getCookie(\"ajs_anonymous_id\") || \"-\"; // Anonymous user, otherwise send the userID\n var opt_id = \"unknown\";\n var cross_domain_id = storage.getCookie(\"seg_xid\") || \"\";\n\n if (typeof analytics !== \"undefined\") {\n var properties = {\n cloud_id: cloudId,\n request_id: requestId,\n product_list: this.productKeys.join(\",\"),\n cloud_name: cloudName,\n source: window.location.pathname,\n cross_domain_id: cross_domain_id,\n anonymous_id: anonymous_id,\n opt_id: opt_id,\n edition: this.edition || \"\",\n };\n tracking.trackEvent(\n \"create_cloud_embedded_form_wac\",\n properties\n );\n }\n\n Tracking.trackAll(\n \"cart-cloud\",\n \"Completed Checkout Step\",\n \"complete-signup-page\",\n {\n value: cloudId,\n requestId: requestId,\n isRecaptchaV2: this.features.recaptcha,\n isInvisibleRecaptcha: this.features.invisibleRecaptcha,\n existingUser: this.hamlet.isLoggedIn(),\n },\n true\n );\n this.trackAnalyticsProduct(\n 0,\n \"Confirmed Evaluation\",\n \"cart-cloud.confirmed-evaluation.\"\n );\n Tracking.trackAll(\n \"cart-cloud\",\n \"Confirmed Evaluation.user.status\",\n \"form event\",\n { existingUser: this.hamlet.isLoggedIn() },\n false\n );\n\n setTimeout(function () {\n callback();\n }, 800);\n }\n\n /**\n * Gets setup status using progressURI from cloud api request\n */\n updateStatusResults(progressUri, cloudName, clientName) {\n var self = this;\n if (!progressUri) {\n self.timeoutWarnings.find(\".error-message.timeout-error\").show();\n\n return;\n }\n\n if (typeof self.tryAgain === \"undefined\") {\n self.tryAgain = setInterval(function () {\n self.updateStatusResults(progressUri, cloudName, clientName);\n }, 1000);\n }\n\n if (typeof self.timerWarning === \"undefined\") {\n // Set timeouts to log slow account creations on first call\n self.timerWarning = setTimeout(function () {\n self.timeoutWarnings.find(\".error-message.timeout-warning\").show();\n Tracking.trackAll(\n \"cart-cloud\",\n \"Waited\",\n \"Sign-up page submitted >15s\",\n {},\n false\n );\n }, 15 * 1000);\n\n self.timerError = setTimeout(function () {\n self.timeoutWarnings.find(\".error-message.timeout-error\").show();\n Tracking.trackAll(\n \"cart-cloud\",\n \"Waited\",\n \"Sign-up page submitted >60s\",\n {},\n false\n );\n clearInterval(self.tryAgain);\n }, 60 * 1000);\n }\n\n $.ajax({\n url: progressUri,\n type: \"GET\",\n success: $.proxy(function (res) {\n var status =\n res.bestStatuses[\"HAMS_CREATE_CLOUD\"] !== \"SKIPPED\"\n ? res.bestStatuses[\"HAMS_CREATE_CLOUD\"]\n : res.bestStatuses[\"BAG_CREATE_CLOUD\"];\n\n switch (status) {\n case \"COMPLETE_SUCCESS\":\n case \"COMPLETE_MANUAL_SUCCESS\":\n self.cancelSignupTimeoutEvents();\n\n var cloudId = res.cloudId || null;\n var callback = function () {\n if (\n self.useSocialLogin &&\n self.features.enableConfluenceAccountSetup\n ) {\n self.goToAccountSetup(res.cloudId, res.requestId, cloudName);\n } else if (\n self.hamlet.isLoggedIn() ||\n self.experiments.bypassEmailCheck\n ) {\n self.goToConfirmation(res, progressUri, cloudName, clientName);\n } else {\n self.goToCheckEmail(res.cloudId, res.requestId, cloudName);\n }\n };\n\n self.sendFinishAnalytics(\n cloudId,\n cloudName,\n res.requestId,\n callback\n );\n return;\n\n case \"COMPLETE_ERROR\":\n self.cancelSignupTimeoutEvents();\n self.timeoutWarnings.find(\".error-message.timeout-error\").show();\n Tracking.trackAll(\n \"cart-cloud\",\n \"Progress Error\",\n \"cloud\",\n {},\n false\n );\n\n return;\n\n default:\n // Re-Try via tryAgain interval\n return;\n }\n }, this),\n error: $.proxy(function () {\n self.timeoutWarnings.find(\".error-message.timeout-error\").show();\n Tracking.trackAll(\n \"cart-cloud\",\n \"Progress Error\",\n \"cloud\",\n {},\n false\n );\n }, this),\n });\n }\n\n trackServerValidationFieldErrors(err) {\n try {\n if (_.has(err, \"fieldErrors\")) {\n Tracking.trackAll(\n \"cart-cloud\",\n \"Submitted with Error Field Errors\",\n \"cloud\",\n { value: JSON.stringify(err.fieldErrors) },\n false\n );\n } else if (_.has(err, \"error\")) {\n Tracking.trackAll(\n \"cart-cloud\",\n \"Submitted with Error Server Error\",\n \"cloud\",\n { value: JSON.stringify(err.error) },\n false\n );\n }\n } catch (e) {\n Tracking.trackAll(\n \"cart-cloud\",\n \"Submitted with Error Response\",\n \"cloud\",\n {},\n false\n );\n }\n }\n\n /**\n * On successful account creation, redirect to Confluence account setup\n */\n goToAccountSetup(cloudId, requestId, cloudName) {\n this.growthTracker.sendTrack(\"navigatedToAccountSetup\");\n\n if (!cloudId) {\n this.timeoutWarnings.find(\".error-message.timeout-error\").show();\n return false;\n }\n\n const ondemandurl = cloudName;\n const products = this.productKeys.join(\",\");\n var queryParams = {\n cloudId,\n ondemandurl,\n products,\n requestId,\n };\n\n var urlParams = $.param(queryParams);\n var nextUrl =\n this.baseDomain + this.URL_ACCOUNT_SETUP_PATH + \"/?\" + urlParams;\n\n window.location = nextUrl;\n return;\n }\n\n /**\n * On successful account creation, redirect to cloud success page\n */\n goToConfirmation(data, progressUri, cloudName) {\n this.growthTracker.sendTrack(\"navigatedToConfirmation\");\n\n if (!data) {\n this.timeoutWarnings.find(\".error-message.timeout-error\").show();\n return false;\n }\n\n let ondemandUrl = this.formData.accountName;\n if (cloudName) {\n ondemandUrl = cloudName;\n }\n\n var queryParams = {\n ondemandurl: ondemandUrl,\n products: this.productKeys.join(\",\"),\n cloudId: data.cloudId,\n requestId: this.cofs.getRequestId(progressUri),\n };\n\n if (this.opsgenieSignupIsActive) {\n queryParams.dataRegion = this.dataRegionField.filter(\":checked\").val();\n }\n\n var urlParams = $.param(queryParams);\n var nextUrl =\n this.baseDomain + this.URL_CONFIRMATION_PATH + \"/?\" + urlParams;\n\n window.location = nextUrl;\n return;\n }\n\n checkPerms(cloudId) {\n return retry(\n async (bail) => {\n // if anything throws, we retry\n let postBody = {\n dontRequirePrincipalInSite: \"true\",\n permissionId: \"manage\",\n resourceId: `ari:cloud:platform::site/${cloudId}`,\n };\n\n let options = {\n headers: {\n \"content-type\": \"application/json\",\n },\n method: \"POST\",\n body: JSON.stringify(postBody),\n };\n let perms = await fetch(\n `${Environment.getAPIPrivateURL()}/permissions/permitted`,\n options\n );\n\n if (\n 403 === perms.status ||\n 401 === perms.status ||\n 500 === perms.status\n ) {\n bail(new Error(\"Unauthorized or Server error\"));\n return;\n }\n //retry if Perms returned http != 200\n if (200 !== perms.status) {\n throw new Error(\n \"bxp.cloud-signup.rename.site.permissions.check.failed\"\n );\n }\n\n const data = await perms.json();\n //retry if Perms returned http 200 with permitted=false\n if (true !== data.permitted) {\n throw new Error(\n \"bxp.cloud-signup.rename.site.permissions.check.false\"\n );\n }\n return data;\n },\n {\n retries: 4,\n minTimeout: 1000,\n maxTimeout: 1000,\n }\n );\n }\n\n /**\n * On successful account creation, but user not logged in\n */\n goToCheckEmail(cloudId, requestId, autoGeneratedCloudName) {\n this.growthTracker.sendTrack(\"navigatedToCheckEmail\");\n\n var queryParams = {\n accountName: this.formData.accountName,\n products: this.productKeys.join(\",\"),\n };\n\n if (this.features.enableAutogenSiteName) {\n if (this.features.allowResendVerificationEmail) {\n queryParams.accountName = autoGeneratedCloudName;\n } else {\n delete queryParams.accountName;\n }\n }\n\n /**\n * @todo: $scope.email = MemoryStorage.checkEmailAddress;\n * ... used by ondemand app in the checkemail controller, but not sure what MemoryStorage is setting.\n */\n this.setResendEmailParams(cloudId, requestId, autoGeneratedCloudName);\n var urlParams = $.param(queryParams);\n var nextUrl = this.baseDomain + this.URL_CHECKEMAIL_PATH + \"/?\" + urlParams;\n\n window.location = nextUrl;\n return;\n }\n\n /**\n * Server Validation failed, prompt user to check fields and reset submit button\n */\n showInvalidForm(adminErrors) {\n var self = this;\n\n self.submitButton.find(\".submit--initial-text\").show();\n self.submitButton.find(\".submit--processing-text\").hide();\n self.submitButton.removeAttr(\"disabled\");\n self.form.find(\".validation-error-message\").show();\n\n self.form.find(\".admin-error-message\").empty();\n $.each(adminErrors, function (k, v) {\n self.form\n .find(\".admin-error-message\")\n .append(\"
    \" + v)\n .show();\n\n // Track a server side validation error (FOR EACH FIELD)\n Tracking.trackAll(\n \"cart-cloud\",\n \"Submitted with validation Error\",\n \"cloud\",\n {},\n false\n );\n });\n }\n\n /**\n * Check client side for missing input\n */\n checkField($field, clearErrors) {\n if (!$field.val().length) {\n $field.nextAll(\".error-message\").show();\n $field.addClass(this.ERROR_CLASS);\n } else if (clearErrors) {\n $field.nextAll(\".error-message\").hide();\n $field.removeClass(this.ERROR_CLASS);\n }\n }\n\n /**\n * First and last name must pass a validation pattern in COFS\n */\n checkNameField($field, clearErrors) {\n const invalidNamePattern =\n /((http(s)?|ftp|callto|mailto|skype|magnet):)|www\\.|:\\/\\/|@|\\$/i;\n var fieldName = $field.attr(\"name\");\n if (invalidNamePattern.test($field.val())) {\n $field.nextAll(\".error-message\").show();\n $field.addClass(this.ERROR_CLASS);\n this.growthTracker.sendTrack(\"fullName.errors\");\n\n // NUXAPOLLO-452 add tracking for firstname and lastname error\n Tracking.trackAll(\n \"cart-cloud\",\n \"Typed \" + fieldName + \" Error\",\n \"cloud\",\n {},\n false\n );\n } else if (clearErrors) {\n $field.nextAll(\".error-message\").hide();\n $field.removeClass(this.ERROR_CLASS);\n\n // NUXAPOLLO-452 add tracking for firstname and lastname success\n Tracking.trackAll(\n \"cart-cloud\",\n \"Typed \" + fieldName + \" Success\",\n \"cloud\",\n {},\n false\n );\n }\n }\n\n checkPasswordField($field) {\n if ($field.val().length < 8) {\n $field.nextAll(\".error-message\").show();\n $field.addClass(this.ERROR_CLASS);\n\n // NUXAPOLLO-452 add tracking for password error\n Tracking.trackAll(\n \"cart-cloud\",\n \"Typed Password Error\",\n \"cloud\",\n {},\n false\n );\n } else {\n $field.nextAll(\".error-message\").hide();\n $field.removeClass(this.ERROR_CLASS);\n\n // NUXAPOLLO-452 add tracking for password success\n Tracking.trackAll(\n \"cart-cloud\",\n \"Typed Password Success\",\n \"cloud\",\n {},\n false\n );\n }\n }\n\n /**\n * check for empty account/domain field\n */\n checkAccountField($field) {\n if (this.features.enableAutogenSiteName) {\n return;\n }\n\n if (!$field.val().length) {\n $field.nextAll(\".domain-length-min\").show();\n $field.addClass(this.ERROR_CLASS);\n }\n }\n\n /**\n * Render ReCaptcha with callback properties\n */\n renderCaptcha() {\n if (!this.features.recaptcha) {\n return;\n }\n\n var captchaOptions = {\n sitekey: \"6LePw0oUAAAAAFjgRJCH0IGJeoXmYxWbsKpTHRMx\",\n callback: this.updateCaptcha.bind(this),\n \"expired-callback\": this.resetCaptcha.bind(this),\n };\n var captchaRenderElement = document.getElementById(\"g-recaptcha-render\");\n $(captchaRenderElement).parent().addClass(\"rendered\");\n\n grecaptcha.render(captchaRenderElement, captchaOptions);\n }\n\n renderInvCaptcha() {\n if (!this.features.invisibleRecaptcha) {\n return;\n }\n\n var captchaRenderElement = document.getElementById(\n \"inv-recaptcha-signup_submit\"\n );\n\n grecaptcha.render(captchaRenderElement);\n this.disableSubmitButton(true);\n }\n\n /**\n * Captcha callback on user interaction success\n */\n updateCaptcha() {\n captchaFilled = true;\n this.hideErrorCaptcha();\n this.updateFormReady();\n }\n\n /**\n * Reset ReCaptcha when a user idles too long\n */\n resetCaptcha() {\n grecaptcha.reset();\n this.updateFormReady();\n this.captchaContainer.removeClass(this.ERROR_CLASS);\n Tracking.trackAll(\n \"cart-cloud\",\n \"ReCaptcha Reset\",\n \"cloud\",\n {},\n false\n );\n }\n\n showErrorCaptcha() {\n this.captchaContainer.addClass(this.ERROR_CLASS);\n this.captchaContainer.find(\".error-message\").show();\n Tracking.trackAll(\n \"cart-cloud\",\n \"ReCaptcha Error\",\n \"cloud\",\n {},\n false\n );\n }\n\n hideErrorCaptcha() {\n this.captchaContainer.removeClass(this.ERROR_CLASS);\n this.captchaContainer.find(\".error-message\").hide();\n }\n\n /**\n * Sanitize client side product keys to match server side available products\n */\n assignSelectedProducts(items) {\n const self = this;\n\n _.each(items, function (productKey) {\n const product = _.find(self.availableProducts, {\n product_key: productKey,\n });\n if (product) {\n // test for opsgenie product\n if (productKey === \"opsgenie\") {\n self.opsgenieSignupIsActive = true;\n const dataRegionFieldContainer = $(self.params.fieldIds.dataRegionId);\n dataRegionFieldContainer.show();\n\n // NUXSIGNUP-7 disable experiment for opsgenie signup\n self.features.enableAutogenSiteName = false;\n self.changeSiteNameVisibility(); // force site name to be visible if we've already hidden it\n\n // NUXAPOLLO-210 No Confluence account setup for logged in users.\n self.features.enableConfluenceAccountSetup = false;\n }\n\n if (productKey === \"opsgenie\" || productKey.includes(\"bitbucket\")) {\n // NUXAPOLLO-54 disable experiment for opsgenie and bitbucket signup\n self.features.enableContinueWithGoogle = false;\n self.features.enableContinueWithMicrosoft = false;\n self.features.enableFirstImpressions = false;\n // NUXAPOLLO-611 disable combined bundles signup\n self.features.enableCombinedBundles = false;\n }\n\n if (product.cofs_enabled) {\n if (\n productKey === \"bitbucket.ondemand\" &&\n !self.features.allowBitbucket\n ) {\n self.selectedAddons.push(product);\n } else {\n self.selectedProducts.push(product);\n self.productKeys.push(product.product_key);\n }\n } else {\n self.selectedAddons.push(product);\n }\n\n const urlEdition = self.checkUrlEditionKey();\n self.edition = urlEdition\n ? self.sanitizeEditionForProduct(urlEdition, product)\n : null;\n\n self.migrationSourceUuid = self.checkUrlMigrationSourceUuidKey();\n }\n });\n\n if (!items || !items.length || items[0] != CONFLUENCE_PRODUCT_KEY) {\n // Confluence has to be the base target product\n self.features.enableConfluenceAccountSetup = false;\n }\n\n // Remove the edition and migrationSourceUuid property if more than one product in signup\n if (self.selectedProducts.length > 1) {\n // do not remove the (set to standard) edition if this signup is for free\n if (self.edition !== this.availableEditions.free) {\n self.edition = null;\n }\n self.migrationSourceUuid = null;\n }\n\n // We are going to override the edition with the signupEdition from Magnolia Dialog\n if (\n Object.values(this.availableEditions).includes(this.params.signupEdition)\n ) {\n this.edition = this.params.signupEdition;\n }\n }\n\n sanitizeEditionForProduct(edition, product) {\n if (edition === this.availableEditions.premium && product.premium_enabled) {\n return this.availableEditions.premium;\n } else if (\n edition === this.availableEditions.free &&\n product.free_enabled\n ) {\n if (\n window.localStorage.getItem(\"bxp_science_sci279\") ||\n window.localStorage.getItem(\"bxp_science_sci280\") ||\n !!(\n imkt.constants &&\n imkt.constants.isFreeEnabled\n )\n ) {\n return this.availableEditions.free;\n }\n return this.availableEditions.standard;\n } else if (edition === this.availableEditions.standard) {\n return this.availableEditions.standard;\n } else {\n return null;\n }\n }\n\n /**\n * Sanitize client side product keys to match server side available external products\n */\n assignSelectedExternalProducts() {\n const urlParams = url.getUrlParams() || {};\n const productParam = urlParams[\"product\"] || false;\n\n if (productParam) {\n const items = productParam.split(\",\");\n\n _.each(items, (productKey) => {\n const product = _.find(this.availableProducts, {\n product_key: productKey,\n });\n\n if (\n (product && !product.cofs_enabled) ||\n (productKey === \"bitbucket.ondemand\" && !this.features.allowBitbucket)\n ) {\n this.selectedAddons.push(product);\n }\n });\n }\n }\n\n /**\n * Check for edition key in url\n */\n checkUrlEditionKey() {\n const params = url.getUrlParams() || {};\n return params[\"edition\"] || null;\n }\n\n /**\n * Check for migrationSourceUuid key in url\n */\n checkUrlMigrationSourceUuidKey() {\n const params = url.getUrlParams() || {};\n return params[\"migrationSourceUuid\"] || null;\n }\n\n /**\n * Check for product keys in url\n */\n checkUrlProductKeys() {\n var urlParams = url.getUrlParams() || {};\n var productParam = urlParams[\"product\"] || false;\n\n if (productParam) {\n // Reset any selections for url override\n this.selectedProducts = [];\n this.selectedAddons = [];\n this.productKeys = [];\n\n this.products = productParam;\n this.assignSelectedProducts(this.products.split(\",\"));\n }\n }\n\n /**\n * Check for bundle key in url\n */\n checkUrlBundleKey() {\n var urlParams = url.getUrlParams() || {};\n var param = urlParams[\"bundle\"] || false;\n var bundleData = this.bundleData[param];\n if (bundleData) bundleData.queryParam = param;\n return bundleData;\n }\n\n /**\n * Check for coupon key in url\n */\n checkUrlCouponKey() {\n var urlParams = url.getUrlParams() || {};\n var coupon = urlParams[\"coupon\"] || false;\n\n if (coupon) {\n this.cofs\n .validateCoupon(coupon)\n .then((result) => {\n this.coupon = coupon;\n this.renderCouponValidateMessage(result);\n })\n .catch((result) => {\n this.renderCouponValidateMessage(result);\n });\n }\n }\n\n /**\n * Check for selected products in local storage\n */\n checkStorageProductKeys() {\n var storedProducts = JSON.parse(\n storage.getLocalStorage(this.PRODUCTS_STORAGE_KEY)\n );\n\n this.assignSelectedProducts(storedProducts);\n }\n\n /**\n * Show password strength indicator to user\n */\n renderPasswordStrength(score) {\n var labels = {\n passwordstrength: \"Password Strength\",\n passwordstrengthScores: [\"Weak\", \"Weak\", \"Good\", \"Strong\", \"Very Strong\"],\n };\n\n score = this.passwordField.val().length ? score : -1;\n\n // Don't render password strength for invalid passwords\n if (this.passwordField.hasClass(this.ERROR_CLASS)) {\n score = -1;\n }\n\n var tmp = _.template(\n $(\".template__form--product-on-demand--passwordstrength\").html()\n );\n this.passwordScoreTemplateTarget.html(\n tmp({\n score: score,\n labels: labels,\n })\n );\n }\n\n /**\n * update ui with coupon messaging\n */\n renderCouponValidateMessage(result) {\n const tmp = _.template(\n $(\".template__form--product-on-demand--coupon-messaging\").html()\n );\n const messageSuccess =\n this.labels.informMessageCouponSuccess || \"Coupon success\";\n const messageError =\n this.labels.informMessageCouponError || \"Coupon unavailable\";\n const message = result.success ? messageSuccess : messageError;\n\n if (result.success && this.labels.labelSubmitCoupon) {\n this.submitButton.text(this.labels.labelSubmitCoupon);\n }\n\n $(\".heading--products\")\n .parent()\n .prepend(\n tmp({\n classResult: result.success ? \"message--success\" : \"message--warning\",\n message: message,\n })\n );\n }\n\n /**\n * update ui with product data for each selected product\n */\n renderProductSelections() {\n var self = this;\n\n // Only hide annual subscription content if user signs up for Bitbucket only\n if (\n this.selectedProducts.length === 0 &&\n this.selectedAddons.length === 1 &&\n this.selectedAddons[0].name === \"Bitbucket\"\n ) {\n this.annualSubscriptionContent.hide();\n }\n\n // Render Eula Text based on product selections\n let eulaLabel = this.labels.eulaText;\n if (!this.params.products && this.hamlet.hasAddons()) {\n eulaLabel = this.labels.eulaWithAddonsText || eulaLabel;\n this.eulaContainer.html(eulaLabel);\n }\n\n // Experiment for 'wcf-459' & Premium\n if (!this.useAlternateLayout) {\n // Add indicator to what products are being signed up\n _.each(this.selectedProducts, function (product) {\n var checkedElement = $(\n '
  • ' +\n (product.name || product.productDescription) +\n \"
  • \"\n );\n self.cofsListContainer.append(checkedElement);\n });\n } else {\n const logos = $(\".trial-info-data__logos\", this.$domRoot).clone();\n const editionText = $(\n \".trial-info-data__edition-text\",\n this.$domRoot\n ).clone();\n logos.insertAfter(this.cofsListContainer);\n editionText.insertAfter(logos);\n }\n // (End) Experiment for 'wcf-459' & Premium\n\n // Add indicator to what products are being signed up\n _.each(this.hamletAddonProducts, function (product) {\n var checkedElement = $(\n '
  • ' +\n (product.name || product.productDescription) +\n \"
  • \"\n );\n self.cofsListContainer.append(checkedElement);\n });\n\n // Show indicator to what products are being signed up\n if (this.params.showFormEnabledProducts) {\n self.cofsListContainer.addClass(\"active\");\n }\n\n var productsTemplateTarget = $(\".imkt__list--product-on-demand\");\n var template = $(\".template__list--product-on-demand\");\n\n if (!self.selectedProducts.length) {\n productsTemplateTarget = $(\".imkt--cloud-signup__form\");\n template = $(\".template__list--product-all-external\");\n }\n\n if (!productsTemplateTarget.length || !template.length) {\n return;\n }\n\n var productsTemplate = _.template(template.html());\n productsTemplateTarget.html(\n productsTemplate({\n selectedProducts: this.selectedProducts,\n selectedAddons: this.selectedAddons,\n labels: this.labels,\n isPremiumEdition: this.edition === \"premium\",\n })\n );\n }\n\n renderMarketingConsent(requiresCheckbox, label) {\n if (this.params.useGDPR) {\n var marketingLabel = $(``);\n var marketingConsentInput = $(\n ''\n );\n\n if (!requiresCheckbox) {\n marketingConsentInput.prop(\"checked\", true);\n this.marketingConsentContainer.hide();\n } else {\n this.marketingConsentContainer.show();\n }\n\n marketingLabel.append(marketingConsentInput).append(label);\n this.marketingConsentContainer.append(marketingLabel);\n }\n }\n\n disableSubmitButton(preventSubmitActionText) {\n // Submit button may be disabled to prevent submitting\n if (!preventSubmitActionText) {\n this.submitButton.find(\".submit--initial-text\").hide();\n this.submitButton.find(\".submit--processing-text\").show();\n }\n\n this.submitButton.attr(\"disabled\", \"disabled\");\n }\n\n enableSubmitButton() {\n this.submitButton.find(\".submit--initial-text\").show();\n this.submitButton.find(\".submit--processing-text\").hide();\n this.submitButton.removeAttr(\"disabled\");\n }\n\n disableSubmitButtonSimplified() {\n $(\n \".imkt--cloud-signup__form--simplified .imkt--cloud-signup__button--submit\"\n ).attr(\"disabled\", \"disabled\");\n }\n\n enableSubmitButtonSimplified() {\n $(\n \".imkt--cloud-signup__form--simplified .imkt--cloud-signup__button--submit\"\n ).removeAttr(\"disabled\");\n }\n\n /**\n * Analytics track event for adding products configured on load / legacy reporting\n */\n trackAnalyticsProduct(i, action, callback) {\n var products = self.productKeys;\n\n if (products && i < products.length) {\n Tracking.trackAll(\n \"cart-cloud\",\n action,\n `${products[i]}.cloud`,\n {},\n false\n );\n }\n\n if (callback) {\n callback();\n }\n }\n\n /**\n * Popup external signup window as reminder for users\n */\n popupReminderExternalProducts() {\n var windowProperties = {\n top: 0,\n left: 0,\n width: 600,\n height: 400,\n };\n\n if (!this.selectedAddons.length) {\n return;\n }\n\n var addonKeys = this.selectedAddons.map(function (product) {\n return product.product_key;\n });\n\n var urlParams = \"?product=\" + addonKeys.join(\",\");\n var externalSignupUrl =\n this.baseDomain + this.params.externalSignupPage + urlParams;\n window.open(\n externalSignupUrl,\n \"Additional Signup\",\n \"top=\" +\n windowProperties.top +\n \",left=\" +\n windowProperties.left +\n \",width=\" +\n windowProperties.width +\n \",height=\" +\n windowProperties.height\n );\n }\n\n /**\n * Toggle password field to show/hide text\n */\n togglePasswordShow() {\n if (this.showPasswordField.is(\":checked\")) {\n this.passwordField.attr(\"type\", \"text\");\n } else {\n this.passwordField.attr(\"type\", \"password\");\n }\n }\n\n trackOnSubmitEvents() {\n this.growthTracker.sendTrackSubmitCounter(\"bxp_repeat_submit\");\n this.growthTracker.sendTrack(\"signupPressedSubmit\", {\n hostname: this.accountNameField.val(),\n edition: this.edition || \"\",\n });\n this.hamlet.isLoggedIn()\n ? this.growthTracker.sendTrack(\"submit.loggedin\")\n : this.growthTracker.sendTrack(\"submit.notloggedin\");\n }\n\n getLocaleParam() {\n const urlParams = url.getUrlParams() || {};\n const langParam = urlParams[\"lang\"] || false;\n\n if (langParam) {\n return langParam;\n }\n return;\n }\n\n updateLocaleText() {\n const locale = this.getLocaleParam();\n\n if (!locale) {\n return;\n }\n\n const localizedLabels = this.params.i18nLabels[locale];\n if (!localizedLabels) {\n return;\n }\n\n Object.assign(this.labels, localizedLabels.labels);\n this.consentLabelMarketing =\n localizedLabels.consentLabelMarketing || this.consentLabelMarketing;\n\n if (localizedLabels.bundleData) {\n _.each(this.bundleData, (bundle, bundleKey) => {\n Object.assign(\n this.bundleData[bundleKey],\n localizedLabels.bundleData[bundleKey]\n );\n });\n }\n\n const localElements = this.form.find(\".translate\");\n _.each(localElements, (element) => {\n const translationKey = $(element).attr(\"data-translate-key\");\n const translation = localizedLabels.labels[translationKey];\n\n const translationAttr = $(element).attr(\"data-translate-attr\");\n\n if (translation && translationAttr) {\n $(element).attr(translationAttr, translation);\n } else if (translation) {\n $(element).html(translation);\n }\n });\n }\n\n // Check the browser url for a known templateId param\n // to be passed into COFS and Cloud Provisioning for on-boarding purposes\n getTemplateFromUrl() {\n const urlParams = url.getUrlParams() || {};\n const templateParam = urlParams.templateId || false;\n\n return templateParam;\n }\n\n renderN2EModal() {\n const mySites = this.hamlet.getSites();\n const existingTargetSites = this.findSitesWithProductKey(\n mySites,\n \"jira-software.ondemand\"\n );\n\n const urlParams = url.getUrlParams() || {};\n const templateParam = urlParams.userstate || \"jsw\";\n\n if (existingTargetSites.length) {\n var tmp = _.template(\n $(`.template--cloud-signup__form--n2emodal--${templateParam}`).html()\n );\n $(\"body\").append(\n tmp({\n existingTargetSites: existingTargetSites,\n })\n );\n $(\"#modal-dismiss-button\").on(\"click\", () =>\n $(\"#signup-bitbucket-jira > div.overlay.in\").remove()\n );\n }\n }\n\n findSitesWithProductKey(sites, productKey) {\n return sites.filter((site) => site.products.includes(productKey));\n }\n\n getOpsgenieInitialProductURL() {\n const dataRegionValue = this.dataRegionField.filter(\":checked\").val();\n\n var initialProductURL = \"atlassian-app.opsgenie.com\";\n\n if (dataRegionValue == \"main\") {\n initialProductURL = \"atlassian-app.opsgenie.com\";\n if (!Environment.isProduction()) {\n initialProductURL = \"atlassian-app.opsgeni.us\";\n }\n } else if (dataRegionValue == \"europe\") {\n initialProductURL = \"atlassian-app.eu.opsgenie.com\";\n if (!Environment.isProduction()) {\n initialProductURL = \"atlassian-app.opsgeni.us\";\n }\n }\n\n return initialProductURL;\n }\n\n getOpsgenieSiteHostName() {\n const dataRegionValue = this.dataRegionField.filter(\":checked\").val();\n\n var siteHost = \".atlassian-app.opsgenie.com\";\n\n if (dataRegionValue == \"main\") {\n siteHost = \".atlassian-app.opsgenie.com\";\n if (!Environment.isProduction()) {\n siteHost = \".atlassian-app.opsgeni.us\";\n }\n } else if (dataRegionValue == \"europe\") {\n siteHost = \".atlassian-app.eu.opsgenie.com\";\n if (!Environment.isProduction()) {\n siteHost = \".atlassian-app.opsgeni.us\";\n }\n }\n\n return siteHost;\n }\n\n getOpsgenieSiteRedirectURL() {\n const accountName = this.accountNameField.val();\n const opsgenieHostName = this.getOpsgenieSiteHostName();\n\n return \"https://\" + accountName + opsgenieHostName;\n }\n}\n","import _ from 'underscore';\n\n/*\n * Abstraction library for storing data in the browser. Handles all the actual\n * browser interaction for localStorage, sessionStorage and cookies.\n */\nexport default class AtlStorage {\n constructor() {\n /*\n * Create a storage prefix key to use for local/session storage\n * Use a reverse of the site host. ie: atlassian.com prefix will\n * be com.atlassian.angular.storage\n */\n var prefix = window.location.hostname\n .split('.')\n .reverse()\n .join('.') + '.bxp.storage',\n\n $window = window,\n browserSupport = {},\n stringify = JSON.stringify,\n\n supports = function (storageType: string) {\n if (_.has(browserSupport, storageType)) {\n return browserSupport[storageType];\n }\n if (_.contains(['localStorage', 'sessionStorage'], storageType)) {\n try {\n browserSupport[storageType] = typeof $window[storageType] === 'object' &&\n typeof $window[storageType].setItem === 'function' &&\n typeof $window[storageType].getItem === 'function' &&\n typeof $window[storageType].clear === 'function';\n } catch (e) {\n browserSupport[storageType] = false;\n }\n }\n return browserSupport[storageType];\n };\n\n /*\n * Abstraction over local and session storage. If write error occurs, catch it\n * then clear the storage and disable browserSupport property for that storage\n * type so any further attempts to write to that browser storage don't work.\n * If local/session storage is unsupported, and the stringified value really small\n * then attempt to save it to a cookie as a fallback mechanism\n */\n var setItem = function (storageType: string, key: string, value: string) {\n var storageKey = [prefix, key].join('.'),\n outputString = stringify(value);\n\n if (supports(storageType)) {\n try {\n $window[storageType].setItem(storageKey, outputString);\n } catch (e) {\n browserSupport[storageType] = false;\n }\n } else if (outputString.length < 150) {\n this.cookie.set(storageKey, value);\n }\n };\n\n /*\n * Read in the value of a given key from local/session storage.\n * Fallback to cookies instituted here as well should local/session be\n * unavailable\n */\n var getItem = function (storageType: string, key: string) {\n var storageKey = [prefix, key].join('.');\n if (supports(storageType)) {\n return JSON.parse($window[storageType].getItem(storageKey));\n } else {\n this.cookie.get(storageKey);\n }\n };\n\n /*\n * Wipe out an item from local/session storage with cookie fallback\n */\n var removeItem = function (storageType: string, key: string) {\n var storageKey = [prefix, key].join('.');\n if (supports(storageType)) {\n $window[storageType].removeItem(storageKey);\n } else {\n this.cookie.remove(storageKey);\n }\n };\n\n /*\n * Clear all local/session storage data for the app\n */\n var clear = function (storageType: string) {\n if (supports(storageType)) {\n $window[storageType].clear();\n }\n };\n\n /*\n * In-memory cache\n */\n var SESSION_STORAGE = {};\n var LOCAL_STORAGE = {\n timestamp: getItem('localStorage', 'timestamp')\n };\n\n if (LOCAL_STORAGE.timestamp && _.isNumber(LOCAL_STORAGE.timestamp)) {\n var timestamp = new Date(LOCAL_STORAGE.timestamp),\n ageInDays = (new Date() - timestamp) / 1000 / 60 / 60 / 24;\n if (ageInDays > 30) {\n clear('localStorage');\n }\n } else {\n LOCAL_STORAGE = { timestamp: Date.parse(new Date()) };\n setItem('localStorage', 'timestamp', LOCAL_STORAGE.timestamp);\n }\n\n /*\n * Public API\n */\n return {\n local: {\n set(key: string, value: any) {\n // don't add null or undefined, but 0 and '' and false are okay\n if (!value && value !== 0 && value !== '' && value !== false) {\n return false;\n }\n LOCAL_STORAGE[key] = value;\n setItem('localStorage', key, value);\n },\n get(key: string) {\n LOCAL_STORAGE[key] = getItem('localStorage', key);\n return LOCAL_STORAGE[key] || null;\n },\n remove(key: string) {\n delete LOCAL_STORAGE[key];\n removeItem('localStorage', key);\n },\n clear() {\n LOCAL_STORAGE = {};\n clear('localStorage');\n }\n },\n session: {\n set(key: string, value: any) {\n // don't add null or undefined, but 0 and '' and false are okay\n if (!value && value !== 0 && value !== '' && value !== false) {\n return false;\n }\n SESSION_STORAGE[key] = value;\n setItem('sessionStorage', key, value);\n },\n get(key: string) {\n SESSION_STORAGE[key] = getItem('sessionStorage', key);\n return SESSION_STORAGE[key] || null;\n },\n remove(key: string) {\n delete SESSION_STORAGE[key];\n removeItem('sessionStorage', key);\n },\n clear() {\n SESSION_STORAGE = {};\n clear('sessionStorage');\n }\n },\n cookie: {\n set(key: string, value: string, days: number) {\n let date = new Date();\n date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));\n\n if (!days) {\n days = 30;\n }\n let expires = \"; expires=\" + date.toUTCString();\n\n document.cookie = key + \"=\" + value + expires + \"; path=/\";\n },\n get(key: string) {\n const encodedName = encodeURIComponent(key).replace(/[\\-\\.\\+\\*]/g, \"\\\\$&\");\n const regex = new RegExp(\"(?:(?:^|.*;)\\\\s*\" + encodedName + \"\\\\s*\\\\=\\\\s*([^;]*).*$)|^.*$\");\n return decodeURIComponent(document.cookie.replace(regex, \"$1\")) || null;\n },\n remove(key: string) {\n this.cookie.set(key, '', -1);\n }\n },\n support: browserSupport\n };\n }\n}\n","export default class AtlUrl {\n static getParameter(paramName: string) {\n const searchString = window.location.search.substring(1);\n const params = searchString.split(\"&\");\n\n for (let i=0; i < params.length; i++) {\n let val = params[i].split(\"=\");\n\n if (val[0] === paramName) {\n return val[1];\n }\n }\n\n return null;\n }\n}\n","import api from \"./utils/api\";\nimport browser from \"./utils/browser\";\nimport getScript from \"./utils/get-script\";\nimport tracking from \"./utils/tracking\";\nimport general from \"./utils/general\";\nimport history from \"./utils/history\";\nimport string from \"./utils/string\"\nimport storage from \"./utils/storage\";\nimport url from \"./utils/url\";\n\n// @ts-ignore\nconst imkt: { [property: string]: any } = window.imkt = window.imkt || {\n core: {\n /*\n * this parses the DOM and finds any type=\"text/x-component\" scripts and initializes a component for each\n */\n init: async function (domRoot: HTMLElement) {\n var self = this;\n\n this.featureDetect();\n\n const LocalizedPricing = (await import(\"./utils/localized-pricing\")).default;\n\n const localizedPricing = new LocalizedPricing();\n\n $(\"script[type='text/x-component']\", domRoot).each(function (i, elem) {\n var componentInfo = JSON.parse(elem.innerHTML.trim()),\n componentRoot = elem.parentNode;\n\n const {\n productKey,\n productKeyArray,\n period,\n offeringSku,\n countryISOCodeReq,\n } = componentInfo.params;\n\n if (productKey) {\n componentInfo.params.pricing = localizedPricing.getPricingPromise(\n productKey,\n period\n );\n }\n\n if (offeringSku) {\n componentInfo.params.pricing = localizedPricing.getPricingPromise(\n null,\n period,\n null,\n null,\n offeringSku\n );\n }\n\n if (productKeyArray) {\n componentInfo.params.pricingObject = productKeyArray.map((product: any) => {\n return localizedPricing.getPricingPromise(\n product.key,\n product.period,\n product.identifiers,\n product.customCurrency,\n product.offeringSku\n );\n });\n }\n\n if (countryISOCodeReq) {\n componentInfo.params.countryISOCodePromise =\n localizedPricing.getLocale();\n }\n\n try {\n self.componentInit.call(self, componentRoot, componentInfo);\n } catch (e) {\n console.log(e);\n }\n });\n\n localizedPricing.resolvePricingPromises();\n\n // Init component scripts with Smartling Translation\n $(\"script[type='text/x-component-translate']\", domRoot).each(function (\n i,\n elem\n ) {\n var innerHTML = elem.innerHTML\n .trim()\n .replace(\"/* */\", \"\")\n .replace(\"/* */\", \"\");\n var componentInfo = JSON.parse(innerHTML),\n componentRoot = elem.parentNode;\n self.componentInit.call(self, componentRoot, componentInfo);\n });\n\n $(document).trigger(\"appInitialized\");\n this.appInitialized = true;\n },\n onInitialized(cb) {\n if (this.appInitialized) {\n cb();\n } else {\n $(document).on(\"appInitialized\", cb);\n }\n },\n featureDetect() {\n var bodyClasses = [];\n if (!this.supports.svg()) {\n bodyClasses.push(\"no-svg\");\n }\n if (!this.supports.backgroundSize()) {\n bodyClasses.push(\"no-backgroundsize\");\n }\n if (!this.supports.flexBox()) {\n bodyClasses.push(\"no-flexbox\");\n }\n $(\"body\").addClass(bodyClasses.join(\" \"));\n },\n extend(supertype, subtype, overrides = {}) {\n var ctor = function () { },\n name;\n ctor.prototype = supertype.prototype;\n subtype.prototype = new ctor();\n for (name in overrides) {\n subtype.prototype[name] = overrides[name];\n }\n subtype.prototype.constructor = supertype;\n },\n /*\n * this takes a namespaced string like \"imkt.components.tabs\" and returns the actual JS object (if found)\n */\n resolve(str, createIfNotExists) {\n var basis = window;\n if (!str) {\n return null;\n } else if (typeof str === \"function\") {\n return str;\n } else {\n var last = basis,\n names = str.split(\".\"),\n name,\n i,\n j;\n for (i = 0, j = names.length; i < j; i++) {\n name = names[i];\n basis = basis[name];\n if (!basis) {\n if (createIfNotExists) {\n basis = last[name] = {};\n } else {\n return null;\n }\n }\n last = basis;\n }\n }\n return basis;\n },\n /*\n * tries to resolve the component name and if so, initializes it\n */\n componentInit(componentRoot, componentInfo) {\n var componentType = this.resolve(componentInfo.type);\n if (componentType) {\n return new componentType(\n componentRoot,\n Object.assign({}, componentInfo.params, $(componentRoot).data())\n );\n } else {\n // could not find component\n }\n },\n supports: {\n flexBox() {\n return (\n \"flexWrap\" in document.documentElement.style ||\n \"webkitFlexWrap\" in document.documentElement.style\n );\n },\n history() {\n return window.history && window.history.pushState;\n },\n svg() {\n return document.implementation.hasFeature(\n \"http://www.w3.org/TR/SVG11/feature#Image\",\n \"1.1\"\n );\n },\n backgroundSize() {\n return \"backgroundSize\" in document.documentElement.style;\n },\n touch() {\n return \"ontouchstart\" in window;\n },\n placeholder() {\n var i = document.createElement(\"input\");\n return \"placeholder\" in i;\n },\n localStorage() {\n // Bugfix WTF-15606, try/catch for localStorage empty object (private browsers)\n try {\n window.localStorage.setItem(\"hasStorage\", \"1\");\n return (\n window.localStorage &&\n window.localStorage.setItem &&\n window.localStorage.removeItem\n );\n } catch (error) {\n return false;\n }\n },\n transitions() {\n var b = document.body || document.documentElement,\n s = b.style,\n p = \"transition\";\n\n if (typeof s[p] == \"string\") {\n return true;\n }\n\n // Tests for vendor specific prop\n var v = [\"Moz\", \"webkit\", \"Webkit\", \"Khtml\", \"O\", \"ms\"];\n p = p.charAt(0).toUpperCase() + p.substr(1);\n\n for (var i = 0; i < v.length; i++) {\n if (typeof s[v[i] + p] == \"string\") {\n return true;\n }\n }\n\n return false;\n },\n },\n is: {\n mobile() {\n return imkt.core.supports.touch() && screen.width && screen.width < 768;\n },\n },\n },\n utils: {\n api,\n browser,\n getScript,\n tracking,\n general,\n history,\n string,\n storage,\n url,\n },\n wpl: {\n globals: {\n mediaQueries: {\n \"xs\": { \"minWidth\": 0, \"maxWidth\": 539 },\n \"sm\": { \"minWidth\": 540, \"maxWidth\": 767 },\n \"md\": { \"minWidth\": 768, \"maxWidth\": 1023 },\n \"lg\": { \"minWidth\": 1024, \"maxWidth\": 1439 },\n \"xl\": { \"minWidth\": 1440, \"maxWidth\": null }\n }\n }\n },\n common: {},\n wac: {},\n landing: {},\n experts: {},\n legal: {},\n components: {},\n software: {},\n bxp: {},\n customers: {},\n pages: {},\n teamPatterns: {},\n};\n\nexport default imkt;","import stgConfig from \"../../../config\";\nimport imkt from '../imkt';\n\n/**\n * Get an api endpoint relative to current environment\n * @todo: define what a dev environment is (BizBox?) in this context\n */\n\nexport default {\n urls: {\n apiGetAuthToken: {\n public:\n \"https://www.atlassian.com/hamlet/1.0/auth/xsrf/html?domain=atlassian.com\",\n staging: `${\n window.location.hostname.indexOf(\"qa-wac\") > -1\n ? \"https://qa-wac.internal.atlassian.com\"\n : stgConfig.stgWacInternalUrl\n }/apis/stg/hamlet/1.0/auth/xsrf/html?domain=atlassian.com`,\n dev: \"\",\n },\n apiGetSites: {\n public: \"https://api-private.atlassian.com/available-sites\",\n staging: \"https://api-private.stg.atlassian.com/available-sites\",\n dev: \"\",\n },\n apiGetUser: {\n public: \"https://api-private.atlassian.com/me\",\n staging: \"https://api-private.stg.atlassian.com/me\",\n dev: \"\",\n },\n },\n\n getUrl: function (endpoint: string) {\n var env = imkt.constants.public ? \"public\" : \"staging\";\n var url =\n typeof this.urls[endpoint] !== \"undefined\"\n ? this.urls[endpoint][env]\n : \"\";\n return url;\n },\n}\n","import imkt from '../imkt';\n\nexport default {\n // Get Browser OS\n getBrowserOs: function () {\n var nAgt = navigator.userAgent;\n\n var clientStrings = [\n { s: 'Windows 10', r: /(Windows 10.0|Windows NT 10.0)/ },\n { s: 'Windows 8.1', r: /(Windows 8.1|Windows NT 6.3)/ },\n { s: 'Windows 8', r: /(Windows 8|Windows NT 6.2)/ },\n { s: 'Windows 7', r: /(Windows 7|Windows NT 6.1)/ },\n { s: 'Windows Vista', r: /Windows NT 6.0/ },\n { s: 'Windows Server 2003', r: /Windows NT 5.2/ },\n { s: 'Windows XP', r: /(Windows NT 5.1|Windows XP)/ },\n { s: 'Windows 2000', r: /(Windows NT 5.0|Windows 2000)/ },\n { s: 'Windows ME', r: /(Win 9x 4.90|Windows ME)/ },\n { s: 'Windows 98', r: /(Windows 98|Win98)/ },\n { s: 'Windows 95', r: /(Windows 95|Win95|Windows_95)/ },\n { s: 'Windows NT 4.0', r: /(Windows NT 4.0|WinNT4.0|WinNT|Windows NT)/ },\n { s: 'Windows CE', r: /Windows CE/ },\n { s: 'Windows 3.11', r: /Win16/ },\n { s: 'Android', r: /Android/ },\n { s: 'Open BSD', r: /OpenBSD/ },\n { s: 'Sun OS', r: /SunOS/ },\n { s: 'Linux', r: /(Linux|X11)/ },\n { s: 'iOS', r: /(iPhone|iPad|iPod)/ },\n { s: 'Mac OS X', r: /Mac OS X/ },\n { s: 'Mac OS', r: /(MacPPC|MacIntel|Mac_PowerPC|Macintosh)/ },\n { s: 'QNX', r: /QNX/ },\n { s: 'UNIX', r: /UNIX/ },\n { s: 'BeOS', r: /BeOS/ },\n { s: 'OS/2', r: /OS\\/2/ },\n { s: 'Search Bot', r: /(nuhk|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask Jeeves\\/Teoma|ia_archiver)/ }\n ];\n\n for (var id in clientStrings) {\n var cs = clientStrings[id];\n if (cs.r.test(nAgt)) {\n return cs.s;\n }\n }\n\n return \"unknown\";\n },\n // Check if browser is windows\n isWindows: function () {\n var os = this.getBrowserOs();\n return os.indexOf(\"Windows\") > -1;\n },\n // NOTE: We have a similar function inside app.js (imkt.core.is.mobile) but the breakpoint is 768px\n // This breakpoint is consistent with imkt.constants.mobileBreakpoint and our CSS breakpoint\n isMobile: function () {\n return (imkt.core.supports.touch() && screen.width && screen.width <= (imkt.constants.mobileBreakpoint));\n }\n};\n","export default function onThrottled(element: JQuery, eventName: string, callback: Function, threshold?: number) {\n let timeout: NodeJS.Timeout;\n element.on(eventName, function (e) {\n clearTimeout(timeout);\n timeout = setTimeout(function () {\n callback(e);\n }, threshold || 100);\n });\n}\n","export default {\n // url without any query string\n randomString: function (l: number) {\n var s = \"\";\n while (s.length < l && l > 0) {\n var r = Math.random();\n s +=\n r < 0.1\n ? Math.floor(r * 100)\n : String.fromCharCode(Math.floor(r * 26) + (r > 0.5 ? 97 : 65));\n }\n return s;\n },\n numberWithCommas: function (n: number) {\n return n.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n },\n elementInViewport: function (el: HTMLElement) {\n var top = el.offsetTop;\n var left = el.offsetLeft;\n var width = el.offsetWidth;\n var height = el.offsetHeight;\n\n while (el.offsetParent) {\n el = el.offsetParent as HTMLElement;\n top += el.offsetTop;\n left += el.offsetLeft;\n }\n\n return (\n top >= window.pageYOffset &&\n left >= window.pageXOffset &&\n top + height <= window.pageYOffset + window.innerHeight &&\n left + width <= window.pageXOffset + window.innerWidth\n );\n },\n};\n","import * as $ from \"jquery\";\nimport imkt from '../imkt';\n\nvar datepickerRequest = $.Deferred();\nvar select2Request = $.Deferred();\nvar underscoreRequest = $.Deferred();\n\nvar getStyle = function (url: string, params: any) {\n \"use strict\";\n\n // If there is no URL to load, no point in continuing.\n if (typeof url === \"undefined\") {\n return;\n }\n\n // If this stylesheet has already been loaded, no point in continuing.\n if (\n params.hasOwnProperty(\"id\") &&\n $(\"head\").find(\"#\" + params.id).length\n ) {\n return;\n }\n\n var linkAttrs = {\n rel: \"stylesheet\",\n media: \"screen\",\n href: url,\n };\n\n if ($.isPlainObject(params)) {\n linkAttrs = Object.assign({}, linkAttrs, params);\n }\n\n var link = $(\"\").attr(linkAttrs);\n $(\"head\").append(link);\n};\n\nexport default {\n datepicker: function (callback) {\n if (typeof datepickerRequest === \"undefined\") {\n datepickerRequest = $.getScript(\n imkt.constants.libPath +\n \"air-datepicker.js\" +\n imkt.constants.cdnVersionQuery\n );\n getStyle(\n imkt.constants.libPath +\n \"air-datepicker.css\" +\n imkt.constants.cdnVersionQuery,\n {\n id: \"datepicker-style\",\n }\n );\n } else {\n // Select2 already exists\n datepickerRequest.resolve();\n }\n $.when(datepickerRequest).then(callback);\n return this;\n },\n select2: function (callback) {\n // Select2 is a dependency, so load that first\n if (typeof select2Request === \"undefined\") {\n select2Request = $.getScript(\n imkt.constants.libPath + \"select2.js\" + imkt.constants.cdnVersionQuery\n );\n } else {\n // Select2 already exists\n select2Request.resolve();\n }\n $.when(select2Request).then(callback);\n return this;\n },\n underscore: function (callback) {\n // underscore is a dependency, so load that first\n if (typeof underscoreRequest === \"undefined\") {\n underscoreRequest = $.getScript(\n imkt.constants.libPath +\n \"underscore.js\" +\n imkt.constants.cdnVersionQuery\n );\n } else {\n // underscore already exists\n underscoreRequest.resolve();\n }\n $.when(underscoreRequest).then(callback);\n return this;\n },\n};\n","// Wrapping the History API here to push analytics when state is pushed\nexport default {\n supportsHistory() {\n return window.history && window.history.pushState;\n },\n pushState(data: any, title: string, url: string) {\n if (this.supportsHistory()) {\n window.history.pushState(data, title, url);\n\n // Trigger Analytics\n if (typeof analytics !== \"undefined\") {\n analytics.page();\n }\n }\n },\n pushStateNoTracking(data: any, title: string, url: string) {\n if (this.supportsHistory()) {\n window.history.pushState(data, title, url);\n }\n },\n}\n","// Util to handle get/set of local storage\n// @todo: Test need for fallback to cookies\nexport default {\n hasStorage: localStorage && typeof localStorage.getItem === \"function\",\n\n getLocalStorage(key: string) {\n // Get value from local storage or cookies\n\n if (!this.hasStorage) {\n return this.getCookie(key);\n }\n\n var value = localStorage.getItem(key);\n return value;\n },\n\n setLocalStorage(key: string, value: string) {\n // Set value in local storage or cookies\n\n if (!this.hasStorage) {\n this.setCookie(key, value);\n }\n\n try {\n localStorage.setItem(key, value);\n } catch (e) {\n // Don't store for private browsing\n console.log(\n \"Local Storage failed, check if browsing in Safari private window.\"\n );\n }\n },\n\n removeLocalStorage(key: string) {\n if (!this.hasStorage) {\n this.removeCookie(key);\n }\n try {\n localStorage.removeItem(key);\n } catch (e) {\n // Don't remove for private browsing\n console.log(\n \"Local Storage failed, check if browsing in Safari private window.\"\n );\n }\n },\n\n getSessionStorage(key: string) {\n // Get value from Session storage or cookies\n\n if (!this.hasStorage) {\n return this.getCookie(key);\n }\n\n var value = sessionStorage.getItem(key);\n return value;\n },\n\n setSessionStorage(key: string, value: string) {\n // Set value in Session storage or cookies\n\n if (!this.hasStorage) {\n this.setCookie(key, value);\n }\n\n try {\n sessionStorage.setItem(key, value);\n } catch (e) {\n // Don't store for private browsing\n console.log(\n \"Session Storage failed, check if browsing in Safari private window.\"\n );\n }\n },\n\n removeSessionStorage(key: string) {\n if (!this.hasStorage) {\n this.removeCookie(key);\n }\n try {\n sessionStorage.removeItem(key);\n } catch (e) {\n // Don't remove for private browsing\n console.log(\n \"Session Storage failed, check if browsing in Safari private window.\"\n );\n }\n },\n\n getCookie(key: string) {\n // Get value from cookie\n\n var encodedName = encodeURIComponent(key).replace(/[\\-\\.\\+\\*]/g, \"\\\\$&\");\n var regex = new RegExp(\n \"(?:(?:^|.*;)\\\\s*\" + encodedName + \"\\\\s*\\\\=\\\\s*([^;]*).*$)|^.*$\"\n );\n\n return decodeURIComponent(document.cookie.replace(regex, \"$1\")) || null;\n },\n\n setCookie(key: string, value: any, days?: number, sameSite?: string, domain?: string) {\n let expires = \"\";\n let domainLevel = ``;\n if (domain) {\n domainLevel = `; domain=${domain}`;\n }\n let sameSiteVal = sameSite ? sameSite.toLowerCase() : false;\n let sameSiteString = `samesite=${\n (sameSiteVal && sameSiteVal == \"strict\") || sameSiteVal == \"lax\"\n ? sameSiteVal\n : \"none\"\n }`;\n if (days) {\n let date = new Date();\n date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000);\n // @ts-ignore\n expires = \"; expires=\" + date.toGMTString();\n }\n document.cookie =\n key + \"=\" + value + \";path=/;\" + sameSiteString + expires + domainLevel;\n },\n removeCookie: function (key: string) {\n this.setCookie(key, \"\", -1);\n },\n}\n","import general from '../utils/general';\n\nexport default {\n /**\n * Reverse string\n * @param {string} str - String you want to reverse\n * @returns {string} Reverse of str\n * @example\n * // returns \"olleh\"\n * imkt.utils.string.reverse(\"hello\")\n */\n reverse(str: string) {\n if (typeof str !== \"string\") {\n return \"\";\n }\n\n if (str.trim() === \"\") {\n return str;\n }\n\n return str.split(\"\").reverse().join(\"\");\n },\n};\n\nexport const replaceText = (srcObj: any, inputText: string, replaceMap: any) =>\n Object.keys(replaceMap).reduce(\n (outputText, replaceKey) =>\n srcObj[replaceKey]\n ? outputText.replace(`{{${replaceKey}}}`, srcObj[replaceKey])\n : outputText,\n inputText\n );\n\nexport const getStrWithCommas = (input: any) =>\n general.numberWithCommas(input.toString());\n","import { trackEvent, sanitizeEventProperties } from \"../common/analytics\";\nimport Tracking from \"../common/tracking\";\nimport * as Platforms from \"../common/tracking/platforms\";\n\nexport default class ImktTracking {\n // expose utils for Apollo to call from external experiment code.\n apollo = {\n Tracking,\n Platforms,\n };\n\n // Track events for analytics\n static trackEvent(eventName: string, eventProperties?: {}) {\n trackEvent(eventName, eventProperties);\n }\n\n static sanitizeEventProperties(eventProperty: {}) {\n return sanitizeEventProperties(eventProperty);\n }\n\n /* use the below function for tracking content that was not rendered server-side and has thus escaped the purview of the tracking wrapper */\n static trackLateRenderedEvent(eventName: string, eventTarget: HTMLElement) {\n if (\n eventTarget.tagName == \"A\" ||\n (eventTarget.tagName == \"BUTTON\" && eventTarget.dataset.uuid)\n ) {\n let attributes = [\n \"uuid\",\n \"event\",\n \"eventComponent\",\n \"eventContainer\",\n \"parentLabel\",\n \"eventColumn\",\n \"schemaVersion\",\n ];\n let eventData = {\n label: eventTarget.dataset.label\n ? eventTarget.dataset.label\n : eventTarget.innerText,\n };\n attributes.forEach((attribute) => {\n eventData[attribute] = eventTarget.dataset[attribute];\n });\n this.trackEvent(eventName, eventData);\n }\n }\n}\n","import history from '../utils/history';\n\nexport default {\n // url without any query string\n getBareUrl(url?: string) {\n var questionIndex;\n url = url || window.location.href;\n questionIndex = url.indexOf(\"?\");\n return url.substring(0, questionIndex > -1 ? questionIndex : url.length);\n },\n // url without any hash\n getUnhashedUrl(url?: string) {\n var hashIndex;\n url = url || window.location.href;\n hashIndex = url.indexOf(\"#\");\n return url.substring(0, hashIndex > -1 ? hashIndex : url.length);\n },\n getProtocol(url?: string) {\n var r = \"\",\n i;\n url = this.getBareUrl(url || window.location.href);\n i = url.indexOf(\"://\");\n if (i > -1) {\n r = url.substring(0, i);\n }\n return r;\n },\n getHostname(url?: string) {\n var protocol, start;\n url = this.getBareUrl(url || window.location.href);\n protocol = this.getProtocol(url);\n start = protocol ? protocol.length + 3 : 0;\n return url.substring(start, url.indexOf(\"/\", start));\n },\n // query string only (no question mark)\n getQueryString(url?: string) {\n var questionIndex,\n r = window.location.search.substring(1, window.location.search.length);\n if (url) {\n url = this.getUnhashedUrl(url);\n questionIndex = url.indexOf(\"?\");\n r = questionIndex > -1 ? url.substring(questionIndex + 1) : \"\";\n }\n return r;\n },\n updateQueryStringParam(key: string, value: string) {\n var baseUrl = [\n location.protocol,\n \"//\",\n location.host,\n location.pathname,\n ].join(\"\"),\n queryString = document.location.search,\n newParam = key + \"=\" + value,\n params = \"?\" + newParam;\n\n if (queryString) {\n var keyRegex = new RegExp(\"([?&])\" + key + \"[^&]*\");\n\n if (queryString.match(keyRegex) !== null) {\n params = queryString.replace(keyRegex, \"$1\" + newParam);\n } else {\n params = queryString + \"&\" + newParam;\n }\n }\n\n history.pushState({}, \"\", baseUrl + params);\n },\n getPathname(url?: string) {\n var hostname, questionIndex;\n url = url || window.location.href;\n hostname = this.getHostname(url);\n questionIndex = url.indexOf(\"?\");\n return url.substring(\n url.indexOf(hostname) + hostname.length,\n questionIndex > -1 ? questionIndex : url.length\n );\n },\n // serialize an object literal into a url encoded string\n serialize(params: { [key: string]: string }) {\n var r = [],\n tempArray;\n for (var prop in params) {\n if (params[prop] !== null) {\n tempArray = [prop];\n tempArray.push(\"=\");\n tempArray.push(encodeURIComponent(params[prop]));\n r.push(tempArray.join(\"\"));\n }\n }\n return r.join(\"&\");\n },\n htmlEscape(str) {\n return String(str)\n .replace(/&/g, \"&\")\n .replace(/\"/g, \""\")\n .replace(/'/g, \"'\")\n .replace(//g, \">\");\n },\n // returns an object literal of the url params on a url\n getUrlParams(url?: string) {\n var r: { [key: string]: string } | null = null,\n qs,\n paramPairs,\n keyValuePair,\n i = 0;\n\n qs = this.getQueryString(url);\n\n if (qs) {\n paramPairs = qs.split(\"&\");\n for (i; i < paramPairs.length; i++) {\n if (!r) {\n r = {};\n }\n keyValuePair = paramPairs[i].split(\"=\");\n r[keyValuePair[0]] =\n keyValuePair.length > 1\n ? this.htmlEscape(decodeURIComponent(keyValuePair[1]))\n : null;\n }\n }\n\n return r;\n },\n // returns a url with additional params added (params is an object literal)\n addUrlParams(params: {}, url?: string) {\n var r = [],\n qs;\n\n url = url || window.location.href;\n r.push(this.getBareUrl(url));\n params = { ...this.getUrlParams(url), ...params };\n qs = this.serialize(params);\n if (qs) {\n r.push(\"?\");\n r.push(qs);\n }\n\n return r.join(\"\");\n },\n // returns a url with params removed (params is an array of url param keys)\n removeUrlParams(params: {}, url?: string) {\n var r = [],\n qs;\n\n url = url || window.location.href;\n r.push(this.getBareUrl(url));\n var currentParams = this.getUrlParams(url);\n for (var i = params.length - 1; i >= 0; i--) {\n if (typeof currentParams[params[i]] !== \"undefined\") {\n delete currentParams[params[i]];\n }\n }\n\n qs = this.serialize(currentParams);\n if (qs) {\n r.push(\"?\");\n r.push(qs);\n }\n\n return r.join(\"\");\n },\n // returns a url without http(s)://(www.) and without trailing slash, optionally with url vars\n getSimpleUrl(url: string | null, matchUrlVars?: boolean) {\n url = url || window.location.href;\n\n var simpleMatch = /^((https?|):\\/\\/)?(www\\.)?/;\n var trailingSlashMatch = /\\/$/;\n\n var bareUrl = this.getBareUrl(url);\n var hashUrlArray = bareUrl.split(\"#\");\n var hashUrl = \"\";\n\n bareUrl = hashUrlArray[0];\n if (hashUrlArray.length > 1) {\n hashUrl = \"#\" + hashUrlArray[1];\n }\n\n var result = bareUrl\n .replace(simpleMatch, \"\")\n .replace(trailingSlashMatch, \"\");\n\n if (matchUrlVars) {\n var queryString = this.getQueryString(url);\n\n if (queryString) {\n result += \"?\" + queryString;\n }\n result += hashUrl;\n }\n\n return result;\n },\n}\n","/*! https://mths.be/punycode v1.3.2 by @mathias */\n;(function(root) {\n\n\t/** Detect free variables */\n\tvar freeExports = typeof exports == 'object' && exports &&\n\t\t!exports.nodeType && exports;\n\tvar freeModule = typeof module == 'object' && module &&\n\t\t!module.nodeType && module;\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (\n\t\tfreeGlobal.global === freeGlobal ||\n\t\tfreeGlobal.window === freeGlobal ||\n\t\tfreeGlobal.self === freeGlobal\n\t) {\n\t\troot = freeGlobal;\n\t}\n\n\t/**\n\t * The `punycode` object.\n\t * @name punycode\n\t * @type Object\n\t */\n\tvar punycode,\n\n\t/** Highest positive signed 32-bit float value */\n\tmaxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1\n\n\t/** Bootstring parameters */\n\tbase = 36,\n\ttMin = 1,\n\ttMax = 26,\n\tskew = 38,\n\tdamp = 700,\n\tinitialBias = 72,\n\tinitialN = 128, // 0x80\n\tdelimiter = '-', // '\\x2D'\n\n\t/** Regular expressions */\n\tregexPunycode = /^xn--/,\n\tregexNonASCII = /[^\\x20-\\x7E]/, // unprintable ASCII chars + non-ASCII chars\n\tregexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g, // RFC 3490 separators\n\n\t/** Error messages */\n\terrors = {\n\t\t'overflow': 'Overflow: input needs wider integers to process',\n\t\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t\t'invalid-input': 'Invalid input'\n\t},\n\n\t/** Convenience shortcuts */\n\tbaseMinusTMin = base - tMin,\n\tfloor = Math.floor,\n\tstringFromCharCode = String.fromCharCode,\n\n\t/** Temporary variable */\n\tkey;\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/**\n\t * A generic error utility function.\n\t * @private\n\t * @param {String} type The error type.\n\t * @returns {Error} Throws a `RangeError` with the applicable error message.\n\t */\n\tfunction error(type) {\n\t\tthrow RangeError(errors[type]);\n\t}\n\n\t/**\n\t * A generic `Array#map` utility function.\n\t * @private\n\t * @param {Array} array The array to iterate over.\n\t * @param {Function} callback The function that gets called for every array\n\t * item.\n\t * @returns {Array} A new array of values returned by the callback function.\n\t */\n\tfunction map(array, fn) {\n\t\tvar length = array.length;\n\t\tvar result = [];\n\t\twhile (length--) {\n\t\t\tresult[length] = fn(array[length]);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * A simple `Array#map`-like wrapper to work with domain name strings or email\n\t * addresses.\n\t * @private\n\t * @param {String} domain The domain name or email address.\n\t * @param {Function} callback The function that gets called for every\n\t * character.\n\t * @returns {Array} A new string of characters returned by the callback\n\t * function.\n\t */\n\tfunction mapDomain(string, fn) {\n\t\tvar parts = string.split('@');\n\t\tvar result = '';\n\t\tif (parts.length > 1) {\n\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\tresult = parts[0] + '@';\n\t\t\tstring = parts[1];\n\t\t}\n\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\tvar labels = string.split('.');\n\t\tvar encoded = map(labels, fn).join('.');\n\t\treturn result + encoded;\n\t}\n\n\t/**\n\t * Creates an array containing the numeric code points of each Unicode\n\t * character in the string. While JavaScript uses UCS-2 internally,\n\t * this function will convert a pair of surrogate halves (each of which\n\t * UCS-2 exposes as separate characters) into a single code point,\n\t * matching UTF-16.\n\t * @see `punycode.ucs2.encode`\n\t * @see \n\t * @memberOf punycode.ucs2\n\t * @name decode\n\t * @param {String} string The Unicode input string (UCS-2).\n\t * @returns {Array} The new array of code points.\n\t */\n\tfunction ucs2decode(string) {\n\t\tvar output = [],\n\t\t counter = 0,\n\t\t length = string.length,\n\t\t value,\n\t\t extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t/**\n\t * Creates a string based on an array of numeric code points.\n\t * @see `punycode.ucs2.decode`\n\t * @memberOf punycode.ucs2\n\t * @name encode\n\t * @param {Array} codePoints The array of numeric code points.\n\t * @returns {String} The new Unicode string (UCS-2).\n\t */\n\tfunction ucs2encode(array) {\n\t\treturn map(array, function(value) {\n\t\t\tvar output = '';\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t\treturn output;\n\t\t}).join('');\n\t}\n\n\t/**\n\t * Converts a basic code point into a digit/integer.\n\t * @see `digitToBasic()`\n\t * @private\n\t * @param {Number} codePoint The basic numeric code point value.\n\t * @returns {Number} The numeric value of a basic code point (for use in\n\t * representing integers) in the range `0` to `base - 1`, or `base` if\n\t * the code point does not represent a value.\n\t */\n\tfunction basicToDigit(codePoint) {\n\t\tif (codePoint - 48 < 10) {\n\t\t\treturn codePoint - 22;\n\t\t}\n\t\tif (codePoint - 65 < 26) {\n\t\t\treturn codePoint - 65;\n\t\t}\n\t\tif (codePoint - 97 < 26) {\n\t\t\treturn codePoint - 97;\n\t\t}\n\t\treturn base;\n\t}\n\n\t/**\n\t * Converts a digit/integer into a basic code point.\n\t * @see `basicToDigit()`\n\t * @private\n\t * @param {Number} digit The numeric value of a basic code point.\n\t * @returns {Number} The basic code point whose value (when used for\n\t * representing integers) is `digit`, which needs to be in the range\n\t * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n\t * used; else, the lowercase form is used. The behavior is undefined\n\t * if `flag` is non-zero and `digit` has no uppercase form.\n\t */\n\tfunction digitToBasic(digit, flag) {\n\t\t// 0..25 map to ASCII a..z or A..Z\n\t\t// 26..35 map to ASCII 0..9\n\t\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n\t}\n\n\t/**\n\t * Bias adaptation function as per section 3.4 of RFC 3492.\n\t * http://tools.ietf.org/html/rfc3492#section-3.4\n\t * @private\n\t */\n\tfunction adapt(delta, numPoints, firstTime) {\n\t\tvar k = 0;\n\t\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\t\tdelta += floor(delta / numPoints);\n\t\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\t\tdelta = floor(delta / baseMinusTMin);\n\t\t}\n\t\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n\t}\n\n\t/**\n\t * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n\t * symbols.\n\t * @memberOf punycode\n\t * @param {String} input The Punycode string of ASCII-only symbols.\n\t * @returns {String} The resulting string of Unicode symbols.\n\t */\n\tfunction decode(input) {\n\t\t// Don't use UCS-2\n\t\tvar output = [],\n\t\t inputLength = input.length,\n\t\t out,\n\t\t i = 0,\n\t\t n = initialN,\n\t\t bias = initialBias,\n\t\t basic,\n\t\t j,\n\t\t index,\n\t\t oldi,\n\t\t w,\n\t\t k,\n\t\t digit,\n\t\t t,\n\t\t /** Cached calculation results */\n\t\t baseMinusT;\n\n\t\t// Handle the basic code points: let `basic` be the number of input code\n\t\t// points before the last delimiter, or `0` if there is none, then copy\n\t\t// the first basic code points to the output.\n\n\t\tbasic = input.lastIndexOf(delimiter);\n\t\tif (basic < 0) {\n\t\t\tbasic = 0;\n\t\t}\n\n\t\tfor (j = 0; j < basic; ++j) {\n\t\t\t// if it's not a basic code point\n\t\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\t\terror('not-basic');\n\t\t\t}\n\t\t\toutput.push(input.charCodeAt(j));\n\t\t}\n\n\t\t// Main decoding loop: start just after the last delimiter if any basic code\n\t\t// points were copied; start at the beginning otherwise.\n\n\t\tfor (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t\t// `index` is the index of the next character to be consumed.\n\t\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t\t// which gets added to `i`. The overflow checking is easier\n\t\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t\t// value at the end to obtain `delta`.\n\t\t\tfor (oldi = i, w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\t\tif (index >= inputLength) {\n\t\t\t\t\terror('invalid-input');\n\t\t\t\t}\n\n\t\t\t\tdigit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\ti += digit * w;\n\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\t\tif (digit < t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbaseMinusT = base - t;\n\t\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tw *= baseMinusT;\n\n\t\t\t}\n\n\t\t\tout = output.length + 1;\n\t\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t\t// incrementing `n` each time, so we'll fix that now:\n\t\t\tif (floor(i / out) > maxInt - n) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tn += floor(i / out);\n\t\t\ti %= out;\n\n\t\t\t// Insert `n` at position `i` of the output\n\t\t\toutput.splice(i++, 0, n);\n\n\t\t}\n\n\t\treturn ucs2encode(output);\n\t}\n\n\t/**\n\t * Converts a string of Unicode symbols (e.g. a domain name label) to a\n\t * Punycode string of ASCII-only symbols.\n\t * @memberOf punycode\n\t * @param {String} input The string of Unicode symbols.\n\t * @returns {String} The resulting Punycode string of ASCII-only symbols.\n\t */\n\tfunction encode(input) {\n\t\tvar n,\n\t\t delta,\n\t\t handledCPCount,\n\t\t basicLength,\n\t\t bias,\n\t\t j,\n\t\t m,\n\t\t q,\n\t\t k,\n\t\t t,\n\t\t currentValue,\n\t\t output = [],\n\t\t /** `inputLength` will hold the number of code points in `input`. */\n\t\t inputLength,\n\t\t /** Cached calculation results */\n\t\t handledCPCountPlusOne,\n\t\t baseMinusT,\n\t\t qMinusT;\n\n\t\t// Convert the input in UCS-2 to Unicode\n\t\tinput = ucs2decode(input);\n\n\t\t// Cache the length\n\t\tinputLength = input.length;\n\n\t\t// Initialize the state\n\t\tn = initialN;\n\t\tdelta = 0;\n\t\tbias = initialBias;\n\n\t\t// Handle the basic code points\n\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\tcurrentValue = input[j];\n\t\t\tif (currentValue < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t\t}\n\t\t}\n\n\t\thandledCPCount = basicLength = output.length;\n\n\t\t// `handledCPCount` is the number of code points that have been handled;\n\t\t// `basicLength` is the number of basic code points.\n\n\t\t// Finish the basic string - if it is not empty - with a delimiter\n\t\tif (basicLength) {\n\t\t\toutput.push(delimiter);\n\t\t}\n\n\t\t// Main encoding loop:\n\t\twhile (handledCPCount < inputLength) {\n\n\t\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t\t// larger one:\n\t\t\tfor (m = maxInt, j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's state to ,\n\t\t\t// but guard against overflow\n\t\t\thandledCPCountPlusOne = handledCPCount + 1;\n\t\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\t\tn = m;\n\n\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\n\t\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tif (currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer\n\t\t\t\t\tfor (q = delta, k = base; /* no condition */; k += base) {\n\t\t\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqMinusT = q - t;\n\t\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\t\toutput.push(\n\t\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t\t);\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++delta;\n\t\t\t++n;\n\n\t\t}\n\t\treturn output.join('');\n\t}\n\n\t/**\n\t * Converts a Punycode string representing a domain name or an email address\n\t * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n\t * it doesn't matter if you call it on a string that has already been\n\t * converted to Unicode.\n\t * @memberOf punycode\n\t * @param {String} input The Punycoded domain name or email address to\n\t * convert to Unicode.\n\t * @returns {String} The Unicode representation of the given Punycode\n\t * string.\n\t */\n\tfunction toUnicode(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexPunycode.test(string)\n\t\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/**\n\t * Converts a Unicode string representing a domain name or an email address to\n\t * Punycode. Only the non-ASCII parts of the domain name will be converted,\n\t * i.e. it doesn't matter if you call it with a domain that's already in\n\t * ASCII.\n\t * @memberOf punycode\n\t * @param {String} input The domain name or email address to convert, as a\n\t * Unicode string.\n\t * @returns {String} The Punycode representation of the given domain name or\n\t * email address.\n\t */\n\tfunction toASCII(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexNonASCII.test(string)\n\t\t\t\t? 'xn--' + encode(string)\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/** Define the public API */\n\tpunycode = {\n\t\t/**\n\t\t * A string representing the current Punycode.js version number.\n\t\t * @memberOf punycode\n\t\t * @type String\n\t\t */\n\t\t'version': '1.3.2',\n\t\t/**\n\t\t * An object of methods to convert from JavaScript's internal character\n\t\t * representation (UCS-2) to Unicode code points, and back.\n\t\t * @see \n\t\t * @memberOf punycode\n\t\t * @type Object\n\t\t */\n\t\t'ucs2': {\n\t\t\t'decode': ucs2decode,\n\t\t\t'encode': ucs2encode\n\t\t},\n\t\t'decode': decode,\n\t\t'encode': encode,\n\t\t'toASCII': toASCII,\n\t\t'toUnicode': toUnicode\n\t};\n\n\t/** Expose `punycode` */\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine('punycode', function() {\n\t\t\treturn punycode;\n\t\t});\n\t} else if (freeExports && freeModule) {\n\t\tif (module.exports == freeExports) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = punycode;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (key in punycode) {\n\t\t\t\tpunycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.punycode = punycode;\n\t}\n\n}(this));\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar punycode = require('punycode');\nvar util = require('./util');\n\nexports.parse = urlParse;\nexports.resolve = urlResolve;\nexports.resolveObject = urlResolveObject;\nexports.format = urlFormat;\n\nexports.Url = Url;\n\nfunction Url() {\n this.protocol = null;\n this.slashes = null;\n this.auth = null;\n this.host = null;\n this.port = null;\n this.hostname = null;\n this.hash = null;\n this.search = null;\n this.query = null;\n this.pathname = null;\n this.path = null;\n this.href = null;\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n// define these here so at least they only have to be\n// compiled once on the first module load.\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n portPattern = /:[0-9]*$/,\n\n // Special case for a simple path URL\n simplePathPattern = /^(\\/\\/?(?!\\/)[^\\?\\s]*)(\\?[^\\s]*)?$/,\n\n // RFC 2396: characters reserved for delimiting URLs.\n // We actually just auto-escape these.\n delims = ['<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t'],\n\n // RFC 2396: characters not allowed for various reasons.\n unwise = ['{', '}', '|', '\\\\', '^', '`'].concat(delims),\n\n // Allowed by RFCs, but cause of XSS attacks. Always escape these.\n autoEscape = ['\\''].concat(unwise),\n // Characters that are never ever allowed in a hostname.\n // Note that any invalid chars are also handled, but these\n // are the ones that are *expected* to be seen, so we fast-path\n // them.\n nonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape),\n hostEndingChars = ['/', '?', '#'],\n hostnameMaxLen = 255,\n hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,\n hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,\n // protocols that can allow \"unsafe\" and \"unwise\" chars.\n unsafeProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that never have a hostname.\n hostlessProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that always contain a // bit.\n slashedProtocol = {\n 'http': true,\n 'https': true,\n 'ftp': true,\n 'gopher': true,\n 'file': true,\n 'http:': true,\n 'https:': true,\n 'ftp:': true,\n 'gopher:': true,\n 'file:': true\n },\n querystring = require('querystring');\n\nfunction urlParse(url, parseQueryString, slashesDenoteHost) {\n if (url && util.isObject(url) && url instanceof Url) return url;\n\n var u = new Url;\n u.parse(url, parseQueryString, slashesDenoteHost);\n return u;\n}\n\nUrl.prototype.parse = function(url, parseQueryString, slashesDenoteHost) {\n if (!util.isString(url)) {\n throw new TypeError(\"Parameter 'url' must be a string, not \" + typeof url);\n }\n\n // Copy chrome, IE, opera backslash-handling behavior.\n // Back slashes before the query string get converted to forward slashes\n // See: https://code.google.com/p/chromium/issues/detail?id=25916\n var queryIndex = url.indexOf('?'),\n splitter =\n (queryIndex !== -1 && queryIndex < url.indexOf('#')) ? '?' : '#',\n uSplit = url.split(splitter),\n slashRegex = /\\\\/g;\n uSplit[0] = uSplit[0].replace(slashRegex, '/');\n url = uSplit.join(splitter);\n\n var rest = url;\n\n // trim before proceeding.\n // This is to support parse stuff like \" http://foo.com \\n\"\n rest = rest.trim();\n\n if (!slashesDenoteHost && url.split('#').length === 1) {\n // Try fast path regexp\n var simplePath = simplePathPattern.exec(rest);\n if (simplePath) {\n this.path = rest;\n this.href = rest;\n this.pathname = simplePath[1];\n if (simplePath[2]) {\n this.search = simplePath[2];\n if (parseQueryString) {\n this.query = querystring.parse(this.search.substr(1));\n } else {\n this.query = this.search.substr(1);\n }\n } else if (parseQueryString) {\n this.search = '';\n this.query = {};\n }\n return this;\n }\n }\n\n var proto = protocolPattern.exec(rest);\n if (proto) {\n proto = proto[0];\n var lowerProto = proto.toLowerCase();\n this.protocol = lowerProto;\n rest = rest.substr(proto.length);\n }\n\n // figure out if it's got a host\n // user@server is *always* interpreted as a hostname, and url\n // resolution will treat //foo/bar as host=foo,path=bar because that's\n // how the browser resolves relative URLs.\n if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)) {\n var slashes = rest.substr(0, 2) === '//';\n if (slashes && !(proto && hostlessProtocol[proto])) {\n rest = rest.substr(2);\n this.slashes = true;\n }\n }\n\n if (!hostlessProtocol[proto] &&\n (slashes || (proto && !slashedProtocol[proto]))) {\n\n // there's a hostname.\n // the first instance of /, ?, ;, or # ends the host.\n //\n // If there is an @ in the hostname, then non-host chars *are* allowed\n // to the left of the last @ sign, unless some host-ending character\n // comes *before* the @-sign.\n // URLs are obnoxious.\n //\n // ex:\n // http://a@b@c/ => user:a@b host:c\n // http://a@b?@c => user:a host:c path:/?@c\n\n // v0.12 TODO(isaacs): This is not quite how Chrome does things.\n // Review our test case against browsers more comprehensively.\n\n // find the first instance of any hostEndingChars\n var hostEnd = -1;\n for (var i = 0; i < hostEndingChars.length; i++) {\n var hec = rest.indexOf(hostEndingChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n\n // at this point, either we have an explicit point where the\n // auth portion cannot go past, or the last @ char is the decider.\n var auth, atSign;\n if (hostEnd === -1) {\n // atSign can be anywhere.\n atSign = rest.lastIndexOf('@');\n } else {\n // atSign must be in auth portion.\n // http://a@b/c@d => host:b auth:a path:/c@d\n atSign = rest.lastIndexOf('@', hostEnd);\n }\n\n // Now we have a portion which is definitely the auth.\n // Pull that off.\n if (atSign !== -1) {\n auth = rest.slice(0, atSign);\n rest = rest.slice(atSign + 1);\n this.auth = decodeURIComponent(auth);\n }\n\n // the host is the remaining to the left of the first non-host char\n hostEnd = -1;\n for (var i = 0; i < nonHostChars.length; i++) {\n var hec = rest.indexOf(nonHostChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n // if we still have not hit it, then the entire thing is a host.\n if (hostEnd === -1)\n hostEnd = rest.length;\n\n this.host = rest.slice(0, hostEnd);\n rest = rest.slice(hostEnd);\n\n // pull out port.\n this.parseHost();\n\n // we've indicated that there is a hostname,\n // so even if it's empty, it has to be present.\n this.hostname = this.hostname || '';\n\n // if hostname begins with [ and ends with ]\n // assume that it's an IPv6 address.\n var ipv6Hostname = this.hostname[0] === '[' &&\n this.hostname[this.hostname.length - 1] === ']';\n\n // validate a little.\n if (!ipv6Hostname) {\n var hostparts = this.hostname.split(/\\./);\n for (var i = 0, l = hostparts.length; i < l; i++) {\n var part = hostparts[i];\n if (!part) continue;\n if (!part.match(hostnamePartPattern)) {\n var newpart = '';\n for (var j = 0, k = part.length; j < k; j++) {\n if (part.charCodeAt(j) > 127) {\n // we replace non-ASCII char with a temporary placeholder\n // we need this to make sure size of hostname is not\n // broken by replacing non-ASCII by nothing\n newpart += 'x';\n } else {\n newpart += part[j];\n }\n }\n // we test again with ASCII char only\n if (!newpart.match(hostnamePartPattern)) {\n var validParts = hostparts.slice(0, i);\n var notHost = hostparts.slice(i + 1);\n var bit = part.match(hostnamePartStart);\n if (bit) {\n validParts.push(bit[1]);\n notHost.unshift(bit[2]);\n }\n if (notHost.length) {\n rest = '/' + notHost.join('.') + rest;\n }\n this.hostname = validParts.join('.');\n break;\n }\n }\n }\n }\n\n if (this.hostname.length > hostnameMaxLen) {\n this.hostname = '';\n } else {\n // hostnames are always lower case.\n this.hostname = this.hostname.toLowerCase();\n }\n\n if (!ipv6Hostname) {\n // IDNA Support: Returns a punycoded representation of \"domain\".\n // It only converts parts of the domain name that\n // have non-ASCII characters, i.e. it doesn't matter if\n // you call it with a domain that already is ASCII-only.\n this.hostname = punycode.toASCII(this.hostname);\n }\n\n var p = this.port ? ':' + this.port : '';\n var h = this.hostname || '';\n this.host = h + p;\n this.href += this.host;\n\n // strip [ and ] from the hostname\n // the host field still retains them, though\n if (ipv6Hostname) {\n this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n if (rest[0] !== '/') {\n rest = '/' + rest;\n }\n }\n }\n\n // now rest is set to the post-host stuff.\n // chop off any delim chars.\n if (!unsafeProtocol[lowerProto]) {\n\n // First, make 100% sure that any \"autoEscape\" chars get\n // escaped, even if encodeURIComponent doesn't think they\n // need to be.\n for (var i = 0, l = autoEscape.length; i < l; i++) {\n var ae = autoEscape[i];\n if (rest.indexOf(ae) === -1)\n continue;\n var esc = encodeURIComponent(ae);\n if (esc === ae) {\n esc = escape(ae);\n }\n rest = rest.split(ae).join(esc);\n }\n }\n\n\n // chop off from the tail first.\n var hash = rest.indexOf('#');\n if (hash !== -1) {\n // got a fragment string.\n this.hash = rest.substr(hash);\n rest = rest.slice(0, hash);\n }\n var qm = rest.indexOf('?');\n if (qm !== -1) {\n this.search = rest.substr(qm);\n this.query = rest.substr(qm + 1);\n if (parseQueryString) {\n this.query = querystring.parse(this.query);\n }\n rest = rest.slice(0, qm);\n } else if (parseQueryString) {\n // no query string, but parseQueryString still requested\n this.search = '';\n this.query = {};\n }\n if (rest) this.pathname = rest;\n if (slashedProtocol[lowerProto] &&\n this.hostname && !this.pathname) {\n this.pathname = '/';\n }\n\n //to support http.request\n if (this.pathname || this.search) {\n var p = this.pathname || '';\n var s = this.search || '';\n this.path = p + s;\n }\n\n // finally, reconstruct the href based on what has been validated.\n this.href = this.format();\n return this;\n};\n\n// format a parsed object into a url string\nfunction urlFormat(obj) {\n // ensure it's an object, and not a string url.\n // If it's an obj, this is a no-op.\n // this way, you can call url_format() on strings\n // to clean up potentially wonky urls.\n if (util.isString(obj)) obj = urlParse(obj);\n if (!(obj instanceof Url)) return Url.prototype.format.call(obj);\n return obj.format();\n}\n\nUrl.prototype.format = function() {\n var auth = this.auth || '';\n if (auth) {\n auth = encodeURIComponent(auth);\n auth = auth.replace(/%3A/i, ':');\n auth += '@';\n }\n\n var protocol = this.protocol || '',\n pathname = this.pathname || '',\n hash = this.hash || '',\n host = false,\n query = '';\n\n if (this.host) {\n host = auth + this.host;\n } else if (this.hostname) {\n host = auth + (this.hostname.indexOf(':') === -1 ?\n this.hostname :\n '[' + this.hostname + ']');\n if (this.port) {\n host += ':' + this.port;\n }\n }\n\n if (this.query &&\n util.isObject(this.query) &&\n Object.keys(this.query).length) {\n query = querystring.stringify(this.query);\n }\n\n var search = this.search || (query && ('?' + query)) || '';\n\n if (protocol && protocol.substr(-1) !== ':') protocol += ':';\n\n // only the slashedProtocols get the //. Not mailto:, xmpp:, etc.\n // unless they had them to begin with.\n if (this.slashes ||\n (!protocol || slashedProtocol[protocol]) && host !== false) {\n host = '//' + (host || '');\n if (pathname && pathname.charAt(0) !== '/') pathname = '/' + pathname;\n } else if (!host) {\n host = '';\n }\n\n if (hash && hash.charAt(0) !== '#') hash = '#' + hash;\n if (search && search.charAt(0) !== '?') search = '?' + search;\n\n pathname = pathname.replace(/[?#]/g, function(match) {\n return encodeURIComponent(match);\n });\n search = search.replace('#', '%23');\n\n return protocol + host + pathname + search + hash;\n};\n\nfunction urlResolve(source, relative) {\n return urlParse(source, false, true).resolve(relative);\n}\n\nUrl.prototype.resolve = function(relative) {\n return this.resolveObject(urlParse(relative, false, true)).format();\n};\n\nfunction urlResolveObject(source, relative) {\n if (!source) return relative;\n return urlParse(source, false, true).resolveObject(relative);\n}\n\nUrl.prototype.resolveObject = function(relative) {\n if (util.isString(relative)) {\n var rel = new Url();\n rel.parse(relative, false, true);\n relative = rel;\n }\n\n var result = new Url();\n var tkeys = Object.keys(this);\n for (var tk = 0; tk < tkeys.length; tk++) {\n var tkey = tkeys[tk];\n result[tkey] = this[tkey];\n }\n\n // hash is always overridden, no matter what.\n // even href=\"\" will remove it.\n result.hash = relative.hash;\n\n // if the relative url is empty, then there's nothing left to do here.\n if (relative.href === '') {\n result.href = result.format();\n return result;\n }\n\n // hrefs like //foo/bar always cut to the protocol.\n if (relative.slashes && !relative.protocol) {\n // take everything except the protocol from relative\n var rkeys = Object.keys(relative);\n for (var rk = 0; rk < rkeys.length; rk++) {\n var rkey = rkeys[rk];\n if (rkey !== 'protocol')\n result[rkey] = relative[rkey];\n }\n\n //urlParse appends trailing / to urls like http://www.example.com\n if (slashedProtocol[result.protocol] &&\n result.hostname && !result.pathname) {\n result.path = result.pathname = '/';\n }\n\n result.href = result.format();\n return result;\n }\n\n if (relative.protocol && relative.protocol !== result.protocol) {\n // if it's a known url protocol, then changing\n // the protocol does weird things\n // first, if it's not file:, then we MUST have a host,\n // and if there was a path\n // to begin with, then we MUST have a path.\n // if it is file:, then the host is dropped,\n // because that's known to be hostless.\n // anything else is assumed to be absolute.\n if (!slashedProtocol[relative.protocol]) {\n var keys = Object.keys(relative);\n for (var v = 0; v < keys.length; v++) {\n var k = keys[v];\n result[k] = relative[k];\n }\n result.href = result.format();\n return result;\n }\n\n result.protocol = relative.protocol;\n if (!relative.host && !hostlessProtocol[relative.protocol]) {\n var relPath = (relative.pathname || '').split('/');\n while (relPath.length && !(relative.host = relPath.shift()));\n if (!relative.host) relative.host = '';\n if (!relative.hostname) relative.hostname = '';\n if (relPath[0] !== '') relPath.unshift('');\n if (relPath.length < 2) relPath.unshift('');\n result.pathname = relPath.join('/');\n } else {\n result.pathname = relative.pathname;\n }\n result.search = relative.search;\n result.query = relative.query;\n result.host = relative.host || '';\n result.auth = relative.auth;\n result.hostname = relative.hostname || relative.host;\n result.port = relative.port;\n // to support http.request\n if (result.pathname || result.search) {\n var p = result.pathname || '';\n var s = result.search || '';\n result.path = p + s;\n }\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n }\n\n var isSourceAbs = (result.pathname && result.pathname.charAt(0) === '/'),\n isRelAbs = (\n relative.host ||\n relative.pathname && relative.pathname.charAt(0) === '/'\n ),\n mustEndAbs = (isRelAbs || isSourceAbs ||\n (result.host && relative.pathname)),\n removeAllDots = mustEndAbs,\n srcPath = result.pathname && result.pathname.split('/') || [],\n relPath = relative.pathname && relative.pathname.split('/') || [],\n psychotic = result.protocol && !slashedProtocol[result.protocol];\n\n // if the url is a non-slashed url, then relative\n // links like ../.. should be able\n // to crawl up to the hostname, as well. This is strange.\n // result.protocol has already been set by now.\n // Later on, put the first path part into the host field.\n if (psychotic) {\n result.hostname = '';\n result.port = null;\n if (result.host) {\n if (srcPath[0] === '') srcPath[0] = result.host;\n else srcPath.unshift(result.host);\n }\n result.host = '';\n if (relative.protocol) {\n relative.hostname = null;\n relative.port = null;\n if (relative.host) {\n if (relPath[0] === '') relPath[0] = relative.host;\n else relPath.unshift(relative.host);\n }\n relative.host = null;\n }\n mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');\n }\n\n if (isRelAbs) {\n // it's absolute.\n result.host = (relative.host || relative.host === '') ?\n relative.host : result.host;\n result.hostname = (relative.hostname || relative.hostname === '') ?\n relative.hostname : result.hostname;\n result.search = relative.search;\n result.query = relative.query;\n srcPath = relPath;\n // fall through to the dot-handling below.\n } else if (relPath.length) {\n // it's relative\n // throw away the existing file, and take the new path instead.\n if (!srcPath) srcPath = [];\n srcPath.pop();\n srcPath = srcPath.concat(relPath);\n result.search = relative.search;\n result.query = relative.query;\n } else if (!util.isNullOrUndefined(relative.search)) {\n // just pull out the search.\n // like href='?foo'.\n // Put this after the other two cases because it simplifies the booleans\n if (psychotic) {\n result.hostname = result.host = srcPath.shift();\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n result.search = relative.search;\n result.query = relative.query;\n //to support http.request\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.href = result.format();\n return result;\n }\n\n if (!srcPath.length) {\n // no path at all. easy.\n // we've already handled the other stuff above.\n result.pathname = null;\n //to support http.request\n if (result.search) {\n result.path = '/' + result.search;\n } else {\n result.path = null;\n }\n result.href = result.format();\n return result;\n }\n\n // if a url ENDs in . or .., then it must get a trailing slash.\n // however, if it ends in anything else non-slashy,\n // then it must NOT get a trailing slash.\n var last = srcPath.slice(-1)[0];\n var hasTrailingSlash = (\n (result.host || relative.host || srcPath.length > 1) &&\n (last === '.' || last === '..') || last === '');\n\n // strip single dots, resolve double dots to parent dir\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = srcPath.length; i >= 0; i--) {\n last = srcPath[i];\n if (last === '.') {\n srcPath.splice(i, 1);\n } else if (last === '..') {\n srcPath.splice(i, 1);\n up++;\n } else if (up) {\n srcPath.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (!mustEndAbs && !removeAllDots) {\n for (; up--; up) {\n srcPath.unshift('..');\n }\n }\n\n if (mustEndAbs && srcPath[0] !== '' &&\n (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {\n srcPath.unshift('');\n }\n\n if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) {\n srcPath.push('');\n }\n\n var isAbsolute = srcPath[0] === '' ||\n (srcPath[0] && srcPath[0].charAt(0) === '/');\n\n // put the host back\n if (psychotic) {\n result.hostname = result.host = isAbsolute ? '' :\n srcPath.length ? srcPath.shift() : '';\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n\n mustEndAbs = mustEndAbs || (result.host && srcPath.length);\n\n if (mustEndAbs && !isAbsolute) {\n srcPath.unshift('');\n }\n\n if (!srcPath.length) {\n result.pathname = null;\n result.path = null;\n } else {\n result.pathname = srcPath.join('/');\n }\n\n //to support request.http\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.auth = relative.auth || result.auth;\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n};\n\nUrl.prototype.parseHost = function() {\n var host = this.host;\n var port = portPattern.exec(host);\n if (port) {\n port = port[0];\n if (port !== ':') {\n this.port = port.substr(1);\n }\n host = host.substr(0, host.length - port.length);\n }\n if (host) this.hostname = host;\n};\n","'use strict';\n\nmodule.exports = {\n isString: function(arg) {\n return typeof(arg) === 'string';\n },\n isObject: function(arg) {\n return typeof(arg) === 'object' && arg !== null;\n },\n isNull: function(arg) {\n return arg === null;\n },\n isNullOrUndefined: function(arg) {\n return arg == null;\n }\n};\n","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return ([\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]]\n ]).join('');\n}\n\nmodule.exports = bytesToUuid;\n","// Unique ID creation requires a high quality random # generator. In the\n// browser this is a little complicated due to unknown quality of Math.random()\n// and inconsistent support for the `crypto` API. We do the best we can via\n// feature-detection\n\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto\n// implementation. Also, find the complete implementation of crypto on IE11.\nvar getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) ||\n (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto));\n\nif (getRandomValues) {\n // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto\n var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\n module.exports = function whatwgRNG() {\n getRandomValues(rnds8);\n return rnds8;\n };\n} else {\n // Math.random()-based (RNG)\n //\n // If all else fails, use Math.random(). It's fast, but is of unspecified\n // quality.\n var rnds = new Array(16);\n\n module.exports = function mathRNG() {\n for (var i = 0, r; i < 16; i++) {\n if ((i & 0x03) === 0) r = Math.random() * 0x100000000;\n rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;\n }\n\n return rnds;\n };\n}\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof(options) == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nmodule.exports = v4;\n","module.exports = jQuery;","let urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\nlet customAlphabet = (alphabet, defaultSize = 21) => {\n return (size = defaultSize) => {\n let id = ''\n let i = size\n while (i--) {\n id += alphabet[(Math.random() * alphabet.length) | 0]\n }\n return id\n }\n}\nlet nanoid = (size = 21) => {\n let id = ''\n let i = size\n while (i--) {\n id += urlAlphabet[(Math.random() * 64) | 0]\n }\n return id\n}\nmodule.exports = { nanoid, customAlphabet }\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst errors_1 = require(\"./errors\");\nconst types_1 = require(\"../types\");\nconst version_1 = require(\"../version\");\nconst DEFAULT_REQUEST_TIMEOUT_MS = 2000;\nconst PROD_BASE_URL = 'https://api.atlassian.com/flags';\nconst STAGING_BASE_URL = 'https://api.stg.atlassian.com/flags';\nconst DEV_BASE_URL = 'https://api.dev.atlassian.com/flags';\nconst GATEWAY_BASE_URL = '/gateway/api/flags';\nclass Fetcher {\n static async fetchClientSdk(fetcherOptions) {\n const { targetApp } = fetcherOptions;\n const url = `/api/v2/frontend/clientSdkKey/${targetApp}`;\n try {\n return await this.fetchRequest(url, 'GET', fetcherOptions);\n }\n catch (error) {\n if (error instanceof Error) {\n throw error;\n }\n throw Error('Failed to retrieve client sdk key');\n }\n }\n static async fetchExperimentValues(fetcherOptions, identifiers, customAttributes) {\n const requestBody = {\n identifiers,\n customAttributes,\n targetApp: fetcherOptions.targetApp\n };\n try {\n return await this.fetchRequest('/api/v2/frontend/experimentValues', 'POST', fetcherOptions, requestBody);\n }\n catch (error) {\n if (error instanceof Error) {\n throw error;\n }\n throw Error('Failed to retrieve experiment values');\n }\n }\n static async handleResponseError(response) {\n if (!response.ok) {\n // Use text() instead of json() as the error body might not be json data\n const body = await response.text();\n throw new errors_1.ResponseError(`Non 2xx response status received, status: ${response.status}, body: ${JSON.stringify(body)}`);\n }\n if (response.status === 204) {\n throw new errors_1.ResponseError('Unexpected 204 response');\n }\n }\n static async extractResponseBody(response) {\n const value = await response.text();\n return JSON.parse(value);\n }\n static getBaseUrl(serviceEnv, useGatewayUrl = false) {\n if (useGatewayUrl) {\n return GATEWAY_BASE_URL;\n }\n switch (serviceEnv) {\n case types_1.FeatureGateEnvironment.Development:\n return DEV_BASE_URL;\n case types_1.FeatureGateEnvironment.Staging:\n return STAGING_BASE_URL;\n default:\n return PROD_BASE_URL;\n }\n }\n static async fetchRequest(path, method, fetcherOptions, body) {\n const baseUrl = Fetcher.getBaseUrl(fetcherOptions.environment, fetcherOptions.useGatewayURL);\n const fetchTimeout = fetcherOptions.fetchTimeoutMs || DEFAULT_REQUEST_TIMEOUT_MS;\n let abortSignal;\n if (AbortSignal.timeout) {\n abortSignal = AbortSignal.timeout(fetchTimeout);\n }\n else if (AbortController) {\n const abortController = new AbortController();\n abortSignal = abortController.signal;\n setTimeout(() => abortController.abort(), fetchTimeout);\n }\n const response = await fetch(`${baseUrl}${path}`, Object.assign({ method, headers: {\n 'Content-Type': 'application/json',\n 'X-Client-Name': 'feature-gate-js-client',\n 'X-Client-Version': version_1.CLIENT_VERSION,\n 'X-API-KEY': fetcherOptions.apiKey\n }, signal: abortSignal }, (body && { body: JSON.stringify(body) })));\n await this.handleResponseError(response);\n return await this.extractResponseBody(response);\n }\n}\nexports.default = Fetcher;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ResponseError = void 0;\nclass ResponseError extends Error {\n constructor(message) {\n super(message);\n }\n}\nexports.ResponseError = ResponseError;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = void 0;\nvar Fetcher_1 = require(\"./Fetcher\");\nObject.defineProperty(exports, \"default\", { enumerable: true, get: function () { return __importDefault(Fetcher_1).default; } });\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EvaluationReason = exports.DynamicConfig = void 0;\nconst statsig_js_lite_1 = __importStar(require(\"statsig-js-lite\"));\nvar statsig_js_lite_2 = require(\"statsig-js-lite\");\nObject.defineProperty(exports, \"DynamicConfig\", { enumerable: true, get: function () { return statsig_js_lite_2.DynamicConfig; } });\nObject.defineProperty(exports, \"EvaluationReason\", { enumerable: true, get: function () { return statsig_js_lite_2.EvaluationReason; } });\nconst fetcher_1 = __importDefault(require(\"./fetcher\"));\n__exportStar(require(\"./types\"), exports);\nconst DEFAULT_CLIENT_KEY = 'client-default-key';\n// the default event logging api is the Atlassian proxy rather than Statsig's domain, to avoid ad blockers\nconst DEFAULT_EVENT_LOGGING_API = 'https://xp.atlassian.com/v1/';\nclass FeatureGates {\n static async initialize(clientOptions, identifiers, customAttributes) {\n if (FeatureGates.initPromise) {\n if (!FeatureGates.shallowEquals(clientOptions, FeatureGates.initOptions)) {\n console.warn('Feature Gates client already initialized with different options. New options were not applied.');\n }\n return FeatureGates.initPromise;\n }\n FeatureGates.initOptions = clientOptions;\n FeatureGates.initPromise = FeatureGates.init(clientOptions, identifiers, customAttributes).then(() => {\n FeatureGates.initCompleted = true;\n });\n return FeatureGates.initPromise;\n }\n static async initializeFromValues(clientOptions, identifiers, customAttributes, initializeValues = {}) {\n if (FeatureGates.initPromise) {\n if (!FeatureGates.shallowEquals(clientOptions, FeatureGates.initOptions)) {\n console.warn('Feature Gates client already initialized with different options. New options were not applied.');\n }\n return FeatureGates.initPromise;\n }\n FeatureGates.initOptions = clientOptions;\n FeatureGates.initPromise = FeatureGates.initFromValues(clientOptions, identifiers, customAttributes, initializeValues).then(() => {\n FeatureGates.initCompleted = true;\n });\n return FeatureGates.initPromise;\n }\n /**\n * This method updates the user using a network call to fetch the new set of values.\n * @param fetchOptions {FetcherOptions}\n * @param identifiers {Identifiers}\n * @param customAttributes {CustomAttributes}\n */\n static async updateUser(fetchOptions, identifiers, customAttributes) {\n const initializeValuesProducer = () => fetcher_1.default.fetchExperimentValues(fetchOptions, identifiers, customAttributes).then(({ experimentValues, customAttributes }) => ({\n experimentValues,\n customAttributesFromFetch: customAttributes\n }));\n await FeatureGates.updateUserUsingInitializeValuesProducer(initializeValuesProducer, identifiers, customAttributes);\n }\n /**\n * This method updates the user given a new set of bootstrap values obtained from one of the server-side SDKs.\n *\n * @param identifiers {Identifiers}\n * @param customAttributes {CustomAttributes}\n * @param initializeValues {Record}\n */\n static async updateUserWithValues(identifiers, customAttributes, initializeValues = {}) {\n const initializeValuesProducer = () => Promise.resolve({\n experimentValues: initializeValues,\n customAttributesFromFetch: customAttributes\n });\n await FeatureGates.updateUserUsingInitializeValuesProducer(initializeValuesProducer, identifiers, customAttributes);\n }\n static initializeCalled() {\n return FeatureGates.initPromise != null;\n }\n static initializeCompleted() {\n return FeatureGates.initCompleted;\n }\n /**\n * Returns the value for a feature gate. Returns false if there are errors.\n * @param gateName - The name of the feature gate.\n */\n static checkGate(gateName) {\n try {\n return statsig_js_lite_1.default.checkGate(gateName);\n }\n catch (error) {\n // Log the first occurrence of the error\n if (!FeatureGates.hasCheckGateErrorOccurred) {\n console.warn({\n msg: 'An error has occurred checking the feature gate. Only the first occurrence of this error is logged.',\n gateName,\n error\n });\n FeatureGates.hasCheckGateErrorOccurred = true;\n }\n return false;\n }\n }\n /**\n * Returns the entire config for a given experiment.\n *\n * @param {string} experimentName - The name of the experiment\n * @param {Object} options\n * @param {boolean} options.fireExperimentExposure - Whether or not to fire the exposure event for the experiment. Defaults to true. To log an exposure event manually at a later time, use {@link manuallyLogExperimentExposure} (see [Statsig docs about manually logging exposures](https://docs.statsig.com/client/jsClientSDK#manual-exposures-)).\n * @returns The config for an experiment\n * @example\n * ```ts\n * const experimentConfig = FeatureGates.getExperiment('example-experiment-name');\n * const backgroundColor: string = experimentConfig.get('backgroundColor', 'yellow');\n * ```\n */\n static getExperiment(experimentName, options = {}) {\n try {\n const { fireExperimentExposure = true } = options;\n const evalMethod = fireExperimentExposure\n ? statsig_js_lite_1.default.getExperiment.bind(statsig_js_lite_1.default)\n : statsig_js_lite_1.default.getExperimentWithExposureLoggingDisabled.bind(statsig_js_lite_1.default);\n return evalMethod(experimentName);\n }\n catch (error) {\n // Log the first occurrence of the error\n if (!FeatureGates.hasGetExperimentErrorOccurred) {\n console.warn({\n msg: 'An error has occurred getting the experiment. Only the first occurrence of this error is logged.',\n experimentName,\n error\n });\n FeatureGates.hasGetExperimentErrorOccurred = true;\n }\n // Return a default value\n return new statsig_js_lite_1.DynamicConfig(experimentName, {}, '', {\n time: Date.now(),\n reason: statsig_js_lite_1.EvaluationReason.Error\n });\n }\n }\n /**\n * Returns the value of a given parameter in an experiment config.\n *\n * @template T\n * @param {string} experimentName - The name of the experiment\n * @param {string} parameterName - The name of the parameter to fetch from the experiment config\n * @param {T} defaultValue - The value to serve if the experiment or parameter do not exist, or if the returned value does not match the expected type.\n * @param {Object} options\n * @param {boolean} options.fireExperimentExposure - Whether or not to fire the exposure event for the experiment. Defaults to true. To log an exposure event manually at a later time, use {@link manuallyLogExperimentExposure} (see [Statsig docs about manually logging exposures](https://docs.statsig.com/client/jsClientSDK#manual-exposures-))\n * @param {function} options.typeGuard - A function that asserts that the return value has the expected type. If this function returns false, then the default value will be returned instead. This can be set to protect your code from unexpected values being set remotely. By default, this will be done by asserting that the default value and value are the same primitive type.\n * @returns The value of the parameter if the experiment and parameter both exist, otherwise the default value.\n * @example\n ``` ts\n type ValidColor = 'blue' | 'red' | 'yellow';\n type ValidColorTypeCheck = (value: unknown) => value is ValidColor;\n\n const isValidColor: ValidColorTypeCheck =\n (value: unknown) => typeof value === 'string' && ['blue', 'red', 'yellow'].includes(value);\n\n const buttonColor: ValidColor = FeatureGates.getExperimentValue(\n 'example-experiment-name',\n 'backgroundColor',\n 'yellow',\n {\n typeGuard: isValidColor\n }\n );\n ```\n */\n static getExperimentValue(experimentName, parameterName, defaultValue, options = {}) {\n const experiment = FeatureGates.getExperiment(experimentName, options);\n try {\n const { typeGuard } = options;\n return experiment.get(parameterName, defaultValue, typeGuard);\n }\n catch (error) {\n // Log the first occurrence of the error\n if (!FeatureGates.hasGetExperimentValueErrorOccurred) {\n console.warn({\n msg: 'An error has occurred getting the experiment value. Only the first occurrence of this error is logged.',\n experimentName,\n defaultValue,\n options,\n error\n });\n FeatureGates.hasGetExperimentValueErrorOccurred = true;\n }\n return defaultValue;\n }\n }\n /**\n * Manually log an experiment exposure (see [Statsig docs about manually logging exposures](https://docs.statsig.com/client/jsClientSDK#manual-exposures-)).\n * This is useful if you have evaluated an experiment earlier via {@link getExperimentValue} or\n * {@link getExperiment} where options.fireExperimentExposure is false.\n * @param experimentName\n */\n static manuallyLogExperimentExposure(experimentName) {\n statsig_js_lite_1.default.manuallyLogExperimentExposure(experimentName);\n }\n static shutdownStatsig() {\n statsig_js_lite_1.default.shutdown();\n }\n /**\n * Adds a new override for the given gate.\n *\n * This method is additive, meaning you can call it multiple times with different gate names to build\n * your full set of overrides.\n *\n * Overrides are persisted to the `STATSIG_JS_LITE_LOCAL_OVERRIDES` key in localStorage, so they will\n * continue to affect every client that is initialized on the same domain after this method is called.\n * If you are using this API for testing purposes, you should call ${@link clearGateOverride} after\n * your tests are completed to remove this localStorage entry.\n *\n * @param {string} gateName\n * @param {boolean} value\n */\n static overrideGate(gateName, value) {\n statsig_js_lite_1.default.overrideGate(gateName, value);\n }\n /**\n * Removes any overrides that have been set for the given gate.\n * @param {string} gateName\n */\n static clearGateOverride(gateName) {\n statsig_js_lite_1.default.overrideGate(gateName, null);\n }\n /**\n * Adds a new override for the given config (or experiment).\n *\n * This method is additive, meaning you can call it multiple times with different experiment names to build\n * your full set of overrides.\n *\n * Overrides are persisted to the `STATSIG_JS_LITE_LOCAL_OVERRIDES` key in localStorage, so they will\n * continue to affect every client that is initialized on the same domain after this method is called.\n * If you are using this API for testing purposes, you should call ${@link clearConfigOverride} after\n * your tests are completed to remove this localStorage entry.\n *\n * @param {string} experimentName\n * @param {object} values\n */\n static overrideConfig(experimentName, values) {\n statsig_js_lite_1.default.overrideConfig(experimentName, values);\n }\n /**\n * Removes any overrides that have been set for the given experiment.\n * @param {string} experimentName\n */\n static clearConfigOverride(experimentName) {\n statsig_js_lite_1.default.overrideConfig(experimentName, null);\n }\n /**\n * Set overrides for gates, experiments and layers in batch.\n *\n * Note that these overrides are **not** additive and will completely replace any that have been added\n * via prior calls to {@link overrideConfig} or {@link overrideGate}.\n *\n * Overrides are persisted to the `STATSIG_JS_LITE_LOCAL_OVERRIDES` key in localStorage, so they will\n * continue to affect every client that is initialized on the same domain after this method is called.\n * If you are using this API for testing purposes, you should call ${@link clearAllOverrides} after\n * your tests are completed to remove this localStorage entry.\n *\n * @param {object} overrides\n */\n static setOverrides(overrides) {\n statsig_js_lite_1.default.setOverrides(Object.assign({ gates: {}, configs: {}, layers: {} }, overrides));\n }\n /**\n * Clears overrides for all gates, configs (including experiments) and layers.\n */\n static clearAllOverrides() {\n statsig_js_lite_1.default.setOverrides(null);\n }\n /**\n * Returns whether the given identifiers and customAttributes align with the current\n * set that is being used by the client.\n *\n * If this method returns false, then the {@link updateUser} or {@link updateUserWithValues}\n * methods can be used to re-align these values.\n *\n * @param identifiers\n * @param customAttributes\n * @returns a flag indicating whether the clients current configuration aligns with the given values\n */\n static isCurrentUser(identifiers, customAttributes) {\n return (FeatureGates.shallowEquals(FeatureGates.currentIdentifiers, identifiers) &&\n FeatureGates.shallowEquals(FeatureGates.currentAttributes, customAttributes));\n }\n /**\n * This method initializes the client using a network call to fetch the bootstrap values for the given user.\n *\n * @param clientOptions\n * @param identifiers\n * @param customAttributes\n * @private\n */\n static async init(clientOptions, identifiers, customAttributes) {\n const fromValuesClientOptions = Object.assign(Object.assign({}, clientOptions), { disableCurrentPageLogging: true });\n let experimentValues;\n let customAttributesFromResult;\n try {\n // If client sdk key fetch fails, an error would be thrown and handled instead of waiting for the experiment\n // values request to be settled, and it will fall back to use default values.\n const clientSdkKeyPromise = fetcher_1.default.fetchClientSdk(clientOptions).then((value) => (fromValuesClientOptions.sdkKey = value.clientSdkKey));\n const experimentValuesPromise = fetcher_1.default.fetchExperimentValues(clientOptions, identifiers, customAttributes);\n // Only wait for the experiment values request to finish and try to initialise the client with experiment\n // values if both requests are successful. Else an error would be thrown and handled by the catch\n const [, experimentValuesResult] = await Promise.all([\n clientSdkKeyPromise,\n experimentValuesPromise\n ]);\n experimentValues = experimentValuesResult.experimentValues;\n customAttributesFromResult =\n experimentValuesResult.customAttributes;\n }\n catch (error) {\n if (error instanceof Error) {\n console.error(`Error occurred when trying to fetch the Feature Gates client values, error: ${error === null || error === void 0 ? void 0 : error.message}`);\n }\n console.warn(`Initialising Statsig client without values`);\n await FeatureGates.initFromValues(fromValuesClientOptions, identifiers, customAttributes);\n throw error;\n }\n await this.initFromValues(fromValuesClientOptions, identifiers, customAttributesFromResult, experimentValues);\n }\n /**\n * This method initializes the client using a set of boostrap values obtained from one of the server-side SDKs.\n *\n * @param clientOptions\n * @param identifiers\n * @param customAttributes\n * @param initializeValues\n * @private\n */\n static async initFromValues(clientOptions, identifiers, customAttributes, initializeValues = {}) {\n const user = this.toStatsigUser(identifiers, customAttributes);\n FeatureGates.currentIdentifiers = identifiers;\n FeatureGates.currentAttributes = customAttributes;\n if (!clientOptions.sdkKey) {\n clientOptions.sdkKey = DEFAULT_CLIENT_KEY;\n }\n if (!clientOptions.eventLoggingApi) {\n clientOptions.eventLoggingApi = DEFAULT_EVENT_LOGGING_API;\n }\n const { sdkKey } = clientOptions;\n const statsigOptions = this.toStatsigOptions(clientOptions, initializeValues);\n try {\n await statsig_js_lite_1.default.initialize(sdkKey, user, statsigOptions);\n }\n catch (error) {\n if (error instanceof Error) {\n console.error(`Error occurred when trying to initialise the Statsig client, error: ${error === null || error === void 0 ? void 0 : error.message}`);\n }\n console.warn(`Initialising Statsig client with default sdk key and without values`);\n await statsig_js_lite_1.default.initialize(DEFAULT_CLIENT_KEY, user, Object.assign(Object.assign({}, statsigOptions), { initializeValues: {} }));\n throw error;\n }\n }\n /**\n * This method creates an instance of StatsigUser from the given set of identifiers and attributes.\n *\n * @param identifiers\n * @param customAttributes\n * @private\n */\n static toStatsigUser(identifiers, customAttributes) {\n const user = {\n customIDs: identifiers,\n custom: customAttributes\n };\n if (identifiers.atlassianAccountId) {\n user.userID = identifiers.atlassianAccountId;\n }\n return user;\n }\n /**\n * This method updates the user for this client with the bootstrap values returned from a given Promise.\n * It uses the customAttributes from fetching experiment values to update the Statsig user but\n * uses the customAttributes from given input to check if the user has changed.\n *\n * @param identifiers\n * @param customAttributes\n * @param initializeValuesPromise\n * @private\n */\n static async updateUserUsingInitializeValuesProducer(getInitializeValues, identifiers, customAttributes) {\n if (!FeatureGates.initPromise) {\n throw new Error('The FeatureGates client must be initialized before you can update the user.');\n }\n // If the user isn't changing at all, then exit immediately\n if (FeatureGates.isCurrentUser(identifiers, customAttributes)) {\n return FeatureGates.initPromise;\n }\n // Wait for the current initialize/update to finish\n const originalInitPromise = FeatureGates.initPromise;\n try {\n await FeatureGates.initPromise;\n }\n catch (err) {\n // Proceed with the user update even if the init failed, since this update\n // may put the client back into a valid state.\n }\n const initializeValuesPromise = getInitializeValues();\n const updateUserPromise = FeatureGates.updateStatsigClientUser(initializeValuesPromise, identifiers, customAttributes);\n // We replace the init promise here since we are essentially re-initializing the client at this point.\n // Any subsequent calls to await FeatureGates.initialize() or FeatureGates.updateUser() will now also await this user update.\n FeatureGates.initPromise = updateUserPromise.catch(() => {\n // If the update failed then it changed nothing, so revert back to the original promise.\n FeatureGates.initPromise = originalInitPromise;\n });\n return updateUserPromise;\n }\n /**\n * This method updates the user on the nested Statsig client\n *\n * @param identifiers\n * @param customAttributes\n * @param initializeValuesPromise\n * @private\n */\n static async updateStatsigClientUser(initializeValuesPromise, identifiers, customAttributes) {\n var _a, _b;\n let initializeValues, user;\n try {\n initializeValues = await initializeValuesPromise;\n user = FeatureGates.toStatsigUser(identifiers, initializeValues.customAttributesFromFetch);\n }\n catch (err) {\n // Make sure the updateUserCompletionCallback is called for any errors in our custom code.\n // This is not necessary for the updateUserWithValues call, because the Statsig client will already invoke the callback itself.\n const errMsg = err instanceof Error ? err.message : JSON.stringify(err);\n (_b = (_a = FeatureGates.initOptions).updateUserCompletionCallback) === null || _b === void 0 ? void 0 : _b.call(_a, false, errMsg);\n throw err;\n }\n const success = statsig_js_lite_1.default.updateUserWithValues(user, initializeValues.experimentValues);\n if (success) {\n FeatureGates.currentIdentifiers = identifiers;\n FeatureGates.currentAttributes = customAttributes;\n }\n else {\n throw new Error('Failed to update user. An unexpected error occured.');\n }\n }\n /**\n * This method transforms the options given by the user into the format accepted by the Statsig client.\n *\n * @param options\n * @private\n */\n static toStatsigOptions(options, initializeValues) {\n const { \n // De-structured to remove from restClientOptions\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n sdkKey, \n // De-structured to remove from restClientOptions\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n updateUserCompletionCallback } = options, restClientOptions = __rest(options, [\"sdkKey\", \"updateUserCompletionCallback\"]);\n return Object.assign(Object.assign(Object.assign({}, restClientOptions), { initializeValues, environment: {\n tier: options.environment\n }, disableCurrentPageLogging: true }), (options.updateUserCompletionCallback && {\n updateUserCompletionCallback: FeatureGates.toStatsigUpdateUserCompletionCallback(options.updateUserCompletionCallback)\n }));\n }\n /**\n * This method transforms an UpdateUserCompletionCallback in our own format into the format accepted by the Statsig client.\n *\n * @param callback\n * @private\n */\n static toStatsigUpdateUserCompletionCallback(callback) {\n /**\n * The duration passed to the callback indicates how long the update took, but it is deceptive since it only times the\n * Statsig code and doesn't account for all of the extra custom work we do to obtain the bootstrap values.\n * As a result, we just suppress this parameter in our own callback rather than trying to keep it accurate.\n */\n return (_duration, success, message) => {\n callback(success, message);\n };\n }\n static shallowEquals(objectA, objectB) {\n if (!objectA && !objectB) {\n return true;\n }\n if (!objectA || !objectB) {\n return false;\n }\n const aEntries = Object.entries(objectA);\n const bEntries = Object.entries(objectB);\n if (aEntries.length !== bEntries.length) {\n return false;\n }\n const ascendingKeyOrder = ([key1], [key2]) => key1.localeCompare(key2);\n aEntries.sort(ascendingKeyOrder);\n bEntries.sort(ascendingKeyOrder);\n for (let i = 0; i < aEntries.length; i++) {\n const [, aValue] = aEntries[i];\n const [, bValue] = bEntries[i];\n if (aValue !== bValue) {\n return false;\n }\n }\n return true;\n }\n}\nFeatureGates.initPromise = null;\nFeatureGates.initCompleted = false;\nFeatureGates.hasGetExperimentErrorOccurred = false;\nFeatureGates.hasGetExperimentValueErrorOccurred = false;\nFeatureGates.hasCheckGateErrorOccurred = false;\nexports.default = FeatureGates;\n// This makes it possible to get a reference to the FeatureGates client at runtime.\n// This is important for overriding values in Cyprus tests, as there needs to be a\n// way to get the exact instance for a window in order to mock some of its methods.\nif (typeof window !== 'undefined') {\n window.__FEATUREGATES_JS__ = FeatureGates;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FeatureGateEnvironment = void 0;\nvar FeatureGateEnvironment;\n(function (FeatureGateEnvironment) {\n FeatureGateEnvironment[\"Development\"] = \"development\";\n FeatureGateEnvironment[\"Staging\"] = \"staging\";\n FeatureGateEnvironment[\"Production\"] = \"production\";\n})(FeatureGateEnvironment || (exports.FeatureGateEnvironment = FeatureGateEnvironment = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CLIENT_VERSION = void 0;\nexports.CLIENT_VERSION = \"4.7.1\";\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FeatureGatesInitialization = void 0;\nconst react_1 = require(\"react\");\nconst feature_gate_js_client_1 = __importDefault(require(\"@atlassian/feature-gate-js-client\"));\nconst utils_1 = require(\"./utils\");\n/**\n * This component initializes the @atlassian/feature-flag-js-client by fetching the gate and experiment\n * evaluations for the given user, and blocks rendering of the children until the rendering is complete.\n */\nconst FeatureGatesInitialization = ({ children, enabled = true, identifiers, customAttributes, options, initializingComponent, onReady }) => {\n const [isInitialized, setInitialized] = (0, react_1.useState)(false);\n // Use a ref for the options, so that we can use them within the following useEffect\n // without adding options as a dependency.\n // This avoids the user updating every time an option is changed.\n const optionsRef = (0, react_1.useRef)(options);\n (0, react_1.useEffect)(() => {\n optionsRef.current = options;\n }, [options]);\n (0, react_1.useEffect)(() => {\n if (enabled) {\n setInitialized(false);\n const initPromise = feature_gate_js_client_1.default.initializeCalled()\n ? feature_gate_js_client_1.default.updateUser(optionsRef.current, identifiers, customAttributes)\n : feature_gate_js_client_1.default.initialize(optionsRef.current, identifiers, customAttributes);\n void initPromise\n .catch((err) => (0, utils_1.toError)(err))\n .then((err) => {\n setInitialized(true);\n onReady === null || onReady === void 0 ? void 0 : onReady(err || undefined);\n });\n }\n else {\n setInitialized(true);\n onReady === null || onReady === void 0 ? void 0 : onReady();\n }\n }, [enabled, identifiers, customAttributes]);\n return (0, utils_1.pickChildToRender)(enabled, isInitialized, children, initializingComponent);\n};\nexports.FeatureGatesInitialization = FeatureGatesInitialization;\nexports.default = exports.FeatureGatesInitialization;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FeatureGatesInitializationWithDefaults = void 0;\nconst react_1 = require(\"react\");\nconst feature_gate_js_client_1 = __importDefault(require(\"@atlassian/feature-gate-js-client\"));\nconst utils_1 = require(\"./utils\");\n/**\n * This component initializes the @atlassian/feature-flag-js-client by fetching the gate and experiment\n * evaluations for the given user, and blocks rendering of the children until the rendering is complete.\n */\nconst FeatureGatesInitializationWithDefaults = ({ children, enabled = true, identifiers, customAttributes, options, onReady }) => {\n const [isInitialized, setInitialized] = (0, react_1.useState)(false);\n // Use a ref for the options, so that we can use them within the following useEffect\n // without adding options as a dependency.\n // This avoids the user updating every time an option is changed.\n const optionsRef = (0, react_1.useRef)(options);\n (0, react_1.useEffect)(() => {\n optionsRef.current = options;\n }, [options]);\n (0, react_1.useEffect)(() => {\n if (enabled) {\n setInitialized(false);\n const initPromise = feature_gate_js_client_1.default.initializeCalled()\n ? feature_gate_js_client_1.default.updateUserWithValues(identifiers, customAttributes)\n : feature_gate_js_client_1.default.initializeFromValues(Object.assign({ sdkKey: 'client-default-key' }, (optionsRef.current || {})), identifiers, customAttributes);\n void initPromise\n .catch((err) => (0, utils_1.toError)(err))\n .then((err) => {\n setInitialized(true);\n onReady === null || onReady === void 0 ? void 0 : onReady(err || undefined);\n });\n }\n else {\n setInitialized(true);\n onReady === null || onReady === void 0 ? void 0 : onReady();\n }\n }, [enabled, identifiers, customAttributes]);\n return (0, utils_1.pickChildToRender)(enabled, isInitialized, children);\n};\nexports.FeatureGatesInitializationWithDefaults = FeatureGatesInitializationWithDefaults;\nexports.default = exports.FeatureGatesInitializationWithDefaults;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FeatureGatesInitializationWithValues = void 0;\nconst react_1 = require(\"react\");\nconst feature_gate_js_client_1 = __importDefault(require(\"@atlassian/feature-gate-js-client\"));\nconst utils_1 = require(\"./utils\");\n/**\n * This component initializes the @atlassian/feature-flag-js-client by fetching the gate and experiment\n * evaluations for the given user, and blocks rendering of the children until the rendering is complete.\n */\nconst FeatureGatesInitializationWithValues = ({ children, enabled = true, identifiers, customAttributes, options, initializeValues, onReady }) => {\n const [isInitialized, setInitialized] = (0, react_1.useState)(false);\n // Use a ref for the options, so that we can use them within the following useEffect\n // without adding options as a dependency.\n // This avoids the user updating every time an option is changed.\n const optionsRef = (0, react_1.useRef)(options);\n (0, react_1.useEffect)(() => {\n optionsRef.current = options;\n }, [options]);\n (0, react_1.useEffect)(() => {\n if (enabled) {\n setInitialized(false);\n const initPromise = feature_gate_js_client_1.default.initializeCalled()\n ? feature_gate_js_client_1.default.updateUserWithValues(identifiers, customAttributes, initializeValues)\n : feature_gate_js_client_1.default.initializeFromValues(optionsRef.current, identifiers, customAttributes, initializeValues);\n void initPromise\n .catch((err) => (0, utils_1.toError)(err))\n .then((err) => {\n setInitialized(true);\n onReady === null || onReady === void 0 ? void 0 : onReady(err || undefined);\n });\n }\n else {\n setInitialized(true);\n onReady === null || onReady === void 0 ? void 0 : onReady();\n }\n }, [enabled, identifiers, customAttributes, initializeValues]);\n return (0, utils_1.pickChildToRender)(enabled, isInitialized, children);\n};\nexports.FeatureGatesInitializationWithValues = FeatureGatesInitializationWithValues;\nexports.default = exports.FeatureGatesInitializationWithValues;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./FeatureGatesInitialization\"), exports);\n__exportStar(require(\"./FeatureGatesInitializationWithDefaults\"), exports);\n__exportStar(require(\"./FeatureGatesInitializationWithValues\"), exports);\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toError = exports.pickChildToRender = void 0;\nconst react_1 = __importDefault(require(\"react\"));\nfunction pickChildToRender(enabled, isInitialized, children, initializingComponent) {\n if (!enabled || isInitialized) {\n return react_1.default.createElement(react_1.default.Fragment, null, children);\n }\n if (initializingComponent != null) {\n return react_1.default.createElement(react_1.default.Fragment, null, initializingComponent);\n }\n return null;\n}\nexports.pickChildToRender = pickChildToRender;\nfunction toError(err) {\n if (err instanceof Error) {\n return err;\n }\n return new Error(err === null || err === void 0 ? void 0 : err.toString());\n}\nexports.toError = toError;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst errors_1 = require(\"./errors\");\nconst types_1 = require(\"../types\");\nconst version_1 = require(\"../version\");\nconst DEFAULT_REQUEST_TIMEOUT_MS = 2000;\nconst PROD_BASE_URL = 'https://api.atlassian.com/flags';\nconst STAGING_BASE_URL = 'https://api.stg.atlassian.com/flags';\nconst DEV_BASE_URL = 'https://api.dev.atlassian.com/flags';\nconst GATEWAY_BASE_URL = '/gateway/api/flags';\nclass Fetcher {\n static async fetchClientSdk(fetcherOptions) {\n const { targetApp } = fetcherOptions;\n const url = `/api/v2/frontend/clientSdkKey/${targetApp}`;\n try {\n return await this.fetchRequest(url, 'GET', fetcherOptions);\n }\n catch (error) {\n if (error instanceof Error) {\n throw error;\n }\n throw Error('Failed to retrieve client sdk key');\n }\n }\n static async fetchExperimentValues(fetcherOptions, identifiers, customAttributes) {\n const requestBody = {\n identifiers,\n customAttributes,\n targetApp: fetcherOptions.targetApp\n };\n try {\n return await this.fetchRequest('/api/v2/frontend/experimentValues', 'POST', fetcherOptions, requestBody);\n }\n catch (error) {\n if (error instanceof Error) {\n throw error;\n }\n throw Error('Failed to retrieve experiment values');\n }\n }\n static async handleResponseError(response) {\n if (!response.ok) {\n // Use text() instead of json() as the error body might not be json data\n const body = await response.text();\n throw new errors_1.ResponseError(`Non 2xx response status received, status: ${response.status}, body: ${JSON.stringify(body)}`);\n }\n if (response.status === 204) {\n throw new errors_1.ResponseError('Unexpected 204 response');\n }\n }\n static async extractResponseBody(response) {\n const value = await response.text();\n return JSON.parse(value);\n }\n static getBaseUrl(serviceEnv, useGatewayUrl = false) {\n if (useGatewayUrl) {\n return GATEWAY_BASE_URL;\n }\n switch (serviceEnv) {\n case types_1.FeatureGateEnvironment.Development:\n return DEV_BASE_URL;\n case types_1.FeatureGateEnvironment.Staging:\n return STAGING_BASE_URL;\n default:\n return PROD_BASE_URL;\n }\n }\n static async fetchRequest(path, method, fetcherOptions, body) {\n const baseUrl = Fetcher.getBaseUrl(fetcherOptions.environment, fetcherOptions.useGatewayURL);\n const fetchTimeout = fetcherOptions.fetchTimeoutMs || DEFAULT_REQUEST_TIMEOUT_MS;\n let abortSignal;\n if (AbortSignal.timeout) {\n abortSignal = AbortSignal.timeout(fetchTimeout);\n }\n else if (AbortController) {\n const abortController = new AbortController();\n abortSignal = abortController.signal;\n setTimeout(() => abortController.abort(), fetchTimeout);\n }\n const response = await fetch(`${baseUrl}${path}`, Object.assign({ method, headers: {\n 'Content-Type': 'application/json',\n 'X-Client-Name': 'feature-gate-js-client',\n 'X-Client-Version': version_1.CLIENT_VERSION,\n 'X-API-KEY': fetcherOptions.apiKey\n }, signal: abortSignal }, (body && { body: JSON.stringify(body) })));\n await this.handleResponseError(response);\n return await this.extractResponseBody(response);\n }\n}\nexports.default = Fetcher;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ResponseError = void 0;\nclass ResponseError extends Error {\n constructor(message) {\n super(message);\n }\n}\nexports.ResponseError = ResponseError;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = void 0;\nvar Fetcher_1 = require(\"./Fetcher\");\nObject.defineProperty(exports, \"default\", { enumerable: true, get: function () { return __importDefault(Fetcher_1).default; } });\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EvaluationReason = exports.DynamicConfig = void 0;\nconst statsig_js_lite_1 = __importStar(require(\"statsig-js-lite\"));\nconst fetcher_1 = __importDefault(require(\"./fetcher\"));\nconst types_1 = require(\"./types\");\nconst version_1 = require(\"./version\");\nvar statsig_js_lite_2 = require(\"statsig-js-lite\");\nObject.defineProperty(exports, \"DynamicConfig\", { enumerable: true, get: function () { return statsig_js_lite_2.DynamicConfig; } });\nObject.defineProperty(exports, \"EvaluationReason\", { enumerable: true, get: function () { return statsig_js_lite_2.EvaluationReason; } });\n__exportStar(require(\"./types\"), exports);\nconst DEFAULT_CLIENT_KEY = 'client-default-key';\n// the default event logging api is the Atlassian proxy rather than Statsig's domain, to avoid ad blockers\nconst DEFAULT_EVENT_LOGGING_API = 'https://xp.atlassian.com/v1/';\nclass FeatureGates {\n static async initialize(clientOptions, identifiers, customAttributes) {\n if (FeatureGates.initPromise) {\n if (!FeatureGates.shallowEquals(clientOptions, FeatureGates.initOptions)) {\n console.warn('Feature Gates client already initialized with different options. New options were not applied.');\n }\n return FeatureGates.initPromise;\n }\n const startTime = performance.now();\n FeatureGates.initOptions = clientOptions;\n FeatureGates.initPromise = FeatureGates.init(clientOptions, identifiers, customAttributes)\n .then(() => {\n FeatureGates.initCompleted = true;\n })\n .finally(() => {\n const endTime = performance.now();\n const totalTime = endTime - startTime;\n FeatureGates.fireClientEvent(startTime, totalTime, 'initialize', FeatureGates.initCompleted, clientOptions.apiKey);\n });\n return FeatureGates.initPromise;\n }\n static async fireClientEvent(startTime, totalTime, action, success, apiKey = undefined) {\n var _a;\n (_a = FeatureGates.initOptions.analyticsWebClient) === null || _a === void 0 ? void 0 : _a.then((analyticsWebClient) => {\n const attributes = Object.assign({ targetApp: FeatureGates.initOptions.targetApp, clientVersion: version_1.CLIENT_VERSION, success,\n startTime,\n totalTime }, (apiKey && { apiKey }));\n analyticsWebClient.sendOperationalEvent({\n action,\n actionSubject: 'featureGatesClient',\n attributes,\n tags: ['measurement'],\n source: '@atlassian/feature-gate-js-client'\n });\n }).catch((err) => {\n if (FeatureGates.initOptions.environment !==\n types_1.FeatureGateEnvironment.Production) {\n console.error('Analytics web client promise did not resolve', err);\n }\n });\n }\n static async initializeFromValues(clientOptions, identifiers, customAttributes, initializeValues = {}) {\n if (FeatureGates.initPromise) {\n if (!FeatureGates.shallowEquals(clientOptions, FeatureGates.initOptions)) {\n console.warn('Feature Gates client already initialized with different options. New options were not applied.');\n }\n return FeatureGates.initPromise;\n }\n const startTime = performance.now();\n FeatureGates.initOptions = clientOptions;\n FeatureGates.initPromise = FeatureGates.initFromValues(clientOptions, identifiers, customAttributes, initializeValues)\n .then(() => {\n FeatureGates.initCompleted = true;\n })\n .finally(() => {\n const endTime = performance.now();\n const totalTime = endTime - startTime;\n FeatureGates.fireClientEvent(startTime, totalTime, 'initializeFromValues', FeatureGates.initCompleted);\n });\n return FeatureGates.initPromise;\n }\n /**\n * This method updates the user using a network call to fetch the new set of values.\n * @param fetchOptions {FetcherOptions}\n * @param identifiers {Identifiers}\n * @param customAttributes {CustomAttributes}\n */\n static async updateUser(fetchOptions, identifiers, customAttributes) {\n const initializeValuesProducer = () => fetcher_1.default.fetchExperimentValues(fetchOptions, identifiers, customAttributes).then(({ experimentValues, customAttributes }) => ({\n experimentValues,\n customAttributesFromFetch: customAttributes\n }));\n await FeatureGates.updateUserUsingInitializeValuesProducer(initializeValuesProducer, identifiers, customAttributes);\n }\n /**\n * This method updates the user given a new set of bootstrap values obtained from one of the server-side SDKs.\n *\n * @param identifiers {Identifiers}\n * @param customAttributes {CustomAttributes}\n * @param initializeValues {Record}\n */\n static async updateUserWithValues(identifiers, customAttributes, initializeValues = {}) {\n const initializeValuesProducer = () => Promise.resolve({\n experimentValues: initializeValues,\n customAttributesFromFetch: customAttributes\n });\n await FeatureGates.updateUserUsingInitializeValuesProducer(initializeValuesProducer, identifiers, customAttributes);\n }\n static initializeCalled() {\n return FeatureGates.initPromise != null;\n }\n static initializeCompleted() {\n return FeatureGates.initCompleted;\n }\n /**\n * Returns the value for a feature gate. Returns false if there are errors.\n * @param gateName - The name of the feature gate.\n */\n static checkGate(gateName) {\n try {\n return statsig_js_lite_1.default.checkGate(gateName);\n }\n catch (error) {\n // Log the first occurrence of the error\n if (!FeatureGates.hasCheckGateErrorOccurred) {\n console.warn({\n msg: 'An error has occurred checking the feature gate. Only the first occurrence of this error is logged.',\n gateName,\n error\n });\n FeatureGates.hasCheckGateErrorOccurred = true;\n }\n return false;\n }\n }\n /**\n * Returns the entire config for a given experiment.\n *\n * @param {string} experimentName - The name of the experiment\n * @param {Object} options\n * @param {boolean} options.fireExperimentExposure - Whether or not to fire the exposure event for the experiment. Defaults to true. To log an exposure event manually at a later time, use {@link manuallyLogExperimentExposure} (see [Statsig docs about manually logging exposures](https://docs.statsig.com/client/jsClientSDK#manual-exposures-)).\n * @returns The config for an experiment\n * @example\n * ```ts\n * const experimentConfig = FeatureGates.getExperiment('example-experiment-name');\n * const backgroundColor: string = experimentConfig.get('backgroundColor', 'yellow');\n * ```\n */\n static getExperiment(experimentName, options = {}) {\n try {\n const { fireExperimentExposure = true } = options;\n const evalMethod = fireExperimentExposure\n ? statsig_js_lite_1.default.getExperiment.bind(statsig_js_lite_1.default)\n : statsig_js_lite_1.default.getExperimentWithExposureLoggingDisabled.bind(statsig_js_lite_1.default);\n return evalMethod(experimentName);\n }\n catch (error) {\n // Log the first occurrence of the error\n if (!FeatureGates.hasGetExperimentErrorOccurred) {\n console.warn({\n msg: 'An error has occurred getting the experiment. Only the first occurrence of this error is logged.',\n experimentName,\n error\n });\n FeatureGates.hasGetExperimentErrorOccurred = true;\n }\n // Return a default value\n return new statsig_js_lite_1.DynamicConfig(experimentName, {}, '', {\n time: Date.now(),\n reason: statsig_js_lite_1.EvaluationReason.Error\n });\n }\n }\n /**\n * Returns the value of a given parameter in an experiment config.\n *\n * @template T\n * @param {string} experimentName - The name of the experiment\n * @param {string} parameterName - The name of the parameter to fetch from the experiment config\n * @param {T} defaultValue - The value to serve if the experiment or parameter do not exist, or if the returned value does not match the expected type.\n * @param {Object} options\n * @param {boolean} options.fireExperimentExposure - Whether or not to fire the exposure event for the experiment. Defaults to true. To log an exposure event manually at a later time, use {@link manuallyLogExperimentExposure} (see [Statsig docs about manually logging exposures](https://docs.statsig.com/client/jsClientSDK#manual-exposures-))\n * @param {function} options.typeGuard - A function that asserts that the return value has the expected type. If this function returns false, then the default value will be returned instead. This can be set to protect your code from unexpected values being set remotely. By default, this will be done by asserting that the default value and value are the same primitive type.\n * @returns The value of the parameter if the experiment and parameter both exist, otherwise the default value.\n * @example\n ``` ts\n type ValidColor = 'blue' | 'red' | 'yellow';\n type ValidColorTypeCheck = (value: unknown) => value is ValidColor;\n\n const isValidColor: ValidColorTypeCheck =\n (value: unknown) => typeof value === 'string' && ['blue', 'red', 'yellow'].includes(value);\n\n const buttonColor: ValidColor = FeatureGates.getExperimentValue(\n 'example-experiment-name',\n 'backgroundColor',\n 'yellow',\n {\n typeGuard: isValidColor\n }\n );\n ```\n */\n static getExperimentValue(experimentName, parameterName, defaultValue, options = {}) {\n const experiment = FeatureGates.getExperiment(experimentName, options);\n try {\n const { typeGuard } = options;\n return experiment.get(parameterName, defaultValue, typeGuard);\n }\n catch (error) {\n // Log the first occurrence of the error\n if (!FeatureGates.hasGetExperimentValueErrorOccurred) {\n console.warn({\n msg: 'An error has occurred getting the experiment value. Only the first occurrence of this error is logged.',\n experimentName,\n defaultValue,\n options,\n error\n });\n FeatureGates.hasGetExperimentValueErrorOccurred = true;\n }\n return defaultValue;\n }\n }\n /**\n * Manually log an experiment exposure (see [Statsig docs about manually logging exposures](https://docs.statsig.com/client/jsClientSDK#manual-exposures-)).\n * This is useful if you have evaluated an experiment earlier via {@link getExperimentValue} or\n * {@link getExperiment} where options.fireExperimentExposure is false.\n * @param experimentName\n */\n static manuallyLogExperimentExposure(experimentName) {\n statsig_js_lite_1.default.manuallyLogExperimentExposure(experimentName);\n }\n static shutdownStatsig() {\n statsig_js_lite_1.default.shutdown();\n }\n /**\n * Adds a new override for the given gate.\n *\n * This method is additive, meaning you can call it multiple times with different gate names to build\n * your full set of overrides.\n *\n * Overrides are persisted to the `STATSIG_JS_LITE_LOCAL_OVERRIDES` key in localStorage, so they will\n * continue to affect every client that is initialized on the same domain after this method is called.\n * If you are using this API for testing purposes, you should call ${@link clearGateOverride} after\n * your tests are completed to remove this localStorage entry.\n *\n * @param {string} gateName\n * @param {boolean} value\n */\n static overrideGate(gateName, value) {\n statsig_js_lite_1.default.overrideGate(gateName, value);\n }\n /**\n * Removes any overrides that have been set for the given gate.\n * @param {string} gateName\n */\n static clearGateOverride(gateName) {\n statsig_js_lite_1.default.overrideGate(gateName, null);\n }\n /**\n * Adds a new override for the given config (or experiment).\n *\n * This method is additive, meaning you can call it multiple times with different experiment names to build\n * your full set of overrides.\n *\n * Overrides are persisted to the `STATSIG_JS_LITE_LOCAL_OVERRIDES` key in localStorage, so they will\n * continue to affect every client that is initialized on the same domain after this method is called.\n * If you are using this API for testing purposes, you should call ${@link clearConfigOverride} after\n * your tests are completed to remove this localStorage entry.\n *\n * @param {string} experimentName\n * @param {object} values\n */\n static overrideConfig(experimentName, values) {\n statsig_js_lite_1.default.overrideConfig(experimentName, values);\n }\n /**\n * Removes any overrides that have been set for the given experiment.\n * @param {string} experimentName\n */\n static clearConfigOverride(experimentName) {\n statsig_js_lite_1.default.overrideConfig(experimentName, null);\n }\n /**\n * Set overrides for gates, experiments and layers in batch.\n *\n * Note that these overrides are **not** additive and will completely replace any that have been added\n * via prior calls to {@link overrideConfig} or {@link overrideGate}.\n *\n * Overrides are persisted to the `STATSIG_JS_LITE_LOCAL_OVERRIDES` key in localStorage, so they will\n * continue to affect every client that is initialized on the same domain after this method is called.\n * If you are using this API for testing purposes, you should call ${@link clearAllOverrides} after\n * your tests are completed to remove this localStorage entry.\n *\n * @param {object} overrides\n */\n static setOverrides(overrides) {\n statsig_js_lite_1.default.setOverrides(Object.assign({ gates: {}, configs: {}, layers: {} }, overrides));\n }\n /**\n * Clears overrides for all gates, configs (including experiments) and layers.\n */\n static clearAllOverrides() {\n statsig_js_lite_1.default.setOverrides(null);\n }\n /**\n * Returns whether the given identifiers and customAttributes align with the current\n * set that is being used by the client.\n *\n * If this method returns false, then the {@link updateUser} or {@link updateUserWithValues}\n * methods can be used to re-align these values.\n *\n * @param identifiers\n * @param customAttributes\n * @returns a flag indicating whether the clients current configuration aligns with the given values\n */\n static isCurrentUser(identifiers, customAttributes) {\n return (FeatureGates.shallowEquals(FeatureGates.currentIdentifiers, identifiers) &&\n FeatureGates.shallowEquals(FeatureGates.currentAttributes, customAttributes));\n }\n /**\n * This method initializes the client using a network call to fetch the bootstrap values for the given user.\n *\n * @param clientOptions\n * @param identifiers\n * @param customAttributes\n * @private\n */\n static async init(clientOptions, identifiers, customAttributes) {\n const fromValuesClientOptions = Object.assign(Object.assign({}, clientOptions), { disableCurrentPageLogging: true });\n let experimentValues;\n let customAttributesFromResult;\n try {\n // If client sdk key fetch fails, an error would be thrown and handled instead of waiting for the experiment\n // values request to be settled, and it will fall back to use default values.\n const clientSdkKeyPromise = fetcher_1.default.fetchClientSdk(clientOptions).then((value) => (fromValuesClientOptions.sdkKey = value.clientSdkKey));\n const experimentValuesPromise = fetcher_1.default.fetchExperimentValues(clientOptions, identifiers, customAttributes);\n // Only wait for the experiment values request to finish and try to initialise the client with experiment\n // values if both requests are successful. Else an error would be thrown and handled by the catch\n const [, experimentValuesResult] = await Promise.all([\n clientSdkKeyPromise,\n experimentValuesPromise\n ]);\n experimentValues = experimentValuesResult.experimentValues;\n customAttributesFromResult =\n experimentValuesResult.customAttributes;\n }\n catch (error) {\n if (error instanceof Error) {\n console.error(`Error occurred when trying to fetch the Feature Gates client values, error: ${error === null || error === void 0 ? void 0 : error.message}`);\n }\n console.warn(`Initialising Statsig client without values`);\n await FeatureGates.initFromValues(fromValuesClientOptions, identifiers, customAttributes);\n throw error;\n }\n await this.initFromValues(fromValuesClientOptions, identifiers, customAttributesFromResult, experimentValues);\n }\n /**\n * This method initializes the client using a set of boostrap values obtained from one of the server-side SDKs.\n *\n * @param clientOptions\n * @param identifiers\n * @param customAttributes\n * @param initializeValues\n * @private\n */\n static async initFromValues(clientOptions, identifiers, customAttributes, initializeValues = {}) {\n const user = this.toStatsigUser(identifiers, customAttributes);\n FeatureGates.currentIdentifiers = identifiers;\n FeatureGates.currentAttributes = customAttributes;\n if (!clientOptions.sdkKey) {\n clientOptions.sdkKey = DEFAULT_CLIENT_KEY;\n }\n if (!clientOptions.eventLoggingApi) {\n clientOptions.eventLoggingApi = DEFAULT_EVENT_LOGGING_API;\n }\n const { sdkKey } = clientOptions;\n const statsigOptions = this.toStatsigOptions(clientOptions, initializeValues);\n try {\n await statsig_js_lite_1.default.initialize(sdkKey, user, statsigOptions);\n }\n catch (error) {\n if (error instanceof Error) {\n console.error(`Error occurred when trying to initialise the Statsig client, error: ${error === null || error === void 0 ? void 0 : error.message}`);\n }\n console.warn(`Initialising Statsig client with default sdk key and without values`);\n await statsig_js_lite_1.default.initialize(DEFAULT_CLIENT_KEY, user, Object.assign(Object.assign({}, statsigOptions), { initializeValues: {} }));\n throw error;\n }\n }\n /**\n * This method creates an instance of StatsigUser from the given set of identifiers and attributes.\n *\n * @param identifiers\n * @param customAttributes\n * @private\n */\n static toStatsigUser(identifiers, customAttributes) {\n const user = {\n customIDs: identifiers,\n custom: customAttributes\n };\n if (identifiers.atlassianAccountId) {\n user.userID = identifiers.atlassianAccountId;\n }\n return user;\n }\n /**\n * This method updates the user for this client with the bootstrap values returned from a given Promise.\n * It uses the customAttributes from fetching experiment values to update the Statsig user but\n * uses the customAttributes from given input to check if the user has changed.\n *\n * @param {Identifiers} identifiers\n * @param {CustomAttributes} customAttributes\n * @param {Promise} getInitializeValues\n * @private\n */\n static async updateUserUsingInitializeValuesProducer(getInitializeValues, identifiers, customAttributes) {\n if (!FeatureGates.initPromise) {\n throw new Error('The FeatureGates client must be initialized before you can update the user.');\n }\n // If the user isn't changing at all, then exit immediately\n if (FeatureGates.isCurrentUser(identifiers, customAttributes)) {\n return FeatureGates.initPromise;\n }\n // Wait for the current initialize/update to finish\n const originalInitPromise = FeatureGates.initPromise;\n try {\n await FeatureGates.initPromise;\n }\n catch (err) {\n // Proceed with the user update even if the init failed, since this update\n // may put the client back into a valid state.\n }\n const initializeValuesPromise = getInitializeValues();\n const updateUserPromise = FeatureGates.updateStatsigClientUser(initializeValuesPromise, identifiers, customAttributes);\n // We replace the init promise here since we are essentially re-initializing the client at this point.\n // Any subsequent calls to await FeatureGates.initialize() or FeatureGates.updateUser() will now also await this user update.\n FeatureGates.initPromise = updateUserPromise.catch(() => {\n // If the update failed then it changed nothing, so revert back to the original promise.\n FeatureGates.initPromise = originalInitPromise;\n });\n return updateUserPromise;\n }\n /**\n * This method updates the user on the nested Statsig client\n *\n * @param identifiers\n * @param customAttributes\n * @param initializeValuesPromise\n * @private\n */\n static async updateStatsigClientUser(initializeValuesPromise, identifiers, customAttributes) {\n var _a, _b;\n let initializeValues, user;\n try {\n initializeValues = await initializeValuesPromise;\n user = FeatureGates.toStatsigUser(identifiers, initializeValues.customAttributesFromFetch);\n }\n catch (err) {\n // Make sure the updateUserCompletionCallback is called for any errors in our custom code.\n // This is not necessary for the updateUserWithValues call, because the Statsig client will already invoke the callback itself.\n const errMsg = err instanceof Error ? err.message : JSON.stringify(err);\n (_b = (_a = FeatureGates.initOptions).updateUserCompletionCallback) === null || _b === void 0 ? void 0 : _b.call(_a, false, errMsg);\n throw err;\n }\n const success = statsig_js_lite_1.default.updateUserWithValues(user, initializeValues.experimentValues);\n if (success) {\n FeatureGates.currentIdentifiers = identifiers;\n FeatureGates.currentAttributes = customAttributes;\n }\n else {\n throw new Error('Failed to update user. An unexpected error occured.');\n }\n }\n /**\n * This method transforms the options given by the user into the format accepted by the Statsig client.\n *\n * @param options\n * @param {Record} initializeValues\n * @private\n */\n static toStatsigOptions(options, initializeValues) {\n const { \n // De-structured to remove from restClientOptions\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n sdkKey, \n // De-structured to remove from restClientOptions\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n updateUserCompletionCallback } = options, restClientOptions = __rest(options, [\"sdkKey\", \"updateUserCompletionCallback\"]);\n return Object.assign(Object.assign(Object.assign({}, restClientOptions), { initializeValues, environment: {\n tier: options.environment\n }, disableCurrentPageLogging: true }), (options.updateUserCompletionCallback && {\n updateUserCompletionCallback: FeatureGates.toStatsigUpdateUserCompletionCallback(options.updateUserCompletionCallback)\n }));\n }\n /**\n * This method transforms an UpdateUserCompletionCallback in our own format into the format accepted by the Statsig client.\n *\n * @param callback\n * @private\n */\n static toStatsigUpdateUserCompletionCallback(callback) {\n /**\n * The duration passed to the callback indicates how long the update took, but it is deceptive since it only times the\n * Statsig code and doesn't account for all of the extra custom work we do to obtain the bootstrap values.\n * As a result, we just suppress this parameter in our own callback rather than trying to keep it accurate.\n */\n return (_duration, success, message) => {\n callback(success, message);\n };\n }\n static shallowEquals(objectA, objectB) {\n if (!objectA && !objectB) {\n return true;\n }\n if (!objectA || !objectB) {\n return false;\n }\n const aEntries = Object.entries(objectA);\n const bEntries = Object.entries(objectB);\n if (aEntries.length !== bEntries.length) {\n return false;\n }\n const ascendingKeyOrder = ([key1], [key2]) => key1.localeCompare(key2);\n aEntries.sort(ascendingKeyOrder);\n bEntries.sort(ascendingKeyOrder);\n for (let i = 0; i < aEntries.length; i++) {\n const [, aValue] = aEntries[i];\n const [, bValue] = bEntries[i];\n if (aValue !== bValue) {\n return false;\n }\n }\n return true;\n }\n}\nFeatureGates.initPromise = null;\nFeatureGates.initCompleted = false;\nFeatureGates.hasGetExperimentErrorOccurred = false;\nFeatureGates.hasGetExperimentValueErrorOccurred = false;\nFeatureGates.hasCheckGateErrorOccurred = false;\nexports.default = FeatureGates;\n// This makes it possible to get a reference to the FeatureGates client at runtime.\n// This is important for overriding values in Cyprus tests, as there needs to be a\n// way to get the exact instance for a window in order to mock some of its methods.\nif (typeof window !== 'undefined') {\n window.__FEATUREGATES_JS__ = FeatureGates;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FeatureGateEnvironment = void 0;\nvar FeatureGateEnvironment;\n(function (FeatureGateEnvironment) {\n FeatureGateEnvironment[\"Development\"] = \"development\";\n FeatureGateEnvironment[\"Staging\"] = \"staging\";\n FeatureGateEnvironment[\"Production\"] = \"production\";\n})(FeatureGateEnvironment || (exports.FeatureGateEnvironment = FeatureGateEnvironment = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CLIENT_VERSION = void 0;\nexports.CLIENT_VERSION = \"4.9.0\";\n","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = (\n (product) => {\n return hasBrowserEnv && ['ReactNative', 'NativeScript', 'NS'].indexOf(product) < 0\n })(typeof navigator !== 'undefined' && navigator.product);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n origin\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isHeaders(header)) {\n for (const [key, value] of header.entries()) {\n setHeader(value, key, rewrite);\n }\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","import speedometer from \"./speedometer.js\";\nimport throttle from \"./throttle.js\";\n\nexport default (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle(e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null\n };\n\n data[isDownloadStream ? 'download' : 'upload'] = true;\n\n listener(data);\n }, freq);\n}\n","'use strict';\n\n/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n const threshold = 1000 / freq;\n let timer = null;\n return function throttled() {\n const force = this === true;\n\n const now = Date.now();\n if (force || now - timestamp > threshold) {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n timestamp = now;\n return fn.apply(null, arguments);\n }\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n timestamp = Date.now();\n return fn.apply(null, arguments);\n }, threshold - (now - timestamp));\n }\n };\n}\n\nexport default throttle;\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = /(msie|trident)/i.test(navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover its components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport isURLSameOrigin from \"./isURLSameOrigin.js\";\nimport cookies from \"./cookies.js\";\nimport buildFullPath from \"../core/buildFullPath.js\";\nimport mergeConfig from \"../core/mergeConfig.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport buildURL from \"./buildURL.js\";\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url), config.params, config.paramsSerializer);\n\n // HTTP basic authentication\n if (auth) {\n headers.set('Authorization', 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n );\n }\n\n let contentType;\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // Let the browser set it\n } else if ((contentType = headers.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n // Add xsrf header\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n}\n\n","import utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport progressEventReducer from '../helpers/progressEventReducer.js';\nimport resolveConfig from \"../helpers/resolveConfig.js\";\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let {responseType} = _config;\n let onCanceled;\n function done() {\n if (_config.cancelToken) {\n _config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (_config.signal) {\n _config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, _config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, _config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n _config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (typeof _config.onDownloadProgress === 'function') {\n request.addEventListener('progress', progressEventReducer(_config.onDownloadProgress, true));\n }\n\n // Not all browsers support upload events\n if (typeof _config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', progressEventReducer(_config.onUploadProgress));\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","import CanceledError from \"../cancel/CanceledError.js\";\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst composeSignals = (signals, timeout) => {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (cancel) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = cancel instanceof Error ? cancel : this.reason;\n controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n }\n }\n\n let timer = timeout && setTimeout(() => {\n onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT))\n }, timeout)\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach(signal => {\n signal &&\n (signal.removeEventListener ? signal.removeEventListener('abort', onabort) : signal.unsubscribe(onabort));\n });\n signals = null;\n }\n }\n\n signals.forEach((signal) => signal && signal.addEventListener && signal.addEventListener('abort', onabort));\n\n const {signal} = controller;\n\n signal.unsubscribe = unsubscribe;\n\n return [signal, () => {\n timer && clearTimeout(timer);\n timer = null;\n }];\n}\n\nexport default composeSignals;\n","\n\nexport const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n}\n\nexport const readBytes = async function* (iterable, chunkSize, encode) {\n for await (const chunk of iterable) {\n yield* streamChunk(ArrayBuffer.isView(chunk) ? chunk : (await encode(String(chunk))), chunkSize);\n }\n}\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish, encode) => {\n const iterator = readBytes(stream, chunkSize, encode);\n\n let bytes = 0;\n\n return new ReadableStream({\n type: 'bytes',\n\n async pull(controller) {\n const {done, value} = await iterator.next();\n\n if (done) {\n controller.close();\n onFinish();\n return;\n }\n\n let len = value.byteLength;\n onProgress && onProgress(bytes += len);\n controller.enqueue(new Uint8Array(value));\n },\n cancel(reason) {\n onFinish(reason);\n return iterator.return();\n }\n }, {\n highWaterMark: 2\n })\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport composeSignals from \"../helpers/composeSignals.js\";\nimport {trackStream} from \"../helpers/trackStream.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport progressEventReducer from \"../helpers/progressEventReducer.js\";\nimport resolveConfig from \"../helpers/resolveConfig.js\";\nimport settle from \"../core/settle.js\";\n\nconst fetchProgressDecorator = (total, fn) => {\n const lengthComputable = total != null;\n return (loaded) => setTimeout(() => fn({\n lengthComputable,\n total,\n loaded\n }));\n}\n\nconst isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';\nconst isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';\n\n// used only inside the fetch adapter\nconst encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n async (str) => new Uint8Array(await new Response(str).arrayBuffer())\n);\n\nconst supportsRequestStream = isReadableStreamSupported && (() => {\n let duplexAccessed = false;\n\n const hasContentType = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n }).headers.has('Content-Type');\n\n return duplexAccessed && !hasContentType;\n})();\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst supportsResponseStream = isReadableStreamSupported && !!(()=> {\n try {\n return utils.isReadableStream(new Response('').body);\n } catch(err) {\n // return undefined\n }\n})();\n\nconst resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n};\n\nisFetchSupported && (((res) => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n !resolvers[type] && (resolvers[type] = utils.isFunction(res[type]) ? (res) => res[type]() :\n (_, config) => {\n throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n })\n });\n})(new Response));\n\nconst getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if(utils.isBlob(body)) {\n return body.size;\n }\n\n if(utils.isSpecCompliantForm(body)) {\n return (await new Request(body).arrayBuffer()).byteLength;\n }\n\n if(utils.isArrayBufferView(body)) {\n return body.byteLength;\n }\n\n if(utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if(utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n}\n\nconst resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n}\n\nexport default isFetchSupported && (async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions\n } = resolveConfig(config);\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let [composedSignal, stopTimeout] = (signal || cancelToken || timeout) ?\n composeSignals([signal, cancelToken], timeout) : [];\n\n let finished, request;\n\n const onFinish = () => {\n !finished && setTimeout(() => {\n composedSignal && composedSignal.unsubscribe();\n });\n\n finished = true;\n }\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: \"half\"\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader)\n }\n\n if (_request.body) {\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, fetchProgressDecorator(\n requestContentLength,\n progressEventReducer(onUploadProgress)\n ), null, encodeText);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'cors' : 'omit';\n }\n\n request = new Request(url, {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: \"half\",\n withCredentials\n });\n\n let response = await fetch(request);\n\n const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || isStreamResponse)) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach(prop => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onDownloadProgress && fetchProgressDecorator(\n responseContentLength,\n progressEventReducer(onDownloadProgress, true)\n ), isStreamResponse && onFinish, encodeText),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](response, config);\n\n !isStreamResponse && onFinish();\n\n stopTimeout && stopTimeout();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request\n })\n })\n } catch (err) {\n onFinish();\n\n if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n {\n cause: err.cause || err\n }\n )\n }\n\n throw AxiosError.from(err, err && err.code, config, request);\n }\n});\n\n\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport fetchAdapter from './fetch.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: fetchAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","export const VERSION = \"1.7.2\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy;\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","// Current version.\nexport var VERSION = '1.13.4';\n\n// Establish the root object, `window` (`self`) in the browser, `global`\n// on the server, or `this` in some virtual machines. We use `self`\n// instead of `window` for `WebWorker` support.\nexport var root = (typeof self == 'object' && self.self === self && self) ||\n (typeof global == 'object' && global.global === global && global) ||\n Function('return this')() ||\n {};\n\n// Save bytes in the minified (but not gzipped) version:\nexport var ArrayProto = Array.prototype, ObjProto = Object.prototype;\nexport var SymbolProto = typeof Symbol !== 'undefined' ? Symbol.prototype : null;\n\n// Create quick reference variables for speed access to core prototypes.\nexport var push = ArrayProto.push,\n slice = ArrayProto.slice,\n toString = ObjProto.toString,\n hasOwnProperty = ObjProto.hasOwnProperty;\n\n// Modern feature detection.\nexport var supportsArrayBuffer = typeof ArrayBuffer !== 'undefined',\n supportsDataView = typeof DataView !== 'undefined';\n\n// All **ECMAScript 5+** native function implementations that we hope to use\n// are declared here.\nexport var nativeIsArray = Array.isArray,\n nativeKeys = Object.keys,\n nativeCreate = Object.create,\n nativeIsView = supportsArrayBuffer && ArrayBuffer.isView;\n\n// Create references to these builtin functions because we override them.\nexport var _isNaN = isNaN,\n _isFinite = isFinite;\n\n// Keys in IE < 9 that won't be iterated by `for key in ...` and thus missed.\nexport var hasEnumBug = !{toString: null}.propertyIsEnumerable('toString');\nexport var nonEnumerableProps = ['valueOf', 'isPrototypeOf', 'toString',\n 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n\n// The largest integer that can be represented exactly.\nexport var MAX_ARRAY_INDEX = Math.pow(2, 53) - 1;\n","// Some functions take a variable number of arguments, or a few expected\n// arguments at the beginning and then a variable number of values to operate\n// on. This helper accumulates all remaining arguments past the function’s\n// argument length (or an explicit `startIndex`), into an array that becomes\n// the last argument. Similar to ES6’s \"rest parameter\".\nexport default function restArguments(func, startIndex) {\n startIndex = startIndex == null ? func.length - 1 : +startIndex;\n return function() {\n var length = Math.max(arguments.length - startIndex, 0),\n rest = Array(length),\n index = 0;\n for (; index < length; index++) {\n rest[index] = arguments[index + startIndex];\n }\n switch (startIndex) {\n case 0: return func.call(this, rest);\n case 1: return func.call(this, arguments[0], rest);\n case 2: return func.call(this, arguments[0], arguments[1], rest);\n }\n var args = Array(startIndex + 1);\n for (index = 0; index < startIndex; index++) {\n args[index] = arguments[index];\n }\n args[startIndex] = rest;\n return func.apply(this, args);\n };\n}\n","// Is a given variable an object?\nexport default function isObject(obj) {\n var type = typeof obj;\n return type === 'function' || (type === 'object' && !!obj);\n}\n","// Is a given value equal to null?\nexport default function isNull(obj) {\n return obj === null;\n}\n","// Is a given variable undefined?\nexport default function isUndefined(obj) {\n return obj === void 0;\n}\n","import { toString } from './_setup.js';\n\n// Is a given value a boolean?\nexport default function isBoolean(obj) {\n return obj === true || obj === false || toString.call(obj) === '[object Boolean]';\n}\n","// Is a given value a DOM element?\nexport default function isElement(obj) {\n return !!(obj && obj.nodeType === 1);\n}\n","import { toString } from './_setup.js';\n\n// Internal function for creating a `toString`-based type tester.\nexport default function tagTester(name) {\n var tag = '[object ' + name + ']';\n return function(obj) {\n return toString.call(obj) === tag;\n };\n}\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('String');\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('Number');\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('Date');\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('RegExp');\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('Error');\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('Symbol');\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('ArrayBuffer');\n","import tagTester from './_tagTester.js';\nimport { root } from './_setup.js';\n\nvar isFunction = tagTester('Function');\n\n// Optimize `isFunction` if appropriate. Work around some `typeof` bugs in old\n// v8, IE 11 (#1621), Safari 8 (#1929), and PhantomJS (#2236).\nvar nodelist = root.document && root.document.childNodes;\nif (typeof /./ != 'function' && typeof Int8Array != 'object' && typeof nodelist != 'function') {\n isFunction = function(obj) {\n return typeof obj == 'function' || false;\n };\n}\n\nexport default isFunction;\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('Object');\n","import { supportsDataView } from './_setup.js';\nimport hasObjectTag from './_hasObjectTag.js';\n\n// In IE 10 - Edge 13, `DataView` has string tag `'[object Object]'`.\n// In IE 11, the most common among them, this problem also applies to\n// `Map`, `WeakMap` and `Set`.\nexport var hasStringTagBug = (\n supportsDataView && hasObjectTag(new DataView(new ArrayBuffer(8)))\n ),\n isIE11 = (typeof Map !== 'undefined' && hasObjectTag(new Map));\n","import tagTester from './_tagTester.js';\nimport isFunction from './isFunction.js';\nimport isArrayBuffer from './isArrayBuffer.js';\nimport { hasStringTagBug } from './_stringTagBug.js';\n\nvar isDataView = tagTester('DataView');\n\n// In IE 10 - Edge 13, we need a different heuristic\n// to determine whether an object is a `DataView`.\nfunction ie10IsDataView(obj) {\n return obj != null && isFunction(obj.getInt8) && isArrayBuffer(obj.buffer);\n}\n\nexport default (hasStringTagBug ? ie10IsDataView : isDataView);\n","import { nativeIsArray } from './_setup.js';\nimport tagTester from './_tagTester.js';\n\n// Is a given value an array?\n// Delegates to ECMA5's native `Array.isArray`.\nexport default nativeIsArray || tagTester('Array');\n","import { hasOwnProperty } from './_setup.js';\n\n// Internal function to check whether `key` is an own property name of `obj`.\nexport default function has(obj, key) {\n return obj != null && hasOwnProperty.call(obj, key);\n}\n","import tagTester from './_tagTester.js';\nimport has from './_has.js';\n\nvar isArguments = tagTester('Arguments');\n\n// Define a fallback version of the method in browsers (ahem, IE < 9), where\n// there isn't any inspectable \"Arguments\" type.\n(function() {\n if (!isArguments(arguments)) {\n isArguments = function(obj) {\n return has(obj, 'callee');\n };\n }\n}());\n\nexport default isArguments;\n","import { _isFinite } from './_setup.js';\nimport isSymbol from './isSymbol.js';\n\n// Is a given object a finite number?\nexport default function isFinite(obj) {\n return !isSymbol(obj) && _isFinite(obj) && !isNaN(parseFloat(obj));\n}\n","import { _isNaN } from './_setup.js';\nimport isNumber from './isNumber.js';\n\n// Is the given value `NaN`?\nexport default function isNaN(obj) {\n return isNumber(obj) && _isNaN(obj);\n}\n","// Predicate-generating function. Often useful outside of Underscore.\nexport default function constant(value) {\n return function() {\n return value;\n };\n}\n","import { MAX_ARRAY_INDEX } from './_setup.js';\n\n// Common internal logic for `isArrayLike` and `isBufferLike`.\nexport default function createSizePropertyCheck(getSizeProperty) {\n return function(collection) {\n var sizeProperty = getSizeProperty(collection);\n return typeof sizeProperty == 'number' && sizeProperty >= 0 && sizeProperty <= MAX_ARRAY_INDEX;\n }\n}\n","// Internal helper to generate a function to obtain property `key` from `obj`.\nexport default function shallowProperty(key) {\n return function(obj) {\n return obj == null ? void 0 : obj[key];\n };\n}\n","import shallowProperty from './_shallowProperty.js';\n\n// Internal helper to obtain the `byteLength` property of an object.\nexport default shallowProperty('byteLength');\n","import createSizePropertyCheck from './_createSizePropertyCheck.js';\nimport getByteLength from './_getByteLength.js';\n\n// Internal helper to determine whether we should spend extensive checks against\n// `ArrayBuffer` et al.\nexport default createSizePropertyCheck(getByteLength);\n","import { supportsArrayBuffer, nativeIsView, toString } from './_setup.js';\nimport isDataView from './isDataView.js';\nimport constant from './constant.js';\nimport isBufferLike from './_isBufferLike.js';\n\n// Is a given value a typed array?\nvar typedArrayPattern = /\\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\\]/;\nfunction isTypedArray(obj) {\n // `ArrayBuffer.isView` is the most future-proof, so use it when available.\n // Otherwise, fall back on the above regular expression.\n return nativeIsView ? (nativeIsView(obj) && !isDataView(obj)) :\n isBufferLike(obj) && typedArrayPattern.test(toString.call(obj));\n}\n\nexport default supportsArrayBuffer ? isTypedArray : constant(false);\n","import shallowProperty from './_shallowProperty.js';\n\n// Internal helper to obtain the `length` property of an object.\nexport default shallowProperty('length');\n","import { nonEnumerableProps, ObjProto } from './_setup.js';\nimport isFunction from './isFunction.js';\nimport has from './_has.js';\n\n// Internal helper to create a simple lookup structure.\n// `collectNonEnumProps` used to depend on `_.contains`, but this led to\n// circular imports. `emulatedSet` is a one-off solution that only works for\n// arrays of strings.\nfunction emulatedSet(keys) {\n var hash = {};\n for (var l = keys.length, i = 0; i < l; ++i) hash[keys[i]] = true;\n return {\n contains: function(key) { return hash[key] === true; },\n push: function(key) {\n hash[key] = true;\n return keys.push(key);\n }\n };\n}\n\n// Internal helper. Checks `keys` for the presence of keys in IE < 9 that won't\n// be iterated by `for key in ...` and thus missed. Extends `keys` in place if\n// needed.\nexport default function collectNonEnumProps(obj, keys) {\n keys = emulatedSet(keys);\n var nonEnumIdx = nonEnumerableProps.length;\n var constructor = obj.constructor;\n var proto = (isFunction(constructor) && constructor.prototype) || ObjProto;\n\n // Constructor is a special case.\n var prop = 'constructor';\n if (has(obj, prop) && !keys.contains(prop)) keys.push(prop);\n\n while (nonEnumIdx--) {\n prop = nonEnumerableProps[nonEnumIdx];\n if (prop in obj && obj[prop] !== proto[prop] && !keys.contains(prop)) {\n keys.push(prop);\n }\n }\n}\n","import isObject from './isObject.js';\nimport { nativeKeys, hasEnumBug } from './_setup.js';\nimport has from './_has.js';\nimport collectNonEnumProps from './_collectNonEnumProps.js';\n\n// Retrieve the names of an object's own properties.\n// Delegates to **ECMAScript 5**'s native `Object.keys`.\nexport default function keys(obj) {\n if (!isObject(obj)) return [];\n if (nativeKeys) return nativeKeys(obj);\n var keys = [];\n for (var key in obj) if (has(obj, key)) keys.push(key);\n // Ahem, IE < 9.\n if (hasEnumBug) collectNonEnumProps(obj, keys);\n return keys;\n}\n","import getLength from './_getLength.js';\nimport isArray from './isArray.js';\nimport isString from './isString.js';\nimport isArguments from './isArguments.js';\nimport keys from './keys.js';\n\n// Is a given array, string, or object empty?\n// An \"empty\" object has no enumerable own-properties.\nexport default function isEmpty(obj) {\n if (obj == null) return true;\n // Skip the more expensive `toString`-based type checks if `obj` has no\n // `.length`.\n var length = getLength(obj);\n if (typeof length == 'number' && (\n isArray(obj) || isString(obj) || isArguments(obj)\n )) return length === 0;\n return getLength(keys(obj)) === 0;\n}\n","import keys from './keys.js';\n\n// Returns whether an object has a given set of `key:value` pairs.\nexport default function isMatch(object, attrs) {\n var _keys = keys(attrs), length = _keys.length;\n if (object == null) return !length;\n var obj = Object(object);\n for (var i = 0; i < length; i++) {\n var key = _keys[i];\n if (attrs[key] !== obj[key] || !(key in obj)) return false;\n }\n return true;\n}\n","import { VERSION } from './_setup.js';\n\n// If Underscore is called as a function, it returns a wrapped object that can\n// be used OO-style. This wrapper holds altered versions of all functions added\n// through `_.mixin`. Wrapped objects may be chained.\nexport default function _(obj) {\n if (obj instanceof _) return obj;\n if (!(this instanceof _)) return new _(obj);\n this._wrapped = obj;\n}\n\n_.VERSION = VERSION;\n\n// Extracts the result from a wrapped and chained object.\n_.prototype.value = function() {\n return this._wrapped;\n};\n\n// Provide unwrapping proxies for some methods used in engine operations\n// such as arithmetic and JSON stringification.\n_.prototype.valueOf = _.prototype.toJSON = _.prototype.value;\n\n_.prototype.toString = function() {\n return String(this._wrapped);\n};\n","import getByteLength from './_getByteLength.js';\n\n// Internal function to wrap or shallow-copy an ArrayBuffer,\n// typed array or DataView to a new view, reusing the buffer.\nexport default function toBufferView(bufferSource) {\n return new Uint8Array(\n bufferSource.buffer || bufferSource,\n bufferSource.byteOffset || 0,\n getByteLength(bufferSource)\n );\n}\n","import _ from './underscore.js';\nimport { toString, SymbolProto } from './_setup.js';\nimport getByteLength from './_getByteLength.js';\nimport isTypedArray from './isTypedArray.js';\nimport isFunction from './isFunction.js';\nimport { hasStringTagBug } from './_stringTagBug.js';\nimport isDataView from './isDataView.js';\nimport keys from './keys.js';\nimport has from './_has.js';\nimport toBufferView from './_toBufferView.js';\n\n// We use this string twice, so give it a name for minification.\nvar tagDataView = '[object DataView]';\n\n// Internal recursive comparison function for `_.isEqual`.\nfunction eq(a, b, aStack, bStack) {\n // Identical objects are equal. `0 === -0`, but they aren't identical.\n // See the [Harmony `egal` proposal](https://wiki.ecmascript.org/doku.php?id=harmony:egal).\n if (a === b) return a !== 0 || 1 / a === 1 / b;\n // `null` or `undefined` only equal to itself (strict comparison).\n if (a == null || b == null) return false;\n // `NaN`s are equivalent, but non-reflexive.\n if (a !== a) return b !== b;\n // Exhaust primitive checks\n var type = typeof a;\n if (type !== 'function' && type !== 'object' && typeof b != 'object') return false;\n return deepEq(a, b, aStack, bStack);\n}\n\n// Internal recursive comparison function for `_.isEqual`.\nfunction deepEq(a, b, aStack, bStack) {\n // Unwrap any wrapped objects.\n if (a instanceof _) a = a._wrapped;\n if (b instanceof _) b = b._wrapped;\n // Compare `[[Class]]` names.\n var className = toString.call(a);\n if (className !== toString.call(b)) return false;\n // Work around a bug in IE 10 - Edge 13.\n if (hasStringTagBug && className == '[object Object]' && isDataView(a)) {\n if (!isDataView(b)) return false;\n className = tagDataView;\n }\n switch (className) {\n // These types are compared by value.\n case '[object RegExp]':\n // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')\n case '[object String]':\n // Primitives and their corresponding object wrappers are equivalent; thus, `\"5\"` is\n // equivalent to `new String(\"5\")`.\n return '' + a === '' + b;\n case '[object Number]':\n // `NaN`s are equivalent, but non-reflexive.\n // Object(NaN) is equivalent to NaN.\n if (+a !== +a) return +b !== +b;\n // An `egal` comparison is performed for other numeric values.\n return +a === 0 ? 1 / +a === 1 / b : +a === +b;\n case '[object Date]':\n case '[object Boolean]':\n // Coerce dates and booleans to numeric primitive values. Dates are compared by their\n // millisecond representations. Note that invalid dates with millisecond representations\n // of `NaN` are not equivalent.\n return +a === +b;\n case '[object Symbol]':\n return SymbolProto.valueOf.call(a) === SymbolProto.valueOf.call(b);\n case '[object ArrayBuffer]':\n case tagDataView:\n // Coerce to typed array so we can fall through.\n return deepEq(toBufferView(a), toBufferView(b), aStack, bStack);\n }\n\n var areArrays = className === '[object Array]';\n if (!areArrays && isTypedArray(a)) {\n var byteLength = getByteLength(a);\n if (byteLength !== getByteLength(b)) return false;\n if (a.buffer === b.buffer && a.byteOffset === b.byteOffset) return true;\n areArrays = true;\n }\n if (!areArrays) {\n if (typeof a != 'object' || typeof b != 'object') return false;\n\n // Objects with different constructors are not equivalent, but `Object`s or `Array`s\n // from different frames are.\n var aCtor = a.constructor, bCtor = b.constructor;\n if (aCtor !== bCtor && !(isFunction(aCtor) && aCtor instanceof aCtor &&\n isFunction(bCtor) && bCtor instanceof bCtor)\n && ('constructor' in a && 'constructor' in b)) {\n return false;\n }\n }\n // Assume equality for cyclic structures. The algorithm for detecting cyclic\n // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.\n\n // Initializing stack of traversed objects.\n // It's done here since we only need them for objects and arrays comparison.\n aStack = aStack || [];\n bStack = bStack || [];\n var length = aStack.length;\n while (length--) {\n // Linear search. Performance is inversely proportional to the number of\n // unique nested structures.\n if (aStack[length] === a) return bStack[length] === b;\n }\n\n // Add the first object to the stack of traversed objects.\n aStack.push(a);\n bStack.push(b);\n\n // Recursively compare objects and arrays.\n if (areArrays) {\n // Compare array lengths to determine if a deep comparison is necessary.\n length = a.length;\n if (length !== b.length) return false;\n // Deep compare the contents, ignoring non-numeric properties.\n while (length--) {\n if (!eq(a[length], b[length], aStack, bStack)) return false;\n }\n } else {\n // Deep compare objects.\n var _keys = keys(a), key;\n length = _keys.length;\n // Ensure that both objects contain the same number of properties before comparing deep equality.\n if (keys(b).length !== length) return false;\n while (length--) {\n // Deep compare each member\n key = _keys[length];\n if (!(has(b, key) && eq(a[key], b[key], aStack, bStack))) return false;\n }\n }\n // Remove the first object from the stack of traversed objects.\n aStack.pop();\n bStack.pop();\n return true;\n}\n\n// Perform a deep comparison to check if two objects are equal.\nexport default function isEqual(a, b) {\n return eq(a, b);\n}\n","import isObject from './isObject.js';\nimport { hasEnumBug } from './_setup.js';\nimport collectNonEnumProps from './_collectNonEnumProps.js';\n\n// Retrieve all the enumerable property names of an object.\nexport default function allKeys(obj) {\n if (!isObject(obj)) return [];\n var keys = [];\n for (var key in obj) keys.push(key);\n // Ahem, IE < 9.\n if (hasEnumBug) collectNonEnumProps(obj, keys);\n return keys;\n}\n","import getLength from './_getLength.js';\nimport isFunction from './isFunction.js';\nimport allKeys from './allKeys.js';\n\n// Since the regular `Object.prototype.toString` type tests don't work for\n// some types in IE 11, we use a fingerprinting heuristic instead, based\n// on the methods. It's not great, but it's the best we got.\n// The fingerprint method lists are defined below.\nexport function ie11fingerprint(methods) {\n var length = getLength(methods);\n return function(obj) {\n if (obj == null) return false;\n // `Map`, `WeakMap` and `Set` have no enumerable keys.\n var keys = allKeys(obj);\n if (getLength(keys)) return false;\n for (var i = 0; i < length; i++) {\n if (!isFunction(obj[methods[i]])) return false;\n }\n // If we are testing against `WeakMap`, we need to ensure that\n // `obj` doesn't have a `forEach` method in order to distinguish\n // it from a regular `Map`.\n return methods !== weakMapMethods || !isFunction(obj[forEachName]);\n };\n}\n\n// In the interest of compact minification, we write\n// each string in the fingerprints only once.\nvar forEachName = 'forEach',\n hasName = 'has',\n commonInit = ['clear', 'delete'],\n mapTail = ['get', hasName, 'set'];\n\n// `Map`, `WeakMap` and `Set` each have slightly different\n// combinations of the above sublists.\nexport var mapMethods = commonInit.concat(forEachName, mapTail),\n weakMapMethods = commonInit.concat(mapTail),\n setMethods = ['add'].concat(commonInit, forEachName, hasName);\n","import tagTester from './_tagTester.js';\nimport { isIE11 } from './_stringTagBug.js';\nimport { ie11fingerprint, mapMethods } from './_methodFingerprint.js';\n\nexport default isIE11 ? ie11fingerprint(mapMethods) : tagTester('Map');\n","import tagTester from './_tagTester.js';\nimport { isIE11 } from './_stringTagBug.js';\nimport { ie11fingerprint, weakMapMethods } from './_methodFingerprint.js';\n\nexport default isIE11 ? ie11fingerprint(weakMapMethods) : tagTester('WeakMap');\n","import tagTester from './_tagTester.js';\nimport { isIE11 } from './_stringTagBug.js';\nimport { ie11fingerprint, setMethods } from './_methodFingerprint.js';\n\nexport default isIE11 ? ie11fingerprint(setMethods) : tagTester('Set');\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('WeakSet');\n","import keys from './keys.js';\n\n// Retrieve the values of an object's properties.\nexport default function values(obj) {\n var _keys = keys(obj);\n var length = _keys.length;\n var values = Array(length);\n for (var i = 0; i < length; i++) {\n values[i] = obj[_keys[i]];\n }\n return values;\n}\n","import keys from './keys.js';\n\n// Convert an object into a list of `[key, value]` pairs.\n// The opposite of `_.object` with one argument.\nexport default function pairs(obj) {\n var _keys = keys(obj);\n var length = _keys.length;\n var pairs = Array(length);\n for (var i = 0; i < length; i++) {\n pairs[i] = [_keys[i], obj[_keys[i]]];\n }\n return pairs;\n}\n","import keys from './keys.js';\n\n// Invert the keys and values of an object. The values must be serializable.\nexport default function invert(obj) {\n var result = {};\n var _keys = keys(obj);\n for (var i = 0, length = _keys.length; i < length; i++) {\n result[obj[_keys[i]]] = _keys[i];\n }\n return result;\n}\n","import isFunction from './isFunction.js';\n\n// Return a sorted list of the function names available on the object.\nexport default function functions(obj) {\n var names = [];\n for (var key in obj) {\n if (isFunction(obj[key])) names.push(key);\n }\n return names.sort();\n}\n","// An internal function for creating assigner functions.\nexport default function createAssigner(keysFunc, defaults) {\n return function(obj) {\n var length = arguments.length;\n if (defaults) obj = Object(obj);\n if (length < 2 || obj == null) return obj;\n for (var index = 1; index < length; index++) {\n var source = arguments[index],\n keys = keysFunc(source),\n l = keys.length;\n for (var i = 0; i < l; i++) {\n var key = keys[i];\n if (!defaults || obj[key] === void 0) obj[key] = source[key];\n }\n }\n return obj;\n };\n}\n","import createAssigner from './_createAssigner.js';\nimport allKeys from './allKeys.js';\n\n// Extend a given object with all the properties in passed-in object(s).\nexport default createAssigner(allKeys);\n","import createAssigner from './_createAssigner.js';\nimport keys from './keys.js';\n\n// Assigns a given object with all the own properties in the passed-in\n// object(s).\n// (https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/assign)\nexport default createAssigner(keys);\n","import createAssigner from './_createAssigner.js';\nimport allKeys from './allKeys.js';\n\n// Fill in a given object with default properties.\nexport default createAssigner(allKeys, true);\n","import isObject from './isObject.js';\nimport { nativeCreate } from './_setup.js';\n\n// Create a naked function reference for surrogate-prototype-swapping.\nfunction ctor() {\n return function(){};\n}\n\n// An internal function for creating a new object that inherits from another.\nexport default function baseCreate(prototype) {\n if (!isObject(prototype)) return {};\n if (nativeCreate) return nativeCreate(prototype);\n var Ctor = ctor();\n Ctor.prototype = prototype;\n var result = new Ctor;\n Ctor.prototype = null;\n return result;\n}\n","import baseCreate from './_baseCreate.js';\nimport extendOwn from './extendOwn.js';\n\n// Creates an object that inherits from the given prototype object.\n// If additional properties are provided then they will be added to the\n// created object.\nexport default function create(prototype, props) {\n var result = baseCreate(prototype);\n if (props) extendOwn(result, props);\n return result;\n}\n","import isObject from './isObject.js';\nimport isArray from './isArray.js';\nimport extend from './extend.js';\n\n// Create a (shallow-cloned) duplicate of an object.\nexport default function clone(obj) {\n if (!isObject(obj)) return obj;\n return isArray(obj) ? obj.slice() : extend({}, obj);\n}\n","// Invokes `interceptor` with the `obj` and then returns `obj`.\n// The primary purpose of this method is to \"tap into\" a method chain, in\n// order to perform operations on intermediate results within the chain.\nexport default function tap(obj, interceptor) {\n interceptor(obj);\n return obj;\n}\n","import _ from './underscore.js';\nimport isArray from './isArray.js';\n\n// Normalize a (deep) property `path` to array.\n// Like `_.iteratee`, this function can be customized.\nexport default function toPath(path) {\n return isArray(path) ? path : [path];\n}\n_.toPath = toPath;\n","import _ from './underscore.js';\nimport './toPath.js';\n\n// Internal wrapper for `_.toPath` to enable minification.\n// Similar to `cb` for `_.iteratee`.\nexport default function toPath(path) {\n return _.toPath(path);\n}\n","// Internal function to obtain a nested property in `obj` along `path`.\nexport default function deepGet(obj, path) {\n var length = path.length;\n for (var i = 0; i < length; i++) {\n if (obj == null) return void 0;\n obj = obj[path[i]];\n }\n return length ? obj : void 0;\n}\n","import toPath from './_toPath.js';\nimport deepGet from './_deepGet.js';\nimport isUndefined from './isUndefined.js';\n\n// Get the value of the (deep) property on `path` from `object`.\n// If any property in `path` does not exist or if the value is\n// `undefined`, return `defaultValue` instead.\n// The `path` is normalized through `_.toPath`.\nexport default function get(object, path, defaultValue) {\n var value = deepGet(object, toPath(path));\n return isUndefined(value) ? defaultValue : value;\n}\n","import _has from './_has.js';\nimport toPath from './_toPath.js';\n\n// Shortcut function for checking if an object has a given property directly on\n// itself (in other words, not on a prototype). Unlike the internal `has`\n// function, this public version can also traverse nested properties.\nexport default function has(obj, path) {\n path = toPath(path);\n var length = path.length;\n for (var i = 0; i < length; i++) {\n var key = path[i];\n if (!_has(obj, key)) return false;\n obj = obj[key];\n }\n return !!length;\n}\n","// Keep the identity function around for default iteratees.\nexport default function identity(value) {\n return value;\n}\n","import extendOwn from './extendOwn.js';\nimport isMatch from './isMatch.js';\n\n// Returns a predicate for checking whether an object has a given set of\n// `key:value` pairs.\nexport default function matcher(attrs) {\n attrs = extendOwn({}, attrs);\n return function(obj) {\n return isMatch(obj, attrs);\n };\n}\n","import deepGet from './_deepGet.js';\nimport toPath from './_toPath.js';\n\n// Creates a function that, when passed an object, will traverse that object’s\n// properties down the given `path`, specified as an array of keys or indices.\nexport default function property(path) {\n path = toPath(path);\n return function(obj) {\n return deepGet(obj, path);\n };\n}\n","// Internal function that returns an efficient (for current engines) version\n// of the passed-in callback, to be repeatedly applied in other Underscore\n// functions.\nexport default function optimizeCb(func, context, argCount) {\n if (context === void 0) return func;\n switch (argCount == null ? 3 : argCount) {\n case 1: return function(value) {\n return func.call(context, value);\n };\n // The 2-argument case is omitted because we’re not using it.\n case 3: return function(value, index, collection) {\n return func.call(context, value, index, collection);\n };\n case 4: return function(accumulator, value, index, collection) {\n return func.call(context, accumulator, value, index, collection);\n };\n }\n return function() {\n return func.apply(context, arguments);\n };\n}\n","import identity from './identity.js';\nimport isFunction from './isFunction.js';\nimport isObject from './isObject.js';\nimport isArray from './isArray.js';\nimport matcher from './matcher.js';\nimport property from './property.js';\nimport optimizeCb from './_optimizeCb.js';\n\n// An internal function to generate callbacks that can be applied to each\n// element in a collection, returning the desired result — either `_.identity`,\n// an arbitrary callback, a property matcher, or a property accessor.\nexport default function baseIteratee(value, context, argCount) {\n if (value == null) return identity;\n if (isFunction(value)) return optimizeCb(value, context, argCount);\n if (isObject(value) && !isArray(value)) return matcher(value);\n return property(value);\n}\n","import _ from './underscore.js';\nimport baseIteratee from './_baseIteratee.js';\n\n// External wrapper for our callback generator. Users may customize\n// `_.iteratee` if they want additional predicate/iteratee shorthand styles.\n// This abstraction hides the internal-only `argCount` argument.\nexport default function iteratee(value, context) {\n return baseIteratee(value, context, Infinity);\n}\n_.iteratee = iteratee;\n","import _ from './underscore.js';\nimport baseIteratee from './_baseIteratee.js';\nimport iteratee from './iteratee.js';\n\n// The function we call internally to generate a callback. It invokes\n// `_.iteratee` if overridden, otherwise `baseIteratee`.\nexport default function cb(value, context, argCount) {\n if (_.iteratee !== iteratee) return _.iteratee(value, context);\n return baseIteratee(value, context, argCount);\n}\n","import cb from './_cb.js';\nimport keys from './keys.js';\n\n// Returns the results of applying the `iteratee` to each element of `obj`.\n// In contrast to `_.map` it returns an object.\nexport default function mapObject(obj, iteratee, context) {\n iteratee = cb(iteratee, context);\n var _keys = keys(obj),\n length = _keys.length,\n results = {};\n for (var index = 0; index < length; index++) {\n var currentKey = _keys[index];\n results[currentKey] = iteratee(obj[currentKey], currentKey, obj);\n }\n return results;\n}\n","// Predicate-generating function. Often useful outside of Underscore.\nexport default function noop(){}\n","import noop from './noop.js';\nimport get from './get.js';\n\n// Generates a function for a given object that returns a given property.\nexport default function propertyOf(obj) {\n if (obj == null) return noop;\n return function(path) {\n return get(obj, path);\n };\n}\n","import optimizeCb from './_optimizeCb.js';\n\n// Run a function **n** times.\nexport default function times(n, iteratee, context) {\n var accum = Array(Math.max(0, n));\n iteratee = optimizeCb(iteratee, context, 1);\n for (var i = 0; i < n; i++) accum[i] = iteratee(i);\n return accum;\n}\n","// Return a random integer between `min` and `max` (inclusive).\nexport default function random(min, max) {\n if (max == null) {\n max = min;\n min = 0;\n }\n return min + Math.floor(Math.random() * (max - min + 1));\n}\n","// A (possibly faster) way to get the current timestamp as an integer.\nexport default Date.now || function() {\n return new Date().getTime();\n};\n","import keys from './keys.js';\n\n// Internal helper to generate functions for escaping and unescaping strings\n// to/from HTML interpolation.\nexport default function createEscaper(map) {\n var escaper = function(match) {\n return map[match];\n };\n // Regexes for identifying a key that needs to be escaped.\n var source = '(?:' + keys(map).join('|') + ')';\n var testRegexp = RegExp(source);\n var replaceRegexp = RegExp(source, 'g');\n return function(string) {\n string = string == null ? '' : '' + string;\n return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string;\n };\n}\n","// Internal list of HTML entities for escaping.\nexport default {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '`': '`'\n};\n","import createEscaper from './_createEscaper.js';\nimport escapeMap from './_escapeMap.js';\n\n// Function for escaping strings to HTML interpolation.\nexport default createEscaper(escapeMap);\n","import createEscaper from './_createEscaper.js';\nimport unescapeMap from './_unescapeMap.js';\n\n// Function for unescaping strings from HTML interpolation.\nexport default createEscaper(unescapeMap);\n","import invert from './invert.js';\nimport escapeMap from './_escapeMap.js';\n\n// Internal list of HTML entities for unescaping.\nexport default invert(escapeMap);\n","import _ from './underscore.js';\n\n// By default, Underscore uses ERB-style template delimiters. Change the\n// following template settings to use alternative delimiters.\nexport default _.templateSettings = {\n evaluate: /<%([\\s\\S]+?)%>/g,\n interpolate: /<%=([\\s\\S]+?)%>/g,\n escape: /<%-([\\s\\S]+?)%>/g\n};\n","import defaults from './defaults.js';\nimport _ from './underscore.js';\nimport './templateSettings.js';\n\n// When customizing `_.templateSettings`, if you don't want to define an\n// interpolation, evaluation or escaping regex, we need one that is\n// guaranteed not to match.\nvar noMatch = /(.)^/;\n\n// Certain characters need to be escaped so that they can be put into a\n// string literal.\nvar escapes = {\n \"'\": \"'\",\n '\\\\': '\\\\',\n '\\r': 'r',\n '\\n': 'n',\n '\\u2028': 'u2028',\n '\\u2029': 'u2029'\n};\n\nvar escapeRegExp = /\\\\|'|\\r|\\n|\\u2028|\\u2029/g;\n\nfunction escapeChar(match) {\n return '\\\\' + escapes[match];\n}\n\n// In order to prevent third-party code injection through\n// `_.templateSettings.variable`, we test it against the following regular\n// expression. It is intentionally a bit more liberal than just matching valid\n// identifiers, but still prevents possible loopholes through defaults or\n// destructuring assignment.\nvar bareIdentifier = /^\\s*(\\w|\\$)+\\s*$/;\n\n// JavaScript micro-templating, similar to John Resig's implementation.\n// Underscore templating handles arbitrary delimiters, preserves whitespace,\n// and correctly escapes quotes within interpolated code.\n// NB: `oldSettings` only exists for backwards compatibility.\nexport default function template(text, settings, oldSettings) {\n if (!settings && oldSettings) settings = oldSettings;\n settings = defaults({}, settings, _.templateSettings);\n\n // Combine delimiters into one regular expression via alternation.\n var matcher = RegExp([\n (settings.escape || noMatch).source,\n (settings.interpolate || noMatch).source,\n (settings.evaluate || noMatch).source\n ].join('|') + '|$', 'g');\n\n // Compile the template source, escaping string literals appropriately.\n var index = 0;\n var source = \"__p+='\";\n text.replace(matcher, function(match, escape, interpolate, evaluate, offset) {\n source += text.slice(index, offset).replace(escapeRegExp, escapeChar);\n index = offset + match.length;\n\n if (escape) {\n source += \"'+\\n((__t=(\" + escape + \"))==null?'':_.escape(__t))+\\n'\";\n } else if (interpolate) {\n source += \"'+\\n((__t=(\" + interpolate + \"))==null?'':__t)+\\n'\";\n } else if (evaluate) {\n source += \"';\\n\" + evaluate + \"\\n__p+='\";\n }\n\n // Adobe VMs need the match returned to produce the correct offset.\n return match;\n });\n source += \"';\\n\";\n\n var argument = settings.variable;\n if (argument) {\n // Insure against third-party code injection. (CVE-2021-23358)\n if (!bareIdentifier.test(argument)) throw new Error(\n 'variable is not a bare identifier: ' + argument\n );\n } else {\n // If a variable is not specified, place data values in local scope.\n source = 'with(obj||{}){\\n' + source + '}\\n';\n argument = 'obj';\n }\n\n source = \"var __t,__p='',__j=Array.prototype.join,\" +\n \"print=function(){__p+=__j.call(arguments,'');};\\n\" +\n source + 'return __p;\\n';\n\n var render;\n try {\n render = new Function(argument, '_', source);\n } catch (e) {\n e.source = source;\n throw e;\n }\n\n var template = function(data) {\n return render.call(this, data, _);\n };\n\n // Provide the compiled source as a convenience for precompilation.\n template.source = 'function(' + argument + '){\\n' + source + '}';\n\n return template;\n}\n","import isFunction from './isFunction.js';\nimport toPath from './_toPath.js';\n\n// Traverses the children of `obj` along `path`. If a child is a function, it\n// is invoked with its parent as context. Returns the value of the final\n// child, or `fallback` if any child is undefined.\nexport default function result(obj, path, fallback) {\n path = toPath(path);\n var length = path.length;\n if (!length) {\n return isFunction(fallback) ? fallback.call(obj) : fallback;\n }\n for (var i = 0; i < length; i++) {\n var prop = obj == null ? void 0 : obj[path[i]];\n if (prop === void 0) {\n prop = fallback;\n i = length; // Ensure we don't continue iterating.\n }\n obj = isFunction(prop) ? prop.call(obj) : prop;\n }\n return obj;\n}\n","// Generate a unique integer id (unique within the entire client session).\n// Useful for temporary DOM ids.\nvar idCounter = 0;\nexport default function uniqueId(prefix) {\n var id = ++idCounter + '';\n return prefix ? prefix + id : id;\n}\n","import _ from './underscore.js';\n\n// Start chaining a wrapped Underscore object.\nexport default function chain(obj) {\n var instance = _(obj);\n instance._chain = true;\n return instance;\n}\n","import baseCreate from './_baseCreate.js';\nimport isObject from './isObject.js';\n\n// Internal function to execute `sourceFunc` bound to `context` with optional\n// `args`. Determines whether to execute a function as a constructor or as a\n// normal function.\nexport default function executeBound(sourceFunc, boundFunc, context, callingContext, args) {\n if (!(callingContext instanceof boundFunc)) return sourceFunc.apply(context, args);\n var self = baseCreate(sourceFunc.prototype);\n var result = sourceFunc.apply(self, args);\n if (isObject(result)) return result;\n return self;\n}\n","import restArguments from './restArguments.js';\nimport executeBound from './_executeBound.js';\nimport _ from './underscore.js';\n\n// Partially apply a function by creating a version that has had some of its\n// arguments pre-filled, without changing its dynamic `this` context. `_` acts\n// as a placeholder by default, allowing any combination of arguments to be\n// pre-filled. Set `_.partial.placeholder` for a custom placeholder argument.\nvar partial = restArguments(function(func, boundArgs) {\n var placeholder = partial.placeholder;\n var bound = function() {\n var position = 0, length = boundArgs.length;\n var args = Array(length);\n for (var i = 0; i < length; i++) {\n args[i] = boundArgs[i] === placeholder ? arguments[position++] : boundArgs[i];\n }\n while (position < arguments.length) args.push(arguments[position++]);\n return executeBound(func, bound, this, this, args);\n };\n return bound;\n});\n\npartial.placeholder = _;\nexport default partial;\n","import restArguments from './restArguments.js';\nimport isFunction from './isFunction.js';\nimport executeBound from './_executeBound.js';\n\n// Create a function bound to a given object (assigning `this`, and arguments,\n// optionally).\nexport default restArguments(function(func, context, args) {\n if (!isFunction(func)) throw new TypeError('Bind must be called on a function');\n var bound = restArguments(function(callArgs) {\n return executeBound(func, bound, context, this, args.concat(callArgs));\n });\n return bound;\n});\n","import createSizePropertyCheck from './_createSizePropertyCheck.js';\nimport getLength from './_getLength.js';\n\n// Internal helper for collection methods to determine whether a collection\n// should be iterated as an array or as an object.\n// Related: https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength\n// Avoids a very nasty iOS 8 JIT bug on ARM-64. #2094\nexport default createSizePropertyCheck(getLength);\n","import getLength from './_getLength.js';\nimport isArrayLike from './_isArrayLike.js';\nimport isArray from './isArray.js';\nimport isArguments from './isArguments.js';\n\n// Internal implementation of a recursive `flatten` function.\nexport default function flatten(input, depth, strict, output) {\n output = output || [];\n if (!depth && depth !== 0) {\n depth = Infinity;\n } else if (depth <= 0) {\n return output.concat(input);\n }\n var idx = output.length;\n for (var i = 0, length = getLength(input); i < length; i++) {\n var value = input[i];\n if (isArrayLike(value) && (isArray(value) || isArguments(value))) {\n // Flatten current level of array or arguments object.\n if (depth > 1) {\n flatten(value, depth - 1, strict, output);\n idx = output.length;\n } else {\n var j = 0, len = value.length;\n while (j < len) output[idx++] = value[j++];\n }\n } else if (!strict) {\n output[idx++] = value;\n }\n }\n return output;\n}\n","import restArguments from './restArguments.js';\nimport flatten from './_flatten.js';\nimport bind from './bind.js';\n\n// Bind a number of an object's methods to that object. Remaining arguments\n// are the method names to be bound. Useful for ensuring that all callbacks\n// defined on an object belong to it.\nexport default restArguments(function(obj, keys) {\n keys = flatten(keys, false, false);\n var index = keys.length;\n if (index < 1) throw new Error('bindAll must be passed function names');\n while (index--) {\n var key = keys[index];\n obj[key] = bind(obj[key], obj);\n }\n return obj;\n});\n","import has from './_has.js';\n\n// Memoize an expensive function by storing its results.\nexport default function memoize(func, hasher) {\n var memoize = function(key) {\n var cache = memoize.cache;\n var address = '' + (hasher ? hasher.apply(this, arguments) : key);\n if (!has(cache, address)) cache[address] = func.apply(this, arguments);\n return cache[address];\n };\n memoize.cache = {};\n return memoize;\n}\n","import restArguments from './restArguments.js';\n\n// Delays a function for the given number of milliseconds, and then calls\n// it with the arguments supplied.\nexport default restArguments(function(func, wait, args) {\n return setTimeout(function() {\n return func.apply(null, args);\n }, wait);\n});\n","import partial from './partial.js';\nimport delay from './delay.js';\nimport _ from './underscore.js';\n\n// Defers a function, scheduling it to run after the current call stack has\n// cleared.\nexport default partial(delay, _, 1);\n","import now from './now.js';\n\n// Returns a function, that, when invoked, will only be triggered at most once\n// during a given window of time. Normally, the throttled function will run\n// as much as it can, without ever going more than once per `wait` duration;\n// but if you'd like to disable the execution on the leading edge, pass\n// `{leading: false}`. To disable execution on the trailing edge, ditto.\nexport default function throttle(func, wait, options) {\n var timeout, context, args, result;\n var previous = 0;\n if (!options) options = {};\n\n var later = function() {\n previous = options.leading === false ? 0 : now();\n timeout = null;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n };\n\n var throttled = function() {\n var _now = now();\n if (!previous && options.leading === false) previous = _now;\n var remaining = wait - (_now - previous);\n context = this;\n args = arguments;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = _now;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(later, remaining);\n }\n return result;\n };\n\n throttled.cancel = function() {\n clearTimeout(timeout);\n previous = 0;\n timeout = context = args = null;\n };\n\n return throttled;\n}\n","import restArguments from './restArguments.js';\nimport now from './now.js';\n\n// When a sequence of calls of the returned function ends, the argument\n// function is triggered. The end of a sequence is defined by the `wait`\n// parameter. If `immediate` is passed, the argument function will be\n// triggered at the beginning of the sequence instead of at the end.\nexport default function debounce(func, wait, immediate) {\n var timeout, previous, args, result, context;\n\n var later = function() {\n var passed = now() - previous;\n if (wait > passed) {\n timeout = setTimeout(later, wait - passed);\n } else {\n timeout = null;\n if (!immediate) result = func.apply(context, args);\n // This check is needed because `func` can recursively invoke `debounced`.\n if (!timeout) args = context = null;\n }\n };\n\n var debounced = restArguments(function(_args) {\n context = this;\n args = _args;\n previous = now();\n if (!timeout) {\n timeout = setTimeout(later, wait);\n if (immediate) result = func.apply(context, args);\n }\n return result;\n });\n\n debounced.cancel = function() {\n clearTimeout(timeout);\n timeout = args = context = null;\n };\n\n return debounced;\n}\n","import partial from './partial.js';\n\n// Returns the first function passed as an argument to the second,\n// allowing you to adjust arguments, run code before and after, and\n// conditionally execute the original function.\nexport default function wrap(func, wrapper) {\n return partial(wrapper, func);\n}\n","// Returns a negated version of the passed-in predicate.\nexport default function negate(predicate) {\n return function() {\n return !predicate.apply(this, arguments);\n };\n}\n","// Returns a function that is the composition of a list of functions, each\n// consuming the return value of the function that follows.\nexport default function compose() {\n var args = arguments;\n var start = args.length - 1;\n return function() {\n var i = start;\n var result = args[start].apply(this, arguments);\n while (i--) result = args[i].call(this, result);\n return result;\n };\n}\n","// Returns a function that will only be executed on and after the Nth call.\nexport default function after(times, func) {\n return function() {\n if (--times < 1) {\n return func.apply(this, arguments);\n }\n };\n}\n","// Returns a function that will only be executed up to (but not including) the\n// Nth call.\nexport default function before(times, func) {\n var memo;\n return function() {\n if (--times > 0) {\n memo = func.apply(this, arguments);\n }\n if (times <= 1) func = null;\n return memo;\n };\n}\n","import partial from './partial.js';\nimport before from './before.js';\n\n// Returns a function that will be executed at most one time, no matter how\n// often you call it. Useful for lazy initialization.\nexport default partial(before, 2);\n","import cb from './_cb.js';\nimport keys from './keys.js';\n\n// Returns the first key on an object that passes a truth test.\nexport default function findKey(obj, predicate, context) {\n predicate = cb(predicate, context);\n var _keys = keys(obj), key;\n for (var i = 0, length = _keys.length; i < length; i++) {\n key = _keys[i];\n if (predicate(obj[key], key, obj)) return key;\n }\n}\n","import cb from './_cb.js';\nimport getLength from './_getLength.js';\n\n// Internal function to generate `_.findIndex` and `_.findLastIndex`.\nexport default function createPredicateIndexFinder(dir) {\n return function(array, predicate, context) {\n predicate = cb(predicate, context);\n var length = getLength(array);\n var index = dir > 0 ? 0 : length - 1;\n for (; index >= 0 && index < length; index += dir) {\n if (predicate(array[index], index, array)) return index;\n }\n return -1;\n };\n}\n","import createPredicateIndexFinder from './_createPredicateIndexFinder.js';\n\n// Returns the first index on an array-like that passes a truth test.\nexport default createPredicateIndexFinder(1);\n","import createPredicateIndexFinder from './_createPredicateIndexFinder.js';\n\n// Returns the last index on an array-like that passes a truth test.\nexport default createPredicateIndexFinder(-1);\n","import cb from './_cb.js';\nimport getLength from './_getLength.js';\n\n// Use a comparator function to figure out the smallest index at which\n// an object should be inserted so as to maintain order. Uses binary search.\nexport default function sortedIndex(array, obj, iteratee, context) {\n iteratee = cb(iteratee, context, 1);\n var value = iteratee(obj);\n var low = 0, high = getLength(array);\n while (low < high) {\n var mid = Math.floor((low + high) / 2);\n if (iteratee(array[mid]) < value) low = mid + 1; else high = mid;\n }\n return low;\n}\n","import getLength from './_getLength.js';\nimport { slice } from './_setup.js';\nimport isNaN from './isNaN.js';\n\n// Internal function to generate the `_.indexOf` and `_.lastIndexOf` functions.\nexport default function createIndexFinder(dir, predicateFind, sortedIndex) {\n return function(array, item, idx) {\n var i = 0, length = getLength(array);\n if (typeof idx == 'number') {\n if (dir > 0) {\n i = idx >= 0 ? idx : Math.max(idx + length, i);\n } else {\n length = idx >= 0 ? Math.min(idx + 1, length) : idx + length + 1;\n }\n } else if (sortedIndex && idx && length) {\n idx = sortedIndex(array, item);\n return array[idx] === item ? idx : -1;\n }\n if (item !== item) {\n idx = predicateFind(slice.call(array, i, length), isNaN);\n return idx >= 0 ? idx + i : -1;\n }\n for (idx = dir > 0 ? i : length - 1; idx >= 0 && idx < length; idx += dir) {\n if (array[idx] === item) return idx;\n }\n return -1;\n };\n}\n","import sortedIndex from './sortedIndex.js';\nimport findIndex from './findIndex.js';\nimport createIndexFinder from './_createIndexFinder.js';\n\n// Return the position of the first occurrence of an item in an array,\n// or -1 if the item is not included in the array.\n// If the array is large and already in sort order, pass `true`\n// for **isSorted** to use binary search.\nexport default createIndexFinder(1, findIndex, sortedIndex);\n","import findLastIndex from './findLastIndex.js';\nimport createIndexFinder from './_createIndexFinder.js';\n\n// Return the position of the last occurrence of an item in an array,\n// or -1 if the item is not included in the array.\nexport default createIndexFinder(-1, findLastIndex);\n","import isArrayLike from './_isArrayLike.js';\nimport findIndex from './findIndex.js';\nimport findKey from './findKey.js';\n\n// Return the first value which passes a truth test.\nexport default function find(obj, predicate, context) {\n var keyFinder = isArrayLike(obj) ? findIndex : findKey;\n var key = keyFinder(obj, predicate, context);\n if (key !== void 0 && key !== -1) return obj[key];\n}\n","import find from './find.js';\nimport matcher from './matcher.js';\n\n// Convenience version of a common use case of `_.find`: getting the first\n// object containing specific `key:value` pairs.\nexport default function findWhere(obj, attrs) {\n return find(obj, matcher(attrs));\n}\n","import optimizeCb from './_optimizeCb.js';\nimport isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\n\n// The cornerstone for collection functions, an `each`\n// implementation, aka `forEach`.\n// Handles raw objects in addition to array-likes. Treats all\n// sparse array-likes as if they were dense.\nexport default function each(obj, iteratee, context) {\n iteratee = optimizeCb(iteratee, context);\n var i, length;\n if (isArrayLike(obj)) {\n for (i = 0, length = obj.length; i < length; i++) {\n iteratee(obj[i], i, obj);\n }\n } else {\n var _keys = keys(obj);\n for (i = 0, length = _keys.length; i < length; i++) {\n iteratee(obj[_keys[i]], _keys[i], obj);\n }\n }\n return obj;\n}\n","import cb from './_cb.js';\nimport isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\n\n// Return the results of applying the iteratee to each element.\nexport default function map(obj, iteratee, context) {\n iteratee = cb(iteratee, context);\n var _keys = !isArrayLike(obj) && keys(obj),\n length = (_keys || obj).length,\n results = Array(length);\n for (var index = 0; index < length; index++) {\n var currentKey = _keys ? _keys[index] : index;\n results[index] = iteratee(obj[currentKey], currentKey, obj);\n }\n return results;\n}\n","import isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\nimport optimizeCb from './_optimizeCb.js';\n\n// Internal helper to create a reducing function, iterating left or right.\nexport default function createReduce(dir) {\n // Wrap code that reassigns argument variables in a separate function than\n // the one that accesses `arguments.length` to avoid a perf hit. (#1991)\n var reducer = function(obj, iteratee, memo, initial) {\n var _keys = !isArrayLike(obj) && keys(obj),\n length = (_keys || obj).length,\n index = dir > 0 ? 0 : length - 1;\n if (!initial) {\n memo = obj[_keys ? _keys[index] : index];\n index += dir;\n }\n for (; index >= 0 && index < length; index += dir) {\n var currentKey = _keys ? _keys[index] : index;\n memo = iteratee(memo, obj[currentKey], currentKey, obj);\n }\n return memo;\n };\n\n return function(obj, iteratee, memo, context) {\n var initial = arguments.length >= 3;\n return reducer(obj, optimizeCb(iteratee, context, 4), memo, initial);\n };\n}\n","import createReduce from './_createReduce.js';\n\n// **Reduce** builds up a single result from a list of values, aka `inject`,\n// or `foldl`.\nexport default createReduce(1);\n","import createReduce from './_createReduce.js';\n\n// The right-associative version of reduce, also known as `foldr`.\nexport default createReduce(-1);\n","import cb from './_cb.js';\nimport each from './each.js';\n\n// Return all the elements that pass a truth test.\nexport default function filter(obj, predicate, context) {\n var results = [];\n predicate = cb(predicate, context);\n each(obj, function(value, index, list) {\n if (predicate(value, index, list)) results.push(value);\n });\n return results;\n}\n","import filter from './filter.js';\nimport negate from './negate.js';\nimport cb from './_cb.js';\n\n// Return all the elements for which a truth test fails.\nexport default function reject(obj, predicate, context) {\n return filter(obj, negate(cb(predicate)), context);\n}\n","import cb from './_cb.js';\nimport isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\n\n// Determine whether all of the elements pass a truth test.\nexport default function every(obj, predicate, context) {\n predicate = cb(predicate, context);\n var _keys = !isArrayLike(obj) && keys(obj),\n length = (_keys || obj).length;\n for (var index = 0; index < length; index++) {\n var currentKey = _keys ? _keys[index] : index;\n if (!predicate(obj[currentKey], currentKey, obj)) return false;\n }\n return true;\n}\n","import cb from './_cb.js';\nimport isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\n\n// Determine if at least one element in the object passes a truth test.\nexport default function some(obj, predicate, context) {\n predicate = cb(predicate, context);\n var _keys = !isArrayLike(obj) && keys(obj),\n length = (_keys || obj).length;\n for (var index = 0; index < length; index++) {\n var currentKey = _keys ? _keys[index] : index;\n if (predicate(obj[currentKey], currentKey, obj)) return true;\n }\n return false;\n}\n","import isArrayLike from './_isArrayLike.js';\nimport values from './values.js';\nimport indexOf from './indexOf.js';\n\n// Determine if the array or object contains a given item (using `===`).\nexport default function contains(obj, item, fromIndex, guard) {\n if (!isArrayLike(obj)) obj = values(obj);\n if (typeof fromIndex != 'number' || guard) fromIndex = 0;\n return indexOf(obj, item, fromIndex) >= 0;\n}\n","import restArguments from './restArguments.js';\nimport isFunction from './isFunction.js';\nimport map from './map.js';\nimport deepGet from './_deepGet.js';\nimport toPath from './_toPath.js';\n\n// Invoke a method (with arguments) on every item in a collection.\nexport default restArguments(function(obj, path, args) {\n var contextPath, func;\n if (isFunction(path)) {\n func = path;\n } else {\n path = toPath(path);\n contextPath = path.slice(0, -1);\n path = path[path.length - 1];\n }\n return map(obj, function(context) {\n var method = func;\n if (!method) {\n if (contextPath && contextPath.length) {\n context = deepGet(context, contextPath);\n }\n if (context == null) return void 0;\n method = context[path];\n }\n return method == null ? method : method.apply(context, args);\n });\n});\n","import map from './map.js';\nimport property from './property.js';\n\n// Convenience version of a common use case of `_.map`: fetching a property.\nexport default function pluck(obj, key) {\n return map(obj, property(key));\n}\n","import filter from './filter.js';\nimport matcher from './matcher.js';\n\n// Convenience version of a common use case of `_.filter`: selecting only\n// objects containing specific `key:value` pairs.\nexport default function where(obj, attrs) {\n return filter(obj, matcher(attrs));\n}\n","import isArrayLike from './_isArrayLike.js';\nimport values from './values.js';\nimport cb from './_cb.js';\nimport each from './each.js';\n\n// Return the maximum element (or element-based computation).\nexport default function max(obj, iteratee, context) {\n var result = -Infinity, lastComputed = -Infinity,\n value, computed;\n if (iteratee == null || (typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null)) {\n obj = isArrayLike(obj) ? obj : values(obj);\n for (var i = 0, length = obj.length; i < length; i++) {\n value = obj[i];\n if (value != null && value > result) {\n result = value;\n }\n }\n } else {\n iteratee = cb(iteratee, context);\n each(obj, function(v, index, list) {\n computed = iteratee(v, index, list);\n if (computed > lastComputed || (computed === -Infinity && result === -Infinity)) {\n result = v;\n lastComputed = computed;\n }\n });\n }\n return result;\n}\n","import isArrayLike from './_isArrayLike.js';\nimport values from './values.js';\nimport cb from './_cb.js';\nimport each from './each.js';\n\n// Return the minimum element (or element-based computation).\nexport default function min(obj, iteratee, context) {\n var result = Infinity, lastComputed = Infinity,\n value, computed;\n if (iteratee == null || (typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null)) {\n obj = isArrayLike(obj) ? obj : values(obj);\n for (var i = 0, length = obj.length; i < length; i++) {\n value = obj[i];\n if (value != null && value < result) {\n result = value;\n }\n }\n } else {\n iteratee = cb(iteratee, context);\n each(obj, function(v, index, list) {\n computed = iteratee(v, index, list);\n if (computed < lastComputed || (computed === Infinity && result === Infinity)) {\n result = v;\n lastComputed = computed;\n }\n });\n }\n return result;\n}\n","import isArray from './isArray.js';\nimport { slice } from './_setup.js';\nimport isString from './isString.js';\nimport isArrayLike from './_isArrayLike.js';\nimport map from './map.js';\nimport identity from './identity.js';\nimport values from './values.js';\n\n// Safely create a real, live array from anything iterable.\nvar reStrSymbol = /[^\\ud800-\\udfff]|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\ud800-\\udfff]/g;\nexport default function toArray(obj) {\n if (!obj) return [];\n if (isArray(obj)) return slice.call(obj);\n if (isString(obj)) {\n // Keep surrogate pair characters together.\n return obj.match(reStrSymbol);\n }\n if (isArrayLike(obj)) return map(obj, identity);\n return values(obj);\n}\n","import isArrayLike from './_isArrayLike.js';\nimport values from './values.js';\nimport getLength from './_getLength.js';\nimport random from './random.js';\nimport toArray from './toArray.js';\n\n// Sample **n** random values from a collection using the modern version of the\n// [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher–Yates_shuffle).\n// If **n** is not specified, returns a single random element.\n// The internal `guard` argument allows it to work with `_.map`.\nexport default function sample(obj, n, guard) {\n if (n == null || guard) {\n if (!isArrayLike(obj)) obj = values(obj);\n return obj[random(obj.length - 1)];\n }\n var sample = toArray(obj);\n var length = getLength(sample);\n n = Math.max(Math.min(n, length), 0);\n var last = length - 1;\n for (var index = 0; index < n; index++) {\n var rand = random(index, last);\n var temp = sample[index];\n sample[index] = sample[rand];\n sample[rand] = temp;\n }\n return sample.slice(0, n);\n}\n","import sample from './sample.js';\n\n// Shuffle a collection.\nexport default function shuffle(obj) {\n return sample(obj, Infinity);\n}\n","import cb from './_cb.js';\nimport pluck from './pluck.js';\nimport map from './map.js';\n\n// Sort the object's values by a criterion produced by an iteratee.\nexport default function sortBy(obj, iteratee, context) {\n var index = 0;\n iteratee = cb(iteratee, context);\n return pluck(map(obj, function(value, key, list) {\n return {\n value: value,\n index: index++,\n criteria: iteratee(value, key, list)\n };\n }).sort(function(left, right) {\n var a = left.criteria;\n var b = right.criteria;\n if (a !== b) {\n if (a > b || a === void 0) return 1;\n if (a < b || b === void 0) return -1;\n }\n return left.index - right.index;\n }), 'value');\n}\n","import cb from './_cb.js';\nimport each from './each.js';\n\n// An internal function used for aggregate \"group by\" operations.\nexport default function group(behavior, partition) {\n return function(obj, iteratee, context) {\n var result = partition ? [[], []] : {};\n iteratee = cb(iteratee, context);\n each(obj, function(value, index) {\n var key = iteratee(value, index, obj);\n behavior(result, value, key);\n });\n return result;\n };\n}\n","import group from './_group.js';\nimport has from './_has.js';\n\n// Groups the object's values by a criterion. Pass either a string attribute\n// to group by, or a function that returns the criterion.\nexport default group(function(result, value, key) {\n if (has(result, key)) result[key].push(value); else result[key] = [value];\n});\n","import group from './_group.js';\n\n// Indexes the object's values by a criterion, similar to `_.groupBy`, but for\n// when you know that your index values will be unique.\nexport default group(function(result, value, key) {\n result[key] = value;\n});\n","import group from './_group.js';\nimport has from './_has.js';\n\n// Counts instances of an object that group by a certain criterion. Pass\n// either a string attribute to count by, or a function that returns the\n// criterion.\nexport default group(function(result, value, key) {\n if (has(result, key)) result[key]++; else result[key] = 1;\n});\n","import group from './_group.js';\n\n// Split a collection into two arrays: one whose elements all pass the given\n// truth test, and one whose elements all do not pass the truth test.\nexport default group(function(result, value, pass) {\n result[pass ? 0 : 1].push(value);\n}, true);\n","import isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\n\n// Return the number of elements in a collection.\nexport default function size(obj) {\n if (obj == null) return 0;\n return isArrayLike(obj) ? obj.length : keys(obj).length;\n}\n","// Internal `_.pick` helper function to determine whether `key` is an enumerable\n// property name of `obj`.\nexport default function keyInObj(value, key, obj) {\n return key in obj;\n}\n","import restArguments from './restArguments.js';\nimport isFunction from './isFunction.js';\nimport optimizeCb from './_optimizeCb.js';\nimport allKeys from './allKeys.js';\nimport keyInObj from './_keyInObj.js';\nimport flatten from './_flatten.js';\n\n// Return a copy of the object only containing the allowed properties.\nexport default restArguments(function(obj, keys) {\n var result = {}, iteratee = keys[0];\n if (obj == null) return result;\n if (isFunction(iteratee)) {\n if (keys.length > 1) iteratee = optimizeCb(iteratee, keys[1]);\n keys = allKeys(obj);\n } else {\n iteratee = keyInObj;\n keys = flatten(keys, false, false);\n obj = Object(obj);\n }\n for (var i = 0, length = keys.length; i < length; i++) {\n var key = keys[i];\n var value = obj[key];\n if (iteratee(value, key, obj)) result[key] = value;\n }\n return result;\n});\n","import restArguments from './restArguments.js';\nimport isFunction from './isFunction.js';\nimport negate from './negate.js';\nimport map from './map.js';\nimport flatten from './_flatten.js';\nimport contains from './contains.js';\nimport pick from './pick.js';\n\n// Return a copy of the object without the disallowed properties.\nexport default restArguments(function(obj, keys) {\n var iteratee = keys[0], context;\n if (isFunction(iteratee)) {\n iteratee = negate(iteratee);\n if (keys.length > 1) context = keys[1];\n } else {\n keys = map(flatten(keys, false, false), String);\n iteratee = function(value, key) {\n return !contains(keys, key);\n };\n }\n return pick(obj, iteratee, context);\n});\n","import { slice } from './_setup.js';\n\n// Returns everything but the last entry of the array. Especially useful on\n// the arguments object. Passing **n** will return all the values in\n// the array, excluding the last N.\nexport default function initial(array, n, guard) {\n return slice.call(array, 0, Math.max(0, array.length - (n == null || guard ? 1 : n)));\n}\n","import initial from './initial.js';\n\n// Get the first element of an array. Passing **n** will return the first N\n// values in the array. The **guard** check allows it to work with `_.map`.\nexport default function first(array, n, guard) {\n if (array == null || array.length < 1) return n == null || guard ? void 0 : [];\n if (n == null || guard) return array[0];\n return initial(array, array.length - n);\n}\n","import { slice } from './_setup.js';\n\n// Returns everything but the first entry of the `array`. Especially useful on\n// the `arguments` object. Passing an **n** will return the rest N values in the\n// `array`.\nexport default function rest(array, n, guard) {\n return slice.call(array, n == null || guard ? 1 : n);\n}\n","import rest from './rest.js';\n\n// Get the last element of an array. Passing **n** will return the last N\n// values in the array.\nexport default function last(array, n, guard) {\n if (array == null || array.length < 1) return n == null || guard ? void 0 : [];\n if (n == null || guard) return array[array.length - 1];\n return rest(array, Math.max(0, array.length - n));\n}\n","import filter from './filter.js';\n\n// Trim out all falsy values from an array.\nexport default function compact(array) {\n return filter(array, Boolean);\n}\n","import _flatten from './_flatten.js';\n\n// Flatten out an array, either recursively (by default), or up to `depth`.\n// Passing `true` or `false` as `depth` means `1` or `Infinity`, respectively.\nexport default function flatten(array, depth) {\n return _flatten(array, depth, false);\n}\n","import restArguments from './restArguments.js';\nimport flatten from './_flatten.js';\nimport filter from './filter.js';\nimport contains from './contains.js';\n\n// Take the difference between one array and a number of other arrays.\n// Only the elements present in just the first array will remain.\nexport default restArguments(function(array, rest) {\n rest = flatten(rest, true, true);\n return filter(array, function(value){\n return !contains(rest, value);\n });\n});\n","import restArguments from './restArguments.js';\nimport difference from './difference.js';\n\n// Return a version of the array that does not contain the specified value(s).\nexport default restArguments(function(array, otherArrays) {\n return difference(array, otherArrays);\n});\n","import isBoolean from './isBoolean.js';\nimport cb from './_cb.js';\nimport getLength from './_getLength.js';\nimport contains from './contains.js';\n\n// Produce a duplicate-free version of the array. If the array has already\n// been sorted, you have the option of using a faster algorithm.\n// The faster algorithm will not work with an iteratee if the iteratee\n// is not a one-to-one function, so providing an iteratee will disable\n// the faster algorithm.\nexport default function uniq(array, isSorted, iteratee, context) {\n if (!isBoolean(isSorted)) {\n context = iteratee;\n iteratee = isSorted;\n isSorted = false;\n }\n if (iteratee != null) iteratee = cb(iteratee, context);\n var result = [];\n var seen = [];\n for (var i = 0, length = getLength(array); i < length; i++) {\n var value = array[i],\n computed = iteratee ? iteratee(value, i, array) : value;\n if (isSorted && !iteratee) {\n if (!i || seen !== computed) result.push(value);\n seen = computed;\n } else if (iteratee) {\n if (!contains(seen, computed)) {\n seen.push(computed);\n result.push(value);\n }\n } else if (!contains(result, value)) {\n result.push(value);\n }\n }\n return result;\n}\n","import restArguments from './restArguments.js';\nimport uniq from './uniq.js';\nimport flatten from './_flatten.js';\n\n// Produce an array that contains the union: each distinct element from all of\n// the passed-in arrays.\nexport default restArguments(function(arrays) {\n return uniq(flatten(arrays, true, true));\n});\n","import getLength from './_getLength.js';\nimport contains from './contains.js';\n\n// Produce an array that contains every item shared between all the\n// passed-in arrays.\nexport default function intersection(array) {\n var result = [];\n var argsLength = arguments.length;\n for (var i = 0, length = getLength(array); i < length; i++) {\n var item = array[i];\n if (contains(result, item)) continue;\n var j;\n for (j = 1; j < argsLength; j++) {\n if (!contains(arguments[j], item)) break;\n }\n if (j === argsLength) result.push(item);\n }\n return result;\n}\n","import max from './max.js';\nimport getLength from './_getLength.js';\nimport pluck from './pluck.js';\n\n// Complement of zip. Unzip accepts an array of arrays and groups\n// each array's elements on shared indices.\nexport default function unzip(array) {\n var length = (array && max(array, getLength).length) || 0;\n var result = Array(length);\n\n for (var index = 0; index < length; index++) {\n result[index] = pluck(array, index);\n }\n return result;\n}\n","import restArguments from './restArguments.js';\nimport unzip from './unzip.js';\n\n// Zip together multiple lists into a single array -- elements that share\n// an index go together.\nexport default restArguments(unzip);\n","import getLength from './_getLength.js';\n\n// Converts lists into objects. Pass either a single array of `[key, value]`\n// pairs, or two parallel arrays of the same length -- one of keys, and one of\n// the corresponding values. Passing by pairs is the reverse of `_.pairs`.\nexport default function object(list, values) {\n var result = {};\n for (var i = 0, length = getLength(list); i < length; i++) {\n if (values) {\n result[list[i]] = values[i];\n } else {\n result[list[i][0]] = list[i][1];\n }\n }\n return result;\n}\n","// Generate an integer Array containing an arithmetic progression. A port of\n// the native Python `range()` function. See\n// [the Python documentation](https://docs.python.org/library/functions.html#range).\nexport default function range(start, stop, step) {\n if (stop == null) {\n stop = start || 0;\n start = 0;\n }\n if (!step) {\n step = stop < start ? -1 : 1;\n }\n\n var length = Math.max(Math.ceil((stop - start) / step), 0);\n var range = Array(length);\n\n for (var idx = 0; idx < length; idx++, start += step) {\n range[idx] = start;\n }\n\n return range;\n}\n","import { slice } from './_setup.js';\n\n// Chunk a single array into multiple arrays, each containing `count` or fewer\n// items.\nexport default function chunk(array, count) {\n if (count == null || count < 1) return [];\n var result = [];\n var i = 0, length = array.length;\n while (i < length) {\n result.push(slice.call(array, i, i += count));\n }\n return result;\n}\n","import _ from './underscore.js';\n\n// Helper function to continue chaining intermediate results.\nexport default function chainResult(instance, obj) {\n return instance._chain ? _(obj).chain() : obj;\n}\n","import _ from './underscore.js';\nimport each from './each.js';\nimport functions from './functions.js';\nimport { push } from './_setup.js';\nimport chainResult from './_chainResult.js';\n\n// Add your own custom functions to the Underscore object.\nexport default function mixin(obj) {\n each(functions(obj), function(name) {\n var func = _[name] = obj[name];\n _.prototype[name] = function() {\n var args = [this._wrapped];\n push.apply(args, arguments);\n return chainResult(this, func.apply(_, args));\n };\n });\n return _;\n}\n","import _ from './underscore.js';\nimport each from './each.js';\nimport { ArrayProto } from './_setup.js';\nimport chainResult from './_chainResult.js';\n\n// Add all mutator `Array` functions to the wrapper.\neach(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) {\n var method = ArrayProto[name];\n _.prototype[name] = function() {\n var obj = this._wrapped;\n if (obj != null) {\n method.apply(obj, arguments);\n if ((name === 'shift' || name === 'splice') && obj.length === 0) {\n delete obj[0];\n }\n }\n return chainResult(this, obj);\n };\n});\n\n// Add all accessor `Array` functions to the wrapper.\neach(['concat', 'join', 'slice'], function(name) {\n var method = ArrayProto[name];\n _.prototype[name] = function() {\n var obj = this._wrapped;\n if (obj != null) obj = method.apply(obj, arguments);\n return chainResult(this, obj);\n };\n});\n\nexport default _;\n","// Default Export\n// ==============\n// In this module, we mix our bundled exports into the `_` object and export\n// the result. This is analogous to setting `module.exports = _` in CommonJS.\n// Hence, this module is also the entry point of our UMD bundle and the package\n// entry point for CommonJS and AMD users. In other words, this is (the source\n// of) the module you are interfacing with when you do any of the following:\n//\n// ```js\n// // CommonJS\n// var _ = require('underscore');\n//\n// // AMD\n// define(['underscore'], function(_) {...});\n//\n// // UMD in the browser\n// // _ is available as a global variable\n// ```\nimport * as allExports from './index.js';\nimport { mixin } from './index.js';\n\n// Add all of the Underscore functions to the wrapper object.\nvar _ = mixin(allExports);\n// Legacy Node.js API.\n_._ = _;\n// Export the Underscore API.\nexport default _;\n"],"names":["exports","name","val","options","opt","enc","encode","TypeError","fieldContentRegExp","test","value","str","maxAge","isNaN","isFinite","Math","floor","domain","path","expires","toUTCString","httpOnly","secure","sameSite","toLowerCase","decodeURIComponent","encodeURIComponent","__SENTRY_DEBUG__","Session","context","this","errors","sid","duration","status","init","ignoreDuration","startingTime","time","timestamp","started","update","prototype","user","ipAddress","ip_address","did","id","email","username","length","undefined","release","environment","userAgent","close","toJSON","Date","toISOString","attrs","user_agent","API_VERSION","Hub","client","scope","_version","_stack","getStackTop","bindClient","isOlderThan","version","setupIntegrations","pushScope","getScope","getStack","push","getClient","popScope","pop","withScope","callback","captureException","exception","hint","eventId","_lastEventId","event_id","finalHint","syntheticException","Error","originalException","_invokeClient","captureMessage","message","level","captureEvent","event","type","lastEventId","addBreadcrumb","breadcrumb","_a","_b","getOptions","_c","beforeBreadcrumb","_d","maxBreadcrumbs","mergedBreadcrumb","finalBreadcrumb","setUser","setTags","tags","setExtras","extras","setTag","key","setExtra","extra","setContext","configureScope","run","oldHub","makeMain","getIntegration","integration","_oO","startSpan","_callExtensionMethod","startTransaction","customSamplingContext","traceHeaders","captureSession","endSession","_sendSessionUpdate","layer","session","getSession","setSession","startSession","navigator","getUser","currentSession","method","args","_i","arguments","apply","sentry","getMainCarrier","__SENTRY__","extensions","carrier","hub","registry","getHubFromCarrier","setHubOnCarrier","getCurrentHub","hasHubOnCarrier","activeDomain","active","registryHubTopStack","_Oo","getHubFromActiveDomain","Scope","_notifyingListeners","_scopeListeners","_eventProcessors","_breadcrumbs","_user","_tags","_extra","_contexts","_sdkProcessingMetadata","clone","newScope","_level","_span","_session","_transactionName","_fingerprint","_requestSession","addScopeListener","addEventProcessor","_notifyScopeListeners","getRequestSession","setRequestSession","requestSession","setFingerprint","fingerprint","setLevel","setTransactionName","setTransaction","setSpan","span","getSpan","getTransaction","transaction","captureContext","updatedScope","Object","keys","contexts","clear","maxCrumbs","min","slice","clearBreadcrumbs","applyToEvent","trace","getTraceContext","transactionName","_applyFingerprint","breadcrumbs","sdkProcessingMetadata","_notifyEventProcessors","getGlobalEventProcessors","setSDKProcessingMetadata","newData","processors","index","_this","resolve","reject","processor","result","then","final","forEach","Array","isArray","concat","addGlobalEventProcessor","__assign","assign","t","s","i","n","p","hasOwnProperty","call","__read","o","m","Symbol","iterator","r","e","ar","next","done","error","__spread","callOnHub","Severity","htmlTreeAsString","elem","keyAttrs","currentElem","out","height","len","nextStr","_htmlElementAsString","separator","parentNode","reverse","join","el","className","classes","attr","tagName","keyAttrPairs","filter","keyAttr","getAttribute","map","keyAttrPair","split","allowedAttrs","getLocationHref","global","document","location","href","oO","IS_DEBUG_BUILD","fallbackGlobalObject","getGlobalObject","g","window","self","getGlobalSingleton","creator","obj","objectToString","toString","isError","wat","isInstanceOf","isBuiltin","ty","isErrorEvent","isDOMError","isDOMException","isString","isPrimitive","isPlainObject","isEvent","Event","isElement","Element","isRegExp","isThenable","Boolean","isSyntheticEvent","base","_e","logger","CONSOLE_LEVELS","consoleSandbox","originalConsole","console","wrappedLevels","originalWrappedFunc","__sentry_original__","makeLogger","enabled","enable","disable","PREFIX","uuid4","crypto","msCrypto","getRandomValues","arr","Uint16Array","pad","num","v","replace","c","random","parseUrl","url","match","query","fragment","host","protocol","relative","getFirstException","values","getEventDescription","firstException","addExceptionTypeValue","addExceptionMechanism","newMechanism","currentMechanism","mechanism","handled","mergedData","data","checkOrSetAlreadyCaught","__sentry_captured__","err","isNodeEnv","__SENTRY_BROWSER_BUNDLE__","dynamicRequire","mod","request","require","fill","source","replacementFactory","original","wrapped","markFunctionWrapped","addNonEnumerableProperty","defineProperty","writable","configurable","proto","getOriginalFunction","func","urlEncode","object","convertToPlainObject","newObj","stack","getOwnProperties","event_1","target","serializeEventTarget","currentTarget","CustomEvent","detail","extractedProps","property","extractExceptionKeysForMessage","maxLength","sort","includedKeys","serialized","dropUndefinedKeys","e_1","rv","e_1_1","return","truncate","max","substr","safeJoin","input","delimiter","output","String","isMatchingPattern","pattern","indexOf","resolvedSyncPromise","SyncPromise","rejectedSyncPromise","reason","_","executor","_state","_handlers","_resolve","_setResult","_reject","state","_value","_executeHandlers","cachedHandlers","handler","onfulfilled","onrejected","catch","finally","onfinally","isRejected","dateTimestampSource","nowSeconds","now","platformPerformance","module","performance","getNodePerformance","timeOrigin","getBrowserPerformance","timestampSource","dateTimestampInSeconds","bind","timestampInSeconds","threshold","performanceNow","dateNow","timeOriginDelta","abs","timeOriginIsReliable","navigationStart","timing","navigationStartDelta","extendStatics","d","b","setPrototypeOf","__proto__","__extends","__","constructor","create","__values","retrier","fn","opts","Promise","op","bail","onError","retry","onRetry","mainError","randomize","operation","attempt","byteLength","b64","lens","getLens","validLen","placeHoldersLen","toByteArray","tmp","Arr","_byteLength","curByte","revLookup","charCodeAt","fromByteArray","uint8","extraBytes","parts","maxChunkLength","len2","encodeChunk","lookup","Uint8Array","code","start","end","bcrypt","randomFallback","a","Uint32Array","safeStringCompare","known","unknown","right","wrong","k","setRandomFallback","genSaltSync","rounds","seed_length","GENSALT_DEFAULT_LOG2_ROUNDS","salt","base64_encode","BCRYPT_SALT_LEN","genSalt","_async","nextTick","res","hashSync","_hash","hash","progressCallback","compareSync","compare","comp","getRounds","parseInt","getSalt","substring","setImmediate","setTimeout","BASE64_CODE","BASE64_INDEX","stringFromCharCode","fromCharCode","c1","c2","off","rs","base64_decode","c3","slen","olen","utfx","src","dst","cp","fail","RangeError","UTF16toUTF8","encodeUTF8","decodeUTF8","UTF8toUTF16","l","calculateCodePoint","BLOWFISH_NUM_ROUNDS","MAX_EXECUTION_TIME","P_ORIG","S_ORIG","C_ORIG","_encipher","lr","P","S","_streamtoword","offp","word","_key","sw","offset","plen","_crypt","cdata","clen","j","ret","Int32Array","_ekskey","minor","charAt","real_salt","passwordb","encodeUTF16toUTF8","saltb","finish","bytes","encodeBase64","decodeBase64","base64","ieee754","customInspectSymbol","Buffer","K_MAX_LENGTH","createBuffer","buf","arg","encodingOrOffset","allocUnsafe","from","string","encoding","isEncoding","actual","write","fromString","ArrayBuffer","isView","arrayView","isInstance","copy","fromArrayBuffer","buffer","byteOffset","fromArrayLike","fromArrayView","SharedArrayBuffer","valueOf","isBuffer","checked","numberIsNaN","fromObject","toPrimitive","assertSize","size","array","mustMatch","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","dir","arrayIndexOf","lastIndexOf","indexSize","arrLength","valLength","read","readUInt16BE","foundIndex","found","hexWrite","Number","remaining","strLen","parsed","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","base64Write","ucs2Write","units","hi","lo","utf16leToBytes","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","MAX_ARGUMENTS_LENGTH","decodeCodePointsArray","TYPED_ARRAY_SUPPORT","foo","typedArraySupport","enumerable","get","poolSize","alloc","allocUnsafeSlow","_isBuffer","x","y","list","pos","set","swap16","swap32","swap64","toLocaleString","equals","inspect","trim","thisStart","thisEnd","thisCopy","targetCopy","includes","_arr","hexSliceLookupTable","checkOffset","ext","checkInt","checkIEEE754","writeFloat","littleEndian","noAssert","writeDouble","newBuf","subarray","readUintLE","readUIntLE","mul","readUintBE","readUIntBE","readUint8","readUInt8","readUint16LE","readUInt16LE","readUint16BE","readUint32LE","readUInt32LE","readUint32BE","readUInt32BE","readIntLE","pow","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUintLE","writeUIntLE","writeUintBE","writeUIntBE","writeUint8","writeUInt8","writeUint16LE","writeUInt16LE","writeUint16BE","writeUInt16BE","writeUint32LE","writeUInt32LE","writeUint32BE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","copyWithin","INVALID_BASE64_RE","Infinity","leadSurrogate","base64clean","alphabet","table","i16","u","f","default","formatters","RFC1738","RFC3986","formats","parse","stringify","allowDots","allowPrototypes","allowSparse","arrayLimit","charset","charsetSentinel","comma","decoder","decode","depth","ignoreQueryPrefix","interpretNumericEntities","parameterLimit","parseArrays","plainObjects","strictNullHandling","exec","h","maybeMap","combine","merge","compact","brackets","indices","repeat","addQueryPrefix","encoder","encodeValuesOnly","format","formatter","serializeDate","skipNulls","w","O","A","E","R","T","L","U","N","F","C","B","arrayFormat","commaRoundTrip","toUpperCase","arrayToObject","reduce","prop","unescape","escape","Function","getOwnPropertyDescriptor","getOwnPropertyNames","getOwnPropertySymbols","getPrototypeOf","propertyIsEnumerable","WeakMap","_keys","_values","has","globalThis","isStrict","realm","getTime","RegExp","flags","ignoreCase","multiline","unicode","sticky","lastIndex","Map","Set","add","Blob","WeakSet","strict","SyntaxError","AggregateError","Atomics","BigInt","BigInt64Array","BigUint64Array","DataView","decodeURI","encodeURI","eval","EvalError","Float32Array","Float64Array","FinalizationRegistry","Int8Array","Int16Array","JSON","parseFloat","Proxy","ReferenceError","Reflect","Uint8ClampedArray","URIError","WeakRef","splice","alias","hasArrayLengthDefineBug","getSerialize","deref","toStringTag","custom","W","I","quoteStyle","D","M","$","q","H","maxStringLength","customInspect","indent","numericSeparator","J","z","prev","G","V","ee","te","Y","re","K","HTMLElement","nodeName","ne","oe","attributes","ie","childNodes","ae","Z","se","cause","ce","X","ue","Q","le","fe","pe","ye","de","super","interval","shift","isEnabled","delete","abort","clearTimeout","AbortError","assert","__esModule","createClient","Jt","createGlobalOptions","St","hasBrowserEnv","hasStandardBrowserEnv","hasStandardBrowserWebWorkerEnv","allOwnKeys","getOwnPropertyDescriptors","defineProperties","DIGIT","ALPHA","ALPHA_DIGIT","isArrayBuffer","isFormData","FormData","append","isArrayBufferView","isNumber","isBoolean","isObject","isUndefined","isDate","isFile","isBlob","isFunction","isStream","pipe","isURLSearchParams","isTypedArray","isFileList","caseless","extend","stripBOM","inherits","toFlatObject","kindOf","kindOfTest","endsWith","toArray","forEachEntry","matchAll","isHTMLForm","hasOwnProp","reduceDescriptors","freezeMethods","toObjectSet","toCamelCase","noop","toFiniteNumber","findKey","isContextDefined","ALPHABET","generateString","isSpecCompliantForm","toJSONObject","isAsyncFn","captureStackTrace","config","response","description","number","fileName","lineNumber","columnNumber","metaTokens","dots","indexes","visitor","some","defaultVisitor","convertValue","isVisitable","_pairs","serialize","handlers","use","fulfilled","rejected","synchronous","runWhen","eject","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","isBrowser","URLSearchParams","protocols","product","WorkerGlobalScope","importScripts","entries","transitional","adapter","transformRequest","getContentType","setContentType","isNode","formSerializer","env","transformResponse","responseType","ERR_BAD_RESPONSE","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","headers","common","Accept","he","normalize","static","accessors","accessor","me","ge","be","__CANCEL__","ve","ERR_CANCELED","we","Oe","toGMTString","cookie","remove","Se","je","createElement","setAttribute","search","hostname","port","pathname","Ae","round","loaded","lengthComputable","total","progress","rate","estimated","Ee","http","xhr","XMLHttpRequest","withXSRFToken","cancelToken","unsubscribe","signal","removeEventListener","auth","password","btoa","baseURL","getAllResponseHeaders","ERR_BAD_REQUEST","responseText","statusText","open","params","paramsSerializer","onloadend","onreadystatechange","readyState","responseURL","onabort","ECONNABORTED","onerror","ERR_NETWORK","ontimeout","timeoutErrorMessage","ETIMEDOUT","setRequestHeader","withCredentials","onDownloadProgress","addEventListener","onUploadProgress","upload","subscribe","aborted","send","xe","Pe","Re","ke","throwIfRequested","Te","Le","Ue","timeoutMessage","decompress","beforeRedirect","transport","httpAgent","httpsAgent","socketPath","responseEncoding","Ne","ERR_DEPRECATED","warn","Fe","assertOptions","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","validators","Ce","Be","defaults","interceptors","boolean","function","unshift","getUri","Ie","De","promise","_listeners","cancel","token","Me","qe","Continue","SwitchingProtocols","Processing","EarlyHints","Ok","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","We","ze","Axios","CanceledError","CancelToken","isCancel","VERSION","toFormData","AxiosError","Cancel","all","spread","isAxiosError","mergeConfig","AxiosHeaders","formToJSON","getAdapter","HttpStatusCode","He","$e","Ge","Je","Ve","Ke","Qe","Xe","Ze","Ye","et","tt","rt","nt","ot","it","groups","at","st","ct","ut","lt","SQRT2","ft","pt","yt","dt","logHandler","ht","mt","insecure","retryOnError","log","throttle","basePath","accessToken","space","defaultHostname","Authorization","proxy","responseLogger","requestLogger","httpClientParams","cloneWithNewParams","onBeforeRequest","attempts","retryLimit","gt","resolveLinks","bt","freeze","vt","platform","wt","Ot","details","payloadData","requestId","sys","jt","At","Et","xt","entryId","linkType","spaceId","environmentId","Rt","kt","items","itemEntryPoints","urn","Pt","removeUnresolved","Tt","Lt","Ut","circular","async","Nt","initial","nextSyncToken","nextPageToken","content_type","withoutLinkResolution","withoutUnresolvableLinks","paginate","_t","assets","deletedEntries","deletedAssets","sync_token","nextPageUrl","Ft","nextSyncUrl","Ct","Bt","select","It","Dt","Mt","locale","qt","Wt","zt","Ht","$t","getGlobalOptions","spaceBaseUrl","environmentBaseUrl","getSpace","getContentTypes","getAsset","withAllLocales","getAssets","getTag","getTags","getLocales","parseEntries","sync","getEntry","getEntries","createAssetKey","maximum","post","expiresAt","Gt","application","__self__","fetch","DOMException","support","viewClasses","normalizeName","normalizeValue","iteratorFor","Headers","header","consumed","body","bodyUsed","fileReaderReady","reader","onload","readBlobAsArrayBuffer","blob","FileReader","readAsArrayBuffer","bufferClone","view","Body","_initBody","_bodyInit","_bodyText","isPrototypeOf","_bodyBlob","_bodyFormData","_bodyArrayBuffer","arrayBuffer","text","readAsText","chars","readArrayBufferAsText","formData","json","oldValue","thisArg","methods","Request","upcased","credentials","mode","referrer","form","Response","bodyInit","ok","redirectStatuses","redirect","abortXhr","rawHeaders","line","polyfill","ponyfill","ctx","isMergeableObject","isNonNullObject","stringValue","$$typeof","REACT_ELEMENT_TYPE","isReactElement","isSpecial","for","cloneUnlessOtherwiseSpecified","deepmerge","defaultArrayMerge","element","getKeys","symbol","getEnumerableOwnPropertySymbols","propertyIsOnObject","arrayMerge","sourceIsArray","destination","propertyIsUnsafe","customMerge","getMergeFunction","mergeObject","deepmerge_1","attributeNames","elementNames","__createBinding","k2","desc","__setModuleDefault","__importStar","render","ElementType","entities_1","foreignNames_js_1","unencodedElements","replaceQuotes","singleTag","node","nodes","renderNode","Root","children","Doctype","Directive","Comment","CDATA","renderCdata","Script","Style","Tag","xmlMode","parent","foreignModeIntegrationPoints","foreignElements","tag","attribs","encodeEntities","decodeEntities","encodeXML","escapeAttribute","emptyAttrs","formatAttributes","selfClosingTags","renderTag","Text","escapeText","renderText","isTag","__exportStar","DomHandler","domelementtype_1","node_js_1","defaultOpts","withStartIndices","withEndIndices","elementCB","dom","root","Document","tagStack","lastNode","parser","onparserinit","onreset","onend","handleCallback","onclosetag","endIndex","onopentag","addNode","ontext","oncomment","oncommentend","oncdatastart","oncdataend","onprocessinginstruction","ProcessingInstruction","previousSibling","startIndex","cloneNode","hasChildren","isDocument","isDirective","isComment","isText","isCDATA","NodeWithChildren","DataNode","Node","recursive","_super","namespace","prefix","cloneChildren","clone_1","child","clone_2","clone_3","instruction","sourceCodeLocation","childs","getFeed","stringify_js_1","legacy_js_1","doc","feedRoot","getOneElement","isValidFeed","feed","getElementsByTagName","item","entry","media","getMediaElements","addConditionally","link","pubDate","updated","getAtomFeed","getRssFeed","MEDIA_KEYS_STRING","MEDIA_KEYS_INT","where","medium","isDefault","MEDIA_KEYS_STRING_1","attrib","MEDIA_KEYS_INT_1","expression","recurse","textContent","uniqueSort","compareDocumentPosition","DocumentPosition","removeSubsets","domhandler_1","nodeA","nodeB","aParents","bParents","current","maxIdx","idx","DISCONNECTED","sharedParent","siblings","aSibling","bSibling","FOLLOWING","CONTAINED_BY","PRECEDING","CONTAINS","ancestor","getElementsByTagType","getElementById","getElements","testElement","querying_js_1","Checks","tag_name","tag_type","tag_contains","getAttribCheck","combineFuncs","compileTest","funcs","findOne","removeElement","childsIndex","prepend","prependChild","appendChild","replaceElement","replacement","sibling","currNext","findAll","existsOne","findOneChild","find","nodeStack","indexStack","__importDefault","innerText","getText","getInnerHTML","getOuterHTML","dom_serializer_1","prevElementSibling","nextElementSibling","getName","hasAttrib","getAttributeValue","getSiblings","getParent","getChildren","decodeXML","decodeHTMLStrict","decodeHTMLAttribute","decodeHTML","determineBranch","EntityDecoder","DecodingMode","BinTrieFlags","fromCodePoint","replaceCodePoint","decodeCodePoint","xmlDecodeTree","htmlDecodeTree","decode_data_html_js_1","decode_data_xml_js_1","decode_codepoint_js_1","CharCodes","EntityDecoderState","decode_codepoint_js_2","ZERO","NINE","decodeTree","emitCodePoint","EntityStart","treeIndex","excess","decodeMode","Strict","startEntity","NUM","NumericStart","stateNumericStart","NamedEntity","stateNamedEntity","NumericDecimal","stateNumericDecimal","NumericHex","stateNumericHex","LOWER_X","addToNumericResult","digitCount","startIdx","char","UPPER_A","UPPER_F","LOWER_A","LOWER_F","emitNumericEntity","lastCp","expectedLength","absenceOfDigitsInNumericCharacterReference","SEMI","missingSemicolonAfterCharacterReference","validateNumericCharacterReference","valueLength","VALUE_LENGTH","Attribute","EQUALS","UPPER_Z","LOWER_Z","isAsciiAlphaNumeric","emitNotTerminatedNamedEntity","emitNamedEntityData","getDecoder","nodeIdx","branchCount","BRANCH_LENGTH","jumpOffset","JUMP_TABLE","mid","midVal","htmlDecoder","xmlDecoder","Legacy","decodeMap","encodeNonAsciiHTML","encodeHTML","encode_html_js_1","escape_js_1","htmlReplacer","encodeHTMLTrieRe","regExp","lastIdx","nextChar","getCodePoint","xmlReplacer","escapeUTF8","xmlCodeMap","getEscaper","regex","codePointAt","restoreDiff","decodeXMLStrict","decodeHTML5Strict","decodeHTML4Strict","decodeHTML5","decodeHTML4","encodeHTML5","encodeHTML4","decodeStrict","EncodingMode","EntityLevel","decode_js_1","encode_js_1","XML","HTML","UTF8","ASCII","escape_js_2","encode_js_2","decode_js_2","freeGlobal","regexAstralSymbols","regexAsciiWhitelist","regexBmpWhitelist","regexEncodeNonAscii","encodeMap","regexEscape","escapeMap","regexInvalidEntity","regexInvalidRawCodePoint","regexDecode","decodeMapLegacy","decodeMapNumeric","invalidReferenceCodePoints","propertyName","codePointToSymbol","parseError","contains","hexEscape","decEscape","encodeEverything","useNamedReferences","allowUnsafeSymbols","escapeCodePoint","decimal","escapeBmpSymbol","$0","high","low","html","$1","$2","$3","$4","$5","$6","$7","$8","semicolon","decDigits","hexDigits","reference","isAttributeValue","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","defaultProps","displayName","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","TYPE_STATICS","getStatics","component","isMemo","ForwardRef","Memo","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","descriptor","Parser","Tokenizer_js_1","formTags","pTag","tableSectionTags","ddtTags","rtpTags","openImpliesClose","voidElements","foreignContextElements","htmlIntegrationElements","reNameEnd","cbs","openTagStart","tagname","attribname","attribvalue","foreignContext","buffers","bufferOffset","writeIndex","ended","lowerCaseTagNames","lowerCaseTags","lowerCaseAttributeNames","tokenizer","Tokenizer","getSlice","ontextentity","getSectionStart","isVoidElement","onopentagname","emitOpenTag","impliesClose","endOpenTag","isImplied","onopentagend","_f","count","closeCurrentTag","onselfclosingtag","recognizeSelfClosing","isOpenImplied","onattribname","onattribdata","onattribentity","onattribend","quote","onattribute","QuoteType","Double","Single","NoValue","getInstructionName","ondeclaration","oncdata","_g","_h","_j","_k","recognizeCDATA","reset","parseComplete","shiftBuffer","chunk","running","pause","resume","parseChunk","State","isWhitespace","Space","NewLine","Tab","FormFeed","CarriageReturn","isEndOfTagSection","Slash","Zero","Nine","Sequences","Cdata","CdataEnd","CommentEnd","ScriptEnd","StyleEnd","TitleEnd","sectionStart","baseState","currentSequence","sequenceIndex","trieIndex","trieCurrent","entityResult","entityExcess","entityTrie","getIndex","stateText","fastForwardTo","BeforeTagName","Amp","BeforeEntity","stateSpecialStartSequence","isEnd","InTagName","stateInTagName","stateInSpecialTag","endOfText","actualIndex","stateInClosingTagName","stateCDATASequence","InCommentLike","InDeclaration","stateInDeclaration","stateInCommentLike","isTagStartChar","LowerA","LowerZ","UpperA","UpperZ","isASCIIAlpha","startSpecial","sequence","SpecialStartSequence","stateBeforeTagName","ExclamationMark","BeforeDeclaration","Questionmark","InProcessingInstruction","lower","BeforeSpecialS","BeforeClosingTagName","BeforeAttributeName","stateBeforeAttributeName","stateBeforeClosingTagName","InClosingTagName","InSpecialComment","AfterClosingTagName","stateAfterClosingTagName","InSpecialTag","InSelfClosingTag","InAttributeName","stateInSelfClosingTag","stateInAttributeName","Eq","AfterAttributeName","stateAfterAttributeName","BeforeAttributeValue","stateBeforeAttributeValue","DoubleQuote","InAttributeValueDq","SingleQuote","InAttributeValueSq","InAttributeValueNq","stateInAttributeValueNoQuotes","handleInAttributeValue","stateInAttributeValueDoubleQuotes","stateInAttributeValueSingleQuotes","Unquoted","stateBeforeDeclaration","OpeningSquareBracket","CDATASequence","Dash","BeforeComment","stateInProcessingInstruction","stateBeforeComment","stateInSpecialComment","stateBeforeSpecialS","stateBeforeEntity","BeforeNumericEntity","InNamedEntity","stateInNamedEntity","emitNamedEntity","masked","allowLegacyEntity","Semi","entityStart","emitPartial","stateBeforeNumericEntity","LowerX","InHexEntity","InNumericEntity","stateInNumericEntity","stateInHexEntity","UpperF","LowerF","isHexDigit","cleanup","shouldContinue","handleTrailingData","DomUtils","parseFeed","createDomStream","parseDOM","parseDocument","DefaultHandler","Parser_js_1","Parser_js_2","domhandler_2","elementCallback","domutils_1","domutils_2","parseFeedDefaultOptions","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","NaN","LN2","peg$SyntaxError","expected","ctor","peg$subclass","peg$result","peg$FAILED","peg$startRuleFunctions","peg$parsestart","peg$startRuleFunction","peg$c0","elements","peg$c1","outerLen","inner","innerLen","peg$c2","messageText","peg$c3","peg$c4","peg$c5","peg$c6","peg$c7","peg$c8","peg$c9","peg$c10","peg$c11","peg$c12","peg$c13","peg$c14","peg$c15","peg$c16","peg$c17","peg$c18","style","peg$c19","peg$c20","peg$c21","pluralStyle","ordinal","peg$c22","peg$c23","peg$c24","peg$c25","peg$c26","peg$c27","peg$c28","peg$c29","peg$c30","selector","peg$c31","peg$c32","peg$c33","peg$c34","peg$c35","peg$c36","peg$c37","peg$c38","peg$c39","peg$c40","peg$c41","peg$c42","peg$c43","peg$c44","peg$c45","peg$c46","peg$c47","digits","peg$c48","peg$c49","peg$c50","peg$c51","peg$c52","peg$c53","peg$c54","peg$c55","peg$c56","peg$c57","peg$c58","peg$c59","peg$c60","peg$c61","peg$c62","peg$c63","peg$c64","peg$c65","peg$currPos","peg$savedPos","peg$posDetailsCache","column","seenCR","peg$maxFailPos","peg$maxFailExpected","peg$silentFails","startRule","peg$computeLocation","peg$computePosDetails","ch","startPos","endPos","startPosDetails","endPosDetails","peg$fail","peg$parsemessageFormatPattern","s0","s1","s2","peg$parsemessageFormatElement","s3","s4","s5","peg$parse_","peg$parsechars","peg$parsews","peg$parsemessageText","peg$parsemessageTextElement","s6","s7","s8","peg$parsenumber","peg$parseargument","peg$parsesimpleFormat","peg$parsepluralStyle","peg$parsepluralFormat","peg$parseselectOrdinalFormat","peg$parseoptionalFormatPattern","peg$parseselectFormat","peg$parseelementFormat","peg$parseargumentElement","peg$parseselector","peg$parseoffset","peg$parsedigit","peg$parsehexDigit","peg$parsechar","cleanupExpected","expectedDescs","hex","stringEscape","buildMessage","peg$buildException","IntlRelativeFormat","intl_messageformat_1","diff_1","es5_1","RelativeFormat","FIELDS","STYLES","locales","_resolveLocale","_resolveStyle","_isValidUnits","_findFields","_locale","objCreate","relativeFormat","date","_format","datum","__localeData__","__addLocaleData","second","minute","hour","day","month","resolvedOptions","_options","_compileMessage","_locales","relativeTime","_fields","future","past","_getMessage","messages","_messages","_getRelativeUnits","diff","field","localeData","fields","parentLocale","diffReport","_selectUnits","diffInUnits","relativeUnits","when","arrIndexOf","suggestion","defaultLocale","localeParts","thresholds","startOfDay","dirtyDate","setHours","to","dirtyDateRight","startOfDayLeft","startOfDayRight","timestampLeft","timestampRight","millisecond","getTimezoneOffset","week","rawYears","year","ord","v0","t0","n10","n100","hop","realDefineProp","__defineGetter__","props","fromIndex","core_1","en_1","IntlMessageFormat","Compiler","pluralFn","StringFormat","PluralFormat","useOrdinal","PluralOffsetString","numberFormat","SelectFormat","compile","ast","pluralStack","currentPlural","pluralNumberFormat","compileMessage","compileMessageText","compileArgument","Intl","NumberFormat","DateTimeFormat","compileOptions","option","optionsHash","getOption","other","src$utils$$","src$es5$$","src$compiler$$","intl$messageformat$parser$$","MessageFormat","__parse","_mergeFormats","_findPluralRuleFunction","_compilePattern","messageFormat","variableId","weekday","timeZoneName","pluralRuleFunction","part","mergedType","mergedFormats","src$core$$","src$en$$","sources","condition","argIndex","framesToPop","factory","converter","api","stringifiedAttributes","attributeName","jar","cookies","getJSON","withConverter","DAY","HOUR","MINUTE","SECOND","BASELINE_YEAR","MAX_SCORE","AMBIGUITIES","olson","dst_rules","years","rules","zones","determine","timeZone","timezones","using_intl","needle","offsets","jstz","isSpace","collectCharacters","regEx","descriptors","currentDescriptor","inputLength","regexLeadingSpaces","regexLeadingCommasOrSpaces","regexLeadingNotSpaces","regexTrailingCommas","regexNonNegativeInteger","regexFloatingPoint","candidates","parseDescriptors","tokenize","lastChar","intVal","floatVal","pError","candidate","isColorSupported","bold","dim","italic","underline","inverse","hidden","strikethrough","black","red","green","yellow","blue","magenta","cyan","white","gray","bgBlack","bgRed","bgGreen","bgYellow","bgBlue","bgMagenta","bgCyan","bgWhite","createColors","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","propFullName","secret","getShim","isRequired","ReactPropTypes","bigint","bool","any","arrayOf","elementType","instanceOf","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","qs","sep","eq","regexp","maxKeys","kstr","vstr","stringifyPrimitive","ks","FormatConstructor","cache","inputs","cacheId","defaultLocaleData","addLocaleData","hasIMFAndIRFLocaleData","normalizedLocale","_typeof","classCallCheck","AwaitValue","AsyncGenerator","gen","front","back","settle","_invoke","asyncIterator","throw","instance","Constructor","createClass","protoProps","staticProps","_extends","subClass","superClass","possibleConstructorReturn","toConsumableArray","arr2","localeMatcher","narrowShortLong","numeric2digit","funcReq","intlConfigPropTypes","textComponent","defaultFormats","intlFormatPropTypes","formatDate","formatTime","formatRelative","formatNumber","formatPlural","formatMessage","formatHTMLMessage","intlShape","dateTimeFormatPropTypes","formatMatcher","hour12","era","numberFormatPropTypes","currency","currencyDisplay","useGrouping","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","minimumSignificantDigits","maximumSignificantDigits","relativeFormatPropTypes","pluralFormatPropTypes","intlConfigPropNames","ESCAPED_CHARS","UNSAFE_CHARS_REGEX","filterProps","whitelist","defaults$$1","filtered","invariantIntlContext","intl","shallowEquals","objA","objB","keysA","keysB","bHasOwnProperty","shouldIntlComponentUpdate","_ref2","nextProps","nextState","_ref2$context","nextContext","_context$intl","_nextContext$intl","nextIntl","createError","defaultErrorHandler","injectIntl","WrappedComponent","Component$$1","_options$intlPropName","intlPropName","_options$withRef","withRef","InjectIntl","_Component","_wrappedInstance","_this2","ref","Component","defineMessages","messageDescriptors","IntlPluralFormat","resolveLocale","DATE_TIME_FORMAT_OPTIONS","NUMBER_FORMAT_OPTIONS","RELATIVE_FORMAT_OPTIONS","PLURAL_FORMAT_OPTIONS","RELATIVE_FORMAT_THRESHOLDS","updateRelativeFormatThresholds","newThresholds","getNamedFormat","messageDescriptor","defaultMessage","formattedMessage","getMessageFormat","filteredOptions","getDateTimeFormat","oldThresholds","getRelativeFormat","getNumberFormat","getPluralFormat","rawValues","escaped","intlConfigPropNames$1","intlFormatPropNames","IntlProvider","initialNow","intlContext","_ref$formatters","_didDisplay","hasLocaleData","_config","boundFormatFns","getConfig","getBoundFormatFns","objectWithoutProperties","_len","Children","FormattedDate","_props","formattedDate","FormattedTime","formattedTime","FormattedRelative","_timer","updateInterval","delta","unitDelay","getUnitDelay","absDelta","selectUnits","unitRemainder","delay","setState","scheduleNextUpdate","_ref","aTime","bTime","isSameDate","formattedRelative","FormattedNumber","formattedNumber","FormattedPlural","pluralCategory","formattedPlural","defaultFormatMessage","FormattedMessage","nextPropsToCheck","counter","_ref$formatMessage","formatMessage$$1","_ref$textComponent","_props$tagName","tokenDelimiter","tokenizedValues","uid","generateToken","isValidElement","FormattedHTMLMessage","formattedHTMLMessage","__html","dangerouslySetInnerHTML","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Fragment","Lazy","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","refs","updater","isReactComponent","forceUpdate","isPureReactComponent","__self","__source","_owner","_status","_result","transition","ReactCurrentDispatcher","ReactCurrentBatchConfig","ReactCurrentOwner","only","PureComponent","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","cloneElement","createContext","_currentValue","_currentValue2","_threadCount","Provider","Consumer","_defaultValue","_globalName","_context","createFactory","createRef","forwardRef","lazy","_payload","_init","memo","startTransition","unstable_act","useCallback","useContext","useDebugValue","useDeferredValue","useEffect","useId","useImperativeHandle","useInsertionEffect","useLayoutEffect","useMemo","useReducer","useRef","useState","useSyncExternalStore","useTransition","RetryOperation","timeouts","forever","retries","unref","maxRetryTime","factor","minTimeout","maxTimeout","createTimeout","wrap","_originalTimeouts","_timeouts","_maxRetryTime","_fn","_errors","_attempts","_operationTimeout","_operationTimeoutCb","_timeout","_operationStart","_cachedTimeouts","stop","currentTime","timeoutOps","cb","try","counts","mainErrorCount","htmlparser","escapeStringRegexp","parseSrcset","postcssParse","mediaTags","vulnerableTags","each","sanitizeHtml","VALID_HTML_ATTRIBUTE_NAME","_recursing","tempResult","Frame","that","tagPosition","mediaChildren","updateParentNodeText","updateParentNodeMediaChildren","htmlParserDefaults","tagAllowed","allowedTags","allowVulnerableTags","nonTextTagsArray","nonTextTags","allowedAttributesMap","allowedAttributesGlobMap","allowedAttributes","globRegex","allowedClassesMap","allowedClassesGlobMap","allowedClassesRegexMap","allowedClasses","transformTagsMap","transformTagsAll","skipMap","transformMap","skipText","skipTextDepth","transformTags","transform","transFun","simpleTransform","addedText","initializeState","enforceHtmlBoundary","frame","skip","hasText","transformedTag","disallowedTagsMode","isEmptyObject","nestingLimit","allowedScriptHostnames","allowedScriptDomains","allowedEmptyAttributes","nonBooleanAttributes","passedAllowedAttributesMapCheck","newValue","multiple","splitStrArray","allowedSchemesAppliedToAttributes","naughtyHref","allowed","allowedHostname","allowedDomain","isRelativeUrl","allowIframeRelativeUrls","allowedIframeHostnames","allowedIframeDomains","evil","allowedSpecificClasses","allowedWildcardClasses","allowedSpecificClassesGlob","allowedSpecificClassesRegex","allowedClassesGlobs","allowedGlobs","clss","glob","parseStyleAttributes","filteredAST","extractedAttributes","attrObject","important","stringifyStyleAttributes","abstractSyntaxTree","allowedStyles","astRules","selectedRule","allowedDeclarationsList","attributeObject","regularExpression","filterDeclarations","filterCss","escapeHtml","selfClosing","textFilter","lastFrame","exclusiveFilter","firstIndex","matches","allowProtocolRelative","scheme","allowedSchemesByTag","allowedSchemes","startsWith","URL","img","newTagName","newAttribs","prot","Container","AtRule","proxyOf","registerAtRule","Rule","isClean","my","Declaration","cleanSource","markDirtyUp","getIterator","walk","addToError","walkDecls","walkRules","walkAtRules","walkComments","last","markDirty","first","cleanRaws","keepBetween","insertBefore","exist","existIndex","insertAfter","removeChild","removeAll","replaceValues","decl","fast","every","sample","rebuild","raws","before","getProxyProcessor","toProxy","lastEach","registerParse","dependant","registerRule","registerRoot","pico","terminalHighlight","CssSyntaxError","file","plugin","endLine","endColumn","setMessage","showSourceCode","color","css","mark","aside","lines","maxWidth","gutter","spacing","variable","LazyResult","Processor","toResult","registerLazyResult","registerProcessor","PreviousMap","Input","fromJSON","ownInputs","inputHydrated","inputId","SourceMapConsumer","SourceMapGenerator","fileURLToPath","pathToFileURL","isAbsolute","nanoid","fromOffsetCache","sourceMapAvailable","pathAvailable","hasBOM","consumer","mapResolve","fromOffset","lastLine","lineToIndex","prevIndex","col","origin","fromUrl","originalPositionFor","sourceRoot","mapFile","sourceContentFor","consumerCache","registerInput","MapGenerator","Result","TYPE_TO_CLASS_NAME","atrule","rule","comment","PLUGIN_PROPS","postcssPlugin","prepare","Once","DeclarationExit","RuleExit","AtRuleExit","CommentExit","RootExit","DocumentExit","OnceExit","NOT_VISITORS","CHILDREN","isPromise","getEvents","toStack","events","eventIndex","visitors","visitorIndex","cleanMarks","postcss","stringified","processed","inline","syntax","helpers","plugins","content","warnings","onFulfilled","onRejected","onFinally","processing","runAsync","getAsyncError","runOnRoot","prepareVisitors","hasListener","walkSync","listeners","subRoot","visitSync","stringifier","generate","lastPlugin","handleError","roots","postcssVersion","visitTick","visit","registerPostcss","separators","inQuote","prevQuote","letter","dirname","cssString","mapOpts","usesFileUrls","absolute","isMap","previous","previousMaps","isInline","annotation","isSourcesContent","sourcesContent","withContent","clearAnnotation","setSourcesContent","already","toFileUrl","toUrl","setSourceContent","applyPrevMaps","applySourceMap","isAnnotation","toBase64","addAnnotation","outputFile","eol","generateMap","fromSourceMap","addMapping","generated","sourcePath","noSource","mapping","NoWorkResult","_processor","_css","_opts","_map","generatedCSS","generatedMap","_root","Stringifier","cloned","rangeBy","overrides","cloneBefore","cloneAfter","replaceWith","bookmark","foundSelf","after","raw","defaultType","between","fixed","emitInputs","inputsNextIndex","positionInside","positionBy","proxyCache","postcssNode","SAFE_COMMENT_NEIGHBOR","empty","spaces","customProperty","createTokenizer","endOfFile","nextToken","freeSemicolon","emptyRule","endFile","getPosition","left","colon","bracket","tokens","unclosedBracket","unknownWord","spacesAndCommentsFromEnd","findLastWithPosition","firstSpaces","precheckMissedSemicolon","stringFrom","spacesFromEnd","checkMissedSemicolon","unnamedAtrule","afterName","spacesAndCommentsFromStart","unexpectedClose","unclosedBlock","ownSemicolon","clean","lastTokenType","doubleColon","founded","Warning","initializer","warningPrinted","LANG","transformer","process","processOpts","pluginOpts","atRule","existsSync","readFileSync","loadAnnotation","startWith","loadMap","getAnnotationURL","sourceMapString","comments","decodeInline","lastMatch","atob","loadFile","prevPath","mappings","_mappings","sections","normalized","warning","ignore","selectors","DEFAULT_RAW","beforeDecl","beforeRule","beforeOpen","beforeClose","beforeComment","emptyBody","commentLeft","commentRight","builder","rawValue","block","own","detect","rawCache","beforeAfter","rawSemicolon","rawEmptyBody","rawIndent","rawBeforeComment","rawBeforeDecl","rawBeforeRule","rawBeforeClose","rawBeforeOpen","rawColon","step","SINGLE_QUOTE","DOUBLE_QUOTE","BACKSLASH","SLASH","NEWLINE","SPACE","FEED","TAB","CR","OPEN_SQUARE","CLOSE_SQUARE","OPEN_PARENTHESES","CLOSE_PARENTHESES","OPEN_CURLY","CLOSE_CURLY","SEMICOLON","ASTERISK","COLON","AT","RE_AT_END","RE_WORD_END","RE_BAD_BRACKET","RE_HEX_ESCAPE","escapePos","currentToken","ignoreErrors","returned","unclosed","what","ignoreUnclosed","controlChar","position","printed","range","PricingPeriod","reduceBreakdownToPricingCalculation","currencyIsoCode","breakdown","pricingPlan","tier","unitPrice","updateTotal","pricingStrategy","getUnitPrice","prices","sanitizePricingPlans","monthly","annual","MONTHLY","sanitizePricingPlan","ANNUAL","correctFirstTierUnitLimitLower","priceTiers","unitLimitLower","correctedUnitLimitLower","HAMS_PRICING_STRATEGY_BY_CCP_PRICING_POLICY","convertCCPPricingStrategyToHAMS","ccpPricingPolicy","hamsPricingStrategy","comparePricingTierByUnitLimitLower","firstLimit","secondLimit","PricingCalculator","productPricingStore","store","calculatePrice","productKey","period","getPricingPlan","calculatePriceWithPricingPlan","getBreakdown","getPricingPlans","selectedTier","unitLimitUpper","createPricingTierIsInUnitLimitsPredicate","createPricingTierIsMarginalPerUnitStrategy","createPricingTierToPricingBreakdownItemTransform","createMarginalPerUnitBreakdown","ProductPricingStore","productCatalogClient","ccpProductCatalogClient","isProductKeyUncached","isOfferingSKUUncached","offeringSKU","getCachedProducts","productKeys","pricingPlans","getCachedOfferings","offeringSKUs","getProducts","uncachedProductKeys","fetchProducts","getOfferings","uncachedOfferingSKUs","fetchOfferings","searchAddons","parentProductKey","addon","pricing","pricingPromise","getPricing","getOfferingsBySKU","offering","ccpPricingPlans","defaultPricingPlans","ccpPPContent","monthlyCCP","annualCCP","primaryCycle","primaryCycle_interval","tiers","chargeElement","ccpTiers","ccpTier","starter","policy","unitDescription","ceiling","unitAmount","flatAmount","convertCCPTiersToHAMS","convertCCPPricingPlansToHAMS","UnsucessfulFetchError","isUnsucessfulFetchError","serializeCookie","mapCookieToHeaders","createHeaders","mapResponseToText","mapResponseToMessage","mapResponseToJson","createUrl","baseUrl","queryString","mapQueryToQueryString","pairs","DEFAULT_HOST","contentTypeIds","PricingStrategy","parsePricingStrategy","FIXED_COST","MARGINAL_PER_UNIT","PER_UNIT","isPricingStrategy","mapPricingPlanContentEntryToPricingPlan","configuration","mapPricingPlanContentConfigurationItemToPricingTier","pricing_strategy","unit_description","unit_limit_lower","unit_limit_upper","mapPricingPlanContentConfigurationItemPriceToPricingTierPrice","unit_price","EDITION_SUFFIXES","ProductCatalogClient","contentfulClient","removeEditionSuffix","editionlessKey","getPricingPlansForEditionSuffixedKey","hamsProductKey","NON_STANDARD_EDITION_SUFFIXES","FREE","PREMIUM","ENTERPRISE","suffix","productContent","editionSuffixedProductKey","matchingEditionSuffix","editionSuffix","STANDARD","defaultFreePricingPlanMonthly","defaultFreePricingPlanYearly","defaultStdPricingPlanMonthly","defaultStdPricingPlanYearly","defaultPremiumPricingPlanMonthly","defaultPremiumPricingPlanYearly","defaultEnterprisePricingPlanMonthly","defaultEnterprisePricingPlanYearly","CCPProductCatalogClient","contentfulOffering","sku","ccpSearchAddons","ccpProductKey","getOfferingSkuByProductKey","offerings","AuthenticationMethodsType","GetUserPermissionsIsPermittedRequestPermissionId","Editions","ProductKeys","PRODUCT_KEY_MAP","CONFLUENCE","JIRA_CORE","JIRA_BUSINESS","JIRA_SOFTWARE","JIRA_SERVICE_DESK","BITBUCKET","OPSGENIE","STATUSPAGE","TRELLO","getAtlCohortIdFromCookie","atlCohortId","isValidSite","site","includeInvalidBitbucketSite","ignoreSiteNames","cloudId","openRequestCache","StargateClient","disableRequestDeduplication","dedupeFetch","cacheKey","cachedResult","getSignupServerXsrfToken","webPlatform","checkAuthenticationMethodsAvailable","successRedirect","xsrfToken","continue","getUserPermissionsIsPermitted","permissionId","resourceId","dontRequirePrincipalInSite","getCurrentAuthenticatedUser","getProductHubInfo","postCloudSignUp","payload","_ga","seg_xid","localStorage","getItem","__atl_path","ajs_anonymous_id","renameCloud","cloudName","checkCloudNameAvailability","getUserCloudSites","editions","adminAccess","licenseLevels","billingFrequency","availableProducts","includeInvalidSites","removeNonAdminSites","reqUrl","sites","isNewUser","userSignup","activateProduct","getProductActivationStatus","provisioningRequestId","getLicenceInformationStatus","postProductActivate","postCOFSProductActivate","cloudSessionTokenCookie","account_id","others","accountId","mapMeResponseToUserProfile","bitbucketWorkspaces","nextUrl","urlQuery","availableProductsLegacy","products","productType","patchUserProfile","userId","axios","getCcpHamsStatus","offeringKeys","getAvailableSites","orderId","transactionAccount","activateDirectBuyProduct","transactionAccountId","timezone","region","getCloudProductInfo","getProductEdition","getConsentConfig","postConsentConfig","postExpandFreeValidation","getActivationAuthorization","productEdition","siteName","getFeatureFlag","flag","getFeatureFlagSync","getRecommendedSiteName","getAccountOrgs","includeVortexMode","cofsCreateOrg","cofsActivateProductExisting","bitbucketValidateWorkspaceSlug","workspaceSlug","workspace_slug","BXPExpressClient","DEFAULT_BASE_URL","getXsrfToken","accept","cloudSignupAnonymous","marketplaceAppInstall","appKey","cloudExpandFreeValidation","edition","postBreachStatus","productEditionByCloudId","BXPExpressStargateClient","cloudSignup","isNotUndefined","HamletClient","getEmailExists","getCart","cartId","patchUser","firstName","lastName","getProductPricing","licenseType","requestingApplication","monthsValid","cacheBuster","getCloudSite","generateAsapHeader","asap","audience","hashEmail","sanitizedUsername","cleanEmail","hashResult","MarieSchemaAnalytics","eventContainer","productPlatform","schemaVersion","loginUserDetected","suiteName","setSuiteName","userEmail","setUserEmail","productsOffered","task","dependencies","setResult","AsyncResult","pending","inEffect","complete","isPending","PendingAsyncResult","CompleteAsyncResult","ErrorAsyncResult","mapper","catcher","AsyncResultError","StargateClientContext","StargateClientProvider","isBaseUrlStargateClientProviderProps","useAISAvailableProducts","stargateClient","useBitbucketWorkspaces","makeRequest","BXPExpressClientContext","useBXPExpressClient","BXPExpressClientProvider","HamletClientProvider","CnasClientContext","getNameAvailability","getHealthCheck","cloudNameAvailabilityCheck","CnasClientProvider","isAtlassianIdAuth","AUDIENCE","CofsClientContext","activateProducts","analyticsData","userContextToken","cookiesList","cookieItem","createCloud","originalRequest","clientIp","success","reserveName","resourcePackagesCheck","entitlements","packageUris","entitlement","renameSite","newSiteName","progressUri","getCloudStatus","pollProgress","useCofsClient","CofsClientProvider","LocaleContext","useLocale","LocaleProvider","useMe","usePricing","calculator","isAsapAuth","issuer","keyId","privateKey","DEFAULT_CURRENCY_ISO_CODE","ENV_DEV","ENV_STAGING","ENV_PRODUCTION","RECAPTCHA_KEY","ProductKey","AppKey","Url","getLocation","getUrl","getUnhashedUrl","hashIndex","getQueryString","questionIndex","htmlEscape","getParameterByName","results","getUrlParams","paramPairs","keyValuePair","iLen","Environment","VALID_LOCALES","BXP_TO_GROWTH_LOCALE_MAP","es","fr","ko","hu","nl","ja","pl","br","ru","zh","getSubdomain","urlParts","getEnvironment","isProduction","getIdentityBaseUrl","getWacIntegrationUrl","getInternationalSubdomain","hostnameSubdomain","getPathLocale","pathParts","localeIndex","getCurrentSearchParam","bundle","templateId","migrationSourceUuid","developer","internationalSubdomain","getIdSigninUrl","atlOriginId","skipEncoding","continueUrlOverride","currentUrl","isDev","isStaging","getApiPrivateUrl","getHamletUrl","getGrowthKitLocale","currentLocale","growthKitLocale","getParam","param","getSocialSignUpUrl","loginGoogleOrigin","socialContinueUrl","splitPath","signupSocialUrl","atlOrigin","continueUrl","getIdSwitchUserUrl","idSigninUrl","searchParams","reCaptchaKey","getFirstName","fullName","getLastName","names","Storage","hasStorage","sessionStorage","getCookie","encodedName","setCookie","days","sameSiteString","setTime","removeCookie","getLocalStorage","setLocalStorage","setItem","removeLocalStorage","removeItem","getSessionStorage","setSessionStorage","removeSessionStorage","getIsBundleBbJsw","getIsBitbucket","getIsBundleDevops","PricingType","defineMessagesSimple","tranformedMessages","OFFERING_IDS","dev","free","offeringId","pricingType","standard","PAID","premium","halp","pricingPlanId","beta","staging","jiraFamilyOfferingId","production","OfferingCatalog","environmentType","mapProductKeyAndEditionToCcpProduct","IdentityClientContext","baseUrlIdentity","permissionsPermitted","principalId","permissionsBulkPermitted","checkAddProductCapabilities","licenceLimit","requestData","action","owner","redirect_to","getUserName","recaptchaScore","redirectTo","suppressEmail","anonymousId","deviceInfo","riskScore","getUsersByCloudId","getUserByCloudAndAaId","atlassianAccountId","getPrincipalsByResource","principalFilter","inviteUser","requestPayload","invitationUrl","getUserIdsByEmailAddresses","emails","emailAddresses","baseUrlStargate","IdentityClientProvider","useAvailableSites","SanitizedHtml","innerHTML","SanitizedFormattedHtmlMessage","escapeValues","messageValues","keyName","messageValue","BxpKitFeatureGatesInitialization","identifiers","envConfig","apiKey","FeatureGateEnvironment","getEnvironmentConfig","analyticsAnonymousId","FeatureGatesInitialization","targetApp","eventLoggingApi","notProvided","ProductPricingStoreContext","useProductPricingStore","ProductPricingStoreProvider","getEnv","validateEnv","encoded","productShorthands","confluence","jira","stride","bitbucket","trello","originParamName","originVersioningAttributes","originLibrary","OriginTracer","generateId","dangerouslySkipValidation","validate","EmptyOriginTracer","MalformedOriginTracer","replaceQuery","fromEncoded","createEmpty","createMalformed","encodedOrigin","originData","encodedOriginString","base64url","padLength","base64UrlToBase64","originJSONObject","maybeShorthand","expandProductShorthand","fromJSONObject","addToUrl","originalQueryString","isEmpty","isMalformed","isValid","toAnalyticsAttributes","transformValue","hasGeneratedId","originProduct","isValidId","isValidProduct","originMalformed","replacer","wholeMatch","beforeQuery","afterQuery","newQueryString","SignupContextBuilder","activeExperiments","experimentId","variationMap","variationIndex","experiments","variation_ids","getActiveExperiments","getVarationMapForExperiment","getVariationIdForExperiment","optimizelyVariations","getOptimizelyVariations","metadata","withMetadata","metadataString","withMetadataArray","metadataArray","metadataItem","build","signupContext","DynamicConfig","configName","configValue","ruleID","evaluationDetails","secondaryExposures","allocatedExperimentName","onDefaultValueFallback","_onDefaultValueFallback","_name","_ruleID","_secondaryExposures","_allocatedExperimentName","_evaluationDetails","defaultValue","typeGuard","getValue","expectedType","actualType","__awaiter","_arguments","generator","__generator","label","sent","trys","ops","verb","ExceptionEndpoint","Errors_1","ErrorBoundary","sdkKey","_seen","_sdkKey","_setStatsigMetadata","statsigMetadata","_statsigMetadata","_swallow","_capture","recover","getExtraData","_onCaught","_logError","unwrapped","info","_getDescription","_error","StatsigUninitializedError","StatsigInvalidArgumentError","StatsigErrorMessage","REQUIRE_SYNC_INITIALIZE","Layer","layerValue","logParameterFunction","undelegatedSecondaryExposures","explicitParameters","_logParameterFunction","_undelegatedSecondaryExposures","_explicitParameters","_create","logAndReturn","_logLayerParameterExposure","parameterName","saveOverridesToLocalStorage","loadOverridesFromLocalStorage","makeEmptyOverrides","STORAGE_KEY","StatsigLocalStorage_1","gates","configs","layers","eventName","logUser","privateAttributes","DynamicConfig_1","ErrorBoundary_1","Layer_1","StatsigIdentity_1","StatsigLogger_1","StatsigNetwork_1","StatsigSDKOptions_1","StatsigStore_1","Timing_1","LogEvent_1","LocalOverrides_1","StatsigClient","_initCalled","_pendingInitPromise","_logLayerParameterExposureForLayer","isManualExposure","allocatedExperiment","exposures","isExplicit","_logger","logLayerExposure","_identity","localMode","_startTime","_errorBoundary","_ready","disabled","disableLocalStorage","_overrides","_normalizeUser","overrideStableID","_network","_store","logConfigDefaultValueFallback","initializeValues","_delayedSetup","setInitializeValues","bootstrap","sendSavedRequests","initializeAsync","_fetchAndSaveValues","initTimeoutMs","getEvaluationDetails","getGlobalEvaluationDetails","EvaluationReason","checkGate","gateName","_checkGateImpl","checkGateWithExposureLoggingDisabled","logGateExposure","_logGateExposureImpl","_getConfigImpl","getConfigWithExposureLoggingDisabled","logConfigExposure","_logConfigExposureImpl","getExperiment","experimentName","getExperimentWithExposureLoggingDisabled","logExperimentExposure","getLayer","layerName","_getLayerImpl","getLayerWithExposureLoggingDisabled","logLayerParameterExposure","_getLayerFromStore","logEvent","REQUIRE_INITIALIZE_FOR_LOG_EVENT","updateUserWithValues","fireCompletionCallback","updateStartTime","initializeCalled","REQUIRE_ASYNC_INITIALIZE","updateUserCompletionCallback","updateUser","currentUser","resetDedupeKeys","shutdown","getStableID","stableID","overrideGate","gate","_setOverride","overrideConfig","overrideLayer","setOverrides","getOverrides","saveStableID","userCopy","statsigEnvironment","_ensureStoreLoaded","isLoaded","_getEvaluationDetailsForError","sinceTime","previousDerivedFields","getLastUpdateTime","getPreviousDerivedFields","fetchValues","eventually","has_updates","save","is_no_content","setEvaluationReason","NetworkNotModified","callsite","_getGateFromStore","fetchResult","rule_id","secondary_exposures","LocalOverride","_getConfigFromStore","_getEmptyConfig","localConfig","logFunc","Constants_1","Hashing_1","SDKVersion_1","Identity","_sdkType","_sdkVersion","STATSIG_STABLE_ID_KEY","_getUUID","sdkType","sdkVersion","getUserCacheKey","uuid","randomDigit","INTERNAL_EVENT_PREFIX","CONFIG_EXPOSURE_EVENT","LAYER_EXPOSURE_EVENT","GATE_EXPOSURE_EVENT","LOG_FAILURE_EVENT","DEFAULT_VALUE_WARNING","MAX_LOCAL_STORAGE_SIZE","StatsigLogger","identity","network","errorBoundary","_failedLogEventCount","defaultValueEvent","_loggedErrors","_queue","_flushInterval","_failedLogEvents","_exposureDedupeKeys","disableCurrentPageLogging","currentPage","loggingBufferMaxSize","flush","gateValue","dedupeKey","_shouldLogExposure","gateExposure","configExposure","isExplicitParameter","clearInterval","isClosing","oldQueue","supportsKeepalive","sendBeacon","sendLogBeacon","_addFailedRequest","_saveFailedRequests","postToEndpoint","StatsigEndpoint","Rgstr","errorText","eventCount","_newFailedRequest","failedRequests","fireAndForget","requestBodies","_loop_1","this_1","requestBodies_1","requestBody","STATSIG_LOCAL_STORAGE_LOGGING_REQUEST_KEY","_clearLocalStorageRequests","visibilityState","ignoreWindowUndefined","setInterval","loggingIntervalMillis","lastTime","requestsCopy","additionalEvents","queue","StatsigNetwork","retryCodes","canUseKeepalive","leakyBucket","_postWithTimeout","Initialize","LogEventBeacon","clientTime","stringPayload","endpointName","backoff","useKeepalive","postBody","keepalive","networkResponse","disableNetworkKeepalive","hasTimedOut","timer","cachedReturnValue","eventuals","boundScope","fetchPromise","_getErrorData","racingPromise","race","headers_1","responseInfo","redirected","bodySnippet","requestInfo","INIT_TIMEOUT_DEFAULT_MS","StatsigSDKOptions","_l","_m","_o","_p","normalizeNumberInput","disableErrorLogging","disableAutoMetricsLogging","bounds","BootstrapValidator_1","StatsigStore","_userCacheKey","_userValues","_getDefaultUserCacheValues","_loaded","_reason","Uninitialized","_loadFromLocalStorage","_setUserValueFromCache","Bootstrap","InvalidBootstrap","feature_gates","dynamic_configs","layer_configs","evaluation_time","userHash","djb2HashForObject","user_hash","derived_fields","evalReason","jsonConfigs","updateState","requestedUserCacheKey","initResponse","userValues","_mergeInitializeResponseIntoUserMap","Network","_writeValuesToStorage","gateNameHash","getHashValue","_getEvaluationDetails","configNameHash","rawConfigValue","_createDynamicConfig","latestValue","_getLatestValue","undelegated_secondary_exposures","allocated_experiment_name","explicit_parameters","_parseCachedValues","INTERNAL_STORE_KEY","allValues","_removeFromStorage","cachedValues","_resetUserValues","Cache","configMap","mergeFn","requestedUserValues","_convertAPIDataToCacheValues","valuesToWrite","filteredValues","fromEntries","topLevelKey","apiConfig","_makeOnConfigDefaultValueFallback","valueExists","reasonOverride","Unrecognized","parameter","defaultValueType","valueType","StatsigClient_1","StatsigStore_2","Statsig","initialize","inst","_getClientX","manuallyLogGateExposure","manuallyLogConfigExposure","manuallyLogExperimentExposure","manuallyLogLayerParameterExposure","BootstrapValidator","evaluatedKeys","evaluatedKeysRecord","copyObject","userToCompare","one","two","userID","customIDs","LOCAL_STORAGE_KEYS","SimpleHash","getSortedObject","sortedObject","StatsigLocalStorage","isStorageAccessible","fallbackSessionCache","ignoreDisabledOption","canAccessStorageAccessible","canAccess","difference","stgWacInternalUrl","_classCallCheck","_regeneratorRuntime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","toStringTagSymbol","define","innerFn","outerFn","tryLocsList","protoGenerator","Generator","Context","makeInvokeMethod","tryCatch","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","record","__await","previousPromise","callInvokeWithMethodAndArg","delegate","delegateResult","maybeInvokeDelegate","_sent","dispatchException","abrupt","methodName","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","iteratorMethod","doneResult","isGeneratorFunction","genFun","awrap","iter","skipTempReset","rootRecord","rval","handle","loc","caught","hasCatch","hasFinally","finallyEntry","thrown","delegateYield","asyncGeneratorStep","_next","_throw","_asyncToGenerator","_defineProperties","prim","_toPrimitive","_setPrototypeOf","_possibleConstructorReturn","_assertThisInitialized","_getPrototypeOf","_Client","_inherits","ConsentHelper","_submitForm","Derived","hasNativeReflectConstruct","construct","sham","_isNativeReflectConstruct","Super","NewTarget","_this$form$querySelec","isJquery","jQuery","jquery","submitButtonWrapper","querySelector","configPromise","_callee","_this$params","needsConsent","isAllowSetCustomLocale","selectedLocale","forceShowConsentMessaging","requestConfig","insertConsent","localeRequiresMarketingCommunicationOptIn","requiresOptIn","_this$params2","gdprId","consentLabelEUCAN","consentLabel","privacyPolicy","wrapperDiv","forceShowConsent","markup","buildConsentMarkup","checkbox","_callee2","onSuccess","onFail","_this$form$querySelec2","_this$params$consentL","_this$params$privacyP","_document$getElementB","_context2","formId","updatePreferences","paramsLocale","formUrl","consentLabelText","privacyPolicyText","consentCheckboxValue","getConsentCheckboxValue","ndaText","_x","_x2","Client","capturedEventsPromise","onAnalyticsLoad","piiScrub","trackEvent","ace","analytics","Tracking","segmentPageReady","Sentry","trySentryErrorLog","sanitizeEventProperties","propertiesObj","ownKeys","enumerableOnly","symbols","sym","_objectSpread","_defineProperty","_toPropertyKey","DEV_ENV","STAGING_ENV","PRODUCTION_ENV","STARGATE_ENDPOINT","stgConfig","requiredProps","ConsentHubClient","stargateEndpoint","_requestConfig","_updatePreferences","postData","endpoint","getWindowLocation","subdirectory","getSubdirectory","author","continueUrlParam","applicationParam","loginHintParam","useQaWAC","hamletApi","HamletApi","baseDomain","getBaseDomain","useCofsPath","getCofsPath","getHamletPath","authenticated","hamletUser","getBxpPath","hamletRequest","HamletUser","cached","initialized","contactDetails","organisationDetails","address1","address2","city","postcode","isoCountryCode","organisationName","organisationType","payOnAccount","taxId","lassoDetails","myDetails","aaid","avatar","isLoggedIn","performanceBoostExperiment","enableAisAvailableProducts","retrieveXsrfToken","getStargateProfile","setToken","debugAllSites","_this3","retrieveMe","retrieveSitesData","identityData","sitesData","setSites","_this4","meData","stargateData","picture","_this5","retrieveAvailableProductsData","availableProductsSites","_site$products","availableProduct","avatarUrl","transformAvailableProductsIntoAvailableSites","_this6","availableProductsData","sitesResult","cloudIds","_this7","setExtendedTrialAvailability","extendedTrialAvailability","groupSitesByProduct","isVertigo","icon","login_logo_url","additionalAttributes","_objectWithoutProperties","_excluded","category","isNonInteraction","processAttributes","trackAllPlatforms","track","debug","GASv2","hasShownWarning","Constants","GASv3","GoogleAnalytics","ga","nonInteraction","Segment","eventProperties","eventAction","urlParams","tracking","CloudFamily","JIRA_KEY","CONFLUENCE_KEY","ROLE_BASED_PRICING_PRODUCTS","DEPRECATED","JIRA_FAMILY","family","primaryParent","CONFLUENCE_FAMILY","getFamilies","primaryKeys","parentKeys","objects","getByKey","OrderableItem","_createClass","_this$editionDescript","_this$description","unitCount","editionDescription","PricingBlock","amount","price","renewalAmount","unitLabel","rolePricing","HamletProductModel","productContentData","productDescription","parentDescription","userCountEnforced","marketplaceAddon","lastModified","contactSalesForAdditionalPricing","orderableItems","billingType","contentData","createFromHamletApi","parentKey","orderables","$renewalItems","$upgradeItems","orderable","saleType","sortOrderables","setLicenseItems","section","$tierHierarchy","orderableItemId","findOrderables","hasOrderable","$licenseItems","types","currentLicenses","licenseTypes","ProductConstants","initialProducts","prioritySupport","editionType","editionTypeIsDeprecated","unitBlockSize","unitLimit","unitStart","productName","productTagLine","productLongDescription","marketplace","listOrder","eula","moreLink","universityParent","recommendedProducts","images","xxx","xx","onDemand","available","crossSell","ProductContentData","storage","AtlStorage","stored","local","productConstants","ProductContentDataModel","pluginKey","createFromMarketplaceApi","summary","links","deployment","marketplaceType","HamletProducts","hamletProductsSessionKey","hamletProductsClearReasonSessionKey","lastProductsClearReason","currentProductsClearReason","addProduct","providedOptions","findByKey","hasTheseLicenses","qstring","createQueryStringParamsForHamlet","qStringParams","qStringBuilder","existing","addOrderable","storeProducts","CartService","utmSource","AtlUrl","hamletProducts","accountName","orderID","deprecatedItems","cloudProductFamily","getProductKeys","familyKeys","getFamiliesPrimaryKey","deprecatedProductKeys","getDeprecatedProductKeys","urlProducts","getAllURLProducts","hamletQueryOptions","queryProducts","mpac","itemList","jiraKey","confluenceKey","unitCounts","Hamlet","identifiedProducts","cartService","cachingEnabled","initPromises","cloudSiteIds","getExtendedTrialAvailability","cloudCreation","aodPass","setIdentifiedProducts","getItems","setItems","addons","getAddons","getCoreProducts","getEulas","Cofs","paramsBaseDomain","paramsBaseCofsPath","hamlet","expSignupContextBuilder","isTestTenant","isTestTenantByAccountName","isTestTenantByEnvironment","validateCNAS","ContentType","availability","validateCofsAccountName","validateCoupon","coupon","eligibleProducts","cofsData","defaultError","createRequest","atlCookies","checkCloudNameMin","checkCloudNameMax","isValidCloudNamePattern","isCloudIdAnnual","validationRequest","mapValidateData","onDemandAccountDetails","adminUsername","adminPassword","termsOfServiceAccepted","creditCardDetails","mapCofsData","features","productData","thisProduct","isValidTemplateId","advancedSettings","additionalProvisioningData","hideUserSegmentation","enableAutogenSiteName","autogenSiteName","useSocialLogin","pagePath","enableConfluenceAccountSetup","allowResendVerificationEmail","resendEmailData","signupContextString","consent","dataRegion","initialProductURL","signupLocation","spProduct","responseToken","submitThroughBxp","gRecaptchaResponse","experimentKey","experimentAttribute","experiment","testingPurposes","templateString","getRequestId","CloudGrowthTracker","cookieName","visitCounter","sendTrack","visitCount","submitCounter","standardEventName","sendToGAS","sendToSegmentJS","e_name","properties","contentType","Experiments","imktStorageUtils","CUSTOM_EXPERIMENTS_ITEM_KEY","storageUtils","simplifiedAdminPassword","bypassEmailCheck","blockRedirect","insertExperimentProperties","getExperimentsNotificationOpts","onDemandAccountName","onDemandProductKeys","customExperimentOpts","getExperimentDataStored","clearExperimentDataStored","enableEmailCheckBypass","enableSimplifiedAdminPassword","enableBlockRedirect","setExperimentKey","setExperimentAttribute","PasswordStrength","zxcvbn","zxcvbnScript","evaluatePasswordStrength","score","SocialLogin","baseIdDomain","imktUtils","localeParam","urlRenameSitePath","URL_RENAME_SITE_PATH","URL_SIGNUP_SOCIAL_LOGIN_PATH","SIGNUP_ATLLOGO_CONTAINER_CLASS","SIGNUP_CONTENT_CONTAINER_CLASS","SOCIAL_LOGIN_WAIT_CONTAINER_CLASS","SOCIAL_LOGIN_ERROR_CONTAINER_CLASS","WAC_SIGNUP_GOOGLE","OriginTracing","WAC_SIGNUP_MICROSOFT","loginMicrosoftOrigin","WAC_TRY_SIGNUP","trySignupOrigin","SS_SOCIAL_LOGIN_CLOUDDATA_KEY","detectSocialLoginPage","sessionStorageClearCloudData","sessionStorageSaveCloudData","userDetails","cloudDetails","sessionStorageGetCloudData","cloudData","determineSearchParams","renderSocialLogin","enableContinueWithGoogle","enableContinueWithMicrosoft","labels","renderGoogleAndMicrosoftLogin","renderGoogleLogin","renderMicrosoftLogin","formContainer","socialHeading","addClass","fullForm","detach","googleSignInFormTemplate","newForm","googleSigninButton","getContinueWithGoogleUrl","click","sendTrackingAnalytics","emailSigninButton","removeClass","microsoftSignInFormTemplate","renderMicrosoftButton","socialSignInFormTemplate","renderGoogleButton","microsoftSigninButton","getContinueWithMicrosoftUrl","isValidSocialLoginUser","isUserLoggedIn","isValidUser","isSocialLogin","newUsersOnlyRestriction","existingUserCloudData","eligibleSites","getEligibleSites","existingSites","getSites","eventProps","numExistingSites","numEligibleSites","showSignupForm","updateElementsByClassName","showPreparingCloudMessage","showSocialLoginError","errorType","linkTrySignupAgain","getTrySignupAgainUrl","stylePropName","stylePropValue","allElems","getElementsByClassName","extendedTrialOverridableSites","getExtendedTrialAvailableSites","loginGoogleUrl","loginMicrosoftUrl","getRenameSiteUrl","isPermitted","confirmationParams","confirmationUrlParams","renameSiteParams","renameSiteUrlParams","getWacTryCloudSignupUrl","logoutAtlUrl","trySignupUrl","anonymous_id","cross_domain_id","opt_id","CombinedBundles","COMBINED_BUNDLE","feature","bundles","isPopular","renderCombinedBundlesForm","toLocaleLowerCase","selectedEdition","getBundle","combinedBundleFormTemplate","combinedBundles","setFirstFocus","resetDownloadLink","additionalUIChanges","downloadLinkId","RESEND_DATA","imkt","performanceStartTime","captchaFilled","FormCloudSignup","domRoot","PRODUCTS_STORAGE_KEY","URL_CONFIRMATION_PATH","URL_CHECKEMAIL_PATH","URL_BUY_SIGNUP_PATH","URL_ACCOUNT_SETUP_PATH","STATUS_PROCESSING_COMPLETE_REVIEW_REQUIRED","STATUS_PROCESSING_COMPLETE","STATUS_INCOMPLETE","STATUS_ERROR","ERROR_CLASS","isDeveloper","$domRoot","useGDPR","opsgenieSignupIsActive","possiblyPremium","premium_enabled","isBundle","bundleData","trialBundleData","trialBundle","useAlternateLayout","useTrialInfo","consentLabelMarketing","getTemplateFromUrl","userSubmittedWithCaptcha","allowCoupon","allowBitbucket","allowDeveloperMode","recaptcha","allowCaptcha","simpleForm","allowSimpleForm","invisibleRecaptcha","allowEnableAutogenSiteName","performanceBoost","allowPerformanceBoost","allowEnableContinueWithGoogle","allowEnableContinueWithMicrosoft","enableFirstImpressions","allowFirstImpressions","enableCombinedBundles","allowCombinedBundles","allowConfluenceAccountSetup","availableEditions","simplifiedSiteSelected","accounts","simpleFormAdminPath","simpleFormExperienceVersion","consentHub","loginOrigin","switchOrigin","activateFormVariation","bindElements","updateIdUrls","updateLocaleText","updateFormReady","cofs","baseCofsPath","growthTracker","pw","socialLogin","getLocaleParam","developerWarning","show","selectedProducts","selectedAddons","hamletCoreProducts","hamletAddonProducts","disableSubmitButton","onbeforeunload","eventLabel","isExistingUser","existingUser","firstNameFilled","lastNameFilled","emailFilled","passwordFilled","siteNameFilled","reCaptchaFilled","fireBeaconAnalyticsEvent","consentConfig","renderMarketingConsent","checkUrlCouponKey","on","renderCaptcha","renderInvCaptcha","submitHandler","identifyProducts","setProducts","renderProductSelections","initUser","checkExtendedTrialAvailability","renderExtendedTrialError","renderExtendedTrialBullets","usageLimit","usageType","goToAccountSetup","continueWithSocialLogin","formRenderLoggedIn","formRenderLoggedOut","updateSignupDomainLabels","submitCloud","_ref$cloudName","trackingProps","isRecaptchaV2","isInvisibleRecaptcha","trackAnalyticsProduct","checkPerms","permitted","autoGeneratedCloudName","trackUnloadEvent","reorderFormFields","emailField","fieldIds","emailId","passwordField","passwordId","fullnameField","fullnameId","sitenameField","sitenameId","dataRegionFieldContainer","dataRegionId","sitenameLoadingIcon","sitenameValidationIcon","signupDomainSpan","greeting","signupFormGreeting","altLabels","firstNameLabel","lastNameLabel","siteNameLabel","changeSiteNameVisibility","removeAttr","signinLink","getIdSigninAccountUrl","enableFirstImpression","combinedBundleProducts","not","selectedBundle","newUrl","history","replaceState","loginUrl","getLoginAccountUrl","mouseover","labelContainer","formRenderReady","_toConsumableArray","humanUsageType","hide","captchaContainer","setInvisibleRecaptcha","bindEvents","is","productCount","sendTrackVisitCounter","cartedProducts","productAttributes","intendedProduct","performanceDuration","performanceBoosted","showBundle","assignSelectedProducts","getIdentifiedProducts","activeBundle","productKeyMatch","findBundleWithProductsKeys","checkUrlBundleKey","bundleProductKeys","assignSelectedExternalProducts","renderBundle","matchKey","bundleKey","newLocation","getCurrentUrl","logoutUrl","cofsListContainer","accountNameField","firstNameField","lastNameField","showPasswordField","submitButton","timeoutWarnings","passwordScoreTemplateTarget","marketingConsentContainer","eulaContainer","annualSubscriptionContent","linkLoginUser","linkExistingUser","dataRegionField","signupDomainLabels","siteInputDomain","siteHost","getOpsgenieSiteHostName","getSwitchAccountUrl","change","onThrottled","checkPasswordField","renderPasswordStrength","togglePasswordShow","validateEmailField","validateAccountField","checkNameField","preventDefault","signupOfferingTrialLengthTextNewSite","trackOptimizedFormEvents","radioButtons","selectedIndex","validateFreeAnnual","disableSubmitButtonSimplified","submitSimplifiedForm","trackOnSubmitEvents","validateForm","nextAll","premiumUpgradeHelpTooltipTrigger","premiumUpgradeHelpTooltipText","validateN2EProducts","filteredSites","renderOptimizedFlowForm","validateFreeAnnualOnLoad","queryParam","template","trialData","featureList","featureIncludesFreeOpsgenie","featureIncludesStatuspage","isJsdStandalone","featureIncludesFreeJSD","featureIncludesFreeBundleJSD","featureIncludesFree","featureIncludesPremiumJSD","featureIncludesPremium","featureIncludesStandardJSD","featureIncludesStandard","getFeatureList","bundleProducts","isPremiumEdition","isExtendedTrial","isOpsgenie","isStatuspage","signupOfferingTrialLengthTextNewSiteOpsgenie","productsIncludeStride","simpleTemplate","switchAccountUrl","signupOfferingTrialLengthTextExistingSite","isFormReady","enableSubmitButton","emptyFields","cohort","selectedSiteFull","variationValue","cloud_id","server","serverTime","enableOptimizedFlow","matchingProduct","product_key","n2e_enabled","validateEmail","successApi","validateClientSide","productTrackingValue","popupReminderExternalProducts","serializeArray","hideErrorCaptcha","checkField","checkAccountField","errorMsg","startUrl","startSearch","redirectCallback","errCallback","_this8","enableSubmitButtonSimplified","cloudObj","_this$user","_this$user$myDetails","isCloudIdAnnualAsync","_this$user2","_this$user2$myDetails","cofsCreateCloud","_this9","submitBxpExpress","getOpsgenieInitialProductURL","grecaptcha","getResponse","buildConsentPayload","resData","clientName","updateStatusResults","goToRenameSite","trackServerValidationFieldErrors","consentEulaText","generalMarketingOptInLabel","marketingConsentGranted","consents","displayedText","granted","timerWarning","timerError","tryAgain","sendTrackSubmitSuccess","request_id","product_list","cloud_name","bestStatuses","cancelSignupTimeoutEvents","sendFinishAnalytics","goToConfirmation","goToCheckEmail","fieldErrors","queryParams","ondemandurl","ondemandUrl","perms","setResendEmailParams","adminErrors","$field","clearErrors","fieldName","captchaOptions","sitekey","updateCaptcha","resetCaptcha","captchaRenderElement","cofs_enabled","urlEdition","checkUrlEditionKey","sanitizeEditionForProduct","checkUrlMigrationSourceUuidKey","signupEdition","free_enabled","_this10","productParam","_this11","renderCouponValidateMessage","storedProducts","hasClass","passwordstrength","passwordstrengthScores","messageSuccess","informMessageCouponSuccess","messageError","informMessageCouponError","labelSubmitCoupon","classResult","eulaLabel","eulaText","hasAddons","eulaWithAddonsText","logos","editionText","checkedElement","showFormEnabledProducts","productsTemplateTarget","productsTemplate","requiresCheckbox","marketingLabel","marketingConsentInput","preventSubmitActionText","externalSignupUrl","externalSignupPage","sendTrackSubmitCounter","langParam","_this12","localizedLabels","i18nLabels","localElements","translationKey","translation","translationAttr","mySites","existingTargetSites","findSitesWithProductKey","templateParam","userstate","dataRegionValue","$window","browserSupport","supports","storageType","storageKey","outputString","SESSION_STORAGE","LOCAL_STORAGE","paramName","core","LocalizedPricing","localizedPricing","featureDetect","componentInfo","componentRoot","_componentInfo$params","productKeyArray","offeringSku","countryISOCodeReq","getPricingPromise","pricingObject","customCurrency","countryISOCodePromise","getLocale","componentInit","resolvePricingPromises","trigger","appInitialized","onInitialized","bodyClasses","svg","backgroundSize","flexBox","supertype","subtype","createIfNotExists","basis","componentType","documentElement","pushState","implementation","hasFeature","touch","placeholder","transitions","mobile","screen","width","utils","browser","getScript","general","wpl","globals","mediaQueries","wac","landing","experts","legal","components","software","bxp","customers","pages","teamPatterns","urls","apiGetAuthToken","public","apiGetSites","apiGetUser","getBrowserOs","nAgt","clientStrings","cs","isWindows","isMobile","randomString","numberWithCommas","elementInViewport","top","offsetTop","offsetLeft","offsetWidth","offsetHeight","offsetParent","pageYOffset","pageXOffset","innerHeight","innerWidth","datepickerRequest","select2Request","underscoreRequest","datepicker","linkAttrs","rel","getStyle","select2","underscore","supportsHistory","title","page","pushStateNoTracking","domainLevel","sameSiteVal","replaceText","srcObj","inputText","replaceMap","outputText","replaceKey","getStrWithCommas","ImktTracking","Platforms","eventProperty","eventTarget","dataset","eventData","attribute","getBareUrl","getProtocol","getHostname","updateQueryStringParam","newParam","keyRegex","getPathname","tempArray","addUrlParams","removeUrlParams","currentParams","getSimpleUrl","matchUrlVars","bareUrl","hashUrlArray","hashUrl","nodeType","punycode","maxInt","tMax","skew","damp","regexPunycode","regexNonASCII","regexSeparators","baseMinusTMin","mapDomain","ucs2decode","ucs2encode","digitToBasic","digit","adapt","numPoints","firstTime","basic","oldi","baseMinusT","bias","handledCPCount","basicLength","currentValue","handledCPCountPlusOne","qMinusT","util","slashes","protocolPattern","portPattern","simplePathPattern","unwise","autoEscape","nonHostChars","hostEndingChars","hostnamePartPattern","hostnamePartStart","unsafeProtocol","hostlessProtocol","slashedProtocol","querystring","parseQueryString","slashesDenoteHost","queryIndex","splitter","uSplit","rest","simplePath","lowerProto","atSign","hostEnd","hec","parseHost","ipv6Hostname","hostparts","newpart","validParts","notHost","bit","toASCII","esc","qm","resolveObject","urlParse","tkeys","tk","tkey","rkeys","rk","rkey","relPath","isSourceAbs","isRelAbs","mustEndAbs","removeAllDots","srcPath","psychotic","isNullOrUndefined","authInHost","isNull","hasTrailingSlash","up","byteToHex","bth","rnds8","rnds","rng","bytesToUuid","ii","customAlphabet","defaultSize","errors_1","types_1","version_1","Fetcher","fetcherOptions","fetchRequest","customAttributes","ResponseError","serviceEnv","useGatewayUrl","Development","Staging","getBaseUrl","useGatewayURL","fetchTimeout","fetchTimeoutMs","abortSignal","AbortSignal","AbortController","abortController","CLIENT_VERSION","handleResponseError","extractResponseBody","Fetcher_1","__rest","statsig_js_lite_1","statsig_js_lite_2","fetcher_1","DEFAULT_CLIENT_KEY","FeatureGates","clientOptions","initPromise","initOptions","initCompleted","initFromValues","fetchOptions","updateUserUsingInitializeValuesProducer","fetchExperimentValues","experimentValues","customAttributesFromFetch","hasCheckGateErrorOccurred","msg","fireExperimentExposure","hasGetExperimentErrorOccurred","hasGetExperimentValueErrorOccurred","currentIdentifiers","currentAttributes","fromValuesClientOptions","customAttributesFromResult","clientSdkKeyPromise","fetchClientSdk","clientSdkKey","experimentValuesPromise","experimentValuesResult","toStatsigUser","statsigOptions","toStatsigOptions","getInitializeValues","isCurrentUser","originalInitPromise","initializeValuesPromise","updateUserPromise","updateStatsigClientUser","errMsg","restClientOptions","toStatsigUpdateUserCompletionCallback","_duration","objectA","objectB","aEntries","bEntries","ascendingKeyOrder","key1","key2","localeCompare","aValue","bValue","__FEATUREGATES_JS__","react_1","feature_gate_js_client_1","utils_1","initializingComponent","onReady","isInitialized","setInitialized","optionsRef","toError","pickChildToRender","FeatureGatesInitializationWithDefaults","initializeFromValues","FeatureGatesInitializationWithValues","startTime","totalTime","fireClientEvent","analyticsWebClient","clientVersion","sendOperationalEvent","actionSubject","Production","thing","typeOfTest","isReadableStream","isRequest","isResponse","isHeaders","_global","TypedArray","reducer","reducedDescriptors","kind","assignValue","targetKey","superConstructor","sourceObj","destObj","propFilter","merged","searchString","pair","arrayOrString","p1","p2","reducedValue","customProps","axiosError","removeBrackets","renderKey","predicates","useBlob","isFlatArray","exposedHelpers","charMap","AxiosURLSearchParams","_encode","buildURL","serializeFn","serializedParams","hashmarkIndex","buildPath","isNumericKey","isLast","parsePropPath","hasJSONContentType","isObjectPayload","toURLEncodedForm","_FormData","stringifySafely","JSONRequested","strictJSONParsing","ignoreDuplicateOf","$internals","normalizeHeader","matchHeaderValue","isHeaderNameFilter","valueOrRewrite","rewrite","setHeader","_header","_rewrite","lHeader","setHeaders","parseHeaders","tokensRE","parseTokens","matcher","deleted","deleteHeader","formatHeader","targets","asStrings","computed","defineAccessor","accessorName","arg1","arg2","arg3","buildAccessors","mapped","headerValue","transformData","fns","listener","isDownloadStream","freq","bytesNotified","_speedometer","samplesCount","timestamps","firstSampleTS","head","tail","chunkLength","startedAt","bytesCount","passed","force","progressBytes","msie","urlParsingNode","originURL","resolveURL","requestURL","buildFullPath","requestedURL","relativeURL","combineURLs","headersToObject","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","newConfig","isURLSameOrigin","xsrfValue","resolveConfig","requestHeaders","onCanceled","responseHeaders","progressEventReducer","parseProtocol","signals","controller","streamChunk","chunkSize","trackStream","stream","onProgress","onFinish","readBytes","ReadableStream","enqueue","highWaterMark","fetchProgressDecorator","isFetchSupported","isReadableStreamSupported","encodeText","TextEncoder","supportsRequestStream","duplexAccessed","hasContentType","duplex","supportsResponseStream","resolvers","knownAdapters","finished","composedSignal","stopTimeout","requestContentLength","getContentLength","getBodyLength","resolveBodyLength","contentTypeHeader","_request","isStreamResponse","responseContentLength","responseData","renderReason","isResolvedHandle","adapters","nameOrAdapter","rejectedReasons","reasons","throwIfCancellationRequested","dispatchRequest","deprecatedWarnings","validator","schema","allowUnknown","instanceConfig","configOrUrl","dummy","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","chain","generateHTTPMethod","isForm","resolvePromise","createInstance","defaultConfig","promises","ArrayProto","ObjProto","SymbolProto","supportsArrayBuffer","supportsDataView","nativeIsArray","nativeKeys","nativeCreate","nativeIsView","_isNaN","_isFinite","hasEnumBug","nonEnumerableProps","MAX_ARRAY_INDEX","restArguments","tagTester","nodelist","hasStringTagBug","isIE11","isDataView","getInt8","isArguments","isSymbol","constant","createSizePropertyCheck","getSizeProperty","collection","sizeProperty","shallowProperty","typedArrayPattern","collectNonEnumProps","emulatedSet","nonEnumIdx","isMatch","_wrapped","toBufferView","bufferSource","tagDataView","aStack","bStack","deepEq","areArrays","aCtor","bCtor","isEqual","allKeys","ie11fingerprint","weakMapMethods","forEachName","commonInit","mapTail","mapMethods","setMethods","invert","functions","createAssigner","keysFunc","baseCreate","Ctor","extendOwn","tap","toPath","deepGet","optimizeCb","argCount","accumulator","baseIteratee","iteratee","mapObject","currentKey","propertyOf","times","accum","createEscaper","escaper","testRegexp","replaceRegexp","templateSettings","evaluate","interpolate","noMatch","escapes","escapeRegExp","escapeChar","bareIdentifier","settings","oldSettings","argument","fallback","idCounter","uniqueId","_chain","executeBound","sourceFunc","boundFunc","callingContext","partial","boundArgs","bound","callArgs","flatten","memoize","hasher","address","wait","later","leading","throttled","_now","trailing","debounce","immediate","debounced","_args","wrapper","negate","predicate","compose","createPredicateIndexFinder","sortedIndex","createIndexFinder","predicateFind","findIndex","findLastIndex","findWhere","createReduce","guard","contextPath","pluck","lastComputed","reStrSymbol","rand","temp","shuffle","sortBy","criteria","group","behavior","partition","pass","keyInObj","pick","otherArrays","uniq","isSorted","seen","arrays","intersection","argsLength","unzip","ceil","chainResult","mixin"],"sourceRoot":""}