{"version":3,"mappings":"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AyiF,EAAQE,MAAM,cAchB,SAAgB3iF,GAEd,OADAyiF,EAAQE,MAAM,sBACPuF,EAAaloF,EACxB,CAhBWohF,CAAOphF,EAClB,EA2BE,SAASkoF,EAAaloF,GACpB,OAAa,KAATA,GAAenW,IAAS,GAC1B44F,EAAQG,QAAQ5iF,GACTkoF,GAII,OAATloF,GAAiBiiF,GAA0BjiF,IAC7CyiF,EAAQI,KAAK,sBACN+F,EAAQ5oF,IAEVslF,EAAItlF,EACf,CAYE,SAAS4oF,EAAQ5oF,GACf,OAAa,KAATA,GACFyiF,EAAQE,MAAM,sBACPyK,EAAgBptF,IAEZ,OAATA,GAAiBgiF,GAAmBhiF,IACtCyiF,EAAQI,KAAK,cAINjkF,EAAGoB,IAERkiF,GAAcliF,GACTwiF,GAAaC,EAASmG,EAAS,aAA/BpG,CAA6CxiF,IAKtDyiF,EAAQE,MAAM,kBACP9jF,EAAKmB,GAChB,CAcE,SAASotF,EAAgBptF,GACvB,OAAa,KAATA,GACFyiF,EAAQG,QAAQ5iF,GACTotF,IAET3K,EAAQI,KAAK,sBACN+F,EAAQ5oF,GACnB,CAYE,SAASnB,EAAKmB,GACZ,OAAa,OAATA,GAA0B,KAATA,GAAeiiF,GAA0BjiF,IAC5DyiF,EAAQI,KAAK,kBACN+F,EAAQ5oF,KAEjByiF,EAAQG,QAAQ5iF,GACTnB,EACX,CACA,GCnLO,MAAMwuF,GAAiB,CAC5B,UACA,UACA,QACA,OACA,WACA,aACA,OACA,UACA,SACA,MACA,WACA,KACA,UACA,SACA,MACA,MACA,KACA,KACA,WACA,aACA,SACA,SACA,OACA,QACA,WACA,KACA,KACA,KACA,KACA,KACA,KACA,OACA,SACA,KACA,OACA,SACA,SACA,KACA,OACA,OACA,OACA,WACA,MACA,WACA,KACA,WACA,SACA,IACA,QACA,SACA,UACA,UACA,QACA,QACA,KACA,QACA,KACA,QACA,QACA,KACA,QACA,MAeWC,GAAe,CAAC,MAAO,SAAU,QAAS,YC5E1CC,GAAW,CACtBpJ,UAAU,EACVp4F,KAAM,WACNyhG,UAeF,SAA2B98E,GACzB,IAAIhgB,EAAQgg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C,MAAM,MAAM,MAAM,OAAO,KAAK,CAAC,MAAM,MAAM,MAAM,OAAO,KAAK,CAAC,MAAM,MAAM,MAAM,OAAO,KAAK,CAAC,MAAM,MAAM,MAAM,OAAO,KAAK,CAAC,MAAM,MAAM,MAAM,OAAO,KAAK,CAAC,MAAM,MAAM,MAAM,OAAO,KAAK,CAAC,MAAM,MAAM,MAAM,OAAO,KAAK,CAAC,MAAM,MAAM,MAAM,OAAO,KAAK,CAAC,MAAM,MAAM,MAAM,OAAO,KAAK,CAAC,MAAM,MAAM,MAAM,OAAO,KAAK,CAAC,MAAM,MAAM,MAAM,OAAO,KAAK,CAAC,MAAM,MAAM,MAAM,OAAO,KAAK,CAAC,MAAM,OAAO,KAAK,CAAC,MAAM,MAAM,MAAM,OAAO,KAAK,CAAC,MAAM,MAAM,MAAM,OAAO,KAAK,CAAC,MAAM,OAAO,KAAK,CAAC,OAAO,KAAK,CAAC,MAAM,MAAM,MAAM,OAAO,KAAK,CAAC,MAAM,MAAM,MAAM,OAAO,KAAK,CAAC,MAAM,MAAM,MAAM,OAAO,KAAK,CAAC,MAAM,MAAM,MAAM,OAAO,KAAK,CAAC,MAAM,MAAM,MAAM,OAAO,KAAK,CAAC,MAAM,MAAM,MAAM,OAAO,KAAK,CAAC,MAAM,MAAM,MAAM,OAAO,KAAK,CAAC,MAAM,MAAM,MAAM,OAAO,KAAK,CAAC,MAAM,MAAM,MAAM,OAAO,KAAK,CAAC,MAAM,MAAM,MAAM,OAAO,KAAK,CAAC,MAAM,OAAO,KAAK,CAAC,MAAM,OAAO,KAAK,CAAC,MAAM,OAAO,KAAK,CAAC,MAAM,OAAO,KAAK,CAAC,MAAM,OAAO,KAAK,CAAC,MAAM,OAAO,KAAK,CAAC,MAAM,MAAM,MAAM,OAAO,KAAK,CAAC,MAAM,MAAM,MAAM,OAAO,KAAK,CAAC,MAAM,MAAM,MAAM,OAAO,KAAK,CAAC,MAAM,MAAM,MAAM,OAAO,KAAK,CAAC,MAAM,MAAM,MAAM,OAAO,KAAK,CAAC,MAAM,MAAM,MAAM,OAAO,KAAK,CAAC,MAAM,MAAM,MAAM,OAAO,KAAK,CAAC,MAAM,OAAO,KAAK,CAAC,MAAM,MAAM,MAAM,OAAO,KAAK,CAAC,MAAM,MAAM,MAAM,OAAO,KAAK,CAAC,MAAM,OAAO,KAA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,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI7xI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG8xI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI1wI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAKnM,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,EAAE,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKmc,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG6gI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,IAAIS,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAKC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,I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AG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,EAAE,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,EAAE,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,KAAKiD,GAAG,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAMrsC,GAAG,EAAE+yC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKF,GAAG,KAAKM,GAAG,CAAC,CAAC,IAAI,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAIC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,IAAI8B,GAAG,IAAI,GAAI,EAAC,KAAK,EAAE,EAAE,GAAE,EAAG,GAAI,MAAI,EAAG,GAAI,EAAC,GAAE,GAAG,GAAIjC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,QAAQgC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,KAAK,CAAC,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,KAAK,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,EAAE,KAAK,CAAC,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,EAAE,GAAG,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,EAAE,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,CAAC,GAAG,GAAG,EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,IAAI,GAAG,GAAG,IAAI,EAAE,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,IAAI,EAAE,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,KAAK,CAAC,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,CAAC,CAAC,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,EAAE,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,CAAC,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,EAAE,EAAE,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,EAAE,GAAG,IAAI,IAAI,EAAE,EAAE,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,MAAM,CAAC,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,MAAMjC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,QAAQE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG52C,GAAG,GAAGs4C,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AK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,MAAM,IAAI,MAAM,MAAM,IAAI,MAAM,MAAM,IAAI,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,MAAM,MAAM,IAAI,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IA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","names":["m","require$$0","createRoot","hydrateRoot","hasElementType","Element","hasMap","Map","hasSet","Set","hasArrayBuffer","ArrayBuffer","isView","equal","a","b","constructor","length","i","keys","it","Array","isArray","size","entries","next","done","has","value","get","RegExp","source","flags","valueOf","Object","prototype","toString","hasOwnProperty","call","$$typeof","reactFastCompare","error","message","match","console","warn","browser","condition","format","c","d","e","f","Error","args","argIndex","replace","name","framesToPop","objA","objB","compare","compareContext","ret","keysA","keysB","bHasOwnProperty","bind","idx","key","valueA","valueB","TAG_NAMES","TAG_NAMES2","SEO_PRIORITY_TAGS","rel","type","charset","property","VALID_TAG_NAMES","values","REACT_TAG_MAP","accesskey","class","contenteditable","contextmenu","itemprop","tabindex","HTML_TAG_MAP","reduce","carry","HELMET_ATTRIBUTE","HELMET_PROPS","getInnermostProperty","propsList","props","getTitleFromPropsList","innermostTitle","innermostTemplate","join","innermostDefaultTitle","getOnChangeClientState","getAttributesFromPropsList","tagType","filter","map","tagAttrs","current","getBaseTagFromPropsList","primaryAttributes","reverse","innermostBaseTag","tag","lowerCaseAttributeKey","toLowerCase","indexOf","concat","getTagsFromPropsList","tagName","approvedSeenTags","msg","approvedTags","instanceTags","instanceSeenTags","primaryAttributeKey","keys2","attributeKey","forEach","push","tagUnion","getAnyTrueFromPropsList","checkedTag","index","flattenArray","possibleArray","prioritizer","elementsList","propsToMatch","acc","elementAttrs","toMatch","includes","checkIfPropsMatch","priority","default","without","obj","SELF_CLOSING_TAGS","encodeSpecialCharacters","str","encode","String","generateElementAttributesAsString","attributes","attr","convertElementAttributesToReactProps","initProps","generateTagsAsReactComponent","tags","mappedTag","attribute","mappedAttribute","content","innerHTML","cssText","dangerouslySetInnerHTML","__html","React","createElement","getMethodsForTag","toComponent","_type","title","generateTitleAsReactComponent","titleAttributes","attributeString","flattenedTitle","generateTitleAsString","t","attributeHtml","string","tagContent","isSelfClosing","generateTagsAsString","server_default","baseTag","bodyAttributes","htmlAttributes","noscriptTags","styleTags","prioritizeSeoTags","linkTags","metaTags","scriptTags","priorityMethods","meta","link","script","getPriorityMethods","base","noscript","style","instances","isDocument","window","document","HelmetData","canUseDOM","context","setHelmet","serverState","this","helmet","helmetInstances","add","instance","remove","splice","Context","React2","createContext","HelmetProvider","_HelmetProvider","Component","static","helmetData","super","render","Provider","children","updateTags","headElement","head","querySelector","tagNodes","querySelectorAll","oldTags","slice","newTags","indexToDelete","newElement","styleSheet","appendChild","createTextNode","setAttribute","some","existingTag","isEqualNode","parentNode","removeChild","updateAttributes","elementTag","getElementsByTagName","helmetAttributeString","getAttribute","helmetAttributes","split","attributesToRemove","attributeKeys","indexToSave","removeAttribute","commitTagChanges","newState","cb","onChangeClientState","updateTitle","tagUpdates","addedTags","removedTags","_helmetCallback","client_default","cancelAnimationFrame","defer","requestAnimationFrame","HelmetDispatcher","Component2","rendered","shouldComponentUpdate","nextProps","shallowEqual","componentDidUpdate","emitChange","componentWillUnmount","state","init","Helmet","Component3","fastCompare","mapNestedChildrenToProps","child","nestedChildren","flattenArrayTypeChildren","arrayTypeChildren","newChildProps","mapObjectTypeChildren","newProps","mapArrayTypeChildrenToProps","newFlattenedProps","arrayChildName","warnOnInvalidChildren","invariant","nestedChild","mapChildrenToProps","React3","Children","childProps","Consumer","FunctionsError","FunctionsFetchError","FunctionsRelayError","FunctionsHttpError","FunctionRegion","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","rejected","result","then","apply","FunctionsClient","url","headers","customFetch","region","Any","fetch","_fetch","__vitePreload","async","__VITE_PRELOAD__","resolveFetch","setAuth","token","Authorization","invoke","functionName","options","_a","method","body","functionArgs","_headers","Blob","FormData","JSON","stringify","response","assign","catch","fetchError","isRelayError","ok","data","responseType","trim","json","blob","formData","text","globalObject","self","global","getGlobal","nodeFetch","Headers","Request","Response","defineProperty","PostgrestError_1","details","hint","code","PostgrestError","__importDefault","mod","__esModule","PostgrestBuilder_1","node_fetch_1","require$$1","builder","shouldThrowOnError","schema","signal","isMaybeSingle","throwOnError","setHeader","onfulfilled","onrejected","undefined","res","_b","_c","count","status","statusText","parse","countHeader","contentRange","parseInt","_d","stack","returns","overrideTypes","PostgrestTransformBuilder_1","PostgrestTransformBuilder$1","select","columns","quoted","cleanedColumns","test","searchParams","set","order","column","ascending","nullsFirst","foreignTable","referencedTable","existingOrder","limit","range","from","to","keyOffset","keyLimit","abortSignal","single","maybeSingle","csv","geojson","explain","analyze","verbose","settings","buffers","wal","Boolean","forMediatype","rollback","PostgrestTransformBuilder","PostgrestFilterBuilder_1","PostgrestFilterBuilder$1","eq","append","neq","gt","gte","lt","lte","like","pattern","likeAllOf","patterns","likeAnyOf","ilike","ilikeAllOf","ilikeAnyOf","is","cleanedValues","s","contains","containedBy","rangeGt","rangeGte","rangeLt","rangeLte","rangeAdjacent","overlaps","textSearch","query","config","typePart","configPart","not","operator","or","filters","PostgrestFilterBuilder","PostgrestQueryBuilder_1","allowEmpty","insert","defaultToNull","prefersHeaders","x","uniqueColumns","upsert","onConflict","ignoreDuplicates","update","unshift","version","constants","DEFAULT_HEADERS","version_1","PostgrestClient_1","constants_1","require$$2","PostgrestClient","schemaName","relation","URL","rpc","fn","_","cjs","PostgrestBuilder","PostgrestQueryBuilder","require$$3","require$$4","require$$5","_default","SOCKET_STATES","CHANNEL_STATES","CHANNEL_EVENTS","TRANSPORTS","CONNECTION_STATE","PostgresTypes","Serializer","HEADER_LENGTH","decode","rawPayload","callback","_binaryDecode","buffer","view","DataView","decoder","TextDecoder","_decodeBroadcast","topicSize","getUint8","eventSize","offset","topic","event","ref","payload","byteLength","Timer","timerCalc","timer","tries","reset","clearTimeout","scheduleTimeout","setTimeout","convertChangeData","record","skipTypes","rec_key","convertColumn","columnName","find","colType","convertCell","noop","charAt","dataType","toArray","bool","toBoolean","float4","float8","int2","int4","int8","numeric","oid","toNumber","jsonb","toJson","timestamp","toTimestampString","abstime","date","daterange","int4range","int8range","money","reltime","time","timestamptz","timetz","tsrange","tstzrange","parsedValue","parseFloat","Number","isNaN","log","lastIdx","closeBrace","arr","valTrim","val","httpEndpointURL","socketUrl","Push","channel","timeout","sent","timeoutTimer","receivedResp","recHooks","refEvent","resend","_cancelRefEvent","send","_hasReceived","startTimeout","socket","join_ref","_joinRef","updatePayload","receive","_makeRef","_replyEventName","_on","_cancelTimeout","_matchReceive","trigger","_trigger","destroy","_off","h","REALTIME_PRESENCE_LISTEN_EVENTS","REALTIME_POSTGRES_CHANGES_LISTEN_EVENT","REALTIME_LISTEN_TYPES","REALTIME_SUBSCRIBE_STATES","RealtimePresence","opts","pendingDiffs","joinRef","caller","onJoin","onLeave","onSync","events","diff","syncState","syncDiff","inPendingSyncState","currentPresences","newPresences","leftPresences","currentState","cloneDeep","transformedState","transformState","joins","leaves","presences","newPresenceRefs","presence_ref","curPresenceRefs","joinedPresences","joinedPresenceRefs","curPresences","presenceRefsToRemove","func","getOwnPropertyNames","metas","presence","RealtimeChannel","params","bindings","closed","joinedOnce","pushBuffer","subTopic","broadcast","ack","private","joinPush","rejoinTimer","_rejoinUntilConnected","reconnectAfterMs","joined","pushEvent","_onClose","_remove","_onError","reason","_isLeaving","_isClosed","errored","_isJoining","reply","broadcastEndpointURL","endPoint","subscribe","isConnected","connect","isPrivate","CHANNEL_ERROR","CLOSED","accessTokenPayload","postgres_changes","r","accessTokenValue","access_token","updateJoinPayload","_rejoin","clientPostgresBindings","bindingsLen","newPostgresBindings","clientPostgresBinding","table","serverPostgresFilter","unsubscribe","id","SUBSCRIBED","TIMED_OUT","presenceState","track","untrack","on","_canPush","_push","endpoint_payload","apikey","apiKey","messages","_fetchWithTimeout","cancel","leaving","onClose","close","leavePush","leave","controller","AbortController","abort","_onMessage","_event","_ref","_isMember","typeLower","toLocaleLowerCase","handledPayload","_e","_f","bindId","bindEvent","ids","postgresChanges","commit_timestamp","errors","enrichedPayload","eventType","new","old","_getPayloadRecords","_isJoined","joining","binding","isEqual","obj1","obj2","k","_leaveOpenTopic","records","Transformers.convertChangeData","old_record","NATIVE_WEBSOCKET_AVAILABLE","WebSocket","RealtimeClient","channels","httpEndpoint","heartbeatIntervalMs","heartbeatTimer","pendingHeartbeatRef","logger","conn","sendBuffer","serializer","stateChangeCallbacks","open","accessToken","_resolveFetch","websocket","transport","reconnectTimer","disconnect","worker","Worker","workerUrl","endpointURL","setupConnection","WSWebSocketDummy","WS","import","_appendParams","vsn","onclose","clearInterval","getChannels","removeChannel","removeAllChannels","values_1","all","kind","connectionState","readyState","connecting","Connecting","Open","closing","Closing","Closed","chan","tokenToSend","parsed","atob","_error","exp","Math","floor","Date","now","sendHeartbeat","flushSendBuffer","newRef","dupChannel","binaryType","onopen","_onConnOpen","onerror","_onConnError","onmessage","_onConnMessage","_onConnClose","rawMessage","objectUrl","_workerObjectUrl","workerRef","terminate","postMessage","interval","setInterval","_triggerChanError","prefix","URLSearchParams","result_url","createObjectURL","address","_protocols","StorageError","__isStorageError","isStorageError","StorageApiError","toJSON","StorageUnknownError","originalError","recursiveToCamel","item","el","newKey","toUpperCase","_getErrorMessage","err","error_description","handleError","Res","noResolveJson","_handleRequest","fetcher","parameters","_getRequestParams","post","DEFAULT_SEARCH_OPTIONS","sortBy","DEFAULT_FILE_OPTIONS","cacheControl","contentType","StorageFileApi","bucketId","uploadOrUpdate","path","fileBody","fileOptions","metadata","encodeMetadata","toBase64","cleanPath","_removeEmptyFolders","_path","_getFinalPath","duplex","Id","fullPath","Key","upload","uploadToSignedUrl","createSignedUploadUrl","signedUrl","move","fromPath","toPath","sourceKey","destinationKey","destinationBucket","copy","createSignedUrl","expiresIn","transform","downloadQueryParam","download","encodeURI","signedURL","createSignedUrls","paths","datum","renderPath","transformationQuery","transformOptsToQueryString","queryString","info","exists","getPublicUrl","_queryString","publicUrl","prefixes","list","Buffer","btoa","width","height","resize","quality","StorageBucketApi","listBuckets","getBucket","createBucket","public","file_size_limit","fileSizeLimit","allowed_mime_types","allowedMimeTypes","updateBucket","put","emptyBucket","deleteBucket","StorageClient","JS_ENV","Deno","navigator","product","DEFAULT_GLOBAL_OPTIONS","DEFAULT_DB_OPTIONS","DEFAULT_AUTH_OPTIONS","autoRefreshToken","persistSession","detectSessionInUrl","flowType","DEFAULT_REALTIME_OPTIONS","fetchWithAuth","supabaseKey","getAccessToken","HeadersConstructor","NodeFetchHeaders","input","AUTO_REFRESH_TICK_DURATION_MS","EXPIRY_MARGIN_MS","AUTO_REFRESH_TICK_THRESHOLD","API_VERSION_HEADER_NAME","API_VERSIONS","isBrowser","localStorageWriteTests","tested","writable","supportsLocalStorage","globalThis","localStorage","randomKey","random","setItem","removeItem","setItemAsync","storage","getItemAsync","getItem","removeItemAsync","Deferred$1","Deferred","promise","promiseConstructor","rej","decodeJWTPayload","parts","base64Url","chr1","chr2","chr3","enc1","enc2","enc3","enc4","base64","fromCharCode","decodeBase64URL","dec2hex","dec","substr","generatePKCEChallenge","verifier","crypto","subtle","TextEncoder","hashed","randomString","encodedData","hash","digest","bytes","Uint8Array","sha256","getCodeChallengeAndMethod","storageKey","isPasswordRecovery","codeVerifier","array","Uint32Array","charSet","charSetLen","getRandomValues","generatePKCEVerifier","storedCodeVerifier","codeChallenge","API_VERSION_REGEX","AuthError","__isAuthError","isAuthError","AuthApiError","AuthUnknownError","CustomAuthError","AuthSessionMissingError","AuthInvalidTokenResponseError","AuthInvalidCredentialsError","AuthImplicitGrantRedirectError","AuthPKCEGrantCodeExchangeError","AuthRetryableFetchError","isAuthRetryableFetchError","AuthWeakPasswordError","reasons","__rest","p","getOwnPropertySymbols","propertyIsEnumerable","NETWORK_ERROR_CODES","maybeResponse","errorCode","responseAPIVersion","apiVersion","parseResponseAPIVersion","getTime","error_code","weak_password","_request","jwt","qs","redirectTo","requestParams","xform","_sessionResponse","session","refresh_token","expires_in","hasSession","expires_at","round","user","_sessionResponsePassword","_userResponse","_ssoResponse","_generateLinkResponse","action_link","email_otp","hashed_token","redirect_to","verification_type","rest","properties","_noResolveJsonResponse","GoTrueAdminApi","mfa","listFactors","_listFactors","deleteFactor","_deleteFactor","signOut","scope","inviteUserByEmail","email","generateLink","new_email","newEmail","createUser","listUsers","_g","pagination","nextPage","lastPage","total","page","per_page","perPage","users","links","substring","getUserById","uid","updateUserById","deleteUser","shouldSoftDelete","should_soft_delete","userId","factors","localStorageAdapter","memoryLocalStorageAdapter","store","internals","LockAcquireTimeoutError","isAcquireTimeout","NavigatorLockAcquireTimeoutError","navigatorLock","acquireTimeout","abortController","locks","request","mode","ifAvailable","lock","configurable","__magic__","polyfillGlobalThis","DEFAULT_OPTIONS","debug","hasCustomAuthorizationHeader","lockNoOp","GoTrueClient","memoryStorage","stateChangeEmitters","autoRefreshTicker","visibilityChangedCallback","refreshingDeferred","initializePromise","suppressGetSessionWarning","lockAcquired","pendingInLock","broadcastChannel","instanceID","nextInstanceID","logDebugMessages","admin","verify","_verify","enroll","_enroll","unenroll","_unenroll","challenge","_challenge","challengeAndVerify","_challengeAndVerify","getAuthenticatorAssuranceLevel","_getAuthenticatorAssuranceLevel","BroadcastChannel","addEventListener","_debug","_notifyAllSubscribers","initialize","toISOString","_acquireLock","_initialize","href","parseParametersFromURL","location","callbackUrlType","_isImplicitGrantCallback","_isPKCECallback","_getSessionFromURL","isAuthImplicitGrantRedirectError","_removeSession","redirectType","_saveSession","_recoverAndRefresh","_handleVisibilityChange","signInAnonymously","credentials","gotrue_meta_security","captcha_token","captchaToken","signUp","password","codeChallengeMethod","emailRedirectTo","code_challenge","code_challenge_method","phone","signInWithPassword","weakPassword","signInWithOAuth","_handleProviderSignIn","provider","scopes","queryParams","skipBrowserRedirect","exchangeCodeForSession","authCode","_exchangeCodeForSession","storageItem","auth_code","code_verifier","signInWithIdToken","nonce","id_token","signInWithOtp","create_user","shouldCreateUser","messageId","message_id","verifyOtp","signInWithSSO","provider_id","providerId","domain","skip_http_redirect","reauthenticate","_reauthenticate","_useSession","sessionError","endpoint","getSession","last","waitOn","__loadSession","currentSession","maybeSession","_isValidSession","hasExpired","isServer","suppressWarning","Proxy","target","prop","receiver","Reflect","_callRefreshToken","getUser","_getUser","isAuthSessionMissingError","updateUser","_updateUser","sessionData","userError","_decodeJWT","setSession","_setSession","timeNow","expiresAt","refreshedSession","token_type","refreshSession","_refreshSession","delete","history","replaceState","provider_token","provider_refresh_token","actuallyExpiresIn","issuedAt","currentStorageContent","_signOut","isAuthApiError","onAuthStateChange","subscription","_emitInitialSession","resetPasswordForEmail","getUserIdentities","identities","linkIdentity","_getUrlForProvider","unlinkIdentity","identity","identity_id","_refreshAccessToken","refreshToken","debugName","startedAt","attempt","accept","sleep","pow","isRetryable","nextBackOffInterval","Infinity","expiresWithMargin","promises","_removeVisibilityChangedCallback","removeEventListener","_startAutoRefresh","_stopAutoRefresh","ticker","_autoRefreshTokenTick","unref","unrefTimer","startAutoRefresh","stopAutoRefresh","expiresInTicks","_onVisibilityChanged","calledFromInitialize","methodName","visibilityState","urlParams","encodeURIComponent","flowParams","factorId","friendly_name","friendlyName","factor_type","factorType","issuer","totp","qr_code","challenge_id","challengeId","challengeData","challengeError","factor","currentLevel","nextLevel","currentAuthenticationMethods","aal","amr","AuthClient","SupabaseAuthClient","SupabaseClient","supabaseUrl","_supabaseUrl","realtimeUrl","authUrl","storageUrl","functionsUrl","defaultStorageKey","hostname","defaults","db","dbOptions","auth","authOptions","realtime","realtimeOptions","globalOptions","applySettingDefaults","_initSupabaseAuthClient","_getAccessToken","_initRealtimeClient","_listenForAuthEvents","functions","SupabaseStorageClient","authHeaders","_handleTokenChanged","changedAccessToken","supabaseInstance","createClient","httpOptions","attempts","getBackoffDelay","min","backoffDelay","supabase","MoodService","apiUrl","setUserId","getUserId","storedUserId","getAuthToken","getAllEntries","authToken","addEntry","entry","requestBody","score","note","addEntryForDate","getEntriesForLastDays","days","endDate","startDate","setDate","getDate","formatDate","getFullYear","getMonth","padStart","startDateStr","endDateStr","getAverageMoodForDay","dateStr","average","updateEntry","deleteEntry","entryId","hasConcerningPattern","HealthRecordService","createRecord","getRecords","canGenerateRecord","canGenerate","resetRecord","recordId","updatedRecord","stringToByteArray$1","out","charCodeAt","byteToCharMap_","charToByteMap_","byteToCharMapWebSafe_","charToByteMapWebSafe_","ENCODED_VALS_BASE","ENCODED_VALS","ENCODED_VALS_WEBSAFE","HAS_NATIVE_SUPPORT","encodeByteArray","webSafe","init_","byteToCharMap","output","byte1","haveByte2","byte2","haveByte3","byte3","outByte1","outByte2","outByte3","outByte4","encodeString","decodeString","pos","c1","c2","u","c3","byteArrayToString","decodeStringToByteArray","charToByteMap","byte4","DecodeBase64StringError","arguments","base64urlEncodeWithoutPadding","utf8Bytes","base64Encode","getDefaultsFromGlobal","__FIREBASE_DEFAULTS__","getDefaultsFromCookie","cookie","decoded","base64Decode","getDefaults","process","defaultsJsonString","define_process_env_default","getDefaultsFromEnvVariable","getDefaultAppConfig","wrapCallback","isIndexedDBAvailable","indexedDB","validateIndexedDBOpenable","preExist","DB_CHECK_NAME","onsuccess","deleteDatabase","onupgradeneeded","FirebaseError","customData","setPrototypeOf","captureStackTrace","ErrorFactory","create","service","serviceName","fullCode","template","PATTERN","replaceTemplate","fullMessage","deepEqual","aKeys","bKeys","aProp","bProp","isObject","thing","getModularInstance","_delegate","instanceFactory","multipleInstances","serviceProps","instantiationMode","onInstanceCreated","setInstantiationMode","setMultipleInstances","setServiceProps","setInstanceCreatedCallback","DEFAULT_ENTRY_NAME","container","component","instancesDeferred","instancesOptions","onInitCallbacks","identifier","normalizedIdentifier","normalizeInstanceIdentifier","deferred","isInitialized","shouldAutoInitialize","getOrInitializeService","instanceIdentifier","getImmediate","optional","getComponent","setComponent","isComponentEager","instanceDeferred","clearInstance","services","INTERNAL","_delete","isComponentSet","getOptions","onInit","existingCallbacks","existingInstance","invokeOnInitCallbacks","callbacks","ComponentContainer","providers","addComponent","getProvider","addOrOverwriteComponent","getProviders","LogLevel","levelStringToEnum","DEBUG","VERBOSE","INFO","WARN","ERROR","silent","SILENT","defaultLogLevel","ConsoleMethod","defaultLogHandler","logType","logLevel","idbProxyableTypes","cursorAdvanceMethods","cursorRequestMap","WeakMap","transactionDoneMap","transactionStoreNamesMap","transformCache","reverseTransformCache","idbProxyTraps","IDBTransaction","objectStoreNames","objectStore","wrap","wrapFunction","IDBDatabase","transaction","IDBCursor","advance","continue","continuePrimaryKey","unwrap","storeNames","tx","sort","transformCachableValue","unlisten","complete","DOMException","cacheDonePromiseForTransaction","object","IDBObjectStore","IDBIndex","IDBRequest","success","promisifyRequest","newValue","openDB","blocked","upgrade","blocking","terminated","openPromise","oldVersion","newVersion","deleteDB","readMethods","writeMethods","cachedMethods","getMethod","targetFuncName","useIndex","isWrite","storeName","shift","oldTraps","PlatformLoggerServiceImpl","getPlatformInfoString","isVersionServiceProvider","library","logString","name$q","version$1","_logLevel","_logHandler","_userLogHandler","TypeError","setLogLevel","logHandler","userLogHandler","name$p","name$o","name$n","name$m","name$l","name$k","name$j","name$i","name$h","name$g","name$f","name$e","name$d","name$c","name$b","name$a","name$9","name$8","name$7","name$6","name$5","name$4","name$3","name$2","name$1","PLATFORM_LOG_STRING","name$3$1","name$1$1","name$2$1","name$r","_apps","_serverApps","_components","_addComponent","app","_registerComponent","componentName","serverApp","_getProvider","heartbeatController","triggerHeartbeat","ERROR_FACTORY","FirebaseAppImpl","_isDeleted","_options","_config","_name","_automaticDataCollectionEnabled","automaticDataCollectionEnabled","_container","checkDestroyed","isDeleted","appName","initializeApp","rawConfig","existingApp","newApp","registerVersion","libraryKeyOrName","variant","libraryMismatch","versionMismatch","warning","STORE_NAME","dbPromise","getDbPromise","createObjectStore","originalErrorMessage","writeHeartbeatsToIndexedDB","heartbeatObject","computeKey","idbGetError","appId","HeartbeatServiceImpl","_heartbeatsCache","_storage","HeartbeatStorageImpl","_heartbeatsCachePromise","read","agent","getUTCDateString","heartbeats","lastSentHeartbeatDate","singleDateHeartbeat","hbTimestamp","overwrite","getHeartbeatsHeader","heartbeatsToSend","unsentEntries","heartbeatsCache","maxSize","heartbeatEntry","hb","dates","countBytes","pop","extractHeartbeatsForHeader","headerString","_canUseIndexedDBPromise","runIndexedDBEnvironmentCheck","idbHeartbeatObject","readHeartbeatsFromIndexedDB","heartbeatsObject","existingHeartbeatsObject","PENDING_TIMEOUT_MS","PACKAGE_VERSION","INTERNAL_AUTH_VERSION","TOKEN_EXPIRATION_BUFFER","isServerError","getInstallationsEndpoint","projectId","extractAuthTokenInfoFromResponse","requestStatus","responseExpiresIn","creationTime","getErrorFromResponse","requestName","errorData","serverCode","serverMessage","serverStatus","getHeaders","Accept","getHeadersWithAuth","appConfig","getAuthorizationHeader","retryIfServerError","ms","VALID_FID_PATTERN","generateFid","fidByteArray","msCrypto","fid","b64String","getKey","fidChangeCallbacks","fidChanged","callFidChangeCallbacks","getBroadcastChannel","broadcastFidChange","OBJECT_STORE_NAME","oldValue","updateFn","getInstallationEntry","installations","registrationPromise","installationEntry","oldEntry","registrationStatus","clearTimedOutRequest","updateOrCreateInstallationEntry","entryWithPromise","onLine","inProgressEntry","registrationTime","registeredInstallationEntry","heartbeatServiceProvider","heartbeatService","heartbeatsHeader","authVersion","sdkVersion","responseValue","createInstallationRequest","registerInstallation","waitUntilFidRegistration","triggerRegistrationIfNecessary","updateInstallationRequest","generateAuthTokenRequest","getGenerateAuthTokenEndpoint","installation","refreshAuthToken","forceRefresh","tokenPromise","isEntryRegistered","oldAuthToken","isAuthTokenExpired","isAuthTokenValid","updateAuthTokenRequest","waitUntilAuthTokenRequest","inProgressAuthToken","requestTime","makeAuthTokenRequestInProgressEntry","updatedInstallationEntry","fetchAuthTokenFromServer","getToken","installationsImpl","completeInstallationRegistration","getMissingValueError","valueName","INSTALLATIONS_NAME","internalFactory","getId","configKeys","keyName","extractAppConfig","DEFAULT_VAPID_KEY","CONSOLE_CAMPAIGN_ID","MessageType$1","MessageType","arrayToBase64","uint8Array","base64ToArray","base64String","repeat","rawData","outputArray","OLD_DB_NAME","OLD_OBJECT_STORE_NAME","upgradeDb","dbGet","firebaseDependencies","tokenDetails","oldTokenDetails","senderId","dbNames","databases","upgradeTransaction","clear","oldDetails","p256dh","fcmToken","createTime","subscriptionOptions","swScope","vapidKey","checkTokenDetails","migrateOldDatabase","dbSet","getEndpoint","getBody","web","applicationPubKey","getTokenInternal","messaging","pushSubscription","swRegistration","pushManager","getSubscription","userVisibleOnly","applicationServerKey","getPushSubscription","currentOptions","isVapidKeyEqual","isEndpointEqual","isAuthEqual","isP256dhEqual","isTokenValid","updatedToken","updateOptions","responseData","errorInfo","requestUpdateToken","updatedTokenDetails","updateToken","unsubscribeOptions","requestDeleteToken","getNewToken","subscribeOptions","requestGetToken","externalizePayload","internalPayload","collapseKey","collapse_key","fcmMessageId","messagePayloadInternal","notification","image","icon","propagateNotificationPayload","propagateDataPayload","fcmOptions","click_action","analyticsLabel","analytics_label","propagateFcmOptions","MessagingService","analyticsProvider","deliveryMetricsExportedToBigQueryEnabled","onBackgroundMessageHandler","onMessageHandler","logEvents","isLogServiceStarted","messagingSenderId","updateSwReg","serviceWorker","register","browserErrorMessage","registerDefaultSw","ServiceWorkerRegistration","getToken$1","Notification","permission","requestPermission","updateVapidKey","serviceWorkerRegistration","logToScion","messageType","NOTIFICATION_CLICKED","PUSH_RECEIVED","getEventType","logEvent","message_name","message_time","message_device_time","messageEventListener","isFirebaseMessaging","dataPayload","WindowMessagingFactory","WindowMessagingInternalFactory","isWindowSupported","cookieEnabled","PushSubscription","getMessagingInWindow","getApp","isSupported","FirebaseNotificationService","messagingInstance","tokenCheckInterval","getMessagingInstance","getMessaging","hasFCMToken","waitForActiveServiceWorker","maxAttempts","delayMs","registration","getRegistration","waiting","currentReg","active","savedToken","currentToken","handlePermissionChange","previousPermission","currentPermission","hashEmail","normalizedEmail","textToHash","hashBuffer","hashHex","abs","findHashedEmail","getCurrentSession","startsWith","endsWith","attemptLogin","emailUsed","handleLoginWithMigration","hashedEmail","loginResult","loginUser","loginError","migratedUser","originalEmail","updateData","updateError","is_anonymous","anonymized_at","email_anonymized","migrated_from_unhashed","migration_date","migrateUserToHashedEmail","SupabaseUserPlanRepository","getUserActivePlan","planId","plan_id","SupabaseGateway.getUserActivePlan","UserPlanService","userPlanRepository","LocalStorageCache","cacheKey","ttlMs","save","cacheItem","cachedData","parsedData","isValid","WeeklySummaryService","isPollingActive","cache","moodEntriesCache","CACHE_KEY","MOOD_ENTRIES_CACHE_KEY","generateEntriesSignature","sortedEntries","shouldInvalidateCache","currentEntries","previousEntries","invalidateCacheIfNewerEntry","entryDate","getWeeklySummary","requestId","pollUrl","pollForResults","summary","delay","lastError","fullPollUrl","errorMessage","OnBoardingService$1","getOnBoardingStatus","hasSeenOnBoarding","completedSteps","lastUpdated","updateOnBoardingStatus","currentStatus","updatedStatus","lastCompletedStep","markOnBoardingAsSeen","completeStep","stepId","isStepCompleted","isCompleted","getUserData","updateUserData","currentData","fieldsToRemove","combinedData","field","isRequiredOnBoardingComplete","isComplete","getPendingSteps","pendingSteps","convertCurrentMoodToMoodEntry","userData","currentMood","moodNote","updatedAt","resetOnBoarding","ChatAIService","requestTimeout","pollingInterval","maxPollingAttempts","sendMessage","sessionId","createNewSession","extraAttempts","answer","timeoutId","requestData","newSession","chatRequest","pollForResponse","pollResponse","getSessions","getSessionMessages","analyzeMood","searchMoodHistory","getSuggestions","ServiceLocator","notificationService","moodService","healthRecordService","userPlanService","weeklySummaryService","onBoardingService","chatAIService","authDomain","storageBucket","OnBoardingService","getInstance","getMoodService","getHealthRecordService","getNotificationService","getWeeklySummaryService","getUserPlanService","getOnBoardingService","getChatAIService","setMoodRepository","setHealthRecordRepository","setNotificationService","setUserPlanRepository","repository","updateUserId","getServiceLocator","AuthContext","useAuth","useContext","AuthProvider","setUser","useState","loading","setLoading","currentPlan","setCurrentPlan","isLoading","setIsLoading","setError","updateAuthState","useEffect","mounted","getInitialSession","authListener","hasAccessToContent","requiredPlan","planHierarchy","basic","essential","premium","login","getServiceLocator2","serviceLocator","logout","resetPassword","updateUserProfile","refreshUser","activePlan","newPlan","planError","jsx","isScriptLoaded","GoogleAdsense","client","slot","responsive","className","adRef","useRef","isAdPushed","adsbygoogle","src","crossOrigin","pushAd","adsenseConfig","header","footer","inContent","createStoreImpl","createState","listeners","setState","partial","nextState","previousState","listener","getState","api","getInitialState","initialState","arg","createImpl","createStore","useBoundStore","selector","useSyncExternalStore","useDebugValue","useStore","useOnBoardingStore","isModalOpen","isRequired","startWithPendingSteps","currentStep","setModalOpen","isOpen","setRequired","setStartWithPendingSteps","startWithPending","setCurrentStep","resetState","formatHashedEmail","ChatContext","initialMessage","currentSessionId","isNewSession","openChat","closeChat","startNewSession","setCurrentSession","setInitialMessage","isOnChatPage","useChat","ChatProvider","setIsOpen","setCurrentSessionId","setIsNewSession","useCallback","initialMsg","pathname","nameRe","nameReJsx","emptyOptions","re","empty","Schema","normal","space","merge","definitions","definition","normalize","Info","booleanish","boolean","commaOrSpaceSeparated","commaSeparated","defined","mustUseProperty","number","overloadedBoolean","spaceSeparated","powers","increment","checks","types","DefinedInfo","mask","mark","check","normals","aria","ariaActiveDescendant","ariaAtomic","ariaAutoComplete","ariaBusy","ariaChecked","ariaColCount","ariaColIndex","ariaColSpan","ariaControls","ariaCurrent","ariaDescribedBy","ariaDetails","ariaDisabled","ariaDropEffect","ariaErrorMessage","ariaExpanded","ariaFlowTo","ariaGrabbed","ariaHasPopup","ariaHidden","ariaInvalid","ariaKeyShortcuts","ariaLabel","ariaLabelledBy","ariaLevel","ariaLive","ariaModal","ariaMultiLine","ariaMultiSelectable","ariaOrientation","ariaOwns","ariaPlaceholder","ariaPosInSet","ariaPressed","ariaReadOnly","ariaRelevant","ariaRequired","ariaRoleDescription","ariaRowCount","ariaRowIndex","ariaRowSpan","ariaSelected","ariaSetSize","ariaSort","ariaValueMax","ariaValueMin","ariaValueNow","ariaValueText","role","caseSensitiveTransform","caseInsensitiveTransform","html","acceptcharset","classname","htmlfor","httpequiv","abbr","acceptCharset","accessKey","action","allow","allowFullScreen","allowPaymentRequest","allowUserMedia","alt","as","autoCapitalize","autoComplete","autoFocus","autoPlay","capture","checked","cite","cols","colSpan","contentEditable","controls","controlsList","coords","dateTime","decoding","dir","dirName","disabled","draggable","encType","enterKeyHint","fetchPriority","form","formAction","formEncType","formMethod","formNoValidate","formTarget","hidden","high","hrefLang","htmlFor","httpEquiv","imageSizes","imageSrcSet","inert","inputMode","integrity","isMap","itemId","itemProp","itemRef","itemScope","itemType","label","lang","language","loop","low","manifest","max","maxLength","media","minLength","multiple","muted","noModule","noValidate","onAbort","onAfterPrint","onAuxClick","onBeforeMatch","onBeforePrint","onBeforeToggle","onBeforeUnload","onBlur","onCancel","onCanPlay","onCanPlayThrough","onChange","onClick","onContextLost","onContextMenu","onContextRestored","onCopy","onCueChange","onCut","onDblClick","onDrag","onDragEnd","onDragEnter","onDragExit","onDragLeave","onDragOver","onDragStart","onDrop","onDurationChange","onEmptied","onEnded","onError","onFocus","onFormData","onHashChange","onInput","onInvalid","onKeyDown","onKeyPress","onKeyUp","onLanguageChange","onLoad","onLoadedData","onLoadedMetadata","onLoadEnd","onLoadStart","onMessage","onMessageError","onMouseDown","onMouseEnter","onMouseLeave","onMouseMove","onMouseOut","onMouseOver","onMouseUp","onOffline","onOnline","onPageHide","onPageShow","onPaste","onPause","onPlay","onPlaying","onPopState","onProgress","onRateChange","onRejectionHandled","onReset","onResize","onScroll","onScrollEnd","onSecurityPolicyViolation","onSeeked","onSeeking","onSelect","onSlotChange","onStalled","onStorage","onSubmit","onSuspend","onTimeUpdate","onToggle","onUnhandledRejection","onUnload","onVolumeChange","onWaiting","onWheel","optimum","ping","placeholder","playsInline","popover","popoverTarget","popoverTargetAction","poster","preload","readOnly","referrerPolicy","required","reversed","rows","rowSpan","sandbox","scoped","seamless","selected","shadowRootClonable","shadowRootDelegatesFocus","shadowRootMode","shape","sizes","span","spellCheck","srcDoc","srcLang","srcSet","start","tabIndex","translate","typeMustMatch","useMap","writingSuggestions","align","aLink","archive","axis","background","bgColor","border","borderColor","bottomMargin","cellPadding","cellSpacing","char","charOff","classId","codeBase","codeType","color","compact","declare","face","frame","frameBorder","hSpace","leftMargin","longDesc","lowSrc","marginHeight","marginWidth","noResize","noHref","noShade","noWrap","profile","prompt","rev","rightMargin","rules","scheme","scrolling","standby","topMargin","valueType","vAlign","vLink","vSpace","allowTransparency","autoCorrect","autoSave","disablePictureInPicture","disableRemotePlayback","results","security","unselectable","svg","accentHeight","alignmentBaseline","arabicForm","baselineShift","capHeight","clipPath","clipRule","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","dominantBaseline","enableBackground","fillOpacity","fillRule","floodColor","floodOpacity","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontStyle","fontVariant","fontWeight","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","horizAdvX","horizOriginX","horizOriginY","imageRendering","letterSpacing","lightingColor","markerEnd","markerMid","markerStart","navDown","navDownLeft","navDownRight","navLeft","navNext","navPrev","navRight","navUp","navUpLeft","navUpRight","onActivate","onBegin","onEnd","onFocusIn","onFocusOut","onMouseWheel","onRepeat","onShow","onZoom","overlinePosition","overlineThickness","paintOrder","panose1","pointerEvents","renderingIntent","shapeRendering","stopColor","stopOpacity","strikethroughPosition","strikethroughThickness","strokeDashArray","strokeDashOffset","strokeLineCap","strokeLineJoin","strokeMiterLimit","strokeOpacity","strokeWidth","textAnchor","textDecoration","textRendering","transformOrigin","typeOf","underlinePosition","underlineThickness","unicodeBidi","unicodeRange","unitsPerEm","vAlphabetic","vHanging","vIdeographic","vMathematical","vectorEffect","vertAdvY","vertOriginX","vertOriginY","wordSpacing","writingMode","xHeight","playbackOrder","timelineBegin","about","accumulate","additive","alphabetic","amplitude","ascent","attributeName","attributeType","azimuth","bandwidth","baseFrequency","baseProfile","bbox","begin","bias","by","calcMode","clip","clipPathUnits","contentScriptType","contentStyleType","cursor","cx","cy","defaultAction","descent","diffuseConstant","direction","display","dur","divisor","dx","dy","edgeMode","editable","elevation","end","exponent","externalResourcesRequired","fill","filterRes","filterUnits","focusable","focusHighlight","fr","fx","fy","g1","g2","glyphRef","gradientTransform","gradientUnits","handler","hanging","hatchContentUnits","hatchUnits","ideographic","initialVisibility","in","in2","intercept","k1","k2","k3","k4","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","kerning","lengthAdjust","limitingConeAngle","local","markerHeight","markerUnits","markerWidth","maskContentUnits","maskUnits","mathematical","mediaCharacterEncoding","mediaContentEncodings","mediaSize","mediaTime","numOctaves","observer","opacity","orient","orientation","origin","overflow","overlay","pathLength","patternContentUnits","patternTransform","patternUnits","phase","pitch","points","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","propagate","radius","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","requiredFonts","requiredFormats","resource","restart","rotate","rx","ry","scale","seed","side","slope","snapshotTime","specularConstant","specularExponent","spreadMethod","spacing","startOffset","stdDeviation","stemh","stemv","stitchTiles","stroke","surfaceScale","syncBehavior","syncBehaviorDefault","syncMaster","syncTolerance","syncToleranceDefault","systemLanguage","tableValues","targetX","targetY","textLength","transformBehavior","u1","u2","unicode","viewBox","viewTarget","visibility","widths","x1","x2","xChannelSelector","y","y1","y2","yChannelSelector","z","zoomAndPan","xlink","xLinkActuate","xLinkArcRole","xLinkHref","xLinkRole","xLinkShow","xLinkTitle","xLinkType","xmlns","xmlnsxlink","xmlnsXLink","xml","xmlBase","xmlLang","xmlSpace","hastToReact","cap","dash","valid","kebab","$0","camelcase","htmlBase","svgBase","COMMENT_REGEX","NEWLINE_REGEX","WHITESPACE_REGEX","PROPERTY_REGEX","COLON_REGEX","VALUE_REGEX","SEMICOLON_REGEX","TRIM_REGEX","EMPTY_STRING","iterator","styleObject","declarations","inline_style_parser_1","hasIterator","declaration","lineno","updatePosition","lines","lastIndexOf","position","line","node","Position","whitespace","filename","exec","comments","comment","decl","decls","styleToObject","StyleToObject","pointEnd","point","pointStart","stringifyPosition","VFileMessage","causeOrReason","optionsOrParentOrPlace","legacyCause","place","ancestors","cause","ruleId","parent","fatal","file","actual","expected","own","emptyMap","dashSomething","tableElements","tableCellElement","docs","toJsxRuntime","tree","Fragment","filePath","development","jsxDEV","isStaticChildren","columnNumber","fileName","lineNumber","developmentCreate","jsxs","productionCreate","components","elementAttributeNameCase","evaluater","createEvaluater","ignoreInvalidStyle","passKeys","passNode","stylePropertyNameCase","tableCellAlignToStyle","one","parentSchema","findComponentFromName","alignValue","createProperty","createElementProps","createChildren","addNode","addChildren","element","estree","expression","evaluateExpression","crashEstree","mdxExpression","objectExpression","argument","createJsxElementProps","mdxJsxElement","evaluateProgram","mdxEsm","root","countsByName","Type","dashes","padRight","padLeft","commas","replacer","toCamel","parseStyle","domCasing","cssCasing","transformStyleToCssCasing","transformStylesToCssCasing","allowExpression","identifiers","isIdentifierName","computed","toDash","$1","urlAttributes","includeImageAlt","includeHtml","decodeNamedCharacterReference","characterReference","textContent","items","chunkStart","syntaxExtension","extension","hook","left","right","constructs","existing","before","decodeNumericCharacterReference","fromCodePoint","normalizeIdentifier","asciiAlpha","regexCheck","asciiAlphanumeric","asciiAtext","asciiControl","asciiDigit","asciiHexDigit","asciiPunctuation","markdownLineEnding","markdownLineEndingOrSpace","markdownSpace","unicodePunctuation","unicodeWhitespace","regex","normalizeUri","skip","factorySpace","effects","POSITIVE_INFINITY","enter","consume","exit","tokenize","contentStart","parser","contentInitial","lineStart","previous","childFlow","childToken","lineStartOffset","continued","containerState","continuation","documentContinue","checkNewContainers","_closeFlow","closeFlow","indexBeforeExits","indexBeforeFlow","exitContainers","documentContinued","currentConstruct","concrete","flowStart","interrupt","_gfmTableDynamicInterruptHack","containerConstruct","thereIsANewContainer","thereIsNoNewContainer","lazy","containerContinue","flow","_tokenizer","flowContinue","writeToChild","endOfFile","stream","sliceStream","defineSkip","write","seen","nok","disable","null","classifyCharacter","resolveAll","called","attention","group","openingSequence","closingSequence","use","nextEvents","_close","_open","sliceSerialize","movePoint","insideSpan","attentionMarkers","marker","inside","after","_bufferIndex","autolink","schemeOrEmailAtext","emailAtext","schemeInsideOrEmailAtext","urlInside","emailAtSignOrDot","emailLabel","emailValue","blankLine","blockQuote","contBefore","characterEscape","nonLazyContinuation","codeFenced","closeStart","startBefore","beforeSequenceClose","sequenceClose","sizeOpen","sequenceCloseAfter","initialPrefix","tail","sequenceOpen","beforeSequenceOpen","infoBefore","atNonLazyBreak","metaBefore","contentBefore","beforeContentChunk","contentChunk","codeIndented","afterPrefix","atBreak","furtherStart","codeText","tailExitIndex","headEnterIndex","between","SpliceBuffer","initial","RangeError","setCursor","stop","deleteCount","trunc","removed","chunkedPush","pushMany","unshiftMany","n","subtokenize","eventsArray","jumps","lineIndex","otherIndex","otherEvent","subevents","more","_isInFirstContentOfListItem","subcontent","eventIndex","startPosition","startPositions","tokenizer","_contentTypeTextTrailing","childEvents","gaps","adjust","breaks","_gfmTasklistFirstContentOfListItem","chunkInside","contentEnd","continuationConstruct","contentContinue","prefixed","factoryDestination","literalType","literalMarkerType","rawType","stringType","balance","enclosedBefore","raw","enclosed","enclosedEscape","rawEscape","factoryLabel","markerType","labelInside","labelEscape","factoryTitle","escape","factoryWhitespace","labelAfter","markerAfter","destinationBefore","destinationAfter","titleBefore","afterWhitespace","beforeMarker","titleAfter","titleAfterOptionalWhitespace","hardBreakEscape","headingAtx","sequenceFurther","htmlBlockNames","htmlRawNames","htmlFlow","resolveTo","closingTag","markerB","declarationOpen","tagCloseStart","continuationDeclarationInside","commentOpenInside","cdataOpenInside","slash","basicSelfClosing","completeClosingTagAfter","completeAttributeNameBefore","completeEnd","completeAttributeName","completeAttributeNameAfter","completeAttributeValueBefore","completeAttributeValueQuoted","completeAttributeValueUnquoted","completeAttributeValueQuotedAfter","completeAfter","continuationCommentInside","continuationRawTagOpen","continuationClose","continuationCdataInside","continuationStart","blankLineBefore","continuationAfter","nonLazyContinuationStart","continuationStartNonLazy","continuationBefore","continuationRawEndTag","htmlText","returnState","instruction","tagOpen","commentEnd","commentClose","lineEndingBefore","cdata","cdataClose","cdataEnd","instructionClose","tagClose","tagCloseBetween","tagOpenBetween","tagOpenAttributeName","tagOpenAttributeNameAfter","tagOpenAttributeValueBefore","tagOpenAttributeValueQuoted","tagOpenAttributeValueUnquoted","tagOpenAttributeValueQuotedAfter","lineEndingAfter","lineEndingAfterPrefix","labelEnd","newEvents","_inactive","_balanced","labelStart","labelEndNok","resourceConstruct","labelEndOk","referenceFullConstruct","referenceNotFull","referenceCollapsedConstruct","resourceBefore","resourceOpen","resourceEnd","resourceDestinationAfter","resourceDestinationMissing","resourceBetween","resourceTitleAfter","referenceFullAfter","referenceFullMissing","referenceCollapsedOpen","labelStartImage","labelStartLink","lineEnding","thematicBreak","sequence","onBlank","notBlank","furtherBlankLines","initialBlankLine","notInCurrentItem","indentConstruct","initialSize","atMarker","listItemPrefixWhitespaceConstruct","endOfPrefix","otherPrefix","setextUnderline","heading","paragraph","flowInitial","afterConstruct","resolver","createResolver","initializeFactory","resolveAllLineSuffixes","notText","extraResolver","chunks","tabs","bufferIndex","chunk","_index","resolveText","createTokenizer","columnStart","resolveAllConstructs","constructFactory","construct","addResult","onsuccessfulcheck","accountForPotentialSkip","fields","expandTabs","atTab","serializeChunks","main","startIndex","startBufferIndex","endIndex","endBufferIndex","sliceChunks","chunkIndex","go","restore","onreturn","bogusState","listOfConstructs","constructIndex","handleListOfConstructs","handleMapOfConstructs","handleConstruct","startPoint","startPrevious","startCurrentConstruct","startEventsIndex","startStack","extensions","combineExtensions","defaultConstructs","search","characterEscapeOrReference","$2","hex","fromMarkdown","encoding","transforms","canContainEols","opener","autolinkProtocol","onenterdata","autolinkEmail","atxHeading","codeFlow","codeFencedFenceInfo","codeFencedFenceMeta","codeTextData","codeFlowValue","definitionDestinationString","definitionLabelString","definitionTitleString","emphasis","hardBreak","hardBreakTrailing","htmlFlowData","htmlTextData","listItem","listItemValue","onenterlistitemvalue","listOrdered","onenterlistordered","listUnordered","reference","onenterreference","referenceString","resourceDestinationString","resourceTitleString","setextHeading","strong","closer","atxHeadingSequence","onexitatxheadingsequence","onexitautolinkemail","onexitautolinkprotocol","characterEscapeValue","onexitdata","characterReferenceMarkerHexadecimal","onexitcharacterreferencemarker","characterReferenceMarkerNumeric","characterReferenceValue","onexitcharacterreferencevalue","onexitcharacterreference","onexitcodefenced","codeFencedFence","onexitcodefencedfence","onexitcodefencedfenceinfo","onexitcodefencedfencemeta","onexitcodeindented","onexitcodetext","onexitdefinitiondestinationstring","onexitdefinitionlabelstring","onexitdefinitiontitlestring","onexithardbreak","onexithtmlflow","onexithtmltext","onexitimage","onexitlabel","labelText","onexitlabeltext","onexitlineending","onexitlink","onexitreferencestring","onexitresourcedestinationstring","onexitresourcetitlestring","onexitresource","onexitsetextheading","setextHeadingLineSequence","onexitsetextheadinglinesequence","setextHeadingText","onexitsetextheadingtext","configure","mdastExtensions","compile","tokenStack","resume","listStack","prepareList","defaultOnError","firstBlankLineIndex","containerBalance","listSpread","tailIndex","tailEvent","_spread","and","errorHandler","onExitError","expectingFirstListItemValue","flowCodeInside","depth","setextHeadingSlurpLineEnding","codePointAt","siblings","atHardBreak","inReference","referenceType","ancestor","fragment","characterReferenceType","ordered","spread","compiler","postprocess","atCarriageReturn","endPosition","lastIndex","ceil","preprocess","combined","remarkParse","doc","revert","subtype","suffix","contents","listItemLoose","trimLines","trimLine","handlers","blockquote","patch","applyData","break","footnoteReference","clobberPrefix","safeId","footnoteOrder","counter","reuseCounter","footnoteCounts","dataFootnoteRef","sup","allowDangerousHtml","imageReference","definitionById","inlineCode","linkReference","loose","listLoose","firstRow","tableContent","tableCell","tableRow","cellIndex","cells","cell","toml","ignore","yaml","footnoteDefinition","env","deserialize","serialized","$","unpair","BigInt","deserializer","EMPTY","asString","shouldSkip","TYPE","serialize","lossy","strict","pair","structuredClone$1","structuredClone","any","defaultFootnoteBackContent","rereferenceIndex","defaultFootnoteBackLabel","referenceIndex","convert","castFactory","tests","anyFactory","checkAsRecord","nodeAsRecord","propsFactory","typeFactory","testFunction","looksLikeANode","CONTINUE","EXIT","visitParents","visitor","factory","parents","visit","subresult","grandparents","toResult","nodeAsParent","testOrVisitor","visitorOrReverse","maybeReverse","hName","hChildren","hProperties","defaultUnknownHandler","nodes","trimMarkdownSpaceStart","toHast","footnoteById","defaultHandlers","handle","passThrough","shallow","unknownHandler","foot","footnoteBackContent","footnoteBackLabel","footnoteLabel","footnoteLabelTagName","footnoteLabelProperties","listItems","backReferences","counts","dataFootnoteBackref","tailTail","dataFootnotes","remarkRehype","destination","hastTree","run","bail","hasOwn","toStr","gOPD","getOwnPropertyDescriptor","isPlainObject","hasOwnConstructor","hasIsPrototypeOf","setProperty","enumerable","getProperty","extend","copyIsArray","clone","deep","getPrototypeOf","Symbol","toStringTag","trough","fns","pipeline","middlewareIndex","middleware","wrapped","fnExpectsCallback","middelware","minpath","basename","extname","assertPath","seenNonSlash","firstNonSlashEnd","extnameIndex","dirname","unmatchedSlash","startPart","startDot","preDotState","segments","absolute","allowAboveRoot","lastSlashIndex","lastSegmentLength","lastSlash","dots","normalizeString","sep","minproc","cwd","isUrl","fileUrlOrPath","protocol","urlToPath","third","decodeURIComponent","getPathFromURLPosix","VFile","isUint8Array","stored","assertNonEmpty","assertPart","stem","fail","part","CallableInstance","proto","Processor","Compiler","Parser","attachers","freezeIndex","frozen","namespace","transformers","attacher","assertUnfrozen","freeze","transformer","realFile","vfile","assertParser","assertCompiler","executor","parseTree","realDone","compileTree","compileResult","processSync","assertDone","assertNode","outputTree","resultingTree","runSync","addPlugin","addList","addPreset","plugin","plugins","entryIndex","primary","currentPrimary","isPlainObj","unified","asyncName","looksLikeAVFile","emptyPlugins","emptyRemarkRehypeOptions","safeProtocol","deprecations","Markdown","processor","rehypePlugins","remarkPlugins","remarkRehypeOptions","createProcessor","createFile","allowedElements","allowElement","disallowedElements","skipHtml","unwrapDisallowed","urlTransform","defaultUrlTransform","deprecation","colon","questionMark","numberSign","ChatWidget","fullscreen","useLocation","navigate","useNavigate","isOnChatPageRoute","isFullscreen","isMinimized","setIsMinimized","setMessages","isUser","inputValue","setInputValue","isLoadingPreviousMessages","setIsLoadingPreviousMessages","messagesEndRef","inputRef","chatMessagesRef","isBotTyping","setIsBotTyping","scrollHeight","scrollIntoView","behavior","focus","loadSessionMessages","getChatSessionMessages","formattedMessages","isHighlighted","isThinking","handleSendMessage","userMessage","prev","thinkingMessageId","shouldCreateNewSession","sendChatMessage","handleNewSession","positionClass","Brain","ExternalLink","Plus","Maximize2","Minimize2","X","animationDelay","ReactMarkdown","adjustTextareaHeight","shiftKey","preventDefault","Send","Layout","showRegisterOptions","setShowRegisterOptions","showMoreOptions","setShowMoreOptions","isOnBoardingActive","handleClickOutside","isActive","shouldShowNavigation","shouldShowBottomNavigation","mainContainerClass","Link","Home","BarChart2","BookOpen","MessageSquare","stopPropagation","PlusCircle","Calendar","User","LogOut","textAlign","MoreHorizontal","formatDistanceLocale","lessThanXSeconds","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatLong","buildFormatLongFn","formats","full","long","medium","short","defaultWidth","formatRelativeLocale","lastWeek","weekday","getDay","yesterday","today","tomorrow","nextWeek","localize","ordinalNumber","dirtyNumber","unit","era","buildLocalizeFn","narrow","abbreviated","wide","quarter","argumentCallback","month","day","dayPeriod","am","pm","midnight","noon","morning","afternoon","evening","night","formattingValues","defaultFormattingWidth","buildMatchPatternFn","matchPattern","parsePattern","valueCallback","buildMatchFn","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","ptBR","formatDistance","tokenValue","addSuffix","comparison","formatRelative","_baseDate","weekStartsOn","firstWeekContainsDate","getMoodEntries","addMoodEntry","addMoodEntryForDate","getHealthRecords","getMoodEmoji","getMoodText","getMoodColor","colors","getWeeklyChartData","providedEntries","labels","backgroundColors","hasDataForDay","subDays","formattedDate","locale","dayStart","setHours","dayEnd","roundedAverage","hasValidData","datasets","backgroundColor","borderWidth","generateWeeklySummary","averageMood","bestDay","worstDay","recommendation","entriesByDay","dailyAverages","dayEntries","ChartJS","CategoryScale","LinearScale","BarElement","Title","Tooltip","Legend","MoodChart","chartData","setChartData","localLoading","setLocalLoading","fetchChartData","Loader2","processedChartData","dataset","barPercentage","categoryPercentage","borderRadius","shiftedEmojis","legend","tooltip","originalValue","toFixed","scales","ticks","stepSize","grid","drawBorder","tick","font","weight","innerWidth","maintainAspectRatio","elements","bar","Bar","WeeklySummary","propLoading","setSummary","setRecommendation","loadingRecommendation","setLoadingRecommendation","pollingStatus","setPollingStatus","setIsPollingActive","isExpanded","setIsExpanded","setRequestId","summaryPeriod","setSummaryPeriod","retryCount","setRetryCount","apiCallInProgressRef","apiCallCompletedRef","unmountedRef","fetchBasicSummary","fetchRecommendation","apiResponse","handlePollingFailure","newRetryCount","pollingCheckTimer","formatPeriodDate","toLocaleDateString","periodText","ChevronUp","ChevronDown","Sparkles","MoodSelector","selectedMood","o","clsx","createClassGroupUtils","classMap","createClassMap","conflictingClassGroups","conflictingClassGroupModifiers","getClassGroupId","classParts","getGroupRecursive","getGroupIdForArbitraryProperty","getConflictingClassGroupIds","classGroupId","hasPostfixModifier","conflicts","classPartObject","currentClassPart","nextClassPartObject","nextPart","classGroupFromNextClassPart","validators","classRest","validator","arbitraryPropertyRegex","arbitraryPropertyClassName","theme","classGroups","processClassesRecursively","classGroup","classDefinition","isThemeGetter","getPart","currentClassPartObject","pathPart","createLruCache","maxCacheSize","cacheSize","previousCache","createParseClassName","experimentalParseClassName","parseClassName","modifiers","postfixModifierPosition","bracketDepth","parenDepth","modifierStart","currentCharacter","MODIFIER_SEPARATOR","baseClassNameWithImportantModifier","baseClassName","stripImportantModifier","hasImportantModifier","maybePostfixModifierPosition","fullPrefix","parseClassNameOriginal","isExternal","createSortModifiers","orderSensitiveModifiers","fromEntries","modifier","sortedModifiers","unsortedModifiers","SPLIT_CLASSES_REGEX","twJoin","resolvedValue","toValue","mix","createTailwindMerge","createConfigFirst","createConfigRest","configUtils","cacheGet","cacheSet","functionToCall","classList","previousConfig","createConfigCurrent","sortModifiers","createConfigUtils","tailwindMerge","cachedResult","classGroupsInConflict","classNames","originalClassName","variantModifier","modifierId","conflictGroups","mergeClassList","fromTheme","themeGetter","arbitraryValueRegex","arbitraryVariableRegex","fractionRegex","tshirtUnitRegex","lengthUnitRegex","colorFunctionRegex","shadowRegex","imageRegex","isFraction","isNumber","isInteger","isPercent","isTshirtSize","isAny","isLengthOnly","isNever","isShadow","isImage","isAnyNonArbitrary","isArbitraryValue","isArbitraryVariable","isArbitrarySize","getIsArbitraryValue","isLabelSize","isArbitraryLength","isLabelLength","isArbitraryNumber","isLabelNumber","isArbitraryPosition","isLabelPosition","isArbitraryImage","isLabelImage","isArbitraryShadow","isArbitraryVariableLength","getIsArbitraryVariable","isArbitraryVariableFamilyName","isLabelFamilyName","isArbitraryVariablePosition","isArbitraryVariableSize","isArbitraryVariableImage","isArbitraryVariableShadow","isLabelShadow","testLabel","testValue","shouldMatchNoLabel","imageLabels","sizeLabels","twMerge","themeColor","themeFont","themeText","themeFontWeight","themeTracking","themeLeading","themeBreakpoint","themeContainer","themeSpacing","themeRadius","themeShadow","themeInsetShadow","themeDropShadow","themeBlur","themePerspective","themeAspect","themeEase","themeAnimate","scaleUnambiguousSpacing","scaleInset","scaleGridTemplateColsRows","scaleGridColRowStartAndEnd","scaleGridColRowStartOrEnd","scaleGridAutoColsRows","scaleMargin","scaleSizing","scaleColor","scaleGradientStopPosition","scaleRadius","scaleBorderWidth","scaleBlur","scaleOrigin","scaleRotate","scaleScale","scaleSkew","scaleTranslate","animate","aspect","blur","breakpoint","ease","leading","perspective","shadow","tracking","box","sr","float","isolation","overscroll","inset","top","bottom","basis","flex","grow","shrink","col","row","gap","justify","px","py","ps","pe","pt","pr","pb","pl","mx","my","me","mt","mr","mb","ml","w","screen","decoration","indent","hyphens","bg","linear","radial","conic","via","rounded","divide","outline","ring","brightness","contrast","grayscale","invert","saturate","sepia","caption","transition","duration","backface","skew","accent","appearance","caret","scroll","snap","touch","cn","inputs","STORAGE_KEYS","shouldHideNotification","dismissedTime","dismissedAt","currentTime","markNotificationAsDismissed","NotificationMock","isVisible","setIsVisible","setSelectedMood","setNote","setStep","isSubmitting","setIsSubmitting","handleClose","AnimatePresence","motion","div","Bell","newEntry","uuidv4","ai_analysis","strokeLinecap","strokeLinejoin","isSafariIOS","ua","userAgent","isSafari","isIOS","platform","maxTouchPoints","isRunningAsHomeScreenApp","matchMedia","matches","standalone","isPushNotificationSupported","standardSupport","requestNotificationPermission","registerServiceWorker","registrations","getRegistrations","mainSW","reg","scriptURL","unregister","firebaseRegistration","firebaseSW","updateViaCache","forceServiceWorkerReinstallation","cacheKeys","caches","newRegistration","registerError","secondError","registerForPushNotifications","checkInterval","isMainActive","waitForServiceWorkerActivation","tokenAttempts","maxTokenAttempts","getCurrentUser","user_id","registerPush","checkNotificationStatus","pushSupported","serviceWorkerRegistered","isHomeScreenApp","SafariIOSInstructions","dismissed","setDismissed","Share2","NotificationPermission","setStatus","statusMessage","setStatusMessage","reinstalling","setReinstalling","updateStatus","statusInfo","registerForPush","handleForceReinstall","handleDismiss","isNotificationActive","showSafariIOSInstructions","RefreshCw","ChatTrigger","handleClick","IconComponent","brain","MessageCircle","sparkles","QuickActions","isHomePage","getPendingOnBoardingSteps","getOnBoardingUserData","stepNames","demographics","motivation","OnBoardingReminder","onComplete","setPendingSteps","optionalPendingSteps","checkPendingSteps","ClipboardList","ChevronRight","setRef","Slot","React.forwardRef","forwardRef","forwardedRef","slotProps","childrenArray","React.Children","slottable","isSlottable","newChildren","only","React.isValidElement","SlotClone","isValidElement","React.cloneElement","displayName","childrenRef","getter","mayWarn","isReactWarning","getElementRef","props2","overrideProps","propName","slotPropValue","childPropValue","mergeProps","React.Fragment","refs","hasCleanup","cleanups","cleanup","composeRefs","cloneElement","Slottable","Fragment2","falsyToString","buttonVariants","variants","destructive","secondary","ghost","sm","lg","defaultVariants","_config_compoundVariants","getVariantClassNames","variantProp","defaultVariantProp","variantKey","propsWithoutUndefined","param","getCompoundVariantClassNames","compoundVariants","cvClass","cvClassName","compoundVariantOptions","every","Button","asChild","Comp","genderOptions","ageRangeOptions","regionOptions","allOptions","description","Smile","Heart","Zap","Award","Users","Moon","Coffee","Edit3","moodOptions","emoji","depressionQuestions","responseOptions","anxietyQuestions","mentalHealthConditions","treatmentTypes","sleepIssues","supportTypes","steps","onNext","onBack","showBackButton","setName","setPhone","isAnonymous","setIsAnonymous","showBenefits","setShowBenefits","showAnonymousWarning","setShowAnonymousWarning","setErrors","Shield","AlertCircle","newErrors","Smartphone","numbers","formatPhone","onSkip","recoveryEmail","setRecoveryEmail","isOptedOut","setIsOptedOut","newOptedOut","Mail","age","setAge","ageRange","setAgeRange","gender","setGender","setLocation","setRegion","option","MapPin","existingSelections","goals","selectedOptions","setSelectedOptions","otherOption","setOtherOption","motivationOther","additionalInfo","setAdditionalInfo","showAdditionalInfo","setShowAdditionalInfo","Icon","button","whileHover","whileTap","handleOptionToggle","setMoodNote","handleMoodSelect","skipInReview","responses","setResponses","depressionScreening","q","question","handleResponseChange","questionId","totalScore","sum","depressionScore","anxietyScreening","anxietyScore","hasMentalHealthCondition","setHasMentalHealthCondition","selectedConditions","setSelectedConditions","mentalHealthConditionDetails","otherCondition","setOtherCondition","handleConditionToggle","conditionDetails","isReceivingTreatment","setIsReceivingTreatment","selectedTreatments","setSelectedTreatments","treatmentDetails","otherTreatment","setOtherTreatment","medications","setMedications","psychiatricMedications","treatment","handleTreatmentToggle","sleepQuality","setSleepQuality","sleepHours","setSleepHours","sleepHoursPerNight","selectedIssues","setSelectedIssues","otherIssue","setOtherIssue","issue","handleIssueToggle","issues","hasSupportSystem","setHasSupportSystem","selectedSupports","setSelectedSupports","supportSystemDetails","otherSupport","setOtherSupport","support","handleSupportToggle","supports","propUserData","completeUserData","setCompleteUserData","fetchCompleteUserData","stiffness","damping","CheckCircle","masculino","feminino","getGenderLabel","curiosidade","outro","getMotivationLabel","ruim","razoavel","boa","excelente","getSleepQualityLabel","ArrowRight","OnBoardingModal","isReview","globalStepIndex","setUserData","setIsInitialized","pendingStepsHistory","setPendingStepsHistory","scrollContainerRef","scrollToTop","scrollTop","activeSteps","isLastStep","isCurrentStepRequired","existingUserData","loadUserData","pendingStepsList","firstPendingStepIndex","findIndex","requiredStepIndex","initializeOnBoarding","StepComponent","stepData","updatedData","moodEntry","updateOnBoardingUserData","updatedPendingSteps","nextPendingStepIndex","completionStepIndex","newHistory","previousStepIndex","FloatingChatButton","showTooltip","setShowTooltip","showOptions","setShowOptions","tooltipDismissed","setTooltipDismissed","tooltipTimeout","pressTimer","handleButtonPress","handleButtonRelease","onTouchStart","onTouchEnd","HomePage","showPsychologistRecommendation","setShowPsychologistRecommendation","concerningPatternCheckedRef","showOnBoardingModal","isOnBoardingRequired","loadingEntries","refreshEntries","setEntries","lastUpdate","setLastUpdate","dataLoadedRef","loadedEntries","fetchEntries","useMoodEntries","shouldRefresh","refreshData","shouldRefreshFromQuery","sourceFromQuery","newUrl","hasConcerning","requiredOnBoardingComplete","_typeof","u8","u16","Uint16Array","i32","Int32Array","fleb","fdeb","clim","freb","eb","j","fl","revfl","fd","revfd","hMap","cd","l","co","le","rvb","sv","r_1","v","flt","fdt","flm","flrm","fdm","fdrm","bits","bits16","shft","slc","subarray","ec","ind","nt","wbits","wbits16","hTree","t2","et","i0","i1","i2","maxSym","tr","mbt","ln","dt","lft","cst","i2_1","i2_2","i2_3","lc","cl","cli","cln","cls","clen","cf","wfblk","dat","wblk","final","syms","lf","df","li","bs","bl","dlt","mlb","ddt","mdb","lclt","nlc","lcdt","ndc","lcfreq","lct","mlcb","nlcc","lm","ll","dm","dl","flen","ftlen","dtlen","llm","lcts","clct","len","sym","dst","deo","adler","dopt","opt","pre","st","dictionary","dict","newDat","lvl","plvl","lst","msk_1","bs1_1","bs2_1","hsh","lc_1","wi","hv","imod","pimod","rem","ch_1","dif","maxn","maxd","nl","mmd","md","ti","lin","din","dflt","level","mem","wbytes","zlibSync","lv","zlh","unzlibSync","buf","sl","noBuf","noSt","cbuf","nbuf","bt","lbt","dbt","tbts","hLit","hcLen","tl","ldt","clt","clb","clbmsk","clm","lms","dms","lpos","dsym","dend","inflt","zls","td","XMLHttpRequest","onload","dispatchEvent","MouseEvent","createEvent","initMouseEvent","saveAs","HTMLAnchorElement","webkitURL","revokeObjectURL","msSaveOrOpenBlob","autoBom","innerText","HTMLElement","safari","FileReader","onloadend","readAsDataURL","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","feldspar","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgrey","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslateblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","violetred","wheat","white","whitesmoke","yellow","yellowgreen","example","g","toRGB","toHex","N","L","A","S","print","modify","I","perm","padding","O","processOwnerPassword","encryptionKey","lsbFirstWord","hexToBytes","U","F","C","publish","getTopics","objectNumber","gState","matrix","B","M","boundingBox","xStep","yStep","cloneIndex","E","compress","compressPdf","encryption","userPassword","ownerPassword","userPermissions","userUnit","precision","floatPrecision","defaultPathOperation","putOnlyUsedFonts","internal","__private__","PubSub","getPdfVersion","setPdfVersion","a0","a1","a2","a3","a4","a5","a6","a7","a8","a9","a10","b0","b1","b2","b3","b4","b5","b6","b7","b8","b9","b10","c0","c4","c5","c6","c7","c8","c9","c10","letter","legal","ledger","tabloid","getPageFormats","getPageFormat","saveGraphicsState","Vt","_t","Rr","setFontSize","getFontSize","restoreGraphicsState","combineFontStyleAndFontWeight","advancedAPI","compatAPI","isAdvancedAPI","D","roundToPrecision","hpf","R","f2","T","f3","H","setPrecision","W","V","G","getFileId","Y","setFileId","Ye","J","convertDateToPDFDate","getTimezoneOffset","Q","getHours","getMinutes","getSeconds","convertPDFDateToDate","K","setCreationDate","Z","getCreationDate","padd2","tt","padd2Hex","rt","at","ot","ct","setCustomOutputDestination","ht","resetCustomOutputDestination","ft","getArrayBuffer","getStandardFonts","vt","R2L","setR2L","getR2L","yt","wt","setZoomMode","getZoomMode","Nt","Lt","setPageMode","getPageMode","At","setLayoutMode","getLayoutMode","setDisplayMode","xt","subject","author","keywords","creator","getDocumentProperty","getDocumentProperties","setDocumentProperties","setProperties","setDocumentProperty","St","Pt","kt","It","Ft","Ct","jt","Ot","Bt","Mt","Et","qt","Dt","Rt","Tt","Ut","hotfixes","zt","Ht","Wt","_matrix","atan2","shx","sx","decompose","sy","shy","ty","multiply","sqrt","inversed","applyToPoint","Cr","applyToRectangle","jr","Matrix","Gt","matrixMult","Yt","unitMatrix","identityMatrix","Jt","ShadingPattern","TilingPattern","addShadingPattern","beginTilingPattern","Br","endTilingPattern","Xt","newObject","Kt","Zt","newObjectDeferred","$t","newAdditionalObject","objId","Qt","te","ee","decodeColorString","encodeColorString","ch1","ch2","ch3","ch4","pdfColorType","ne","getFilters","ie","putStream","alreadyAppliedFilters","addLength1","objectId","encryptor","additionalKeyValues","API","processDataByFilters","reverseChain","ae","putPage","contentsObjId","rootDictionaryObjId","resourceDictionaryObjId","mediaBox","bottomLeftX","bottomLeftY","topRightX","topRightY","cropBox","bleedBox","trimBox","artBox","pageContext","pageNumber","oe","putPages","se","isAlreadyPutted","postScriptName","ue","pages","fe","de","resourcesOid","objectOid","ge","Ae","ye","we","Ne","Le","ve","xe","ce","he","MAX_SAFE_INTEGER","fontName","Pe","isStandardFont","Ce","pdfEscape","sourceEncoding","outputEncoding","autoencode","codePages","noBOM","Fe","je","beginPage","Me","Oe","Lr","kr","Ir","Be","setPage","Ee","getNumberOfPages","qe","disableWarning","noFallback","times","De","putInfo","Re","putCatalog","Te","putTrailer","Ue","putHeader","ze","putXRef","He","buildDocument","Se","toHexString","We","getBlob","Ve","unescape","pdfObjectUrl","pdfJsUrl","documentElement","contentWindow","PDFViewerApplication","foo","alert","Ge","Xe","getPageInfo","Ke","getPageInfoByObjId","Ze","getCurrentPageInfo","addPage","insertPage","movePage","deletePage","angle","lineHeightFactor","lr","scaleFactor","TabLen","baseline","maxWidth","splitTextToSize","mutex","activeFontKey","fonts","activeFontSize","PI","rotationDirection","cos","sin","charSpace","_r","setCharSpace","getCharSpace","horizontalScale","renderingMode","usedRenderingMode","pageSize","getWidth","getStringUnitWidth","doKerning","br","yr","isHex","ut","xr","$e","clipEvenOdd","discardPath","Qe","isValidStyle","setDefaultPathOperation","getStyle","er","rr","fillEvenOdd","fillStroke","fillStrokeEvenOdd","ar","nr","ir","setGState","moveTo","cr","lineTo","ur","curveTo","op","rect","triangle","roundedRect","SQRT2","ellipse","circle","setFont","hr","getFont","getFontList","addFont","lineWidth","dr","getLineWidth","setLineWidth","setLineDash","setLineDashPattern","gr","getLineHeight","setLineHeightFactor","vr","getLineHeightFactor","lineHeight","getHorizontalCoordinate","getVerticalCoordinate","wr","getHorizontalCoordinateString","Nr","getVerticalCoordinateString","strokeColor","getStrokeColor","getDrawColor","setStrokeColor","setDrawColor","Ar","fillColor","getFillColor","setFillColor","textColor","Sr","getTextColor","setTextColor","Pr","CapJoinStyles","butt","but","miter","projecting","project","square","bevel","setLineCap","setLineJoin","setLineMiterLimit","setMiterLimit","GState","Fr","equals","addGState","setCurrentTransformationMatrix","Or","currentPage","pagesContext","qr","outputDestination","Dr","Tr","Er","beginFormObject","endFormObject","Mr","doFormObject","getFormObject","returnPromise","unload","getPageWidth","setPageWidth","getPageHeight","setPageHeight","getCoordinateString","collections","newObjectDeferredBegin","setWidth","getHeight","setHeight","encryptionOptions","getEncryptor","getPDFVersion","Point","Rectangle","hasHotfix","__acroform__","BBox","setBit","clearBit","getBit","getBitForPdf","setBitForPdf","clearBitForPdf","calculateCoordinates","lowerLeft_X","lowerLeft_Y","upperRight_X","upperRight_Y","appearanceStreamContent","DV","_V","maxFontSize","multiline","xForms","acroFormDictionaryRoot","printedOut","annotations","acroformPlugin","FieldNum","_eventID","Fields","hasAnnotation","Kids","Rect","DA","createDefaultAppearanceStream","getKeyValueListForStream","hasAppearanceStream","arrayToPdfArray","_objId","_scope","Ff","FT","setOptions","addOption","removeOption","combo","edit","CA","pushButton","radio","appearanceState","_AppearanceType","RadioButton","Circle","createAppearanceStream","optionName","setAppearance","getCA","createOption","Parent","CheckBox","On","YesNormal","YesPushDown","Off","OffPushDown","Bezier_C","Cross","calculateCross","x4","x3","addField","AcroFormChoiceField","AcroFormListBox","AcroFormComboBox","AcroFormEditBox","AcroFormButton","AcroFormPushButton","AcroFormRadioButton","AcroFormCheckBox","AcroFormTextField","AcroFormPasswordField","AcroFormAppearance","AcroForm","ChoiceField","ListBox","ComboBox","EditBox","PushButton","TextField","PasswordField","Appearance","__addimage__","PNG","TIFF","JPEG","JPEG2000","GIF87a","GIF89a","WEBP","BMP","getImageFileTypeByImageData","Uint8ClampedArray","colorSpace","INDEXED","palette","sMask","DEVICE_CMYK","bitsPerComponent","decodeParameters","transparency","predictor","addImage_images","nodeType","nodeName","hasAttribute","loadFile","toDataURL","alias","color_spaces","DEVICE_RGB","DEVICE_GRAY","CAL_GREY","CAL_RGB","LAB","ICC_BASED","SEPARATION","DEVICE_N","DCT_DECODE","FLATE_DECODE","LZW_DECODE","JPX_DECODE","JBIG2_DECODE","ASCII85_DECODE","ASCII_HEX_DECODE","RUN_LENGTH_DECODE","CCITT_FAX_DECODE","image_compression","NONE","FAST","MEDIUM","SLOW","sHashCode","validateStringAsBase64","extractImageFromDataUrl","mimeType","supportsArrayBuffer","isArrayBuffer","isArrayBufferView","Int8Array","Int16Array","Float32Array","Float64Array","binaryStringToUint8Array","arrayBufferToBinaryString","addImage","imageData","compression","rotation","convertBase64ToBinaryString","getImageProperties","fileType","bounds","_nameMap","finalBounds","magFactor","zoom","createAnnotation","textWithLink","getTextWidth","__arabicParser__","isInArabicSubstitutionA","isArabicLetter","isArabicEndLetter","isArabicAlfLetter","arabicLetterHasIsolatedForm","arabicLetterHasFinalForm","arabicLetterHasInitialForm","arabicLetterHasMedialForm","resolveLigatures","isArabicDiacritic","getCorrectForm","processArabic","autoPrint","addJS","getContext","pageWrapXEnabled","pageWrapX","pageWrapYEnabled","pageWrapY","pdf","context2d","_canvas","canvas","__cell__","headerFunction","margins","lastCell","setHeaderFunction","getTextDimensions","cellAddPage","tableHeaderRow","printHeaders","printHeaderRow","autoSize","css","headerBackgroundColor","headerTextColor","table_font_size","setTableHeaderRow","rowStart","Function","cellStart","table_x","table_y","italic","oblique","family","stretch","fixed","monospace","terminal","cursive","fantasy","serif","menu","trimLeft","isStrokeTransparent","strokeStyle","fillStyle","isFillTransparent","textBaseline","lineJoin","lineCap","globalCompositeOperation","globalAlpha","clip_path","currentPoint","miterLimit","lastPoint","lineDashOffset","lineDash","margin","prevPageLastElemOffset","ignoreClearRect","ctx","fontFaces","defaultFontFamily","genericFontFamilies","arial","Arial","verdana","Verdana","helvetica","Helvetica","getLineDash","beginPath","closePath","quadraticCurveTo","bezierCurveTo","arc","isIdentity","startAngle","endAngle","counterclockwise","arcTo","fillRect","strokeRect","clearRect","ctxStack","isCanvasGradient","getColor","fillText","scaleX","strokeText","measureText","setTransform","drawImage","autoPaging","posY","posX","deltas","createLinearGradient","colorStops","addColorStop","createPattern","createRadialGradient","y3","y4","prevLineDash","overrideMimeType","responseText","loadImageFile","html2canvas","DOMPurify","dompurify","sanitize","setProgress","__proto__","img","progress","enableLinks","jsPDF","toContainer","toCanvas","toImg","toPdf","thenList","setPageSize","windowWidth","clientWidth","scrollWidth","offsetWidth","nodeValue","cloneNode","firstChild","nextSibling","scrollLeft","javascriptEnabled","offsetHeight","clientHeight","zIndex","onrendered","toContext2d","allowTaint","scrollX","scrollY","imageTimeout","logging","proxy","removeContainer","foreignObjectRendering","useCORS","windowHeight","outputImg","outputPdf","doCallback","setMargin","getPageSize","inner","ratio","updateProgress","thenCore","thenExternal","catchExternal","using","export","createNamedDestinations","makeRef","genIds_r","renderRoot","renderItems","objStart","count_r","objEnd","makeString","processJPEG","numcomponents","imgData","animation","readUInt32","colorType","compressionMethod","filterMethod","interlaceMethod","numFrames","numPlays","frames","xOffset","yOffset","readUInt16","disposeOp","blendOp","indexed","rgb","hasAlphaChannel","pixelBitlength","decodePixels","decodePalette","copyToImageData","_decodedPalette","putImageData","Image","decodeFrames","createImageData","renderFrame","_timeout","stopAnimation","_png","has_local_palette","palette_offset","palette_size","data_offset","data_length","transparent_index","interlaced","disposal","loopCount","frameInfo","decodeAndBlitFrameBGRA","decodeAndBlitFrameRGBA","datav","is_with_alpha","bottom_up","flag","parseHeader","parseBGR","jc","Qb","qb","nd","pd","Ca","Ka","oa","pa","Jd","Yc","Zc","Sb","Ra","bb","Ur","zr","Hr","Mb","Xa","ud","hd","jd","Ea","Hn","Wn","Vn","Gn","fb","ea","Tc","Ed","Cd","Fd","lb","Db","Ab","fa","Rd","RGBA","kb","sd","Pd","Qd","Md","ib","da","bd","Da","Sd","ob","ba","ka","vi","cc","dc","Mc","Nc","fc","Rc","Tn","Kb","Sn","An","ma","qn","Rn","Un","memory","Ib","Jb","Nd","Oa","Ci","ji","_i","Si","Mi","Bi","Oi","Pi","ki","Ei","qi","Dc","$n","xc","vc","Wb","Ya","ab","Ta","Ua","gc","nc","hc","Gr","Wr","Vr","Zr","$r","Yr","Ba","va","ca","Ma","En","Qr","tn","Dn","nn","en","xn","zn","rn","qd","rd","mi","tb","Xr","Pb","Wa","wc","wd","xd","vb","yc","xb","gi","VP8LMapColor32b","Jr","VP8LMapColor8b","Kr","Oc","Qn","Xn","Zn","Jn","Yn","Kn","pi","_n","ub","yd","Rb","Kd","Ld","Ud","Td","Fb","Bb","Cb","Zb","Lb","Yb","jb","Wc","Xc","Pc","wb","Tb","zd","vd","od","ld","La","dd","tc","Na","la","Sc","Eb","Qc","ia","ad","Za","Ob","$b","Ad","Gc","Hc","Dd","uc","Nb","wa","ya","aa","sc","Od","Kc","ed","Qa","Ic","$c","Aa","Xb","Va","Hb","zb","yb","Ub","za","Jc","Pa","Bd","kc","Ac","Bc","zc","Gd","Hd","rb","sb","oc","pc","sa","ta","qa","ra","Ha","Ia","Ec","ja","Vb","Fc","gd","ga","Fa","Cc","qc","Gb","Uc","nb","rc","Ga","Vc","ac","bc","ha","ni","ei","ri","ui","si","hi","ii","ai","Ri","Ui","Vd","Cn","Pn","kn","In","Fn","an","un","hn","sn","Je","dn","pn","gn","mn","vn","bn","yn","wn","Nn","Ln","fi","ke","Ie","be","di","ci","oi","Bn","jn","Mn","kd","na","xa","gb","Ja","Sa","Lc","$a","ic","mc","bi","yi","Ni","Li","Ai","xi","Ii","Di","zi","Predictor0","Predictor1","Predictor2","Predictor3","Predictor4","Predictor5","Predictor6","Predictor7","Predictor8","Predictor9","Predictor10","Predictor11","Predictor12","Predictor13","PredictorAdd0","PredictorAdd1","PredictorAdd2","ColorIndexInverseTransform","MapARGB","VP8LColorIndexInverseTransformAlpha","MapAlpha","VP8LPredictorsAdd","VP8LPredictors","VP8LPredictorsAdd_C","VP8LPredictors_C","UpsampleRgbLinePair","UpsampleBgrLinePair","UpsampleRgbaLinePair","UpsampleBgraLinePair","UpsampleArgbLinePair","UpsampleRgba4444LinePair","UpsampleRgb565LinePair","Ti","WebPDecodeRGBA","src_off","src_size","feature_flags","canvas_width","canvas_height","bgcolor","loop_count","offset_x","offset_y","dispose","blend","rgbaoutput","dataurl","loop_counter","rgba","imgwidth","imgheight","processPNG","processGIF89A","processGIF87A","fileSize","getUint32","reserved","headerSize","getInt32","planes","getUint16","bitPP","rawSize","importantColors","quad","bit1","bit4","bit8","bit15","bit16","bit24","bit32","getData","processBMP","processWEBP","processRGBA","alpha","setLanguage","languageSettings","isSubscribed","af","sq","hy","ast","az","eu","ch","zh","cv","cs","eo","fo","fj","fur","gl","gu","hu","iu","ks","kk","km","ky","tlh","ko","mk","mo","nv","ng","no","om","qu","rm","ro","ru","sz","sg","sk","so","es","sw","th","tig","ts","tk","uk","hsb","vo","xh","zu","languageCode","getCharWidthsArray","Unicode","fof","widthOfString","widthOfGlyph","characterToGlyph","textIndent","lineIndent","__fontmetrics__","uncompress","WinAnsiEncoding","Courier","ZapfDingbats","existsFileInVFS","getFileFromVFS","TTFFont","glyIdsUsed","canvg","addSvgAsImage","ignoreMouse","ignoreAnimation","ignoreDimensions","fromString","putTotalPages","pdfEscape16","viewerPreferences","HideToolbar","defaultValue","explicitSet","valueSet","pdfVersion","HideMenubar","HideWindowUI","FitWindow","CenterWindow","DisplayDocTitle","NonFullScreenPageMode","Direction","ViewArea","ViewClip","PrintArea","PrintClip","PrintScaling","Duplex","PickTrayByPDFSize","PrintPageRange","NumCopies","viewerpreferences","configuration","__metadata__","namespaceuri","metadata_object_number","addMetadata","toUnicode","subset","PDFObject","stemV","italicAngle","ascender","decender","hmtx","cmap","codeMap","vFS","addFileToVFS","__bidiEngine__","EN","AN","hiLevel","doBidiReorder","isInputVisual","isOutputVisual","isInputRtl","isOutputRtl","isSymmetricSwapping","readString","registerTTF","directory","hhea","maxp","os2","loca","glyf","lineGap","xMin","yMin","xMax","yMax","italic_angle","familyClass","isSerif","isScript","isFixedPitch","forGlyph","readByte","writeByte","writeUInt32","readInt32","writeInt32","writeUInt16","readInt16","writeInt16","writeString","readShort","writeShort","readLongLong","writeLongLong","readInt","writeInt","scalarType","tableCount","searchRange","entrySelector","rangeShift","tables","checksum","__super__","revision","checkSumAdjustment","magicNumber","created","modified","macStyle","lowestRecPPEM","fontDirectionHint","indexToLocFormat","glyphDataFormat","platformID","encodingID","isUnicode","charMap","subtable","maxGlyphID","LN2","advanceWidthMax","minLeftSideBearing","minRightSideBearing","xMaxExtent","caretSlopeRise","caretSlopeRun","caretOffset","metricDataFormat","numberOfMetrics","averageCharWidth","weightClass","widthClass","ySubscriptXSize","ySubscriptYSize","ySubscriptXOffset","ySubscriptYOffset","ySuperscriptXSize","ySuperscriptYSize","ySuperscriptXOffset","ySuperscriptYOffset","yStrikeoutSize","yStrikeoutPosition","panose","charRange","vendorID","selection","firstCharIndex","lastCharIndex","winAscent","winDescent","codePageRange","defaultChar","breakChar","maxContext","minMemType42","maxMemType42","minMemType1","maxMemType1","glyphNameIndex","names","offsets","numGlyphs","languageID","nameID","strings","copyright","fontSubfamily","uniqueSubfamily","postscriptName","trademark","manufacturer","designer","vendorUrl","designerUrl","license","licenseUrl","preferredFamily","preferredSubfamily","compatibleFull","sampleText","maxPoints","maxContours","maxCompositePoints","maxComponentContours","maxZones","maxTwilightPoints","maxStorage","maxFunctionDefs","maxInstructionDefs","maxStackElements","maxSizeOfInstructions","maxComponentElements","maxComponentDepth","metrics","lsb","leftSideBearings","glyphFor","lengthOf","numberOfContours","compound","glyphIDs","glyphOffsets","unicodes","generateCmap","glyphsFor","formatDatePtBR","formatStr","getCurrentClientTime","formatFullDatePtBR","isString","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","UncontrolledTextarea","textareaRef","createRef","isInternalChange","componentDidMount","setSelectionRange","prevProps","cursorPosition","selectionStart","selectionLength","selectionEnd","handleChange","showCount","MoodEditForm","initialValues","onSave","isSaving","setTime","setScore","Save","moodScore","FocusTextarea","MoodAddForm","initialTime","HistoryPage","isGeneratingRecord","setIsGeneratingRecord","isResettingRecord","setIsResettingRecord","resetRecordId","setResetRecordId","resetError","setResetError","healthRecord","setHealthRecord","healthRecords","setHealthRecords","setCanGenerate","viewingRecordId","setViewingRecordId","expandedRecords","setExpandedRecords","editingEntryId","setEditingEntryId","editingMoodScore","setEditingMoodScore","editingNoteValue","setEditingNoteValue","editingTime","setEditingTime","editingDate","setEditingDate","setIsSaving","isDeleting","setIsDeleting","deleteConfirmId","setDeleteConfirmId","addingForDate","setAddingForDate","newEntryTime","setNewEntryTime","visibleDatesCount","setVisibleDatesCount","isLoadingMore","setIsLoadingMore","expandedAnalysis","setExpandedAnalysis","loaderRef","mostRecentRecord","canGenerateNew","canGenerateHealthRecord","fetchData","IntersectionObserver","isIntersecting","loadMoreItems","rootMargin","threshold","observe","unobserve","handleEditClick","mood","extractDateAndTimeFromTimestamp","handleCancelEdit","handleConfirmDelete","deleteMoodEntry","updatedEntries","handleCancelDelete","handleResetRecord","resetHealthRecord","isProbableSublistItem","prevLine","handleExportPDF","currentDate","parsedMarkdown","markdown","currentList","currentSublist","isSublistHeader","isSubHeader","parseMarkdown","finalYPosition","startY","yPosition","textWidth","pageWidth","lineY","textWithBold","textWithItalic","boldPattern","boldMatch","currentX","segment","segmentWidth","headerLines","subItem","subItemLines","itemLines","renderMarkdownToPDF","pageCount","toggleAnalysisExpansion","truncateAnalysis","CustomMoodEntryList","entriesByDate","sortedDates","localeCompare","visibleDates","hasMoreDates","hours","minutes","e1","e2","Trash2","timeStr","parseISO","setMinutes","setSeconds","setMilliseconds","createTimestampFromDateAndTime","updatedEntry","updateMoodEntry","Edit2","handleDeleteClick","Download","newRecord","createHealthRecord","recordDate","toggleRecordExpansion","FileText","MoodEntryForm","RecordPage","setIsCompleted","BatchMoodEntryPage","setDays","savedCount","setSavedCount","totalToSave","setTotalToSave","lastSevenDays","moods","randomUUID","getSelectedCount","newDays","handleToggleSelect","moodIndex","dayIndex","newMoods","handleTimeChange","handleRemoveMood","handleNoteChange","handleAddMood","moodsToSave","dateWithTime","mentalHealthCategories","subCategories","diseaseCode","dsm5Criteria","references","icd10","dsm5","who","articles","isPremium","expertReviewed","readingTime","relatedCategories","memo","article","boxShadow","Lock","getExcerpt","Clock","Tag","tooltipRef","triggerRef","tooltipPosition","setTooltipPosition","triggerRect","getBoundingClientRect","tooltipWidth","idealLeft","adjustedLeft","leftOffset","DiseaseCodeWrapper","criteria","DiseaseCodeDetails","adCounter","ContentAdsense","adId","useMemo","getSlot","ContentPage","categoryId","subCategoryId","articleId","useParams","category","subCategory","setSearch","isSearching","debouncedSearch","debouncedValue","setDebouncedValue","useDebounce","searchResults","searchLower","breadcrumb","handleCategoryClick","handleSubCategoryClick","handleArticleClick","handleBack","handleSearch","handleClearSearch","handleSearchResultClick","parentCategory","foundCategory","foundSubCategory","seo","canonicalUrl","ChevronLeft","Search","Suspense","fallback","diseaseCodeDetails","AlertTriangle","referenceMap","WHO","APA","NIMH","mappedUrl","shouldRenderAd","ContentCard","Frown","Utensils","Target","RecoveryEmailManager","onUpdate","isEditing","setIsEditing","setNewEmail","setSuccess","Edit","updateUserRecoveryEmail","Check","ProfilePage","isOnBoardingOpen","setIsOnBoardingOpen","userEmail","userName","user_metadata","Settings","HelpCircle","hasLowerCase","hasUpperCase","hasNumber","hasSpecialChar","isLongEnough","getStrengthColor","strength","LoginPage","setEmail","setPassword","confirmPassword","setConfirmPassword","isCreatingAccount","setIsCreatingAccount","passwordFocused","setPasswordFocused","passwordStrength","calculatePasswordStrength","passwordsMatch","canSubmitNewAccount","redirectToPayment","pendingPlanId","paymentRedirectTimestamp","isRedirectValid","redirectsToCheckoutIfNeeded","SupabaseGateway.createUser","loginEmail","SupabaseGateway.handleLoginWithMigration","navItems","LandingPage","isMobileMenuOpen","setIsMobileMenuOpen","isTouchDevice","setIsTouchDevice","handleNavClick","currentTarget","offsetPosition","pageYOffset","scrollTo","handleResize","Menu","h2","whileInView","viewport","once","KeyRound","Lightbulb","Activity","STRIPE_PRICE_IDS","redirectToCheckout","priceId","PaymentButton","buttonClass","handleRedirectToLogin","PlansPage","isProcessingAutoCheckout","setIsProcessingAutoCheckout","selectedPlan","autoCheckout","price","period","features","cta","highlight","plan","feature","AboutPage","bio","member","PaymentSuccessPage","isChecking","setIsChecking","hasCheckedRef","checkPaymentStatus","PaymentCancelPage","XCircle","ArrowLeft","PrivacyPolicyPage","Cookie","TermsOfUsePage","Book","CheckSquare","PenTool","ChatPage","sessionIdFromUrl","setSessionIdFromUrl","ChatSessionsPage","sessions","setSessions","searchTerm","setSearchTerm","getChatSessions","fetchSessions","filteredSessions","lastMessage","dateInfo","dateString","formatted","relative","formatDistanceToNow","formatSessionDate","handleOpenSession","stripePromise","ORIGIN","STRIPE_JS_URL","V3_URL_REGEX","STRIPE_JS_URL_REGEX","injectScript","headOrBody","stripePromise$1","onErrorListener","onLoadListener","loadScript","Stripe","scripts","findScript","_script$parentNode","loadCalled","getStripePromise","emptyFunction","emptyFunctionWithReset","resetWarningCache","propTypesModule","exports","shim","propFullName","secret","getShim","ReactPropTypes","bigint","symbol","arrayOf","elementType","instanceOf","objectOf","oneOf","oneOfType","exact","checkPropTypes","PropTypes","ownKeys","enumerableOnly","symbols","_objectSpread2","_defineProperty","getOwnPropertyDescriptors","defineProperties","_slicedToArray","_arrayWithHoles","_s","_arr","_iterableToArrayLimit","minLen","_arrayLikeToArray","_unsupportedIterableToArray","_nonIterableRest","arr2","useAttachEvent","cbDefined","cbRef","decoratedCb","off","usePrevious","isUnknownObject","PLAIN_OBJECT_STR","leftArray","leftPlainObject","leftKeys","rightKeys","keySet","allKeys","extractAllowedOptionsUpdates","prevOptions","immutableKeys","newOptions","isUpdated","INVALID_STRIPE_ERROR$2","validateStripe","maybeStripe","errorMsg","createToken","createPaymentMethod","confirmCardPayment","parseStripeProp","isPromise","stripe","ElementsContext","Elements","rawStripeProp","_React$useState2","setContext","isMounted","safeSetContext","prevStripe","updates","_registerWrapper","registerAppInfo","propTypes","CheckoutSdkContext","clientSecret","elementsOptions","useElementsOrCheckoutSdkContextWithUseCase","useCaseString","checkoutSdkContext","elementsContext","useCase","parseCheckoutSdkContext","parseElementsContext","createElementComponent","readyCallback","_ref$options","onReady","onEscape","onLoadError","onLoaderStart","onNetworksChange","onConfirm","onShippingAddressChange","onShippingRateChange","checkoutSdk","setElement","elementRef","domNode","useLayoutEffect","mount","__elementType","_len","_key","startTime","isTestKey","runtimeVersionToUrlVersion","registerWrapper","initStripe","loadStripe","StripeContext","StripeProvider","createCheckoutSession","stripeRedirectToCheckout","ProtectedRoute","Navigate","ScrollToTop","AppRoutes","isLandingPage","Routes","Route","App","initNotifications","Router","ReactDOM","getElementById","StrictMode"],"ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,55,56,57,58,59,60,61,62,63,76,77,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,215,216,217,218,219,220,226,227,236,237,238,255,256,257,286,287,288,289,290],"sources":["../../node_modules/react-dom/client.js","../../node_modules/react-fast-compare/index.js","../../node_modules/invariant/browser.js","../../node_modules/shallowequal/index.js","../../node_modules/react-helmet-async/lib/index.esm.js","../../node_modules/@supabase/functions-js/dist/module/types.js","../../node_modules/@supabase/functions-js/dist/module/FunctionsClient.js","../../node_modules/@supabase/functions-js/dist/module/helper.js","../../node_modules/@supabase/node-fetch/browser.js","../../node_modules/@supabase/postgrest-js/dist/cjs/PostgrestError.js","../../node_modules/@supabase/postgrest-js/dist/cjs/PostgrestBuilder.js","../../node_modules/@supabase/postgrest-js/dist/cjs/PostgrestTransformBuilder.js","../../node_modules/@supabase/postgrest-js/dist/cjs/PostgrestFilterBuilder.js","../../node_modules/@supabase/postgrest-js/dist/cjs/PostgrestQueryBuilder.js","../../node_modules/@supabase/postgrest-js/dist/cjs/version.js","../../node_modules/@supabase/postgrest-js/dist/cjs/constants.js","../../node_modules/@supabase/postgrest-js/dist/cjs/PostgrestClient.js","../../node_modules/@supabase/postgrest-js/dist/cjs/index.js","../../node_modules/@supabase/postgrest-js/dist/esm/wrapper.mjs","../../node_modules/@supabase/realtime-js/dist/module/lib/constants.js","../../node_modules/@supabase/realtime-js/dist/module/lib/transformers.js","../../node_modules/@supabase/realtime-js/dist/module/lib/serializer.js","../../node_modules/@supabase/realtime-js/dist/module/lib/timer.js","../../node_modules/@supabase/realtime-js/dist/module/lib/push.js","../../node_modules/@supabase/realtime-js/dist/module/RealtimePresence.js","../../node_modules/@supabase/realtime-js/dist/module/RealtimeChannel.js","../../node_modules/@supabase/realtime-js/dist/module/RealtimeClient.js","../../node_modules/@supabase/storage-js/dist/module/lib/errors.js","../../node_modules/@supabase/storage-js/dist/module/lib/helpers.js","../../node_modules/@supabase/storage-js/dist/module/lib/fetch.js","../../node_modules/@supabase/storage-js/dist/module/packages/StorageFileApi.js","../../node_modules/@supabase/storage-js/dist/module/lib/version.js","../../node_modules/@supabase/storage-js/dist/module/lib/constants.js","../../node_modules/@supabase/storage-js/dist/module/packages/StorageBucketApi.js","../../node_modules/@supabase/storage-js/dist/module/StorageClient.js","../../node_modules/@supabase/supabase-js/dist/module/lib/constants.js","../../node_modules/@supabase/supabase-js/dist/module/lib/fetch.js","../../node_modules/@supabase/supabase-js/dist/module/lib/helpers.js","../../node_modules/@supabase/auth-js/dist/module/lib/version.js","../../node_modules/@supabase/auth-js/dist/module/lib/constants.js","../../node_modules/@supabase/auth-js/dist/module/lib/helpers.js","../../node_modules/@supabase/auth-js/dist/module/lib/errors.js","../../node_modules/@supabase/auth-js/dist/module/lib/fetch.js","../../node_modules/@supabase/auth-js/dist/module/GoTrueAdminApi.js","../../node_modules/@supabase/auth-js/dist/module/lib/local-storage.js","../../node_modules/@supabase/auth-js/dist/module/lib/locks.js","../../node_modules/@supabase/auth-js/dist/module/lib/polyfills.js","../../node_modules/@supabase/auth-js/dist/module/GoTrueClient.js","../../node_modules/@supabase/auth-js/dist/module/AuthClient.js","../../node_modules/@supabase/supabase-js/dist/module/lib/SupabaseAuthClient.js","../../node_modules/@supabase/supabase-js/dist/module/SupabaseClient.js","../../node_modules/@supabase/supabase-js/dist/module/index.js","../../src/infra/supabaseClient.ts","../../src/infra/services/MoodService.ts","../../src/infra/services/HealthRecordService.ts","../../node_modules/@firebase/util/dist/index.esm2017.js","../../node_modules/@firebase/component/dist/esm/index.esm2017.js","../../node_modules/@firebase/logger/dist/esm/index.esm2017.js","../../node_modules/idb/build/wrap-idb-value.js","../../node_modules/idb/build/index.js","../../node_modules/@firebase/app/dist/esm/index.esm2017.js","../../node_modules/firebase/app/dist/esm/index.esm.js","../../node_modules/@firebase/installations/dist/esm/index.esm2017.js","../../node_modules/@firebase/messaging/dist/esm/index.esm2017.js","../../src/infra/services/FirebaseNotificationService.ts","../../src/infra/supabaseGateway.ts","../../src/infra/repositories/SupabaseUserPlanRepository.ts","../../src/infra/services/UserPlanService.ts","../../src/infra/utils/cacheUtils.ts","../../src/infra/services/WeeklySummaryService.ts","../../src/infra/services/OnBoardingService.ts","../../src/infra/services/ChatAIService.ts","../../src/infra/serviceLocator.ts","../../src/contexts/AuthContext.tsx","../../src/components/GoogleAdsense.tsx","../../src/config/adsenseConfig.ts","../../node_modules/zustand/esm/vanilla.mjs","../../node_modules/zustand/esm/react.mjs","../../src/stores/onBoardingStore.ts","../../src/components/utils/formatters.ts","../../src/contexts/ChatContext.tsx","../../node_modules/estree-util-is-identifier-name/lib/index.js","../../node_modules/hast-util-whitespace/lib/index.js","../../node_modules/property-information/lib/util/schema.js","../../node_modules/property-information/lib/util/merge.js","../../node_modules/property-information/lib/normalize.js","../../node_modules/property-information/lib/util/info.js","../../node_modules/property-information/lib/util/types.js","../../node_modules/property-information/lib/util/defined-info.js","../../node_modules/property-information/lib/util/create.js","../../node_modules/property-information/lib/aria.js","../../node_modules/property-information/lib/util/case-sensitive-transform.js","../../node_modules/property-information/lib/util/case-insensitive-transform.js","../../node_modules/property-information/lib/html.js","../../node_modules/property-information/lib/svg.js","../../node_modules/property-information/lib/xlink.js","../../node_modules/property-information/lib/xmlns.js","../../node_modules/property-information/lib/xml.js","../../node_modules/property-information/lib/hast-to-react.js","../../node_modules/property-information/lib/find.js","../../node_modules/property-information/index.js","../../node_modules/inline-style-parser/index.js","../../node_modules/style-to-object/cjs/index.js","../../node_modules/style-to-object/esm/index.mjs","../../node_modules/unist-util-position/lib/index.js","../../node_modules/unist-util-stringify-position/lib/index.js","../../node_modules/vfile-message/lib/index.js","../../node_modules/hast-util-to-jsx-runtime/lib/index.js","../../node_modules/comma-separated-tokens/index.js","../../node_modules/space-separated-tokens/index.js","../../node_modules/html-url-attributes/lib/index.js","../../node_modules/mdast-util-to-string/lib/index.js","../../node_modules/decode-named-character-reference/index.dom.js","../../node_modules/micromark-util-chunked/index.js","../../node_modules/micromark-util-combine-extensions/index.js","../../node_modules/micromark-util-decode-numeric-character-reference/index.js","../../node_modules/micromark-util-normalize-identifier/index.js","../../node_modules/micromark-util-character/index.js","../../node_modules/micromark-util-sanitize-uri/index.js","../../node_modules/micromark-factory-space/index.js","../../node_modules/micromark/lib/initialize/content.js","../../node_modules/micromark/lib/initialize/document.js","../../node_modules/micromark-util-classify-character/index.js","../../node_modules/micromark-util-resolve-all/index.js","../../node_modules/micromark-core-commonmark/lib/attention.js","../../node_modules/micromark-core-commonmark/lib/autolink.js","../../node_modules/micromark-core-commonmark/lib/blank-line.js","../../node_modules/micromark-core-commonmark/lib/block-quote.js","../../node_modules/micromark-core-commonmark/lib/character-escape.js","../../node_modules/micromark-core-commonmark/lib/character-reference.js","../../node_modules/micromark-core-commonmark/lib/code-fenced.js","../../node_modules/micromark-core-commonmark/lib/code-indented.js","../../node_modules/micromark-core-commonmark/lib/code-text.js","../../node_modules/micromark-util-subtokenize/lib/splice-buffer.js","../../node_modules/micromark-util-subtokenize/index.js","../../node_modules/micromark-core-commonmark/lib/content.js","../../node_modules/micromark-factory-destination/index.js","../../node_modules/micromark-factory-label/index.js","../../node_modules/micromark-factory-title/index.js","../../node_modules/micromark-factory-whitespace/index.js","../../node_modules/micromark-core-commonmark/lib/definition.js","../../node_modules/micromark-core-commonmark/lib/hard-break-escape.js","../../node_modules/micromark-core-commonmark/lib/heading-atx.js","../../node_modules/micromark-util-html-tag-name/index.js","../../node_modules/micromark-core-commonmark/lib/html-flow.js","../../node_modules/micromark-core-commonmark/lib/html-text.js","../../node_modules/micromark-core-commonmark/lib/label-end.js","../../node_modules/micromark-core-commonmark/lib/label-start-image.js","../../node_modules/micromark-core-commonmark/lib/label-start-link.js","../../node_modules/micromark-core-commonmark/lib/line-ending.js","../../node_modules/micromark-core-commonmark/lib/thematic-break.js","../../node_modules/micromark-core-commonmark/lib/list.js","../../node_modules/micromark-core-commonmark/lib/setext-underline.js","../../node_modules/micromark/lib/initialize/flow.js","../../node_modules/micromark/lib/initialize/text.js","../../node_modules/micromark/lib/constructs.js","../../node_modules/micromark/lib/create-tokenizer.js","../../node_modules/micromark/lib/parse.js","../../node_modules/micromark/lib/preprocess.js","../../node_modules/micromark-util-decode-string/index.js","../../node_modules/mdast-util-from-markdown/lib/index.js","../../node_modules/micromark/lib/postprocess.js","../../node_modules/remark-parse/lib/index.js","../../node_modules/mdast-util-to-hast/lib/revert.js","../../node_modules/mdast-util-to-hast/lib/handlers/list-item.js","../../node_modules/trim-lines/index.js","../../node_modules/mdast-util-to-hast/lib/handlers/index.js","../../node_modules/mdast-util-to-hast/lib/handlers/blockquote.js","../../node_modules/mdast-util-to-hast/lib/handlers/break.js","../../node_modules/mdast-util-to-hast/lib/handlers/code.js","../../node_modules/mdast-util-to-hast/lib/handlers/delete.js","../../node_modules/mdast-util-to-hast/lib/handlers/emphasis.js","../../node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js","../../node_modules/mdast-util-to-hast/lib/handlers/heading.js","../../node_modules/mdast-util-to-hast/lib/handlers/html.js","../../node_modules/mdast-util-to-hast/lib/handlers/image-reference.js","../../node_modules/mdast-util-to-hast/lib/handlers/image.js","../../node_modules/mdast-util-to-hast/lib/handlers/inline-code.js","../../node_modules/mdast-util-to-hast/lib/handlers/link-reference.js","../../node_modules/mdast-util-to-hast/lib/handlers/link.js","../../node_modules/mdast-util-to-hast/lib/handlers/list.js","../../node_modules/mdast-util-to-hast/lib/handlers/paragraph.js","../../node_modules/mdast-util-to-hast/lib/handlers/root.js","../../node_modules/mdast-util-to-hast/lib/handlers/strong.js","../../node_modules/mdast-util-to-hast/lib/handlers/table.js","../../node_modules/mdast-util-to-hast/lib/handlers/table-cell.js","../../node_modules/mdast-util-to-hast/lib/handlers/table-row.js","../../node_modules/mdast-util-to-hast/lib/handlers/text.js","../../node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js","../../node_modules/@ungap/structured-clone/esm/types.js","../../node_modules/@ungap/structured-clone/esm/deserialize.js","../../node_modules/@ungap/structured-clone/esm/serialize.js","../../node_modules/@ungap/structured-clone/esm/index.js","../../node_modules/mdast-util-to-hast/lib/footer.js","../../node_modules/unist-util-is/lib/index.js","../../node_modules/unist-util-visit-parents/lib/index.js","../../node_modules/unist-util-visit/lib/index.js","../../node_modules/mdast-util-to-hast/lib/state.js","../../node_modules/mdast-util-to-hast/lib/index.js","../../node_modules/remark-rehype/lib/index.js","../../node_modules/bail/index.js","../../node_modules/extend/index.js","../../node_modules/is-plain-obj/index.js","../../node_modules/trough/lib/index.js","../../node_modules/vfile/lib/minpath.browser.js","../../node_modules/vfile/lib/minproc.browser.js","../../node_modules/vfile/lib/minurl.shared.js","../../node_modules/vfile/lib/minurl.browser.js","../../node_modules/vfile/lib/index.js","../../node_modules/unified/lib/callable-instance.js","../../node_modules/unified/lib/index.js","../../node_modules/react-markdown/lib/index.js","../../src/components/ChatAI/ChatWidget.tsx","../../src/infra/ChatAIFacade.ts","../../src/components/Layout.tsx","../../node_modules/date-fns/locale/pt-BR/_lib/formatDistance.mjs","../../node_modules/date-fns/locale/pt-BR/_lib/formatLong.mjs","../../node_modules/date-fns/locale/pt-BR/_lib/formatRelative.mjs","../../node_modules/date-fns/locale/pt-BR/_lib/localize.mjs","../../node_modules/date-fns/locale/pt-BR/_lib/match.mjs","../../node_modules/date-fns/locale/pt-BR.mjs","../../src/infra/DatabaseFacade.ts","../../src/infra/utils/moodUtils.ts","../../src/components/MoodChart.tsx","../../src/components/WeeklySummary.tsx","../../src/components/MoodSelector.tsx","../../node_modules/clsx/dist/clsx.mjs","../../node_modules/tailwind-merge/dist/bundle-mjs.mjs","../../src/lib/utils.ts","../../src/components/NotificationMock.tsx","../../src/infra/NotificationFacade.ts","../../src/components/NotificationPermission.tsx","../../src/components/ChatAI/ChatTrigger.tsx","../../src/components/QuickActions.tsx","../../src/infra/OnBoardingFacade.ts","../../src/components/OnBoardingReminder.tsx","../../node_modules/@radix-ui/react-compose-refs/dist/index.mjs","../../node_modules/@radix-ui/react-slot/dist/index.mjs","../../node_modules/class-variance-authority/dist/index.mjs","../../src/components/ui/button.tsx","../../src/components/onboarding/steps/PersonalInfoStep.tsx","../../src/components/onboarding/steps/DemographicsStep.tsx","../../src/components/onboarding/steps/MotivationStep.tsx","../../src/components/onboarding/steps/CurrentMoodStep.tsx","../../src/components/onboarding/steps/DepressionScreeningStep.tsx","../../src/components/onboarding/steps/AnxietyScreeningStep.tsx","../../src/components/onboarding/steps/MentalHealthHistoryStep.tsx","../../src/components/onboarding/steps/CurrentTreatmentStep.tsx","../../src/components/onboarding/steps/SleepQualityStep.tsx","../../src/components/onboarding/steps/SocialSupportStep.tsx","../../src/components/onboarding/OnBoardingModal.tsx","../../src/components/onboarding/steps/RecoveryEmailStep.tsx","../../src/components/onboarding/steps/CompletionStep.tsx","../../src/components/ChatAI/FloatingChatButton.tsx","../../src/pages/HomePage.tsx","../../node_modules/@babel/runtime/helpers/esm/typeof.js","../../node_modules/fflate/esm/browser.js","../../node_modules/jspdf/dist/jspdf.es.min.js","../../src/infra/utils/dateUtils.ts","../../src/components/FocusTextarea.tsx","../../src/components/MoodEditForm.tsx","../../src/components/MoodAddForm.tsx","../../src/pages/HistoryPage.tsx","../../src/components/MoodEntryForm.tsx","../../src/pages/RecordPage.tsx","../../src/pages/BatchMoodEntryPage.tsx","../../src/data/mental-health-content.ts","../../src/components/ContentCard.tsx","../../src/components/DiseaseCodeDetails.tsx","../../src/components/ContentAdsense.tsx","../../src/pages/ContentPage.tsx","../../src/hooks/useDebounce.ts","../../src/components/profile/RecoveryEmailManager.tsx","../../src/pages/ProfilePage.tsx","../../src/pages/LoginPage.tsx","../../src/pages/LandingPage.tsx","../../src/services/stripeService.ts","../../src/components/PaymentButton.tsx","../../src/pages/PlansPage.tsx","../../src/pages/AboutPage.tsx","../../src/pages/PaymentSuccessPage.tsx","../../src/pages/PaymentCancelPage.tsx","../../src/pages/PrivacyPolicyPage.tsx","../../src/pages/TermsOfUsePage.tsx","../../src/pages/ChatPage.tsx","../../src/pages/ChatSessionsPage.tsx","../../node_modules/@stripe/stripe-js/dist/index.mjs","../../node_modules/prop-types/factoryWithThrowingShims.js","../../node_modules/prop-types/index.js","../../node_modules/prop-types/lib/ReactPropTypesSecret.js","../../node_modules/@stripe/react-stripe-js/dist/react-stripe.esm.mjs","../../src/contexts/StripeContext.tsx","../../src/components/ProtectedRoute.tsx","../../src/components/ScrollToTop.tsx","../../src/App.tsx","../../src/main.tsx"],"sourcesContent":["'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.3\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n // START: Modifications:\n // Apply guards for `Object.create(null)` handling. See:\n // - https://github.com/FormidableLabs/react-fast-compare/issues/64\n // - https://github.com/epoberezkin/fast-deep-equal/issues/49\n if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();\n // END: Modifications\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\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\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\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\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 var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || (ret === void 0 && valueA !== valueB)) {\n return false;\n }\n }\n\n return true;\n};\n","// src/index.tsx\nimport React3, { Component as Component3 } from \"react\";\nimport fastCompare from \"react-fast-compare\";\nimport invariant from \"invariant\";\n\n// src/Provider.tsx\nimport React2, { Component } from \"react\";\n\n// src/server.ts\nimport React from \"react\";\n\n// src/constants.ts\nvar TAG_NAMES = /* @__PURE__ */ ((TAG_NAMES2) => {\n TAG_NAMES2[\"BASE\"] = \"base\";\n TAG_NAMES2[\"BODY\"] = \"body\";\n TAG_NAMES2[\"HEAD\"] = \"head\";\n TAG_NAMES2[\"HTML\"] = \"html\";\n TAG_NAMES2[\"LINK\"] = \"link\";\n TAG_NAMES2[\"META\"] = \"meta\";\n TAG_NAMES2[\"NOSCRIPT\"] = \"noscript\";\n TAG_NAMES2[\"SCRIPT\"] = \"script\";\n TAG_NAMES2[\"STYLE\"] = \"style\";\n TAG_NAMES2[\"TITLE\"] = \"title\";\n TAG_NAMES2[\"FRAGMENT\"] = \"Symbol(react.fragment)\";\n return TAG_NAMES2;\n})(TAG_NAMES || {});\nvar SEO_PRIORITY_TAGS = {\n link: { rel: [\"amphtml\", \"canonical\", \"alternate\"] },\n script: { type: [\"application/ld+json\"] },\n meta: {\n charset: \"\",\n name: [\"generator\", \"robots\", \"description\"],\n property: [\n \"og:type\",\n \"og:title\",\n \"og:url\",\n \"og:image\",\n \"og:image:alt\",\n \"og:description\",\n \"twitter:url\",\n \"twitter:title\",\n \"twitter:description\",\n \"twitter:image\",\n \"twitter:image:alt\",\n \"twitter:card\",\n \"twitter:site\"\n ]\n }\n};\nvar VALID_TAG_NAMES = Object.values(TAG_NAMES);\nvar REACT_TAG_MAP = {\n accesskey: \"accessKey\",\n charset: \"charSet\",\n class: \"className\",\n contenteditable: \"contentEditable\",\n contextmenu: \"contextMenu\",\n \"http-equiv\": \"httpEquiv\",\n itemprop: \"itemProp\",\n tabindex: \"tabIndex\"\n};\nvar HTML_TAG_MAP = Object.entries(REACT_TAG_MAP).reduce(\n (carry, [key, value]) => {\n carry[value] = key;\n return carry;\n },\n {}\n);\nvar HELMET_ATTRIBUTE = \"data-rh\";\n\n// src/utils.ts\nvar HELMET_PROPS = {\n DEFAULT_TITLE: \"defaultTitle\",\n DEFER: \"defer\",\n ENCODE_SPECIAL_CHARACTERS: \"encodeSpecialCharacters\",\n ON_CHANGE_CLIENT_STATE: \"onChangeClientState\",\n TITLE_TEMPLATE: \"titleTemplate\",\n PRIORITIZE_SEO_TAGS: \"prioritizeSeoTags\"\n};\nvar getInnermostProperty = (propsList, property) => {\n for (let i = propsList.length - 1; i >= 0; i -= 1) {\n const props = propsList[i];\n if (Object.prototype.hasOwnProperty.call(props, property)) {\n return props[property];\n }\n }\n return null;\n};\nvar getTitleFromPropsList = (propsList) => {\n let innermostTitle = getInnermostProperty(propsList, \"title\" /* TITLE */);\n const innermostTemplate = getInnermostProperty(propsList, HELMET_PROPS.TITLE_TEMPLATE);\n if (Array.isArray(innermostTitle)) {\n innermostTitle = innermostTitle.join(\"\");\n }\n if (innermostTemplate && innermostTitle) {\n return innermostTemplate.replace(/%s/g, () => innermostTitle);\n }\n const innermostDefaultTitle = getInnermostProperty(propsList, HELMET_PROPS.DEFAULT_TITLE);\n return innermostTitle || innermostDefaultTitle || void 0;\n};\nvar getOnChangeClientState = (propsList) => getInnermostProperty(propsList, HELMET_PROPS.ON_CHANGE_CLIENT_STATE) || (() => {\n});\nvar getAttributesFromPropsList = (tagType, propsList) => propsList.filter((props) => typeof props[tagType] !== \"undefined\").map((props) => props[tagType]).reduce((tagAttrs, current) => ({ ...tagAttrs, ...current }), {});\nvar getBaseTagFromPropsList = (primaryAttributes, propsList) => propsList.filter((props) => typeof props[\"base\" /* BASE */] !== \"undefined\").map((props) => props[\"base\" /* BASE */]).reverse().reduce((innermostBaseTag, tag) => {\n if (!innermostBaseTag.length) {\n const keys = Object.keys(tag);\n for (let i = 0; i < keys.length; i += 1) {\n const attributeKey = keys[i];\n const lowerCaseAttributeKey = attributeKey.toLowerCase();\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && tag[lowerCaseAttributeKey]) {\n return innermostBaseTag.concat(tag);\n }\n }\n }\n return innermostBaseTag;\n}, []);\nvar warn = (msg) => console && typeof console.warn === \"function\" && console.warn(msg);\nvar getTagsFromPropsList = (tagName, primaryAttributes, propsList) => {\n const approvedSeenTags = {};\n return propsList.filter((props) => {\n if (Array.isArray(props[tagName])) {\n return true;\n }\n if (typeof props[tagName] !== \"undefined\") {\n warn(\n `Helmet: ${tagName} should be of type \"Array\". Instead found type \"${typeof props[tagName]}\"`\n );\n }\n return false;\n }).map((props) => props[tagName]).reverse().reduce((approvedTags, instanceTags) => {\n const instanceSeenTags = {};\n instanceTags.filter((tag) => {\n let primaryAttributeKey;\n const keys2 = Object.keys(tag);\n for (let i = 0; i < keys2.length; i += 1) {\n const attributeKey = keys2[i];\n const lowerCaseAttributeKey = attributeKey.toLowerCase();\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && !(primaryAttributeKey === \"rel\" /* REL */ && tag[primaryAttributeKey].toLowerCase() === \"canonical\") && !(lowerCaseAttributeKey === \"rel\" /* REL */ && tag[lowerCaseAttributeKey].toLowerCase() === \"stylesheet\")) {\n primaryAttributeKey = lowerCaseAttributeKey;\n }\n if (primaryAttributes.indexOf(attributeKey) !== -1 && (attributeKey === \"innerHTML\" /* INNER_HTML */ || attributeKey === \"cssText\" /* CSS_TEXT */ || attributeKey === \"itemprop\" /* ITEM_PROP */)) {\n primaryAttributeKey = attributeKey;\n }\n }\n if (!primaryAttributeKey || !tag[primaryAttributeKey]) {\n return false;\n }\n const value = tag[primaryAttributeKey].toLowerCase();\n if (!approvedSeenTags[primaryAttributeKey]) {\n approvedSeenTags[primaryAttributeKey] = {};\n }\n if (!instanceSeenTags[primaryAttributeKey]) {\n instanceSeenTags[primaryAttributeKey] = {};\n }\n if (!approvedSeenTags[primaryAttributeKey][value]) {\n instanceSeenTags[primaryAttributeKey][value] = true;\n return true;\n }\n return false;\n }).reverse().forEach((tag) => approvedTags.push(tag));\n const keys = Object.keys(instanceSeenTags);\n for (let i = 0; i < keys.length; i += 1) {\n const attributeKey = keys[i];\n const tagUnion = {\n ...approvedSeenTags[attributeKey],\n ...instanceSeenTags[attributeKey]\n };\n approvedSeenTags[attributeKey] = tagUnion;\n }\n return approvedTags;\n }, []).reverse();\n};\nvar getAnyTrueFromPropsList = (propsList, checkedTag) => {\n if (Array.isArray(propsList) && propsList.length) {\n for (let index = 0; index < propsList.length; index += 1) {\n const prop = propsList[index];\n if (prop[checkedTag]) {\n return true;\n }\n }\n }\n return false;\n};\nvar reducePropsToState = (propsList) => ({\n baseTag: getBaseTagFromPropsList([\"href\" /* HREF */], propsList),\n bodyAttributes: getAttributesFromPropsList(\"bodyAttributes\" /* BODY */, propsList),\n defer: getInnermostProperty(propsList, HELMET_PROPS.DEFER),\n encode: getInnermostProperty(propsList, HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),\n htmlAttributes: getAttributesFromPropsList(\"htmlAttributes\" /* HTML */, propsList),\n linkTags: getTagsFromPropsList(\n \"link\" /* LINK */,\n [\"rel\" /* REL */, \"href\" /* HREF */],\n propsList\n ),\n metaTags: getTagsFromPropsList(\n \"meta\" /* META */,\n [\n \"name\" /* NAME */,\n \"charset\" /* CHARSET */,\n \"http-equiv\" /* HTTPEQUIV */,\n \"property\" /* PROPERTY */,\n \"itemprop\" /* ITEM_PROP */\n ],\n propsList\n ),\n noscriptTags: getTagsFromPropsList(\"noscript\" /* NOSCRIPT */, [\"innerHTML\" /* INNER_HTML */], propsList),\n onChangeClientState: getOnChangeClientState(propsList),\n scriptTags: getTagsFromPropsList(\n \"script\" /* SCRIPT */,\n [\"src\" /* SRC */, \"innerHTML\" /* INNER_HTML */],\n propsList\n ),\n styleTags: getTagsFromPropsList(\"style\" /* STYLE */, [\"cssText\" /* CSS_TEXT */], propsList),\n title: getTitleFromPropsList(propsList),\n titleAttributes: getAttributesFromPropsList(\"titleAttributes\" /* TITLE */, propsList),\n prioritizeSeoTags: getAnyTrueFromPropsList(propsList, HELMET_PROPS.PRIORITIZE_SEO_TAGS)\n});\nvar flattenArray = (possibleArray) => Array.isArray(possibleArray) ? possibleArray.join(\"\") : possibleArray;\nvar checkIfPropsMatch = (props, toMatch) => {\n const keys = Object.keys(props);\n for (let i = 0; i < keys.length; i += 1) {\n if (toMatch[keys[i]] && toMatch[keys[i]].includes(props[keys[i]])) {\n return true;\n }\n }\n return false;\n};\nvar prioritizer = (elementsList, propsToMatch) => {\n if (Array.isArray(elementsList)) {\n return elementsList.reduce(\n (acc, elementAttrs) => {\n if (checkIfPropsMatch(elementAttrs, propsToMatch)) {\n acc.priority.push(elementAttrs);\n } else {\n acc.default.push(elementAttrs);\n }\n return acc;\n },\n { priority: [], default: [] }\n );\n }\n return { default: elementsList, priority: [] };\n};\nvar without = (obj, key) => {\n return {\n ...obj,\n [key]: void 0\n };\n};\n\n// src/server.ts\nvar SELF_CLOSING_TAGS = [\"noscript\" /* NOSCRIPT */, \"script\" /* SCRIPT */, \"style\" /* STYLE */];\nvar encodeSpecialCharacters = (str, encode = true) => {\n if (encode === false) {\n return String(str);\n }\n return String(str).replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\").replace(/'/g, \"'\");\n};\nvar generateElementAttributesAsString = (attributes) => Object.keys(attributes).reduce((str, key) => {\n const attr = typeof attributes[key] !== \"undefined\" ? `${key}=\"${attributes[key]}\"` : `${key}`;\n return str ? `${str} ${attr}` : attr;\n}, \"\");\nvar generateTitleAsString = (type, title, attributes, encode) => {\n const attributeString = generateElementAttributesAsString(attributes);\n const flattenedTitle = flattenArray(title);\n return attributeString ? `<${type} ${HELMET_ATTRIBUTE}=\"true\" ${attributeString}>${encodeSpecialCharacters(\n flattenedTitle,\n encode\n )}` : `<${type} ${HELMET_ATTRIBUTE}=\"true\">${encodeSpecialCharacters(\n flattenedTitle,\n encode\n )}`;\n};\nvar generateTagsAsString = (type, tags, encode = true) => tags.reduce((str, t) => {\n const tag = t;\n const attributeHtml = Object.keys(tag).filter(\n (attribute) => !(attribute === \"innerHTML\" /* INNER_HTML */ || attribute === \"cssText\" /* CSS_TEXT */)\n ).reduce((string, attribute) => {\n const attr = typeof tag[attribute] === \"undefined\" ? attribute : `${attribute}=\"${encodeSpecialCharacters(tag[attribute], encode)}\"`;\n return string ? `${string} ${attr}` : attr;\n }, \"\");\n const tagContent = tag.innerHTML || tag.cssText || \"\";\n const isSelfClosing = SELF_CLOSING_TAGS.indexOf(type) === -1;\n return `${str}<${type} ${HELMET_ATTRIBUTE}=\"true\" ${attributeHtml}${isSelfClosing ? `/>` : `>${tagContent}`}`;\n}, \"\");\nvar convertElementAttributesToReactProps = (attributes, initProps = {}) => Object.keys(attributes).reduce((obj, key) => {\n const mapped = REACT_TAG_MAP[key];\n obj[mapped || key] = attributes[key];\n return obj;\n}, initProps);\nvar generateTitleAsReactComponent = (_type, title, attributes) => {\n const initProps = {\n key: title,\n [HELMET_ATTRIBUTE]: true\n };\n const props = convertElementAttributesToReactProps(attributes, initProps);\n return [React.createElement(\"title\" /* TITLE */, props, title)];\n};\nvar generateTagsAsReactComponent = (type, tags) => tags.map((tag, i) => {\n const mappedTag = {\n key: i,\n [HELMET_ATTRIBUTE]: true\n };\n Object.keys(tag).forEach((attribute) => {\n const mapped = REACT_TAG_MAP[attribute];\n const mappedAttribute = mapped || attribute;\n if (mappedAttribute === \"innerHTML\" /* INNER_HTML */ || mappedAttribute === \"cssText\" /* CSS_TEXT */) {\n const content = tag.innerHTML || tag.cssText;\n mappedTag.dangerouslySetInnerHTML = { __html: content };\n } else {\n mappedTag[mappedAttribute] = tag[attribute];\n }\n });\n return React.createElement(type, mappedTag);\n});\nvar getMethodsForTag = (type, tags, encode = true) => {\n switch (type) {\n case \"title\" /* TITLE */:\n return {\n toComponent: () => generateTitleAsReactComponent(type, tags.title, tags.titleAttributes),\n toString: () => generateTitleAsString(type, tags.title, tags.titleAttributes, encode)\n };\n case \"bodyAttributes\" /* BODY */:\n case \"htmlAttributes\" /* HTML */:\n return {\n toComponent: () => convertElementAttributesToReactProps(tags),\n toString: () => generateElementAttributesAsString(tags)\n };\n default:\n return {\n toComponent: () => generateTagsAsReactComponent(type, tags),\n toString: () => generateTagsAsString(type, tags, encode)\n };\n }\n};\nvar getPriorityMethods = ({ metaTags, linkTags, scriptTags, encode }) => {\n const meta = prioritizer(metaTags, SEO_PRIORITY_TAGS.meta);\n const link = prioritizer(linkTags, SEO_PRIORITY_TAGS.link);\n const script = prioritizer(scriptTags, SEO_PRIORITY_TAGS.script);\n const priorityMethods = {\n toComponent: () => [\n ...generateTagsAsReactComponent(\"meta\" /* META */, meta.priority),\n ...generateTagsAsReactComponent(\"link\" /* LINK */, link.priority),\n ...generateTagsAsReactComponent(\"script\" /* SCRIPT */, script.priority)\n ],\n toString: () => (\n // generate all the tags as strings and concatenate them\n `${getMethodsForTag(\"meta\" /* META */, meta.priority, encode)} ${getMethodsForTag(\n \"link\" /* LINK */,\n link.priority,\n encode\n )} ${getMethodsForTag(\"script\" /* SCRIPT */, script.priority, encode)}`\n )\n };\n return {\n priorityMethods,\n metaTags: meta.default,\n linkTags: link.default,\n scriptTags: script.default\n };\n};\nvar mapStateOnServer = (props) => {\n const {\n baseTag,\n bodyAttributes,\n encode = true,\n htmlAttributes,\n noscriptTags,\n styleTags,\n title = \"\",\n titleAttributes,\n prioritizeSeoTags\n } = props;\n let { linkTags, metaTags, scriptTags } = props;\n let priorityMethods = {\n toComponent: () => {\n },\n toString: () => \"\"\n };\n if (prioritizeSeoTags) {\n ({ priorityMethods, linkTags, metaTags, scriptTags } = getPriorityMethods(props));\n }\n return {\n priority: priorityMethods,\n base: getMethodsForTag(\"base\" /* BASE */, baseTag, encode),\n bodyAttributes: getMethodsForTag(\"bodyAttributes\" /* BODY */, bodyAttributes, encode),\n htmlAttributes: getMethodsForTag(\"htmlAttributes\" /* HTML */, htmlAttributes, encode),\n link: getMethodsForTag(\"link\" /* LINK */, linkTags, encode),\n meta: getMethodsForTag(\"meta\" /* META */, metaTags, encode),\n noscript: getMethodsForTag(\"noscript\" /* NOSCRIPT */, noscriptTags, encode),\n script: getMethodsForTag(\"script\" /* SCRIPT */, scriptTags, encode),\n style: getMethodsForTag(\"style\" /* STYLE */, styleTags, encode),\n title: getMethodsForTag(\"title\" /* TITLE */, { title, titleAttributes }, encode)\n };\n};\nvar server_default = mapStateOnServer;\n\n// src/HelmetData.ts\nvar instances = [];\nvar isDocument = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\nvar HelmetData = class {\n instances = [];\n canUseDOM = isDocument;\n context;\n value = {\n setHelmet: (serverState) => {\n this.context.helmet = serverState;\n },\n helmetInstances: {\n get: () => this.canUseDOM ? instances : this.instances,\n add: (instance) => {\n (this.canUseDOM ? instances : this.instances).push(instance);\n },\n remove: (instance) => {\n const index = (this.canUseDOM ? instances : this.instances).indexOf(instance);\n (this.canUseDOM ? instances : this.instances).splice(index, 1);\n }\n }\n };\n constructor(context, canUseDOM) {\n this.context = context;\n this.canUseDOM = canUseDOM || false;\n if (!canUseDOM) {\n context.helmet = server_default({\n baseTag: [],\n bodyAttributes: {},\n encodeSpecialCharacters: true,\n htmlAttributes: {},\n linkTags: [],\n metaTags: [],\n noscriptTags: [],\n scriptTags: [],\n styleTags: [],\n title: \"\",\n titleAttributes: {}\n });\n }\n }\n};\n\n// src/Provider.tsx\nvar defaultValue = {};\nvar Context = React2.createContext(defaultValue);\nvar HelmetProvider = class _HelmetProvider extends Component {\n static canUseDOM = isDocument;\n helmetData;\n constructor(props) {\n super(props);\n this.helmetData = new HelmetData(this.props.context || {}, _HelmetProvider.canUseDOM);\n }\n render() {\n return /* @__PURE__ */ React2.createElement(Context.Provider, { value: this.helmetData.value }, this.props.children);\n }\n};\n\n// src/Dispatcher.tsx\nimport { Component as Component2 } from \"react\";\nimport shallowEqual from \"shallowequal\";\n\n// src/client.ts\nvar updateTags = (type, tags) => {\n const headElement = document.head || document.querySelector(\"head\" /* HEAD */);\n const tagNodes = headElement.querySelectorAll(`${type}[${HELMET_ATTRIBUTE}]`);\n const oldTags = [].slice.call(tagNodes);\n const newTags = [];\n let indexToDelete;\n if (tags && tags.length) {\n tags.forEach((tag) => {\n const newElement = document.createElement(type);\n for (const attribute in tag) {\n if (Object.prototype.hasOwnProperty.call(tag, attribute)) {\n if (attribute === \"innerHTML\" /* INNER_HTML */) {\n newElement.innerHTML = tag.innerHTML;\n } else if (attribute === \"cssText\" /* CSS_TEXT */) {\n if (newElement.styleSheet) {\n newElement.styleSheet.cssText = tag.cssText;\n } else {\n newElement.appendChild(document.createTextNode(tag.cssText));\n }\n } else {\n const attr = attribute;\n const value = typeof tag[attr] === \"undefined\" ? \"\" : tag[attr];\n newElement.setAttribute(attribute, value);\n }\n }\n }\n newElement.setAttribute(HELMET_ATTRIBUTE, \"true\");\n if (oldTags.some((existingTag, index) => {\n indexToDelete = index;\n return newElement.isEqualNode(existingTag);\n })) {\n oldTags.splice(indexToDelete, 1);\n } else {\n newTags.push(newElement);\n }\n });\n }\n oldTags.forEach((tag) => tag.parentNode?.removeChild(tag));\n newTags.forEach((tag) => headElement.appendChild(tag));\n return {\n oldTags,\n newTags\n };\n};\nvar updateAttributes = (tagName, attributes) => {\n const elementTag = document.getElementsByTagName(tagName)[0];\n if (!elementTag) {\n return;\n }\n const helmetAttributeString = elementTag.getAttribute(HELMET_ATTRIBUTE);\n const helmetAttributes = helmetAttributeString ? helmetAttributeString.split(\",\") : [];\n const attributesToRemove = [...helmetAttributes];\n const attributeKeys = Object.keys(attributes);\n for (const attribute of attributeKeys) {\n const value = attributes[attribute] || \"\";\n if (elementTag.getAttribute(attribute) !== value) {\n elementTag.setAttribute(attribute, value);\n }\n if (helmetAttributes.indexOf(attribute) === -1) {\n helmetAttributes.push(attribute);\n }\n const indexToSave = attributesToRemove.indexOf(attribute);\n if (indexToSave !== -1) {\n attributesToRemove.splice(indexToSave, 1);\n }\n }\n for (let i = attributesToRemove.length - 1; i >= 0; i -= 1) {\n elementTag.removeAttribute(attributesToRemove[i]);\n }\n if (helmetAttributes.length === attributesToRemove.length) {\n elementTag.removeAttribute(HELMET_ATTRIBUTE);\n } else if (elementTag.getAttribute(HELMET_ATTRIBUTE) !== attributeKeys.join(\",\")) {\n elementTag.setAttribute(HELMET_ATTRIBUTE, attributeKeys.join(\",\"));\n }\n};\nvar updateTitle = (title, attributes) => {\n if (typeof title !== \"undefined\" && document.title !== title) {\n document.title = flattenArray(title);\n }\n updateAttributes(\"title\" /* TITLE */, attributes);\n};\nvar commitTagChanges = (newState, cb) => {\n const {\n baseTag,\n bodyAttributes,\n htmlAttributes,\n linkTags,\n metaTags,\n noscriptTags,\n onChangeClientState,\n scriptTags,\n styleTags,\n title,\n titleAttributes\n } = newState;\n updateAttributes(\"body\" /* BODY */, bodyAttributes);\n updateAttributes(\"html\" /* HTML */, htmlAttributes);\n updateTitle(title, titleAttributes);\n const tagUpdates = {\n baseTag: updateTags(\"base\" /* BASE */, baseTag),\n linkTags: updateTags(\"link\" /* LINK */, linkTags),\n metaTags: updateTags(\"meta\" /* META */, metaTags),\n noscriptTags: updateTags(\"noscript\" /* NOSCRIPT */, noscriptTags),\n scriptTags: updateTags(\"script\" /* SCRIPT */, scriptTags),\n styleTags: updateTags(\"style\" /* STYLE */, styleTags)\n };\n const addedTags = {};\n const removedTags = {};\n Object.keys(tagUpdates).forEach((tagType) => {\n const { newTags, oldTags } = tagUpdates[tagType];\n if (newTags.length) {\n addedTags[tagType] = newTags;\n }\n if (oldTags.length) {\n removedTags[tagType] = tagUpdates[tagType].oldTags;\n }\n });\n if (cb) {\n cb();\n }\n onChangeClientState(newState, addedTags, removedTags);\n};\nvar _helmetCallback = null;\nvar handleStateChangeOnClient = (newState) => {\n if (_helmetCallback) {\n cancelAnimationFrame(_helmetCallback);\n }\n if (newState.defer) {\n _helmetCallback = requestAnimationFrame(() => {\n commitTagChanges(newState, () => {\n _helmetCallback = null;\n });\n });\n } else {\n commitTagChanges(newState);\n _helmetCallback = null;\n }\n};\nvar client_default = handleStateChangeOnClient;\n\n// src/Dispatcher.tsx\nvar HelmetDispatcher = class extends Component2 {\n rendered = false;\n shouldComponentUpdate(nextProps) {\n return !shallowEqual(nextProps, this.props);\n }\n componentDidUpdate() {\n this.emitChange();\n }\n componentWillUnmount() {\n const { helmetInstances } = this.props.context;\n helmetInstances.remove(this);\n this.emitChange();\n }\n emitChange() {\n const { helmetInstances, setHelmet } = this.props.context;\n let serverState = null;\n const state = reducePropsToState(\n helmetInstances.get().map((instance) => {\n const props = { ...instance.props };\n delete props.context;\n return props;\n })\n );\n if (HelmetProvider.canUseDOM) {\n client_default(state);\n } else if (server_default) {\n serverState = server_default(state);\n }\n setHelmet(serverState);\n }\n // componentWillMount will be deprecated\n // for SSR, initialize on first render\n // constructor is also unsafe in StrictMode\n init() {\n if (this.rendered) {\n return;\n }\n this.rendered = true;\n const { helmetInstances } = this.props.context;\n helmetInstances.add(this);\n this.emitChange();\n }\n render() {\n this.init();\n return null;\n }\n};\n\n// src/index.tsx\nvar Helmet = class extends Component3 {\n static defaultProps = {\n defer: true,\n encodeSpecialCharacters: true,\n prioritizeSeoTags: false\n };\n shouldComponentUpdate(nextProps) {\n return !fastCompare(without(this.props, \"helmetData\"), without(nextProps, \"helmetData\"));\n }\n mapNestedChildrenToProps(child, nestedChildren) {\n if (!nestedChildren) {\n return null;\n }\n switch (child.type) {\n case \"script\" /* SCRIPT */:\n case \"noscript\" /* NOSCRIPT */:\n return {\n innerHTML: nestedChildren\n };\n case \"style\" /* STYLE */:\n return {\n cssText: nestedChildren\n };\n default:\n throw new Error(\n `<${child.type} /> elements are self-closing and can not contain children. Refer to our API for more information.`\n );\n }\n }\n flattenArrayTypeChildren(child, arrayTypeChildren, newChildProps, nestedChildren) {\n return {\n ...arrayTypeChildren,\n [child.type]: [\n ...arrayTypeChildren[child.type] || [],\n {\n ...newChildProps,\n ...this.mapNestedChildrenToProps(child, nestedChildren)\n }\n ]\n };\n }\n mapObjectTypeChildren(child, newProps, newChildProps, nestedChildren) {\n switch (child.type) {\n case \"title\" /* TITLE */:\n return {\n ...newProps,\n [child.type]: nestedChildren,\n titleAttributes: { ...newChildProps }\n };\n case \"body\" /* BODY */:\n return {\n ...newProps,\n bodyAttributes: { ...newChildProps }\n };\n case \"html\" /* HTML */:\n return {\n ...newProps,\n htmlAttributes: { ...newChildProps }\n };\n default:\n return {\n ...newProps,\n [child.type]: { ...newChildProps }\n };\n }\n }\n mapArrayTypeChildrenToProps(arrayTypeChildren, newProps) {\n let newFlattenedProps = { ...newProps };\n Object.keys(arrayTypeChildren).forEach((arrayChildName) => {\n newFlattenedProps = {\n ...newFlattenedProps,\n [arrayChildName]: arrayTypeChildren[arrayChildName]\n };\n });\n return newFlattenedProps;\n }\n warnOnInvalidChildren(child, nestedChildren) {\n invariant(\n VALID_TAG_NAMES.some((name) => child.type === name),\n typeof child.type === \"function\" ? `You may be attempting to nest components within each other, which is not allowed. Refer to our API for more information.` : `Only elements types ${VALID_TAG_NAMES.join(\n \", \"\n )} are allowed. Helmet does not support rendering <${child.type}> elements. Refer to our API for more information.`\n );\n invariant(\n !nestedChildren || typeof nestedChildren === \"string\" || Array.isArray(nestedChildren) && !nestedChildren.some((nestedChild) => typeof nestedChild !== \"string\"),\n `Helmet expects a string as a child of <${child.type}>. Did you forget to wrap your children in braces? ( <${child.type}>{\\`\\`} ) Refer to our API for more information.`\n );\n return true;\n }\n mapChildrenToProps(children, newProps) {\n let arrayTypeChildren = {};\n React3.Children.forEach(children, (child) => {\n if (!child || !child.props) {\n return;\n }\n const { children: nestedChildren, ...childProps } = child.props;\n const newChildProps = Object.keys(childProps).reduce((obj, key) => {\n obj[HTML_TAG_MAP[key] || key] = childProps[key];\n return obj;\n }, {});\n let { type } = child;\n if (typeof type === \"symbol\") {\n type = type.toString();\n } else {\n this.warnOnInvalidChildren(child, nestedChildren);\n }\n switch (type) {\n case \"Symbol(react.fragment)\" /* FRAGMENT */:\n newProps = this.mapChildrenToProps(nestedChildren, newProps);\n break;\n case \"link\" /* LINK */:\n case \"meta\" /* META */:\n case \"noscript\" /* NOSCRIPT */:\n case \"script\" /* SCRIPT */:\n case \"style\" /* STYLE */:\n arrayTypeChildren = this.flattenArrayTypeChildren(\n child,\n arrayTypeChildren,\n newChildProps,\n nestedChildren\n );\n break;\n default:\n newProps = this.mapObjectTypeChildren(child, newProps, newChildProps, nestedChildren);\n break;\n }\n });\n return this.mapArrayTypeChildrenToProps(arrayTypeChildren, newProps);\n }\n render() {\n const { children, ...props } = this.props;\n let newProps = { ...props };\n let { helmetData } = props;\n if (children) {\n newProps = this.mapChildrenToProps(children, newProps);\n }\n if (helmetData && !(helmetData instanceof HelmetData)) {\n const data = helmetData;\n helmetData = new HelmetData(data.context, true);\n delete newProps.helmetData;\n }\n return helmetData ? /* @__PURE__ */ React3.createElement(HelmetDispatcher, { ...newProps, context: helmetData.value }) : /* @__PURE__ */ React3.createElement(Context.Consumer, null, (context) => /* @__PURE__ */ React3.createElement(HelmetDispatcher, { ...newProps, context }));\n }\n};\nexport {\n Helmet,\n HelmetData,\n HelmetProvider\n};\n","export class FunctionsError extends Error {\n constructor(message, name = 'FunctionsError', context) {\n super(message);\n this.name = name;\n this.context = context;\n }\n}\nexport class FunctionsFetchError extends FunctionsError {\n constructor(context) {\n super('Failed to send a request to the Edge Function', 'FunctionsFetchError', context);\n }\n}\nexport class FunctionsRelayError extends FunctionsError {\n constructor(context) {\n super('Relay Error invoking the Edge Function', 'FunctionsRelayError', context);\n }\n}\nexport class FunctionsHttpError extends FunctionsError {\n constructor(context) {\n super('Edge Function returned a non-2xx status code', 'FunctionsHttpError', context);\n }\n}\n// Define the enum for the 'region' property\nexport var FunctionRegion;\n(function (FunctionRegion) {\n FunctionRegion[\"Any\"] = \"any\";\n FunctionRegion[\"ApNortheast1\"] = \"ap-northeast-1\";\n FunctionRegion[\"ApNortheast2\"] = \"ap-northeast-2\";\n FunctionRegion[\"ApSouth1\"] = \"ap-south-1\";\n FunctionRegion[\"ApSoutheast1\"] = \"ap-southeast-1\";\n FunctionRegion[\"ApSoutheast2\"] = \"ap-southeast-2\";\n FunctionRegion[\"CaCentral1\"] = \"ca-central-1\";\n FunctionRegion[\"EuCentral1\"] = \"eu-central-1\";\n FunctionRegion[\"EuWest1\"] = \"eu-west-1\";\n FunctionRegion[\"EuWest2\"] = \"eu-west-2\";\n FunctionRegion[\"EuWest3\"] = \"eu-west-3\";\n FunctionRegion[\"SaEast1\"] = \"sa-east-1\";\n FunctionRegion[\"UsEast1\"] = \"us-east-1\";\n FunctionRegion[\"UsWest1\"] = \"us-west-1\";\n FunctionRegion[\"UsWest2\"] = \"us-west-2\";\n})(FunctionRegion || (FunctionRegion = {}));\n//# sourceMappingURL=types.js.map","var __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};\nimport { resolveFetch } from './helper';\nimport { FunctionsFetchError, FunctionsHttpError, FunctionsRelayError, FunctionRegion, } from './types';\nexport class FunctionsClient {\n constructor(url, { headers = {}, customFetch, region = FunctionRegion.Any, } = {}) {\n this.url = url;\n this.headers = headers;\n this.region = region;\n this.fetch = resolveFetch(customFetch);\n }\n /**\n * Updates the authorization header\n * @param token - the new jwt token sent in the authorisation header\n */\n setAuth(token) {\n this.headers.Authorization = `Bearer ${token}`;\n }\n /**\n * Invokes a function\n * @param functionName - The name of the Function to invoke.\n * @param options - Options for invoking the Function.\n */\n invoke(functionName, options = {}) {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const { headers, method, body: functionArgs } = options;\n let _headers = {};\n let { region } = options;\n if (!region) {\n region = this.region;\n }\n if (region && region !== 'any') {\n _headers['x-region'] = region;\n }\n let body;\n if (functionArgs &&\n ((headers && !Object.prototype.hasOwnProperty.call(headers, 'Content-Type')) || !headers)) {\n if ((typeof Blob !== 'undefined' && functionArgs instanceof Blob) ||\n functionArgs instanceof ArrayBuffer) {\n // will work for File as File inherits Blob\n // also works for ArrayBuffer as it is the same underlying structure as a Blob\n _headers['Content-Type'] = 'application/octet-stream';\n body = functionArgs;\n }\n else if (typeof functionArgs === 'string') {\n // plain string\n _headers['Content-Type'] = 'text/plain';\n body = functionArgs;\n }\n else if (typeof FormData !== 'undefined' && functionArgs instanceof FormData) {\n // don't set content-type headers\n // Request will automatically add the right boundary value\n body = functionArgs;\n }\n else {\n // default, assume this is JSON\n _headers['Content-Type'] = 'application/json';\n body = JSON.stringify(functionArgs);\n }\n }\n const response = yield this.fetch(`${this.url}/${functionName}`, {\n method: method || 'POST',\n // headers priority is (high to low):\n // 1. invoke-level headers\n // 2. client-level headers\n // 3. default Content-Type header\n headers: Object.assign(Object.assign(Object.assign({}, _headers), this.headers), headers),\n body,\n }).catch((fetchError) => {\n throw new FunctionsFetchError(fetchError);\n });\n const isRelayError = response.headers.get('x-relay-error');\n if (isRelayError && isRelayError === 'true') {\n throw new FunctionsRelayError(response);\n }\n if (!response.ok) {\n throw new FunctionsHttpError(response);\n }\n let responseType = ((_a = response.headers.get('Content-Type')) !== null && _a !== void 0 ? _a : 'text/plain').split(';')[0].trim();\n let data;\n if (responseType === 'application/json') {\n data = yield response.json();\n }\n else if (responseType === 'application/octet-stream') {\n data = yield response.blob();\n }\n else if (responseType === 'text/event-stream') {\n data = response;\n }\n else if (responseType === 'multipart/form-data') {\n data = yield response.formData();\n }\n else {\n // default to text\n data = yield response.text();\n }\n return { data, error: null };\n }\n catch (error) {\n return { data: null, error };\n }\n });\n }\n}\n//# sourceMappingURL=FunctionsClient.js.map","export const resolveFetch = (customFetch) => {\n let _fetch;\n if (customFetch) {\n _fetch = customFetch;\n }\n else if (typeof fetch === 'undefined') {\n _fetch = (...args) => import('@supabase/node-fetch').then(({ default: fetch }) => fetch(...args));\n }\n else {\n _fetch = fetch;\n }\n return (...args) => _fetch(...args);\n};\n//# sourceMappingURL=helper.js.map","\"use strict\";\n\n// ref: https://github.com/tc39/proposal-global\nvar getGlobal = function() {\n // the only reliable means to get the global object is\n // `Function('return this')()`\n // However, this causes CSP violations in Chrome apps.\n if (typeof self !== 'undefined') { return self; }\n if (typeof window !== 'undefined') { return window; }\n if (typeof global !== 'undefined') { return global; }\n throw new Error('unable to locate global object');\n}\n\nvar globalObject = getGlobal();\n\nexport const fetch = globalObject.fetch;\n\nexport default globalObject.fetch.bind(globalObject);\n\nexport const Headers = globalObject.Headers;\nexport const Request = globalObject.Request;\nexport const Response = globalObject.Response;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Error format\n *\n * {@link https://postgrest.org/en/stable/api.html?highlight=options#errors-and-http-status-codes}\n */\nclass PostgrestError extends Error {\n constructor(context) {\n super(context.message);\n this.name = 'PostgrestError';\n this.details = context.details;\n this.hint = context.hint;\n this.code = context.code;\n }\n}\nexports.default = PostgrestError;\n//# sourceMappingURL=PostgrestError.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// @ts-ignore\nconst node_fetch_1 = __importDefault(require(\"@supabase/node-fetch\"));\nconst PostgrestError_1 = __importDefault(require(\"./PostgrestError\"));\nclass PostgrestBuilder {\n constructor(builder) {\n this.shouldThrowOnError = false;\n this.method = builder.method;\n this.url = builder.url;\n this.headers = builder.headers;\n this.schema = builder.schema;\n this.body = builder.body;\n this.shouldThrowOnError = builder.shouldThrowOnError;\n this.signal = builder.signal;\n this.isMaybeSingle = builder.isMaybeSingle;\n if (builder.fetch) {\n this.fetch = builder.fetch;\n }\n else if (typeof fetch === 'undefined') {\n this.fetch = node_fetch_1.default;\n }\n else {\n this.fetch = fetch;\n }\n }\n /**\n * If there's an error with the query, throwOnError will reject the promise by\n * throwing the error instead of returning it as part of a successful response.\n *\n * {@link https://github.com/supabase/supabase-js/issues/92}\n */\n throwOnError() {\n this.shouldThrowOnError = true;\n return this;\n }\n /**\n * Set an HTTP header for the request.\n */\n setHeader(name, value) {\n this.headers = Object.assign({}, this.headers);\n this.headers[name] = value;\n return this;\n }\n then(onfulfilled, onrejected) {\n // https://postgrest.org/en/stable/api.html#switching-schemas\n if (this.schema === undefined) {\n // skip\n }\n else if (['GET', 'HEAD'].includes(this.method)) {\n this.headers['Accept-Profile'] = this.schema;\n }\n else {\n this.headers['Content-Profile'] = this.schema;\n }\n if (this.method !== 'GET' && this.method !== 'HEAD') {\n this.headers['Content-Type'] = 'application/json';\n }\n // NOTE: Invoke w/o `this` to avoid illegal invocation error.\n // https://github.com/supabase/postgrest-js/pull/247\n const _fetch = this.fetch;\n let res = _fetch(this.url.toString(), {\n method: this.method,\n headers: this.headers,\n body: JSON.stringify(this.body),\n signal: this.signal,\n }).then(async (res) => {\n var _a, _b, _c;\n let error = null;\n let data = null;\n let count = null;\n let status = res.status;\n let statusText = res.statusText;\n if (res.ok) {\n if (this.method !== 'HEAD') {\n const body = await res.text();\n if (body === '') {\n // Prefer: return=minimal\n }\n else if (this.headers['Accept'] === 'text/csv') {\n data = body;\n }\n else if (this.headers['Accept'] &&\n this.headers['Accept'].includes('application/vnd.pgrst.plan+text')) {\n data = body;\n }\n else {\n data = JSON.parse(body);\n }\n }\n const countHeader = (_a = this.headers['Prefer']) === null || _a === void 0 ? void 0 : _a.match(/count=(exact|planned|estimated)/);\n const contentRange = (_b = res.headers.get('content-range')) === null || _b === void 0 ? void 0 : _b.split('/');\n if (countHeader && contentRange && contentRange.length > 1) {\n count = parseInt(contentRange[1]);\n }\n // Temporary partial fix for https://github.com/supabase/postgrest-js/issues/361\n // Issue persists e.g. for `.insert([...]).select().maybeSingle()`\n if (this.isMaybeSingle && this.method === 'GET' && Array.isArray(data)) {\n if (data.length > 1) {\n error = {\n // https://github.com/PostgREST/postgrest/blob/a867d79c42419af16c18c3fb019eba8df992626f/src/PostgREST/Error.hs#L553\n code: 'PGRST116',\n details: `Results contain ${data.length} rows, application/vnd.pgrst.object+json requires 1 row`,\n hint: null,\n message: 'JSON object requested, multiple (or no) rows returned',\n };\n data = null;\n count = null;\n status = 406;\n statusText = 'Not Acceptable';\n }\n else if (data.length === 1) {\n data = data[0];\n }\n else {\n data = null;\n }\n }\n }\n else {\n const body = await res.text();\n try {\n error = JSON.parse(body);\n // Workaround for https://github.com/supabase/postgrest-js/issues/295\n if (Array.isArray(error) && res.status === 404) {\n data = [];\n error = null;\n status = 200;\n statusText = 'OK';\n }\n }\n catch (_d) {\n // Workaround for https://github.com/supabase/postgrest-js/issues/295\n if (res.status === 404 && body === '') {\n status = 204;\n statusText = 'No Content';\n }\n else {\n error = {\n message: body,\n };\n }\n }\n if (error && this.isMaybeSingle && ((_c = error === null || error === void 0 ? void 0 : error.details) === null || _c === void 0 ? void 0 : _c.includes('0 rows'))) {\n error = null;\n status = 200;\n statusText = 'OK';\n }\n if (error && this.shouldThrowOnError) {\n throw new PostgrestError_1.default(error);\n }\n }\n const postgrestResponse = {\n error,\n data,\n count,\n status,\n statusText,\n };\n return postgrestResponse;\n });\n if (!this.shouldThrowOnError) {\n res = res.catch((fetchError) => {\n var _a, _b, _c;\n return ({\n error: {\n message: `${(_a = fetchError === null || fetchError === void 0 ? void 0 : fetchError.name) !== null && _a !== void 0 ? _a : 'FetchError'}: ${fetchError === null || fetchError === void 0 ? void 0 : fetchError.message}`,\n details: `${(_b = fetchError === null || fetchError === void 0 ? void 0 : fetchError.stack) !== null && _b !== void 0 ? _b : ''}`,\n hint: '',\n code: `${(_c = fetchError === null || fetchError === void 0 ? void 0 : fetchError.code) !== null && _c !== void 0 ? _c : ''}`,\n },\n data: null,\n count: null,\n status: 0,\n statusText: '',\n });\n });\n }\n return res.then(onfulfilled, onrejected);\n }\n /**\n * Override the type of the returned `data`.\n *\n * @typeParam NewResult - The new result type to override with\n * @deprecated Use overrideTypes() method at the end of your call chain instead\n */\n returns() {\n /* istanbul ignore next */\n return this;\n }\n /**\n * Override the type of the returned `data` field in the response.\n *\n * @typeParam NewResult - The new type to cast the response data to\n * @typeParam Options - Optional type configuration (defaults to { merge: true })\n * @typeParam Options.merge - When true, merges the new type with existing return type. When false, replaces the existing types entirely (defaults to true)\n * @example\n * ```typescript\n * // Merge with existing types (default behavior)\n * const query = supabase\n * .from('users')\n * .select()\n * .overrideTypes<{ custom_field: string }>()\n *\n * // Replace existing types completely\n * const replaceQuery = supabase\n * .from('users')\n * .select()\n * .overrideTypes<{ id: number; name: string }, { merge: false }>()\n * ```\n * @returns A PostgrestBuilder instance with the new type\n */\n overrideTypes() {\n return this;\n }\n}\nexports.default = PostgrestBuilder;\n//# sourceMappingURL=PostgrestBuilder.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst PostgrestBuilder_1 = __importDefault(require(\"./PostgrestBuilder\"));\nclass PostgrestTransformBuilder extends PostgrestBuilder_1.default {\n /**\n * Perform a SELECT on the query result.\n *\n * By default, `.insert()`, `.update()`, `.upsert()`, and `.delete()` do not\n * return modified rows. By calling this method, modified rows are returned in\n * `data`.\n *\n * @param columns - The columns to retrieve, separated by commas\n */\n select(columns) {\n // Remove whitespaces except when quoted\n let quoted = false;\n const cleanedColumns = (columns !== null && columns !== void 0 ? columns : '*')\n .split('')\n .map((c) => {\n if (/\\s/.test(c) && !quoted) {\n return '';\n }\n if (c === '\"') {\n quoted = !quoted;\n }\n return c;\n })\n .join('');\n this.url.searchParams.set('select', cleanedColumns);\n if (this.headers['Prefer']) {\n this.headers['Prefer'] += ',';\n }\n this.headers['Prefer'] += 'return=representation';\n return this;\n }\n /**\n * Order the query result by `column`.\n *\n * You can call this method multiple times to order by multiple columns.\n *\n * You can order referenced tables, but it only affects the ordering of the\n * parent table if you use `!inner` in the query.\n *\n * @param column - The column to order by\n * @param options - Named parameters\n * @param options.ascending - If `true`, the result will be in ascending order\n * @param options.nullsFirst - If `true`, `null`s appear first. If `false`,\n * `null`s appear last.\n * @param options.referencedTable - Set this to order a referenced table by\n * its columns\n * @param options.foreignTable - Deprecated, use `options.referencedTable`\n * instead\n */\n order(column, { ascending = true, nullsFirst, foreignTable, referencedTable = foreignTable, } = {}) {\n const key = referencedTable ? `${referencedTable}.order` : 'order';\n const existingOrder = this.url.searchParams.get(key);\n this.url.searchParams.set(key, `${existingOrder ? `${existingOrder},` : ''}${column}.${ascending ? 'asc' : 'desc'}${nullsFirst === undefined ? '' : nullsFirst ? '.nullsfirst' : '.nullslast'}`);\n return this;\n }\n /**\n * Limit the query result by `count`.\n *\n * @param count - The maximum number of rows to return\n * @param options - Named parameters\n * @param options.referencedTable - Set this to limit rows of referenced\n * tables instead of the parent table\n * @param options.foreignTable - Deprecated, use `options.referencedTable`\n * instead\n */\n limit(count, { foreignTable, referencedTable = foreignTable, } = {}) {\n const key = typeof referencedTable === 'undefined' ? 'limit' : `${referencedTable}.limit`;\n this.url.searchParams.set(key, `${count}`);\n return this;\n }\n /**\n * Limit the query result by starting at an offset `from` and ending at the offset `to`.\n * Only records within this range are returned.\n * This respects the query order and if there is no order clause the range could behave unexpectedly.\n * The `from` and `to` values are 0-based and inclusive: `range(1, 3)` will include the second, third\n * and fourth rows of the query.\n *\n * @param from - The starting index from which to limit the result\n * @param to - The last index to which to limit the result\n * @param options - Named parameters\n * @param options.referencedTable - Set this to limit rows of referenced\n * tables instead of the parent table\n * @param options.foreignTable - Deprecated, use `options.referencedTable`\n * instead\n */\n range(from, to, { foreignTable, referencedTable = foreignTable, } = {}) {\n const keyOffset = typeof referencedTable === 'undefined' ? 'offset' : `${referencedTable}.offset`;\n const keyLimit = typeof referencedTable === 'undefined' ? 'limit' : `${referencedTable}.limit`;\n this.url.searchParams.set(keyOffset, `${from}`);\n // Range is inclusive, so add 1\n this.url.searchParams.set(keyLimit, `${to - from + 1}`);\n return this;\n }\n /**\n * Set the AbortSignal for the fetch request.\n *\n * @param signal - The AbortSignal to use for the fetch request\n */\n abortSignal(signal) {\n this.signal = signal;\n return this;\n }\n /**\n * Return `data` as a single object instead of an array of objects.\n *\n * Query result must be one row (e.g. using `.limit(1)`), otherwise this\n * returns an error.\n */\n single() {\n this.headers['Accept'] = 'application/vnd.pgrst.object+json';\n return this;\n }\n /**\n * Return `data` as a single object instead of an array of objects.\n *\n * Query result must be zero or one row (e.g. using `.limit(1)`), otherwise\n * this returns an error.\n */\n maybeSingle() {\n // Temporary partial fix for https://github.com/supabase/postgrest-js/issues/361\n // Issue persists e.g. for `.insert([...]).select().maybeSingle()`\n if (this.method === 'GET') {\n this.headers['Accept'] = 'application/json';\n }\n else {\n this.headers['Accept'] = 'application/vnd.pgrst.object+json';\n }\n this.isMaybeSingle = true;\n return this;\n }\n /**\n * Return `data` as a string in CSV format.\n */\n csv() {\n this.headers['Accept'] = 'text/csv';\n return this;\n }\n /**\n * Return `data` as an object in [GeoJSON](https://geojson.org) format.\n */\n geojson() {\n this.headers['Accept'] = 'application/geo+json';\n return this;\n }\n /**\n * Return `data` as the EXPLAIN plan for the query.\n *\n * You need to enable the\n * [db_plan_enabled](https://supabase.com/docs/guides/database/debugging-performance#enabling-explain)\n * setting before using this method.\n *\n * @param options - Named parameters\n *\n * @param options.analyze - If `true`, the query will be executed and the\n * actual run time will be returned\n *\n * @param options.verbose - If `true`, the query identifier will be returned\n * and `data` will include the output columns of the query\n *\n * @param options.settings - If `true`, include information on configuration\n * parameters that affect query planning\n *\n * @param options.buffers - If `true`, include information on buffer usage\n *\n * @param options.wal - If `true`, include information on WAL record generation\n *\n * @param options.format - The format of the output, can be `\"text\"` (default)\n * or `\"json\"`\n */\n explain({ analyze = false, verbose = false, settings = false, buffers = false, wal = false, format = 'text', } = {}) {\n var _a;\n const options = [\n analyze ? 'analyze' : null,\n verbose ? 'verbose' : null,\n settings ? 'settings' : null,\n buffers ? 'buffers' : null,\n wal ? 'wal' : null,\n ]\n .filter(Boolean)\n .join('|');\n // An Accept header can carry multiple media types but postgrest-js always sends one\n const forMediatype = (_a = this.headers['Accept']) !== null && _a !== void 0 ? _a : 'application/json';\n this.headers['Accept'] = `application/vnd.pgrst.plan+${format}; for=\"${forMediatype}\"; options=${options};`;\n if (format === 'json')\n return this;\n else\n return this;\n }\n /**\n * Rollback the query.\n *\n * `data` will still be returned, but the query is not committed.\n */\n rollback() {\n var _a;\n if (((_a = this.headers['Prefer']) !== null && _a !== void 0 ? _a : '').trim().length > 0) {\n this.headers['Prefer'] += ',tx=rollback';\n }\n else {\n this.headers['Prefer'] = 'tx=rollback';\n }\n return this;\n }\n /**\n * Override the type of the returned `data`.\n *\n * @typeParam NewResult - The new result type to override with\n * @deprecated Use overrideTypes() method at the end of your call chain instead\n */\n returns() {\n return this;\n }\n}\nexports.default = PostgrestTransformBuilder;\n//# sourceMappingURL=PostgrestTransformBuilder.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst PostgrestTransformBuilder_1 = __importDefault(require(\"./PostgrestTransformBuilder\"));\nclass PostgrestFilterBuilder extends PostgrestTransformBuilder_1.default {\n /**\n * Match only rows where `column` is equal to `value`.\n *\n * To check if the value of `column` is NULL, you should use `.is()` instead.\n *\n * @param column - The column to filter on\n * @param value - The value to filter with\n */\n eq(column, value) {\n this.url.searchParams.append(column, `eq.${value}`);\n return this;\n }\n /**\n * Match only rows where `column` is not equal to `value`.\n *\n * @param column - The column to filter on\n * @param value - The value to filter with\n */\n neq(column, value) {\n this.url.searchParams.append(column, `neq.${value}`);\n return this;\n }\n /**\n * Match only rows where `column` is greater than `value`.\n *\n * @param column - The column to filter on\n * @param value - The value to filter with\n */\n gt(column, value) {\n this.url.searchParams.append(column, `gt.${value}`);\n return this;\n }\n /**\n * Match only rows where `column` is greater than or equal to `value`.\n *\n * @param column - The column to filter on\n * @param value - The value to filter with\n */\n gte(column, value) {\n this.url.searchParams.append(column, `gte.${value}`);\n return this;\n }\n /**\n * Match only rows where `column` is less than `value`.\n *\n * @param column - The column to filter on\n * @param value - The value to filter with\n */\n lt(column, value) {\n this.url.searchParams.append(column, `lt.${value}`);\n return this;\n }\n /**\n * Match only rows where `column` is less than or equal to `value`.\n *\n * @param column - The column to filter on\n * @param value - The value to filter with\n */\n lte(column, value) {\n this.url.searchParams.append(column, `lte.${value}`);\n return this;\n }\n /**\n * Match only rows where `column` matches `pattern` case-sensitively.\n *\n * @param column - The column to filter on\n * @param pattern - The pattern to match with\n */\n like(column, pattern) {\n this.url.searchParams.append(column, `like.${pattern}`);\n return this;\n }\n /**\n * Match only rows where `column` matches all of `patterns` case-sensitively.\n *\n * @param column - The column to filter on\n * @param patterns - The patterns to match with\n */\n likeAllOf(column, patterns) {\n this.url.searchParams.append(column, `like(all).{${patterns.join(',')}}`);\n return this;\n }\n /**\n * Match only rows where `column` matches any of `patterns` case-sensitively.\n *\n * @param column - The column to filter on\n * @param patterns - The patterns to match with\n */\n likeAnyOf(column, patterns) {\n this.url.searchParams.append(column, `like(any).{${patterns.join(',')}}`);\n return this;\n }\n /**\n * Match only rows where `column` matches `pattern` case-insensitively.\n *\n * @param column - The column to filter on\n * @param pattern - The pattern to match with\n */\n ilike(column, pattern) {\n this.url.searchParams.append(column, `ilike.${pattern}`);\n return this;\n }\n /**\n * Match only rows where `column` matches all of `patterns` case-insensitively.\n *\n * @param column - The column to filter on\n * @param patterns - The patterns to match with\n */\n ilikeAllOf(column, patterns) {\n this.url.searchParams.append(column, `ilike(all).{${patterns.join(',')}}`);\n return this;\n }\n /**\n * Match only rows where `column` matches any of `patterns` case-insensitively.\n *\n * @param column - The column to filter on\n * @param patterns - The patterns to match with\n */\n ilikeAnyOf(column, patterns) {\n this.url.searchParams.append(column, `ilike(any).{${patterns.join(',')}}`);\n return this;\n }\n /**\n * Match only rows where `column` IS `value`.\n *\n * For non-boolean columns, this is only relevant for checking if the value of\n * `column` is NULL by setting `value` to `null`.\n *\n * For boolean columns, you can also set `value` to `true` or `false` and it\n * will behave the same way as `.eq()`.\n *\n * @param column - The column to filter on\n * @param value - The value to filter with\n */\n is(column, value) {\n this.url.searchParams.append(column, `is.${value}`);\n return this;\n }\n /**\n * Match only rows where `column` is included in the `values` array.\n *\n * @param column - The column to filter on\n * @param values - The values array to filter with\n */\n in(column, values) {\n const cleanedValues = Array.from(new Set(values))\n .map((s) => {\n // handle postgrest reserved characters\n // https://postgrest.org/en/v7.0.0/api.html#reserved-characters\n if (typeof s === 'string' && new RegExp('[,()]').test(s))\n return `\"${s}\"`;\n else\n return `${s}`;\n })\n .join(',');\n this.url.searchParams.append(column, `in.(${cleanedValues})`);\n return this;\n }\n /**\n * Only relevant for jsonb, array, and range columns. Match only rows where\n * `column` contains every element appearing in `value`.\n *\n * @param column - The jsonb, array, or range column to filter on\n * @param value - The jsonb, array, or range value to filter with\n */\n contains(column, value) {\n if (typeof value === 'string') {\n // range types can be inclusive '[', ']' or exclusive '(', ')' so just\n // keep it simple and accept a string\n this.url.searchParams.append(column, `cs.${value}`);\n }\n else if (Array.isArray(value)) {\n // array\n this.url.searchParams.append(column, `cs.{${value.join(',')}}`);\n }\n else {\n // json\n this.url.searchParams.append(column, `cs.${JSON.stringify(value)}`);\n }\n return this;\n }\n /**\n * Only relevant for jsonb, array, and range columns. Match only rows where\n * every element appearing in `column` is contained by `value`.\n *\n * @param column - The jsonb, array, or range column to filter on\n * @param value - The jsonb, array, or range value to filter with\n */\n containedBy(column, value) {\n if (typeof value === 'string') {\n // range\n this.url.searchParams.append(column, `cd.${value}`);\n }\n else if (Array.isArray(value)) {\n // array\n this.url.searchParams.append(column, `cd.{${value.join(',')}}`);\n }\n else {\n // json\n this.url.searchParams.append(column, `cd.${JSON.stringify(value)}`);\n }\n return this;\n }\n /**\n * Only relevant for range columns. Match only rows where every element in\n * `column` is greater than any element in `range`.\n *\n * @param column - The range column to filter on\n * @param range - The range to filter with\n */\n rangeGt(column, range) {\n this.url.searchParams.append(column, `sr.${range}`);\n return this;\n }\n /**\n * Only relevant for range columns. Match only rows where every element in\n * `column` is either contained in `range` or greater than any element in\n * `range`.\n *\n * @param column - The range column to filter on\n * @param range - The range to filter with\n */\n rangeGte(column, range) {\n this.url.searchParams.append(column, `nxl.${range}`);\n return this;\n }\n /**\n * Only relevant for range columns. Match only rows where every element in\n * `column` is less than any element in `range`.\n *\n * @param column - The range column to filter on\n * @param range - The range to filter with\n */\n rangeLt(column, range) {\n this.url.searchParams.append(column, `sl.${range}`);\n return this;\n }\n /**\n * Only relevant for range columns. Match only rows where every element in\n * `column` is either contained in `range` or less than any element in\n * `range`.\n *\n * @param column - The range column to filter on\n * @param range - The range to filter with\n */\n rangeLte(column, range) {\n this.url.searchParams.append(column, `nxr.${range}`);\n return this;\n }\n /**\n * Only relevant for range columns. Match only rows where `column` is\n * mutually exclusive to `range` and there can be no element between the two\n * ranges.\n *\n * @param column - The range column to filter on\n * @param range - The range to filter with\n */\n rangeAdjacent(column, range) {\n this.url.searchParams.append(column, `adj.${range}`);\n return this;\n }\n /**\n * Only relevant for array and range columns. Match only rows where\n * `column` and `value` have an element in common.\n *\n * @param column - The array or range column to filter on\n * @param value - The array or range value to filter with\n */\n overlaps(column, value) {\n if (typeof value === 'string') {\n // range\n this.url.searchParams.append(column, `ov.${value}`);\n }\n else {\n // array\n this.url.searchParams.append(column, `ov.{${value.join(',')}}`);\n }\n return this;\n }\n /**\n * Only relevant for text and tsvector columns. Match only rows where\n * `column` matches the query string in `query`.\n *\n * @param column - The text or tsvector column to filter on\n * @param query - The query text to match with\n * @param options - Named parameters\n * @param options.config - The text search configuration to use\n * @param options.type - Change how the `query` text is interpreted\n */\n textSearch(column, query, { config, type } = {}) {\n let typePart = '';\n if (type === 'plain') {\n typePart = 'pl';\n }\n else if (type === 'phrase') {\n typePart = 'ph';\n }\n else if (type === 'websearch') {\n typePart = 'w';\n }\n const configPart = config === undefined ? '' : `(${config})`;\n this.url.searchParams.append(column, `${typePart}fts${configPart}.${query}`);\n return this;\n }\n /**\n * Match only rows where each column in `query` keys is equal to its\n * associated value. Shorthand for multiple `.eq()`s.\n *\n * @param query - The object to filter with, with column names as keys mapped\n * to their filter values\n */\n match(query) {\n Object.entries(query).forEach(([column, value]) => {\n this.url.searchParams.append(column, `eq.${value}`);\n });\n return this;\n }\n /**\n * Match only rows which doesn't satisfy the filter.\n *\n * Unlike most filters, `opearator` and `value` are used as-is and need to\n * follow [PostgREST\n * syntax](https://postgrest.org/en/stable/api.html#operators). You also need\n * to make sure they are properly sanitized.\n *\n * @param column - The column to filter on\n * @param operator - The operator to be negated to filter with, following\n * PostgREST syntax\n * @param value - The value to filter with, following PostgREST syntax\n */\n not(column, operator, value) {\n this.url.searchParams.append(column, `not.${operator}.${value}`);\n return this;\n }\n /**\n * Match only rows which satisfy at least one of the filters.\n *\n * Unlike most filters, `filters` is used as-is and needs to follow [PostgREST\n * syntax](https://postgrest.org/en/stable/api.html#operators). You also need\n * to make sure it's properly sanitized.\n *\n * It's currently not possible to do an `.or()` filter across multiple tables.\n *\n * @param filters - The filters to use, following PostgREST syntax\n * @param options - Named parameters\n * @param options.referencedTable - Set this to filter on referenced tables\n * instead of the parent table\n * @param options.foreignTable - Deprecated, use `referencedTable` instead\n */\n or(filters, { foreignTable, referencedTable = foreignTable, } = {}) {\n const key = referencedTable ? `${referencedTable}.or` : 'or';\n this.url.searchParams.append(key, `(${filters})`);\n return this;\n }\n /**\n * Match only rows which satisfy the filter. This is an escape hatch - you\n * should use the specific filter methods wherever possible.\n *\n * Unlike most filters, `opearator` and `value` are used as-is and need to\n * follow [PostgREST\n * syntax](https://postgrest.org/en/stable/api.html#operators). You also need\n * to make sure they are properly sanitized.\n *\n * @param column - The column to filter on\n * @param operator - The operator to filter with, following PostgREST syntax\n * @param value - The value to filter with, following PostgREST syntax\n */\n filter(column, operator, value) {\n this.url.searchParams.append(column, `${operator}.${value}`);\n return this;\n }\n}\nexports.default = PostgrestFilterBuilder;\n//# sourceMappingURL=PostgrestFilterBuilder.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst PostgrestFilterBuilder_1 = __importDefault(require(\"./PostgrestFilterBuilder\"));\nclass PostgrestQueryBuilder {\n constructor(url, { headers = {}, schema, fetch, }) {\n this.url = url;\n this.headers = headers;\n this.schema = schema;\n this.fetch = fetch;\n }\n /**\n * Perform a SELECT query on the table or view.\n *\n * @param columns - The columns to retrieve, separated by commas. Columns can be renamed when returned with `customName:columnName`\n *\n * @param options - Named parameters\n *\n * @param options.head - When set to `true`, `data` will not be returned.\n * Useful if you only need the count.\n *\n * @param options.count - Count algorithm to use to count rows in the table or view.\n *\n * `\"exact\"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the\n * hood.\n *\n * `\"planned\"`: Approximated but fast count algorithm. Uses the Postgres\n * statistics under the hood.\n *\n * `\"estimated\"`: Uses exact count for low numbers and planned count for high\n * numbers.\n */\n select(columns, { head = false, count, } = {}) {\n const method = head ? 'HEAD' : 'GET';\n // Remove whitespaces except when quoted\n let quoted = false;\n const cleanedColumns = (columns !== null && columns !== void 0 ? columns : '*')\n .split('')\n .map((c) => {\n if (/\\s/.test(c) && !quoted) {\n return '';\n }\n if (c === '\"') {\n quoted = !quoted;\n }\n return c;\n })\n .join('');\n this.url.searchParams.set('select', cleanedColumns);\n if (count) {\n this.headers['Prefer'] = `count=${count}`;\n }\n return new PostgrestFilterBuilder_1.default({\n method,\n url: this.url,\n headers: this.headers,\n schema: this.schema,\n fetch: this.fetch,\n allowEmpty: false,\n });\n }\n /**\n * Perform an INSERT into the table or view.\n *\n * By default, inserted rows are not returned. To return it, chain the call\n * with `.select()`.\n *\n * @param values - The values to insert. Pass an object to insert a single row\n * or an array to insert multiple rows.\n *\n * @param options - Named parameters\n *\n * @param options.count - Count algorithm to use to count inserted rows.\n *\n * `\"exact\"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the\n * hood.\n *\n * `\"planned\"`: Approximated but fast count algorithm. Uses the Postgres\n * statistics under the hood.\n *\n * `\"estimated\"`: Uses exact count for low numbers and planned count for high\n * numbers.\n *\n * @param options.defaultToNull - Make missing fields default to `null`.\n * Otherwise, use the default value for the column. Only applies for bulk\n * inserts.\n */\n insert(values, { count, defaultToNull = true, } = {}) {\n const method = 'POST';\n const prefersHeaders = [];\n if (this.headers['Prefer']) {\n prefersHeaders.push(this.headers['Prefer']);\n }\n if (count) {\n prefersHeaders.push(`count=${count}`);\n }\n if (!defaultToNull) {\n prefersHeaders.push('missing=default');\n }\n this.headers['Prefer'] = prefersHeaders.join(',');\n if (Array.isArray(values)) {\n const columns = values.reduce((acc, x) => acc.concat(Object.keys(x)), []);\n if (columns.length > 0) {\n const uniqueColumns = [...new Set(columns)].map((column) => `\"${column}\"`);\n this.url.searchParams.set('columns', uniqueColumns.join(','));\n }\n }\n return new PostgrestFilterBuilder_1.default({\n method,\n url: this.url,\n headers: this.headers,\n schema: this.schema,\n body: values,\n fetch: this.fetch,\n allowEmpty: false,\n });\n }\n /**\n * Perform an UPSERT on the table or view. Depending on the column(s) passed\n * to `onConflict`, `.upsert()` allows you to perform the equivalent of\n * `.insert()` if a row with the corresponding `onConflict` columns doesn't\n * exist, or if it does exist, perform an alternative action depending on\n * `ignoreDuplicates`.\n *\n * By default, upserted rows are not returned. To return it, chain the call\n * with `.select()`.\n *\n * @param values - The values to upsert with. Pass an object to upsert a\n * single row or an array to upsert multiple rows.\n *\n * @param options - Named parameters\n *\n * @param options.onConflict - Comma-separated UNIQUE column(s) to specify how\n * duplicate rows are determined. Two rows are duplicates if all the\n * `onConflict` columns are equal.\n *\n * @param options.ignoreDuplicates - If `true`, duplicate rows are ignored. If\n * `false`, duplicate rows are merged with existing rows.\n *\n * @param options.count - Count algorithm to use to count upserted rows.\n *\n * `\"exact\"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the\n * hood.\n *\n * `\"planned\"`: Approximated but fast count algorithm. Uses the Postgres\n * statistics under the hood.\n *\n * `\"estimated\"`: Uses exact count for low numbers and planned count for high\n * numbers.\n *\n * @param options.defaultToNull - Make missing fields default to `null`.\n * Otherwise, use the default value for the column. This only applies when\n * inserting new rows, not when merging with existing rows under\n * `ignoreDuplicates: false`. This also only applies when doing bulk upserts.\n */\n upsert(values, { onConflict, ignoreDuplicates = false, count, defaultToNull = true, } = {}) {\n const method = 'POST';\n const prefersHeaders = [`resolution=${ignoreDuplicates ? 'ignore' : 'merge'}-duplicates`];\n if (onConflict !== undefined)\n this.url.searchParams.set('on_conflict', onConflict);\n if (this.headers['Prefer']) {\n prefersHeaders.push(this.headers['Prefer']);\n }\n if (count) {\n prefersHeaders.push(`count=${count}`);\n }\n if (!defaultToNull) {\n prefersHeaders.push('missing=default');\n }\n this.headers['Prefer'] = prefersHeaders.join(',');\n if (Array.isArray(values)) {\n const columns = values.reduce((acc, x) => acc.concat(Object.keys(x)), []);\n if (columns.length > 0) {\n const uniqueColumns = [...new Set(columns)].map((column) => `\"${column}\"`);\n this.url.searchParams.set('columns', uniqueColumns.join(','));\n }\n }\n return new PostgrestFilterBuilder_1.default({\n method,\n url: this.url,\n headers: this.headers,\n schema: this.schema,\n body: values,\n fetch: this.fetch,\n allowEmpty: false,\n });\n }\n /**\n * Perform an UPDATE on the table or view.\n *\n * By default, updated rows are not returned. To return it, chain the call\n * with `.select()` after filters.\n *\n * @param values - The values to update with\n *\n * @param options - Named parameters\n *\n * @param options.count - Count algorithm to use to count updated rows.\n *\n * `\"exact\"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the\n * hood.\n *\n * `\"planned\"`: Approximated but fast count algorithm. Uses the Postgres\n * statistics under the hood.\n *\n * `\"estimated\"`: Uses exact count for low numbers and planned count for high\n * numbers.\n */\n update(values, { count, } = {}) {\n const method = 'PATCH';\n const prefersHeaders = [];\n if (this.headers['Prefer']) {\n prefersHeaders.push(this.headers['Prefer']);\n }\n if (count) {\n prefersHeaders.push(`count=${count}`);\n }\n this.headers['Prefer'] = prefersHeaders.join(',');\n return new PostgrestFilterBuilder_1.default({\n method,\n url: this.url,\n headers: this.headers,\n schema: this.schema,\n body: values,\n fetch: this.fetch,\n allowEmpty: false,\n });\n }\n /**\n * Perform a DELETE on the table or view.\n *\n * By default, deleted rows are not returned. To return it, chain the call\n * with `.select()` after filters.\n *\n * @param options - Named parameters\n *\n * @param options.count - Count algorithm to use to count deleted rows.\n *\n * `\"exact\"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the\n * hood.\n *\n * `\"planned\"`: Approximated but fast count algorithm. Uses the Postgres\n * statistics under the hood.\n *\n * `\"estimated\"`: Uses exact count for low numbers and planned count for high\n * numbers.\n */\n delete({ count, } = {}) {\n const method = 'DELETE';\n const prefersHeaders = [];\n if (count) {\n prefersHeaders.push(`count=${count}`);\n }\n if (this.headers['Prefer']) {\n prefersHeaders.unshift(this.headers['Prefer']);\n }\n this.headers['Prefer'] = prefersHeaders.join(',');\n return new PostgrestFilterBuilder_1.default({\n method,\n url: this.url,\n headers: this.headers,\n schema: this.schema,\n fetch: this.fetch,\n allowEmpty: false,\n });\n }\n}\nexports.default = PostgrestQueryBuilder;\n//# sourceMappingURL=PostgrestQueryBuilder.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.version = void 0;\nexports.version = '0.0.0-automated';\n//# sourceMappingURL=version.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DEFAULT_HEADERS = void 0;\nconst version_1 = require(\"./version\");\nexports.DEFAULT_HEADERS = { 'X-Client-Info': `postgrest-js/${version_1.version}` };\n//# sourceMappingURL=constants.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst PostgrestQueryBuilder_1 = __importDefault(require(\"./PostgrestQueryBuilder\"));\nconst PostgrestFilterBuilder_1 = __importDefault(require(\"./PostgrestFilterBuilder\"));\nconst constants_1 = require(\"./constants\");\n/**\n * PostgREST client.\n *\n * @typeParam Database - Types for the schema from the [type\n * generator](https://supabase.com/docs/reference/javascript/next/typescript-support)\n *\n * @typeParam SchemaName - Postgres schema to switch to. Must be a string\n * literal, the same one passed to the constructor. If the schema is not\n * `\"public\"`, this must be supplied manually.\n */\nclass PostgrestClient {\n // TODO: Add back shouldThrowOnError once we figure out the typings\n /**\n * Creates a PostgREST client.\n *\n * @param url - URL of the PostgREST endpoint\n * @param options - Named parameters\n * @param options.headers - Custom headers\n * @param options.schema - Postgres schema to switch to\n * @param options.fetch - Custom fetch\n */\n constructor(url, { headers = {}, schema, fetch, } = {}) {\n this.url = url;\n this.headers = Object.assign(Object.assign({}, constants_1.DEFAULT_HEADERS), headers);\n this.schemaName = schema;\n this.fetch = fetch;\n }\n /**\n * Perform a query on a table or a view.\n *\n * @param relation - The table or view name to query\n */\n from(relation) {\n const url = new URL(`${this.url}/${relation}`);\n return new PostgrestQueryBuilder_1.default(url, {\n headers: Object.assign({}, this.headers),\n schema: this.schemaName,\n fetch: this.fetch,\n });\n }\n /**\n * Select a schema to query or perform an function (rpc) call.\n *\n * The schema needs to be on the list of exposed schemas inside Supabase.\n *\n * @param schema - The schema to query\n */\n schema(schema) {\n return new PostgrestClient(this.url, {\n headers: this.headers,\n schema,\n fetch: this.fetch,\n });\n }\n /**\n * Perform a function call.\n *\n * @param fn - The function name to call\n * @param args - The arguments to pass to the function call\n * @param options - Named parameters\n * @param options.head - When set to `true`, `data` will not be returned.\n * Useful if you only need the count.\n * @param options.get - When set to `true`, the function will be called with\n * read-only access mode.\n * @param options.count - Count algorithm to use to count rows returned by the\n * function. Only applicable for [set-returning\n * functions](https://www.postgresql.org/docs/current/functions-srf.html).\n *\n * `\"exact\"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the\n * hood.\n *\n * `\"planned\"`: Approximated but fast count algorithm. Uses the Postgres\n * statistics under the hood.\n *\n * `\"estimated\"`: Uses exact count for low numbers and planned count for high\n * numbers.\n */\n rpc(fn, args = {}, { head = false, get = false, count, } = {}) {\n let method;\n const url = new URL(`${this.url}/rpc/${fn}`);\n let body;\n if (head || get) {\n method = head ? 'HEAD' : 'GET';\n Object.entries(args)\n // params with undefined value needs to be filtered out, otherwise it'll\n // show up as `?param=undefined`\n .filter(([_, value]) => value !== undefined)\n // array values need special syntax\n .map(([name, value]) => [name, Array.isArray(value) ? `{${value.join(',')}}` : `${value}`])\n .forEach(([name, value]) => {\n url.searchParams.append(name, value);\n });\n }\n else {\n method = 'POST';\n body = args;\n }\n const headers = Object.assign({}, this.headers);\n if (count) {\n headers['Prefer'] = `count=${count}`;\n }\n return new PostgrestFilterBuilder_1.default({\n method,\n url,\n headers,\n schema: this.schemaName,\n body,\n fetch: this.fetch,\n allowEmpty: false,\n });\n }\n}\nexports.default = PostgrestClient;\n//# sourceMappingURL=PostgrestClient.js.map","\"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.PostgrestError = exports.PostgrestBuilder = exports.PostgrestTransformBuilder = exports.PostgrestFilterBuilder = exports.PostgrestQueryBuilder = exports.PostgrestClient = void 0;\n// Always update wrapper.mjs when updating this file.\nconst PostgrestClient_1 = __importDefault(require(\"./PostgrestClient\"));\nexports.PostgrestClient = PostgrestClient_1.default;\nconst PostgrestQueryBuilder_1 = __importDefault(require(\"./PostgrestQueryBuilder\"));\nexports.PostgrestQueryBuilder = PostgrestQueryBuilder_1.default;\nconst PostgrestFilterBuilder_1 = __importDefault(require(\"./PostgrestFilterBuilder\"));\nexports.PostgrestFilterBuilder = PostgrestFilterBuilder_1.default;\nconst PostgrestTransformBuilder_1 = __importDefault(require(\"./PostgrestTransformBuilder\"));\nexports.PostgrestTransformBuilder = PostgrestTransformBuilder_1.default;\nconst PostgrestBuilder_1 = __importDefault(require(\"./PostgrestBuilder\"));\nexports.PostgrestBuilder = PostgrestBuilder_1.default;\nconst PostgrestError_1 = __importDefault(require(\"./PostgrestError\"));\nexports.PostgrestError = PostgrestError_1.default;\nexports.default = {\n PostgrestClient: PostgrestClient_1.default,\n PostgrestQueryBuilder: PostgrestQueryBuilder_1.default,\n PostgrestFilterBuilder: PostgrestFilterBuilder_1.default,\n PostgrestTransformBuilder: PostgrestTransformBuilder_1.default,\n PostgrestBuilder: PostgrestBuilder_1.default,\n PostgrestError: PostgrestError_1.default,\n};\n//# sourceMappingURL=index.js.map","import index from '../cjs/index.js'\nconst {\n PostgrestClient,\n PostgrestQueryBuilder,\n PostgrestFilterBuilder,\n PostgrestTransformBuilder,\n PostgrestBuilder,\n PostgrestError,\n} = index\n\nexport {\n PostgrestBuilder,\n PostgrestClient,\n PostgrestFilterBuilder,\n PostgrestQueryBuilder,\n PostgrestTransformBuilder,\n PostgrestError,\n}\n\n// compatibility with CJS output\nexport default {\n PostgrestClient,\n PostgrestQueryBuilder,\n PostgrestFilterBuilder,\n PostgrestTransformBuilder,\n PostgrestBuilder,\n PostgrestError,\n}\n","import { version } from './version';\nexport const DEFAULT_HEADERS = { 'X-Client-Info': `realtime-js/${version}` };\nexport const VSN = '1.0.0';\nexport const DEFAULT_TIMEOUT = 10000;\nexport const WS_CLOSE_NORMAL = 1000;\nexport var SOCKET_STATES;\n(function (SOCKET_STATES) {\n SOCKET_STATES[SOCKET_STATES[\"connecting\"] = 0] = \"connecting\";\n SOCKET_STATES[SOCKET_STATES[\"open\"] = 1] = \"open\";\n SOCKET_STATES[SOCKET_STATES[\"closing\"] = 2] = \"closing\";\n SOCKET_STATES[SOCKET_STATES[\"closed\"] = 3] = \"closed\";\n})(SOCKET_STATES || (SOCKET_STATES = {}));\nexport var CHANNEL_STATES;\n(function (CHANNEL_STATES) {\n CHANNEL_STATES[\"closed\"] = \"closed\";\n CHANNEL_STATES[\"errored\"] = \"errored\";\n CHANNEL_STATES[\"joined\"] = \"joined\";\n CHANNEL_STATES[\"joining\"] = \"joining\";\n CHANNEL_STATES[\"leaving\"] = \"leaving\";\n})(CHANNEL_STATES || (CHANNEL_STATES = {}));\nexport var CHANNEL_EVENTS;\n(function (CHANNEL_EVENTS) {\n CHANNEL_EVENTS[\"close\"] = \"phx_close\";\n CHANNEL_EVENTS[\"error\"] = \"phx_error\";\n CHANNEL_EVENTS[\"join\"] = \"phx_join\";\n CHANNEL_EVENTS[\"reply\"] = \"phx_reply\";\n CHANNEL_EVENTS[\"leave\"] = \"phx_leave\";\n CHANNEL_EVENTS[\"access_token\"] = \"access_token\";\n})(CHANNEL_EVENTS || (CHANNEL_EVENTS = {}));\nexport var TRANSPORTS;\n(function (TRANSPORTS) {\n TRANSPORTS[\"websocket\"] = \"websocket\";\n})(TRANSPORTS || (TRANSPORTS = {}));\nexport var CONNECTION_STATE;\n(function (CONNECTION_STATE) {\n CONNECTION_STATE[\"Connecting\"] = \"connecting\";\n CONNECTION_STATE[\"Open\"] = \"open\";\n CONNECTION_STATE[\"Closing\"] = \"closing\";\n CONNECTION_STATE[\"Closed\"] = \"closed\";\n})(CONNECTION_STATE || (CONNECTION_STATE = {}));\n//# sourceMappingURL=constants.js.map","/**\n * Helpers to convert the change Payload into native JS types.\n */\n// Adapted from epgsql (src/epgsql_binary.erl), this module licensed under\n// 3-clause BSD found here: https://raw.githubusercontent.com/epgsql/epgsql/devel/LICENSE\nexport var PostgresTypes;\n(function (PostgresTypes) {\n PostgresTypes[\"abstime\"] = \"abstime\";\n PostgresTypes[\"bool\"] = \"bool\";\n PostgresTypes[\"date\"] = \"date\";\n PostgresTypes[\"daterange\"] = \"daterange\";\n PostgresTypes[\"float4\"] = \"float4\";\n PostgresTypes[\"float8\"] = \"float8\";\n PostgresTypes[\"int2\"] = \"int2\";\n PostgresTypes[\"int4\"] = \"int4\";\n PostgresTypes[\"int4range\"] = \"int4range\";\n PostgresTypes[\"int8\"] = \"int8\";\n PostgresTypes[\"int8range\"] = \"int8range\";\n PostgresTypes[\"json\"] = \"json\";\n PostgresTypes[\"jsonb\"] = \"jsonb\";\n PostgresTypes[\"money\"] = \"money\";\n PostgresTypes[\"numeric\"] = \"numeric\";\n PostgresTypes[\"oid\"] = \"oid\";\n PostgresTypes[\"reltime\"] = \"reltime\";\n PostgresTypes[\"text\"] = \"text\";\n PostgresTypes[\"time\"] = \"time\";\n PostgresTypes[\"timestamp\"] = \"timestamp\";\n PostgresTypes[\"timestamptz\"] = \"timestamptz\";\n PostgresTypes[\"timetz\"] = \"timetz\";\n PostgresTypes[\"tsrange\"] = \"tsrange\";\n PostgresTypes[\"tstzrange\"] = \"tstzrange\";\n})(PostgresTypes || (PostgresTypes = {}));\n/**\n * Takes an array of columns and an object of string values then converts each string value\n * to its mapped type.\n *\n * @param {{name: String, type: String}[]} columns\n * @param {Object} record\n * @param {Object} options The map of various options that can be applied to the mapper\n * @param {Array} options.skipTypes The array of types that should not be converted\n *\n * @example convertChangeData([{name: 'first_name', type: 'text'}, {name: 'age', type: 'int4'}], {first_name: 'Paul', age:'33'}, {})\n * //=>{ first_name: 'Paul', age: 33 }\n */\nexport const convertChangeData = (columns, record, options = {}) => {\n var _a;\n const skipTypes = (_a = options.skipTypes) !== null && _a !== void 0 ? _a : [];\n return Object.keys(record).reduce((acc, rec_key) => {\n acc[rec_key] = convertColumn(rec_key, columns, record, skipTypes);\n return acc;\n }, {});\n};\n/**\n * Converts the value of an individual column.\n *\n * @param {String} columnName The column that you want to convert\n * @param {{name: String, type: String}[]} columns All of the columns\n * @param {Object} record The map of string values\n * @param {Array} skipTypes An array of types that should not be converted\n * @return {object} Useless information\n *\n * @example convertColumn('age', [{name: 'first_name', type: 'text'}, {name: 'age', type: 'int4'}], {first_name: 'Paul', age: '33'}, [])\n * //=> 33\n * @example convertColumn('age', [{name: 'first_name', type: 'text'}, {name: 'age', type: 'int4'}], {first_name: 'Paul', age: '33'}, ['int4'])\n * //=> \"33\"\n */\nexport const convertColumn = (columnName, columns, record, skipTypes) => {\n const column = columns.find((x) => x.name === columnName);\n const colType = column === null || column === void 0 ? void 0 : column.type;\n const value = record[columnName];\n if (colType && !skipTypes.includes(colType)) {\n return convertCell(colType, value);\n }\n return noop(value);\n};\n/**\n * If the value of the cell is `null`, returns null.\n * Otherwise converts the string value to the correct type.\n * @param {String} type A postgres column type\n * @param {String} value The cell value\n *\n * @example convertCell('bool', 't')\n * //=> true\n * @example convertCell('int8', '10')\n * //=> 10\n * @example convertCell('_int4', '{1,2,3,4}')\n * //=> [1,2,3,4]\n */\nexport const convertCell = (type, value) => {\n // if data type is an array\n if (type.charAt(0) === '_') {\n const dataType = type.slice(1, type.length);\n return toArray(value, dataType);\n }\n // If not null, convert to correct type.\n switch (type) {\n case PostgresTypes.bool:\n return toBoolean(value);\n case PostgresTypes.float4:\n case PostgresTypes.float8:\n case PostgresTypes.int2:\n case PostgresTypes.int4:\n case PostgresTypes.int8:\n case PostgresTypes.numeric:\n case PostgresTypes.oid:\n return toNumber(value);\n case PostgresTypes.json:\n case PostgresTypes.jsonb:\n return toJson(value);\n case PostgresTypes.timestamp:\n return toTimestampString(value); // Format to be consistent with PostgREST\n case PostgresTypes.abstime: // To allow users to cast it based on Timezone\n case PostgresTypes.date: // To allow users to cast it based on Timezone\n case PostgresTypes.daterange:\n case PostgresTypes.int4range:\n case PostgresTypes.int8range:\n case PostgresTypes.money:\n case PostgresTypes.reltime: // To allow users to cast it based on Timezone\n case PostgresTypes.text:\n case PostgresTypes.time: // To allow users to cast it based on Timezone\n case PostgresTypes.timestamptz: // To allow users to cast it based on Timezone\n case PostgresTypes.timetz: // To allow users to cast it based on Timezone\n case PostgresTypes.tsrange:\n case PostgresTypes.tstzrange:\n return noop(value);\n default:\n // Return the value for remaining types\n return noop(value);\n }\n};\nconst noop = (value) => {\n return value;\n};\nexport const toBoolean = (value) => {\n switch (value) {\n case 't':\n return true;\n case 'f':\n return false;\n default:\n return value;\n }\n};\nexport const toNumber = (value) => {\n if (typeof value === 'string') {\n const parsedValue = parseFloat(value);\n if (!Number.isNaN(parsedValue)) {\n return parsedValue;\n }\n }\n return value;\n};\nexport const toJson = (value) => {\n if (typeof value === 'string') {\n try {\n return JSON.parse(value);\n }\n catch (error) {\n console.log(`JSON parse error: ${error}`);\n return value;\n }\n }\n return value;\n};\n/**\n * Converts a Postgres Array into a native JS array\n *\n * @example toArray('{}', 'int4')\n * //=> []\n * @example toArray('{\"[2021-01-01,2021-12-31)\",\"(2021-01-01,2021-12-32]\"}', 'daterange')\n * //=> ['[2021-01-01,2021-12-31)', '(2021-01-01,2021-12-32]']\n * @example toArray([1,2,3,4], 'int4')\n * //=> [1,2,3,4]\n */\nexport const toArray = (value, type) => {\n if (typeof value !== 'string') {\n return value;\n }\n const lastIdx = value.length - 1;\n const closeBrace = value[lastIdx];\n const openBrace = value[0];\n // Confirm value is a Postgres array by checking curly brackets\n if (openBrace === '{' && closeBrace === '}') {\n let arr;\n const valTrim = value.slice(1, lastIdx);\n // TODO: find a better solution to separate Postgres array data\n try {\n arr = JSON.parse('[' + valTrim + ']');\n }\n catch (_) {\n // WARNING: splitting on comma does not cover all edge cases\n arr = valTrim ? valTrim.split(',') : [];\n }\n return arr.map((val) => convertCell(type, val));\n }\n return value;\n};\n/**\n * Fixes timestamp to be ISO-8601. Swaps the space between the date and time for a 'T'\n * See https://github.com/supabase/supabase/issues/18\n *\n * @example toTimestampString('2019-09-10 00:00:00')\n * //=> '2019-09-10T00:00:00'\n */\nexport const toTimestampString = (value) => {\n if (typeof value === 'string') {\n return value.replace(' ', 'T');\n }\n return value;\n};\nexport const httpEndpointURL = (socketUrl) => {\n let url = socketUrl;\n url = url.replace(/^ws/i, 'http');\n url = url.replace(/(\\/socket\\/websocket|\\/socket|\\/websocket)\\/?$/i, '');\n return url.replace(/\\/+$/, '');\n};\n//# sourceMappingURL=transformers.js.map","// This file draws heavily from https://github.com/phoenixframework/phoenix/commit/cf098e9cf7a44ee6479d31d911a97d3c7430c6fe\n// License: https://github.com/phoenixframework/phoenix/blob/master/LICENSE.md\nexport default class Serializer {\n constructor() {\n this.HEADER_LENGTH = 1;\n }\n decode(rawPayload, callback) {\n if (rawPayload.constructor === ArrayBuffer) {\n return callback(this._binaryDecode(rawPayload));\n }\n if (typeof rawPayload === 'string') {\n return callback(JSON.parse(rawPayload));\n }\n return callback({});\n }\n _binaryDecode(buffer) {\n const view = new DataView(buffer);\n const decoder = new TextDecoder();\n return this._decodeBroadcast(buffer, view, decoder);\n }\n _decodeBroadcast(buffer, view, decoder) {\n const topicSize = view.getUint8(1);\n const eventSize = view.getUint8(2);\n let offset = this.HEADER_LENGTH + 2;\n const topic = decoder.decode(buffer.slice(offset, offset + topicSize));\n offset = offset + topicSize;\n const event = decoder.decode(buffer.slice(offset, offset + eventSize));\n offset = offset + eventSize;\n const data = JSON.parse(decoder.decode(buffer.slice(offset, buffer.byteLength)));\n return { ref: null, topic: topic, event: event, payload: data };\n }\n}\n//# sourceMappingURL=serializer.js.map","/**\n * Creates a timer that accepts a `timerCalc` function to perform calculated timeout retries, such as exponential backoff.\n *\n * @example\n * let reconnectTimer = new Timer(() => this.connect(), function(tries){\n * return [1000, 5000, 10000][tries - 1] || 10000\n * })\n * reconnectTimer.scheduleTimeout() // fires after 1000\n * reconnectTimer.scheduleTimeout() // fires after 5000\n * reconnectTimer.reset()\n * reconnectTimer.scheduleTimeout() // fires after 1000\n */\nexport default class Timer {\n constructor(callback, timerCalc) {\n this.callback = callback;\n this.timerCalc = timerCalc;\n this.timer = undefined;\n this.tries = 0;\n this.callback = callback;\n this.timerCalc = timerCalc;\n }\n reset() {\n this.tries = 0;\n clearTimeout(this.timer);\n }\n // Cancels any previous scheduleTimeout and schedules callback\n scheduleTimeout() {\n clearTimeout(this.timer);\n this.timer = setTimeout(() => {\n this.tries = this.tries + 1;\n this.callback();\n }, this.timerCalc(this.tries + 1));\n }\n}\n//# sourceMappingURL=timer.js.map","import { DEFAULT_TIMEOUT } from '../lib/constants';\nexport default class Push {\n /**\n * Initializes the Push\n *\n * @param channel The Channel\n * @param event The event, for example `\"phx_join\"`\n * @param payload The payload, for example `{user_id: 123}`\n * @param timeout The push timeout in milliseconds\n */\n constructor(channel, event, payload = {}, timeout = DEFAULT_TIMEOUT) {\n this.channel = channel;\n this.event = event;\n this.payload = payload;\n this.timeout = timeout;\n this.sent = false;\n this.timeoutTimer = undefined;\n this.ref = '';\n this.receivedResp = null;\n this.recHooks = [];\n this.refEvent = null;\n }\n resend(timeout) {\n this.timeout = timeout;\n this._cancelRefEvent();\n this.ref = '';\n this.refEvent = null;\n this.receivedResp = null;\n this.sent = false;\n this.send();\n }\n send() {\n if (this._hasReceived('timeout')) {\n return;\n }\n this.startTimeout();\n this.sent = true;\n this.channel.socket.push({\n topic: this.channel.topic,\n event: this.event,\n payload: this.payload,\n ref: this.ref,\n join_ref: this.channel._joinRef(),\n });\n }\n updatePayload(payload) {\n this.payload = Object.assign(Object.assign({}, this.payload), payload);\n }\n receive(status, callback) {\n var _a;\n if (this._hasReceived(status)) {\n callback((_a = this.receivedResp) === null || _a === void 0 ? void 0 : _a.response);\n }\n this.recHooks.push({ status, callback });\n return this;\n }\n startTimeout() {\n if (this.timeoutTimer) {\n return;\n }\n this.ref = this.channel.socket._makeRef();\n this.refEvent = this.channel._replyEventName(this.ref);\n const callback = (payload) => {\n this._cancelRefEvent();\n this._cancelTimeout();\n this.receivedResp = payload;\n this._matchReceive(payload);\n };\n this.channel._on(this.refEvent, {}, callback);\n this.timeoutTimer = setTimeout(() => {\n this.trigger('timeout', {});\n }, this.timeout);\n }\n trigger(status, response) {\n if (this.refEvent)\n this.channel._trigger(this.refEvent, { status, response });\n }\n destroy() {\n this._cancelRefEvent();\n this._cancelTimeout();\n }\n _cancelRefEvent() {\n if (!this.refEvent) {\n return;\n }\n this.channel._off(this.refEvent, {});\n }\n _cancelTimeout() {\n clearTimeout(this.timeoutTimer);\n this.timeoutTimer = undefined;\n }\n _matchReceive({ status, response, }) {\n this.recHooks\n .filter((h) => h.status === status)\n .forEach((h) => h.callback(response));\n }\n _hasReceived(status) {\n return this.receivedResp && this.receivedResp.status === status;\n }\n}\n//# sourceMappingURL=push.js.map","/*\n This file draws heavily from https://github.com/phoenixframework/phoenix/blob/d344ec0a732ab4ee204215b31de69cf4be72e3bf/assets/js/phoenix/presence.js\n License: https://github.com/phoenixframework/phoenix/blob/d344ec0a732ab4ee204215b31de69cf4be72e3bf/LICENSE.md\n*/\nexport var REALTIME_PRESENCE_LISTEN_EVENTS;\n(function (REALTIME_PRESENCE_LISTEN_EVENTS) {\n REALTIME_PRESENCE_LISTEN_EVENTS[\"SYNC\"] = \"sync\";\n REALTIME_PRESENCE_LISTEN_EVENTS[\"JOIN\"] = \"join\";\n REALTIME_PRESENCE_LISTEN_EVENTS[\"LEAVE\"] = \"leave\";\n})(REALTIME_PRESENCE_LISTEN_EVENTS || (REALTIME_PRESENCE_LISTEN_EVENTS = {}));\nexport default class RealtimePresence {\n /**\n * Initializes the Presence.\n *\n * @param channel - The RealtimeChannel\n * @param opts - The options,\n * for example `{events: {state: 'state', diff: 'diff'}}`\n */\n constructor(channel, opts) {\n this.channel = channel;\n this.state = {};\n this.pendingDiffs = [];\n this.joinRef = null;\n this.caller = {\n onJoin: () => { },\n onLeave: () => { },\n onSync: () => { },\n };\n const events = (opts === null || opts === void 0 ? void 0 : opts.events) || {\n state: 'presence_state',\n diff: 'presence_diff',\n };\n this.channel._on(events.state, {}, (newState) => {\n const { onJoin, onLeave, onSync } = this.caller;\n this.joinRef = this.channel._joinRef();\n this.state = RealtimePresence.syncState(this.state, newState, onJoin, onLeave);\n this.pendingDiffs.forEach((diff) => {\n this.state = RealtimePresence.syncDiff(this.state, diff, onJoin, onLeave);\n });\n this.pendingDiffs = [];\n onSync();\n });\n this.channel._on(events.diff, {}, (diff) => {\n const { onJoin, onLeave, onSync } = this.caller;\n if (this.inPendingSyncState()) {\n this.pendingDiffs.push(diff);\n }\n else {\n this.state = RealtimePresence.syncDiff(this.state, diff, onJoin, onLeave);\n onSync();\n }\n });\n this.onJoin((key, currentPresences, newPresences) => {\n this.channel._trigger('presence', {\n event: 'join',\n key,\n currentPresences,\n newPresences,\n });\n });\n this.onLeave((key, currentPresences, leftPresences) => {\n this.channel._trigger('presence', {\n event: 'leave',\n key,\n currentPresences,\n leftPresences,\n });\n });\n this.onSync(() => {\n this.channel._trigger('presence', { event: 'sync' });\n });\n }\n /**\n * Used to sync the list of presences on the server with the\n * client's state.\n *\n * An optional `onJoin` and `onLeave` callback can be provided to\n * react to changes in the client's local presences across\n * disconnects and reconnects with the server.\n *\n * @internal\n */\n static syncState(currentState, newState, onJoin, onLeave) {\n const state = this.cloneDeep(currentState);\n const transformedState = this.transformState(newState);\n const joins = {};\n const leaves = {};\n this.map(state, (key, presences) => {\n if (!transformedState[key]) {\n leaves[key] = presences;\n }\n });\n this.map(transformedState, (key, newPresences) => {\n const currentPresences = state[key];\n if (currentPresences) {\n const newPresenceRefs = newPresences.map((m) => m.presence_ref);\n const curPresenceRefs = currentPresences.map((m) => m.presence_ref);\n const joinedPresences = newPresences.filter((m) => curPresenceRefs.indexOf(m.presence_ref) < 0);\n const leftPresences = currentPresences.filter((m) => newPresenceRefs.indexOf(m.presence_ref) < 0);\n if (joinedPresences.length > 0) {\n joins[key] = joinedPresences;\n }\n if (leftPresences.length > 0) {\n leaves[key] = leftPresences;\n }\n }\n else {\n joins[key] = newPresences;\n }\n });\n return this.syncDiff(state, { joins, leaves }, onJoin, onLeave);\n }\n /**\n * Used to sync a diff of presence join and leave events from the\n * server, as they happen.\n *\n * Like `syncState`, `syncDiff` accepts optional `onJoin` and\n * `onLeave` callbacks to react to a user joining or leaving from a\n * device.\n *\n * @internal\n */\n static syncDiff(state, diff, onJoin, onLeave) {\n const { joins, leaves } = {\n joins: this.transformState(diff.joins),\n leaves: this.transformState(diff.leaves),\n };\n if (!onJoin) {\n onJoin = () => { };\n }\n if (!onLeave) {\n onLeave = () => { };\n }\n this.map(joins, (key, newPresences) => {\n var _a;\n const currentPresences = (_a = state[key]) !== null && _a !== void 0 ? _a : [];\n state[key] = this.cloneDeep(newPresences);\n if (currentPresences.length > 0) {\n const joinedPresenceRefs = state[key].map((m) => m.presence_ref);\n const curPresences = currentPresences.filter((m) => joinedPresenceRefs.indexOf(m.presence_ref) < 0);\n state[key].unshift(...curPresences);\n }\n onJoin(key, currentPresences, newPresences);\n });\n this.map(leaves, (key, leftPresences) => {\n let currentPresences = state[key];\n if (!currentPresences)\n return;\n const presenceRefsToRemove = leftPresences.map((m) => m.presence_ref);\n currentPresences = currentPresences.filter((m) => presenceRefsToRemove.indexOf(m.presence_ref) < 0);\n state[key] = currentPresences;\n onLeave(key, currentPresences, leftPresences);\n if (currentPresences.length === 0)\n delete state[key];\n });\n return state;\n }\n /** @internal */\n static map(obj, func) {\n return Object.getOwnPropertyNames(obj).map((key) => func(key, obj[key]));\n }\n /**\n * Remove 'metas' key\n * Change 'phx_ref' to 'presence_ref'\n * Remove 'phx_ref' and 'phx_ref_prev'\n *\n * @example\n * // returns {\n * abc123: [\n * { presence_ref: '2', user_id: 1 },\n * { presence_ref: '3', user_id: 2 }\n * ]\n * }\n * RealtimePresence.transformState({\n * abc123: {\n * metas: [\n * { phx_ref: '2', phx_ref_prev: '1' user_id: 1 },\n * { phx_ref: '3', user_id: 2 }\n * ]\n * }\n * })\n *\n * @internal\n */\n static transformState(state) {\n state = this.cloneDeep(state);\n return Object.getOwnPropertyNames(state).reduce((newState, key) => {\n const presences = state[key];\n if ('metas' in presences) {\n newState[key] = presences.metas.map((presence) => {\n presence['presence_ref'] = presence['phx_ref'];\n delete presence['phx_ref'];\n delete presence['phx_ref_prev'];\n return presence;\n });\n }\n else {\n newState[key] = presences;\n }\n return newState;\n }, {});\n }\n /** @internal */\n static cloneDeep(obj) {\n return JSON.parse(JSON.stringify(obj));\n }\n /** @internal */\n onJoin(callback) {\n this.caller.onJoin = callback;\n }\n /** @internal */\n onLeave(callback) {\n this.caller.onLeave = callback;\n }\n /** @internal */\n onSync(callback) {\n this.caller.onSync = callback;\n }\n /** @internal */\n inPendingSyncState() {\n return !this.joinRef || this.joinRef !== this.channel._joinRef();\n }\n}\n//# sourceMappingURL=RealtimePresence.js.map","import { CHANNEL_EVENTS, CHANNEL_STATES } from './lib/constants';\nimport Push from './lib/push';\nimport Timer from './lib/timer';\nimport RealtimePresence from './RealtimePresence';\nimport * as Transformers from './lib/transformers';\nimport { httpEndpointURL } from './lib/transformers';\nexport var REALTIME_POSTGRES_CHANGES_LISTEN_EVENT;\n(function (REALTIME_POSTGRES_CHANGES_LISTEN_EVENT) {\n REALTIME_POSTGRES_CHANGES_LISTEN_EVENT[\"ALL\"] = \"*\";\n REALTIME_POSTGRES_CHANGES_LISTEN_EVENT[\"INSERT\"] = \"INSERT\";\n REALTIME_POSTGRES_CHANGES_LISTEN_EVENT[\"UPDATE\"] = \"UPDATE\";\n REALTIME_POSTGRES_CHANGES_LISTEN_EVENT[\"DELETE\"] = \"DELETE\";\n})(REALTIME_POSTGRES_CHANGES_LISTEN_EVENT || (REALTIME_POSTGRES_CHANGES_LISTEN_EVENT = {}));\nexport var REALTIME_LISTEN_TYPES;\n(function (REALTIME_LISTEN_TYPES) {\n REALTIME_LISTEN_TYPES[\"BROADCAST\"] = \"broadcast\";\n REALTIME_LISTEN_TYPES[\"PRESENCE\"] = \"presence\";\n REALTIME_LISTEN_TYPES[\"POSTGRES_CHANGES\"] = \"postgres_changes\";\n REALTIME_LISTEN_TYPES[\"SYSTEM\"] = \"system\";\n})(REALTIME_LISTEN_TYPES || (REALTIME_LISTEN_TYPES = {}));\nexport var REALTIME_SUBSCRIBE_STATES;\n(function (REALTIME_SUBSCRIBE_STATES) {\n REALTIME_SUBSCRIBE_STATES[\"SUBSCRIBED\"] = \"SUBSCRIBED\";\n REALTIME_SUBSCRIBE_STATES[\"TIMED_OUT\"] = \"TIMED_OUT\";\n REALTIME_SUBSCRIBE_STATES[\"CLOSED\"] = \"CLOSED\";\n REALTIME_SUBSCRIBE_STATES[\"CHANNEL_ERROR\"] = \"CHANNEL_ERROR\";\n})(REALTIME_SUBSCRIBE_STATES || (REALTIME_SUBSCRIBE_STATES = {}));\nexport const REALTIME_CHANNEL_STATES = CHANNEL_STATES;\n/** A channel is the basic building block of Realtime\n * and narrows the scope of data flow to subscribed clients.\n * You can think of a channel as a chatroom where participants are able to see who's online\n * and send and receive messages.\n */\nexport default class RealtimeChannel {\n constructor(\n /** Topic name can be any string. */\n topic, params = { config: {} }, socket) {\n this.topic = topic;\n this.params = params;\n this.socket = socket;\n this.bindings = {};\n this.state = CHANNEL_STATES.closed;\n this.joinedOnce = false;\n this.pushBuffer = [];\n this.subTopic = topic.replace(/^realtime:/i, '');\n this.params.config = Object.assign({\n broadcast: { ack: false, self: false },\n presence: { key: '' },\n private: false,\n }, params.config);\n this.timeout = this.socket.timeout;\n this.joinPush = new Push(this, CHANNEL_EVENTS.join, this.params, this.timeout);\n this.rejoinTimer = new Timer(() => this._rejoinUntilConnected(), this.socket.reconnectAfterMs);\n this.joinPush.receive('ok', () => {\n this.state = CHANNEL_STATES.joined;\n this.rejoinTimer.reset();\n this.pushBuffer.forEach((pushEvent) => pushEvent.send());\n this.pushBuffer = [];\n });\n this._onClose(() => {\n this.rejoinTimer.reset();\n this.socket.log('channel', `close ${this.topic} ${this._joinRef()}`);\n this.state = CHANNEL_STATES.closed;\n this.socket._remove(this);\n });\n this._onError((reason) => {\n if (this._isLeaving() || this._isClosed()) {\n return;\n }\n this.socket.log('channel', `error ${this.topic}`, reason);\n this.state = CHANNEL_STATES.errored;\n this.rejoinTimer.scheduleTimeout();\n });\n this.joinPush.receive('timeout', () => {\n if (!this._isJoining()) {\n return;\n }\n this.socket.log('channel', `timeout ${this.topic}`, this.joinPush.timeout);\n this.state = CHANNEL_STATES.errored;\n this.rejoinTimer.scheduleTimeout();\n });\n this._on(CHANNEL_EVENTS.reply, {}, (payload, ref) => {\n this._trigger(this._replyEventName(ref), payload);\n });\n this.presence = new RealtimePresence(this);\n this.broadcastEndpointURL =\n httpEndpointURL(this.socket.endPoint) + '/api/broadcast';\n this.private = this.params.config.private || false;\n }\n /** Subscribe registers your client with the server */\n subscribe(callback, timeout = this.timeout) {\n var _a, _b;\n if (!this.socket.isConnected()) {\n this.socket.connect();\n }\n if (this.joinedOnce) {\n throw `tried to subscribe multiple times. 'subscribe' can only be called a single time per channel instance`;\n }\n else {\n const { config: { broadcast, presence, private: isPrivate }, } = this.params;\n this._onError((e) => callback === null || callback === void 0 ? void 0 : callback(REALTIME_SUBSCRIBE_STATES.CHANNEL_ERROR, e));\n this._onClose(() => callback === null || callback === void 0 ? void 0 : callback(REALTIME_SUBSCRIBE_STATES.CLOSED));\n const accessTokenPayload = {};\n const config = {\n broadcast,\n presence,\n postgres_changes: (_b = (_a = this.bindings.postgres_changes) === null || _a === void 0 ? void 0 : _a.map((r) => r.filter)) !== null && _b !== void 0 ? _b : [],\n private: isPrivate,\n };\n if (this.socket.accessTokenValue) {\n accessTokenPayload.access_token = this.socket.accessTokenValue;\n }\n this.updateJoinPayload(Object.assign({ config }, accessTokenPayload));\n this.joinedOnce = true;\n this._rejoin(timeout);\n this.joinPush\n .receive('ok', async ({ postgres_changes }) => {\n var _a;\n this.socket.setAuth();\n if (postgres_changes === undefined) {\n callback === null || callback === void 0 ? void 0 : callback(REALTIME_SUBSCRIBE_STATES.SUBSCRIBED);\n return;\n }\n else {\n const clientPostgresBindings = this.bindings.postgres_changes;\n const bindingsLen = (_a = clientPostgresBindings === null || clientPostgresBindings === void 0 ? void 0 : clientPostgresBindings.length) !== null && _a !== void 0 ? _a : 0;\n const newPostgresBindings = [];\n for (let i = 0; i < bindingsLen; i++) {\n const clientPostgresBinding = clientPostgresBindings[i];\n const { filter: { event, schema, table, filter }, } = clientPostgresBinding;\n const serverPostgresFilter = postgres_changes && postgres_changes[i];\n if (serverPostgresFilter &&\n serverPostgresFilter.event === event &&\n serverPostgresFilter.schema === schema &&\n serverPostgresFilter.table === table &&\n serverPostgresFilter.filter === filter) {\n newPostgresBindings.push(Object.assign(Object.assign({}, clientPostgresBinding), { id: serverPostgresFilter.id }));\n }\n else {\n this.unsubscribe();\n callback === null || callback === void 0 ? void 0 : callback(REALTIME_SUBSCRIBE_STATES.CHANNEL_ERROR, new Error('mismatch between server and client bindings for postgres changes'));\n return;\n }\n }\n this.bindings.postgres_changes = newPostgresBindings;\n callback && callback(REALTIME_SUBSCRIBE_STATES.SUBSCRIBED);\n return;\n }\n })\n .receive('error', (error) => {\n callback === null || callback === void 0 ? void 0 : callback(REALTIME_SUBSCRIBE_STATES.CHANNEL_ERROR, new Error(JSON.stringify(Object.values(error).join(', ') || 'error')));\n return;\n })\n .receive('timeout', () => {\n callback === null || callback === void 0 ? void 0 : callback(REALTIME_SUBSCRIBE_STATES.TIMED_OUT);\n return;\n });\n }\n return this;\n }\n presenceState() {\n return this.presence.state;\n }\n async track(payload, opts = {}) {\n return await this.send({\n type: 'presence',\n event: 'track',\n payload,\n }, opts.timeout || this.timeout);\n }\n async untrack(opts = {}) {\n return await this.send({\n type: 'presence',\n event: 'untrack',\n }, opts);\n }\n on(type, filter, callback) {\n return this._on(type, filter, callback);\n }\n /**\n * Sends a message into the channel.\n *\n * @param args Arguments to send to channel\n * @param args.type The type of event to send\n * @param args.event The name of the event being sent\n * @param args.payload Payload to be sent\n * @param opts Options to be used during the send process\n */\n async send(args, opts = {}) {\n var _a, _b;\n if (!this._canPush() && args.type === 'broadcast') {\n const { event, payload: endpoint_payload } = args;\n const authorization = this.socket.accessTokenValue\n ? `Bearer ${this.socket.accessTokenValue}`\n : '';\n const options = {\n method: 'POST',\n headers: {\n Authorization: authorization,\n apikey: this.socket.apiKey ? this.socket.apiKey : '',\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n messages: [\n {\n topic: this.subTopic,\n event,\n payload: endpoint_payload,\n private: this.private,\n },\n ],\n }),\n };\n try {\n const response = await this._fetchWithTimeout(this.broadcastEndpointURL, options, (_a = opts.timeout) !== null && _a !== void 0 ? _a : this.timeout);\n await ((_b = response.body) === null || _b === void 0 ? void 0 : _b.cancel());\n return response.ok ? 'ok' : 'error';\n }\n catch (error) {\n if (error.name === 'AbortError') {\n return 'timed out';\n }\n else {\n return 'error';\n }\n }\n }\n else {\n return new Promise((resolve) => {\n var _a, _b, _c;\n const push = this._push(args.type, args, opts.timeout || this.timeout);\n if (args.type === 'broadcast' && !((_c = (_b = (_a = this.params) === null || _a === void 0 ? void 0 : _a.config) === null || _b === void 0 ? void 0 : _b.broadcast) === null || _c === void 0 ? void 0 : _c.ack)) {\n resolve('ok');\n }\n push.receive('ok', () => resolve('ok'));\n push.receive('error', () => resolve('error'));\n push.receive('timeout', () => resolve('timed out'));\n });\n }\n }\n updateJoinPayload(payload) {\n this.joinPush.updatePayload(payload);\n }\n /**\n * Leaves the channel.\n *\n * Unsubscribes from server events, and instructs channel to terminate on server.\n * Triggers onClose() hooks.\n *\n * To receive leave acknowledgements, use the a `receive` hook to bind to the server ack, ie:\n * channel.unsubscribe().receive(\"ok\", () => alert(\"left!\") )\n */\n unsubscribe(timeout = this.timeout) {\n this.state = CHANNEL_STATES.leaving;\n const onClose = () => {\n this.socket.log('channel', `leave ${this.topic}`);\n this._trigger(CHANNEL_EVENTS.close, 'leave', this._joinRef());\n };\n this.rejoinTimer.reset();\n // Destroy joinPush to avoid connection timeouts during unscription phase\n this.joinPush.destroy();\n return new Promise((resolve) => {\n const leavePush = new Push(this, CHANNEL_EVENTS.leave, {}, timeout);\n leavePush\n .receive('ok', () => {\n onClose();\n resolve('ok');\n })\n .receive('timeout', () => {\n onClose();\n resolve('timed out');\n })\n .receive('error', () => {\n resolve('error');\n });\n leavePush.send();\n if (!this._canPush()) {\n leavePush.trigger('ok', {});\n }\n });\n }\n /** @internal */\n async _fetchWithTimeout(url, options, timeout) {\n const controller = new AbortController();\n const id = setTimeout(() => controller.abort(), timeout);\n const response = await this.socket.fetch(url, Object.assign(Object.assign({}, options), { signal: controller.signal }));\n clearTimeout(id);\n return response;\n }\n /** @internal */\n _push(event, payload, timeout = this.timeout) {\n if (!this.joinedOnce) {\n throw `tried to push '${event}' to '${this.topic}' before joining. Use channel.subscribe() before pushing events`;\n }\n let pushEvent = new Push(this, event, payload, timeout);\n if (this._canPush()) {\n pushEvent.send();\n }\n else {\n pushEvent.startTimeout();\n this.pushBuffer.push(pushEvent);\n }\n return pushEvent;\n }\n /**\n * Overridable message hook\n *\n * Receives all events for specialized message handling before dispatching to the channel callbacks.\n * Must return the payload, modified or unmodified.\n *\n * @internal\n */\n _onMessage(_event, payload, _ref) {\n return payload;\n }\n /** @internal */\n _isMember(topic) {\n return this.topic === topic;\n }\n /** @internal */\n _joinRef() {\n return this.joinPush.ref;\n }\n /** @internal */\n _trigger(type, payload, ref) {\n var _a, _b;\n const typeLower = type.toLocaleLowerCase();\n const { close, error, leave, join } = CHANNEL_EVENTS;\n const events = [close, error, leave, join];\n if (ref && events.indexOf(typeLower) >= 0 && ref !== this._joinRef()) {\n return;\n }\n let handledPayload = this._onMessage(typeLower, payload, ref);\n if (payload && !handledPayload) {\n throw 'channel onMessage callbacks must return the payload, modified or unmodified';\n }\n if (['insert', 'update', 'delete'].includes(typeLower)) {\n (_a = this.bindings.postgres_changes) === null || _a === void 0 ? void 0 : _a.filter((bind) => {\n var _a, _b, _c;\n return (((_a = bind.filter) === null || _a === void 0 ? void 0 : _a.event) === '*' ||\n ((_c = (_b = bind.filter) === null || _b === void 0 ? void 0 : _b.event) === null || _c === void 0 ? void 0 : _c.toLocaleLowerCase()) === typeLower);\n }).map((bind) => bind.callback(handledPayload, ref));\n }\n else {\n (_b = this.bindings[typeLower]) === null || _b === void 0 ? void 0 : _b.filter((bind) => {\n var _a, _b, _c, _d, _e, _f;\n if (['broadcast', 'presence', 'postgres_changes'].includes(typeLower)) {\n if ('id' in bind) {\n const bindId = bind.id;\n const bindEvent = (_a = bind.filter) === null || _a === void 0 ? void 0 : _a.event;\n return (bindId &&\n ((_b = payload.ids) === null || _b === void 0 ? void 0 : _b.includes(bindId)) &&\n (bindEvent === '*' ||\n (bindEvent === null || bindEvent === void 0 ? void 0 : bindEvent.toLocaleLowerCase()) ===\n ((_c = payload.data) === null || _c === void 0 ? void 0 : _c.type.toLocaleLowerCase())));\n }\n else {\n const bindEvent = (_e = (_d = bind === null || bind === void 0 ? void 0 : bind.filter) === null || _d === void 0 ? void 0 : _d.event) === null || _e === void 0 ? void 0 : _e.toLocaleLowerCase();\n return (bindEvent === '*' ||\n bindEvent === ((_f = payload === null || payload === void 0 ? void 0 : payload.event) === null || _f === void 0 ? void 0 : _f.toLocaleLowerCase()));\n }\n }\n else {\n return bind.type.toLocaleLowerCase() === typeLower;\n }\n }).map((bind) => {\n if (typeof handledPayload === 'object' && 'ids' in handledPayload) {\n const postgresChanges = handledPayload.data;\n const { schema, table, commit_timestamp, type, errors } = postgresChanges;\n const enrichedPayload = {\n schema: schema,\n table: table,\n commit_timestamp: commit_timestamp,\n eventType: type,\n new: {},\n old: {},\n errors: errors,\n };\n handledPayload = Object.assign(Object.assign({}, enrichedPayload), this._getPayloadRecords(postgresChanges));\n }\n bind.callback(handledPayload, ref);\n });\n }\n }\n /** @internal */\n _isClosed() {\n return this.state === CHANNEL_STATES.closed;\n }\n /** @internal */\n _isJoined() {\n return this.state === CHANNEL_STATES.joined;\n }\n /** @internal */\n _isJoining() {\n return this.state === CHANNEL_STATES.joining;\n }\n /** @internal */\n _isLeaving() {\n return this.state === CHANNEL_STATES.leaving;\n }\n /** @internal */\n _replyEventName(ref) {\n return `chan_reply_${ref}`;\n }\n /** @internal */\n _on(type, filter, callback) {\n const typeLower = type.toLocaleLowerCase();\n const binding = {\n type: typeLower,\n filter: filter,\n callback: callback,\n };\n if (this.bindings[typeLower]) {\n this.bindings[typeLower].push(binding);\n }\n else {\n this.bindings[typeLower] = [binding];\n }\n return this;\n }\n /** @internal */\n _off(type, filter) {\n const typeLower = type.toLocaleLowerCase();\n this.bindings[typeLower] = this.bindings[typeLower].filter((bind) => {\n var _a;\n return !(((_a = bind.type) === null || _a === void 0 ? void 0 : _a.toLocaleLowerCase()) === typeLower &&\n RealtimeChannel.isEqual(bind.filter, filter));\n });\n return this;\n }\n /** @internal */\n static isEqual(obj1, obj2) {\n if (Object.keys(obj1).length !== Object.keys(obj2).length) {\n return false;\n }\n for (const k in obj1) {\n if (obj1[k] !== obj2[k]) {\n return false;\n }\n }\n return true;\n }\n /** @internal */\n _rejoinUntilConnected() {\n this.rejoinTimer.scheduleTimeout();\n if (this.socket.isConnected()) {\n this._rejoin();\n }\n }\n /**\n * Registers a callback that will be executed when the channel closes.\n *\n * @internal\n */\n _onClose(callback) {\n this._on(CHANNEL_EVENTS.close, {}, callback);\n }\n /**\n * Registers a callback that will be executed when the channel encounteres an error.\n *\n * @internal\n */\n _onError(callback) {\n this._on(CHANNEL_EVENTS.error, {}, (reason) => callback(reason));\n }\n /**\n * Returns `true` if the socket is connected and the channel has been joined.\n *\n * @internal\n */\n _canPush() {\n return this.socket.isConnected() && this._isJoined();\n }\n /** @internal */\n _rejoin(timeout = this.timeout) {\n if (this._isLeaving()) {\n return;\n }\n this.socket._leaveOpenTopic(this.topic);\n this.state = CHANNEL_STATES.joining;\n this.joinPush.resend(timeout);\n }\n /** @internal */\n _getPayloadRecords(payload) {\n const records = {\n new: {},\n old: {},\n };\n if (payload.type === 'INSERT' || payload.type === 'UPDATE') {\n records.new = Transformers.convertChangeData(payload.columns, payload.record);\n }\n if (payload.type === 'UPDATE' || payload.type === 'DELETE') {\n records.old = Transformers.convertChangeData(payload.columns, payload.old_record);\n }\n return records;\n }\n}\n//# sourceMappingURL=RealtimeChannel.js.map","import { CHANNEL_EVENTS, CONNECTION_STATE, DEFAULT_HEADERS, DEFAULT_TIMEOUT, SOCKET_STATES, TRANSPORTS, VSN, WS_CLOSE_NORMAL, } from './lib/constants';\nimport Serializer from './lib/serializer';\nimport Timer from './lib/timer';\nimport { httpEndpointURL } from './lib/transformers';\nimport RealtimeChannel from './RealtimeChannel';\nconst noop = () => { };\nconst NATIVE_WEBSOCKET_AVAILABLE = typeof WebSocket !== 'undefined';\nconst WORKER_SCRIPT = `\n addEventListener(\"message\", (e) => {\n if (e.data.event === \"start\") {\n setInterval(() => postMessage({ event: \"keepAlive\" }), e.data.interval);\n }\n });`;\nexport default class RealtimeClient {\n /**\n * Initializes the Socket.\n *\n * @param endPoint The string WebSocket endpoint, ie, \"ws://example.com/socket\", \"wss://example.com\", \"/socket\" (inherited host & protocol)\n * @param httpEndpoint The string HTTP endpoint, ie, \"https://example.com\", \"/\" (inherited host & protocol)\n * @param options.transport The Websocket Transport, for example WebSocket.\n * @param options.timeout The default timeout in milliseconds to trigger push timeouts.\n * @param options.params The optional params to pass when connecting.\n * @param options.headers The optional headers to pass when connecting.\n * @param options.heartbeatIntervalMs The millisec interval to send a heartbeat message.\n * @param options.logger The optional function for specialized logging, ie: logger: (kind, msg, data) => { console.log(`${kind}: ${msg}`, data) }\n * @param options.encode The function to encode outgoing messages. Defaults to JSON: (payload, callback) => callback(JSON.stringify(payload))\n * @param options.decode The function to decode incoming messages. Defaults to Serializer's decode.\n * @param options.reconnectAfterMs he optional function that returns the millsec reconnect interval. Defaults to stepped backoff off.\n * @param options.worker Use Web Worker to set a side flow. Defaults to false.\n * @param options.workerUrl The URL of the worker script. Defaults to https://realtime.supabase.com/worker.js that includes a heartbeat event call to keep the connection alive.\n */\n constructor(endPoint, options) {\n var _a;\n this.accessTokenValue = null;\n this.apiKey = null;\n this.channels = [];\n this.endPoint = '';\n this.httpEndpoint = '';\n this.headers = DEFAULT_HEADERS;\n this.params = {};\n this.timeout = DEFAULT_TIMEOUT;\n this.heartbeatIntervalMs = 30000;\n this.heartbeatTimer = undefined;\n this.pendingHeartbeatRef = null;\n this.ref = 0;\n this.logger = noop;\n this.conn = null;\n this.sendBuffer = [];\n this.serializer = new Serializer();\n this.stateChangeCallbacks = {\n open: [],\n close: [],\n error: [],\n message: [],\n };\n this.accessToken = null;\n /**\n * Use either custom fetch, if provided, or default fetch to make HTTP requests\n *\n * @internal\n */\n this._resolveFetch = (customFetch) => {\n let _fetch;\n if (customFetch) {\n _fetch = customFetch;\n }\n else if (typeof fetch === 'undefined') {\n _fetch = (...args) => import('@supabase/node-fetch').then(({ default: fetch }) => fetch(...args));\n }\n else {\n _fetch = fetch;\n }\n return (...args) => _fetch(...args);\n };\n this.endPoint = `${endPoint}/${TRANSPORTS.websocket}`;\n this.httpEndpoint = httpEndpointURL(endPoint);\n if (options === null || options === void 0 ? void 0 : options.transport) {\n this.transport = options.transport;\n }\n else {\n this.transport = null;\n }\n if (options === null || options === void 0 ? void 0 : options.params)\n this.params = options.params;\n if (options === null || options === void 0 ? void 0 : options.headers)\n this.headers = Object.assign(Object.assign({}, this.headers), options.headers);\n if (options === null || options === void 0 ? void 0 : options.timeout)\n this.timeout = options.timeout;\n if (options === null || options === void 0 ? void 0 : options.logger)\n this.logger = options.logger;\n if (options === null || options === void 0 ? void 0 : options.heartbeatIntervalMs)\n this.heartbeatIntervalMs = options.heartbeatIntervalMs;\n const accessTokenValue = (_a = options === null || options === void 0 ? void 0 : options.params) === null || _a === void 0 ? void 0 : _a.apikey;\n if (accessTokenValue) {\n this.accessTokenValue = accessTokenValue;\n this.apiKey = accessTokenValue;\n }\n this.reconnectAfterMs = (options === null || options === void 0 ? void 0 : options.reconnectAfterMs)\n ? options.reconnectAfterMs\n : (tries) => {\n return [1000, 2000, 5000, 10000][tries - 1] || 10000;\n };\n this.encode = (options === null || options === void 0 ? void 0 : options.encode)\n ? options.encode\n : (payload, callback) => {\n return callback(JSON.stringify(payload));\n };\n this.decode = (options === null || options === void 0 ? void 0 : options.decode)\n ? options.decode\n : this.serializer.decode.bind(this.serializer);\n this.reconnectTimer = new Timer(async () => {\n this.disconnect();\n this.connect();\n }, this.reconnectAfterMs);\n this.fetch = this._resolveFetch(options === null || options === void 0 ? void 0 : options.fetch);\n if (options === null || options === void 0 ? void 0 : options.worker) {\n if (typeof window !== 'undefined' && !window.Worker) {\n throw new Error('Web Worker is not supported');\n }\n this.worker = (options === null || options === void 0 ? void 0 : options.worker) || false;\n this.workerUrl = options === null || options === void 0 ? void 0 : options.workerUrl;\n }\n this.accessToken = (options === null || options === void 0 ? void 0 : options.accessToken) || null;\n }\n /**\n * Connects the socket, unless already connected.\n */\n connect() {\n if (this.conn) {\n return;\n }\n if (this.transport) {\n this.conn = new this.transport(this.endpointURL(), undefined, {\n headers: this.headers,\n });\n return;\n }\n if (NATIVE_WEBSOCKET_AVAILABLE) {\n this.conn = new WebSocket(this.endpointURL());\n this.setupConnection();\n return;\n }\n this.conn = new WSWebSocketDummy(this.endpointURL(), undefined, {\n close: () => {\n this.conn = null;\n },\n });\n import('ws').then(({ default: WS }) => {\n this.conn = new WS(this.endpointURL(), undefined, {\n headers: this.headers,\n });\n this.setupConnection();\n });\n }\n /**\n * Returns the URL of the websocket.\n * @returns string The URL of the websocket.\n */\n endpointURL() {\n return this._appendParams(this.endPoint, Object.assign({}, this.params, { vsn: VSN }));\n }\n /**\n * Disconnects the socket.\n *\n * @param code A numeric status code to send on disconnect.\n * @param reason A custom reason for the disconnect.\n */\n disconnect(code, reason) {\n if (this.conn) {\n this.conn.onclose = function () { }; // noop\n if (code) {\n this.conn.close(code, reason !== null && reason !== void 0 ? reason : '');\n }\n else {\n this.conn.close();\n }\n this.conn = null;\n // remove open handles\n this.heartbeatTimer && clearInterval(this.heartbeatTimer);\n this.reconnectTimer.reset();\n }\n }\n /**\n * Returns all created channels\n */\n getChannels() {\n return this.channels;\n }\n /**\n * Unsubscribes and removes a single channel\n * @param channel A RealtimeChannel instance\n */\n async removeChannel(channel) {\n const status = await channel.unsubscribe();\n if (this.channels.length === 0) {\n this.disconnect();\n }\n return status;\n }\n /**\n * Unsubscribes and removes all channels\n */\n async removeAllChannels() {\n const values_1 = await Promise.all(this.channels.map((channel) => channel.unsubscribe()));\n this.disconnect();\n return values_1;\n }\n /**\n * Logs the message.\n *\n * For customized logging, `this.logger` can be overridden.\n */\n log(kind, msg, data) {\n this.logger(kind, msg, data);\n }\n /**\n * Returns the current state of the socket.\n */\n connectionState() {\n switch (this.conn && this.conn.readyState) {\n case SOCKET_STATES.connecting:\n return CONNECTION_STATE.Connecting;\n case SOCKET_STATES.open:\n return CONNECTION_STATE.Open;\n case SOCKET_STATES.closing:\n return CONNECTION_STATE.Closing;\n default:\n return CONNECTION_STATE.Closed;\n }\n }\n /**\n * Returns `true` is the connection is open.\n */\n isConnected() {\n return this.connectionState() === CONNECTION_STATE.Open;\n }\n channel(topic, params = { config: {} }) {\n const chan = new RealtimeChannel(`realtime:${topic}`, params, this);\n this.channels.push(chan);\n return chan;\n }\n /**\n * Push out a message if the socket is connected.\n *\n * If the socket is not connected, the message gets enqueued within a local buffer, and sent out when a connection is next established.\n */\n push(data) {\n const { topic, event, payload, ref } = data;\n const callback = () => {\n this.encode(data, (result) => {\n var _a;\n (_a = this.conn) === null || _a === void 0 ? void 0 : _a.send(result);\n });\n };\n this.log('push', `${topic} ${event} (${ref})`, payload);\n if (this.isConnected()) {\n callback();\n }\n else {\n this.sendBuffer.push(callback);\n }\n }\n /**\n * Sets the JWT access token used for channel subscription authorization and Realtime RLS.\n *\n * If param is null it will use the `accessToken` callback function or the token set on the client.\n *\n * On callback used, it will set the value of the token internal to the client.\n *\n * @param token A JWT string to override the token set on the client.\n */\n async setAuth(token = null) {\n let tokenToSend = token ||\n (this.accessToken && (await this.accessToken())) ||\n this.accessTokenValue;\n if (tokenToSend) {\n let parsed = null;\n try {\n parsed = JSON.parse(atob(tokenToSend.split('.')[1]));\n }\n catch (_error) { }\n if (parsed && parsed.exp) {\n let now = Math.floor(Date.now() / 1000);\n let valid = now - parsed.exp < 0;\n if (!valid) {\n this.log('auth', `InvalidJWTToken: Invalid value for JWT claim \"exp\" with value ${parsed.exp}`);\n return Promise.reject(`InvalidJWTToken: Invalid value for JWT claim \"exp\" with value ${parsed.exp}`);\n }\n }\n this.accessTokenValue = tokenToSend;\n this.channels.forEach((channel) => {\n tokenToSend && channel.updateJoinPayload({ access_token: tokenToSend });\n if (channel.joinedOnce && channel._isJoined()) {\n channel._push(CHANNEL_EVENTS.access_token, {\n access_token: tokenToSend,\n });\n }\n });\n }\n }\n /**\n * Sends a heartbeat message if the socket is connected.\n */\n async sendHeartbeat() {\n var _a;\n if (!this.isConnected()) {\n return;\n }\n if (this.pendingHeartbeatRef) {\n this.pendingHeartbeatRef = null;\n this.log('transport', 'heartbeat timeout. Attempting to re-establish connection');\n (_a = this.conn) === null || _a === void 0 ? void 0 : _a.close(WS_CLOSE_NORMAL, 'hearbeat timeout');\n return;\n }\n this.pendingHeartbeatRef = this._makeRef();\n this.push({\n topic: 'phoenix',\n event: 'heartbeat',\n payload: {},\n ref: this.pendingHeartbeatRef,\n });\n this.setAuth();\n }\n /**\n * Flushes send buffer\n */\n flushSendBuffer() {\n if (this.isConnected() && this.sendBuffer.length > 0) {\n this.sendBuffer.forEach((callback) => callback());\n this.sendBuffer = [];\n }\n }\n /**\n * Return the next message ref, accounting for overflows\n *\n * @internal\n */\n _makeRef() {\n let newRef = this.ref + 1;\n if (newRef === this.ref) {\n this.ref = 0;\n }\n else {\n this.ref = newRef;\n }\n return this.ref.toString();\n }\n /**\n * Unsubscribe from channels with the specified topic.\n *\n * @internal\n */\n _leaveOpenTopic(topic) {\n let dupChannel = this.channels.find((c) => c.topic === topic && (c._isJoined() || c._isJoining()));\n if (dupChannel) {\n this.log('transport', `leaving duplicate topic \"${topic}\"`);\n dupChannel.unsubscribe();\n }\n }\n /**\n * Removes a subscription from the socket.\n *\n * @param channel An open subscription.\n *\n * @internal\n */\n _remove(channel) {\n this.channels = this.channels.filter((c) => c._joinRef() !== channel._joinRef());\n }\n /**\n * Sets up connection handlers.\n *\n * @internal\n */\n setupConnection() {\n if (this.conn) {\n this.conn.binaryType = 'arraybuffer';\n this.conn.onopen = () => this._onConnOpen();\n this.conn.onerror = (error) => this._onConnError(error);\n this.conn.onmessage = (event) => this._onConnMessage(event);\n this.conn.onclose = (event) => this._onConnClose(event);\n }\n }\n /** @internal */\n _onConnMessage(rawMessage) {\n this.decode(rawMessage.data, (msg) => {\n let { topic, event, payload, ref } = msg;\n if (ref && ref === this.pendingHeartbeatRef) {\n this.pendingHeartbeatRef = null;\n }\n this.log('receive', `${payload.status || ''} ${topic} ${event} ${(ref && '(' + ref + ')') || ''}`, payload);\n this.channels\n .filter((channel) => channel._isMember(topic))\n .forEach((channel) => channel._trigger(event, payload, ref));\n this.stateChangeCallbacks.message.forEach((callback) => callback(msg));\n });\n }\n /** @internal */\n async _onConnOpen() {\n this.log('transport', `connected to ${this.endpointURL()}`);\n this.flushSendBuffer();\n this.reconnectTimer.reset();\n if (!this.worker) {\n this.heartbeatTimer && clearInterval(this.heartbeatTimer);\n this.heartbeatTimer = setInterval(() => this.sendHeartbeat(), this.heartbeatIntervalMs);\n }\n else {\n if (this.workerUrl) {\n this.log('worker', `starting worker for from ${this.workerUrl}`);\n }\n else {\n this.log('worker', `starting default worker`);\n }\n const objectUrl = this._workerObjectUrl(this.workerUrl);\n this.workerRef = new Worker(objectUrl);\n this.workerRef.onerror = (error) => {\n this.log('worker', 'worker error', error.message);\n this.workerRef.terminate();\n };\n this.workerRef.onmessage = (event) => {\n if (event.data.event === 'keepAlive') {\n this.sendHeartbeat();\n }\n };\n this.workerRef.postMessage({\n event: 'start',\n interval: this.heartbeatIntervalMs,\n });\n }\n this.stateChangeCallbacks.open.forEach((callback) => callback());\n }\n /** @internal */\n _onConnClose(event) {\n this.log('transport', 'close', event);\n this._triggerChanError();\n this.heartbeatTimer && clearInterval(this.heartbeatTimer);\n this.reconnectTimer.scheduleTimeout();\n this.stateChangeCallbacks.close.forEach((callback) => callback(event));\n }\n /** @internal */\n _onConnError(error) {\n this.log('transport', error.message);\n this._triggerChanError();\n this.stateChangeCallbacks.error.forEach((callback) => callback(error));\n }\n /** @internal */\n _triggerChanError() {\n this.channels.forEach((channel) => channel._trigger(CHANNEL_EVENTS.error));\n }\n /** @internal */\n _appendParams(url, params) {\n if (Object.keys(params).length === 0) {\n return url;\n }\n const prefix = url.match(/\\?/) ? '&' : '?';\n const query = new URLSearchParams(params);\n return `${url}${prefix}${query}`;\n }\n _workerObjectUrl(url) {\n let result_url;\n if (url) {\n result_url = url;\n }\n else {\n const blob = new Blob([WORKER_SCRIPT], { type: 'application/javascript' });\n result_url = URL.createObjectURL(blob);\n }\n return result_url;\n }\n}\nclass WSWebSocketDummy {\n constructor(address, _protocols, options) {\n this.binaryType = 'arraybuffer';\n this.onclose = () => { };\n this.onerror = () => { };\n this.onmessage = () => { };\n this.onopen = () => { };\n this.readyState = SOCKET_STATES.connecting;\n this.send = () => { };\n this.url = null;\n this.url = address;\n this.close = options.close;\n }\n}\n//# sourceMappingURL=RealtimeClient.js.map","export class StorageError extends Error {\n constructor(message) {\n super(message);\n this.__isStorageError = true;\n this.name = 'StorageError';\n }\n}\nexport function isStorageError(error) {\n return typeof error === 'object' && error !== null && '__isStorageError' in error;\n}\nexport class StorageApiError extends StorageError {\n constructor(message, status) {\n super(message);\n this.name = 'StorageApiError';\n this.status = status;\n }\n toJSON() {\n return {\n name: this.name,\n message: this.message,\n status: this.status,\n };\n }\n}\nexport class StorageUnknownError extends StorageError {\n constructor(message, originalError) {\n super(message);\n this.name = 'StorageUnknownError';\n this.originalError = originalError;\n }\n}\n//# sourceMappingURL=errors.js.map","var __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};\nexport const resolveFetch = (customFetch) => {\n let _fetch;\n if (customFetch) {\n _fetch = customFetch;\n }\n else if (typeof fetch === 'undefined') {\n _fetch = (...args) => import('@supabase/node-fetch').then(({ default: fetch }) => fetch(...args));\n }\n else {\n _fetch = fetch;\n }\n return (...args) => _fetch(...args);\n};\nexport const resolveResponse = () => __awaiter(void 0, void 0, void 0, function* () {\n if (typeof Response === 'undefined') {\n // @ts-ignore\n return (yield import('@supabase/node-fetch')).Response;\n }\n return Response;\n});\nexport const recursiveToCamel = (item) => {\n if (Array.isArray(item)) {\n return item.map((el) => recursiveToCamel(el));\n }\n else if (typeof item === 'function' || item !== Object(item)) {\n return item;\n }\n const result = {};\n Object.entries(item).forEach(([key, value]) => {\n const newKey = key.replace(/([-_][a-z])/gi, (c) => c.toUpperCase().replace(/[-_]/g, ''));\n result[newKey] = recursiveToCamel(value);\n });\n return result;\n};\n//# sourceMappingURL=helpers.js.map","var __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};\nimport { StorageApiError, StorageUnknownError } from './errors';\nimport { resolveResponse } from './helpers';\nconst _getErrorMessage = (err) => err.msg || err.message || err.error_description || err.error || JSON.stringify(err);\nconst handleError = (error, reject, options) => __awaiter(void 0, void 0, void 0, function* () {\n const Res = yield resolveResponse();\n if (error instanceof Res && !(options === null || options === void 0 ? void 0 : options.noResolveJson)) {\n error\n .json()\n .then((err) => {\n reject(new StorageApiError(_getErrorMessage(err), error.status || 500));\n })\n .catch((err) => {\n reject(new StorageUnknownError(_getErrorMessage(err), err));\n });\n }\n else {\n reject(new StorageUnknownError(_getErrorMessage(error), error));\n }\n});\nconst _getRequestParams = (method, options, parameters, body) => {\n const params = { method, headers: (options === null || options === void 0 ? void 0 : options.headers) || {} };\n if (method === 'GET') {\n return params;\n }\n params.headers = Object.assign({ 'Content-Type': 'application/json' }, options === null || options === void 0 ? void 0 : options.headers);\n if (body) {\n params.body = JSON.stringify(body);\n }\n return Object.assign(Object.assign({}, params), parameters);\n};\nfunction _handleRequest(fetcher, method, url, options, parameters, body) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve, reject) => {\n fetcher(url, _getRequestParams(method, options, parameters, body))\n .then((result) => {\n if (!result.ok)\n throw result;\n if (options === null || options === void 0 ? void 0 : options.noResolveJson)\n return result;\n return result.json();\n })\n .then((data) => resolve(data))\n .catch((error) => handleError(error, reject, options));\n });\n });\n}\nexport function get(fetcher, url, options, parameters) {\n return __awaiter(this, void 0, void 0, function* () {\n return _handleRequest(fetcher, 'GET', url, options, parameters);\n });\n}\nexport function post(fetcher, url, body, options, parameters) {\n return __awaiter(this, void 0, void 0, function* () {\n return _handleRequest(fetcher, 'POST', url, options, parameters, body);\n });\n}\nexport function put(fetcher, url, body, options, parameters) {\n return __awaiter(this, void 0, void 0, function* () {\n return _handleRequest(fetcher, 'PUT', url, options, parameters, body);\n });\n}\nexport function head(fetcher, url, options, parameters) {\n return __awaiter(this, void 0, void 0, function* () {\n return _handleRequest(fetcher, 'HEAD', url, Object.assign(Object.assign({}, options), { noResolveJson: true }), parameters);\n });\n}\nexport function remove(fetcher, url, body, options, parameters) {\n return __awaiter(this, void 0, void 0, function* () {\n return _handleRequest(fetcher, 'DELETE', url, options, parameters, body);\n });\n}\n//# sourceMappingURL=fetch.js.map","var __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};\nimport { isStorageError, StorageError, StorageUnknownError } from '../lib/errors';\nimport { get, head, post, remove } from '../lib/fetch';\nimport { recursiveToCamel, resolveFetch } from '../lib/helpers';\nconst DEFAULT_SEARCH_OPTIONS = {\n limit: 100,\n offset: 0,\n sortBy: {\n column: 'name',\n order: 'asc',\n },\n};\nconst DEFAULT_FILE_OPTIONS = {\n cacheControl: '3600',\n contentType: 'text/plain;charset=UTF-8',\n upsert: false,\n};\nexport default class StorageFileApi {\n constructor(url, headers = {}, bucketId, fetch) {\n this.url = url;\n this.headers = headers;\n this.bucketId = bucketId;\n this.fetch = resolveFetch(fetch);\n }\n /**\n * Uploads a file to an existing bucket or replaces an existing file at the specified path with a new one.\n *\n * @param method HTTP method.\n * @param path The relative file path. Should be of the format `folder/subfolder/filename.png`. The bucket must already exist before attempting to upload.\n * @param fileBody The body of the file to be stored in the bucket.\n */\n uploadOrUpdate(method, path, fileBody, fileOptions) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n let body;\n const options = Object.assign(Object.assign({}, DEFAULT_FILE_OPTIONS), fileOptions);\n let headers = Object.assign(Object.assign({}, this.headers), (method === 'POST' && { 'x-upsert': String(options.upsert) }));\n const metadata = options.metadata;\n if (typeof Blob !== 'undefined' && fileBody instanceof Blob) {\n body = new FormData();\n body.append('cacheControl', options.cacheControl);\n if (metadata) {\n body.append('metadata', this.encodeMetadata(metadata));\n }\n body.append('', fileBody);\n }\n else if (typeof FormData !== 'undefined' && fileBody instanceof FormData) {\n body = fileBody;\n body.append('cacheControl', options.cacheControl);\n if (metadata) {\n body.append('metadata', this.encodeMetadata(metadata));\n }\n }\n else {\n body = fileBody;\n headers['cache-control'] = `max-age=${options.cacheControl}`;\n headers['content-type'] = options.contentType;\n if (metadata) {\n headers['x-metadata'] = this.toBase64(this.encodeMetadata(metadata));\n }\n }\n if (fileOptions === null || fileOptions === void 0 ? void 0 : fileOptions.headers) {\n headers = Object.assign(Object.assign({}, headers), fileOptions.headers);\n }\n const cleanPath = this._removeEmptyFolders(path);\n const _path = this._getFinalPath(cleanPath);\n const res = yield this.fetch(`${this.url}/object/${_path}`, Object.assign({ method, body: body, headers }, ((options === null || options === void 0 ? void 0 : options.duplex) ? { duplex: options.duplex } : {})));\n const data = yield res.json();\n if (res.ok) {\n return {\n data: { path: cleanPath, id: data.Id, fullPath: data.Key },\n error: null,\n };\n }\n else {\n const error = data;\n return { data: null, error };\n }\n }\n catch (error) {\n if (isStorageError(error)) {\n return { data: null, error };\n }\n throw error;\n }\n });\n }\n /**\n * Uploads a file to an existing bucket.\n *\n * @param path The file path, including the file name. Should be of the format `folder/subfolder/filename.png`. The bucket must already exist before attempting to upload.\n * @param fileBody The body of the file to be stored in the bucket.\n */\n upload(path, fileBody, fileOptions) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.uploadOrUpdate('POST', path, fileBody, fileOptions);\n });\n }\n /**\n * Upload a file with a token generated from `createSignedUploadUrl`.\n * @param path The file path, including the file name. Should be of the format `folder/subfolder/filename.png`. The bucket must already exist before attempting to upload.\n * @param token The token generated from `createSignedUploadUrl`\n * @param fileBody The body of the file to be stored in the bucket.\n */\n uploadToSignedUrl(path, token, fileBody, fileOptions) {\n return __awaiter(this, void 0, void 0, function* () {\n const cleanPath = this._removeEmptyFolders(path);\n const _path = this._getFinalPath(cleanPath);\n const url = new URL(this.url + `/object/upload/sign/${_path}`);\n url.searchParams.set('token', token);\n try {\n let body;\n const options = Object.assign({ upsert: DEFAULT_FILE_OPTIONS.upsert }, fileOptions);\n const headers = Object.assign(Object.assign({}, this.headers), { 'x-upsert': String(options.upsert) });\n if (typeof Blob !== 'undefined' && fileBody instanceof Blob) {\n body = new FormData();\n body.append('cacheControl', options.cacheControl);\n body.append('', fileBody);\n }\n else if (typeof FormData !== 'undefined' && fileBody instanceof FormData) {\n body = fileBody;\n body.append('cacheControl', options.cacheControl);\n }\n else {\n body = fileBody;\n headers['cache-control'] = `max-age=${options.cacheControl}`;\n headers['content-type'] = options.contentType;\n }\n const res = yield this.fetch(url.toString(), {\n method: 'PUT',\n body: body,\n headers,\n });\n const data = yield res.json();\n if (res.ok) {\n return {\n data: { path: cleanPath, fullPath: data.Key },\n error: null,\n };\n }\n else {\n const error = data;\n return { data: null, error };\n }\n }\n catch (error) {\n if (isStorageError(error)) {\n return { data: null, error };\n }\n throw error;\n }\n });\n }\n /**\n * Creates a signed upload URL.\n * Signed upload URLs can be used to upload files to the bucket without further authentication.\n * They are valid for 2 hours.\n * @param path The file path, including the current file name. For example `folder/image.png`.\n * @param options.upsert If set to true, allows the file to be overwritten if it already exists.\n */\n createSignedUploadUrl(path, options) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n let _path = this._getFinalPath(path);\n const headers = Object.assign({}, this.headers);\n if (options === null || options === void 0 ? void 0 : options.upsert) {\n headers['x-upsert'] = 'true';\n }\n const data = yield post(this.fetch, `${this.url}/object/upload/sign/${_path}`, {}, { headers });\n const url = new URL(this.url + data.url);\n const token = url.searchParams.get('token');\n if (!token) {\n throw new StorageError('No token returned by API');\n }\n return { data: { signedUrl: url.toString(), path, token }, error: null };\n }\n catch (error) {\n if (isStorageError(error)) {\n return { data: null, error };\n }\n throw error;\n }\n });\n }\n /**\n * Replaces an existing file at the specified path with a new one.\n *\n * @param path The relative file path. Should be of the format `folder/subfolder/filename.png`. The bucket must already exist before attempting to update.\n * @param fileBody The body of the file to be stored in the bucket.\n */\n update(path, fileBody, fileOptions) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.uploadOrUpdate('PUT', path, fileBody, fileOptions);\n });\n }\n /**\n * Moves an existing file to a new path in the same bucket.\n *\n * @param fromPath The original file path, including the current file name. For example `folder/image.png`.\n * @param toPath The new file path, including the new file name. For example `folder/image-new.png`.\n * @param options The destination options.\n */\n move(fromPath, toPath, options) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const data = yield post(this.fetch, `${this.url}/object/move`, {\n bucketId: this.bucketId,\n sourceKey: fromPath,\n destinationKey: toPath,\n destinationBucket: options === null || options === void 0 ? void 0 : options.destinationBucket,\n }, { headers: this.headers });\n return { data, error: null };\n }\n catch (error) {\n if (isStorageError(error)) {\n return { data: null, error };\n }\n throw error;\n }\n });\n }\n /**\n * Copies an existing file to a new path in the same bucket.\n *\n * @param fromPath The original file path, including the current file name. For example `folder/image.png`.\n * @param toPath The new file path, including the new file name. For example `folder/image-copy.png`.\n * @param options The destination options.\n */\n copy(fromPath, toPath, options) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const data = yield post(this.fetch, `${this.url}/object/copy`, {\n bucketId: this.bucketId,\n sourceKey: fromPath,\n destinationKey: toPath,\n destinationBucket: options === null || options === void 0 ? void 0 : options.destinationBucket,\n }, { headers: this.headers });\n return { data: { path: data.Key }, error: null };\n }\n catch (error) {\n if (isStorageError(error)) {\n return { data: null, error };\n }\n throw error;\n }\n });\n }\n /**\n * Creates a signed URL. Use a signed URL to share a file for a fixed amount of time.\n *\n * @param path The file path, including the current file name. For example `folder/image.png`.\n * @param expiresIn The number of seconds until the signed URL expires. For example, `60` for a URL which is valid for one minute.\n * @param options.download triggers the file as a download if set to true. Set this parameter as the name of the file if you want to trigger the download with a different filename.\n * @param options.transform Transform the asset before serving it to the client.\n */\n createSignedUrl(path, expiresIn, options) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n let _path = this._getFinalPath(path);\n let data = yield post(this.fetch, `${this.url}/object/sign/${_path}`, Object.assign({ expiresIn }, ((options === null || options === void 0 ? void 0 : options.transform) ? { transform: options.transform } : {})), { headers: this.headers });\n const downloadQueryParam = (options === null || options === void 0 ? void 0 : options.download)\n ? `&download=${options.download === true ? '' : options.download}`\n : '';\n const signedUrl = encodeURI(`${this.url}${data.signedURL}${downloadQueryParam}`);\n data = { signedUrl };\n return { data, error: null };\n }\n catch (error) {\n if (isStorageError(error)) {\n return { data: null, error };\n }\n throw error;\n }\n });\n }\n /**\n * Creates multiple signed URLs. Use a signed URL to share a file for a fixed amount of time.\n *\n * @param paths The file paths to be downloaded, including the current file names. For example `['folder/image.png', 'folder2/image2.png']`.\n * @param expiresIn The number of seconds until the signed URLs expire. For example, `60` for URLs which are valid for one minute.\n * @param options.download triggers the file as a download if set to true. Set this parameter as the name of the file if you want to trigger the download with a different filename.\n */\n createSignedUrls(paths, expiresIn, options) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const data = yield post(this.fetch, `${this.url}/object/sign/${this.bucketId}`, { expiresIn, paths }, { headers: this.headers });\n const downloadQueryParam = (options === null || options === void 0 ? void 0 : options.download)\n ? `&download=${options.download === true ? '' : options.download}`\n : '';\n return {\n data: data.map((datum) => (Object.assign(Object.assign({}, datum), { signedUrl: datum.signedURL\n ? encodeURI(`${this.url}${datum.signedURL}${downloadQueryParam}`)\n : null }))),\n error: null,\n };\n }\n catch (error) {\n if (isStorageError(error)) {\n return { data: null, error };\n }\n throw error;\n }\n });\n }\n /**\n * Downloads a file from a private bucket. For public buckets, make a request to the URL returned from `getPublicUrl` instead.\n *\n * @param path The full path and file name of the file to be downloaded. For example `folder/image.png`.\n * @param options.transform Transform the asset before serving it to the client.\n */\n download(path, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const wantsTransformation = typeof (options === null || options === void 0 ? void 0 : options.transform) !== 'undefined';\n const renderPath = wantsTransformation ? 'render/image/authenticated' : 'object';\n const transformationQuery = this.transformOptsToQueryString((options === null || options === void 0 ? void 0 : options.transform) || {});\n const queryString = transformationQuery ? `?${transformationQuery}` : '';\n try {\n const _path = this._getFinalPath(path);\n const res = yield get(this.fetch, `${this.url}/${renderPath}/${_path}${queryString}`, {\n headers: this.headers,\n noResolveJson: true,\n });\n const data = yield res.blob();\n return { data, error: null };\n }\n catch (error) {\n if (isStorageError(error)) {\n return { data: null, error };\n }\n throw error;\n }\n });\n }\n /**\n * Retrieves the details of an existing file.\n * @param path\n */\n info(path) {\n return __awaiter(this, void 0, void 0, function* () {\n const _path = this._getFinalPath(path);\n try {\n const data = yield get(this.fetch, `${this.url}/object/info/${_path}`, {\n headers: this.headers,\n });\n return { data: recursiveToCamel(data), error: null };\n }\n catch (error) {\n if (isStorageError(error)) {\n return { data: null, error };\n }\n throw error;\n }\n });\n }\n /**\n * Checks the existence of a file.\n * @param path\n */\n exists(path) {\n return __awaiter(this, void 0, void 0, function* () {\n const _path = this._getFinalPath(path);\n try {\n yield head(this.fetch, `${this.url}/object/${_path}`, {\n headers: this.headers,\n });\n return { data: true, error: null };\n }\n catch (error) {\n if (isStorageError(error) && error instanceof StorageUnknownError) {\n const originalError = error.originalError;\n if ([400, 404].includes(originalError === null || originalError === void 0 ? void 0 : originalError.status)) {\n return { data: false, error };\n }\n }\n throw error;\n }\n });\n }\n /**\n * A simple convenience function to get the URL for an asset in a public bucket. If you do not want to use this function, you can construct the public URL by concatenating the bucket URL with the path to the asset.\n * This function does not verify if the bucket is public. If a public URL is created for a bucket which is not public, you will not be able to download the asset.\n *\n * @param path The path and name of the file to generate the public URL for. For example `folder/image.png`.\n * @param options.download Triggers the file as a download if set to true. Set this parameter as the name of the file if you want to trigger the download with a different filename.\n * @param options.transform Transform the asset before serving it to the client.\n */\n getPublicUrl(path, options) {\n const _path = this._getFinalPath(path);\n const _queryString = [];\n const downloadQueryParam = (options === null || options === void 0 ? void 0 : options.download)\n ? `download=${options.download === true ? '' : options.download}`\n : '';\n if (downloadQueryParam !== '') {\n _queryString.push(downloadQueryParam);\n }\n const wantsTransformation = typeof (options === null || options === void 0 ? void 0 : options.transform) !== 'undefined';\n const renderPath = wantsTransformation ? 'render/image' : 'object';\n const transformationQuery = this.transformOptsToQueryString((options === null || options === void 0 ? void 0 : options.transform) || {});\n if (transformationQuery !== '') {\n _queryString.push(transformationQuery);\n }\n let queryString = _queryString.join('&');\n if (queryString !== '') {\n queryString = `?${queryString}`;\n }\n return {\n data: { publicUrl: encodeURI(`${this.url}/${renderPath}/public/${_path}${queryString}`) },\n };\n }\n /**\n * Deletes files within the same bucket\n *\n * @param paths An array of files to delete, including the path and file name. For example [`'folder/image.png'`].\n */\n remove(paths) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const data = yield remove(this.fetch, `${this.url}/object/${this.bucketId}`, { prefixes: paths }, { headers: this.headers });\n return { data, error: null };\n }\n catch (error) {\n if (isStorageError(error)) {\n return { data: null, error };\n }\n throw error;\n }\n });\n }\n /**\n * Get file metadata\n * @param id the file id to retrieve metadata\n */\n // async getMetadata(\n // id: string\n // ): Promise<\n // | {\n // data: Metadata\n // error: null\n // }\n // | {\n // data: null\n // error: StorageError\n // }\n // > {\n // try {\n // const data = await get(this.fetch, `${this.url}/metadata/${id}`, { headers: this.headers })\n // return { data, error: null }\n // } catch (error) {\n // if (isStorageError(error)) {\n // return { data: null, error }\n // }\n // throw error\n // }\n // }\n /**\n * Update file metadata\n * @param id the file id to update metadata\n * @param meta the new file metadata\n */\n // async updateMetadata(\n // id: string,\n // meta: Metadata\n // ): Promise<\n // | {\n // data: Metadata\n // error: null\n // }\n // | {\n // data: null\n // error: StorageError\n // }\n // > {\n // try {\n // const data = await post(\n // this.fetch,\n // `${this.url}/metadata/${id}`,\n // { ...meta },\n // { headers: this.headers }\n // )\n // return { data, error: null }\n // } catch (error) {\n // if (isStorageError(error)) {\n // return { data: null, error }\n // }\n // throw error\n // }\n // }\n /**\n * Lists all the files within a bucket.\n * @param path The folder path.\n */\n list(path, options, parameters) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const body = Object.assign(Object.assign(Object.assign({}, DEFAULT_SEARCH_OPTIONS), options), { prefix: path || '' });\n const data = yield post(this.fetch, `${this.url}/object/list/${this.bucketId}`, body, { headers: this.headers }, parameters);\n return { data, error: null };\n }\n catch (error) {\n if (isStorageError(error)) {\n return { data: null, error };\n }\n throw error;\n }\n });\n }\n encodeMetadata(metadata) {\n return JSON.stringify(metadata);\n }\n toBase64(data) {\n if (typeof Buffer !== 'undefined') {\n return Buffer.from(data).toString('base64');\n }\n return btoa(data);\n }\n _getFinalPath(path) {\n return `${this.bucketId}/${path}`;\n }\n _removeEmptyFolders(path) {\n return path.replace(/^\\/|\\/$/g, '').replace(/\\/+/g, '/');\n }\n transformOptsToQueryString(transform) {\n const params = [];\n if (transform.width) {\n params.push(`width=${transform.width}`);\n }\n if (transform.height) {\n params.push(`height=${transform.height}`);\n }\n if (transform.resize) {\n params.push(`resize=${transform.resize}`);\n }\n if (transform.format) {\n params.push(`format=${transform.format}`);\n }\n if (transform.quality) {\n params.push(`quality=${transform.quality}`);\n }\n return params.join('&');\n }\n}\n//# sourceMappingURL=StorageFileApi.js.map","// generated by genversion\nexport const version = '2.7.1';\n//# sourceMappingURL=version.js.map","import { version } from './version';\nexport const DEFAULT_HEADERS = { 'X-Client-Info': `storage-js/${version}` };\n//# sourceMappingURL=constants.js.map","var __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};\nimport { DEFAULT_HEADERS } from '../lib/constants';\nimport { isStorageError } from '../lib/errors';\nimport { get, post, put, remove } from '../lib/fetch';\nimport { resolveFetch } from '../lib/helpers';\nexport default class StorageBucketApi {\n constructor(url, headers = {}, fetch) {\n this.url = url;\n this.headers = Object.assign(Object.assign({}, DEFAULT_HEADERS), headers);\n this.fetch = resolveFetch(fetch);\n }\n /**\n * Retrieves the details of all Storage buckets within an existing project.\n */\n listBuckets() {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const data = yield get(this.fetch, `${this.url}/bucket`, { headers: this.headers });\n return { data, error: null };\n }\n catch (error) {\n if (isStorageError(error)) {\n return { data: null, error };\n }\n throw error;\n }\n });\n }\n /**\n * Retrieves the details of an existing Storage bucket.\n *\n * @param id The unique identifier of the bucket you would like to retrieve.\n */\n getBucket(id) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const data = yield get(this.fetch, `${this.url}/bucket/${id}`, { headers: this.headers });\n return { data, error: null };\n }\n catch (error) {\n if (isStorageError(error)) {\n return { data: null, error };\n }\n throw error;\n }\n });\n }\n /**\n * Creates a new Storage bucket\n *\n * @param id A unique identifier for the bucket you are creating.\n * @param options.public The visibility of the bucket. Public buckets don't require an authorization token to download objects, but still require a valid token for all other operations. By default, buckets are private.\n * @param options.fileSizeLimit specifies the max file size in bytes that can be uploaded to this bucket.\n * The global file size limit takes precedence over this value.\n * The default value is null, which doesn't set a per bucket file size limit.\n * @param options.allowedMimeTypes specifies the allowed mime types that this bucket can accept during upload.\n * The default value is null, which allows files with all mime types to be uploaded.\n * Each mime type specified can be a wildcard, e.g. image/*, or a specific mime type, e.g. image/png.\n * @returns newly created bucket id\n */\n createBucket(id, options = {\n public: false,\n }) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const data = yield post(this.fetch, `${this.url}/bucket`, {\n id,\n name: id,\n public: options.public,\n file_size_limit: options.fileSizeLimit,\n allowed_mime_types: options.allowedMimeTypes,\n }, { headers: this.headers });\n return { data, error: null };\n }\n catch (error) {\n if (isStorageError(error)) {\n return { data: null, error };\n }\n throw error;\n }\n });\n }\n /**\n * Updates a Storage bucket\n *\n * @param id A unique identifier for the bucket you are updating.\n * @param options.public The visibility of the bucket. Public buckets don't require an authorization token to download objects, but still require a valid token for all other operations.\n * @param options.fileSizeLimit specifies the max file size in bytes that can be uploaded to this bucket.\n * The global file size limit takes precedence over this value.\n * The default value is null, which doesn't set a per bucket file size limit.\n * @param options.allowedMimeTypes specifies the allowed mime types that this bucket can accept during upload.\n * The default value is null, which allows files with all mime types to be uploaded.\n * Each mime type specified can be a wildcard, e.g. image/*, or a specific mime type, e.g. image/png.\n */\n updateBucket(id, options) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const data = yield put(this.fetch, `${this.url}/bucket/${id}`, {\n id,\n name: id,\n public: options.public,\n file_size_limit: options.fileSizeLimit,\n allowed_mime_types: options.allowedMimeTypes,\n }, { headers: this.headers });\n return { data, error: null };\n }\n catch (error) {\n if (isStorageError(error)) {\n return { data: null, error };\n }\n throw error;\n }\n });\n }\n /**\n * Removes all objects inside a single bucket.\n *\n * @param id The unique identifier of the bucket you would like to empty.\n */\n emptyBucket(id) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const data = yield post(this.fetch, `${this.url}/bucket/${id}/empty`, {}, { headers: this.headers });\n return { data, error: null };\n }\n catch (error) {\n if (isStorageError(error)) {\n return { data: null, error };\n }\n throw error;\n }\n });\n }\n /**\n * Deletes an existing bucket. A bucket can't be deleted with existing objects inside it.\n * You must first `empty()` the bucket.\n *\n * @param id The unique identifier of the bucket you would like to delete.\n */\n deleteBucket(id) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const data = yield remove(this.fetch, `${this.url}/bucket/${id}`, {}, { headers: this.headers });\n return { data, error: null };\n }\n catch (error) {\n if (isStorageError(error)) {\n return { data: null, error };\n }\n throw error;\n }\n });\n }\n}\n//# sourceMappingURL=StorageBucketApi.js.map","import StorageFileApi from './packages/StorageFileApi';\nimport StorageBucketApi from './packages/StorageBucketApi';\nexport class StorageClient extends StorageBucketApi {\n constructor(url, headers = {}, fetch) {\n super(url, headers, fetch);\n }\n /**\n * Perform file operation in a bucket.\n *\n * @param id The bucket id to operate on.\n */\n from(id) {\n return new StorageFileApi(this.url, this.headers, id, this.fetch);\n }\n}\n//# sourceMappingURL=StorageClient.js.map","import { version } from './version';\nlet JS_ENV = '';\n// @ts-ignore\nif (typeof Deno !== 'undefined') {\n JS_ENV = 'deno';\n}\nelse if (typeof document !== 'undefined') {\n JS_ENV = 'web';\n}\nelse if (typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\n JS_ENV = 'react-native';\n}\nelse {\n JS_ENV = 'node';\n}\nexport const DEFAULT_HEADERS = { 'X-Client-Info': `supabase-js-${JS_ENV}/${version}` };\nexport const DEFAULT_GLOBAL_OPTIONS = {\n headers: DEFAULT_HEADERS,\n};\nexport const DEFAULT_DB_OPTIONS = {\n schema: 'public',\n};\nexport const DEFAULT_AUTH_OPTIONS = {\n autoRefreshToken: true,\n persistSession: true,\n detectSessionInUrl: true,\n flowType: 'implicit',\n};\nexport const DEFAULT_REALTIME_OPTIONS = {};\n//# sourceMappingURL=constants.js.map","var __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};\n// @ts-ignore\nimport nodeFetch, { Headers as NodeFetchHeaders } from '@supabase/node-fetch';\nexport const resolveFetch = (customFetch) => {\n let _fetch;\n if (customFetch) {\n _fetch = customFetch;\n }\n else if (typeof fetch === 'undefined') {\n _fetch = nodeFetch;\n }\n else {\n _fetch = fetch;\n }\n return (...args) => _fetch(...args);\n};\nexport const resolveHeadersConstructor = () => {\n if (typeof Headers === 'undefined') {\n return NodeFetchHeaders;\n }\n return Headers;\n};\nexport const fetchWithAuth = (supabaseKey, getAccessToken, customFetch) => {\n const fetch = resolveFetch(customFetch);\n const HeadersConstructor = resolveHeadersConstructor();\n return (input, init) => __awaiter(void 0, void 0, void 0, function* () {\n var _a;\n const accessToken = (_a = (yield getAccessToken())) !== null && _a !== void 0 ? _a : supabaseKey;\n let headers = new HeadersConstructor(init === null || init === void 0 ? void 0 : init.headers);\n if (!headers.has('apikey')) {\n headers.set('apikey', supabaseKey);\n }\n if (!headers.has('Authorization')) {\n headers.set('Authorization', `Bearer ${accessToken}`);\n }\n return fetch(input, Object.assign(Object.assign({}, init), { headers }));\n });\n};\n//# sourceMappingURL=fetch.js.map","var __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};\nexport function uuid() {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n var r = (Math.random() * 16) | 0, v = c == 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n}\nexport function stripTrailingSlash(url) {\n return url.replace(/\\/$/, '');\n}\nexport const isBrowser = () => typeof window !== 'undefined';\nexport function applySettingDefaults(options, defaults) {\n const { db: dbOptions, auth: authOptions, realtime: realtimeOptions, global: globalOptions, } = options;\n const { db: DEFAULT_DB_OPTIONS, auth: DEFAULT_AUTH_OPTIONS, realtime: DEFAULT_REALTIME_OPTIONS, global: DEFAULT_GLOBAL_OPTIONS, } = defaults;\n const result = {\n db: Object.assign(Object.assign({}, DEFAULT_DB_OPTIONS), dbOptions),\n auth: Object.assign(Object.assign({}, DEFAULT_AUTH_OPTIONS), authOptions),\n realtime: Object.assign(Object.assign({}, DEFAULT_REALTIME_OPTIONS), realtimeOptions),\n global: Object.assign(Object.assign({}, DEFAULT_GLOBAL_OPTIONS), globalOptions),\n accessToken: () => __awaiter(this, void 0, void 0, function* () { return ''; }),\n };\n if (options.accessToken) {\n result.accessToken = options.accessToken;\n }\n else {\n // hack around Required<>\n delete result.accessToken;\n }\n return result;\n}\n//# sourceMappingURL=helpers.js.map","export const version = '2.68.0';\n//# sourceMappingURL=version.js.map","import { version } from './version';\n/** Current session will be checked for refresh at this interval. */\nexport const AUTO_REFRESH_TICK_DURATION_MS = 30 * 1000;\n/**\n * A token refresh will be attempted this many ticks before the current session expires. */\nexport const AUTO_REFRESH_TICK_THRESHOLD = 3;\n/*\n * Earliest time before an access token expires that the session should be refreshed.\n */\nexport const EXPIRY_MARGIN_MS = AUTO_REFRESH_TICK_THRESHOLD * AUTO_REFRESH_TICK_DURATION_MS;\nexport const GOTRUE_URL = 'http://localhost:9999';\nexport const STORAGE_KEY = 'supabase.auth.token';\nexport const AUDIENCE = '';\nexport const DEFAULT_HEADERS = { 'X-Client-Info': `gotrue-js/${version}` };\nexport const NETWORK_FAILURE = {\n MAX_RETRIES: 10,\n RETRY_INTERVAL: 2, // in deciseconds\n};\nexport const API_VERSION_HEADER_NAME = 'X-Supabase-Api-Version';\nexport const API_VERSIONS = {\n '2024-01-01': {\n timestamp: Date.parse('2024-01-01T00:00:00.0Z'),\n name: '2024-01-01',\n },\n};\n//# sourceMappingURL=constants.js.map","import { API_VERSION_HEADER_NAME } from './constants';\nexport function expiresAt(expiresIn) {\n const timeNow = Math.round(Date.now() / 1000);\n return timeNow + expiresIn;\n}\nexport function uuid() {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n const r = (Math.random() * 16) | 0, v = c == 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n}\nexport const isBrowser = () => typeof window !== 'undefined' && typeof document !== 'undefined';\nconst localStorageWriteTests = {\n tested: false,\n writable: false,\n};\n/**\n * Checks whether localStorage is supported on this browser.\n */\nexport const supportsLocalStorage = () => {\n if (!isBrowser()) {\n return false;\n }\n try {\n if (typeof globalThis.localStorage !== 'object') {\n return false;\n }\n }\n catch (e) {\n // DOM exception when accessing `localStorage`\n return false;\n }\n if (localStorageWriteTests.tested) {\n return localStorageWriteTests.writable;\n }\n const randomKey = `lswt-${Math.random()}${Math.random()}`;\n try {\n globalThis.localStorage.setItem(randomKey, randomKey);\n globalThis.localStorage.removeItem(randomKey);\n localStorageWriteTests.tested = true;\n localStorageWriteTests.writable = true;\n }\n catch (e) {\n // localStorage can't be written to\n // https://www.chromium.org/for-testers/bug-reporting-guidelines/uncaught-securityerror-failed-to-read-the-localstorage-property-from-window-access-is-denied-for-this-document\n localStorageWriteTests.tested = true;\n localStorageWriteTests.writable = false;\n }\n return localStorageWriteTests.writable;\n};\n/**\n * Extracts parameters encoded in the URL both in the query and fragment.\n */\nexport function parseParametersFromURL(href) {\n const result = {};\n const url = new URL(href);\n if (url.hash && url.hash[0] === '#') {\n try {\n const hashSearchParams = new URLSearchParams(url.hash.substring(1));\n hashSearchParams.forEach((value, key) => {\n result[key] = value;\n });\n }\n catch (e) {\n // hash is not a query string\n }\n }\n // search parameters take precedence over hash parameters\n url.searchParams.forEach((value, key) => {\n result[key] = value;\n });\n return result;\n}\nexport const resolveFetch = (customFetch) => {\n let _fetch;\n if (customFetch) {\n _fetch = customFetch;\n }\n else if (typeof fetch === 'undefined') {\n _fetch = (...args) => import('@supabase/node-fetch').then(({ default: fetch }) => fetch(...args));\n }\n else {\n _fetch = fetch;\n }\n return (...args) => _fetch(...args);\n};\nexport const looksLikeFetchResponse = (maybeResponse) => {\n return (typeof maybeResponse === 'object' &&\n maybeResponse !== null &&\n 'status' in maybeResponse &&\n 'ok' in maybeResponse &&\n 'json' in maybeResponse &&\n typeof maybeResponse.json === 'function');\n};\n// Storage helpers\nexport const setItemAsync = async (storage, key, data) => {\n await storage.setItem(key, JSON.stringify(data));\n};\nexport const getItemAsync = async (storage, key) => {\n const value = await storage.getItem(key);\n if (!value) {\n return null;\n }\n try {\n return JSON.parse(value);\n }\n catch (_a) {\n return value;\n }\n};\nexport const removeItemAsync = async (storage, key) => {\n await storage.removeItem(key);\n};\nexport function decodeBase64URL(value) {\n const key = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n let base64 = '';\n let chr1, chr2, chr3;\n let enc1, enc2, enc3, enc4;\n let i = 0;\n value = value.replace('-', '+').replace('_', '/');\n while (i < value.length) {\n enc1 = key.indexOf(value.charAt(i++));\n enc2 = key.indexOf(value.charAt(i++));\n enc3 = key.indexOf(value.charAt(i++));\n enc4 = key.indexOf(value.charAt(i++));\n chr1 = (enc1 << 2) | (enc2 >> 4);\n chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);\n chr3 = ((enc3 & 3) << 6) | enc4;\n base64 = base64 + String.fromCharCode(chr1);\n if (enc3 != 64 && chr2 != 0) {\n base64 = base64 + String.fromCharCode(chr2);\n }\n if (enc4 != 64 && chr3 != 0) {\n base64 = base64 + String.fromCharCode(chr3);\n }\n }\n return base64;\n}\n/**\n * A deferred represents some asynchronous work that is not yet finished, which\n * may or may not culminate in a value.\n * Taken from: https://github.com/mike-north/types/blob/master/src/async.ts\n */\nexport class Deferred {\n constructor() {\n // eslint-disable-next-line @typescript-eslint/no-extra-semi\n ;\n this.promise = new Deferred.promiseConstructor((res, rej) => {\n // eslint-disable-next-line @typescript-eslint/no-extra-semi\n ;\n this.resolve = res;\n this.reject = rej;\n });\n }\n}\nDeferred.promiseConstructor = Promise;\n// Taken from: https://stackoverflow.com/questions/38552003/how-to-decode-jwt-token-in-javascript-without-using-a-library\nexport function decodeJWTPayload(token) {\n // Regex checks for base64url format\n const base64UrlRegex = /^([a-z0-9_-]{4})*($|[a-z0-9_-]{3}=?$|[a-z0-9_-]{2}(==)?$)$/i;\n const parts = token.split('.');\n if (parts.length !== 3) {\n throw new Error('JWT is not valid: not a JWT structure');\n }\n if (!base64UrlRegex.test(parts[1])) {\n throw new Error('JWT is not valid: payload is not in base64url format');\n }\n const base64Url = parts[1];\n return JSON.parse(decodeBase64URL(base64Url));\n}\n/**\n * Creates a promise that resolves to null after some time.\n */\nexport async function sleep(time) {\n return await new Promise((accept) => {\n setTimeout(() => accept(null), time);\n });\n}\n/**\n * Converts the provided async function into a retryable function. Each result\n * or thrown error is sent to the isRetryable function which should return true\n * if the function should run again.\n */\nexport function retryable(fn, isRetryable) {\n const promise = new Promise((accept, reject) => {\n // eslint-disable-next-line @typescript-eslint/no-extra-semi\n ;\n (async () => {\n for (let attempt = 0; attempt < Infinity; attempt++) {\n try {\n const result = await fn(attempt);\n if (!isRetryable(attempt, null, result)) {\n accept(result);\n return;\n }\n }\n catch (e) {\n if (!isRetryable(attempt, e)) {\n reject(e);\n return;\n }\n }\n }\n })();\n });\n return promise;\n}\nfunction dec2hex(dec) {\n return ('0' + dec.toString(16)).substr(-2);\n}\n// Functions below taken from: https://stackoverflow.com/questions/63309409/creating-a-code-verifier-and-challenge-for-pkce-auth-on-spotify-api-in-reactjs\nexport function generatePKCEVerifier() {\n const verifierLength = 56;\n const array = new Uint32Array(verifierLength);\n if (typeof crypto === 'undefined') {\n const charSet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~';\n const charSetLen = charSet.length;\n let verifier = '';\n for (let i = 0; i < verifierLength; i++) {\n verifier += charSet.charAt(Math.floor(Math.random() * charSetLen));\n }\n return verifier;\n }\n crypto.getRandomValues(array);\n return Array.from(array, dec2hex).join('');\n}\nasync function sha256(randomString) {\n const encoder = new TextEncoder();\n const encodedData = encoder.encode(randomString);\n const hash = await crypto.subtle.digest('SHA-256', encodedData);\n const bytes = new Uint8Array(hash);\n return Array.from(bytes)\n .map((c) => String.fromCharCode(c))\n .join('');\n}\nfunction base64urlencode(str) {\n return btoa(str).replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=+$/, '');\n}\nexport async function generatePKCEChallenge(verifier) {\n const hasCryptoSupport = typeof crypto !== 'undefined' &&\n typeof crypto.subtle !== 'undefined' &&\n typeof TextEncoder !== 'undefined';\n if (!hasCryptoSupport) {\n console.warn('WebCrypto API is not supported. Code challenge method will default to use plain instead of sha256.');\n return verifier;\n }\n const hashed = await sha256(verifier);\n return base64urlencode(hashed);\n}\nexport async function getCodeChallengeAndMethod(storage, storageKey, isPasswordRecovery = false) {\n const codeVerifier = generatePKCEVerifier();\n let storedCodeVerifier = codeVerifier;\n if (isPasswordRecovery) {\n storedCodeVerifier += '/PASSWORD_RECOVERY';\n }\n await setItemAsync(storage, `${storageKey}-code-verifier`, storedCodeVerifier);\n const codeChallenge = await generatePKCEChallenge(codeVerifier);\n const codeChallengeMethod = codeVerifier === codeChallenge ? 'plain' : 's256';\n return [codeChallenge, codeChallengeMethod];\n}\n/** Parses the API version which is 2YYY-MM-DD. */\nconst API_VERSION_REGEX = /^2[0-9]{3}-(0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-9]|3[0-1])$/i;\nexport function parseResponseAPIVersion(response) {\n const apiVersion = response.headers.get(API_VERSION_HEADER_NAME);\n if (!apiVersion) {\n return null;\n }\n if (!apiVersion.match(API_VERSION_REGEX)) {\n return null;\n }\n try {\n const date = new Date(`${apiVersion}T00:00:00.0Z`);\n return date;\n }\n catch (e) {\n return null;\n }\n}\n//# sourceMappingURL=helpers.js.map","export class AuthError extends Error {\n constructor(message, status, code) {\n super(message);\n this.__isAuthError = true;\n this.name = 'AuthError';\n this.status = status;\n this.code = code;\n }\n}\nexport function isAuthError(error) {\n return typeof error === 'object' && error !== null && '__isAuthError' in error;\n}\nexport class AuthApiError extends AuthError {\n constructor(message, status, code) {\n super(message, status, code);\n this.name = 'AuthApiError';\n this.status = status;\n this.code = code;\n }\n}\nexport function isAuthApiError(error) {\n return isAuthError(error) && error.name === 'AuthApiError';\n}\nexport class AuthUnknownError extends AuthError {\n constructor(message, originalError) {\n super(message);\n this.name = 'AuthUnknownError';\n this.originalError = originalError;\n }\n}\nexport class CustomAuthError extends AuthError {\n constructor(message, name, status, code) {\n super(message, status, code);\n this.name = name;\n this.status = status;\n }\n}\nexport class AuthSessionMissingError extends CustomAuthError {\n constructor() {\n super('Auth session missing!', 'AuthSessionMissingError', 400, undefined);\n }\n}\nexport function isAuthSessionMissingError(error) {\n return isAuthError(error) && error.name === 'AuthSessionMissingError';\n}\nexport class AuthInvalidTokenResponseError extends CustomAuthError {\n constructor() {\n super('Auth session or user missing', 'AuthInvalidTokenResponseError', 500, undefined);\n }\n}\nexport class AuthInvalidCredentialsError extends CustomAuthError {\n constructor(message) {\n super(message, 'AuthInvalidCredentialsError', 400, undefined);\n }\n}\nexport class AuthImplicitGrantRedirectError extends CustomAuthError {\n constructor(message, details = null) {\n super(message, 'AuthImplicitGrantRedirectError', 500, undefined);\n this.details = null;\n this.details = details;\n }\n toJSON() {\n return {\n name: this.name,\n message: this.message,\n status: this.status,\n details: this.details,\n };\n }\n}\nexport function isAuthImplicitGrantRedirectError(error) {\n return isAuthError(error) && error.name === 'AuthImplicitGrantRedirectError';\n}\nexport class AuthPKCEGrantCodeExchangeError extends CustomAuthError {\n constructor(message, details = null) {\n super(message, 'AuthPKCEGrantCodeExchangeError', 500, undefined);\n this.details = null;\n this.details = details;\n }\n toJSON() {\n return {\n name: this.name,\n message: this.message,\n status: this.status,\n details: this.details,\n };\n }\n}\nexport class AuthRetryableFetchError extends CustomAuthError {\n constructor(message, status) {\n super(message, 'AuthRetryableFetchError', status, undefined);\n }\n}\nexport function isAuthRetryableFetchError(error) {\n return isAuthError(error) && error.name === 'AuthRetryableFetchError';\n}\n/**\n * This error is thrown on certain methods when the password used is deemed\n * weak. Inspect the reasons to identify what password strength rules are\n * inadequate.\n */\nexport class AuthWeakPasswordError extends CustomAuthError {\n constructor(message, status, reasons) {\n super(message, 'AuthWeakPasswordError', status, 'weak_password');\n this.reasons = reasons;\n }\n}\nexport function isAuthWeakPasswordError(error) {\n return isAuthError(error) && error.name === 'AuthWeakPasswordError';\n}\n//# sourceMappingURL=errors.js.map","var __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};\nimport { API_VERSIONS, API_VERSION_HEADER_NAME } from './constants';\nimport { expiresAt, looksLikeFetchResponse, parseResponseAPIVersion } from './helpers';\nimport { AuthApiError, AuthRetryableFetchError, AuthWeakPasswordError, AuthUnknownError, AuthSessionMissingError, } from './errors';\nconst _getErrorMessage = (err) => err.msg || err.message || err.error_description || err.error || JSON.stringify(err);\nconst NETWORK_ERROR_CODES = [502, 503, 504];\nexport async function handleError(error) {\n var _a;\n if (!looksLikeFetchResponse(error)) {\n throw new AuthRetryableFetchError(_getErrorMessage(error), 0);\n }\n if (NETWORK_ERROR_CODES.includes(error.status)) {\n // status in 500...599 range - server had an error, request might be retryed.\n throw new AuthRetryableFetchError(_getErrorMessage(error), error.status);\n }\n let data;\n try {\n data = await error.json();\n }\n catch (e) {\n throw new AuthUnknownError(_getErrorMessage(e), e);\n }\n let errorCode = undefined;\n const responseAPIVersion = parseResponseAPIVersion(error);\n if (responseAPIVersion &&\n responseAPIVersion.getTime() >= API_VERSIONS['2024-01-01'].timestamp &&\n typeof data === 'object' &&\n data &&\n typeof data.code === 'string') {\n errorCode = data.code;\n }\n else if (typeof data === 'object' && data && typeof data.error_code === 'string') {\n errorCode = data.error_code;\n }\n if (!errorCode) {\n // Legacy support for weak password errors, when there were no error codes\n if (typeof data === 'object' &&\n data &&\n typeof data.weak_password === 'object' &&\n data.weak_password &&\n Array.isArray(data.weak_password.reasons) &&\n data.weak_password.reasons.length &&\n data.weak_password.reasons.reduce((a, i) => a && typeof i === 'string', true)) {\n throw new AuthWeakPasswordError(_getErrorMessage(data), error.status, data.weak_password.reasons);\n }\n }\n else if (errorCode === 'weak_password') {\n throw new AuthWeakPasswordError(_getErrorMessage(data), error.status, ((_a = data.weak_password) === null || _a === void 0 ? void 0 : _a.reasons) || []);\n }\n else if (errorCode === 'session_not_found') {\n // The `session_id` inside the JWT does not correspond to a row in the\n // `sessions` table. This usually means the user has signed out, has been\n // deleted, or their session has somehow been terminated.\n throw new AuthSessionMissingError();\n }\n throw new AuthApiError(_getErrorMessage(data), error.status || 500, errorCode);\n}\nconst _getRequestParams = (method, options, parameters, body) => {\n const params = { method, headers: (options === null || options === void 0 ? void 0 : options.headers) || {} };\n if (method === 'GET') {\n return params;\n }\n params.headers = Object.assign({ 'Content-Type': 'application/json;charset=UTF-8' }, options === null || options === void 0 ? void 0 : options.headers);\n params.body = JSON.stringify(body);\n return Object.assign(Object.assign({}, params), parameters);\n};\nexport async function _request(fetcher, method, url, options) {\n var _a;\n const headers = Object.assign({}, options === null || options === void 0 ? void 0 : options.headers);\n if (!headers[API_VERSION_HEADER_NAME]) {\n headers[API_VERSION_HEADER_NAME] = API_VERSIONS['2024-01-01'].name;\n }\n if (options === null || options === void 0 ? void 0 : options.jwt) {\n headers['Authorization'] = `Bearer ${options.jwt}`;\n }\n const qs = (_a = options === null || options === void 0 ? void 0 : options.query) !== null && _a !== void 0 ? _a : {};\n if (options === null || options === void 0 ? void 0 : options.redirectTo) {\n qs['redirect_to'] = options.redirectTo;\n }\n const queryString = Object.keys(qs).length ? '?' + new URLSearchParams(qs).toString() : '';\n const data = await _handleRequest(fetcher, method, url + queryString, {\n headers,\n noResolveJson: options === null || options === void 0 ? void 0 : options.noResolveJson,\n }, {}, options === null || options === void 0 ? void 0 : options.body);\n return (options === null || options === void 0 ? void 0 : options.xform) ? options === null || options === void 0 ? void 0 : options.xform(data) : { data: Object.assign({}, data), error: null };\n}\nasync function _handleRequest(fetcher, method, url, options, parameters, body) {\n const requestParams = _getRequestParams(method, options, parameters, body);\n let result;\n try {\n result = await fetcher(url, Object.assign({}, requestParams));\n }\n catch (e) {\n console.error(e);\n // fetch failed, likely due to a network or CORS error\n throw new AuthRetryableFetchError(_getErrorMessage(e), 0);\n }\n if (!result.ok) {\n await handleError(result);\n }\n if (options === null || options === void 0 ? void 0 : options.noResolveJson) {\n return result;\n }\n try {\n return await result.json();\n }\n catch (e) {\n await handleError(e);\n }\n}\nexport function _sessionResponse(data) {\n var _a;\n let session = null;\n if (hasSession(data)) {\n session = Object.assign({}, data);\n if (!data.expires_at) {\n session.expires_at = expiresAt(data.expires_in);\n }\n }\n const user = (_a = data.user) !== null && _a !== void 0 ? _a : data;\n return { data: { session, user }, error: null };\n}\nexport function _sessionResponsePassword(data) {\n const response = _sessionResponse(data);\n if (!response.error &&\n data.weak_password &&\n typeof data.weak_password === 'object' &&\n Array.isArray(data.weak_password.reasons) &&\n data.weak_password.reasons.length &&\n data.weak_password.message &&\n typeof data.weak_password.message === 'string' &&\n data.weak_password.reasons.reduce((a, i) => a && typeof i === 'string', true)) {\n response.data.weak_password = data.weak_password;\n }\n return response;\n}\nexport function _userResponse(data) {\n var _a;\n const user = (_a = data.user) !== null && _a !== void 0 ? _a : data;\n return { data: { user }, error: null };\n}\nexport function _ssoResponse(data) {\n return { data, error: null };\n}\nexport function _generateLinkResponse(data) {\n const { action_link, email_otp, hashed_token, redirect_to, verification_type } = data, rest = __rest(data, [\"action_link\", \"email_otp\", \"hashed_token\", \"redirect_to\", \"verification_type\"]);\n const properties = {\n action_link,\n email_otp,\n hashed_token,\n redirect_to,\n verification_type,\n };\n const user = Object.assign({}, rest);\n return {\n data: {\n properties,\n user,\n },\n error: null,\n };\n}\nexport function _noResolveJsonResponse(data) {\n return data;\n}\n/**\n * hasSession checks if the response object contains a valid session\n * @param data A response object\n * @returns true if a session is in the response\n */\nfunction hasSession(data) {\n return data.access_token && data.refresh_token && data.expires_in;\n}\n//# sourceMappingURL=fetch.js.map","var __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};\nimport { _generateLinkResponse, _noResolveJsonResponse, _request, _userResponse, } from './lib/fetch';\nimport { resolveFetch } from './lib/helpers';\nimport { isAuthError } from './lib/errors';\nexport default class GoTrueAdminApi {\n constructor({ url = '', headers = {}, fetch, }) {\n this.url = url;\n this.headers = headers;\n this.fetch = resolveFetch(fetch);\n this.mfa = {\n listFactors: this._listFactors.bind(this),\n deleteFactor: this._deleteFactor.bind(this),\n };\n }\n /**\n * Removes a logged-in session.\n * @param jwt A valid, logged-in JWT.\n * @param scope The logout sope.\n */\n async signOut(jwt, scope = 'global') {\n try {\n await _request(this.fetch, 'POST', `${this.url}/logout?scope=${scope}`, {\n headers: this.headers,\n jwt,\n noResolveJson: true,\n });\n return { data: null, error: null };\n }\n catch (error) {\n if (isAuthError(error)) {\n return { data: null, error };\n }\n throw error;\n }\n }\n /**\n * Sends an invite link to an email address.\n * @param email The email address of the user.\n * @param options Additional options to be included when inviting.\n */\n async inviteUserByEmail(email, options = {}) {\n try {\n return await _request(this.fetch, 'POST', `${this.url}/invite`, {\n body: { email, data: options.data },\n headers: this.headers,\n redirectTo: options.redirectTo,\n xform: _userResponse,\n });\n }\n catch (error) {\n if (isAuthError(error)) {\n return { data: { user: null }, error };\n }\n throw error;\n }\n }\n /**\n * Generates email links and OTPs to be sent via a custom email provider.\n * @param email The user's email.\n * @param options.password User password. For signup only.\n * @param options.data Optional user metadata. For signup only.\n * @param options.redirectTo The redirect url which should be appended to the generated link\n */\n async generateLink(params) {\n try {\n const { options } = params, rest = __rest(params, [\"options\"]);\n const body = Object.assign(Object.assign({}, rest), options);\n if ('newEmail' in rest) {\n // replace newEmail with new_email in request body\n body.new_email = rest === null || rest === void 0 ? void 0 : rest.newEmail;\n delete body['newEmail'];\n }\n return await _request(this.fetch, 'POST', `${this.url}/admin/generate_link`, {\n body: body,\n headers: this.headers,\n xform: _generateLinkResponse,\n redirectTo: options === null || options === void 0 ? void 0 : options.redirectTo,\n });\n }\n catch (error) {\n if (isAuthError(error)) {\n return {\n data: {\n properties: null,\n user: null,\n },\n error,\n };\n }\n throw error;\n }\n }\n // User Admin API\n /**\n * Creates a new user.\n * This function should only be called on a server. Never expose your `service_role` key in the browser.\n */\n async createUser(attributes) {\n try {\n return await _request(this.fetch, 'POST', `${this.url}/admin/users`, {\n body: attributes,\n headers: this.headers,\n xform: _userResponse,\n });\n }\n catch (error) {\n if (isAuthError(error)) {\n return { data: { user: null }, error };\n }\n throw error;\n }\n }\n /**\n * Get a list of users.\n *\n * This function should only be called on a server. Never expose your `service_role` key in the browser.\n * @param params An object which supports `page` and `perPage` as numbers, to alter the paginated results.\n */\n async listUsers(params) {\n var _a, _b, _c, _d, _e, _f, _g;\n try {\n const pagination = { nextPage: null, lastPage: 0, total: 0 };\n const response = await _request(this.fetch, 'GET', `${this.url}/admin/users`, {\n headers: this.headers,\n noResolveJson: true,\n query: {\n page: (_b = (_a = params === null || params === void 0 ? void 0 : params.page) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : '',\n per_page: (_d = (_c = params === null || params === void 0 ? void 0 : params.perPage) === null || _c === void 0 ? void 0 : _c.toString()) !== null && _d !== void 0 ? _d : '',\n },\n xform: _noResolveJsonResponse,\n });\n if (response.error)\n throw response.error;\n const users = await response.json();\n const total = (_e = response.headers.get('x-total-count')) !== null && _e !== void 0 ? _e : 0;\n const links = (_g = (_f = response.headers.get('link')) === null || _f === void 0 ? void 0 : _f.split(',')) !== null && _g !== void 0 ? _g : [];\n if (links.length > 0) {\n links.forEach((link) => {\n const page = parseInt(link.split(';')[0].split('=')[1].substring(0, 1));\n const rel = JSON.parse(link.split(';')[1].split('=')[1]);\n pagination[`${rel}Page`] = page;\n });\n pagination.total = parseInt(total);\n }\n return { data: Object.assign(Object.assign({}, users), pagination), error: null };\n }\n catch (error) {\n if (isAuthError(error)) {\n return { data: { users: [] }, error };\n }\n throw error;\n }\n }\n /**\n * Get user by id.\n *\n * @param uid The user's unique identifier\n *\n * This function should only be called on a server. Never expose your `service_role` key in the browser.\n */\n async getUserById(uid) {\n try {\n return await _request(this.fetch, 'GET', `${this.url}/admin/users/${uid}`, {\n headers: this.headers,\n xform: _userResponse,\n });\n }\n catch (error) {\n if (isAuthError(error)) {\n return { data: { user: null }, error };\n }\n throw error;\n }\n }\n /**\n * Updates the user data.\n *\n * @param attributes The data you want to update.\n *\n * This function should only be called on a server. Never expose your `service_role` key in the browser.\n */\n async updateUserById(uid, attributes) {\n try {\n return await _request(this.fetch, 'PUT', `${this.url}/admin/users/${uid}`, {\n body: attributes,\n headers: this.headers,\n xform: _userResponse,\n });\n }\n catch (error) {\n if (isAuthError(error)) {\n return { data: { user: null }, error };\n }\n throw error;\n }\n }\n /**\n * Delete a user. Requires a `service_role` key.\n *\n * @param id The user id you want to remove.\n * @param shouldSoftDelete If true, then the user will be soft-deleted from the auth schema. Soft deletion allows user identification from the hashed user ID but is not reversible.\n * Defaults to false for backward compatibility.\n *\n * This function should only be called on a server. Never expose your `service_role` key in the browser.\n */\n async deleteUser(id, shouldSoftDelete = false) {\n try {\n return await _request(this.fetch, 'DELETE', `${this.url}/admin/users/${id}`, {\n headers: this.headers,\n body: {\n should_soft_delete: shouldSoftDelete,\n },\n xform: _userResponse,\n });\n }\n catch (error) {\n if (isAuthError(error)) {\n return { data: { user: null }, error };\n }\n throw error;\n }\n }\n async _listFactors(params) {\n try {\n const { data, error } = await _request(this.fetch, 'GET', `${this.url}/admin/users/${params.userId}/factors`, {\n headers: this.headers,\n xform: (factors) => {\n return { data: { factors }, error: null };\n },\n });\n return { data, error };\n }\n catch (error) {\n if (isAuthError(error)) {\n return { data: null, error };\n }\n throw error;\n }\n }\n async _deleteFactor(params) {\n try {\n const data = await _request(this.fetch, 'DELETE', `${this.url}/admin/users/${params.userId}/factors/${params.id}`, {\n headers: this.headers,\n });\n return { data, error: null };\n }\n catch (error) {\n if (isAuthError(error)) {\n return { data: null, error };\n }\n throw error;\n }\n }\n}\n//# sourceMappingURL=GoTrueAdminApi.js.map","import { supportsLocalStorage } from './helpers';\n/**\n * Provides safe access to the globalThis.localStorage property.\n */\nexport const localStorageAdapter = {\n getItem: (key) => {\n if (!supportsLocalStorage()) {\n return null;\n }\n return globalThis.localStorage.getItem(key);\n },\n setItem: (key, value) => {\n if (!supportsLocalStorage()) {\n return;\n }\n globalThis.localStorage.setItem(key, value);\n },\n removeItem: (key) => {\n if (!supportsLocalStorage()) {\n return;\n }\n globalThis.localStorage.removeItem(key);\n },\n};\n/**\n * Returns a localStorage-like object that stores the key-value pairs in\n * memory.\n */\nexport function memoryLocalStorageAdapter(store = {}) {\n return {\n getItem: (key) => {\n return store[key] || null;\n },\n setItem: (key, value) => {\n store[key] = value;\n },\n removeItem: (key) => {\n delete store[key];\n },\n };\n}\n//# sourceMappingURL=local-storage.js.map","import { supportsLocalStorage } from './helpers';\n/**\n * @experimental\n */\nexport const internals = {\n /**\n * @experimental\n */\n debug: !!(globalThis &&\n supportsLocalStorage() &&\n globalThis.localStorage &&\n globalThis.localStorage.getItem('supabase.gotrue-js.locks.debug') === 'true'),\n};\n/**\n * An error thrown when a lock cannot be acquired after some amount of time.\n *\n * Use the {@link #isAcquireTimeout} property instead of checking with `instanceof`.\n */\nexport class LockAcquireTimeoutError extends Error {\n constructor(message) {\n super(message);\n this.isAcquireTimeout = true;\n }\n}\nexport class NavigatorLockAcquireTimeoutError extends LockAcquireTimeoutError {\n}\nexport class ProcessLockAcquireTimeoutError extends LockAcquireTimeoutError {\n}\n/**\n * Implements a global exclusive lock using the Navigator LockManager API. It\n * is available on all browsers released after 2022-03-15 with Safari being the\n * last one to release support. If the API is not available, this function will\n * throw. Make sure you check availablility before configuring {@link\n * GoTrueClient}.\n *\n * You can turn on debugging by setting the `supabase.gotrue-js.locks.debug`\n * local storage item to `true`.\n *\n * Internals:\n *\n * Since the LockManager API does not preserve stack traces for the async\n * function passed in the `request` method, a trick is used where acquiring the\n * lock releases a previously started promise to run the operation in the `fn`\n * function. The lock waits for that promise to finish (with or without error),\n * while the function will finally wait for the result anyway.\n *\n * @param name Name of the lock to be acquired.\n * @param acquireTimeout If negative, no timeout. If 0 an error is thrown if\n * the lock can't be acquired without waiting. If positive, the lock acquire\n * will time out after so many milliseconds. An error is\n * a timeout if it has `isAcquireTimeout` set to true.\n * @param fn The operation to run once the lock is acquired.\n */\nexport async function navigatorLock(name, acquireTimeout, fn) {\n if (internals.debug) {\n console.log('@supabase/gotrue-js: navigatorLock: acquire lock', name, acquireTimeout);\n }\n const abortController = new globalThis.AbortController();\n if (acquireTimeout > 0) {\n setTimeout(() => {\n abortController.abort();\n if (internals.debug) {\n console.log('@supabase/gotrue-js: navigatorLock acquire timed out', name);\n }\n }, acquireTimeout);\n }\n // MDN article: https://developer.mozilla.org/en-US/docs/Web/API/LockManager/request\n // Wrapping navigator.locks.request() with a plain Promise is done as some\n // libraries like zone.js patch the Promise object to track the execution\n // context. However, it appears that most browsers use an internal promise\n // implementation when using the navigator.locks.request() API causing them\n // to lose context and emit confusing log messages or break certain features.\n // This wrapping is believed to help zone.js track the execution context\n // better.\n return await Promise.resolve().then(() => globalThis.navigator.locks.request(name, acquireTimeout === 0\n ? {\n mode: 'exclusive',\n ifAvailable: true,\n }\n : {\n mode: 'exclusive',\n signal: abortController.signal,\n }, async (lock) => {\n if (lock) {\n if (internals.debug) {\n console.log('@supabase/gotrue-js: navigatorLock: acquired', name, lock.name);\n }\n try {\n return await fn();\n }\n finally {\n if (internals.debug) {\n console.log('@supabase/gotrue-js: navigatorLock: released', name, lock.name);\n }\n }\n }\n else {\n if (acquireTimeout === 0) {\n if (internals.debug) {\n console.log('@supabase/gotrue-js: navigatorLock: not immediately available', name);\n }\n throw new NavigatorLockAcquireTimeoutError(`Acquiring an exclusive Navigator LockManager lock \"${name}\" immediately failed`);\n }\n else {\n if (internals.debug) {\n try {\n const result = await globalThis.navigator.locks.query();\n console.log('@supabase/gotrue-js: Navigator LockManager state', JSON.stringify(result, null, ' '));\n }\n catch (e) {\n console.warn('@supabase/gotrue-js: Error when querying Navigator LockManager state', e);\n }\n }\n // Browser is not following the Navigator LockManager spec, it\n // returned a null lock when we didn't use ifAvailable. So we can\n // pretend the lock is acquired in the name of backward compatibility\n // and user experience and just run the function.\n console.warn('@supabase/gotrue-js: Navigator LockManager returned a null lock when using #request without ifAvailable set to true, it appears this browser is not following the LockManager spec https://developer.mozilla.org/en-US/docs/Web/API/LockManager/request');\n return await fn();\n }\n }\n }));\n}\nconst PROCESS_LOCKS = {};\n/**\n * Implements a global exclusive lock that works only in the current process.\n * Useful for environments like React Native or other non-browser\n * single-process (i.e. no concept of \"tabs\") environments.\n *\n * Use {@link #navigatorLock} in browser environments.\n *\n * @param name Name of the lock to be acquired.\n * @param acquireTimeout If negative, no timeout. If 0 an error is thrown if\n * the lock can't be acquired without waiting. If positive, the lock acquire\n * will time out after so many milliseconds. An error is\n * a timeout if it has `isAcquireTimeout` set to true.\n * @param fn The operation to run once the lock is acquired.\n */\nexport async function processLock(name, acquireTimeout, fn) {\n var _a;\n const previousOperation = (_a = PROCESS_LOCKS[name]) !== null && _a !== void 0 ? _a : Promise.resolve();\n const currentOperation = Promise.race([\n previousOperation.catch(() => {\n // ignore error of previous operation that we're waiting to finish\n return null;\n }),\n acquireTimeout >= 0\n ? new Promise((_, reject) => {\n setTimeout(() => {\n reject(new ProcessLockAcquireTimeoutError(`Acquring process lock with name \"${name}\" timed out`));\n }, acquireTimeout);\n })\n : null,\n ].filter((x) => x))\n .catch((e) => {\n if (e && e.isAcquireTimeout) {\n throw e;\n }\n return null;\n })\n .then(async () => {\n // previous operations finished and we didn't get a race on the acquire\n // timeout, so the current operation can finally start\n return await fn();\n });\n PROCESS_LOCKS[name] = currentOperation.catch(async (e) => {\n if (e && e.isAcquireTimeout) {\n // if the current operation timed out, it doesn't mean that the previous\n // operation finished, so we need contnue waiting for it to finish\n await previousOperation;\n return null;\n }\n throw e;\n });\n // finally wait for the current operation to finish successfully, with an\n // error or with an acquire timeout error\n return await currentOperation;\n}\n//# sourceMappingURL=locks.js.map","/**\n * https://mathiasbynens.be/notes/globalthis\n */\nexport function polyfillGlobalThis() {\n if (typeof globalThis === 'object')\n return;\n try {\n Object.defineProperty(Object.prototype, '__magic__', {\n get: function () {\n return this;\n },\n configurable: true,\n });\n // @ts-expect-error 'Allow access to magic'\n __magic__.globalThis = __magic__;\n // @ts-expect-error 'Allow access to magic'\n delete Object.prototype.__magic__;\n }\n catch (e) {\n if (typeof self !== 'undefined') {\n // @ts-expect-error 'Allow access to globals'\n self.globalThis = self;\n }\n }\n}\n//# sourceMappingURL=polyfills.js.map","import GoTrueAdminApi from './GoTrueAdminApi';\nimport { DEFAULT_HEADERS, EXPIRY_MARGIN_MS, AUTO_REFRESH_TICK_DURATION_MS, AUTO_REFRESH_TICK_THRESHOLD, GOTRUE_URL, STORAGE_KEY, } from './lib/constants';\nimport { AuthImplicitGrantRedirectError, AuthPKCEGrantCodeExchangeError, AuthInvalidCredentialsError, AuthSessionMissingError, AuthInvalidTokenResponseError, AuthUnknownError, isAuthApiError, isAuthError, isAuthRetryableFetchError, isAuthSessionMissingError, isAuthImplicitGrantRedirectError, } from './lib/errors';\nimport { _request, _sessionResponse, _sessionResponsePassword, _userResponse, _ssoResponse, } from './lib/fetch';\nimport { decodeJWTPayload, Deferred, getItemAsync, isBrowser, removeItemAsync, resolveFetch, setItemAsync, uuid, retryable, sleep, supportsLocalStorage, parseParametersFromURL, getCodeChallengeAndMethod, } from './lib/helpers';\nimport { localStorageAdapter, memoryLocalStorageAdapter } from './lib/local-storage';\nimport { polyfillGlobalThis } from './lib/polyfills';\nimport { version } from './lib/version';\nimport { LockAcquireTimeoutError, navigatorLock } from './lib/locks';\npolyfillGlobalThis(); // Make \"globalThis\" available\nconst DEFAULT_OPTIONS = {\n url: GOTRUE_URL,\n storageKey: STORAGE_KEY,\n autoRefreshToken: true,\n persistSession: true,\n detectSessionInUrl: true,\n headers: DEFAULT_HEADERS,\n flowType: 'implicit',\n debug: false,\n hasCustomAuthorizationHeader: false,\n};\nasync function lockNoOp(name, acquireTimeout, fn) {\n return await fn();\n}\nexport default class GoTrueClient {\n /**\n * Create a new client for use in the browser.\n */\n constructor(options) {\n var _a, _b;\n this.memoryStorage = null;\n this.stateChangeEmitters = new Map();\n this.autoRefreshTicker = null;\n this.visibilityChangedCallback = null;\n this.refreshingDeferred = null;\n /**\n * Keeps track of the async client initialization.\n * When null or not yet resolved the auth state is `unknown`\n * Once resolved the the auth state is known and it's save to call any further client methods.\n * Keep extra care to never reject or throw uncaught errors\n */\n this.initializePromise = null;\n this.detectSessionInUrl = true;\n this.hasCustomAuthorizationHeader = false;\n this.suppressGetSessionWarning = false;\n this.lockAcquired = false;\n this.pendingInLock = [];\n /**\n * Used to broadcast state change events to other tabs listening.\n */\n this.broadcastChannel = null;\n this.logger = console.log;\n this.instanceID = GoTrueClient.nextInstanceID;\n GoTrueClient.nextInstanceID += 1;\n if (this.instanceID > 0 && isBrowser()) {\n console.warn('Multiple GoTrueClient instances detected in the same browser context. It is not an error, but this should be avoided as it may produce undefined behavior when used concurrently under the same storage key.');\n }\n const settings = Object.assign(Object.assign({}, DEFAULT_OPTIONS), options);\n this.logDebugMessages = !!settings.debug;\n if (typeof settings.debug === 'function') {\n this.logger = settings.debug;\n }\n this.persistSession = settings.persistSession;\n this.storageKey = settings.storageKey;\n this.autoRefreshToken = settings.autoRefreshToken;\n this.admin = new GoTrueAdminApi({\n url: settings.url,\n headers: settings.headers,\n fetch: settings.fetch,\n });\n this.url = settings.url;\n this.headers = settings.headers;\n this.fetch = resolveFetch(settings.fetch);\n this.lock = settings.lock || lockNoOp;\n this.detectSessionInUrl = settings.detectSessionInUrl;\n this.flowType = settings.flowType;\n this.hasCustomAuthorizationHeader = settings.hasCustomAuthorizationHeader;\n if (settings.lock) {\n this.lock = settings.lock;\n }\n else if (isBrowser() && ((_a = globalThis === null || globalThis === void 0 ? void 0 : globalThis.navigator) === null || _a === void 0 ? void 0 : _a.locks)) {\n this.lock = navigatorLock;\n }\n else {\n this.lock = lockNoOp;\n }\n this.mfa = {\n verify: this._verify.bind(this),\n enroll: this._enroll.bind(this),\n unenroll: this._unenroll.bind(this),\n challenge: this._challenge.bind(this),\n listFactors: this._listFactors.bind(this),\n challengeAndVerify: this._challengeAndVerify.bind(this),\n getAuthenticatorAssuranceLevel: this._getAuthenticatorAssuranceLevel.bind(this),\n };\n if (this.persistSession) {\n if (settings.storage) {\n this.storage = settings.storage;\n }\n else {\n if (supportsLocalStorage()) {\n this.storage = localStorageAdapter;\n }\n else {\n this.memoryStorage = {};\n this.storage = memoryLocalStorageAdapter(this.memoryStorage);\n }\n }\n }\n else {\n this.memoryStorage = {};\n this.storage = memoryLocalStorageAdapter(this.memoryStorage);\n }\n if (isBrowser() && globalThis.BroadcastChannel && this.persistSession && this.storageKey) {\n try {\n this.broadcastChannel = new globalThis.BroadcastChannel(this.storageKey);\n }\n catch (e) {\n console.error('Failed to create a new BroadcastChannel, multi-tab state changes will not be available', e);\n }\n (_b = this.broadcastChannel) === null || _b === void 0 ? void 0 : _b.addEventListener('message', async (event) => {\n this._debug('received broadcast notification from other tab or client', event);\n await this._notifyAllSubscribers(event.data.event, event.data.session, false); // broadcast = false so we don't get an endless loop of messages\n });\n }\n this.initialize();\n }\n _debug(...args) {\n if (this.logDebugMessages) {\n this.logger(`GoTrueClient@${this.instanceID} (${version}) ${new Date().toISOString()}`, ...args);\n }\n return this;\n }\n /**\n * Initializes the client session either from the url or from storage.\n * This method is automatically called when instantiating the client, but should also be called\n * manually when checking for an error from an auth redirect (oauth, magiclink, password recovery, etc).\n */\n async initialize() {\n if (this.initializePromise) {\n return await this.initializePromise;\n }\n this.initializePromise = (async () => {\n return await this._acquireLock(-1, async () => {\n return await this._initialize();\n });\n })();\n return await this.initializePromise;\n }\n /**\n * IMPORTANT:\n * 1. Never throw in this method, as it is called from the constructor\n * 2. Never return a session from this method as it would be cached over\n * the whole lifetime of the client\n */\n async _initialize() {\n var _a;\n try {\n const params = parseParametersFromURL(window.location.href);\n let callbackUrlType = 'none';\n if (this._isImplicitGrantCallback(params)) {\n callbackUrlType = 'implicit';\n }\n else if (await this._isPKCECallback(params)) {\n callbackUrlType = 'pkce';\n }\n /**\n * Attempt to get the session from the URL only if these conditions are fulfilled\n *\n * Note: If the URL isn't one of the callback url types (implicit or pkce),\n * then there could be an existing session so we don't want to prematurely remove it\n */\n if (isBrowser() && this.detectSessionInUrl && callbackUrlType !== 'none') {\n const { data, error } = await this._getSessionFromURL(params, callbackUrlType);\n if (error) {\n this._debug('#_initialize()', 'error detecting session from URL', error);\n if (isAuthImplicitGrantRedirectError(error)) {\n const errorCode = (_a = error.details) === null || _a === void 0 ? void 0 : _a.code;\n if (errorCode === 'identity_already_exists' ||\n errorCode === 'identity_not_found' ||\n errorCode === 'single_identity_not_deletable') {\n return { error };\n }\n }\n // failed login attempt via url,\n // remove old session as in verifyOtp, signUp and signInWith*\n await this._removeSession();\n return { error };\n }\n const { session, redirectType } = data;\n this._debug('#_initialize()', 'detected session in URL', session, 'redirect type', redirectType);\n await this._saveSession(session);\n setTimeout(async () => {\n if (redirectType === 'recovery') {\n await this._notifyAllSubscribers('PASSWORD_RECOVERY', session);\n }\n else {\n await this._notifyAllSubscribers('SIGNED_IN', session);\n }\n }, 0);\n return { error: null };\n }\n // no login attempt via callback url try to recover session from storage\n await this._recoverAndRefresh();\n return { error: null };\n }\n catch (error) {\n if (isAuthError(error)) {\n return { error };\n }\n return {\n error: new AuthUnknownError('Unexpected error during initialization', error),\n };\n }\n finally {\n await this._handleVisibilityChange();\n this._debug('#_initialize()', 'end');\n }\n }\n /**\n * Creates a new anonymous user.\n *\n * @returns A session where the is_anonymous claim in the access token JWT set to true\n */\n async signInAnonymously(credentials) {\n var _a, _b, _c;\n try {\n const res = await _request(this.fetch, 'POST', `${this.url}/signup`, {\n headers: this.headers,\n body: {\n data: (_b = (_a = credentials === null || credentials === void 0 ? void 0 : credentials.options) === null || _a === void 0 ? void 0 : _a.data) !== null && _b !== void 0 ? _b : {},\n gotrue_meta_security: { captcha_token: (_c = credentials === null || credentials === void 0 ? void 0 : credentials.options) === null || _c === void 0 ? void 0 : _c.captchaToken },\n },\n xform: _sessionResponse,\n });\n const { data, error } = res;\n if (error || !data) {\n return { data: { user: null, session: null }, error: error };\n }\n const session = data.session;\n const user = data.user;\n if (data.session) {\n await this._saveSession(data.session);\n await this._notifyAllSubscribers('SIGNED_IN', session);\n }\n return { data: { user, session }, error: null };\n }\n catch (error) {\n if (isAuthError(error)) {\n return { data: { user: null, session: null }, error };\n }\n throw error;\n }\n }\n /**\n * Creates a new user.\n *\n * Be aware that if a user account exists in the system you may get back an\n * error message that attempts to hide this information from the user.\n * This method has support for PKCE via email signups. The PKCE flow cannot be used when autoconfirm is enabled.\n *\n * @returns A logged-in session if the server has \"autoconfirm\" ON\n * @returns A user if the server has \"autoconfirm\" OFF\n */\n async signUp(credentials) {\n var _a, _b, _c;\n try {\n let res;\n if ('email' in credentials) {\n const { email, password, options } = credentials;\n let codeChallenge = null;\n let codeChallengeMethod = null;\n if (this.flowType === 'pkce') {\n ;\n [codeChallenge, codeChallengeMethod] = await getCodeChallengeAndMethod(this.storage, this.storageKey);\n }\n res = await _request(this.fetch, 'POST', `${this.url}/signup`, {\n headers: this.headers,\n redirectTo: options === null || options === void 0 ? void 0 : options.emailRedirectTo,\n body: {\n email,\n password,\n data: (_a = options === null || options === void 0 ? void 0 : options.data) !== null && _a !== void 0 ? _a : {},\n gotrue_meta_security: { captcha_token: options === null || options === void 0 ? void 0 : options.captchaToken },\n code_challenge: codeChallenge,\n code_challenge_method: codeChallengeMethod,\n },\n xform: _sessionResponse,\n });\n }\n else if ('phone' in credentials) {\n const { phone, password, options } = credentials;\n res = await _request(this.fetch, 'POST', `${this.url}/signup`, {\n headers: this.headers,\n body: {\n phone,\n password,\n data: (_b = options === null || options === void 0 ? void 0 : options.data) !== null && _b !== void 0 ? _b : {},\n channel: (_c = options === null || options === void 0 ? void 0 : options.channel) !== null && _c !== void 0 ? _c : 'sms',\n gotrue_meta_security: { captcha_token: options === null || options === void 0 ? void 0 : options.captchaToken },\n },\n xform: _sessionResponse,\n });\n }\n else {\n throw new AuthInvalidCredentialsError('You must provide either an email or phone number and a password');\n }\n const { data, error } = res;\n if (error || !data) {\n return { data: { user: null, session: null }, error: error };\n }\n const session = data.session;\n const user = data.user;\n if (data.session) {\n await this._saveSession(data.session);\n await this._notifyAllSubscribers('SIGNED_IN', session);\n }\n return { data: { user, session }, error: null };\n }\n catch (error) {\n if (isAuthError(error)) {\n return { data: { user: null, session: null }, error };\n }\n throw error;\n }\n }\n /**\n * Log in an existing user with an email and password or phone and password.\n *\n * Be aware that you may get back an error message that will not distinguish\n * between the cases where the account does not exist or that the\n * email/phone and password combination is wrong or that the account can only\n * be accessed via social login.\n */\n async signInWithPassword(credentials) {\n try {\n let res;\n if ('email' in credentials) {\n const { email, password, options } = credentials;\n res = await _request(this.fetch, 'POST', `${this.url}/token?grant_type=password`, {\n headers: this.headers,\n body: {\n email,\n password,\n gotrue_meta_security: { captcha_token: options === null || options === void 0 ? void 0 : options.captchaToken },\n },\n xform: _sessionResponsePassword,\n });\n }\n else if ('phone' in credentials) {\n const { phone, password, options } = credentials;\n res = await _request(this.fetch, 'POST', `${this.url}/token?grant_type=password`, {\n headers: this.headers,\n body: {\n phone,\n password,\n gotrue_meta_security: { captcha_token: options === null || options === void 0 ? void 0 : options.captchaToken },\n },\n xform: _sessionResponsePassword,\n });\n }\n else {\n throw new AuthInvalidCredentialsError('You must provide either an email or phone number and a password');\n }\n const { data, error } = res;\n if (error) {\n return { data: { user: null, session: null }, error };\n }\n else if (!data || !data.session || !data.user) {\n return { data: { user: null, session: null }, error: new AuthInvalidTokenResponseError() };\n }\n if (data.session) {\n await this._saveSession(data.session);\n await this._notifyAllSubscribers('SIGNED_IN', data.session);\n }\n return {\n data: Object.assign({ user: data.user, session: data.session }, (data.weak_password ? { weakPassword: data.weak_password } : null)),\n error,\n };\n }\n catch (error) {\n if (isAuthError(error)) {\n return { data: { user: null, session: null }, error };\n }\n throw error;\n }\n }\n /**\n * Log in an existing user via a third-party provider.\n * This method supports the PKCE flow.\n */\n async signInWithOAuth(credentials) {\n var _a, _b, _c, _d;\n return await this._handleProviderSignIn(credentials.provider, {\n redirectTo: (_a = credentials.options) === null || _a === void 0 ? void 0 : _a.redirectTo,\n scopes: (_b = credentials.options) === null || _b === void 0 ? void 0 : _b.scopes,\n queryParams: (_c = credentials.options) === null || _c === void 0 ? void 0 : _c.queryParams,\n skipBrowserRedirect: (_d = credentials.options) === null || _d === void 0 ? void 0 : _d.skipBrowserRedirect,\n });\n }\n /**\n * Log in an existing user by exchanging an Auth Code issued during the PKCE flow.\n */\n async exchangeCodeForSession(authCode) {\n await this.initializePromise;\n return this._acquireLock(-1, async () => {\n return this._exchangeCodeForSession(authCode);\n });\n }\n async _exchangeCodeForSession(authCode) {\n const storageItem = await getItemAsync(this.storage, `${this.storageKey}-code-verifier`);\n const [codeVerifier, redirectType] = (storageItem !== null && storageItem !== void 0 ? storageItem : '').split('/');\n try {\n const { data, error } = await _request(this.fetch, 'POST', `${this.url}/token?grant_type=pkce`, {\n headers: this.headers,\n body: {\n auth_code: authCode,\n code_verifier: codeVerifier,\n },\n xform: _sessionResponse,\n });\n await removeItemAsync(this.storage, `${this.storageKey}-code-verifier`);\n if (error) {\n throw error;\n }\n if (!data || !data.session || !data.user) {\n return {\n data: { user: null, session: null, redirectType: null },\n error: new AuthInvalidTokenResponseError(),\n };\n }\n if (data.session) {\n await this._saveSession(data.session);\n await this._notifyAllSubscribers('SIGNED_IN', data.session);\n }\n return { data: Object.assign(Object.assign({}, data), { redirectType: redirectType !== null && redirectType !== void 0 ? redirectType : null }), error };\n }\n catch (error) {\n if (isAuthError(error)) {\n return { data: { user: null, session: null, redirectType: null }, error };\n }\n throw error;\n }\n }\n /**\n * Allows signing in with an OIDC ID token. The authentication provider used\n * should be enabled and configured.\n */\n async signInWithIdToken(credentials) {\n try {\n const { options, provider, token, access_token, nonce } = credentials;\n const res = await _request(this.fetch, 'POST', `${this.url}/token?grant_type=id_token`, {\n headers: this.headers,\n body: {\n provider,\n id_token: token,\n access_token,\n nonce,\n gotrue_meta_security: { captcha_token: options === null || options === void 0 ? void 0 : options.captchaToken },\n },\n xform: _sessionResponse,\n });\n const { data, error } = res;\n if (error) {\n return { data: { user: null, session: null }, error };\n }\n else if (!data || !data.session || !data.user) {\n return {\n data: { user: null, session: null },\n error: new AuthInvalidTokenResponseError(),\n };\n }\n if (data.session) {\n await this._saveSession(data.session);\n await this._notifyAllSubscribers('SIGNED_IN', data.session);\n }\n return { data, error };\n }\n catch (error) {\n if (isAuthError(error)) {\n return { data: { user: null, session: null }, error };\n }\n throw error;\n }\n }\n /**\n * Log in a user using magiclink or a one-time password (OTP).\n *\n * If the `{{ .ConfirmationURL }}` variable is specified in the email template, a magiclink will be sent.\n * If the `{{ .Token }}` variable is specified in the email template, an OTP will be sent.\n * If you're using phone sign-ins, only an OTP will be sent. You won't be able to send a magiclink for phone sign-ins.\n *\n * Be aware that you may get back an error message that will not distinguish\n * between the cases where the account does not exist or, that the account\n * can only be accessed via social login.\n *\n * Do note that you will need to configure a Whatsapp sender on Twilio\n * if you are using phone sign in with the 'whatsapp' channel. The whatsapp\n * channel is not supported on other providers\n * at this time.\n * This method supports PKCE when an email is passed.\n */\n async signInWithOtp(credentials) {\n var _a, _b, _c, _d, _e;\n try {\n if ('email' in credentials) {\n const { email, options } = credentials;\n let codeChallenge = null;\n let codeChallengeMethod = null;\n if (this.flowType === 'pkce') {\n ;\n [codeChallenge, codeChallengeMethod] = await getCodeChallengeAndMethod(this.storage, this.storageKey);\n }\n const { error } = await _request(this.fetch, 'POST', `${this.url}/otp`, {\n headers: this.headers,\n body: {\n email,\n data: (_a = options === null || options === void 0 ? void 0 : options.data) !== null && _a !== void 0 ? _a : {},\n create_user: (_b = options === null || options === void 0 ? void 0 : options.shouldCreateUser) !== null && _b !== void 0 ? _b : true,\n gotrue_meta_security: { captcha_token: options === null || options === void 0 ? void 0 : options.captchaToken },\n code_challenge: codeChallenge,\n code_challenge_method: codeChallengeMethod,\n },\n redirectTo: options === null || options === void 0 ? void 0 : options.emailRedirectTo,\n });\n return { data: { user: null, session: null }, error };\n }\n if ('phone' in credentials) {\n const { phone, options } = credentials;\n const { data, error } = await _request(this.fetch, 'POST', `${this.url}/otp`, {\n headers: this.headers,\n body: {\n phone,\n data: (_c = options === null || options === void 0 ? void 0 : options.data) !== null && _c !== void 0 ? _c : {},\n create_user: (_d = options === null || options === void 0 ? void 0 : options.shouldCreateUser) !== null && _d !== void 0 ? _d : true,\n gotrue_meta_security: { captcha_token: options === null || options === void 0 ? void 0 : options.captchaToken },\n channel: (_e = options === null || options === void 0 ? void 0 : options.channel) !== null && _e !== void 0 ? _e : 'sms',\n },\n });\n return { data: { user: null, session: null, messageId: data === null || data === void 0 ? void 0 : data.message_id }, error };\n }\n throw new AuthInvalidCredentialsError('You must provide either an email or phone number.');\n }\n catch (error) {\n if (isAuthError(error)) {\n return { data: { user: null, session: null }, error };\n }\n throw error;\n }\n }\n /**\n * Log in a user given a User supplied OTP or TokenHash received through mobile or email.\n */\n async verifyOtp(params) {\n var _a, _b;\n try {\n let redirectTo = undefined;\n let captchaToken = undefined;\n if ('options' in params) {\n redirectTo = (_a = params.options) === null || _a === void 0 ? void 0 : _a.redirectTo;\n captchaToken = (_b = params.options) === null || _b === void 0 ? void 0 : _b.captchaToken;\n }\n const { data, error } = await _request(this.fetch, 'POST', `${this.url}/verify`, {\n headers: this.headers,\n body: Object.assign(Object.assign({}, params), { gotrue_meta_security: { captcha_token: captchaToken } }),\n redirectTo,\n xform: _sessionResponse,\n });\n if (error) {\n throw error;\n }\n if (!data) {\n throw new Error('An error occurred on token verification.');\n }\n const session = data.session;\n const user = data.user;\n if (session === null || session === void 0 ? void 0 : session.access_token) {\n await this._saveSession(session);\n await this._notifyAllSubscribers(params.type == 'recovery' ? 'PASSWORD_RECOVERY' : 'SIGNED_IN', session);\n }\n return { data: { user, session }, error: null };\n }\n catch (error) {\n if (isAuthError(error)) {\n return { data: { user: null, session: null }, error };\n }\n throw error;\n }\n }\n /**\n * Attempts a single-sign on using an enterprise Identity Provider. A\n * successful SSO attempt will redirect the current page to the identity\n * provider authorization page. The redirect URL is implementation and SSO\n * protocol specific.\n *\n * You can use it by providing a SSO domain. Typically you can extract this\n * domain by asking users for their email address. If this domain is\n * registered on the Auth instance the redirect will use that organization's\n * currently active SSO Identity Provider for the login.\n *\n * If you have built an organization-specific login page, you can use the\n * organization's SSO Identity Provider UUID directly instead.\n */\n async signInWithSSO(params) {\n var _a, _b, _c;\n try {\n let codeChallenge = null;\n let codeChallengeMethod = null;\n if (this.flowType === 'pkce') {\n ;\n [codeChallenge, codeChallengeMethod] = await getCodeChallengeAndMethod(this.storage, this.storageKey);\n }\n return await _request(this.fetch, 'POST', `${this.url}/sso`, {\n body: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, ('providerId' in params ? { provider_id: params.providerId } : null)), ('domain' in params ? { domain: params.domain } : null)), { redirect_to: (_b = (_a = params.options) === null || _a === void 0 ? void 0 : _a.redirectTo) !== null && _b !== void 0 ? _b : undefined }), (((_c = params === null || params === void 0 ? void 0 : params.options) === null || _c === void 0 ? void 0 : _c.captchaToken)\n ? { gotrue_meta_security: { captcha_token: params.options.captchaToken } }\n : null)), { skip_http_redirect: true, code_challenge: codeChallenge, code_challenge_method: codeChallengeMethod }),\n headers: this.headers,\n xform: _ssoResponse,\n });\n }\n catch (error) {\n if (isAuthError(error)) {\n return { data: null, error };\n }\n throw error;\n }\n }\n /**\n * Sends a reauthentication OTP to the user's email or phone number.\n * Requires the user to be signed-in.\n */\n async reauthenticate() {\n await this.initializePromise;\n return await this._acquireLock(-1, async () => {\n return await this._reauthenticate();\n });\n }\n async _reauthenticate() {\n try {\n return await this._useSession(async (result) => {\n const { data: { session }, error: sessionError, } = result;\n if (sessionError)\n throw sessionError;\n if (!session)\n throw new AuthSessionMissingError();\n const { error } = await _request(this.fetch, 'GET', `${this.url}/reauthenticate`, {\n headers: this.headers,\n jwt: session.access_token,\n });\n return { data: { user: null, session: null }, error };\n });\n }\n catch (error) {\n if (isAuthError(error)) {\n return { data: { user: null, session: null }, error };\n }\n throw error;\n }\n }\n /**\n * Resends an existing signup confirmation email, email change email, SMS OTP or phone change OTP.\n */\n async resend(credentials) {\n try {\n const endpoint = `${this.url}/resend`;\n if ('email' in credentials) {\n const { email, type, options } = credentials;\n const { error } = await _request(this.fetch, 'POST', endpoint, {\n headers: this.headers,\n body: {\n email,\n type,\n gotrue_meta_security: { captcha_token: options === null || options === void 0 ? void 0 : options.captchaToken },\n },\n redirectTo: options === null || options === void 0 ? void 0 : options.emailRedirectTo,\n });\n return { data: { user: null, session: null }, error };\n }\n else if ('phone' in credentials) {\n const { phone, type, options } = credentials;\n const { data, error } = await _request(this.fetch, 'POST', endpoint, {\n headers: this.headers,\n body: {\n phone,\n type,\n gotrue_meta_security: { captcha_token: options === null || options === void 0 ? void 0 : options.captchaToken },\n },\n });\n return { data: { user: null, session: null, messageId: data === null || data === void 0 ? void 0 : data.message_id }, error };\n }\n throw new AuthInvalidCredentialsError('You must provide either an email or phone number and a type');\n }\n catch (error) {\n if (isAuthError(error)) {\n return { data: { user: null, session: null }, error };\n }\n throw error;\n }\n }\n /**\n * Returns the session, refreshing it if necessary.\n *\n * The session returned can be null if the session is not detected which can happen in the event a user is not signed-in or has logged out.\n *\n * **IMPORTANT:** This method loads values directly from the storage attached\n * to the client. If that storage is based on request cookies for example,\n * the values in it may not be authentic and therefore it's strongly advised\n * against using this method and its results in such circumstances. A warning\n * will be emitted if this is detected. Use {@link #getUser()} instead.\n */\n async getSession() {\n await this.initializePromise;\n const result = await this._acquireLock(-1, async () => {\n return this._useSession(async (result) => {\n return result;\n });\n });\n return result;\n }\n /**\n * Acquires a global lock based on the storage key.\n */\n async _acquireLock(acquireTimeout, fn) {\n this._debug('#_acquireLock', 'begin', acquireTimeout);\n try {\n if (this.lockAcquired) {\n const last = this.pendingInLock.length\n ? this.pendingInLock[this.pendingInLock.length - 1]\n : Promise.resolve();\n const result = (async () => {\n await last;\n return await fn();\n })();\n this.pendingInLock.push((async () => {\n try {\n await result;\n }\n catch (e) {\n // we just care if it finished\n }\n })());\n return result;\n }\n return await this.lock(`lock:${this.storageKey}`, acquireTimeout, async () => {\n this._debug('#_acquireLock', 'lock acquired for storage key', this.storageKey);\n try {\n this.lockAcquired = true;\n const result = fn();\n this.pendingInLock.push((async () => {\n try {\n await result;\n }\n catch (e) {\n // we just care if it finished\n }\n })());\n await result;\n // keep draining the queue until there's nothing to wait on\n while (this.pendingInLock.length) {\n const waitOn = [...this.pendingInLock];\n await Promise.all(waitOn);\n this.pendingInLock.splice(0, waitOn.length);\n }\n return await result;\n }\n finally {\n this._debug('#_acquireLock', 'lock released for storage key', this.storageKey);\n this.lockAcquired = false;\n }\n });\n }\n finally {\n this._debug('#_acquireLock', 'end');\n }\n }\n /**\n * Use instead of {@link #getSession} inside the library. It is\n * semantically usually what you want, as getting a session involves some\n * processing afterwards that requires only one client operating on the\n * session at once across multiple tabs or processes.\n */\n async _useSession(fn) {\n this._debug('#_useSession', 'begin');\n try {\n // the use of __loadSession here is the only correct use of the function!\n const result = await this.__loadSession();\n return await fn(result);\n }\n finally {\n this._debug('#_useSession', 'end');\n }\n }\n /**\n * NEVER USE DIRECTLY!\n *\n * Always use {@link #_useSession}.\n */\n async __loadSession() {\n this._debug('#__loadSession()', 'begin');\n if (!this.lockAcquired) {\n this._debug('#__loadSession()', 'used outside of an acquired lock!', new Error().stack);\n }\n try {\n let currentSession = null;\n const maybeSession = await getItemAsync(this.storage, this.storageKey);\n this._debug('#getSession()', 'session from storage', maybeSession);\n if (maybeSession !== null) {\n if (this._isValidSession(maybeSession)) {\n currentSession = maybeSession;\n }\n else {\n this._debug('#getSession()', 'session from storage is not valid');\n await this._removeSession();\n }\n }\n if (!currentSession) {\n return { data: { session: null }, error: null };\n }\n // A session is considered expired before the access token _actually_\n // expires. When the autoRefreshToken option is off (or when the tab is\n // in the background), very eager users of getSession() -- like\n // realtime-js -- might send a valid JWT which will expire by the time it\n // reaches the server.\n const hasExpired = currentSession.expires_at\n ? currentSession.expires_at * 1000 - Date.now() < EXPIRY_MARGIN_MS\n : false;\n this._debug('#__loadSession()', `session has${hasExpired ? '' : ' not'} expired`, 'expires_at', currentSession.expires_at);\n if (!hasExpired) {\n if (this.storage.isServer) {\n let suppressWarning = this.suppressGetSessionWarning;\n const proxySession = new Proxy(currentSession, {\n get: (target, prop, receiver) => {\n if (!suppressWarning && prop === 'user') {\n // only show warning when the user object is being accessed from the server\n console.warn('Using the user object as returned from supabase.auth.getSession() or from some supabase.auth.onAuthStateChange() events could be insecure! This value comes directly from the storage medium (usually cookies on the server) and may not be authentic. Use supabase.auth.getUser() instead which authenticates the data by contacting the Supabase Auth server.');\n suppressWarning = true; // keeps this proxy instance from logging additional warnings\n this.suppressGetSessionWarning = true; // keeps this client's future proxy instances from warning\n }\n return Reflect.get(target, prop, receiver);\n },\n });\n currentSession = proxySession;\n }\n return { data: { session: currentSession }, error: null };\n }\n const { session, error } = await this._callRefreshToken(currentSession.refresh_token);\n if (error) {\n return { data: { session: null }, error };\n }\n return { data: { session }, error: null };\n }\n finally {\n this._debug('#__loadSession()', 'end');\n }\n }\n /**\n * Gets the current user details if there is an existing session. This method\n * performs a network request to the Supabase Auth server, so the returned\n * value is authentic and can be used to base authorization rules on.\n *\n * @param jwt Takes in an optional access token JWT. If no JWT is provided, the JWT from the current session is used.\n */\n async getUser(jwt) {\n if (jwt) {\n return await this._getUser(jwt);\n }\n await this.initializePromise;\n const result = await this._acquireLock(-1, async () => {\n return await this._getUser();\n });\n return result;\n }\n async _getUser(jwt) {\n try {\n if (jwt) {\n return await _request(this.fetch, 'GET', `${this.url}/user`, {\n headers: this.headers,\n jwt: jwt,\n xform: _userResponse,\n });\n }\n return await this._useSession(async (result) => {\n var _a, _b, _c;\n const { data, error } = result;\n if (error) {\n throw error;\n }\n // returns an error if there is no access_token or custom authorization header\n if (!((_a = data.session) === null || _a === void 0 ? void 0 : _a.access_token) && !this.hasCustomAuthorizationHeader) {\n return { data: { user: null }, error: new AuthSessionMissingError() };\n }\n return await _request(this.fetch, 'GET', `${this.url}/user`, {\n headers: this.headers,\n jwt: (_c = (_b = data.session) === null || _b === void 0 ? void 0 : _b.access_token) !== null && _c !== void 0 ? _c : undefined,\n xform: _userResponse,\n });\n });\n }\n catch (error) {\n if (isAuthError(error)) {\n if (isAuthSessionMissingError(error)) {\n // JWT contains a `session_id` which does not correspond to an active\n // session in the database, indicating the user is signed out.\n await this._removeSession();\n await removeItemAsync(this.storage, `${this.storageKey}-code-verifier`);\n }\n return { data: { user: null }, error };\n }\n throw error;\n }\n }\n /**\n * Updates user data for a logged in user.\n */\n async updateUser(attributes, options = {}) {\n await this.initializePromise;\n return await this._acquireLock(-1, async () => {\n return await this._updateUser(attributes, options);\n });\n }\n async _updateUser(attributes, options = {}) {\n try {\n return await this._useSession(async (result) => {\n const { data: sessionData, error: sessionError } = result;\n if (sessionError) {\n throw sessionError;\n }\n if (!sessionData.session) {\n throw new AuthSessionMissingError();\n }\n const session = sessionData.session;\n let codeChallenge = null;\n let codeChallengeMethod = null;\n if (this.flowType === 'pkce' && attributes.email != null) {\n ;\n [codeChallenge, codeChallengeMethod] = await getCodeChallengeAndMethod(this.storage, this.storageKey);\n }\n const { data, error: userError } = await _request(this.fetch, 'PUT', `${this.url}/user`, {\n headers: this.headers,\n redirectTo: options === null || options === void 0 ? void 0 : options.emailRedirectTo,\n body: Object.assign(Object.assign({}, attributes), { code_challenge: codeChallenge, code_challenge_method: codeChallengeMethod }),\n jwt: session.access_token,\n xform: _userResponse,\n });\n if (userError)\n throw userError;\n session.user = data.user;\n await this._saveSession(session);\n await this._notifyAllSubscribers('USER_UPDATED', session);\n return { data: { user: session.user }, error: null };\n });\n }\n catch (error) {\n if (isAuthError(error)) {\n return { data: { user: null }, error };\n }\n throw error;\n }\n }\n /**\n * Decodes a JWT (without performing any validation).\n */\n _decodeJWT(jwt) {\n return decodeJWTPayload(jwt);\n }\n /**\n * Sets the session data from the current session. If the current session is expired, setSession will take care of refreshing it to obtain a new session.\n * If the refresh token or access token in the current session is invalid, an error will be thrown.\n * @param currentSession The current session that minimally contains an access token and refresh token.\n */\n async setSession(currentSession) {\n await this.initializePromise;\n return await this._acquireLock(-1, async () => {\n return await this._setSession(currentSession);\n });\n }\n async _setSession(currentSession) {\n try {\n if (!currentSession.access_token || !currentSession.refresh_token) {\n throw new AuthSessionMissingError();\n }\n const timeNow = Date.now() / 1000;\n let expiresAt = timeNow;\n let hasExpired = true;\n let session = null;\n const payload = decodeJWTPayload(currentSession.access_token);\n if (payload.exp) {\n expiresAt = payload.exp;\n hasExpired = expiresAt <= timeNow;\n }\n if (hasExpired) {\n const { session: refreshedSession, error } = await this._callRefreshToken(currentSession.refresh_token);\n if (error) {\n return { data: { user: null, session: null }, error: error };\n }\n if (!refreshedSession) {\n return { data: { user: null, session: null }, error: null };\n }\n session = refreshedSession;\n }\n else {\n const { data, error } = await this._getUser(currentSession.access_token);\n if (error) {\n throw error;\n }\n session = {\n access_token: currentSession.access_token,\n refresh_token: currentSession.refresh_token,\n user: data.user,\n token_type: 'bearer',\n expires_in: expiresAt - timeNow,\n expires_at: expiresAt,\n };\n await this._saveSession(session);\n await this._notifyAllSubscribers('SIGNED_IN', session);\n }\n return { data: { user: session.user, session }, error: null };\n }\n catch (error) {\n if (isAuthError(error)) {\n return { data: { session: null, user: null }, error };\n }\n throw error;\n }\n }\n /**\n * Returns a new session, regardless of expiry status.\n * Takes in an optional current session. If not passed in, then refreshSession() will attempt to retrieve it from getSession().\n * If the current session's refresh token is invalid, an error will be thrown.\n * @param currentSession The current session. If passed in, it must contain a refresh token.\n */\n async refreshSession(currentSession) {\n await this.initializePromise;\n return await this._acquireLock(-1, async () => {\n return await this._refreshSession(currentSession);\n });\n }\n async _refreshSession(currentSession) {\n try {\n return await this._useSession(async (result) => {\n var _a;\n if (!currentSession) {\n const { data, error } = result;\n if (error) {\n throw error;\n }\n currentSession = (_a = data.session) !== null && _a !== void 0 ? _a : undefined;\n }\n if (!(currentSession === null || currentSession === void 0 ? void 0 : currentSession.refresh_token)) {\n throw new AuthSessionMissingError();\n }\n const { session, error } = await this._callRefreshToken(currentSession.refresh_token);\n if (error) {\n return { data: { user: null, session: null }, error: error };\n }\n if (!session) {\n return { data: { user: null, session: null }, error: null };\n }\n return { data: { user: session.user, session }, error: null };\n });\n }\n catch (error) {\n if (isAuthError(error)) {\n return { data: { user: null, session: null }, error };\n }\n throw error;\n }\n }\n /**\n * Gets the session data from a URL string\n */\n async _getSessionFromURL(params, callbackUrlType) {\n try {\n if (!isBrowser())\n throw new AuthImplicitGrantRedirectError('No browser detected.');\n // If there's an error in the URL, it doesn't matter what flow it is, we just return the error.\n if (params.error || params.error_description || params.error_code) {\n // The error class returned implies that the redirect is from an implicit grant flow\n // but it could also be from a redirect error from a PKCE flow.\n throw new AuthImplicitGrantRedirectError(params.error_description || 'Error in URL with unspecified error_description', {\n error: params.error || 'unspecified_error',\n code: params.error_code || 'unspecified_code',\n });\n }\n // Checks for mismatches between the flowType initialised in the client and the URL parameters\n switch (callbackUrlType) {\n case 'implicit':\n if (this.flowType === 'pkce') {\n throw new AuthPKCEGrantCodeExchangeError('Not a valid PKCE flow url.');\n }\n break;\n case 'pkce':\n if (this.flowType === 'implicit') {\n throw new AuthImplicitGrantRedirectError('Not a valid implicit grant flow url.');\n }\n break;\n default:\n // there's no mismatch so we continue\n }\n // Since this is a redirect for PKCE, we attempt to retrieve the code from the URL for the code exchange\n if (callbackUrlType === 'pkce') {\n this._debug('#_initialize()', 'begin', 'is PKCE flow', true);\n if (!params.code)\n throw new AuthPKCEGrantCodeExchangeError('No code detected.');\n const { data, error } = await this._exchangeCodeForSession(params.code);\n if (error)\n throw error;\n const url = new URL(window.location.href);\n url.searchParams.delete('code');\n window.history.replaceState(window.history.state, '', url.toString());\n return { data: { session: data.session, redirectType: null }, error: null };\n }\n const { provider_token, provider_refresh_token, access_token, refresh_token, expires_in, expires_at, token_type, } = params;\n if (!access_token || !expires_in || !refresh_token || !token_type) {\n throw new AuthImplicitGrantRedirectError('No session defined in URL');\n }\n const timeNow = Math.round(Date.now() / 1000);\n const expiresIn = parseInt(expires_in);\n let expiresAt = timeNow + expiresIn;\n if (expires_at) {\n expiresAt = parseInt(expires_at);\n }\n const actuallyExpiresIn = expiresAt - timeNow;\n if (actuallyExpiresIn * 1000 <= AUTO_REFRESH_TICK_DURATION_MS) {\n console.warn(`@supabase/gotrue-js: Session as retrieved from URL expires in ${actuallyExpiresIn}s, should have been closer to ${expiresIn}s`);\n }\n const issuedAt = expiresAt - expiresIn;\n if (timeNow - issuedAt >= 120) {\n console.warn('@supabase/gotrue-js: Session as retrieved from URL was issued over 120s ago, URL could be stale', issuedAt, expiresAt, timeNow);\n }\n else if (timeNow - issuedAt < 0) {\n console.warn('@supabase/gotrue-js: Session as retrieved from URL was issued in the future? Check the device clock for skew', issuedAt, expiresAt, timeNow);\n }\n const { data, error } = await this._getUser(access_token);\n if (error)\n throw error;\n const session = {\n provider_token,\n provider_refresh_token,\n access_token,\n expires_in: expiresIn,\n expires_at: expiresAt,\n refresh_token,\n token_type,\n user: data.user,\n };\n // Remove tokens from URL\n window.location.hash = '';\n this._debug('#_getSessionFromURL()', 'clearing window.location.hash');\n return { data: { session, redirectType: params.type }, error: null };\n }\n catch (error) {\n if (isAuthError(error)) {\n return { data: { session: null, redirectType: null }, error };\n }\n throw error;\n }\n }\n /**\n * Checks if the current URL contains parameters given by an implicit oauth grant flow (https://www.rfc-editor.org/rfc/rfc6749.html#section-4.2)\n */\n _isImplicitGrantCallback(params) {\n return Boolean(params.access_token || params.error_description);\n }\n /**\n * Checks if the current URL and backing storage contain parameters given by a PKCE flow\n */\n async _isPKCECallback(params) {\n const currentStorageContent = await getItemAsync(this.storage, `${this.storageKey}-code-verifier`);\n return !!(params.code && currentStorageContent);\n }\n /**\n * Inside a browser context, `signOut()` will remove the logged in user from the browser session and log them out - removing all items from localstorage and then trigger a `\"SIGNED_OUT\"` event.\n *\n * For server-side management, you can revoke all refresh tokens for a user by passing a user's JWT through to `auth.api.signOut(JWT: string)`.\n * There is no way to revoke a user's access token jwt until it expires. It is recommended to set a shorter expiry on the jwt for this reason.\n *\n * If using `others` scope, no `SIGNED_OUT` event is fired!\n */\n async signOut(options = { scope: 'global' }) {\n await this.initializePromise;\n return await this._acquireLock(-1, async () => {\n return await this._signOut(options);\n });\n }\n async _signOut({ scope } = { scope: 'global' }) {\n return await this._useSession(async (result) => {\n var _a;\n const { data, error: sessionError } = result;\n if (sessionError) {\n return { error: sessionError };\n }\n const accessToken = (_a = data.session) === null || _a === void 0 ? void 0 : _a.access_token;\n if (accessToken) {\n const { error } = await this.admin.signOut(accessToken, scope);\n if (error) {\n // ignore 404s since user might not exist anymore\n // ignore 401s since an invalid or expired JWT should sign out the current session\n if (!(isAuthApiError(error) &&\n (error.status === 404 || error.status === 401 || error.status === 403))) {\n return { error };\n }\n }\n }\n if (scope !== 'others') {\n await this._removeSession();\n await removeItemAsync(this.storage, `${this.storageKey}-code-verifier`);\n }\n return { error: null };\n });\n }\n /**\n * Receive a notification every time an auth event happens.\n * @param callback A callback function to be invoked when an auth event happens.\n */\n onAuthStateChange(callback) {\n const id = uuid();\n const subscription = {\n id,\n callback,\n unsubscribe: () => {\n this._debug('#unsubscribe()', 'state change callback with id removed', id);\n this.stateChangeEmitters.delete(id);\n },\n };\n this._debug('#onAuthStateChange()', 'registered callback with id', id);\n this.stateChangeEmitters.set(id, subscription);\n (async () => {\n await this.initializePromise;\n await this._acquireLock(-1, async () => {\n this._emitInitialSession(id);\n });\n })();\n return { data: { subscription } };\n }\n async _emitInitialSession(id) {\n return await this._useSession(async (result) => {\n var _a, _b;\n try {\n const { data: { session }, error, } = result;\n if (error)\n throw error;\n await ((_a = this.stateChangeEmitters.get(id)) === null || _a === void 0 ? void 0 : _a.callback('INITIAL_SESSION', session));\n this._debug('INITIAL_SESSION', 'callback id', id, 'session', session);\n }\n catch (err) {\n await ((_b = this.stateChangeEmitters.get(id)) === null || _b === void 0 ? void 0 : _b.callback('INITIAL_SESSION', null));\n this._debug('INITIAL_SESSION', 'callback id', id, 'error', err);\n console.error(err);\n }\n });\n }\n /**\n * Sends a password reset request to an email address. This method supports the PKCE flow.\n *\n * @param email The email address of the user.\n * @param options.redirectTo The URL to send the user to after they click the password reset link.\n * @param options.captchaToken Verification token received when the user completes the captcha on the site.\n */\n async resetPasswordForEmail(email, options = {}) {\n let codeChallenge = null;\n let codeChallengeMethod = null;\n if (this.flowType === 'pkce') {\n ;\n [codeChallenge, codeChallengeMethod] = await getCodeChallengeAndMethod(this.storage, this.storageKey, true // isPasswordRecovery\n );\n }\n try {\n return await _request(this.fetch, 'POST', `${this.url}/recover`, {\n body: {\n email,\n code_challenge: codeChallenge,\n code_challenge_method: codeChallengeMethod,\n gotrue_meta_security: { captcha_token: options.captchaToken },\n },\n headers: this.headers,\n redirectTo: options.redirectTo,\n });\n }\n catch (error) {\n if (isAuthError(error)) {\n return { data: null, error };\n }\n throw error;\n }\n }\n /**\n * Gets all the identities linked to a user.\n */\n async getUserIdentities() {\n var _a;\n try {\n const { data, error } = await this.getUser();\n if (error)\n throw error;\n return { data: { identities: (_a = data.user.identities) !== null && _a !== void 0 ? _a : [] }, error: null };\n }\n catch (error) {\n if (isAuthError(error)) {\n return { data: null, error };\n }\n throw error;\n }\n }\n /**\n * Links an oauth identity to an existing user.\n * This method supports the PKCE flow.\n */\n async linkIdentity(credentials) {\n var _a;\n try {\n const { data, error } = await this._useSession(async (result) => {\n var _a, _b, _c, _d, _e;\n const { data, error } = result;\n if (error)\n throw error;\n const url = await this._getUrlForProvider(`${this.url}/user/identities/authorize`, credentials.provider, {\n redirectTo: (_a = credentials.options) === null || _a === void 0 ? void 0 : _a.redirectTo,\n scopes: (_b = credentials.options) === null || _b === void 0 ? void 0 : _b.scopes,\n queryParams: (_c = credentials.options) === null || _c === void 0 ? void 0 : _c.queryParams,\n skipBrowserRedirect: true,\n });\n return await _request(this.fetch, 'GET', url, {\n headers: this.headers,\n jwt: (_e = (_d = data.session) === null || _d === void 0 ? void 0 : _d.access_token) !== null && _e !== void 0 ? _e : undefined,\n });\n });\n if (error)\n throw error;\n if (isBrowser() && !((_a = credentials.options) === null || _a === void 0 ? void 0 : _a.skipBrowserRedirect)) {\n window.location.assign(data === null || data === void 0 ? void 0 : data.url);\n }\n return { data: { provider: credentials.provider, url: data === null || data === void 0 ? void 0 : data.url }, error: null };\n }\n catch (error) {\n if (isAuthError(error)) {\n return { data: { provider: credentials.provider, url: null }, error };\n }\n throw error;\n }\n }\n /**\n * Unlinks an identity from a user by deleting it. The user will no longer be able to sign in with that identity once it's unlinked.\n */\n async unlinkIdentity(identity) {\n try {\n return await this._useSession(async (result) => {\n var _a, _b;\n const { data, error } = result;\n if (error) {\n throw error;\n }\n return await _request(this.fetch, 'DELETE', `${this.url}/user/identities/${identity.identity_id}`, {\n headers: this.headers,\n jwt: (_b = (_a = data.session) === null || _a === void 0 ? void 0 : _a.access_token) !== null && _b !== void 0 ? _b : undefined,\n });\n });\n }\n catch (error) {\n if (isAuthError(error)) {\n return { data: null, error };\n }\n throw error;\n }\n }\n /**\n * Generates a new JWT.\n * @param refreshToken A valid refresh token that was returned on login.\n */\n async _refreshAccessToken(refreshToken) {\n const debugName = `#_refreshAccessToken(${refreshToken.substring(0, 5)}...)`;\n this._debug(debugName, 'begin');\n try {\n const startedAt = Date.now();\n // will attempt to refresh the token with exponential backoff\n return await retryable(async (attempt) => {\n if (attempt > 0) {\n await sleep(200 * Math.pow(2, attempt - 1)); // 200, 400, 800, ...\n }\n this._debug(debugName, 'refreshing attempt', attempt);\n return await _request(this.fetch, 'POST', `${this.url}/token?grant_type=refresh_token`, {\n body: { refresh_token: refreshToken },\n headers: this.headers,\n xform: _sessionResponse,\n });\n }, (attempt, error) => {\n const nextBackOffInterval = 200 * Math.pow(2, attempt);\n return (error &&\n isAuthRetryableFetchError(error) &&\n // retryable only if the request can be sent before the backoff overflows the tick duration\n Date.now() + nextBackOffInterval - startedAt < AUTO_REFRESH_TICK_DURATION_MS);\n });\n }\n catch (error) {\n this._debug(debugName, 'error', error);\n if (isAuthError(error)) {\n return { data: { session: null, user: null }, error };\n }\n throw error;\n }\n finally {\n this._debug(debugName, 'end');\n }\n }\n _isValidSession(maybeSession) {\n const isValidSession = typeof maybeSession === 'object' &&\n maybeSession !== null &&\n 'access_token' in maybeSession &&\n 'refresh_token' in maybeSession &&\n 'expires_at' in maybeSession;\n return isValidSession;\n }\n async _handleProviderSignIn(provider, options) {\n const url = await this._getUrlForProvider(`${this.url}/authorize`, provider, {\n redirectTo: options.redirectTo,\n scopes: options.scopes,\n queryParams: options.queryParams,\n });\n this._debug('#_handleProviderSignIn()', 'provider', provider, 'options', options, 'url', url);\n // try to open on the browser\n if (isBrowser() && !options.skipBrowserRedirect) {\n window.location.assign(url);\n }\n return { data: { provider, url }, error: null };\n }\n /**\n * Recovers the session from LocalStorage and refreshes the token\n * Note: this method is async to accommodate for AsyncStorage e.g. in React native.\n */\n async _recoverAndRefresh() {\n var _a;\n const debugName = '#_recoverAndRefresh()';\n this._debug(debugName, 'begin');\n try {\n const currentSession = await getItemAsync(this.storage, this.storageKey);\n this._debug(debugName, 'session from storage', currentSession);\n if (!this._isValidSession(currentSession)) {\n this._debug(debugName, 'session is not valid');\n if (currentSession !== null) {\n await this._removeSession();\n }\n return;\n }\n const expiresWithMargin = ((_a = currentSession.expires_at) !== null && _a !== void 0 ? _a : Infinity) * 1000 - Date.now() < EXPIRY_MARGIN_MS;\n this._debug(debugName, `session has${expiresWithMargin ? '' : ' not'} expired with margin of ${EXPIRY_MARGIN_MS}s`);\n if (expiresWithMargin) {\n if (this.autoRefreshToken && currentSession.refresh_token) {\n const { error } = await this._callRefreshToken(currentSession.refresh_token);\n if (error) {\n console.error(error);\n if (!isAuthRetryableFetchError(error)) {\n this._debug(debugName, 'refresh failed with a non-retryable error, removing the session', error);\n await this._removeSession();\n }\n }\n }\n }\n else {\n // no need to persist currentSession again, as we just loaded it from\n // local storage; persisting it again may overwrite a value saved by\n // another client with access to the same local storage\n await this._notifyAllSubscribers('SIGNED_IN', currentSession);\n }\n }\n catch (err) {\n this._debug(debugName, 'error', err);\n console.error(err);\n return;\n }\n finally {\n this._debug(debugName, 'end');\n }\n }\n async _callRefreshToken(refreshToken) {\n var _a, _b;\n if (!refreshToken) {\n throw new AuthSessionMissingError();\n }\n // refreshing is already in progress\n if (this.refreshingDeferred) {\n return this.refreshingDeferred.promise;\n }\n const debugName = `#_callRefreshToken(${refreshToken.substring(0, 5)}...)`;\n this._debug(debugName, 'begin');\n try {\n this.refreshingDeferred = new Deferred();\n const { data, error } = await this._refreshAccessToken(refreshToken);\n if (error)\n throw error;\n if (!data.session)\n throw new AuthSessionMissingError();\n await this._saveSession(data.session);\n await this._notifyAllSubscribers('TOKEN_REFRESHED', data.session);\n const result = { session: data.session, error: null };\n this.refreshingDeferred.resolve(result);\n return result;\n }\n catch (error) {\n this._debug(debugName, 'error', error);\n if (isAuthError(error)) {\n const result = { session: null, error };\n if (!isAuthRetryableFetchError(error)) {\n await this._removeSession();\n }\n (_a = this.refreshingDeferred) === null || _a === void 0 ? void 0 : _a.resolve(result);\n return result;\n }\n (_b = this.refreshingDeferred) === null || _b === void 0 ? void 0 : _b.reject(error);\n throw error;\n }\n finally {\n this.refreshingDeferred = null;\n this._debug(debugName, 'end');\n }\n }\n async _notifyAllSubscribers(event, session, broadcast = true) {\n const debugName = `#_notifyAllSubscribers(${event})`;\n this._debug(debugName, 'begin', session, `broadcast = ${broadcast}`);\n try {\n if (this.broadcastChannel && broadcast) {\n this.broadcastChannel.postMessage({ event, session });\n }\n const errors = [];\n const promises = Array.from(this.stateChangeEmitters.values()).map(async (x) => {\n try {\n await x.callback(event, session);\n }\n catch (e) {\n errors.push(e);\n }\n });\n await Promise.all(promises);\n if (errors.length > 0) {\n for (let i = 0; i < errors.length; i += 1) {\n console.error(errors[i]);\n }\n throw errors[0];\n }\n }\n finally {\n this._debug(debugName, 'end');\n }\n }\n /**\n * set currentSession and currentUser\n * process to _startAutoRefreshToken if possible\n */\n async _saveSession(session) {\n this._debug('#_saveSession()', session);\n // _saveSession is always called whenever a new session has been acquired\n // so we can safely suppress the warning returned by future getSession calls\n this.suppressGetSessionWarning = true;\n await setItemAsync(this.storage, this.storageKey, session);\n }\n async _removeSession() {\n this._debug('#_removeSession()');\n await removeItemAsync(this.storage, this.storageKey);\n await this._notifyAllSubscribers('SIGNED_OUT', null);\n }\n /**\n * Removes any registered visibilitychange callback.\n *\n * {@see #startAutoRefresh}\n * {@see #stopAutoRefresh}\n */\n _removeVisibilityChangedCallback() {\n this._debug('#_removeVisibilityChangedCallback()');\n const callback = this.visibilityChangedCallback;\n this.visibilityChangedCallback = null;\n try {\n if (callback && isBrowser() && (window === null || window === void 0 ? void 0 : window.removeEventListener)) {\n window.removeEventListener('visibilitychange', callback);\n }\n }\n catch (e) {\n console.error('removing visibilitychange callback failed', e);\n }\n }\n /**\n * This is the private implementation of {@link #startAutoRefresh}. Use this\n * within the library.\n */\n async _startAutoRefresh() {\n await this._stopAutoRefresh();\n this._debug('#_startAutoRefresh()');\n const ticker = setInterval(() => this._autoRefreshTokenTick(), AUTO_REFRESH_TICK_DURATION_MS);\n this.autoRefreshTicker = ticker;\n if (ticker && typeof ticker === 'object' && typeof ticker.unref === 'function') {\n // ticker is a NodeJS Timeout object that has an `unref` method\n // https://nodejs.org/api/timers.html#timeoutunref\n // When auto refresh is used in NodeJS (like for testing) the\n // `setInterval` is preventing the process from being marked as\n // finished and tests run endlessly. This can be prevented by calling\n // `unref()` on the returned object.\n ticker.unref();\n // @ts-expect-error TS has no context of Deno\n }\n else if (typeof Deno !== 'undefined' && typeof Deno.unrefTimer === 'function') {\n // similar like for NodeJS, but with the Deno API\n // https://deno.land/api@latest?unstable&s=Deno.unrefTimer\n // @ts-expect-error TS has no context of Deno\n Deno.unrefTimer(ticker);\n }\n // run the tick immediately, but in the next pass of the event loop so that\n // #_initialize can be allowed to complete without recursively waiting on\n // itself\n setTimeout(async () => {\n await this.initializePromise;\n await this._autoRefreshTokenTick();\n }, 0);\n }\n /**\n * This is the private implementation of {@link #stopAutoRefresh}. Use this\n * within the library.\n */\n async _stopAutoRefresh() {\n this._debug('#_stopAutoRefresh()');\n const ticker = this.autoRefreshTicker;\n this.autoRefreshTicker = null;\n if (ticker) {\n clearInterval(ticker);\n }\n }\n /**\n * Starts an auto-refresh process in the background. The session is checked\n * every few seconds. Close to the time of expiration a process is started to\n * refresh the session. If refreshing fails it will be retried for as long as\n * necessary.\n *\n * If you set the {@link GoTrueClientOptions#autoRefreshToken} you don't need\n * to call this function, it will be called for you.\n *\n * On browsers the refresh process works only when the tab/window is in the\n * foreground to conserve resources as well as prevent race conditions and\n * flooding auth with requests. If you call this method any managed\n * visibility change callback will be removed and you must manage visibility\n * changes on your own.\n *\n * On non-browser platforms the refresh process works *continuously* in the\n * background, which may not be desirable. You should hook into your\n * platform's foreground indication mechanism and call these methods\n * appropriately to conserve resources.\n *\n * {@see #stopAutoRefresh}\n */\n async startAutoRefresh() {\n this._removeVisibilityChangedCallback();\n await this._startAutoRefresh();\n }\n /**\n * Stops an active auto refresh process running in the background (if any).\n *\n * If you call this method any managed visibility change callback will be\n * removed and you must manage visibility changes on your own.\n *\n * See {@link #startAutoRefresh} for more details.\n */\n async stopAutoRefresh() {\n this._removeVisibilityChangedCallback();\n await this._stopAutoRefresh();\n }\n /**\n * Runs the auto refresh token tick.\n */\n async _autoRefreshTokenTick() {\n this._debug('#_autoRefreshTokenTick()', 'begin');\n try {\n await this._acquireLock(0, async () => {\n try {\n const now = Date.now();\n try {\n return await this._useSession(async (result) => {\n const { data: { session }, } = result;\n if (!session || !session.refresh_token || !session.expires_at) {\n this._debug('#_autoRefreshTokenTick()', 'no session');\n return;\n }\n // session will expire in this many ticks (or has already expired if <= 0)\n const expiresInTicks = Math.floor((session.expires_at * 1000 - now) / AUTO_REFRESH_TICK_DURATION_MS);\n this._debug('#_autoRefreshTokenTick()', `access token expires in ${expiresInTicks} ticks, a tick lasts ${AUTO_REFRESH_TICK_DURATION_MS}ms, refresh threshold is ${AUTO_REFRESH_TICK_THRESHOLD} ticks`);\n if (expiresInTicks <= AUTO_REFRESH_TICK_THRESHOLD) {\n await this._callRefreshToken(session.refresh_token);\n }\n });\n }\n catch (e) {\n console.error('Auto refresh tick failed with error. This is likely a transient error.', e);\n }\n }\n finally {\n this._debug('#_autoRefreshTokenTick()', 'end');\n }\n });\n }\n catch (e) {\n if (e.isAcquireTimeout || e instanceof LockAcquireTimeoutError) {\n this._debug('auto refresh token tick lock not available');\n }\n else {\n throw e;\n }\n }\n }\n /**\n * Registers callbacks on the browser / platform, which in-turn run\n * algorithms when the browser window/tab are in foreground. On non-browser\n * platforms it assumes always foreground.\n */\n async _handleVisibilityChange() {\n this._debug('#_handleVisibilityChange()');\n if (!isBrowser() || !(window === null || window === void 0 ? void 0 : window.addEventListener)) {\n if (this.autoRefreshToken) {\n // in non-browser environments the refresh token ticker runs always\n this.startAutoRefresh();\n }\n return false;\n }\n try {\n this.visibilityChangedCallback = async () => await this._onVisibilityChanged(false);\n window === null || window === void 0 ? void 0 : window.addEventListener('visibilitychange', this.visibilityChangedCallback);\n // now immediately call the visbility changed callback to setup with the\n // current visbility state\n await this._onVisibilityChanged(true); // initial call\n }\n catch (error) {\n console.error('_handleVisibilityChange', error);\n }\n }\n /**\n * Callback registered with `window.addEventListener('visibilitychange')`.\n */\n async _onVisibilityChanged(calledFromInitialize) {\n const methodName = `#_onVisibilityChanged(${calledFromInitialize})`;\n this._debug(methodName, 'visibilityState', document.visibilityState);\n if (document.visibilityState === 'visible') {\n if (this.autoRefreshToken) {\n // in browser environments the refresh token ticker runs only on focused tabs\n // which prevents race conditions\n this._startAutoRefresh();\n }\n if (!calledFromInitialize) {\n // called when the visibility has changed, i.e. the browser\n // transitioned from hidden -> visible so we need to see if the session\n // should be recovered immediately... but to do that we need to acquire\n // the lock first asynchronously\n await this.initializePromise;\n await this._acquireLock(-1, async () => {\n if (document.visibilityState !== 'visible') {\n this._debug(methodName, 'acquired the lock to recover the session, but the browser visibilityState is no longer visible, aborting');\n // visibility has changed while waiting for the lock, abort\n return;\n }\n // recover the session\n await this._recoverAndRefresh();\n });\n }\n }\n else if (document.visibilityState === 'hidden') {\n if (this.autoRefreshToken) {\n this._stopAutoRefresh();\n }\n }\n }\n /**\n * Generates the relevant login URL for a third-party provider.\n * @param options.redirectTo A URL or mobile address to send the user to after they are confirmed.\n * @param options.scopes A space-separated list of scopes granted to the OAuth application.\n * @param options.queryParams An object of key-value pairs containing query parameters granted to the OAuth application.\n */\n async _getUrlForProvider(url, provider, options) {\n const urlParams = [`provider=${encodeURIComponent(provider)}`];\n if (options === null || options === void 0 ? void 0 : options.redirectTo) {\n urlParams.push(`redirect_to=${encodeURIComponent(options.redirectTo)}`);\n }\n if (options === null || options === void 0 ? void 0 : options.scopes) {\n urlParams.push(`scopes=${encodeURIComponent(options.scopes)}`);\n }\n if (this.flowType === 'pkce') {\n const [codeChallenge, codeChallengeMethod] = await getCodeChallengeAndMethod(this.storage, this.storageKey);\n const flowParams = new URLSearchParams({\n code_challenge: `${encodeURIComponent(codeChallenge)}`,\n code_challenge_method: `${encodeURIComponent(codeChallengeMethod)}`,\n });\n urlParams.push(flowParams.toString());\n }\n if (options === null || options === void 0 ? void 0 : options.queryParams) {\n const query = new URLSearchParams(options.queryParams);\n urlParams.push(query.toString());\n }\n if (options === null || options === void 0 ? void 0 : options.skipBrowserRedirect) {\n urlParams.push(`skip_http_redirect=${options.skipBrowserRedirect}`);\n }\n return `${url}?${urlParams.join('&')}`;\n }\n async _unenroll(params) {\n try {\n return await this._useSession(async (result) => {\n var _a;\n const { data: sessionData, error: sessionError } = result;\n if (sessionError) {\n return { data: null, error: sessionError };\n }\n return await _request(this.fetch, 'DELETE', `${this.url}/factors/${params.factorId}`, {\n headers: this.headers,\n jwt: (_a = sessionData === null || sessionData === void 0 ? void 0 : sessionData.session) === null || _a === void 0 ? void 0 : _a.access_token,\n });\n });\n }\n catch (error) {\n if (isAuthError(error)) {\n return { data: null, error };\n }\n throw error;\n }\n }\n async _enroll(params) {\n try {\n return await this._useSession(async (result) => {\n var _a, _b;\n const { data: sessionData, error: sessionError } = result;\n if (sessionError) {\n return { data: null, error: sessionError };\n }\n const body = Object.assign({ friendly_name: params.friendlyName, factor_type: params.factorType }, (params.factorType === 'phone' ? { phone: params.phone } : { issuer: params.issuer }));\n const { data, error } = await _request(this.fetch, 'POST', `${this.url}/factors`, {\n body,\n headers: this.headers,\n jwt: (_a = sessionData === null || sessionData === void 0 ? void 0 : sessionData.session) === null || _a === void 0 ? void 0 : _a.access_token,\n });\n if (error) {\n return { data: null, error };\n }\n if (params.factorType === 'totp' && ((_b = data === null || data === void 0 ? void 0 : data.totp) === null || _b === void 0 ? void 0 : _b.qr_code)) {\n data.totp.qr_code = `data:image/svg+xml;utf-8,${data.totp.qr_code}`;\n }\n return { data, error: null };\n });\n }\n catch (error) {\n if (isAuthError(error)) {\n return { data: null, error };\n }\n throw error;\n }\n }\n /**\n * {@see GoTrueMFAApi#verify}\n */\n async _verify(params) {\n return this._acquireLock(-1, async () => {\n try {\n return await this._useSession(async (result) => {\n var _a;\n const { data: sessionData, error: sessionError } = result;\n if (sessionError) {\n return { data: null, error: sessionError };\n }\n const { data, error } = await _request(this.fetch, 'POST', `${this.url}/factors/${params.factorId}/verify`, {\n body: { code: params.code, challenge_id: params.challengeId },\n headers: this.headers,\n jwt: (_a = sessionData === null || sessionData === void 0 ? void 0 : sessionData.session) === null || _a === void 0 ? void 0 : _a.access_token,\n });\n if (error) {\n return { data: null, error };\n }\n await this._saveSession(Object.assign({ expires_at: Math.round(Date.now() / 1000) + data.expires_in }, data));\n await this._notifyAllSubscribers('MFA_CHALLENGE_VERIFIED', data);\n return { data, error };\n });\n }\n catch (error) {\n if (isAuthError(error)) {\n return { data: null, error };\n }\n throw error;\n }\n });\n }\n /**\n * {@see GoTrueMFAApi#challenge}\n */\n async _challenge(params) {\n return this._acquireLock(-1, async () => {\n try {\n return await this._useSession(async (result) => {\n var _a;\n const { data: sessionData, error: sessionError } = result;\n if (sessionError) {\n return { data: null, error: sessionError };\n }\n return await _request(this.fetch, 'POST', `${this.url}/factors/${params.factorId}/challenge`, {\n body: { channel: params.channel },\n headers: this.headers,\n jwt: (_a = sessionData === null || sessionData === void 0 ? void 0 : sessionData.session) === null || _a === void 0 ? void 0 : _a.access_token,\n });\n });\n }\n catch (error) {\n if (isAuthError(error)) {\n return { data: null, error };\n }\n throw error;\n }\n });\n }\n /**\n * {@see GoTrueMFAApi#challengeAndVerify}\n */\n async _challengeAndVerify(params) {\n // both _challenge and _verify independently acquire the lock, so no need\n // to acquire it here\n const { data: challengeData, error: challengeError } = await this._challenge({\n factorId: params.factorId,\n });\n if (challengeError) {\n return { data: null, error: challengeError };\n }\n return await this._verify({\n factorId: params.factorId,\n challengeId: challengeData.id,\n code: params.code,\n });\n }\n /**\n * {@see GoTrueMFAApi#listFactors}\n */\n async _listFactors() {\n // use #getUser instead of #_getUser as the former acquires a lock\n const { data: { user }, error: userError, } = await this.getUser();\n if (userError) {\n return { data: null, error: userError };\n }\n const factors = (user === null || user === void 0 ? void 0 : user.factors) || [];\n const totp = factors.filter((factor) => factor.factor_type === 'totp' && factor.status === 'verified');\n const phone = factors.filter((factor) => factor.factor_type === 'phone' && factor.status === 'verified');\n return {\n data: {\n all: factors,\n totp,\n phone,\n },\n error: null,\n };\n }\n /**\n * {@see GoTrueMFAApi#getAuthenticatorAssuranceLevel}\n */\n async _getAuthenticatorAssuranceLevel() {\n return this._acquireLock(-1, async () => {\n return await this._useSession(async (result) => {\n var _a, _b;\n const { data: { session }, error: sessionError, } = result;\n if (sessionError) {\n return { data: null, error: sessionError };\n }\n if (!session) {\n return {\n data: { currentLevel: null, nextLevel: null, currentAuthenticationMethods: [] },\n error: null,\n };\n }\n const payload = this._decodeJWT(session.access_token);\n let currentLevel = null;\n if (payload.aal) {\n currentLevel = payload.aal;\n }\n let nextLevel = currentLevel;\n const verifiedFactors = (_b = (_a = session.user.factors) === null || _a === void 0 ? void 0 : _a.filter((factor) => factor.status === 'verified')) !== null && _b !== void 0 ? _b : [];\n if (verifiedFactors.length > 0) {\n nextLevel = 'aal2';\n }\n const currentAuthenticationMethods = payload.amr || [];\n return { data: { currentLevel, nextLevel, currentAuthenticationMethods }, error: null };\n });\n });\n }\n}\nGoTrueClient.nextInstanceID = 0;\n//# sourceMappingURL=GoTrueClient.js.map","import GoTrueClient from './GoTrueClient';\nconst AuthClient = GoTrueClient;\nexport default AuthClient;\n//# sourceMappingURL=AuthClient.js.map","import { AuthClient } from '@supabase/auth-js';\nexport class SupabaseAuthClient extends AuthClient {\n constructor(options) {\n super(options);\n }\n}\n//# sourceMappingURL=SupabaseAuthClient.js.map","var __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};\nimport { FunctionsClient } from '@supabase/functions-js';\nimport { PostgrestClient, } from '@supabase/postgrest-js';\nimport { RealtimeClient, } from '@supabase/realtime-js';\nimport { StorageClient as SupabaseStorageClient } from '@supabase/storage-js';\nimport { DEFAULT_GLOBAL_OPTIONS, DEFAULT_DB_OPTIONS, DEFAULT_AUTH_OPTIONS, DEFAULT_REALTIME_OPTIONS, } from './lib/constants';\nimport { fetchWithAuth } from './lib/fetch';\nimport { stripTrailingSlash, applySettingDefaults } from './lib/helpers';\nimport { SupabaseAuthClient } from './lib/SupabaseAuthClient';\n/**\n * Supabase Client.\n *\n * An isomorphic Javascript client for interacting with Postgres.\n */\nexport default class SupabaseClient {\n /**\n * Create a new client for use in the browser.\n * @param supabaseUrl The unique Supabase URL which is supplied when you create a new project in your project dashboard.\n * @param supabaseKey The unique Supabase Key which is supplied when you create a new project in your project dashboard.\n * @param options.db.schema You can switch in between schemas. The schema needs to be on the list of exposed schemas inside Supabase.\n * @param options.auth.autoRefreshToken Set to \"true\" if you want to automatically refresh the token before expiring.\n * @param options.auth.persistSession Set to \"true\" if you want to automatically save the user session into local storage.\n * @param options.auth.detectSessionInUrl Set to \"true\" if you want to automatically detects OAuth grants in the URL and signs in the user.\n * @param options.realtime Options passed along to realtime-js constructor.\n * @param options.global.fetch A custom fetch implementation.\n * @param options.global.headers Any additional headers to send with each network request.\n */\n constructor(supabaseUrl, supabaseKey, options) {\n var _a, _b, _c;\n this.supabaseUrl = supabaseUrl;\n this.supabaseKey = supabaseKey;\n if (!supabaseUrl)\n throw new Error('supabaseUrl is required.');\n if (!supabaseKey)\n throw new Error('supabaseKey is required.');\n const _supabaseUrl = stripTrailingSlash(supabaseUrl);\n this.realtimeUrl = `${_supabaseUrl}/realtime/v1`.replace(/^http/i, 'ws');\n this.authUrl = `${_supabaseUrl}/auth/v1`;\n this.storageUrl = `${_supabaseUrl}/storage/v1`;\n this.functionsUrl = `${_supabaseUrl}/functions/v1`;\n // default storage key uses the supabase project ref as a namespace\n const defaultStorageKey = `sb-${new URL(this.authUrl).hostname.split('.')[0]}-auth-token`;\n const DEFAULTS = {\n db: DEFAULT_DB_OPTIONS,\n realtime: DEFAULT_REALTIME_OPTIONS,\n auth: Object.assign(Object.assign({}, DEFAULT_AUTH_OPTIONS), { storageKey: defaultStorageKey }),\n global: DEFAULT_GLOBAL_OPTIONS,\n };\n const settings = applySettingDefaults(options !== null && options !== void 0 ? options : {}, DEFAULTS);\n this.storageKey = (_a = settings.auth.storageKey) !== null && _a !== void 0 ? _a : '';\n this.headers = (_b = settings.global.headers) !== null && _b !== void 0 ? _b : {};\n if (!settings.accessToken) {\n this.auth = this._initSupabaseAuthClient((_c = settings.auth) !== null && _c !== void 0 ? _c : {}, this.headers, settings.global.fetch);\n }\n else {\n this.accessToken = settings.accessToken;\n this.auth = new Proxy({}, {\n get: (_, prop) => {\n throw new Error(`@supabase/supabase-js: Supabase Client is configured with the accessToken option, accessing supabase.auth.${String(prop)} is not possible`);\n },\n });\n }\n this.fetch = fetchWithAuth(supabaseKey, this._getAccessToken.bind(this), settings.global.fetch);\n this.realtime = this._initRealtimeClient(Object.assign({ headers: this.headers, accessToken: this._getAccessToken.bind(this) }, settings.realtime));\n this.rest = new PostgrestClient(`${_supabaseUrl}/rest/v1`, {\n headers: this.headers,\n schema: settings.db.schema,\n fetch: this.fetch,\n });\n if (!settings.accessToken) {\n this._listenForAuthEvents();\n }\n }\n /**\n * Supabase Functions allows you to deploy and invoke edge functions.\n */\n get functions() {\n return new FunctionsClient(this.functionsUrl, {\n headers: this.headers,\n customFetch: this.fetch,\n });\n }\n /**\n * Supabase Storage allows you to manage user-generated content, such as photos or videos.\n */\n get storage() {\n return new SupabaseStorageClient(this.storageUrl, this.headers, this.fetch);\n }\n /**\n * Perform a query on a table or a view.\n *\n * @param relation - The table or view name to query\n */\n from(relation) {\n return this.rest.from(relation);\n }\n // NOTE: signatures must be kept in sync with PostgrestClient.schema\n /**\n * Select a schema to query or perform an function (rpc) call.\n *\n * The schema needs to be on the list of exposed schemas inside Supabase.\n *\n * @param schema - The schema to query\n */\n schema(schema) {\n return this.rest.schema(schema);\n }\n // NOTE: signatures must be kept in sync with PostgrestClient.rpc\n /**\n * Perform a function call.\n *\n * @param fn - The function name to call\n * @param args - The arguments to pass to the function call\n * @param options - Named parameters\n * @param options.head - When set to `true`, `data` will not be returned.\n * Useful if you only need the count.\n * @param options.get - When set to `true`, the function will be called with\n * read-only access mode.\n * @param options.count - Count algorithm to use to count rows returned by the\n * function. Only applicable for [set-returning\n * functions](https://www.postgresql.org/docs/current/functions-srf.html).\n *\n * `\"exact\"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the\n * hood.\n *\n * `\"planned\"`: Approximated but fast count algorithm. Uses the Postgres\n * statistics under the hood.\n *\n * `\"estimated\"`: Uses exact count for low numbers and planned count for high\n * numbers.\n */\n rpc(fn, args = {}, options = {}) {\n return this.rest.rpc(fn, args, options);\n }\n /**\n * Creates a Realtime channel with Broadcast, Presence, and Postgres Changes.\n *\n * @param {string} name - The name of the Realtime channel.\n * @param {Object} opts - The options to pass to the Realtime channel.\n *\n */\n channel(name, opts = { config: {} }) {\n return this.realtime.channel(name, opts);\n }\n /**\n * Returns all Realtime channels.\n */\n getChannels() {\n return this.realtime.getChannels();\n }\n /**\n * Unsubscribes and removes Realtime channel from Realtime client.\n *\n * @param {RealtimeChannel} channel - The name of the Realtime channel.\n *\n */\n removeChannel(channel) {\n return this.realtime.removeChannel(channel);\n }\n /**\n * Unsubscribes and removes all Realtime channels from Realtime client.\n */\n removeAllChannels() {\n return this.realtime.removeAllChannels();\n }\n _getAccessToken() {\n var _a, _b;\n return __awaiter(this, void 0, void 0, function* () {\n if (this.accessToken) {\n return yield this.accessToken();\n }\n const { data } = yield this.auth.getSession();\n return (_b = (_a = data.session) === null || _a === void 0 ? void 0 : _a.access_token) !== null && _b !== void 0 ? _b : null;\n });\n }\n _initSupabaseAuthClient({ autoRefreshToken, persistSession, detectSessionInUrl, storage, storageKey, flowType, lock, debug, }, headers, fetch) {\n const authHeaders = {\n Authorization: `Bearer ${this.supabaseKey}`,\n apikey: `${this.supabaseKey}`,\n };\n return new SupabaseAuthClient({\n url: this.authUrl,\n headers: Object.assign(Object.assign({}, authHeaders), headers),\n storageKey: storageKey,\n autoRefreshToken,\n persistSession,\n detectSessionInUrl,\n storage,\n flowType,\n lock,\n debug,\n fetch,\n // auth checks if there is a custom authorizaiton header using this flag\n // so it knows whether to return an error when getUser is called with no session\n hasCustomAuthorizationHeader: 'Authorization' in this.headers,\n });\n }\n _initRealtimeClient(options) {\n return new RealtimeClient(this.realtimeUrl, Object.assign(Object.assign({}, options), { params: Object.assign({ apikey: this.supabaseKey }, options === null || options === void 0 ? void 0 : options.params) }));\n }\n _listenForAuthEvents() {\n let data = this.auth.onAuthStateChange((event, session) => {\n this._handleTokenChanged(event, 'CLIENT', session === null || session === void 0 ? void 0 : session.access_token);\n });\n return data;\n }\n _handleTokenChanged(event, source, token) {\n if ((event === 'TOKEN_REFRESHED' || event === 'SIGNED_IN') &&\n this.changedAccessToken !== token) {\n this.changedAccessToken = token;\n }\n else if (event === 'SIGNED_OUT') {\n this.realtime.setAuth();\n if (source == 'STORAGE')\n this.auth.signOut();\n this.changedAccessToken = undefined;\n }\n }\n}\n//# sourceMappingURL=SupabaseClient.js.map","import SupabaseClient from './SupabaseClient';\nexport * from '@supabase/auth-js';\nexport { PostgrestError, } from '@supabase/postgrest-js';\nexport { FunctionsHttpError, FunctionsFetchError, FunctionsRelayError, FunctionsError, FunctionRegion, } from '@supabase/functions-js';\nexport * from '@supabase/realtime-js';\nexport { default as SupabaseClient } from './SupabaseClient';\n/**\n * Creates a new Supabase Client.\n */\nexport const createClient = (supabaseUrl, supabaseKey, options) => {\n return new SupabaseClient(supabaseUrl, supabaseKey, options);\n};\n//# sourceMappingURL=index.js.map","import { createClient } from '@supabase/supabase-js';\n\n// Obter as variáveis de ambiente para Supabase\nconst supabaseUrl = import.meta.env.VITE_SUPABASE_URL || '';\nconst supabaseAnonKey = import.meta.env.VITE_SUPABASE_ANON_KEY || '';\n\n// Criar uma única instância do cliente Supabase sem PKCE e sem autoRefreshToken\nconst supabaseInstance = createClient(supabaseUrl, supabaseAnonKey, {\n auth: {\n autoRefreshToken: false, // Desativa completamente o refresh automático\n persistSession: true,\n detectSessionInUrl: false,\n flowType: 'implicit', // Usa o fluxo implícito em vez de PKCE\n storageKey: 'mindful-moments-auth',\n },\n global: {\n headers: {\n 'X-Client-Info': 'mindful-moments-app'\n }\n },\n});\n\n// Adicionar retry com backoff exponencial para requisições que falharem\n// @ts-expect-error - httpOptions não está na tipagem atual mas é suportado\nsupabaseInstance.httpOptions = {\n fetch: async (url: string, options: RequestInit) => {\n let attempts = 0;\n const maxAttempts = 3;\n \n // Função para implementar backoff exponencial\n const getBackoffDelay = (attempt: number): number => {\n return Math.min(1000 * Math.pow(2, attempt), 30000); // No máximo 30 segundos\n };\n \n while (attempts < maxAttempts) {\n try {\n const response = await fetch(url, options);\n \n // Se for um erro de rate limiting (429), esperar antes de tentar novamente\n if (response.status === 429) {\n const backoffDelay = getBackoffDelay(attempts);\n console.log(`[${new Date().toISOString()}] Rate limit atingido (429). Aguardando ${backoffDelay}ms antes de tentar novamente.`);\n await new Promise(resolve => setTimeout(resolve, backoffDelay));\n attempts++;\n continue;\n }\n \n return response;\n } catch (error) {\n attempts++;\n if (attempts >= maxAttempts) throw error;\n \n const backoffDelay = getBackoffDelay(attempts);\n console.log(`[${new Date().toISOString()}] Erro na requisição. Tentativa ${attempts}/${maxAttempts}. Aguardando ${backoffDelay}ms.`);\n await new Promise(resolve => setTimeout(resolve, backoffDelay));\n }\n }\n \n // Se chegou aqui, todas as tentativas falharam\n throw new Error(`Falha após ${maxAttempts} tentativas`);\n }\n};\n\n// Monitorar eventos de autenticação para fins de logging\nsupabaseInstance.auth.onAuthStateChange((event) => {\n if (event === 'SIGNED_IN') {\n console.log(`[${new Date().toISOString()}] Usuário conectado com sucesso`);\n } else if (event === 'SIGNED_OUT') {\n console.log(`[${new Date().toISOString()}] Usuário desconectado`);\n }\n});\n\n// Função simples para obter o cliente Supabase\nexport function getSupabase() {\n return supabaseInstance;\n}\n\n// Também exportar diretamente a instância para manter compatibilidade com importações existentes\nexport const supabase = supabaseInstance;\n","import { MoodEntry } from '../../types';\n\nexport class MoodService {\n private readonly apiUrl: string;\n private userId?: string;\n\n constructor( ) {\n this.apiUrl = import.meta.env.VITE_API_URL || 'http://localhost:3000/api';\n }\n\n // Método para atualizar o userId\n public setUserId(userId: string): void {\n this.userId = userId;\n }\n\n // Método para obter o userId atual ou usar fallback\n private getUserId(): string {\n // Se não temos userId, tentamos obter do localStorage\n if (!this.userId) {\n const storedUserId = localStorage.getItem('userId');\n if (storedUserId) {\n this.userId = storedUserId;\n }\n }\n \n // Se ainda não temos userId, usamos o repositório local\n return this.userId || '';\n }\n\n // Método para obter o token de autenticação\n private getAuthToken(): string | null {\n return localStorage.getItem('authToken');\n }\n\n async getAllEntries(): Promise {\n const authToken = this.getAuthToken();\n \n if (!authToken) {\n console.error('Erro ao buscar entradas de humor: token não disponível');\n throw new Error('Erro ao buscar entradas de humor: token não disponível');\n }\n \n try {\n const response = await fetch(`${this.apiUrl}/mood-entries`, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${authToken}`\n }\n });\n\n if (!response.ok) {\n throw new Error(`Erro ao buscar entradas de humor: ${response.statusText}`);\n }\n\n const data = await response.json();\n return data as MoodEntry[];\n } catch (error) {\n console.error('Erro ao buscar entradas de humor:', error);\n return [];\n }\n }\n\n async addEntry(entry: MoodEntry): Promise {\n const authToken = this.getAuthToken();\n \n if (!authToken) {\n console.error('Erro ao buscar entradas de humor: token não disponível');\n throw new Error('Erro ao buscar entradas de humor: token não disponível');\n }\n \n try {\n // Preparar o body da requisição\n const requestBody = {\n score: entry.score,\n note: entry.note || ''\n };\n \n // Fazer a chamada à API\n const response = await fetch(`${this.apiUrl}/mood-entries`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${authToken}`\n },\n body: JSON.stringify(requestBody)\n });\n \n if (!response.ok) {\n throw new Error(`Erro ao adicionar entrada de humor: ${response.statusText}`);\n }\n \n // Se a chamada à API for bem-sucedida, não precisamos fazer nada mais\n console.log('Entrada de humor adicionada com sucesso via API');\n } catch (error) {\n console.error('Erro ao adicionar entrada de humor via API:', error);\n }\n }\n\n async addEntryForDate(score: number, note: string, date: Date): Promise {\n const authToken = this.getAuthToken();\n \n if (!authToken) {\n console.error('Erro ao buscar entradas de humor: token não disponível');\n throw new Error('Erro ao buscar entradas de humor: token não disponível');\n }\n \n try {\n // Criar uma cópia da data para não modificar o objeto original\n const adjustedDate = new Date(date);\n \n // Preparar o body da requisição\n const requestBody = {\n score,\n note: note || '',\n timestamp: adjustedDate.getTime()\n };\n \n // Fazer a chamada à API\n const response = await fetch(`${this.apiUrl}/mood-entries`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${authToken}`\n },\n body: JSON.stringify(requestBody)\n });\n \n if (!response.ok) {\n throw new Error(`Erro ao adicionar entrada de humor para data específica: ${response.statusText}`);\n }\n \n console.log('Entrada de humor para data específica adicionada com sucesso via API');\n } catch (error) {\n console.error('Erro ao adicionar entrada para data específica:', error);\n throw error;\n }\n }\n\n async getEntriesForLastDays(days: number): Promise {\n const authToken = this.getAuthToken();\n \n if (!authToken) {\n console.error('Erro ao buscar entradas de humor: token não disponível');\n throw new Error('Erro ao buscar entradas de humor: token não disponível');\n }\n \n try {\n // Calcular a data de início (hoje - dias)\n const endDate = new Date();\n const startDate = new Date();\n startDate.setDate(startDate.getDate() - days);\n \n // Formatar as datas no formato YYYY-MM-DD\n const formatDate = (date: Date): string => {\n const year = date.getFullYear();\n const month = String(date.getMonth() + 1).padStart(2, '0');\n const day = String(date.getDate()).padStart(2, '0');\n return `${year}-${month}-${day}`;\n };\n \n const startDateStr = formatDate(startDate);\n const endDateStr = formatDate(endDate);\n \n // Construir a URL com os parâmetros de consulta\n const url = new URL(`${this.apiUrl}/mood-entries/date-range`);\n url.searchParams.append('startDate', startDateStr);\n url.searchParams.append('endDate', endDateStr);\n \n // Fazer a chamada à API\n const response = await fetch(url.toString(), {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${authToken}`\n }\n });\n \n if (!response.ok) {\n throw new Error(`Erro ao buscar entradas de humor por período: ${response.statusText}`);\n }\n \n const data = await response.json();\n return data as MoodEntry[];\n } catch (error) {\n console.error('Erro ao buscar entradas de humor por período:', error);\n return [];\n }\n }\n\n async getAverageMoodForDay(date: Date): Promise {\n const authToken = this.getAuthToken();\n \n if (!authToken) {\n console.error('Erro ao buscar entradas de humor: token não disponível');\n throw new Error('Erro ao buscar entradas de humor: token não disponível');\n }\n \n try {\n // Formatar a data no formato YYYY-MM-DD\n const formatDate = (date: Date): string => {\n const year = date.getFullYear();\n const month = String(date.getMonth() + 1).padStart(2, '0');\n const day = String(date.getDate()).padStart(2, '0');\n return `${year}-${month}-${day}`;\n };\n \n const dateStr = formatDate(date);\n \n // Construir a URL com os parâmetros de consulta\n const url = new URL(`${this.apiUrl}/mood-patterns/daily-average`);\n url.searchParams.append('date', dateStr);\n \n // Fazer a chamada à API\n const response = await fetch(url.toString(), {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${authToken}`\n }\n });\n \n if (!response.ok) {\n throw new Error(`Erro ao buscar média de humor diária: ${response.statusText}`);\n }\n \n const data = await response.json();\n return data.average;\n } catch (error) {\n console.error('Erro ao buscar média de humor diária:', error);\n return 0;\n }\n }\n\n async updateEntry(entry: MoodEntry): Promise {\n const authToken = this.getAuthToken();\n \n if (!authToken) {\n console.error('Erro ao buscar entradas de humor: token não disponível');\n throw new Error('Erro ao buscar entradas de humor: token não disponível');\n }\n \n try {\n // Verificar se a entrada tem todos os campos necessários\n if (!entry.id || entry.score === undefined || entry.note === undefined) {\n console.error('Entrada incompleta:', entry);\n throw new Error('Entrada incompleta para atualização');\n }\n \n // Preparar o body da requisição\n const requestBody = {\n score: entry.score,\n note: entry.note || '',\n timestamp: entry.timestamp\n };\n \n // Fazer a chamada à API\n const response = await fetch(`${this.apiUrl}/mood-entries/${entry.id}`, {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${authToken}`\n },\n body: JSON.stringify(requestBody)\n });\n \n if (!response.ok) {\n throw new Error(`Erro ao atualizar entrada de humor: ${response.statusText}`);\n }\n \n console.log('Entrada de humor atualizada com sucesso via API');\n } catch (error) {\n console.error('Erro ao atualizar entrada de humor:', error);\n throw error;\n }\n }\n\n async deleteEntry(entryId: string): Promise {\n const authToken = this.getAuthToken();\n \n if (!authToken) {\n console.error('Erro ao buscar entradas de humor: token não disponível');\n throw new Error('Erro ao buscar entradas de humor: token não disponível');\n }\n \n try {\n // Verificar se o ID da entrada é válido\n if (!entryId) {\n throw new Error('ID da entrada não fornecido para exclusão');\n }\n \n // Fazer a chamada à API\n const response = await fetch(`${this.apiUrl}/mood-entries/${entryId}`, {\n method: 'DELETE',\n headers: {\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${authToken}`\n }\n });\n \n if (!response.ok) {\n throw new Error(`Erro ao excluir entrada de humor: ${response.statusText}`);\n }\n \n console.log('Entrada de humor excluída com sucesso via API');\n } catch (error) {\n console.error('Erro ao excluir entrada de humor:', error);\n throw error;\n }\n }\n\n async hasConcerningPattern(): Promise {\n const authToken = this.getAuthToken();\n \n if (!authToken) {\n console.error('Erro ao buscar entradas de humor: token não disponível');\n throw new Error('Erro ao buscar entradas de humor: token não disponível');\n }\n \n try {\n // Definir o número de dias para análise (padrão: 7)\n const days = 7;\n \n // Construir a URL com os parâmetros de consulta\n const url = new URL(`${this.apiUrl}/mood-patterns/concerning`);\n url.searchParams.append('days', days.toString());\n \n // Fazer a chamada à API\n const response = await fetch(url.toString(), {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${authToken}`\n }\n });\n \n if (!response.ok) {\n throw new Error(`Erro ao verificar padrões preocupantes: ${response.statusText}`);\n }\n \n const data = await response.json();\n return data.hasConcerningPattern;\n } catch (error) {\n console.error('Erro ao verificar padrões preocupantes:', error);\n throw error;\n }\n }\n} ","import { HealthRecord } from '../../types';\n\nexport class HealthRecordService {\n private readonly apiUrl: string;\n\n constructor() {\n this.apiUrl = import.meta.env.VITE_API_URL || 'http://localhost:3000/api';\n }\n\n // Método para obter o token de autenticação\n private getAuthToken(): string | null {\n return localStorage.getItem('authToken');\n }\n\n async createRecord(): Promise {\n try {\n const authToken = this.getAuthToken();\n \n if (!authToken) {\n console.error('Erro ao criar prontuário: token não disponível');\n throw new Error('Erro ao criar prontuário: token não disponível');\n }\n \n console.log('Iniciando criação de prontuário via API...');\n \n const response = await fetch(`${this.apiUrl}/health-records`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${authToken}`\n }\n });\n \n if (!response.ok) {\n throw new Error(`Erro ao criar prontuário: ${response.statusText}`);\n }\n \n const record = await response.json();\n console.log('Prontuário criado com sucesso:', record);\n \n return record;\n } catch (error) {\n console.error('Erro ao criar prontuário:', error);\n throw error;\n }\n }\n\n async getRecords(limit = 2): Promise {\n try {\n const authToken = this.getAuthToken();\n \n if (!authToken) {\n console.error('Erro ao buscar prontuários: token não disponível');\n throw new Error('Erro ao buscar prontuários: token não disponível');\n }\n \n console.log('Buscando prontuários via API...');\n \n // Construir a URL com os parâmetros de consulta\n const url = new URL(`${this.apiUrl}/health-records`);\n url.searchParams.append('limit', limit.toString());\n \n const response = await fetch(url.toString(), {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${authToken}`\n }\n });\n \n if (!response.ok) {\n throw new Error(`Erro ao buscar prontuários: ${response.statusText}`);\n }\n \n const records = await response.json();\n console.log('Prontuários obtidos com sucesso:', records);\n \n return records;\n } catch (error) {\n console.error('Erro ao buscar prontuários:', error);\n throw error;\n }\n }\n\n async canGenerateRecord(): Promise {\n try {\n const authToken = this.getAuthToken();\n \n if (!authToken) {\n console.error('Erro ao verificar elegibilidade para prontuário: token não disponível');\n throw new Error('Erro ao verificar elegibilidade para prontuário: token não disponível');\n }\n \n console.log('Verificando elegibilidade para prontuário via API...');\n \n const response = await fetch(`${this.apiUrl}/health-records/can-generate`, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${authToken}`\n }\n });\n \n if (!response.ok) {\n throw new Error(`Erro ao verificar elegibilidade para prontuário: ${response.statusText}`);\n }\n \n const data = await response.json();\n console.log('Verificação de elegibilidade concluída:', data);\n \n return data.canGenerate;\n } catch (error) {\n console.error('Erro ao verificar elegibilidade para prontuário:', error);\n throw error;\n }\n }\n\n async resetRecord(recordId: string): Promise {\n try {\n const authToken = this.getAuthToken();\n \n if (!authToken) {\n console.error('Erro ao atualizar prontuário: token não disponível');\n throw new Error('Erro ao atualizar prontuário: token não disponível');\n }\n \n if (!recordId) {\n console.error('Erro ao atualizar prontuário: ID não fornecido');\n throw new Error('Erro ao atualizar prontuário: ID não fornecido');\n }\n \n console.log('Iniciando atualização de prontuário via API:', recordId);\n \n const response = await fetch(`${this.apiUrl}/health-records/${recordId}`, {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${authToken}`\n }\n });\n \n if (!response.ok) {\n throw new Error(`Erro ao atualizar prontuário: ${response.statusText}`);\n }\n \n const updatedRecord = await response.json();\n console.log('Prontuário atualizado com sucesso:', updatedRecord);\n \n return updatedRecord;\n } catch (error) {\n console.error('Erro ao atualizar prontuário:', error);\n throw error;\n }\n }\n} ","/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @fileoverview Firebase constants. Some of these (@defines) can be overridden at compile-time.\r\n */\r\nconst CONSTANTS = {\r\n /**\r\n * @define {boolean} Whether this is the client Node.js SDK.\r\n */\r\n NODE_CLIENT: false,\r\n /**\r\n * @define {boolean} Whether this is the Admin Node.js SDK.\r\n */\r\n NODE_ADMIN: false,\r\n /**\r\n * Firebase SDK Version\r\n */\r\n SDK_VERSION: '${JSCORE_VERSION}'\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Throws an error if the provided assertion is falsy\r\n */\r\nconst assert = function (assertion, message) {\r\n if (!assertion) {\r\n throw assertionError(message);\r\n }\r\n};\r\n/**\r\n * Returns an Error object suitable for throwing.\r\n */\r\nconst assertionError = function (message) {\r\n return new Error('Firebase Database (' +\r\n CONSTANTS.SDK_VERSION +\r\n ') INTERNAL ASSERT FAILED: ' +\r\n message);\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst stringToByteArray$1 = function (str) {\r\n // TODO(user): Use native implementations if/when available\r\n const out = [];\r\n let p = 0;\r\n for (let i = 0; i < str.length; i++) {\r\n let c = str.charCodeAt(i);\r\n if (c < 128) {\r\n out[p++] = c;\r\n }\r\n else if (c < 2048) {\r\n out[p++] = (c >> 6) | 192;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else if ((c & 0xfc00) === 0xd800 &&\r\n i + 1 < str.length &&\r\n (str.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {\r\n // Surrogate Pair\r\n c = 0x10000 + ((c & 0x03ff) << 10) + (str.charCodeAt(++i) & 0x03ff);\r\n out[p++] = (c >> 18) | 240;\r\n out[p++] = ((c >> 12) & 63) | 128;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else {\r\n out[p++] = (c >> 12) | 224;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n }\r\n return out;\r\n};\r\n/**\r\n * Turns an array of numbers into the string given by the concatenation of the\r\n * characters to which the numbers correspond.\r\n * @param bytes Array of numbers representing characters.\r\n * @return Stringification of the array.\r\n */\r\nconst byteArrayToString = function (bytes) {\r\n // TODO(user): Use native implementations if/when available\r\n const out = [];\r\n let pos = 0, c = 0;\r\n while (pos < bytes.length) {\r\n const c1 = bytes[pos++];\r\n if (c1 < 128) {\r\n out[c++] = String.fromCharCode(c1);\r\n }\r\n else if (c1 > 191 && c1 < 224) {\r\n const c2 = bytes[pos++];\r\n out[c++] = String.fromCharCode(((c1 & 31) << 6) | (c2 & 63));\r\n }\r\n else if (c1 > 239 && c1 < 365) {\r\n // Surrogate Pair\r\n const c2 = bytes[pos++];\r\n const c3 = bytes[pos++];\r\n const c4 = bytes[pos++];\r\n const u = (((c1 & 7) << 18) | ((c2 & 63) << 12) | ((c3 & 63) << 6) | (c4 & 63)) -\r\n 0x10000;\r\n out[c++] = String.fromCharCode(0xd800 + (u >> 10));\r\n out[c++] = String.fromCharCode(0xdc00 + (u & 1023));\r\n }\r\n else {\r\n const c2 = bytes[pos++];\r\n const c3 = bytes[pos++];\r\n out[c++] = String.fromCharCode(((c1 & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));\r\n }\r\n }\r\n return out.join('');\r\n};\r\n// We define it as an object literal instead of a class because a class compiled down to es5 can't\r\n// be treeshaked. https://github.com/rollup/rollup/issues/1691\r\n// Static lookup maps, lazily populated by init_()\r\nconst base64 = {\r\n /**\r\n * Maps bytes to characters.\r\n */\r\n byteToCharMap_: null,\r\n /**\r\n * Maps characters to bytes.\r\n */\r\n charToByteMap_: null,\r\n /**\r\n * Maps bytes to websafe characters.\r\n * @private\r\n */\r\n byteToCharMapWebSafe_: null,\r\n /**\r\n * Maps websafe characters to bytes.\r\n * @private\r\n */\r\n charToByteMapWebSafe_: null,\r\n /**\r\n * Our default alphabet, shared between\r\n * ENCODED_VALS and ENCODED_VALS_WEBSAFE\r\n */\r\n ENCODED_VALS_BASE: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + 'abcdefghijklmnopqrstuvwxyz' + '0123456789',\r\n /**\r\n * Our default alphabet. Value 64 (=) is special; it means \"nothing.\"\r\n */\r\n get ENCODED_VALS() {\r\n return this.ENCODED_VALS_BASE + '+/=';\r\n },\r\n /**\r\n * Our websafe alphabet.\r\n */\r\n get ENCODED_VALS_WEBSAFE() {\r\n return this.ENCODED_VALS_BASE + '-_.';\r\n },\r\n /**\r\n * Whether this browser supports the atob and btoa functions. This extension\r\n * started at Mozilla but is now implemented by many browsers. We use the\r\n * ASSUME_* variables to avoid pulling in the full useragent detection library\r\n * but still allowing the standard per-browser compilations.\r\n *\r\n */\r\n HAS_NATIVE_SUPPORT: typeof atob === 'function',\r\n /**\r\n * Base64-encode an array of bytes.\r\n *\r\n * @param input An array of bytes (numbers with\r\n * value in [0, 255]) to encode.\r\n * @param webSafe Boolean indicating we should use the\r\n * alternative alphabet.\r\n * @return The base64 encoded string.\r\n */\r\n encodeByteArray(input, webSafe) {\r\n if (!Array.isArray(input)) {\r\n throw Error('encodeByteArray takes an array as a parameter');\r\n }\r\n this.init_();\r\n const byteToCharMap = webSafe\r\n ? this.byteToCharMapWebSafe_\r\n : this.byteToCharMap_;\r\n const output = [];\r\n for (let i = 0; i < input.length; i += 3) {\r\n const byte1 = input[i];\r\n const haveByte2 = i + 1 < input.length;\r\n const byte2 = haveByte2 ? input[i + 1] : 0;\r\n const haveByte3 = i + 2 < input.length;\r\n const byte3 = haveByte3 ? input[i + 2] : 0;\r\n const outByte1 = byte1 >> 2;\r\n const outByte2 = ((byte1 & 0x03) << 4) | (byte2 >> 4);\r\n let outByte3 = ((byte2 & 0x0f) << 2) | (byte3 >> 6);\r\n let outByte4 = byte3 & 0x3f;\r\n if (!haveByte3) {\r\n outByte4 = 64;\r\n if (!haveByte2) {\r\n outByte3 = 64;\r\n }\r\n }\r\n output.push(byteToCharMap[outByte1], byteToCharMap[outByte2], byteToCharMap[outByte3], byteToCharMap[outByte4]);\r\n }\r\n return output.join('');\r\n },\r\n /**\r\n * Base64-encode a string.\r\n *\r\n * @param input A string to encode.\r\n * @param webSafe If true, we should use the\r\n * alternative alphabet.\r\n * @return The base64 encoded string.\r\n */\r\n encodeString(input, webSafe) {\r\n // Shortcut for Mozilla browsers that implement\r\n // a native base64 encoder in the form of \"btoa/atob\"\r\n if (this.HAS_NATIVE_SUPPORT && !webSafe) {\r\n return btoa(input);\r\n }\r\n return this.encodeByteArray(stringToByteArray$1(input), webSafe);\r\n },\r\n /**\r\n * Base64-decode a string.\r\n *\r\n * @param input to decode.\r\n * @param webSafe True if we should use the\r\n * alternative alphabet.\r\n * @return string representing the decoded value.\r\n */\r\n decodeString(input, webSafe) {\r\n // Shortcut for Mozilla browsers that implement\r\n // a native base64 encoder in the form of \"btoa/atob\"\r\n if (this.HAS_NATIVE_SUPPORT && !webSafe) {\r\n return atob(input);\r\n }\r\n return byteArrayToString(this.decodeStringToByteArray(input, webSafe));\r\n },\r\n /**\r\n * Base64-decode a string.\r\n *\r\n * In base-64 decoding, groups of four characters are converted into three\r\n * bytes. If the encoder did not apply padding, the input length may not\r\n * be a multiple of 4.\r\n *\r\n * In this case, the last group will have fewer than 4 characters, and\r\n * padding will be inferred. If the group has one or two characters, it decodes\r\n * to one byte. If the group has three characters, it decodes to two bytes.\r\n *\r\n * @param input Input to decode.\r\n * @param webSafe True if we should use the web-safe alphabet.\r\n * @return bytes representing the decoded value.\r\n */\r\n decodeStringToByteArray(input, webSafe) {\r\n this.init_();\r\n const charToByteMap = webSafe\r\n ? this.charToByteMapWebSafe_\r\n : this.charToByteMap_;\r\n const output = [];\r\n for (let i = 0; i < input.length;) {\r\n const byte1 = charToByteMap[input.charAt(i++)];\r\n const haveByte2 = i < input.length;\r\n const byte2 = haveByte2 ? charToByteMap[input.charAt(i)] : 0;\r\n ++i;\r\n const haveByte3 = i < input.length;\r\n const byte3 = haveByte3 ? charToByteMap[input.charAt(i)] : 64;\r\n ++i;\r\n const haveByte4 = i < input.length;\r\n const byte4 = haveByte4 ? charToByteMap[input.charAt(i)] : 64;\r\n ++i;\r\n if (byte1 == null || byte2 == null || byte3 == null || byte4 == null) {\r\n throw new DecodeBase64StringError();\r\n }\r\n const outByte1 = (byte1 << 2) | (byte2 >> 4);\r\n output.push(outByte1);\r\n if (byte3 !== 64) {\r\n const outByte2 = ((byte2 << 4) & 0xf0) | (byte3 >> 2);\r\n output.push(outByte2);\r\n if (byte4 !== 64) {\r\n const outByte3 = ((byte3 << 6) & 0xc0) | byte4;\r\n output.push(outByte3);\r\n }\r\n }\r\n }\r\n return output;\r\n },\r\n /**\r\n * Lazy static initialization function. Called before\r\n * accessing any of the static map variables.\r\n * @private\r\n */\r\n init_() {\r\n if (!this.byteToCharMap_) {\r\n this.byteToCharMap_ = {};\r\n this.charToByteMap_ = {};\r\n this.byteToCharMapWebSafe_ = {};\r\n this.charToByteMapWebSafe_ = {};\r\n // We want quick mappings back and forth, so we precompute two maps.\r\n for (let i = 0; i < this.ENCODED_VALS.length; i++) {\r\n this.byteToCharMap_[i] = this.ENCODED_VALS.charAt(i);\r\n this.charToByteMap_[this.byteToCharMap_[i]] = i;\r\n this.byteToCharMapWebSafe_[i] = this.ENCODED_VALS_WEBSAFE.charAt(i);\r\n this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[i]] = i;\r\n // Be forgiving when decoding and correctly decode both encodings.\r\n if (i >= this.ENCODED_VALS_BASE.length) {\r\n this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(i)] = i;\r\n this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(i)] = i;\r\n }\r\n }\r\n }\r\n }\r\n};\r\n/**\r\n * An error encountered while decoding base64 string.\r\n */\r\nclass DecodeBase64StringError extends Error {\r\n constructor() {\r\n super(...arguments);\r\n this.name = 'DecodeBase64StringError';\r\n }\r\n}\r\n/**\r\n * URL-safe base64 encoding\r\n */\r\nconst base64Encode = function (str) {\r\n const utf8Bytes = stringToByteArray$1(str);\r\n return base64.encodeByteArray(utf8Bytes, true);\r\n};\r\n/**\r\n * URL-safe base64 encoding (without \".\" padding in the end).\r\n * e.g. Used in JSON Web Token (JWT) parts.\r\n */\r\nconst base64urlEncodeWithoutPadding = function (str) {\r\n // Use base64url encoding and remove padding in the end (dot characters).\r\n return base64Encode(str).replace(/\\./g, '');\r\n};\r\n/**\r\n * URL-safe base64 decoding\r\n *\r\n * NOTE: DO NOT use the global atob() function - it does NOT support the\r\n * base64Url variant encoding.\r\n *\r\n * @param str To be decoded\r\n * @return Decoded result, if possible\r\n */\r\nconst base64Decode = function (str) {\r\n try {\r\n return base64.decodeString(str, true);\r\n }\r\n catch (e) {\r\n console.error('base64Decode failed: ', e);\r\n }\r\n return null;\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Do a deep-copy of basic JavaScript Objects or Arrays.\r\n */\r\nfunction deepCopy(value) {\r\n return deepExtend(undefined, value);\r\n}\r\n/**\r\n * Copy properties from source to target (recursively allows extension\r\n * of Objects and Arrays). Scalar values in the target are over-written.\r\n * If target is undefined, an object of the appropriate type will be created\r\n * (and returned).\r\n *\r\n * We recursively copy all child properties of plain Objects in the source- so\r\n * that namespace- like dictionaries are merged.\r\n *\r\n * Note that the target can be a function, in which case the properties in\r\n * the source Object are copied onto it as static properties of the Function.\r\n *\r\n * Note: we don't merge __proto__ to prevent prototype pollution\r\n */\r\nfunction deepExtend(target, source) {\r\n if (!(source instanceof Object)) {\r\n return source;\r\n }\r\n switch (source.constructor) {\r\n case Date:\r\n // Treat Dates like scalars; if the target date object had any child\r\n // properties - they will be lost!\r\n const dateValue = source;\r\n return new Date(dateValue.getTime());\r\n case Object:\r\n if (target === undefined) {\r\n target = {};\r\n }\r\n break;\r\n case Array:\r\n // Always copy the array source and overwrite the target.\r\n target = [];\r\n break;\r\n default:\r\n // Not a plain Object - treat it as a scalar.\r\n return source;\r\n }\r\n for (const prop in source) {\r\n // use isValidKey to guard against prototype pollution. See https://snyk.io/vuln/SNYK-JS-LODASH-450202\r\n if (!source.hasOwnProperty(prop) || !isValidKey(prop)) {\r\n continue;\r\n }\r\n target[prop] = deepExtend(target[prop], source[prop]);\r\n }\r\n return target;\r\n}\r\nfunction isValidKey(key) {\r\n return key !== '__proto__';\r\n}\n\n/**\r\n * @license\r\n * Copyright 2022 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Polyfill for `globalThis` object.\r\n * @returns the `globalThis` object for the given environment.\r\n * @public\r\n */\r\nfunction getGlobal() {\r\n if (typeof self !== 'undefined') {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined') {\r\n return window;\r\n }\r\n if (typeof global !== 'undefined') {\r\n return global;\r\n }\r\n throw new Error('Unable to locate global object.');\r\n}\n\n/**\r\n * @license\r\n * Copyright 2022 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst getDefaultsFromGlobal = () => getGlobal().__FIREBASE_DEFAULTS__;\r\n/**\r\n * Attempt to read defaults from a JSON string provided to\r\n * process(.)env(.)__FIREBASE_DEFAULTS__ or a JSON file whose path is in\r\n * process(.)env(.)__FIREBASE_DEFAULTS_PATH__\r\n * The dots are in parens because certain compilers (Vite?) cannot\r\n * handle seeing that variable in comments.\r\n * See https://github.com/firebase/firebase-js-sdk/issues/6838\r\n */\r\nconst getDefaultsFromEnvVariable = () => {\r\n if (typeof process === 'undefined' || typeof process.env === 'undefined') {\r\n return;\r\n }\r\n const defaultsJsonString = process.env.__FIREBASE_DEFAULTS__;\r\n if (defaultsJsonString) {\r\n return JSON.parse(defaultsJsonString);\r\n }\r\n};\r\nconst getDefaultsFromCookie = () => {\r\n if (typeof document === 'undefined') {\r\n return;\r\n }\r\n let match;\r\n try {\r\n match = document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/);\r\n }\r\n catch (e) {\r\n // Some environments such as Angular Universal SSR have a\r\n // `document` object but error on accessing `document.cookie`.\r\n return;\r\n }\r\n const decoded = match && base64Decode(match[1]);\r\n return decoded && JSON.parse(decoded);\r\n};\r\n/**\r\n * Get the __FIREBASE_DEFAULTS__ object. It checks in order:\r\n * (1) if such an object exists as a property of `globalThis`\r\n * (2) if such an object was provided on a shell environment variable\r\n * (3) if such an object exists in a cookie\r\n * @public\r\n */\r\nconst getDefaults = () => {\r\n try {\r\n return (getDefaultsFromGlobal() ||\r\n getDefaultsFromEnvVariable() ||\r\n getDefaultsFromCookie());\r\n }\r\n catch (e) {\r\n /**\r\n * Catch-all for being unable to get __FIREBASE_DEFAULTS__ due\r\n * to any environment case we have not accounted for. Log to\r\n * info instead of swallowing so we can find these unknown cases\r\n * and add paths for them if needed.\r\n */\r\n console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${e}`);\r\n return;\r\n }\r\n};\r\n/**\r\n * Returns emulator host stored in the __FIREBASE_DEFAULTS__ object\r\n * for the given product.\r\n * @returns a URL host formatted like `127.0.0.1:9999` or `[::1]:4000` if available\r\n * @public\r\n */\r\nconst getDefaultEmulatorHost = (productName) => { var _a, _b; return (_b = (_a = getDefaults()) === null || _a === void 0 ? void 0 : _a.emulatorHosts) === null || _b === void 0 ? void 0 : _b[productName]; };\r\n/**\r\n * Returns emulator hostname and port stored in the __FIREBASE_DEFAULTS__ object\r\n * for the given product.\r\n * @returns a pair of hostname and port like `[\"::1\", 4000]` if available\r\n * @public\r\n */\r\nconst getDefaultEmulatorHostnameAndPort = (productName) => {\r\n const host = getDefaultEmulatorHost(productName);\r\n if (!host) {\r\n return undefined;\r\n }\r\n const separatorIndex = host.lastIndexOf(':'); // Finding the last since IPv6 addr also has colons.\r\n if (separatorIndex <= 0 || separatorIndex + 1 === host.length) {\r\n throw new Error(`Invalid host ${host} with no separate hostname and port!`);\r\n }\r\n // eslint-disable-next-line no-restricted-globals\r\n const port = parseInt(host.substring(separatorIndex + 1), 10);\r\n if (host[0] === '[') {\r\n // Bracket-quoted `[ipv6addr]:port` => return \"ipv6addr\" (without brackets).\r\n return [host.substring(1, separatorIndex - 1), port];\r\n }\r\n else {\r\n return [host.substring(0, separatorIndex), port];\r\n }\r\n};\r\n/**\r\n * Returns Firebase app config stored in the __FIREBASE_DEFAULTS__ object.\r\n * @public\r\n */\r\nconst getDefaultAppConfig = () => { var _a; return (_a = getDefaults()) === null || _a === void 0 ? void 0 : _a.config; };\r\n/**\r\n * Returns an experimental setting on the __FIREBASE_DEFAULTS__ object (properties\r\n * prefixed by \"_\")\r\n * @public\r\n */\r\nconst getExperimentalSetting = (name) => { var _a; return (_a = getDefaults()) === null || _a === void 0 ? void 0 : _a[`_${name}`]; };\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nclass Deferred {\r\n constructor() {\r\n this.reject = () => { };\r\n this.resolve = () => { };\r\n this.promise = new Promise((resolve, reject) => {\r\n this.resolve = resolve;\r\n this.reject = reject;\r\n });\r\n }\r\n /**\r\n * Our API internals are not promisified and cannot because our callback APIs have subtle expectations around\r\n * invoking promises inline, which Promises are forbidden to do. This method accepts an optional node-style callback\r\n * and returns a node-style callback which will resolve or reject the Deferred's promise.\r\n */\r\n wrapCallback(callback) {\r\n return (error, value) => {\r\n if (error) {\r\n this.reject(error);\r\n }\r\n else {\r\n this.resolve(value);\r\n }\r\n if (typeof callback === 'function') {\r\n // Attaching noop handler just in case developer wasn't expecting\r\n // promises\r\n this.promise.catch(() => { });\r\n // Some of our callbacks don't expect a value and our own tests\r\n // assert that the parameter length is 1\r\n if (callback.length === 1) {\r\n callback(error);\r\n }\r\n else {\r\n callback(error, value);\r\n }\r\n }\r\n };\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2021 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction createMockUserToken(token, projectId) {\r\n if (token.uid) {\r\n throw new Error('The \"uid\" field is no longer supported by mockUserToken. Please use \"sub\" instead for Firebase Auth User ID.');\r\n }\r\n // Unsecured JWTs use \"none\" as the algorithm.\r\n const header = {\r\n alg: 'none',\r\n type: 'JWT'\r\n };\r\n const project = projectId || 'demo-project';\r\n const iat = token.iat || 0;\r\n const sub = token.sub || token.user_id;\r\n if (!sub) {\r\n throw new Error(\"mockUserToken must contain 'sub' or 'user_id' field!\");\r\n }\r\n const payload = Object.assign({ \r\n // Set all required fields to decent defaults\r\n iss: `https://securetoken.google.com/${project}`, aud: project, iat, exp: iat + 3600, auth_time: iat, sub, user_id: sub, firebase: {\r\n sign_in_provider: 'custom',\r\n identities: {}\r\n } }, token);\r\n // Unsecured JWTs use the empty string as a signature.\r\n const signature = '';\r\n return [\r\n base64urlEncodeWithoutPadding(JSON.stringify(header)),\r\n base64urlEncodeWithoutPadding(JSON.stringify(payload)),\r\n signature\r\n ].join('.');\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Returns navigator.userAgent string or '' if it's not defined.\r\n * @return user agent string\r\n */\r\nfunction getUA() {\r\n if (typeof navigator !== 'undefined' &&\r\n typeof navigator['userAgent'] === 'string') {\r\n return navigator['userAgent'];\r\n }\r\n else {\r\n return '';\r\n }\r\n}\r\n/**\r\n * Detect Cordova / PhoneGap / Ionic frameworks on a mobile device.\r\n *\r\n * Deliberately does not rely on checking `file://` URLs (as this fails PhoneGap\r\n * in the Ripple emulator) nor Cordova `onDeviceReady`, which would normally\r\n * wait for a callback.\r\n */\r\nfunction isMobileCordova() {\r\n return (typeof window !== 'undefined' &&\r\n // @ts-ignore Setting up an broadly applicable index signature for Window\r\n // just to deal with this case would probably be a bad idea.\r\n !!(window['cordova'] || window['phonegap'] || window['PhoneGap']) &&\r\n /ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(getUA()));\r\n}\r\n/**\r\n * Detect Node.js.\r\n *\r\n * @return true if Node.js environment is detected or specified.\r\n */\r\n// Node detection logic from: https://github.com/iliakan/detect-node/\r\nfunction isNode() {\r\n var _a;\r\n const forceEnvironment = (_a = getDefaults()) === null || _a === void 0 ? void 0 : _a.forceEnvironment;\r\n if (forceEnvironment === 'node') {\r\n return true;\r\n }\r\n else if (forceEnvironment === 'browser') {\r\n return false;\r\n }\r\n try {\r\n return (Object.prototype.toString.call(global.process) === '[object process]');\r\n }\r\n catch (e) {\r\n return false;\r\n }\r\n}\r\n/**\r\n * Detect Browser Environment.\r\n * Note: This will return true for certain test frameworks that are incompletely\r\n * mimicking a browser, and should not lead to assuming all browser APIs are\r\n * available.\r\n */\r\nfunction isBrowser() {\r\n return typeof window !== 'undefined' || isWebWorker();\r\n}\r\n/**\r\n * Detect Web Worker context.\r\n */\r\nfunction isWebWorker() {\r\n return (typeof WorkerGlobalScope !== 'undefined' &&\r\n typeof self !== 'undefined' &&\r\n self instanceof WorkerGlobalScope);\r\n}\r\n/**\r\n * Detect Cloudflare Worker context.\r\n */\r\nfunction isCloudflareWorker() {\r\n return (typeof navigator !== 'undefined' &&\r\n navigator.userAgent === 'Cloudflare-Workers');\r\n}\r\nfunction isBrowserExtension() {\r\n const runtime = typeof chrome === 'object'\r\n ? chrome.runtime\r\n : typeof browser === 'object'\r\n ? browser.runtime\r\n : undefined;\r\n return typeof runtime === 'object' && runtime.id !== undefined;\r\n}\r\n/**\r\n * Detect React Native.\r\n *\r\n * @return true if ReactNative environment is detected.\r\n */\r\nfunction isReactNative() {\r\n return (typeof navigator === 'object' && navigator['product'] === 'ReactNative');\r\n}\r\n/** Detects Electron apps. */\r\nfunction isElectron() {\r\n return getUA().indexOf('Electron/') >= 0;\r\n}\r\n/** Detects Internet Explorer. */\r\nfunction isIE() {\r\n const ua = getUA();\r\n return ua.indexOf('MSIE ') >= 0 || ua.indexOf('Trident/') >= 0;\r\n}\r\n/** Detects Universal Windows Platform apps. */\r\nfunction isUWP() {\r\n return getUA().indexOf('MSAppHost/') >= 0;\r\n}\r\n/**\r\n * Detect whether the current SDK build is the Node version.\r\n *\r\n * @return true if it's the Node SDK build.\r\n */\r\nfunction isNodeSdk() {\r\n return CONSTANTS.NODE_CLIENT === true || CONSTANTS.NODE_ADMIN === true;\r\n}\r\n/** Returns true if we are running in Safari. */\r\nfunction isSafari() {\r\n return (!isNode() &&\r\n !!navigator.userAgent &&\r\n navigator.userAgent.includes('Safari') &&\r\n !navigator.userAgent.includes('Chrome'));\r\n}\r\n/**\r\n * This method checks if indexedDB is supported by current browser/service worker context\r\n * @return true if indexedDB is supported by current browser/service worker context\r\n */\r\nfunction isIndexedDBAvailable() {\r\n try {\r\n return typeof indexedDB === 'object';\r\n }\r\n catch (e) {\r\n return false;\r\n }\r\n}\r\n/**\r\n * This method validates browser/sw context for indexedDB by opening a dummy indexedDB database and reject\r\n * if errors occur during the database open operation.\r\n *\r\n * @throws exception if current browser/sw context can't run idb.open (ex: Safari iframe, Firefox\r\n * private browsing)\r\n */\r\nfunction validateIndexedDBOpenable() {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n let preExist = true;\r\n const DB_CHECK_NAME = 'validate-browser-context-for-indexeddb-analytics-module';\r\n const request = self.indexedDB.open(DB_CHECK_NAME);\r\n request.onsuccess = () => {\r\n request.result.close();\r\n // delete database only when it doesn't pre-exist\r\n if (!preExist) {\r\n self.indexedDB.deleteDatabase(DB_CHECK_NAME);\r\n }\r\n resolve(true);\r\n };\r\n request.onupgradeneeded = () => {\r\n preExist = false;\r\n };\r\n request.onerror = () => {\r\n var _a;\r\n reject(((_a = request.error) === null || _a === void 0 ? void 0 : _a.message) || '');\r\n };\r\n }\r\n catch (error) {\r\n reject(error);\r\n }\r\n });\r\n}\r\n/**\r\n *\r\n * This method checks whether cookie is enabled within current browser\r\n * @return true if cookie is enabled within current browser\r\n */\r\nfunction areCookiesEnabled() {\r\n if (typeof navigator === 'undefined' || !navigator.cookieEnabled) {\r\n return false;\r\n }\r\n return true;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @fileoverview Standardized Firebase Error.\r\n *\r\n * Usage:\r\n *\r\n * // TypeScript string literals for type-safe codes\r\n * type Err =\r\n * 'unknown' |\r\n * 'object-not-found'\r\n * ;\r\n *\r\n * // Closure enum for type-safe error codes\r\n * // at-enum {string}\r\n * var Err = {\r\n * UNKNOWN: 'unknown',\r\n * OBJECT_NOT_FOUND: 'object-not-found',\r\n * }\r\n *\r\n * let errors: Map = {\r\n * 'generic-error': \"Unknown error\",\r\n * 'file-not-found': \"Could not find file: {$file}\",\r\n * };\r\n *\r\n * // Type-safe function - must pass a valid error code as param.\r\n * let error = new ErrorFactory('service', 'Service', errors);\r\n *\r\n * ...\r\n * throw error.create(Err.GENERIC);\r\n * ...\r\n * throw error.create(Err.FILE_NOT_FOUND, {'file': fileName});\r\n * ...\r\n * // Service: Could not file file: foo.txt (service/file-not-found).\r\n *\r\n * catch (e) {\r\n * assert(e.message === \"Could not find file: foo.txt.\");\r\n * if ((e as FirebaseError)?.code === 'service/file-not-found') {\r\n * console.log(\"Could not read file: \" + e['file']);\r\n * }\r\n * }\r\n */\r\nconst ERROR_NAME = 'FirebaseError';\r\n// Based on code from:\r\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error#Custom_Error_Types\r\nclass FirebaseError extends Error {\r\n constructor(\r\n /** The error code for this error. */\r\n code, message, \r\n /** Custom data for this error. */\r\n customData) {\r\n super(message);\r\n this.code = code;\r\n this.customData = customData;\r\n /** The custom name for all FirebaseErrors. */\r\n this.name = ERROR_NAME;\r\n // Fix For ES5\r\n // https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\r\n Object.setPrototypeOf(this, FirebaseError.prototype);\r\n // Maintains proper stack trace for where our error was thrown.\r\n // Only available on V8.\r\n if (Error.captureStackTrace) {\r\n Error.captureStackTrace(this, ErrorFactory.prototype.create);\r\n }\r\n }\r\n}\r\nclass ErrorFactory {\r\n constructor(service, serviceName, errors) {\r\n this.service = service;\r\n this.serviceName = serviceName;\r\n this.errors = errors;\r\n }\r\n create(code, ...data) {\r\n const customData = data[0] || {};\r\n const fullCode = `${this.service}/${code}`;\r\n const template = this.errors[code];\r\n const message = template ? replaceTemplate(template, customData) : 'Error';\r\n // Service Name: Error message (service/code).\r\n const fullMessage = `${this.serviceName}: ${message} (${fullCode}).`;\r\n const error = new FirebaseError(fullCode, fullMessage, customData);\r\n return error;\r\n }\r\n}\r\nfunction replaceTemplate(template, data) {\r\n return template.replace(PATTERN, (_, key) => {\r\n const value = data[key];\r\n return value != null ? String(value) : `<${key}?>`;\r\n });\r\n}\r\nconst PATTERN = /\\{\\$([^}]+)}/g;\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Evaluates a JSON string into a javascript object.\r\n *\r\n * @param {string} str A string containing JSON.\r\n * @return {*} The javascript object representing the specified JSON.\r\n */\r\nfunction jsonEval(str) {\r\n return JSON.parse(str);\r\n}\r\n/**\r\n * Returns JSON representing a javascript object.\r\n * @param {*} data JavaScript object to be stringified.\r\n * @return {string} The JSON contents of the object.\r\n */\r\nfunction stringify(data) {\r\n return JSON.stringify(data);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Decodes a Firebase auth. token into constituent parts.\r\n *\r\n * Notes:\r\n * - May return with invalid / incomplete claims if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nconst decode = function (token) {\r\n let header = {}, claims = {}, data = {}, signature = '';\r\n try {\r\n const parts = token.split('.');\r\n header = jsonEval(base64Decode(parts[0]) || '');\r\n claims = jsonEval(base64Decode(parts[1]) || '');\r\n signature = parts[2];\r\n data = claims['d'] || {};\r\n delete claims['d'];\r\n }\r\n catch (e) { }\r\n return {\r\n header,\r\n claims,\r\n data,\r\n signature\r\n };\r\n};\r\n/**\r\n * Decodes a Firebase auth. token and checks the validity of its time-based claims. Will return true if the\r\n * token is within the time window authorized by the 'nbf' (not-before) and 'iat' (issued-at) claims.\r\n *\r\n * Notes:\r\n * - May return a false negative if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nconst isValidTimestamp = function (token) {\r\n const claims = decode(token).claims;\r\n const now = Math.floor(new Date().getTime() / 1000);\r\n let validSince = 0, validUntil = 0;\r\n if (typeof claims === 'object') {\r\n if (claims.hasOwnProperty('nbf')) {\r\n validSince = claims['nbf'];\r\n }\r\n else if (claims.hasOwnProperty('iat')) {\r\n validSince = claims['iat'];\r\n }\r\n if (claims.hasOwnProperty('exp')) {\r\n validUntil = claims['exp'];\r\n }\r\n else {\r\n // token will expire after 24h by default\r\n validUntil = validSince + 86400;\r\n }\r\n }\r\n return (!!now &&\r\n !!validSince &&\r\n !!validUntil &&\r\n now >= validSince &&\r\n now <= validUntil);\r\n};\r\n/**\r\n * Decodes a Firebase auth. token and returns its issued at time if valid, null otherwise.\r\n *\r\n * Notes:\r\n * - May return null if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nconst issuedAtTime = function (token) {\r\n const claims = decode(token).claims;\r\n if (typeof claims === 'object' && claims.hasOwnProperty('iat')) {\r\n return claims['iat'];\r\n }\r\n return null;\r\n};\r\n/**\r\n * Decodes a Firebase auth. token and checks the validity of its format. Expects a valid issued-at time.\r\n *\r\n * Notes:\r\n * - May return a false negative if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nconst isValidFormat = function (token) {\r\n const decoded = decode(token), claims = decoded.claims;\r\n return !!claims && typeof claims === 'object' && claims.hasOwnProperty('iat');\r\n};\r\n/**\r\n * Attempts to peer into an auth token and determine if it's an admin auth token by looking at the claims portion.\r\n *\r\n * Notes:\r\n * - May return a false negative if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nconst isAdmin = function (token) {\r\n const claims = decode(token).claims;\r\n return typeof claims === 'object' && claims['admin'] === true;\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction contains(obj, key) {\r\n return Object.prototype.hasOwnProperty.call(obj, key);\r\n}\r\nfunction safeGet(obj, key) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n return obj[key];\r\n }\r\n else {\r\n return undefined;\r\n }\r\n}\r\nfunction isEmpty(obj) {\r\n for (const key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nfunction map(obj, fn, contextObj) {\r\n const res = {};\r\n for (const key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n res[key] = fn.call(contextObj, obj[key], key, obj);\r\n }\r\n }\r\n return res;\r\n}\r\n/**\r\n * Deep equal two objects. Support Arrays and Objects.\r\n */\r\nfunction deepEqual(a, b) {\r\n if (a === b) {\r\n return true;\r\n }\r\n const aKeys = Object.keys(a);\r\n const bKeys = Object.keys(b);\r\n for (const k of aKeys) {\r\n if (!bKeys.includes(k)) {\r\n return false;\r\n }\r\n const aProp = a[k];\r\n const bProp = b[k];\r\n if (isObject(aProp) && isObject(bProp)) {\r\n if (!deepEqual(aProp, bProp)) {\r\n return false;\r\n }\r\n }\r\n else if (aProp !== bProp) {\r\n return false;\r\n }\r\n }\r\n for (const k of bKeys) {\r\n if (!aKeys.includes(k)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nfunction isObject(thing) {\r\n return thing !== null && typeof thing === 'object';\r\n}\n\n/**\r\n * @license\r\n * Copyright 2022 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Rejects if the given promise doesn't resolve in timeInMS milliseconds.\r\n * @internal\r\n */\r\nfunction promiseWithTimeout(promise, timeInMS = 2000) {\r\n const deferredPromise = new Deferred();\r\n setTimeout(() => deferredPromise.reject('timeout!'), timeInMS);\r\n promise.then(deferredPromise.resolve, deferredPromise.reject);\r\n return deferredPromise.promise;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Returns a querystring-formatted string (e.g. &arg=val&arg2=val2) from a\r\n * params object (e.g. {arg: 'val', arg2: 'val2'})\r\n * Note: You must prepend it with ? when adding it to a URL.\r\n */\r\nfunction querystring(querystringParams) {\r\n const params = [];\r\n for (const [key, value] of Object.entries(querystringParams)) {\r\n if (Array.isArray(value)) {\r\n value.forEach(arrayVal => {\r\n params.push(encodeURIComponent(key) + '=' + encodeURIComponent(arrayVal));\r\n });\r\n }\r\n else {\r\n params.push(encodeURIComponent(key) + '=' + encodeURIComponent(value));\r\n }\r\n }\r\n return params.length ? '&' + params.join('&') : '';\r\n}\r\n/**\r\n * Decodes a querystring (e.g. ?arg=val&arg2=val2) into a params object\r\n * (e.g. {arg: 'val', arg2: 'val2'})\r\n */\r\nfunction querystringDecode(querystring) {\r\n const obj = {};\r\n const tokens = querystring.replace(/^\\?/, '').split('&');\r\n tokens.forEach(token => {\r\n if (token) {\r\n const [key, value] = token.split('=');\r\n obj[decodeURIComponent(key)] = decodeURIComponent(value);\r\n }\r\n });\r\n return obj;\r\n}\r\n/**\r\n * Extract the query string part of a URL, including the leading question mark (if present).\r\n */\r\nfunction extractQuerystring(url) {\r\n const queryStart = url.indexOf('?');\r\n if (!queryStart) {\r\n return '';\r\n }\r\n const fragmentStart = url.indexOf('#', queryStart);\r\n return url.substring(queryStart, fragmentStart > 0 ? fragmentStart : undefined);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @fileoverview SHA-1 cryptographic hash.\r\n * Variable names follow the notation in FIPS PUB 180-3:\r\n * http://csrc.nist.gov/publications/fips/fips180-3/fips180-3_final.pdf.\r\n *\r\n * Usage:\r\n * var sha1 = new sha1();\r\n * sha1.update(bytes);\r\n * var hash = sha1.digest();\r\n *\r\n * Performance:\r\n * Chrome 23: ~400 Mbit/s\r\n * Firefox 16: ~250 Mbit/s\r\n *\r\n */\r\n/**\r\n * SHA-1 cryptographic hash constructor.\r\n *\r\n * The properties declared here are discussed in the above algorithm document.\r\n * @constructor\r\n * @final\r\n * @struct\r\n */\r\nclass Sha1 {\r\n constructor() {\r\n /**\r\n * Holds the previous values of accumulated variables a-e in the compress_\r\n * function.\r\n * @private\r\n */\r\n this.chain_ = [];\r\n /**\r\n * A buffer holding the partially computed hash result.\r\n * @private\r\n */\r\n this.buf_ = [];\r\n /**\r\n * An array of 80 bytes, each a part of the message to be hashed. Referred to\r\n * as the message schedule in the docs.\r\n * @private\r\n */\r\n this.W_ = [];\r\n /**\r\n * Contains data needed to pad messages less than 64 bytes.\r\n * @private\r\n */\r\n this.pad_ = [];\r\n /**\r\n * @private {number}\r\n */\r\n this.inbuf_ = 0;\r\n /**\r\n * @private {number}\r\n */\r\n this.total_ = 0;\r\n this.blockSize = 512 / 8;\r\n this.pad_[0] = 128;\r\n for (let i = 1; i < this.blockSize; ++i) {\r\n this.pad_[i] = 0;\r\n }\r\n this.reset();\r\n }\r\n reset() {\r\n this.chain_[0] = 0x67452301;\r\n this.chain_[1] = 0xefcdab89;\r\n this.chain_[2] = 0x98badcfe;\r\n this.chain_[3] = 0x10325476;\r\n this.chain_[4] = 0xc3d2e1f0;\r\n this.inbuf_ = 0;\r\n this.total_ = 0;\r\n }\r\n /**\r\n * Internal compress helper function.\r\n * @param buf Block to compress.\r\n * @param offset Offset of the block in the buffer.\r\n * @private\r\n */\r\n compress_(buf, offset) {\r\n if (!offset) {\r\n offset = 0;\r\n }\r\n const W = this.W_;\r\n // get 16 big endian words\r\n if (typeof buf === 'string') {\r\n for (let i = 0; i < 16; i++) {\r\n // TODO(user): [bug 8140122] Recent versions of Safari for Mac OS and iOS\r\n // have a bug that turns the post-increment ++ operator into pre-increment\r\n // during JIT compilation. We have code that depends heavily on SHA-1 for\r\n // correctness and which is affected by this bug, so I've removed all uses\r\n // of post-increment ++ in which the result value is used. We can revert\r\n // this change once the Safari bug\r\n // (https://bugs.webkit.org/show_bug.cgi?id=109036) has been fixed and\r\n // most clients have been updated.\r\n W[i] =\r\n (buf.charCodeAt(offset) << 24) |\r\n (buf.charCodeAt(offset + 1) << 16) |\r\n (buf.charCodeAt(offset + 2) << 8) |\r\n buf.charCodeAt(offset + 3);\r\n offset += 4;\r\n }\r\n }\r\n else {\r\n for (let i = 0; i < 16; i++) {\r\n W[i] =\r\n (buf[offset] << 24) |\r\n (buf[offset + 1] << 16) |\r\n (buf[offset + 2] << 8) |\r\n buf[offset + 3];\r\n offset += 4;\r\n }\r\n }\r\n // expand to 80 words\r\n for (let i = 16; i < 80; i++) {\r\n const t = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];\r\n W[i] = ((t << 1) | (t >>> 31)) & 0xffffffff;\r\n }\r\n let a = this.chain_[0];\r\n let b = this.chain_[1];\r\n let c = this.chain_[2];\r\n let d = this.chain_[3];\r\n let e = this.chain_[4];\r\n let f, k;\r\n // TODO(user): Try to unroll this loop to speed up the computation.\r\n for (let i = 0; i < 80; i++) {\r\n if (i < 40) {\r\n if (i < 20) {\r\n f = d ^ (b & (c ^ d));\r\n k = 0x5a827999;\r\n }\r\n else {\r\n f = b ^ c ^ d;\r\n k = 0x6ed9eba1;\r\n }\r\n }\r\n else {\r\n if (i < 60) {\r\n f = (b & c) | (d & (b | c));\r\n k = 0x8f1bbcdc;\r\n }\r\n else {\r\n f = b ^ c ^ d;\r\n k = 0xca62c1d6;\r\n }\r\n }\r\n const t = (((a << 5) | (a >>> 27)) + f + e + k + W[i]) & 0xffffffff;\r\n e = d;\r\n d = c;\r\n c = ((b << 30) | (b >>> 2)) & 0xffffffff;\r\n b = a;\r\n a = t;\r\n }\r\n this.chain_[0] = (this.chain_[0] + a) & 0xffffffff;\r\n this.chain_[1] = (this.chain_[1] + b) & 0xffffffff;\r\n this.chain_[2] = (this.chain_[2] + c) & 0xffffffff;\r\n this.chain_[3] = (this.chain_[3] + d) & 0xffffffff;\r\n this.chain_[4] = (this.chain_[4] + e) & 0xffffffff;\r\n }\r\n update(bytes, length) {\r\n // TODO(johnlenz): tighten the function signature and remove this check\r\n if (bytes == null) {\r\n return;\r\n }\r\n if (length === undefined) {\r\n length = bytes.length;\r\n }\r\n const lengthMinusBlock = length - this.blockSize;\r\n let n = 0;\r\n // Using local instead of member variables gives ~5% speedup on Firefox 16.\r\n const buf = this.buf_;\r\n let inbuf = this.inbuf_;\r\n // The outer while loop should execute at most twice.\r\n while (n < length) {\r\n // When we have no data in the block to top up, we can directly process the\r\n // input buffer (assuming it contains sufficient data). This gives ~25%\r\n // speedup on Chrome 23 and ~15% speedup on Firefox 16, but requires that\r\n // the data is provided in large chunks (or in multiples of 64 bytes).\r\n if (inbuf === 0) {\r\n while (n <= lengthMinusBlock) {\r\n this.compress_(bytes, n);\r\n n += this.blockSize;\r\n }\r\n }\r\n if (typeof bytes === 'string') {\r\n while (n < length) {\r\n buf[inbuf] = bytes.charCodeAt(n);\r\n ++inbuf;\r\n ++n;\r\n if (inbuf === this.blockSize) {\r\n this.compress_(buf);\r\n inbuf = 0;\r\n // Jump to the outer loop so we use the full-block optimization.\r\n break;\r\n }\r\n }\r\n }\r\n else {\r\n while (n < length) {\r\n buf[inbuf] = bytes[n];\r\n ++inbuf;\r\n ++n;\r\n if (inbuf === this.blockSize) {\r\n this.compress_(buf);\r\n inbuf = 0;\r\n // Jump to the outer loop so we use the full-block optimization.\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n this.inbuf_ = inbuf;\r\n this.total_ += length;\r\n }\r\n /** @override */\r\n digest() {\r\n const digest = [];\r\n let totalBits = this.total_ * 8;\r\n // Add pad 0x80 0x00*.\r\n if (this.inbuf_ < 56) {\r\n this.update(this.pad_, 56 - this.inbuf_);\r\n }\r\n else {\r\n this.update(this.pad_, this.blockSize - (this.inbuf_ - 56));\r\n }\r\n // Add # bits.\r\n for (let i = this.blockSize - 1; i >= 56; i--) {\r\n this.buf_[i] = totalBits & 255;\r\n totalBits /= 256; // Don't use bit-shifting here!\r\n }\r\n this.compress_(this.buf_);\r\n let n = 0;\r\n for (let i = 0; i < 5; i++) {\r\n for (let j = 24; j >= 0; j -= 8) {\r\n digest[n] = (this.chain_[i] >> j) & 255;\r\n ++n;\r\n }\r\n }\r\n return digest;\r\n }\r\n}\n\n/**\r\n * Helper to make a Subscribe function (just like Promise helps make a\r\n * Thenable).\r\n *\r\n * @param executor Function which can make calls to a single Observer\r\n * as a proxy.\r\n * @param onNoObservers Callback when count of Observers goes to zero.\r\n */\r\nfunction createSubscribe(executor, onNoObservers) {\r\n const proxy = new ObserverProxy(executor, onNoObservers);\r\n return proxy.subscribe.bind(proxy);\r\n}\r\n/**\r\n * Implement fan-out for any number of Observers attached via a subscribe\r\n * function.\r\n */\r\nclass ObserverProxy {\r\n /**\r\n * @param executor Function which can make calls to a single Observer\r\n * as a proxy.\r\n * @param onNoObservers Callback when count of Observers goes to zero.\r\n */\r\n constructor(executor, onNoObservers) {\r\n this.observers = [];\r\n this.unsubscribes = [];\r\n this.observerCount = 0;\r\n // Micro-task scheduling by calling task.then().\r\n this.task = Promise.resolve();\r\n this.finalized = false;\r\n this.onNoObservers = onNoObservers;\r\n // Call the executor asynchronously so subscribers that are called\r\n // synchronously after the creation of the subscribe function\r\n // can still receive the very first value generated in the executor.\r\n this.task\r\n .then(() => {\r\n executor(this);\r\n })\r\n .catch(e => {\r\n this.error(e);\r\n });\r\n }\r\n next(value) {\r\n this.forEachObserver((observer) => {\r\n observer.next(value);\r\n });\r\n }\r\n error(error) {\r\n this.forEachObserver((observer) => {\r\n observer.error(error);\r\n });\r\n this.close(error);\r\n }\r\n complete() {\r\n this.forEachObserver((observer) => {\r\n observer.complete();\r\n });\r\n this.close();\r\n }\r\n /**\r\n * Subscribe function that can be used to add an Observer to the fan-out list.\r\n *\r\n * - We require that no event is sent to a subscriber synchronously to their\r\n * call to subscribe().\r\n */\r\n subscribe(nextOrObserver, error, complete) {\r\n let observer;\r\n if (nextOrObserver === undefined &&\r\n error === undefined &&\r\n complete === undefined) {\r\n throw new Error('Missing Observer.');\r\n }\r\n // Assemble an Observer object when passed as callback functions.\r\n if (implementsAnyMethods(nextOrObserver, [\r\n 'next',\r\n 'error',\r\n 'complete'\r\n ])) {\r\n observer = nextOrObserver;\r\n }\r\n else {\r\n observer = {\r\n next: nextOrObserver,\r\n error,\r\n complete\r\n };\r\n }\r\n if (observer.next === undefined) {\r\n observer.next = noop;\r\n }\r\n if (observer.error === undefined) {\r\n observer.error = noop;\r\n }\r\n if (observer.complete === undefined) {\r\n observer.complete = noop;\r\n }\r\n const unsub = this.unsubscribeOne.bind(this, this.observers.length);\r\n // Attempt to subscribe to a terminated Observable - we\r\n // just respond to the Observer with the final error or complete\r\n // event.\r\n if (this.finalized) {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.task.then(() => {\r\n try {\r\n if (this.finalError) {\r\n observer.error(this.finalError);\r\n }\r\n else {\r\n observer.complete();\r\n }\r\n }\r\n catch (e) {\r\n // nothing\r\n }\r\n return;\r\n });\r\n }\r\n this.observers.push(observer);\r\n return unsub;\r\n }\r\n // Unsubscribe is synchronous - we guarantee that no events are sent to\r\n // any unsubscribed Observer.\r\n unsubscribeOne(i) {\r\n if (this.observers === undefined || this.observers[i] === undefined) {\r\n return;\r\n }\r\n delete this.observers[i];\r\n this.observerCount -= 1;\r\n if (this.observerCount === 0 && this.onNoObservers !== undefined) {\r\n this.onNoObservers(this);\r\n }\r\n }\r\n forEachObserver(fn) {\r\n if (this.finalized) {\r\n // Already closed by previous event....just eat the additional values.\r\n return;\r\n }\r\n // Since sendOne calls asynchronously - there is no chance that\r\n // this.observers will become undefined.\r\n for (let i = 0; i < this.observers.length; i++) {\r\n this.sendOne(i, fn);\r\n }\r\n }\r\n // Call the Observer via one of it's callback function. We are careful to\r\n // confirm that the observe has not been unsubscribed since this asynchronous\r\n // function had been queued.\r\n sendOne(i, fn) {\r\n // Execute the callback asynchronously\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.task.then(() => {\r\n if (this.observers !== undefined && this.observers[i] !== undefined) {\r\n try {\r\n fn(this.observers[i]);\r\n }\r\n catch (e) {\r\n // Ignore exceptions raised in Observers or missing methods of an\r\n // Observer.\r\n // Log error to console. b/31404806\r\n if (typeof console !== 'undefined' && console.error) {\r\n console.error(e);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n close(err) {\r\n if (this.finalized) {\r\n return;\r\n }\r\n this.finalized = true;\r\n if (err !== undefined) {\r\n this.finalError = err;\r\n }\r\n // Proxy is no longer needed - garbage collect references\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.task.then(() => {\r\n this.observers = undefined;\r\n this.onNoObservers = undefined;\r\n });\r\n }\r\n}\r\n/** Turn synchronous function into one called asynchronously. */\r\n// eslint-disable-next-line @typescript-eslint/ban-types\r\nfunction async(fn, onError) {\r\n return (...args) => {\r\n Promise.resolve(true)\r\n .then(() => {\r\n fn(...args);\r\n })\r\n .catch((error) => {\r\n if (onError) {\r\n onError(error);\r\n }\r\n });\r\n };\r\n}\r\n/**\r\n * Return true if the object passed in implements any of the named methods.\r\n */\r\nfunction implementsAnyMethods(obj, methods) {\r\n if (typeof obj !== 'object' || obj === null) {\r\n return false;\r\n }\r\n for (const method of methods) {\r\n if (method in obj && typeof obj[method] === 'function') {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\nfunction noop() {\r\n // do nothing\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Check to make sure the appropriate number of arguments are provided for a public function.\r\n * Throws an error if it fails.\r\n *\r\n * @param fnName The function name\r\n * @param minCount The minimum number of arguments to allow for the function call\r\n * @param maxCount The maximum number of argument to allow for the function call\r\n * @param argCount The actual number of arguments provided.\r\n */\r\nconst validateArgCount = function (fnName, minCount, maxCount, argCount) {\r\n let argError;\r\n if (argCount < minCount) {\r\n argError = 'at least ' + minCount;\r\n }\r\n else if (argCount > maxCount) {\r\n argError = maxCount === 0 ? 'none' : 'no more than ' + maxCount;\r\n }\r\n if (argError) {\r\n const error = fnName +\r\n ' failed: Was called with ' +\r\n argCount +\r\n (argCount === 1 ? ' argument.' : ' arguments.') +\r\n ' Expects ' +\r\n argError +\r\n '.';\r\n throw new Error(error);\r\n }\r\n};\r\n/**\r\n * Generates a string to prefix an error message about failed argument validation\r\n *\r\n * @param fnName The function name\r\n * @param argName The name of the argument\r\n * @return The prefix to add to the error thrown for validation.\r\n */\r\nfunction errorPrefix(fnName, argName) {\r\n return `${fnName} failed: ${argName} argument `;\r\n}\r\n/**\r\n * @param fnName\r\n * @param argumentNumber\r\n * @param namespace\r\n * @param optional\r\n */\r\nfunction validateNamespace(fnName, namespace, optional) {\r\n if (optional && !namespace) {\r\n return;\r\n }\r\n if (typeof namespace !== 'string') {\r\n //TODO: I should do more validation here. We only allow certain chars in namespaces.\r\n throw new Error(errorPrefix(fnName, 'namespace') + 'must be a valid firebase namespace.');\r\n }\r\n}\r\nfunction validateCallback(fnName, argumentName, \r\n// eslint-disable-next-line @typescript-eslint/ban-types\r\ncallback, optional) {\r\n if (optional && !callback) {\r\n return;\r\n }\r\n if (typeof callback !== 'function') {\r\n throw new Error(errorPrefix(fnName, argumentName) + 'must be a valid function.');\r\n }\r\n}\r\nfunction validateContextObject(fnName, argumentName, context, optional) {\r\n if (optional && !context) {\r\n return;\r\n }\r\n if (typeof context !== 'object' || context === null) {\r\n throw new Error(errorPrefix(fnName, argumentName) + 'must be a valid context object.');\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n// Code originally came from goog.crypt.stringToUtf8ByteArray, but for some reason they\r\n// automatically replaced '\\r\\n' with '\\n', and they didn't handle surrogate pairs,\r\n// so it's been modified.\r\n// Note that not all Unicode characters appear as single characters in JavaScript strings.\r\n// fromCharCode returns the UTF-16 encoding of a character - so some Unicode characters\r\n// use 2 characters in JavaScript. All 4-byte UTF-8 characters begin with a first\r\n// character in the range 0xD800 - 0xDBFF (the first character of a so-called surrogate\r\n// pair).\r\n// See http://www.ecma-international.org/ecma-262/5.1/#sec-15.1.3\r\n/**\r\n * @param {string} str\r\n * @return {Array}\r\n */\r\nconst stringToByteArray = function (str) {\r\n const out = [];\r\n let p = 0;\r\n for (let i = 0; i < str.length; i++) {\r\n let c = str.charCodeAt(i);\r\n // Is this the lead surrogate in a surrogate pair?\r\n if (c >= 0xd800 && c <= 0xdbff) {\r\n const high = c - 0xd800; // the high 10 bits.\r\n i++;\r\n assert(i < str.length, 'Surrogate pair missing trail surrogate.');\r\n const low = str.charCodeAt(i) - 0xdc00; // the low 10 bits.\r\n c = 0x10000 + (high << 10) + low;\r\n }\r\n if (c < 128) {\r\n out[p++] = c;\r\n }\r\n else if (c < 2048) {\r\n out[p++] = (c >> 6) | 192;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else if (c < 65536) {\r\n out[p++] = (c >> 12) | 224;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else {\r\n out[p++] = (c >> 18) | 240;\r\n out[p++] = ((c >> 12) & 63) | 128;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n }\r\n return out;\r\n};\r\n/**\r\n * Calculate length without actually converting; useful for doing cheaper validation.\r\n * @param {string} str\r\n * @return {number}\r\n */\r\nconst stringLength = function (str) {\r\n let p = 0;\r\n for (let i = 0; i < str.length; i++) {\r\n const c = str.charCodeAt(i);\r\n if (c < 128) {\r\n p++;\r\n }\r\n else if (c < 2048) {\r\n p += 2;\r\n }\r\n else if (c >= 0xd800 && c <= 0xdbff) {\r\n // Lead surrogate of a surrogate pair. The pair together will take 4 bytes to represent.\r\n p += 4;\r\n i++; // skip trail surrogate.\r\n }\r\n else {\r\n p += 3;\r\n }\r\n }\r\n return p;\r\n};\n\n/**\r\n * @license\r\n * Copyright 2022 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Copied from https://stackoverflow.com/a/2117523\r\n * Generates a new uuid.\r\n * @public\r\n */\r\nconst uuidv4 = function () {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => {\r\n const r = (Math.random() * 16) | 0, v = c === 'x' ? r : (r & 0x3) | 0x8;\r\n return v.toString(16);\r\n });\r\n};\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * The amount of milliseconds to exponentially increase.\r\n */\r\nconst DEFAULT_INTERVAL_MILLIS = 1000;\r\n/**\r\n * The factor to backoff by.\r\n * Should be a number greater than 1.\r\n */\r\nconst DEFAULT_BACKOFF_FACTOR = 2;\r\n/**\r\n * The maximum milliseconds to increase to.\r\n *\r\n *

Visible for testing\r\n */\r\nconst MAX_VALUE_MILLIS = 4 * 60 * 60 * 1000; // Four hours, like iOS and Android.\r\n/**\r\n * The percentage of backoff time to randomize by.\r\n * See\r\n * http://go/safe-client-behavior#step-1-determine-the-appropriate-retry-interval-to-handle-spike-traffic\r\n * for context.\r\n *\r\n *

Visible for testing\r\n */\r\nconst RANDOM_FACTOR = 0.5;\r\n/**\r\n * Based on the backoff method from\r\n * https://github.com/google/closure-library/blob/master/closure/goog/math/exponentialbackoff.js.\r\n * Extracted here so we don't need to pass metadata and a stateful ExponentialBackoff object around.\r\n */\r\nfunction calculateBackoffMillis(backoffCount, intervalMillis = DEFAULT_INTERVAL_MILLIS, backoffFactor = DEFAULT_BACKOFF_FACTOR) {\r\n // Calculates an exponentially increasing value.\r\n // Deviation: calculates value from count and a constant interval, so we only need to save value\r\n // and count to restore state.\r\n const currBaseValue = intervalMillis * Math.pow(backoffFactor, backoffCount);\r\n // A random \"fuzz\" to avoid waves of retries.\r\n // Deviation: randomFactor is required.\r\n const randomWait = Math.round(\r\n // A fraction of the backoff value to add/subtract.\r\n // Deviation: changes multiplication order to improve readability.\r\n RANDOM_FACTOR *\r\n currBaseValue *\r\n // A random float (rounded to int by Math.round above) in the range [-1, 1]. Determines\r\n // if we add or subtract.\r\n (Math.random() - 0.5) *\r\n 2);\r\n // Limits backoff to max to avoid effectively permanent backoff.\r\n return Math.min(MAX_VALUE_MILLIS, currBaseValue + randomWait);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Provide English ordinal letters after a number\r\n */\r\nfunction ordinal(i) {\r\n if (!Number.isFinite(i)) {\r\n return `${i}`;\r\n }\r\n return i + indicator(i);\r\n}\r\nfunction indicator(i) {\r\n i = Math.abs(i);\r\n const cent = i % 100;\r\n if (cent >= 10 && cent <= 20) {\r\n return 'th';\r\n }\r\n const dec = i % 10;\r\n if (dec === 1) {\r\n return 'st';\r\n }\r\n if (dec === 2) {\r\n return 'nd';\r\n }\r\n if (dec === 3) {\r\n return 'rd';\r\n }\r\n return 'th';\r\n}\n\n/**\r\n * @license\r\n * Copyright 2021 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction getModularInstance(service) {\r\n if (service && service._delegate) {\r\n return service._delegate;\r\n }\r\n else {\r\n return service;\r\n }\r\n}\n\nexport { CONSTANTS, DecodeBase64StringError, Deferred, ErrorFactory, FirebaseError, MAX_VALUE_MILLIS, RANDOM_FACTOR, Sha1, areCookiesEnabled, assert, assertionError, async, base64, base64Decode, base64Encode, base64urlEncodeWithoutPadding, calculateBackoffMillis, contains, createMockUserToken, createSubscribe, decode, deepCopy, deepEqual, deepExtend, errorPrefix, extractQuerystring, getDefaultAppConfig, getDefaultEmulatorHost, getDefaultEmulatorHostnameAndPort, getDefaults, getExperimentalSetting, getGlobal, getModularInstance, getUA, isAdmin, isBrowser, isBrowserExtension, isCloudflareWorker, isElectron, isEmpty, isIE, isIndexedDBAvailable, isMobileCordova, isNode, isNodeSdk, isReactNative, isSafari, isUWP, isValidFormat, isValidTimestamp, isWebWorker, issuedAtTime, jsonEval, map, ordinal, promiseWithTimeout, querystring, querystringDecode, safeGet, stringLength, stringToByteArray, stringify, uuidv4, validateArgCount, validateCallback, validateContextObject, validateIndexedDBOpenable, validateNamespace };\n//# sourceMappingURL=index.esm2017.js.map\n","import { Deferred } from '@firebase/util';\n\n/**\r\n * Component for service name T, e.g. `auth`, `auth-internal`\r\n */\r\nclass Component {\r\n /**\r\n *\r\n * @param name The public service name, e.g. app, auth, firestore, database\r\n * @param instanceFactory Service factory responsible for creating the public interface\r\n * @param type whether the service provided by the component is public or private\r\n */\r\n constructor(name, instanceFactory, type) {\r\n this.name = name;\r\n this.instanceFactory = instanceFactory;\r\n this.type = type;\r\n this.multipleInstances = false;\r\n /**\r\n * Properties to be added to the service namespace\r\n */\r\n this.serviceProps = {};\r\n this.instantiationMode = \"LAZY\" /* InstantiationMode.LAZY */;\r\n this.onInstanceCreated = null;\r\n }\r\n setInstantiationMode(mode) {\r\n this.instantiationMode = mode;\r\n return this;\r\n }\r\n setMultipleInstances(multipleInstances) {\r\n this.multipleInstances = multipleInstances;\r\n return this;\r\n }\r\n setServiceProps(props) {\r\n this.serviceProps = props;\r\n return this;\r\n }\r\n setInstanceCreatedCallback(callback) {\r\n this.onInstanceCreated = callback;\r\n return this;\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst DEFAULT_ENTRY_NAME = '[DEFAULT]';\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Provider for instance for service name T, e.g. 'auth', 'auth-internal'\r\n * NameServiceMapping[T] is an alias for the type of the instance\r\n */\r\nclass Provider {\r\n constructor(name, container) {\r\n this.name = name;\r\n this.container = container;\r\n this.component = null;\r\n this.instances = new Map();\r\n this.instancesDeferred = new Map();\r\n this.instancesOptions = new Map();\r\n this.onInitCallbacks = new Map();\r\n }\r\n /**\r\n * @param identifier A provider can provide multiple instances of a service\r\n * if this.component.multipleInstances is true.\r\n */\r\n get(identifier) {\r\n // if multipleInstances is not supported, use the default name\r\n const normalizedIdentifier = this.normalizeInstanceIdentifier(identifier);\r\n if (!this.instancesDeferred.has(normalizedIdentifier)) {\r\n const deferred = new Deferred();\r\n this.instancesDeferred.set(normalizedIdentifier, deferred);\r\n if (this.isInitialized(normalizedIdentifier) ||\r\n this.shouldAutoInitialize()) {\r\n // initialize the service if it can be auto-initialized\r\n try {\r\n const instance = this.getOrInitializeService({\r\n instanceIdentifier: normalizedIdentifier\r\n });\r\n if (instance) {\r\n deferred.resolve(instance);\r\n }\r\n }\r\n catch (e) {\r\n // when the instance factory throws an exception during get(), it should not cause\r\n // a fatal error. We just return the unresolved promise in this case.\r\n }\r\n }\r\n }\r\n return this.instancesDeferred.get(normalizedIdentifier).promise;\r\n }\r\n getImmediate(options) {\r\n var _a;\r\n // if multipleInstances is not supported, use the default name\r\n const normalizedIdentifier = this.normalizeInstanceIdentifier(options === null || options === void 0 ? void 0 : options.identifier);\r\n const optional = (_a = options === null || options === void 0 ? void 0 : options.optional) !== null && _a !== void 0 ? _a : false;\r\n if (this.isInitialized(normalizedIdentifier) ||\r\n this.shouldAutoInitialize()) {\r\n try {\r\n return this.getOrInitializeService({\r\n instanceIdentifier: normalizedIdentifier\r\n });\r\n }\r\n catch (e) {\r\n if (optional) {\r\n return null;\r\n }\r\n else {\r\n throw e;\r\n }\r\n }\r\n }\r\n else {\r\n // In case a component is not initialized and should/cannot be auto-initialized at the moment, return null if the optional flag is set, or throw\r\n if (optional) {\r\n return null;\r\n }\r\n else {\r\n throw Error(`Service ${this.name} is not available`);\r\n }\r\n }\r\n }\r\n getComponent() {\r\n return this.component;\r\n }\r\n setComponent(component) {\r\n if (component.name !== this.name) {\r\n throw Error(`Mismatching Component ${component.name} for Provider ${this.name}.`);\r\n }\r\n if (this.component) {\r\n throw Error(`Component for ${this.name} has already been provided`);\r\n }\r\n this.component = component;\r\n // return early without attempting to initialize the component if the component requires explicit initialization (calling `Provider.initialize()`)\r\n if (!this.shouldAutoInitialize()) {\r\n return;\r\n }\r\n // if the service is eager, initialize the default instance\r\n if (isComponentEager(component)) {\r\n try {\r\n this.getOrInitializeService({ instanceIdentifier: DEFAULT_ENTRY_NAME });\r\n }\r\n catch (e) {\r\n // when the instance factory for an eager Component throws an exception during the eager\r\n // initialization, it should not cause a fatal error.\r\n // TODO: Investigate if we need to make it configurable, because some component may want to cause\r\n // a fatal error in this case?\r\n }\r\n }\r\n // Create service instances for the pending promises and resolve them\r\n // NOTE: if this.multipleInstances is false, only the default instance will be created\r\n // and all promises with resolve with it regardless of the identifier.\r\n for (const [instanceIdentifier, instanceDeferred] of this.instancesDeferred.entries()) {\r\n const normalizedIdentifier = this.normalizeInstanceIdentifier(instanceIdentifier);\r\n try {\r\n // `getOrInitializeService()` should always return a valid instance since a component is guaranteed. use ! to make typescript happy.\r\n const instance = this.getOrInitializeService({\r\n instanceIdentifier: normalizedIdentifier\r\n });\r\n instanceDeferred.resolve(instance);\r\n }\r\n catch (e) {\r\n // when the instance factory throws an exception, it should not cause\r\n // a fatal error. We just leave the promise unresolved.\r\n }\r\n }\r\n }\r\n clearInstance(identifier = DEFAULT_ENTRY_NAME) {\r\n this.instancesDeferred.delete(identifier);\r\n this.instancesOptions.delete(identifier);\r\n this.instances.delete(identifier);\r\n }\r\n // app.delete() will call this method on every provider to delete the services\r\n // TODO: should we mark the provider as deleted?\r\n async delete() {\r\n const services = Array.from(this.instances.values());\r\n await Promise.all([\r\n ...services\r\n .filter(service => 'INTERNAL' in service) // legacy services\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n .map(service => service.INTERNAL.delete()),\r\n ...services\r\n .filter(service => '_delete' in service) // modularized services\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n .map(service => service._delete())\r\n ]);\r\n }\r\n isComponentSet() {\r\n return this.component != null;\r\n }\r\n isInitialized(identifier = DEFAULT_ENTRY_NAME) {\r\n return this.instances.has(identifier);\r\n }\r\n getOptions(identifier = DEFAULT_ENTRY_NAME) {\r\n return this.instancesOptions.get(identifier) || {};\r\n }\r\n initialize(opts = {}) {\r\n const { options = {} } = opts;\r\n const normalizedIdentifier = this.normalizeInstanceIdentifier(opts.instanceIdentifier);\r\n if (this.isInitialized(normalizedIdentifier)) {\r\n throw Error(`${this.name}(${normalizedIdentifier}) has already been initialized`);\r\n }\r\n if (!this.isComponentSet()) {\r\n throw Error(`Component ${this.name} has not been registered yet`);\r\n }\r\n const instance = this.getOrInitializeService({\r\n instanceIdentifier: normalizedIdentifier,\r\n options\r\n });\r\n // resolve any pending promise waiting for the service instance\r\n for (const [instanceIdentifier, instanceDeferred] of this.instancesDeferred.entries()) {\r\n const normalizedDeferredIdentifier = this.normalizeInstanceIdentifier(instanceIdentifier);\r\n if (normalizedIdentifier === normalizedDeferredIdentifier) {\r\n instanceDeferred.resolve(instance);\r\n }\r\n }\r\n return instance;\r\n }\r\n /**\r\n *\r\n * @param callback - a function that will be invoked after the provider has been initialized by calling provider.initialize().\r\n * The function is invoked SYNCHRONOUSLY, so it should not execute any longrunning tasks in order to not block the program.\r\n *\r\n * @param identifier An optional instance identifier\r\n * @returns a function to unregister the callback\r\n */\r\n onInit(callback, identifier) {\r\n var _a;\r\n const normalizedIdentifier = this.normalizeInstanceIdentifier(identifier);\r\n const existingCallbacks = (_a = this.onInitCallbacks.get(normalizedIdentifier)) !== null && _a !== void 0 ? _a : new Set();\r\n existingCallbacks.add(callback);\r\n this.onInitCallbacks.set(normalizedIdentifier, existingCallbacks);\r\n const existingInstance = this.instances.get(normalizedIdentifier);\r\n if (existingInstance) {\r\n callback(existingInstance, normalizedIdentifier);\r\n }\r\n return () => {\r\n existingCallbacks.delete(callback);\r\n };\r\n }\r\n /**\r\n * Invoke onInit callbacks synchronously\r\n * @param instance the service instance`\r\n */\r\n invokeOnInitCallbacks(instance, identifier) {\r\n const callbacks = this.onInitCallbacks.get(identifier);\r\n if (!callbacks) {\r\n return;\r\n }\r\n for (const callback of callbacks) {\r\n try {\r\n callback(instance, identifier);\r\n }\r\n catch (_a) {\r\n // ignore errors in the onInit callback\r\n }\r\n }\r\n }\r\n getOrInitializeService({ instanceIdentifier, options = {} }) {\r\n let instance = this.instances.get(instanceIdentifier);\r\n if (!instance && this.component) {\r\n instance = this.component.instanceFactory(this.container, {\r\n instanceIdentifier: normalizeIdentifierForFactory(instanceIdentifier),\r\n options\r\n });\r\n this.instances.set(instanceIdentifier, instance);\r\n this.instancesOptions.set(instanceIdentifier, options);\r\n /**\r\n * Invoke onInit listeners.\r\n * Note this.component.onInstanceCreated is different, which is used by the component creator,\r\n * while onInit listeners are registered by consumers of the provider.\r\n */\r\n this.invokeOnInitCallbacks(instance, instanceIdentifier);\r\n /**\r\n * Order is important\r\n * onInstanceCreated() should be called after this.instances.set(instanceIdentifier, instance); which\r\n * makes `isInitialized()` return true.\r\n */\r\n if (this.component.onInstanceCreated) {\r\n try {\r\n this.component.onInstanceCreated(this.container, instanceIdentifier, instance);\r\n }\r\n catch (_a) {\r\n // ignore errors in the onInstanceCreatedCallback\r\n }\r\n }\r\n }\r\n return instance || null;\r\n }\r\n normalizeInstanceIdentifier(identifier = DEFAULT_ENTRY_NAME) {\r\n if (this.component) {\r\n return this.component.multipleInstances ? identifier : DEFAULT_ENTRY_NAME;\r\n }\r\n else {\r\n return identifier; // assume multiple instances are supported before the component is provided.\r\n }\r\n }\r\n shouldAutoInitialize() {\r\n return (!!this.component &&\r\n this.component.instantiationMode !== \"EXPLICIT\" /* InstantiationMode.EXPLICIT */);\r\n }\r\n}\r\n// undefined should be passed to the service factory for the default instance\r\nfunction normalizeIdentifierForFactory(identifier) {\r\n return identifier === DEFAULT_ENTRY_NAME ? undefined : identifier;\r\n}\r\nfunction isComponentEager(component) {\r\n return component.instantiationMode === \"EAGER\" /* InstantiationMode.EAGER */;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * ComponentContainer that provides Providers for service name T, e.g. `auth`, `auth-internal`\r\n */\r\nclass ComponentContainer {\r\n constructor(name) {\r\n this.name = name;\r\n this.providers = new Map();\r\n }\r\n /**\r\n *\r\n * @param component Component being added\r\n * @param overwrite When a component with the same name has already been registered,\r\n * if overwrite is true: overwrite the existing component with the new component and create a new\r\n * provider with the new component. It can be useful in tests where you want to use different mocks\r\n * for different tests.\r\n * if overwrite is false: throw an exception\r\n */\r\n addComponent(component) {\r\n const provider = this.getProvider(component.name);\r\n if (provider.isComponentSet()) {\r\n throw new Error(`Component ${component.name} has already been registered with ${this.name}`);\r\n }\r\n provider.setComponent(component);\r\n }\r\n addOrOverwriteComponent(component) {\r\n const provider = this.getProvider(component.name);\r\n if (provider.isComponentSet()) {\r\n // delete the existing provider from the container, so we can register the new component\r\n this.providers.delete(component.name);\r\n }\r\n this.addComponent(component);\r\n }\r\n /**\r\n * getProvider provides a type safe interface where it can only be called with a field name\r\n * present in NameServiceMapping interface.\r\n *\r\n * Firebase SDKs providing services should extend NameServiceMapping interface to register\r\n * themselves.\r\n */\r\n getProvider(name) {\r\n if (this.providers.has(name)) {\r\n return this.providers.get(name);\r\n }\r\n // create a Provider for a service that hasn't registered with Firebase\r\n const provider = new Provider(name, this);\r\n this.providers.set(name, provider);\r\n return provider;\r\n }\r\n getProviders() {\r\n return Array.from(this.providers.values());\r\n }\r\n}\n\nexport { Component, ComponentContainer, Provider };\n//# sourceMappingURL=index.esm2017.js.map\n","/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * A container for all of the Logger instances\r\n */\r\nconst instances = [];\r\n/**\r\n * The JS SDK supports 5 log levels and also allows a user the ability to\r\n * silence the logs altogether.\r\n *\r\n * The order is a follows:\r\n * DEBUG < VERBOSE < INFO < WARN < ERROR\r\n *\r\n * All of the log types above the current log level will be captured (i.e. if\r\n * you set the log level to `INFO`, errors will still be logged, but `DEBUG` and\r\n * `VERBOSE` logs will not)\r\n */\r\nvar LogLevel;\r\n(function (LogLevel) {\r\n LogLevel[LogLevel[\"DEBUG\"] = 0] = \"DEBUG\";\r\n LogLevel[LogLevel[\"VERBOSE\"] = 1] = \"VERBOSE\";\r\n LogLevel[LogLevel[\"INFO\"] = 2] = \"INFO\";\r\n LogLevel[LogLevel[\"WARN\"] = 3] = \"WARN\";\r\n LogLevel[LogLevel[\"ERROR\"] = 4] = \"ERROR\";\r\n LogLevel[LogLevel[\"SILENT\"] = 5] = \"SILENT\";\r\n})(LogLevel || (LogLevel = {}));\r\nconst levelStringToEnum = {\r\n 'debug': LogLevel.DEBUG,\r\n 'verbose': LogLevel.VERBOSE,\r\n 'info': LogLevel.INFO,\r\n 'warn': LogLevel.WARN,\r\n 'error': LogLevel.ERROR,\r\n 'silent': LogLevel.SILENT\r\n};\r\n/**\r\n * The default log level\r\n */\r\nconst defaultLogLevel = LogLevel.INFO;\r\n/**\r\n * By default, `console.debug` is not displayed in the developer console (in\r\n * chrome). To avoid forcing users to have to opt-in to these logs twice\r\n * (i.e. once for firebase, and once in the console), we are sending `DEBUG`\r\n * logs to the `console.log` function.\r\n */\r\nconst ConsoleMethod = {\r\n [LogLevel.DEBUG]: 'log',\r\n [LogLevel.VERBOSE]: 'log',\r\n [LogLevel.INFO]: 'info',\r\n [LogLevel.WARN]: 'warn',\r\n [LogLevel.ERROR]: 'error'\r\n};\r\n/**\r\n * The default log handler will forward DEBUG, VERBOSE, INFO, WARN, and ERROR\r\n * messages on to their corresponding console counterparts (if the log method\r\n * is supported by the current log level)\r\n */\r\nconst defaultLogHandler = (instance, logType, ...args) => {\r\n if (logType < instance.logLevel) {\r\n return;\r\n }\r\n const now = new Date().toISOString();\r\n const method = ConsoleMethod[logType];\r\n if (method) {\r\n console[method](`[${now}] ${instance.name}:`, ...args);\r\n }\r\n else {\r\n throw new Error(`Attempted to log a message with an invalid logType (value: ${logType})`);\r\n }\r\n};\r\nclass Logger {\r\n /**\r\n * Gives you an instance of a Logger to capture messages according to\r\n * Firebase's logging scheme.\r\n *\r\n * @param name The name that the logs will be associated with\r\n */\r\n constructor(name) {\r\n this.name = name;\r\n /**\r\n * The log level of the given Logger instance.\r\n */\r\n this._logLevel = defaultLogLevel;\r\n /**\r\n * The main (internal) log handler for the Logger instance.\r\n * Can be set to a new function in internal package code but not by user.\r\n */\r\n this._logHandler = defaultLogHandler;\r\n /**\r\n * The optional, additional, user-defined log handler for the Logger instance.\r\n */\r\n this._userLogHandler = null;\r\n /**\r\n * Capture the current instance for later use\r\n */\r\n instances.push(this);\r\n }\r\n get logLevel() {\r\n return this._logLevel;\r\n }\r\n set logLevel(val) {\r\n if (!(val in LogLevel)) {\r\n throw new TypeError(`Invalid value \"${val}\" assigned to \\`logLevel\\``);\r\n }\r\n this._logLevel = val;\r\n }\r\n // Workaround for setter/getter having to be the same type.\r\n setLogLevel(val) {\r\n this._logLevel = typeof val === 'string' ? levelStringToEnum[val] : val;\r\n }\r\n get logHandler() {\r\n return this._logHandler;\r\n }\r\n set logHandler(val) {\r\n if (typeof val !== 'function') {\r\n throw new TypeError('Value assigned to `logHandler` must be a function');\r\n }\r\n this._logHandler = val;\r\n }\r\n get userLogHandler() {\r\n return this._userLogHandler;\r\n }\r\n set userLogHandler(val) {\r\n this._userLogHandler = val;\r\n }\r\n /**\r\n * The functions below are all based on the `console` interface\r\n */\r\n debug(...args) {\r\n this._userLogHandler && this._userLogHandler(this, LogLevel.DEBUG, ...args);\r\n this._logHandler(this, LogLevel.DEBUG, ...args);\r\n }\r\n log(...args) {\r\n this._userLogHandler &&\r\n this._userLogHandler(this, LogLevel.VERBOSE, ...args);\r\n this._logHandler(this, LogLevel.VERBOSE, ...args);\r\n }\r\n info(...args) {\r\n this._userLogHandler && this._userLogHandler(this, LogLevel.INFO, ...args);\r\n this._logHandler(this, LogLevel.INFO, ...args);\r\n }\r\n warn(...args) {\r\n this._userLogHandler && this._userLogHandler(this, LogLevel.WARN, ...args);\r\n this._logHandler(this, LogLevel.WARN, ...args);\r\n }\r\n error(...args) {\r\n this._userLogHandler && this._userLogHandler(this, LogLevel.ERROR, ...args);\r\n this._logHandler(this, LogLevel.ERROR, ...args);\r\n }\r\n}\r\nfunction setLogLevel(level) {\r\n instances.forEach(inst => {\r\n inst.setLogLevel(level);\r\n });\r\n}\r\nfunction setUserLogHandler(logCallback, options) {\r\n for (const instance of instances) {\r\n let customLogLevel = null;\r\n if (options && options.level) {\r\n customLogLevel = levelStringToEnum[options.level];\r\n }\r\n if (logCallback === null) {\r\n instance.userLogHandler = null;\r\n }\r\n else {\r\n instance.userLogHandler = (instance, level, ...args) => {\r\n const message = args\r\n .map(arg => {\r\n if (arg == null) {\r\n return null;\r\n }\r\n else if (typeof arg === 'string') {\r\n return arg;\r\n }\r\n else if (typeof arg === 'number' || typeof arg === 'boolean') {\r\n return arg.toString();\r\n }\r\n else if (arg instanceof Error) {\r\n return arg.message;\r\n }\r\n else {\r\n try {\r\n return JSON.stringify(arg);\r\n }\r\n catch (ignored) {\r\n return null;\r\n }\r\n }\r\n })\r\n .filter(arg => arg)\r\n .join(' ');\r\n if (level >= (customLogLevel !== null && customLogLevel !== void 0 ? customLogLevel : instance.logLevel)) {\r\n logCallback({\r\n level: LogLevel[level].toLowerCase(),\r\n message,\r\n args,\r\n type: instance.name\r\n });\r\n }\r\n };\r\n }\r\n }\r\n}\n\nexport { LogLevel, Logger, setLogLevel, setUserLogHandler };\n//# sourceMappingURL=index.esm2017.js.map\n","const instanceOfAny = (object, constructors) => constructors.some((c) => object instanceof c);\n\nlet idbProxyableTypes;\nlet cursorAdvanceMethods;\n// This is a function to prevent it throwing up in node environments.\nfunction getIdbProxyableTypes() {\n return (idbProxyableTypes ||\n (idbProxyableTypes = [\n IDBDatabase,\n IDBObjectStore,\n IDBIndex,\n IDBCursor,\n IDBTransaction,\n ]));\n}\n// This is a function to prevent it throwing up in node environments.\nfunction getCursorAdvanceMethods() {\n return (cursorAdvanceMethods ||\n (cursorAdvanceMethods = [\n IDBCursor.prototype.advance,\n IDBCursor.prototype.continue,\n IDBCursor.prototype.continuePrimaryKey,\n ]));\n}\nconst cursorRequestMap = new WeakMap();\nconst transactionDoneMap = new WeakMap();\nconst transactionStoreNamesMap = new WeakMap();\nconst transformCache = new WeakMap();\nconst reverseTransformCache = new WeakMap();\nfunction promisifyRequest(request) {\n const promise = new Promise((resolve, reject) => {\n const unlisten = () => {\n request.removeEventListener('success', success);\n request.removeEventListener('error', error);\n };\n const success = () => {\n resolve(wrap(request.result));\n unlisten();\n };\n const error = () => {\n reject(request.error);\n unlisten();\n };\n request.addEventListener('success', success);\n request.addEventListener('error', error);\n });\n promise\n .then((value) => {\n // Since cursoring reuses the IDBRequest (*sigh*), we cache it for later retrieval\n // (see wrapFunction).\n if (value instanceof IDBCursor) {\n cursorRequestMap.set(value, request);\n }\n // Catching to avoid \"Uncaught Promise exceptions\"\n })\n .catch(() => { });\n // This mapping exists in reverseTransformCache but doesn't doesn't exist in transformCache. This\n // is because we create many promises from a single IDBRequest.\n reverseTransformCache.set(promise, request);\n return promise;\n}\nfunction cacheDonePromiseForTransaction(tx) {\n // Early bail if we've already created a done promise for this transaction.\n if (transactionDoneMap.has(tx))\n return;\n const done = new Promise((resolve, reject) => {\n const unlisten = () => {\n tx.removeEventListener('complete', complete);\n tx.removeEventListener('error', error);\n tx.removeEventListener('abort', error);\n };\n const complete = () => {\n resolve();\n unlisten();\n };\n const error = () => {\n reject(tx.error || new DOMException('AbortError', 'AbortError'));\n unlisten();\n };\n tx.addEventListener('complete', complete);\n tx.addEventListener('error', error);\n tx.addEventListener('abort', error);\n });\n // Cache it for later retrieval.\n transactionDoneMap.set(tx, done);\n}\nlet idbProxyTraps = {\n get(target, prop, receiver) {\n if (target instanceof IDBTransaction) {\n // Special handling for transaction.done.\n if (prop === 'done')\n return transactionDoneMap.get(target);\n // Polyfill for objectStoreNames because of Edge.\n if (prop === 'objectStoreNames') {\n return target.objectStoreNames || transactionStoreNamesMap.get(target);\n }\n // Make tx.store return the only store in the transaction, or undefined if there are many.\n if (prop === 'store') {\n return receiver.objectStoreNames[1]\n ? undefined\n : receiver.objectStore(receiver.objectStoreNames[0]);\n }\n }\n // Else transform whatever we get back.\n return wrap(target[prop]);\n },\n set(target, prop, value) {\n target[prop] = value;\n return true;\n },\n has(target, prop) {\n if (target instanceof IDBTransaction &&\n (prop === 'done' || prop === 'store')) {\n return true;\n }\n return prop in target;\n },\n};\nfunction replaceTraps(callback) {\n idbProxyTraps = callback(idbProxyTraps);\n}\nfunction wrapFunction(func) {\n // Due to expected object equality (which is enforced by the caching in `wrap`), we\n // only create one new func per func.\n // Edge doesn't support objectStoreNames (booo), so we polyfill it here.\n if (func === IDBDatabase.prototype.transaction &&\n !('objectStoreNames' in IDBTransaction.prototype)) {\n return function (storeNames, ...args) {\n const tx = func.call(unwrap(this), storeNames, ...args);\n transactionStoreNamesMap.set(tx, storeNames.sort ? storeNames.sort() : [storeNames]);\n return wrap(tx);\n };\n }\n // Cursor methods are special, as the behaviour is a little more different to standard IDB. In\n // IDB, you advance the cursor and wait for a new 'success' on the IDBRequest that gave you the\n // cursor. It's kinda like a promise that can resolve with many values. That doesn't make sense\n // with real promises, so each advance methods returns a new promise for the cursor object, or\n // undefined if the end of the cursor has been reached.\n if (getCursorAdvanceMethods().includes(func)) {\n return function (...args) {\n // Calling the original function with the proxy as 'this' causes ILLEGAL INVOCATION, so we use\n // the original object.\n func.apply(unwrap(this), args);\n return wrap(cursorRequestMap.get(this));\n };\n }\n return function (...args) {\n // Calling the original function with the proxy as 'this' causes ILLEGAL INVOCATION, so we use\n // the original object.\n return wrap(func.apply(unwrap(this), args));\n };\n}\nfunction transformCachableValue(value) {\n if (typeof value === 'function')\n return wrapFunction(value);\n // This doesn't return, it just creates a 'done' promise for the transaction,\n // which is later returned for transaction.done (see idbObjectHandler).\n if (value instanceof IDBTransaction)\n cacheDonePromiseForTransaction(value);\n if (instanceOfAny(value, getIdbProxyableTypes()))\n return new Proxy(value, idbProxyTraps);\n // Return the same value back if we're not going to transform it.\n return value;\n}\nfunction wrap(value) {\n // We sometimes generate multiple promises from a single IDBRequest (eg when cursoring), because\n // IDB is weird and a single IDBRequest can yield many responses, so these can't be cached.\n if (value instanceof IDBRequest)\n return promisifyRequest(value);\n // If we've already transformed this value before, reuse the transformed value.\n // This is faster, but it also provides object equality.\n if (transformCache.has(value))\n return transformCache.get(value);\n const newValue = transformCachableValue(value);\n // Not all types are transformed.\n // These may be primitive types, so they can't be WeakMap keys.\n if (newValue !== value) {\n transformCache.set(value, newValue);\n reverseTransformCache.set(newValue, value);\n }\n return newValue;\n}\nconst unwrap = (value) => reverseTransformCache.get(value);\n\nexport { reverseTransformCache as a, instanceOfAny as i, replaceTraps as r, unwrap as u, wrap as w };\n","import { w as wrap, r as replaceTraps } from './wrap-idb-value.js';\nexport { u as unwrap, w as wrap } from './wrap-idb-value.js';\n\n/**\n * Open a database.\n *\n * @param name Name of the database.\n * @param version Schema version.\n * @param callbacks Additional callbacks.\n */\nfunction openDB(name, version, { blocked, upgrade, blocking, terminated } = {}) {\n const request = indexedDB.open(name, version);\n const openPromise = wrap(request);\n if (upgrade) {\n request.addEventListener('upgradeneeded', (event) => {\n upgrade(wrap(request.result), event.oldVersion, event.newVersion, wrap(request.transaction), event);\n });\n }\n if (blocked) {\n request.addEventListener('blocked', (event) => blocked(\n // Casting due to https://github.com/microsoft/TypeScript-DOM-lib-generator/pull/1405\n event.oldVersion, event.newVersion, event));\n }\n openPromise\n .then((db) => {\n if (terminated)\n db.addEventListener('close', () => terminated());\n if (blocking) {\n db.addEventListener('versionchange', (event) => blocking(event.oldVersion, event.newVersion, event));\n }\n })\n .catch(() => { });\n return openPromise;\n}\n/**\n * Delete a database.\n *\n * @param name Name of the database.\n */\nfunction deleteDB(name, { blocked } = {}) {\n const request = indexedDB.deleteDatabase(name);\n if (blocked) {\n request.addEventListener('blocked', (event) => blocked(\n // Casting due to https://github.com/microsoft/TypeScript-DOM-lib-generator/pull/1405\n event.oldVersion, event));\n }\n return wrap(request).then(() => undefined);\n}\n\nconst readMethods = ['get', 'getKey', 'getAll', 'getAllKeys', 'count'];\nconst writeMethods = ['put', 'add', 'delete', 'clear'];\nconst cachedMethods = new Map();\nfunction getMethod(target, prop) {\n if (!(target instanceof IDBDatabase &&\n !(prop in target) &&\n typeof prop === 'string')) {\n return;\n }\n if (cachedMethods.get(prop))\n return cachedMethods.get(prop);\n const targetFuncName = prop.replace(/FromIndex$/, '');\n const useIndex = prop !== targetFuncName;\n const isWrite = writeMethods.includes(targetFuncName);\n if (\n // Bail if the target doesn't exist on the target. Eg, getAll isn't in Edge.\n !(targetFuncName in (useIndex ? IDBIndex : IDBObjectStore).prototype) ||\n !(isWrite || readMethods.includes(targetFuncName))) {\n return;\n }\n const method = async function (storeName, ...args) {\n // isWrite ? 'readwrite' : undefined gzipps better, but fails in Edge :(\n const tx = this.transaction(storeName, isWrite ? 'readwrite' : 'readonly');\n let target = tx.store;\n if (useIndex)\n target = target.index(args.shift());\n // Must reject if op rejects.\n // If it's a write operation, must reject if tx.done rejects.\n // Must reject with op rejection first.\n // Must resolve with op value.\n // Must handle both promises (no unhandled rejections)\n return (await Promise.all([\n target[targetFuncName](...args),\n isWrite && tx.done,\n ]))[0];\n };\n cachedMethods.set(prop, method);\n return method;\n}\nreplaceTraps((oldTraps) => ({\n ...oldTraps,\n get: (target, prop, receiver) => getMethod(target, prop) || oldTraps.get(target, prop, receiver),\n has: (target, prop) => !!getMethod(target, prop) || oldTraps.has(target, prop),\n}));\n\nexport { deleteDB, openDB };\n","import { Component, ComponentContainer } from '@firebase/component';\nimport { Logger, setUserLogHandler, setLogLevel as setLogLevel$1 } from '@firebase/logger';\nimport { ErrorFactory, getDefaultAppConfig, deepEqual, isBrowser, isWebWorker, FirebaseError, base64urlEncodeWithoutPadding, isIndexedDBAvailable, validateIndexedDBOpenable } from '@firebase/util';\nexport { FirebaseError } from '@firebase/util';\nimport { openDB } from 'idb';\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nclass PlatformLoggerServiceImpl {\r\n constructor(container) {\r\n this.container = container;\r\n }\r\n // In initial implementation, this will be called by installations on\r\n // auth token refresh, and installations will send this string.\r\n getPlatformInfoString() {\r\n const providers = this.container.getProviders();\r\n // Loop through providers and get library/version pairs from any that are\r\n // version components.\r\n return providers\r\n .map(provider => {\r\n if (isVersionServiceProvider(provider)) {\r\n const service = provider.getImmediate();\r\n return `${service.library}/${service.version}`;\r\n }\r\n else {\r\n return null;\r\n }\r\n })\r\n .filter(logString => logString)\r\n .join(' ');\r\n }\r\n}\r\n/**\r\n *\r\n * @param provider check if this provider provides a VersionService\r\n *\r\n * NOTE: Using Provider<'app-version'> is a hack to indicate that the provider\r\n * provides VersionService. The provider is not necessarily a 'app-version'\r\n * provider.\r\n */\r\nfunction isVersionServiceProvider(provider) {\r\n const component = provider.getComponent();\r\n return (component === null || component === void 0 ? void 0 : component.type) === \"VERSION\" /* ComponentType.VERSION */;\r\n}\n\nconst name$q = \"@firebase/app\";\nconst version$1 = \"0.10.13\";\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst logger = new Logger('@firebase/app');\n\nconst name$p = \"@firebase/app-compat\";\n\nconst name$o = \"@firebase/analytics-compat\";\n\nconst name$n = \"@firebase/analytics\";\n\nconst name$m = \"@firebase/app-check-compat\";\n\nconst name$l = \"@firebase/app-check\";\n\nconst name$k = \"@firebase/auth\";\n\nconst name$j = \"@firebase/auth-compat\";\n\nconst name$i = \"@firebase/database\";\n\nconst name$h = \"@firebase/data-connect\";\n\nconst name$g = \"@firebase/database-compat\";\n\nconst name$f = \"@firebase/functions\";\n\nconst name$e = \"@firebase/functions-compat\";\n\nconst name$d = \"@firebase/installations\";\n\nconst name$c = \"@firebase/installations-compat\";\n\nconst name$b = \"@firebase/messaging\";\n\nconst name$a = \"@firebase/messaging-compat\";\n\nconst name$9 = \"@firebase/performance\";\n\nconst name$8 = \"@firebase/performance-compat\";\n\nconst name$7 = \"@firebase/remote-config\";\n\nconst name$6 = \"@firebase/remote-config-compat\";\n\nconst name$5 = \"@firebase/storage\";\n\nconst name$4 = \"@firebase/storage-compat\";\n\nconst name$3 = \"@firebase/firestore\";\n\nconst name$2 = \"@firebase/vertexai-preview\";\n\nconst name$1 = \"@firebase/firestore-compat\";\n\nconst name = \"firebase\";\nconst version = \"10.14.1\";\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * The default app name\r\n *\r\n * @internal\r\n */\r\nconst DEFAULT_ENTRY_NAME = '[DEFAULT]';\r\nconst PLATFORM_LOG_STRING = {\r\n [name$q]: 'fire-core',\r\n [name$p]: 'fire-core-compat',\r\n [name$n]: 'fire-analytics',\r\n [name$o]: 'fire-analytics-compat',\r\n [name$l]: 'fire-app-check',\r\n [name$m]: 'fire-app-check-compat',\r\n [name$k]: 'fire-auth',\r\n [name$j]: 'fire-auth-compat',\r\n [name$i]: 'fire-rtdb',\r\n [name$h]: 'fire-data-connect',\r\n [name$g]: 'fire-rtdb-compat',\r\n [name$f]: 'fire-fn',\r\n [name$e]: 'fire-fn-compat',\r\n [name$d]: 'fire-iid',\r\n [name$c]: 'fire-iid-compat',\r\n [name$b]: 'fire-fcm',\r\n [name$a]: 'fire-fcm-compat',\r\n [name$9]: 'fire-perf',\r\n [name$8]: 'fire-perf-compat',\r\n [name$7]: 'fire-rc',\r\n [name$6]: 'fire-rc-compat',\r\n [name$5]: 'fire-gcs',\r\n [name$4]: 'fire-gcs-compat',\r\n [name$3]: 'fire-fst',\r\n [name$1]: 'fire-fst-compat',\r\n [name$2]: 'fire-vertex',\r\n 'fire-js': 'fire-js',\r\n [name]: 'fire-js-all'\r\n};\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @internal\r\n */\r\nconst _apps = new Map();\r\n/**\r\n * @internal\r\n */\r\nconst _serverApps = new Map();\r\n/**\r\n * Registered components.\r\n *\r\n * @internal\r\n */\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nconst _components = new Map();\r\n/**\r\n * @param component - the component being added to this app's container\r\n *\r\n * @internal\r\n */\r\nfunction _addComponent(app, component) {\r\n try {\r\n app.container.addComponent(component);\r\n }\r\n catch (e) {\r\n logger.debug(`Component ${component.name} failed to register with FirebaseApp ${app.name}`, e);\r\n }\r\n}\r\n/**\r\n *\r\n * @internal\r\n */\r\nfunction _addOrOverwriteComponent(app, component) {\r\n app.container.addOrOverwriteComponent(component);\r\n}\r\n/**\r\n *\r\n * @param component - the component to register\r\n * @returns whether or not the component is registered successfully\r\n *\r\n * @internal\r\n */\r\nfunction _registerComponent(component) {\r\n const componentName = component.name;\r\n if (_components.has(componentName)) {\r\n logger.debug(`There were multiple attempts to register component ${componentName}.`);\r\n return false;\r\n }\r\n _components.set(componentName, component);\r\n // add the component to existing app instances\r\n for (const app of _apps.values()) {\r\n _addComponent(app, component);\r\n }\r\n for (const serverApp of _serverApps.values()) {\r\n _addComponent(serverApp, component);\r\n }\r\n return true;\r\n}\r\n/**\r\n *\r\n * @param app - FirebaseApp instance\r\n * @param name - service name\r\n *\r\n * @returns the provider for the service with the matching name\r\n *\r\n * @internal\r\n */\r\nfunction _getProvider(app, name) {\r\n const heartbeatController = app.container\r\n .getProvider('heartbeat')\r\n .getImmediate({ optional: true });\r\n if (heartbeatController) {\r\n void heartbeatController.triggerHeartbeat();\r\n }\r\n return app.container.getProvider(name);\r\n}\r\n/**\r\n *\r\n * @param app - FirebaseApp instance\r\n * @param name - service name\r\n * @param instanceIdentifier - service instance identifier in case the service supports multiple instances\r\n *\r\n * @internal\r\n */\r\nfunction _removeServiceInstance(app, name, instanceIdentifier = DEFAULT_ENTRY_NAME) {\r\n _getProvider(app, name).clearInstance(instanceIdentifier);\r\n}\r\n/**\r\n *\r\n * @param obj - an object of type FirebaseApp or FirebaseOptions.\r\n *\r\n * @returns true if the provide object is of type FirebaseApp.\r\n *\r\n * @internal\r\n */\r\nfunction _isFirebaseApp(obj) {\r\n return obj.options !== undefined;\r\n}\r\n/**\r\n *\r\n * @param obj - an object of type FirebaseApp.\r\n *\r\n * @returns true if the provided object is of type FirebaseServerAppImpl.\r\n *\r\n * @internal\r\n */\r\nfunction _isFirebaseServerApp(obj) {\r\n return obj.settings !== undefined;\r\n}\r\n/**\r\n * Test only\r\n *\r\n * @internal\r\n */\r\nfunction _clearComponents() {\r\n _components.clear();\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst ERRORS = {\r\n [\"no-app\" /* AppError.NO_APP */]: \"No Firebase App '{$appName}' has been created - \" +\r\n 'call initializeApp() first',\r\n [\"bad-app-name\" /* AppError.BAD_APP_NAME */]: \"Illegal App name: '{$appName}'\",\r\n [\"duplicate-app\" /* AppError.DUPLICATE_APP */]: \"Firebase App named '{$appName}' already exists with different options or config\",\r\n [\"app-deleted\" /* AppError.APP_DELETED */]: \"Firebase App named '{$appName}' already deleted\",\r\n [\"server-app-deleted\" /* AppError.SERVER_APP_DELETED */]: 'Firebase Server App has been deleted',\r\n [\"no-options\" /* AppError.NO_OPTIONS */]: 'Need to provide options, when not being deployed to hosting via source.',\r\n [\"invalid-app-argument\" /* AppError.INVALID_APP_ARGUMENT */]: 'firebase.{$appName}() takes either no argument or a ' +\r\n 'Firebase App instance.',\r\n [\"invalid-log-argument\" /* AppError.INVALID_LOG_ARGUMENT */]: 'First argument to `onLog` must be null or a function.',\r\n [\"idb-open\" /* AppError.IDB_OPEN */]: 'Error thrown when opening IndexedDB. Original error: {$originalErrorMessage}.',\r\n [\"idb-get\" /* AppError.IDB_GET */]: 'Error thrown when reading from IndexedDB. Original error: {$originalErrorMessage}.',\r\n [\"idb-set\" /* AppError.IDB_WRITE */]: 'Error thrown when writing to IndexedDB. Original error: {$originalErrorMessage}.',\r\n [\"idb-delete\" /* AppError.IDB_DELETE */]: 'Error thrown when deleting from IndexedDB. Original error: {$originalErrorMessage}.',\r\n [\"finalization-registry-not-supported\" /* AppError.FINALIZATION_REGISTRY_NOT_SUPPORTED */]: 'FirebaseServerApp deleteOnDeref field defined but the JS runtime does not support FinalizationRegistry.',\r\n [\"invalid-server-app-environment\" /* AppError.INVALID_SERVER_APP_ENVIRONMENT */]: 'FirebaseServerApp is not for use in browser environments.'\r\n};\r\nconst ERROR_FACTORY = new ErrorFactory('app', 'Firebase', ERRORS);\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nclass FirebaseAppImpl {\r\n constructor(options, config, container) {\r\n this._isDeleted = false;\r\n this._options = Object.assign({}, options);\r\n this._config = Object.assign({}, config);\r\n this._name = config.name;\r\n this._automaticDataCollectionEnabled =\r\n config.automaticDataCollectionEnabled;\r\n this._container = container;\r\n this.container.addComponent(new Component('app', () => this, \"PUBLIC\" /* ComponentType.PUBLIC */));\r\n }\r\n get automaticDataCollectionEnabled() {\r\n this.checkDestroyed();\r\n return this._automaticDataCollectionEnabled;\r\n }\r\n set automaticDataCollectionEnabled(val) {\r\n this.checkDestroyed();\r\n this._automaticDataCollectionEnabled = val;\r\n }\r\n get name() {\r\n this.checkDestroyed();\r\n return this._name;\r\n }\r\n get options() {\r\n this.checkDestroyed();\r\n return this._options;\r\n }\r\n get config() {\r\n this.checkDestroyed();\r\n return this._config;\r\n }\r\n get container() {\r\n return this._container;\r\n }\r\n get isDeleted() {\r\n return this._isDeleted;\r\n }\r\n set isDeleted(val) {\r\n this._isDeleted = val;\r\n }\r\n /**\r\n * This function will throw an Error if the App has already been deleted -\r\n * use before performing API actions on the App.\r\n */\r\n checkDestroyed() {\r\n if (this.isDeleted) {\r\n throw ERROR_FACTORY.create(\"app-deleted\" /* AppError.APP_DELETED */, { appName: this._name });\r\n }\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2023 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nclass FirebaseServerAppImpl extends FirebaseAppImpl {\r\n constructor(options, serverConfig, name, container) {\r\n // Build configuration parameters for the FirebaseAppImpl base class.\r\n const automaticDataCollectionEnabled = serverConfig.automaticDataCollectionEnabled !== undefined\r\n ? serverConfig.automaticDataCollectionEnabled\r\n : false;\r\n // Create the FirebaseAppSettings object for the FirebaseAppImp constructor.\r\n const config = {\r\n name,\r\n automaticDataCollectionEnabled\r\n };\r\n if (options.apiKey !== undefined) {\r\n // Construct the parent FirebaseAppImp object.\r\n super(options, config, container);\r\n }\r\n else {\r\n const appImpl = options;\r\n super(appImpl.options, config, container);\r\n }\r\n // Now construct the data for the FirebaseServerAppImpl.\r\n this._serverConfig = Object.assign({ automaticDataCollectionEnabled }, serverConfig);\r\n this._finalizationRegistry = null;\r\n if (typeof FinalizationRegistry !== 'undefined') {\r\n this._finalizationRegistry = new FinalizationRegistry(() => {\r\n this.automaticCleanup();\r\n });\r\n }\r\n this._refCount = 0;\r\n this.incRefCount(this._serverConfig.releaseOnDeref);\r\n // Do not retain a hard reference to the dref object, otherwise the FinalizationRegistry\r\n // will never trigger.\r\n this._serverConfig.releaseOnDeref = undefined;\r\n serverConfig.releaseOnDeref = undefined;\r\n registerVersion(name$q, version$1, 'serverapp');\r\n }\r\n toJSON() {\r\n return undefined;\r\n }\r\n get refCount() {\r\n return this._refCount;\r\n }\r\n // Increment the reference count of this server app. If an object is provided, register it\r\n // with the finalization registry.\r\n incRefCount(obj) {\r\n if (this.isDeleted) {\r\n return;\r\n }\r\n this._refCount++;\r\n if (obj !== undefined && this._finalizationRegistry !== null) {\r\n this._finalizationRegistry.register(obj, this);\r\n }\r\n }\r\n // Decrement the reference count.\r\n decRefCount() {\r\n if (this.isDeleted) {\r\n return 0;\r\n }\r\n return --this._refCount;\r\n }\r\n // Invoked by the FinalizationRegistry callback to note that this app should go through its\r\n // reference counts and delete itself if no reference count remain. The coordinating logic that\r\n // handles this is in deleteApp(...).\r\n automaticCleanup() {\r\n void deleteApp(this);\r\n }\r\n get settings() {\r\n this.checkDestroyed();\r\n return this._serverConfig;\r\n }\r\n /**\r\n * This function will throw an Error if the App has already been deleted -\r\n * use before performing API actions on the App.\r\n */\r\n checkDestroyed() {\r\n if (this.isDeleted) {\r\n throw ERROR_FACTORY.create(\"server-app-deleted\" /* AppError.SERVER_APP_DELETED */);\r\n }\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * The current SDK version.\r\n *\r\n * @public\r\n */\r\nconst SDK_VERSION = version;\r\nfunction initializeApp(_options, rawConfig = {}) {\r\n let options = _options;\r\n if (typeof rawConfig !== 'object') {\r\n const name = rawConfig;\r\n rawConfig = { name };\r\n }\r\n const config = Object.assign({ name: DEFAULT_ENTRY_NAME, automaticDataCollectionEnabled: false }, rawConfig);\r\n const name = config.name;\r\n if (typeof name !== 'string' || !name) {\r\n throw ERROR_FACTORY.create(\"bad-app-name\" /* AppError.BAD_APP_NAME */, {\r\n appName: String(name)\r\n });\r\n }\r\n options || (options = getDefaultAppConfig());\r\n if (!options) {\r\n throw ERROR_FACTORY.create(\"no-options\" /* AppError.NO_OPTIONS */);\r\n }\r\n const existingApp = _apps.get(name);\r\n if (existingApp) {\r\n // return the existing app if options and config deep equal the ones in the existing app.\r\n if (deepEqual(options, existingApp.options) &&\r\n deepEqual(config, existingApp.config)) {\r\n return existingApp;\r\n }\r\n else {\r\n throw ERROR_FACTORY.create(\"duplicate-app\" /* AppError.DUPLICATE_APP */, { appName: name });\r\n }\r\n }\r\n const container = new ComponentContainer(name);\r\n for (const component of _components.values()) {\r\n container.addComponent(component);\r\n }\r\n const newApp = new FirebaseAppImpl(options, config, container);\r\n _apps.set(name, newApp);\r\n return newApp;\r\n}\r\nfunction initializeServerApp(_options, _serverAppConfig) {\r\n if (isBrowser() && !isWebWorker()) {\r\n // FirebaseServerApp isn't designed to be run in browsers.\r\n throw ERROR_FACTORY.create(\"invalid-server-app-environment\" /* AppError.INVALID_SERVER_APP_ENVIRONMENT */);\r\n }\r\n if (_serverAppConfig.automaticDataCollectionEnabled === undefined) {\r\n _serverAppConfig.automaticDataCollectionEnabled = false;\r\n }\r\n let appOptions;\r\n if (_isFirebaseApp(_options)) {\r\n appOptions = _options.options;\r\n }\r\n else {\r\n appOptions = _options;\r\n }\r\n // Build an app name based on a hash of the configuration options.\r\n const nameObj = Object.assign(Object.assign({}, _serverAppConfig), appOptions);\r\n // However, Do not mangle the name based on releaseOnDeref, since it will vary between the\r\n // construction of FirebaseServerApp instances. For example, if the object is the request headers.\r\n if (nameObj.releaseOnDeref !== undefined) {\r\n delete nameObj.releaseOnDeref;\r\n }\r\n const hashCode = (s) => {\r\n return [...s].reduce((hash, c) => (Math.imul(31, hash) + c.charCodeAt(0)) | 0, 0);\r\n };\r\n if (_serverAppConfig.releaseOnDeref !== undefined) {\r\n if (typeof FinalizationRegistry === 'undefined') {\r\n throw ERROR_FACTORY.create(\"finalization-registry-not-supported\" /* AppError.FINALIZATION_REGISTRY_NOT_SUPPORTED */, {});\r\n }\r\n }\r\n const nameString = '' + hashCode(JSON.stringify(nameObj));\r\n const existingApp = _serverApps.get(nameString);\r\n if (existingApp) {\r\n existingApp.incRefCount(_serverAppConfig.releaseOnDeref);\r\n return existingApp;\r\n }\r\n const container = new ComponentContainer(nameString);\r\n for (const component of _components.values()) {\r\n container.addComponent(component);\r\n }\r\n const newApp = new FirebaseServerAppImpl(appOptions, _serverAppConfig, nameString, container);\r\n _serverApps.set(nameString, newApp);\r\n return newApp;\r\n}\r\n/**\r\n * Retrieves a {@link @firebase/app#FirebaseApp} instance.\r\n *\r\n * When called with no arguments, the default app is returned. When an app name\r\n * is provided, the app corresponding to that name is returned.\r\n *\r\n * An exception is thrown if the app being retrieved has not yet been\r\n * initialized.\r\n *\r\n * @example\r\n * ```javascript\r\n * // Return the default app\r\n * const app = getApp();\r\n * ```\r\n *\r\n * @example\r\n * ```javascript\r\n * // Return a named app\r\n * const otherApp = getApp(\"otherApp\");\r\n * ```\r\n *\r\n * @param name - Optional name of the app to return. If no name is\r\n * provided, the default is `\"[DEFAULT]\"`.\r\n *\r\n * @returns The app corresponding to the provided app name.\r\n * If no app name is provided, the default app is returned.\r\n *\r\n * @public\r\n */\r\nfunction getApp(name = DEFAULT_ENTRY_NAME) {\r\n const app = _apps.get(name);\r\n if (!app && name === DEFAULT_ENTRY_NAME && getDefaultAppConfig()) {\r\n return initializeApp();\r\n }\r\n if (!app) {\r\n throw ERROR_FACTORY.create(\"no-app\" /* AppError.NO_APP */, { appName: name });\r\n }\r\n return app;\r\n}\r\n/**\r\n * A (read-only) array of all initialized apps.\r\n * @public\r\n */\r\nfunction getApps() {\r\n return Array.from(_apps.values());\r\n}\r\n/**\r\n * Renders this app unusable and frees the resources of all associated\r\n * services.\r\n *\r\n * @example\r\n * ```javascript\r\n * deleteApp(app)\r\n * .then(function() {\r\n * console.log(\"App deleted successfully\");\r\n * })\r\n * .catch(function(error) {\r\n * console.log(\"Error deleting app:\", error);\r\n * });\r\n * ```\r\n *\r\n * @public\r\n */\r\nasync function deleteApp(app) {\r\n let cleanupProviders = false;\r\n const name = app.name;\r\n if (_apps.has(name)) {\r\n cleanupProviders = true;\r\n _apps.delete(name);\r\n }\r\n else if (_serverApps.has(name)) {\r\n const firebaseServerApp = app;\r\n if (firebaseServerApp.decRefCount() <= 0) {\r\n _serverApps.delete(name);\r\n cleanupProviders = true;\r\n }\r\n }\r\n if (cleanupProviders) {\r\n await Promise.all(app.container\r\n .getProviders()\r\n .map(provider => provider.delete()));\r\n app.isDeleted = true;\r\n }\r\n}\r\n/**\r\n * Registers a library's name and version for platform logging purposes.\r\n * @param library - Name of 1p or 3p library (e.g. firestore, angularfire)\r\n * @param version - Current version of that library.\r\n * @param variant - Bundle variant, e.g., node, rn, etc.\r\n *\r\n * @public\r\n */\r\nfunction registerVersion(libraryKeyOrName, version, variant) {\r\n var _a;\r\n // TODO: We can use this check to whitelist strings when/if we set up\r\n // a good whitelist system.\r\n let library = (_a = PLATFORM_LOG_STRING[libraryKeyOrName]) !== null && _a !== void 0 ? _a : libraryKeyOrName;\r\n if (variant) {\r\n library += `-${variant}`;\r\n }\r\n const libraryMismatch = library.match(/\\s|\\//);\r\n const versionMismatch = version.match(/\\s|\\//);\r\n if (libraryMismatch || versionMismatch) {\r\n const warning = [\r\n `Unable to register library \"${library}\" with version \"${version}\":`\r\n ];\r\n if (libraryMismatch) {\r\n warning.push(`library name \"${library}\" contains illegal characters (whitespace or \"/\")`);\r\n }\r\n if (libraryMismatch && versionMismatch) {\r\n warning.push('and');\r\n }\r\n if (versionMismatch) {\r\n warning.push(`version name \"${version}\" contains illegal characters (whitespace or \"/\")`);\r\n }\r\n logger.warn(warning.join(' '));\r\n return;\r\n }\r\n _registerComponent(new Component(`${library}-version`, () => ({ library, version }), \"VERSION\" /* ComponentType.VERSION */));\r\n}\r\n/**\r\n * Sets log handler for all Firebase SDKs.\r\n * @param logCallback - An optional custom log handler that executes user code whenever\r\n * the Firebase SDK makes a logging call.\r\n *\r\n * @public\r\n */\r\nfunction onLog(logCallback, options) {\r\n if (logCallback !== null && typeof logCallback !== 'function') {\r\n throw ERROR_FACTORY.create(\"invalid-log-argument\" /* AppError.INVALID_LOG_ARGUMENT */);\r\n }\r\n setUserLogHandler(logCallback, options);\r\n}\r\n/**\r\n * Sets log level for all Firebase SDKs.\r\n *\r\n * All of the log types above the current log level are captured (i.e. if\r\n * you set the log level to `info`, errors are logged, but `debug` and\r\n * `verbose` logs are not).\r\n *\r\n * @public\r\n */\r\nfunction setLogLevel(logLevel) {\r\n setLogLevel$1(logLevel);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2021 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst DB_NAME = 'firebase-heartbeat-database';\r\nconst DB_VERSION = 1;\r\nconst STORE_NAME = 'firebase-heartbeat-store';\r\nlet dbPromise = null;\r\nfunction getDbPromise() {\r\n if (!dbPromise) {\r\n dbPromise = openDB(DB_NAME, DB_VERSION, {\r\n upgrade: (db, oldVersion) => {\r\n // We don't use 'break' in this switch statement, the fall-through\r\n // behavior is what we want, because if there are multiple versions between\r\n // the old version and the current version, we want ALL the migrations\r\n // that correspond to those versions to run, not only the last one.\r\n // eslint-disable-next-line default-case\r\n switch (oldVersion) {\r\n case 0:\r\n try {\r\n db.createObjectStore(STORE_NAME);\r\n }\r\n catch (e) {\r\n // Safari/iOS browsers throw occasional exceptions on\r\n // db.createObjectStore() that may be a bug. Avoid blocking\r\n // the rest of the app functionality.\r\n console.warn(e);\r\n }\r\n }\r\n }\r\n }).catch(e => {\r\n throw ERROR_FACTORY.create(\"idb-open\" /* AppError.IDB_OPEN */, {\r\n originalErrorMessage: e.message\r\n });\r\n });\r\n }\r\n return dbPromise;\r\n}\r\nasync function readHeartbeatsFromIndexedDB(app) {\r\n try {\r\n const db = await getDbPromise();\r\n const tx = db.transaction(STORE_NAME);\r\n const result = await tx.objectStore(STORE_NAME).get(computeKey(app));\r\n // We already have the value but tx.done can throw,\r\n // so we need to await it here to catch errors\r\n await tx.done;\r\n return result;\r\n }\r\n catch (e) {\r\n if (e instanceof FirebaseError) {\r\n logger.warn(e.message);\r\n }\r\n else {\r\n const idbGetError = ERROR_FACTORY.create(\"idb-get\" /* AppError.IDB_GET */, {\r\n originalErrorMessage: e === null || e === void 0 ? void 0 : e.message\r\n });\r\n logger.warn(idbGetError.message);\r\n }\r\n }\r\n}\r\nasync function writeHeartbeatsToIndexedDB(app, heartbeatObject) {\r\n try {\r\n const db = await getDbPromise();\r\n const tx = db.transaction(STORE_NAME, 'readwrite');\r\n const objectStore = tx.objectStore(STORE_NAME);\r\n await objectStore.put(heartbeatObject, computeKey(app));\r\n await tx.done;\r\n }\r\n catch (e) {\r\n if (e instanceof FirebaseError) {\r\n logger.warn(e.message);\r\n }\r\n else {\r\n const idbGetError = ERROR_FACTORY.create(\"idb-set\" /* AppError.IDB_WRITE */, {\r\n originalErrorMessage: e === null || e === void 0 ? void 0 : e.message\r\n });\r\n logger.warn(idbGetError.message);\r\n }\r\n }\r\n}\r\nfunction computeKey(app) {\r\n return `${app.name}!${app.options.appId}`;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2021 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst MAX_HEADER_BYTES = 1024;\r\n// 30 days\r\nconst STORED_HEARTBEAT_RETENTION_MAX_MILLIS = 30 * 24 * 60 * 60 * 1000;\r\nclass HeartbeatServiceImpl {\r\n constructor(container) {\r\n this.container = container;\r\n /**\r\n * In-memory cache for heartbeats, used by getHeartbeatsHeader() to generate\r\n * the header string.\r\n * Stores one record per date. This will be consolidated into the standard\r\n * format of one record per user agent string before being sent as a header.\r\n * Populated from indexedDB when the controller is instantiated and should\r\n * be kept in sync with indexedDB.\r\n * Leave public for easier testing.\r\n */\r\n this._heartbeatsCache = null;\r\n const app = this.container.getProvider('app').getImmediate();\r\n this._storage = new HeartbeatStorageImpl(app);\r\n this._heartbeatsCachePromise = this._storage.read().then(result => {\r\n this._heartbeatsCache = result;\r\n return result;\r\n });\r\n }\r\n /**\r\n * Called to report a heartbeat. The function will generate\r\n * a HeartbeatsByUserAgent object, update heartbeatsCache, and persist it\r\n * to IndexedDB.\r\n * Note that we only store one heartbeat per day. So if a heartbeat for today is\r\n * already logged, subsequent calls to this function in the same day will be ignored.\r\n */\r\n async triggerHeartbeat() {\r\n var _a, _b;\r\n try {\r\n const platformLogger = this.container\r\n .getProvider('platform-logger')\r\n .getImmediate();\r\n // This is the \"Firebase user agent\" string from the platform logger\r\n // service, not the browser user agent.\r\n const agent = platformLogger.getPlatformInfoString();\r\n const date = getUTCDateString();\r\n if (((_a = this._heartbeatsCache) === null || _a === void 0 ? void 0 : _a.heartbeats) == null) {\r\n this._heartbeatsCache = await this._heartbeatsCachePromise;\r\n // If we failed to construct a heartbeats cache, then return immediately.\r\n if (((_b = this._heartbeatsCache) === null || _b === void 0 ? void 0 : _b.heartbeats) == null) {\r\n return;\r\n }\r\n }\r\n // Do not store a heartbeat if one is already stored for this day\r\n // or if a header has already been sent today.\r\n if (this._heartbeatsCache.lastSentHeartbeatDate === date ||\r\n this._heartbeatsCache.heartbeats.some(singleDateHeartbeat => singleDateHeartbeat.date === date)) {\r\n return;\r\n }\r\n else {\r\n // There is no entry for this date. Create one.\r\n this._heartbeatsCache.heartbeats.push({ date, agent });\r\n }\r\n // Remove entries older than 30 days.\r\n this._heartbeatsCache.heartbeats =\r\n this._heartbeatsCache.heartbeats.filter(singleDateHeartbeat => {\r\n const hbTimestamp = new Date(singleDateHeartbeat.date).valueOf();\r\n const now = Date.now();\r\n return now - hbTimestamp <= STORED_HEARTBEAT_RETENTION_MAX_MILLIS;\r\n });\r\n return this._storage.overwrite(this._heartbeatsCache);\r\n }\r\n catch (e) {\r\n logger.warn(e);\r\n }\r\n }\r\n /**\r\n * Returns a base64 encoded string which can be attached to the heartbeat-specific header directly.\r\n * It also clears all heartbeats from memory as well as in IndexedDB.\r\n *\r\n * NOTE: Consuming product SDKs should not send the header if this method\r\n * returns an empty string.\r\n */\r\n async getHeartbeatsHeader() {\r\n var _a;\r\n try {\r\n if (this._heartbeatsCache === null) {\r\n await this._heartbeatsCachePromise;\r\n }\r\n // If it's still null or the array is empty, there is no data to send.\r\n if (((_a = this._heartbeatsCache) === null || _a === void 0 ? void 0 : _a.heartbeats) == null ||\r\n this._heartbeatsCache.heartbeats.length === 0) {\r\n return '';\r\n }\r\n const date = getUTCDateString();\r\n // Extract as many heartbeats from the cache as will fit under the size limit.\r\n const { heartbeatsToSend, unsentEntries } = extractHeartbeatsForHeader(this._heartbeatsCache.heartbeats);\r\n const headerString = base64urlEncodeWithoutPadding(JSON.stringify({ version: 2, heartbeats: heartbeatsToSend }));\r\n // Store last sent date to prevent another being logged/sent for the same day.\r\n this._heartbeatsCache.lastSentHeartbeatDate = date;\r\n if (unsentEntries.length > 0) {\r\n // Store any unsent entries if they exist.\r\n this._heartbeatsCache.heartbeats = unsentEntries;\r\n // This seems more likely than emptying the array (below) to lead to some odd state\r\n // since the cache isn't empty and this will be called again on the next request,\r\n // and is probably safest if we await it.\r\n await this._storage.overwrite(this._heartbeatsCache);\r\n }\r\n else {\r\n this._heartbeatsCache.heartbeats = [];\r\n // Do not wait for this, to reduce latency.\r\n void this._storage.overwrite(this._heartbeatsCache);\r\n }\r\n return headerString;\r\n }\r\n catch (e) {\r\n logger.warn(e);\r\n return '';\r\n }\r\n }\r\n}\r\nfunction getUTCDateString() {\r\n const today = new Date();\r\n // Returns date format 'YYYY-MM-DD'\r\n return today.toISOString().substring(0, 10);\r\n}\r\nfunction extractHeartbeatsForHeader(heartbeatsCache, maxSize = MAX_HEADER_BYTES) {\r\n // Heartbeats grouped by user agent in the standard format to be sent in\r\n // the header.\r\n const heartbeatsToSend = [];\r\n // Single date format heartbeats that are not sent.\r\n let unsentEntries = heartbeatsCache.slice();\r\n for (const singleDateHeartbeat of heartbeatsCache) {\r\n // Look for an existing entry with the same user agent.\r\n const heartbeatEntry = heartbeatsToSend.find(hb => hb.agent === singleDateHeartbeat.agent);\r\n if (!heartbeatEntry) {\r\n // If no entry for this user agent exists, create one.\r\n heartbeatsToSend.push({\r\n agent: singleDateHeartbeat.agent,\r\n dates: [singleDateHeartbeat.date]\r\n });\r\n if (countBytes(heartbeatsToSend) > maxSize) {\r\n // If the header would exceed max size, remove the added heartbeat\r\n // entry and stop adding to the header.\r\n heartbeatsToSend.pop();\r\n break;\r\n }\r\n }\r\n else {\r\n heartbeatEntry.dates.push(singleDateHeartbeat.date);\r\n // If the header would exceed max size, remove the added date\r\n // and stop adding to the header.\r\n if (countBytes(heartbeatsToSend) > maxSize) {\r\n heartbeatEntry.dates.pop();\r\n break;\r\n }\r\n }\r\n // Pop unsent entry from queue. (Skipped if adding the entry exceeded\r\n // quota and the loop breaks early.)\r\n unsentEntries = unsentEntries.slice(1);\r\n }\r\n return {\r\n heartbeatsToSend,\r\n unsentEntries\r\n };\r\n}\r\nclass HeartbeatStorageImpl {\r\n constructor(app) {\r\n this.app = app;\r\n this._canUseIndexedDBPromise = this.runIndexedDBEnvironmentCheck();\r\n }\r\n async runIndexedDBEnvironmentCheck() {\r\n if (!isIndexedDBAvailable()) {\r\n return false;\r\n }\r\n else {\r\n return validateIndexedDBOpenable()\r\n .then(() => true)\r\n .catch(() => false);\r\n }\r\n }\r\n /**\r\n * Read all heartbeats.\r\n */\r\n async read() {\r\n const canUseIndexedDB = await this._canUseIndexedDBPromise;\r\n if (!canUseIndexedDB) {\r\n return { heartbeats: [] };\r\n }\r\n else {\r\n const idbHeartbeatObject = await readHeartbeatsFromIndexedDB(this.app);\r\n if (idbHeartbeatObject === null || idbHeartbeatObject === void 0 ? void 0 : idbHeartbeatObject.heartbeats) {\r\n return idbHeartbeatObject;\r\n }\r\n else {\r\n return { heartbeats: [] };\r\n }\r\n }\r\n }\r\n // overwrite the storage with the provided heartbeats\r\n async overwrite(heartbeatsObject) {\r\n var _a;\r\n const canUseIndexedDB = await this._canUseIndexedDBPromise;\r\n if (!canUseIndexedDB) {\r\n return;\r\n }\r\n else {\r\n const existingHeartbeatsObject = await this.read();\r\n return writeHeartbeatsToIndexedDB(this.app, {\r\n lastSentHeartbeatDate: (_a = heartbeatsObject.lastSentHeartbeatDate) !== null && _a !== void 0 ? _a : existingHeartbeatsObject.lastSentHeartbeatDate,\r\n heartbeats: heartbeatsObject.heartbeats\r\n });\r\n }\r\n }\r\n // add heartbeats\r\n async add(heartbeatsObject) {\r\n var _a;\r\n const canUseIndexedDB = await this._canUseIndexedDBPromise;\r\n if (!canUseIndexedDB) {\r\n return;\r\n }\r\n else {\r\n const existingHeartbeatsObject = await this.read();\r\n return writeHeartbeatsToIndexedDB(this.app, {\r\n lastSentHeartbeatDate: (_a = heartbeatsObject.lastSentHeartbeatDate) !== null && _a !== void 0 ? _a : existingHeartbeatsObject.lastSentHeartbeatDate,\r\n heartbeats: [\r\n ...existingHeartbeatsObject.heartbeats,\r\n ...heartbeatsObject.heartbeats\r\n ]\r\n });\r\n }\r\n }\r\n}\r\n/**\r\n * Calculate bytes of a HeartbeatsByUserAgent array after being wrapped\r\n * in a platform logging header JSON object, stringified, and converted\r\n * to base 64.\r\n */\r\nfunction countBytes(heartbeatsCache) {\r\n // base64 has a restricted set of characters, all of which should be 1 byte.\r\n return base64urlEncodeWithoutPadding(\r\n // heartbeatsCache wrapper properties\r\n JSON.stringify({ version: 2, heartbeats: heartbeatsCache })).length;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction registerCoreComponents(variant) {\r\n _registerComponent(new Component('platform-logger', container => new PlatformLoggerServiceImpl(container), \"PRIVATE\" /* ComponentType.PRIVATE */));\r\n _registerComponent(new Component('heartbeat', container => new HeartbeatServiceImpl(container), \"PRIVATE\" /* ComponentType.PRIVATE */));\r\n // Register `app` package.\r\n registerVersion(name$q, version$1, variant);\r\n // BUILD_TARGET will be replaced by values like esm5, esm2017, cjs5, etc during the compilation\r\n registerVersion(name$q, version$1, 'esm2017');\r\n // Register platform SDK identifier (no version).\r\n registerVersion('fire-js', '');\r\n}\n\n/**\r\n * Firebase App\r\n *\r\n * @remarks This package coordinates the communication between the different Firebase components\r\n * @packageDocumentation\r\n */\r\nregisterCoreComponents('');\n\nexport { SDK_VERSION, DEFAULT_ENTRY_NAME as _DEFAULT_ENTRY_NAME, _addComponent, _addOrOverwriteComponent, _apps, _clearComponents, _components, _getProvider, _isFirebaseApp, _isFirebaseServerApp, _registerComponent, _removeServiceInstance, _serverApps, deleteApp, getApp, getApps, initializeApp, initializeServerApp, onLog, registerVersion, setLogLevel };\n//# sourceMappingURL=index.esm2017.js.map\n","import { registerVersion } from '@firebase/app';\nexport * from '@firebase/app';\n\nvar name = \"firebase\";\nvar version = \"10.14.1\";\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nregisterVersion(name, version, 'app');\n//# sourceMappingURL=index.esm.js.map\n","import { _getProvider, getApp, _registerComponent, registerVersion } from '@firebase/app';\nimport { Component } from '@firebase/component';\nimport { ErrorFactory, FirebaseError } from '@firebase/util';\nimport { openDB } from 'idb';\n\nconst name = \"@firebase/installations\";\nconst version = \"0.6.9\";\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst PENDING_TIMEOUT_MS = 10000;\r\nconst PACKAGE_VERSION = `w:${version}`;\r\nconst INTERNAL_AUTH_VERSION = 'FIS_v2';\r\nconst INSTALLATIONS_API_URL = 'https://firebaseinstallations.googleapis.com/v1';\r\nconst TOKEN_EXPIRATION_BUFFER = 60 * 60 * 1000; // One hour\r\nconst SERVICE = 'installations';\r\nconst SERVICE_NAME = 'Installations';\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst ERROR_DESCRIPTION_MAP = {\r\n [\"missing-app-config-values\" /* ErrorCode.MISSING_APP_CONFIG_VALUES */]: 'Missing App configuration value: \"{$valueName}\"',\r\n [\"not-registered\" /* ErrorCode.NOT_REGISTERED */]: 'Firebase Installation is not registered.',\r\n [\"installation-not-found\" /* ErrorCode.INSTALLATION_NOT_FOUND */]: 'Firebase Installation not found.',\r\n [\"request-failed\" /* ErrorCode.REQUEST_FAILED */]: '{$requestName} request failed with error \"{$serverCode} {$serverStatus}: {$serverMessage}\"',\r\n [\"app-offline\" /* ErrorCode.APP_OFFLINE */]: 'Could not process request. Application offline.',\r\n [\"delete-pending-registration\" /* ErrorCode.DELETE_PENDING_REGISTRATION */]: \"Can't delete installation while there is a pending registration request.\"\r\n};\r\nconst ERROR_FACTORY = new ErrorFactory(SERVICE, SERVICE_NAME, ERROR_DESCRIPTION_MAP);\r\n/** Returns true if error is a FirebaseError that is based on an error from the server. */\r\nfunction isServerError(error) {\r\n return (error instanceof FirebaseError &&\r\n error.code.includes(\"request-failed\" /* ErrorCode.REQUEST_FAILED */));\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction getInstallationsEndpoint({ projectId }) {\r\n return `${INSTALLATIONS_API_URL}/projects/${projectId}/installations`;\r\n}\r\nfunction extractAuthTokenInfoFromResponse(response) {\r\n return {\r\n token: response.token,\r\n requestStatus: 2 /* RequestStatus.COMPLETED */,\r\n expiresIn: getExpiresInFromResponseExpiresIn(response.expiresIn),\r\n creationTime: Date.now()\r\n };\r\n}\r\nasync function getErrorFromResponse(requestName, response) {\r\n const responseJson = await response.json();\r\n const errorData = responseJson.error;\r\n return ERROR_FACTORY.create(\"request-failed\" /* ErrorCode.REQUEST_FAILED */, {\r\n requestName,\r\n serverCode: errorData.code,\r\n serverMessage: errorData.message,\r\n serverStatus: errorData.status\r\n });\r\n}\r\nfunction getHeaders({ apiKey }) {\r\n return new Headers({\r\n 'Content-Type': 'application/json',\r\n Accept: 'application/json',\r\n 'x-goog-api-key': apiKey\r\n });\r\n}\r\nfunction getHeadersWithAuth(appConfig, { refreshToken }) {\r\n const headers = getHeaders(appConfig);\r\n headers.append('Authorization', getAuthorizationHeader(refreshToken));\r\n return headers;\r\n}\r\n/**\r\n * Calls the passed in fetch wrapper and returns the response.\r\n * If the returned response has a status of 5xx, re-runs the function once and\r\n * returns the response.\r\n */\r\nasync function retryIfServerError(fn) {\r\n const result = await fn();\r\n if (result.status >= 500 && result.status < 600) {\r\n // Internal Server Error. Retry request.\r\n return fn();\r\n }\r\n return result;\r\n}\r\nfunction getExpiresInFromResponseExpiresIn(responseExpiresIn) {\r\n // This works because the server will never respond with fractions of a second.\r\n return Number(responseExpiresIn.replace('s', '000'));\r\n}\r\nfunction getAuthorizationHeader(refreshToken) {\r\n return `${INTERNAL_AUTH_VERSION} ${refreshToken}`;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nasync function createInstallationRequest({ appConfig, heartbeatServiceProvider }, { fid }) {\r\n const endpoint = getInstallationsEndpoint(appConfig);\r\n const headers = getHeaders(appConfig);\r\n // If heartbeat service exists, add the heartbeat string to the header.\r\n const heartbeatService = heartbeatServiceProvider.getImmediate({\r\n optional: true\r\n });\r\n if (heartbeatService) {\r\n const heartbeatsHeader = await heartbeatService.getHeartbeatsHeader();\r\n if (heartbeatsHeader) {\r\n headers.append('x-firebase-client', heartbeatsHeader);\r\n }\r\n }\r\n const body = {\r\n fid,\r\n authVersion: INTERNAL_AUTH_VERSION,\r\n appId: appConfig.appId,\r\n sdkVersion: PACKAGE_VERSION\r\n };\r\n const request = {\r\n method: 'POST',\r\n headers,\r\n body: JSON.stringify(body)\r\n };\r\n const response = await retryIfServerError(() => fetch(endpoint, request));\r\n if (response.ok) {\r\n const responseValue = await response.json();\r\n const registeredInstallationEntry = {\r\n fid: responseValue.fid || fid,\r\n registrationStatus: 2 /* RequestStatus.COMPLETED */,\r\n refreshToken: responseValue.refreshToken,\r\n authToken: extractAuthTokenInfoFromResponse(responseValue.authToken)\r\n };\r\n return registeredInstallationEntry;\r\n }\r\n else {\r\n throw await getErrorFromResponse('Create Installation', response);\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/** Returns a promise that resolves after given time passes. */\r\nfunction sleep(ms) {\r\n return new Promise(resolve => {\r\n setTimeout(resolve, ms);\r\n });\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction bufferToBase64UrlSafe(array) {\r\n const b64 = btoa(String.fromCharCode(...array));\r\n return b64.replace(/\\+/g, '-').replace(/\\//g, '_');\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst VALID_FID_PATTERN = /^[cdef][\\w-]{21}$/;\r\nconst INVALID_FID = '';\r\n/**\r\n * Generates a new FID using random values from Web Crypto API.\r\n * Returns an empty string if FID generation fails for any reason.\r\n */\r\nfunction generateFid() {\r\n try {\r\n // A valid FID has exactly 22 base64 characters, which is 132 bits, or 16.5\r\n // bytes. our implementation generates a 17 byte array instead.\r\n const fidByteArray = new Uint8Array(17);\r\n const crypto = self.crypto || self.msCrypto;\r\n crypto.getRandomValues(fidByteArray);\r\n // Replace the first 4 random bits with the constant FID header of 0b0111.\r\n fidByteArray[0] = 0b01110000 + (fidByteArray[0] % 0b00010000);\r\n const fid = encode(fidByteArray);\r\n return VALID_FID_PATTERN.test(fid) ? fid : INVALID_FID;\r\n }\r\n catch (_a) {\r\n // FID generation errored\r\n return INVALID_FID;\r\n }\r\n}\r\n/** Converts a FID Uint8Array to a base64 string representation. */\r\nfunction encode(fidByteArray) {\r\n const b64String = bufferToBase64UrlSafe(fidByteArray);\r\n // Remove the 23rd character that was added because of the extra 4 bits at the\r\n // end of our 17 byte array, and the '=' padding.\r\n return b64String.substr(0, 22);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/** Returns a string key that can be used to identify the app. */\r\nfunction getKey(appConfig) {\r\n return `${appConfig.appName}!${appConfig.appId}`;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst fidChangeCallbacks = new Map();\r\n/**\r\n * Calls the onIdChange callbacks with the new FID value, and broadcasts the\r\n * change to other tabs.\r\n */\r\nfunction fidChanged(appConfig, fid) {\r\n const key = getKey(appConfig);\r\n callFidChangeCallbacks(key, fid);\r\n broadcastFidChange(key, fid);\r\n}\r\nfunction addCallback(appConfig, callback) {\r\n // Open the broadcast channel if it's not already open,\r\n // to be able to listen to change events from other tabs.\r\n getBroadcastChannel();\r\n const key = getKey(appConfig);\r\n let callbackSet = fidChangeCallbacks.get(key);\r\n if (!callbackSet) {\r\n callbackSet = new Set();\r\n fidChangeCallbacks.set(key, callbackSet);\r\n }\r\n callbackSet.add(callback);\r\n}\r\nfunction removeCallback(appConfig, callback) {\r\n const key = getKey(appConfig);\r\n const callbackSet = fidChangeCallbacks.get(key);\r\n if (!callbackSet) {\r\n return;\r\n }\r\n callbackSet.delete(callback);\r\n if (callbackSet.size === 0) {\r\n fidChangeCallbacks.delete(key);\r\n }\r\n // Close broadcast channel if there are no more callbacks.\r\n closeBroadcastChannel();\r\n}\r\nfunction callFidChangeCallbacks(key, fid) {\r\n const callbacks = fidChangeCallbacks.get(key);\r\n if (!callbacks) {\r\n return;\r\n }\r\n for (const callback of callbacks) {\r\n callback(fid);\r\n }\r\n}\r\nfunction broadcastFidChange(key, fid) {\r\n const channel = getBroadcastChannel();\r\n if (channel) {\r\n channel.postMessage({ key, fid });\r\n }\r\n closeBroadcastChannel();\r\n}\r\nlet broadcastChannel = null;\r\n/** Opens and returns a BroadcastChannel if it is supported by the browser. */\r\nfunction getBroadcastChannel() {\r\n if (!broadcastChannel && 'BroadcastChannel' in self) {\r\n broadcastChannel = new BroadcastChannel('[Firebase] FID Change');\r\n broadcastChannel.onmessage = e => {\r\n callFidChangeCallbacks(e.data.key, e.data.fid);\r\n };\r\n }\r\n return broadcastChannel;\r\n}\r\nfunction closeBroadcastChannel() {\r\n if (fidChangeCallbacks.size === 0 && broadcastChannel) {\r\n broadcastChannel.close();\r\n broadcastChannel = null;\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst DATABASE_NAME = 'firebase-installations-database';\r\nconst DATABASE_VERSION = 1;\r\nconst OBJECT_STORE_NAME = 'firebase-installations-store';\r\nlet dbPromise = null;\r\nfunction getDbPromise() {\r\n if (!dbPromise) {\r\n dbPromise = openDB(DATABASE_NAME, DATABASE_VERSION, {\r\n upgrade: (db, oldVersion) => {\r\n // We don't use 'break' in this switch statement, the fall-through\r\n // behavior is what we want, because if there are multiple versions between\r\n // the old version and the current version, we want ALL the migrations\r\n // that correspond to those versions to run, not only the last one.\r\n // eslint-disable-next-line default-case\r\n switch (oldVersion) {\r\n case 0:\r\n db.createObjectStore(OBJECT_STORE_NAME);\r\n }\r\n }\r\n });\r\n }\r\n return dbPromise;\r\n}\r\n/** Assigns or overwrites the record for the given key with the given value. */\r\nasync function set(appConfig, value) {\r\n const key = getKey(appConfig);\r\n const db = await getDbPromise();\r\n const tx = db.transaction(OBJECT_STORE_NAME, 'readwrite');\r\n const objectStore = tx.objectStore(OBJECT_STORE_NAME);\r\n const oldValue = (await objectStore.get(key));\r\n await objectStore.put(value, key);\r\n await tx.done;\r\n if (!oldValue || oldValue.fid !== value.fid) {\r\n fidChanged(appConfig, value.fid);\r\n }\r\n return value;\r\n}\r\n/** Removes record(s) from the objectStore that match the given key. */\r\nasync function remove(appConfig) {\r\n const key = getKey(appConfig);\r\n const db = await getDbPromise();\r\n const tx = db.transaction(OBJECT_STORE_NAME, 'readwrite');\r\n await tx.objectStore(OBJECT_STORE_NAME).delete(key);\r\n await tx.done;\r\n}\r\n/**\r\n * Atomically updates a record with the result of updateFn, which gets\r\n * called with the current value. If newValue is undefined, the record is\r\n * deleted instead.\r\n * @return Updated value\r\n */\r\nasync function update(appConfig, updateFn) {\r\n const key = getKey(appConfig);\r\n const db = await getDbPromise();\r\n const tx = db.transaction(OBJECT_STORE_NAME, 'readwrite');\r\n const store = tx.objectStore(OBJECT_STORE_NAME);\r\n const oldValue = (await store.get(key));\r\n const newValue = updateFn(oldValue);\r\n if (newValue === undefined) {\r\n await store.delete(key);\r\n }\r\n else {\r\n await store.put(newValue, key);\r\n }\r\n await tx.done;\r\n if (newValue && (!oldValue || oldValue.fid !== newValue.fid)) {\r\n fidChanged(appConfig, newValue.fid);\r\n }\r\n return newValue;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Updates and returns the InstallationEntry from the database.\r\n * Also triggers a registration request if it is necessary and possible.\r\n */\r\nasync function getInstallationEntry(installations) {\r\n let registrationPromise;\r\n const installationEntry = await update(installations.appConfig, oldEntry => {\r\n const installationEntry = updateOrCreateInstallationEntry(oldEntry);\r\n const entryWithPromise = triggerRegistrationIfNecessary(installations, installationEntry);\r\n registrationPromise = entryWithPromise.registrationPromise;\r\n return entryWithPromise.installationEntry;\r\n });\r\n if (installationEntry.fid === INVALID_FID) {\r\n // FID generation failed. Waiting for the FID from the server.\r\n return { installationEntry: await registrationPromise };\r\n }\r\n return {\r\n installationEntry,\r\n registrationPromise\r\n };\r\n}\r\n/**\r\n * Creates a new Installation Entry if one does not exist.\r\n * Also clears timed out pending requests.\r\n */\r\nfunction updateOrCreateInstallationEntry(oldEntry) {\r\n const entry = oldEntry || {\r\n fid: generateFid(),\r\n registrationStatus: 0 /* RequestStatus.NOT_STARTED */\r\n };\r\n return clearTimedOutRequest(entry);\r\n}\r\n/**\r\n * If the Firebase Installation is not registered yet, this will trigger the\r\n * registration and return an InProgressInstallationEntry.\r\n *\r\n * If registrationPromise does not exist, the installationEntry is guaranteed\r\n * to be registered.\r\n */\r\nfunction triggerRegistrationIfNecessary(installations, installationEntry) {\r\n if (installationEntry.registrationStatus === 0 /* RequestStatus.NOT_STARTED */) {\r\n if (!navigator.onLine) {\r\n // Registration required but app is offline.\r\n const registrationPromiseWithError = Promise.reject(ERROR_FACTORY.create(\"app-offline\" /* ErrorCode.APP_OFFLINE */));\r\n return {\r\n installationEntry,\r\n registrationPromise: registrationPromiseWithError\r\n };\r\n }\r\n // Try registering. Change status to IN_PROGRESS.\r\n const inProgressEntry = {\r\n fid: installationEntry.fid,\r\n registrationStatus: 1 /* RequestStatus.IN_PROGRESS */,\r\n registrationTime: Date.now()\r\n };\r\n const registrationPromise = registerInstallation(installations, inProgressEntry);\r\n return { installationEntry: inProgressEntry, registrationPromise };\r\n }\r\n else if (installationEntry.registrationStatus === 1 /* RequestStatus.IN_PROGRESS */) {\r\n return {\r\n installationEntry,\r\n registrationPromise: waitUntilFidRegistration(installations)\r\n };\r\n }\r\n else {\r\n return { installationEntry };\r\n }\r\n}\r\n/** This will be executed only once for each new Firebase Installation. */\r\nasync function registerInstallation(installations, installationEntry) {\r\n try {\r\n const registeredInstallationEntry = await createInstallationRequest(installations, installationEntry);\r\n return set(installations.appConfig, registeredInstallationEntry);\r\n }\r\n catch (e) {\r\n if (isServerError(e) && e.customData.serverCode === 409) {\r\n // Server returned a \"FID cannot be used\" error.\r\n // Generate a new ID next time.\r\n await remove(installations.appConfig);\r\n }\r\n else {\r\n // Registration failed. Set FID as not registered.\r\n await set(installations.appConfig, {\r\n fid: installationEntry.fid,\r\n registrationStatus: 0 /* RequestStatus.NOT_STARTED */\r\n });\r\n }\r\n throw e;\r\n }\r\n}\r\n/** Call if FID registration is pending in another request. */\r\nasync function waitUntilFidRegistration(installations) {\r\n // Unfortunately, there is no way of reliably observing when a value in\r\n // IndexedDB changes (yet, see https://github.com/WICG/indexed-db-observers),\r\n // so we need to poll.\r\n let entry = await updateInstallationRequest(installations.appConfig);\r\n while (entry.registrationStatus === 1 /* RequestStatus.IN_PROGRESS */) {\r\n // createInstallation request still in progress.\r\n await sleep(100);\r\n entry = await updateInstallationRequest(installations.appConfig);\r\n }\r\n if (entry.registrationStatus === 0 /* RequestStatus.NOT_STARTED */) {\r\n // The request timed out or failed in a different call. Try again.\r\n const { installationEntry, registrationPromise } = await getInstallationEntry(installations);\r\n if (registrationPromise) {\r\n return registrationPromise;\r\n }\r\n else {\r\n // if there is no registrationPromise, entry is registered.\r\n return installationEntry;\r\n }\r\n }\r\n return entry;\r\n}\r\n/**\r\n * Called only if there is a CreateInstallation request in progress.\r\n *\r\n * Updates the InstallationEntry in the DB based on the status of the\r\n * CreateInstallation request.\r\n *\r\n * Returns the updated InstallationEntry.\r\n */\r\nfunction updateInstallationRequest(appConfig) {\r\n return update(appConfig, oldEntry => {\r\n if (!oldEntry) {\r\n throw ERROR_FACTORY.create(\"installation-not-found\" /* ErrorCode.INSTALLATION_NOT_FOUND */);\r\n }\r\n return clearTimedOutRequest(oldEntry);\r\n });\r\n}\r\nfunction clearTimedOutRequest(entry) {\r\n if (hasInstallationRequestTimedOut(entry)) {\r\n return {\r\n fid: entry.fid,\r\n registrationStatus: 0 /* RequestStatus.NOT_STARTED */\r\n };\r\n }\r\n return entry;\r\n}\r\nfunction hasInstallationRequestTimedOut(installationEntry) {\r\n return (installationEntry.registrationStatus === 1 /* RequestStatus.IN_PROGRESS */ &&\r\n installationEntry.registrationTime + PENDING_TIMEOUT_MS < Date.now());\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nasync function generateAuthTokenRequest({ appConfig, heartbeatServiceProvider }, installationEntry) {\r\n const endpoint = getGenerateAuthTokenEndpoint(appConfig, installationEntry);\r\n const headers = getHeadersWithAuth(appConfig, installationEntry);\r\n // If heartbeat service exists, add the heartbeat string to the header.\r\n const heartbeatService = heartbeatServiceProvider.getImmediate({\r\n optional: true\r\n });\r\n if (heartbeatService) {\r\n const heartbeatsHeader = await heartbeatService.getHeartbeatsHeader();\r\n if (heartbeatsHeader) {\r\n headers.append('x-firebase-client', heartbeatsHeader);\r\n }\r\n }\r\n const body = {\r\n installation: {\r\n sdkVersion: PACKAGE_VERSION,\r\n appId: appConfig.appId\r\n }\r\n };\r\n const request = {\r\n method: 'POST',\r\n headers,\r\n body: JSON.stringify(body)\r\n };\r\n const response = await retryIfServerError(() => fetch(endpoint, request));\r\n if (response.ok) {\r\n const responseValue = await response.json();\r\n const completedAuthToken = extractAuthTokenInfoFromResponse(responseValue);\r\n return completedAuthToken;\r\n }\r\n else {\r\n throw await getErrorFromResponse('Generate Auth Token', response);\r\n }\r\n}\r\nfunction getGenerateAuthTokenEndpoint(appConfig, { fid }) {\r\n return `${getInstallationsEndpoint(appConfig)}/${fid}/authTokens:generate`;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Returns a valid authentication token for the installation. Generates a new\r\n * token if one doesn't exist, is expired or about to expire.\r\n *\r\n * Should only be called if the Firebase Installation is registered.\r\n */\r\nasync function refreshAuthToken(installations, forceRefresh = false) {\r\n let tokenPromise;\r\n const entry = await update(installations.appConfig, oldEntry => {\r\n if (!isEntryRegistered(oldEntry)) {\r\n throw ERROR_FACTORY.create(\"not-registered\" /* ErrorCode.NOT_REGISTERED */);\r\n }\r\n const oldAuthToken = oldEntry.authToken;\r\n if (!forceRefresh && isAuthTokenValid(oldAuthToken)) {\r\n // There is a valid token in the DB.\r\n return oldEntry;\r\n }\r\n else if (oldAuthToken.requestStatus === 1 /* RequestStatus.IN_PROGRESS */) {\r\n // There already is a token request in progress.\r\n tokenPromise = waitUntilAuthTokenRequest(installations, forceRefresh);\r\n return oldEntry;\r\n }\r\n else {\r\n // No token or token expired.\r\n if (!navigator.onLine) {\r\n throw ERROR_FACTORY.create(\"app-offline\" /* ErrorCode.APP_OFFLINE */);\r\n }\r\n const inProgressEntry = makeAuthTokenRequestInProgressEntry(oldEntry);\r\n tokenPromise = fetchAuthTokenFromServer(installations, inProgressEntry);\r\n return inProgressEntry;\r\n }\r\n });\r\n const authToken = tokenPromise\r\n ? await tokenPromise\r\n : entry.authToken;\r\n return authToken;\r\n}\r\n/**\r\n * Call only if FID is registered and Auth Token request is in progress.\r\n *\r\n * Waits until the current pending request finishes. If the request times out,\r\n * tries once in this thread as well.\r\n */\r\nasync function waitUntilAuthTokenRequest(installations, forceRefresh) {\r\n // Unfortunately, there is no way of reliably observing when a value in\r\n // IndexedDB changes (yet, see https://github.com/WICG/indexed-db-observers),\r\n // so we need to poll.\r\n let entry = await updateAuthTokenRequest(installations.appConfig);\r\n while (entry.authToken.requestStatus === 1 /* RequestStatus.IN_PROGRESS */) {\r\n // generateAuthToken still in progress.\r\n await sleep(100);\r\n entry = await updateAuthTokenRequest(installations.appConfig);\r\n }\r\n const authToken = entry.authToken;\r\n if (authToken.requestStatus === 0 /* RequestStatus.NOT_STARTED */) {\r\n // The request timed out or failed in a different call. Try again.\r\n return refreshAuthToken(installations, forceRefresh);\r\n }\r\n else {\r\n return authToken;\r\n }\r\n}\r\n/**\r\n * Called only if there is a GenerateAuthToken request in progress.\r\n *\r\n * Updates the InstallationEntry in the DB based on the status of the\r\n * GenerateAuthToken request.\r\n *\r\n * Returns the updated InstallationEntry.\r\n */\r\nfunction updateAuthTokenRequest(appConfig) {\r\n return update(appConfig, oldEntry => {\r\n if (!isEntryRegistered(oldEntry)) {\r\n throw ERROR_FACTORY.create(\"not-registered\" /* ErrorCode.NOT_REGISTERED */);\r\n }\r\n const oldAuthToken = oldEntry.authToken;\r\n if (hasAuthTokenRequestTimedOut(oldAuthToken)) {\r\n return Object.assign(Object.assign({}, oldEntry), { authToken: { requestStatus: 0 /* RequestStatus.NOT_STARTED */ } });\r\n }\r\n return oldEntry;\r\n });\r\n}\r\nasync function fetchAuthTokenFromServer(installations, installationEntry) {\r\n try {\r\n const authToken = await generateAuthTokenRequest(installations, installationEntry);\r\n const updatedInstallationEntry = Object.assign(Object.assign({}, installationEntry), { authToken });\r\n await set(installations.appConfig, updatedInstallationEntry);\r\n return authToken;\r\n }\r\n catch (e) {\r\n if (isServerError(e) &&\r\n (e.customData.serverCode === 401 || e.customData.serverCode === 404)) {\r\n // Server returned a \"FID not found\" or a \"Invalid authentication\" error.\r\n // Generate a new ID next time.\r\n await remove(installations.appConfig);\r\n }\r\n else {\r\n const updatedInstallationEntry = Object.assign(Object.assign({}, installationEntry), { authToken: { requestStatus: 0 /* RequestStatus.NOT_STARTED */ } });\r\n await set(installations.appConfig, updatedInstallationEntry);\r\n }\r\n throw e;\r\n }\r\n}\r\nfunction isEntryRegistered(installationEntry) {\r\n return (installationEntry !== undefined &&\r\n installationEntry.registrationStatus === 2 /* RequestStatus.COMPLETED */);\r\n}\r\nfunction isAuthTokenValid(authToken) {\r\n return (authToken.requestStatus === 2 /* RequestStatus.COMPLETED */ &&\r\n !isAuthTokenExpired(authToken));\r\n}\r\nfunction isAuthTokenExpired(authToken) {\r\n const now = Date.now();\r\n return (now < authToken.creationTime ||\r\n authToken.creationTime + authToken.expiresIn < now + TOKEN_EXPIRATION_BUFFER);\r\n}\r\n/** Returns an updated InstallationEntry with an InProgressAuthToken. */\r\nfunction makeAuthTokenRequestInProgressEntry(oldEntry) {\r\n const inProgressAuthToken = {\r\n requestStatus: 1 /* RequestStatus.IN_PROGRESS */,\r\n requestTime: Date.now()\r\n };\r\n return Object.assign(Object.assign({}, oldEntry), { authToken: inProgressAuthToken });\r\n}\r\nfunction hasAuthTokenRequestTimedOut(authToken) {\r\n return (authToken.requestStatus === 1 /* RequestStatus.IN_PROGRESS */ &&\r\n authToken.requestTime + PENDING_TIMEOUT_MS < Date.now());\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Creates a Firebase Installation if there isn't one for the app and\r\n * returns the Installation ID.\r\n * @param installations - The `Installations` instance.\r\n *\r\n * @public\r\n */\r\nasync function getId(installations) {\r\n const installationsImpl = installations;\r\n const { installationEntry, registrationPromise } = await getInstallationEntry(installationsImpl);\r\n if (registrationPromise) {\r\n registrationPromise.catch(console.error);\r\n }\r\n else {\r\n // If the installation is already registered, update the authentication\r\n // token if needed.\r\n refreshAuthToken(installationsImpl).catch(console.error);\r\n }\r\n return installationEntry.fid;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Returns a Firebase Installations auth token, identifying the current\r\n * Firebase Installation.\r\n * @param installations - The `Installations` instance.\r\n * @param forceRefresh - Force refresh regardless of token expiration.\r\n *\r\n * @public\r\n */\r\nasync function getToken(installations, forceRefresh = false) {\r\n const installationsImpl = installations;\r\n await completeInstallationRegistration(installationsImpl);\r\n // At this point we either have a Registered Installation in the DB, or we've\r\n // already thrown an error.\r\n const authToken = await refreshAuthToken(installationsImpl, forceRefresh);\r\n return authToken.token;\r\n}\r\nasync function completeInstallationRegistration(installations) {\r\n const { registrationPromise } = await getInstallationEntry(installations);\r\n if (registrationPromise) {\r\n // A createInstallation request is in progress. Wait until it finishes.\r\n await registrationPromise;\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nasync function deleteInstallationRequest(appConfig, installationEntry) {\r\n const endpoint = getDeleteEndpoint(appConfig, installationEntry);\r\n const headers = getHeadersWithAuth(appConfig, installationEntry);\r\n const request = {\r\n method: 'DELETE',\r\n headers\r\n };\r\n const response = await retryIfServerError(() => fetch(endpoint, request));\r\n if (!response.ok) {\r\n throw await getErrorFromResponse('Delete Installation', response);\r\n }\r\n}\r\nfunction getDeleteEndpoint(appConfig, { fid }) {\r\n return `${getInstallationsEndpoint(appConfig)}/${fid}`;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Deletes the Firebase Installation and all associated data.\r\n * @param installations - The `Installations` instance.\r\n *\r\n * @public\r\n */\r\nasync function deleteInstallations(installations) {\r\n const { appConfig } = installations;\r\n const entry = await update(appConfig, oldEntry => {\r\n if (oldEntry && oldEntry.registrationStatus === 0 /* RequestStatus.NOT_STARTED */) {\r\n // Delete the unregistered entry without sending a deleteInstallation request.\r\n return undefined;\r\n }\r\n return oldEntry;\r\n });\r\n if (entry) {\r\n if (entry.registrationStatus === 1 /* RequestStatus.IN_PROGRESS */) {\r\n // Can't delete while trying to register.\r\n throw ERROR_FACTORY.create(\"delete-pending-registration\" /* ErrorCode.DELETE_PENDING_REGISTRATION */);\r\n }\r\n else if (entry.registrationStatus === 2 /* RequestStatus.COMPLETED */) {\r\n if (!navigator.onLine) {\r\n throw ERROR_FACTORY.create(\"app-offline\" /* ErrorCode.APP_OFFLINE */);\r\n }\r\n else {\r\n await deleteInstallationRequest(appConfig, entry);\r\n await remove(appConfig);\r\n }\r\n }\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Sets a new callback that will get called when Installation ID changes.\r\n * Returns an unsubscribe function that will remove the callback when called.\r\n * @param installations - The `Installations` instance.\r\n * @param callback - The callback function that is invoked when FID changes.\r\n * @returns A function that can be called to unsubscribe.\r\n *\r\n * @public\r\n */\r\nfunction onIdChange(installations, callback) {\r\n const { appConfig } = installations;\r\n addCallback(appConfig, callback);\r\n return () => {\r\n removeCallback(appConfig, callback);\r\n };\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Returns an instance of {@link Installations} associated with the given\r\n * {@link @firebase/app#FirebaseApp} instance.\r\n * @param app - The {@link @firebase/app#FirebaseApp} instance.\r\n *\r\n * @public\r\n */\r\nfunction getInstallations(app = getApp()) {\r\n const installationsImpl = _getProvider(app, 'installations').getImmediate();\r\n return installationsImpl;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction extractAppConfig(app) {\r\n if (!app || !app.options) {\r\n throw getMissingValueError('App Configuration');\r\n }\r\n if (!app.name) {\r\n throw getMissingValueError('App Name');\r\n }\r\n // Required app config keys\r\n const configKeys = [\r\n 'projectId',\r\n 'apiKey',\r\n 'appId'\r\n ];\r\n for (const keyName of configKeys) {\r\n if (!app.options[keyName]) {\r\n throw getMissingValueError(keyName);\r\n }\r\n }\r\n return {\r\n appName: app.name,\r\n projectId: app.options.projectId,\r\n apiKey: app.options.apiKey,\r\n appId: app.options.appId\r\n };\r\n}\r\nfunction getMissingValueError(valueName) {\r\n return ERROR_FACTORY.create(\"missing-app-config-values\" /* ErrorCode.MISSING_APP_CONFIG_VALUES */, {\r\n valueName\r\n });\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst INSTALLATIONS_NAME = 'installations';\r\nconst INSTALLATIONS_NAME_INTERNAL = 'installations-internal';\r\nconst publicFactory = (container) => {\r\n const app = container.getProvider('app').getImmediate();\r\n // Throws if app isn't configured properly.\r\n const appConfig = extractAppConfig(app);\r\n const heartbeatServiceProvider = _getProvider(app, 'heartbeat');\r\n const installationsImpl = {\r\n app,\r\n appConfig,\r\n heartbeatServiceProvider,\r\n _delete: () => Promise.resolve()\r\n };\r\n return installationsImpl;\r\n};\r\nconst internalFactory = (container) => {\r\n const app = container.getProvider('app').getImmediate();\r\n // Internal FIS instance relies on public FIS instance.\r\n const installations = _getProvider(app, INSTALLATIONS_NAME).getImmediate();\r\n const installationsInternal = {\r\n getId: () => getId(installations),\r\n getToken: (forceRefresh) => getToken(installations, forceRefresh)\r\n };\r\n return installationsInternal;\r\n};\r\nfunction registerInstallations() {\r\n _registerComponent(new Component(INSTALLATIONS_NAME, publicFactory, \"PUBLIC\" /* ComponentType.PUBLIC */));\r\n _registerComponent(new Component(INSTALLATIONS_NAME_INTERNAL, internalFactory, \"PRIVATE\" /* ComponentType.PRIVATE */));\r\n}\n\n/**\r\n * The Firebase Installations Web SDK.\r\n * This SDK does not work in a Node.js environment.\r\n *\r\n * @packageDocumentation\r\n */\r\nregisterInstallations();\r\nregisterVersion(name, version);\r\n// BUILD_TARGET will be replaced by values like esm5, esm2017, cjs5, etc during the compilation\r\nregisterVersion(name, version, 'esm2017');\n\nexport { deleteInstallations, getId, getInstallations, getToken, onIdChange };\n//# sourceMappingURL=index.esm2017.js.map\n","import '@firebase/installations';\nimport { Component } from '@firebase/component';\nimport { openDB, deleteDB } from 'idb';\nimport { ErrorFactory, validateIndexedDBOpenable, isIndexedDBAvailable, areCookiesEnabled, getModularInstance } from '@firebase/util';\nimport { _registerComponent, registerVersion, _getProvider, getApp } from '@firebase/app';\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst DEFAULT_SW_PATH = '/firebase-messaging-sw.js';\r\nconst DEFAULT_SW_SCOPE = '/firebase-cloud-messaging-push-scope';\r\nconst DEFAULT_VAPID_KEY = 'BDOU99-h67HcA6JeFXHbSNMu7e2yNNu3RzoMj8TM4W88jITfq7ZmPvIM1Iv-4_l2LxQcYwhqby2xGpWwzjfAnG4';\r\nconst ENDPOINT = 'https://fcmregistrations.googleapis.com/v1';\r\nconst CONSOLE_CAMPAIGN_ID = 'google.c.a.c_id';\r\nconst CONSOLE_CAMPAIGN_NAME = 'google.c.a.c_l';\r\nconst CONSOLE_CAMPAIGN_TIME = 'google.c.a.ts';\r\n/** Set to '1' if Analytics is enabled for the campaign */\r\nconst CONSOLE_CAMPAIGN_ANALYTICS_ENABLED = 'google.c.a.e';\r\nvar MessageType$1;\r\n(function (MessageType) {\r\n MessageType[MessageType[\"DATA_MESSAGE\"] = 1] = \"DATA_MESSAGE\";\r\n MessageType[MessageType[\"DISPLAY_NOTIFICATION\"] = 3] = \"DISPLAY_NOTIFICATION\";\r\n})(MessageType$1 || (MessageType$1 = {}));\n\n/**\r\n * @license\r\n * Copyright 2018 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except\r\n * in compliance with the License. You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software distributed under the License\r\n * is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express\r\n * or implied. See the License for the specific language governing permissions and limitations under\r\n * the License.\r\n */\r\nvar MessageType;\r\n(function (MessageType) {\r\n MessageType[\"PUSH_RECEIVED\"] = \"push-received\";\r\n MessageType[\"NOTIFICATION_CLICKED\"] = \"notification-clicked\";\r\n})(MessageType || (MessageType = {}));\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction arrayToBase64(array) {\r\n const uint8Array = new Uint8Array(array);\r\n const base64String = btoa(String.fromCharCode(...uint8Array));\r\n return base64String.replace(/=/g, '').replace(/\\+/g, '-').replace(/\\//g, '_');\r\n}\r\nfunction base64ToArray(base64String) {\r\n const padding = '='.repeat((4 - (base64String.length % 4)) % 4);\r\n const base64 = (base64String + padding)\r\n .replace(/\\-/g, '+')\r\n .replace(/_/g, '/');\r\n const rawData = atob(base64);\r\n const outputArray = new Uint8Array(rawData.length);\r\n for (let i = 0; i < rawData.length; ++i) {\r\n outputArray[i] = rawData.charCodeAt(i);\r\n }\r\n return outputArray;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst OLD_DB_NAME = 'fcm_token_details_db';\r\n/**\r\n * The last DB version of 'fcm_token_details_db' was 4. This is one higher, so that the upgrade\r\n * callback is called for all versions of the old DB.\r\n */\r\nconst OLD_DB_VERSION = 5;\r\nconst OLD_OBJECT_STORE_NAME = 'fcm_token_object_Store';\r\nasync function migrateOldDatabase(senderId) {\r\n if ('databases' in indexedDB) {\r\n // indexedDb.databases() is an IndexedDB v3 API and does not exist in all browsers. TODO: Remove\r\n // typecast when it lands in TS types.\r\n const databases = await indexedDB.databases();\r\n const dbNames = databases.map(db => db.name);\r\n if (!dbNames.includes(OLD_DB_NAME)) {\r\n // old DB didn't exist, no need to open.\r\n return null;\r\n }\r\n }\r\n let tokenDetails = null;\r\n const db = await openDB(OLD_DB_NAME, OLD_DB_VERSION, {\r\n upgrade: async (db, oldVersion, newVersion, upgradeTransaction) => {\r\n var _a;\r\n if (oldVersion < 2) {\r\n // Database too old, skip migration.\r\n return;\r\n }\r\n if (!db.objectStoreNames.contains(OLD_OBJECT_STORE_NAME)) {\r\n // Database did not exist. Nothing to do.\r\n return;\r\n }\r\n const objectStore = upgradeTransaction.objectStore(OLD_OBJECT_STORE_NAME);\r\n const value = await objectStore.index('fcmSenderId').get(senderId);\r\n await objectStore.clear();\r\n if (!value) {\r\n // No entry in the database, nothing to migrate.\r\n return;\r\n }\r\n if (oldVersion === 2) {\r\n const oldDetails = value;\r\n if (!oldDetails.auth || !oldDetails.p256dh || !oldDetails.endpoint) {\r\n return;\r\n }\r\n tokenDetails = {\r\n token: oldDetails.fcmToken,\r\n createTime: (_a = oldDetails.createTime) !== null && _a !== void 0 ? _a : Date.now(),\r\n subscriptionOptions: {\r\n auth: oldDetails.auth,\r\n p256dh: oldDetails.p256dh,\r\n endpoint: oldDetails.endpoint,\r\n swScope: oldDetails.swScope,\r\n vapidKey: typeof oldDetails.vapidKey === 'string'\r\n ? oldDetails.vapidKey\r\n : arrayToBase64(oldDetails.vapidKey)\r\n }\r\n };\r\n }\r\n else if (oldVersion === 3) {\r\n const oldDetails = value;\r\n tokenDetails = {\r\n token: oldDetails.fcmToken,\r\n createTime: oldDetails.createTime,\r\n subscriptionOptions: {\r\n auth: arrayToBase64(oldDetails.auth),\r\n p256dh: arrayToBase64(oldDetails.p256dh),\r\n endpoint: oldDetails.endpoint,\r\n swScope: oldDetails.swScope,\r\n vapidKey: arrayToBase64(oldDetails.vapidKey)\r\n }\r\n };\r\n }\r\n else if (oldVersion === 4) {\r\n const oldDetails = value;\r\n tokenDetails = {\r\n token: oldDetails.fcmToken,\r\n createTime: oldDetails.createTime,\r\n subscriptionOptions: {\r\n auth: arrayToBase64(oldDetails.auth),\r\n p256dh: arrayToBase64(oldDetails.p256dh),\r\n endpoint: oldDetails.endpoint,\r\n swScope: oldDetails.swScope,\r\n vapidKey: arrayToBase64(oldDetails.vapidKey)\r\n }\r\n };\r\n }\r\n }\r\n });\r\n db.close();\r\n // Delete all old databases.\r\n await deleteDB(OLD_DB_NAME);\r\n await deleteDB('fcm_vapid_details_db');\r\n await deleteDB('undefined');\r\n return checkTokenDetails(tokenDetails) ? tokenDetails : null;\r\n}\r\nfunction checkTokenDetails(tokenDetails) {\r\n if (!tokenDetails || !tokenDetails.subscriptionOptions) {\r\n return false;\r\n }\r\n const { subscriptionOptions } = tokenDetails;\r\n return (typeof tokenDetails.createTime === 'number' &&\r\n tokenDetails.createTime > 0 &&\r\n typeof tokenDetails.token === 'string' &&\r\n tokenDetails.token.length > 0 &&\r\n typeof subscriptionOptions.auth === 'string' &&\r\n subscriptionOptions.auth.length > 0 &&\r\n typeof subscriptionOptions.p256dh === 'string' &&\r\n subscriptionOptions.p256dh.length > 0 &&\r\n typeof subscriptionOptions.endpoint === 'string' &&\r\n subscriptionOptions.endpoint.length > 0 &&\r\n typeof subscriptionOptions.swScope === 'string' &&\r\n subscriptionOptions.swScope.length > 0 &&\r\n typeof subscriptionOptions.vapidKey === 'string' &&\r\n subscriptionOptions.vapidKey.length > 0);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n// Exported for tests.\r\nconst DATABASE_NAME = 'firebase-messaging-database';\r\nconst DATABASE_VERSION = 1;\r\nconst OBJECT_STORE_NAME = 'firebase-messaging-store';\r\nlet dbPromise = null;\r\nfunction getDbPromise() {\r\n if (!dbPromise) {\r\n dbPromise = openDB(DATABASE_NAME, DATABASE_VERSION, {\r\n upgrade: (upgradeDb, oldVersion) => {\r\n // We don't use 'break' in this switch statement, the fall-through behavior is what we want,\r\n // because if there are multiple versions between the old version and the current version, we\r\n // want ALL the migrations that correspond to those versions to run, not only the last one.\r\n // eslint-disable-next-line default-case\r\n switch (oldVersion) {\r\n case 0:\r\n upgradeDb.createObjectStore(OBJECT_STORE_NAME);\r\n }\r\n }\r\n });\r\n }\r\n return dbPromise;\r\n}\r\n/** Gets record(s) from the objectStore that match the given key. */\r\nasync function dbGet(firebaseDependencies) {\r\n const key = getKey(firebaseDependencies);\r\n const db = await getDbPromise();\r\n const tokenDetails = (await db\r\n .transaction(OBJECT_STORE_NAME)\r\n .objectStore(OBJECT_STORE_NAME)\r\n .get(key));\r\n if (tokenDetails) {\r\n return tokenDetails;\r\n }\r\n else {\r\n // Check if there is a tokenDetails object in the old DB.\r\n const oldTokenDetails = await migrateOldDatabase(firebaseDependencies.appConfig.senderId);\r\n if (oldTokenDetails) {\r\n await dbSet(firebaseDependencies, oldTokenDetails);\r\n return oldTokenDetails;\r\n }\r\n }\r\n}\r\n/** Assigns or overwrites the record for the given key with the given value. */\r\nasync function dbSet(firebaseDependencies, tokenDetails) {\r\n const key = getKey(firebaseDependencies);\r\n const db = await getDbPromise();\r\n const tx = db.transaction(OBJECT_STORE_NAME, 'readwrite');\r\n await tx.objectStore(OBJECT_STORE_NAME).put(tokenDetails, key);\r\n await tx.done;\r\n return tokenDetails;\r\n}\r\n/** Removes record(s) from the objectStore that match the given key. */\r\nasync function dbRemove(firebaseDependencies) {\r\n const key = getKey(firebaseDependencies);\r\n const db = await getDbPromise();\r\n const tx = db.transaction(OBJECT_STORE_NAME, 'readwrite');\r\n await tx.objectStore(OBJECT_STORE_NAME).delete(key);\r\n await tx.done;\r\n}\r\nfunction getKey({ appConfig }) {\r\n return appConfig.appId;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst ERROR_MAP = {\r\n [\"missing-app-config-values\" /* ErrorCode.MISSING_APP_CONFIG_VALUES */]: 'Missing App configuration value: \"{$valueName}\"',\r\n [\"only-available-in-window\" /* ErrorCode.AVAILABLE_IN_WINDOW */]: 'This method is available in a Window context.',\r\n [\"only-available-in-sw\" /* ErrorCode.AVAILABLE_IN_SW */]: 'This method is available in a service worker context.',\r\n [\"permission-default\" /* ErrorCode.PERMISSION_DEFAULT */]: 'The notification permission was not granted and dismissed instead.',\r\n [\"permission-blocked\" /* ErrorCode.PERMISSION_BLOCKED */]: 'The notification permission was not granted and blocked instead.',\r\n [\"unsupported-browser\" /* ErrorCode.UNSUPPORTED_BROWSER */]: \"This browser doesn't support the API's required to use the Firebase SDK.\",\r\n [\"indexed-db-unsupported\" /* ErrorCode.INDEXED_DB_UNSUPPORTED */]: \"This browser doesn't support indexedDb.open() (ex. Safari iFrame, Firefox Private Browsing, etc)\",\r\n [\"failed-service-worker-registration\" /* ErrorCode.FAILED_DEFAULT_REGISTRATION */]: 'We are unable to register the default service worker. {$browserErrorMessage}',\r\n [\"token-subscribe-failed\" /* ErrorCode.TOKEN_SUBSCRIBE_FAILED */]: 'A problem occurred while subscribing the user to FCM: {$errorInfo}',\r\n [\"token-subscribe-no-token\" /* ErrorCode.TOKEN_SUBSCRIBE_NO_TOKEN */]: 'FCM returned no token when subscribing the user to push.',\r\n [\"token-unsubscribe-failed\" /* ErrorCode.TOKEN_UNSUBSCRIBE_FAILED */]: 'A problem occurred while unsubscribing the ' +\r\n 'user from FCM: {$errorInfo}',\r\n [\"token-update-failed\" /* ErrorCode.TOKEN_UPDATE_FAILED */]: 'A problem occurred while updating the user from FCM: {$errorInfo}',\r\n [\"token-update-no-token\" /* ErrorCode.TOKEN_UPDATE_NO_TOKEN */]: 'FCM returned no token when updating the user to push.',\r\n [\"use-sw-after-get-token\" /* ErrorCode.USE_SW_AFTER_GET_TOKEN */]: 'The useServiceWorker() method may only be called once and must be ' +\r\n 'called before calling getToken() to ensure your service worker is used.',\r\n [\"invalid-sw-registration\" /* ErrorCode.INVALID_SW_REGISTRATION */]: 'The input to useServiceWorker() must be a ServiceWorkerRegistration.',\r\n [\"invalid-bg-handler\" /* ErrorCode.INVALID_BG_HANDLER */]: 'The input to setBackgroundMessageHandler() must be a function.',\r\n [\"invalid-vapid-key\" /* ErrorCode.INVALID_VAPID_KEY */]: 'The public VAPID key must be a string.',\r\n [\"use-vapid-key-after-get-token\" /* ErrorCode.USE_VAPID_KEY_AFTER_GET_TOKEN */]: 'The usePublicVapidKey() method may only be called once and must be ' +\r\n 'called before calling getToken() to ensure your VAPID key is used.'\r\n};\r\nconst ERROR_FACTORY = new ErrorFactory('messaging', 'Messaging', ERROR_MAP);\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nasync function requestGetToken(firebaseDependencies, subscriptionOptions) {\r\n const headers = await getHeaders(firebaseDependencies);\r\n const body = getBody(subscriptionOptions);\r\n const subscribeOptions = {\r\n method: 'POST',\r\n headers,\r\n body: JSON.stringify(body)\r\n };\r\n let responseData;\r\n try {\r\n const response = await fetch(getEndpoint(firebaseDependencies.appConfig), subscribeOptions);\r\n responseData = await response.json();\r\n }\r\n catch (err) {\r\n throw ERROR_FACTORY.create(\"token-subscribe-failed\" /* ErrorCode.TOKEN_SUBSCRIBE_FAILED */, {\r\n errorInfo: err === null || err === void 0 ? void 0 : err.toString()\r\n });\r\n }\r\n if (responseData.error) {\r\n const message = responseData.error.message;\r\n throw ERROR_FACTORY.create(\"token-subscribe-failed\" /* ErrorCode.TOKEN_SUBSCRIBE_FAILED */, {\r\n errorInfo: message\r\n });\r\n }\r\n if (!responseData.token) {\r\n throw ERROR_FACTORY.create(\"token-subscribe-no-token\" /* ErrorCode.TOKEN_SUBSCRIBE_NO_TOKEN */);\r\n }\r\n return responseData.token;\r\n}\r\nasync function requestUpdateToken(firebaseDependencies, tokenDetails) {\r\n const headers = await getHeaders(firebaseDependencies);\r\n const body = getBody(tokenDetails.subscriptionOptions);\r\n const updateOptions = {\r\n method: 'PATCH',\r\n headers,\r\n body: JSON.stringify(body)\r\n };\r\n let responseData;\r\n try {\r\n const response = await fetch(`${getEndpoint(firebaseDependencies.appConfig)}/${tokenDetails.token}`, updateOptions);\r\n responseData = await response.json();\r\n }\r\n catch (err) {\r\n throw ERROR_FACTORY.create(\"token-update-failed\" /* ErrorCode.TOKEN_UPDATE_FAILED */, {\r\n errorInfo: err === null || err === void 0 ? void 0 : err.toString()\r\n });\r\n }\r\n if (responseData.error) {\r\n const message = responseData.error.message;\r\n throw ERROR_FACTORY.create(\"token-update-failed\" /* ErrorCode.TOKEN_UPDATE_FAILED */, {\r\n errorInfo: message\r\n });\r\n }\r\n if (!responseData.token) {\r\n throw ERROR_FACTORY.create(\"token-update-no-token\" /* ErrorCode.TOKEN_UPDATE_NO_TOKEN */);\r\n }\r\n return responseData.token;\r\n}\r\nasync function requestDeleteToken(firebaseDependencies, token) {\r\n const headers = await getHeaders(firebaseDependencies);\r\n const unsubscribeOptions = {\r\n method: 'DELETE',\r\n headers\r\n };\r\n try {\r\n const response = await fetch(`${getEndpoint(firebaseDependencies.appConfig)}/${token}`, unsubscribeOptions);\r\n const responseData = await response.json();\r\n if (responseData.error) {\r\n const message = responseData.error.message;\r\n throw ERROR_FACTORY.create(\"token-unsubscribe-failed\" /* ErrorCode.TOKEN_UNSUBSCRIBE_FAILED */, {\r\n errorInfo: message\r\n });\r\n }\r\n }\r\n catch (err) {\r\n throw ERROR_FACTORY.create(\"token-unsubscribe-failed\" /* ErrorCode.TOKEN_UNSUBSCRIBE_FAILED */, {\r\n errorInfo: err === null || err === void 0 ? void 0 : err.toString()\r\n });\r\n }\r\n}\r\nfunction getEndpoint({ projectId }) {\r\n return `${ENDPOINT}/projects/${projectId}/registrations`;\r\n}\r\nasync function getHeaders({ appConfig, installations }) {\r\n const authToken = await installations.getToken();\r\n return new Headers({\r\n 'Content-Type': 'application/json',\r\n Accept: 'application/json',\r\n 'x-goog-api-key': appConfig.apiKey,\r\n 'x-goog-firebase-installations-auth': `FIS ${authToken}`\r\n });\r\n}\r\nfunction getBody({ p256dh, auth, endpoint, vapidKey }) {\r\n const body = {\r\n web: {\r\n endpoint,\r\n auth,\r\n p256dh\r\n }\r\n };\r\n if (vapidKey !== DEFAULT_VAPID_KEY) {\r\n body.web.applicationPubKey = vapidKey;\r\n }\r\n return body;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n// UpdateRegistration will be called once every week.\r\nconst TOKEN_EXPIRATION_MS = 7 * 24 * 60 * 60 * 1000; // 7 days\r\nasync function getTokenInternal(messaging) {\r\n const pushSubscription = await getPushSubscription(messaging.swRegistration, messaging.vapidKey);\r\n const subscriptionOptions = {\r\n vapidKey: messaging.vapidKey,\r\n swScope: messaging.swRegistration.scope,\r\n endpoint: pushSubscription.endpoint,\r\n auth: arrayToBase64(pushSubscription.getKey('auth')),\r\n p256dh: arrayToBase64(pushSubscription.getKey('p256dh'))\r\n };\r\n const tokenDetails = await dbGet(messaging.firebaseDependencies);\r\n if (!tokenDetails) {\r\n // No token, get a new one.\r\n return getNewToken(messaging.firebaseDependencies, subscriptionOptions);\r\n }\r\n else if (!isTokenValid(tokenDetails.subscriptionOptions, subscriptionOptions)) {\r\n // Invalid token, get a new one.\r\n try {\r\n await requestDeleteToken(messaging.firebaseDependencies, tokenDetails.token);\r\n }\r\n catch (e) {\r\n // Suppress errors because of #2364\r\n console.warn(e);\r\n }\r\n return getNewToken(messaging.firebaseDependencies, subscriptionOptions);\r\n }\r\n else if (Date.now() >= tokenDetails.createTime + TOKEN_EXPIRATION_MS) {\r\n // Weekly token refresh\r\n return updateToken(messaging, {\r\n token: tokenDetails.token,\r\n createTime: Date.now(),\r\n subscriptionOptions\r\n });\r\n }\r\n else {\r\n // Valid token, nothing to do.\r\n return tokenDetails.token;\r\n }\r\n}\r\n/**\r\n * This method deletes the token from the database, unsubscribes the token from FCM, and unregisters\r\n * the push subscription if it exists.\r\n */\r\nasync function deleteTokenInternal(messaging) {\r\n const tokenDetails = await dbGet(messaging.firebaseDependencies);\r\n if (tokenDetails) {\r\n await requestDeleteToken(messaging.firebaseDependencies, tokenDetails.token);\r\n await dbRemove(messaging.firebaseDependencies);\r\n }\r\n // Unsubscribe from the push subscription.\r\n const pushSubscription = await messaging.swRegistration.pushManager.getSubscription();\r\n if (pushSubscription) {\r\n return pushSubscription.unsubscribe();\r\n }\r\n // If there's no SW, consider it a success.\r\n return true;\r\n}\r\nasync function updateToken(messaging, tokenDetails) {\r\n try {\r\n const updatedToken = await requestUpdateToken(messaging.firebaseDependencies, tokenDetails);\r\n const updatedTokenDetails = Object.assign(Object.assign({}, tokenDetails), { token: updatedToken, createTime: Date.now() });\r\n await dbSet(messaging.firebaseDependencies, updatedTokenDetails);\r\n return updatedToken;\r\n }\r\n catch (e) {\r\n throw e;\r\n }\r\n}\r\nasync function getNewToken(firebaseDependencies, subscriptionOptions) {\r\n const token = await requestGetToken(firebaseDependencies, subscriptionOptions);\r\n const tokenDetails = {\r\n token,\r\n createTime: Date.now(),\r\n subscriptionOptions\r\n };\r\n await dbSet(firebaseDependencies, tokenDetails);\r\n return tokenDetails.token;\r\n}\r\n/**\r\n * Gets a PushSubscription for the current user.\r\n */\r\nasync function getPushSubscription(swRegistration, vapidKey) {\r\n const subscription = await swRegistration.pushManager.getSubscription();\r\n if (subscription) {\r\n return subscription;\r\n }\r\n return swRegistration.pushManager.subscribe({\r\n userVisibleOnly: true,\r\n // Chrome <= 75 doesn't support base64-encoded VAPID key. For backward compatibility, VAPID key\r\n // submitted to pushManager#subscribe must be of type Uint8Array.\r\n applicationServerKey: base64ToArray(vapidKey)\r\n });\r\n}\r\n/**\r\n * Checks if the saved tokenDetails object matches the configuration provided.\r\n */\r\nfunction isTokenValid(dbOptions, currentOptions) {\r\n const isVapidKeyEqual = currentOptions.vapidKey === dbOptions.vapidKey;\r\n const isEndpointEqual = currentOptions.endpoint === dbOptions.endpoint;\r\n const isAuthEqual = currentOptions.auth === dbOptions.auth;\r\n const isP256dhEqual = currentOptions.p256dh === dbOptions.p256dh;\r\n return isVapidKeyEqual && isEndpointEqual && isAuthEqual && isP256dhEqual;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction externalizePayload(internalPayload) {\r\n const payload = {\r\n from: internalPayload.from,\r\n // eslint-disable-next-line camelcase\r\n collapseKey: internalPayload.collapse_key,\r\n // eslint-disable-next-line camelcase\r\n messageId: internalPayload.fcmMessageId\r\n };\r\n propagateNotificationPayload(payload, internalPayload);\r\n propagateDataPayload(payload, internalPayload);\r\n propagateFcmOptions(payload, internalPayload);\r\n return payload;\r\n}\r\nfunction propagateNotificationPayload(payload, messagePayloadInternal) {\r\n if (!messagePayloadInternal.notification) {\r\n return;\r\n }\r\n payload.notification = {};\r\n const title = messagePayloadInternal.notification.title;\r\n if (!!title) {\r\n payload.notification.title = title;\r\n }\r\n const body = messagePayloadInternal.notification.body;\r\n if (!!body) {\r\n payload.notification.body = body;\r\n }\r\n const image = messagePayloadInternal.notification.image;\r\n if (!!image) {\r\n payload.notification.image = image;\r\n }\r\n const icon = messagePayloadInternal.notification.icon;\r\n if (!!icon) {\r\n payload.notification.icon = icon;\r\n }\r\n}\r\nfunction propagateDataPayload(payload, messagePayloadInternal) {\r\n if (!messagePayloadInternal.data) {\r\n return;\r\n }\r\n payload.data = messagePayloadInternal.data;\r\n}\r\nfunction propagateFcmOptions(payload, messagePayloadInternal) {\r\n var _a, _b, _c, _d, _e;\r\n // fcmOptions.link value is written into notification.click_action. see more in b/232072111\r\n if (!messagePayloadInternal.fcmOptions &&\r\n !((_a = messagePayloadInternal.notification) === null || _a === void 0 ? void 0 : _a.click_action)) {\r\n return;\r\n }\r\n payload.fcmOptions = {};\r\n const link = (_c = (_b = messagePayloadInternal.fcmOptions) === null || _b === void 0 ? void 0 : _b.link) !== null && _c !== void 0 ? _c : (_d = messagePayloadInternal.notification) === null || _d === void 0 ? void 0 : _d.click_action;\r\n if (!!link) {\r\n payload.fcmOptions.link = link;\r\n }\r\n // eslint-disable-next-line camelcase\r\n const analyticsLabel = (_e = messagePayloadInternal.fcmOptions) === null || _e === void 0 ? void 0 : _e.analytics_label;\r\n if (!!analyticsLabel) {\r\n payload.fcmOptions.analyticsLabel = analyticsLabel;\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction isConsoleMessage(data) {\r\n // This message has a campaign ID, meaning it was sent using the Firebase Console.\r\n return typeof data === 'object' && !!data && CONSOLE_CAMPAIGN_ID in data;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n_mergeStrings('AzSCbw63g1R0nCw85jG8', 'Iaya3yLKwmgvh7cF0q4');\r\nfunction _mergeStrings(s1, s2) {\r\n const resultArray = [];\r\n for (let i = 0; i < s1.length; i++) {\r\n resultArray.push(s1.charAt(i));\r\n if (i < s2.length) {\r\n resultArray.push(s2.charAt(i));\r\n }\r\n }\r\n return resultArray.join('');\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction extractAppConfig(app) {\r\n if (!app || !app.options) {\r\n throw getMissingValueError('App Configuration Object');\r\n }\r\n if (!app.name) {\r\n throw getMissingValueError('App Name');\r\n }\r\n // Required app config keys\r\n const configKeys = [\r\n 'projectId',\r\n 'apiKey',\r\n 'appId',\r\n 'messagingSenderId'\r\n ];\r\n const { options } = app;\r\n for (const keyName of configKeys) {\r\n if (!options[keyName]) {\r\n throw getMissingValueError(keyName);\r\n }\r\n }\r\n return {\r\n appName: app.name,\r\n projectId: options.projectId,\r\n apiKey: options.apiKey,\r\n appId: options.appId,\r\n senderId: options.messagingSenderId\r\n };\r\n}\r\nfunction getMissingValueError(valueName) {\r\n return ERROR_FACTORY.create(\"missing-app-config-values\" /* ErrorCode.MISSING_APP_CONFIG_VALUES */, {\r\n valueName\r\n });\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nclass MessagingService {\r\n constructor(app, installations, analyticsProvider) {\r\n // logging is only done with end user consent. Default to false.\r\n this.deliveryMetricsExportedToBigQueryEnabled = false;\r\n this.onBackgroundMessageHandler = null;\r\n this.onMessageHandler = null;\r\n this.logEvents = [];\r\n this.isLogServiceStarted = false;\r\n const appConfig = extractAppConfig(app);\r\n this.firebaseDependencies = {\r\n app,\r\n appConfig,\r\n installations,\r\n analyticsProvider\r\n };\r\n }\r\n _delete() {\r\n return Promise.resolve();\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nasync function registerDefaultSw(messaging) {\r\n try {\r\n messaging.swRegistration = await navigator.serviceWorker.register(DEFAULT_SW_PATH, {\r\n scope: DEFAULT_SW_SCOPE\r\n });\r\n // The timing when browser updates sw when sw has an update is unreliable from experiment. It\r\n // leads to version conflict when the SDK upgrades to a newer version in the main page, but sw\r\n // is stuck with the old version. For example,\r\n // https://github.com/firebase/firebase-js-sdk/issues/2590 The following line reliably updates\r\n // sw if there was an update.\r\n messaging.swRegistration.update().catch(() => {\r\n /* it is non blocking and we don't care if it failed */\r\n });\r\n }\r\n catch (e) {\r\n throw ERROR_FACTORY.create(\"failed-service-worker-registration\" /* ErrorCode.FAILED_DEFAULT_REGISTRATION */, {\r\n browserErrorMessage: e === null || e === void 0 ? void 0 : e.message\r\n });\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nasync function updateSwReg(messaging, swRegistration) {\r\n if (!swRegistration && !messaging.swRegistration) {\r\n await registerDefaultSw(messaging);\r\n }\r\n if (!swRegistration && !!messaging.swRegistration) {\r\n return;\r\n }\r\n if (!(swRegistration instanceof ServiceWorkerRegistration)) {\r\n throw ERROR_FACTORY.create(\"invalid-sw-registration\" /* ErrorCode.INVALID_SW_REGISTRATION */);\r\n }\r\n messaging.swRegistration = swRegistration;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nasync function updateVapidKey(messaging, vapidKey) {\r\n if (!!vapidKey) {\r\n messaging.vapidKey = vapidKey;\r\n }\r\n else if (!messaging.vapidKey) {\r\n messaging.vapidKey = DEFAULT_VAPID_KEY;\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nasync function getToken$1(messaging, options) {\r\n if (!navigator) {\r\n throw ERROR_FACTORY.create(\"only-available-in-window\" /* ErrorCode.AVAILABLE_IN_WINDOW */);\r\n }\r\n if (Notification.permission === 'default') {\r\n await Notification.requestPermission();\r\n }\r\n if (Notification.permission !== 'granted') {\r\n throw ERROR_FACTORY.create(\"permission-blocked\" /* ErrorCode.PERMISSION_BLOCKED */);\r\n }\r\n await updateVapidKey(messaging, options === null || options === void 0 ? void 0 : options.vapidKey);\r\n await updateSwReg(messaging, options === null || options === void 0 ? void 0 : options.serviceWorkerRegistration);\r\n return getTokenInternal(messaging);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nasync function logToScion(messaging, messageType, data) {\r\n const eventType = getEventType(messageType);\r\n const analytics = await messaging.firebaseDependencies.analyticsProvider.get();\r\n analytics.logEvent(eventType, {\r\n /* eslint-disable camelcase */\r\n message_id: data[CONSOLE_CAMPAIGN_ID],\r\n message_name: data[CONSOLE_CAMPAIGN_NAME],\r\n message_time: data[CONSOLE_CAMPAIGN_TIME],\r\n message_device_time: Math.floor(Date.now() / 1000)\r\n /* eslint-enable camelcase */\r\n });\r\n}\r\nfunction getEventType(messageType) {\r\n switch (messageType) {\r\n case MessageType.NOTIFICATION_CLICKED:\r\n return 'notification_open';\r\n case MessageType.PUSH_RECEIVED:\r\n return 'notification_foreground';\r\n default:\r\n throw new Error();\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nasync function messageEventListener(messaging, event) {\r\n const internalPayload = event.data;\r\n if (!internalPayload.isFirebaseMessaging) {\r\n return;\r\n }\r\n if (messaging.onMessageHandler &&\r\n internalPayload.messageType === MessageType.PUSH_RECEIVED) {\r\n if (typeof messaging.onMessageHandler === 'function') {\r\n messaging.onMessageHandler(externalizePayload(internalPayload));\r\n }\r\n else {\r\n messaging.onMessageHandler.next(externalizePayload(internalPayload));\r\n }\r\n }\r\n // Log to Scion if applicable\r\n const dataPayload = internalPayload.data;\r\n if (isConsoleMessage(dataPayload) &&\r\n dataPayload[CONSOLE_CAMPAIGN_ANALYTICS_ENABLED] === '1') {\r\n await logToScion(messaging, internalPayload.messageType, dataPayload);\r\n }\r\n}\n\nconst name = \"@firebase/messaging\";\nconst version = \"0.12.12\";\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst WindowMessagingFactory = (container) => {\r\n const messaging = new MessagingService(container.getProvider('app').getImmediate(), container.getProvider('installations-internal').getImmediate(), container.getProvider('analytics-internal'));\r\n navigator.serviceWorker.addEventListener('message', e => messageEventListener(messaging, e));\r\n return messaging;\r\n};\r\nconst WindowMessagingInternalFactory = (container) => {\r\n const messaging = container\r\n .getProvider('messaging')\r\n .getImmediate();\r\n const messagingInternal = {\r\n getToken: (options) => getToken$1(messaging, options)\r\n };\r\n return messagingInternal;\r\n};\r\nfunction registerMessagingInWindow() {\r\n _registerComponent(new Component('messaging', WindowMessagingFactory, \"PUBLIC\" /* ComponentType.PUBLIC */));\r\n _registerComponent(new Component('messaging-internal', WindowMessagingInternalFactory, \"PRIVATE\" /* ComponentType.PRIVATE */));\r\n registerVersion(name, version);\r\n // BUILD_TARGET will be replaced by values like esm5, esm2017, cjs5, etc during the compilation\r\n registerVersion(name, version, 'esm2017');\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Checks if all required APIs exist in the browser.\r\n * @returns a Promise that resolves to a boolean.\r\n *\r\n * @public\r\n */\r\nasync function isWindowSupported() {\r\n try {\r\n // This throws if open() is unsupported, so adding it to the conditional\r\n // statement below can cause an uncaught error.\r\n await validateIndexedDBOpenable();\r\n }\r\n catch (e) {\r\n return false;\r\n }\r\n // firebase-js-sdk/issues/2393 reveals that idb#open in Safari iframe and Firefox private browsing\r\n // might be prohibited to run. In these contexts, an error would be thrown during the messaging\r\n // instantiating phase, informing the developers to import/call isSupported for special handling.\r\n return (typeof window !== 'undefined' &&\r\n isIndexedDBAvailable() &&\r\n areCookiesEnabled() &&\r\n 'serviceWorker' in navigator &&\r\n 'PushManager' in window &&\r\n 'Notification' in window &&\r\n 'fetch' in window &&\r\n ServiceWorkerRegistration.prototype.hasOwnProperty('showNotification') &&\r\n PushSubscription.prototype.hasOwnProperty('getKey'));\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nasync function deleteToken$1(messaging) {\r\n if (!navigator) {\r\n throw ERROR_FACTORY.create(\"only-available-in-window\" /* ErrorCode.AVAILABLE_IN_WINDOW */);\r\n }\r\n if (!messaging.swRegistration) {\r\n await registerDefaultSw(messaging);\r\n }\r\n return deleteTokenInternal(messaging);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction onMessage$1(messaging, nextOrObserver) {\r\n if (!navigator) {\r\n throw ERROR_FACTORY.create(\"only-available-in-window\" /* ErrorCode.AVAILABLE_IN_WINDOW */);\r\n }\r\n messaging.onMessageHandler = nextOrObserver;\r\n return () => {\r\n messaging.onMessageHandler = null;\r\n };\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Retrieves a Firebase Cloud Messaging instance.\r\n *\r\n * @returns The Firebase Cloud Messaging instance associated with the provided firebase app.\r\n *\r\n * @public\r\n */\r\nfunction getMessagingInWindow(app = getApp()) {\r\n // Conscious decision to make this async check non-blocking during the messaging instance\r\n // initialization phase for performance consideration. An error would be thrown latter for\r\n // developer's information. Developers can then choose to import and call `isSupported` for\r\n // special handling.\r\n isWindowSupported().then(isSupported => {\r\n // If `isWindowSupported()` resolved, but returned false.\r\n if (!isSupported) {\r\n throw ERROR_FACTORY.create(\"unsupported-browser\" /* ErrorCode.UNSUPPORTED_BROWSER */);\r\n }\r\n }, _ => {\r\n // If `isWindowSupported()` rejected.\r\n throw ERROR_FACTORY.create(\"indexed-db-unsupported\" /* ErrorCode.INDEXED_DB_UNSUPPORTED */);\r\n });\r\n return _getProvider(getModularInstance(app), 'messaging').getImmediate();\r\n}\r\n/**\r\n * Subscribes the {@link Messaging} instance to push notifications. Returns a Firebase Cloud\r\n * Messaging registration token that can be used to send push messages to that {@link Messaging}\r\n * instance.\r\n *\r\n * If notification permission isn't already granted, this method asks the user for permission. The\r\n * returned promise rejects if the user does not allow the app to show notifications.\r\n *\r\n * @param messaging - The {@link Messaging} instance.\r\n * @param options - Provides an optional vapid key and an optional service worker registration.\r\n *\r\n * @returns The promise resolves with an FCM registration token.\r\n *\r\n * @public\r\n */\r\nasync function getToken(messaging, options) {\r\n messaging = getModularInstance(messaging);\r\n return getToken$1(messaging, options);\r\n}\r\n/**\r\n * Deletes the registration token associated with this {@link Messaging} instance and unsubscribes\r\n * the {@link Messaging} instance from the push subscription.\r\n *\r\n * @param messaging - The {@link Messaging} instance.\r\n *\r\n * @returns The promise resolves when the token has been successfully deleted.\r\n *\r\n * @public\r\n */\r\nfunction deleteToken(messaging) {\r\n messaging = getModularInstance(messaging);\r\n return deleteToken$1(messaging);\r\n}\r\n/**\r\n * When a push message is received and the user is currently on a page for your origin, the\r\n * message is passed to the page and an `onMessage()` event is dispatched with the payload of\r\n * the push message.\r\n *\r\n *\r\n * @param messaging - The {@link Messaging} instance.\r\n * @param nextOrObserver - This function, or observer object with `next` defined,\r\n * is called when a message is received and the user is currently viewing your page.\r\n * @returns To stop listening for messages execute this returned function.\r\n *\r\n * @public\r\n */\r\nfunction onMessage(messaging, nextOrObserver) {\r\n messaging = getModularInstance(messaging);\r\n return onMessage$1(messaging, nextOrObserver);\r\n}\n\n/**\r\n * The Firebase Cloud Messaging Web SDK.\r\n * This SDK does not work in a Node.js environment.\r\n *\r\n * @packageDocumentation\r\n */\r\nregisterMessagingInWindow();\n\nexport { deleteToken, getMessagingInWindow as getMessaging, getToken, isWindowSupported as isSupported, onMessage };\n//# sourceMappingURL=index.esm2017.js.map\n","import { initializeApp, FirebaseApp } from 'firebase/app';\nimport { getMessaging, getToken, onMessage, Messaging } from 'firebase/messaging';\nimport { INotificationService } from './interfaces/INotificationService';\n\nexport class FirebaseNotificationService implements INotificationService {\n private app: FirebaseApp;\n private messagingInstance: Messaging | null = null;\n private tokenCheckInterval: number | null = null;\n\n constructor(config: {\n apiKey: string;\n authDomain: string;\n projectId: string;\n storageBucket: string;\n messagingSenderId: string;\n appId: string;\n }) {\n this.app = initializeApp(config);\n }\n\n private getMessagingInstance(): Messaging {\n if (!this.messagingInstance) {\n this.messagingInstance = getMessaging(this.app);\n }\n return this.messagingInstance;\n }\n\n public hasFCMToken(): boolean {\n const token = localStorage.getItem('fcm_token');\n return !!token;\n }\n\n /**\n * Verifica se o service worker do Firebase Messaging está ativo\n * Isso é importante porque o FCM precisa de um service worker ativo para funcionar\n */\n private async waitForActiveServiceWorker(maxAttempts = 5, delayMs = 500): Promise {\n if (!('serviceWorker' in navigator)) {\n return false;\n }\n\n try {\n // Verificar se o service worker do Firebase está registrado\n const registration = await navigator.serviceWorker.getRegistration('/firebase-messaging-sw.js');\n \n // Se não estiver registrado, registrá-lo\n if (!registration) {\n console.log('Registrando Firebase Messaging Service Worker...');\n await navigator.serviceWorker.register('/firebase-messaging-sw.js', { scope: '/' });\n // Esperar um pouco para o service worker ser ativado\n await new Promise(resolve => setTimeout(resolve, 1000));\n } \n // Se estiver em estado de espera, ativá-lo\n else if (registration.waiting) {\n console.log('Firebase Messaging Service Worker está em espera, ativando...');\n registration.waiting.postMessage({ type: 'SKIP_WAITING' });\n await new Promise(resolve => setTimeout(resolve, 1000));\n }\n \n // Verificar se o service worker está ativo\n for (let i = 0; i < maxAttempts; i++) {\n const currentReg = await navigator.serviceWorker.getRegistration('/firebase-messaging-sw.js');\n if (currentReg?.active) {\n console.log('Firebase Messaging Service Worker está ativo');\n return true;\n }\n \n console.log(`Aguardando ativação do Firebase Messaging Service Worker (${i+1}/${maxAttempts})...`);\n await new Promise(resolve => setTimeout(resolve, delayMs));\n }\n \n return false;\n } catch (error) {\n console.error('Erro ao verificar/registrar Firebase Messaging Service Worker:', error);\n return false;\n }\n }\n\n public async getToken(): Promise {\n try {\n // Verificar se já temos permissão\n if (Notification.permission !== 'granted') {\n console.log('Permissão de notificações não concedida');\n throw new Error('Permissão de notificações não concedida');\n }\n\n // Tentar obter token do localStorage primeiro (exceto em desenvolvimento)\n const savedToken = localStorage.getItem('fcm_token');\n if (savedToken && import.meta.env.MODE !== 'development') {\n console.log('Token FCM recuperado do localStorage');\n return savedToken;\n }\n \n // Garantir que o Firebase Messaging Service Worker esteja ativo\n const isActive = await this.waitForActiveServiceWorker();\n if (!isActive) {\n console.error('Firebase Messaging Service Worker não está ativo');\n throw new Error('Firebase Messaging Service Worker não está ativo');\n }\n\n // Obter o token FCM\n const messaging = this.getMessagingInstance();\n console.log('Obtendo novo token FCM...');\n \n // Obter o registro do service worker do Firebase para passar ao getToken\n const swRegistration = await navigator.serviceWorker.getRegistration('/firebase-messaging-sw.js');\n \n const currentToken = await getToken(messaging, {\n vapidKey: import.meta.env.VITE_FIREBASE_VAPID_KEY,\n serviceWorkerRegistration: swRegistration\n });\n\n if (!currentToken) {\n console.log('Não foi possível obter o token FCM');\n throw new Error('Não foi possível obter o token FCM');\n }\n\n // Armazenar o token no localStorage\n localStorage.setItem('fcm_token', currentToken);\n console.log('Token FCM obtido com sucesso');\n\n return currentToken;\n } catch (error) {\n console.error('Erro ao obter token FCM:', error);\n // Limpar token inválido se houver erro\n localStorage.removeItem('fcm_token');\n throw error;\n }\n }\n\n public async requestPermission(): Promise {\n try {\n const permission = await Notification.requestPermission();\n \n if (permission === 'granted') {\n return await this.getToken();\n } else {\n localStorage.removeItem('fcm_token');\n throw new Error('Permissão de notificações negada');\n }\n } catch (error) {\n console.error('Erro ao solicitar permissão:', error);\n throw error;\n }\n }\n\n public handlePermissionChange(previousPermission: NotificationPermission): void {\n const currentPermission = Notification.permission;\n if (previousPermission === 'granted' && \n (currentPermission === 'denied' || currentPermission === 'default')) {\n localStorage.removeItem('fcm_token');\n console.log('Permissão de notificações revogada. Token FCM removido.');\n }\n }\n} ","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { User, Session } from '@supabase/supabase-js';\nimport { MoodEntry, HealthRecord } from '../types';\nimport { supabase } from './supabaseClient';\nimport { v4 as uuidv4 } from 'uuid';\n\n// Register for push notifications\nexport const registerPush = async (fcmToken: string, userId: string | undefined): Promise => {\n return await supabase.functions.invoke('register-push', {\n body: {\n subscription: fcmToken, // Enviamos o token FCM\n user_id: userId\n }\n })\n};\n\n// Get current session\nexport const getCurrentSession = async (): Promise => {\n const { data } = await supabase.auth.getSession();\n return data.session;\n};\n\n// Get current user\nexport const getCurrentUser = async (): Promise => {\n const { data } = await supabase.auth.getUser();\n return data.user;\n};\n\n// Função para criar um hash irreversível do email usando a Web Crypto API\nexport const hashEmail = async (email: string): Promise => {\n try {\n // Normalizar o email para consistência\n const normalizedEmail = email.toLowerCase().trim();\n \n // Salt para aumentar a segurança (em produção, use um salt secreto e mais forte)\n const salt = 'mindful-moments-email-security-salt';\n \n // Criar o texto completo para hash (email + salt)\n const textToHash = `${normalizedEmail}${salt}`;\n \n // Converter para ArrayBuffer usando TextEncoder\n const encoder = new TextEncoder();\n const data = encoder.encode(textToHash);\n \n // Usar Web Crypto API para gerar o hash SHA-256\n const hashBuffer = await crypto.subtle.digest('SHA-256', data);\n \n // Converter para formato hexadecimal\n const hashArray = Array.from(new Uint8Array(hashBuffer));\n const hashHex = hashArray.map(b => b.toString(16).padStart(2, '0')).join('');\n \n // Retornar o hash formatado como um email válido\n return `anon_${hashHex}@hashed.com`;\n } catch (error) {\n console.error('Erro ao gerar hash do email:', error);\n \n // Implementação alternativa em caso de falha da Web Crypto API\n let hash = 0;\n const normalizedEmail = email.toLowerCase().trim();\n const salt = 'mindful-moments-email-security-salt';\n const textToHash = `${normalizedEmail}${salt}`;\n \n for (let i = 0; i < textToHash.length; i++) {\n const char = textToHash.charCodeAt(i);\n hash = ((hash << 5) - hash) + char;\n hash = hash & hash; // Converter para um inteiro de 32 bits\n }\n \n return `anon_${Math.abs(hash).toString(16)}_${Date.now().toString(16)}@hashed.com`;\n }\n};\n\n// Function to find the hashed email for a given regular email\nexport const findHashedEmail = async (email: string): Promise => {\n try {\n // Primeiro, tente usar a tabela de mapeamento de emails (em uma implementação real)\n // Para este exemplo, tentaremos usar o localStorage como uma solução temporária\n const loginEmail = localStorage.getItem('login_email');\n \n if (loginEmail === email) {\n // Verificar se já existe uma sessão ativa para obter o email hasheado\n const session = await getCurrentSession();\n if (session?.user) {\n return session.user.email || null;\n }\n \n // Se não houver sessão, gerar o hash usando o algoritmo atual\n return await hashEmail(email);\n }\n \n // Se não encontrar no localStorage, verificar se o email parece ser um hash\n if (email.startsWith('anon_') || email.endsWith('@hashed.com')) {\n return email; // O email já é um hash, retornar como está\n }\n \n // Se não houver mapeamento, gerar um novo hash\n return await hashEmail(email);\n } catch (error) {\n console.error('Erro ao buscar email hasheado:', error);\n return null;\n }\n};\n\n// Function to log in a user with email and password\nexport const loginUser = async (email: string, password: string): Promise => {\n try {\n // Verificar se é o primeiro login ou se já temos o email hasheado\n const hashedEmail = await findHashedEmail(email);\n \n // Primeiro, tentar com o email hasheado\n let loginResult = await attemptLogin(hashedEmail || '', password);\n \n // Se falhar e estamos usando um email hasheado, tentar com o email original\n if (!loginResult.success && hashedEmail !== email) {\n console.log('Login com email hasheado falhou, tentando com email original');\n loginResult = await attemptLogin(email, password);\n }\n \n // Se ainda falhar, lançar erro\n if (!loginResult.success) {\n throw new Error(loginResult.error || 'Falha ao fazer login');\n }\n \n // Se o login foi bem-sucedido com email original, salvar para uso futuro\n if (loginResult.success && loginResult.emailUsed === email) {\n localStorage.setItem('login_email', email);\n }\n \n return loginResult.user!;\n } catch (error) {\n console.error('Erro ao fazer login:', error);\n throw error;\n }\n};\n\n// Função auxiliar para tentar login com um determinado email\nconst attemptLogin = async (email: string, password: string): Promise<{\n success: boolean;\n user?: User;\n error?: string;\n emailUsed: string;\n}> => {\n if (!email) {\n return { success: false, error: 'Email inválido', emailUsed: '' };\n }\n \n try {\n const { data, error } = await supabase.auth.signInWithPassword({ \n email, \n password \n });\n \n if (error) {\n return { \n success: false, \n error: error.message,\n emailUsed: email\n };\n }\n \n if (!data.user) {\n return { \n success: false, \n error: 'Usuário não encontrado',\n emailUsed: email\n };\n }\n \n return {\n success: true,\n user: data.user,\n emailUsed: email\n };\n } catch (error) {\n return {\n success: false,\n error: (error as Error).message,\n emailUsed: email\n };\n }\n};\n\n// Function to create a new user with anonymized email\nexport const createUser = async (email: string, password: string): Promise => {\n // Gerar um hash do email para armazenamento\n const hashedEmail = await hashEmail(email);\n \n // Criar um registro no metadata que indica que este é um usuário anônimo\n const { data, error } = await supabase.auth.signUp({ \n email: hashedEmail, \n password,\n options: {\n data: {\n is_anonymous: true,\n anonymized_at: new Date().toISOString(),\n // Não armazenamos nenhum traço do email original, apenas um indicador de que foi anonimizado\n email_anonymized: true\n }\n }\n });\n \n if (error) throw new Error(error.message);\n if (!data.user) throw new Error('Falha ao criar usuário');\n \n // Salvar o email original de forma segura para login\n localStorage.setItem('login_email', email);\n \n return data.user;\n};\n\n// Sign out the current user\nexport const signOut = async (): Promise => {\n const { error } = await supabase.auth.signOut();\n if (error) throw new Error(error.message);\n};\n\n// Check if user is authenticated\nexport const isAuthenticated = async (): Promise => {\n const session = await getCurrentSession();\n return !!session;\n};\n\n// Reexportar funções úteis relacionadas ao Auth\nexport const getSession = async (): Promise => {\n try {\n const { data } = await supabase.auth.getSession();\n return data.session;\n } catch (error) {\n console.error('Erro ao obter sessão:', error);\n return null;\n }\n};\n\nexport const getUser = async (): Promise => {\n try {\n const { data } = await supabase.auth.getUser();\n return data.user;\n } catch (error) {\n console.error('Erro ao obter usuário:', error);\n return null;\n }\n};\n\n// Function to update an existing mood entry\nexport const updateMoodEntry = async (entry: MoodEntry): Promise => {\n console.log('Atualizando entrada:', entry);\n \n // Garantir que temos um usuário autenticado\n const user = await getCurrentUser();\n if (!user) throw new Error('User not authenticated');\n \n // Primeiro, obter a entrada atual do banco de dados\n const { data: currentEntry, error: fetchError } = await supabase\n .from('mood_entries')\n .select('*')\n .eq('id', entry.id)\n .single();\n \n if (fetchError) {\n console.error('Erro ao buscar entrada atual:', fetchError);\n throw new Error(`Error fetching current entry: ${fetchError.message}`);\n }\n \n // Mesclar a entrada atual com as atualizações, preservando campos que não estão sendo atualizados\n const updatedEntry = {\n ...currentEntry,\n note: entry.note,\n score: entry.score,\n timestamp: entry.timestamp,\n ai_analysis: entry.ai_analysis,\n user_id: user.id\n };\n \n console.log('Entrada mesclada para atualização:', updatedEntry);\n \n // Atualizar a entrada no banco de dados\n const { error } = await supabase\n .from('mood_entries')\n .update(updatedEntry)\n .eq('id', entry.id);\n \n if (error) {\n console.error('Erro ao atualizar entrada:', error);\n throw new Error(`Error updating mood entry: ${error.message}`);\n }\n \n // Verificar se a atualização foi bem-sucedida\n const { data: updatedData, error: checkError } = await supabase\n .from('mood_entries')\n .select('*')\n .eq('id', entry.id)\n .single();\n \n console.log('Dados após atualização:', updatedData);\n \n if (checkError) {\n console.error('Erro ao verificar atualização:', checkError);\n }\n};\n\n// Function to save a health record\nexport const saveHealthRecord = async (content: string): Promise => {\n const user = await getCurrentUser();\n if (!user) throw new Error('User not authenticated');\n \n const newRecord: HealthRecord = {\n id: uuidv4(),\n user_id: user.id,\n content,\n timestamp: Date.now()\n };\n \n const { error } = await supabase.from('health_records').insert(newRecord);\n if (error) throw new Error(`Error saving health record: ${error.message}`);\n \n return newRecord;\n};\n\n// Function to get health records for the current user\nexport const getHealthRecords = async (limit = 2): Promise => {\n const user = await getCurrentUser();\n if (!user) throw new Error('User not authenticated');\n \n const { data, error } = await supabase\n .from('health_records')\n .select('*')\n .eq('user_id', user.id)\n .order('created_at', { ascending: false })\n .limit(limit);\n \n if (error) throw new Error(`Error fetching health records: ${error.message}`);\n return data as HealthRecord[];\n};\n\n// Function to update an existing health record\nexport const updateHealthRecord = async (recordId: string, content: string): Promise => {\n const user = await getCurrentUser();\n if (!user) throw new Error('User not authenticated');\n \n // Buscar o prontuário existente para verificar se pertence ao usuário\n const { data: existingRecord, error: fetchError } = await supabase\n .from('health_records')\n .select('*')\n .eq('id', recordId)\n .eq('user_id', user.id)\n .single();\n \n if (fetchError) throw new Error(`Error fetching health record: ${fetchError.message}`);\n if (!existingRecord) throw new Error('Health record not found or not owned by user');\n \n // Atualizar o prontuário\n const updatedRecord: HealthRecord = {\n ...existingRecord as HealthRecord,\n content,\n timestamp: Date.now() // Atualizar o timestamp para refletir a atualização\n };\n \n const { error } = await supabase\n .from('health_records')\n .update(updatedRecord)\n .eq('id', recordId);\n \n if (error) throw new Error(`Error updating health record: ${error.message}`);\n \n return updatedRecord;\n};\n\n// Function to get active plan for a user\nexport const getUserActivePlan = async (userId: string): Promise<{ planId: string } | null> => {\n try {\n const { data, error } = await supabase\n .from('user_plans')\n .select('plan_id')\n .eq('user_id', userId)\n .eq('status', 'active')\n .order('created_at', { ascending: false })\n .limit(1)\n .single();\n \n if (error) {\n console.error('Erro ao buscar plano ativo do usuário:', error);\n return null;\n }\n \n if (!data) {\n return null;\n }\n \n return { planId: data.plan_id };\n } catch (error) {\n console.error('Erro ao buscar plano ativo do usuário:', error);\n return null;\n }\n};\n\n// Function to migrate a user from non-hashed email to hashed format\nexport const migrateUserToHashedEmail = async (originalEmail: string, password: string): Promise => {\n try {\n console.log('Iniciando migração de usuário para formato hasheado');\n \n // Primeiro, tentar login com email original\n const loginResult = await attemptLogin(originalEmail, password);\n \n // Se login falhar, retorna nulo\n if (!loginResult.success || !loginResult.user) {\n console.error('Falha ao autenticar usuário para migração');\n return null;\n }\n \n // Usuário autenticado com email original, precisamos migrar para o formato hasheado\n const hashedEmail = await hashEmail(originalEmail);\n \n console.log(`Usuário autenticado, migrando para email hasheado: ${hashedEmail}`);\n \n // Atualizar o email do usuário para a versão hasheada\n const { data: updateData, error: updateError } = await supabase.auth.updateUser({\n email: hashedEmail,\n data: {\n is_anonymous: true,\n anonymized_at: new Date().toISOString(),\n email_anonymized: true,\n migrated_from_unhashed: true,\n migration_date: new Date().toISOString()\n }\n });\n \n if (updateError) {\n console.error('Erro ao atualizar email do usuário:', updateError);\n return null;\n }\n \n // Salvar mapeamento para uso futuro\n localStorage.setItem('login_email', originalEmail);\n \n console.log('Migração de usuário concluída com sucesso');\n return updateData.user;\n } catch (error) {\n console.error('Erro ao migrar usuário:', error);\n return null;\n }\n};\n\n// Esta função decide se deve tentar migrar um usuário após uma tentativa de login\nexport const handleLoginWithMigration = async (email: string, password: string): Promise => {\n try {\n // Primeiro tentar login normal\n try {\n return await loginUser(email, password);\n } catch (loginError) {\n console.log('Login normal falhou, verificando necessidade de migração');\n \n // Se falhou, verificar se o email não está no formato hasheado\n if (!email.includes('@hashed.com') && !email.startsWith('anon_')) {\n // Tentar migrar o usuário\n const migratedUser = await migrateUserToHashedEmail(email, password);\n \n if (migratedUser) {\n console.log('Usuário migrado com sucesso');\n return migratedUser;\n }\n }\n \n // Se não conseguiu migrar, repassar o erro original\n throw loginError;\n }\n } catch (error) {\n console.error('Erro no processo de login/migração:', error);\n throw error;\n }\n};\n","import * as SupabaseGateway from '../supabaseGateway';\nimport { IUserPlanRepository } from './interfaces/IUserPlanRepository';\n\nexport class SupabaseUserPlanRepository implements IUserPlanRepository {\n async getUserActivePlan(userId: string): Promise<{ planId: string } | null> {\n return await SupabaseGateway.getUserActivePlan(userId);\n }\n} ","import { IUserPlanRepository } from '../repositories/interfaces/IUserPlanRepository';\nimport { IUserPlanService } from './interfaces/IUserPlanService';\n\nexport class UserPlanService implements IUserPlanService {\n constructor(private userPlanRepository: IUserPlanRepository) {}\n \n async getUserActivePlan(userId: string): Promise<{ planId: string } | null> {\n return await this.userPlanRepository.getUserActivePlan(userId);\n }\n} ","/**\n * Interface para item cacheado com timestamp\n */\ninterface CachedItem {\n data: T;\n timestamp: number;\n}\n\n/**\n * Classe utilitária para gerenciar cache no localStorage com TTL\n */\nexport class LocalStorageCache {\n private readonly cacheKey: string;\n private readonly ttlMs: number;\n\n /**\n * @param cacheKey Chave única para identificar o cache no localStorage\n * @param ttlMs Tempo de vida do cache em milissegundos (padrão: 24 horas)\n */\n constructor(cacheKey: string, ttlMs: number = 24 * 60 * 60 * 1000) {\n this.cacheKey = cacheKey;\n this.ttlMs = ttlMs;\n }\n\n /**\n * Salva dados no cache\n * @param data Dados a serem armazenados no cache\n */\n save(data: T): void {\n try {\n const cacheItem: CachedItem = {\n data,\n timestamp: Date.now()\n };\n localStorage.setItem(this.cacheKey, JSON.stringify(cacheItem));\n console.log(`Cache salvo em: ${this.cacheKey}`);\n } catch (error) {\n console.error(`Erro ao salvar cache (${this.cacheKey}):`, error);\n }\n }\n\n /**\n * Recupera dados do cache se estiverem válidos\n * @returns Dados cacheados ou null se não existir cache válido\n */\n get(): T | null {\n try {\n const cachedData = localStorage.getItem(this.cacheKey);\n if (!cachedData) return null;\n \n const parsedData = JSON.parse(cachedData) as CachedItem;\n \n // Verificar se o cache ainda é válido\n if (this.isValid(parsedData.timestamp)) {\n console.log(`Cache encontrado e válido para: ${this.cacheKey}`);\n return parsedData.data;\n } else {\n console.log(`Cache expirado para: ${this.cacheKey}`);\n this.clear();\n return null;\n }\n } catch (error) {\n console.error(`Erro ao recuperar cache (${this.cacheKey}):`, error);\n this.clear();\n return null;\n }\n }\n\n /**\n * Verifica se o timestamp do cache ainda é válido\n * @param timestamp Timestamp de quando o cache foi criado\n * @returns Verdadeiro se o cache ainda for válido\n */\n private isValid(timestamp: number): boolean {\n const now = Date.now();\n return (now - timestamp) < this.ttlMs;\n }\n\n /**\n * Limpa o cache\n */\n clear(): void {\n localStorage.removeItem(this.cacheKey);\n console.log(`Cache limpo: ${this.cacheKey}`);\n }\n} ","// import { WeeklySummary } from '../../types';\nimport { LocalStorageCache } from '../utils/cacheUtils';\nimport type { MoodEntry } from '../../types';\n\nexport interface WeeklySummaryResponse {\n status?: string;\n summary: string;\n requestId: string;\n startDate: string;\n endDate: string;\n}\n\nexport class WeeklySummaryService {\n private readonly apiUrl: string;\n private isPollingActive: boolean = false;\n private readonly cache: LocalStorageCache;\n private readonly moodEntriesCache: LocalStorageCache;\n \n // Chaves para armazenar o cache\n private static readonly CACHE_KEY = 'weeklyRecommendationCache';\n private static readonly MOOD_ENTRIES_CACHE_KEY = 'moodEntriesStateCache';\n \n constructor() {\n this.apiUrl = import.meta.env.VITE_API_URL || 'http://localhost:3000/api';\n // Inicializar o cache com TTL de 24 horas\n this.cache = new LocalStorageCache(WeeklySummaryService.CACHE_KEY);\n // Cache para armazenar o estado dos registros de humor quando geramos um resumo\n this.moodEntriesCache = new LocalStorageCache(WeeklySummaryService.MOOD_ENTRIES_CACHE_KEY);\n }\n\n // Método para obter o token de autenticação\n private getAuthToken(): string | null {\n return localStorage.getItem('authToken');\n }\n \n /**\n * Gera uma assinatura única para um array de entradas de humor\n * Esta assinatura é usada para comparar se as entradas mudaram\n * @param entries Array de entradas de humor\n * @returns String representando a assinatura das entradas\n */\n private generateEntriesSignature(entries: MoodEntry[]): string {\n if (!entries || entries.length === 0) return '';\n \n // Ordenar entradas por timestamp (mais recente primeiro)\n const sortedEntries = [...entries].sort((a, b) => {\n return b.timestamp - a.timestamp;\n });\n \n // Criar uma string com os timestamps, scores e comprimento das notas para comparação\n return sortedEntries\n .map(entry => `${entry.timestamp}:${entry.score}:${entry.note?.length || 0}`)\n .join('|');\n }\n \n /**\n * Verifica se o cache deve ser invalidado baseado na comparação entre entradas antigas e novas\n * @param currentEntries Entradas de humor atuais\n * @returns true se o cache foi invalidado, false caso contrário\n */\n public shouldInvalidateCache(currentEntries: MoodEntry[]): boolean {\n if (!currentEntries || currentEntries.length === 0) return false;\n \n // Obter entradas anteriores do cache\n const previousEntries = this.moodEntriesCache.get();\n \n // Se não houver entradas anteriores, mas temos novas entradas, devemos invalidar\n if (!previousEntries && currentEntries.length > 0) {\n console.log('Sem registro anterior de entradas, invalidando cache...');\n this.cache.clear();\n // Armazenar novas entradas para comparação futura\n this.moodEntriesCache.save(currentEntries);\n return true;\n }\n \n // Comparar assinaturas para detectar mudanças\n const previousSignature = this.generateEntriesSignature(previousEntries || []);\n const currentSignature = this.generateEntriesSignature(currentEntries);\n \n if (previousSignature !== currentSignature) {\n console.log('Detectada mudança nos registros de humor, invalidando cache...');\n this.cache.clear();\n // Atualizar o cache de entradas com o estado atual\n this.moodEntriesCache.save(currentEntries);\n return true;\n }\n \n return false;\n }\n \n /**\n * Método legado para verificar se o cache deve ser invalidado com base na data de uma nova entrada\n * Mantido para compatibilidade, mas shouldInvalidateCache é preferível\n * @param entryDate Data da entrada mais recente\n * @returns true se o cache foi invalidado, false caso contrário\n */\n public invalidateCacheIfNewerEntry(entryDate: Date): boolean {\n const cachedData = this.cache.get();\n if (!cachedData) return false;\n \n const entryTimestamp = entryDate.getTime();\n // Se a nova entrada for mais recente que o período do cache, invalidá-lo\n const cacheEndDate = new Date(cachedData.endDate).getTime();\n \n if (entryTimestamp > cacheEndDate) {\n console.log('Nova entrada mais recente que o cache, invalidando...');\n this.cache.clear();\n // Limpar também o cache de entradas para forçar uma nova comparação\n this.moodEntriesCache.clear();\n return true;\n }\n \n return false;\n }\n\n /**\n * Obtém o resumo semanal, realizando polling se necessário\n * Verifica o cache primeiro antes de fazer requisição à API\n * @returns Resposta completa com o resumo semanal ou null se não for possível obter\n */\n async getWeeklySummary(): Promise {\n // Verificar o cache primeiro\n const cachedData = this.cache.get();\n if (cachedData) {\n console.log('Usando resumo semanal do cache com ID:', cachedData.requestId);\n return cachedData;\n }\n \n // Evitar múltiplas chamadas simultâneas\n if (this.isPollingActive) {\n console.warn('Já existe uma solicitação de resumo semanal em andamento');\n throw new Error('Já existe um processamento assíncrono em andamento');\n }\n\n try {\n this.isPollingActive = true;\n const authToken = this.getAuthToken();\n \n if (!authToken) {\n this.isPollingActive = false;\n console.error('Erro ao obter resumo semanal: token não disponível');\n throw new Error('Erro ao obter resumo semanal: token não disponível');\n }\n \n console.log('Iniciando solicitação de resumo semanal via API...');\n \n const response = await fetch(`${this.apiUrl}/weekly-summary`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${authToken}`\n }\n });\n \n // Handle 202 Accepted status code - async processing started\n if (response.status === 202) {\n console.log('Servidor iniciou processamento assíncrono (202 Accepted)');\n const data = await response.json();\n \n // Verifica se temos pollUrl na resposta\n if (data.pollUrl) {\n console.log('Poll URL recebida, iniciando polling:', data.pollUrl);\n try {\n const result = await this.pollForResults(data.pollUrl);\n \n // Salvar resultado no cache se for uma resposta válida\n if (result && \n typeof result === 'object' && \n result.summary && \n result.requestId && \n result.startDate && \n result.endDate) {\n this.cache.save(result);\n }\n \n return result;\n } finally {\n this.isPollingActive = false;\n }\n } else {\n this.isPollingActive = false;\n console.warn('Resposta 202 recebida, mas sem pollUrl');\n throw new Error('Servidor retornou 202 sem URL para polling');\n }\n }\n \n if (!response.ok) {\n this.isPollingActive = false;\n throw new Error(`Erro ao obter resumo semanal: ${response.statusText}`);\n }\n \n const data = await response.json();\n console.log('Resumo semanal obtido com sucesso (resposta direta)');\n \n // Salvar resultado no cache se for uma resposta válida\n if (data && \n typeof data === 'object' && \n data.summary && \n data.requestId && \n data.startDate && \n data.endDate) {\n this.cache.save(data);\n }\n \n this.isPollingActive = false;\n return data; // Retorna o objeto completo, não apenas o campo summary\n } catch (error) {\n this.isPollingActive = false;\n console.error('Erro ao obter resumo semanal:', error);\n throw error;\n }\n }\n \n /**\n * Realiza polling em um endpoint para obter o resultado de uma operação assíncrona\n * @param pollUrl URL para polling do resultado\n * @param maxAttempts Número máximo de tentativas (padrão: 15)\n * @param delayMs Intervalo entre tentativas em milissegundos (padrão: 2000)\n */\n private async pollForResults(pollUrl: string, maxAttempts = 15, delayMs = 2000): Promise {\n const authToken = this.getAuthToken();\n \n if (!authToken) {\n throw new Error('Token de autenticação não disponível para polling');\n }\n \n // Função helper para aguardar um intervalo\n const delay = (ms: number) => new Promise(resolve => setTimeout(resolve, ms));\n \n // Polling loop\n let attempts = 0;\n let lastError: Error | null = null;\n \n console.log(`Iniciando polling com máximo de ${maxAttempts} tentativas e intervalo de ${delayMs}ms`);\n \n while (attempts < maxAttempts) {\n attempts++;\n \n // Construir a URL completa para o polling\n const fullPollUrl = `${this.apiUrl}${pollUrl.startsWith('/') ? pollUrl : `/${pollUrl}`}`;\n console.log(`Tentativa ${attempts}/${maxAttempts} de polling para ${fullPollUrl}`);\n \n try {\n const response = await fetch(fullPollUrl, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${authToken}`\n }\n });\n \n // Se tiver erro HTTP\n if (!response.ok) {\n console.error(`Erro durante polling: ${response.status} ${response.statusText}`);\n lastError = new Error(`Erro ao obter resultado: ${response.statusText}`);\n \n // Para erros 4xx (cliente), parar as tentativas\n if (response.status >= 400 && response.status < 500) {\n throw lastError;\n }\n \n // Para erros 5xx (servidor), continuar tentando após delay\n await delay(delayMs);\n continue;\n }\n \n // Processar resposta\n const data = await response.json();\n console.log(`Resposta de polling (tentativa ${attempts}):`, data.status);\n \n // Verificar o status na resposta\n if (data.status === 'completed') {\n console.log('Polling concluído com sucesso, resumo disponível');\n return data; // Retorna o objeto completo\n } else if (data.status === 'processing') {\n // Ainda processando, continuar polling\n console.log('Status: processing, continuando polling...');\n await delay(delayMs);\n continue;\n } else if (data.status === 'error') {\n // Falha no processamento\n const errorMessage = data.message || 'Erro desconhecido durante o processamento do resumo semanal';\n console.error('Polling falhou:', errorMessage);\n throw new Error(errorMessage);\n } else {\n // Status desconhecido, tentar usar os dados disponíveis\n console.warn(`Status desconhecido: ${data.status}, tentando extrair dados`);\n return data;\n }\n } catch (error) {\n // Captura erros da requisição fetch ou do processamento da resposta\n const errorMessage = error instanceof Error ? error.message : 'Erro desconhecido';\n console.error(`Erro durante tentativa ${attempts} de polling:`, errorMessage);\n \n // Salvar o último erro para retornar se todas as tentativas falharem\n lastError = error instanceof Error ? error : new Error(errorMessage);\n \n // Se for a última tentativa, propagar o erro\n if (attempts >= maxAttempts) {\n throw lastError;\n }\n \n // Caso contrário, tentar novamente após delay\n await delay(delayMs);\n }\n }\n \n // Se chegamos aqui, é porque excedemos o número máximo de tentativas\n throw new Error(`Tempo esgotado após ${maxAttempts} tentativas de polling`);\n }\n} ","import { OnBoardingStatus, OnBoardingUserData, MoodEntry } from '../../types';\n\nclass OnBoardingService {\n private readonly apiUrl: string;\n\n constructor() {\n this.apiUrl = import.meta.env.VITE_API_URL || 'http://localhost:3000/api';\n }\n\n // Método para obter o token de autenticação\n private getAuthToken(): string | null {\n return localStorage.getItem('authToken');\n }\n\n // Obter o status do OnBoarding da API\n async getOnBoardingStatus(): Promise {\n const authToken = this.getAuthToken();\n \n if (!authToken) {\n console.error('Erro ao buscar status do OnBoarding: token não disponível');\n // Retornar status padrão em caso de erro\n return {\n hasSeenOnBoarding: false,\n completedSteps: [],\n lastUpdated: Date.now()\n };\n }\n \n try {\n const response = await fetch(`${this.apiUrl}/onboarding/status`, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${authToken}`\n }\n });\n\n if (!response.ok) {\n throw new Error(`Erro ao buscar status do OnBoarding: ${response.statusText}`);\n }\n\n const data = await response.json();\n return data as OnBoardingStatus;\n } catch (error) {\n console.error('Erro ao obter status do OnBoarding da API:', error);\n // Retornar status padrão em caso de erro\n return {\n hasSeenOnBoarding: false,\n completedSteps: [],\n lastUpdated: Date.now()\n };\n }\n }\n\n // Atualizar o status do OnBoarding via API\n async updateOnBoardingStatus(status: Partial): Promise {\n const authToken = this.getAuthToken();\n \n if (!authToken) {\n console.error('Erro ao atualizar status do OnBoarding: token não disponível');\n throw new Error('Erro ao atualizar status do OnBoarding: token não disponível');\n }\n \n try {\n // Obter o status atual para combinar com as atualizações\n const currentStatus = await this.getOnBoardingStatus();\n \n // Preparar o corpo da requisição com os dados atualizados\n const updatedStatus: Partial = {\n hasSeenOnBoarding: status.hasSeenOnBoarding !== undefined ? status.hasSeenOnBoarding : currentStatus.hasSeenOnBoarding,\n completedSteps: status.completedSteps || currentStatus.completedSteps,\n lastCompletedStep: status.lastCompletedStep || currentStatus.lastCompletedStep\n };\n \n // Fazer a chamada à API\n const response = await fetch(`${this.apiUrl}/onboarding/status`, {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${authToken}`\n },\n body: JSON.stringify(updatedStatus)\n });\n \n if (!response.ok) {\n throw new Error(`Erro ao atualizar status do OnBoarding: ${response.statusText}`);\n }\n \n // Obter a resposta atualizada da API\n const data = await response.json();\n return data as OnBoardingStatus;\n } catch (error) {\n console.error('Erro ao atualizar status do OnBoarding na API:', error);\n throw error;\n }\n }\n\n // Marcar o OnBoarding como visualizado usando a API diretamente\n async markOnBoardingAsSeen(): Promise {\n const authToken = this.getAuthToken();\n \n if (!authToken) {\n console.error('Erro ao marcar OnBoarding como visualizado: token não disponível');\n throw new Error('Erro ao marcar OnBoarding como visualizado: token não disponível');\n }\n \n try {\n // Chamar o endpoint específico para marcar como visualizado\n const response = await fetch(`${this.apiUrl}/onboarding/seen`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${authToken}`\n }\n });\n \n if (!response.ok) {\n throw new Error(`Erro ao marcar OnBoarding como visualizado: ${response.statusText}`);\n }\n \n // Obter a resposta atualizada da API\n const data = await response.json();\n return data as OnBoardingStatus;\n } catch (error) {\n console.error('Erro ao marcar OnBoarding como visualizado na API:', error);\n throw error;\n }\n }\n\n // Marcar um passo como concluído usando a API diretamente\n async completeStep(stepId: string): Promise {\n const authToken = this.getAuthToken();\n \n if (!authToken) {\n console.error('Erro ao marcar passo como concluído: token não disponível');\n throw new Error('Erro ao marcar passo como concluído: token não disponível');\n }\n \n try {\n // Chamar o endpoint específico para marcar um passo como concluído\n const response = await fetch(`${this.apiUrl}/onboarding/steps/${stepId}/complete`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${authToken}`\n }\n });\n \n if (!response.ok) {\n throw new Error(`Erro ao marcar passo como concluído: ${response.statusText}`);\n }\n \n // Obter a resposta atualizada da API\n const data = await response.json();\n return data as OnBoardingStatus;\n } catch (error) {\n console.error('Erro ao marcar passo como concluído na API:', error);\n throw error;\n }\n }\n\n // Verificar se um passo foi concluído usando a API diretamente\n async isStepCompleted(stepId: string): Promise {\n const authToken = this.getAuthToken();\n \n if (!authToken) {\n console.error('Erro ao verificar conclusão do passo: token não disponível');\n return false; // Retorna false em caso de erro com o token\n }\n \n try {\n // Chamar o endpoint específico para verificar se um passo foi concluído\n const response = await fetch(`${this.apiUrl}/onboarding/steps/${stepId}/completed`, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${authToken}`\n }\n });\n \n if (!response.ok) {\n throw new Error(`Erro ao verificar conclusão do passo: ${response.statusText}`);\n }\n \n // Obter a resposta da API\n const data = await response.json();\n return data.isCompleted; // Retorna o valor booleano da propriedade isCompleted\n } catch (error) {\n console.error('Erro ao verificar conclusão do passo na API:', error);\n return false; // Retorna false em caso de erro na chamada à API\n }\n }\n\n // Obter os dados do usuário do OnBoarding usando a API diretamente\n async getUserData(): Promise {\n const authToken = this.getAuthToken();\n \n if (!authToken) {\n console.error('Erro ao obter dados do usuário do OnBoarding: token não disponível');\n return null; // Retorna null em caso de erro com o token\n }\n \n try {\n // Chamar o endpoint específico para obter os dados do usuário\n const response = await fetch(`${this.apiUrl}/onboarding/user-data`, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${authToken}`\n }\n });\n \n if (!response.ok) {\n throw new Error(`Erro ao obter dados do usuário do OnBoarding: ${response.statusText}`);\n }\n \n // Obter a resposta da API\n const data = await response.json();\n return data as OnBoardingUserData;\n } catch (error) {\n console.error('Erro ao obter dados do usuário do OnBoarding da API:', error);\n return null; // Retorna null em caso de erro na chamada à API\n }\n }\n\n // Atualizar os dados do usuário do OnBoarding usando a API diretamente\n async updateUserData(data: Partial): Promise {\n const authToken = this.getAuthToken();\n \n if (!authToken) {\n console.error('Erro ao atualizar dados do usuário do OnBoarding: token não disponível');\n throw new Error('Erro ao atualizar dados do usuário do OnBoarding: token não disponível');\n }\n \n try {\n // Obter os dados atuais do usuário para combinar com as atualizações\n const currentData = await this.getUserData();\n \n // Verificar se há campos que devem ser removidos (undefined ou null)\n const fieldsToRemove = Object.keys(data).filter(key => \n data[key as keyof Partial] === undefined || \n data[key as keyof Partial] === null\n );\n \n // Preparar os dados para envio: primeiro mesclar com os dados atuais\n const combinedData: Partial = {\n ...(currentData || {}),\n ...data\n };\n \n // Depois remover explicitamente os campos que devem ser excluídos\n fieldsToRemove.forEach(field => {\n console.log(`OnBoardingService - Removendo campo ${field} do objeto de dados`);\n delete combinedData[field as keyof OnBoardingUserData];\n });\n \n console.log('OnBoardingService - Dados a serem enviados:', JSON.stringify(combinedData, null, 2));\n \n // Chamar o endpoint específico para atualizar os dados do usuário\n const response = await fetch(`${this.apiUrl}/onboarding/user-data`, {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${authToken}`\n },\n body: JSON.stringify(combinedData)\n });\n \n if (!response.ok) {\n throw new Error(`Erro ao atualizar dados do usuário do OnBoarding: ${response.statusText}`);\n }\n \n // Obter a resposta atualizada da API\n const responseData = await response.json();\n return responseData as OnBoardingUserData;\n } catch (error) {\n console.error('Erro ao atualizar dados do usuário do OnBoarding na API:', error);\n throw error;\n }\n }\n\n // Verificar se o OnBoarding está completo (todos os passos obrigatórios) usando a API diretamente\n async isRequiredOnBoardingComplete(): Promise {\n const authToken = this.getAuthToken();\n \n if (!authToken) {\n console.error('Erro ao verificar completude do OnBoarding: token não disponível');\n return false; // Retorna false em caso de erro com o token\n }\n \n try {\n // Chamar o endpoint específico para verificar se o onboarding está completo\n const response = await fetch(`${this.apiUrl}/onboarding/is-complete`, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${authToken}`\n }\n });\n \n if (!response.ok) {\n throw new Error(`Erro ao verificar completude do OnBoarding: ${response.statusText}`);\n }\n \n // Obter a resposta da API\n const data = await response.json();\n return data.isComplete; // Retorna o valor booleano da propriedade isComplete\n } catch (error) {\n console.error('Erro ao verificar completude do OnBoarding na API:', error);\n return false; // Retorna false em caso de erro na chamada à API\n }\n }\n\n // Obter os passos pendentes (não concluídos) usando a API diretamente\n async getPendingSteps(): Promise {\n const authToken = this.getAuthToken();\n \n if (!authToken) {\n console.error('Erro ao obter passos pendentes: token não disponível');\n return []; // Retorna um array vazio em caso de erro com o token\n }\n \n try {\n // Chamar o endpoint específico para obter os passos pendentes\n const response = await fetch(`${this.apiUrl}/onboarding/pending-steps`, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${authToken}`\n }\n });\n \n if (!response.ok) {\n throw new Error(`Erro ao obter passos pendentes: ${response.statusText}`);\n }\n \n // Obter a resposta da API\n const data = await response.json();\n return data.pendingSteps || []; // Retorna o array de passos pendentes\n } catch (error) {\n console.error('Erro ao obter passos pendentes da API:', error);\n return []; // Retorna um array vazio em caso de erro na chamada à API\n }\n }\n\n // Converter dados do OnBoarding para entrada de humor\n async convertCurrentMoodToMoodEntry(): Promise {\n const authToken = this.getAuthToken();\n \n if (!authToken) {\n console.error('Erro ao converter humor atual para entrada de humor: token não disponível');\n return null; // Retorna null em caso de erro com o token\n }\n \n try {\n // Obter os dados do usuário da API\n const userData = await this.getUserData();\n \n if (!userData || userData.currentMood === undefined) {\n return null;\n }\n \n return {\n id: `onboarding-mood-${Date.now()}`,\n score: userData.currentMood,\n note: userData.moodNote || '',\n timestamp: userData.updatedAt || Date.now()\n };\n } catch (error) {\n console.error('Erro ao converter humor atual para entrada de humor:', error);\n return null;\n }\n }\n\n // Resetar o OnBoarding (para testes) usando a API\n async resetOnBoarding(): Promise {\n const authToken = this.getAuthToken();\n \n if (!authToken) {\n console.error('Erro ao resetar onboarding: token não disponível');\n return;\n }\n \n try {\n // Chamar o endpoint específico para resetar o onboarding\n const response = await fetch(`${this.apiUrl}/onboarding/reset`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${authToken}`\n }\n });\n \n if (!response.ok) {\n throw new Error(`Erro ao resetar onboarding: ${response.statusText}`);\n }\n \n console.log('Onboarding resetado com sucesso');\n } catch (error) {\n console.error('Erro ao resetar onboarding na API:', error);\n }\n }\n}\n\nexport default new OnBoardingService(); ","import { ChatAIResponse, ChatSessionsResponse, ChatSessionMessagesResponse } from '../../types';\n\ninterface FetchError extends Error {\n name: string;\n}\n\n// Interface para a resposta inicial do chat que contém o messageId e pollUrl\ninterface ChatRequestResponse {\n status: 'accepted';\n message: string;\n messageId: string;\n sessionId: string;\n pollUrl: string;\n}\n\n// Interface para o status da resposta durante o polling\ninterface ChatPollResponse {\n status: 'pending' | 'processing' | 'completed' | 'failed';\n messageId: string;\n response?: string;\n error?: string;\n}\n\nexport class ChatAIService {\n private readonly apiUrl: string;\n private userId?: string;\n private readonly requestTimeout: number = 30000; // 30 segundos de timeout para requisições de IA\n private readonly pollingInterval: number = 1000; // 1 segundo entre cada tentativa de polling\n private readonly maxPollingAttempts: number = 60; // Máximo de 30 tentativas (30 segundos)\n\n constructor() {\n this.apiUrl = import.meta.env.VITE_API_URL || 'http://localhost:3000/api';\n }\n\n // Método para atualizar o userId\n public setUserId(userId: string): void {\n this.userId = userId;\n }\n\n // Método para obter o userId atual ou usar fallback\n private getUserId(): string {\n // Se não temos userId, tentamos obter do localStorage\n if (!this.userId) {\n const storedUserId = localStorage.getItem('userId');\n if (storedUserId) {\n this.userId = storedUserId;\n }\n }\n \n // Se ainda não temos userId, usamos o repositório local\n return this.userId || '';\n }\n\n // Método para obter o token de autenticação\n private getAuthToken(): string | null {\n return localStorage.getItem('authToken');\n }\n\n /**\n * Envia uma mensagem para a API do chat e inicia o processo de polling para obter a resposta\n * @param message - Mensagem do usuário para enviar ao chatbot\n * @param sessionId - ID opcional da sessão existente para continuar a conversa\n * @param createNewSession - Flag para indicar se deve criar uma nova sessão\n * @param extraAttempts - Número adicional de tentativas para o polling (para mensagens reenviadas)\n * @returns Resposta da API de chat após processamento\n */\n async sendMessage(message: string, sessionId?: string, createNewSession?: boolean, extraAttempts: number = 0): Promise {\n const authToken = this.getAuthToken();\n \n if (!authToken) {\n console.error('Erro ao enviar mensagem para o chat: token não disponível');\n return {\n answer: 'Desculpe, não foi possível autenticar sua solicitação. Por favor, faça login novamente.'\n };\n }\n \n try {\n // Primeira etapa: Enviar a mensagem para a API\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), this.requestTimeout);\n \n // Prepara os dados para envio\n const requestData: { message: string; sessionId?: string; newSession?: boolean } = { message };\n \n // Adiciona sessionId ou createNewSession se fornecidos\n if (sessionId) {\n requestData.sessionId = sessionId;\n }\n \n if (createNewSession) {\n requestData.newSession = true;\n }\n \n const response = await fetch(`${this.apiUrl}/chat`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${authToken}`\n },\n body: JSON.stringify(requestData),\n signal: controller.signal\n });\n \n clearTimeout(timeoutId);\n \n if (!response.ok) {\n throw new Error(`Erro ao enviar mensagem para o chat: ${response.statusText}`);\n }\n \n // Obter a resposta inicial com o pollUrl\n const chatRequest = await response.json() as ChatRequestResponse;\n \n // Segunda etapa: Fazer polling para obter a resposta final\n // Passamos o número de tentativas extras para o método de polling\n const finalResponse = await this.pollForResponse(chatRequest.pollUrl, authToken, extraAttempts);\n \n return {\n answer: finalResponse.response || 'Desculpe, ocorreu um erro ao processar sua solicitação.'\n };\n } catch (error: unknown) {\n console.error('Erro ao enviar mensagem para o chat:', error);\n const fetchError = error as FetchError;\n if (fetchError.name === 'AbortError') {\n return {\n answer: 'A solicitação demorou muito tempo. Por favor, tente novamente ou formule sua mensagem de forma mais concisa.'\n };\n }\n return {\n answer: 'Desculpe, houve um problema ao processar sua mensagem. Por favor, tente novamente.'\n };\n }\n }\n\n /**\n * Realiza o polling para obter a resposta processada da IA\n * @param pollUrl - URL para verificar o status da resposta\n * @param authToken - Token de autenticação para as requisições\n * @param extraAttempts - Número adicional de tentativas para o polling (para mensagens reenviadas)\n * @returns Resposta final da API após processamento\n */\n private async pollForResponse(pollUrl: string, authToken: string, extraAttempts: number = 0): Promise {\n let attempts = 0;\n \n while (attempts < this.maxPollingAttempts + extraAttempts) {\n try {\n // Aguarda o intervalo de polling antes de tentar novamente (exceto na primeira tentativa)\n if (attempts > 0) {\n await new Promise(resolve => setTimeout(resolve, this.pollingInterval));\n }\n \n const fullPollUrl = `${this.apiUrl}${pollUrl.startsWith('/') ? pollUrl : `/${pollUrl}`}`;\n const response = await fetch(fullPollUrl, {\n method: 'GET',\n headers: {\n 'Authorization': `Bearer ${authToken}`\n }\n });\n \n if (!response.ok) {\n throw new Error(`Erro ao verificar status da resposta: ${response.statusText}`);\n }\n \n const pollResponse = await response.json() as ChatPollResponse;\n \n // Se o status for \"completed\", retorna a resposta final\n if (pollResponse.status === 'completed') {\n return pollResponse;\n }\n \n // Se o status for \"failed\", lança um erro\n if (pollResponse.status === 'failed') {\n throw new Error(pollResponse.error || 'Falha ao processar a mensagem');\n }\n \n // Incrementa o contador de tentativas e continua o polling\n attempts++;\n } catch (error) {\n console.error('Erro durante o polling:', error);\n throw error;\n }\n }\n \n // Retorna um erro se exceder o número máximo de tentativas\n return {\n status: 'failed',\n messageId: '',\n error: 'Tempo limite excedido ao aguardar resposta'\n };\n }\n\n /**\n * Obtém todas as sessões de chat do usuário\n * @returns Lista de sessões de chat\n */\n async getSessions(): Promise {\n const authToken = this.getAuthToken();\n \n if (!authToken) {\n console.error('Erro ao obter sessões: token não disponível');\n throw new Error('Não foi possível autenticar sua solicitação');\n }\n \n try {\n const response = await fetch(`${this.apiUrl}/chat/sessions`, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${authToken}`\n }\n });\n \n if (!response.ok) {\n throw new Error(`Erro ao obter sessões: ${response.statusText}`);\n }\n \n return await response.json() as ChatSessionsResponse;\n } catch (error) {\n console.error('Erro ao obter sessões de chat:', error);\n throw error;\n }\n }\n\n /**\n * Obtém todas as mensagens de uma sessão específica\n * @param sessionId - ID da sessão para buscar as mensagens\n * @returns Lista de mensagens da sessão\n */\n async getSessionMessages(sessionId: string): Promise {\n const authToken = this.getAuthToken();\n \n if (!authToken) {\n console.error('Erro ao obter mensagens da sessão: token não disponível');\n throw new Error('Não foi possível autenticar sua solicitação');\n }\n \n try {\n const response = await fetch(`${this.apiUrl}/chat/session/${sessionId}`, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${authToken}`\n }\n });\n \n if (!response.ok) {\n throw new Error(`Erro ao obter mensagens da sessão: ${response.statusText}`);\n }\n \n return await response.json() as ChatSessionMessagesResponse;\n } catch (error) {\n console.error('Erro ao obter mensagens da sessão:', error);\n throw error;\n }\n }\n\n /**\n * Analisa o humor a partir de uma mensagem de texto\n * @param message - Mensagem do usuário para analisar\n * @returns Análise de humor ou null se não for possível analisar\n */\n async analyzeMood(message: string): Promise {\n const authToken = this.getAuthToken();\n \n if (!authToken) {\n console.error('Erro ao analisar humor: token não disponível');\n return null;\n }\n \n try {\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), this.requestTimeout);\n \n const response = await fetch(`${this.apiUrl}/analyze-mood`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${authToken}`\n },\n body: JSON.stringify({ message }),\n signal: controller.signal\n });\n \n clearTimeout(timeoutId);\n \n if (!response.ok) {\n throw new Error(`Erro ao analisar humor: ${response.statusText}`);\n }\n \n return await response.json();\n } catch (error: unknown) {\n console.error('Erro ao analisar humor:', error);\n const fetchError = error as FetchError;\n if (fetchError.name === 'AbortError') {\n return {\n answer: 'A análise de humor demorou muito tempo. Por favor, tente novamente com uma descrição mais curta.'\n };\n }\n return null;\n }\n }\n\n /**\n * Busca dados do histórico de humor através do chat\n * @param query - Consulta para buscar no histórico\n * @returns Resposta da IA com os dados encontrados\n */\n async searchMoodHistory(query: string): Promise {\n const authToken = this.getAuthToken();\n \n if (!authToken) {\n console.error('Erro ao buscar histórico: token não disponível');\n return {\n answer: 'Desculpe, não foi possível autenticar sua solicitação para buscar seu histórico.'\n };\n }\n \n try {\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), this.requestTimeout);\n \n const response = await fetch(`${this.apiUrl}/chat/search-history`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${authToken}`\n },\n body: JSON.stringify({ query }),\n signal: controller.signal\n });\n \n clearTimeout(timeoutId);\n \n if (!response.ok) {\n throw new Error(`Erro ao buscar histórico: ${response.statusText}`);\n }\n \n return await response.json();\n } catch (error: unknown) {\n console.error('Erro ao buscar histórico de humor:', error);\n const fetchError = error as FetchError;\n if (fetchError.name === 'AbortError') {\n return {\n answer: 'A busca no histórico demorou muito tempo. Por favor, tente uma consulta mais específica.'\n };\n }\n return {\n answer: 'Desculpe, não foi possível buscar seu histórico neste momento.'\n };\n }\n }\n\n /**\n * Recebe sugestões personalizadas da IA\n * @returns Resposta da IA com sugestões baseadas no histórico\n */\n async getSuggestions(): Promise {\n const authToken = this.getAuthToken();\n \n if (!authToken) {\n console.error('Erro ao obter sugestões: token não disponível');\n return {\n answer: 'Desculpe, não foi possível autenticar sua solicitação para obter sugestões.'\n };\n }\n \n try {\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), this.requestTimeout);\n \n const response = await fetch(`${this.apiUrl}/chat/suggestions`, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${authToken}`\n },\n signal: controller.signal\n });\n \n clearTimeout(timeoutId);\n \n if (!response.ok) {\n throw new Error(`Erro ao obter sugestões: ${response.statusText}`);\n }\n \n return await response.json();\n } catch (error: unknown) {\n console.error('Erro ao obter sugestões da IA:', error);\n const fetchError = error as FetchError;\n if (fetchError.name === 'AbortError') {\n return {\n answer: 'A geração de sugestões demorou muito tempo. Por favor, tente novamente mais tarde.'\n };\n }\n return {\n answer: 'Desculpe, não foi possível gerar sugestões neste momento.'\n };\n }\n }\n} ","import { MoodService } from './services/MoodService';\nimport { HealthRecordService } from './services/HealthRecordService';\nimport { INotificationService } from './services/interfaces/INotificationService';\nimport { FirebaseNotificationService } from './services/FirebaseNotificationService';\nimport { IUserPlanService } from './services/interfaces/IUserPlanService';\nimport { IUserPlanRepository } from './repositories/interfaces/IUserPlanRepository';\nimport { SupabaseUserPlanRepository } from './repositories/SupabaseUserPlanRepository';\nimport { UserPlanService } from './services/UserPlanService';\nimport { WeeklySummaryService } from './services/WeeklySummaryService';\nimport OnBoardingService from './services/OnBoardingService';\nimport { ChatAIService } from './services/ChatAIService';\n\n// Singleton para gerenciar as instâncias dos repositórios e serviços\nclass ServiceLocator {\n private static instance: ServiceLocator;\n \n private notificationService: INotificationService;\n private moodService: MoodService;\n private healthRecordService: HealthRecordService;\n private userPlanRepository: IUserPlanRepository;\n private userPlanService: UserPlanService;\n private weeklySummaryService: WeeklySummaryService;\n private onBoardingService: typeof OnBoardingService;\n private chatAIService: ChatAIService;\n private userId: string = '';\n \n private constructor() { \n // Inicializa o serviço de notificações\n this.notificationService = new FirebaseNotificationService({\n apiKey: import.meta.env.VITE_FIREBASE_API_KEY || '',\n authDomain: import.meta.env.VITE_FIREBASE_AUTH_DOMAIN || '',\n projectId: import.meta.env.VITE_FIREBASE_PROJECT_ID || '',\n storageBucket: import.meta.env.VITE_FIREBASE_STORAGE_BUCKET || '',\n messagingSenderId: import.meta.env.VITE_FIREBASE_MESSAGING_SENDER_ID || '',\n appId: import.meta.env.VITE_FIREBASE_APP_ID || ''\n });\n \n // Inicializa os serviços com as dependências\n this.moodService = new MoodService();\n this.healthRecordService = new HealthRecordService();\n this.chatAIService = new ChatAIService();\n \n // Inicializa o repositório e serviço de planos\n this.userPlanRepository = new SupabaseUserPlanRepository();\n this.userPlanService = new UserPlanService(this.userPlanRepository);\n this.weeklySummaryService = new WeeklySummaryService();\n this.onBoardingService = OnBoardingService;\n \n // Tenta recuperar o userId do localStorage\n const storedUserId = localStorage.getItem('userId');\n if (storedUserId) {\n this.userId = storedUserId;\n }\n }\n \n public static getInstance(): ServiceLocator {\n if (!ServiceLocator.instance) {\n ServiceLocator.instance = new ServiceLocator();\n }\n return ServiceLocator.instance;\n }\n \n public getMoodService(): MoodService {\n return this.moodService;\n }\n \n public getHealthRecordService(): HealthRecordService {\n return this.healthRecordService;\n }\n \n public getNotificationService(): INotificationService {\n return this.notificationService;\n }\n\n public getWeeklySummaryService(): WeeklySummaryService {\n return this.weeklySummaryService;\n }\n \n public getUserPlanService(): IUserPlanService {\n return this.userPlanService;\n }\n \n public getOnBoardingService() {\n return this.onBoardingService;\n }\n \n public getChatAIService(): ChatAIService {\n return this.chatAIService;\n }\n \n // Apenas para testes/mock\n public setMoodRepository(): void {\n this.moodService = new MoodService();\n this.healthRecordService = new HealthRecordService();\n }\n \n public setHealthRecordRepository(): void {\n this.healthRecordService = new HealthRecordService();\n }\n \n public setNotificationService(service: INotificationService): void {\n this.notificationService = service;\n }\n \n public setUserPlanRepository(repository: IUserPlanRepository): void {\n this.userPlanRepository = repository;\n this.userPlanService = new UserPlanService(this.userPlanRepository);\n } \n \n public updateUserId(userId: string): void {\n // Armazenar o userId no localStorage para persistência\n if (userId) {\n localStorage.setItem('userId', userId);\n this.userId = userId;\n }\n \n // Atualizar o userId nos serviços\n this.moodService.setUserId(userId);\n this.chatAIService.setUserId(userId);\n }\n}\n\n// Exporta funções auxiliares para obter os serviços\nexport const getMoodService = (): MoodService => {\n return ServiceLocator.getInstance().getMoodService();\n};\n\nexport const getHealthRecordService = (): HealthRecordService => {\n return ServiceLocator.getInstance().getHealthRecordService();\n};\n\nexport const getNotificationService = (): INotificationService => {\n return ServiceLocator.getInstance().getNotificationService();\n};\n\nexport const getWeeklySummaryService = (): WeeklySummaryService => {\n return ServiceLocator.getInstance().getWeeklySummaryService();\n};\n\nexport const getUserPlanService = (): IUserPlanService => {\n return ServiceLocator.getInstance().getUserPlanService();\n};\n\nexport const getOnBoardingService = () => {\n return ServiceLocator.getInstance().getOnBoardingService();\n};\n\nexport const getChatAIService = (): ChatAIService => {\n return ServiceLocator.getInstance().getChatAIService();\n};\n\n// Exporta a instância do ServiceLocator para testes/mock\nexport const getServiceLocator = (): ServiceLocator => {\n return ServiceLocator.getInstance();\n}; ","import React, { createContext, useContext, useState, useEffect, ReactNode } from 'react';\nimport { User, Session } from '@supabase/supabase-js';\nimport { supabase } from '../infra/supabaseClient';\nimport { getServiceLocator } from '../infra/serviceLocator';\n\nexport type UserPlan = 'basic' | 'essential' | 'premium';\n\ninterface AuthContextType {\n user: User | null;\n session: Session | null;\n loading: boolean;\n signOut: () => Promise;\n currentPlan: UserPlan;\n hasAccessToContent: (requiredPlan: UserPlan) => boolean;\n isLoading: boolean;\n error: string | null;\n login: (email: string, password: string) => Promise;\n register: (email: string, password: string, name: string) => Promise;\n logout: () => Promise;\n resetPassword: (email: string) => Promise;\n updateUserProfile: (data: Partial) => Promise;\n refreshUser: () => Promise;\n}\n\nconst AuthContext = createContext(undefined);\n\nexport const useAuth = () => {\n const context = useContext(AuthContext);\n if (context === undefined) {\n throw new Error('useAuth must be used within an AuthProvider');\n }\n return context;\n};\n\ninterface AuthProviderProps {\n children: ReactNode;\n}\n\nexport const AuthProvider: React.FC = ({ children }) => {\n const [user, setUser] = useState(null);\n const [session, setSession] = useState(null);\n const [loading, setLoading] = useState(true);\n // Valor mockado do plano do usuário para desenvolvimento\n const [currentPlan, setCurrentPlan] = useState('premium');\n const [isLoading, setIsLoading] = useState(false);\n const [error, setError] = useState(null);\n\n const updateAuthState = (newSession: Session | null) => {\n setSession(newSession);\n setUser(newSession?.user || null);\n \n if (newSession?.user?.id) {\n // Armazenar o userId no localStorage para persistência\n localStorage.setItem('userId', newSession.user.id);\n \n // Armazenar o token de acesso no localStorage\n if (newSession.access_token) {\n localStorage.setItem('authToken', newSession.access_token);\n }\n } else {\n // Remover dados de autenticação quando não há sessão\n localStorage.removeItem('userId');\n localStorage.removeItem('authToken');\n }\n };\n\n useEffect(() => {\n let mounted = true;\n \n const getInitialSession = async () => {\n try {\n const { data } = await supabase.auth.getSession();\n \n if (mounted) {\n updateAuthState(data.session);\n setLoading(false);\n }\n } catch (error) {\n console.error(`[${new Date().toISOString()}] Erro ao obter sessão inicial:`, error);\n if (mounted) {\n setLoading(false);\n }\n }\n };\n\n getInitialSession();\n\n const { data: authListener } = supabase.auth.onAuthStateChange(\n async (event, newSession) => { \n if (!mounted) return;\n \n if (event === 'SIGNED_IN' || event === 'USER_UPDATED') {\n updateAuthState(newSession);\n setLoading(false);\n } else if (event === 'SIGNED_OUT') {\n setSession(null);\n setUser(null);\n setLoading(false);\n }\n }\n );\n\n return () => {\n mounted = false;\n authListener?.subscription.unsubscribe();\n };\n }, []);\n\n const signOut = async () => {\n await supabase.auth.signOut();\n };\n\n // Função para verificar se o usuário tem acesso ao conteúdo com base no plano requerido\n const hasAccessToContent = (requiredPlan: UserPlan): boolean => {\n const planHierarchy: Record = {\n 'basic': 1,\n 'essential': 2,\n 'premium': 3\n };\n \n return planHierarchy[currentPlan] >= planHierarchy[requiredPlan];\n };\n\n const login = async (email: string, password: string): Promise => {\n setIsLoading(true);\n setError(null);\n try {\n const { data, error } = await supabase.auth.signInWithPassword({ email, password });\n \n if (error) throw error;\n \n if (data.user) {\n // Atualizar o userId no ServiceLocator para o MoodService\n import('../infra/serviceLocator').then(({ getServiceLocator }) => {\n getServiceLocator().updateUserId(data.user.id);\n }).catch(err => {\n console.error('Erro ao atualizar userId no ServiceLocator:', err);\n });\n }\n } catch (err) {\n const errorMessage = err instanceof Error ? err.message : 'Erro ao fazer login';\n setError(errorMessage);\n throw err;\n } finally {\n setIsLoading(false);\n }\n };\n\n const register = async (email: string, password: string, name: string): Promise => {\n setIsLoading(true);\n setError(null);\n try {\n const { error } = await supabase.auth.signUp({ \n email, \n password,\n options: {\n data: {\n name\n }\n }\n });\n if (error) throw error;\n } catch (err) {\n const errorMessage = err instanceof Error ? err.message : 'Erro ao registrar';\n setError(errorMessage);\n throw err;\n } finally {\n setIsLoading(false);\n }\n };\n\n const logout = async (): Promise => {\n setIsLoading(true);\n try {\n await supabase.auth.signOut();\n // Remover dados de autenticação\n localStorage.removeItem('userId');\n localStorage.removeItem('authToken');\n } catch (err) {\n console.error('Erro ao fazer logout:', err);\n } finally {\n setIsLoading(false);\n }\n };\n\n const resetPassword = async (email: string): Promise => {\n setIsLoading(true);\n setError(null);\n try {\n const { error } = await supabase.auth.resetPasswordForEmail(email);\n if (error) throw error;\n } catch (err) {\n const errorMessage = err instanceof Error ? err.message : 'Erro ao resetar senha';\n setError(errorMessage);\n throw err;\n } finally {\n setIsLoading(false);\n }\n };\n\n const updateUserProfile = async (data: Partial): Promise => {\n setIsLoading(true);\n setError(null);\n try {\n // Implementação de atualização de perfil\n console.log('Atualizando perfil:', data);\n } catch (err) {\n const errorMessage = err instanceof Error ? err.message : 'Erro ao atualizar perfil';\n setError(errorMessage);\n throw err;\n } finally {\n setIsLoading(false);\n }\n };\n\n const refreshUser = async (): Promise => {\n if (!user) {\n setError('Nenhum usuário autenticado para atualizar');\n return;\n }\n \n try {\n setIsLoading(true);\n setError(null);\n \n // Obter os dados atualizados do usuário do Supabase\n const { data: userData, error: userError } = await supabase.auth.getUser();\n \n if (userError) {\n throw userError;\n }\n \n if (!userData.user) {\n throw new Error('Usuário não encontrado');\n }\n \n // Atualizar o userId no ServiceLocator para o MoodService\n import('../infra/serviceLocator').then(({ getServiceLocator }) => {\n getServiceLocator().updateUserId(userData.user.id);\n }).catch(err => {\n console.error('Erro ao atualizar userId no ServiceLocator:', err);\n });\n \n // Buscar plano ativo do usuário usando o serviço\n const userPlanService = getServiceLocator().getUserPlanService();\n \n try {\n const activePlan = await userPlanService.getUserActivePlan(userData.user.id);\n \n // Atualizar o plano atual do usuário\n if (activePlan?.planId) {\n const newPlan = activePlan.planId || 'basic';\n setCurrentPlan(newPlan as UserPlan);\n }\n } catch (planError) {\n console.error('Erro ao buscar plano do usuário:', planError);\n // Continua a execução mesmo com erro no plano\n }\n \n // Atualizar o usuário no estado\n setUser(userData.user);\n \n // Se houver uma sessão ativa, atualizá-la também\n const { data: sessionData } = await supabase.auth.getSession();\n if (sessionData.session) {\n setSession(sessionData.session);\n }\n \n } catch (error) {\n console.error('Erro ao atualizar dados do usuário:', error);\n const errorMessage = error instanceof Error ? error.message : 'Erro ao atualizar dados do usuário';\n setError(errorMessage);\n throw error; // Propaga o erro para quem chamou a função\n } finally {\n setIsLoading(false);\n }\n };\n\n const value = {\n user,\n session,\n loading,\n signOut,\n currentPlan,\n hasAccessToContent,\n isLoading,\n error,\n login,\n register,\n logout,\n resetPassword,\n updateUserProfile,\n refreshUser\n };\n\n return (\n \n {children}\n \n );\n};\n","import React, { useEffect, useRef } from 'react';\nimport { useAuth } from '../contexts/AuthContext';\n\ninterface GoogleAdsenseProps {\n client: string;\n slot: string;\n format?: 'auto' | 'rectangle' | 'horizontal' | 'vertical';\n responsive?: boolean;\n style?: React.CSSProperties;\n className?: string;\n}\n\n// Global script loading state to prevent multiple script loads\nlet isScriptLoaded = false;\n\nconst GoogleAdsense: React.FC = ({\n client,\n slot,\n format = 'auto',\n responsive = true,\n style = {},\n className = '',\n}) => {\n // Obter o plano atual do usuário do contexto de autenticação\n const { currentPlan } = useAuth();\n const adRef = useRef(null);\n const isAdPushed = useRef(false);\n \n // Não renderizar anúncios para usuários com planos diferentes de \"basic\"\n if (currentPlan !== 'basic') {\n return null;\n }\n\n useEffect(() => {\n // Load AdSense script if it hasn't been loaded yet\n if (!isScriptLoaded && window.adsbygoogle === undefined) {\n isScriptLoaded = true;\n const script = document.createElement('script');\n script.src = `https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=${client}`;\n script.async = true;\n script.crossOrigin = 'anonymous';\n document.head.appendChild(script);\n }\n\n // Only push the ad if it hasn't been pushed yet\n const pushAd = () => {\n if (!isAdPushed.current && adRef.current) {\n try {\n // Mark as pushed before the actual push to prevent double-pushing\n isAdPushed.current = true;\n (window.adsbygoogle = window.adsbygoogle || []).push({});\n } catch (error) {\n console.error('AdSense error:', error);\n }\n }\n };\n\n // Wait for AdSense to be available\n if (window.adsbygoogle) {\n pushAd();\n } else {\n // If AdSense isn't available yet, wait for it\n const interval = setInterval(() => {\n if (window.adsbygoogle) {\n pushAd();\n clearInterval(interval);\n }\n }, 200);\n \n // Clean up interval\n return () => clearInterval(interval);\n }\n }, [client]);\n\n return (\n

\n \n
\n );\n};\n\nexport default GoogleAdsense;\n\n// Add this to global.d.ts or create a types file\ndeclare global {\n interface Window {\n adsbygoogle: any[];\n }\n}\n","export const adsenseConfig = {\n // Google AdSense client ID\n client: 'ca-pub-1767421654516889',\n // Different ad slots for various placements\n slots: {\n header: '4594976852', // Slot ID para anúncios no cabeçalho\n footer: '4594976852', // Slot ID para anúncios no rodapé\n inContent: '4198287385', // Slot ID para anúncios no meio do conteúdo\n }\n};\n","const createStoreImpl = (createState) => {\n let state;\n const listeners = /* @__PURE__ */ new Set();\n const setState = (partial, replace) => {\n const nextState = typeof partial === \"function\" ? partial(state) : partial;\n if (!Object.is(nextState, state)) {\n const previousState = state;\n state = (replace != null ? replace : typeof nextState !== \"object\" || nextState === null) ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const getInitialState = () => initialState;\n const subscribe = (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const api = { setState, getState, getInitialState, subscribe };\n const initialState = state = createState(setState, getState, api);\n return api;\n};\nconst createStore = (createState) => createState ? createStoreImpl(createState) : createStoreImpl;\n\nexport { createStore };\n","import React from 'react';\nimport { createStore } from 'zustand/vanilla';\n\nconst identity = (arg) => arg;\nfunction useStore(api, selector = identity) {\n const slice = React.useSyncExternalStore(\n api.subscribe,\n () => selector(api.getState()),\n () => selector(api.getInitialState())\n );\n React.useDebugValue(slice);\n return slice;\n}\nconst createImpl = (createState) => {\n const api = createStore(createState);\n const useBoundStore = (selector) => useStore(api, selector);\n Object.assign(useBoundStore, api);\n return useBoundStore;\n};\nconst create = (createState) => createState ? createImpl(createState) : createImpl;\n\nexport { create, useStore };\n","import { create } from 'zustand';\n\ninterface OnBoardingState {\n isModalOpen: boolean;\n isRequired: boolean;\n startWithPendingSteps: boolean;\n currentStep: number;\n setModalOpen: (isOpen: boolean) => void;\n setRequired: (isRequired: boolean) => void;\n setStartWithPendingSteps: (startWithPending: boolean) => void;\n setCurrentStep: (step: number) => void;\n resetState: () => void;\n}\n\n \nexport const useOnBoardingStore = create((set) => ({\n isModalOpen: false,\n isRequired: false,\n startWithPendingSteps: false,\n currentStep: 0,\n \n setModalOpen: (isOpen: boolean) => set({ isModalOpen: isOpen }),\n setRequired: (isRequired: boolean) => set({ isRequired }),\n setStartWithPendingSteps: (startWithPending: boolean) => set({ startWithPendingSteps: startWithPending }),\n setCurrentStep: (step: number) => set({ currentStep: step }),\n \n resetState: () => set({\n isModalOpen: false,\n startWithPendingSteps: false,\n currentStep: 0\n })\n})); ","/**\n * Utilitários para formatação de dados na interface\n */\n\n/**\n * Formata um email hasheado para exibição na interface, abreviando o hash\n * para evitar problemas de layout\n * \n * @param email Email a ser formatado\n * @returns Email formatado de forma abreviada\n */\nexport const formatHashedEmail = (email: string | undefined): string => {\n if (!email) return 'Usuário';\n \n // Se for um email hasheado no formato anon_[hash]@hashed.com\n if (email.startsWith('anon_') && email.includes('@hashed.com')) {\n // Extrair apenas os primeiros 8 caracteres do hash após \"anon_\"\n const hash = email.substring(5, email.indexOf('@'));\n return `anon_${hash.substring(0, 8)}...`;\n }\n \n // Para outros formatos, usar a parte antes do @\n return email.split('@')[0];\n};\n\n/**\n * Formata um timestamp para uma data legível\n * \n * @param timestamp Timestamp em milissegundos\n * @returns Data formatada no padrão DD/MM/YYYY\n */\nexport const formatDate = (timestamp: number): string => {\n const date = new Date(timestamp);\n return date.toLocaleDateString('pt-BR');\n};\n\n/**\n * Formata uma string muito longa, truncando-a com reticências\n * \n * @param text Texto a ser truncado\n * @param maxLength Comprimento máximo antes de truncar\n * @returns Texto truncado com reticências\n */\nexport const truncateText = (text: string, maxLength: number): string => {\n if (text.length <= maxLength) return text;\n return `${text.substring(0, maxLength)}...`;\n}; ","import React, { createContext, useContext, useState, useCallback, ReactNode } from 'react';\n\n// Props para o provedor de contexto\ninterface ChatProviderProps {\n children: ReactNode;\n}\n\n// Interface para o contexto do chat\nexport interface ChatContextType {\n isOpen: boolean;\n openChat: (initialMsg?: string) => void;\n closeChat: () => void;\n initialMessage: string;\n setInitialMessage: (message: string) => void;\n currentSessionId: string | null;\n setCurrentSession: (sessionId: string | null) => void;\n isNewSession: boolean;\n startNewSession: () => void;\n isOnChatPage: (pathname: string) => boolean;\n}\n\n// Criando o contexto\nconst ChatContext = createContext({\n isOpen: false,\n initialMessage: '',\n currentSessionId: null,\n isNewSession: true,\n openChat: () => {},\n closeChat: () => {},\n startNewSession: () => {},\n setCurrentSession: () => {},\n setInitialMessage: () => {},\n isOnChatPage: () => false\n});\n\n// Hook para usar o contexto de chat\nexport const useChat = () => useContext(ChatContext);\n\n// Provedor do contexto\nexport const ChatProvider: React.FC = ({ children }) => {\n const [isOpen, setIsOpen] = useState(false);\n const [initialMessage, setInitialMessage] = useState('');\n const [currentSessionId, setCurrentSessionId] = useState(null);\n const [isNewSession, setIsNewSession] = useState(true);\n \n // Função para abrir o chat\n const openChat = useCallback((initialMsg?: string) => {\n setIsOpen(true);\n if (initialMsg) {\n setInitialMessage(initialMsg);\n }\n }, []);\n \n // Função para fechar o chat\n const closeChat = useCallback(() => {\n setIsOpen(false);\n \n // Limpar a mensagem inicial ao fechar\n if (initialMessage) {\n setInitialMessage('');\n }\n }, [initialMessage]);\n \n // Função para iniciar uma nova sessão\n const startNewSession = useCallback(() => {\n setCurrentSessionId(null);\n setIsNewSession(true);\n setInitialMessage('');\n }, []);\n \n // Função para definir a sessão atual\n const setCurrentSession = useCallback((sessionId: string | null) => {\n setCurrentSessionId(sessionId);\n setIsNewSession(false);\n setInitialMessage('');\n }, []);\n \n return (\n pathname === '/chat' || pathname.startsWith('/chat/')\n }}>\n {children}\n \n );\n};\n\nexport default ChatContext; ","/**\n * @typedef Options\n * Configuration.\n * @property {boolean | null | undefined} [jsx=false]\n * Support JSX identifiers (default: `false`).\n */\n\nconst startRe = /[$_\\p{ID_Start}]/u\nconst contRe = /[$_\\u{200C}\\u{200D}\\p{ID_Continue}]/u\nconst contReJsx = /[-$_\\u{200C}\\u{200D}\\p{ID_Continue}]/u\nconst nameRe = /^[$_\\p{ID_Start}][$_\\u{200C}\\u{200D}\\p{ID_Continue}]*$/u\nconst nameReJsx = /^[$_\\p{ID_Start}][-$_\\u{200C}\\u{200D}\\p{ID_Continue}]*$/u\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Checks if the given code point can start an identifier.\n *\n * @param {number | undefined} code\n * Code point to check.\n * @returns {boolean}\n * Whether `code` can start an identifier.\n */\n// Note: `undefined` is supported so you can pass the result from `''.codePointAt`.\nexport function start(code) {\n return code ? startRe.test(String.fromCodePoint(code)) : false\n}\n\n/**\n * Checks if the given code point can continue an identifier.\n *\n * @param {number | undefined} code\n * Code point to check.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {boolean}\n * Whether `code` can continue an identifier.\n */\n// Note: `undefined` is supported so you can pass the result from `''.codePointAt`.\nexport function cont(code, options) {\n const settings = options || emptyOptions\n const re = settings.jsx ? contReJsx : contRe\n return code ? re.test(String.fromCodePoint(code)) : false\n}\n\n/**\n * Checks if the given value is a valid identifier name.\n *\n * @param {string} name\n * Identifier to check.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {boolean}\n * Whether `name` can be an identifier.\n */\nexport function name(name, options) {\n const settings = options || emptyOptions\n const re = settings.jsx ? nameReJsx : nameRe\n return re.test(name)\n}\n","/**\n * @typedef {import('hast').Nodes} Nodes\n */\n\n// HTML whitespace expression.\n// See .\nconst re = /[ \\t\\n\\f\\r]/g\n\n/**\n * Check if the given value is *inter-element whitespace*.\n *\n * @param {Nodes | string} thing\n * Thing to check (`Node` or `string`).\n * @returns {boolean}\n * Whether the `value` is inter-element whitespace (`boolean`): consisting of\n * zero or more of space, tab (`\\t`), line feed (`\\n`), carriage return\n * (`\\r`), or form feed (`\\f`); if a node is passed it must be a `Text` node,\n * whose `value` field is checked.\n */\nexport function whitespace(thing) {\n return typeof thing === 'object'\n ? thing.type === 'text'\n ? empty(thing.value)\n : false\n : empty(thing)\n}\n\n/**\n * @param {string} value\n * @returns {boolean}\n */\nfunction empty(value) {\n return value.replace(re, '') === ''\n}\n","/**\n * @import {Schema as SchemaType, Space} from 'property-information'\n */\n\n/** @type {SchemaType} */\nexport class Schema {\n /**\n * @param {SchemaType['property']} property\n * Property.\n * @param {SchemaType['normal']} normal\n * Normal.\n * @param {Space | undefined} [space]\n * Space.\n * @returns\n * Schema.\n */\n constructor(property, normal, space) {\n this.normal = normal\n this.property = property\n\n if (space) {\n this.space = space\n }\n }\n}\n\nSchema.prototype.normal = {}\nSchema.prototype.property = {}\nSchema.prototype.space = undefined\n","/**\n * @import {Info, Space} from 'property-information'\n */\n\nimport {Schema} from './schema.js'\n\n/**\n * @param {ReadonlyArray} definitions\n * Definitions.\n * @param {Space | undefined} [space]\n * Space.\n * @returns {Schema}\n * Schema.\n */\nexport function merge(definitions, space) {\n /** @type {Record} */\n const property = {}\n /** @type {Record} */\n const normal = {}\n\n for (const definition of definitions) {\n Object.assign(property, definition.property)\n Object.assign(normal, definition.normal)\n }\n\n return new Schema(property, normal, space)\n}\n","/**\n * Get the cleaned case insensitive form of an attribute or property.\n *\n * @param {string} value\n * An attribute-like or property-like name.\n * @returns {string}\n * Value that can be used to look up the properly cased property on a\n * `Schema`.\n */\nexport function normalize(value) {\n return value.toLowerCase()\n}\n","/**\n * @import {Info as InfoType} from 'property-information'\n */\n\n/** @type {InfoType} */\nexport class Info {\n /**\n * @param {string} property\n * Property.\n * @param {string} attribute\n * Attribute.\n * @returns\n * Info.\n */\n constructor(property, attribute) {\n this.attribute = attribute\n this.property = property\n }\n}\n\nInfo.prototype.attribute = ''\nInfo.prototype.booleanish = false\nInfo.prototype.boolean = false\nInfo.prototype.commaOrSpaceSeparated = false\nInfo.prototype.commaSeparated = false\nInfo.prototype.defined = false\nInfo.prototype.mustUseProperty = false\nInfo.prototype.number = false\nInfo.prototype.overloadedBoolean = false\nInfo.prototype.property = ''\nInfo.prototype.spaceSeparated = false\nInfo.prototype.space = undefined\n","let powers = 0\n\nexport const boolean = increment()\nexport const booleanish = increment()\nexport const overloadedBoolean = increment()\nexport const number = increment()\nexport const spaceSeparated = increment()\nexport const commaSeparated = increment()\nexport const commaOrSpaceSeparated = increment()\n\nfunction increment() {\n return 2 ** ++powers\n}\n","/**\n * @import {Space} from 'property-information'\n */\n\nimport {Info} from './info.js'\nimport * as types from './types.js'\n\nconst checks = /** @type {ReadonlyArray} */ (\n Object.keys(types)\n)\n\nexport class DefinedInfo extends Info {\n /**\n * @constructor\n * @param {string} property\n * Property.\n * @param {string} attribute\n * Attribute.\n * @param {number | null | undefined} [mask]\n * Mask.\n * @param {Space | undefined} [space]\n * Space.\n * @returns\n * Info.\n */\n constructor(property, attribute, mask, space) {\n let index = -1\n\n super(property, attribute)\n\n mark(this, 'space', space)\n\n if (typeof mask === 'number') {\n while (++index < checks.length) {\n const check = checks[index]\n mark(this, checks[index], (mask & types[check]) === types[check])\n }\n }\n }\n}\n\nDefinedInfo.prototype.defined = true\n\n/**\n * @template {keyof DefinedInfo} Key\n * Key type.\n * @param {DefinedInfo} values\n * Info.\n * @param {Key} key\n * Key.\n * @param {DefinedInfo[Key]} value\n * Value.\n * @returns {undefined}\n * Nothing.\n */\nfunction mark(values, key, value) {\n if (value) {\n values[key] = value\n }\n}\n","/**\n * @import {Info, Space} from 'property-information'\n */\n\n/**\n * @typedef Definition\n * Definition of a schema.\n * @property {Record | undefined} [attributes]\n * Normalzed names to special attribute case.\n * @property {ReadonlyArray | undefined} [mustUseProperty]\n * Normalized names that must be set as properties.\n * @property {Record} properties\n * Property names to their types.\n * @property {Space | undefined} [space]\n * Space.\n * @property {Transform} transform\n * Transform a property name.\n */\n\n/**\n * @callback Transform\n * Transform.\n * @param {Record} attributes\n * Attributes.\n * @param {string} property\n * Property.\n * @returns {string}\n * Attribute.\n */\n\nimport {normalize} from '../normalize.js'\nimport {DefinedInfo} from './defined-info.js'\nimport {Schema} from './schema.js'\n\n/**\n * @param {Definition} definition\n * Definition.\n * @returns {Schema}\n * Schema.\n */\nexport function create(definition) {\n /** @type {Record} */\n const properties = {}\n /** @type {Record} */\n const normals = {}\n\n for (const [property, value] of Object.entries(definition.properties)) {\n const info = new DefinedInfo(\n property,\n definition.transform(definition.attributes || {}, property),\n value,\n definition.space\n )\n\n if (\n definition.mustUseProperty &&\n definition.mustUseProperty.includes(property)\n ) {\n info.mustUseProperty = true\n }\n\n properties[property] = info\n\n normals[normalize(property)] = property\n normals[normalize(info.attribute)] = property\n }\n\n return new Schema(properties, normals, definition.space)\n}\n","import {create} from './util/create.js'\nimport {booleanish, number, spaceSeparated} from './util/types.js'\n\nexport const aria = create({\n properties: {\n ariaActiveDescendant: null,\n ariaAtomic: booleanish,\n ariaAutoComplete: null,\n ariaBusy: booleanish,\n ariaChecked: booleanish,\n ariaColCount: number,\n ariaColIndex: number,\n ariaColSpan: number,\n ariaControls: spaceSeparated,\n ariaCurrent: null,\n ariaDescribedBy: spaceSeparated,\n ariaDetails: null,\n ariaDisabled: booleanish,\n ariaDropEffect: spaceSeparated,\n ariaErrorMessage: null,\n ariaExpanded: booleanish,\n ariaFlowTo: spaceSeparated,\n ariaGrabbed: booleanish,\n ariaHasPopup: null,\n ariaHidden: booleanish,\n ariaInvalid: null,\n ariaKeyShortcuts: null,\n ariaLabel: null,\n ariaLabelledBy: spaceSeparated,\n ariaLevel: number,\n ariaLive: null,\n ariaModal: booleanish,\n ariaMultiLine: booleanish,\n ariaMultiSelectable: booleanish,\n ariaOrientation: null,\n ariaOwns: spaceSeparated,\n ariaPlaceholder: null,\n ariaPosInSet: number,\n ariaPressed: booleanish,\n ariaReadOnly: booleanish,\n ariaRelevant: null,\n ariaRequired: booleanish,\n ariaRoleDescription: spaceSeparated,\n ariaRowCount: number,\n ariaRowIndex: number,\n ariaRowSpan: number,\n ariaSelected: booleanish,\n ariaSetSize: number,\n ariaSort: null,\n ariaValueMax: number,\n ariaValueMin: number,\n ariaValueNow: number,\n ariaValueText: null,\n role: null\n },\n transform(_, property) {\n return property === 'role'\n ? property\n : 'aria-' + property.slice(4).toLowerCase()\n }\n})\n","/**\n * @param {Record} attributes\n * Attributes.\n * @param {string} attribute\n * Attribute.\n * @returns {string}\n * Transformed attribute.\n */\nexport function caseSensitiveTransform(attributes, attribute) {\n return attribute in attributes ? attributes[attribute] : attribute\n}\n","import {caseSensitiveTransform} from './case-sensitive-transform.js'\n\n/**\n * @param {Record} attributes\n * Attributes.\n * @param {string} property\n * Property.\n * @returns {string}\n * Transformed property.\n */\nexport function caseInsensitiveTransform(attributes, property) {\n return caseSensitiveTransform(attributes, property.toLowerCase())\n}\n","import {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\nimport {create} from './util/create.js'\nimport {\n booleanish,\n boolean,\n commaSeparated,\n number,\n overloadedBoolean,\n spaceSeparated\n} from './util/types.js'\n\nexport const html = create({\n attributes: {\n acceptcharset: 'accept-charset',\n classname: 'class',\n htmlfor: 'for',\n httpequiv: 'http-equiv'\n },\n mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],\n properties: {\n // Standard Properties.\n abbr: null,\n accept: commaSeparated,\n acceptCharset: spaceSeparated,\n accessKey: spaceSeparated,\n action: null,\n allow: null,\n allowFullScreen: boolean,\n allowPaymentRequest: boolean,\n allowUserMedia: boolean,\n alt: null,\n as: null,\n async: boolean,\n autoCapitalize: null,\n autoComplete: spaceSeparated,\n autoFocus: boolean,\n autoPlay: boolean,\n blocking: spaceSeparated,\n capture: null,\n charSet: null,\n checked: boolean,\n cite: null,\n className: spaceSeparated,\n cols: number,\n colSpan: null,\n content: null,\n contentEditable: booleanish,\n controls: boolean,\n controlsList: spaceSeparated,\n coords: number | commaSeparated,\n crossOrigin: null,\n data: null,\n dateTime: null,\n decoding: null,\n default: boolean,\n defer: boolean,\n dir: null,\n dirName: null,\n disabled: boolean,\n download: overloadedBoolean,\n draggable: booleanish,\n encType: null,\n enterKeyHint: null,\n fetchPriority: null,\n form: null,\n formAction: null,\n formEncType: null,\n formMethod: null,\n formNoValidate: boolean,\n formTarget: null,\n headers: spaceSeparated,\n height: number,\n hidden: boolean,\n high: number,\n href: null,\n hrefLang: null,\n htmlFor: spaceSeparated,\n httpEquiv: spaceSeparated,\n id: null,\n imageSizes: null,\n imageSrcSet: null,\n inert: boolean,\n inputMode: null,\n integrity: null,\n is: null,\n isMap: boolean,\n itemId: null,\n itemProp: spaceSeparated,\n itemRef: spaceSeparated,\n itemScope: boolean,\n itemType: spaceSeparated,\n kind: null,\n label: null,\n lang: null,\n language: null,\n list: null,\n loading: null,\n loop: boolean,\n low: number,\n manifest: null,\n max: null,\n maxLength: number,\n media: null,\n method: null,\n min: null,\n minLength: number,\n multiple: boolean,\n muted: boolean,\n name: null,\n nonce: null,\n noModule: boolean,\n noValidate: boolean,\n onAbort: null,\n onAfterPrint: null,\n onAuxClick: null,\n onBeforeMatch: null,\n onBeforePrint: null,\n onBeforeToggle: null,\n onBeforeUnload: null,\n onBlur: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onContextLost: null,\n onContextMenu: null,\n onContextRestored: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFormData: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLanguageChange: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadEnd: null,\n onLoadStart: null,\n onMessage: null,\n onMessageError: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRejectionHandled: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onScrollEnd: null,\n onSecurityPolicyViolation: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onSlotChange: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnhandledRejection: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onWheel: null,\n open: boolean,\n optimum: number,\n pattern: null,\n ping: spaceSeparated,\n placeholder: null,\n playsInline: boolean,\n popover: null,\n popoverTarget: null,\n popoverTargetAction: null,\n poster: null,\n preload: null,\n readOnly: boolean,\n referrerPolicy: null,\n rel: spaceSeparated,\n required: boolean,\n reversed: boolean,\n rows: number,\n rowSpan: number,\n sandbox: spaceSeparated,\n scope: null,\n scoped: boolean,\n seamless: boolean,\n selected: boolean,\n shadowRootClonable: boolean,\n shadowRootDelegatesFocus: boolean,\n shadowRootMode: null,\n shape: null,\n size: number,\n sizes: null,\n slot: null,\n span: number,\n spellCheck: booleanish,\n src: null,\n srcDoc: null,\n srcLang: null,\n srcSet: null,\n start: number,\n step: null,\n style: null,\n tabIndex: number,\n target: null,\n title: null,\n translate: null,\n type: null,\n typeMustMatch: boolean,\n useMap: null,\n value: booleanish,\n width: number,\n wrap: null,\n writingSuggestions: null,\n\n // Legacy.\n // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n align: null, // Several. Use CSS `text-align` instead,\n aLink: null, // ``. Use CSS `a:active {color}` instead\n archive: spaceSeparated, // ``. List of URIs to archives\n axis: null, // `` and ``. Use `scope` on ``\n background: null, // ``. Use CSS `background-image` instead\n bgColor: null, // `` and table elements. Use CSS `background-color` instead\n border: number, // ``. Use CSS `border-width` instead,\n borderColor: null, // `
`. Use CSS `border-color` instead,\n bottomMargin: number, // ``\n cellPadding: null, // `
`\n cellSpacing: null, // `
`\n char: null, // Several table elements. When `align=char`, sets the character to align on\n charOff: null, // Several table elements. When `char`, offsets the alignment\n classId: null, // ``\n clear: null, // `
`. Use CSS `clear` instead\n code: null, // ``\n codeBase: null, // ``\n codeType: null, // ``\n color: null, // `` and `
`. Use CSS instead\n compact: boolean, // Lists. Use CSS to reduce space between items instead\n declare: boolean, // ``\n event: null, // `\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationRawTagOpen(code) {\n if (code === 47) {\n effects.consume(code);\n buffer = '';\n return continuationRawEndTag;\n }\n return continuation(code);\n }\n\n /**\n * In raw continuation, after ` | \n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function continuationRawEndTag(code) {\n if (code === 62) {\n const name = buffer.toLowerCase();\n if (htmlRawNames.includes(name)) {\n effects.consume(code);\n return continuationClose;\n }\n return continuation(code);\n }\n if (asciiAlpha(code) && buffer.length < 8) {\n // Always the case.\n effects.consume(code);\n buffer += String.fromCharCode(code);\n return continuationRawEndTag;\n }\n return continuation(code);\n }\n\n /**\n * In cdata continuation, after `]`, expecting `]>`.\n *\n * ```markdown\n * > | &<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationCdataInside(code) {\n if (code === 93) {\n effects.consume(code);\n return continuationDeclarationInside;\n }\n return continuation(code);\n }\n\n /**\n * In declaration or instruction continuation, at `>`.\n *\n * ```markdown\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * > | &<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationDeclarationInside(code) {\n if (code === 62) {\n effects.consume(code);\n return continuationClose;\n }\n\n // More dashes.\n if (code === 45 && marker === 2) {\n effects.consume(code);\n return continuationDeclarationInside;\n }\n return continuation(code);\n }\n\n /**\n * In closed continuation: everything we get until the eol/eof is part of it.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function continuationClose(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"htmlFlowData\");\n return continuationAfter(code);\n }\n effects.consume(code);\n return continuationClose;\n }\n\n /**\n * Done.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function continuationAfter(code) {\n effects.exit(\"htmlFlow\");\n // // Feel free to interrupt.\n // tokenizer.interrupt = false\n // // No longer concrete.\n // tokenizer.concrete = false\n return ok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuationStart(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * At eol, before continuation.\n *\n * ```markdown\n * > | * ```js\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return after;\n }\n return nok(code);\n }\n\n /**\n * A continuation.\n *\n * ```markdown\n * | * ```js\n * > | b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeBlankLineBefore(effects, ok, nok) {\n return start;\n\n /**\n * Before eol, expecting blank line.\n *\n * ```markdown\n * > |
\n * ^\n * |\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return effects.attempt(blankLine, ok, nok);\n }\n}","/**\n * @import {\n * Code,\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { asciiAlphanumeric, asciiAlpha, markdownLineEndingOrSpace, markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const htmlText = {\n name: 'htmlText',\n tokenize: tokenizeHtmlText\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeHtmlText(effects, ok, nok) {\n const self = this;\n /** @type {NonNullable | undefined} */\n let marker;\n /** @type {number} */\n let index;\n /** @type {State} */\n let returnState;\n return start;\n\n /**\n * Start of HTML (text).\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"htmlText\");\n effects.enter(\"htmlTextData\");\n effects.consume(code);\n return open;\n }\n\n /**\n * After `<`, at tag name or other stuff.\n *\n * ```markdown\n * > | a c\n * ^\n * > | a c\n * ^\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 33) {\n effects.consume(code);\n return declarationOpen;\n }\n if (code === 47) {\n effects.consume(code);\n return tagCloseStart;\n }\n if (code === 63) {\n effects.consume(code);\n return instruction;\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code);\n return tagOpen;\n }\n return nok(code);\n }\n\n /**\n * After ` | a c\n * ^\n * > | a c\n * ^\n * > | a &<]]> c\n * ^\n * ```\n *\n * @type {State}\n */\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code);\n return commentOpenInside;\n }\n if (code === 91) {\n effects.consume(code);\n index = 0;\n return cdataOpenInside;\n }\n if (asciiAlpha(code)) {\n effects.consume(code);\n return declaration;\n }\n return nok(code);\n }\n\n /**\n * In a comment, after ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code);\n return commentEnd;\n }\n return nok(code);\n }\n\n /**\n * In comment.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function comment(code) {\n if (code === null) {\n return nok(code);\n }\n if (code === 45) {\n effects.consume(code);\n return commentClose;\n }\n if (markdownLineEnding(code)) {\n returnState = comment;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return comment;\n }\n\n /**\n * In comment, after `-`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentClose(code) {\n if (code === 45) {\n effects.consume(code);\n return commentEnd;\n }\n return comment(code);\n }\n\n /**\n * In comment, after `--`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentEnd(code) {\n return code === 62 ? end(code) : code === 45 ? commentClose(code) : comment(code);\n }\n\n /**\n * After ` | a &<]]> b\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function cdataOpenInside(code) {\n const value = \"CDATA[\";\n if (code === value.charCodeAt(index++)) {\n effects.consume(code);\n return index === value.length ? cdata : cdataOpenInside;\n }\n return nok(code);\n }\n\n /**\n * In CDATA.\n *\n * ```markdown\n * > | a &<]]> b\n * ^^^\n * ```\n *\n * @type {State}\n */\n function cdata(code) {\n if (code === null) {\n return nok(code);\n }\n if (code === 93) {\n effects.consume(code);\n return cdataClose;\n }\n if (markdownLineEnding(code)) {\n returnState = cdata;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return cdata;\n }\n\n /**\n * In CDATA, after `]`, at another `]`.\n *\n * ```markdown\n * > | a &<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataClose(code) {\n if (code === 93) {\n effects.consume(code);\n return cdataEnd;\n }\n return cdata(code);\n }\n\n /**\n * In CDATA, after `]]`, at `>`.\n *\n * ```markdown\n * > | a &<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataEnd(code) {\n if (code === 62) {\n return end(code);\n }\n if (code === 93) {\n effects.consume(code);\n return cdataEnd;\n }\n return cdata(code);\n }\n\n /**\n * In declaration.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function declaration(code) {\n if (code === null || code === 62) {\n return end(code);\n }\n if (markdownLineEnding(code)) {\n returnState = declaration;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return declaration;\n }\n\n /**\n * In instruction.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function instruction(code) {\n if (code === null) {\n return nok(code);\n }\n if (code === 63) {\n effects.consume(code);\n return instructionClose;\n }\n if (markdownLineEnding(code)) {\n returnState = instruction;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return instruction;\n }\n\n /**\n * In instruction, after `?`, at `>`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function instructionClose(code) {\n return code === 62 ? end(code) : instruction(code);\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseStart(code) {\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code);\n return tagClose;\n }\n return nok(code);\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagClose(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagClose;\n }\n return tagCloseBetween(code);\n }\n\n /**\n * In closing tag, after tag name.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseBetween(code) {\n if (markdownLineEnding(code)) {\n returnState = tagCloseBetween;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagCloseBetween;\n }\n return end(code);\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpen(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagOpen;\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n return nok(code);\n }\n\n /**\n * In opening tag, after tag name.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenBetween(code) {\n if (code === 47) {\n effects.consume(code);\n return end;\n }\n\n // ASCII alphabetical and `:` and `_`.\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code);\n return tagOpenAttributeName;\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenBetween;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenBetween;\n }\n return end(code);\n }\n\n /**\n * In attribute name.\n *\n * ```markdown\n * > | a d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeName(code) {\n // ASCII alphabetical and `-`, `.`, `:`, and `_`.\n if (code === 45 || code === 46 || code === 58 || code === 95 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagOpenAttributeName;\n }\n return tagOpenAttributeNameAfter(code);\n }\n\n /**\n * After attribute name, before initializer, the end of the tag, or\n * whitespace.\n *\n * ```markdown\n * > | a d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code);\n return tagOpenAttributeValueBefore;\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeNameAfter;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenAttributeNameAfter;\n }\n return tagOpenBetween(code);\n }\n\n /**\n * Before unquoted, double quoted, or single quoted attribute value, allowing\n * whitespace.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueBefore(code) {\n if (code === null || code === 60 || code === 61 || code === 62 || code === 96) {\n return nok(code);\n }\n if (code === 34 || code === 39) {\n effects.consume(code);\n marker = code;\n return tagOpenAttributeValueQuoted;\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueBefore;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenAttributeValueBefore;\n }\n effects.consume(code);\n return tagOpenAttributeValueUnquoted;\n }\n\n /**\n * In double or single quoted attribute value.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code);\n marker = undefined;\n return tagOpenAttributeValueQuotedAfter;\n }\n if (code === null) {\n return nok(code);\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueQuoted;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return tagOpenAttributeValueQuoted;\n }\n\n /**\n * In unquoted attribute value.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueUnquoted(code) {\n if (code === null || code === 34 || code === 39 || code === 60 || code === 61 || code === 96) {\n return nok(code);\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n effects.consume(code);\n return tagOpenAttributeValueUnquoted;\n }\n\n /**\n * After double or single quoted attribute value, before whitespace or the end\n * of the tag.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n return nok(code);\n }\n\n /**\n * In certain circumstances of a tag where only an `>` is allowed.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function end(code) {\n if (code === 62) {\n effects.consume(code);\n effects.exit(\"htmlTextData\");\n effects.exit(\"htmlText\");\n return ok;\n }\n return nok(code);\n }\n\n /**\n * At eol.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * > | a \n * ```\n *\n * @type {State}\n */\n function lineEndingBefore(code) {\n effects.exit(\"htmlTextData\");\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return lineEndingAfter;\n }\n\n /**\n * After eol, at optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a \n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfter(code) {\n // Always populated by defaults.\n\n return markdownSpace(code) ? factorySpace(effects, lineEndingAfterPrefix, \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code) : lineEndingAfterPrefix(code);\n }\n\n /**\n * After eol, after optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a \n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfterPrefix(code) {\n effects.enter(\"htmlTextData\");\n return returnState(code);\n }\n}","/**\n * @import {\n * Construct,\n * Event,\n * Resolver,\n * State,\n * TokenizeContext,\n * Tokenizer,\n * Token\n * } from 'micromark-util-types'\n */\n\nimport { factoryDestination } from 'micromark-factory-destination';\nimport { factoryLabel } from 'micromark-factory-label';\nimport { factoryTitle } from 'micromark-factory-title';\nimport { factoryWhitespace } from 'micromark-factory-whitespace';\nimport { markdownLineEndingOrSpace } from 'micromark-util-character';\nimport { push, splice } from 'micromark-util-chunked';\nimport { normalizeIdentifier } from 'micromark-util-normalize-identifier';\nimport { resolveAll } from 'micromark-util-resolve-all';\n/** @type {Construct} */\nexport const labelEnd = {\n name: 'labelEnd',\n resolveAll: resolveAllLabelEnd,\n resolveTo: resolveToLabelEnd,\n tokenize: tokenizeLabelEnd\n};\n\n/** @type {Construct} */\nconst resourceConstruct = {\n tokenize: tokenizeResource\n};\n/** @type {Construct} */\nconst referenceFullConstruct = {\n tokenize: tokenizeReferenceFull\n};\n/** @type {Construct} */\nconst referenceCollapsedConstruct = {\n tokenize: tokenizeReferenceCollapsed\n};\n\n/** @type {Resolver} */\nfunction resolveAllLabelEnd(events) {\n let index = -1;\n /** @type {Array} */\n const newEvents = [];\n while (++index < events.length) {\n const token = events[index][1];\n newEvents.push(events[index]);\n if (token.type === \"labelImage\" || token.type === \"labelLink\" || token.type === \"labelEnd\") {\n // Remove the marker.\n const offset = token.type === \"labelImage\" ? 4 : 2;\n token.type = \"data\";\n index += offset;\n }\n }\n\n // If the events are equal, we don't have to copy newEvents to events\n if (events.length !== newEvents.length) {\n splice(events, 0, events.length, newEvents);\n }\n return events;\n}\n\n/** @type {Resolver} */\nfunction resolveToLabelEnd(events, context) {\n let index = events.length;\n let offset = 0;\n /** @type {Token} */\n let token;\n /** @type {number | undefined} */\n let open;\n /** @type {number | undefined} */\n let close;\n /** @type {Array} */\n let media;\n\n // Find an opening.\n while (index--) {\n token = events[index][1];\n if (open) {\n // If we see another link, or inactive link label, we’ve been here before.\n if (token.type === \"link\" || token.type === \"labelLink\" && token._inactive) {\n break;\n }\n\n // Mark other link openings as inactive, as we can’t have links in\n // links.\n if (events[index][0] === 'enter' && token.type === \"labelLink\") {\n token._inactive = true;\n }\n } else if (close) {\n if (events[index][0] === 'enter' && (token.type === \"labelImage\" || token.type === \"labelLink\") && !token._balanced) {\n open = index;\n if (token.type !== \"labelLink\") {\n offset = 2;\n break;\n }\n }\n } else if (token.type === \"labelEnd\") {\n close = index;\n }\n }\n const group = {\n type: events[open][1].type === \"labelLink\" ? \"link\" : \"image\",\n start: {\n ...events[open][1].start\n },\n end: {\n ...events[events.length - 1][1].end\n }\n };\n const label = {\n type: \"label\",\n start: {\n ...events[open][1].start\n },\n end: {\n ...events[close][1].end\n }\n };\n const text = {\n type: \"labelText\",\n start: {\n ...events[open + offset + 2][1].end\n },\n end: {\n ...events[close - 2][1].start\n }\n };\n media = [['enter', group, context], ['enter', label, context]];\n\n // Opening marker.\n media = push(media, events.slice(open + 1, open + offset + 3));\n\n // Text open.\n media = push(media, [['enter', text, context]]);\n\n // Always populated by defaults.\n\n // Between.\n media = push(media, resolveAll(context.parser.constructs.insideSpan.null, events.slice(open + offset + 4, close - 3), context));\n\n // Text close, marker close, label close.\n media = push(media, [['exit', text, context], events[close - 2], events[close - 1], ['exit', label, context]]);\n\n // Reference, resource, or so.\n media = push(media, events.slice(close + 1));\n\n // Media close.\n media = push(media, [['exit', group, context]]);\n splice(events, open, events.length, media);\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLabelEnd(effects, ok, nok) {\n const self = this;\n let index = self.events.length;\n /** @type {Token} */\n let labelStart;\n /** @type {boolean} */\n let defined;\n\n // Find an opening.\n while (index--) {\n if ((self.events[index][1].type === \"labelImage\" || self.events[index][1].type === \"labelLink\") && !self.events[index][1]._balanced) {\n labelStart = self.events[index][1];\n break;\n }\n }\n return start;\n\n /**\n * Start of label end.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // If there is not an okay opening.\n if (!labelStart) {\n return nok(code);\n }\n\n // If the corresponding label (link) start is marked as inactive,\n // it means we’d be wrapping a link, like this:\n //\n // ```markdown\n // > | a [b [c](d) e](f) g.\n // ^\n // ```\n //\n // We can’t have that, so it’s just balanced brackets.\n if (labelStart._inactive) {\n return labelEndNok(code);\n }\n defined = self.parser.defined.includes(normalizeIdentifier(self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })));\n effects.enter(\"labelEnd\");\n effects.enter(\"labelMarker\");\n effects.consume(code);\n effects.exit(\"labelMarker\");\n effects.exit(\"labelEnd\");\n return after;\n }\n\n /**\n * After `]`.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // Note: `markdown-rs` also parses GFM footnotes here, which for us is in\n // an extension.\n\n // Resource (`[asd](fgh)`)?\n if (code === 40) {\n return effects.attempt(resourceConstruct, labelEndOk, defined ? labelEndOk : labelEndNok)(code);\n }\n\n // Full (`[asd][fgh]`) or collapsed (`[asd][]`) reference?\n if (code === 91) {\n return effects.attempt(referenceFullConstruct, labelEndOk, defined ? referenceNotFull : labelEndNok)(code);\n }\n\n // Shortcut (`[asd]`) reference?\n return defined ? labelEndOk(code) : labelEndNok(code);\n }\n\n /**\n * After `]`, at `[`, but not at a full reference.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceNotFull(code) {\n return effects.attempt(referenceCollapsedConstruct, labelEndOk, labelEndNok)(code);\n }\n\n /**\n * Done, we found something.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndOk(code) {\n // Note: `markdown-rs` does a bunch of stuff here.\n return ok(code);\n }\n\n /**\n * Done, it’s nothing.\n *\n * There was an okay opening, but we didn’t match anything.\n *\n * ```markdown\n * > | [a](b c\n * ^\n * > | [a][b c\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndNok(code) {\n labelStart._balanced = true;\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeResource(effects, ok, nok) {\n return resourceStart;\n\n /**\n * At a resource.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceStart(code) {\n effects.enter(\"resource\");\n effects.enter(\"resourceMarker\");\n effects.consume(code);\n effects.exit(\"resourceMarker\");\n return resourceBefore;\n }\n\n /**\n * In resource, after `(`, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBefore(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceOpen)(code) : resourceOpen(code);\n }\n\n /**\n * In resource, after optional whitespace, at `)` or a destination.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceOpen(code) {\n if (code === 41) {\n return resourceEnd(code);\n }\n return factoryDestination(effects, resourceDestinationAfter, resourceDestinationMissing, \"resourceDestination\", \"resourceDestinationLiteral\", \"resourceDestinationLiteralMarker\", \"resourceDestinationRaw\", \"resourceDestinationString\", 32)(code);\n }\n\n /**\n * In resource, after destination, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationAfter(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceBetween)(code) : resourceEnd(code);\n }\n\n /**\n * At invalid destination.\n *\n * ```markdown\n * > | [a](<<) b\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationMissing(code) {\n return nok(code);\n }\n\n /**\n * In resource, after destination and whitespace, at `(` or title.\n *\n * ```markdown\n * > | [a](b ) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBetween(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(effects, resourceTitleAfter, nok, \"resourceTitle\", \"resourceTitleMarker\", \"resourceTitleString\")(code);\n }\n return resourceEnd(code);\n }\n\n /**\n * In resource, after title, at optional whitespace.\n *\n * ```markdown\n * > | [a](b \"c\") d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceTitleAfter(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceEnd)(code) : resourceEnd(code);\n }\n\n /**\n * In resource, at `)`.\n *\n * ```markdown\n * > | [a](b) d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceEnd(code) {\n if (code === 41) {\n effects.enter(\"resourceMarker\");\n effects.consume(code);\n effects.exit(\"resourceMarker\");\n effects.exit(\"resource\");\n return ok;\n }\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceFull(effects, ok, nok) {\n const self = this;\n return referenceFull;\n\n /**\n * In a reference (full), at the `[`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFull(code) {\n return factoryLabel.call(self, effects, referenceFullAfter, referenceFullMissing, \"reference\", \"referenceMarker\", \"referenceString\")(code);\n }\n\n /**\n * In a reference (full), after `]`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullAfter(code) {\n return self.parser.defined.includes(normalizeIdentifier(self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1))) ? ok(code) : nok(code);\n }\n\n /**\n * In reference (full) that was missing.\n *\n * ```markdown\n * > | [a][b d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullMissing(code) {\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceCollapsed(effects, ok, nok) {\n return referenceCollapsedStart;\n\n /**\n * In reference (collapsed), at `[`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedStart(code) {\n // We only attempt a collapsed label if there’s a `[`.\n\n effects.enter(\"reference\");\n effects.enter(\"referenceMarker\");\n effects.consume(code);\n effects.exit(\"referenceMarker\");\n return referenceCollapsedOpen;\n }\n\n /**\n * In reference (collapsed), at `]`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedOpen(code) {\n if (code === 93) {\n effects.enter(\"referenceMarker\");\n effects.consume(code);\n effects.exit(\"referenceMarker\");\n effects.exit(\"reference\");\n return ok;\n }\n return nok(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { labelEnd } from './label-end.js';\n\n/** @type {Construct} */\nexport const labelStartImage = {\n name: 'labelStartImage',\n resolveAll: labelEnd.resolveAll,\n tokenize: tokenizeLabelStartImage\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * Start of label (image) start.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"labelImage\");\n effects.enter(\"labelImageMarker\");\n effects.consume(code);\n effects.exit(\"labelImageMarker\");\n return open;\n }\n\n /**\n * After `!`, at `[`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 91) {\n effects.enter(\"labelMarker\");\n effects.consume(code);\n effects.exit(\"labelMarker\");\n effects.exit(\"labelImage\");\n return after;\n }\n return nok(code);\n }\n\n /**\n * After `![`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * This is needed in because, when GFM footnotes are enabled, images never\n * form when started with a `^`.\n * Instead, links form:\n *\n * ```markdown\n * ![^a](b)\n *\n * ![^a][b]\n *\n * [b]: c\n * ```\n *\n * ```html\n *

!^a

\n *

!^a

\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // To do: use a new field to do this, this is still needed for\n // `micromark-extension-gfm-footnote`, but the `label-start-link`\n // behavior isn’t.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs ? nok(code) : ok(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { labelEnd } from './label-end.js';\n\n/** @type {Construct} */\nexport const labelStartLink = {\n name: 'labelStartLink',\n resolveAll: labelEnd.resolveAll,\n tokenize: tokenizeLabelStartLink\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * Start of label (link) start.\n *\n * ```markdown\n * > | a [b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"labelLink\");\n effects.enter(\"labelMarker\");\n effects.consume(code);\n effects.exit(\"labelMarker\");\n effects.exit(\"labelLink\");\n return after;\n }\n\n /** @type {State} */\n function after(code) {\n // To do: this isn’t needed in `micromark-extension-gfm-footnote`,\n // remove.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs ? nok(code) : ok(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {Construct} */\nexport const lineEnding = {\n name: 'lineEnding',\n tokenize: tokenizeLineEnding\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLineEnding(effects, ok) {\n return start;\n\n /** @type {State} */\n function start(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return factorySpace(effects, ok, \"linePrefix\");\n }\n}","/**\n * @import {\n * Code,\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const thematicBreak = {\n name: 'thematicBreak',\n tokenize: tokenizeThematicBreak\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeThematicBreak(effects, ok, nok) {\n let size = 0;\n /** @type {NonNullable} */\n let marker;\n return start;\n\n /**\n * Start of thematic break.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"thematicBreak\");\n // To do: parse indent like `markdown-rs`.\n return before(code);\n }\n\n /**\n * After optional whitespace, at marker.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n marker = code;\n return atBreak(code);\n }\n\n /**\n * After something, before something else.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === marker) {\n effects.enter(\"thematicBreakSequence\");\n return sequence(code);\n }\n if (size >= 3 && (code === null || markdownLineEnding(code))) {\n effects.exit(\"thematicBreak\");\n return ok(code);\n }\n return nok(code);\n }\n\n /**\n * In sequence.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function sequence(code) {\n if (code === marker) {\n effects.consume(code);\n size++;\n return sequence;\n }\n effects.exit(\"thematicBreakSequence\");\n return markdownSpace(code) ? factorySpace(effects, atBreak, \"whitespace\")(code) : atBreak(code);\n }\n}","/**\n * @import {\n * Code,\n * Construct,\n * Exiter,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { asciiDigit, markdownSpace } from 'micromark-util-character';\nimport { blankLine } from './blank-line.js';\nimport { thematicBreak } from './thematic-break.js';\n\n/** @type {Construct} */\nexport const list = {\n continuation: {\n tokenize: tokenizeListContinuation\n },\n exit: tokenizeListEnd,\n name: 'list',\n tokenize: tokenizeListStart\n};\n\n/** @type {Construct} */\nconst listItemPrefixWhitespaceConstruct = {\n partial: true,\n tokenize: tokenizeListItemPrefixWhitespace\n};\n\n/** @type {Construct} */\nconst indentConstruct = {\n partial: true,\n tokenize: tokenizeIndent\n};\n\n// To do: `markdown-rs` parses list items on their own and later stitches them\n// together.\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeListStart(effects, ok, nok) {\n const self = this;\n const tail = self.events[self.events.length - 1];\n let initialSize = tail && tail[1].type === \"linePrefix\" ? tail[2].sliceSerialize(tail[1], true).length : 0;\n let size = 0;\n return start;\n\n /** @type {State} */\n function start(code) {\n const kind = self.containerState.type || (code === 42 || code === 43 || code === 45 ? \"listUnordered\" : \"listOrdered\");\n if (kind === \"listUnordered\" ? !self.containerState.marker || code === self.containerState.marker : asciiDigit(code)) {\n if (!self.containerState.type) {\n self.containerState.type = kind;\n effects.enter(kind, {\n _container: true\n });\n }\n if (kind === \"listUnordered\") {\n effects.enter(\"listItemPrefix\");\n return code === 42 || code === 45 ? effects.check(thematicBreak, nok, atMarker)(code) : atMarker(code);\n }\n if (!self.interrupt || code === 49) {\n effects.enter(\"listItemPrefix\");\n effects.enter(\"listItemValue\");\n return inside(code);\n }\n }\n return nok(code);\n }\n\n /** @type {State} */\n function inside(code) {\n if (asciiDigit(code) && ++size < 10) {\n effects.consume(code);\n return inside;\n }\n if ((!self.interrupt || size < 2) && (self.containerState.marker ? code === self.containerState.marker : code === 41 || code === 46)) {\n effects.exit(\"listItemValue\");\n return atMarker(code);\n }\n return nok(code);\n }\n\n /**\n * @type {State}\n **/\n function atMarker(code) {\n effects.enter(\"listItemMarker\");\n effects.consume(code);\n effects.exit(\"listItemMarker\");\n self.containerState.marker = self.containerState.marker || code;\n return effects.check(blankLine,\n // Can’t be empty when interrupting.\n self.interrupt ? nok : onBlank, effects.attempt(listItemPrefixWhitespaceConstruct, endOfPrefix, otherPrefix));\n }\n\n /** @type {State} */\n function onBlank(code) {\n self.containerState.initialBlankLine = true;\n initialSize++;\n return endOfPrefix(code);\n }\n\n /** @type {State} */\n function otherPrefix(code) {\n if (markdownSpace(code)) {\n effects.enter(\"listItemPrefixWhitespace\");\n effects.consume(code);\n effects.exit(\"listItemPrefixWhitespace\");\n return endOfPrefix;\n }\n return nok(code);\n }\n\n /** @type {State} */\n function endOfPrefix(code) {\n self.containerState.size = initialSize + self.sliceSerialize(effects.exit(\"listItemPrefix\"), true).length;\n return ok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeListContinuation(effects, ok, nok) {\n const self = this;\n self.containerState._closeFlow = undefined;\n return effects.check(blankLine, onBlank, notBlank);\n\n /** @type {State} */\n function onBlank(code) {\n self.containerState.furtherBlankLines = self.containerState.furtherBlankLines || self.containerState.initialBlankLine;\n\n // We have a blank line.\n // Still, try to consume at most the items size.\n return factorySpace(effects, ok, \"listItemIndent\", self.containerState.size + 1)(code);\n }\n\n /** @type {State} */\n function notBlank(code) {\n if (self.containerState.furtherBlankLines || !markdownSpace(code)) {\n self.containerState.furtherBlankLines = undefined;\n self.containerState.initialBlankLine = undefined;\n return notInCurrentItem(code);\n }\n self.containerState.furtherBlankLines = undefined;\n self.containerState.initialBlankLine = undefined;\n return effects.attempt(indentConstruct, ok, notInCurrentItem)(code);\n }\n\n /** @type {State} */\n function notInCurrentItem(code) {\n // While we do continue, we signal that the flow should be closed.\n self.containerState._closeFlow = true;\n // As we’re closing flow, we’re no longer interrupting.\n self.interrupt = undefined;\n // Always populated by defaults.\n\n return factorySpace(effects, effects.attempt(list, ok, nok), \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeIndent(effects, ok, nok) {\n const self = this;\n return factorySpace(effects, afterPrefix, \"listItemIndent\", self.containerState.size + 1);\n\n /** @type {State} */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1];\n return tail && tail[1].type === \"listItemIndent\" && tail[2].sliceSerialize(tail[1], true).length === self.containerState.size ? ok(code) : nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Exiter}\n */\nfunction tokenizeListEnd(effects) {\n effects.exit(this.containerState.type);\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeListItemPrefixWhitespace(effects, ok, nok) {\n const self = this;\n\n // Always populated by defaults.\n\n return factorySpace(effects, afterPrefix, \"listItemPrefixWhitespace\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4 + 1);\n\n /** @type {State} */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1];\n return !markdownSpace(code) && tail && tail[1].type === \"listItemPrefixWhitespace\" ? ok(code) : nok(code);\n }\n}","/**\n * @import {\n * Code,\n * Construct,\n * Resolver,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const setextUnderline = {\n name: 'setextUnderline',\n resolveTo: resolveToSetextUnderline,\n tokenize: tokenizeSetextUnderline\n};\n\n/** @type {Resolver} */\nfunction resolveToSetextUnderline(events, context) {\n // To do: resolve like `markdown-rs`.\n let index = events.length;\n /** @type {number | undefined} */\n let content;\n /** @type {number | undefined} */\n let text;\n /** @type {number | undefined} */\n let definition;\n\n // Find the opening of the content.\n // It’ll always exist: we don’t tokenize if it isn’t there.\n while (index--) {\n if (events[index][0] === 'enter') {\n if (events[index][1].type === \"content\") {\n content = index;\n break;\n }\n if (events[index][1].type === \"paragraph\") {\n text = index;\n }\n }\n // Exit\n else {\n if (events[index][1].type === \"content\") {\n // Remove the content end (if needed we’ll add it later)\n events.splice(index, 1);\n }\n if (!definition && events[index][1].type === \"definition\") {\n definition = index;\n }\n }\n }\n const heading = {\n type: \"setextHeading\",\n start: {\n ...events[content][1].start\n },\n end: {\n ...events[events.length - 1][1].end\n }\n };\n\n // Change the paragraph to setext heading text.\n events[text][1].type = \"setextHeadingText\";\n\n // If we have definitions in the content, we’ll keep on having content,\n // but we need move it.\n if (definition) {\n events.splice(text, 0, ['enter', heading, context]);\n events.splice(definition + 1, 0, ['exit', events[content][1], context]);\n events[content][1].end = {\n ...events[definition][1].end\n };\n } else {\n events[content][1] = heading;\n }\n\n // Add the heading exit at the end.\n events.push(['exit', heading, context]);\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeSetextUnderline(effects, ok, nok) {\n const self = this;\n /** @type {NonNullable} */\n let marker;\n return start;\n\n /**\n * At start of heading (setext) underline.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n let index = self.events.length;\n /** @type {boolean | undefined} */\n let paragraph;\n // Find an opening.\n while (index--) {\n // Skip enter/exit of line ending, line prefix, and content.\n // We can now either have a definition or a paragraph.\n if (self.events[index][1].type !== \"lineEnding\" && self.events[index][1].type !== \"linePrefix\" && self.events[index][1].type !== \"content\") {\n paragraph = self.events[index][1].type === \"paragraph\";\n break;\n }\n }\n\n // To do: handle lazy/pierce like `markdown-rs`.\n // To do: parse indent like `markdown-rs`.\n if (!self.parser.lazy[self.now().line] && (self.interrupt || paragraph)) {\n effects.enter(\"setextHeadingLine\");\n marker = code;\n return before(code);\n }\n return nok(code);\n }\n\n /**\n * After optional whitespace, at `-` or `=`.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n effects.enter(\"setextHeadingLineSequence\");\n return inside(code);\n }\n\n /**\n * In sequence.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker) {\n effects.consume(code);\n return inside;\n }\n effects.exit(\"setextHeadingLineSequence\");\n return markdownSpace(code) ? factorySpace(effects, after, \"lineSuffix\")(code) : after(code);\n }\n\n /**\n * After sequence, after optional whitespace.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"setextHeadingLine\");\n return ok(code);\n }\n return nok(code);\n }\n}","/**\n * @import {\n * InitialConstruct,\n * Initializer,\n * State,\n * TokenizeContext\n * } from 'micromark-util-types'\n */\n\nimport { blankLine, content } from 'micromark-core-commonmark';\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {InitialConstruct} */\nexport const flow = {\n tokenize: initializeFlow\n};\n\n/**\n * @this {TokenizeContext}\n * Self.\n * @type {Initializer}\n * Initializer.\n */\nfunction initializeFlow(effects) {\n const self = this;\n const initial = effects.attempt(\n // Try to parse a blank line.\n blankLine, atBlankEnding,\n // Try to parse initial flow (essentially, only code).\n effects.attempt(this.parser.constructs.flowInitial, afterConstruct, factorySpace(effects, effects.attempt(this.parser.constructs.flow, afterConstruct, effects.attempt(content, afterConstruct)), \"linePrefix\")));\n return initial;\n\n /** @type {State} */\n function atBlankEnding(code) {\n if (code === null) {\n effects.consume(code);\n return;\n }\n effects.enter(\"lineEndingBlank\");\n effects.consume(code);\n effects.exit(\"lineEndingBlank\");\n self.currentConstruct = undefined;\n return initial;\n }\n\n /** @type {State} */\n function afterConstruct(code) {\n if (code === null) {\n effects.consume(code);\n return;\n }\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n self.currentConstruct = undefined;\n return initial;\n }\n}","/**\n * @import {\n * Code,\n * InitialConstruct,\n * Initializer,\n * Resolver,\n * State,\n * TokenizeContext\n * } from 'micromark-util-types'\n */\n\nexport const resolver = {\n resolveAll: createResolver()\n};\nexport const string = initializeFactory('string');\nexport const text = initializeFactory('text');\n\n/**\n * @param {'string' | 'text'} field\n * Field.\n * @returns {InitialConstruct}\n * Construct.\n */\nfunction initializeFactory(field) {\n return {\n resolveAll: createResolver(field === 'text' ? resolveAllLineSuffixes : undefined),\n tokenize: initializeText\n };\n\n /**\n * @this {TokenizeContext}\n * Context.\n * @type {Initializer}\n */\n function initializeText(effects) {\n const self = this;\n const constructs = this.parser.constructs[field];\n const text = effects.attempt(constructs, start, notText);\n return start;\n\n /** @type {State} */\n function start(code) {\n return atBreak(code) ? text(code) : notText(code);\n }\n\n /** @type {State} */\n function notText(code) {\n if (code === null) {\n effects.consume(code);\n return;\n }\n effects.enter(\"data\");\n effects.consume(code);\n return data;\n }\n\n /** @type {State} */\n function data(code) {\n if (atBreak(code)) {\n effects.exit(\"data\");\n return text(code);\n }\n\n // Data.\n effects.consume(code);\n return data;\n }\n\n /**\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether the code is a break.\n */\n function atBreak(code) {\n if (code === null) {\n return true;\n }\n const list = constructs[code];\n let index = -1;\n if (list) {\n // Always populated by defaults.\n\n while (++index < list.length) {\n const item = list[index];\n if (!item.previous || item.previous.call(self, self.previous)) {\n return true;\n }\n }\n }\n return false;\n }\n }\n}\n\n/**\n * @param {Resolver | undefined} [extraResolver]\n * Resolver.\n * @returns {Resolver}\n * Resolver.\n */\nfunction createResolver(extraResolver) {\n return resolveAllText;\n\n /** @type {Resolver} */\n function resolveAllText(events, context) {\n let index = -1;\n /** @type {number | undefined} */\n let enter;\n\n // A rather boring computation (to merge adjacent `data` events) which\n // improves mm performance by 29%.\n while (++index <= events.length) {\n if (enter === undefined) {\n if (events[index] && events[index][1].type === \"data\") {\n enter = index;\n index++;\n }\n } else if (!events[index] || events[index][1].type !== \"data\") {\n // Don’t do anything if there is one data token.\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end;\n events.splice(enter + 2, index - enter - 2);\n index = enter + 2;\n }\n enter = undefined;\n }\n }\n return extraResolver ? extraResolver(events, context) : events;\n }\n}\n\n/**\n * A rather ugly set of instructions which again looks at chunks in the input\n * stream.\n * The reason to do this here is that it is *much* faster to parse in reverse.\n * And that we can’t hook into `null` to split the line suffix before an EOF.\n * To do: figure out if we can make this into a clean utility, or even in core.\n * As it will be useful for GFMs literal autolink extension (and maybe even\n * tables?)\n *\n * @type {Resolver}\n */\nfunction resolveAllLineSuffixes(events, context) {\n let eventIndex = 0; // Skip first.\n\n while (++eventIndex <= events.length) {\n if ((eventIndex === events.length || events[eventIndex][1].type === \"lineEnding\") && events[eventIndex - 1][1].type === \"data\") {\n const data = events[eventIndex - 1][1];\n const chunks = context.sliceStream(data);\n let index = chunks.length;\n let bufferIndex = -1;\n let size = 0;\n /** @type {boolean | undefined} */\n let tabs;\n while (index--) {\n const chunk = chunks[index];\n if (typeof chunk === 'string') {\n bufferIndex = chunk.length;\n while (chunk.charCodeAt(bufferIndex - 1) === 32) {\n size++;\n bufferIndex--;\n }\n if (bufferIndex) break;\n bufferIndex = -1;\n }\n // Number\n else if (chunk === -2) {\n tabs = true;\n size++;\n } else if (chunk === -1) {\n // Empty\n } else {\n // Replacement character, exit.\n index++;\n break;\n }\n }\n\n // Allow final trailing whitespace.\n if (context._contentTypeTextTrailing && eventIndex === events.length) {\n size = 0;\n }\n if (size) {\n const token = {\n type: eventIndex === events.length || tabs || size < 2 ? \"lineSuffix\" : \"hardBreakTrailing\",\n start: {\n _bufferIndex: index ? bufferIndex : data.start._bufferIndex + bufferIndex,\n _index: data.start._index + index,\n line: data.end.line,\n column: data.end.column - size,\n offset: data.end.offset - size\n },\n end: {\n ...data.end\n }\n };\n data.end = {\n ...token.start\n };\n if (data.start.offset === data.end.offset) {\n Object.assign(data, token);\n } else {\n events.splice(eventIndex, 0, ['enter', token, context], ['exit', token, context]);\n eventIndex += 2;\n }\n }\n eventIndex++;\n }\n }\n return events;\n}","/**\n * @import {Extension} from 'micromark-util-types'\n */\n\nimport { attention, autolink, blockQuote, characterEscape, characterReference, codeFenced, codeIndented, codeText, definition, hardBreakEscape, headingAtx, htmlFlow, htmlText, labelEnd, labelStartImage, labelStartLink, lineEnding, list, setextUnderline, thematicBreak } from 'micromark-core-commonmark';\nimport { resolver as resolveText } from './initialize/text.js';\n\n/** @satisfies {Extension['document']} */\nexport const document = {\n [42]: list,\n [43]: list,\n [45]: list,\n [48]: list,\n [49]: list,\n [50]: list,\n [51]: list,\n [52]: list,\n [53]: list,\n [54]: list,\n [55]: list,\n [56]: list,\n [57]: list,\n [62]: blockQuote\n};\n\n/** @satisfies {Extension['contentInitial']} */\nexport const contentInitial = {\n [91]: definition\n};\n\n/** @satisfies {Extension['flowInitial']} */\nexport const flowInitial = {\n [-2]: codeIndented,\n [-1]: codeIndented,\n [32]: codeIndented\n};\n\n/** @satisfies {Extension['flow']} */\nexport const flow = {\n [35]: headingAtx,\n [42]: thematicBreak,\n [45]: [setextUnderline, thematicBreak],\n [60]: htmlFlow,\n [61]: setextUnderline,\n [95]: thematicBreak,\n [96]: codeFenced,\n [126]: codeFenced\n};\n\n/** @satisfies {Extension['string']} */\nexport const string = {\n [38]: characterReference,\n [92]: characterEscape\n};\n\n/** @satisfies {Extension['text']} */\nexport const text = {\n [-5]: lineEnding,\n [-4]: lineEnding,\n [-3]: lineEnding,\n [33]: labelStartImage,\n [38]: characterReference,\n [42]: attention,\n [60]: [autolink, htmlText],\n [91]: labelStartLink,\n [92]: [hardBreakEscape, characterEscape],\n [93]: labelEnd,\n [95]: attention,\n [96]: codeText\n};\n\n/** @satisfies {Extension['insideSpan']} */\nexport const insideSpan = {\n null: [attention, resolveText]\n};\n\n/** @satisfies {Extension['attentionMarkers']} */\nexport const attentionMarkers = {\n null: [42, 95]\n};\n\n/** @satisfies {Extension['disable']} */\nexport const disable = {\n null: []\n};","/**\n * @import {\n * Chunk,\n * Code,\n * ConstructRecord,\n * Construct,\n * Effects,\n * InitialConstruct,\n * ParseContext,\n * Point,\n * State,\n * TokenizeContext,\n * Token\n * } from 'micromark-util-types'\n */\n\n/**\n * @callback Restore\n * Restore the state.\n * @returns {undefined}\n * Nothing.\n *\n * @typedef Info\n * Info.\n * @property {Restore} restore\n * Restore.\n * @property {number} from\n * From.\n *\n * @callback ReturnHandle\n * Handle a successful run.\n * @param {Construct} construct\n * Construct.\n * @param {Info} info\n * Info.\n * @returns {undefined}\n * Nothing.\n */\n\nimport { markdownLineEnding } from 'micromark-util-character';\nimport { push, splice } from 'micromark-util-chunked';\nimport { resolveAll } from 'micromark-util-resolve-all';\n/**\n * Create a tokenizer.\n * Tokenizers deal with one type of data (e.g., containers, flow, text).\n * The parser is the object dealing with it all.\n * `initialize` works like other constructs, except that only its `tokenize`\n * function is used, in which case it doesn’t receive an `ok` or `nok`.\n * `from` can be given to set the point before the first character, although\n * when further lines are indented, they must be set with `defineSkip`.\n *\n * @param {ParseContext} parser\n * Parser.\n * @param {InitialConstruct} initialize\n * Construct.\n * @param {Omit | undefined} [from]\n * Point (optional).\n * @returns {TokenizeContext}\n * Context.\n */\nexport function createTokenizer(parser, initialize, from) {\n /** @type {Point} */\n let point = {\n _bufferIndex: -1,\n _index: 0,\n line: from && from.line || 1,\n column: from && from.column || 1,\n offset: from && from.offset || 0\n };\n /** @type {Record} */\n const columnStart = {};\n /** @type {Array} */\n const resolveAllConstructs = [];\n /** @type {Array} */\n let chunks = [];\n /** @type {Array} */\n let stack = [];\n /** @type {boolean | undefined} */\n let consumed = true;\n\n /**\n * Tools used for tokenizing.\n *\n * @type {Effects}\n */\n const effects = {\n attempt: constructFactory(onsuccessfulconstruct),\n check: constructFactory(onsuccessfulcheck),\n consume,\n enter,\n exit,\n interrupt: constructFactory(onsuccessfulcheck, {\n interrupt: true\n })\n };\n\n /**\n * State and tools for resolving and serializing.\n *\n * @type {TokenizeContext}\n */\n const context = {\n code: null,\n containerState: {},\n defineSkip,\n events: [],\n now,\n parser,\n previous: null,\n sliceSerialize,\n sliceStream,\n write\n };\n\n /**\n * The state function.\n *\n * @type {State | undefined}\n */\n let state = initialize.tokenize.call(context, effects);\n\n /**\n * Track which character we expect to be consumed, to catch bugs.\n *\n * @type {Code}\n */\n let expectedCode;\n if (initialize.resolveAll) {\n resolveAllConstructs.push(initialize);\n }\n return context;\n\n /** @type {TokenizeContext['write']} */\n function write(slice) {\n chunks = push(chunks, slice);\n main();\n\n // Exit if we’re not done, resolve might change stuff.\n if (chunks[chunks.length - 1] !== null) {\n return [];\n }\n addResult(initialize, 0);\n\n // Otherwise, resolve, and exit.\n context.events = resolveAll(resolveAllConstructs, context.events, context);\n return context.events;\n }\n\n //\n // Tools.\n //\n\n /** @type {TokenizeContext['sliceSerialize']} */\n function sliceSerialize(token, expandTabs) {\n return serializeChunks(sliceStream(token), expandTabs);\n }\n\n /** @type {TokenizeContext['sliceStream']} */\n function sliceStream(token) {\n return sliceChunks(chunks, token);\n }\n\n /** @type {TokenizeContext['now']} */\n function now() {\n // This is a hot path, so we clone manually instead of `Object.assign({}, point)`\n const {\n _bufferIndex,\n _index,\n line,\n column,\n offset\n } = point;\n return {\n _bufferIndex,\n _index,\n line,\n column,\n offset\n };\n }\n\n /** @type {TokenizeContext['defineSkip']} */\n function defineSkip(value) {\n columnStart[value.line] = value.column;\n accountForPotentialSkip();\n }\n\n //\n // State management.\n //\n\n /**\n * Main loop (note that `_index` and `_bufferIndex` in `point` are modified by\n * `consume`).\n * Here is where we walk through the chunks, which either include strings of\n * several characters, or numerical character codes.\n * The reason to do this in a loop instead of a call is so the stack can\n * drain.\n *\n * @returns {undefined}\n * Nothing.\n */\n function main() {\n /** @type {number} */\n let chunkIndex;\n while (point._index < chunks.length) {\n const chunk = chunks[point._index];\n\n // If we’re in a buffer chunk, loop through it.\n if (typeof chunk === 'string') {\n chunkIndex = point._index;\n if (point._bufferIndex < 0) {\n point._bufferIndex = 0;\n }\n while (point._index === chunkIndex && point._bufferIndex < chunk.length) {\n go(chunk.charCodeAt(point._bufferIndex));\n }\n } else {\n go(chunk);\n }\n }\n }\n\n /**\n * Deal with one code.\n *\n * @param {Code} code\n * Code.\n * @returns {undefined}\n * Nothing.\n */\n function go(code) {\n consumed = undefined;\n expectedCode = code;\n state = state(code);\n }\n\n /** @type {Effects['consume']} */\n function consume(code) {\n if (markdownLineEnding(code)) {\n point.line++;\n point.column = 1;\n point.offset += code === -3 ? 2 : 1;\n accountForPotentialSkip();\n } else if (code !== -1) {\n point.column++;\n point.offset++;\n }\n\n // Not in a string chunk.\n if (point._bufferIndex < 0) {\n point._index++;\n } else {\n point._bufferIndex++;\n\n // At end of string chunk.\n if (point._bufferIndex ===\n // Points w/ non-negative `_bufferIndex` reference\n // strings.\n /** @type {string} */\n chunks[point._index].length) {\n point._bufferIndex = -1;\n point._index++;\n }\n }\n\n // Expose the previous character.\n context.previous = code;\n\n // Mark as consumed.\n consumed = true;\n }\n\n /** @type {Effects['enter']} */\n function enter(type, fields) {\n /** @type {Token} */\n // @ts-expect-error Patch instead of assign required fields to help GC.\n const token = fields || {};\n token.type = type;\n token.start = now();\n context.events.push(['enter', token, context]);\n stack.push(token);\n return token;\n }\n\n /** @type {Effects['exit']} */\n function exit(type) {\n const token = stack.pop();\n token.end = now();\n context.events.push(['exit', token, context]);\n return token;\n }\n\n /**\n * Use results.\n *\n * @type {ReturnHandle}\n */\n function onsuccessfulconstruct(construct, info) {\n addResult(construct, info.from);\n }\n\n /**\n * Discard results.\n *\n * @type {ReturnHandle}\n */\n function onsuccessfulcheck(_, info) {\n info.restore();\n }\n\n /**\n * Factory to attempt/check/interrupt.\n *\n * @param {ReturnHandle} onreturn\n * Callback.\n * @param {{interrupt?: boolean | undefined} | undefined} [fields]\n * Fields.\n */\n function constructFactory(onreturn, fields) {\n return hook;\n\n /**\n * Handle either an object mapping codes to constructs, a list of\n * constructs, or a single construct.\n *\n * @param {Array | ConstructRecord | Construct} constructs\n * Constructs.\n * @param {State} returnState\n * State.\n * @param {State | undefined} [bogusState]\n * State.\n * @returns {State}\n * State.\n */\n function hook(constructs, returnState, bogusState) {\n /** @type {ReadonlyArray} */\n let listOfConstructs;\n /** @type {number} */\n let constructIndex;\n /** @type {Construct} */\n let currentConstruct;\n /** @type {Info} */\n let info;\n return Array.isArray(constructs) ? /* c8 ignore next 1 */\n handleListOfConstructs(constructs) : 'tokenize' in constructs ?\n // Looks like a construct.\n handleListOfConstructs([(/** @type {Construct} */constructs)]) : handleMapOfConstructs(constructs);\n\n /**\n * Handle a list of construct.\n *\n * @param {ConstructRecord} map\n * Constructs.\n * @returns {State}\n * State.\n */\n function handleMapOfConstructs(map) {\n return start;\n\n /** @type {State} */\n function start(code) {\n const left = code !== null && map[code];\n const all = code !== null && map.null;\n const list = [\n // To do: add more extension tests.\n /* c8 ignore next 2 */\n ...(Array.isArray(left) ? left : left ? [left] : []), ...(Array.isArray(all) ? all : all ? [all] : [])];\n return handleListOfConstructs(list)(code);\n }\n }\n\n /**\n * Handle a list of construct.\n *\n * @param {ReadonlyArray} list\n * Constructs.\n * @returns {State}\n * State.\n */\n function handleListOfConstructs(list) {\n listOfConstructs = list;\n constructIndex = 0;\n if (list.length === 0) {\n return bogusState;\n }\n return handleConstruct(list[constructIndex]);\n }\n\n /**\n * Handle a single construct.\n *\n * @param {Construct} construct\n * Construct.\n * @returns {State}\n * State.\n */\n function handleConstruct(construct) {\n return start;\n\n /** @type {State} */\n function start(code) {\n // To do: not needed to store if there is no bogus state, probably?\n // Currently doesn’t work because `inspect` in document does a check\n // w/o a bogus, which doesn’t make sense. But it does seem to help perf\n // by not storing.\n info = store();\n currentConstruct = construct;\n if (!construct.partial) {\n context.currentConstruct = construct;\n }\n\n // Always populated by defaults.\n\n if (construct.name && context.parser.constructs.disable.null.includes(construct.name)) {\n return nok(code);\n }\n return construct.tokenize.call(\n // If we do have fields, create an object w/ `context` as its\n // prototype.\n // This allows a “live binding”, which is needed for `interrupt`.\n fields ? Object.assign(Object.create(context), fields) : context, effects, ok, nok)(code);\n }\n }\n\n /** @type {State} */\n function ok(code) {\n consumed = true;\n onreturn(currentConstruct, info);\n return returnState;\n }\n\n /** @type {State} */\n function nok(code) {\n consumed = true;\n info.restore();\n if (++constructIndex < listOfConstructs.length) {\n return handleConstruct(listOfConstructs[constructIndex]);\n }\n return bogusState;\n }\n }\n }\n\n /**\n * @param {Construct} construct\n * Construct.\n * @param {number} from\n * From.\n * @returns {undefined}\n * Nothing.\n */\n function addResult(construct, from) {\n if (construct.resolveAll && !resolveAllConstructs.includes(construct)) {\n resolveAllConstructs.push(construct);\n }\n if (construct.resolve) {\n splice(context.events, from, context.events.length - from, construct.resolve(context.events.slice(from), context));\n }\n if (construct.resolveTo) {\n context.events = construct.resolveTo(context.events, context);\n }\n }\n\n /**\n * Store state.\n *\n * @returns {Info}\n * Info.\n */\n function store() {\n const startPoint = now();\n const startPrevious = context.previous;\n const startCurrentConstruct = context.currentConstruct;\n const startEventsIndex = context.events.length;\n const startStack = Array.from(stack);\n return {\n from: startEventsIndex,\n restore\n };\n\n /**\n * Restore state.\n *\n * @returns {undefined}\n * Nothing.\n */\n function restore() {\n point = startPoint;\n context.previous = startPrevious;\n context.currentConstruct = startCurrentConstruct;\n context.events.length = startEventsIndex;\n stack = startStack;\n accountForPotentialSkip();\n }\n }\n\n /**\n * Move the current point a bit forward in the line when it’s on a column\n * skip.\n *\n * @returns {undefined}\n * Nothing.\n */\n function accountForPotentialSkip() {\n if (point.line in columnStart && point.column < 2) {\n point.column = columnStart[point.line];\n point.offset += columnStart[point.line] - 1;\n }\n }\n}\n\n/**\n * Get the chunks from a slice of chunks in the range of a token.\n *\n * @param {ReadonlyArray} chunks\n * Chunks.\n * @param {Pick} token\n * Token.\n * @returns {Array}\n * Chunks.\n */\nfunction sliceChunks(chunks, token) {\n const startIndex = token.start._index;\n const startBufferIndex = token.start._bufferIndex;\n const endIndex = token.end._index;\n const endBufferIndex = token.end._bufferIndex;\n /** @type {Array} */\n let view;\n if (startIndex === endIndex) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)];\n } else {\n view = chunks.slice(startIndex, endIndex);\n if (startBufferIndex > -1) {\n const head = view[0];\n if (typeof head === 'string') {\n view[0] = head.slice(startBufferIndex);\n /* c8 ignore next 4 -- used to be used, no longer */\n } else {\n view.shift();\n }\n }\n if (endBufferIndex > 0) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view.push(chunks[endIndex].slice(0, endBufferIndex));\n }\n }\n return view;\n}\n\n/**\n * Get the string value of a slice of chunks.\n *\n * @param {ReadonlyArray} chunks\n * Chunks.\n * @param {boolean | undefined} [expandTabs=false]\n * Whether to expand tabs (default: `false`).\n * @returns {string}\n * Result.\n */\nfunction serializeChunks(chunks, expandTabs) {\n let index = -1;\n /** @type {Array} */\n const result = [];\n /** @type {boolean | undefined} */\n let atTab;\n while (++index < chunks.length) {\n const chunk = chunks[index];\n /** @type {string} */\n let value;\n if (typeof chunk === 'string') {\n value = chunk;\n } else switch (chunk) {\n case -5:\n {\n value = \"\\r\";\n break;\n }\n case -4:\n {\n value = \"\\n\";\n break;\n }\n case -3:\n {\n value = \"\\r\" + \"\\n\";\n break;\n }\n case -2:\n {\n value = expandTabs ? \" \" : \"\\t\";\n break;\n }\n case -1:\n {\n if (!expandTabs && atTab) continue;\n value = \" \";\n break;\n }\n default:\n {\n // Currently only replacement character.\n value = String.fromCharCode(chunk);\n }\n }\n atTab = chunk === -2;\n result.push(value);\n }\n return result.join('');\n}","/**\n * @import {\n * Create,\n * FullNormalizedExtension,\n * InitialConstruct,\n * ParseContext,\n * ParseOptions\n * } from 'micromark-util-types'\n */\n\nimport { combineExtensions } from 'micromark-util-combine-extensions';\nimport { content } from './initialize/content.js';\nimport { document } from './initialize/document.js';\nimport { flow } from './initialize/flow.js';\nimport { string, text } from './initialize/text.js';\nimport * as defaultConstructs from './constructs.js';\nimport { createTokenizer } from './create-tokenizer.js';\n\n/**\n * @param {ParseOptions | null | undefined} [options]\n * Configuration (optional).\n * @returns {ParseContext}\n * Parser.\n */\nexport function parse(options) {\n const settings = options || {};\n const constructs = /** @type {FullNormalizedExtension} */\n combineExtensions([defaultConstructs, ...(settings.extensions || [])]);\n\n /** @type {ParseContext} */\n const parser = {\n constructs,\n content: create(content),\n defined: [],\n document: create(document),\n flow: create(flow),\n lazy: {},\n string: create(string),\n text: create(text)\n };\n return parser;\n\n /**\n * @param {InitialConstruct} initial\n * Construct to start with.\n * @returns {Create}\n * Create a tokenizer.\n */\n function create(initial) {\n return creator;\n /** @type {Create} */\n function creator(from) {\n return createTokenizer(parser, initial, from);\n }\n }\n}","/**\n * @import {Chunk, Code, Encoding, Value} from 'micromark-util-types'\n */\n\n/**\n * @callback Preprocessor\n * Preprocess a value.\n * @param {Value} value\n * Value.\n * @param {Encoding | null | undefined} [encoding]\n * Encoding when `value` is a typed array (optional).\n * @param {boolean | null | undefined} [end=false]\n * Whether this is the last chunk (default: `false`).\n * @returns {Array}\n * Chunks.\n */\n\nconst search = /[\\0\\t\\n\\r]/g;\n\n/**\n * @returns {Preprocessor}\n * Preprocess a value.\n */\nexport function preprocess() {\n let column = 1;\n let buffer = '';\n /** @type {boolean | undefined} */\n let start = true;\n /** @type {boolean | undefined} */\n let atCarriageReturn;\n return preprocessor;\n\n /** @type {Preprocessor} */\n // eslint-disable-next-line complexity\n function preprocessor(value, encoding, end) {\n /** @type {Array} */\n const chunks = [];\n /** @type {RegExpMatchArray | null} */\n let match;\n /** @type {number} */\n let next;\n /** @type {number} */\n let startPosition;\n /** @type {number} */\n let endPosition;\n /** @type {Code} */\n let code;\n value = buffer + (typeof value === 'string' ? value.toString() : new TextDecoder(encoding || undefined).decode(value));\n startPosition = 0;\n buffer = '';\n if (start) {\n // To do: `markdown-rs` actually parses BOMs (byte order mark).\n if (value.charCodeAt(0) === 65279) {\n startPosition++;\n }\n start = undefined;\n }\n while (startPosition < value.length) {\n search.lastIndex = startPosition;\n match = search.exec(value);\n endPosition = match && match.index !== undefined ? match.index : value.length;\n code = value.charCodeAt(endPosition);\n if (!match) {\n buffer = value.slice(startPosition);\n break;\n }\n if (code === 10 && startPosition === endPosition && atCarriageReturn) {\n chunks.push(-3);\n atCarriageReturn = undefined;\n } else {\n if (atCarriageReturn) {\n chunks.push(-5);\n atCarriageReturn = undefined;\n }\n if (startPosition < endPosition) {\n chunks.push(value.slice(startPosition, endPosition));\n column += endPosition - startPosition;\n }\n switch (code) {\n case 0:\n {\n chunks.push(65533);\n column++;\n break;\n }\n case 9:\n {\n next = Math.ceil(column / 4) * 4;\n chunks.push(-2);\n while (column++ < next) chunks.push(-1);\n break;\n }\n case 10:\n {\n chunks.push(-4);\n column = 1;\n break;\n }\n default:\n {\n atCarriageReturn = true;\n column = 1;\n }\n }\n }\n startPosition = endPosition + 1;\n }\n if (end) {\n if (atCarriageReturn) chunks.push(-5);\n if (buffer) chunks.push(buffer);\n chunks.push(null);\n }\n return chunks;\n }\n}","import { decodeNamedCharacterReference } from 'decode-named-character-reference';\nimport { decodeNumericCharacterReference } from 'micromark-util-decode-numeric-character-reference';\nconst characterEscapeOrReference = /\\\\([!-/:-@[-`{-~])|&(#(?:\\d{1,7}|x[\\da-f]{1,6})|[\\da-z]{1,31});/gi;\n\n/**\n * Decode markdown strings (which occur in places such as fenced code info\n * strings, destinations, labels, and titles).\n *\n * The “string” content type allows character escapes and -references.\n * This decodes those.\n *\n * @param {string} value\n * Value to decode.\n * @returns {string}\n * Decoded value.\n */\nexport function decodeString(value) {\n return value.replace(characterEscapeOrReference, decode);\n}\n\n/**\n * @param {string} $0\n * Match.\n * @param {string} $1\n * Character escape.\n * @param {string} $2\n * Character reference.\n * @returns {string}\n * Decoded value\n */\nfunction decode($0, $1, $2) {\n if ($1) {\n // Escape.\n return $1;\n }\n\n // Reference.\n const head = $2.charCodeAt(0);\n if (head === 35) {\n const head = $2.charCodeAt(1);\n const hex = head === 120 || head === 88;\n return decodeNumericCharacterReference($2.slice(hex ? 2 : 1), hex ? 16 : 10);\n }\n return decodeNamedCharacterReference($2) || $0;\n}","/**\n * @import {\n * Break,\n * Blockquote,\n * Code,\n * Definition,\n * Emphasis,\n * Heading,\n * Html,\n * Image,\n * InlineCode,\n * Link,\n * ListItem,\n * List,\n * Nodes,\n * Paragraph,\n * PhrasingContent,\n * ReferenceType,\n * Root,\n * Strong,\n * Text,\n * ThematicBreak\n * } from 'mdast'\n * @import {\n * Encoding,\n * Event,\n * Token,\n * Value\n * } from 'micromark-util-types'\n * @import {Point} from 'unist'\n * @import {\n * CompileContext,\n * CompileData,\n * Config,\n * Extension,\n * Handle,\n * OnEnterError,\n * Options\n * } from './types.js'\n */\n\nimport { toString } from 'mdast-util-to-string';\nimport { parse, postprocess, preprocess } from 'micromark';\nimport { decodeNumericCharacterReference } from 'micromark-util-decode-numeric-character-reference';\nimport { decodeString } from 'micromark-util-decode-string';\nimport { normalizeIdentifier } from 'micromark-util-normalize-identifier';\nimport { decodeNamedCharacterReference } from 'decode-named-character-reference';\nimport { stringifyPosition } from 'unist-util-stringify-position';\nconst own = {}.hasOwnProperty;\n\n/**\n * Turn markdown into a syntax tree.\n *\n * @overload\n * @param {Value} value\n * @param {Encoding | null | undefined} [encoding]\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n *\n * @overload\n * @param {Value} value\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n *\n * @param {Value} value\n * Markdown to parse.\n * @param {Encoding | Options | null | undefined} [encoding]\n * Character encoding for when `value` is `Buffer`.\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {Root}\n * mdast tree.\n */\nexport function fromMarkdown(value, encoding, options) {\n if (typeof encoding !== 'string') {\n options = encoding;\n encoding = undefined;\n }\n return compiler(options)(postprocess(parse(options).document().write(preprocess()(value, encoding, true))));\n}\n\n/**\n * Note this compiler only understand complete buffering, not streaming.\n *\n * @param {Options | null | undefined} [options]\n */\nfunction compiler(options) {\n /** @type {Config} */\n const config = {\n transforms: [],\n canContainEols: ['emphasis', 'fragment', 'heading', 'paragraph', 'strong'],\n enter: {\n autolink: opener(link),\n autolinkProtocol: onenterdata,\n autolinkEmail: onenterdata,\n atxHeading: opener(heading),\n blockQuote: opener(blockQuote),\n characterEscape: onenterdata,\n characterReference: onenterdata,\n codeFenced: opener(codeFlow),\n codeFencedFenceInfo: buffer,\n codeFencedFenceMeta: buffer,\n codeIndented: opener(codeFlow, buffer),\n codeText: opener(codeText, buffer),\n codeTextData: onenterdata,\n data: onenterdata,\n codeFlowValue: onenterdata,\n definition: opener(definition),\n definitionDestinationString: buffer,\n definitionLabelString: buffer,\n definitionTitleString: buffer,\n emphasis: opener(emphasis),\n hardBreakEscape: opener(hardBreak),\n hardBreakTrailing: opener(hardBreak),\n htmlFlow: opener(html, buffer),\n htmlFlowData: onenterdata,\n htmlText: opener(html, buffer),\n htmlTextData: onenterdata,\n image: opener(image),\n label: buffer,\n link: opener(link),\n listItem: opener(listItem),\n listItemValue: onenterlistitemvalue,\n listOrdered: opener(list, onenterlistordered),\n listUnordered: opener(list),\n paragraph: opener(paragraph),\n reference: onenterreference,\n referenceString: buffer,\n resourceDestinationString: buffer,\n resourceTitleString: buffer,\n setextHeading: opener(heading),\n strong: opener(strong),\n thematicBreak: opener(thematicBreak)\n },\n exit: {\n atxHeading: closer(),\n atxHeadingSequence: onexitatxheadingsequence,\n autolink: closer(),\n autolinkEmail: onexitautolinkemail,\n autolinkProtocol: onexitautolinkprotocol,\n blockQuote: closer(),\n characterEscapeValue: onexitdata,\n characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,\n characterReferenceMarkerNumeric: onexitcharacterreferencemarker,\n characterReferenceValue: onexitcharacterreferencevalue,\n characterReference: onexitcharacterreference,\n codeFenced: closer(onexitcodefenced),\n codeFencedFence: onexitcodefencedfence,\n codeFencedFenceInfo: onexitcodefencedfenceinfo,\n codeFencedFenceMeta: onexitcodefencedfencemeta,\n codeFlowValue: onexitdata,\n codeIndented: closer(onexitcodeindented),\n codeText: closer(onexitcodetext),\n codeTextData: onexitdata,\n data: onexitdata,\n definition: closer(),\n definitionDestinationString: onexitdefinitiondestinationstring,\n definitionLabelString: onexitdefinitionlabelstring,\n definitionTitleString: onexitdefinitiontitlestring,\n emphasis: closer(),\n hardBreakEscape: closer(onexithardbreak),\n hardBreakTrailing: closer(onexithardbreak),\n htmlFlow: closer(onexithtmlflow),\n htmlFlowData: onexitdata,\n htmlText: closer(onexithtmltext),\n htmlTextData: onexitdata,\n image: closer(onexitimage),\n label: onexitlabel,\n labelText: onexitlabeltext,\n lineEnding: onexitlineending,\n link: closer(onexitlink),\n listItem: closer(),\n listOrdered: closer(),\n listUnordered: closer(),\n paragraph: closer(),\n referenceString: onexitreferencestring,\n resourceDestinationString: onexitresourcedestinationstring,\n resourceTitleString: onexitresourcetitlestring,\n resource: onexitresource,\n setextHeading: closer(onexitsetextheading),\n setextHeadingLineSequence: onexitsetextheadinglinesequence,\n setextHeadingText: onexitsetextheadingtext,\n strong: closer(),\n thematicBreak: closer()\n }\n };\n configure(config, (options || {}).mdastExtensions || []);\n\n /** @type {CompileData} */\n const data = {};\n return compile;\n\n /**\n * Turn micromark events into an mdast tree.\n *\n * @param {Array} events\n * Events.\n * @returns {Root}\n * mdast tree.\n */\n function compile(events) {\n /** @type {Root} */\n let tree = {\n type: 'root',\n children: []\n };\n /** @type {Omit} */\n const context = {\n stack: [tree],\n tokenStack: [],\n config,\n enter,\n exit,\n buffer,\n resume,\n data\n };\n /** @type {Array} */\n const listStack = [];\n let index = -1;\n while (++index < events.length) {\n // We preprocess lists to add `listItem` tokens, and to infer whether\n // items the list itself are spread out.\n if (events[index][1].type === \"listOrdered\" || events[index][1].type === \"listUnordered\") {\n if (events[index][0] === 'enter') {\n listStack.push(index);\n } else {\n const tail = listStack.pop();\n index = prepareList(events, tail, index);\n }\n }\n }\n index = -1;\n while (++index < events.length) {\n const handler = config[events[index][0]];\n if (own.call(handler, events[index][1].type)) {\n handler[events[index][1].type].call(Object.assign({\n sliceSerialize: events[index][2].sliceSerialize\n }, context), events[index][1]);\n }\n }\n\n // Handle tokens still being open.\n if (context.tokenStack.length > 0) {\n const tail = context.tokenStack[context.tokenStack.length - 1];\n const handler = tail[1] || defaultOnError;\n handler.call(context, undefined, tail[0]);\n }\n\n // Figure out `root` position.\n tree.position = {\n start: point(events.length > 0 ? events[0][1].start : {\n line: 1,\n column: 1,\n offset: 0\n }),\n end: point(events.length > 0 ? events[events.length - 2][1].end : {\n line: 1,\n column: 1,\n offset: 0\n })\n };\n\n // Call transforms.\n index = -1;\n while (++index < config.transforms.length) {\n tree = config.transforms[index](tree) || tree;\n }\n return tree;\n }\n\n /**\n * @param {Array} events\n * @param {number} start\n * @param {number} length\n * @returns {number}\n */\n function prepareList(events, start, length) {\n let index = start - 1;\n let containerBalance = -1;\n let listSpread = false;\n /** @type {Token | undefined} */\n let listItem;\n /** @type {number | undefined} */\n let lineIndex;\n /** @type {number | undefined} */\n let firstBlankLineIndex;\n /** @type {boolean | undefined} */\n let atMarker;\n while (++index <= length) {\n const event = events[index];\n switch (event[1].type) {\n case \"listUnordered\":\n case \"listOrdered\":\n case \"blockQuote\":\n {\n if (event[0] === 'enter') {\n containerBalance++;\n } else {\n containerBalance--;\n }\n atMarker = undefined;\n break;\n }\n case \"lineEndingBlank\":\n {\n if (event[0] === 'enter') {\n if (listItem && !atMarker && !containerBalance && !firstBlankLineIndex) {\n firstBlankLineIndex = index;\n }\n atMarker = undefined;\n }\n break;\n }\n case \"linePrefix\":\n case \"listItemValue\":\n case \"listItemMarker\":\n case \"listItemPrefix\":\n case \"listItemPrefixWhitespace\":\n {\n // Empty.\n\n break;\n }\n default:\n {\n atMarker = undefined;\n }\n }\n if (!containerBalance && event[0] === 'enter' && event[1].type === \"listItemPrefix\" || containerBalance === -1 && event[0] === 'exit' && (event[1].type === \"listUnordered\" || event[1].type === \"listOrdered\")) {\n if (listItem) {\n let tailIndex = index;\n lineIndex = undefined;\n while (tailIndex--) {\n const tailEvent = events[tailIndex];\n if (tailEvent[1].type === \"lineEnding\" || tailEvent[1].type === \"lineEndingBlank\") {\n if (tailEvent[0] === 'exit') continue;\n if (lineIndex) {\n events[lineIndex][1].type = \"lineEndingBlank\";\n listSpread = true;\n }\n tailEvent[1].type = \"lineEnding\";\n lineIndex = tailIndex;\n } else if (tailEvent[1].type === \"linePrefix\" || tailEvent[1].type === \"blockQuotePrefix\" || tailEvent[1].type === \"blockQuotePrefixWhitespace\" || tailEvent[1].type === \"blockQuoteMarker\" || tailEvent[1].type === \"listItemIndent\") {\n // Empty\n } else {\n break;\n }\n }\n if (firstBlankLineIndex && (!lineIndex || firstBlankLineIndex < lineIndex)) {\n listItem._spread = true;\n }\n\n // Fix position.\n listItem.end = Object.assign({}, lineIndex ? events[lineIndex][1].start : event[1].end);\n events.splice(lineIndex || index, 0, ['exit', listItem, event[2]]);\n index++;\n length++;\n }\n\n // Create a new list item.\n if (event[1].type === \"listItemPrefix\") {\n /** @type {Token} */\n const item = {\n type: 'listItem',\n _spread: false,\n start: Object.assign({}, event[1].start),\n // @ts-expect-error: we’ll add `end` in a second.\n end: undefined\n };\n listItem = item;\n events.splice(index, 0, ['enter', item, event[2]]);\n index++;\n length++;\n firstBlankLineIndex = undefined;\n atMarker = true;\n }\n }\n }\n events[start][1]._spread = listSpread;\n return length;\n }\n\n /**\n * Create an opener handle.\n *\n * @param {(token: Token) => Nodes} create\n * Create a node.\n * @param {Handle | undefined} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function opener(create, and) {\n return open;\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {undefined}\n */\n function open(token) {\n enter.call(this, create(token), token);\n if (and) and.call(this, token);\n }\n }\n\n /**\n * @type {CompileContext['buffer']}\n */\n function buffer() {\n this.stack.push({\n type: 'fragment',\n children: []\n });\n }\n\n /**\n * @type {CompileContext['enter']}\n */\n function enter(node, token, errorHandler) {\n const parent = this.stack[this.stack.length - 1];\n /** @type {Array} */\n const siblings = parent.children;\n siblings.push(node);\n this.stack.push(node);\n this.tokenStack.push([token, errorHandler || undefined]);\n node.position = {\n start: point(token.start),\n // @ts-expect-error: `end` will be patched later.\n end: undefined\n };\n }\n\n /**\n * Create a closer handle.\n *\n * @param {Handle | undefined} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function closer(and) {\n return close;\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {undefined}\n */\n function close(token) {\n if (and) and.call(this, token);\n exit.call(this, token);\n }\n }\n\n /**\n * @type {CompileContext['exit']}\n */\n function exit(token, onExitError) {\n const node = this.stack.pop();\n const open = this.tokenStack.pop();\n if (!open) {\n throw new Error('Cannot close `' + token.type + '` (' + stringifyPosition({\n start: token.start,\n end: token.end\n }) + '): it’s not open');\n } else if (open[0].type !== token.type) {\n if (onExitError) {\n onExitError.call(this, token, open[0]);\n } else {\n const handler = open[1] || defaultOnError;\n handler.call(this, token, open[0]);\n }\n }\n node.position.end = point(token.end);\n }\n\n /**\n * @type {CompileContext['resume']}\n */\n function resume() {\n return toString(this.stack.pop());\n }\n\n //\n // Handlers.\n //\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistordered() {\n this.data.expectingFirstListItemValue = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistitemvalue(token) {\n if (this.data.expectingFirstListItemValue) {\n const ancestor = this.stack[this.stack.length - 2];\n ancestor.start = Number.parseInt(this.sliceSerialize(token), 10);\n this.data.expectingFirstListItemValue = undefined;\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfenceinfo() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.lang = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfencemeta() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.meta = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfence() {\n // Exit if this is the closing fence.\n if (this.data.flowCodeInside) return;\n this.buffer();\n this.data.flowCodeInside = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefenced() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data.replace(/^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g, '');\n this.data.flowCodeInside = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodeindented() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data.replace(/(\\r?\\n|\\r)$/g, '');\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitionlabelstring(token) {\n const label = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.label = label;\n node.identifier = normalizeIdentifier(this.sliceSerialize(token)).toLowerCase();\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiontitlestring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.title = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiondestinationstring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.url = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitatxheadingsequence(token) {\n const node = this.stack[this.stack.length - 1];\n if (!node.depth) {\n const depth = this.sliceSerialize(token).length;\n node.depth = depth;\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadingtext() {\n this.data.setextHeadingSlurpLineEnding = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadinglinesequence(token) {\n const node = this.stack[this.stack.length - 1];\n node.depth = this.sliceSerialize(token).codePointAt(0) === 61 ? 1 : 2;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheading() {\n this.data.setextHeadingSlurpLineEnding = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterdata(token) {\n const node = this.stack[this.stack.length - 1];\n /** @type {Array} */\n const siblings = node.children;\n let tail = siblings[siblings.length - 1];\n if (!tail || tail.type !== 'text') {\n // Add a new text node.\n tail = text();\n tail.position = {\n start: point(token.start),\n // @ts-expect-error: we’ll add `end` later.\n end: undefined\n };\n siblings.push(tail);\n }\n this.stack.push(tail);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitdata(token) {\n const tail = this.stack.pop();\n tail.value += this.sliceSerialize(token);\n tail.position.end = point(token.end);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlineending(token) {\n const context = this.stack[this.stack.length - 1];\n // If we’re at a hard break, include the line ending in there.\n if (this.data.atHardBreak) {\n const tail = context.children[context.children.length - 1];\n tail.position.end = point(token.end);\n this.data.atHardBreak = undefined;\n return;\n }\n if (!this.data.setextHeadingSlurpLineEnding && config.canContainEols.includes(context.type)) {\n onenterdata.call(this, token);\n onexitdata.call(this, token);\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithardbreak() {\n this.data.atHardBreak = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmlflow() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmltext() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcodetext() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlink() {\n const node = this.stack[this.stack.length - 1];\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n\n // To do: clean.\n if (this.data.inReference) {\n /** @type {ReferenceType} */\n const referenceType = this.data.referenceType || 'shortcut';\n node.type += 'Reference';\n // @ts-expect-error: mutate.\n node.referenceType = referenceType;\n // @ts-expect-error: mutate.\n delete node.url;\n delete node.title;\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier;\n // @ts-expect-error: mutate.\n delete node.label;\n }\n this.data.referenceType = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitimage() {\n const node = this.stack[this.stack.length - 1];\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n\n // To do: clean.\n if (this.data.inReference) {\n /** @type {ReferenceType} */\n const referenceType = this.data.referenceType || 'shortcut';\n node.type += 'Reference';\n // @ts-expect-error: mutate.\n node.referenceType = referenceType;\n // @ts-expect-error: mutate.\n delete node.url;\n delete node.title;\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier;\n // @ts-expect-error: mutate.\n delete node.label;\n }\n this.data.referenceType = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabeltext(token) {\n const string = this.sliceSerialize(token);\n const ancestor = this.stack[this.stack.length - 2];\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n ancestor.label = decodeString(string);\n // @ts-expect-error: same as above.\n ancestor.identifier = normalizeIdentifier(string).toLowerCase();\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabel() {\n const fragment = this.stack[this.stack.length - 1];\n const value = this.resume();\n const node = this.stack[this.stack.length - 1];\n // Assume a reference.\n this.data.inReference = true;\n if (node.type === 'link') {\n /** @type {Array} */\n const children = fragment.children;\n node.children = children;\n } else {\n node.alt = value;\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcedestinationstring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.url = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcetitlestring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.title = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresource() {\n this.data.inReference = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterreference() {\n this.data.referenceType = 'collapsed';\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitreferencestring(token) {\n const label = this.resume();\n const node = this.stack[this.stack.length - 1];\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n node.label = label;\n // @ts-expect-error: same as above.\n node.identifier = normalizeIdentifier(this.sliceSerialize(token)).toLowerCase();\n this.data.referenceType = 'full';\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcharacterreferencemarker(token) {\n this.data.characterReferenceType = token.type;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcharacterreferencevalue(token) {\n const data = this.sliceSerialize(token);\n const type = this.data.characterReferenceType;\n /** @type {string} */\n let value;\n if (type) {\n value = decodeNumericCharacterReference(data, type === \"characterReferenceMarkerNumeric\" ? 10 : 16);\n this.data.characterReferenceType = undefined;\n } else {\n const result = decodeNamedCharacterReference(data);\n value = result;\n }\n const tail = this.stack[this.stack.length - 1];\n tail.value += value;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcharacterreference(token) {\n const tail = this.stack.pop();\n tail.position.end = point(token.end);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkprotocol(token) {\n onexitdata.call(this, token);\n const node = this.stack[this.stack.length - 1];\n node.url = this.sliceSerialize(token);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkemail(token) {\n onexitdata.call(this, token);\n const node = this.stack[this.stack.length - 1];\n node.url = 'mailto:' + this.sliceSerialize(token);\n }\n\n //\n // Creaters.\n //\n\n /** @returns {Blockquote} */\n function blockQuote() {\n return {\n type: 'blockquote',\n children: []\n };\n }\n\n /** @returns {Code} */\n function codeFlow() {\n return {\n type: 'code',\n lang: null,\n meta: null,\n value: ''\n };\n }\n\n /** @returns {InlineCode} */\n function codeText() {\n return {\n type: 'inlineCode',\n value: ''\n };\n }\n\n /** @returns {Definition} */\n function definition() {\n return {\n type: 'definition',\n identifier: '',\n label: null,\n title: null,\n url: ''\n };\n }\n\n /** @returns {Emphasis} */\n function emphasis() {\n return {\n type: 'emphasis',\n children: []\n };\n }\n\n /** @returns {Heading} */\n function heading() {\n return {\n type: 'heading',\n // @ts-expect-error `depth` will be set later.\n depth: 0,\n children: []\n };\n }\n\n /** @returns {Break} */\n function hardBreak() {\n return {\n type: 'break'\n };\n }\n\n /** @returns {Html} */\n function html() {\n return {\n type: 'html',\n value: ''\n };\n }\n\n /** @returns {Image} */\n function image() {\n return {\n type: 'image',\n title: null,\n url: '',\n alt: null\n };\n }\n\n /** @returns {Link} */\n function link() {\n return {\n type: 'link',\n title: null,\n url: '',\n children: []\n };\n }\n\n /**\n * @param {Token} token\n * @returns {List}\n */\n function list(token) {\n return {\n type: 'list',\n ordered: token.type === 'listOrdered',\n start: null,\n spread: token._spread,\n children: []\n };\n }\n\n /**\n * @param {Token} token\n * @returns {ListItem}\n */\n function listItem(token) {\n return {\n type: 'listItem',\n spread: token._spread,\n checked: null,\n children: []\n };\n }\n\n /** @returns {Paragraph} */\n function paragraph() {\n return {\n type: 'paragraph',\n children: []\n };\n }\n\n /** @returns {Strong} */\n function strong() {\n return {\n type: 'strong',\n children: []\n };\n }\n\n /** @returns {Text} */\n function text() {\n return {\n type: 'text',\n value: ''\n };\n }\n\n /** @returns {ThematicBreak} */\n function thematicBreak() {\n return {\n type: 'thematicBreak'\n };\n }\n}\n\n/**\n * Copy a point-like value.\n *\n * @param {Point} d\n * Point-like value.\n * @returns {Point}\n * unist point.\n */\nfunction point(d) {\n return {\n line: d.line,\n column: d.column,\n offset: d.offset\n };\n}\n\n/**\n * @param {Config} combined\n * @param {Array | Extension>} extensions\n * @returns {undefined}\n */\nfunction configure(combined, extensions) {\n let index = -1;\n while (++index < extensions.length) {\n const value = extensions[index];\n if (Array.isArray(value)) {\n configure(combined, value);\n } else {\n extension(combined, value);\n }\n }\n}\n\n/**\n * @param {Config} combined\n * @param {Extension} extension\n * @returns {undefined}\n */\nfunction extension(combined, extension) {\n /** @type {keyof Extension} */\n let key;\n for (key in extension) {\n if (own.call(extension, key)) {\n switch (key) {\n case 'canContainEols':\n {\n const right = extension[key];\n if (right) {\n combined[key].push(...right);\n }\n break;\n }\n case 'transforms':\n {\n const right = extension[key];\n if (right) {\n combined[key].push(...right);\n }\n break;\n }\n case 'enter':\n case 'exit':\n {\n const right = extension[key];\n if (right) {\n Object.assign(combined[key], right);\n }\n break;\n }\n // No default\n }\n }\n }\n}\n\n/** @type {OnEnterError} */\nfunction defaultOnError(left, right) {\n if (left) {\n throw new Error('Cannot close `' + left.type + '` (' + stringifyPosition({\n start: left.start,\n end: left.end\n }) + '): a different token (`' + right.type + '`, ' + stringifyPosition({\n start: right.start,\n end: right.end\n }) + ') is open');\n } else {\n throw new Error('Cannot close document, a token (`' + right.type + '`, ' + stringifyPosition({\n start: right.start,\n end: right.end\n }) + ') is still open');\n }\n}","/**\n * @import {Event} from 'micromark-util-types'\n */\n\nimport { subtokenize } from 'micromark-util-subtokenize';\n\n/**\n * @param {Array} events\n * Events.\n * @returns {Array}\n * Events.\n */\nexport function postprocess(events) {\n while (!subtokenize(events)) {\n // Empty\n }\n return events;\n}","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast-util-from-markdown').Options} FromMarkdownOptions\n * @typedef {import('unified').Parser} Parser\n * @typedef {import('unified').Processor} Processor\n */\n\n/**\n * @typedef {Omit} Options\n */\n\nimport {fromMarkdown} from 'mdast-util-from-markdown'\n\n/**\n * Aadd support for parsing from markdown.\n *\n * @param {Readonly | null | undefined} [options]\n * Configuration (optional).\n * @returns {undefined}\n * Nothing.\n */\nexport default function remarkParse(options) {\n /** @type {Processor} */\n // @ts-expect-error: TS in JSDoc generates wrong types if `this` is typed regularly.\n const self = this\n\n self.parser = parser\n\n /**\n * @type {Parser}\n */\n function parser(doc) {\n return fromMarkdown(doc, {\n ...self.data('settings'),\n ...options,\n // Note: these options are not in the readme.\n // The goal is for them to be set by plugins on `data` instead of being\n // passed by users.\n extensions: self.data('micromarkExtensions') || [],\n mdastExtensions: self.data('fromMarkdownExtensions') || []\n })\n }\n}\n","/**\n * @typedef {import('hast').ElementContent} ElementContent\n *\n * @typedef {import('mdast').Nodes} Nodes\n * @typedef {import('mdast').Reference} Reference\n *\n * @typedef {import('./state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Return the content of a reference without definition as plain text.\n *\n * @param {State} state\n * Info passed around.\n * @param {Extract} node\n * Reference node (image, link).\n * @returns {Array}\n * hast content.\n */\nexport function revert(state, node) {\n const subtype = node.referenceType\n let suffix = ']'\n\n if (subtype === 'collapsed') {\n suffix += '[]'\n } else if (subtype === 'full') {\n suffix += '[' + (node.label || node.identifier) + ']'\n }\n\n if (node.type === 'imageReference') {\n return [{type: 'text', value: '![' + node.alt + suffix}]\n }\n\n const contents = state.all(node)\n const head = contents[0]\n\n if (head && head.type === 'text') {\n head.value = '[' + head.value\n } else {\n contents.unshift({type: 'text', value: '['})\n }\n\n const tail = contents[contents.length - 1]\n\n if (tail && tail.type === 'text') {\n tail.value += suffix\n } else {\n contents.push({type: 'text', value: suffix})\n }\n\n return contents\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `listItem` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {ListItem} node\n * mdast node.\n * @param {Parents | undefined} parent\n * Parent of `node`.\n * @returns {Element}\n * hast node.\n */\nexport function listItem(state, node, parent) {\n const results = state.all(node)\n const loose = parent ? listLoose(parent) : listItemLoose(node)\n /** @type {Properties} */\n const properties = {}\n /** @type {Array} */\n const children = []\n\n if (typeof node.checked === 'boolean') {\n const head = results[0]\n /** @type {Element} */\n let paragraph\n\n if (head && head.type === 'element' && head.tagName === 'p') {\n paragraph = head\n } else {\n paragraph = {type: 'element', tagName: 'p', properties: {}, children: []}\n results.unshift(paragraph)\n }\n\n if (paragraph.children.length > 0) {\n paragraph.children.unshift({type: 'text', value: ' '})\n }\n\n paragraph.children.unshift({\n type: 'element',\n tagName: 'input',\n properties: {type: 'checkbox', checked: node.checked, disabled: true},\n children: []\n })\n\n // According to github-markdown-css, this class hides bullet.\n // See: .\n properties.className = ['task-list-item']\n }\n\n let index = -1\n\n while (++index < results.length) {\n const child = results[index]\n\n // Add eols before nodes, except if this is a loose, first paragraph.\n if (\n loose ||\n index !== 0 ||\n child.type !== 'element' ||\n child.tagName !== 'p'\n ) {\n children.push({type: 'text', value: '\\n'})\n }\n\n if (child.type === 'element' && child.tagName === 'p' && !loose) {\n children.push(...child.children)\n } else {\n children.push(child)\n }\n }\n\n const tail = results[results.length - 1]\n\n // Add a final eol.\n if (tail && (loose || tail.type !== 'element' || tail.tagName !== 'p')) {\n children.push({type: 'text', value: '\\n'})\n }\n\n /** @type {Element} */\n const result = {type: 'element', tagName: 'li', properties, children}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n\n/**\n * @param {Parents} node\n * @return {Boolean}\n */\nfunction listLoose(node) {\n let loose = false\n if (node.type === 'list') {\n loose = node.spread || false\n const children = node.children\n let index = -1\n\n while (!loose && ++index < children.length) {\n loose = listItemLoose(children[index])\n }\n }\n\n return loose\n}\n\n/**\n * @param {ListItem} node\n * @return {Boolean}\n */\nfunction listItemLoose(node) {\n const spread = node.spread\n\n return spread === null || spread === undefined\n ? node.children.length > 1\n : spread\n}\n","const tab = 9 /* `\\t` */\nconst space = 32 /* ` ` */\n\n/**\n * Remove initial and final spaces and tabs at the line breaks in `value`.\n * Does not trim initial and final spaces and tabs of the value itself.\n *\n * @param {string} value\n * Value to trim.\n * @returns {string}\n * Trimmed value.\n */\nexport function trimLines(value) {\n const source = String(value)\n const search = /\\r?\\n|\\r/g\n let match = search.exec(source)\n let last = 0\n /** @type {Array} */\n const lines = []\n\n while (match) {\n lines.push(\n trimLine(source.slice(last, match.index), last > 0, true),\n match[0]\n )\n\n last = match.index + match[0].length\n match = search.exec(source)\n }\n\n lines.push(trimLine(source.slice(last), last > 0, false))\n\n return lines.join('')\n}\n\n/**\n * @param {string} value\n * Line to trim.\n * @param {boolean} start\n * Whether to trim the start of the line.\n * @param {boolean} end\n * Whether to trim the end of the line.\n * @returns {string}\n * Trimmed line.\n */\nfunction trimLine(value, start, end) {\n let startIndex = 0\n let endIndex = value.length\n\n if (start) {\n let code = value.codePointAt(startIndex)\n\n while (code === tab || code === space) {\n startIndex++\n code = value.codePointAt(startIndex)\n }\n }\n\n if (end) {\n let code = value.codePointAt(endIndex - 1)\n\n while (code === tab || code === space) {\n endIndex--\n code = value.codePointAt(endIndex - 1)\n }\n }\n\n return endIndex > startIndex ? value.slice(startIndex, endIndex) : ''\n}\n","import {blockquote} from './blockquote.js'\nimport {hardBreak} from './break.js'\nimport {code} from './code.js'\nimport {strikethrough} from './delete.js'\nimport {emphasis} from './emphasis.js'\nimport {footnoteReference} from './footnote-reference.js'\nimport {heading} from './heading.js'\nimport {html} from './html.js'\nimport {imageReference} from './image-reference.js'\nimport {image} from './image.js'\nimport {inlineCode} from './inline-code.js'\nimport {linkReference} from './link-reference.js'\nimport {link} from './link.js'\nimport {listItem} from './list-item.js'\nimport {list} from './list.js'\nimport {paragraph} from './paragraph.js'\nimport {root} from './root.js'\nimport {strong} from './strong.js'\nimport {table} from './table.js'\nimport {tableRow} from './table-row.js'\nimport {tableCell} from './table-cell.js'\nimport {text} from './text.js'\nimport {thematicBreak} from './thematic-break.js'\n\n/**\n * Default handlers for nodes.\n *\n * @satisfies {import('../state.js').Handlers}\n */\nexport const handlers = {\n blockquote,\n break: hardBreak,\n code,\n delete: strikethrough,\n emphasis,\n footnoteReference,\n heading,\n html,\n imageReference,\n image,\n inlineCode,\n linkReference,\n link,\n listItem,\n list,\n paragraph,\n // @ts-expect-error: root is different, but hard to type.\n root,\n strong,\n table,\n tableCell,\n tableRow,\n text,\n thematicBreak,\n toml: ignore,\n yaml: ignore,\n definition: ignore,\n footnoteDefinition: ignore\n}\n\n// Return nothing for nodes that are ignored.\nfunction ignore() {\n return undefined\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `blockquote` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Blockquote} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function blockquote(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'blockquote',\n properties: {},\n children: state.wrap(state.all(node), true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').Break} Break\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `break` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Break} node\n * mdast node.\n * @returns {Array}\n * hast element content.\n */\nexport function hardBreak(state, node) {\n /** @type {Element} */\n const result = {type: 'element', tagName: 'br', properties: {}, children: []}\n state.patch(node, result)\n return [state.applyData(node, result), {type: 'text', value: '\\n'}]\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Code} Code\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `code` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Code} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function code(state, node) {\n const value = node.value ? node.value + '\\n' : ''\n /** @type {Properties} */\n const properties = {}\n\n if (node.lang) {\n properties.className = ['language-' + node.lang]\n }\n\n // Create ``.\n /** @type {Element} */\n let result = {\n type: 'element',\n tagName: 'code',\n properties,\n children: [{type: 'text', value}]\n }\n\n if (node.meta) {\n result.data = {meta: node.meta}\n }\n\n state.patch(node, result)\n result = state.applyData(node, result)\n\n // Create `
`.\n  result = {type: 'element', tagName: 'pre', properties: {}, children: [result]}\n  state.patch(node, result)\n  return result\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Delete} Delete\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `delete` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Delete} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function strikethrough(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'del',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `emphasis` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Emphasis} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function emphasis(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'em',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').FootnoteReference} FootnoteReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `footnoteReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {FootnoteReference} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function footnoteReference(state, node) {\n  const clobberPrefix =\n    typeof state.options.clobberPrefix === 'string'\n      ? state.options.clobberPrefix\n      : 'user-content-'\n  const id = String(node.identifier).toUpperCase()\n  const safeId = normalizeUri(id.toLowerCase())\n  const index = state.footnoteOrder.indexOf(id)\n  /** @type {number} */\n  let counter\n\n  let reuseCounter = state.footnoteCounts.get(id)\n\n  if (reuseCounter === undefined) {\n    reuseCounter = 0\n    state.footnoteOrder.push(id)\n    counter = state.footnoteOrder.length\n  } else {\n    counter = index + 1\n  }\n\n  reuseCounter += 1\n  state.footnoteCounts.set(id, reuseCounter)\n\n  /** @type {Element} */\n  const link = {\n    type: 'element',\n    tagName: 'a',\n    properties: {\n      href: '#' + clobberPrefix + 'fn-' + safeId,\n      id:\n        clobberPrefix +\n        'fnref-' +\n        safeId +\n        (reuseCounter > 1 ? '-' + reuseCounter : ''),\n      dataFootnoteRef: true,\n      ariaDescribedBy: ['footnote-label']\n    },\n    children: [{type: 'text', value: String(counter)}]\n  }\n  state.patch(node, link)\n\n  /** @type {Element} */\n  const sup = {\n    type: 'element',\n    tagName: 'sup',\n    properties: {},\n    children: [link]\n  }\n  state.patch(node, sup)\n  return state.applyData(node, sup)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `heading` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Heading} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function heading(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'h' + node.depth,\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Html} Html\n * @typedef {import('../state.js').State} State\n * @typedef {import('../../index.js').Raw} Raw\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `html` node into hast (`raw` node in dangerous mode, otherwise\n * nothing).\n *\n * @param {State} state\n *   Info passed around.\n * @param {Html} node\n *   mdast node.\n * @returns {Element | Raw | undefined}\n *   hast node.\n */\nexport function html(state, node) {\n  if (state.options.allowDangerousHtml) {\n    /** @type {Raw} */\n    const result = {type: 'raw', value: node.value}\n    state.patch(node, result)\n    return state.applyData(node, result)\n  }\n\n  return undefined\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `imageReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ImageReference} node\n *   mdast node.\n * @returns {Array | ElementContent}\n *   hast node.\n */\nexport function imageReference(state, node) {\n  const id = String(node.identifier).toUpperCase()\n  const definition = state.definitionById.get(id)\n\n  if (!definition) {\n    return revert(state, node)\n  }\n\n  /** @type {Properties} */\n  const properties = {src: normalizeUri(definition.url || ''), alt: node.alt}\n\n  if (definition.title !== null && definition.title !== undefined) {\n    properties.title = definition.title\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'img', properties, children: []}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Image} Image\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `image` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Image} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function image(state, node) {\n  /** @type {Properties} */\n  const properties = {src: normalizeUri(node.url)}\n\n  if (node.alt !== null && node.alt !== undefined) {\n    properties.alt = node.alt\n  }\n\n  if (node.title !== null && node.title !== undefined) {\n    properties.title = node.title\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'img', properties, children: []}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `inlineCode` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {InlineCode} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function inlineCode(state, node) {\n  /** @type {Text} */\n  const text = {type: 'text', value: node.value.replace(/\\r?\\n|\\r/g, ' ')}\n  state.patch(node, text)\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'code',\n    properties: {},\n    children: [text]\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `linkReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {LinkReference} node\n *   mdast node.\n * @returns {Array | ElementContent}\n *   hast node.\n */\nexport function linkReference(state, node) {\n  const id = String(node.identifier).toUpperCase()\n  const definition = state.definitionById.get(id)\n\n  if (!definition) {\n    return revert(state, node)\n  }\n\n  /** @type {Properties} */\n  const properties = {href: normalizeUri(definition.url || '')}\n\n  if (definition.title !== null && definition.title !== undefined) {\n    properties.title = definition.title\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'a',\n    properties,\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Link} Link\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `link` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Link} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function link(state, node) {\n  /** @type {Properties} */\n  const properties = {href: normalizeUri(node.url)}\n\n  if (node.title !== null && node.title !== undefined) {\n    properties.title = node.title\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'a',\n    properties,\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').List} List\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `list` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {List} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function list(state, node) {\n  /** @type {Properties} */\n  const properties = {}\n  const results = state.all(node)\n  let index = -1\n\n  if (typeof node.start === 'number' && node.start !== 1) {\n    properties.start = node.start\n  }\n\n  // Like GitHub, add a class for custom styling.\n  while (++index < results.length) {\n    const child = results[index]\n\n    if (\n      child.type === 'element' &&\n      child.tagName === 'li' &&\n      child.properties &&\n      Array.isArray(child.properties.className) &&\n      child.properties.className.includes('task-list-item')\n    ) {\n      properties.className = ['contains-task-list']\n      break\n    }\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: node.ordered ? 'ol' : 'ul',\n    properties,\n    children: state.wrap(results, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `paragraph` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Paragraph} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function paragraph(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'p',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Parents} HastParents\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `root` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastRoot} node\n *   mdast node.\n * @returns {HastParents}\n *   hast node.\n */\nexport function root(state, node) {\n  /** @type {HastRoot} */\n  const result = {type: 'root', children: state.wrap(state.all(node))}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `strong` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Strong} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function strong(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'strong',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Table} Table\n * @typedef {import('../state.js').State} State\n */\n\nimport {pointEnd, pointStart} from 'unist-util-position'\n\n/**\n * Turn an mdast `table` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Table} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function table(state, node) {\n  const rows = state.all(node)\n  const firstRow = rows.shift()\n  /** @type {Array} */\n  const tableContent = []\n\n  if (firstRow) {\n    /** @type {Element} */\n    const head = {\n      type: 'element',\n      tagName: 'thead',\n      properties: {},\n      children: state.wrap([firstRow], true)\n    }\n    state.patch(node.children[0], head)\n    tableContent.push(head)\n  }\n\n  if (rows.length > 0) {\n    /** @type {Element} */\n    const body = {\n      type: 'element',\n      tagName: 'tbody',\n      properties: {},\n      children: state.wrap(rows, true)\n    }\n\n    const start = pointStart(node.children[1])\n    const end = pointEnd(node.children[node.children.length - 1])\n    if (start && end) body.position = {start, end}\n    tableContent.push(body)\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'table',\n    properties: {},\n    children: state.wrap(tableContent, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').TableCell} TableCell\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `tableCell` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {TableCell} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function tableCell(state, node) {\n  // Note: this function is normally not called: see `table-row` for how rows\n  // and their cells are compiled.\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'td', // Assume body cell.\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('mdast').TableRow} TableRow\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `tableRow` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {TableRow} node\n *   mdast node.\n * @param {Parents | undefined} parent\n *   Parent of `node`.\n * @returns {Element}\n *   hast node.\n */\nexport function tableRow(state, node, parent) {\n  const siblings = parent ? parent.children : undefined\n  // Generate a body row when without parent.\n  const rowIndex = siblings ? siblings.indexOf(node) : 1\n  const tagName = rowIndex === 0 ? 'th' : 'td'\n  // To do: option to use `style`?\n  const align = parent && parent.type === 'table' ? parent.align : undefined\n  const length = align ? align.length : node.children.length\n  let cellIndex = -1\n  /** @type {Array} */\n  const cells = []\n\n  while (++cellIndex < length) {\n    // Note: can also be undefined.\n    const cell = node.children[cellIndex]\n    /** @type {Properties} */\n    const properties = {}\n    const alignValue = align ? align[cellIndex] : undefined\n\n    if (alignValue) {\n      properties.align = alignValue\n    }\n\n    /** @type {Element} */\n    let result = {type: 'element', tagName, properties, children: []}\n\n    if (cell) {\n      result.children = state.all(cell)\n      state.patch(cell, result)\n      result = state.applyData(cell, result)\n    }\n\n    cells.push(result)\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'tr',\n    properties: {},\n    children: state.wrap(cells, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('hast').Text} HastText\n * @typedef {import('mdast').Text} MdastText\n * @typedef {import('../state.js').State} State\n */\n\nimport {trimLines} from 'trim-lines'\n\n/**\n * Turn an mdast `text` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastText} node\n *   mdast node.\n * @returns {HastElement | HastText}\n *   hast node.\n */\nexport function text(state, node) {\n  /** @type {HastText} */\n  const result = {type: 'text', value: trimLines(String(node.value))}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `thematicBreak` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ThematicBreak} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function thematicBreak(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'hr',\n    properties: {},\n    children: []\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","export const VOID       = -1;\nexport const PRIMITIVE  = 0;\nexport const ARRAY      = 1;\nexport const OBJECT     = 2;\nexport const DATE       = 3;\nexport const REGEXP     = 4;\nexport const MAP        = 5;\nexport const SET        = 6;\nexport const ERROR      = 7;\nexport const BIGINT     = 8;\n// export const SYMBOL = 9;\n","import {\n  VOID, PRIMITIVE,\n  ARRAY, OBJECT,\n  DATE, REGEXP, MAP, SET,\n  ERROR, BIGINT\n} from './types.js';\n\nconst env = typeof self === 'object' ? self : globalThis;\n\nconst deserializer = ($, _) => {\n  const as = (out, index) => {\n    $.set(index, out);\n    return out;\n  };\n\n  const unpair = index => {\n    if ($.has(index))\n      return $.get(index);\n\n    const [type, value] = _[index];\n    switch (type) {\n      case PRIMITIVE:\n      case VOID:\n        return as(value, index);\n      case ARRAY: {\n        const arr = as([], index);\n        for (const index of value)\n          arr.push(unpair(index));\n        return arr;\n      }\n      case OBJECT: {\n        const object = as({}, index);\n        for (const [key, index] of value)\n          object[unpair(key)] = unpair(index);\n        return object;\n      }\n      case DATE:\n        return as(new Date(value), index);\n      case REGEXP: {\n        const {source, flags} = value;\n        return as(new RegExp(source, flags), index);\n      }\n      case MAP: {\n        const map = as(new Map, index);\n        for (const [key, index] of value)\n          map.set(unpair(key), unpair(index));\n        return map;\n      }\n      case SET: {\n        const set = as(new Set, index);\n        for (const index of value)\n          set.add(unpair(index));\n        return set;\n      }\n      case ERROR: {\n        const {name, message} = value;\n        return as(new env[name](message), index);\n      }\n      case BIGINT:\n        return as(BigInt(value), index);\n      case 'BigInt':\n        return as(Object(BigInt(value)), index);\n      case 'ArrayBuffer':\n        return as(new Uint8Array(value).buffer, value);\n      case 'DataView': {\n        const { buffer } = new Uint8Array(value);\n        return as(new DataView(buffer), value);\n      }\n    }\n    return as(new env[type](value), index);\n  };\n\n  return unpair;\n};\n\n/**\n * @typedef {Array} Record a type representation\n */\n\n/**\n * Returns a deserialized value from a serialized array of Records.\n * @param {Record[]} serialized a previously serialized value.\n * @returns {any}\n */\nexport const deserialize = serialized => deserializer(new Map, serialized)(0);\n","import {\n  VOID, PRIMITIVE,\n  ARRAY, OBJECT,\n  DATE, REGEXP, MAP, SET,\n  ERROR, BIGINT\n} from './types.js';\n\nconst EMPTY = '';\n\nconst {toString} = {};\nconst {keys} = Object;\n\nconst typeOf = value => {\n  const type = typeof value;\n  if (type !== 'object' || !value)\n    return [PRIMITIVE, type];\n\n  const asString = toString.call(value).slice(8, -1);\n  switch (asString) {\n    case 'Array':\n      return [ARRAY, EMPTY];\n    case 'Object':\n      return [OBJECT, EMPTY];\n    case 'Date':\n      return [DATE, EMPTY];\n    case 'RegExp':\n      return [REGEXP, EMPTY];\n    case 'Map':\n      return [MAP, EMPTY];\n    case 'Set':\n      return [SET, EMPTY];\n    case 'DataView':\n      return [ARRAY, asString];\n  }\n\n  if (asString.includes('Array'))\n    return [ARRAY, asString];\n\n  if (asString.includes('Error'))\n    return [ERROR, asString];\n\n  return [OBJECT, asString];\n};\n\nconst shouldSkip = ([TYPE, type]) => (\n  TYPE === PRIMITIVE &&\n  (type === 'function' || type === 'symbol')\n);\n\nconst serializer = (strict, json, $, _) => {\n\n  const as = (out, value) => {\n    const index = _.push(out) - 1;\n    $.set(value, index);\n    return index;\n  };\n\n  const pair = value => {\n    if ($.has(value))\n      return $.get(value);\n\n    let [TYPE, type] = typeOf(value);\n    switch (TYPE) {\n      case PRIMITIVE: {\n        let entry = value;\n        switch (type) {\n          case 'bigint':\n            TYPE = BIGINT;\n            entry = value.toString();\n            break;\n          case 'function':\n          case 'symbol':\n            if (strict)\n              throw new TypeError('unable to serialize ' + type);\n            entry = null;\n            break;\n          case 'undefined':\n            return as([VOID], value);\n        }\n        return as([TYPE, entry], value);\n      }\n      case ARRAY: {\n        if (type) {\n          let spread = value;\n          if (type === 'DataView') {\n            spread = new Uint8Array(value.buffer);\n          }\n          else if (type === 'ArrayBuffer') {\n            spread = new Uint8Array(value);\n          }\n          return as([type, [...spread]], value);\n        }\n\n        const arr = [];\n        const index = as([TYPE, arr], value);\n        for (const entry of value)\n          arr.push(pair(entry));\n        return index;\n      }\n      case OBJECT: {\n        if (type) {\n          switch (type) {\n            case 'BigInt':\n              return as([type, value.toString()], value);\n            case 'Boolean':\n            case 'Number':\n            case 'String':\n              return as([type, value.valueOf()], value);\n          }\n        }\n\n        if (json && ('toJSON' in value))\n          return pair(value.toJSON());\n\n        const entries = [];\n        const index = as([TYPE, entries], value);\n        for (const key of keys(value)) {\n          if (strict || !shouldSkip(typeOf(value[key])))\n            entries.push([pair(key), pair(value[key])]);\n        }\n        return index;\n      }\n      case DATE:\n        return as([TYPE, value.toISOString()], value);\n      case REGEXP: {\n        const {source, flags} = value;\n        return as([TYPE, {source, flags}], value);\n      }\n      case MAP: {\n        const entries = [];\n        const index = as([TYPE, entries], value);\n        for (const [key, entry] of value) {\n          if (strict || !(shouldSkip(typeOf(key)) || shouldSkip(typeOf(entry))))\n            entries.push([pair(key), pair(entry)]);\n        }\n        return index;\n      }\n      case SET: {\n        const entries = [];\n        const index = as([TYPE, entries], value);\n        for (const entry of value) {\n          if (strict || !shouldSkip(typeOf(entry)))\n            entries.push(pair(entry));\n        }\n        return index;\n      }\n    }\n\n    const {message} = value;\n    return as([TYPE, {name: type, message}], value);\n  };\n\n  return pair;\n};\n\n/**\n * @typedef {Array} Record a type representation\n */\n\n/**\n * Returns an array of serialized Records.\n * @param {any} value a serializable value.\n * @param {{json?: boolean, lossy?: boolean}?} options an object with a `lossy` or `json` property that,\n *  if `true`, will not throw errors on incompatible types, and behave more\n *  like JSON stringify would behave. Symbol and Function will be discarded.\n * @returns {Record[]}\n */\n export const serialize = (value, {json, lossy} = {}) => {\n  const _ = [];\n  return serializer(!(json || lossy), !!json, new Map, _)(value), _;\n};\n","import {deserialize} from './deserialize.js';\nimport {serialize} from './serialize.js';\n\n/**\n * @typedef {Array} Record a type representation\n */\n\n/**\n * Returns an array of serialized Records.\n * @param {any} any a serializable value.\n * @param {{transfer?: any[], json?: boolean, lossy?: boolean}?} options an object with\n * a transfer option (ignored when polyfilled) and/or non standard fields that\n * fallback to the polyfill if present.\n * @returns {Record[]}\n */\nexport default typeof structuredClone === \"function\" ?\n  /* c8 ignore start */\n  (any, options) => (\n    options && ('json' in options || 'lossy' in options) ?\n      deserialize(serialize(any, options)) : structuredClone(any)\n  ) :\n  (any, options) => deserialize(serialize(any, options));\n  /* c8 ignore stop */\n\nexport {deserialize, serialize};\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n *\n * @typedef {import('./state.js').State} State\n */\n\n/**\n * @callback FootnoteBackContentTemplate\n *   Generate content for the backreference dynamically.\n *\n *   For the following markdown:\n *\n *   ```markdown\n *   Alpha[^micromark], bravo[^micromark], and charlie[^remark].\n *\n *   [^remark]: things about remark\n *   [^micromark]: things about micromark\n *   ```\n *\n *   This function will be called with:\n *\n *   *  `0` and `0` for the backreference from `things about micromark` to\n *      `alpha`, as it is the first used definition, and the first call to it\n *   *  `0` and `1` for the backreference from `things about micromark` to\n *      `bravo`, as it is the first used definition, and the second call to it\n *   *  `1` and `0` for the backreference from `things about remark` to\n *      `charlie`, as it is the second used definition\n * @param {number} referenceIndex\n *   Index of the definition in the order that they are first referenced,\n *   0-indexed.\n * @param {number} rereferenceIndex\n *   Index of calls to the same definition, 0-indexed.\n * @returns {Array | ElementContent | string}\n *   Content for the backreference when linking back from definitions to their\n *   reference.\n *\n * @callback FootnoteBackLabelTemplate\n *   Generate a back label dynamically.\n *\n *   For the following markdown:\n *\n *   ```markdown\n *   Alpha[^micromark], bravo[^micromark], and charlie[^remark].\n *\n *   [^remark]: things about remark\n *   [^micromark]: things about micromark\n *   ```\n *\n *   This function will be called with:\n *\n *   *  `0` and `0` for the backreference from `things about micromark` to\n *      `alpha`, as it is the first used definition, and the first call to it\n *   *  `0` and `1` for the backreference from `things about micromark` to\n *      `bravo`, as it is the first used definition, and the second call to it\n *   *  `1` and `0` for the backreference from `things about remark` to\n *      `charlie`, as it is the second used definition\n * @param {number} referenceIndex\n *   Index of the definition in the order that they are first referenced,\n *   0-indexed.\n * @param {number} rereferenceIndex\n *   Index of calls to the same definition, 0-indexed.\n * @returns {string}\n *   Back label to use when linking back from definitions to their reference.\n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Generate the default content that GitHub uses on backreferences.\n *\n * @param {number} _\n *   Index of the definition in the order that they are first referenced,\n *   0-indexed.\n * @param {number} rereferenceIndex\n *   Index of calls to the same definition, 0-indexed.\n * @returns {Array}\n *   Content.\n */\nexport function defaultFootnoteBackContent(_, rereferenceIndex) {\n  /** @type {Array} */\n  const result = [{type: 'text', value: '↩'}]\n\n  if (rereferenceIndex > 1) {\n    result.push({\n      type: 'element',\n      tagName: 'sup',\n      properties: {},\n      children: [{type: 'text', value: String(rereferenceIndex)}]\n    })\n  }\n\n  return result\n}\n\n/**\n * Generate the default label that GitHub uses on backreferences.\n *\n * @param {number} referenceIndex\n *   Index of the definition in the order that they are first referenced,\n *   0-indexed.\n * @param {number} rereferenceIndex\n *   Index of calls to the same definition, 0-indexed.\n * @returns {string}\n *   Label.\n */\nexport function defaultFootnoteBackLabel(referenceIndex, rereferenceIndex) {\n  return (\n    'Back to reference ' +\n    (referenceIndex + 1) +\n    (rereferenceIndex > 1 ? '-' + rereferenceIndex : '')\n  )\n}\n\n/**\n * Generate a hast footer for called footnote definitions.\n *\n * @param {State} state\n *   Info passed around.\n * @returns {Element | undefined}\n *   `section` element or `undefined`.\n */\n// eslint-disable-next-line complexity\nexport function footer(state) {\n  const clobberPrefix =\n    typeof state.options.clobberPrefix === 'string'\n      ? state.options.clobberPrefix\n      : 'user-content-'\n  const footnoteBackContent =\n    state.options.footnoteBackContent || defaultFootnoteBackContent\n  const footnoteBackLabel =\n    state.options.footnoteBackLabel || defaultFootnoteBackLabel\n  const footnoteLabel = state.options.footnoteLabel || 'Footnotes'\n  const footnoteLabelTagName = state.options.footnoteLabelTagName || 'h2'\n  const footnoteLabelProperties = state.options.footnoteLabelProperties || {\n    className: ['sr-only']\n  }\n  /** @type {Array} */\n  const listItems = []\n  let referenceIndex = -1\n\n  while (++referenceIndex < state.footnoteOrder.length) {\n    const definition = state.footnoteById.get(\n      state.footnoteOrder[referenceIndex]\n    )\n\n    if (!definition) {\n      continue\n    }\n\n    const content = state.all(definition)\n    const id = String(definition.identifier).toUpperCase()\n    const safeId = normalizeUri(id.toLowerCase())\n    let rereferenceIndex = 0\n    /** @type {Array} */\n    const backReferences = []\n    const counts = state.footnoteCounts.get(id)\n\n    // eslint-disable-next-line no-unmodified-loop-condition\n    while (counts !== undefined && ++rereferenceIndex <= counts) {\n      if (backReferences.length > 0) {\n        backReferences.push({type: 'text', value: ' '})\n      }\n\n      let children =\n        typeof footnoteBackContent === 'string'\n          ? footnoteBackContent\n          : footnoteBackContent(referenceIndex, rereferenceIndex)\n\n      if (typeof children === 'string') {\n        children = {type: 'text', value: children}\n      }\n\n      backReferences.push({\n        type: 'element',\n        tagName: 'a',\n        properties: {\n          href:\n            '#' +\n            clobberPrefix +\n            'fnref-' +\n            safeId +\n            (rereferenceIndex > 1 ? '-' + rereferenceIndex : ''),\n          dataFootnoteBackref: '',\n          ariaLabel:\n            typeof footnoteBackLabel === 'string'\n              ? footnoteBackLabel\n              : footnoteBackLabel(referenceIndex, rereferenceIndex),\n          className: ['data-footnote-backref']\n        },\n        children: Array.isArray(children) ? children : [children]\n      })\n    }\n\n    const tail = content[content.length - 1]\n\n    if (tail && tail.type === 'element' && tail.tagName === 'p') {\n      const tailTail = tail.children[tail.children.length - 1]\n      if (tailTail && tailTail.type === 'text') {\n        tailTail.value += ' '\n      } else {\n        tail.children.push({type: 'text', value: ' '})\n      }\n\n      tail.children.push(...backReferences)\n    } else {\n      content.push(...backReferences)\n    }\n\n    /** @type {Element} */\n    const listItem = {\n      type: 'element',\n      tagName: 'li',\n      properties: {id: clobberPrefix + 'fn-' + safeId},\n      children: state.wrap(content, true)\n    }\n\n    state.patch(definition, listItem)\n\n    listItems.push(listItem)\n  }\n\n  if (listItems.length === 0) {\n    return\n  }\n\n  return {\n    type: 'element',\n    tagName: 'section',\n    properties: {dataFootnotes: true, className: ['footnotes']},\n    children: [\n      {\n        type: 'element',\n        tagName: footnoteLabelTagName,\n        properties: {\n          ...structuredClone(footnoteLabelProperties),\n          id: 'footnote-label'\n        },\n        children: [{type: 'text', value: footnoteLabel}]\n      },\n      {type: 'text', value: '\\n'},\n      {\n        type: 'element',\n        tagName: 'ol',\n        properties: {},\n        children: state.wrap(listItems, true)\n      },\n      {type: 'text', value: '\\n'}\n    ]\n  }\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n */\n\n/**\n * @template Fn\n * @template Fallback\n * @typedef {Fn extends (value: any) => value is infer Thing ? Thing : Fallback} Predicate\n */\n\n/**\n * @callback Check\n *   Check that an arbitrary value is a node.\n * @param {unknown} this\n *   The given context.\n * @param {unknown} [node]\n *   Anything (typically a node).\n * @param {number | null | undefined} [index]\n *   The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n *   The node’s parent.\n * @returns {boolean}\n *   Whether this is a node and passes a test.\n *\n * @typedef {Record | Node} Props\n *   Object to check for equivalence.\n *\n *   Note: `Node` is included as it is common but is not indexable.\n *\n * @typedef {Array | Props | TestFunction | string | null | undefined} Test\n *   Check for an arbitrary node.\n *\n * @callback TestFunction\n *   Check if a node passes a test.\n * @param {unknown} this\n *   The given context.\n * @param {Node} node\n *   A node.\n * @param {number | undefined} [index]\n *   The node’s position in its parent.\n * @param {Parent | undefined} [parent]\n *   The node’s parent.\n * @returns {boolean | undefined | void}\n *   Whether this node passes the test.\n *\n *   Note: `void` is included until TS sees no return as `undefined`.\n */\n\n/**\n * Check if `node` is a `Node` and whether it passes the given test.\n *\n * @param {unknown} node\n *   Thing to check, typically `Node`.\n * @param {Test} test\n *   A check for a specific node.\n * @param {number | null | undefined} index\n *   The node’s position in its parent.\n * @param {Parent | null | undefined} parent\n *   The node’s parent.\n * @param {unknown} context\n *   Context object (`this`) to pass to `test` functions.\n * @returns {boolean}\n *   Whether `node` is a node and passes a test.\n */\nexport const is =\n  // Note: overloads in JSDoc can’t yet use different `@template`s.\n  /**\n   * @type {(\n   *   ((node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n   *   ((node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n   *   ((node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate) &\n   *   ((node?: null | undefined) => false) &\n   *   ((node: unknown, test?: null | undefined, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n   *   ((node: unknown, test?: Test, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => boolean)\n   * )}\n   */\n  (\n    /**\n     * @param {unknown} [node]\n     * @param {Test} [test]\n     * @param {number | null | undefined} [index]\n     * @param {Parent | null | undefined} [parent]\n     * @param {unknown} [context]\n     * @returns {boolean}\n     */\n    // eslint-disable-next-line max-params\n    function (node, test, index, parent, context) {\n      const check = convert(test)\n\n      if (\n        index !== undefined &&\n        index !== null &&\n        (typeof index !== 'number' ||\n          index < 0 ||\n          index === Number.POSITIVE_INFINITY)\n      ) {\n        throw new Error('Expected positive finite index')\n      }\n\n      if (\n        parent !== undefined &&\n        parent !== null &&\n        (!is(parent) || !parent.children)\n      ) {\n        throw new Error('Expected parent node')\n      }\n\n      if (\n        (parent === undefined || parent === null) !==\n        (index === undefined || index === null)\n      ) {\n        throw new Error('Expected both parent and index')\n      }\n\n      return looksLikeANode(node)\n        ? check.call(context, node, index, parent)\n        : false\n    }\n  )\n\n/**\n * Generate an assertion from a test.\n *\n * Useful if you’re going to test many nodes, for example when creating a\n * utility where something else passes a compatible test.\n *\n * The created function is a bit faster because it expects valid input only:\n * a `node`, `index`, and `parent`.\n *\n * @param {Test} test\n *   *   when nullish, checks if `node` is a `Node`.\n *   *   when `string`, works like passing `(node) => node.type === test`.\n *   *   when `function` checks if function passed the node is true.\n *   *   when `object`, checks that all keys in test are in node, and that they have (strictly) equal values.\n *   *   when `array`, checks if any one of the subtests pass.\n * @returns {Check}\n *   An assertion.\n */\nexport const convert =\n  // Note: overloads in JSDoc can’t yet use different `@template`s.\n  /**\n   * @type {(\n   *   ((test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n   *   ((test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n   *   ((test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate) &\n   *   ((test?: null | undefined) => (node?: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n   *   ((test?: Test) => Check)\n   * )}\n   */\n  (\n    /**\n     * @param {Test} [test]\n     * @returns {Check}\n     */\n    function (test) {\n      if (test === null || test === undefined) {\n        return ok\n      }\n\n      if (typeof test === 'function') {\n        return castFactory(test)\n      }\n\n      if (typeof test === 'object') {\n        return Array.isArray(test) ? anyFactory(test) : propsFactory(test)\n      }\n\n      if (typeof test === 'string') {\n        return typeFactory(test)\n      }\n\n      throw new Error('Expected function, string, or object as test')\n    }\n  )\n\n/**\n * @param {Array} tests\n * @returns {Check}\n */\nfunction anyFactory(tests) {\n  /** @type {Array} */\n  const checks = []\n  let index = -1\n\n  while (++index < tests.length) {\n    checks[index] = convert(tests[index])\n  }\n\n  return castFactory(any)\n\n  /**\n   * @this {unknown}\n   * @type {TestFunction}\n   */\n  function any(...parameters) {\n    let index = -1\n\n    while (++index < checks.length) {\n      if (checks[index].apply(this, parameters)) return true\n    }\n\n    return false\n  }\n}\n\n/**\n * Turn an object into a test for a node with a certain fields.\n *\n * @param {Props} check\n * @returns {Check}\n */\nfunction propsFactory(check) {\n  const checkAsRecord = /** @type {Record} */ (check)\n\n  return castFactory(all)\n\n  /**\n   * @param {Node} node\n   * @returns {boolean}\n   */\n  function all(node) {\n    const nodeAsRecord = /** @type {Record} */ (\n      /** @type {unknown} */ (node)\n    )\n\n    /** @type {string} */\n    let key\n\n    for (key in check) {\n      if (nodeAsRecord[key] !== checkAsRecord[key]) return false\n    }\n\n    return true\n  }\n}\n\n/**\n * Turn a string into a test for a node with a certain type.\n *\n * @param {string} check\n * @returns {Check}\n */\nfunction typeFactory(check) {\n  return castFactory(type)\n\n  /**\n   * @param {Node} node\n   */\n  function type(node) {\n    return node && node.type === check\n  }\n}\n\n/**\n * Turn a custom test into a test for a node that passes that test.\n *\n * @param {TestFunction} testFunction\n * @returns {Check}\n */\nfunction castFactory(testFunction) {\n  return check\n\n  /**\n   * @this {unknown}\n   * @type {Check}\n   */\n  function check(value, index, parent) {\n    return Boolean(\n      looksLikeANode(value) &&\n        testFunction.call(\n          this,\n          value,\n          typeof index === 'number' ? index : undefined,\n          parent || undefined\n        )\n    )\n  }\n}\n\nfunction ok() {\n  return true\n}\n\n/**\n * @param {unknown} value\n * @returns {value is Node}\n */\nfunction looksLikeANode(value) {\n  return value !== null && typeof value === 'object' && 'type' in value\n}\n","/**\n * @typedef {import('unist').Node} UnistNode\n * @typedef {import('unist').Parent} UnistParent\n */\n\n/**\n * @typedef {Exclude | undefined} Test\n *   Test from `unist-util-is`.\n *\n *   Note: we have remove and add `undefined`, because otherwise when generating\n *   automatic `.d.ts` files, TS tries to flatten paths from a local perspective,\n *   which doesn’t work when publishing on npm.\n */\n\n/**\n * @typedef {(\n *   Fn extends (value: any) => value is infer Thing\n *   ? Thing\n *   : Fallback\n * )} Predicate\n *   Get the value of a type guard `Fn`.\n * @template Fn\n *   Value; typically function that is a type guard (such as `(x): x is Y`).\n * @template Fallback\n *   Value to yield if `Fn` is not a type guard.\n */\n\n/**\n * @typedef {(\n *   Check extends null | undefined // No test.\n *   ? Value\n *   : Value extends {type: Check} // String (type) test.\n *   ? Value\n *   : Value extends Check // Partial test.\n *   ? Value\n *   : Check extends Function // Function test.\n *   ? Predicate extends Value\n *     ? Predicate\n *     : never\n *   : never // Some other test?\n * )} MatchesOne\n *   Check whether a node matches a primitive check in the type system.\n * @template Value\n *   Value; typically unist `Node`.\n * @template Check\n *   Value; typically `unist-util-is`-compatible test, but not arrays.\n */\n\n/**\n * @typedef {(\n *   Check extends Array\n *   ? MatchesOne\n *   : MatchesOne\n * )} Matches\n *   Check whether a node matches a check in the type system.\n * @template Value\n *   Value; typically unist `Node`.\n * @template Check\n *   Value; typically `unist-util-is`-compatible test.\n */\n\n/**\n * @typedef {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10} Uint\n *   Number; capped reasonably.\n */\n\n/**\n * @typedef {I extends 0 ? 1 : I extends 1 ? 2 : I extends 2 ? 3 : I extends 3 ? 4 : I extends 4 ? 5 : I extends 5 ? 6 : I extends 6 ? 7 : I extends 7 ? 8 : I extends 8 ? 9 : 10} Increment\n *   Increment a number in the type system.\n * @template {Uint} [I=0]\n *   Index.\n */\n\n/**\n * @typedef {(\n *   Node extends UnistParent\n *   ? Node extends {children: Array}\n *     ? Child extends Children ? Node : never\n *     : never\n *   : never\n * )} InternalParent\n *   Collect nodes that can be parents of `Child`.\n * @template {UnistNode} Node\n *   All node types in a tree.\n * @template {UnistNode} Child\n *   Node to search for.\n */\n\n/**\n * @typedef {InternalParent, Child>} Parent\n *   Collect nodes in `Tree` that can be parents of `Child`.\n * @template {UnistNode} Tree\n *   All node types in a tree.\n * @template {UnistNode} Child\n *   Node to search for.\n */\n\n/**\n * @typedef {(\n *   Depth extends Max\n *   ? never\n *   :\n *     | InternalParent\n *     | InternalAncestor, Max, Increment>\n * )} InternalAncestor\n *   Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Node\n *   All node types in a tree.\n * @template {UnistNode} Child\n *   Node to search for.\n * @template {Uint} [Max=10]\n *   Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n *   Current depth.\n */\n\n/**\n * @typedef {InternalAncestor, Child>} Ancestor\n *   Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Tree\n *   All node types in a tree.\n * @template {UnistNode} Child\n *   Node to search for.\n */\n\n/**\n * @typedef {(\n *   Tree extends UnistParent\n *     ? Depth extends Max\n *       ? Tree\n *       : Tree | InclusiveDescendant>\n *     : Tree\n * )} InclusiveDescendant\n *   Collect all (inclusive) descendants of `Tree`.\n *\n *   > 👉 **Note**: for performance reasons, this seems to be the fastest way to\n *   > recurse without actually running into an infinite loop, which the\n *   > previous version did.\n *   >\n *   > Practically, a max of `2` is typically enough assuming a `Root` is\n *   > passed, but it doesn’t improve performance.\n *   > It gets higher with `List > ListItem > Table > TableRow > TableCell`.\n *   > Using up to `10` doesn’t hurt or help either.\n * @template {UnistNode} Tree\n *   Tree type.\n * @template {Uint} [Max=10]\n *   Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n *   Current depth.\n */\n\n/**\n * @typedef {'skip' | boolean} Action\n *   Union of the action types.\n *\n * @typedef {number} Index\n *   Move to the sibling at `index` next (after node itself is completely\n *   traversed).\n *\n *   Useful if mutating the tree, such as removing the node the visitor is\n *   currently on, or any of its previous siblings.\n *   Results less than 0 or greater than or equal to `children.length` stop\n *   traversing the parent.\n *\n * @typedef {[(Action | null | undefined | void)?, (Index | null | undefined)?]} ActionTuple\n *   List with one or two values, the first an action, the second an index.\n *\n * @typedef {Action | ActionTuple | Index | null | undefined | void} VisitorResult\n *   Any value that can be returned from a visitor.\n */\n\n/**\n * @callback Visitor\n *   Handle a node (matching `test`, if given).\n *\n *   Visitors are free to transform `node`.\n *   They can also transform the parent of node (the last of `ancestors`).\n *\n *   Replacing `node` itself, if `SKIP` is not returned, still causes its\n *   descendants to be walked (which is a bug).\n *\n *   When adding or removing previous siblings of `node` (or next siblings, in\n *   case of reverse), the `Visitor` should return a new `Index` to specify the\n *   sibling to traverse after `node` is traversed.\n *   Adding or removing next siblings of `node` (or previous siblings, in case\n *   of reverse) is handled as expected without needing to return a new `Index`.\n *\n *   Removing the children property of an ancestor still results in them being\n *   traversed.\n * @param {Visited} node\n *   Found node.\n * @param {Array} ancestors\n *   Ancestors of `node`.\n * @returns {VisitorResult}\n *   What to do next.\n *\n *   An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n *   An `Action` is treated as a tuple of `[Action]`.\n *\n *   Passing a tuple back only makes sense if the `Action` is `SKIP`.\n *   When the `Action` is `EXIT`, that action can be returned.\n *   When the `Action` is `CONTINUE`, `Index` can be returned.\n * @template {UnistNode} [Visited=UnistNode]\n *   Visited node type.\n * @template {UnistParent} [VisitedParents=UnistParent]\n *   Ancestor type.\n */\n\n/**\n * @typedef {Visitor, Check>, Ancestor, Check>>>} BuildVisitor\n *   Build a typed `Visitor` function from a tree and a test.\n *\n *   It will infer which values are passed as `node` and which as `parents`.\n * @template {UnistNode} [Tree=UnistNode]\n *   Tree type.\n * @template {Test} [Check=Test]\n *   Test type.\n */\n\nimport {convert} from 'unist-util-is'\nimport {color} from 'unist-util-visit-parents/do-not-use-color'\n\n/** @type {Readonly} */\nconst empty = []\n\n/**\n * Continue traversing as normal.\n */\nexport const CONTINUE = true\n\n/**\n * Stop traversing immediately.\n */\nexport const EXIT = false\n\n/**\n * Do not traverse this node’s children.\n */\nexport const SKIP = 'skip'\n\n/**\n * Visit nodes, with ancestral information.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @overload\n * @param {Tree} tree\n * @param {Check} check\n * @param {BuildVisitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @overload\n * @param {Tree} tree\n * @param {BuildVisitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @param {UnistNode} tree\n *   Tree to traverse.\n * @param {Visitor | Test} test\n *   `unist-util-is`-compatible test\n * @param {Visitor | boolean | null | undefined} [visitor]\n *   Handle each node.\n * @param {boolean | null | undefined} [reverse]\n *   Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns {undefined}\n *   Nothing.\n *\n * @template {UnistNode} Tree\n *   Node type.\n * @template {Test} Check\n *   `unist-util-is`-compatible test.\n */\nexport function visitParents(tree, test, visitor, reverse) {\n  /** @type {Test} */\n  let check\n\n  if (typeof test === 'function' && typeof visitor !== 'function') {\n    reverse = visitor\n    // @ts-expect-error no visitor given, so `visitor` is test.\n    visitor = test\n  } else {\n    // @ts-expect-error visitor given, so `test` isn’t a visitor.\n    check = test\n  }\n\n  const is = convert(check)\n  const step = reverse ? -1 : 1\n\n  factory(tree, undefined, [])()\n\n  /**\n   * @param {UnistNode} node\n   * @param {number | undefined} index\n   * @param {Array} parents\n   */\n  function factory(node, index, parents) {\n    const value = /** @type {Record} */ (\n      node && typeof node === 'object' ? node : {}\n    )\n\n    if (typeof value.type === 'string') {\n      const name =\n        // `hast`\n        typeof value.tagName === 'string'\n          ? value.tagName\n          : // `xast`\n          typeof value.name === 'string'\n          ? value.name\n          : undefined\n\n      Object.defineProperty(visit, 'name', {\n        value:\n          'node (' + color(node.type + (name ? '<' + name + '>' : '')) + ')'\n      })\n    }\n\n    return visit\n\n    function visit() {\n      /** @type {Readonly} */\n      let result = empty\n      /** @type {Readonly} */\n      let subresult\n      /** @type {number} */\n      let offset\n      /** @type {Array} */\n      let grandparents\n\n      if (!test || is(node, index, parents[parents.length - 1] || undefined)) {\n        // @ts-expect-error: `visitor` is now a visitor.\n        result = toResult(visitor(node, parents))\n\n        if (result[0] === EXIT) {\n          return result\n        }\n      }\n\n      if ('children' in node && node.children) {\n        const nodeAsParent = /** @type {UnistParent} */ (node)\n\n        if (nodeAsParent.children && result[0] !== SKIP) {\n          offset = (reverse ? nodeAsParent.children.length : -1) + step\n          grandparents = parents.concat(nodeAsParent)\n\n          while (offset > -1 && offset < nodeAsParent.children.length) {\n            const child = nodeAsParent.children[offset]\n\n            subresult = factory(child, offset, grandparents)()\n\n            if (subresult[0] === EXIT) {\n              return subresult\n            }\n\n            offset =\n              typeof subresult[1] === 'number' ? subresult[1] : offset + step\n          }\n        }\n      }\n\n      return result\n    }\n  }\n}\n\n/**\n * Turn a return value into a clean result.\n *\n * @param {VisitorResult} value\n *   Valid return values from visitors.\n * @returns {Readonly}\n *   Clean result.\n */\nfunction toResult(value) {\n  if (Array.isArray(value)) {\n    return value\n  }\n\n  if (typeof value === 'number') {\n    return [CONTINUE, value]\n  }\n\n  return value === null || value === undefined ? empty : [value]\n}\n","/**\n * @typedef {import('unist').Node} UnistNode\n * @typedef {import('unist').Parent} UnistParent\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n */\n\n/**\n * @typedef {Exclude | undefined} Test\n *   Test from `unist-util-is`.\n *\n *   Note: we have remove and add `undefined`, because otherwise when generating\n *   automatic `.d.ts` files, TS tries to flatten paths from a local perspective,\n *   which doesn’t work when publishing on npm.\n */\n\n// To do: use types from `unist-util-visit-parents` when it’s released.\n\n/**\n * @typedef {(\n *   Fn extends (value: any) => value is infer Thing\n *   ? Thing\n *   : Fallback\n * )} Predicate\n *   Get the value of a type guard `Fn`.\n * @template Fn\n *   Value; typically function that is a type guard (such as `(x): x is Y`).\n * @template Fallback\n *   Value to yield if `Fn` is not a type guard.\n */\n\n/**\n * @typedef {(\n *   Check extends null | undefined // No test.\n *   ? Value\n *   : Value extends {type: Check} // String (type) test.\n *   ? Value\n *   : Value extends Check // Partial test.\n *   ? Value\n *   : Check extends Function // Function test.\n *   ? Predicate extends Value\n *     ? Predicate\n *     : never\n *   : never // Some other test?\n * )} MatchesOne\n *   Check whether a node matches a primitive check in the type system.\n * @template Value\n *   Value; typically unist `Node`.\n * @template Check\n *   Value; typically `unist-util-is`-compatible test, but not arrays.\n */\n\n/**\n * @typedef {(\n *   Check extends Array\n *   ? MatchesOne\n *   : MatchesOne\n * )} Matches\n *   Check whether a node matches a check in the type system.\n * @template Value\n *   Value; typically unist `Node`.\n * @template Check\n *   Value; typically `unist-util-is`-compatible test.\n */\n\n/**\n * @typedef {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10} Uint\n *   Number; capped reasonably.\n */\n\n/**\n * @typedef {I extends 0 ? 1 : I extends 1 ? 2 : I extends 2 ? 3 : I extends 3 ? 4 : I extends 4 ? 5 : I extends 5 ? 6 : I extends 6 ? 7 : I extends 7 ? 8 : I extends 8 ? 9 : 10} Increment\n *   Increment a number in the type system.\n * @template {Uint} [I=0]\n *   Index.\n */\n\n/**\n * @typedef {(\n *   Node extends UnistParent\n *   ? Node extends {children: Array}\n *     ? Child extends Children ? Node : never\n *     : never\n *   : never\n * )} InternalParent\n *   Collect nodes that can be parents of `Child`.\n * @template {UnistNode} Node\n *   All node types in a tree.\n * @template {UnistNode} Child\n *   Node to search for.\n */\n\n/**\n * @typedef {InternalParent, Child>} Parent\n *   Collect nodes in `Tree` that can be parents of `Child`.\n * @template {UnistNode} Tree\n *   All node types in a tree.\n * @template {UnistNode} Child\n *   Node to search for.\n */\n\n/**\n * @typedef {(\n *   Depth extends Max\n *   ? never\n *   :\n *     | InternalParent\n *     | InternalAncestor, Max, Increment>\n * )} InternalAncestor\n *   Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Node\n *   All node types in a tree.\n * @template {UnistNode} Child\n *   Node to search for.\n * @template {Uint} [Max=10]\n *   Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n *   Current depth.\n */\n\n/**\n * @typedef {(\n *   Tree extends UnistParent\n *     ? Depth extends Max\n *       ? Tree\n *       : Tree | InclusiveDescendant>\n *     : Tree\n * )} InclusiveDescendant\n *   Collect all (inclusive) descendants of `Tree`.\n *\n *   > 👉 **Note**: for performance reasons, this seems to be the fastest way to\n *   > recurse without actually running into an infinite loop, which the\n *   > previous version did.\n *   >\n *   > Practically, a max of `2` is typically enough assuming a `Root` is\n *   > passed, but it doesn’t improve performance.\n *   > It gets higher with `List > ListItem > Table > TableRow > TableCell`.\n *   > Using up to `10` doesn’t hurt or help either.\n * @template {UnistNode} Tree\n *   Tree type.\n * @template {Uint} [Max=10]\n *   Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n *   Current depth.\n */\n\n/**\n * @callback Visitor\n *   Handle a node (matching `test`, if given).\n *\n *   Visitors are free to transform `node`.\n *   They can also transform `parent`.\n *\n *   Replacing `node` itself, if `SKIP` is not returned, still causes its\n *   descendants to be walked (which is a bug).\n *\n *   When adding or removing previous siblings of `node` (or next siblings, in\n *   case of reverse), the `Visitor` should return a new `Index` to specify the\n *   sibling to traverse after `node` is traversed.\n *   Adding or removing next siblings of `node` (or previous siblings, in case\n *   of reverse) is handled as expected without needing to return a new `Index`.\n *\n *   Removing the children property of `parent` still results in them being\n *   traversed.\n * @param {Visited} node\n *   Found node.\n * @param {Visited extends UnistNode ? number | undefined : never} index\n *   Index of `node` in `parent`.\n * @param {Ancestor extends UnistParent ? Ancestor | undefined : never} parent\n *   Parent of `node`.\n * @returns {VisitorResult}\n *   What to do next.\n *\n *   An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n *   An `Action` is treated as a tuple of `[Action]`.\n *\n *   Passing a tuple back only makes sense if the `Action` is `SKIP`.\n *   When the `Action` is `EXIT`, that action can be returned.\n *   When the `Action` is `CONTINUE`, `Index` can be returned.\n * @template {UnistNode} [Visited=UnistNode]\n *   Visited node type.\n * @template {UnistParent} [Ancestor=UnistParent]\n *   Ancestor type.\n */\n\n/**\n * @typedef {Visitor>} BuildVisitorFromMatch\n *   Build a typed `Visitor` function from a node and all possible parents.\n *\n *   It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} Visited\n *   Node type.\n * @template {UnistParent} Ancestor\n *   Parent type.\n */\n\n/**\n * @typedef {(\n *   BuildVisitorFromMatch<\n *     Matches,\n *     Extract\n *   >\n * )} BuildVisitorFromDescendants\n *   Build a typed `Visitor` function from a list of descendants and a test.\n *\n *   It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} Descendant\n *   Node type.\n * @template {Test} Check\n *   Test type.\n */\n\n/**\n * @typedef {(\n *   BuildVisitorFromDescendants<\n *     InclusiveDescendant,\n *     Check\n *   >\n * )} BuildVisitor\n *   Build a typed `Visitor` function from a tree and a test.\n *\n *   It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} [Tree=UnistNode]\n *   Node type.\n * @template {Test} [Check=Test]\n *   Test type.\n */\n\nimport {visitParents} from 'unist-util-visit-parents'\n\nexport {CONTINUE, EXIT, SKIP} from 'unist-util-visit-parents'\n\n/**\n * Visit nodes.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @overload\n * @param {Tree} tree\n * @param {Check} check\n * @param {BuildVisitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @overload\n * @param {Tree} tree\n * @param {BuildVisitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @param {UnistNode} tree\n *   Tree to traverse.\n * @param {Visitor | Test} testOrVisitor\n *   `unist-util-is`-compatible test (optional, omit to pass a visitor).\n * @param {Visitor | boolean | null | undefined} [visitorOrReverse]\n *   Handle each node (when test is omitted, pass `reverse`).\n * @param {boolean | null | undefined} [maybeReverse=false]\n *   Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns {undefined}\n *   Nothing.\n *\n * @template {UnistNode} Tree\n *   Node type.\n * @template {Test} Check\n *   `unist-util-is`-compatible test.\n */\nexport function visit(tree, testOrVisitor, visitorOrReverse, maybeReverse) {\n  /** @type {boolean | null | undefined} */\n  let reverse\n  /** @type {Test} */\n  let test\n  /** @type {Visitor} */\n  let visitor\n\n  if (\n    typeof testOrVisitor === 'function' &&\n    typeof visitorOrReverse !== 'function'\n  ) {\n    test = undefined\n    visitor = testOrVisitor\n    reverse = visitorOrReverse\n  } else {\n    // @ts-expect-error: assume the overload with test was given.\n    test = testOrVisitor\n    // @ts-expect-error: assume the overload with test was given.\n    visitor = visitorOrReverse\n    reverse = maybeReverse\n  }\n\n  visitParents(tree, test, overload, reverse)\n\n  /**\n   * @param {UnistNode} node\n   * @param {Array} parents\n   */\n  function overload(node, parents) {\n    const parent = parents[parents.length - 1]\n    const index = parent ? parent.children.indexOf(node) : undefined\n    return visitor(node, index, parent)\n  }\n}\n","/**\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('hast').ElementContent} HastElementContent\n * @typedef {import('hast').Nodes} HastNodes\n * @typedef {import('hast').Properties} HastProperties\n * @typedef {import('hast').RootContent} HastRootContent\n * @typedef {import('hast').Text} HastText\n *\n * @typedef {import('mdast').Definition} MdastDefinition\n * @typedef {import('mdast').FootnoteDefinition} MdastFootnoteDefinition\n * @typedef {import('mdast').Nodes} MdastNodes\n * @typedef {import('mdast').Parents} MdastParents\n *\n * @typedef {import('vfile').VFile} VFile\n *\n * @typedef {import('./footer.js').FootnoteBackContentTemplate} FootnoteBackContentTemplate\n * @typedef {import('./footer.js').FootnoteBackLabelTemplate} FootnoteBackLabelTemplate\n */\n\n/**\n * @callback Handler\n *   Handle a node.\n * @param {State} state\n *   Info passed around.\n * @param {any} node\n *   mdast node to handle.\n * @param {MdastParents | undefined} parent\n *   Parent of `node`.\n * @returns {Array | HastElementContent | undefined}\n *   hast node.\n *\n * @typedef {Partial>} Handlers\n *   Handle nodes.\n *\n * @typedef Options\n *   Configuration (optional).\n * @property {boolean | null | undefined} [allowDangerousHtml=false]\n *   Whether to persist raw HTML in markdown in the hast tree (default:\n *   `false`).\n * @property {string | null | undefined} [clobberPrefix='user-content-']\n *   Prefix to use before the `id` property on footnotes to prevent them from\n *   *clobbering* (default: `'user-content-'`).\n *\n *   Pass `''` for trusted markdown and when you are careful with\n *   polyfilling.\n *   You could pass a different prefix.\n *\n *   DOM clobbering is this:\n *\n *   ```html\n *   

\n * \n * ```\n *\n * The above example shows that elements are made available by browsers, by\n * their ID, on the `window` object.\n * This is a security risk because you might be expecting some other variable\n * at that place.\n * It can also break polyfills.\n * Using a prefix solves these problems.\n * @property {VFile | null | undefined} [file]\n * Corresponding virtual file representing the input document (optional).\n * @property {FootnoteBackContentTemplate | string | null | undefined} [footnoteBackContent]\n * Content of the backreference back to references (default: `defaultFootnoteBackContent`).\n *\n * The default value is:\n *\n * ```js\n * function defaultFootnoteBackContent(_, rereferenceIndex) {\n * const result = [{type: 'text', value: '↩'}]\n *\n * if (rereferenceIndex > 1) {\n * result.push({\n * type: 'element',\n * tagName: 'sup',\n * properties: {},\n * children: [{type: 'text', value: String(rereferenceIndex)}]\n * })\n * }\n *\n * return result\n * }\n * ```\n *\n * This content is used in the `a` element of each backreference (the `↩`\n * links).\n * @property {FootnoteBackLabelTemplate | string | null | undefined} [footnoteBackLabel]\n * Label to describe the backreference back to references (default:\n * `defaultFootnoteBackLabel`).\n *\n * The default value is:\n *\n * ```js\n * function defaultFootnoteBackLabel(referenceIndex, rereferenceIndex) {\n * return (\n * 'Back to reference ' +\n * (referenceIndex + 1) +\n * (rereferenceIndex > 1 ? '-' + rereferenceIndex : '')\n * )\n * }\n * ```\n *\n * Change it when the markdown is not in English.\n *\n * This label is used in the `ariaLabel` property on each backreference\n * (the `↩` links).\n * It affects users of assistive technology.\n * @property {string | null | undefined} [footnoteLabel='Footnotes']\n * Textual label to use for the footnotes section (default: `'Footnotes'`).\n *\n * Change it when the markdown is not in English.\n *\n * This label is typically hidden visually (assuming a `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass different properties with the `footnoteLabelProperties` option.\n * @property {HastProperties | null | undefined} [footnoteLabelProperties={className: ['sr-only']}]\n * Properties to use on the footnote label (default: `{className:\n * ['sr-only']}`).\n *\n * Change it to show the label and add other properties.\n *\n * This label is typically hidden visually (assuming an `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass an empty string.\n * You can also add different properties.\n *\n * > **Note**: `id: 'footnote-label'` is always added, because footnote\n * > calls use it with `aria-describedby` to provide an accessible label.\n * @property {string | null | undefined} [footnoteLabelTagName='h2']\n * HTML tag name to use for the footnote label element (default: `'h2'`).\n *\n * Change it to match your document structure.\n *\n * This label is typically hidden visually (assuming a `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass different properties with the `footnoteLabelProperties` option.\n * @property {Handlers | null | undefined} [handlers]\n * Extra handlers for nodes (optional).\n * @property {Array | null | undefined} [passThrough]\n * List of custom mdast node types to pass through (keep) in hast (note that\n * the node itself is passed, but eventual children are transformed)\n * (optional).\n * @property {Handler | null | undefined} [unknownHandler]\n * Handler for all unknown nodes (optional).\n *\n * @typedef State\n * Info passed around.\n * @property {(node: MdastNodes) => Array} all\n * Transform the children of an mdast parent to hast.\n * @property {(from: MdastNodes, to: Type) => HastElement | Type} applyData\n * Honor the `data` of `from`, and generate an element instead of `node`.\n * @property {Map} definitionById\n * Definitions by their identifier.\n * @property {Map} footnoteById\n * Footnote definitions by their identifier.\n * @property {Map} footnoteCounts\n * Counts for how often the same footnote was called.\n * @property {Array} footnoteOrder\n * Identifiers of order when footnote calls first appear in tree order.\n * @property {Handlers} handlers\n * Applied handlers.\n * @property {(node: MdastNodes, parent: MdastParents | undefined) => Array | HastElementContent | undefined} one\n * Transform an mdast node to hast.\n * @property {Options} options\n * Configuration.\n * @property {(from: MdastNodes, node: HastNodes) => undefined} patch\n * Copy a node’s positional info.\n * @property {(nodes: Array, loose?: boolean | undefined) => Array} wrap\n * Wrap `nodes` with line endings between each node, adds initial/final line endings when `loose`.\n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {visit} from 'unist-util-visit'\nimport {position} from 'unist-util-position'\nimport {handlers as defaultHandlers} from './handlers/index.js'\n\nconst own = {}.hasOwnProperty\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Create `state` from an mdast tree.\n *\n * @param {MdastNodes} tree\n * mdast node to transform.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {State}\n * `state` function.\n */\nexport function createState(tree, options) {\n const settings = options || emptyOptions\n /** @type {Map} */\n const definitionById = new Map()\n /** @type {Map} */\n const footnoteById = new Map()\n /** @type {Map} */\n const footnoteCounts = new Map()\n /** @type {Handlers} */\n // @ts-expect-error: the root handler returns a root.\n // Hard to type.\n const handlers = {...defaultHandlers, ...settings.handlers}\n\n /** @type {State} */\n const state = {\n all,\n applyData,\n definitionById,\n footnoteById,\n footnoteCounts,\n footnoteOrder: [],\n handlers,\n one,\n options: settings,\n patch,\n wrap\n }\n\n visit(tree, function (node) {\n if (node.type === 'definition' || node.type === 'footnoteDefinition') {\n const map = node.type === 'definition' ? definitionById : footnoteById\n const id = String(node.identifier).toUpperCase()\n\n // Mimick CM behavior of link definitions.\n // See: .\n if (!map.has(id)) {\n // @ts-expect-error: node type matches map.\n map.set(id, node)\n }\n }\n })\n\n return state\n\n /**\n * Transform an mdast node into a hast node.\n *\n * @param {MdastNodes} node\n * mdast node.\n * @param {MdastParents | undefined} [parent]\n * Parent of `node`.\n * @returns {Array | HastElementContent | undefined}\n * Resulting hast node.\n */\n function one(node, parent) {\n const type = node.type\n const handle = state.handlers[type]\n\n if (own.call(state.handlers, type) && handle) {\n return handle(state, node, parent)\n }\n\n if (state.options.passThrough && state.options.passThrough.includes(type)) {\n if ('children' in node) {\n const {children, ...shallow} = node\n const result = structuredClone(shallow)\n // @ts-expect-error: TS doesn’t understand…\n result.children = state.all(node)\n // @ts-expect-error: TS doesn’t understand…\n return result\n }\n\n // @ts-expect-error: it’s custom.\n return structuredClone(node)\n }\n\n const unknown = state.options.unknownHandler || defaultUnknownHandler\n\n return unknown(state, node, parent)\n }\n\n /**\n * Transform the children of an mdast node into hast nodes.\n *\n * @param {MdastNodes} parent\n * mdast node to compile\n * @returns {Array}\n * Resulting hast nodes.\n */\n function all(parent) {\n /** @type {Array} */\n const values = []\n\n if ('children' in parent) {\n const nodes = parent.children\n let index = -1\n while (++index < nodes.length) {\n const result = state.one(nodes[index], parent)\n\n // To do: see if we van clean this? Can we merge texts?\n if (result) {\n if (index && nodes[index - 1].type === 'break') {\n if (!Array.isArray(result) && result.type === 'text') {\n result.value = trimMarkdownSpaceStart(result.value)\n }\n\n if (!Array.isArray(result) && result.type === 'element') {\n const head = result.children[0]\n\n if (head && head.type === 'text') {\n head.value = trimMarkdownSpaceStart(head.value)\n }\n }\n }\n\n if (Array.isArray(result)) {\n values.push(...result)\n } else {\n values.push(result)\n }\n }\n }\n }\n\n return values\n }\n}\n\n/**\n * Copy a node’s positional info.\n *\n * @param {MdastNodes} from\n * mdast node to copy from.\n * @param {HastNodes} to\n * hast node to copy into.\n * @returns {undefined}\n * Nothing.\n */\nfunction patch(from, to) {\n if (from.position) to.position = position(from)\n}\n\n/**\n * Honor the `data` of `from` and maybe generate an element instead of `to`.\n *\n * @template {HastNodes} Type\n * Node type.\n * @param {MdastNodes} from\n * mdast node to use data from.\n * @param {Type} to\n * hast node to change.\n * @returns {HastElement | Type}\n * Nothing.\n */\nfunction applyData(from, to) {\n /** @type {HastElement | Type} */\n let result = to\n\n // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n if (from && from.data) {\n const hName = from.data.hName\n const hChildren = from.data.hChildren\n const hProperties = from.data.hProperties\n\n if (typeof hName === 'string') {\n // Transforming the node resulted in an element with a different name\n // than wanted:\n if (result.type === 'element') {\n result.tagName = hName\n }\n // Transforming the node resulted in a non-element, which happens for\n // raw, text, and root nodes (unless custom handlers are passed).\n // The intent of `hName` is to create an element, but likely also to keep\n // the content around (otherwise: pass `hChildren`).\n else {\n /** @type {Array} */\n // @ts-expect-error: assume no doctypes in `root`.\n const children = 'children' in result ? result.children : [result]\n result = {type: 'element', tagName: hName, properties: {}, children}\n }\n }\n\n if (result.type === 'element' && hProperties) {\n Object.assign(result.properties, structuredClone(hProperties))\n }\n\n if (\n 'children' in result &&\n result.children &&\n hChildren !== null &&\n hChildren !== undefined\n ) {\n result.children = hChildren\n }\n }\n\n return result\n}\n\n/**\n * Transform an unknown node.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastNodes} node\n * Unknown mdast node.\n * @returns {HastElement | HastText}\n * Resulting hast node.\n */\nfunction defaultUnknownHandler(state, node) {\n const data = node.data || {}\n /** @type {HastElement | HastText} */\n const result =\n 'value' in node &&\n !(own.call(data, 'hProperties') || own.call(data, 'hChildren'))\n ? {type: 'text', value: node.value}\n : {\n type: 'element',\n tagName: 'div',\n properties: {},\n children: state.all(node)\n }\n\n state.patch(node, result)\n return state.applyData(node, result)\n}\n\n/**\n * Wrap `nodes` with line endings between each node.\n *\n * @template {HastRootContent} Type\n * Node type.\n * @param {Array} nodes\n * List of nodes to wrap.\n * @param {boolean | undefined} [loose=false]\n * Whether to add line endings at start and end (default: `false`).\n * @returns {Array}\n * Wrapped nodes.\n */\nexport function wrap(nodes, loose) {\n /** @type {Array} */\n const result = []\n let index = -1\n\n if (loose) {\n result.push({type: 'text', value: '\\n'})\n }\n\n while (++index < nodes.length) {\n if (index) result.push({type: 'text', value: '\\n'})\n result.push(nodes[index])\n }\n\n if (loose && nodes.length > 0) {\n result.push({type: 'text', value: '\\n'})\n }\n\n return result\n}\n\n/**\n * Trim spaces and tabs at the start of `value`.\n *\n * @param {string} value\n * Value to trim.\n * @returns {string}\n * Result.\n */\nfunction trimMarkdownSpaceStart(value) {\n let index = 0\n let code = value.charCodeAt(index)\n\n while (code === 9 || code === 32) {\n index++\n code = value.charCodeAt(index)\n }\n\n return value.slice(index)\n}\n","/**\n * @typedef {import('hast').Nodes} HastNodes\n * @typedef {import('mdast').Nodes} MdastNodes\n * @typedef {import('./state.js').Options} Options\n */\n\nimport {ok as assert} from 'devlop'\nimport {footer} from './footer.js'\nimport {createState} from './state.js'\n\n/**\n * Transform mdast to hast.\n *\n * ##### Notes\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most utilities ignore `raw` nodes but two notable ones don’t:\n *\n * * `hast-util-to-html` also has an option `allowDangerousHtml` which will\n * output the raw HTML.\n * This is typically discouraged as noted by the option name but is useful\n * if you completely trust authors\n * * `hast-util-raw` can handle the raw embedded HTML strings by parsing them\n * into standard hast nodes (`element`, `text`, etc).\n * This is a heavy task as it needs a full HTML parser, but it is the only\n * way to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark, which we follow by default.\n * They are supported by GitHub, so footnotes can be enabled in markdown with\n * `mdast-util-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes, which is hidden for sighted users but shown to\n * assistive technology.\n * When your page is not in English, you must define translated values.\n *\n * Back references use ARIA attributes, but the section label itself uses a\n * heading that is hidden with an `sr-only` class.\n * To show it to sighted users, define different attributes in\n * `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem, as it links footnote calls to footnote\n * definitions on the page through `id` attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n *

\n * \n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * Example: headings (DOM clobbering) in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value` (and doesn’t have `data.hName`,\n * `data.hProperties`, or `data.hChildren`, see later), create a hast `text`\n * node\n * * otherwise, create a `
` element (which could be changed with\n * `data.hName`), with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @param {MdastNodes} tree\n * mdast tree.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {HastNodes}\n * hast tree.\n */\nexport function toHast(tree, options) {\n const state = createState(tree, options)\n const node = state.one(tree, undefined)\n const foot = footer(state)\n /** @type {HastNodes} */\n const result = Array.isArray(node)\n ? {type: 'root', children: node}\n : node || {type: 'root', children: []}\n\n if (foot) {\n // If there’s a footer, there were definitions, meaning block\n // content.\n // So `result` is a parent node.\n assert('children' in result)\n result.children.push({type: 'text', value: '\\n'}, foot)\n }\n\n return result\n}\n","// Include `data` fields in mdast and `raw` nodes in hast.\n/// \n\n/**\n * @import {Root as HastRoot} from 'hast'\n * @import {Root as MdastRoot} from 'mdast'\n * @import {Options as ToHastOptions} from 'mdast-util-to-hast'\n * @import {Processor} from 'unified'\n * @import {VFile} from 'vfile'\n */\n\n/**\n * @typedef {Omit} Options\n *\n * @callback TransformBridge\n * Bridge-mode.\n *\n * Runs the destination with the new hast tree.\n * Discards result.\n * @param {MdastRoot} tree\n * Tree.\n * @param {VFile} file\n * File.\n * @returns {Promise}\n * Nothing.\n *\n * @callback TransformMutate\n * Mutate-mode.\n *\n * Further transformers run on the hast tree.\n * @param {MdastRoot} tree\n * Tree.\n * @param {VFile} file\n * File.\n * @returns {HastRoot}\n * Tree (hast).\n */\n\nimport {toHast} from 'mdast-util-to-hast'\n\n/**\n * Turn markdown into HTML.\n *\n * ##### Notes\n *\n * ###### Signature\n *\n * * if a processor is given, runs the (rehype) plugins used on it with a\n * hast tree, then discards the result (*bridge mode*)\n * * otherwise, returns a hast tree, the plugins used after `remarkRehype`\n * are rehype plugins (*mutate mode*)\n *\n * > 👉 **Note**: It’s highly unlikely that you want to pass a `processor`.\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most plugins ignore `raw` nodes but two notable ones don’t:\n *\n * * `rehype-stringify` also has an option `allowDangerousHtml` which will\n * output the raw HTML.\n * This is typically discouraged as noted by the option name but is useful if\n * you completely trust authors\n * * `rehype-raw` can handle the raw embedded HTML strings by parsing them\n * into standard hast nodes (`element`, `text`, etc).\n * This is a heavy task as it needs a full HTML parser, but it is the only way\n * to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark, which we follow by default.\n * They are supported by GitHub, so footnotes can be enabled in markdown with\n * `remark-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes, which is hidden for sighted users but shown to\n * assistive technology.\n * When your page is not in English, you must define translated values.\n *\n * Back references use ARIA attributes, but the section label itself uses a\n * heading that is hidden with an `sr-only` class.\n * To show it to sighted users, define different attributes in\n * `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem, as it links footnote calls to footnote\n * definitions on the page through `id` attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n *

\n * \n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * *Example: headings (DOM clobbering)* in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value` (and doesn’t have `data.hName`,\n * `data.hProperties`, or `data.hChildren`, see later), create a hast `text`\n * node\n * * otherwise, create a `
` element (which could be changed with\n * `data.hName`), with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @overload\n * @param {Processor} processor\n * @param {Readonly | null | undefined} [options]\n * @returns {TransformBridge}\n *\n * @overload\n * @param {Readonly | null | undefined} [options]\n * @returns {TransformMutate}\n *\n * @param {Readonly | Processor | null | undefined} [destination]\n * Processor or configuration (optional).\n * @param {Readonly | null | undefined} [options]\n * When a processor was given, configuration (optional).\n * @returns {TransformBridge | TransformMutate}\n * Transform.\n */\nexport default function remarkRehype(destination, options) {\n if (destination && 'run' in destination) {\n /**\n * @type {TransformBridge}\n */\n return async function (tree, file) {\n // Cast because root in -> root out.\n const hastTree = /** @type {HastRoot} */ (\n toHast(tree, {file, ...options})\n )\n await destination.run(hastTree, file)\n }\n }\n\n /**\n * @type {TransformMutate}\n */\n return function (tree, file) {\n // Cast because root in -> root out.\n // To do: in the future, disallow ` || options` fallback.\n // With `unified-engine`, `destination` can be `undefined` but\n // `options` will be the file set.\n // We should not pass that as `options`.\n return /** @type {HastRoot} */ (\n toHast(tree, {file, ...(destination || options)})\n )\n }\n}\n","/**\n * Throw a given error.\n *\n * @param {Error|null|undefined} [error]\n * Maybe error.\n * @returns {asserts error is null|undefined}\n */\nexport function bail(error) {\n if (error) {\n throw error\n }\n}\n","'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n","export default function isPlainObject(value) {\n\tif (typeof value !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);\n}\n","// To do: remove `void`s\n// To do: remove `null` from output of our APIs, allow it as user APIs.\n\n/**\n * @typedef {(error?: Error | null | undefined, ...output: Array) => void} Callback\n * Callback.\n *\n * @typedef {(...input: Array) => any} Middleware\n * Ware.\n *\n * @typedef Pipeline\n * Pipeline.\n * @property {Run} run\n * Run the pipeline.\n * @property {Use} use\n * Add middleware.\n *\n * @typedef {(...input: Array) => void} Run\n * Call all middleware.\n *\n * Calls `done` on completion with either an error or the output of the\n * last middleware.\n *\n * > 👉 **Note**: as the length of input defines whether async functions get a\n * > `next` function,\n * > it’s recommended to keep `input` at one value normally.\n\n *\n * @typedef {(fn: Middleware) => Pipeline} Use\n * Add middleware.\n */\n\n/**\n * Create new middleware.\n *\n * @returns {Pipeline}\n * Pipeline.\n */\nexport function trough() {\n /** @type {Array} */\n const fns = []\n /** @type {Pipeline} */\n const pipeline = {run, use}\n\n return pipeline\n\n /** @type {Run} */\n function run(...values) {\n let middlewareIndex = -1\n /** @type {Callback} */\n const callback = values.pop()\n\n if (typeof callback !== 'function') {\n throw new TypeError('Expected function as last argument, not ' + callback)\n }\n\n next(null, ...values)\n\n /**\n * Run the next `fn`, or we’re done.\n *\n * @param {Error | null | undefined} error\n * @param {Array} output\n */\n function next(error, ...output) {\n const fn = fns[++middlewareIndex]\n let index = -1\n\n if (error) {\n callback(error)\n return\n }\n\n // Copy non-nullish input into values.\n while (++index < values.length) {\n if (output[index] === null || output[index] === undefined) {\n output[index] = values[index]\n }\n }\n\n // Save the newly created `output` for the next call.\n values = output\n\n // Next or done.\n if (fn) {\n wrap(fn, next)(...output)\n } else {\n callback(null, ...output)\n }\n }\n }\n\n /** @type {Use} */\n function use(middelware) {\n if (typeof middelware !== 'function') {\n throw new TypeError(\n 'Expected `middelware` to be a function, not ' + middelware\n )\n }\n\n fns.push(middelware)\n return pipeline\n }\n}\n\n/**\n * Wrap `middleware` into a uniform interface.\n *\n * You can pass all input to the resulting function.\n * `callback` is then called with the output of `middleware`.\n *\n * If `middleware` accepts more arguments than the later given in input,\n * an extra `done` function is passed to it after that input,\n * which must be called by `middleware`.\n *\n * The first value in `input` is the main input value.\n * All other input values are the rest input values.\n * The values given to `callback` are the input values,\n * merged with every non-nullish output value.\n *\n * * if `middleware` throws an error,\n * returns a promise that is rejected,\n * or calls the given `done` function with an error,\n * `callback` is called with that error\n * * if `middleware` returns a value or returns a promise that is resolved,\n * that value is the main output value\n * * if `middleware` calls `done`,\n * all non-nullish values except for the first one (the error) overwrite the\n * output values\n *\n * @param {Middleware} middleware\n * Function to wrap.\n * @param {Callback} callback\n * Callback called with the output of `middleware`.\n * @returns {Run}\n * Wrapped middleware.\n */\nexport function wrap(middleware, callback) {\n /** @type {boolean} */\n let called\n\n return wrapped\n\n /**\n * Call `middleware`.\n * @this {any}\n * @param {Array} parameters\n * @returns {void}\n */\n function wrapped(...parameters) {\n const fnExpectsCallback = middleware.length > parameters.length\n /** @type {any} */\n let result\n\n if (fnExpectsCallback) {\n parameters.push(done)\n }\n\n try {\n result = middleware.apply(this, parameters)\n } catch (error) {\n const exception = /** @type {Error} */ (error)\n\n // Well, this is quite the pickle.\n // `middleware` received a callback and called it synchronously, but that\n // threw an error.\n // The only thing left to do is to throw the thing instead.\n if (fnExpectsCallback && called) {\n throw exception\n }\n\n return done(exception)\n }\n\n if (!fnExpectsCallback) {\n if (result && result.then && typeof result.then === 'function') {\n result.then(then, done)\n } else if (result instanceof Error) {\n done(result)\n } else {\n then(result)\n }\n }\n }\n\n /**\n * Call `callback`, only once.\n *\n * @type {Callback}\n */\n function done(error, ...output) {\n if (!called) {\n called = true\n callback(error, ...output)\n }\n }\n\n /**\n * Call `done` with one value.\n *\n * @param {any} [value]\n */\n function then(value) {\n done(null, value)\n }\n}\n","// A derivative work based on:\n// .\n// Which is licensed:\n//\n// MIT License\n//\n// Copyright (c) 2013 James Halliday\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A derivative work based on:\n//\n// Parts of that are extracted from Node’s internal `path` module:\n// .\n// Which is licensed:\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\nexport const minpath = {basename, dirname, extname, join, sep: '/'}\n\n/* eslint-disable max-depth, complexity */\n\n/**\n * Get the basename from a path.\n *\n * @param {string} path\n * File path.\n * @param {string | null | undefined} [extname]\n * Extension to strip.\n * @returns {string}\n * Stem or basename.\n */\nfunction basename(path, extname) {\n if (extname !== undefined && typeof extname !== 'string') {\n throw new TypeError('\"ext\" argument must be a string')\n }\n\n assertPath(path)\n let start = 0\n let end = -1\n let index = path.length\n /** @type {boolean | undefined} */\n let seenNonSlash\n\n if (\n extname === undefined ||\n extname.length === 0 ||\n extname.length > path.length\n ) {\n while (index--) {\n if (path.codePointAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // path component.\n seenNonSlash = true\n end = index + 1\n }\n }\n\n return end < 0 ? '' : path.slice(start, end)\n }\n\n if (extname === path) {\n return ''\n }\n\n let firstNonSlashEnd = -1\n let extnameIndex = extname.length - 1\n\n while (index--) {\n if (path.codePointAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else {\n if (firstNonSlashEnd < 0) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching.\n seenNonSlash = true\n firstNonSlashEnd = index + 1\n }\n\n if (extnameIndex > -1) {\n // Try to match the explicit extension.\n if (path.codePointAt(index) === extname.codePointAt(extnameIndex--)) {\n if (extnameIndex < 0) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = index\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extnameIndex = -1\n end = firstNonSlashEnd\n }\n }\n }\n }\n\n if (start === end) {\n end = firstNonSlashEnd\n } else if (end < 0) {\n end = path.length\n }\n\n return path.slice(start, end)\n}\n\n/**\n * Get the dirname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\n */\nfunction dirname(path) {\n assertPath(path)\n\n if (path.length === 0) {\n return '.'\n }\n\n let end = -1\n let index = path.length\n /** @type {boolean | undefined} */\n let unmatchedSlash\n\n // Prefix `--` is important to not run on `0`.\n while (--index) {\n if (path.codePointAt(index) === 47 /* `/` */) {\n if (unmatchedSlash) {\n end = index\n break\n }\n } else if (!unmatchedSlash) {\n // We saw the first non-path separator\n unmatchedSlash = true\n }\n }\n\n return end < 0\n ? path.codePointAt(0) === 47 /* `/` */\n ? '/'\n : '.'\n : end === 1 && path.codePointAt(0) === 47 /* `/` */\n ? '//'\n : path.slice(0, end)\n}\n\n/**\n * Get an extname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * Extname.\n */\nfunction extname(path) {\n assertPath(path)\n\n let index = path.length\n\n let end = -1\n let startPart = 0\n let startDot = -1\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find.\n let preDotState = 0\n /** @type {boolean | undefined} */\n let unmatchedSlash\n\n while (index--) {\n const code = path.codePointAt(index)\n\n if (code === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (unmatchedSlash) {\n startPart = index + 1\n break\n }\n\n continue\n }\n\n if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // extension.\n unmatchedSlash = true\n end = index + 1\n }\n\n if (code === 46 /* `.` */) {\n // If this is our first dot, mark it as the start of our extension.\n if (startDot < 0) {\n startDot = index\n } else if (preDotState !== 1) {\n preDotState = 1\n }\n } else if (startDot > -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension.\n preDotState = -1\n }\n }\n\n if (\n startDot < 0 ||\n end < 0 ||\n // We saw a non-dot character immediately before the dot.\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly `..`.\n (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1)\n ) {\n return ''\n }\n\n return path.slice(startDot, end)\n}\n\n/**\n * Join segments from a path.\n *\n * @param {Array} segments\n * Path segments.\n * @returns {string}\n * File path.\n */\nfunction join(...segments) {\n let index = -1\n /** @type {string | undefined} */\n let joined\n\n while (++index < segments.length) {\n assertPath(segments[index])\n\n if (segments[index]) {\n joined =\n joined === undefined ? segments[index] : joined + '/' + segments[index]\n }\n }\n\n return joined === undefined ? '.' : normalize(joined)\n}\n\n/**\n * Normalize a basic file path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\n */\n// Note: `normalize` is not exposed as `path.normalize`, so some code is\n// manually removed from it.\nfunction normalize(path) {\n assertPath(path)\n\n const absolute = path.codePointAt(0) === 47 /* `/` */\n\n // Normalize the path according to POSIX rules.\n let value = normalizeString(path, !absolute)\n\n if (value.length === 0 && !absolute) {\n value = '.'\n }\n\n if (value.length > 0 && path.codePointAt(path.length - 1) === 47 /* / */) {\n value += '/'\n }\n\n return absolute ? '/' + value : value\n}\n\n/**\n * Resolve `.` and `..` elements in a path with directory names.\n *\n * @param {string} path\n * File path.\n * @param {boolean} allowAboveRoot\n * Whether `..` can move above root.\n * @returns {string}\n * File path.\n */\nfunction normalizeString(path, allowAboveRoot) {\n let result = ''\n let lastSegmentLength = 0\n let lastSlash = -1\n let dots = 0\n let index = -1\n /** @type {number | undefined} */\n let code\n /** @type {number} */\n let lastSlashIndex\n\n while (++index <= path.length) {\n if (index < path.length) {\n code = path.codePointAt(index)\n } else if (code === 47 /* `/` */) {\n break\n } else {\n code = 47 /* `/` */\n }\n\n if (code === 47 /* `/` */) {\n if (lastSlash === index - 1 || dots === 1) {\n // Empty.\n } else if (lastSlash !== index - 1 && dots === 2) {\n if (\n result.length < 2 ||\n lastSegmentLength !== 2 ||\n result.codePointAt(result.length - 1) !== 46 /* `.` */ ||\n result.codePointAt(result.length - 2) !== 46 /* `.` */\n ) {\n if (result.length > 2) {\n lastSlashIndex = result.lastIndexOf('/')\n\n if (lastSlashIndex !== result.length - 1) {\n if (lastSlashIndex < 0) {\n result = ''\n lastSegmentLength = 0\n } else {\n result = result.slice(0, lastSlashIndex)\n lastSegmentLength = result.length - 1 - result.lastIndexOf('/')\n }\n\n lastSlash = index\n dots = 0\n continue\n }\n } else if (result.length > 0) {\n result = ''\n lastSegmentLength = 0\n lastSlash = index\n dots = 0\n continue\n }\n }\n\n if (allowAboveRoot) {\n result = result.length > 0 ? result + '/..' : '..'\n lastSegmentLength = 2\n }\n } else {\n if (result.length > 0) {\n result += '/' + path.slice(lastSlash + 1, index)\n } else {\n result = path.slice(lastSlash + 1, index)\n }\n\n lastSegmentLength = index - lastSlash - 1\n }\n\n lastSlash = index\n dots = 0\n } else if (code === 46 /* `.` */ && dots > -1) {\n dots++\n } else {\n dots = -1\n }\n }\n\n return result\n}\n\n/**\n * Make sure `path` is a string.\n *\n * @param {string} path\n * File path.\n * @returns {asserts path is string}\n * Nothing.\n */\nfunction assertPath(path) {\n if (typeof path !== 'string') {\n throw new TypeError(\n 'Path must be a string. Received ' + JSON.stringify(path)\n )\n }\n}\n\n/* eslint-enable max-depth, complexity */\n","// Somewhat based on:\n// .\n// But I don’t think one tiny line of code can be copyrighted. 😅\nexport const minproc = {cwd}\n\nfunction cwd() {\n return '/'\n}\n","/**\n * Checks if a value has the shape of a WHATWG URL object.\n *\n * Using a symbol or instanceof would not be able to recognize URL objects\n * coming from other implementations (e.g. in Electron), so instead we are\n * checking some well known properties for a lack of a better test.\n *\n * We use `href` and `protocol` as they are the only properties that are\n * easy to retrieve and calculate due to the lazy nature of the getters.\n *\n * We check for auth attribute to distinguish legacy url instance with\n * WHATWG URL instance.\n *\n * @param {unknown} fileUrlOrPath\n * File path or URL.\n * @returns {fileUrlOrPath is URL}\n * Whether it’s a URL.\n */\n// From: \nexport function isUrl(fileUrlOrPath) {\n return Boolean(\n fileUrlOrPath !== null &&\n typeof fileUrlOrPath === 'object' &&\n 'href' in fileUrlOrPath &&\n fileUrlOrPath.href &&\n 'protocol' in fileUrlOrPath &&\n fileUrlOrPath.protocol &&\n // @ts-expect-error: indexing is fine.\n fileUrlOrPath.auth === undefined\n )\n}\n","import {isUrl} from './minurl.shared.js'\n\nexport {isUrl} from './minurl.shared.js'\n\n// See: \n\n/**\n * @param {URL | string} path\n * File URL.\n * @returns {string}\n * File URL.\n */\nexport function urlToPath(path) {\n if (typeof path === 'string') {\n path = new URL(path)\n } else if (!isUrl(path)) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'The \"path\" argument must be of type string or an instance of URL. Received `' +\n path +\n '`'\n )\n error.code = 'ERR_INVALID_ARG_TYPE'\n throw error\n }\n\n if (path.protocol !== 'file:') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError('The URL must be of scheme file')\n error.code = 'ERR_INVALID_URL_SCHEME'\n throw error\n }\n\n return getPathFromURLPosix(path)\n}\n\n/**\n * Get a path from a POSIX URL.\n *\n * @param {URL} url\n * URL.\n * @returns {string}\n * File path.\n */\nfunction getPathFromURLPosix(url) {\n if (url.hostname !== '') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL host must be \"localhost\" or empty on darwin'\n )\n error.code = 'ERR_INVALID_FILE_URL_HOST'\n throw error\n }\n\n const pathname = url.pathname\n let index = -1\n\n while (++index < pathname.length) {\n if (\n pathname.codePointAt(index) === 37 /* `%` */ &&\n pathname.codePointAt(index + 1) === 50 /* `2` */\n ) {\n const third = pathname.codePointAt(index + 2)\n if (third === 70 /* `F` */ || third === 102 /* `f` */) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL path must not include encoded / characters'\n )\n error.code = 'ERR_INVALID_FILE_URL_PATH'\n throw error\n }\n }\n }\n\n return decodeURIComponent(pathname)\n}\n","/**\n * @import {Node, Point, Position} from 'unist'\n * @import {Options as MessageOptions} from 'vfile-message'\n * @import {Compatible, Data, Map, Options, Value} from 'vfile'\n */\n\n/**\n * @typedef {object & {type: string, position?: Position | undefined}} NodeLike\n */\n\nimport {VFileMessage} from 'vfile-message'\nimport {minpath} from '#minpath'\nimport {minproc} from '#minproc'\nimport {urlToPath, isUrl} from '#minurl'\n\n/**\n * Order of setting (least specific to most), we need this because otherwise\n * `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a\n * stem can be set.\n */\nconst order = /** @type {const} */ ([\n 'history',\n 'path',\n 'basename',\n 'stem',\n 'extname',\n 'dirname'\n])\n\nexport class VFile {\n /**\n * Create a new virtual file.\n *\n * `options` is treated as:\n *\n * * `string` or `Uint8Array` — `{value: options}`\n * * `URL` — `{path: options}`\n * * `VFile` — shallow copies its data over to the new file\n * * `object` — all fields are shallow copied over to the new file\n *\n * Path related fields are set in the following order (least specific to\n * most specific): `history`, `path`, `basename`, `stem`, `extname`,\n * `dirname`.\n *\n * You cannot set `dirname` or `extname` without setting either `history`,\n * `path`, `basename`, or `stem` too.\n *\n * @param {Compatible | null | undefined} [value]\n * File value.\n * @returns\n * New instance.\n */\n constructor(value) {\n /** @type {Options | VFile} */\n let options\n\n if (!value) {\n options = {}\n } else if (isUrl(value)) {\n options = {path: value}\n } else if (typeof value === 'string' || isUint8Array(value)) {\n options = {value}\n } else {\n options = value\n }\n\n /* eslint-disable no-unused-expressions */\n\n /**\n * Base of `path` (default: `process.cwd()` or `'/'` in browsers).\n *\n * @type {string}\n */\n // Prevent calling `cwd` (which could be expensive) if it’s not needed;\n // the empty string will be overridden in the next block.\n this.cwd = 'cwd' in options ? '' : minproc.cwd()\n\n /**\n * Place to store custom info (default: `{}`).\n *\n * It’s OK to store custom data directly on the file but moving it to\n * `data` is recommended.\n *\n * @type {Data}\n */\n this.data = {}\n\n /**\n * List of file paths the file moved between.\n *\n * The first is the original path and the last is the current path.\n *\n * @type {Array}\n */\n this.history = []\n\n /**\n * List of messages associated with the file.\n *\n * @type {Array}\n */\n this.messages = []\n\n /**\n * Raw value.\n *\n * @type {Value}\n */\n this.value\n\n // The below are non-standard, they are “well-known”.\n // As in, used in several tools.\n /**\n * Source map.\n *\n * This type is equivalent to the `RawSourceMap` type from the `source-map`\n * module.\n *\n * @type {Map | null | undefined}\n */\n this.map\n\n /**\n * Custom, non-string, compiled, representation.\n *\n * This is used by unified to store non-string results.\n * One example is when turning markdown into React nodes.\n *\n * @type {unknown}\n */\n this.result\n\n /**\n * Whether a file was saved to disk.\n *\n * This is used by vfile reporters.\n *\n * @type {boolean}\n */\n this.stored\n /* eslint-enable no-unused-expressions */\n\n // Set path related properties in the correct order.\n let index = -1\n\n while (++index < order.length) {\n const field = order[index]\n\n // Note: we specifically use `in` instead of `hasOwnProperty` to accept\n // `vfile`s too.\n if (\n field in options &&\n options[field] !== undefined &&\n options[field] !== null\n ) {\n // @ts-expect-error: TS doesn’t understand basic reality.\n this[field] = field === 'history' ? [...options[field]] : options[field]\n }\n }\n\n /** @type {string} */\n let field\n\n // Set non-path related properties.\n for (field in options) {\n // @ts-expect-error: fine to set other things.\n if (!order.includes(field)) {\n // @ts-expect-error: fine to set other things.\n this[field] = options[field]\n }\n }\n }\n\n /**\n * Get the basename (including extname) (example: `'index.min.js'`).\n *\n * @returns {string | undefined}\n * Basename.\n */\n get basename() {\n return typeof this.path === 'string'\n ? minpath.basename(this.path)\n : undefined\n }\n\n /**\n * Set basename (including extname) (`'index.min.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n *\n * @param {string} basename\n * Basename.\n * @returns {undefined}\n * Nothing.\n */\n set basename(basename) {\n assertNonEmpty(basename, 'basename')\n assertPart(basename, 'basename')\n this.path = minpath.join(this.dirname || '', basename)\n }\n\n /**\n * Get the parent path (example: `'~'`).\n *\n * @returns {string | undefined}\n * Dirname.\n */\n get dirname() {\n return typeof this.path === 'string'\n ? minpath.dirname(this.path)\n : undefined\n }\n\n /**\n * Set the parent path (example: `'~'`).\n *\n * Cannot be set if there’s no `path` yet.\n *\n * @param {string | undefined} dirname\n * Dirname.\n * @returns {undefined}\n * Nothing.\n */\n set dirname(dirname) {\n assertPath(this.basename, 'dirname')\n this.path = minpath.join(dirname || '', this.basename)\n }\n\n /**\n * Get the extname (including dot) (example: `'.js'`).\n *\n * @returns {string | undefined}\n * Extname.\n */\n get extname() {\n return typeof this.path === 'string'\n ? minpath.extname(this.path)\n : undefined\n }\n\n /**\n * Set the extname (including dot) (example: `'.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be set if there’s no `path` yet.\n *\n * @param {string | undefined} extname\n * Extname.\n * @returns {undefined}\n * Nothing.\n */\n set extname(extname) {\n assertPart(extname, 'extname')\n assertPath(this.dirname, 'extname')\n\n if (extname) {\n if (extname.codePointAt(0) !== 46 /* `.` */) {\n throw new Error('`extname` must start with `.`')\n }\n\n if (extname.includes('.', 1)) {\n throw new Error('`extname` cannot contain multiple dots')\n }\n }\n\n this.path = minpath.join(this.dirname, this.stem + (extname || ''))\n }\n\n /**\n * Get the full path (example: `'~/index.min.js'`).\n *\n * @returns {string}\n * Path.\n */\n get path() {\n return this.history[this.history.length - 1]\n }\n\n /**\n * Set the full path (example: `'~/index.min.js'`).\n *\n * Cannot be nullified.\n * You can set a file URL (a `URL` object with a `file:` protocol) which will\n * be turned into a path with `url.fileURLToPath`.\n *\n * @param {URL | string} path\n * Path.\n * @returns {undefined}\n * Nothing.\n */\n set path(path) {\n if (isUrl(path)) {\n path = urlToPath(path)\n }\n\n assertNonEmpty(path, 'path')\n\n if (this.path !== path) {\n this.history.push(path)\n }\n }\n\n /**\n * Get the stem (basename w/o extname) (example: `'index.min'`).\n *\n * @returns {string | undefined}\n * Stem.\n */\n get stem() {\n return typeof this.path === 'string'\n ? minpath.basename(this.path, this.extname)\n : undefined\n }\n\n /**\n * Set the stem (basename w/o extname) (example: `'index.min'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n *\n * @param {string} stem\n * Stem.\n * @returns {undefined}\n * Nothing.\n */\n set stem(stem) {\n assertNonEmpty(stem, 'stem')\n assertPart(stem, 'stem')\n this.path = minpath.join(this.dirname || '', stem + (this.extname || ''))\n }\n\n // Normal prototypal methods.\n /**\n * Create a fatal message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `true` (error; file not usable)\n * and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {never}\n * Never.\n * @throws {VFileMessage}\n * Message.\n */\n fail(causeOrReason, optionsOrParentOrPlace, origin) {\n // @ts-expect-error: the overloads are fine.\n const message = this.message(causeOrReason, optionsOrParentOrPlace, origin)\n\n message.fatal = true\n\n throw message\n }\n\n /**\n * Create an info message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `undefined` (info; change\n * likely not needed) and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n info(causeOrReason, optionsOrParentOrPlace, origin) {\n // @ts-expect-error: the overloads are fine.\n const message = this.message(causeOrReason, optionsOrParentOrPlace, origin)\n\n message.fatal = undefined\n\n return message\n }\n\n /**\n * Create a message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `false` (warning; change may be\n * needed) and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n message(causeOrReason, optionsOrParentOrPlace, origin) {\n const message = new VFileMessage(\n // @ts-expect-error: the overloads are fine.\n causeOrReason,\n optionsOrParentOrPlace,\n origin\n )\n\n if (this.path) {\n message.name = this.path + ':' + message.name\n message.file = this.path\n }\n\n message.fatal = false\n\n this.messages.push(message)\n\n return message\n }\n\n /**\n * Serialize the file.\n *\n * > **Note**: which encodings are supported depends on the engine.\n * > For info on Node.js, see:\n * > .\n *\n * @param {string | null | undefined} [encoding='utf8']\n * Character encoding to understand `value` as when it’s a `Uint8Array`\n * (default: `'utf-8'`).\n * @returns {string}\n * Serialized file.\n */\n toString(encoding) {\n if (this.value === undefined) {\n return ''\n }\n\n if (typeof this.value === 'string') {\n return this.value\n }\n\n const decoder = new TextDecoder(encoding || undefined)\n return decoder.decode(this.value)\n }\n}\n\n/**\n * Assert that `part` is not a path (as in, does not contain `path.sep`).\n *\n * @param {string | null | undefined} part\n * File path part.\n * @param {string} name\n * Part name.\n * @returns {undefined}\n * Nothing.\n */\nfunction assertPart(part, name) {\n if (part && part.includes(minpath.sep)) {\n throw new Error(\n '`' + name + '` cannot be a path: did not expect `' + minpath.sep + '`'\n )\n }\n}\n\n/**\n * Assert that `part` is not empty.\n *\n * @param {string | undefined} part\n * Thing.\n * @param {string} name\n * Part name.\n * @returns {asserts part is string}\n * Nothing.\n */\nfunction assertNonEmpty(part, name) {\n if (!part) {\n throw new Error('`' + name + '` cannot be empty')\n }\n}\n\n/**\n * Assert `path` exists.\n *\n * @param {string | undefined} path\n * Path.\n * @param {string} name\n * Dependency name.\n * @returns {asserts path is string}\n * Nothing.\n */\nfunction assertPath(path, name) {\n if (!path) {\n throw new Error('Setting `' + name + '` requires `path` to be set too')\n }\n}\n\n/**\n * Assert `value` is an `Uint8Array`.\n *\n * @param {unknown} value\n * thing.\n * @returns {value is Uint8Array}\n * Whether `value` is an `Uint8Array`.\n */\nfunction isUint8Array(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'byteLength' in value &&\n 'byteOffset' in value\n )\n}\n","export const CallableInstance =\n /**\n * @type {new , Result>(property: string | symbol) => (...parameters: Parameters) => Result}\n */\n (\n /** @type {unknown} */\n (\n /**\n * @this {Function}\n * @param {string | symbol} property\n * @returns {(...parameters: Array) => unknown}\n */\n function (property) {\n const self = this\n const constr = self.constructor\n const proto = /** @type {Record} */ (\n // Prototypes do exist.\n // type-coverage:ignore-next-line\n constr.prototype\n )\n const value = proto[property]\n /** @type {(...parameters: Array) => unknown} */\n const apply = function () {\n return value.apply(apply, arguments)\n }\n\n Object.setPrototypeOf(apply, proto)\n\n // Not needed for us in `unified`: we only call this on the `copy`\n // function,\n // and we don't need to add its fields (`length`, `name`)\n // over.\n // See also: GH-246.\n // const names = Object.getOwnPropertyNames(value)\n //\n // for (const p of names) {\n // const descriptor = Object.getOwnPropertyDescriptor(value, p)\n // if (descriptor) Object.defineProperty(apply, p, descriptor)\n // }\n\n return apply\n }\n )\n )\n","/**\n * @typedef {import('trough').Pipeline} Pipeline\n *\n * @typedef {import('unist').Node} Node\n *\n * @typedef {import('vfile').Compatible} Compatible\n * @typedef {import('vfile').Value} Value\n *\n * @typedef {import('../index.js').CompileResultMap} CompileResultMap\n * @typedef {import('../index.js').Data} Data\n * @typedef {import('../index.js').Settings} Settings\n */\n\n/**\n * @typedef {CompileResultMap[keyof CompileResultMap]} CompileResults\n * Acceptable results from compilers.\n *\n * To register custom results, add them to\n * {@linkcode CompileResultMap}.\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The node that the compiler receives (default: `Node`).\n * @template {CompileResults} [Result=CompileResults]\n * The thing that the compiler yields (default: `CompileResults`).\n * @callback Compiler\n * A **compiler** handles the compiling of a syntax tree to something else\n * (in most cases, text) (TypeScript type).\n *\n * It is used in the stringify phase and called with a {@linkcode Node}\n * and {@linkcode VFile} representation of the document to compile.\n * It should return the textual representation of the given tree (typically\n * `string`).\n *\n * > **Note**: unified typically compiles by serializing: most compilers\n * > return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n * @param {Tree} tree\n * Tree to compile.\n * @param {VFile} file\n * File associated with `tree`.\n * @returns {Result}\n * New content: compiled text (`string` or `Uint8Array`, for `file.value`) or\n * something else (for `file.result`).\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The node that the parser yields (default: `Node`)\n * @callback Parser\n * A **parser** handles the parsing of text to a syntax tree.\n *\n * It is used in the parse phase and is called with a `string` and\n * {@linkcode VFile} of the document to parse.\n * It must return the syntax tree representation of the given file\n * ({@linkcode Node}).\n * @param {string} document\n * Document to parse.\n * @param {VFile} file\n * File associated with `document`.\n * @returns {Tree}\n * Node representing the given file.\n */\n\n/**\n * @typedef {(\n * Plugin, any, any> |\n * PluginTuple, any, any> |\n * Preset\n * )} Pluggable\n * Union of the different ways to add plugins and settings.\n */\n\n/**\n * @typedef {Array} PluggableList\n * List of plugins and presets.\n */\n\n// Note: we can’t use `callback` yet as it messes up `this`:\n// .\n/**\n * @template {Array} [PluginParameters=[]]\n * Arguments passed to the plugin (default: `[]`, the empty tuple).\n * @template {Node | string | undefined} [Input=Node]\n * Value that is expected as input (default: `Node`).\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node it expects.\n * * If the plugin sets a {@linkcode Parser}, this should be\n * `string`.\n * * If the plugin sets a {@linkcode Compiler}, this should be the\n * node it expects.\n * @template [Output=Input]\n * Value that is yielded as output (default: `Input`).\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node that that yields.\n * * If the plugin sets a {@linkcode Parser}, this should be the\n * node that it yields.\n * * If the plugin sets a {@linkcode Compiler}, this should be\n * result it yields.\n * @typedef {(\n * (this: Processor, ...parameters: PluginParameters) =>\n * Input extends string ? // Parser.\n * Output extends Node | undefined ? undefined | void : never :\n * Output extends CompileResults ? // Compiler.\n * Input extends Node | undefined ? undefined | void : never :\n * Transformer<\n * Input extends Node ? Input : Node,\n * Output extends Node ? Output : Node\n * > | undefined | void\n * )} Plugin\n * Single plugin.\n *\n * Plugins configure the processors they are applied on in the following\n * ways:\n *\n * * they change the processor, such as the parser, the compiler, or by\n * configuring data\n * * they specify how to handle trees and files\n *\n * In practice, they are functions that can receive options and configure the\n * processor (`this`).\n *\n * > **Note**: plugins are called when the processor is *frozen*, not when\n * > they are applied.\n */\n\n/**\n * Tuple of a plugin and its configuration.\n *\n * The first item is a plugin, the rest are its parameters.\n *\n * @template {Array} [TupleParameters=[]]\n * Arguments passed to the plugin (default: `[]`, the empty tuple).\n * @template {Node | string | undefined} [Input=undefined]\n * Value that is expected as input (optional).\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node it expects.\n * * If the plugin sets a {@linkcode Parser}, this should be\n * `string`.\n * * If the plugin sets a {@linkcode Compiler}, this should be the\n * node it expects.\n * @template [Output=undefined] (optional).\n * Value that is yielded as output.\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node that that yields.\n * * If the plugin sets a {@linkcode Parser}, this should be the\n * node that it yields.\n * * If the plugin sets a {@linkcode Compiler}, this should be\n * result it yields.\n * @typedef {(\n * [\n * plugin: Plugin,\n * ...parameters: TupleParameters\n * ]\n * )} PluginTuple\n */\n\n/**\n * @typedef Preset\n * Sharable configuration.\n *\n * They can contain plugins and settings.\n * @property {PluggableList | undefined} [plugins]\n * List of plugins and presets (optional).\n * @property {Settings | undefined} [settings]\n * Shared settings for parsers and compilers (optional).\n */\n\n/**\n * @template {VFile} [File=VFile]\n * The file that the callback receives (default: `VFile`).\n * @callback ProcessCallback\n * Callback called when the process is done.\n *\n * Called with either an error or a result.\n * @param {Error | undefined} [error]\n * Fatal error (optional).\n * @param {File | undefined} [file]\n * Processed file (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The tree that the callback receives (default: `Node`).\n * @callback RunCallback\n * Callback called when transformers are done.\n *\n * Called with either an error or results.\n * @param {Error | undefined} [error]\n * Fatal error (optional).\n * @param {Tree | undefined} [tree]\n * Transformed tree (optional).\n * @param {VFile | undefined} [file]\n * File (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Output=Node]\n * Node type that the transformer yields (default: `Node`).\n * @callback TransformCallback\n * Callback passed to transforms.\n *\n * If the signature of a `transformer` accepts a third argument, the\n * transformer may perform asynchronous operations, and must call it.\n * @param {Error | undefined} [error]\n * Fatal error to stop the process (optional).\n * @param {Output | undefined} [tree]\n * New, changed, tree (optional).\n * @param {VFile | undefined} [file]\n * New, changed, file (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Input=Node]\n * Node type that the transformer expects (default: `Node`).\n * @template {Node} [Output=Input]\n * Node type that the transformer yields (default: `Input`).\n * @callback Transformer\n * Transformers handle syntax trees and files.\n *\n * They are functions that are called each time a syntax tree and file are\n * passed through the run phase.\n * When an error occurs in them (either because it’s thrown, returned,\n * rejected, or passed to `next`), the process stops.\n *\n * The run phase is handled by [`trough`][trough], see its documentation for\n * the exact semantics of these functions.\n *\n * > **Note**: you should likely ignore `next`: don’t accept it.\n * > it supports callback-style async work.\n * > But promises are likely easier to reason about.\n *\n * [trough]: https://github.com/wooorm/trough#function-fninput-next\n * @param {Input} tree\n * Tree to handle.\n * @param {VFile} file\n * File to handle.\n * @param {TransformCallback} next\n * Callback.\n * @returns {(\n * Promise |\n * Promise | // For some reason this is needed separately.\n * Output |\n * Error |\n * undefined |\n * void\n * )}\n * If you accept `next`, nothing.\n * Otherwise:\n *\n * * `Error` — fatal error to stop the process\n * * `Promise` or `undefined` — the next transformer keeps using\n * same tree\n * * `Promise` or `Node` — new, changed, tree\n */\n\n/**\n * @template {Node | undefined} ParseTree\n * Output of `parse`.\n * @template {Node | undefined} HeadTree\n * Input for `run`.\n * @template {Node | undefined} TailTree\n * Output for `run`.\n * @template {Node | undefined} CompileTree\n * Input of `stringify`.\n * @template {CompileResults | undefined} CompileResult\n * Output of `stringify`.\n * @template {Node | string | undefined} Input\n * Input of plugin.\n * @template Output\n * Output of plugin (optional).\n * @typedef {(\n * Input extends string\n * ? Output extends Node | undefined\n * ? // Parser.\n * Processor<\n * Output extends undefined ? ParseTree : Output,\n * HeadTree,\n * TailTree,\n * CompileTree,\n * CompileResult\n * >\n * : // Unknown.\n * Processor\n * : Output extends CompileResults\n * ? Input extends Node | undefined\n * ? // Compiler.\n * Processor<\n * ParseTree,\n * HeadTree,\n * TailTree,\n * Input extends undefined ? CompileTree : Input,\n * Output extends undefined ? CompileResult : Output\n * >\n * : // Unknown.\n * Processor\n * : Input extends Node | undefined\n * ? Output extends Node | undefined\n * ? // Transform.\n * Processor<\n * ParseTree,\n * HeadTree extends undefined ? Input : HeadTree,\n * Output extends undefined ? TailTree : Output,\n * CompileTree,\n * CompileResult\n * >\n * : // Unknown.\n * Processor\n * : // Unknown.\n * Processor\n * )} UsePlugin\n * Create a processor based on the input/output of a {@link Plugin plugin}.\n */\n\n/**\n * @template {CompileResults | undefined} Result\n * Node type that the transformer yields.\n * @typedef {(\n * Result extends Value | undefined ?\n * VFile :\n * VFile & {result: Result}\n * )} VFileWithOutput\n * Type to generate a {@linkcode VFile} corresponding to a compiler result.\n *\n * If a result that is not acceptable on a `VFile` is used, that will\n * be stored on the `result` field of {@linkcode VFile}.\n */\n\nimport {bail} from 'bail'\nimport extend from 'extend'\nimport {ok as assert} from 'devlop'\nimport isPlainObj from 'is-plain-obj'\nimport {trough} from 'trough'\nimport {VFile} from 'vfile'\nimport {CallableInstance} from './callable-instance.js'\n\n// To do: next major: drop `Compiler`, `Parser`: prefer lowercase.\n\n// To do: we could start yielding `never` in TS when a parser is missing and\n// `parse` is called.\n// Currently, we allow directly setting `processor.parser`, which is untyped.\n\nconst own = {}.hasOwnProperty\n\n/**\n * @template {Node | undefined} [ParseTree=undefined]\n * Output of `parse` (optional).\n * @template {Node | undefined} [HeadTree=undefined]\n * Input for `run` (optional).\n * @template {Node | undefined} [TailTree=undefined]\n * Output for `run` (optional).\n * @template {Node | undefined} [CompileTree=undefined]\n * Input of `stringify` (optional).\n * @template {CompileResults | undefined} [CompileResult=undefined]\n * Output of `stringify` (optional).\n * @extends {CallableInstance<[], Processor>}\n */\nexport class Processor extends CallableInstance {\n /**\n * Create a processor.\n */\n constructor() {\n // If `Processor()` is called (w/o new), `copy` is called instead.\n super('copy')\n\n /**\n * Compiler to use (deprecated).\n *\n * @deprecated\n * Use `compiler` instead.\n * @type {(\n * Compiler<\n * CompileTree extends undefined ? Node : CompileTree,\n * CompileResult extends undefined ? CompileResults : CompileResult\n * > |\n * undefined\n * )}\n */\n this.Compiler = undefined\n\n /**\n * Parser to use (deprecated).\n *\n * @deprecated\n * Use `parser` instead.\n * @type {(\n * Parser |\n * undefined\n * )}\n */\n this.Parser = undefined\n\n // Note: the following fields are considered private.\n // However, they are needed for tests, and TSC generates an untyped\n // `private freezeIndex` field for, which trips `type-coverage` up.\n // Instead, we use `@deprecated` to visualize that they shouldn’t be used.\n /**\n * Internal list of configured plugins.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Array>>}\n */\n this.attachers = []\n\n /**\n * Compiler to use.\n *\n * @type {(\n * Compiler<\n * CompileTree extends undefined ? Node : CompileTree,\n * CompileResult extends undefined ? CompileResults : CompileResult\n * > |\n * undefined\n * )}\n */\n this.compiler = undefined\n\n /**\n * Internal state to track where we are while freezing.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {number}\n */\n this.freezeIndex = -1\n\n /**\n * Internal state to track whether we’re frozen.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {boolean | undefined}\n */\n this.frozen = undefined\n\n /**\n * Internal state.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Data}\n */\n this.namespace = {}\n\n /**\n * Parser to use.\n *\n * @type {(\n * Parser |\n * undefined\n * )}\n */\n this.parser = undefined\n\n /**\n * Internal list of configured transformers.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Pipeline}\n */\n this.transformers = trough()\n }\n\n /**\n * Copy a processor.\n *\n * @deprecated\n * This is a private internal method and should not be used.\n * @returns {Processor}\n * New *unfrozen* processor ({@linkcode Processor}) that is\n * configured to work the same as its ancestor.\n * When the descendant processor is configured in the future it does not\n * affect the ancestral processor.\n */\n copy() {\n // Cast as the type parameters will be the same after attaching.\n const destination =\n /** @type {Processor} */ (\n new Processor()\n )\n let index = -1\n\n while (++index < this.attachers.length) {\n const attacher = this.attachers[index]\n destination.use(...attacher)\n }\n\n destination.data(extend(true, {}, this.namespace))\n\n return destination\n }\n\n /**\n * Configure the processor with info available to all plugins.\n * Information is stored in an object.\n *\n * Typically, options can be given to a specific plugin, but sometimes it\n * makes sense to have information shared with several plugins.\n * For example, a list of HTML elements that are self-closing, which is\n * needed during all phases.\n *\n * > **Note**: setting information cannot occur on *frozen* processors.\n * > Call the processor first to create a new unfrozen processor.\n *\n * > **Note**: to register custom data in TypeScript, augment the\n * > {@linkcode Data} interface.\n *\n * @example\n * This example show how to get and set info:\n *\n * ```js\n * import {unified} from 'unified'\n *\n * const processor = unified().data('alpha', 'bravo')\n *\n * processor.data('alpha') // => 'bravo'\n *\n * processor.data() // => {alpha: 'bravo'}\n *\n * processor.data({charlie: 'delta'})\n *\n * processor.data() // => {charlie: 'delta'}\n * ```\n *\n * @template {keyof Data} Key\n *\n * @overload\n * @returns {Data}\n *\n * @overload\n * @param {Data} dataset\n * @returns {Processor}\n *\n * @overload\n * @param {Key} key\n * @returns {Data[Key]}\n *\n * @overload\n * @param {Key} key\n * @param {Data[Key]} value\n * @returns {Processor}\n *\n * @param {Data | Key} [key]\n * Key to get or set, or entire dataset to set, or nothing to get the\n * entire dataset (optional).\n * @param {Data[Key]} [value]\n * Value to set (optional).\n * @returns {unknown}\n * The current processor when setting, the value at `key` when getting, or\n * the entire dataset when getting without key.\n */\n data(key, value) {\n if (typeof key === 'string') {\n // Set `key`.\n if (arguments.length === 2) {\n assertUnfrozen('data', this.frozen)\n this.namespace[key] = value\n return this\n }\n\n // Get `key`.\n return (own.call(this.namespace, key) && this.namespace[key]) || undefined\n }\n\n // Set space.\n if (key) {\n assertUnfrozen('data', this.frozen)\n this.namespace = key\n return this\n }\n\n // Get space.\n return this.namespace\n }\n\n /**\n * Freeze a processor.\n *\n * Frozen processors are meant to be extended and not to be configured\n * directly.\n *\n * When a processor is frozen it cannot be unfrozen.\n * New processors working the same way can be created by calling the\n * processor.\n *\n * It’s possible to freeze processors explicitly by calling `.freeze()`.\n * Processors freeze automatically when `.parse()`, `.run()`, `.runSync()`,\n * `.stringify()`, `.process()`, or `.processSync()` are called.\n *\n * @returns {Processor}\n * The current processor.\n */\n freeze() {\n if (this.frozen) {\n return this\n }\n\n // Cast so that we can type plugins easier.\n // Plugins are supposed to be usable on different processors, not just on\n // this exact processor.\n const self = /** @type {Processor} */ (/** @type {unknown} */ (this))\n\n while (++this.freezeIndex < this.attachers.length) {\n const [attacher, ...options] = this.attachers[this.freezeIndex]\n\n if (options[0] === false) {\n continue\n }\n\n if (options[0] === true) {\n options[0] = undefined\n }\n\n const transformer = attacher.call(self, ...options)\n\n if (typeof transformer === 'function') {\n this.transformers.use(transformer)\n }\n }\n\n this.frozen = true\n this.freezeIndex = Number.POSITIVE_INFINITY\n\n return this\n }\n\n /**\n * Parse text to a syntax tree.\n *\n * > **Note**: `parse` freezes the processor if not already *frozen*.\n *\n * > **Note**: `parse` performs the parse phase, not the run phase or other\n * > phases.\n *\n * @param {Compatible | undefined} [file]\n * file to parse (optional); typically `string` or `VFile`; any value\n * accepted as `x` in `new VFile(x)`.\n * @returns {ParseTree extends undefined ? Node : ParseTree}\n * Syntax tree representing `file`.\n */\n parse(file) {\n this.freeze()\n const realFile = vfile(file)\n const parser = this.parser || this.Parser\n assertParser('parse', parser)\n return parser(String(realFile), realFile)\n }\n\n /**\n * Process the given file as configured on the processor.\n *\n * > **Note**: `process` freezes the processor if not already *frozen*.\n *\n * > **Note**: `process` performs the parse, run, and stringify phases.\n *\n * @overload\n * @param {Compatible | undefined} file\n * @param {ProcessCallback>} done\n * @returns {undefined}\n *\n * @overload\n * @param {Compatible | undefined} [file]\n * @returns {Promise>}\n *\n * @param {Compatible | undefined} [file]\n * File (optional); typically `string` or `VFile`]; any value accepted as\n * `x` in `new VFile(x)`.\n * @param {ProcessCallback> | undefined} [done]\n * Callback (optional).\n * @returns {Promise | undefined}\n * Nothing if `done` is given.\n * Otherwise a promise, rejected with a fatal error or resolved with the\n * processed file.\n *\n * The parsed, transformed, and compiled value is available at\n * `file.value` (see note).\n *\n * > **Note**: unified typically compiles by serializing: most\n * > compilers return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n process(file, done) {\n const self = this\n\n this.freeze()\n assertParser('process', this.parser || this.Parser)\n assertCompiler('process', this.compiler || this.Compiler)\n\n return done ? executor(undefined, done) : new Promise(executor)\n\n // Note: `void`s needed for TS.\n /**\n * @param {((file: VFileWithOutput) => undefined | void) | undefined} resolve\n * @param {(error: Error | undefined) => undefined | void} reject\n * @returns {undefined}\n */\n function executor(resolve, reject) {\n const realFile = vfile(file)\n // Assume `ParseTree` (the result of the parser) matches `HeadTree` (the\n // input of the first transform).\n const parseTree =\n /** @type {HeadTree extends undefined ? Node : HeadTree} */ (\n /** @type {unknown} */ (self.parse(realFile))\n )\n\n self.run(parseTree, realFile, function (error, tree, file) {\n if (error || !tree || !file) {\n return realDone(error)\n }\n\n // Assume `TailTree` (the output of the last transform) matches\n // `CompileTree` (the input of the compiler).\n const compileTree =\n /** @type {CompileTree extends undefined ? Node : CompileTree} */ (\n /** @type {unknown} */ (tree)\n )\n\n const compileResult = self.stringify(compileTree, file)\n\n if (looksLikeAValue(compileResult)) {\n file.value = compileResult\n } else {\n file.result = compileResult\n }\n\n realDone(error, /** @type {VFileWithOutput} */ (file))\n })\n\n /**\n * @param {Error | undefined} error\n * @param {VFileWithOutput | undefined} [file]\n * @returns {undefined}\n */\n function realDone(error, file) {\n if (error || !file) {\n reject(error)\n } else if (resolve) {\n resolve(file)\n } else {\n assert(done, '`done` is defined if `resolve` is not')\n done(undefined, file)\n }\n }\n }\n }\n\n /**\n * Process the given file as configured on the processor.\n *\n * An error is thrown if asynchronous transforms are configured.\n *\n * > **Note**: `processSync` freezes the processor if not already *frozen*.\n *\n * > **Note**: `processSync` performs the parse, run, and stringify phases.\n *\n * @param {Compatible | undefined} [file]\n * File (optional); typically `string` or `VFile`; any value accepted as\n * `x` in `new VFile(x)`.\n * @returns {VFileWithOutput}\n * The processed file.\n *\n * The parsed, transformed, and compiled value is available at\n * `file.value` (see note).\n *\n * > **Note**: unified typically compiles by serializing: most\n * > compilers return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n processSync(file) {\n /** @type {boolean} */\n let complete = false\n /** @type {VFileWithOutput | undefined} */\n let result\n\n this.freeze()\n assertParser('processSync', this.parser || this.Parser)\n assertCompiler('processSync', this.compiler || this.Compiler)\n\n this.process(file, realDone)\n assertDone('processSync', 'process', complete)\n assert(result, 'we either bailed on an error or have a tree')\n\n return result\n\n /**\n * @type {ProcessCallback>}\n */\n function realDone(error, file) {\n complete = true\n bail(error)\n result = file\n }\n }\n\n /**\n * Run *transformers* on a syntax tree.\n *\n * > **Note**: `run` freezes the processor if not already *frozen*.\n *\n * > **Note**: `run` performs the run phase, not other phases.\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {RunCallback} done\n * @returns {undefined}\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {Compatible | undefined} file\n * @param {RunCallback} done\n * @returns {undefined}\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {Compatible | undefined} [file]\n * @returns {Promise}\n *\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * Tree to transform and inspect.\n * @param {(\n * RunCallback |\n * Compatible\n * )} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @param {RunCallback} [done]\n * Callback (optional).\n * @returns {Promise | undefined}\n * Nothing if `done` is given.\n * Otherwise, a promise rejected with a fatal error or resolved with the\n * transformed tree.\n */\n run(tree, file, done) {\n assertNode(tree)\n this.freeze()\n\n const transformers = this.transformers\n\n if (!done && typeof file === 'function') {\n done = file\n file = undefined\n }\n\n return done ? executor(undefined, done) : new Promise(executor)\n\n // Note: `void`s needed for TS.\n /**\n * @param {(\n * ((tree: TailTree extends undefined ? Node : TailTree) => undefined | void) |\n * undefined\n * )} resolve\n * @param {(error: Error) => undefined | void} reject\n * @returns {undefined}\n */\n function executor(resolve, reject) {\n assert(\n typeof file !== 'function',\n '`file` can’t be a `done` anymore, we checked'\n )\n const realFile = vfile(file)\n transformers.run(tree, realFile, realDone)\n\n /**\n * @param {Error | undefined} error\n * @param {Node} outputTree\n * @param {VFile} file\n * @returns {undefined}\n */\n function realDone(error, outputTree, file) {\n const resultingTree =\n /** @type {TailTree extends undefined ? Node : TailTree} */ (\n outputTree || tree\n )\n\n if (error) {\n reject(error)\n } else if (resolve) {\n resolve(resultingTree)\n } else {\n assert(done, '`done` is defined if `resolve` is not')\n done(undefined, resultingTree, file)\n }\n }\n }\n }\n\n /**\n * Run *transformers* on a syntax tree.\n *\n * An error is thrown if asynchronous transforms are configured.\n *\n * > **Note**: `runSync` freezes the processor if not already *frozen*.\n *\n * > **Note**: `runSync` performs the run phase, not other phases.\n *\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * Tree to transform and inspect.\n * @param {Compatible | undefined} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @returns {TailTree extends undefined ? Node : TailTree}\n * Transformed tree.\n */\n runSync(tree, file) {\n /** @type {boolean} */\n let complete = false\n /** @type {(TailTree extends undefined ? Node : TailTree) | undefined} */\n let result\n\n this.run(tree, file, realDone)\n\n assertDone('runSync', 'run', complete)\n assert(result, 'we either bailed on an error or have a tree')\n return result\n\n /**\n * @type {RunCallback}\n */\n function realDone(error, tree) {\n bail(error)\n result = tree\n complete = true\n }\n }\n\n /**\n * Compile a syntax tree.\n *\n * > **Note**: `stringify` freezes the processor if not already *frozen*.\n *\n * > **Note**: `stringify` performs the stringify phase, not the run phase\n * > or other phases.\n *\n * @param {CompileTree extends undefined ? Node : CompileTree} tree\n * Tree to compile.\n * @param {Compatible | undefined} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @returns {CompileResult extends undefined ? Value : CompileResult}\n * Textual representation of the tree (see note).\n *\n * > **Note**: unified typically compiles by serializing: most compilers\n * > return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n stringify(tree, file) {\n this.freeze()\n const realFile = vfile(file)\n const compiler = this.compiler || this.Compiler\n assertCompiler('stringify', compiler)\n assertNode(tree)\n\n return compiler(tree, realFile)\n }\n\n /**\n * Configure the processor to use a plugin, a list of usable values, or a\n * preset.\n *\n * If the processor is already using a plugin, the previous plugin\n * configuration is changed based on the options that are passed in.\n * In other words, the plugin is not added a second time.\n *\n * > **Note**: `use` cannot be called on *frozen* processors.\n * > Call the processor first to create a new unfrozen processor.\n *\n * @example\n * There are many ways to pass plugins to `.use()`.\n * This example gives an overview:\n *\n * ```js\n * import {unified} from 'unified'\n *\n * unified()\n * // Plugin with options:\n * .use(pluginA, {x: true, y: true})\n * // Passing the same plugin again merges configuration (to `{x: true, y: false, z: true}`):\n * .use(pluginA, {y: false, z: true})\n * // Plugins:\n * .use([pluginB, pluginC])\n * // Two plugins, the second with options:\n * .use([pluginD, [pluginE, {}]])\n * // Preset with plugins and settings:\n * .use({plugins: [pluginF, [pluginG, {}]], settings: {position: false}})\n * // Settings only:\n * .use({settings: {position: false}})\n * ```\n *\n * @template {Array} [Parameters=[]]\n * @template {Node | string | undefined} [Input=undefined]\n * @template [Output=Input]\n *\n * @overload\n * @param {Preset | null | undefined} [preset]\n * @returns {Processor}\n *\n * @overload\n * @param {PluggableList} list\n * @returns {Processor}\n *\n * @overload\n * @param {Plugin} plugin\n * @param {...(Parameters | [boolean])} parameters\n * @returns {UsePlugin}\n *\n * @param {PluggableList | Plugin | Preset | null | undefined} value\n * Usable value.\n * @param {...unknown} parameters\n * Parameters, when a plugin is given as a usable value.\n * @returns {Processor}\n * Current processor.\n */\n use(value, ...parameters) {\n const attachers = this.attachers\n const namespace = this.namespace\n\n assertUnfrozen('use', this.frozen)\n\n if (value === null || value === undefined) {\n // Empty.\n } else if (typeof value === 'function') {\n addPlugin(value, parameters)\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n addList(value)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n\n return this\n\n /**\n * @param {Pluggable} value\n * @returns {undefined}\n */\n function add(value) {\n if (typeof value === 'function') {\n addPlugin(value, [])\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n const [plugin, ...parameters] =\n /** @type {PluginTuple>} */ (value)\n addPlugin(plugin, parameters)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n }\n\n /**\n * @param {Preset} result\n * @returns {undefined}\n */\n function addPreset(result) {\n if (!('plugins' in result) && !('settings' in result)) {\n throw new Error(\n 'Expected usable value but received an empty preset, which is probably a mistake: presets typically come with `plugins` and sometimes with `settings`, but this has neither'\n )\n }\n\n addList(result.plugins)\n\n if (result.settings) {\n namespace.settings = extend(true, namespace.settings, result.settings)\n }\n }\n\n /**\n * @param {PluggableList | null | undefined} plugins\n * @returns {undefined}\n */\n function addList(plugins) {\n let index = -1\n\n if (plugins === null || plugins === undefined) {\n // Empty.\n } else if (Array.isArray(plugins)) {\n while (++index < plugins.length) {\n const thing = plugins[index]\n add(thing)\n }\n } else {\n throw new TypeError('Expected a list of plugins, not `' + plugins + '`')\n }\n }\n\n /**\n * @param {Plugin} plugin\n * @param {Array} parameters\n * @returns {undefined}\n */\n function addPlugin(plugin, parameters) {\n let index = -1\n let entryIndex = -1\n\n while (++index < attachers.length) {\n if (attachers[index][0] === plugin) {\n entryIndex = index\n break\n }\n }\n\n if (entryIndex === -1) {\n attachers.push([plugin, ...parameters])\n }\n // Only set if there was at least a `primary` value, otherwise we’d change\n // `arguments.length`.\n else if (parameters.length > 0) {\n let [primary, ...rest] = parameters\n const currentPrimary = attachers[entryIndex][1]\n if (isPlainObj(currentPrimary) && isPlainObj(primary)) {\n primary = extend(true, currentPrimary, primary)\n }\n\n attachers[entryIndex] = [plugin, primary, ...rest]\n }\n }\n }\n}\n\n// Note: this returns a *callable* instance.\n// That’s why it’s documented as a function.\n/**\n * Create a new processor.\n *\n * @example\n * This example shows how a new processor can be created (from `remark`) and linked\n * to **stdin**(4) and **stdout**(4).\n *\n * ```js\n * import process from 'node:process'\n * import concatStream from 'concat-stream'\n * import {remark} from 'remark'\n *\n * process.stdin.pipe(\n * concatStream(function (buf) {\n * process.stdout.write(String(remark().processSync(buf)))\n * })\n * )\n * ```\n *\n * @returns\n * New *unfrozen* processor (`processor`).\n *\n * This processor is configured to work the same as its ancestor.\n * When the descendant processor is configured in the future it does not\n * affect the ancestral processor.\n */\nexport const unified = new Processor().freeze()\n\n/**\n * Assert a parser is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Parser}\n */\nfunction assertParser(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `parser`')\n }\n}\n\n/**\n * Assert a compiler is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Compiler}\n */\nfunction assertCompiler(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `compiler`')\n }\n}\n\n/**\n * Assert the processor is not frozen.\n *\n * @param {string} name\n * @param {unknown} frozen\n * @returns {asserts frozen is false}\n */\nfunction assertUnfrozen(name, frozen) {\n if (frozen) {\n throw new Error(\n 'Cannot call `' +\n name +\n '` on a frozen processor.\\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.'\n )\n }\n}\n\n/**\n * Assert `node` is a unist node.\n *\n * @param {unknown} node\n * @returns {asserts node is Node}\n */\nfunction assertNode(node) {\n // `isPlainObj` unfortunately uses `any` instead of `unknown`.\n // type-coverage:ignore-next-line\n if (!isPlainObj(node) || typeof node.type !== 'string') {\n throw new TypeError('Expected node, got `' + node + '`')\n // Fine.\n }\n}\n\n/**\n * Assert that `complete` is `true`.\n *\n * @param {string} name\n * @param {string} asyncName\n * @param {unknown} complete\n * @returns {asserts complete is true}\n */\nfunction assertDone(name, asyncName, complete) {\n if (!complete) {\n throw new Error(\n '`' + name + '` finished async. Use `' + asyncName + '` instead'\n )\n }\n}\n\n/**\n * @param {Compatible | undefined} [value]\n * @returns {VFile}\n */\nfunction vfile(value) {\n return looksLikeAVFile(value) ? value : new VFile(value)\n}\n\n/**\n * @param {Compatible | undefined} [value]\n * @returns {value is VFile}\n */\nfunction looksLikeAVFile(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'message' in value &&\n 'messages' in value\n )\n}\n\n/**\n * @param {unknown} [value]\n * @returns {value is Value}\n */\nfunction looksLikeAValue(value) {\n return typeof value === 'string' || isUint8Array(value)\n}\n\n/**\n * Assert `value` is an `Uint8Array`.\n *\n * @param {unknown} value\n * thing.\n * @returns {value is Uint8Array}\n * Whether `value` is an `Uint8Array`.\n */\nfunction isUint8Array(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'byteLength' in value &&\n 'byteOffset' in value\n )\n}\n","/**\n * @import {Element, Nodes, Parents, Root} from 'hast'\n * @import {Root as MdastRoot} from 'mdast'\n * @import {ComponentType, JSX, ReactElement, ReactNode} from 'react'\n * @import {Options as RemarkRehypeOptions} from 'remark-rehype'\n * @import {BuildVisitor} from 'unist-util-visit'\n * @import {PluggableList, Processor} from 'unified'\n */\n\n/**\n * @callback AllowElement\n * Filter elements.\n * @param {Readonly} element\n * Element to check.\n * @param {number} index\n * Index of `element` in `parent`.\n * @param {Readonly | undefined} parent\n * Parent of `element`.\n * @returns {boolean | null | undefined}\n * Whether to allow `element` (default: `false`).\n */\n\n/**\n * @typedef ExtraProps\n * Extra fields we pass.\n * @property {Element | undefined} [node]\n * passed when `passNode` is on.\n */\n\n/**\n * @typedef {{\n * [Key in keyof JSX.IntrinsicElements]?: ComponentType | keyof JSX.IntrinsicElements\n * }} Components\n * Map tag names to components.\n */\n\n/**\n * @typedef Deprecation\n * Deprecation.\n * @property {string} from\n * Old field.\n * @property {string} id\n * ID in readme.\n * @property {keyof Options} [to]\n * New field.\n */\n\n/**\n * @typedef Options\n * Configuration.\n * @property {AllowElement | null | undefined} [allowElement]\n * Filter elements (optional);\n * `allowedElements` / `disallowedElements` is used first.\n * @property {ReadonlyArray | null | undefined} [allowedElements]\n * Tag names to allow (default: all tag names);\n * cannot combine w/ `disallowedElements`.\n * @property {string | null | undefined} [children]\n * Markdown.\n * @property {Components | null | undefined} [components]\n * Map tag names to components.\n * @property {ReadonlyArray | null | undefined} [disallowedElements]\n * Tag names to disallow (default: `[]`);\n * cannot combine w/ `allowedElements`.\n * @property {PluggableList | null | undefined} [rehypePlugins]\n * List of rehype plugins to use.\n * @property {PluggableList | null | undefined} [remarkPlugins]\n * List of remark plugins to use.\n * @property {Readonly | null | undefined} [remarkRehypeOptions]\n * Options to pass through to `remark-rehype`.\n * @property {boolean | null | undefined} [skipHtml=false]\n * Ignore HTML in markdown completely (default: `false`).\n * @property {boolean | null | undefined} [unwrapDisallowed=false]\n * Extract (unwrap) what’s in disallowed elements (default: `false`);\n * normally when say `strong` is not allowed, it and it’s children are dropped,\n * with `unwrapDisallowed` the element itself is replaced by its children.\n * @property {UrlTransform | null | undefined} [urlTransform]\n * Change URLs (default: `defaultUrlTransform`)\n */\n\n/**\n * @typedef HooksOptionsOnly\n * Configuration specifically for {@linkcode MarkdownHooks}.\n * @property {ReactNode | null | undefined} [fallback]\n * Content to render while the processor processing the markdown (optional).\n */\n\n/**\n * @typedef {Options & HooksOptionsOnly} HooksOptions\n * Configuration for {@linkcode MarkdownHooks};\n * extends the regular {@linkcode Options} with a `fallback` prop.\n */\n\n/**\n * @callback UrlTransform\n * Transform all URLs.\n * @param {string} url\n * URL.\n * @param {string} key\n * Property name (example: `'href'`).\n * @param {Readonly} node\n * Node.\n * @returns {string | null | undefined}\n * Transformed URL (optional).\n */\n\nimport {unreachable} from 'devlop'\nimport {toJsxRuntime} from 'hast-util-to-jsx-runtime'\nimport {urlAttributes} from 'html-url-attributes'\nimport {Fragment, jsx, jsxs} from 'react/jsx-runtime'\nimport {useEffect, useState} from 'react'\nimport remarkParse from 'remark-parse'\nimport remarkRehype from 'remark-rehype'\nimport {unified} from 'unified'\nimport {visit} from 'unist-util-visit'\nimport {VFile} from 'vfile'\n\nconst changelog =\n 'https://github.com/remarkjs/react-markdown/blob/main/changelog.md'\n\n/** @type {PluggableList} */\nconst emptyPlugins = []\n/** @type {Readonly} */\nconst emptyRemarkRehypeOptions = {allowDangerousHtml: true}\nconst safeProtocol = /^(https?|ircs?|mailto|xmpp)$/i\n\n// Mutable because we `delete` any time it’s used and a message is sent.\n/** @type {ReadonlyArray>} */\nconst deprecations = [\n {from: 'astPlugins', id: 'remove-buggy-html-in-markdown-parser'},\n {from: 'allowDangerousHtml', id: 'remove-buggy-html-in-markdown-parser'},\n {\n from: 'allowNode',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes',\n to: 'allowElement'\n },\n {\n from: 'allowedTypes',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes',\n to: 'allowedElements'\n },\n {from: 'className', id: 'remove-classname'},\n {\n from: 'disallowedTypes',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes',\n to: 'disallowedElements'\n },\n {from: 'escapeHtml', id: 'remove-buggy-html-in-markdown-parser'},\n {from: 'includeElementIndex', id: '#remove-includeelementindex'},\n {\n from: 'includeNodeIndex',\n id: 'change-includenodeindex-to-includeelementindex'\n },\n {from: 'linkTarget', id: 'remove-linktarget'},\n {from: 'plugins', id: 'change-plugins-to-remarkplugins', to: 'remarkPlugins'},\n {from: 'rawSourcePos', id: '#remove-rawsourcepos'},\n {from: 'renderers', id: 'change-renderers-to-components', to: 'components'},\n {from: 'source', id: 'change-source-to-children', to: 'children'},\n {from: 'sourcePos', id: '#remove-sourcepos'},\n {from: 'transformImageUri', id: '#add-urltransform', to: 'urlTransform'},\n {from: 'transformLinkUri', id: '#add-urltransform', to: 'urlTransform'}\n]\n\n/**\n * Component to render markdown.\n *\n * This is a synchronous component.\n * When using async plugins,\n * see {@linkcode MarkdownAsync} or {@linkcode MarkdownHooks}.\n *\n * @param {Readonly} options\n * Props.\n * @returns {ReactElement}\n * React element.\n */\nexport function Markdown(options) {\n const processor = createProcessor(options)\n const file = createFile(options)\n return post(processor.runSync(processor.parse(file), file), options)\n}\n\n/**\n * Component to render markdown with support for async plugins\n * through async/await.\n *\n * Components returning promises are supported on the server.\n * For async support on the client,\n * see {@linkcode MarkdownHooks}.\n *\n * @param {Readonly} options\n * Props.\n * @returns {Promise}\n * Promise to a React element.\n */\nexport async function MarkdownAsync(options) {\n const processor = createProcessor(options)\n const file = createFile(options)\n const tree = await processor.run(processor.parse(file), file)\n return post(tree, options)\n}\n\n/**\n * Component to render markdown with support for async plugins through hooks.\n *\n * This uses `useEffect` and `useState` hooks.\n * Hooks run on the client and do not immediately render something.\n * For async support on the server,\n * see {@linkcode MarkdownAsync}.\n *\n * @param {Readonly} options\n * Props.\n * @returns {ReactNode}\n * React node.\n */\nexport function MarkdownHooks(options) {\n const processor = createProcessor(options)\n const [error, setError] = useState(\n /** @type {Error | undefined} */ (undefined)\n )\n const [tree, setTree] = useState(/** @type {Root | undefined} */ (undefined))\n\n useEffect(\n function () {\n let cancelled = false\n const file = createFile(options)\n\n processor.run(processor.parse(file), file, function (error, tree) {\n if (!cancelled) {\n setError(error)\n setTree(tree)\n }\n })\n\n /**\n * @returns {undefined}\n * Nothing.\n */\n return function () {\n cancelled = true\n }\n },\n [\n options.children,\n options.rehypePlugins,\n options.remarkPlugins,\n options.remarkRehypeOptions\n ]\n )\n\n if (error) throw error\n\n return tree ? post(tree, options) : options.fallback\n}\n\n/**\n * Set up the `unified` processor.\n *\n * @param {Readonly} options\n * Props.\n * @returns {Processor}\n * Result.\n */\nfunction createProcessor(options) {\n const rehypePlugins = options.rehypePlugins || emptyPlugins\n const remarkPlugins = options.remarkPlugins || emptyPlugins\n const remarkRehypeOptions = options.remarkRehypeOptions\n ? {...options.remarkRehypeOptions, ...emptyRemarkRehypeOptions}\n : emptyRemarkRehypeOptions\n\n const processor = unified()\n .use(remarkParse)\n .use(remarkPlugins)\n .use(remarkRehype, remarkRehypeOptions)\n .use(rehypePlugins)\n\n return processor\n}\n\n/**\n * Set up the virtual file.\n *\n * @param {Readonly} options\n * Props.\n * @returns {VFile}\n * Result.\n */\nfunction createFile(options) {\n const children = options.children || ''\n const file = new VFile()\n\n if (typeof children === 'string') {\n file.value = children\n } else {\n unreachable(\n 'Unexpected value `' +\n children +\n '` for `children` prop, expected `string`'\n )\n }\n\n return file\n}\n\n/**\n * Process the result from unified some more.\n *\n * @param {Nodes} tree\n * Tree.\n * @param {Readonly} options\n * Props.\n * @returns {ReactElement}\n * React element.\n */\nfunction post(tree, options) {\n const allowedElements = options.allowedElements\n const allowElement = options.allowElement\n const components = options.components\n const disallowedElements = options.disallowedElements\n const skipHtml = options.skipHtml\n const unwrapDisallowed = options.unwrapDisallowed\n const urlTransform = options.urlTransform || defaultUrlTransform\n\n for (const deprecation of deprecations) {\n if (Object.hasOwn(options, deprecation.from)) {\n unreachable(\n 'Unexpected `' +\n deprecation.from +\n '` prop, ' +\n (deprecation.to\n ? 'use `' + deprecation.to + '` instead'\n : 'remove it') +\n ' (see <' +\n changelog +\n '#' +\n deprecation.id +\n '> for more info)'\n )\n }\n }\n\n if (allowedElements && disallowedElements) {\n unreachable(\n 'Unexpected combined `allowedElements` and `disallowedElements`, expected one or the other'\n )\n }\n\n visit(tree, transform)\n\n return toJsxRuntime(tree, {\n Fragment,\n components,\n ignoreInvalidStyle: true,\n jsx,\n jsxs,\n passKeys: true,\n passNode: true\n })\n\n /** @type {BuildVisitor} */\n function transform(node, index, parent) {\n if (node.type === 'raw' && parent && typeof index === 'number') {\n if (skipHtml) {\n parent.children.splice(index, 1)\n } else {\n parent.children[index] = {type: 'text', value: node.value}\n }\n\n return index\n }\n\n if (node.type === 'element') {\n /** @type {string} */\n let key\n\n for (key in urlAttributes) {\n if (\n Object.hasOwn(urlAttributes, key) &&\n Object.hasOwn(node.properties, key)\n ) {\n const value = node.properties[key]\n const test = urlAttributes[key]\n if (test === null || test.includes(node.tagName)) {\n node.properties[key] = urlTransform(String(value || ''), key, node)\n }\n }\n }\n }\n\n if (node.type === 'element') {\n let remove = allowedElements\n ? !allowedElements.includes(node.tagName)\n : disallowedElements\n ? disallowedElements.includes(node.tagName)\n : false\n\n if (!remove && allowElement && typeof index === 'number') {\n remove = !allowElement(node, index, parent)\n }\n\n if (remove && parent && typeof index === 'number') {\n if (unwrapDisallowed && node.children) {\n parent.children.splice(index, 1, ...node.children)\n } else {\n parent.children.splice(index, 1)\n }\n\n return index\n }\n }\n }\n}\n\n/**\n * Make a URL safe.\n *\n * @satisfies {UrlTransform}\n * @param {string} value\n * URL.\n * @returns {string}\n * Safe URL.\n */\nexport function defaultUrlTransform(value) {\n // Same as:\n // \n // But without the `encode` part.\n const colon = value.indexOf(':')\n const questionMark = value.indexOf('?')\n const numberSign = value.indexOf('#')\n const slash = value.indexOf('/')\n\n if (\n // If there is no protocol, it’s relative.\n colon === -1 ||\n // If the first colon is after a `?`, `#`, or `/`, it’s not a protocol.\n (slash !== -1 && colon > slash) ||\n (questionMark !== -1 && colon > questionMark) ||\n (numberSign !== -1 && colon > numberSign) ||\n // It is a protocol, it should be allowed.\n safeProtocol.test(value.slice(0, colon))\n ) {\n return value\n }\n\n return ''\n}\n","import React, { useState, useRef, useEffect } from 'react';\nimport { Send, X, Minimize2, Maximize2, Brain, Plus, ExternalLink } from 'lucide-react';\nimport { sendChatMessage, getChatSessionMessages } from '../../infra/ChatAIFacade';\nimport { useChat } from '../../contexts/ChatContext';\nimport { useLocation, useNavigate } from 'react-router-dom';\nimport ReactMarkdown from 'react-markdown';\nimport './ChatMarkdown.css';\nimport { ChatMessage } from '../../types';\n\ninterface Message {\n id: string;\n content: string;\n isUser: boolean;\n timestamp: number;\n isHighlighted?: boolean;\n isThinking?: boolean;\n}\n\n// Prop opcional para indicar quando o widget está sendo usado em tela cheia\ninterface ChatWidgetProps {\n fullscreen?: boolean;\n}\n\nconst ChatWidget: React.FC = ({ fullscreen = false }) => {\n const { \n isOpen, \n initialMessage, \n closeChat,\n currentSessionId,\n isNewSession,\n startNewSession,\n isOnChatPage,\n setCurrentSession\n } = useChat();\n \n const location = useLocation();\n const navigate = useNavigate();\n const isOnChatPageRoute = isOnChatPage(location.pathname);\n const isFullscreen = fullscreen || isOnChatPageRoute;\n \n const [isMinimized, setIsMinimized] = useState(false);\n const [messages, setMessages] = useState([\n {\n id: 'welcome',\n content: 'Olá! Sou seu assistente pessoal com IA. Como posso ajudar com seu registro de humor hoje?',\n isUser: false,\n timestamp: Date.now()\n }\n ]);\n const [inputValue, setInputValue] = useState('');\n const [isLoading, setIsLoading] = useState(false);\n const [isLoadingPreviousMessages, setIsLoadingPreviousMessages] = useState(false);\n const messagesEndRef = useRef(null);\n const inputRef = useRef(null);\n const chatMessagesRef = useRef(null);\n const [isBotTyping, setIsBotTyping] = useState(false);\n\n // Efeito para ajustar a altura da textarea quando o valor muda\n useEffect(() => {\n if (inputRef.current) {\n inputRef.current.style.height = 'auto';\n inputRef.current.style.height = `${Math.min(inputRef.current.scrollHeight, 120)}px`;\n }\n }, [inputValue]);\n\n // Efeito para rolar para a última mensagem\n useEffect(() => {\n messagesEndRef.current?.scrollIntoView({ behavior: 'smooth' });\n }, [messages]);\n \n // Efeito para focar a textarea quando o chat é aberto\n useEffect(() => {\n if (isOpen && !isMinimized && inputRef.current) {\n inputRef.current.focus();\n }\n }, [isOpen, isMinimized]);\n \n // Efeito para carregar mensagens de uma sessão existente\n useEffect(() => {\n if (currentSessionId && !isNewSession) {\n loadSessionMessages(currentSessionId);\n }\n }, [currentSessionId, isNewSession]);\n \n // Efeito adicional para garantir que as mensagens sejam carregadas\n // quando a página é acessada diretamente via URL com um sessionId\n useEffect(() => {\n // Este efeito só deve ser executado em modo tela cheia (na página de chat)\n // e quando temos um sessionId válido para evitar chamadas desnecessárias\n if (isFullscreen && currentSessionId && !isLoadingPreviousMessages && messages.length === 1) {\n // Se estamos na página de chat, temos um sessionId e só temos a mensagem de boas-vindas\n // então é provável que estejamos carregando a página diretamente via URL\n loadSessionMessages(currentSessionId);\n }\n }, [isFullscreen, currentSessionId, isLoadingPreviousMessages, messages.length]);\n \n // Efeito para definir a mensagem inicial\n useEffect(() => {\n if (initialMessage && initialMessage.trim() !== '') {\n setInputValue(initialMessage);\n }\n }, [initialMessage]);\n \n // Função para carregar mensagens de uma sessão\n const loadSessionMessages = async (sessionId: string) => {\n setIsLoadingPreviousMessages(true);\n try {\n const response = await getChatSessionMessages(sessionId);\n \n if (response && response.messages && response.messages.length > 0) {\n const formattedMessages = response.messages.map((msg: ChatMessage) => ({\n id: msg.id || Math.random().toString(36).substring(7),\n content: msg.content,\n isUser: msg.isUser,\n timestamp: new Date(msg.timestamp || Date.now()).getTime(),\n isHighlighted: false,\n isThinking: false\n }));\n \n setMessages(formattedMessages);\n }\n } catch (error) {\n console.error('Erro ao carregar mensagens da sessão:', error);\n // Manter as mensagens de boas-vindas em caso de erro\n } finally {\n setIsLoadingPreviousMessages(false);\n }\n };\n \n // Função para ajustar a altura da textarea\n const adjustTextareaHeight = (element: HTMLTextAreaElement) => {\n element.style.height = 'auto';\n element.style.height = `${Math.min(element.scrollHeight, 120)}px`;\n };\n \n // Função para enviar mensagem\n const handleSendMessage = async () => {\n if (!inputValue.trim() || isLoading) return;\n \n const userMessageId = Date.now().toString();\n const userMessage = {\n id: userMessageId,\n content: inputValue,\n isUser: true,\n timestamp: Date.now()\n };\n \n // Adiciona a mensagem do usuário à lista\n setMessages(prev => [...prev, userMessage]);\n setInputValue('');\n setIsLoading(true);\n \n // Adiciona um indicador de digitação\n const thinkingMessageId = `thinking-${Date.now()}`;\n setMessages(prev => [...prev, {\n id: thinkingMessageId,\n content: '...',\n isUser: false,\n timestamp: Date.now(),\n isThinking: true\n }]);\n \n try {\n setIsBotTyping(true);\n \n // Guarda o estado atual de isNewSession para uso na API\n const shouldCreateNewSession = isNewSession && !currentSessionId;\n \n // Chama a API para enviar a mensagem\n const response = await sendChatMessage(\n userMessage.content, \n currentSessionId || undefined,\n shouldCreateNewSession // Só passa true na primeira mensagem de uma sessão nova\n );\n \n // Remove o indicador de digitação\n setMessages(prev => prev.filter(msg => msg.id !== thinkingMessageId));\n \n if (response) {\n // Se esta era uma nova sessão, agora não é mais\n if (shouldCreateNewSession) {\n // Após enviar a primeira mensagem de uma nova sessão,\n // garantimos que as próximas mensagens são enviadas para \n // a mesma sessão marcando a sessão como não sendo mais nova\n // Se a sessão foi enviada com sucesso, consideramos que não é mais nova\n // mesmo que não tenhamos um ID de sessão para armazenar (ele estará no backend)\n if (currentSessionId) {\n // Se já temos um ID de sessão, usamos setCurrentSession para manter esse ID\n setCurrentSession(currentSessionId);\n } else {\n // Se não temos um ID de sessão, podemos simplesmente atualizar a flag isNewSession\n // através do contexto, enviando o sessionId como null\n setCurrentSession(null);\n }\n }\n \n // Adiciona a resposta do assistente\n setMessages(prev => [...prev, {\n id: `bot-${Date.now()}`,\n content: response.answer,\n isUser: false,\n timestamp: Date.now()\n }]);\n }\n } catch (error) {\n console.error('Erro ao enviar mensagem:', error);\n // Remove o indicador de digitação em caso de erro\n setMessages(prev => prev.filter(msg => msg.id !== thinkingMessageId));\n \n // Adiciona uma mensagem de erro\n setMessages(prev => [...prev, {\n id: `error-${Date.now()}`,\n content: 'Desculpe, ocorreu um erro ao processar sua mensagem. Por favor, tente novamente.',\n isUser: false,\n timestamp: Date.now()\n }]);\n } finally {\n setIsLoading(false);\n setIsBotTyping(false);\n }\n };\n \n // Handler para tecla Enter no input\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'Enter' && !e.shiftKey) {\n e.preventDefault();\n handleSendMessage();\n }\n };\n \n // Handler para mudança no input\n const handleInputChange = (e: React.ChangeEvent) => {\n setInputValue(e.target.value);\n adjustTextareaHeight(e.target);\n };\n \n // Handler para iniciar nova sessão\n const handleNewSession = () => {\n startNewSession();\n setMessages([\n {\n id: 'welcome',\n content: 'Olá! Sou seu assistente pessoal com IA. Como posso ajudar com seu registro de humor hoje?',\n isUser: false,\n timestamp: Date.now()\n }\n ]);\n };\n \n // Função para expandir o chat em tela cheia\n const handleExpandToFullscreen = () => {\n // Se já temos um ID de sessão, navegamos para a página dedicada com esse ID\n if (currentSessionId) {\n navigate(`/chat?sessionId=${currentSessionId}`);\n } else {\n // Se não temos um ID (sessão nova), navegamos para a página dedicada sem parâmetros\n navigate('/chat');\n }\n \n // Fechamos o chat flutuante, pois estaremos indo para a versão em tela cheia\n closeChat();\n };\n \n // Determinar a classe de posicionamento com base se está na página dedicada ou não\n const positionClass = isFullscreen \n ? \"w-full h-full\" // Quando estiver na página de chat, ocupa todo o espaço disponível\n : \"fixed bottom-20 left-1/2 transform -translate-x-1/2 z-50 lg:bottom-8\"; // Comportamento flutuante nas demais páginas\n \n // Se o chat não estiver aberto e não estiver na página dedicada, não renderiza nada\n if (!isOpen && !isFullscreen) {\n return null;\n }\n \n // Na página dedicada, sempre renderizamos o widget mesmo que isOpen seja falso\n \n return (\n
\n {/* Janela do chat */}\n
\n {/* Cabeçalho */}\n
\n
\n \n

\n {isNewSession ? 'Nova Conversa' : 'Conversa Contínua'}\n

\n
\n
\n {!isFullscreen && (\n <>\n \n \n \n \n \n \n setIsMinimized(!isMinimized)}\n className=\"p-1 hover:bg-gray-100 rounded-full transition-colors duration-200\"\n >\n {isMinimized ? : }\n \n \n \n \n \n )}\n
\n
\n\n {/* Corpo do chat (oculto quando minimizado) */}\n {!isMinimized && (\n
\n {isLoadingPreviousMessages && (\n
\n
\n
\n )}\n\n {messages.map((message, index) => (\n
\n
\n {message.isThinking ? (\n
\n
\n
\n
\n
\n ) : (\n
\n {message.content}\n
\n )}\n
\n
\n ))}\n
\n
\n )}\n\n {/* Digitando e rodapé (oculto quando minimizado) */}\n {!isMinimized && (\n <>\n {isBotTyping && (\n
\n
\n
\n Assistente está digitando...\n
\n
\n )}\n\n
\n
\n {isFullscreen && (\n \n \n \n )}\n \n
\n \n
\n handleSendMessage()}\n disabled={!inputValue.trim() || isLoading}\n className={`p-2 rounded-full transition-colors ${\n inputValue.trim() && !isLoading\n ? 'bg-primary-500 text-white hover:bg-primary-600'\n : 'bg-gray-300 text-gray-500 cursor-not-allowed'\n }`}\n >\n \n \n
\n
\n \n )}\n
\n
\n );\n};\n\nexport default ChatWidget;","import { ChatAIResponse, ChatSessionsResponse, ChatSessionMessagesResponse } from '../types';\nimport { getChatAIService } from './serviceLocator';\n\n/**\n * Envia uma mensagem para a API do chat e retorna a resposta após o processo de polling\n * @param message - Mensagem do usuário para enviar ao chatbot\n * @param sessionId - ID opcional da sessão existente para continuar a conversa\n * @param createNewSession - Flag para indicar se deve criar uma nova sessão\n * @param extraAttempts - Número adicional de tentativas para o polling (para mensagens reenviadas)\n * @returns Resposta da API de chat após o processamento completo\n */\nexport const sendChatMessage = async (\n message: string, \n sessionId?: string, \n createNewSession?: boolean,\n extraAttempts?: number\n): Promise => {\n const chatAIService = getChatAIService();\n return await chatAIService.sendMessage(message, sessionId, createNewSession, extraAttempts);\n};\n\n/**\n * Obtém todas as sessões de chat do usuário\n * @returns Lista de sessões de chat\n */\nexport const getChatSessions = async (): Promise => {\n const chatAIService = getChatAIService();\n return await chatAIService.getSessions();\n};\n\n/**\n * Obtém todas as mensagens de uma sessão específica\n * @param sessionId - ID da sessão para buscar as mensagens\n * @returns Lista de mensagens da sessão\n */\nexport const getChatSessionMessages = async (sessionId: string): Promise => {\n const chatAIService = getChatAIService();\n return await chatAIService.getSessionMessages(sessionId);\n};\n\n/**\n * Analisa o humor a partir de uma mensagem de texto\n * @param message - Mensagem do usuário para analisar\n * @returns Análise de humor ou null se não for possível analisar\n */\nexport const analyzeMoodFromText = async (message: string): Promise => {\n const chatAIService = getChatAIService();\n return await chatAIService.analyzeMood(message);\n};\n\n/**\n * Busca dados do histórico de humor através do chat\n * @param query - Consulta para buscar no histórico\n * @returns Resposta da IA com os dados encontrados\n */\nexport const searchMoodHistory = async (query: string): Promise => {\n const chatAIService = getChatAIService();\n return await chatAIService.searchMoodHistory(query);\n};\n\n/**\n * Recebe sugestões personalizadas da IA baseadas no histórico\n * @returns Resposta da IA com sugestões\n */\nexport const getAISuggestions = async (): Promise => {\n const chatAIService = getChatAIService();\n return await chatAIService.getSuggestions();\n}; ","import React, { ReactNode, useState, useEffect } from 'react';\nimport { Link, useLocation, useNavigate } from 'react-router-dom';\nimport { Home, BarChart2, User, PlusCircle, LogOut, Calendar, BookOpen, Brain, MessageSquare, MoreHorizontal } from 'lucide-react';\nimport { useAuth } from '../contexts/AuthContext';\nimport GoogleAdsense from './GoogleAdsense';\nimport { adsenseConfig } from '../config/adsenseConfig';\nimport { useOnBoardingStore } from '../stores/onBoardingStore';\nimport { formatHashedEmail } from './utils/formatters';\nimport ChatWidget from './ChatAI/ChatWidget';\n\ninterface LayoutProps {\n children: ReactNode;\n}\n\nconst Layout: React.FC = ({ children }) => {\n const location = useLocation();\n const navigate = useNavigate();\n const { user, signOut, currentPlan } = useAuth();\n const [showRegisterOptions, setShowRegisterOptions] = useState(false);\n const [showMoreOptions, setShowMoreOptions] = useState(false);\n const isOnBoardingActive = useOnBoardingStore(state => state.isModalOpen);\n \n // Adicionar evento de clique no documento para fechar os menus\n useEffect(() => {\n const handleClickOutside = () => {\n setShowRegisterOptions(false);\n setShowMoreOptions(false);\n };\n \n if (showRegisterOptions || showMoreOptions) {\n document.addEventListener('click', handleClickOutside);\n }\n \n return () => {\n document.removeEventListener('click', handleClickOutside);\n };\n }, [showRegisterOptions, showMoreOptions]);\n \n const isActive = (path: string) => {\n return location.pathname === path;\n };\n \n const shouldShowNavigation = !['/', '/login'].includes(location.pathname);\n \n // Verificar se deve mostrar a navegação inferior\n // Não mostrar quando o OnBoarding estiver ativo ou nas páginas de login/inicial\n const shouldShowBottomNavigation = shouldShowNavigation && !isOnBoardingActive;\n \n const handleLogout = async () => {\n await signOut();\n navigate('/login');\n };\n \n // Adicionar classe ao container principal quando o OnBoarding estiver ativo\n // para garantir que o conteúdo não fique escondido atrás da navegação\n const mainContainerClass = isOnBoardingActive \n ? \"flex-1 w-full mx-auto px-4 pb-8 lg:container-responsive\" \n : \"flex-1 w-full mx-auto px-4 pb-20 lg:pb-8 lg:container-responsive\";\n \n return (\n <>\n
\n {/* Header para todas as resoluções - Logo sempre visível */}\n {shouldShowNavigation && (\n
\n
\n \n \n \n \n Meu Humor\n \n \n {/* Navegação apenas visível em telas >= 1024px */}\n \n
\n
\n )}\n\n {/* Header mobile para a página de perfil */}\n {location.pathname === '/perfil' && user && (\n
\n
\n
\n

Perfil

\n

{formatHashedEmail(user.email)}

\n
\n \n
\n
\n )}\n \n {/* Header Ad - Somente exibido para usuários com plano basic */}\n {currentPlan === 'basic' && (\n
\n \n
\n )}\n \n {/* Main content - Ajustando padding quando o OnBoarding estiver ativo */}\n
\n {children}\n \n {/* In-content Ad */}\n {currentPlan === 'basic' && (\n
\n \n
\n )}\n
\n\n {/* Chat Widget - sempre presente mas só visível quando ativado */}\n {user && !location.pathname.startsWith('/chat') && (\n \n )}\n\n {/* Navegação mobile - Escondida em resoluções >= 1024px e quando o OnBoarding está ativo */}\n {shouldShowBottomNavigation && (\n \n )}\n
\n \n );\n};\n\nexport default Layout;","const formatDistanceLocale = {\n lessThanXSeconds: {\n one: \"menos de um segundo\",\n other: \"menos de {{count}} segundos\",\n },\n\n xSeconds: {\n one: \"1 segundo\",\n other: \"{{count}} segundos\",\n },\n\n halfAMinute: \"meio minuto\",\n\n lessThanXMinutes: {\n one: \"menos de um minuto\",\n other: \"menos de {{count}} minutos\",\n },\n\n xMinutes: {\n one: \"1 minuto\",\n other: \"{{count}} minutos\",\n },\n\n aboutXHours: {\n one: \"cerca de 1 hora\",\n other: \"cerca de {{count}} horas\",\n },\n\n xHours: {\n one: \"1 hora\",\n other: \"{{count}} horas\",\n },\n\n xDays: {\n one: \"1 dia\",\n other: \"{{count}} dias\",\n },\n\n aboutXWeeks: {\n one: \"cerca de 1 semana\",\n other: \"cerca de {{count}} semanas\",\n },\n\n xWeeks: {\n one: \"1 semana\",\n other: \"{{count}} semanas\",\n },\n\n aboutXMonths: {\n one: \"cerca de 1 mês\",\n other: \"cerca de {{count}} meses\",\n },\n\n xMonths: {\n one: \"1 mês\",\n other: \"{{count}} meses\",\n },\n\n aboutXYears: {\n one: \"cerca de 1 ano\",\n other: \"cerca de {{count}} anos\",\n },\n\n xYears: {\n one: \"1 ano\",\n other: \"{{count}} anos\",\n },\n\n overXYears: {\n one: \"mais de 1 ano\",\n other: \"mais de {{count}} anos\",\n },\n\n almostXYears: {\n one: \"quase 1 ano\",\n other: \"quase {{count}} anos\",\n },\n};\n\nexport const formatDistance = (token, count, options) => {\n let result;\n\n const tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === \"string\") {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace(\"{{count}}\", String(count));\n }\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return \"em \" + result;\n } else {\n return \"há \" + result;\n }\n }\n\n return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.mjs\";\n\nconst dateFormats = {\n full: \"EEEE, d 'de' MMMM 'de' y\",\n long: \"d 'de' MMMM 'de' y\",\n medium: \"d MMM y\",\n short: \"dd/MM/yyyy\",\n};\n\nconst timeFormats = {\n full: \"HH:mm:ss zzzz\",\n long: \"HH:mm:ss z\",\n medium: \"HH:mm:ss\",\n short: \"HH:mm\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} 'às' {{time}}\",\n long: \"{{date}} 'às' {{time}}\",\n medium: \"{{date}}, {{time}}\",\n short: \"{{date}}, {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n","const formatRelativeLocale = {\n lastWeek: (date) => {\n const weekday = date.getDay();\n const last = weekday === 0 || weekday === 6 ? \"último\" : \"última\";\n return \"'\" + last + \"' eeee 'às' p\";\n },\n yesterday: \"'ontem às' p\",\n today: \"'hoje às' p\",\n tomorrow: \"'amanhã às' p\",\n nextWeek: \"eeee 'às' p\",\n other: \"P\",\n};\n\nexport const formatRelative = (token, date, _baseDate, _options) => {\n const format = formatRelativeLocale[token];\n\n if (typeof format === \"function\") {\n return format(date);\n }\n\n return format;\n};\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.mjs\";\n\nconst eraValues = {\n narrow: [\"AC\", \"DC\"],\n abbreviated: [\"AC\", \"DC\"],\n wide: [\"antes de cristo\", \"depois de cristo\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"T1\", \"T2\", \"T3\", \"T4\"],\n wide: [\"1º trimestre\", \"2º trimestre\", \"3º trimestre\", \"4º trimestre\"],\n};\n\nconst monthValues = {\n narrow: [\"j\", \"f\", \"m\", \"a\", \"m\", \"j\", \"j\", \"a\", \"s\", \"o\", \"n\", \"d\"],\n abbreviated: [\n \"jan\",\n \"fev\",\n \"mar\",\n \"abr\",\n \"mai\",\n \"jun\",\n \"jul\",\n \"ago\",\n \"set\",\n \"out\",\n \"nov\",\n \"dez\",\n ],\n\n wide: [\n \"janeiro\",\n \"fevereiro\",\n \"março\",\n \"abril\",\n \"maio\",\n \"junho\",\n \"julho\",\n \"agosto\",\n \"setembro\",\n \"outubro\",\n \"novembro\",\n \"dezembro\",\n ],\n};\n\nconst dayValues = {\n narrow: [\"D\", \"S\", \"T\", \"Q\", \"Q\", \"S\", \"S\"],\n short: [\"dom\", \"seg\", \"ter\", \"qua\", \"qui\", \"sex\", \"sab\"],\n abbreviated: [\n \"domingo\",\n \"segunda\",\n \"terça\",\n \"quarta\",\n \"quinta\",\n \"sexta\",\n \"sábado\",\n ],\n\n wide: [\n \"domingo\",\n \"segunda-feira\",\n \"terça-feira\",\n \"quarta-feira\",\n \"quinta-feira\",\n \"sexta-feira\",\n \"sábado\",\n ],\n};\n\nconst dayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mn\",\n noon: \"md\",\n morning: \"manhã\",\n afternoon: \"tarde\",\n evening: \"tarde\",\n night: \"noite\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"meia-noite\",\n noon: \"meio-dia\",\n morning: \"manhã\",\n afternoon: \"tarde\",\n evening: \"tarde\",\n night: \"noite\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"meia-noite\",\n noon: \"meio-dia\",\n morning: \"manhã\",\n afternoon: \"tarde\",\n evening: \"tarde\",\n night: \"noite\",\n },\n};\n\nconst formattingDayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mn\",\n noon: \"md\",\n morning: \"da manhã\",\n afternoon: \"da tarde\",\n evening: \"da tarde\",\n night: \"da noite\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"meia-noite\",\n noon: \"meio-dia\",\n morning: \"da manhã\",\n afternoon: \"da tarde\",\n evening: \"da tarde\",\n night: \"da noite\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"meia-noite\",\n noon: \"meio-dia\",\n morning: \"da manhã\",\n afternoon: \"da tarde\",\n evening: \"da tarde\",\n night: \"da noite\",\n },\n};\n\nconst ordinalNumber = (dirtyNumber, options) => {\n const number = Number(dirtyNumber);\n\n if (options?.unit === \"week\") {\n return number + \"ª\";\n }\n return number + \"º\";\n};\n\nexport const localize = {\n ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: \"wide\",\n }),\n};\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.mjs\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.mjs\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)[ºªo]?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n narrow: /^(ac|dc|a|d)/i,\n abbreviated: /^(a\\.?\\s?c\\.?|d\\.?\\s?c\\.?)/i,\n wide: /^(antes de cristo|depois de cristo)/i,\n};\nconst parseEraPatterns = {\n any: [/^ac/i, /^dc/i],\n wide: [/^antes de cristo/i, /^depois de cristo/i],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^T[1234]/i,\n wide: /^[1234](º)? trimestre/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[jfmajsond]/i,\n abbreviated: /^(jan|fev|mar|abr|mai|jun|jul|ago|set|out|nov|dez)/i,\n wide: /^(janeiro|fevereiro|março|abril|maio|junho|julho|agosto|setembro|outubro|novembro|dezembro)/i,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^j/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^j/i,\n /^j/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n any: [\n /^ja/i,\n /^fev/i,\n /^mar/i,\n /^abr/i,\n /^mai/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^set/i,\n /^out/i,\n /^nov/i,\n /^dez/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^(dom|[23456]ª?|s[aá]b)/i,\n short: /^(dom|[23456]ª?|s[aá]b)/i,\n abbreviated: /^(dom|seg|ter|qua|qui|sex|s[aá]b)/i,\n wide: /^(domingo|(segunda|ter[cç]a|quarta|quinta|sexta)([- ]feira)?|s[aá]bado)/i,\n};\nconst parseDayPatterns = {\n short: [/^d/i, /^2/i, /^3/i, /^4/i, /^5/i, /^6/i, /^s[aá]/i],\n narrow: [/^d/i, /^2/i, /^3/i, /^4/i, /^5/i, /^6/i, /^s[aá]/i],\n any: [/^d/i, /^seg/i, /^t/i, /^qua/i, /^qui/i, /^sex/i, /^s[aá]b/i],\n};\n\nconst matchDayPeriodPatterns = {\n narrow: /^(a|p|mn|md|(da) (manhã|tarde|noite))/i,\n any: /^([ap]\\.?\\s?m\\.?|meia[-\\s]noite|meio[-\\s]dia|(da) (manhã|tarde|noite))/i,\n};\nconst parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mn|^meia[-\\s]noite/i,\n noon: /^md|^meio[-\\s]dia/i,\n morning: /manhã/i,\n afternoon: /tarde/i,\n evening: /tarde/i,\n night: /noite/i,\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value, 10),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n","import { formatDistance } from \"./pt-BR/_lib/formatDistance.mjs\";\nimport { formatLong } from \"./pt-BR/_lib/formatLong.mjs\";\nimport { formatRelative } from \"./pt-BR/_lib/formatRelative.mjs\";\nimport { localize } from \"./pt-BR/_lib/localize.mjs\";\nimport { match } from \"./pt-BR/_lib/match.mjs\";\n\n/**\n * @category Locales\n * @summary Portuguese locale (Brazil).\n * @language Portuguese\n * @iso-639-2 por\n * @author Lucas Duailibe [@duailibe](https://github.com/duailibe)\n * @author Yago Carballo [@yagocarballo](https://github.com/YagoCarballo)\n */\nexport const ptBR = {\n code: \"pt-BR\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1,\n },\n};\n\n// Fallback for modularized imports:\nexport default ptBR;\n","import { MoodEntry, HealthRecord } from '../types';\nimport { getMoodService, getHealthRecordService } from './serviceLocator';\n\n// Compatibilidade com código existente - MoodEntries\nexport const saveMoodEntries = async (entries: MoodEntry[]): Promise => {\n const moodService = getMoodService();\n for (const entry of entries) {\n await moodService.addEntry(entry);\n }\n};\n\nexport const getMoodEntries = async (): Promise => {\n return await getMoodService().getAllEntries();\n};\n\nexport const addMoodEntry = async (entry: MoodEntry): Promise => {\n await getMoodService().addEntry(entry);\n};\n\nexport const addMoodEntryForDate = async (score: number, note: string, date: Date): Promise => {\n await getMoodService().addEntryForDate(score, note, date);\n};\n\nexport const getEntriesForLastDays = async (days: number): Promise => {\n return await getMoodService().getEntriesForLastDays(days);\n};\n\nexport const getAverageMoodForDay = async (date: Date): Promise => {\n return await getMoodService().getAverageMoodForDay(date);\n};\n\nexport const updateMoodEntry = async (entry: MoodEntry): Promise => {\n await getMoodService().updateEntry(entry);\n};\n\nexport const deleteMoodEntry = async (entryId: string): Promise => {\n await getMoodService().deleteEntry(entryId);\n};\n\nexport const hasConcerningPattern = async (): Promise => {\n return await getMoodService().hasConcerningPattern();\n};\n\n// Compatibilidade com código existente - HealthRecords\nexport const createHealthRecord = async (): Promise => {\n return await getHealthRecordService().createRecord();\n};\n\nexport const getHealthRecords = async (limit = 2): Promise => {\n return await getHealthRecordService().getRecords(limit);\n};\n\nexport const canGenerateHealthRecord = async (): Promise => {\n return await getHealthRecordService().canGenerateRecord();\n};\n\nexport const resetHealthRecord = async (recordId: string): Promise => {\n return await getHealthRecordService().resetRecord(recordId);\n};","import { format, subDays } from 'date-fns';\nimport { ptBR } from 'date-fns/locale';\nimport { MoodEntry, WeeklySummary } from '../../types';\nimport { getEntriesForLastDays } from '../DatabaseFacade';\n\n// Get emoji for mood score\nexport const getMoodEmoji = (score: number): string => {\n const emojis = ['😢', '😔', '😐', '🙂', '😊', '🥰'];\n return emojis[score] || '😐';\n};\n\n// Get text description for mood score\nexport const getMoodText = (score: number): string => {\n const descriptions = [\n 'Muito mal',\n 'Mal',\n 'Neutro',\n 'Bem',\n 'Muito bem',\n 'Excelente'\n ];\n return descriptions[score] || 'Neutro';\n};\n\n// Get color for mood score\nexport const getMoodColor = (score: number): string => {\n const colors = [\n 'rgb(239, 68, 68)', // red-500\n 'rgb(249, 115, 22)', // orange-500\n 'rgb(234, 179, 8)', // yellow-500\n 'rgb(34, 197, 94)', // green-500\n 'rgb(59, 130, 246)', // blue-500\n 'rgb(139, 92, 246)' // purple-500\n ];\n return colors[score] || colors[2];\n};\n\n// Generate data for the weekly mood chart\nexport const getWeeklyChartData = async (providedEntries?: MoodEntry[]): Promise<{\n labels: string[]; datasets: {\n data: number[];\n backgroundColor: string[];\n borderColor: string;\n borderWidth: number;\n }[];\n}> => { \n const labels: string[] = [];\n const data: number[] = [];\n const backgroundColors: string[] = [];\n const hasDataForDay: boolean[] = []; // Novo array para rastrear dias com dados\n \n // Get last 7 days\n for (let i = 6; i >= 0; i--) {\n const date = subDays(new Date(), i);\n const formattedDate = format(date, 'EEE', { locale: ptBR });\n labels.push(formattedDate);\n \n // Get average mood for this day\n const dayStart = new Date(date);\n dayStart.setHours(0, 0, 0, 0);\n \n const dayEnd = new Date(date);\n dayEnd.setHours(23, 59, 59, 999);\n \n // Usar entradas fornecidas ou buscar do storage\n let entries;\n if (providedEntries) {\n entries = providedEntries.filter(entry => {\n const entryDate = new Date(entry.timestamp);\n return entryDate >= dayStart && entryDate <= dayEnd;\n });\n } else {\n entries = (await getEntriesForLastDays(7)).filter(entry => {\n const entryDate = new Date(entry.timestamp);\n return entryDate >= dayStart && entryDate <= dayEnd;\n });\n }\n \n if (entries.length === 0) {\n // Usar 0 para dias sem registro\n data.push(0);\n backgroundColors.push('rgba(203, 213, 225, 0.5)'); // neutral-300 with opacity\n hasDataForDay.push(false);\n } else {\n const sum = entries.reduce((acc, entry) => acc + entry.score, 0);\n const average = sum / entries.length;\n \n // Deslocar a escala: score + 1 (0 -> 1, 1 -> 2, ..., 5 -> 6)\n data.push(average + 1);\n \n // Garantir que dias com pontuação zero tenham a cor correta\n // Usamos o valor original (não deslocado) para obter a cor correta\n const roundedAverage = Math.round(average);\n backgroundColors.push(getMoodColor(roundedAverage));\n hasDataForDay.push(true);\n \n // Log para debug\n console.log(`Dia ${formattedDate}: score original=${average}, score deslocado=${average + 1}, rounded=${roundedAverage}, color=${getMoodColor(roundedAverage)}`);\n }\n }\n \n console.log('Dados processados:', labels, data, backgroundColors, hasDataForDay);\n \n // Se não temos nenhum valor válido, vamos colocar pelo menos algum valor padrão\n // para que o gráfico possa renderizar algo\n const hasValidData = data.some((value, index) => hasDataForDay[index]);\n \n if (!hasValidData) {\n console.log('Nenhum dado válido encontrado, usando dados padrão para o gráfico');\n // Usar dados padrão se não temos nenhum valor válido\n return {\n labels,\n datasets: [\n {\n data: [0, 0, 0, 0, 0, 0, 0], // Valores 0 para todos os dias sem dados\n backgroundColor: Array(7).fill('rgba(203, 213, 225, 0.5)'),\n borderColor: 'rgba(255, 255, 255, 0.5)',\n borderWidth: 1\n }\n ]\n };\n }\n \n return {\n labels,\n datasets: [\n {\n data,\n backgroundColor: backgroundColors,\n borderColor: 'rgba(255, 255, 255, 0.5)',\n borderWidth: 1\n }\n ]\n };\n};\n\n// Generate weekly summary\nexport const generateWeeklySummary = async (providedEntries?: MoodEntry[]): Promise => {\n // Usar entradas fornecidas ou buscar do storage\n const entries = providedEntries || await getEntriesForLastDays(7);\n \n if (entries.length === 0) {\n return {\n averageMood: -1,\n bestDay: { date: '', score: -1 },\n worstDay: { date: '', score: -1 },\n recommendation: 'Comece a registrar seu humor para receber recomendações personalizadas.'\n };\n }\n \n // Calculate average mood\n const sum = entries.reduce((acc, entry) => acc + entry.score, 0);\n const averageMood = sum / entries.length;\n \n // Group entries by day\n const entriesByDay: Record = {};\n \n entries.forEach(entry => {\n const date = format(new Date(entry.timestamp), 'yyyy-MM-dd 03:00');\n if (!entriesByDay[date]) {\n entriesByDay[date] = [];\n }\n entriesByDay[date].push(entry);\n });\n \n // Calculate daily averages\n const dailyAverages = Object.keys(entriesByDay).map(date => {\n const dayEntries = entriesByDay[date];\n const daySum = dayEntries.reduce((acc, entry) => acc + entry.score, 0);\n const average = daySum / dayEntries.length;\n return {\n date,\n score: average\n };\n });\n \n // Find best and worst days\n let bestDay = dailyAverages[0];\n let worstDay = dailyAverages[0];\n \n dailyAverages.forEach(day => {\n if (day.score > bestDay.score) {\n bestDay = day;\n }\n if (day.score < worstDay.score) {\n worstDay = day;\n }\n });\n \n // Format dates\n const formatDate = (dateStr: string) => {\n const date = new Date(dateStr);\n return format(date, 'dd/MM', { locale: ptBR });\n };\n \n // Generate recommendation based on average mood\n let recommendation = '';\n if (averageMood < 2) {\n recommendation = 'Sua semana foi desafiadora. Considere praticar técnicas de respiração profunda e buscar apoio de amigos ou familiares.';\n } else if (averageMood < 3) {\n recommendation = 'Tente incluir pequenos momentos de alegria no seu dia. Uma caminhada de 15 minutos pode ajudar a melhorar seu humor.';\n } else if (averageMood < 4) {\n recommendation = 'Você está indo bem! Continue com suas práticas atuais e considere adicionar meditação mindfulness para fortalecer seu bem-estar.';\n } else {\n recommendation = 'Excelente semana! Aproveite esse momento positivo para fortalecer hábitos saudáveis e compartilhar sua energia com os outros.';\n }\n \n return {\n averageMood,\n bestDay: {\n date: formatDate(bestDay.date),\n score: bestDay.score\n },\n worstDay: {\n date: formatDate(worstDay.date),\n score: worstDay.score\n },\n recommendation\n };\n};","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { useEffect, useState } from 'react';\nimport { Bar } from 'react-chartjs-2';\nimport {\n Chart as ChartJS,\n CategoryScale,\n LinearScale,\n BarElement,\n Title,\n Tooltip,\n Legend\n} from 'chart.js';\nimport { getWeeklyChartData } from '../infra/utils/moodUtils';\nimport type { ChartData } from '../types';\nimport { Loader2 } from 'lucide-react';\n\n// Register ChartJS components\nChartJS.register(\n CategoryScale,\n LinearScale,\n BarElement,\n Title,\n Tooltip,\n Legend\n);\n\ninterface MoodChartProps {\n entries?: any[];\n loading?: boolean;\n}\n\nconst MoodChart: React.FC = ({ entries, loading = false }) => {\n const [chartData, setChartData] = useState(null);\n const [localLoading, setLocalLoading] = useState(loading);\n\n useEffect(() => {\n const fetchChartData = async () => {\n try {\n // Se temos entries passados como props, usamos eles\n // em vez de fazer uma nova requisição\n if (entries && entries.length > 0) {\n console.log('Usando entries passados por props:', entries);\n const data = await getWeeklyChartData(entries);\n console.log('Dados do gráfico gerados:', data);\n setChartData(data);\n } else {\n console.log('Nenhuma entry fornecida, buscando do storage');\n const data = await getWeeklyChartData();\n console.log('Dados do gráfico gerados do storage:', data);\n setChartData(data);\n }\n } catch (error) {\n console.error('Erro ao carregar dados do gráfico:', error);\n } finally {\n setLocalLoading(false);\n }\n };\n\n fetchChartData();\n }, [entries]);\n\n if (localLoading) {\n return (\n
\n \n

Carregando gráfico...

\n
\n );\n }\n\n if (!chartData) {\n console.log('Nenhum dado de gráfico disponível');\n return (\n
\n

Sem dados para exibir

\n
\n );\n }\n\n // Processa os dados do gráfico para garantir que valores zero sejam exibidos corretamente\n const processedChartData = {\n ...chartData,\n datasets: chartData.datasets.map(dataset => ({\n ...dataset,\n // Configurações específicas para o Chart.js\n barPercentage: 0.8,\n categoryPercentage: 0.8,\n borderRadius: 4\n }))\n };\n\n // Array de emojis para a escala deslocada\n const shiftedEmojis = ['', '😢', '😔', '😐', '🙂', '😊', '🥰'];\n\n const options = {\n responsive: true,\n plugins: {\n legend: {\n display: false,\n },\n tooltip: {\n callbacks: {\n label: function(context: any) {\n const value = context.raw;\n if (value === 0) {\n return 'Sem registros';\n }\n // Converter valor deslocado para o valor original para exibição\n const originalValue = value - 1;\n if (originalValue === 0) {\n return 'Humor: Muito mal';\n }\n return `Humor médio: ${originalValue.toFixed(1)}`;\n }\n }\n }\n },\n scales: {\n y: {\n min: 0, // Começar em 0 para dias sem registro\n max: 6, // Terminar em 6 para o humor máximo (escala deslocada)\n ticks: {\n stepSize: 1,\n callback: function(value: number) {\n if (value === 0) {\n return ''; // Não mostrar label para 0 (sem registros)\n }\n // Usar o array de emojis deslocado\n return shiftedEmojis[value] || value;\n }\n },\n grid: {\n display: true,\n drawBorder: true,\n color: function(context: any) {\n if (context.tick.value === 1) {\n return 'rgba(0, 0, 0, 0.2)'; // Linha mais escura para o valor 1 (humor 0)\n }\n return 'rgba(0, 0, 0, 0.1)';\n }\n }\n },\n x: {\n grid: {\n display: false\n },\n ticks: {\n font: {\n size: 11,\n // Aumentar o tamanho da fonte em telas maiores\n weight: window.innerWidth >= 768 ? '600' : '400'\n }\n }\n }\n },\n maintainAspectRatio: false,\n elements: {\n bar: {\n borderWidth: 1,\n borderColor: 'rgba(255, 255, 255, 0.5)'\n }\n }\n };\n \n // Verifica se há pelo menos um valor válido nos dados\n const hasValidData = chartData.datasets[0].data.some(value => \n value !== undefined && value !== null && value > 0\n );\n \n return (\n
\n {hasValidData ? (\n \n ) : (\n
\n

Sem dados de humor para exibir

\n

\n Registre seu humor para ver o gráfico aqui\n

\n
\n )}\n
\n );\n};\n\nexport default MoodChart;","import React, { useEffect, useState, useCallback, useRef } from 'react';\nimport { generateWeeklySummary, getMoodEmoji } from '../infra/utils/moodUtils';\nimport type { WeeklySummary as WeeklySummaryType, MoodEntry } from '../types';\nimport { getWeeklySummaryService } from '../infra/serviceLocator';\nimport { Loader2, ChevronDown, ChevronUp, Sparkles, Brain } from 'lucide-react';\nimport { WeeklySummaryResponse } from '../infra/services/WeeklySummaryService';\n\ninterface WeeklySummaryProps {\n entries?: MoodEntry[];\n loading?: boolean;\n}\n\nconst WeeklySummary = ({ entries, loading: propLoading = false }: WeeklySummaryProps): JSX.Element => {\n const [summary, setSummary] = useState(null);\n const [loading, setLoading] = useState(propLoading);\n const [recommendation, setRecommendation] = useState(null);\n const [loadingRecommendation, setLoadingRecommendation] = useState(false);\n const [pollingStatus, setPollingStatus] = useState(null);\n const [isPollingActive, setIsPollingActive] = useState(false);\n const [isExpanded, setIsExpanded] = useState(false);\n const [requestId, setRequestId] = useState(null);\n const [summaryPeriod, setSummaryPeriod] = useState<{ startDate: string; endDate: string } | null>(null);\n const [retryCount, setRetryCount] = useState(0);\n const MAX_RETRY_COUNT = 3;\n \n // Refs para controle de chamadas à API\n const apiCallInProgressRef = useRef(false);\n const apiCallCompletedRef = useRef(false);\n const unmountedRef = useRef(false);\n\n // Função para buscar o resumo básico\n const fetchBasicSummary = useCallback(async () => {\n try {\n setLoading(true);\n let data;\n \n if (entries && entries.length > 0) {\n data = await generateWeeklySummary(entries);\n } else {\n data = await generateWeeklySummary();\n }\n \n setSummary(data);\n } catch (error) {\n console.error('Erro ao carregar o resumo semanal:', error);\n } finally {\n setLoading(false);\n }\n }, [entries]);\n\n // Função para buscar a recomendação personalizada via API\n const fetchRecommendation = useCallback(async () => {\n // Sistema robusto para evitar chamadas duplicadas\n if (apiCallInProgressRef.current) {\n console.log('Chamada à API já em andamento - ignorando solicitação duplicada');\n return;\n }\n \n if (apiCallCompletedRef.current) {\n console.log('Chamada à API já foi concluída com sucesso - ignorando solicitação duplicada');\n return;\n }\n \n // Marcar início da chamada\n apiCallInProgressRef.current = true;\n \n try {\n setIsPollingActive(true);\n setLoadingRecommendation(true);\n setPollingStatus(\"Gerando insights com IA...\");\n \n console.log('Iniciando solicitação de insights de IA');\n const response = await getWeeklySummaryService().getWeeklySummary();\n \n // Verificar se o componente foi desmontado durante a chamada\n if (unmountedRef.current) {\n console.log('Componente desmontado durante a chamada à API - abortando processamento');\n return;\n }\n \n // Verificar se temos uma resposta com texto e metadata\n if (response && typeof response === 'object') {\n const apiResponse = response as WeeklySummaryResponse;\n if (apiResponse.summary) {\n console.log('Insights de IA obtidos com sucesso:', apiResponse.summary.substring(0, 50) + '...');\n \n // Atualizar estados com os dados recebidos\n setRecommendation(apiResponse.summary);\n setRequestId(apiResponse.requestId);\n setSummaryPeriod({ \n startDate: apiResponse.startDate, \n endDate: apiResponse.endDate \n });\n \n // Limpar estado de polling quando a resposta for recebida com sucesso\n setPollingStatus(null);\n setIsPollingActive(false);\n setLoadingRecommendation(false);\n // Resetar o contador de tentativas após sucesso\n setRetryCount(0);\n \n // Marcar que a chamada foi concluída com sucesso\n apiCallCompletedRef.current = true;\n } else {\n // Se não tiver resumo, reiniciar o processo\n handlePollingFailure(\"Resposta sem conteúdo de insights\");\n }\n } else if (typeof response === 'string') {\n // Compatibilidade com versão anterior que retornava apenas string\n console.log('Insights de IA obtidos com sucesso:', response.substring(0, 50) + '...');\n setRecommendation(response);\n \n // Limpar estado de polling quando a resposta for recebida com sucesso\n setPollingStatus(null);\n setIsPollingActive(false);\n setLoadingRecommendation(false);\n // Resetar o contador de tentativas após sucesso\n setRetryCount(0);\n \n // Marcar que a chamada foi concluída com sucesso\n apiCallCompletedRef.current = true;\n } else {\n // Se a resposta for vazia, reiniciar o processo\n handlePollingFailure(\"Resposta vazia da API\");\n }\n } catch (error) {\n // Verificar se o componente foi desmontado durante a chamada\n if (unmountedRef.current) {\n console.log('Componente desmontado durante a chamada à API - abortando processamento de erro');\n return;\n }\n \n console.error('Erro ao obter insights de IA:', error);\n \n if (error instanceof Error) {\n const errorMessage = error.message;\n \n if (errorMessage.includes('processamento assíncrono') || \n errorMessage.includes('Já existe um processamento')) {\n // Erro normal durante processamento assíncrono - manter mensagem de status\n console.log('Processamento assíncrono em andamento');\n setPollingStatus(\"Processando insights de IA para seu histórico. Isso pode levar alguns segundos...\");\n \n // Manter estado de polling ativo, mas liberar para novas tentativas após timeout\n setTimeout(() => {\n if (unmountedRef.current) return;\n \n if (isPollingActive) {\n console.log('Timeout do polling atual, reiniciando processo...');\n setIsPollingActive(false);\n apiCallInProgressRef.current = false; // Permitir nova tentativa\n // Não limpar o pollingStatus para indicar que ainda estamos tentando\n }\n }, 30000); // 30 segundos timeout\n } else {\n // Para outros erros, reiniciar o processo\n handlePollingFailure(`Erro: ${errorMessage}`);\n }\n } else {\n handlePollingFailure(\"Erro desconhecido\");\n }\n }\n }, []);\n\n // Função para lidar com falhas no polling e decidir se tenta novamente\n const handlePollingFailure = useCallback((reason: string) => {\n // Verificar se o componente foi desmontado\n if (unmountedRef.current) return;\n \n console.log(`Falha no polling: ${reason}. Tentativa ${retryCount + 1} de ${MAX_RETRY_COUNT}`);\n \n // Limpar estados atuais\n setIsPollingActive(false);\n \n // Incrementar contador de tentativas\n const newRetryCount = retryCount + 1;\n setRetryCount(newRetryCount);\n \n if (newRetryCount < MAX_RETRY_COUNT) {\n // Se ainda temos tentativas disponíveis, preparar para retry\n setPollingStatus(`Reconectando ao serviço de IA... (tentativa ${newRetryCount} de ${MAX_RETRY_COUNT})`);\n \n // Agendar nova tentativa após um breve delay\n setTimeout(() => {\n if (unmountedRef.current) return;\n \n setLoadingRecommendation(true);\n apiCallInProgressRef.current = false; // Permitir nova tentativa\n fetchRecommendation();\n }, 3000); // 3 segundos antes da próxima tentativa\n } else {\n // Esgotamos as tentativas\n setPollingStatus(\"Não foi possível conectar ao serviço de IA no momento. Tente novamente mais tarde.\");\n setLoadingRecommendation(false);\n \n // Liberar para potencial nova tentativa manual\n apiCallInProgressRef.current = false;\n \n // Resetar após um tempo para permitir nova tentativa manual\n setTimeout(() => {\n if (unmountedRef.current) return;\n \n setPollingStatus(null);\n setRetryCount(0);\n }, 5000);\n }\n }, [retryCount, fetchRecommendation]);\n\n // Efeito para verificar se devemos invalidar o cache quando as entradas mudarem\n useEffect(() => {\n if (entries && entries.length > 0) {\n // Usar o novo método que compara os registros de humor completos\n getWeeklySummaryService().shouldInvalidateCache(entries);\n }\n }, [entries]);\n\n // Carregar dados básicos do resumo quando o componente montar ou entries mudar\n useEffect(() => {\n unmountedRef.current = false;\n fetchBasicSummary();\n \n // Cleanup ao desmontar\n return () => {\n unmountedRef.current = true;\n };\n }, [fetchBasicSummary]);\n\n // Iniciar solicitação de recomendação quando o resumo básico estiver pronto\n useEffect(() => {\n if (summary && !apiCallInProgressRef.current && !apiCallCompletedRef.current && !recommendation) {\n console.log('Resumo básico carregado, iniciando solicitação única de insights de IA');\n fetchRecommendation();\n }\n }, [summary, recommendation, fetchRecommendation]);\n\n // Efeito para verificar periodicamente se o polling está preso\n useEffect(() => {\n // Se estamos em um estado de polling ativo por muito tempo, podemos ter perdido alguma resposta\n // Criar um timer para verificar e potencialmente reiniciar o polling\n let pollingCheckTimer: NodeJS.Timeout | null = null;\n \n if (isPollingActive && apiCallInProgressRef.current && !apiCallCompletedRef.current) {\n pollingCheckTimer = setTimeout(() => {\n if (unmountedRef.current) return;\n \n console.log('Verificação periódica de polling ativo por tempo excessivo');\n // Força reset do polling apenas se ainda estiver ativo após o timeout\n if (isPollingActive && apiCallInProgressRef.current && !apiCallCompletedRef.current) {\n console.log('Polling ativo por muito tempo, reiniciando processo');\n setIsPollingActive(false);\n apiCallInProgressRef.current = false;\n \n // Agendar uma nova tentativa\n setTimeout(() => {\n if (unmountedRef.current) return;\n \n if (!recommendation && !apiCallCompletedRef.current) {\n fetchRecommendation();\n }\n }, 1000);\n }\n }, 60000); // Verificar após 60 segundos\n }\n \n // Limpar o timer quando o componente for desmontado ou o estado mudar\n return () => {\n if (pollingCheckTimer) {\n clearTimeout(pollingCheckTimer);\n }\n };\n }, [isPollingActive, recommendation, fetchRecommendation]);\n\n if (loading) {\n return (\n
\n
\n \n

Carregando...

\n
\n
\n );\n }\n\n if (!summary) return <>;\n\n // Se não tiver dados\n if (summary.averageMood === -1) {\n return (\n
\n

Resumo Semanal

\n

\n Comece a registrar seu humor para ver um resumo semanal aqui.\n

\n
\n );\n }\n \n // Formatar período do resumo se disponível\n const formatPeriodDate = (dateStr: string) => {\n if (!dateStr) return '';\n const date = new Date(dateStr);\n return date.toLocaleDateString('pt-BR', { day: '2-digit', month: '2-digit' });\n };\n \n const periodText = summaryPeriod \n ? `${formatPeriodDate(summaryPeriod.startDate)} a ${formatPeriodDate(summaryPeriod.endDate)}`\n : 'Últimos 7 dias';\n \n return (\n
\n

Resumo Semanal

\n \n
\n
\n {getMoodEmoji(Math.round(summary.averageMood))}\n
\n
\n

\n Humor médio: {summary.averageMood.toFixed(1)}/5\n

\n

\n {periodText}\n

\n
\n
\n \n
\n
\n

Melhor dia

\n

\n {summary.bestDay.date} \n {getMoodEmoji(Math.round(summary.bestDay.score))}\n

\n
\n
\n

Dia mais desafiador

\n

\n {summary.worstDay.date}\n {getMoodEmoji(Math.round(summary.worstDay.score))}\n

\n
\n \n
\n

Registros

\n

\n {entries?.length || 0} registros\n

\n
\n
\n

Tendência

\n

\n {summary.averageMood > 3 ? 'Positiva ↗️' : 'Neutra →'}\n

\n
\n
\n \n
\n
\n
\n \n

Insights de IA

\n
\n {recommendation && !loadingRecommendation && !pollingStatus && (\n setIsExpanded(!isExpanded)}\n className=\"text-indigo-600 hover:text-indigo-800 p-1 rounded-full\"\n aria-label={isExpanded ? \"Recolher texto\" : \"Expandir texto\"}\n >\n {isExpanded ? (\n \n ) : (\n \n )}\n \n )}\n
\n \n {loadingRecommendation || pollingStatus ? (\n
\n \n

\n {pollingStatus || \"Analisando seu histórico de humor...\"}\n

\n
\n ) : (\n <>\n
\n

\n {recommendation}\n

\n \n {!isExpanded && recommendation && recommendation.length > 200 && (\n
\n )}\n
\n \n {recommendation && recommendation.length > 200 && (\n setIsExpanded(!isExpanded)}\n className=\"w-full text-center py-2 text-sm text-indigo-600 hover:text-indigo-800 hover:bg-indigo-100 rounded-md transition-colors cursor-pointer flex items-center justify-center mt-1\"\n >\n {isExpanded ? \"Mostrar menos\" : \"Ler mais\"}\n \n )}\n \n
\n \n Gerado por IA com base no seu histórico\n
\n \n )}\n \n {requestId && (\n

\n ID: {requestId}\n

\n )}\n
\n
\n );\n};\n\nexport default WeeklySummary;","import React from 'react';\nimport { getMoodEmoji, getMoodText } from '../infra/utils/moodUtils';\n\ninterface MoodSelectorProps {\n selectedMood: number;\n onSelect: (score: number) => void;\n}\n\nconst MoodSelector: React.FC = ({ selectedMood, onSelect }) => {\n return (\n
\n

Como você está se sentindo?

\n \n
\n Muito mal\n Excelente\n
\n \n
\n {[0, 1, 2, 3, 4, 5].map((score) => (\n onSelect(score)}\n aria-label={`Humor: ${getMoodText(score)}`}\n >\n {getMoodEmoji(score)}\n \n ))}\n
\n \n {selectedMood !== -1 && (\n

\n {getMoodText(selectedMood)}\n

\n )}\n
\n );\n};\n\nexport default MoodSelector;","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t {\n const classMap = createClassMap(config);\n const {\n conflictingClassGroups,\n conflictingClassGroupModifiers\n } = config;\n const getClassGroupId = className => {\n const classParts = className.split(CLASS_PART_SEPARATOR);\n // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and remove it from classParts.\n if (classParts[0] === '' && classParts.length !== 1) {\n classParts.shift();\n }\n return getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className);\n };\n const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => {\n const conflicts = conflictingClassGroups[classGroupId] || [];\n if (hasPostfixModifier && conflictingClassGroupModifiers[classGroupId]) {\n return [...conflicts, ...conflictingClassGroupModifiers[classGroupId]];\n }\n return conflicts;\n };\n return {\n getClassGroupId,\n getConflictingClassGroupIds\n };\n};\nconst getGroupRecursive = (classParts, classPartObject) => {\n if (classParts.length === 0) {\n return classPartObject.classGroupId;\n }\n const currentClassPart = classParts[0];\n const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);\n const classGroupFromNextClassPart = nextClassPartObject ? getGroupRecursive(classParts.slice(1), nextClassPartObject) : undefined;\n if (classGroupFromNextClassPart) {\n return classGroupFromNextClassPart;\n }\n if (classPartObject.validators.length === 0) {\n return undefined;\n }\n const classRest = classParts.join(CLASS_PART_SEPARATOR);\n return classPartObject.validators.find(({\n validator\n }) => validator(classRest))?.classGroupId;\n};\nconst arbitraryPropertyRegex = /^\\[(.+)\\]$/;\nconst getGroupIdForArbitraryProperty = className => {\n if (arbitraryPropertyRegex.test(className)) {\n const arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)[1];\n const property = arbitraryPropertyClassName?.substring(0, arbitraryPropertyClassName.indexOf(':'));\n if (property) {\n // I use two dots here because one dot is used as prefix for class groups in plugins\n return 'arbitrary..' + property;\n }\n }\n};\n/**\n * Exported for testing only\n */\nconst createClassMap = config => {\n const {\n theme,\n classGroups\n } = config;\n const classMap = {\n nextPart: new Map(),\n validators: []\n };\n for (const classGroupId in classGroups) {\n processClassesRecursively(classGroups[classGroupId], classMap, classGroupId, theme);\n }\n return classMap;\n};\nconst processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {\n classGroup.forEach(classDefinition => {\n if (typeof classDefinition === 'string') {\n const classPartObjectToEdit = classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition);\n classPartObjectToEdit.classGroupId = classGroupId;\n return;\n }\n if (typeof classDefinition === 'function') {\n if (isThemeGetter(classDefinition)) {\n processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);\n return;\n }\n classPartObject.validators.push({\n validator: classDefinition,\n classGroupId\n });\n return;\n }\n Object.entries(classDefinition).forEach(([key, classGroup]) => {\n processClassesRecursively(classGroup, getPart(classPartObject, key), classGroupId, theme);\n });\n });\n};\nconst getPart = (classPartObject, path) => {\n let currentClassPartObject = classPartObject;\n path.split(CLASS_PART_SEPARATOR).forEach(pathPart => {\n if (!currentClassPartObject.nextPart.has(pathPart)) {\n currentClassPartObject.nextPart.set(pathPart, {\n nextPart: new Map(),\n validators: []\n });\n }\n currentClassPartObject = currentClassPartObject.nextPart.get(pathPart);\n });\n return currentClassPartObject;\n};\nconst isThemeGetter = func => func.isThemeGetter;\n\n// LRU cache inspired from hashlru (https://github.com/dominictarr/hashlru/blob/v1.0.4/index.js) but object replaced with Map to improve performance\nconst createLruCache = maxCacheSize => {\n if (maxCacheSize < 1) {\n return {\n get: () => undefined,\n set: () => {}\n };\n }\n let cacheSize = 0;\n let cache = new Map();\n let previousCache = new Map();\n const update = (key, value) => {\n cache.set(key, value);\n cacheSize++;\n if (cacheSize > maxCacheSize) {\n cacheSize = 0;\n previousCache = cache;\n cache = new Map();\n }\n };\n return {\n get(key) {\n let value = cache.get(key);\n if (value !== undefined) {\n return value;\n }\n if ((value = previousCache.get(key)) !== undefined) {\n update(key, value);\n return value;\n }\n },\n set(key, value) {\n if (cache.has(key)) {\n cache.set(key, value);\n } else {\n update(key, value);\n }\n }\n };\n};\nconst IMPORTANT_MODIFIER = '!';\nconst MODIFIER_SEPARATOR = ':';\nconst MODIFIER_SEPARATOR_LENGTH = MODIFIER_SEPARATOR.length;\nconst createParseClassName = config => {\n const {\n prefix,\n experimentalParseClassName\n } = config;\n /**\n * Parse class name into parts.\n *\n * Inspired by `splitAtTopLevelOnly` used in Tailwind CSS\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js\n */\n let parseClassName = className => {\n const modifiers = [];\n let bracketDepth = 0;\n let parenDepth = 0;\n let modifierStart = 0;\n let postfixModifierPosition;\n for (let index = 0; index < className.length; index++) {\n let currentCharacter = className[index];\n if (bracketDepth === 0 && parenDepth === 0) {\n if (currentCharacter === MODIFIER_SEPARATOR) {\n modifiers.push(className.slice(modifierStart, index));\n modifierStart = index + MODIFIER_SEPARATOR_LENGTH;\n continue;\n }\n if (currentCharacter === '/') {\n postfixModifierPosition = index;\n continue;\n }\n }\n if (currentCharacter === '[') {\n bracketDepth++;\n } else if (currentCharacter === ']') {\n bracketDepth--;\n } else if (currentCharacter === '(') {\n parenDepth++;\n } else if (currentCharacter === ')') {\n parenDepth--;\n }\n }\n const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.substring(modifierStart);\n const baseClassName = stripImportantModifier(baseClassNameWithImportantModifier);\n const hasImportantModifier = baseClassName !== baseClassNameWithImportantModifier;\n const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : undefined;\n return {\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n };\n };\n if (prefix) {\n const fullPrefix = prefix + MODIFIER_SEPARATOR;\n const parseClassNameOriginal = parseClassName;\n parseClassName = className => className.startsWith(fullPrefix) ? parseClassNameOriginal(className.substring(fullPrefix.length)) : {\n isExternal: true,\n modifiers: [],\n hasImportantModifier: false,\n baseClassName: className,\n maybePostfixModifierPosition: undefined\n };\n }\n if (experimentalParseClassName) {\n const parseClassNameOriginal = parseClassName;\n parseClassName = className => experimentalParseClassName({\n className,\n parseClassName: parseClassNameOriginal\n });\n }\n return parseClassName;\n};\nconst stripImportantModifier = baseClassName => {\n if (baseClassName.endsWith(IMPORTANT_MODIFIER)) {\n return baseClassName.substring(0, baseClassName.length - 1);\n }\n /**\n * In Tailwind CSS v3 the important modifier was at the start of the base class name. This is still supported for legacy reasons.\n * @see https://github.com/dcastil/tailwind-merge/issues/513#issuecomment-2614029864\n */\n if (baseClassName.startsWith(IMPORTANT_MODIFIER)) {\n return baseClassName.substring(1);\n }\n return baseClassName;\n};\n\n/**\n * Sorts modifiers according to following schema:\n * - Predefined modifiers are sorted alphabetically\n * - When an arbitrary variant appears, it must be preserved which modifiers are before and after it\n */\nconst createSortModifiers = config => {\n const orderSensitiveModifiers = Object.fromEntries(config.orderSensitiveModifiers.map(modifier => [modifier, true]));\n const sortModifiers = modifiers => {\n if (modifiers.length <= 1) {\n return modifiers;\n }\n const sortedModifiers = [];\n let unsortedModifiers = [];\n modifiers.forEach(modifier => {\n const isPositionSensitive = modifier[0] === '[' || orderSensitiveModifiers[modifier];\n if (isPositionSensitive) {\n sortedModifiers.push(...unsortedModifiers.sort(), modifier);\n unsortedModifiers = [];\n } else {\n unsortedModifiers.push(modifier);\n }\n });\n sortedModifiers.push(...unsortedModifiers.sort());\n return sortedModifiers;\n };\n return sortModifiers;\n};\nconst createConfigUtils = config => ({\n cache: createLruCache(config.cacheSize),\n parseClassName: createParseClassName(config),\n sortModifiers: createSortModifiers(config),\n ...createClassGroupUtils(config)\n});\nconst SPLIT_CLASSES_REGEX = /\\s+/;\nconst mergeClassList = (classList, configUtils) => {\n const {\n parseClassName,\n getClassGroupId,\n getConflictingClassGroupIds,\n sortModifiers\n } = configUtils;\n /**\n * Set of classGroupIds in following format:\n * `{importantModifier}{variantModifiers}{classGroupId}`\n * @example 'float'\n * @example 'hover:focus:bg-color'\n * @example 'md:!pr'\n */\n const classGroupsInConflict = [];\n const classNames = classList.trim().split(SPLIT_CLASSES_REGEX);\n let result = '';\n for (let index = classNames.length - 1; index >= 0; index -= 1) {\n const originalClassName = classNames[index];\n const {\n isExternal,\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n } = parseClassName(originalClassName);\n if (isExternal) {\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n let hasPostfixModifier = !!maybePostfixModifierPosition;\n let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);\n if (!classGroupId) {\n if (!hasPostfixModifier) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n classGroupId = getClassGroupId(baseClassName);\n if (!classGroupId) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n hasPostfixModifier = false;\n }\n const variantModifier = sortModifiers(modifiers).join(':');\n const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;\n const classId = modifierId + classGroupId;\n if (classGroupsInConflict.includes(classId)) {\n // Tailwind class omitted due to conflict\n continue;\n }\n classGroupsInConflict.push(classId);\n const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier);\n for (let i = 0; i < conflictGroups.length; ++i) {\n const group = conflictGroups[i];\n classGroupsInConflict.push(modifierId + group);\n }\n // Tailwind class not in conflict\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n }\n return result;\n};\n\n/**\n * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better.\n *\n * Specifically:\n * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js\n * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts\n *\n * Original code has MIT license: Copyright (c) Luke Edwards (lukeed.com)\n */\nfunction twJoin() {\n let index = 0;\n let argument;\n let resolvedValue;\n let string = '';\n while (index < arguments.length) {\n if (argument = arguments[index++]) {\n if (resolvedValue = toValue(argument)) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n}\nconst toValue = mix => {\n if (typeof mix === 'string') {\n return mix;\n }\n let resolvedValue;\n let string = '';\n for (let k = 0; k < mix.length; k++) {\n if (mix[k]) {\n if (resolvedValue = toValue(mix[k])) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n};\nfunction createTailwindMerge(createConfigFirst, ...createConfigRest) {\n let configUtils;\n let cacheGet;\n let cacheSet;\n let functionToCall = initTailwindMerge;\n function initTailwindMerge(classList) {\n const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst());\n configUtils = createConfigUtils(config);\n cacheGet = configUtils.cache.get;\n cacheSet = configUtils.cache.set;\n functionToCall = tailwindMerge;\n return tailwindMerge(classList);\n }\n function tailwindMerge(classList) {\n const cachedResult = cacheGet(classList);\n if (cachedResult) {\n return cachedResult;\n }\n const result = mergeClassList(classList, configUtils);\n cacheSet(classList, result);\n return result;\n }\n return function callTailwindMerge() {\n return functionToCall(twJoin.apply(null, arguments));\n };\n}\nconst fromTheme = key => {\n const themeGetter = theme => theme[key] || [];\n themeGetter.isThemeGetter = true;\n return themeGetter;\n};\nconst arbitraryValueRegex = /^\\[(?:(\\w[\\w-]*):)?(.+)\\]$/i;\nconst arbitraryVariableRegex = /^\\((?:(\\w[\\w-]*):)?(.+)\\)$/i;\nconst fractionRegex = /^\\d+\\/\\d+$/;\nconst tshirtUnitRegex = /^(\\d+(\\.\\d+)?)?(xs|sm|md|lg|xl)$/;\nconst lengthUnitRegex = /\\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\\b(calc|min|max|clamp)\\(.+\\)|^0$/;\nconst colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch))\\(.+\\)$/;\n// Shadow always begins with x and y offset separated by underscore optionally prepended by inset\nconst shadowRegex = /^(inset_)?-?((\\d+)?\\.?(\\d+)[a-z]+|0)_-?((\\d+)?\\.?(\\d+)[a-z]+|0)/;\nconst imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\\(.+\\)$/;\nconst isFraction = value => fractionRegex.test(value);\nconst isNumber = value => Boolean(value) && !Number.isNaN(Number(value));\nconst isInteger = value => Boolean(value) && Number.isInteger(Number(value));\nconst isPercent = value => value.endsWith('%') && isNumber(value.slice(0, -1));\nconst isTshirtSize = value => tshirtUnitRegex.test(value);\nconst isAny = () => true;\nconst isLengthOnly = value =>\n// `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.\n// For example, `hsl(0 0% 0%)` would be classified as a length without this check.\n// I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.\nlengthUnitRegex.test(value) && !colorFunctionRegex.test(value);\nconst isNever = () => false;\nconst isShadow = value => shadowRegex.test(value);\nconst isImage = value => imageRegex.test(value);\nconst isAnyNonArbitrary = value => !isArbitraryValue(value) && !isArbitraryVariable(value);\nconst isArbitrarySize = value => getIsArbitraryValue(value, isLabelSize, isNever);\nconst isArbitraryValue = value => arbitraryValueRegex.test(value);\nconst isArbitraryLength = value => getIsArbitraryValue(value, isLabelLength, isLengthOnly);\nconst isArbitraryNumber = value => getIsArbitraryValue(value, isLabelNumber, isNumber);\nconst isArbitraryPosition = value => getIsArbitraryValue(value, isLabelPosition, isNever);\nconst isArbitraryImage = value => getIsArbitraryValue(value, isLabelImage, isImage);\nconst isArbitraryShadow = value => getIsArbitraryValue(value, isNever, isShadow);\nconst isArbitraryVariable = value => arbitraryVariableRegex.test(value);\nconst isArbitraryVariableLength = value => getIsArbitraryVariable(value, isLabelLength);\nconst isArbitraryVariableFamilyName = value => getIsArbitraryVariable(value, isLabelFamilyName);\nconst isArbitraryVariablePosition = value => getIsArbitraryVariable(value, isLabelPosition);\nconst isArbitraryVariableSize = value => getIsArbitraryVariable(value, isLabelSize);\nconst isArbitraryVariableImage = value => getIsArbitraryVariable(value, isLabelImage);\nconst isArbitraryVariableShadow = value => getIsArbitraryVariable(value, isLabelShadow, true);\n// Helpers\nconst getIsArbitraryValue = (value, testLabel, testValue) => {\n const result = arbitraryValueRegex.exec(value);\n if (result) {\n if (result[1]) {\n return testLabel(result[1]);\n }\n return testValue(result[2]);\n }\n return false;\n};\nconst getIsArbitraryVariable = (value, testLabel, shouldMatchNoLabel = false) => {\n const result = arbitraryVariableRegex.exec(value);\n if (result) {\n if (result[1]) {\n return testLabel(result[1]);\n }\n return shouldMatchNoLabel;\n }\n return false;\n};\n// Labels\nconst isLabelPosition = label => label === 'position';\nconst imageLabels = /*#__PURE__*/new Set(['image', 'url']);\nconst isLabelImage = label => imageLabels.has(label);\nconst sizeLabels = /*#__PURE__*/new Set(['length', 'size', 'percentage']);\nconst isLabelSize = label => sizeLabels.has(label);\nconst isLabelLength = label => label === 'length';\nconst isLabelNumber = label => label === 'number';\nconst isLabelFamilyName = label => label === 'family-name';\nconst isLabelShadow = label => label === 'shadow';\nconst validators = /*#__PURE__*/Object.defineProperty({\n __proto__: null,\n isAny,\n isAnyNonArbitrary,\n isArbitraryImage,\n isArbitraryLength,\n isArbitraryNumber,\n isArbitraryPosition,\n isArbitraryShadow,\n isArbitrarySize,\n isArbitraryValue,\n isArbitraryVariable,\n isArbitraryVariableFamilyName,\n isArbitraryVariableImage,\n isArbitraryVariableLength,\n isArbitraryVariablePosition,\n isArbitraryVariableShadow,\n isArbitraryVariableSize,\n isFraction,\n isInteger,\n isNumber,\n isPercent,\n isTshirtSize\n}, Symbol.toStringTag, {\n value: 'Module'\n});\nconst getDefaultConfig = () => {\n /**\n * Theme getters for theme variable namespaces\n * @see https://tailwindcss.com/docs/theme#theme-variable-namespaces\n */\n /***/\n const themeColor = fromTheme('color');\n const themeFont = fromTheme('font');\n const themeText = fromTheme('text');\n const themeFontWeight = fromTheme('font-weight');\n const themeTracking = fromTheme('tracking');\n const themeLeading = fromTheme('leading');\n const themeBreakpoint = fromTheme('breakpoint');\n const themeContainer = fromTheme('container');\n const themeSpacing = fromTheme('spacing');\n const themeRadius = fromTheme('radius');\n const themeShadow = fromTheme('shadow');\n const themeInsetShadow = fromTheme('inset-shadow');\n const themeDropShadow = fromTheme('drop-shadow');\n const themeBlur = fromTheme('blur');\n const themePerspective = fromTheme('perspective');\n const themeAspect = fromTheme('aspect');\n const themeEase = fromTheme('ease');\n const themeAnimate = fromTheme('animate');\n /**\n * Helpers to avoid repeating the same scales\n *\n * We use functions that create a new array every time they're called instead of static arrays.\n * This ensures that users who modify any scale by mutating the array (e.g. with `array.push(element)`) don't accidentally mutate arrays in other parts of the config.\n */\n /***/\n const scaleBreak = () => ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column'];\n const scalePosition = () => ['bottom', 'center', 'left', 'left-bottom', 'left-top', 'right', 'right-bottom', 'right-top', 'top'];\n const scaleOverflow = () => ['auto', 'hidden', 'clip', 'visible', 'scroll'];\n const scaleOverscroll = () => ['auto', 'contain', 'none'];\n const scaleUnambiguousSpacing = () => [isArbitraryVariable, isArbitraryValue, themeSpacing];\n const scaleInset = () => [isFraction, 'full', 'auto', ...scaleUnambiguousSpacing()];\n const scaleGridTemplateColsRows = () => [isInteger, 'none', 'subgrid', isArbitraryVariable, isArbitraryValue];\n const scaleGridColRowStartAndEnd = () => ['auto', {\n span: ['full', isInteger, isArbitraryVariable, isArbitraryValue]\n }, isArbitraryVariable, isArbitraryValue];\n const scaleGridColRowStartOrEnd = () => [isInteger, 'auto', isArbitraryVariable, isArbitraryValue];\n const scaleGridAutoColsRows = () => ['auto', 'min', 'max', 'fr', isArbitraryVariable, isArbitraryValue];\n const scaleAlignPrimaryAxis = () => ['start', 'end', 'center', 'between', 'around', 'evenly', 'stretch', 'baseline'];\n const scaleAlignSecondaryAxis = () => ['start', 'end', 'center', 'stretch'];\n const scaleMargin = () => ['auto', ...scaleUnambiguousSpacing()];\n const scaleSizing = () => [isFraction, 'auto', 'full', 'dvw', 'dvh', 'lvw', 'lvh', 'svw', 'svh', 'min', 'max', 'fit', ...scaleUnambiguousSpacing()];\n const scaleColor = () => [themeColor, isArbitraryVariable, isArbitraryValue];\n const scaleGradientStopPosition = () => [isPercent, isArbitraryLength];\n const scaleRadius = () => [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', 'full', themeRadius, isArbitraryVariable, isArbitraryValue];\n const scaleBorderWidth = () => ['', isNumber, isArbitraryVariableLength, isArbitraryLength];\n const scaleLineStyle = () => ['solid', 'dashed', 'dotted', 'double'];\n const scaleBlendMode = () => ['normal', 'multiply', 'screen', 'overlay', 'darken', 'lighten', 'color-dodge', 'color-burn', 'hard-light', 'soft-light', 'difference', 'exclusion', 'hue', 'saturation', 'color', 'luminosity'];\n const scaleBlur = () => [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', themeBlur, isArbitraryVariable, isArbitraryValue];\n const scaleOrigin = () => ['center', 'top', 'top-right', 'right', 'bottom-right', 'bottom', 'bottom-left', 'left', 'top-left', isArbitraryVariable, isArbitraryValue];\n const scaleRotate = () => ['none', isNumber, isArbitraryVariable, isArbitraryValue];\n const scaleScale = () => ['none', isNumber, isArbitraryVariable, isArbitraryValue];\n const scaleSkew = () => [isNumber, isArbitraryVariable, isArbitraryValue];\n const scaleTranslate = () => [isFraction, 'full', ...scaleUnambiguousSpacing()];\n return {\n cacheSize: 500,\n theme: {\n animate: ['spin', 'ping', 'pulse', 'bounce'],\n aspect: ['video'],\n blur: [isTshirtSize],\n breakpoint: [isTshirtSize],\n color: [isAny],\n container: [isTshirtSize],\n 'drop-shadow': [isTshirtSize],\n ease: ['in', 'out', 'in-out'],\n font: [isAnyNonArbitrary],\n 'font-weight': ['thin', 'extralight', 'light', 'normal', 'medium', 'semibold', 'bold', 'extrabold', 'black'],\n 'inset-shadow': [isTshirtSize],\n leading: ['none', 'tight', 'snug', 'normal', 'relaxed', 'loose'],\n perspective: ['dramatic', 'near', 'normal', 'midrange', 'distant', 'none'],\n radius: [isTshirtSize],\n shadow: [isTshirtSize],\n spacing: ['px', isNumber],\n text: [isTshirtSize],\n tracking: ['tighter', 'tight', 'normal', 'wide', 'wider', 'widest']\n },\n classGroups: {\n // --------------\n // --- Layout ---\n // --------------\n /**\n * Aspect Ratio\n * @see https://tailwindcss.com/docs/aspect-ratio\n */\n aspect: [{\n aspect: ['auto', 'square', isFraction, isArbitraryValue, isArbitraryVariable, themeAspect]\n }],\n /**\n * Container\n * @see https://tailwindcss.com/docs/container\n * @deprecated since Tailwind CSS v4.0.0\n */\n container: ['container'],\n /**\n * Columns\n * @see https://tailwindcss.com/docs/columns\n */\n columns: [{\n columns: [isNumber, isArbitraryValue, isArbitraryVariable, themeContainer]\n }],\n /**\n * Break After\n * @see https://tailwindcss.com/docs/break-after\n */\n 'break-after': [{\n 'break-after': scaleBreak()\n }],\n /**\n * Break Before\n * @see https://tailwindcss.com/docs/break-before\n */\n 'break-before': [{\n 'break-before': scaleBreak()\n }],\n /**\n * Break Inside\n * @see https://tailwindcss.com/docs/break-inside\n */\n 'break-inside': [{\n 'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column']\n }],\n /**\n * Box Decoration Break\n * @see https://tailwindcss.com/docs/box-decoration-break\n */\n 'box-decoration': [{\n 'box-decoration': ['slice', 'clone']\n }],\n /**\n * Box Sizing\n * @see https://tailwindcss.com/docs/box-sizing\n */\n box: [{\n box: ['border', 'content']\n }],\n /**\n * Display\n * @see https://tailwindcss.com/docs/display\n */\n display: ['block', 'inline-block', 'inline', 'flex', 'inline-flex', 'table', 'inline-table', 'table-caption', 'table-cell', 'table-column', 'table-column-group', 'table-footer-group', 'table-header-group', 'table-row-group', 'table-row', 'flow-root', 'grid', 'inline-grid', 'contents', 'list-item', 'hidden'],\n /**\n * Screen Reader Only\n * @see https://tailwindcss.com/docs/display#screen-reader-only\n */\n sr: ['sr-only', 'not-sr-only'],\n /**\n * Floats\n * @see https://tailwindcss.com/docs/float\n */\n float: [{\n float: ['right', 'left', 'none', 'start', 'end']\n }],\n /**\n * Clear\n * @see https://tailwindcss.com/docs/clear\n */\n clear: [{\n clear: ['left', 'right', 'both', 'none', 'start', 'end']\n }],\n /**\n * Isolation\n * @see https://tailwindcss.com/docs/isolation\n */\n isolation: ['isolate', 'isolation-auto'],\n /**\n * Object Fit\n * @see https://tailwindcss.com/docs/object-fit\n */\n 'object-fit': [{\n object: ['contain', 'cover', 'fill', 'none', 'scale-down']\n }],\n /**\n * Object Position\n * @see https://tailwindcss.com/docs/object-position\n */\n 'object-position': [{\n object: [...scalePosition(), isArbitraryValue, isArbitraryVariable]\n }],\n /**\n * Overflow\n * @see https://tailwindcss.com/docs/overflow\n */\n overflow: [{\n overflow: scaleOverflow()\n }],\n /**\n * Overflow X\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-x': [{\n 'overflow-x': scaleOverflow()\n }],\n /**\n * Overflow Y\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-y': [{\n 'overflow-y': scaleOverflow()\n }],\n /**\n * Overscroll Behavior\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n overscroll: [{\n overscroll: scaleOverscroll()\n }],\n /**\n * Overscroll Behavior X\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-x': [{\n 'overscroll-x': scaleOverscroll()\n }],\n /**\n * Overscroll Behavior Y\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-y': [{\n 'overscroll-y': scaleOverscroll()\n }],\n /**\n * Position\n * @see https://tailwindcss.com/docs/position\n */\n position: ['static', 'fixed', 'absolute', 'relative', 'sticky'],\n /**\n * Top / Right / Bottom / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n inset: [{\n inset: scaleInset()\n }],\n /**\n * Right / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-x': [{\n 'inset-x': scaleInset()\n }],\n /**\n * Top / Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-y': [{\n 'inset-y': scaleInset()\n }],\n /**\n * Start\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n start: [{\n start: scaleInset()\n }],\n /**\n * End\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n end: [{\n end: scaleInset()\n }],\n /**\n * Top\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n top: [{\n top: scaleInset()\n }],\n /**\n * Right\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n right: [{\n right: scaleInset()\n }],\n /**\n * Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n bottom: [{\n bottom: scaleInset()\n }],\n /**\n * Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n left: [{\n left: scaleInset()\n }],\n /**\n * Visibility\n * @see https://tailwindcss.com/docs/visibility\n */\n visibility: ['visible', 'invisible', 'collapse'],\n /**\n * Z-Index\n * @see https://tailwindcss.com/docs/z-index\n */\n z: [{\n z: [isInteger, 'auto', isArbitraryVariable, isArbitraryValue]\n }],\n // ------------------------\n // --- Flexbox and Grid ---\n // ------------------------\n /**\n * Flex Basis\n * @see https://tailwindcss.com/docs/flex-basis\n */\n basis: [{\n basis: [isFraction, 'full', 'auto', themeContainer, ...scaleUnambiguousSpacing()]\n }],\n /**\n * Flex Direction\n * @see https://tailwindcss.com/docs/flex-direction\n */\n 'flex-direction': [{\n flex: ['row', 'row-reverse', 'col', 'col-reverse']\n }],\n /**\n * Flex Wrap\n * @see https://tailwindcss.com/docs/flex-wrap\n */\n 'flex-wrap': [{\n flex: ['nowrap', 'wrap', 'wrap-reverse']\n }],\n /**\n * Flex\n * @see https://tailwindcss.com/docs/flex\n */\n flex: [{\n flex: [isNumber, isFraction, 'auto', 'initial', 'none', isArbitraryValue]\n }],\n /**\n * Flex Grow\n * @see https://tailwindcss.com/docs/flex-grow\n */\n grow: [{\n grow: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Flex Shrink\n * @see https://tailwindcss.com/docs/flex-shrink\n */\n shrink: [{\n shrink: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Order\n * @see https://tailwindcss.com/docs/order\n */\n order: [{\n order: [isInteger, 'first', 'last', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Grid Template Columns\n * @see https://tailwindcss.com/docs/grid-template-columns\n */\n 'grid-cols': [{\n 'grid-cols': scaleGridTemplateColsRows()\n }],\n /**\n * Grid Column Start / End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start-end': [{\n col: scaleGridColRowStartAndEnd()\n }],\n /**\n * Grid Column Start\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start': [{\n 'col-start': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Column End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-end': [{\n 'col-end': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Template Rows\n * @see https://tailwindcss.com/docs/grid-template-rows\n */\n 'grid-rows': [{\n 'grid-rows': scaleGridTemplateColsRows()\n }],\n /**\n * Grid Row Start / End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start-end': [{\n row: scaleGridColRowStartAndEnd()\n }],\n /**\n * Grid Row Start\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start': [{\n 'row-start': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Row End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-end': [{\n 'row-end': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Auto Flow\n * @see https://tailwindcss.com/docs/grid-auto-flow\n */\n 'grid-flow': [{\n 'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense']\n }],\n /**\n * Grid Auto Columns\n * @see https://tailwindcss.com/docs/grid-auto-columns\n */\n 'auto-cols': [{\n 'auto-cols': scaleGridAutoColsRows()\n }],\n /**\n * Grid Auto Rows\n * @see https://tailwindcss.com/docs/grid-auto-rows\n */\n 'auto-rows': [{\n 'auto-rows': scaleGridAutoColsRows()\n }],\n /**\n * Gap\n * @see https://tailwindcss.com/docs/gap\n */\n gap: [{\n gap: scaleUnambiguousSpacing()\n }],\n /**\n * Gap X\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-x': [{\n 'gap-x': scaleUnambiguousSpacing()\n }],\n /**\n * Gap Y\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-y': [{\n 'gap-y': scaleUnambiguousSpacing()\n }],\n /**\n * Justify Content\n * @see https://tailwindcss.com/docs/justify-content\n */\n 'justify-content': [{\n justify: [...scaleAlignPrimaryAxis(), 'normal']\n }],\n /**\n * Justify Items\n * @see https://tailwindcss.com/docs/justify-items\n */\n 'justify-items': [{\n 'justify-items': [...scaleAlignSecondaryAxis(), 'normal']\n }],\n /**\n * Justify Self\n * @see https://tailwindcss.com/docs/justify-self\n */\n 'justify-self': [{\n 'justify-self': ['auto', ...scaleAlignSecondaryAxis()]\n }],\n /**\n * Align Content\n * @see https://tailwindcss.com/docs/align-content\n */\n 'align-content': [{\n content: ['normal', ...scaleAlignPrimaryAxis()]\n }],\n /**\n * Align Items\n * @see https://tailwindcss.com/docs/align-items\n */\n 'align-items': [{\n items: [...scaleAlignSecondaryAxis(), 'baseline']\n }],\n /**\n * Align Self\n * @see https://tailwindcss.com/docs/align-self\n */\n 'align-self': [{\n self: ['auto', ...scaleAlignSecondaryAxis(), 'baseline']\n }],\n /**\n * Place Content\n * @see https://tailwindcss.com/docs/place-content\n */\n 'place-content': [{\n 'place-content': scaleAlignPrimaryAxis()\n }],\n /**\n * Place Items\n * @see https://tailwindcss.com/docs/place-items\n */\n 'place-items': [{\n 'place-items': [...scaleAlignSecondaryAxis(), 'baseline']\n }],\n /**\n * Place Self\n * @see https://tailwindcss.com/docs/place-self\n */\n 'place-self': [{\n 'place-self': ['auto', ...scaleAlignSecondaryAxis()]\n }],\n // Spacing\n /**\n * Padding\n * @see https://tailwindcss.com/docs/padding\n */\n p: [{\n p: scaleUnambiguousSpacing()\n }],\n /**\n * Padding X\n * @see https://tailwindcss.com/docs/padding\n */\n px: [{\n px: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Y\n * @see https://tailwindcss.com/docs/padding\n */\n py: [{\n py: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Start\n * @see https://tailwindcss.com/docs/padding\n */\n ps: [{\n ps: scaleUnambiguousSpacing()\n }],\n /**\n * Padding End\n * @see https://tailwindcss.com/docs/padding\n */\n pe: [{\n pe: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Top\n * @see https://tailwindcss.com/docs/padding\n */\n pt: [{\n pt: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Right\n * @see https://tailwindcss.com/docs/padding\n */\n pr: [{\n pr: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Bottom\n * @see https://tailwindcss.com/docs/padding\n */\n pb: [{\n pb: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Left\n * @see https://tailwindcss.com/docs/padding\n */\n pl: [{\n pl: scaleUnambiguousSpacing()\n }],\n /**\n * Margin\n * @see https://tailwindcss.com/docs/margin\n */\n m: [{\n m: scaleMargin()\n }],\n /**\n * Margin X\n * @see https://tailwindcss.com/docs/margin\n */\n mx: [{\n mx: scaleMargin()\n }],\n /**\n * Margin Y\n * @see https://tailwindcss.com/docs/margin\n */\n my: [{\n my: scaleMargin()\n }],\n /**\n * Margin Start\n * @see https://tailwindcss.com/docs/margin\n */\n ms: [{\n ms: scaleMargin()\n }],\n /**\n * Margin End\n * @see https://tailwindcss.com/docs/margin\n */\n me: [{\n me: scaleMargin()\n }],\n /**\n * Margin Top\n * @see https://tailwindcss.com/docs/margin\n */\n mt: [{\n mt: scaleMargin()\n }],\n /**\n * Margin Right\n * @see https://tailwindcss.com/docs/margin\n */\n mr: [{\n mr: scaleMargin()\n }],\n /**\n * Margin Bottom\n * @see https://tailwindcss.com/docs/margin\n */\n mb: [{\n mb: scaleMargin()\n }],\n /**\n * Margin Left\n * @see https://tailwindcss.com/docs/margin\n */\n ml: [{\n ml: scaleMargin()\n }],\n /**\n * Space Between X\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-x': [{\n 'space-x': scaleUnambiguousSpacing()\n }],\n /**\n * Space Between X Reverse\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-x-reverse': ['space-x-reverse'],\n /**\n * Space Between Y\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-y': [{\n 'space-y': scaleUnambiguousSpacing()\n }],\n /**\n * Space Between Y Reverse\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-y-reverse': ['space-y-reverse'],\n // --------------\n // --- Sizing ---\n // --------------\n /**\n * Size\n * @see https://tailwindcss.com/docs/width#setting-both-width-and-height\n */\n size: [{\n size: scaleSizing()\n }],\n /**\n * Width\n * @see https://tailwindcss.com/docs/width\n */\n w: [{\n w: [themeContainer, 'screen', ...scaleSizing()]\n }],\n /**\n * Min-Width\n * @see https://tailwindcss.com/docs/min-width\n */\n 'min-w': [{\n 'min-w': [themeContainer, 'screen', /** Deprecated. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n 'none', ...scaleSizing()]\n }],\n /**\n * Max-Width\n * @see https://tailwindcss.com/docs/max-width\n */\n 'max-w': [{\n 'max-w': [themeContainer, 'screen', 'none', /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n 'prose', /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n {\n screen: [themeBreakpoint]\n }, ...scaleSizing()]\n }],\n /**\n * Height\n * @see https://tailwindcss.com/docs/height\n */\n h: [{\n h: ['screen', ...scaleSizing()]\n }],\n /**\n * Min-Height\n * @see https://tailwindcss.com/docs/min-height\n */\n 'min-h': [{\n 'min-h': ['screen', 'none', ...scaleSizing()]\n }],\n /**\n * Max-Height\n * @see https://tailwindcss.com/docs/max-height\n */\n 'max-h': [{\n 'max-h': ['screen', ...scaleSizing()]\n }],\n // ------------------\n // --- Typography ---\n // ------------------\n /**\n * Font Size\n * @see https://tailwindcss.com/docs/font-size\n */\n 'font-size': [{\n text: ['base', themeText, isArbitraryVariableLength, isArbitraryLength]\n }],\n /**\n * Font Smoothing\n * @see https://tailwindcss.com/docs/font-smoothing\n */\n 'font-smoothing': ['antialiased', 'subpixel-antialiased'],\n /**\n * Font Style\n * @see https://tailwindcss.com/docs/font-style\n */\n 'font-style': ['italic', 'not-italic'],\n /**\n * Font Weight\n * @see https://tailwindcss.com/docs/font-weight\n */\n 'font-weight': [{\n font: [themeFontWeight, isArbitraryVariable, isArbitraryNumber]\n }],\n /**\n * Font Stretch\n * @see https://tailwindcss.com/docs/font-stretch\n */\n 'font-stretch': [{\n 'font-stretch': ['ultra-condensed', 'extra-condensed', 'condensed', 'semi-condensed', 'normal', 'semi-expanded', 'expanded', 'extra-expanded', 'ultra-expanded', isPercent, isArbitraryValue]\n }],\n /**\n * Font Family\n * @see https://tailwindcss.com/docs/font-family\n */\n 'font-family': [{\n font: [isArbitraryVariableFamilyName, isArbitraryValue, themeFont]\n }],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-normal': ['normal-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-ordinal': ['ordinal'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-slashed-zero': ['slashed-zero'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-figure': ['lining-nums', 'oldstyle-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-spacing': ['proportional-nums', 'tabular-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-fraction': ['diagonal-fractions', 'stacked-fractions'],\n /**\n * Letter Spacing\n * @see https://tailwindcss.com/docs/letter-spacing\n */\n tracking: [{\n tracking: [themeTracking, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Line Clamp\n * @see https://tailwindcss.com/docs/line-clamp\n */\n 'line-clamp': [{\n 'line-clamp': [isNumber, 'none', isArbitraryVariable, isArbitraryNumber]\n }],\n /**\n * Line Height\n * @see https://tailwindcss.com/docs/line-height\n */\n leading: [{\n leading: [/** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n themeLeading, ...scaleUnambiguousSpacing()]\n }],\n /**\n * List Style Image\n * @see https://tailwindcss.com/docs/list-style-image\n */\n 'list-image': [{\n 'list-image': ['none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * List Style Position\n * @see https://tailwindcss.com/docs/list-style-position\n */\n 'list-style-position': [{\n list: ['inside', 'outside']\n }],\n /**\n * List Style Type\n * @see https://tailwindcss.com/docs/list-style-type\n */\n 'list-style-type': [{\n list: ['disc', 'decimal', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Text Alignment\n * @see https://tailwindcss.com/docs/text-align\n */\n 'text-alignment': [{\n text: ['left', 'center', 'right', 'justify', 'start', 'end']\n }],\n /**\n * Placeholder Color\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://v3.tailwindcss.com/docs/placeholder-color\n */\n 'placeholder-color': [{\n placeholder: scaleColor()\n }],\n /**\n * Text Color\n * @see https://tailwindcss.com/docs/text-color\n */\n 'text-color': [{\n text: scaleColor()\n }],\n /**\n * Text Decoration\n * @see https://tailwindcss.com/docs/text-decoration\n */\n 'text-decoration': ['underline', 'overline', 'line-through', 'no-underline'],\n /**\n * Text Decoration Style\n * @see https://tailwindcss.com/docs/text-decoration-style\n */\n 'text-decoration-style': [{\n decoration: [...scaleLineStyle(), 'wavy']\n }],\n /**\n * Text Decoration Thickness\n * @see https://tailwindcss.com/docs/text-decoration-thickness\n */\n 'text-decoration-thickness': [{\n decoration: [isNumber, 'from-font', 'auto', isArbitraryVariable, isArbitraryLength]\n }],\n /**\n * Text Decoration Color\n * @see https://tailwindcss.com/docs/text-decoration-color\n */\n 'text-decoration-color': [{\n decoration: scaleColor()\n }],\n /**\n * Text Underline Offset\n * @see https://tailwindcss.com/docs/text-underline-offset\n */\n 'underline-offset': [{\n 'underline-offset': [isNumber, 'auto', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Text Transform\n * @see https://tailwindcss.com/docs/text-transform\n */\n 'text-transform': ['uppercase', 'lowercase', 'capitalize', 'normal-case'],\n /**\n * Text Overflow\n * @see https://tailwindcss.com/docs/text-overflow\n */\n 'text-overflow': ['truncate', 'text-ellipsis', 'text-clip'],\n /**\n * Text Wrap\n * @see https://tailwindcss.com/docs/text-wrap\n */\n 'text-wrap': [{\n text: ['wrap', 'nowrap', 'balance', 'pretty']\n }],\n /**\n * Text Indent\n * @see https://tailwindcss.com/docs/text-indent\n */\n indent: [{\n indent: scaleUnambiguousSpacing()\n }],\n /**\n * Vertical Alignment\n * @see https://tailwindcss.com/docs/vertical-align\n */\n 'vertical-align': [{\n align: ['baseline', 'top', 'middle', 'bottom', 'text-top', 'text-bottom', 'sub', 'super', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Whitespace\n * @see https://tailwindcss.com/docs/whitespace\n */\n whitespace: [{\n whitespace: ['normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap', 'break-spaces']\n }],\n /**\n * Word Break\n * @see https://tailwindcss.com/docs/word-break\n */\n break: [{\n break: ['normal', 'words', 'all', 'keep']\n }],\n /**\n * Hyphens\n * @see https://tailwindcss.com/docs/hyphens\n */\n hyphens: [{\n hyphens: ['none', 'manual', 'auto']\n }],\n /**\n * Content\n * @see https://tailwindcss.com/docs/content\n */\n content: [{\n content: ['none', isArbitraryVariable, isArbitraryValue]\n }],\n // -------------------\n // --- Backgrounds ---\n // -------------------\n /**\n * Background Attachment\n * @see https://tailwindcss.com/docs/background-attachment\n */\n 'bg-attachment': [{\n bg: ['fixed', 'local', 'scroll']\n }],\n /**\n * Background Clip\n * @see https://tailwindcss.com/docs/background-clip\n */\n 'bg-clip': [{\n 'bg-clip': ['border', 'padding', 'content', 'text']\n }],\n /**\n * Background Origin\n * @see https://tailwindcss.com/docs/background-origin\n */\n 'bg-origin': [{\n 'bg-origin': ['border', 'padding', 'content']\n }],\n /**\n * Background Position\n * @see https://tailwindcss.com/docs/background-position\n */\n 'bg-position': [{\n bg: [...scalePosition(), isArbitraryVariablePosition, isArbitraryPosition]\n }],\n /**\n * Background Repeat\n * @see https://tailwindcss.com/docs/background-repeat\n */\n 'bg-repeat': [{\n bg: ['no-repeat', {\n repeat: ['', 'x', 'y', 'space', 'round']\n }]\n }],\n /**\n * Background Size\n * @see https://tailwindcss.com/docs/background-size\n */\n 'bg-size': [{\n bg: ['auto', 'cover', 'contain', isArbitraryVariableSize, isArbitrarySize]\n }],\n /**\n * Background Image\n * @see https://tailwindcss.com/docs/background-image\n */\n 'bg-image': [{\n bg: ['none', {\n linear: [{\n to: ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl']\n }, isInteger, isArbitraryVariable, isArbitraryValue],\n radial: ['', isArbitraryVariable, isArbitraryValue],\n conic: [isInteger, isArbitraryVariable, isArbitraryValue]\n }, isArbitraryVariableImage, isArbitraryImage]\n }],\n /**\n * Background Color\n * @see https://tailwindcss.com/docs/background-color\n */\n 'bg-color': [{\n bg: scaleColor()\n }],\n /**\n * Gradient Color Stops From Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from-pos': [{\n from: scaleGradientStopPosition()\n }],\n /**\n * Gradient Color Stops Via Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via-pos': [{\n via: scaleGradientStopPosition()\n }],\n /**\n * Gradient Color Stops To Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to-pos': [{\n to: scaleGradientStopPosition()\n }],\n /**\n * Gradient Color Stops From\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from': [{\n from: scaleColor()\n }],\n /**\n * Gradient Color Stops Via\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via': [{\n via: scaleColor()\n }],\n /**\n * Gradient Color Stops To\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to': [{\n to: scaleColor()\n }],\n // ---------------\n // --- Borders ---\n // ---------------\n /**\n * Border Radius\n * @see https://tailwindcss.com/docs/border-radius\n */\n rounded: [{\n rounded: scaleRadius()\n }],\n /**\n * Border Radius Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-s': [{\n 'rounded-s': scaleRadius()\n }],\n /**\n * Border Radius End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-e': [{\n 'rounded-e': scaleRadius()\n }],\n /**\n * Border Radius Top\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-t': [{\n 'rounded-t': scaleRadius()\n }],\n /**\n * Border Radius Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-r': [{\n 'rounded-r': scaleRadius()\n }],\n /**\n * Border Radius Bottom\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-b': [{\n 'rounded-b': scaleRadius()\n }],\n /**\n * Border Radius Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-l': [{\n 'rounded-l': scaleRadius()\n }],\n /**\n * Border Radius Start Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ss': [{\n 'rounded-ss': scaleRadius()\n }],\n /**\n * Border Radius Start End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-se': [{\n 'rounded-se': scaleRadius()\n }],\n /**\n * Border Radius End End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ee': [{\n 'rounded-ee': scaleRadius()\n }],\n /**\n * Border Radius End Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-es': [{\n 'rounded-es': scaleRadius()\n }],\n /**\n * Border Radius Top Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tl': [{\n 'rounded-tl': scaleRadius()\n }],\n /**\n * Border Radius Top Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tr': [{\n 'rounded-tr': scaleRadius()\n }],\n /**\n * Border Radius Bottom Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-br': [{\n 'rounded-br': scaleRadius()\n }],\n /**\n * Border Radius Bottom Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-bl': [{\n 'rounded-bl': scaleRadius()\n }],\n /**\n * Border Width\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w': [{\n border: scaleBorderWidth()\n }],\n /**\n * Border Width X\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-x': [{\n 'border-x': scaleBorderWidth()\n }],\n /**\n * Border Width Y\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-y': [{\n 'border-y': scaleBorderWidth()\n }],\n /**\n * Border Width Start\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-s': [{\n 'border-s': scaleBorderWidth()\n }],\n /**\n * Border Width End\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-e': [{\n 'border-e': scaleBorderWidth()\n }],\n /**\n * Border Width Top\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-t': [{\n 'border-t': scaleBorderWidth()\n }],\n /**\n * Border Width Right\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-r': [{\n 'border-r': scaleBorderWidth()\n }],\n /**\n * Border Width Bottom\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-b': [{\n 'border-b': scaleBorderWidth()\n }],\n /**\n * Border Width Left\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-l': [{\n 'border-l': scaleBorderWidth()\n }],\n /**\n * Divide Width X\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-x': [{\n 'divide-x': scaleBorderWidth()\n }],\n /**\n * Divide Width X Reverse\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-x-reverse': ['divide-x-reverse'],\n /**\n * Divide Width Y\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-y': [{\n 'divide-y': scaleBorderWidth()\n }],\n /**\n * Divide Width Y Reverse\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-y-reverse': ['divide-y-reverse'],\n /**\n * Border Style\n * @see https://tailwindcss.com/docs/border-style\n */\n 'border-style': [{\n border: [...scaleLineStyle(), 'hidden', 'none']\n }],\n /**\n * Divide Style\n * @see https://tailwindcss.com/docs/border-style#setting-the-divider-style\n */\n 'divide-style': [{\n divide: [...scaleLineStyle(), 'hidden', 'none']\n }],\n /**\n * Border Color\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color': [{\n border: scaleColor()\n }],\n /**\n * Border Color X\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-x': [{\n 'border-x': scaleColor()\n }],\n /**\n * Border Color Y\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-y': [{\n 'border-y': scaleColor()\n }],\n /**\n * Border Color S\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-s': [{\n 'border-s': scaleColor()\n }],\n /**\n * Border Color E\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-e': [{\n 'border-e': scaleColor()\n }],\n /**\n * Border Color Top\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-t': [{\n 'border-t': scaleColor()\n }],\n /**\n * Border Color Right\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-r': [{\n 'border-r': scaleColor()\n }],\n /**\n * Border Color Bottom\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-b': [{\n 'border-b': scaleColor()\n }],\n /**\n * Border Color Left\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-l': [{\n 'border-l': scaleColor()\n }],\n /**\n * Divide Color\n * @see https://tailwindcss.com/docs/divide-color\n */\n 'divide-color': [{\n divide: scaleColor()\n }],\n /**\n * Outline Style\n * @see https://tailwindcss.com/docs/outline-style\n */\n 'outline-style': [{\n outline: [...scaleLineStyle(), 'none', 'hidden']\n }],\n /**\n * Outline Offset\n * @see https://tailwindcss.com/docs/outline-offset\n */\n 'outline-offset': [{\n 'outline-offset': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Outline Width\n * @see https://tailwindcss.com/docs/outline-width\n */\n 'outline-w': [{\n outline: ['', isNumber, isArbitraryVariableLength, isArbitraryLength]\n }],\n /**\n * Outline Color\n * @see https://tailwindcss.com/docs/outline-color\n */\n 'outline-color': [{\n outline: [themeColor]\n }],\n // ---------------\n // --- Effects ---\n // ---------------\n /**\n * Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow\n */\n shadow: [{\n shadow: [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', themeShadow, isArbitraryVariableShadow, isArbitraryShadow]\n }],\n /**\n * Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-shadow-color\n */\n 'shadow-color': [{\n shadow: scaleColor()\n }],\n /**\n * Inset Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-shadow\n */\n 'inset-shadow': [{\n 'inset-shadow': ['none', isArbitraryVariable, isArbitraryValue, themeInsetShadow]\n }],\n /**\n * Inset Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-shadow-color\n */\n 'inset-shadow-color': [{\n 'inset-shadow': scaleColor()\n }],\n /**\n * Ring Width\n * @see https://tailwindcss.com/docs/box-shadow#adding-a-ring\n */\n 'ring-w': [{\n ring: scaleBorderWidth()\n }],\n /**\n * Ring Width Inset\n * @see https://v3.tailwindcss.com/docs/ring-width#inset-rings\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-w-inset': ['ring-inset'],\n /**\n * Ring Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-ring-color\n */\n 'ring-color': [{\n ring: scaleColor()\n }],\n /**\n * Ring Offset Width\n * @see https://v3.tailwindcss.com/docs/ring-offset-width\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-offset-w': [{\n 'ring-offset': [isNumber, isArbitraryLength]\n }],\n /**\n * Ring Offset Color\n * @see https://v3.tailwindcss.com/docs/ring-offset-color\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-offset-color': [{\n 'ring-offset': scaleColor()\n }],\n /**\n * Inset Ring Width\n * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-ring\n */\n 'inset-ring-w': [{\n 'inset-ring': scaleBorderWidth()\n }],\n /**\n * Inset Ring Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-ring-color\n */\n 'inset-ring-color': [{\n 'inset-ring': scaleColor()\n }],\n /**\n * Opacity\n * @see https://tailwindcss.com/docs/opacity\n */\n opacity: [{\n opacity: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Mix Blend Mode\n * @see https://tailwindcss.com/docs/mix-blend-mode\n */\n 'mix-blend': [{\n 'mix-blend': [...scaleBlendMode(), 'plus-darker', 'plus-lighter']\n }],\n /**\n * Background Blend Mode\n * @see https://tailwindcss.com/docs/background-blend-mode\n */\n 'bg-blend': [{\n 'bg-blend': scaleBlendMode()\n }],\n // ---------------\n // --- Filters ---\n // ---------------\n /**\n * Filter\n * @see https://tailwindcss.com/docs/filter\n */\n filter: [{\n filter: [\n // Deprecated since Tailwind CSS v3.0.0\n '', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Blur\n * @see https://tailwindcss.com/docs/blur\n */\n blur: [{\n blur: scaleBlur()\n }],\n /**\n * Brightness\n * @see https://tailwindcss.com/docs/brightness\n */\n brightness: [{\n brightness: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Contrast\n * @see https://tailwindcss.com/docs/contrast\n */\n contrast: [{\n contrast: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Drop Shadow\n * @see https://tailwindcss.com/docs/drop-shadow\n */\n 'drop-shadow': [{\n 'drop-shadow': [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', themeDropShadow, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Grayscale\n * @see https://tailwindcss.com/docs/grayscale\n */\n grayscale: [{\n grayscale: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Hue Rotate\n * @see https://tailwindcss.com/docs/hue-rotate\n */\n 'hue-rotate': [{\n 'hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Invert\n * @see https://tailwindcss.com/docs/invert\n */\n invert: [{\n invert: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Saturate\n * @see https://tailwindcss.com/docs/saturate\n */\n saturate: [{\n saturate: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Sepia\n * @see https://tailwindcss.com/docs/sepia\n */\n sepia: [{\n sepia: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Filter\n * @see https://tailwindcss.com/docs/backdrop-filter\n */\n 'backdrop-filter': [{\n 'backdrop-filter': [\n // Deprecated since Tailwind CSS v3.0.0\n '', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Blur\n * @see https://tailwindcss.com/docs/backdrop-blur\n */\n 'backdrop-blur': [{\n 'backdrop-blur': scaleBlur()\n }],\n /**\n * Backdrop Brightness\n * @see https://tailwindcss.com/docs/backdrop-brightness\n */\n 'backdrop-brightness': [{\n 'backdrop-brightness': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Contrast\n * @see https://tailwindcss.com/docs/backdrop-contrast\n */\n 'backdrop-contrast': [{\n 'backdrop-contrast': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Grayscale\n * @see https://tailwindcss.com/docs/backdrop-grayscale\n */\n 'backdrop-grayscale': [{\n 'backdrop-grayscale': ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Hue Rotate\n * @see https://tailwindcss.com/docs/backdrop-hue-rotate\n */\n 'backdrop-hue-rotate': [{\n 'backdrop-hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Invert\n * @see https://tailwindcss.com/docs/backdrop-invert\n */\n 'backdrop-invert': [{\n 'backdrop-invert': ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Opacity\n * @see https://tailwindcss.com/docs/backdrop-opacity\n */\n 'backdrop-opacity': [{\n 'backdrop-opacity': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Saturate\n * @see https://tailwindcss.com/docs/backdrop-saturate\n */\n 'backdrop-saturate': [{\n 'backdrop-saturate': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Sepia\n * @see https://tailwindcss.com/docs/backdrop-sepia\n */\n 'backdrop-sepia': [{\n 'backdrop-sepia': ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n // --------------\n // --- Tables ---\n // --------------\n /**\n * Border Collapse\n * @see https://tailwindcss.com/docs/border-collapse\n */\n 'border-collapse': [{\n border: ['collapse', 'separate']\n }],\n /**\n * Border Spacing\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing': [{\n 'border-spacing': scaleUnambiguousSpacing()\n }],\n /**\n * Border Spacing X\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-x': [{\n 'border-spacing-x': scaleUnambiguousSpacing()\n }],\n /**\n * Border Spacing Y\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-y': [{\n 'border-spacing-y': scaleUnambiguousSpacing()\n }],\n /**\n * Table Layout\n * @see https://tailwindcss.com/docs/table-layout\n */\n 'table-layout': [{\n table: ['auto', 'fixed']\n }],\n /**\n * Caption Side\n * @see https://tailwindcss.com/docs/caption-side\n */\n caption: [{\n caption: ['top', 'bottom']\n }],\n // ---------------------------------\n // --- Transitions and Animation ---\n // ---------------------------------\n /**\n * Transition Property\n * @see https://tailwindcss.com/docs/transition-property\n */\n transition: [{\n transition: ['', 'all', 'colors', 'opacity', 'shadow', 'transform', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Transition Behavior\n * @see https://tailwindcss.com/docs/transition-behavior\n */\n 'transition-behavior': [{\n transition: ['normal', 'discrete']\n }],\n /**\n * Transition Duration\n * @see https://tailwindcss.com/docs/transition-duration\n */\n duration: [{\n duration: [isNumber, 'initial', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Transition Timing Function\n * @see https://tailwindcss.com/docs/transition-timing-function\n */\n ease: [{\n ease: ['linear', 'initial', themeEase, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Transition Delay\n * @see https://tailwindcss.com/docs/transition-delay\n */\n delay: [{\n delay: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Animation\n * @see https://tailwindcss.com/docs/animation\n */\n animate: [{\n animate: ['none', themeAnimate, isArbitraryVariable, isArbitraryValue]\n }],\n // ------------------\n // --- Transforms ---\n // ------------------\n /**\n * Backface Visibility\n * @see https://tailwindcss.com/docs/backface-visibility\n */\n backface: [{\n backface: ['hidden', 'visible']\n }],\n /**\n * Perspective\n * @see https://tailwindcss.com/docs/perspective\n */\n perspective: [{\n perspective: [themePerspective, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Perspective Origin\n * @see https://tailwindcss.com/docs/perspective-origin\n */\n 'perspective-origin': [{\n 'perspective-origin': scaleOrigin()\n }],\n /**\n * Rotate\n * @see https://tailwindcss.com/docs/rotate\n */\n rotate: [{\n rotate: scaleRotate()\n }],\n /**\n * Rotate X\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-x': [{\n 'rotate-x': scaleRotate()\n }],\n /**\n * Rotate Y\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-y': [{\n 'rotate-y': scaleRotate()\n }],\n /**\n * Rotate Z\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-z': [{\n 'rotate-z': scaleRotate()\n }],\n /**\n * Scale\n * @see https://tailwindcss.com/docs/scale\n */\n scale: [{\n scale: scaleScale()\n }],\n /**\n * Scale X\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-x': [{\n 'scale-x': scaleScale()\n }],\n /**\n * Scale Y\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-y': [{\n 'scale-y': scaleScale()\n }],\n /**\n * Scale Z\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-z': [{\n 'scale-z': scaleScale()\n }],\n /**\n * Scale 3D\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-3d': ['scale-3d'],\n /**\n * Skew\n * @see https://tailwindcss.com/docs/skew\n */\n skew: [{\n skew: scaleSkew()\n }],\n /**\n * Skew X\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-x': [{\n 'skew-x': scaleSkew()\n }],\n /**\n * Skew Y\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-y': [{\n 'skew-y': scaleSkew()\n }],\n /**\n * Transform\n * @see https://tailwindcss.com/docs/transform\n */\n transform: [{\n transform: [isArbitraryVariable, isArbitraryValue, '', 'none', 'gpu', 'cpu']\n }],\n /**\n * Transform Origin\n * @see https://tailwindcss.com/docs/transform-origin\n */\n 'transform-origin': [{\n origin: scaleOrigin()\n }],\n /**\n * Transform Style\n * @see https://tailwindcss.com/docs/transform-style\n */\n 'transform-style': [{\n transform: ['3d', 'flat']\n }],\n /**\n * Translate\n * @see https://tailwindcss.com/docs/translate\n */\n translate: [{\n translate: scaleTranslate()\n }],\n /**\n * Translate X\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-x': [{\n 'translate-x': scaleTranslate()\n }],\n /**\n * Translate Y\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-y': [{\n 'translate-y': scaleTranslate()\n }],\n /**\n * Translate Z\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-z': [{\n 'translate-z': scaleTranslate()\n }],\n /**\n * Translate None\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-none': ['translate-none'],\n // ---------------------\n // --- Interactivity ---\n // ---------------------\n /**\n * Accent Color\n * @see https://tailwindcss.com/docs/accent-color\n */\n accent: [{\n accent: scaleColor()\n }],\n /**\n * Appearance\n * @see https://tailwindcss.com/docs/appearance\n */\n appearance: [{\n appearance: ['none', 'auto']\n }],\n /**\n * Caret Color\n * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities\n */\n 'caret-color': [{\n caret: scaleColor()\n }],\n /**\n * Color Scheme\n * @see https://tailwindcss.com/docs/color-scheme\n */\n 'color-scheme': [{\n scheme: ['normal', 'dark', 'light', 'light-dark', 'only-dark', 'only-light']\n }],\n /**\n * Cursor\n * @see https://tailwindcss.com/docs/cursor\n */\n cursor: [{\n cursor: ['auto', 'default', 'pointer', 'wait', 'text', 'move', 'help', 'not-allowed', 'none', 'context-menu', 'progress', 'cell', 'crosshair', 'vertical-text', 'alias', 'copy', 'no-drop', 'grab', 'grabbing', 'all-scroll', 'col-resize', 'row-resize', 'n-resize', 'e-resize', 's-resize', 'w-resize', 'ne-resize', 'nw-resize', 'se-resize', 'sw-resize', 'ew-resize', 'ns-resize', 'nesw-resize', 'nwse-resize', 'zoom-in', 'zoom-out', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Field Sizing\n * @see https://tailwindcss.com/docs/field-sizing\n */\n 'field-sizing': [{\n 'field-sizing': ['fixed', 'content']\n }],\n /**\n * Pointer Events\n * @see https://tailwindcss.com/docs/pointer-events\n */\n 'pointer-events': [{\n 'pointer-events': ['auto', 'none']\n }],\n /**\n * Resize\n * @see https://tailwindcss.com/docs/resize\n */\n resize: [{\n resize: ['none', '', 'y', 'x']\n }],\n /**\n * Scroll Behavior\n * @see https://tailwindcss.com/docs/scroll-behavior\n */\n 'scroll-behavior': [{\n scroll: ['auto', 'smooth']\n }],\n /**\n * Scroll Margin\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-m': [{\n 'scroll-m': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin X\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mx': [{\n 'scroll-mx': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Y\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-my': [{\n 'scroll-my': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Start\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ms': [{\n 'scroll-ms': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin End\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-me': [{\n 'scroll-me': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Top\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mt': [{\n 'scroll-mt': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Right\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mr': [{\n 'scroll-mr': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Bottom\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mb': [{\n 'scroll-mb': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Left\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ml': [{\n 'scroll-ml': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-p': [{\n 'scroll-p': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding X\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-px': [{\n 'scroll-px': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Y\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-py': [{\n 'scroll-py': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Start\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-ps': [{\n 'scroll-ps': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding End\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pe': [{\n 'scroll-pe': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Top\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pt': [{\n 'scroll-pt': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Right\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pr': [{\n 'scroll-pr': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Bottom\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pb': [{\n 'scroll-pb': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Left\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pl': [{\n 'scroll-pl': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Snap Align\n * @see https://tailwindcss.com/docs/scroll-snap-align\n */\n 'snap-align': [{\n snap: ['start', 'end', 'center', 'align-none']\n }],\n /**\n * Scroll Snap Stop\n * @see https://tailwindcss.com/docs/scroll-snap-stop\n */\n 'snap-stop': [{\n snap: ['normal', 'always']\n }],\n /**\n * Scroll Snap Type\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-type': [{\n snap: ['none', 'x', 'y', 'both']\n }],\n /**\n * Scroll Snap Type Strictness\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-strictness': [{\n snap: ['mandatory', 'proximity']\n }],\n /**\n * Touch Action\n * @see https://tailwindcss.com/docs/touch-action\n */\n touch: [{\n touch: ['auto', 'none', 'manipulation']\n }],\n /**\n * Touch Action X\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-x': [{\n 'touch-pan': ['x', 'left', 'right']\n }],\n /**\n * Touch Action Y\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-y': [{\n 'touch-pan': ['y', 'up', 'down']\n }],\n /**\n * Touch Action Pinch Zoom\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-pz': ['touch-pinch-zoom'],\n /**\n * User Select\n * @see https://tailwindcss.com/docs/user-select\n */\n select: [{\n select: ['none', 'text', 'all', 'auto']\n }],\n /**\n * Will Change\n * @see https://tailwindcss.com/docs/will-change\n */\n 'will-change': [{\n 'will-change': ['auto', 'scroll', 'contents', 'transform', isArbitraryVariable, isArbitraryValue]\n }],\n // -----------\n // --- SVG ---\n // -----------\n /**\n * Fill\n * @see https://tailwindcss.com/docs/fill\n */\n fill: [{\n fill: ['none', ...scaleColor()]\n }],\n /**\n * Stroke Width\n * @see https://tailwindcss.com/docs/stroke-width\n */\n 'stroke-w': [{\n stroke: [isNumber, isArbitraryVariableLength, isArbitraryLength, isArbitraryNumber]\n }],\n /**\n * Stroke\n * @see https://tailwindcss.com/docs/stroke\n */\n stroke: [{\n stroke: ['none', ...scaleColor()]\n }],\n // ---------------------\n // --- Accessibility ---\n // ---------------------\n /**\n * Forced Color Adjust\n * @see https://tailwindcss.com/docs/forced-color-adjust\n */\n 'forced-color-adjust': [{\n 'forced-color-adjust': ['auto', 'none']\n }]\n },\n conflictingClassGroups: {\n overflow: ['overflow-x', 'overflow-y'],\n overscroll: ['overscroll-x', 'overscroll-y'],\n inset: ['inset-x', 'inset-y', 'start', 'end', 'top', 'right', 'bottom', 'left'],\n 'inset-x': ['right', 'left'],\n 'inset-y': ['top', 'bottom'],\n flex: ['basis', 'grow', 'shrink'],\n gap: ['gap-x', 'gap-y'],\n p: ['px', 'py', 'ps', 'pe', 'pt', 'pr', 'pb', 'pl'],\n px: ['pr', 'pl'],\n py: ['pt', 'pb'],\n m: ['mx', 'my', 'ms', 'me', 'mt', 'mr', 'mb', 'ml'],\n mx: ['mr', 'ml'],\n my: ['mt', 'mb'],\n size: ['w', 'h'],\n 'font-size': ['leading'],\n 'fvn-normal': ['fvn-ordinal', 'fvn-slashed-zero', 'fvn-figure', 'fvn-spacing', 'fvn-fraction'],\n 'fvn-ordinal': ['fvn-normal'],\n 'fvn-slashed-zero': ['fvn-normal'],\n 'fvn-figure': ['fvn-normal'],\n 'fvn-spacing': ['fvn-normal'],\n 'fvn-fraction': ['fvn-normal'],\n 'line-clamp': ['display', 'overflow'],\n rounded: ['rounded-s', 'rounded-e', 'rounded-t', 'rounded-r', 'rounded-b', 'rounded-l', 'rounded-ss', 'rounded-se', 'rounded-ee', 'rounded-es', 'rounded-tl', 'rounded-tr', 'rounded-br', 'rounded-bl'],\n 'rounded-s': ['rounded-ss', 'rounded-es'],\n 'rounded-e': ['rounded-se', 'rounded-ee'],\n 'rounded-t': ['rounded-tl', 'rounded-tr'],\n 'rounded-r': ['rounded-tr', 'rounded-br'],\n 'rounded-b': ['rounded-br', 'rounded-bl'],\n 'rounded-l': ['rounded-tl', 'rounded-bl'],\n 'border-spacing': ['border-spacing-x', 'border-spacing-y'],\n 'border-w': ['border-w-s', 'border-w-e', 'border-w-t', 'border-w-r', 'border-w-b', 'border-w-l'],\n 'border-w-x': ['border-w-r', 'border-w-l'],\n 'border-w-y': ['border-w-t', 'border-w-b'],\n 'border-color': ['border-color-s', 'border-color-e', 'border-color-t', 'border-color-r', 'border-color-b', 'border-color-l'],\n 'border-color-x': ['border-color-r', 'border-color-l'],\n 'border-color-y': ['border-color-t', 'border-color-b'],\n translate: ['translate-x', 'translate-y', 'translate-none'],\n 'translate-none': ['translate', 'translate-x', 'translate-y', 'translate-z'],\n 'scroll-m': ['scroll-mx', 'scroll-my', 'scroll-ms', 'scroll-me', 'scroll-mt', 'scroll-mr', 'scroll-mb', 'scroll-ml'],\n 'scroll-mx': ['scroll-mr', 'scroll-ml'],\n 'scroll-my': ['scroll-mt', 'scroll-mb'],\n 'scroll-p': ['scroll-px', 'scroll-py', 'scroll-ps', 'scroll-pe', 'scroll-pt', 'scroll-pr', 'scroll-pb', 'scroll-pl'],\n 'scroll-px': ['scroll-pr', 'scroll-pl'],\n 'scroll-py': ['scroll-pt', 'scroll-pb'],\n touch: ['touch-x', 'touch-y', 'touch-pz'],\n 'touch-x': ['touch'],\n 'touch-y': ['touch'],\n 'touch-pz': ['touch']\n },\n conflictingClassGroupModifiers: {\n 'font-size': ['leading']\n },\n orderSensitiveModifiers: ['before', 'after', 'placeholder', 'file', 'marker', 'selection', 'first-line', 'first-letter', 'backdrop', '*', '**']\n };\n};\n\n/**\n * @param baseConfig Config where other config will be merged into. This object will be mutated.\n * @param configExtension Partial config to merge into the `baseConfig`.\n */\nconst mergeConfigs = (baseConfig, {\n cacheSize,\n prefix,\n experimentalParseClassName,\n extend = {},\n override = {}\n}) => {\n overrideProperty(baseConfig, 'cacheSize', cacheSize);\n overrideProperty(baseConfig, 'prefix', prefix);\n overrideProperty(baseConfig, 'experimentalParseClassName', experimentalParseClassName);\n overrideConfigProperties(baseConfig.theme, override.theme);\n overrideConfigProperties(baseConfig.classGroups, override.classGroups);\n overrideConfigProperties(baseConfig.conflictingClassGroups, override.conflictingClassGroups);\n overrideConfigProperties(baseConfig.conflictingClassGroupModifiers, override.conflictingClassGroupModifiers);\n overrideProperty(baseConfig, 'orderSensitiveModifiers', override.orderSensitiveModifiers);\n mergeConfigProperties(baseConfig.theme, extend.theme);\n mergeConfigProperties(baseConfig.classGroups, extend.classGroups);\n mergeConfigProperties(baseConfig.conflictingClassGroups, extend.conflictingClassGroups);\n mergeConfigProperties(baseConfig.conflictingClassGroupModifiers, extend.conflictingClassGroupModifiers);\n mergeArrayProperties(baseConfig, extend, 'orderSensitiveModifiers');\n return baseConfig;\n};\nconst overrideProperty = (baseObject, overrideKey, overrideValue) => {\n if (overrideValue !== undefined) {\n baseObject[overrideKey] = overrideValue;\n }\n};\nconst overrideConfigProperties = (baseObject, overrideObject) => {\n if (overrideObject) {\n for (const key in overrideObject) {\n overrideProperty(baseObject, key, overrideObject[key]);\n }\n }\n};\nconst mergeConfigProperties = (baseObject, mergeObject) => {\n if (mergeObject) {\n for (const key in mergeObject) {\n mergeArrayProperties(baseObject, mergeObject, key);\n }\n }\n};\nconst mergeArrayProperties = (baseObject, mergeObject, key) => {\n const mergeValue = mergeObject[key];\n if (mergeValue !== undefined) {\n baseObject[key] = baseObject[key] ? baseObject[key].concat(mergeValue) : mergeValue;\n }\n};\nconst extendTailwindMerge = (configExtension, ...createConfig) => typeof configExtension === 'function' ? createTailwindMerge(getDefaultConfig, configExtension, ...createConfig) : createTailwindMerge(() => mergeConfigs(getDefaultConfig(), configExtension), ...createConfig);\nconst twMerge = /*#__PURE__*/createTailwindMerge(getDefaultConfig);\nexport { createTailwindMerge, extendTailwindMerge, fromTheme, getDefaultConfig, mergeConfigs, twJoin, twMerge, validators };\n//# sourceMappingURL=bundle-mjs.mjs.map\n","import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\n// Chaves para o localStorage\nconst STORAGE_KEYS = {\n NOTIFICATION_PERMISSION: 'notification_permission_dismissed',\n NOTIFICATION_MOCK: 'notification_mock_dismissed',\n SAFARI_IOS_INSTRUCTIONS: 'safari_ios_instructions_dismissed'\n};\n\n// Função para verificar se uma notificação deve ser ocultada\nexport function shouldHideNotification(key: string): boolean {\n try {\n const dismissedTime = localStorage.getItem(key);\n \n if (!dismissedTime) {\n return false;\n }\n \n const dismissedAt = parseInt(dismissedTime, 10);\n const currentTime = Date.now();\n const twoHoursInMs = 2 * 60 * 60 * 1000; // 2 horas em milissegundos\n \n // Retorna true se ainda não passaram 2 horas desde que foi fechado\n return currentTime - dismissedAt < twoHoursInMs;\n } catch (error) {\n console.error('Erro ao verificar localStorage:', error);\n return false;\n }\n}\n\n// Função para marcar uma notificação como fechada\nexport function markNotificationAsDismissed(key: string): void {\n try {\n localStorage.setItem(key, Date.now().toString());\n } catch (error) {\n console.error('Erro ao salvar no localStorage:', error);\n }\n}\n\n// Exportar as chaves de armazenamento\nexport { STORAGE_KEYS }; ","import React, { useState, useEffect } from 'react';\nimport { Bell, X } from 'lucide-react';\nimport { motion, AnimatePresence } from 'framer-motion';\nimport MoodSelector from './MoodSelector';\nimport { addMoodEntry } from '../infra/DatabaseFacade';\nimport { v4 as uuidv4 } from 'uuid';\nimport { shouldHideNotification, markNotificationAsDismissed, STORAGE_KEYS } from '../lib/utils';\n\nconst NotificationMock: React.FC = () => {\n const [isVisible, setIsVisible] = useState(false);\n const [selectedMood, setSelectedMood] = useState(-1);\n const [note, setNote] = useState('');\n const [step, setStep] = useState(1);\n const [isSubmitting, setIsSubmitting] = useState(false);\n \n // Verificar se já foi fechado recentemente e mostrar notificação após um tempo aleatório\n useEffect(() => {\n // Verificar se já foi fechado recentemente\n const shouldHide = shouldHideNotification(STORAGE_KEYS.NOTIFICATION_MOCK);\n \n if (!shouldHide) {\n // Se não foi fechado recentemente, mostrar após um tempo aleatório\n const timeout = setTimeout(() => {\n setIsVisible(true);\n }, Math.random() * 30000 + 30000); // Entre 30 e 60 segundos\n \n return () => clearTimeout(timeout);\n }\n }, []);\n \n const handleClose = () => {\n // Marcar como fechado no localStorage\n markNotificationAsDismissed(STORAGE_KEYS.NOTIFICATION_MOCK);\n \n // Resetar o estado\n setIsVisible(false);\n setSelectedMood(-1);\n setNote('');\n setStep(1);\n };\n \n const handleMoodSelect = (score: number) => {\n setSelectedMood(score);\n setStep(2);\n };\n \n const handleSubmit = async () => {\n setIsSubmitting(true);\n \n const newEntry = {\n id: uuidv4(),\n timestamp: Date.now(),\n score: selectedMood,\n note: note.trim(),\n ai_analysis: ''\n };\n \n try {\n // Save the entry\n addMoodEntry(newEntry);\n \n // Show success message briefly\n setStep(3);\n setTimeout(() => {\n handleClose();\n }, 2000);\n } catch (error) {\n console.error('Error saving mood entry:', error);\n // Save without analysis in case of error\n addMoodEntry(newEntry);\n handleClose();\n } finally {\n setIsSubmitting(false);\n }\n };\n \n return (\n \n {isVisible && (\n \n {step === 1 && (\n <>\n
\n
\n
\n \n
\n
\n

Como você está se sentindo agora?

\n

Escolha um emoji de 0 a 5

\n
\n
\n \n \n \n
\n \n \n \n \n \n )}\n \n {step === 2 && (\n <>\n
\n
\n
\n \n
\n
\n

Quer adicionar algum detalhe?

\n

Opcional, máximo 100 caracteres

\n
\n
\n \n \n \n
\n \n setNote(e.target.value)}\n maxLength={255}\n placeholder=\"Ex: Estou ansioso com uma reunião...\"\n className=\"input h-20 resize-none mb-4\"\n />\n \n
\n \n \n
\n \n )}\n \n {step === 3 && (\n
\n
\n \n \n \n
\n

Registro salvo com sucesso!

\n

Obrigado por compartilhar como está se sentindo.

\n
\n )}\n \n )}\n
\n );\n};\n\nexport default NotificationMock;","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { getNotificationService } from './serviceLocator';\nimport { getCurrentUser, registerPush } from './supabaseGateway';\n\n/**\n * Verifica se o navegador é o Safari no iOS\n */\nfunction isSafariIOS(): boolean {\n const ua = navigator.userAgent;\n const isSafari = ua.includes('Safari') && !ua.includes('Chrome') && !ua.includes('Android');\n const isIOS = /iPad|iPhone|iPod/.test(ua) || (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1);\n return isSafari && isIOS;\n}\n\n/**\n * Verifica se o aplicativo está sendo executado como um aplicativo de tela inicial no iOS\n * No iOS, isso é indicado pela ausência da UI do navegador (modo standalone)\n */\nfunction isRunningAsHomeScreenApp(): boolean {\n return window.matchMedia('(display-mode: standalone)').matches || \n (window.navigator as any).standalone === true;\n}\n\n/**\n * Verifica se o navegador suporta notificações push\n * Considera as especificidades do Safari no iOS, que só suporta notificações\n * quando o aplicativo é adicionado à tela inicial a partir do iOS 16.4\n */\nfunction isPushNotificationSupported(): boolean {\n // Verificação padrão para a maioria dos navegadores\n const standardSupport = 'serviceWorker' in navigator && 'PushManager' in window;\n \n // Para Safari no iOS, verificamos se está rodando como app de tela inicial\n if (isSafariIOS()) {\n return standardSupport && isRunningAsHomeScreenApp();\n }\n \n return standardSupport;\n}\n\n// Solicitar permissão para enviar notificações\nasync function requestNotificationPermission(): Promise {\n if (!('Notification' in window)) {\n return 'unsupported';\n }\n\n // Para Safari no iOS, verificamos se está rodando como app de tela inicial\n if (isSafariIOS() && !isRunningAsHomeScreenApp()) {\n console.log('Safari iOS detectado, mas não está rodando como app de tela inicial');\n // Retornamos 'default' para que a UI possa mostrar instruções específicas\n return 'default';\n }\n\n try {\n return await Notification.requestPermission();\n } catch (error) {\n console.error('Erro ao solicitar permissão para notificações:', error);\n return 'denied';\n }\n}\n\n// Registrar o service worker unificado\nasync function registerServiceWorker(): Promise {\n if (!('serviceWorker' in navigator)) {\n return null;\n }\n\n try {\n // Verificar se há service workers antigos para desregistrar\n const registrations = await navigator.serviceWorker.getRegistrations();\n \n // Desregistrar o service worker principal antigo se existir\n const mainSW = registrations.find(reg => \n reg.active?.scriptURL.includes('sw.js') && \n !reg.active?.scriptURL.includes('firebase-messaging-sw.js')\n );\n \n if (mainSW) {\n console.log('Desregistrando service worker principal antigo...');\n await mainSW.unregister();\n console.log('Service worker principal antigo desregistrado com sucesso');\n }\n \n // Registrar ou atualizar o service worker unificado do Firebase\n let firebaseRegistration: ServiceWorkerRegistration | null = null;\n \n // Verificar se já existe um service worker do Firebase registrado\n const firebaseSW = registrations.find(reg => \n reg.active?.scriptURL.includes('firebase-messaging-sw.js')\n );\n \n if (firebaseSW) {\n console.log('Service Worker unificado já registrado, atualizando...', firebaseSW);\n await firebaseSW.update().catch(err => \n console.error('Erro ao atualizar Service Worker unificado:', err)\n );\n \n // Verificar se o service worker está em estado de espera e forçar ativação\n if (firebaseSW.waiting) {\n console.log('Service Worker unificado em estado de espera, ativando...');\n firebaseSW.waiting.postMessage({ type: 'SKIP_WAITING' });\n // Esperar um pouco para dar tempo ao service worker se ativar\n await new Promise(resolve => setTimeout(resolve, 1000));\n }\n \n firebaseRegistration = firebaseSW;\n } else {\n console.log('Registrando Service Worker unificado...');\n // Registrar o service worker unificado\n firebaseRegistration = await navigator.serviceWorker.register('/firebase-messaging-sw.js', {\n updateViaCache: 'none',\n scope: '/' // Escopo raiz para garantir que ele funcione em todo o site\n });\n console.log('Service Worker unificado registrado com sucesso:', firebaseRegistration.scope);\n }\n \n // Ativar imediatamente o service worker do Firebase Messaging se estiver em estado de espera\n if (firebaseRegistration.waiting) {\n console.log('Firebase Messaging Service Worker em estado de espera, ativando...');\n firebaseRegistration.waiting.postMessage({ type: 'SKIP_WAITING' });\n // Esperar um pouco para dar tempo ao service worker se ativar\n await new Promise(resolve => setTimeout(resolve, 1000));\n }\n \n // Retornar o service worker principal para manter compatibilidade com o código existente\n return firebaseRegistration;\n } catch (error) {\n console.error('Erro ao registrar Service Workers:', error);\n return null;\n }\n}\n\n/**\n * Força a reinstalação do service worker em dispositivos já instalados\n * Isso é útil quando há mudanças significativas no service worker\n * que precisam ser aplicadas em todos os dispositivos\n */\nasync function forceServiceWorkerReinstallation(): Promise {\n if (!('serviceWorker' in navigator)) {\n console.warn('Service Worker não é suportado neste navegador');\n return false;\n }\n\n try {\n // Limpar qualquer token FCM armazenado\n localStorage.removeItem('fcm_token');\n \n // Obter todos os service workers registrados\n const registrations = await navigator.serviceWorker.getRegistrations();\n \n if (registrations.length === 0) {\n console.log('Nenhum Service Worker encontrado para desregistrar');\n // Registrar novo service worker\n await registerServiceWorker();\n return true;\n }\n \n // Desregistrar todos os service workers existentes\n console.log(`Desregistrando ${registrations.length} Service Workers...`);\n \n await Promise.all(\n registrations.map(async (registration) => {\n const result = await registration.unregister();\n console.log(`Service Worker desregistrado com sucesso: ${result}`);\n return result;\n })\n );\n \n // Limpar cache para garantir que o novo service worker seja baixado\n if ('caches' in window) {\n const cacheKeys = await caches.keys();\n await Promise.all(\n cacheKeys.map(key => caches.delete(key))\n );\n console.log('Caches limpos com sucesso');\n }\n \n // Aguardar um momento para garantir que o navegador está pronto para registrar um novo service worker\n // Este atraso é importante para evitar problemas de registro após desregistro\n console.log('Aguardando para garantir que o navegador está pronto para o novo registro...');\n await new Promise(resolve => setTimeout(resolve, 1500));\n \n // Primeira tentativa de registro\n let newRegistration = null;\n try {\n // Registrar novo service worker\n newRegistration = await registerServiceWorker();\n } catch (registerError) {\n console.error('Erro ao registrar novo Service Worker:', registerError);\n \n // Tentar novamente após um intervalo maior\n console.log('Tentando registrar novamente após um intervalo maior...');\n await new Promise(resolve => setTimeout(resolve, 3000));\n \n try {\n newRegistration = await registerServiceWorker();\n } catch (secondError) {\n console.error('Erro na segunda tentativa de registro do Service Worker:', secondError);\n return false;\n }\n }\n \n // Verificar resultado do registro (seja da primeira ou segunda tentativa)\n if (newRegistration) {\n console.log('Novo Service Worker registrado com sucesso após reinstalação forçada');\n return true;\n } else {\n console.error('Falha ao registrar Service Worker após tentativas');\n return false;\n }\n } catch (error) {\n console.error('Erro ao forçar reinstalação do Service Worker:', error);\n return false;\n }\n}\n\n/**\n * Função auxiliar para esperar que o service worker unificado esteja ativo\n * @param registration O service worker registration a ser verificado\n * @param maxAttempts Número máximo de tentativas\n */\nasync function waitForServiceWorkerActivation(\n registration: ServiceWorkerRegistration, \n maxAttempts = 20\n): Promise {\n // Verificar se já está ativo\n if (registration.active) {\n console.log('Service worker unificado já está ativo');\n // Esperar um pouco para garantir que está completamente inicializado\n await new Promise(resolve => setTimeout(resolve, 500));\n return true;\n }\n\n // Forçar a ativação se estiver em estado 'waiting'\n if (registration.waiting) {\n console.log('Service worker unificado em estado \"waiting\", forçando ativação...');\n registration.waiting.postMessage({ type: 'SKIP_WAITING' });\n // Esperar um pouco para dar tempo ao service worker se ativar\n await new Promise(resolve => setTimeout(resolve, 1000));\n }\n\n // Se o service worker está em estado 'installing' ou ainda não ativou, precisamos esperar\n return new Promise((resolve) => {\n let attempts = 0;\n const checkInterval = setInterval(async () => {\n attempts++;\n console.log(`Verificando ativação dos service workers (tentativa ${attempts})...`);\n \n // Verificar o service worker principal\n const isMainActive = registration.active !== null;\n \n // Verificar o service worker do Firebase Messaging se necessário\n const isFirebaseActive = true;\n \n if (isMainActive && isFirebaseActive) {\n clearInterval(checkInterval);\n console.log('Todos os service workers estão ativos!');\n // Esperar mais um pouco para garantir que estão completamente inicializados\n setTimeout(() => resolve(true), 500);\n } else if (attempts >= maxAttempts) {\n clearInterval(checkInterval);\n console.warn(`Service workers não ativaram após ${maxAttempts} tentativas`);\n console.log(`Status: Main SW ativo: ${isMainActive}, Firebase SW ativo: ${isFirebaseActive}`);\n resolve(false);\n }\n }, 500); // Verificar a cada 500ms\n });\n}\n\n// Registrar para notificações push com FCM\nasync function registerForPushNotifications(): Promise<{ success: boolean }> {\n if (!isPushNotificationSupported()) {\n console.warn('Notificações push não são suportadas neste navegador');\n return { success: false };\n }\n\n try {\n // Verificar permissão\n const permission = await requestNotificationPermission();\n if (permission !== 'granted') {\n console.warn('Permissão para notificações não foi concedida');\n return { success: false };\n }\n \n // Registrar o service worker\n console.log('Registrando service worker...');\n const swRegistration = await registerServiceWorker();\n \n if (!swRegistration) {\n console.error('Falha ao registrar Service Worker');\n return { success: false };\n }\n \n // Forçar a ativação de qualquer service worker em espera\n if (swRegistration.waiting) {\n console.log('Service worker em estado \"waiting\", forçando ativação...');\n swRegistration.waiting.postMessage({ type: 'SKIP_WAITING' });\n // Esperar para dar tempo ao service worker se ativar\n await new Promise(resolve => setTimeout(resolve, 1500));\n }\n \n // Garantir que o service worker esteja ativo antes de prosseguir\n console.log('Aguardando ativação do service worker...');\n const isActive = await waitForServiceWorkerActivation(swRegistration);\n \n if (!isActive) {\n console.error('Service worker não foi ativado após várias tentativas');\n // Tentar uma abordagem alternativa - forçar a reinstalação do service worker\n console.log('Tentando forçar a reinstalação do service worker...');\n await forceServiceWorkerReinstallation();\n \n // Esperar mais um pouco\n await new Promise(resolve => setTimeout(resolve, 2000));\n }\n \n // Verificar novamente se o service worker está ativo\n const registrations = await navigator.serviceWorker.getRegistrations();\n if (registrations.length === 0 || !registrations[0].active) {\n console.error('Service worker ainda não está ativo após todas as tentativas');\n return { success: false };\n }\n \n console.log('Service worker está ativo, prosseguindo...');\n \n // Esperar um pouco mais antes de tentar obter o token\n await new Promise(resolve => setTimeout(resolve, 1000));\n \n // Obter o token FCM\n let fcmToken;\n let tokenAttempts = 0;\n const maxTokenAttempts = 3;\n \n while (tokenAttempts < maxTokenAttempts) {\n try {\n tokenAttempts++;\n console.log(`Obtendo token FCM (tentativa ${tokenAttempts})...`);\n fcmToken = await getNotificationService().getToken();\n if (fcmToken) break;\n } catch (error) {\n console.error(`Erro ao obter token FCM (tentativa ${tokenAttempts}):`, error);\n if (tokenAttempts < maxTokenAttempts) {\n console.log(`Aguardando antes da próxima tentativa (${tokenAttempts}/${maxTokenAttempts})...`);\n await new Promise(resolve => setTimeout(resolve, 1500));\n } else {\n console.error('Número máximo de tentativas excedido para obter o token FCM');\n return { success: false };\n }\n }\n }\n \n if (!fcmToken) {\n console.error('Token FCM não obtido após várias tentativas');\n return { success: false };\n }\n \n console.log('Token FCM obtido com sucesso:', fcmToken.substring(0, 10) + '...');\n \n // Enviar o token para o Supabase Edge Function\n try {\n const user = await getCurrentUser();\n const { error } = await registerPush(fcmToken, user?.id);\n\n if (error) {\n console.error('Erro ao registrar token FCM no Supabase:', error);\n return { success: false };\n }\n \n return { success: true };\n } catch (error) {\n console.error('Erro ao registrar para notificações push:', error);\n return { success: false };\n }\n } catch (error) {\n console.error('Erro ao registrar para notificações push:', error);\n return { success: false };\n }\n}\n\n// Verificar status das notificações\nasync function checkNotificationStatus(): Promise<{\n pushSupported: boolean,\n permission: NotificationPermission | 'unsupported',\n serviceWorkerRegistered: boolean,\n subscription: boolean,\n isSafariIOS: boolean,\n isHomeScreenApp: boolean\n}> {\n // Verificar se o navegador suporta notificações push\n const pushSupported = isPushNotificationSupported();\n \n // Verificar permissão atual\n let permission: NotificationPermission | 'unsupported' = 'denied';\n if ('Notification' in window) {\n permission = Notification.permission;\n } else {\n permission = 'unsupported';\n }\n \n // Verificar status do service worker\n let serviceWorkerRegistered = false;\n let subscription = false;\n \n if (pushSupported) {\n try {\n // Obter todas as registrações de service worker\n const registrations = await navigator.serviceWorker.getRegistrations();\n serviceWorkerRegistered = registrations.length > 0;\n \n // Se temos permissão e SW registrado, verificamos se existe token FCM\n if (serviceWorkerRegistered && permission === 'granted') {\n // Verificar se temos um token FCM usando a função auxiliar\n subscription = getNotificationService().hasFCMToken();\n }\n } catch (error) {\n console.error('Erro ao verificar status do service worker:', error);\n }\n }\n \n // Verificar se é Safari no iOS e se está rodando como app de tela inicial\n const isSafariIOSValue = isSafariIOS();\n const isHomeScreenAppValue = isRunningAsHomeScreenApp();\n \n return {\n pushSupported,\n permission,\n serviceWorkerRegistered,\n subscription,\n isSafariIOS: isSafariIOSValue,\n isHomeScreenApp: isHomeScreenAppValue\n };\n}\n\n// Send a local notification\nasync function sendLocalNotification(title: string, options: NotificationOptions = {}): Promise {\n const permission = await requestNotificationPermission();\n \n if (permission !== 'granted') {\n console.warn('Notification permission not granted');\n return false;\n }\n \n try {\n const defaultOptions: NotificationOptions = {\n body: 'Como você está se sentindo agora?',\n icon: '/favicon.svg',\n badge: '/favicon.svg',\n data: {\n url: '/registrar'\n },\n actions: [\n {\n action: 'open',\n title: 'Registrar humor'\n },\n {\n action: 'close',\n title: 'Mais tarde'\n }\n ]\n } as any;\n \n // Usar o service worker para exibir a notificação (suporta actions)\n try {\n const registration = await navigator.serviceWorker.ready;\n await registration.showNotification(title, { ...defaultOptions, ...options });\n return true;\n } catch (swError) {\n console.warn('Erro ao usar service worker para notificação, tentando método alternativo:', swError);\n \n // Fallback: usar notificação simples sem ações se o service worker falhar\n const simpleOptions = { ...defaultOptions, ...options } as any;\n delete simpleOptions.actions; // Remover ações para evitar erro\n new Notification(title, simpleOptions);\n return true;\n }\n } catch (error) {\n console.error('Erro ao enviar notificação:', error);\n return false;\n }\n}\n\nexport {\n isPushNotificationSupported,\n requestNotificationPermission,\n registerServiceWorker,\n forceServiceWorkerReinstallation,\n registerForPushNotifications,\n checkNotificationStatus,\n sendLocalNotification,\n isSafariIOS,\n isRunningAsHomeScreenApp\n};","import React, { useEffect, useState } from 'react';\nimport { \n requestNotificationPermission, \n registerForPushNotifications, \n checkNotificationStatus,\n forceServiceWorkerReinstallation,\n} from '../infra/NotificationFacade';\nimport { Bell, RefreshCw, PlusCircle, Share2, X } from 'lucide-react';\nimport { shouldHideNotification, markNotificationAsDismissed, STORAGE_KEYS } from '../lib/utils';\n\n// Componente para exibir instruções específicas para Safari no iOS\nconst SafariIOSInstructions: React.FC = () => {\n const [dismissed, setDismissed] = useState(false);\n \n // Verificar se já foi fechado recentemente\n useEffect(() => {\n const shouldHide = shouldHideNotification(STORAGE_KEYS.SAFARI_IOS_INSTRUCTIONS);\n if (shouldHide) {\n setDismissed(true);\n }\n }, []);\n \n const handleDismiss = () => {\n markNotificationAsDismissed(STORAGE_KEYS.SAFARI_IOS_INSTRUCTIONS);\n setDismissed(true);\n };\n \n if (dismissed) {\n return null;\n }\n \n return (\n
\n
\n
\n \n

Adicione à tela inicial para receber notificações

\n
\n \n \n \n
\n

\n No Safari do iOS, as notificações só funcionam quando o aplicativo é adicionado à tela inicial.\n Siga os passos abaixo:\n

\n
    \n
  1. Toque no botão de compartilhamento
  2. \n
  3. Role para baixo e toque em \"Adicionar à Tela de Início\"
  4. \n
  5. Após adicionar, abra o aplicativo a partir do ícone na tela inicial
  6. \n
\n
\n );\n};\n\nconst NotificationPermission: React.FC = () => {\n const [status, setStatus] = useState<{\n pushSupported: boolean;\n permission: NotificationPermission | 'unsupported';\n serviceWorkerRegistered: boolean;\n subscription: boolean;\n registrationStatus: string;\n isSafariIOS: boolean;\n isHomeScreenApp: boolean;\n }>({\n pushSupported: false,\n permission: 'default',\n serviceWorkerRegistered: false,\n subscription: false,\n registrationStatus: '',\n isSafariIOS: false,\n isHomeScreenApp: false\n });\n\n const [loading, setLoading] = useState(false);\n const [statusMessage, setStatusMessage] = useState('');\n const [reinstalling, setReinstalling] = useState(false);\n const [dismissed, setDismissed] = useState(false);\n\n // Verificar o status inicial das notificações e se já foi fechado recentemente\n useEffect(() => {\n updateStatus();\n \n // Verificar se já foi fechado recentemente\n const shouldHide = shouldHideNotification(STORAGE_KEYS.NOTIFICATION_PERMISSION);\n if (shouldHide) {\n setDismissed(true);\n }\n }, []);\n\n // Função para atualizar o status de notificações\n const updateStatus = async () => {\n const statusInfo = await checkNotificationStatus();\n setStatus({\n ...statusInfo,\n registrationStatus: ''\n });\n };\n\n // Solicitar permissão para notificações\n const requestPermission = async () => {\n setLoading(true);\n try {\n const permission = await requestNotificationPermission();\n console.log('Permissão recebida:', permission);\n \n // Atualiza o status após obter a permissão\n await updateStatus();\n \n // Se a permissão foi concedida, registra automaticamente para push\n if (permission === 'granted') {\n console.log('Permissão concedida, registrando para push automaticamente');\n await registerForPush();\n }\n } catch (error) {\n console.error('Erro ao solicitar permissão:', error);\n } finally {\n setLoading(false);\n }\n };\n\n // Registrar para notificações push\n const registerForPush = async () => {\n setLoading(true);\n setStatus(prev => ({ ...prev, registrationStatus: 'Registrando para notificações push...' }));\n\n try {\n const result = await registerForPushNotifications();\n \n if (result.success) {\n setStatus(prev => ({ \n ...prev, \n registrationStatus: 'Registro para notificações push concluído com sucesso!' \n }));\n } else {\n setStatus(prev => ({ \n ...prev, \n registrationStatus: 'Falha ao registrar para notificações push.' \n }));\n }\n \n await updateStatus();\n } catch (error) {\n console.error('Erro ao registrar para notificações push:', error);\n setStatus(prev => ({ \n ...prev, \n registrationStatus: `Erro: ${error instanceof Error ? error.message : 'Erro desconhecido'}` \n }));\n } finally {\n setLoading(false);\n }\n };\n\n // Forçar reinstalação do service worker\n const handleForceReinstall = async () => {\n setReinstalling(true);\n setStatusMessage('Reinstalando service worker...');\n \n try {\n const result = await forceServiceWorkerReinstallation();\n if (result) {\n setStatusMessage('Service worker reinstalado com sucesso! Atualizando status...');\n // Atualizar o status após a reinstalação\n await updateStatus();\n setStatusMessage('Pronto! Tente ativar as notificações novamente.');\n } else {\n setStatusMessage('Falha ao reinstalar o service worker. Tente recarregar a página.');\n }\n } catch (error) {\n console.error('Erro ao forçar reinstalação:', error);\n setStatusMessage(`Erro: ${error instanceof Error ? error.message : 'Erro desconhecido'}`);\n } finally {\n setReinstalling(false);\n }\n };\n\n // Função para lidar com o fechamento da notificação\n const handleDismiss = () => {\n markNotificationAsDismissed(STORAGE_KEYS.NOTIFICATION_PERMISSION);\n setDismissed(true);\n };\n\n // Verifica se notificações estão completamente ativas\n const isNotificationActive = status.permission === 'granted' && status.subscription;\n\n // Verifica se é Safari no iOS mas não está rodando como app de tela inicial\n const showSafariIOSInstructions = status.isSafariIOS && !status.isHomeScreenApp;\n\n if (dismissed) {\n return null;\n }\n\n if (isNotificationActive) {\n // Layout ativado\n return (\n
\n
\n
\n \n \n \n \n
\n

Notificações ativadas

\n

\n Você receberá lembretes para registrar seu humor ao longo do dia.\n

\n
\n
\n \n \n \n
\n \n \n \n {reinstalling ? 'Ativando...' : 'Problemas com notificações? Clique aqui!'}\n \n \n {statusMessage && (\n
\n {statusMessage}\n
\n )}\n
\n );\n }\n\n // Se for Safari no iOS e não estiver rodando como app de tela inicial, mostrar instruções específicas\n if (showSafariIOSInstructions) {\n return ;\n }\n\n // Layout não ativado (para outros navegadores ou Safari no iOS rodando como app de tela inicial)\n return (\n
\n
\n
\n \n

Ative as notificações

\n
\n \n \n \n
\n

\n Receba lembretes para registrar seu humor ao longo do dia, mesmo quando não estiver usando o aplicativo.\n

\n \n \n {loading ? 'Processando...' : \n status.permission !== 'granted' \n ? 'Permitir notificações' \n : 'Registrar para lembretes'}\n \n \n {status.registrationStatus && (\n
\n {status.registrationStatus}\n
\n )}\n
\n );\n};\n\nexport default NotificationPermission;","import React from 'react';\nimport { Brain, MessageCircle, Sparkles } from 'lucide-react';\nimport { useChat } from '../../contexts/ChatContext';\n\n// Interface para o componente de gatilho do chat\ninterface ChatTriggerProps {\n variant?: 'button' | 'link' | 'card';\n message?: string;\n label?: string;\n icon?: 'brain' | 'message' | 'sparkles';\n className?: string;\n}\n\n/**\n * Componente que serve como ponto de entrada para o ChatWidget\n * Pode ser usado em qualquer página para permitir interação com o assistente\n */\nconst ChatTrigger: React.FC = ({\n variant = 'button',\n message = '',\n label = 'Falar com Assistente IA',\n icon = 'brain',\n className = ''\n}) => {\n const { openChat } = useChat();\n\n // Função para abrir o chat com uma mensagem inicial\n const handleClick = () => {\n // Verifica se há uma mensagem para incluir\n if (message) {\n console.log(\"ChatTrigger: enviando mensagem inicial:\", message);\n openChat(message);\n } else {\n openChat();\n }\n };\n \n // Seleciona o ícone apropriado\n const IconComponent = {\n brain: Brain,\n message: MessageCircle,\n sparkles: Sparkles\n }[icon];\n \n // Renderiza o componente de acordo com a variante\n switch (variant) {\n case 'link':\n return (\n \n );\n \n case 'card':\n return (\n
\n
\n
\n \n
\n
\n

{label}

\n {message && (\n

\n {message.length > 60 ? `${message.substring(0, 60)}...` : message}\n

\n )}\n
\n
\n
\n );\n \n case 'button':\n default:\n return (\n \n \n {label}\n \n );\n }\n};\n\nexport default ChatTrigger; ","import React from 'react';\nimport { Plus } from 'lucide-react';\nimport { useNavigate } from 'react-router-dom';\nimport ChatTrigger from './ChatAI/ChatTrigger';\nimport { useLocation } from 'react-router-dom';\n\ninterface QuickActionsProps {\n className?: string;\n}\n\nconst QuickActions: React.FC = ({ className = '' }) => {\n const navigate = useNavigate();\n const location = useLocation();\n const isHomePage = location.pathname === '/home';\n \n return (\n
\n

Ações rápidas

\n
\n {/* Card de assistente IA - customizado de acordo com a página */}\n \n navigate('/registrar-lote')}\n className=\"btn btn-outline btn-action w-full text-sm\"\n >\n \n Humores passados\n \n navigate('/registrar')}\n className=\"btn btn-primary btn-action w-full text-sm\"\n >\n \n Humor agora\n \n
\n \n {/* Componente adicional visível em todas as telas */}\n
\n

Dicas de uso

\n

\n Você pode exportar seus prontuários como PDF para compartilhar com profissionais de saúde mental.\n Registre seu humor regularmente para obter análises mais precisas.\n

\n
\n \n {/* Componente adicional para desktop */}\n
\n

Benefícios do registro

\n
    \n
  • \n \n Identifica padrões emocionais\n
  • \n
  • \n \n Ajuda a reconhecer gatilhos\n
  • \n
  • \n \n Facilita a comunicação com profissionais\n
  • \n
\n
\n
\n );\n};\n\nexport default QuickActions; ","import { OnBoardingStatus, OnBoardingUserData, MoodEntry } from '../types';\nimport { getOnBoardingService } from './serviceLocator';\nimport { addMoodEntry } from './DatabaseFacade';\n\n// Verificar se o usuário já viu o OnBoarding\nexport const hasSeenOnBoarding = async (): Promise => {\n const onBoardingService = getOnBoardingService();\n const status = await onBoardingService.getOnBoardingStatus();\n return status.hasSeenOnBoarding;\n};\n\n// Marcar o OnBoarding como visualizado\nexport const markOnBoardingAsSeen = async (): Promise => {\n const onBoardingService = getOnBoardingService();\n await onBoardingService.markOnBoardingAsSeen();\n};\n\n// Verificar se o OnBoarding obrigatório está completo\nexport const isRequiredOnBoardingComplete = async (): Promise => {\n const onBoardingService = getOnBoardingService();\n return await onBoardingService.isRequiredOnBoardingComplete();\n};\n\n// Obter os passos pendentes do OnBoarding\nexport const getPendingOnBoardingSteps = async (): Promise => {\n const onBoardingService = getOnBoardingService();\n return await onBoardingService.getPendingSteps();\n};\n\n// Obter os dados do usuário do OnBoarding\nexport const getOnBoardingUserData = async (): Promise => {\n const onBoardingService = getOnBoardingService();\n return await onBoardingService.getUserData();\n};\n\n// Atualizar os dados do usuário e marcar o passo como concluído\nexport const updateOnBoardingUserData = async (\n stepId: string,\n data: Partial\n): Promise => {\n const onBoardingService = getOnBoardingService();\n \n // Atualizar os dados do usuário\n const updatedData = await onBoardingService.updateUserData(data);\n \n // Marcar o passo como concluído\n await onBoardingService.completeStep(stepId);\n \n // Se for o passo de humor atual, registrar como entrada de humor\n if (stepId === 'current-mood' && data.currentMood !== undefined) {\n const moodEntry: MoodEntry = {\n id: `onboarding-mood-${Date.now()}`,\n score: data.currentMood,\n note: data.moodNote || '',\n timestamp: Date.now()\n };\n \n try {\n await addMoodEntry(moodEntry);\n } catch (error) {\n console.error('Erro ao registrar humor do OnBoarding:', error);\n }\n }\n \n return updatedData;\n};\n\n// Verificar se um passo específico foi concluído\nexport const isOnBoardingStepCompleted = async (stepId: string): Promise => {\n const onBoardingService = getOnBoardingService();\n return await onBoardingService.isStepCompleted(stepId);\n};\n\n// Obter o status completo do OnBoarding\nexport const getOnBoardingStatus = async (): Promise => {\n const onBoardingService = getOnBoardingService();\n return await onBoardingService.getOnBoardingStatus();\n};\n\n// Resetar o OnBoarding (para testes)\nexport const resetOnBoarding = async (): Promise => {\n const onBoardingService = getOnBoardingService();\n await onBoardingService.resetOnBoarding();\n};\n\n// Atualizar o email de recuperação do usuário\nexport const updateUserRecoveryEmail = async (\n recoveryEmail: string\n): Promise => {\n const onBoardingService = getOnBoardingService();\n \n // Verificar se o email é válido\n if (!recoveryEmail || !recoveryEmail.trim()) {\n throw new Error('Email de recuperação inválido');\n }\n \n // Validar formato do email\n const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n if (!emailRegex.test(recoveryEmail)) {\n throw new Error('Formato de email inválido');\n }\n \n try {\n console.log(`Atualizando email de recuperação para: ${recoveryEmail}`);\n \n // Atualizar apenas o campo de email de recuperação\n const updatedData = await onBoardingService.updateUserData({\n recoveryEmail: recoveryEmail.trim()\n });\n \n return updatedData;\n } catch (error) {\n console.error('Erro ao atualizar email de recuperação:', error);\n throw new Error('Não foi possível atualizar o email de recuperação. Por favor, tente novamente.');\n }\n}; ","import React, { useState, useEffect } from 'react';\nimport { motion } from 'framer-motion';\nimport { ClipboardList, X, ChevronRight } from 'lucide-react';\nimport { getPendingOnBoardingSteps } from '../infra/OnBoardingFacade';\n\ninterface OnBoardingReminderProps {\n onComplete: () => void;\n}\n\n// Mapeamento de IDs de passos para nomes amigáveis\nconst stepNames: Record = {\n 'demographics': 'Informações demográficas',\n 'motivation': 'Motivação para uso',\n 'depression-screening': 'Triagem de depressão',\n 'anxiety-screening': 'Triagem de ansiedade',\n 'mental-health-history': 'Histórico de saúde mental',\n 'current-treatment': 'Tratamento atual',\n 'sleep-quality': 'Qualidade do sono',\n 'social-support': 'Suporte social'\n};\n\nconst OnBoardingReminder: React.FC = ({ onComplete }) => {\n const [pendingSteps, setPendingSteps] = useState([]);\n const [dismissed, setDismissed] = useState(false);\n const [loading, setLoading] = useState(true);\n \n useEffect(() => {\n const checkPendingSteps = async () => {\n try {\n setLoading(true);\n const steps = await getPendingOnBoardingSteps();\n // Filtrar apenas os passos opcionais (excluir personal-info, current-mood, additional-info e completion)\n const optionalPendingSteps = steps.filter(\n step => step !== 'personal-info' && \n step !== 'current-mood' && \n step !== 'completion' &&\n step !== 'additional-info'\n );\n setPendingSteps(optionalPendingSteps);\n } catch (error) {\n console.error('Erro ao verificar passos pendentes do OnBoarding:', error);\n } finally {\n setLoading(false);\n }\n };\n \n checkPendingSteps();\n }, []);\n \n const handleDismiss = () => {\n setDismissed(true);\n };\n \n // Não mostrar nada se estiver carregando, se não houver passos pendentes ou se foi dispensado\n if (loading || pendingSteps.length === 0 || dismissed) {\n return null;\n }\n \n return (\n \n
\n
\n
\n \n
\n
\n

Complete seu perfil

\n

\n Você tem {pendingSteps.length} {pendingSteps.length === 1 ? 'item' : 'itens'} pendentes no seu perfil. \n Completar essas informações nos ajudará a personalizar melhor sua experiência.\n

\n \n {pendingSteps.length <= 3 && (\n
    \n {pendingSteps.map(step => (\n
  • \n \n {stepNames[step] || step}\n
  • \n ))}\n
\n )}\n \n \n Completar agora\n \n \n
\n
\n \n \n \n \n
\n \n );\n};\n\nexport default OnBoardingReminder; ","// packages/react/compose-refs/src/composeRefs.tsx\nimport * as React from \"react\";\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n return ref(value);\n } else if (ref !== null && ref !== void 0) {\n ref.current = value;\n }\n}\nfunction composeRefs(...refs) {\n return (node) => {\n let hasCleanup = false;\n const cleanups = refs.map((ref) => {\n const cleanup = setRef(ref, node);\n if (!hasCleanup && typeof cleanup == \"function\") {\n hasCleanup = true;\n }\n return cleanup;\n });\n if (hasCleanup) {\n return () => {\n for (let i = 0; i < cleanups.length; i++) {\n const cleanup = cleanups[i];\n if (typeof cleanup == \"function\") {\n cleanup();\n } else {\n setRef(refs[i], null);\n }\n }\n };\n }\n };\n}\nfunction useComposedRefs(...refs) {\n return React.useCallback(composeRefs(...refs), refs);\n}\nexport {\n composeRefs,\n useComposedRefs\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/slot/src/slot.tsx\nimport * as React from \"react\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { Fragment as Fragment2, jsx } from \"react/jsx-runtime\";\nvar Slot = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });\n});\nSlot.displayName = \"Slot\";\nvar SlotClone = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n const props2 = mergeProps(slotProps, children.props);\n if (children.type !== React.Fragment) {\n props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;\n }\n return React.cloneElement(children, props2);\n }\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n});\nSlotClone.displayName = \"SlotClone\";\nvar Slottable = ({ children }) => {\n return /* @__PURE__ */ jsx(Fragment2, { children });\n};\nfunction isSlottable(child) {\n return React.isValidElement(child) && child.type === Slottable;\n}\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n childPropValue(...args);\n slotPropValue(...args);\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nvar Root = Slot;\nexport {\n Root,\n Slot,\n Slottable\n};\n//# sourceMappingURL=index.mjs.map\n","/**\n * Copyright 2022 Joe Bell. All rights reserved.\n *\n * This file is licensed to you under the Apache License, Version 2.0\n * (the \"License\"); you may not use this file except in compliance with the\n * License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR REPRESENTATIONS OF ANY KIND, either express or implied. See the\n * License for the specific language governing permissions and limitations under\n * the License.\n */ import { clsx } from \"clsx\";\nconst falsyToString = (value)=>typeof value === \"boolean\" ? `${value}` : value === 0 ? \"0\" : value;\nexport const cx = clsx;\nexport const cva = (base, config)=>(props)=>{\n var _config_compoundVariants;\n if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n const { variants, defaultVariants } = config;\n const getVariantClassNames = Object.keys(variants).map((variant)=>{\n const variantProp = props === null || props === void 0 ? void 0 : props[variant];\n const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];\n if (variantProp === null) return null;\n const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);\n return variants[variant][variantKey];\n });\n const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param)=>{\n let [key, value] = param;\n if (value === undefined) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n const getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (_config_compoundVariants = config.compoundVariants) === null || _config_compoundVariants === void 0 ? void 0 : _config_compoundVariants.reduce((acc, param)=>{\n let { class: cvClass, className: cvClassName, ...compoundVariantOptions } = param;\n return Object.entries(compoundVariantOptions).every((param)=>{\n let [key, value] = param;\n return Array.isArray(value) ? value.includes({\n ...defaultVariants,\n ...propsWithoutUndefined\n }[key]) : ({\n ...defaultVariants,\n ...propsWithoutUndefined\n })[key] === value;\n }) ? [\n ...acc,\n cvClass,\n cvClassName\n ] : acc;\n }, []);\n return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n };\n\n","import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../lib/utils\";\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-white transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-neutral-950 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\",\n {\n variants: {\n variant: {\n default: \"bg-primary-500 text-white hover:bg-primary-600 active:bg-primary-700\",\n destructive: \"bg-red-500 text-white hover:bg-red-600 active:bg-red-700\",\n outline: \"border border-neutral-300 bg-white hover:bg-neutral-100 text-neutral-700\",\n secondary: \"bg-secondary-500 text-white hover:bg-secondary-600 active:bg-secondary-700\",\n ghost: \"hover:bg-neutral-100 text-neutral-600 hover:text-neutral-900\",\n link: \"text-primary-500 underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-10 px-4 py-2\",\n sm: \"h-9 rounded-md px-3\",\n lg: \"h-11 rounded-md px-8\",\n icon: \"h-10 w-10\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n);\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes,\n VariantProps {\n asChild?: boolean;\n}\n\nconst Button = React.forwardRef(\n ({ className, variant, size, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\";\n return (\n \n );\n }\n);\nButton.displayName = \"Button\";\n\nexport { Button, buttonVariants }; ","import React, { useState, useEffect } from 'react';\nimport { Smartphone, User, Shield, AlertCircle, Bell, ChevronDown, ChevronUp, Loader2 } from 'lucide-react';\nimport { StepProps } from './StepProps';\nimport { Button } from '../../ui/button';\n\nconst PersonalInfoStep: React.FC = ({\n userData,\n onNext,\n onBack,\n isSubmitting,\n showBackButton = true\n}) => {\n const [name, setName] = useState(userData.name || '');\n const [phone, setPhone] = useState(userData.phone || '');\n const [isAnonymous, setIsAnonymous] = useState(userData.isAnonymous !== false); // Modo anônimo como padrão\n const [showBenefits, setShowBenefits] = useState(false);\n const [showAnonymousWarning, setShowAnonymousWarning] = useState(false);\n const [errors, setErrors] = useState<{ \n name?: string; \n phone?: string;\n }>({});\n \n // Limpar campos de nome e telefone quando mudar para modo anônimo\n useEffect(() => {\n if (isAnonymous) {\n setName('');\n setPhone('');\n }\n }, [isAnonymous]);\n \n // Efeito para atualizar dados quando o userData mudar\n useEffect(() => {\n if (userData) {\n console.log('Atualizando dados do usuário no PersonalInfoStep:', userData);\n \n // Atualizar campos com os dados recebidos\n setName(userData.name || '');\n setPhone(userData.phone || '');\n setIsAnonymous(userData.isAnonymous !== false);\n }\n }, [userData]);\n \n // Função para lidar com a mudança no modo anônimo\n const handleAnonymousToggle = () => {\n // Se está mudando de não-anônimo para anônimo e tem dados sensíveis, mostrar aviso\n if (!isAnonymous && (name.trim() || phone.trim())) {\n setShowAnonymousWarning(true);\n } else {\n // Se não há dados sensíveis ou está mudando para não-anônimo, apenas alterna o modo\n setIsAnonymous(!isAnonymous);\n }\n };\n \n // Função para cancelar a mudança para o modo anônimo\n const handleCancelAnonymous = () => {\n setShowAnonymousWarning(false);\n };\n \n // Função para confirmar a mudança para o modo anônimo\n const handleConfirmAnonymous = () => {\n setIsAnonymous(true);\n setShowAnonymousWarning(false);\n };\n \n const handleSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n \n // Validação\n const newErrors: { \n name?: string; \n phone?: string;\n } = {};\n \n // Se não for anônimo, o nome é obrigatório\n if (!isAnonymous && !name.trim()) {\n newErrors.name = 'Por favor, informe seu nome';\n }\n \n // Telefone é opcional, mas se for preenchido, deve estar no formato correto\n if (!isAnonymous && phone.trim() && !/^\\(\\d{2}\\) \\d{5}-\\d{4}$/.test(phone)) {\n newErrors.phone = 'Formato inválido. Use (99) 99999-9999';\n }\n \n if (Object.keys(newErrors).length > 0) {\n setErrors(newErrors);\n return;\n }\n \n // Enviar dados\n onNext({ \n name: isAnonymous ? undefined : name, \n phone: isAnonymous ? undefined : (phone.trim() || undefined),\n isAnonymous\n });\n };\n \n // Formatar telefone\n const formatPhone = (value: string) => {\n // Remover tudo que não for número\n const numbers = value.replace(/\\D/g, '');\n \n // Aplicar máscara (99) 99999-9999\n if (numbers.length <= 2) {\n return numbers.length ? `(${numbers}` : '';\n } else if (numbers.length <= 7) {\n return `(${numbers.slice(0, 2)}) ${numbers.slice(2)}`;\n } else if (numbers.length <= 11) {\n return `(${numbers.slice(0, 2)}) ${numbers.slice(2, 7)}-${numbers.slice(7)}`;\n } else {\n return `(${numbers.slice(0, 2)}) ${numbers.slice(2, 7)}-${numbers.slice(7, 11)}`;\n }\n };\n \n const handlePhoneChange = (e: React.ChangeEvent) => {\n setPhone(formatPhone(e.target.value));\n };\n \n return (\n
\n
\n

\n Vamos começar com algumas informações básicas\n

\n

\n Sua privacidade é nossa prioridade\n

\n
\n \n {/* Opção de anonimidade */}\n
\n
\n
\n \n
\n
\n

Privacidade e Anonimidade

\n

\n Por padrão, você usará o aplicativo de forma anônima. Seus dados serão criptografados e não serão vinculados à sua identidade real.\n

\n
\n
\n \n
\n \n Modo anônimo\n \n \n \n \n
\n \n {/* Aviso de alteração para modo anônimo */}\n {showAnonymousWarning && (\n
\n
\n \n
\n

\n Atenção: Ao mudar para o modo anônimo\n

\n

\n Seus dados pessoais como nome e telefone serão removidos. Esta ação não pode ser desfeita.\n

\n
\n \n Cancelar\n \n \n Entendi\n \n
\n
\n
\n
\n )}\n \n {/* Benefícios sempre visíveis com opção de expandir/recolher */}\n
\n setShowBenefits(!showBenefits)}\n className=\"flex items-center justify-between w-full p-2 bg-blue-50 rounded-md border border-blue-200 text-left\"\n >\n \n \n Benefícios do modo não-anônimo\n \n {showBenefits ? (\n \n ) : (\n \n )}\n \n \n {showBenefits && (\n
\n
    \n
  • Notificações personalizadas via WhatsApp
  • \n
  • Recomendações exclusivas baseadas no seu perfil
  • \n
  • Conteúdos exclusivos enviados por email
  • \n
  • Lembretes para registros de humor
  • \n
  • Suporte personalizado da nossa equipe
  • \n
\n \n {isAnonymous && (\n
\n

\n Desative o modo anônimo para aproveitar estes benefícios.\n

\n
\n )}\n
\n )}\n
\n
\n \n
\n
\n {/* Campos de nome e telefone - visíveis apenas se não for anônimo */}\n {!isAnonymous && (\n <>\n
\n \n
\n
\n \n
\n setName(e.target.value)}\n className={`block w-full pl-10 pr-3 py-2 border ${\n errors.name ? 'border-red-500' : 'border-neutral-300'\n } rounded-md shadow-sm focus:ring-primary-500 focus:border-primary-500`}\n placeholder=\"Digite seu nome\"\n required\n />\n
\n {errors.name &&

{errors.name}

}\n
\n \n
\n \n
\n
\n \n
\n \n
\n {errors.phone ? (\n

{errors.phone}

\n ) : (\n

\n Usaremos seu telefone para enviar notificações via WhatsApp (opcional)\n

\n )}\n
\n \n )}\n
\n \n
\n {showBackButton && (\n \n Voltar\n \n )}\n \n \n {isSubmitting ? (\n <>\n \n Processando\n \n ) : (\n 'Continuar'\n )}\n \n
\n \n
\n );\n};\n\nexport default PersonalInfoStep; ","import React, { useState, useEffect } from 'react';\nimport { OnBoardingUserData } from '../../../types';\nimport { MapPin, Calendar, Users, Shield } from 'lucide-react';\nimport { StepProps } from './StepProps';\n\nconst genderOptions = [\n { value: 'masculino', label: 'Masculino' },\n { value: 'feminino', label: 'Feminino' },\n { value: 'nao-binario', label: 'Não-binário' },\n { value: 'prefiro-nao-informar', label: 'Prefiro não informar' }\n];\n\n// Opções de faixa etária para modo anônimo\nconst ageRangeOptions = [\n { value: 'menor-18', label: 'Menor de 18 anos' },\n { value: '18-24', label: '18-24 anos' },\n { value: '25-34', label: '25-34 anos' },\n { value: '35-44', label: '35-44 anos' },\n { value: '45-54', label: '45-54 anos' },\n { value: '55-64', label: '55-64 anos' },\n { value: '65-mais', label: '65 anos ou mais' },\n { value: 'prefiro-nao-informar', label: 'Prefiro não informar' }\n];\n\n// Opções de região para modo anônimo (em vez de cidade/estado específico)\nconst regionOptions = [\n { value: 'norte', label: 'Região Norte' },\n { value: 'nordeste', label: 'Região Nordeste' },\n { value: 'centro-oeste', label: 'Região Centro-Oeste' },\n { value: 'sudeste', label: 'Região Sudeste' },\n { value: 'sul', label: 'Região Sul' },\n { value: 'prefiro-nao-informar', label: 'Prefiro não informar' }\n];\n\nconst DemographicsStep: React.FC = ({\n userData,\n onNext,\n onSkip,\n onBack,\n isSubmitting,\n showBackButton = true\n}) => {\n const [age, setAge] = useState(userData.age?.toString() || '');\n const [ageRange, setAgeRange] = useState(userData.ageRange || '');\n const [gender, setGender] = useState(userData.gender || '');\n const [location, setLocation] = useState(userData.location || '');\n const [region, setRegion] = useState(userData.region || '');\n const [isAnonymous, setIsAnonymous] = useState(userData.isAnonymous !== false);\n \n // Atualizar o estado isAnonymous quando userData mudar\n useEffect(() => {\n setIsAnonymous(userData.isAnonymous !== false);\n }, [userData.isAnonymous]);\n \n const handleSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n \n const data: Partial = {};\n \n // Dados diferentes dependendo do modo (anônimo ou não)\n if (isAnonymous) {\n if (ageRange) {\n data.ageRange = ageRange;\n }\n \n if (region) {\n data.region = region;\n }\n } else {\n if (age) {\n data.age = parseInt(age, 10);\n }\n \n if (location) {\n data.location = location;\n }\n }\n \n // Gênero é coletado em ambos os modos\n if (gender) {\n data.gender = gender;\n }\n \n onNext(data);\n };\n \n return (\n
\n
\n

\n Informações demográficas\n

\n

\n Estas informações são opcionais e nos ajudam a personalizar sua experiência\n

\n
\n \n {/* Indicador de modo anônimo */}\n {isAnonymous && (\n
\n \n

\n Você está no modo anônimo. Coletamos apenas informações gerais que não permitem sua identificação.\n

\n
\n )}\n \n
\n
\n {/* Idade - versão diferente dependendo do modo */}\n {isAnonymous ? (\n
\n \n
\n
\n \n
\n setAgeRange(e.target.value)}\n className=\"block w-full pl-10 pr-3 py-2 border border-neutral-300 rounded-md shadow-sm focus:ring-primary-500 focus:border-primary-500 appearance-none\"\n >\n \n {ageRangeOptions.map((option) => (\n \n ))}\n \n
\n \n \n \n
\n
\n
\n ) : (\n
\n \n
\n
\n \n
\n setAge(e.target.value)}\n className=\"block w-full pl-10 pr-3 py-2 border border-neutral-300 rounded-md shadow-sm focus:ring-primary-500 focus:border-primary-500\"\n placeholder=\"Sua idade\"\n />\n
\n
\n )}\n \n {/* Gênero - igual para ambos os modos */}\n
\n \n
\n
\n \n
\n setGender(e.target.value)}\n className=\"block w-full pl-10 pr-3 py-2 border border-neutral-300 rounded-md shadow-sm focus:ring-primary-500 focus:border-primary-500 appearance-none\"\n >\n \n {genderOptions.map((option) => (\n \n ))}\n \n
\n \n \n \n
\n
\n
\n \n {/* Localização - versão diferente dependendo do modo */}\n {isAnonymous ? (\n
\n \n
\n
\n \n
\n setRegion(e.target.value)}\n className=\"block w-full pl-10 pr-3 py-2 border border-neutral-300 rounded-md shadow-sm focus:ring-primary-500 focus:border-primary-500 appearance-none\"\n >\n \n {regionOptions.map((option) => (\n \n ))}\n \n
\n \n \n \n
\n
\n
\n ) : (\n
\n \n
\n
\n \n
\n setLocation(e.target.value)}\n className=\"block w-full pl-10 pr-3 py-2 border border-neutral-300 rounded-md shadow-sm focus:ring-primary-500 focus:border-primary-500\"\n placeholder=\"Ex: São Paulo, SP\"\n />\n
\n
\n )}\n
\n \n
\n \n {isSubmitting ? 'Salvando...' : 'Continuar'}\n \n \n \n Pular esta etapa\n \n \n {showBackButton && (\n \n Voltar\n \n )}\n
\n \n
\n );\n};\n\nexport default DemographicsStep; ","import React, { useState } from 'react';\nimport { OnBoardingUserData } from '../../../types';\nimport { motion } from 'framer-motion';\nimport { Heart, Brain, Smile, BookOpen, Coffee, Edit3, Moon, Users, Award, Zap } from 'lucide-react';\nimport { StepProps } from './StepProps';\nimport { Button } from '../../ui/button';\nimport { Loader2 } from 'lucide-react';\n\ntype MotivationOption = {\n value: string;\n label: string;\n description: string;\n icon: React.ElementType;\n};\n\n// Lista unificada de todas as opções de motivação/objetivos\nconst allOptions: MotivationOption[] = [\n { \n value: 'melhorar-humor', \n label: 'Melhorar meu humor', \n description: 'Quero me sentir melhor no dia a dia',\n icon: Smile \n },\n { \n value: 'gerenciar-estresse', \n label: 'Gerenciar estresse', \n description: 'Preciso lidar melhor com situações estressantes',\n icon: Brain \n },\n { \n value: 'acompanhar-emocoes', \n label: 'Acompanhar emoções', \n description: 'Quero entender melhor meus padrões emocionais',\n icon: Heart \n },\n { \n value: 'recomendacao-profissional', \n label: 'Recomendação profissional', \n description: 'Um profissional de saúde me recomendou',\n icon: BookOpen \n },\n { \n value: 'reduzir-ansiedade', \n label: 'Reduzir sintomas de ansiedade',\n description: 'Quero diminuir minha ansiedade no dia a dia',\n icon: Zap\n },\n { \n value: 'habilidades-enfrentamento', \n label: 'Desenvolver habilidades',\n description: 'Quero melhorar minhas habilidades de enfrentamento',\n icon: Award\n },\n { \n value: 'melhorar-relacionamentos', \n label: 'Melhorar relacionamentos',\n description: 'Quero ter relações mais saudáveis com outras pessoas',\n icon: Users\n },\n { \n value: 'aumentar-autoestima', \n label: 'Aumentar autoestima',\n description: 'Quero me sentir melhor comigo mesmo',\n icon: Award\n },\n { \n value: 'melhorar-sono', \n label: 'Melhorar qualidade do sono',\n description: 'Quero dormir melhor e ter mais disposição',\n icon: Moon\n },\n { \n value: 'desenvolver-habitos', \n label: 'Desenvolver hábitos saudáveis',\n description: 'Quero criar rotinas que melhorem meu bem-estar',\n icon: Award\n },\n { \n value: 'curiosidade', \n label: 'Curiosidade', \n description: 'Estou apenas explorando o aplicativo',\n icon: Coffee \n },\n { \n value: 'outro', \n label: 'Outro motivo', \n description: 'Tenho um motivo diferente dos listados',\n icon: Edit3 \n }\n];\n\nconst MotivationStep: React.FC = ({\n userData,\n onNext,\n onSkip,\n onBack,\n isSubmitting,\n showBackButton = true\n}) => {\n // Converter motivações e objetivos existentes para um único array\n const existingSelections = [\n ...(Array.isArray(userData.motivation) \n ? userData.motivation as string[] \n : userData.motivation ? [userData.motivation as string] : []),\n ...(userData.goals || [])\n ];\n\n const [selectedOptions, setSelectedOptions] = useState(existingSelections);\n const [otherOption, setOtherOption] = useState(userData.motivationOther || '');\n const [additionalInfo, setAdditionalInfo] = useState(userData.additionalInfo || '');\n const [showAdditionalInfo, setShowAdditionalInfo] = useState(!!userData.additionalInfo);\n \n const handleOptionToggle = (option: string) => {\n setSelectedOptions(prev => {\n if (prev.includes(option)) {\n return prev.filter(o => o !== option);\n } else {\n // Não há mais limite de seleções\n return [...prev, option];\n }\n });\n };\n \n const handleSubmit = () => {\n if (selectedOptions.length > 0) {\n // Criamos um objeto com os dados para enviar\n const data: Partial = {};\n \n // Atribuímos as opções selecionadas como motivações\n // Como a interface espera um tipo específico, usamos type assertion\n data.motivation = selectedOptions.length === 1 && ['melhorar-humor', 'gerenciar-estresse', 'acompanhar-emocoes', 'recomendacao-profissional', 'curiosidade', 'outro'].includes(selectedOptions[0])\n ? selectedOptions[0] as 'melhorar-humor' | 'gerenciar-estresse' | 'acompanhar-emocoes' | 'recomendacao-profissional' | 'curiosidade' | 'outro'\n : undefined; // Se não for um dos valores esperados ou for múltiplo, não atribuímos\n \n // Armazenamos todas as opções selecionadas no campo goals\n data.goals = selectedOptions;\n \n if (selectedOptions.includes('outro') && otherOption) {\n data.motivationOther = otherOption;\n }\n \n if (showAdditionalInfo && additionalInfo.trim()) {\n data.additionalInfo = additionalInfo.trim();\n }\n \n onNext(data);\n }\n };\n \n return (\n
\n
\n

\n O que te trouxe ao Meu Humor?\n

\n

\n Selecione os motivos principais para você usar este aplicativo\n

\n
\n \n
\n
\n {allOptions.map((option) => {\n const Icon = option.icon;\n return (\n handleOptionToggle(option.value)}\n className={`flex flex-col items-start p-4 rounded-lg border-2 text-left transition-colors ${\n selectedOptions.includes(option.value)\n ? 'border-primary-500 bg-primary-50'\n : 'border-neutral-200 hover:border-neutral-300'\n }`}\n >\n
\n
\n \n
\n {option.label}\n
\n

{option.description}

\n \n );\n })}\n
\n \n {selectedOptions.includes('outro') && (\n
\n \n setOtherOption(e.target.value)}\n className=\"block w-full px-3 py-2 border border-neutral-300 rounded-md shadow-sm focus:ring-primary-500 focus:border-primary-500\"\n rows={3}\n placeholder=\"Descreva seu motivo para usar o aplicativo...\"\n />\n
\n )}\n \n {selectedOptions.length > 0 && (\n
\n setShowAdditionalInfo(!showAdditionalInfo)}\n className=\"text-primary-600 hover:text-primary-700 text-sm font-medium flex items-center\"\n >\n {showAdditionalInfo ? 'Ocultar informações adicionais' : 'Adicionar informações adicionais'}\n \n \n {showAdditionalInfo && (\n
\n \n setAdditionalInfo(e.target.value)}\n className=\"w-full p-2 border border-neutral-300 rounded-md focus:ring-primary-500 focus:border-primary-500\"\n rows={3}\n placeholder=\"Compartilhe informações adicionais que possam nos ajudar a personalizar sua experiência\"\n />\n
\n )}\n
\n )}\n \n
\n {showBackButton && (\n \n Voltar\n \n )}\n \n
\n \n Pular\n \n \n \n {isSubmitting ? (\n <>\n \n Processando\n \n ) : (\n 'Continuar'\n )}\n \n
\n
\n
\n
\n );\n};\n\nexport default MotivationStep; ","import React, { useState } from 'react';\nimport { OnBoardingUserData } from '../../../types';\nimport { Button } from '../../ui/button';\nimport { Loader2 } from 'lucide-react';\n\ninterface CurrentMoodStepProps {\n userData: Partial;\n onNext: (data: Partial) => void;\n onSkip: () => void;\n onBack: () => void;\n isSubmitting: boolean;\n showBackButton?: boolean;\n}\n\n// Opções de humor - agora de 0 a 5, igual ao MoodAddForm\nconst moodOptions = [\n { value: 0, label: 'Muito mal', emoji: '😭', color: 'bg-red-500' },\n { value: 1, label: 'Mal', emoji: '😔', color: 'bg-orange-500' },\n { value: 2, label: 'Regular', emoji: '😐', color: 'bg-yellow-500' },\n { value: 3, label: 'Bem', emoji: '🙂', color: 'bg-lime-500' },\n { value: 4, label: 'Muito bem', emoji: '😄', color: 'bg-green-500' },\n { value: 5, label: 'Excelente', emoji: '🤩', color: 'bg-emerald-500' }\n];\n\nconst CurrentMoodStep: React.FC = ({\n userData,\n onNext,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onSkip,\n onBack,\n isSubmitting,\n showBackButton = true\n}) => {\n const [selectedMood, setSelectedMood] = useState(\n userData.currentMood !== undefined ? userData.currentMood : null\n );\n const [moodNote, setMoodNote] = useState(userData.moodNote || '');\n \n const handleMoodSelect = (value: number) => {\n setSelectedMood(value);\n };\n \n const handleSubmit = () => {\n if (selectedMood !== null) {\n onNext({ \n currentMood: selectedMood,\n moodNote: moodNote.trim() || undefined\n });\n }\n };\n \n return (\n
\n
\n

\n Como você está se sentindo agora?\n

\n

\n Selecione a opção que melhor representa seu humor atual\n

\n
\n \n {/* Grid responsivo: 2 colunas em mobile, 3 em tablet, 6 em desktop */}\n
\n {moodOptions.map((option) => (\n
handleMoodSelect(option.value)}\n className={`flex flex-col items-center p-3 rounded-lg cursor-pointer transition-all ${\n selectedMood === option.value \n ? `ring-2 ring-primary-500 ${option.color} text-white` \n : 'bg-white hover:bg-neutral-50 border border-neutral-200'\n }`}\n >\n {option.emoji}\n {option.label}\n
\n ))}\n
\n \n {selectedMood !== null && (\n
\n \n setMoodNote(e.target.value)}\n placeholder=\"O que está influenciando seu humor atual?\"\n className=\"w-full min-h-[100px] p-3 border border-neutral-300 rounded-md shadow-sm focus:ring-primary-500 focus:border-primary-500\"\n maxLength={255}\n />\n
\n \n {moodNote.length}/255 caracteres\n \n
\n
\n )}\n \n
\n {showBackButton && (\n \n Voltar\n \n )}\n \n
\n \n {isSubmitting ? (\n <>\n \n Processando\n \n ) : (\n 'Continuar'\n )}\n \n
\n
\n
\n );\n};\n\nexport default CurrentMoodStep; ","import React, { useState } from 'react';\nimport { Button } from '../../ui/button';\nimport { Loader2 } from 'lucide-react';\nimport { StepProps } from './StepProps';\n\n// Questionário PHQ-9 simplificado para triagem de depressão\nconst depressionQuestions = [\n {\n id: 'phq1',\n text: 'Pouco interesse ou prazer em fazer as coisas'\n },\n {\n id: 'phq2',\n text: 'Sentindo-se para baixo, deprimido ou sem esperança'\n },\n {\n id: 'phq3',\n text: 'Dificuldade para dormir, permanecer dormindo ou dormir demais'\n },\n {\n id: 'phq4',\n text: 'Sentindo-se cansado ou com pouca energia'\n },\n {\n id: 'phq5',\n text: 'Pouco apetite ou comendo demais'\n },\n {\n id: 'phq6',\n text: 'Sentindo-se mal consigo mesmo, sentindo-se um fracasso ou que decepcionou a si mesmo ou sua família'\n },\n {\n id: 'phq7',\n text: 'Dificuldade para se concentrar em coisas como ler o jornal ou assistir televisão'\n },\n {\n id: 'phq8',\n text: 'Movimentando-se ou falando tão lentamente que outras pessoas notaram, ou o contrário – agitado ou inquieto mais do que o normal'\n },\n {\n id: 'phq9',\n text: 'Pensamentos de que seria melhor estar morto ou de se machucar de alguma forma'\n }\n];\n\n// Opções de resposta para cada pergunta\nconst responseOptions = [\n { value: 0, label: 'Nenhuma vez' },\n { value: 1, label: 'Vários dias' },\n { value: 2, label: 'Mais da metade dos dias' },\n { value: 3, label: 'Quase todos os dias' }\n];\n\nconst DepressionScreeningStep: React.FC = ({\n userData,\n onNext,\n onSkip,\n onBack,\n isSubmitting,\n showBackButton = true\n}) => {\n // Inicializar respostas com valores existentes ou vazios\n const [responses, setResponses] = useState>(\n userData.depressionScreening || {}\n );\n \n const handleResponseChange = (questionId: string, value: number) => {\n setResponses(prev => ({\n ...prev,\n [questionId]: value\n }));\n };\n \n const handleSubmit = () => {\n // Calcular pontuação total\n const totalScore = Object.values(responses).reduce((sum, score) => sum + score, 0);\n \n onNext({\n depressionScreening: responses,\n depressionScore: totalScore\n });\n };\n \n // Verificar se todas as perguntas foram respondidas\n const isComplete = depressionQuestions.every(q => responses[q.id] !== undefined);\n \n return (\n
\n
\n

Triagem de Depressão

\n

\n Nas últimas 2 semanas, com que frequência você foi incomodado por algum dos problemas abaixo?\n

\n
\n \n
\n {depressionQuestions.map((question) => (\n
\n

{question.text}

\n
\n {responseOptions.map((option) => (\n
\n handleResponseChange(question.id, option.value)}\n className=\"h-4 w-4 text-primary-600 focus:ring-primary-500 border-neutral-300\"\n />\n \n {option.label}\n \n
\n ))}\n
\n
\n ))}\n
\n \n
\n {showBackButton && (\n \n Voltar\n \n )}\n \n
\n \n Pular\n \n \n \n {isSubmitting ? (\n <>\n \n Processando\n \n ) : (\n 'Continuar'\n )}\n \n
\n
\n
\n );\n};\n\nexport default DepressionScreeningStep; ","import React, { useState } from 'react';\nimport { Button } from '../../ui/button';\nimport { Loader2 } from 'lucide-react';\nimport { StepProps } from './StepProps';\n\n// Questionário GAD-7 simplificado para triagem de ansiedade\nconst anxietyQuestions = [\n {\n id: 'gad1',\n text: 'Sentindo-se nervoso, ansioso ou muito tenso'\n },\n {\n id: 'gad2',\n text: 'Não sendo capaz de parar ou controlar as preocupações'\n },\n {\n id: 'gad3',\n text: 'Preocupando-se muito com coisas diferentes'\n },\n {\n id: 'gad4',\n text: 'Dificuldade para relaxar'\n },\n {\n id: 'gad5',\n text: 'Ficando tão agitado que é difícil ficar parado'\n },\n {\n id: 'gad6',\n text: 'Ficando facilmente aborrecido ou irritado'\n },\n {\n id: 'gad7',\n text: 'Sentindo medo como se algo terrível pudesse acontecer'\n }\n];\n\n// Opções de resposta para cada pergunta\nconst responseOptions = [\n { value: 0, label: 'Nenhuma vez' },\n { value: 1, label: 'Vários dias' },\n { value: 2, label: 'Mais da metade dos dias' },\n { value: 3, label: 'Quase todos os dias' }\n];\n\nconst AnxietyScreeningStep: React.FC = ({\n userData,\n onNext,\n onSkip,\n onBack,\n isSubmitting,\n showBackButton = true\n}) => {\n // Inicializar respostas com valores existentes ou vazios\n const [responses, setResponses] = useState>(\n userData.anxietyScreening || {}\n );\n \n const handleResponseChange = (questionId: string, value: number) => {\n setResponses(prev => ({\n ...prev,\n [questionId]: value\n }));\n };\n \n const handleSubmit = () => {\n // Calcular pontuação total\n const totalScore = Object.values(responses).reduce((sum, score) => sum + score, 0);\n \n onNext({\n anxietyScreening: responses,\n anxietyScore: totalScore\n });\n };\n \n // Verificar se todas as perguntas foram respondidas\n const isComplete = anxietyQuestions.every(q => responses[q.id] !== undefined);\n \n return (\n
\n
\n

Triagem de Ansiedade

\n

\n Nas últimas 2 semanas, com que frequência você foi incomodado por algum dos problemas abaixo?\n

\n
\n \n
\n {anxietyQuestions.map((question) => (\n
\n

{question.text}

\n
\n {responseOptions.map((option) => (\n
\n handleResponseChange(question.id, option.value)}\n className=\"h-4 w-4 text-primary-600 focus:ring-primary-500 border-neutral-300\"\n />\n \n {option.label}\n \n
\n ))}\n
\n
\n ))}\n
\n \n
\n {showBackButton && (\n \n Voltar\n \n )}\n \n
\n \n Pular\n \n \n \n {isSubmitting ? (\n <>\n \n Processando\n \n ) : (\n 'Continuar'\n )}\n \n
\n
\n
\n );\n};\n\nexport default AnxietyScreeningStep; ","import React, { useState } from 'react';\nimport { Button } from '../../ui/button';\nimport { Loader2 } from 'lucide-react';\nimport { StepProps } from './StepProps';\n\n// Lista de condições de saúde mental comuns\nconst mentalHealthConditions = [\n 'Depressão',\n 'Ansiedade',\n 'Transtorno Bipolar',\n 'Transtorno Obsessivo-Compulsivo (TOC)',\n 'Transtorno de Estresse Pós-Traumático (TEPT)',\n 'Transtorno de Déficit de Atenção e Hiperatividade (TDAH)',\n 'Esquizofrenia',\n 'Transtorno de Personalidade',\n 'Transtorno Alimentar',\n 'Outro'\n];\n\nconst MentalHealthHistoryStep: React.FC = ({\n userData,\n onNext,\n onSkip,\n onBack,\n isSubmitting,\n showBackButton = true\n}) => {\n const [hasMentalHealthCondition, setHasMentalHealthCondition] = useState(\n userData.hasMentalHealthCondition\n );\n const [selectedConditions, setSelectedConditions] = useState(\n userData.mentalHealthConditionDetails?.split(',').map(item => item.trim()) || []\n );\n const [otherCondition, setOtherCondition] = useState('');\n \n const handleConditionToggle = (condition: string) => {\n setSelectedConditions(prev => {\n if (prev.includes(condition)) {\n return prev.filter(c => c !== condition);\n } else {\n return [...prev, condition];\n }\n });\n };\n \n const handleSubmit = () => {\n // Preparar os detalhes das condições\n let conditionDetails = selectedConditions.filter(c => c !== 'Outro').join(', ');\n \n // Adicionar a condição \"Outro\" se selecionada e especificada\n if (selectedConditions.includes('Outro') && otherCondition.trim()) {\n conditionDetails += conditionDetails ? `, ${otherCondition.trim()}` : otherCondition.trim();\n }\n \n onNext({\n hasMentalHealthCondition: hasMentalHealthCondition === true,\n mentalHealthConditionDetails: conditionDetails || undefined\n });\n };\n \n return (\n
\n
\n

Histórico de Saúde Mental

\n

\n Estas informações nos ajudarão a personalizar sua experiência. Todas as informações são confidenciais.\n

\n
\n \n
\n
\n

\n Você já foi diagnosticado com alguma condição de saúde mental?\n

\n
\n
\n setHasMentalHealthCondition(true)}\n className=\"h-4 w-4 text-primary-600 focus:ring-primary-500 border-neutral-300\"\n />\n \n
\n
\n setHasMentalHealthCondition(false)}\n className=\"h-4 w-4 text-primary-600 focus:ring-primary-500 border-neutral-300\"\n />\n \n
\n
\n
\n \n {hasMentalHealthCondition && (\n
\n

\n Selecione as condições que se aplicam a você:\n

\n
\n {mentalHealthConditions.map((condition) => (\n
\n handleConditionToggle(condition)}\n className=\"h-4 w-4 text-primary-600 focus:ring-primary-500 border-neutral-300 rounded\"\n />\n \n
\n ))}\n
\n \n {selectedConditions.includes('Outro') && (\n
\n \n setOtherCondition(e.target.value)}\n className=\"w-full p-2 border border-neutral-300 rounded-md focus:ring-primary-500 focus:border-primary-500\"\n placeholder=\"Digite a condição\"\n />\n
\n )}\n
\n )}\n
\n \n
\n {showBackButton && (\n \n Voltar\n \n )}\n \n
\n \n Pular\n \n \n \n {isSubmitting ? (\n <>\n \n Processando\n \n ) : (\n 'Continuar'\n )}\n \n
\n
\n
\n );\n};\n\nexport default MentalHealthHistoryStep; ","import React, { useState } from 'react';\nimport { Button } from '../../ui/button';\nimport { Loader2 } from 'lucide-react';\nimport { StepProps } from './StepProps';\n\n// Lista de tipos de tratamento comuns\nconst treatmentTypes = [\n 'Terapia psicológica',\n 'Medicação psiquiátrica',\n 'Terapia em grupo',\n 'Meditação/Mindfulness',\n 'Exercícios físicos',\n 'Terapias alternativas',\n 'Outro'\n];\n\nconst CurrentTreatmentStep: React.FC = ({\n userData,\n onNext,\n onSkip,\n onBack,\n isSubmitting,\n showBackButton = true\n}) => {\n const [isReceivingTreatment, setIsReceivingTreatment] = useState(\n userData.isReceivingTreatment\n );\n const [selectedTreatments, setSelectedTreatments] = useState(\n userData.treatmentDetails?.split(',').map(item => item.trim()) || []\n );\n const [otherTreatment, setOtherTreatment] = useState('');\n const [medications, setMedications] = useState(\n userData.psychiatricMedications || ''\n );\n \n const handleTreatmentToggle = (treatment: string) => {\n setSelectedTreatments(prev => {\n if (prev.includes(treatment)) {\n return prev.filter(t => t !== treatment);\n } else {\n return [...prev, treatment];\n }\n });\n };\n \n const handleSubmit = () => {\n // Preparar os detalhes dos tratamentos\n let treatmentDetails = selectedTreatments.filter(t => t !== 'Outro').join(', ');\n \n // Adicionar o tratamento \"Outro\" se selecionado e especificado\n if (selectedTreatments.includes('Outro') && otherTreatment.trim()) {\n treatmentDetails += treatmentDetails ? `, ${otherTreatment.trim()}` : otherTreatment.trim();\n }\n \n onNext({\n isReceivingTreatment: isReceivingTreatment === true,\n treatmentDetails: treatmentDetails || undefined,\n psychiatricMedications: selectedTreatments.includes('Medicação psiquiátrica') ? medications.trim() : undefined\n });\n };\n \n return (\n
\n
\n

Tratamento Atual

\n

\n Estas informações nos ajudarão a personalizar sua experiência. Todas as informações são confidenciais.\n

\n
\n \n
\n
\n

\n Você está atualmente recebendo algum tipo de tratamento para saúde mental?\n

\n
\n
\n setIsReceivingTreatment(true)}\n className=\"h-4 w-4 text-primary-600 focus:ring-primary-500 border-neutral-300\"\n />\n \n
\n
\n setIsReceivingTreatment(false)}\n className=\"h-4 w-4 text-primary-600 focus:ring-primary-500 border-neutral-300\"\n />\n \n
\n
\n
\n \n {isReceivingTreatment && (\n
\n

\n Selecione os tipos de tratamento que você está recebendo:\n

\n
\n {treatmentTypes.map((treatment) => (\n
\n handleTreatmentToggle(treatment)}\n className=\"h-4 w-4 text-primary-600 focus:ring-primary-500 border-neutral-300 rounded\"\n />\n \n
\n ))}\n
\n \n {selectedTreatments.includes('Medicação psiquiátrica') && (\n
\n \n setMedications(e.target.value)}\n className=\"w-full p-2 border border-neutral-300 rounded-md focus:ring-primary-500 focus:border-primary-500\"\n placeholder=\"Ex: Fluoxetina 20mg, Clonazepam 0.5mg, etc.\"\n rows={3}\n />\n

\n Estas informações são confidenciais e nos ajudarão a personalizar sua experiência.\n

\n
\n )}\n \n {selectedTreatments.includes('Outro') && (\n
\n \n setOtherTreatment(e.target.value)}\n className=\"w-full p-2 border border-neutral-300 rounded-md focus:ring-primary-500 focus:border-primary-500\"\n placeholder=\"Digite o tipo de tratamento\"\n />\n
\n )}\n
\n )}\n
\n \n
\n {showBackButton && (\n \n Voltar\n \n )}\n \n
\n \n Pular\n \n \n \n {isSubmitting ? (\n <>\n \n Processando\n \n ) : (\n 'Continuar'\n )}\n \n
\n
\n
\n );\n};\n\nexport default CurrentTreatmentStep; ","import React, { useState } from 'react';\nimport { Button } from '../../ui/button';\nimport { Loader2 } from 'lucide-react';\nimport { StepProps } from './StepProps';\n\n// Lista de problemas de sono comuns\nconst sleepIssues = [\n 'Dificuldade para adormecer',\n 'Acordar durante a noite',\n 'Acordar muito cedo',\n 'Sono não reparador',\n 'Pesadelos frequentes',\n 'Ronco',\n 'Apneia do sono',\n 'Outro'\n];\n\nconst SleepQualityStep: React.FC = ({\n userData,\n onNext,\n onSkip,\n onBack,\n isSubmitting,\n showBackButton = true\n}) => {\n const [sleepQuality, setSleepQuality] = useState(\n userData.sleepQuality\n );\n const [sleepHours, setSleepHours] = useState(\n userData.sleepHoursPerNight\n );\n const [selectedIssues, setSelectedIssues] = useState(\n userData.sleepIssues || []\n );\n const [otherIssue, setOtherIssue] = useState('');\n \n const handleIssueToggle = (issue: string) => {\n setSelectedIssues(prev => {\n if (prev.includes(issue)) {\n return prev.filter(i => i !== issue);\n } else {\n return [...prev, issue];\n }\n });\n };\n \n const handleSubmit = () => {\n // Preparar a lista de problemas de sono\n const issues = [...selectedIssues.filter(i => i !== 'Outro')];\n \n // Adicionar o problema \"Outro\" se selecionado e especificado\n if (selectedIssues.includes('Outro') && otherIssue.trim()) {\n issues.push(otherIssue.trim());\n }\n \n onNext({\n sleepQuality: sleepQuality as 'ruim' | 'razoavel' | 'boa' | 'excelente' | undefined,\n sleepHoursPerNight: sleepHours,\n sleepIssues: issues.length > 0 ? issues : undefined\n });\n };\n \n return (\n
\n
\n

Qualidade do Sono

\n

\n O sono tem um impacto significativo na saúde mental. Estas informações nos ajudarão a personalizar suas recomendações.\n

\n
\n \n
\n
\n

\n Como você classificaria a qualidade geral do seu sono?\n

\n
\n {[\n { value: 'ruim', label: 'Ruim' },\n { value: 'razoavel', label: 'Razoável' },\n { value: 'boa', label: 'Boa' },\n { value: 'excelente', label: 'Excelente' }\n ].map((option) => (\n
\n setSleepQuality(option.value)}\n className=\"h-4 w-4 text-primary-600 focus:ring-primary-500 border-neutral-300\"\n />\n \n
\n ))}\n
\n
\n \n
\n \n setSleepHours(e.target.value ? parseInt(e.target.value, 10) : undefined)}\n className=\"w-full p-2 border border-neutral-300 rounded-md focus:ring-primary-500 focus:border-primary-500\"\n placeholder=\"Horas de sono\"\n />\n
\n \n
\n

\n Você experimenta algum dos seguintes problemas de sono?\n

\n
\n {sleepIssues.map((issue) => (\n
\n handleIssueToggle(issue)}\n className=\"h-4 w-4 text-primary-600 focus:ring-primary-500 border-neutral-300 rounded\"\n />\n \n
\n ))}\n
\n \n {selectedIssues.includes('Outro') && (\n
\n \n setOtherIssue(e.target.value)}\n className=\"w-full p-2 border border-neutral-300 rounded-md focus:ring-primary-500 focus:border-primary-500\"\n placeholder=\"Digite o problema de sono\"\n />\n
\n )}\n
\n
\n \n
\n {showBackButton && (\n \n Voltar\n \n )}\n \n
\n \n Pular\n \n \n \n {isSubmitting ? (\n <>\n \n Processando\n \n ) : (\n 'Continuar'\n )}\n \n
\n
\n
\n );\n};\n\nexport default SleepQualityStep; ","import React, { useState } from 'react';\nimport { Button } from '../../ui/button';\nimport { Loader2 } from 'lucide-react';\nimport { StepProps } from './StepProps';\n\n// Lista de tipos de suporte social\nconst supportTypes = [\n 'Família',\n 'Amigos',\n 'Parceiro(a)',\n 'Colegas de trabalho',\n 'Grupos de apoio',\n 'Comunidade religiosa',\n 'Profissionais de saúde mental',\n 'Outro'\n];\n\nconst SocialSupportStep: React.FC = ({\n userData,\n onNext,\n onSkip,\n onBack,\n isSubmitting,\n showBackButton = true\n}) => {\n const [hasSupportSystem, setHasSupportSystem] = useState(\n userData.hasSupportSystem\n );\n const [selectedSupports, setSelectedSupports] = useState(\n userData.supportSystemDetails || []\n );\n const [otherSupport, setOtherSupport] = useState('');\n \n const handleSupportToggle = (support: string) => {\n setSelectedSupports(prev => {\n if (prev.includes(support)) {\n return prev.filter(s => s !== support);\n } else {\n return [...prev, support];\n }\n });\n };\n \n const handleSubmit = () => {\n // Preparar a lista de suportes\n const supports = [...selectedSupports.filter(s => s !== 'Outro')];\n \n // Adicionar o suporte \"Outro\" se selecionado e especificado\n if (selectedSupports.includes('Outro') && otherSupport.trim()) {\n supports.push(otherSupport.trim());\n }\n \n onNext({\n hasSupportSystem: hasSupportSystem === true,\n supportSystemDetails: supports.length > 0 ? supports : undefined\n });\n };\n \n return (\n
\n
\n

Suporte Social

\n

\n O suporte social é um fator importante para a saúde mental. Estas informações nos ajudarão a personalizar suas recomendações.\n

\n
\n \n
\n
\n

\n Você sente que tem um sistema de suporte social adequado?\n

\n
\n
\n setHasSupportSystem(true)}\n className=\"h-4 w-4 text-primary-600 focus:ring-primary-500 border-neutral-300\"\n />\n \n
\n
\n setHasSupportSystem(false)}\n className=\"h-4 w-4 text-primary-600 focus:ring-primary-500 border-neutral-300\"\n />\n \n
\n
\n
\n \n
\n

\n Quais são suas principais fontes de suporte social?\n

\n
\n {supportTypes.map((support) => (\n
\n handleSupportToggle(support)}\n className=\"h-4 w-4 text-primary-600 focus:ring-primary-500 border-neutral-300 rounded\"\n />\n \n
\n ))}\n
\n \n {selectedSupports.includes('Outro') && (\n
\n \n setOtherSupport(e.target.value)}\n className=\"w-full p-2 border border-neutral-300 rounded-md focus:ring-primary-500 focus:border-primary-500\"\n placeholder=\"Digite a fonte de suporte\"\n />\n
\n )}\n
\n
\n \n
\n {showBackButton && (\n \n Voltar\n \n )}\n \n
\n \n Pular\n \n \n \n {isSubmitting ? (\n <>\n \n Processando\n \n ) : (\n 'Continuar'\n )}\n \n
\n
\n
\n );\n};\n\nexport default SocialSupportStep; ","import React, { useState, useEffect, useRef } from 'react';\nimport { motion, AnimatePresence } from 'framer-motion';\nimport { X } from 'lucide-react';\nimport { OnBoardingUserData } from '../../types';\nimport { \n updateOnBoardingUserData, \n markOnBoardingAsSeen, \n getPendingOnBoardingSteps,\n getOnBoardingUserData\n} from '../../infra/OnBoardingFacade';\nimport { useOnBoardingStore } from '../../stores/onBoardingStore';\n\n// Passos do OnBoarding\nimport PersonalInfoStep from './steps/PersonalInfoStep';\nimport DemographicsStep from './steps/DemographicsStep';\nimport MotivationStep from './steps/MotivationStep';\nimport CurrentMoodStep from './steps/CurrentMoodStep';\nimport DepressionScreeningStep from './steps/DepressionScreeningStep';\nimport AnxietyScreeningStep from './steps/AnxietyScreeningStep';\nimport MentalHealthHistoryStep from './steps/MentalHealthHistoryStep';\nimport CurrentTreatmentStep from './steps/CurrentTreatmentStep';\nimport SleepQualityStep from './steps/SleepQualityStep';\nimport SocialSupportStep from './steps/SocialSupportStep';\nimport RecoveryEmailStep from './steps/RecoveryEmailStep';\nimport CompletionStep from './steps/CompletionStep';\n\ninterface OnBoardingModalProps {\n isOpen: boolean;\n onClose: () => void;\n isRequired?: boolean; // Indica se o OnBoarding é obrigatório (não pode ser fechado)\n startWithPendingSteps?: boolean; // Indica se deve começar pelos passos pendentes\n isReview?: boolean; // Indica se o modal está sendo aberto para revisão de dados\n}\n\nconst steps = [\n { id: 'personal-info', component: PersonalInfoStep, isRequired: true },\n { id: 'recovery-email', component: RecoveryEmailStep, isRequired: true },\n { id: 'demographics', component: DemographicsStep, isRequired: false },\n { id: 'motivation', component: MotivationStep, isRequired: false },\n { id: 'current-mood', component: CurrentMoodStep, isRequired: true, skipInReview: true },\n { id: 'depression-screening', component: DepressionScreeningStep, isRequired: false },\n { id: 'anxiety-screening', component: AnxietyScreeningStep, isRequired: false },\n { id: 'mental-health-history', component: MentalHealthHistoryStep, isRequired: false },\n { id: 'current-treatment', component: CurrentTreatmentStep, isRequired: false },\n { id: 'sleep-quality', component: SleepQualityStep, isRequired: false },\n { id: 'social-support', component: SocialSupportStep, isRequired: false },\n { id: 'completion', component: CompletionStep, isRequired: false }\n];\n\n// Função para obter os passos filtrados para o modo de revisão\nconst getReviewSteps = () => {\n return steps.filter(step => !step.skipInReview);\n};\n\nconst OnBoardingModal: React.FC = ({ \n isOpen, \n onClose, \n isRequired = false,\n startWithPendingSteps = false,\n isReview = false\n}) => {\n const { currentStep: globalStepIndex, setCurrentStep } = useOnBoardingStore();\n const [userData, setUserData] = useState>({});\n const [isSubmitting, setIsSubmitting] = useState(false);\n const [pendingSteps, setPendingSteps] = useState([]);\n const [isInitialized, setIsInitialized] = useState(false);\n const [pendingStepsHistory, setPendingStepsHistory] = useState([]);\n const [isLoading, setIsLoading] = useState(false);\n \n // Referência para o container com scroll\n const scrollContainerRef = useRef(null);\n \n // Função para scrollar para o topo\n const scrollToTop = () => {\n if (scrollContainerRef.current) {\n scrollContainerRef.current.scrollTop = 0;\n }\n };\n \n // Determinar quais passos usar com base no modo\n const activeSteps = isReview ? getReviewSteps() : steps;\n \n const currentStep = activeSteps[globalStepIndex];\n const isLastStep = globalStepIndex === activeSteps.length - 1;\n const isCurrentStepRequired = currentStep?.isRequired || false;\n \n // Determinar se o botão de voltar deve ser exibido\n const showBackButton = startWithPendingSteps \n ? pendingStepsHistory.length > 1 \n : globalStepIndex > 0;\n \n // Efeito para marcar o OnBoarding como visto quando aberto\n useEffect(() => {\n if (isOpen) {\n markOnBoardingAsSeen().catch(console.error);\n }\n }, [isOpen]);\n \n // Efeito para carregar os dados existentes do usuário quando o modal for aberto para revisão\n useEffect(() => {\n if (isOpen && isReview && !isInitialized) {\n const loadUserData = async () => {\n try {\n setIsLoading(true);\n const existingUserData = await getOnBoardingUserData();\n if (existingUserData) {\n // Garante que todos os dados são carregados incluindo a opção de anonimato e recoveryEmail\n setUserData(existingUserData);\n \n // Log para depuração\n console.log('Dados do usuário carregados para revisão:', existingUserData);\n \n // Verificar especificamente se o recoveryEmail está presente\n if (!existingUserData.recoveryEmail) {\n console.warn('Email de recuperação não encontrado nos dados do usuário');\n }\n } else {\n console.warn('Nenhum dado de usuário encontrado para revisão');\n }\n } catch (error) {\n console.error('Erro ao carregar dados do usuário para revisão:', error);\n } finally {\n setIsLoading(false);\n }\n };\n \n loadUserData();\n }\n }, [isOpen, isReview, isInitialized]);\n \n // Efeito para inicializar o OnBoarding com os passos pendentes ou obrigatórios\n useEffect(() => {\n if (isOpen && !isInitialized) {\n const initializeOnBoarding = async () => {\n try {\n setIsLoading(true);\n \n // Se estiver no modo de revisão, não precisamos buscar passos pendentes\n if (isReview) {\n // No modo de revisão, começamos pelo primeiro passo (ou pelo passo definido no store)\n if (globalStepIndex === 0) {\n setCurrentStep(0);\n }\n } else {\n // Obter os passos pendentes\n const pendingStepsList = await getPendingOnBoardingSteps();\n setPendingSteps(pendingStepsList);\n \n // Se deve começar pelos passos pendentes e existem passos pendentes\n if (startWithPendingSteps && pendingStepsList.length > 0) {\n // Encontrar o índice do primeiro passo pendente\n const firstPendingStepIndex = steps.findIndex(step => \n pendingStepsList.includes(step.id) && \n (!isRequired || step.isRequired)\n );\n \n if (firstPendingStepIndex >= 0) {\n setCurrentStep(firstPendingStepIndex);\n // Inicializar o histórico de passos pendentes\n setPendingStepsHistory([firstPendingStepIndex]);\n }\n } \n // Se o OnBoarding for obrigatório, começar pelos passos obrigatórios\n else if (isRequired) {\n // Encontrar o primeiro passo obrigatório\n const requiredStepIndex = steps.findIndex(step => step.isRequired);\n if (requiredStepIndex > 0) {\n setCurrentStep(requiredStepIndex);\n }\n }\n }\n \n setIsInitialized(true);\n } catch (error) {\n console.error('Erro ao inicializar o OnBoarding:', error);\n setIsInitialized(true); // Marcar como inicializado mesmo em caso de erro\n } finally {\n setIsLoading(false);\n }\n };\n \n initializeOnBoarding();\n }\n }, [isOpen, isRequired, startWithPendingSteps, isInitialized, isReview, globalStepIndex, setCurrentStep]);\n \n const handleNext = async (stepData: Partial = {}) => {\n try {\n setIsSubmitting(true);\n \n // Atualizar os dados do usuário\n const updatedData = {\n ...userData,\n ...stepData\n };\n if (updatedData.isAnonymous) {\n delete updatedData.name;\n delete updatedData.age;\n delete updatedData.location;\n }\n setUserData(updatedData);\n \n // Salvar os dados no backend\n if (Object.keys(stepData).length > 0) {\n await updateOnBoardingUserData(currentStep.id, stepData);\n }\n \n // Se estamos nos passos pendentes e há mais passos pendentes, ir para o próximo pendente\n if (startWithPendingSteps && pendingSteps.length > 0) {\n // Remover o passo atual da lista de pendentes\n const updatedPendingSteps = pendingSteps.filter(step => step !== currentStep.id);\n setPendingSteps(updatedPendingSteps);\n \n // Se ainda há passos pendentes, encontrar o próximo\n if (updatedPendingSteps.length > 0) {\n const nextPendingStepIndex = steps.findIndex(step => \n updatedPendingSteps.includes(step.id)\n );\n \n if (nextPendingStepIndex >= 0) {\n setCurrentStep(nextPendingStepIndex);\n // Adicionar ao histórico de passos pendentes\n setPendingStepsHistory(prev => [...prev, nextPendingStepIndex]);\n // Scrollar para o topo\n scrollToTop();\n setIsSubmitting(false);\n return;\n }\n }\n \n // Se não há mais passos pendentes, ir para o passo de conclusão\n const completionStepIndex = steps.findIndex(step => step.id === 'completion');\n if (completionStepIndex >= 0) {\n setCurrentStep(completionStepIndex);\n // Adicionar ao histórico de passos pendentes\n setPendingStepsHistory(prev => [...prev, completionStepIndex]);\n // Scrollar para o topo\n scrollToTop();\n setIsSubmitting(false);\n return;\n }\n }\n \n // Comportamento padrão: avançar para o próximo passo\n if (!isLastStep) {\n setCurrentStep(globalStepIndex + 1);\n // Scrollar para o topo\n scrollToTop();\n } else {\n onClose();\n }\n } catch (error) {\n console.error('Erro ao avançar no OnBoarding:', error);\n } finally {\n setIsSubmitting(false);\n }\n };\n \n const handleSkip = () => {\n if (!isCurrentStepRequired) {\n // Se estamos nos passos pendentes e há mais passos pendentes, ir para o próximo pendente\n if (startWithPendingSteps && pendingSteps.length > 0) {\n // Remover o passo atual da lista de pendentes\n const updatedPendingSteps = pendingSteps.filter(step => step !== currentStep.id);\n setPendingSteps(updatedPendingSteps);\n \n // Se ainda há passos pendentes, encontrar o próximo\n if (updatedPendingSteps.length > 0) {\n const nextPendingStepIndex = steps.findIndex(step => \n updatedPendingSteps.includes(step.id)\n );\n \n if (nextPendingStepIndex >= 0) {\n setCurrentStep(nextPendingStepIndex);\n // Adicionar ao histórico de passos pendentes\n setPendingStepsHistory(prev => [...prev, nextPendingStepIndex]);\n // Scrollar para o topo\n scrollToTop();\n return;\n }\n }\n \n // Se não há mais passos pendentes, ir para o passo de conclusão\n const completionStepIndex = steps.findIndex(step => step.id === 'completion');\n if (completionStepIndex >= 0) {\n setCurrentStep(completionStepIndex);\n // Adicionar ao histórico de passos pendentes\n setPendingStepsHistory(prev => [...prev, completionStepIndex]);\n // Scrollar para o topo\n scrollToTop();\n return;\n }\n }\n \n // Comportamento padrão: avançar para o próximo passo\n if (!isLastStep) {\n setCurrentStep(globalStepIndex + 1);\n // Scrollar para o topo\n scrollToTop();\n } else {\n onClose();\n }\n }\n };\n \n const handleBack = () => {\n // Se estamos no modo de passos pendentes\n if (startWithPendingSteps && pendingStepsHistory.length > 1) {\n // Remover o passo atual do histórico e voltar para o passo anterior no histórico\n const newHistory = [...pendingStepsHistory];\n newHistory.pop(); // Remove o passo atual\n const previousStepIndex = newHistory[newHistory.length - 1]; // Obtém o passo anterior\n \n setCurrentStep(previousStepIndex);\n setPendingStepsHistory(newHistory);\n // Scrollar para o topo\n scrollToTop();\n } \n // Comportamento padrão: voltar para o passo anterior\n else if (globalStepIndex > 0) {\n setCurrentStep(globalStepIndex - 1);\n // Scrollar para o topo\n scrollToTop();\n }\n };\n \n const handleClose = () => {\n // Permitir fechar o modal em qualquer um destes casos:\n // 1. No modo de revisão (isReview = true)\n // 2. Quando não for obrigatório e for um passo não obrigatório\n // 3. Quando não for obrigatório e estiver no último passo\n if (isReview || (!isRequired && (!isCurrentStepRequired || isLastStep))) {\n onClose();\n }\n };\n \n // Resetar o passo atual quando o modal for fechado\n useEffect(() => {\n if (!isOpen) {\n // Não resetar imediatamente para evitar animações estranhas durante o fechamento\n const timer = setTimeout(() => {\n if (!isOpen) {\n setCurrentStep(0);\n }\n }, 300);\n \n return () => clearTimeout(timer);\n }\n }, [isOpen, setCurrentStep]);\n \n // Renderizar o componente do passo atual\n const StepComponent = currentStep?.component;\n \n return (\n \n {isOpen && (\n \n \n {/* Cabeçalho */}\n
\n
\n

\n {startWithPendingSteps ? \"Complete seu perfil\" : isReview ? \"Revisar Informações de Perfil\" : \"Bem-vindo ao Meu Humor\"}\n

\n

\n {startWithPendingSteps \n ? `Passo ${pendingSteps.indexOf(currentStep?.id) + 1} de ${pendingSteps.length}` \n : `Passo ${globalStepIndex + 1} de ${activeSteps.length}`\n }\n

\n
\n \n {/* Botão de fechar aparece em dois casos:\n 1. No modo de revisão (isReview = true), exibe sempre\n 2. Fora do modo de revisão, exibe apenas se não for obrigatório e o passo atual não for obrigatório */}\n {(isReview || (!isRequired && !isCurrentStepRequired)) && (\n \n \n \n )}\n
\n \n {/* Conteúdo do passo */}\n
\n {isLoading ? (\n
\n
\n

Carregando informações...

\n
\n ) : (\n StepComponent && isInitialized && (\n \n )\n )}\n
\n \n {/* Barra de progresso */}\n
\n
\n 0\n ? `${((pendingStepsHistory.length) / (pendingSteps.length + 1)) * 100}%`\n : `${((globalStepIndex + 1) / activeSteps.length) * 100}%` \n }}\n >
\n
\n
\n \n \n )}\n \n );\n};\n\nexport default OnBoardingModal; ","import React, { useState, useEffect } from 'react';\nimport { Mail, Shield, Info, Loader2 } from 'lucide-react';\nimport { StepProps } from './StepProps';\nimport { Button } from '../../ui/button';\n\nconst RecoveryEmailStep: React.FC = ({\n userData,\n onNext,\n onBack,\n onSkip,\n isSubmitting,\n showBackButton = true\n}) => {\n const [recoveryEmail, setRecoveryEmail] = useState(userData.recoveryEmail || '');\n const [isOptedOut, setIsOptedOut] = useState(false);\n const [errors, setErrors] = useState<{ recoveryEmail?: string }>({});\n \n // Inicializar o estado inicial com base nos dados do usuário\n useEffect(() => {\n if (userData) {\n if (userData.recoveryEmail) {\n setRecoveryEmail(userData.recoveryEmail);\n setIsOptedOut(false);\n } else {\n // Se não há email de recuperação, definir como opted-out\n setRecoveryEmail('');\n setIsOptedOut(true);\n }\n console.log('RecoveryEmailStep - Estado inicial:', { \n recoveryEmail: userData.recoveryEmail || 'não fornecido', \n isOptedOut: !userData.recoveryEmail \n });\n }\n }, [userData]);\n \n const handleSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n \n // Se o usuário optou por não fornecer email\n if (isOptedOut) {\n console.log('RecoveryEmailStep - Removendo email de recuperação');\n \n // Para garantir que o email seja removido, enviamos um objeto \n // com recoveryEmail: null explicitamente\n const dataToSend = {\n recoveryEmail: null as unknown as undefined\n };\n \n onNext(dataToSend);\n return;\n }\n \n // Validação de email apenas se não optou por opt-out\n const newErrors: { recoveryEmail?: string } = {};\n \n // Validar email de recuperação\n if (!recoveryEmail.trim()) {\n newErrors.recoveryEmail = 'Por favor, informe um email para recuperação';\n } else if (!/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(recoveryEmail)) {\n newErrors.recoveryEmail = 'Formato de email inválido';\n }\n \n if (Object.keys(newErrors).length > 0) {\n setErrors(newErrors);\n return;\n }\n \n // Enviar dados com o email informado\n console.log('RecoveryEmailStep - Enviando email de recuperação:', recoveryEmail.trim());\n onNext({ \n recoveryEmail: recoveryEmail.trim()\n });\n };\n \n // Alternar a opção de não fornecer email\n const toggleOptOut = () => {\n const newOptedOut = !isOptedOut;\n console.log('RecoveryEmailStep - Alterando opted-out para:', newOptedOut);\n \n setIsOptedOut(newOptedOut);\n \n if (newOptedOut) {\n // Se optou por não fornecer, limpa o campo de email\n setRecoveryEmail('');\n setErrors({});\n console.log('RecoveryEmailStep - Campo de email limpo');\n } else if (userData.recoveryEmail) {\n // Se desmarcou a opção e havia um email salvo, restaura o valor original\n setRecoveryEmail(userData.recoveryEmail);\n console.log('RecoveryEmailStep - Email restaurado:', userData.recoveryEmail);\n }\n };\n \n return (\n
\n
\n

\n Email de Recuperação\n

\n

\n Um email para recuperar sua conta caso necessário\n

\n
\n \n
\n {/* Explicação do email de recuperação */}\n
\n
\n
\n \n
\n
\n

Por que fornecer um email?

\n

\n O email de recuperação é usado apenas para que você possa recuperar sua conta caso \n esqueça sua senha ou precise redefinir o acesso. Não usamos para enviar marketing.\n

\n
\n
\n
\n \n {/* Opção de não fornecer (colocada antes do campo para melhor experiência) */}\n
\n
\n \n \n
\n \n {isOptedOut && userData.recoveryEmail && (\n
\n
\n \n

\n Aviso: Você já possui um email de recuperação cadastrado. \n Se prosseguir, este email será removido e você perderá a capacidade de recuperar \n sua conta em caso de perda de senha.\n

\n
\n
\n )}\n \n {isOptedOut && (\n
\n
\n \n

\n Atenção: Sem um email de recuperação, você não poderá recuperar sua \n conta caso esqueça sua senha. Recomendamos fortemente fornecer um email.\n

\n
\n
\n )}\n
\n \n {/* Campo de email - visível apenas se não optou por não fornecer */}\n {!isOptedOut && (\n
\n \n
\n
\n \n
\n {\n setRecoveryEmail(e.target.value);\n if (errors.recoveryEmail) setErrors({});\n }}\n className={`pl-10 block w-full rounded-md border-neutral-300 shadow-sm focus:border-primary-500 focus:ring-primary-500 sm:text-sm ${\n errors.recoveryEmail ? 'border-red-300 focus:border-red-500 focus:ring-red-500' : ''\n }`}\n placeholder=\"seu-email@exemplo.com\"\n aria-describedby={errors.recoveryEmail ? \"recovery-email-error\" : undefined}\n />\n
\n {errors.recoveryEmail && (\n

{errors.recoveryEmail}

\n )}\n
\n )}\n \n {/* Política de privacidade */}\n
\n

\n \n \n Compromisso com sua privacidade\n \n Seu email nunca será compartilhado com terceiros. Ele será usado exclusivamente para \n recuperação de conta e comunicações essenciais relacionadas à segurança.\n

\n
\n \n {/* Botões */}\n
\n {showBackButton && (\n \n Voltar\n \n )}\n \n {!isOptedOut && (\n \n Pular\n \n )}\n \n \n {isSubmitting ? (\n <>\n \n Processando...\n \n ) : (\n isOptedOut && userData.recoveryEmail ? 'Remover Email' : 'Continuar'\n )}\n \n
\n \n
\n );\n};\n\nexport default RecoveryEmailStep; ","import React, { useState, useEffect } from 'react';\nimport { CheckCircle, ArrowRight, Loader2 } from 'lucide-react';\nimport { motion } from 'framer-motion';\nimport { StepProps } from './StepProps';\nimport { getOnBoardingUserData } from '../../../infra/OnBoardingFacade';\nimport { OnBoardingUserData } from '../../../types';\nimport { useNavigate } from 'react-router-dom';\n\nconst CompletionStep: React.FC = ({\n userData: propUserData,\n onNext,\n isSubmitting\n}) => {\n const [isLoading, setIsLoading] = useState(false);\n const [completeUserData, setCompleteUserData] = useState>(propUserData);\n const navigate = useNavigate();\n\n // Buscar dados completos do usuário ao carregar o componente\n useEffect(() => {\n const fetchCompleteUserData = async () => {\n try {\n setIsLoading(true);\n const data = await getOnBoardingUserData();\n if (data) {\n // Mesclar os dados recebidos via props com os dados completos do usuário\n setCompleteUserData({\n ...data,\n ...propUserData // Priorizar os dados mais recentes das props\n });\n }\n } catch (error) {\n console.error('Erro ao buscar dados completos do usuário:', error);\n } finally {\n setIsLoading(false);\n }\n };\n\n fetchCompleteUserData();\n }, [propUserData]);\n\n // Função para formatar a qualidade do sono\n const getSleepQualityLabel = (quality: string | undefined) => {\n if (!quality) return 'Não informado';\n \n const labels: Record = {\n 'ruim': 'Ruim',\n 'razoavel': 'Razoável',\n 'boa': 'Boa',\n 'excelente': 'Excelente'\n };\n \n return labels[quality] || quality;\n };\n \n // Função para formatar o gênero\n const getGenderLabel = (gender: string | undefined) => {\n if (!gender) return 'Não informado';\n \n const labels: Record = {\n 'masculino': 'Masculino',\n 'feminino': 'Feminino',\n 'nao-binario': 'Não-binário',\n 'prefiro-nao-informar': 'Prefiro não informar'\n };\n \n return labels[gender] || gender;\n };\n \n // Função para formatar a motivação\n const getMotivationLabel = (motivation: string | undefined) => {\n if (!motivation) return 'Não informado';\n \n const labels: Record = {\n 'melhorar-humor': 'Melhorar meu humor',\n 'gerenciar-estresse': 'Gerenciar estresse',\n 'acompanhar-emocoes': 'Acompanhar emoções',\n 'recomendacao-profissional': 'Recomendação profissional',\n 'curiosidade': 'Curiosidade',\n 'outro': 'Outro motivo'\n };\n \n return labels[motivation] || motivation;\n };\n\n const handleStartUsingApp = () => {\n // Fechar o modal de onboarding\n onNext({});\n // Remover os parâmetros de query da URL para evitar loops de carregamento\n navigate('/home');\n };\n\n if (isLoading) {\n return (\n
\n \n

Carregando informações...

\n
\n );\n }\n \n return (\n
\n
\n \n \n \n \n

\n Configuração concluída!\n

\n

\n Obrigado por compartilhar suas informações. Estamos prontos para ajudar você a acompanhar e melhorar seu bem-estar emocional.\n

\n
\n \n
\n

Resumo das informações

\n \n
\n {/* Informações pessoais */}\n
\n
Informações pessoais
\n
\n
\n Nome\n {completeUserData.name || 'Não informado'}\n
\n \n
\n Telefone\n {completeUserData.phone || 'Não informado'}\n
\n
\n
\n \n {/* Informações demográficas */}\n {(completeUserData.age || completeUserData.gender || completeUserData.location) && (\n
\n
Informações demográficas
\n
\n {completeUserData.age && (\n
\n Idade\n {completeUserData.age} anos\n
\n )}\n \n {completeUserData.gender && (\n
\n Gênero\n {getGenderLabel(completeUserData.gender)}\n
\n )}\n \n {completeUserData.location && (\n
\n Localização\n {completeUserData.location}\n
\n )}\n
\n
\n )}\n \n {/* Motivação */}\n {(completeUserData.motivation || completeUserData.motivationOther) && (\n
\n
Motivação
\n
\n {completeUserData.motivation && (\n
\n Motivação principal\n {getMotivationLabel(completeUserData.motivation)}\n
\n )}\n \n {completeUserData.motivationOther && (\n
\n Detalhes da motivação\n {completeUserData.motivationOther}\n
\n )}\n
\n
\n )}\n \n {/* Saúde mental */}\n {(completeUserData.hasMentalHealthCondition || \n completeUserData.depressionScore !== undefined || \n completeUserData.anxietyScore !== undefined) && (\n
\n
Saúde mental
\n
\n {completeUserData.depressionScore !== undefined && (\n
\n Pontuação de depressão (PHQ-9)\n {completeUserData.depressionScore}\n
\n )}\n \n {completeUserData.anxietyScore !== undefined && (\n
\n Pontuação de ansiedade (GAD-7)\n {completeUserData.anxietyScore}\n
\n )}\n \n {completeUserData.hasMentalHealthCondition && completeUserData.mentalHealthConditionDetails && (\n
\n Condições de saúde mental\n {completeUserData.mentalHealthConditionDetails}\n
\n )}\n
\n
\n )}\n \n {/* Tratamento atual */}\n {completeUserData.isReceivingTreatment && (\n
\n
Tratamento atual
\n
\n {completeUserData.treatmentDetails && (\n
\n Tipos de tratamento\n {completeUserData.treatmentDetails}\n
\n )}\n \n {completeUserData.psychiatricMedications && (\n
\n Medicamentos psiquiátricos\n {completeUserData.psychiatricMedications}\n
\n )}\n
\n
\n )}\n \n {/* Qualidade do sono */}\n {(completeUserData.sleepQuality || completeUserData.sleepHoursPerNight || completeUserData.sleepIssues) && (\n
\n
Qualidade do sono
\n
\n {completeUserData.sleepQuality && (\n
\n Qualidade do sono\n {getSleepQualityLabel(completeUserData.sleepQuality)}\n
\n )}\n \n {completeUserData.sleepHoursPerNight && (\n
\n Horas de sono por noite\n {completeUserData.sleepHoursPerNight} horas\n
\n )}\n \n {completeUserData.sleepIssues && completeUserData.sleepIssues.length > 0 && (\n
\n Problemas de sono\n {completeUserData.sleepIssues.join(', ')}\n
\n )}\n
\n
\n )}\n \n {/* Suporte social */}\n {completeUserData.hasSupportSystem && completeUserData.supportSystemDetails && (\n
\n
Suporte social
\n
\n Fontes de suporte\n {completeUserData.supportSystemDetails.join(', ')}\n
\n
\n )}\n \n {/* Objetivos */}\n {completeUserData.goals && completeUserData.goals.length > 0 && (\n
\n
Objetivos
\n
\n {completeUserData.goals.join(', ')}\n
\n
\n )}\n \n {/* Informações adicionais */}\n {completeUserData.additionalInfo && (\n
\n
Informações adicionais
\n

{completeUserData.additionalInfo}

\n
\n )}\n
\n
\n \n
\n \n Começar a usar o aplicativo\n \n \n
\n
\n );\n};\n\nexport default CompletionStep; ","import React, { useState, useEffect, useRef } from 'react';\nimport { useNavigate } from 'react-router-dom';\nimport { X, MessageCircle, Brain } from 'lucide-react';\nimport { useChat } from '../../contexts/ChatContext';\n\n/**\n * Botão flutuante para acessar o assistente de IA\n * Posicionado no canto da tela, adaptado para desktop e mobile\n */\nconst FloatingChatButton: React.FC = () => {\n const { openChat } = useChat();\n const [showTooltip, setShowTooltip] = useState(false);\n const [showOptions, setShowOptions] = useState(false);\n const [tooltipDismissed, setTooltipDismissed] = useState(false);\n const tooltipTimeout = useRef | null>(null);\n const pressTimer = useRef | null>(null);\n const navigate = useNavigate();\n \n // Verificar se é a primeira vez que o usuário vê o botão\n useEffect(() => {\n const hasSeenChatTooltip = localStorage.getItem('hasSeenChatTooltip') === 'true';\n \n if (!hasSeenChatTooltip && !tooltipDismissed) {\n // Mostrar o tooltip após 2 segundos\n tooltipTimeout.current = setTimeout(() => {\n setShowTooltip(true);\n // Ocultar o tooltip após 8 segundos\n tooltipTimeout.current = setTimeout(() => {\n setShowTooltip(false);\n localStorage.setItem('hasSeenChatTooltip', 'true');\n }, 8000);\n }, 2000);\n }\n \n return () => {\n if (tooltipTimeout.current) {\n clearTimeout(tooltipTimeout.current);\n }\n };\n }, [tooltipDismissed]);\n \n const handleTooltipDismiss = () => {\n setShowTooltip(false);\n setTooltipDismissed(true);\n localStorage.setItem('hasSeenChatTooltip', 'true');\n \n if (tooltipTimeout.current) {\n clearTimeout(tooltipTimeout.current);\n }\n };\n \n const handleButtonPress = () => {\n // Iniciar timer quando o botão é pressionado\n pressTimer.current = setTimeout(() => {\n setShowOptions(true);\n }, 600); // 600ms para considerar pressionar e segurar\n };\n \n const handleButtonRelease = () => {\n // Limpar timer se o botão for solto antes do tempo\n if (pressTimer.current) {\n clearTimeout(pressTimer.current);\n }\n };\n \n const handleButtonClick = () => {\n // Se as opções não estiverem mostrando, abre o chat\n // Se estiverem, apenas fecha as opções\n if (!showOptions) {\n openChat();\n } else {\n setShowOptions(false);\n }\n };\n \n const handleViewSessions = (e: React.MouseEvent) => {\n e.stopPropagation();\n setShowOptions(false);\n navigate('/chat/sessions');\n };\n \n return (\n
\n {/* Tooltip para novos usuários */}\n {showTooltip && (\n
\n \n

\n Assistente IA\n

\n

\n Clique aqui para conversar com o assistente. Ele pode ajudar a analisar seu humor e dar sugestões personalizadas.\n

\n
\n )}\n\n {/* Menu de opções quando pressionar e segurar */}\n {showOptions && (\n
\n \n
\n )}\n\n {/* Botão flutuante */}\n \n
\n \n {/* Pulsação ao redor do ícone */}\n \n
\n \n
\n );\n};\n\nexport default FloatingChatButton; ","/* eslint-disable @typescript-eslint/no-unused-vars */\nimport React, { useEffect, useState, useRef } from 'react';\nimport { motion } from 'framer-motion';\nimport { Brain, Calendar, Loader2, Plus, Home } from 'lucide-react';\nimport MoodChart from '../components/MoodChart';\nimport WeeklySummary from '../components/WeeklySummary';\nimport NotificationMock from '../components/NotificationMock';\nimport NotificationPermission from '../components/NotificationPermission';\nimport QuickActions from '../components/QuickActions';\nimport OnBoardingReminder from '../components/OnBoardingReminder';\nimport OnBoardingModal from '../components/onboarding/OnBoardingModal';\nimport FloatingChatButton from '../components/ChatAI/FloatingChatButton';\nimport { getEntriesForLastDays, hasConcerningPattern } from '../infra/DatabaseFacade';\nimport { isRequiredOnBoardingComplete } from '../infra/OnBoardingFacade';\nimport { Link, useLocation } from 'react-router-dom';\nimport { MoodEntry } from '../types';\nimport { useOnBoardingStore } from '../stores/onBoardingStore';\nimport { useAuth } from '../contexts/AuthContext';\n\n// Hook personalizado para buscar registros de humor\nconst useMoodEntries = () => {\n const [entries, setEntries] = useState([]);\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState(null);\n const [lastUpdate, setLastUpdate] = useState(0);\n const dataLoadedRef = useRef(false);\n\n // Função para forçar uma atualização quando necessário\n const refreshEntries = () => {\n dataLoadedRef.current = false; // Resetar a flag para permitir nova busca\n setLastUpdate(Date.now());\n };\n\n useEffect(() => {\n // Evitar múltiplas execuções se já carregamos os dados\n // Exceto quando lastUpdate muda (refreshEntries foi chamado)\n if (dataLoadedRef.current && lastUpdate === 0) return;\n \n const fetchEntries = async () => {\n setLoading(true);\n setError(null);\n \n try {\n // Marcar que já iniciamos o carregamento\n dataLoadedRef.current = true;\n \n // Usar nosso wrapper seguro para fazer a solicitação\n const loadedEntries = await getEntriesForLastDays(7);\n setEntries(loadedEntries || []);\n } catch (err) {\n console.error('Erro ao buscar registros de humor:', err);\n setError('Não foi possível carregar seus registros de humor. Por favor, tente novamente mais tarde.');\n } finally {\n setLoading(false);\n }\n };\n\n fetchEntries();\n // Adicionamos lastUpdate como dependência para permitir atualizações sob demanda\n }, [lastUpdate]);\n\n return { entries, loading, error, refreshEntries };\n};\n\nconst HomePage: React.FC = () => {\n const [showPsychologistRecommendation, setShowPsychologistRecommendation] = useState(false);\n const [loading, setLoading] = useState(true);\n const concerningPatternCheckedRef = useRef(false);\n const location = useLocation();\n const { user } = useAuth();\n \n // Usando a store do Zustand para gerenciar o estado do OnBoarding\n const { \n isModalOpen: showOnBoardingModal, \n isRequired: isOnBoardingRequired,\n startWithPendingSteps,\n setModalOpen, \n setRequired, \n setStartWithPendingSteps,\n resetState\n } = useOnBoardingStore();\n \n const { entries, loading: loadingEntries, error, refreshEntries } = useMoodEntries();\n \n // Verificar se há informações de state do React Router para atualização\n useEffect(() => {\n // Verificar state do React Router\n const state = location.state as { refreshData?: boolean; source?: string } | null;\n const shouldRefresh = !!state?.refreshData;\n const source = state?.source;\n \n if (shouldRefresh) {\n console.log(`Atualizando dados do gráfico de humor. Fonte: ${source || 'não especificada'}`);\n refreshEntries();\n \n // Limpar o state para evitar atualizações desnecessárias em futuros recarregamentos\n window.history.replaceState(null, '', location.pathname);\n }\n \n // Manter compatibilidade com parâmetros de query (legado)\n const queryParams = new URLSearchParams(location.search);\n const shouldRefreshFromQuery = queryParams.get('refresh') === 'true';\n const sourceFromQuery = queryParams.get('source');\n \n if (shouldRefreshFromQuery) {\n console.log(`Atualizando dados do gráfico de humor a partir de parâmetros de query. Fonte: ${sourceFromQuery || 'não especificada'}`);\n refreshEntries();\n \n // Limpar os parâmetros de consulta da URL\n if (window.history.replaceState) {\n const newUrl = window.location.pathname;\n window.history.replaceState({path: newUrl}, '', newUrl);\n }\n }\n }, [location, refreshEntries]);\n \n useEffect(() => {\n // Evitar múltiplas execuções se já verificamos os padrões preocupantes\n if (concerningPatternCheckedRef.current) return;\n \n const init = async () => {\n try {\n // Marcar que já iniciamos a verificação\n concerningPatternCheckedRef.current = true;\n \n // Check for concerning patterns\n const hasConcerning = await hasConcerningPattern();\n setShowPsychologistRecommendation(hasConcerning);\n \n // Verificar se o OnBoarding obrigatório foi concluído\n const requiredOnBoardingComplete = await isRequiredOnBoardingComplete();\n setRequired(!requiredOnBoardingComplete);\n \n // Se o OnBoarding obrigatório não foi concluído, mostrar o modal automaticamente\n if (!requiredOnBoardingComplete) {\n setStartWithPendingSteps(false); // Começar do início para OnBoarding obrigatório\n setModalOpen(true);\n }\n } catch (error) {\n console.error('Erro ao inicializar a página:', error);\n } finally {\n setLoading(false);\n }\n };\n \n init();\n }, [setModalOpen, setRequired, setStartWithPendingSteps]);\n\n const handleOpenOnBoarding = () => {\n setStartWithPendingSteps(true); // Começar pelos passos pendentes quando clica em \"Completar agora\"\n setModalOpen(true);\n };\n \n const handleCloseOnBoarding = () => {\n setModalOpen(false);\n setStartWithPendingSteps(false); // Resetar o estado\n \n // Atualizar o gráfico ao fechar o OnBoarding (em caso de alterações)\n refreshEntries();\n };\n\n return (\n <>\n {/* Container principal com largura máxima para desktop */}\n
\n {/* Cabeçalho com adaptação para telas maiores */}\n
\n

Página Inicial

\n
\n \n
\n
\n \n \n {/* Coluna principal para conteúdo em telas maiores */}\n
\n \n \n {/* OnBoarding Reminder - só aparece se não for obrigatório */}\n {!isOnBoardingRequired && (\n \n )}\n \n {loadingEntries ? (\n
\n
\n \n

Carregando dados...

\n
\n
\n ) : entries && entries.length > 0 ? (\n <>\n
\n

Seu humor na semana

\n {/* Passa as entradas e loading state como props */}\n
\n \n
\n
\n \n {/* Passa as entradas e loading state como props */}\n \n \n ) : (\n
\n

Sem registros de humor

\n

\n Você ainda não registrou seu humor esta semana. \n Comece a registrar para ver seu progresso aqui.\n

\n \n Registrar agora\n \n
\n )}\n \n {showPsychologistRecommendation && (\n \n

\n Notamos um padrão em seus registros\n

\n

\n Você tem registrado humor baixo por vários dias consecutivos. Conversar com um profissional pode ajudar.\n

\n \n Ver psicólogos recomendados\n \n \n )}\n
\n \n {/* Coluna lateral para ações em telas maiores e mobile */}\n
\n \n
\n \n
\n \n {/* Modal de OnBoarding */}\n {showOnBoardingModal && (\n \n )}\n \n \n \n {/* FloatingChatButton */}\n {user && }\n \n );\n};\n\nexport default HomePage;","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","// DEFLATE is a complex format; to read this code, you should probably check the RFC first:\n// https://tools.ietf.org/html/rfc1951\n// You may also wish to take a look at the guide I made about this program:\n// https://gist.github.com/101arrowz/253f31eb5abc3d9275ab943003ffecad\n// Some of the following code is similar to that of UZIP.js:\n// https://github.com/photopea/UZIP.js\n// However, the vast majority of the codebase has diverged from UZIP.js to increase performance and reduce bundle size.\n// Sometimes 0 will appear where -1 would be more appropriate. This is because using a uint\n// is better for memory in most engines (I *think*).\nvar ch2 = {};\nvar wk = (function (c, id, msg, transfer, cb) {\n var w = new Worker(ch2[id] || (ch2[id] = URL.createObjectURL(new Blob([\n c + ';addEventListener(\"error\",function(e){e=e.error;postMessage({$e$:[e.message,e.code,e.stack]})})'\n ], { type: 'text/javascript' }))));\n w.onmessage = function (e) {\n var d = e.data, ed = d.$e$;\n if (ed) {\n var err = new Error(ed[0]);\n err['code'] = ed[1];\n err.stack = ed[2];\n cb(err, null);\n }\n else\n cb(null, d);\n };\n w.postMessage(msg, transfer);\n return w;\n});\n\n// aliases for shorter compressed code (most minifers don't do this)\nvar u8 = Uint8Array, u16 = Uint16Array, i32 = Int32Array;\n// fixed length extra bits\nvar fleb = new u8([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, /* unused */ 0, 0, /* impossible */ 0]);\n// fixed distance extra bits\nvar fdeb = new u8([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, /* unused */ 0, 0]);\n// code length index map\nvar clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);\n// get base, reverse index map from extra bits\nvar freb = function (eb, start) {\n var b = new u16(31);\n for (var i = 0; i < 31; ++i) {\n b[i] = start += 1 << eb[i - 1];\n }\n // numbers here are at max 18 bits\n var r = new i32(b[30]);\n for (var i = 1; i < 30; ++i) {\n for (var j = b[i]; j < b[i + 1]; ++j) {\n r[j] = ((j - b[i]) << 5) | i;\n }\n }\n return { b: b, r: r };\n};\nvar _a = freb(fleb, 2), fl = _a.b, revfl = _a.r;\n// we can ignore the fact that the other numbers are wrong; they never happen anyway\nfl[28] = 258, revfl[258] = 28;\nvar _b = freb(fdeb, 0), fd = _b.b, revfd = _b.r;\n// map of value to reverse (assuming 16 bits)\nvar rev = new u16(32768);\nfor (var i = 0; i < 32768; ++i) {\n // reverse table algorithm from SO\n var x = ((i & 0xAAAA) >> 1) | ((i & 0x5555) << 1);\n x = ((x & 0xCCCC) >> 2) | ((x & 0x3333) << 2);\n x = ((x & 0xF0F0) >> 4) | ((x & 0x0F0F) << 4);\n rev[i] = (((x & 0xFF00) >> 8) | ((x & 0x00FF) << 8)) >> 1;\n}\n// create huffman tree from u8 \"map\": index -> code length for code index\n// mb (max bits) must be at most 15\n// TODO: optimize/split up?\nvar hMap = (function (cd, mb, r) {\n var s = cd.length;\n // index\n var i = 0;\n // u16 \"map\": index -> # of codes with bit length = index\n var l = new u16(mb);\n // length of cd must be 288 (total # of codes)\n for (; i < s; ++i) {\n if (cd[i])\n ++l[cd[i] - 1];\n }\n // u16 \"map\": index -> minimum code for bit length = index\n var le = new u16(mb);\n for (i = 1; i < mb; ++i) {\n le[i] = (le[i - 1] + l[i - 1]) << 1;\n }\n var co;\n if (r) {\n // u16 \"map\": index -> number of actual bits, symbol for code\n co = new u16(1 << mb);\n // bits to remove for reverser\n var rvb = 15 - mb;\n for (i = 0; i < s; ++i) {\n // ignore 0 lengths\n if (cd[i]) {\n // num encoding both symbol and bits read\n var sv = (i << 4) | cd[i];\n // free bits\n var r_1 = mb - cd[i];\n // start value\n var v = le[cd[i] - 1]++ << r_1;\n // m is end value\n for (var m = v | ((1 << r_1) - 1); v <= m; ++v) {\n // every 16 bit value starting with the code yields the same result\n co[rev[v] >> rvb] = sv;\n }\n }\n }\n }\n else {\n co = new u16(s);\n for (i = 0; i < s; ++i) {\n if (cd[i]) {\n co[i] = rev[le[cd[i] - 1]++] >> (15 - cd[i]);\n }\n }\n }\n return co;\n});\n// fixed length tree\nvar flt = new u8(288);\nfor (var i = 0; i < 144; ++i)\n flt[i] = 8;\nfor (var i = 144; i < 256; ++i)\n flt[i] = 9;\nfor (var i = 256; i < 280; ++i)\n flt[i] = 7;\nfor (var i = 280; i < 288; ++i)\n flt[i] = 8;\n// fixed distance tree\nvar fdt = new u8(32);\nfor (var i = 0; i < 32; ++i)\n fdt[i] = 5;\n// fixed length map\nvar flm = /*#__PURE__*/ hMap(flt, 9, 0), flrm = /*#__PURE__*/ hMap(flt, 9, 1);\n// fixed distance map\nvar fdm = /*#__PURE__*/ hMap(fdt, 5, 0), fdrm = /*#__PURE__*/ hMap(fdt, 5, 1);\n// find max of array\nvar max = function (a) {\n var m = a[0];\n for (var i = 1; i < a.length; ++i) {\n if (a[i] > m)\n m = a[i];\n }\n return m;\n};\n// read d, starting at bit p and mask with m\nvar bits = function (d, p, m) {\n var o = (p / 8) | 0;\n return ((d[o] | (d[o + 1] << 8)) >> (p & 7)) & m;\n};\n// read d, starting at bit p continuing for at least 16 bits\nvar bits16 = function (d, p) {\n var o = (p / 8) | 0;\n return ((d[o] | (d[o + 1] << 8) | (d[o + 2] << 16)) >> (p & 7));\n};\n// get end of byte\nvar shft = function (p) { return ((p + 7) / 8) | 0; };\n// typed array slice - allows garbage collector to free original reference,\n// while being more compatible than .slice\nvar slc = function (v, s, e) {\n if (s == null || s < 0)\n s = 0;\n if (e == null || e > v.length)\n e = v.length;\n // can't use .constructor in case user-supplied\n return new u8(v.subarray(s, e));\n};\n/**\n * Codes for errors generated within this library\n */\nexport var FlateErrorCode = {\n UnexpectedEOF: 0,\n InvalidBlockType: 1,\n InvalidLengthLiteral: 2,\n InvalidDistance: 3,\n StreamFinished: 4,\n NoStreamHandler: 5,\n InvalidHeader: 6,\n NoCallback: 7,\n InvalidUTF8: 8,\n ExtraFieldTooLong: 9,\n InvalidDate: 10,\n FilenameTooLong: 11,\n StreamFinishing: 12,\n InvalidZipData: 13,\n UnknownCompressionMethod: 14\n};\n// error codes\nvar ec = [\n 'unexpected EOF',\n 'invalid block type',\n 'invalid length/literal',\n 'invalid distance',\n 'stream finished',\n 'no stream handler',\n ,\n 'no callback',\n 'invalid UTF-8 data',\n 'extra field too long',\n 'date not in range 1980-2099',\n 'filename too long',\n 'stream finishing',\n 'invalid zip data'\n // determined by unknown compression method\n];\n;\nvar err = function (ind, msg, nt) {\n var e = new Error(msg || ec[ind]);\n e.code = ind;\n if (Error.captureStackTrace)\n Error.captureStackTrace(e, err);\n if (!nt)\n throw e;\n return e;\n};\n// expands raw DEFLATE data\nvar inflt = function (dat, st, buf, dict) {\n // source length dict length\n var sl = dat.length, dl = dict ? dict.length : 0;\n if (!sl || st.f && !st.l)\n return buf || new u8(0);\n var noBuf = !buf;\n // have to estimate size\n var resize = noBuf || st.i != 2;\n // no state\n var noSt = st.i;\n // Assumes roughly 33% compression ratio average\n if (noBuf)\n buf = new u8(sl * 3);\n // ensure buffer can fit at least l elements\n var cbuf = function (l) {\n var bl = buf.length;\n // need to increase size to fit\n if (l > bl) {\n // Double or set to necessary, whichever is greater\n var nbuf = new u8(Math.max(bl * 2, l));\n nbuf.set(buf);\n buf = nbuf;\n }\n };\n // last chunk bitpos bytes\n var final = st.f || 0, pos = st.p || 0, bt = st.b || 0, lm = st.l, dm = st.d, lbt = st.m, dbt = st.n;\n // total bits\n var tbts = sl * 8;\n do {\n if (!lm) {\n // BFINAL - this is only 1 when last chunk is next\n final = bits(dat, pos, 1);\n // type: 0 = no compression, 1 = fixed huffman, 2 = dynamic huffman\n var type = bits(dat, pos + 1, 3);\n pos += 3;\n if (!type) {\n // go to end of byte boundary\n var s = shft(pos) + 4, l = dat[s - 4] | (dat[s - 3] << 8), t = s + l;\n if (t > sl) {\n if (noSt)\n err(0);\n break;\n }\n // ensure size\n if (resize)\n cbuf(bt + l);\n // Copy over uncompressed data\n buf.set(dat.subarray(s, t), bt);\n // Get new bitpos, update byte count\n st.b = bt += l, st.p = pos = t * 8, st.f = final;\n continue;\n }\n else if (type == 1)\n lm = flrm, dm = fdrm, lbt = 9, dbt = 5;\n else if (type == 2) {\n // literal lengths\n var hLit = bits(dat, pos, 31) + 257, hcLen = bits(dat, pos + 10, 15) + 4;\n var tl = hLit + bits(dat, pos + 5, 31) + 1;\n pos += 14;\n // length+distance tree\n var ldt = new u8(tl);\n // code length tree\n var clt = new u8(19);\n for (var i = 0; i < hcLen; ++i) {\n // use index map to get real code\n clt[clim[i]] = bits(dat, pos + i * 3, 7);\n }\n pos += hcLen * 3;\n // code lengths bits\n var clb = max(clt), clbmsk = (1 << clb) - 1;\n // code lengths map\n var clm = hMap(clt, clb, 1);\n for (var i = 0; i < tl;) {\n var r = clm[bits(dat, pos, clbmsk)];\n // bits read\n pos += r & 15;\n // symbol\n var s = r >> 4;\n // code length to copy\n if (s < 16) {\n ldt[i++] = s;\n }\n else {\n // copy count\n var c = 0, n = 0;\n if (s == 16)\n n = 3 + bits(dat, pos, 3), pos += 2, c = ldt[i - 1];\n else if (s == 17)\n n = 3 + bits(dat, pos, 7), pos += 3;\n else if (s == 18)\n n = 11 + bits(dat, pos, 127), pos += 7;\n while (n--)\n ldt[i++] = c;\n }\n }\n // length tree distance tree\n var lt = ldt.subarray(0, hLit), dt = ldt.subarray(hLit);\n // max length bits\n lbt = max(lt);\n // max dist bits\n dbt = max(dt);\n lm = hMap(lt, lbt, 1);\n dm = hMap(dt, dbt, 1);\n }\n else\n err(1);\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n }\n // Make sure the buffer can hold this + the largest possible addition\n // Maximum chunk size (practically, theoretically infinite) is 2^17\n if (resize)\n cbuf(bt + 131072);\n var lms = (1 << lbt) - 1, dms = (1 << dbt) - 1;\n var lpos = pos;\n for (;; lpos = pos) {\n // bits read, code\n var c = lm[bits16(dat, pos) & lms], sym = c >> 4;\n pos += c & 15;\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n if (!c)\n err(2);\n if (sym < 256)\n buf[bt++] = sym;\n else if (sym == 256) {\n lpos = pos, lm = null;\n break;\n }\n else {\n var add = sym - 254;\n // no extra bits needed if less\n if (sym > 264) {\n // index\n var i = sym - 257, b = fleb[i];\n add = bits(dat, pos, (1 << b) - 1) + fl[i];\n pos += b;\n }\n // dist\n var d = dm[bits16(dat, pos) & dms], dsym = d >> 4;\n if (!d)\n err(3);\n pos += d & 15;\n var dt = fd[dsym];\n if (dsym > 3) {\n var b = fdeb[dsym];\n dt += bits16(dat, pos) & (1 << b) - 1, pos += b;\n }\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n if (resize)\n cbuf(bt + 131072);\n var end = bt + add;\n if (bt < dt) {\n var shift = dl - dt, dend = Math.min(dt, end);\n if (shift + bt < 0)\n err(3);\n for (; bt < dend; ++bt)\n buf[bt] = dict[shift + bt];\n }\n for (; bt < end; ++bt)\n buf[bt] = buf[bt - dt];\n }\n }\n st.l = lm, st.p = lpos, st.b = bt, st.f = final;\n if (lm)\n final = 1, st.m = lbt, st.d = dm, st.n = dbt;\n } while (!final);\n // don't reallocate for streams or user buffers\n return bt != buf.length && noBuf ? slc(buf, 0, bt) : buf.subarray(0, bt);\n};\n// starting at p, write the minimum number of bits that can hold v to d\nvar wbits = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) | 0;\n d[o] |= v;\n d[o + 1] |= v >> 8;\n};\n// starting at p, write the minimum number of bits (>8) that can hold v to d\nvar wbits16 = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) | 0;\n d[o] |= v;\n d[o + 1] |= v >> 8;\n d[o + 2] |= v >> 16;\n};\n// creates code lengths from a frequency table\nvar hTree = function (d, mb) {\n // Need extra info to make a tree\n var t = [];\n for (var i = 0; i < d.length; ++i) {\n if (d[i])\n t.push({ s: i, f: d[i] });\n }\n var s = t.length;\n var t2 = t.slice();\n if (!s)\n return { t: et, l: 0 };\n if (s == 1) {\n var v = new u8(t[0].s + 1);\n v[t[0].s] = 1;\n return { t: v, l: 1 };\n }\n t.sort(function (a, b) { return a.f - b.f; });\n // after i2 reaches last ind, will be stopped\n // freq must be greater than largest possible number of symbols\n t.push({ s: -1, f: 25001 });\n var l = t[0], r = t[1], i0 = 0, i1 = 1, i2 = 2;\n t[0] = { s: -1, f: l.f + r.f, l: l, r: r };\n // efficient algorithm from UZIP.js\n // i0 is lookbehind, i2 is lookahead - after processing two low-freq\n // symbols that combined have high freq, will start processing i2 (high-freq,\n // non-composite) symbols instead\n // see https://reddit.com/r/photopea/comments/ikekht/uzipjs_questions/\n while (i1 != s - 1) {\n l = t[t[i0].f < t[i2].f ? i0++ : i2++];\n r = t[i0 != i1 && t[i0].f < t[i2].f ? i0++ : i2++];\n t[i1++] = { s: -1, f: l.f + r.f, l: l, r: r };\n }\n var maxSym = t2[0].s;\n for (var i = 1; i < s; ++i) {\n if (t2[i].s > maxSym)\n maxSym = t2[i].s;\n }\n // code lengths\n var tr = new u16(maxSym + 1);\n // max bits in tree\n var mbt = ln(t[i1 - 1], tr, 0);\n if (mbt > mb) {\n // more algorithms from UZIP.js\n // TODO: find out how this code works (debt)\n // ind debt\n var i = 0, dt = 0;\n // left cost\n var lft = mbt - mb, cst = 1 << lft;\n t2.sort(function (a, b) { return tr[b.s] - tr[a.s] || a.f - b.f; });\n for (; i < s; ++i) {\n var i2_1 = t2[i].s;\n if (tr[i2_1] > mb) {\n dt += cst - (1 << (mbt - tr[i2_1]));\n tr[i2_1] = mb;\n }\n else\n break;\n }\n dt >>= lft;\n while (dt > 0) {\n var i2_2 = t2[i].s;\n if (tr[i2_2] < mb)\n dt -= 1 << (mb - tr[i2_2]++ - 1);\n else\n ++i;\n }\n for (; i >= 0 && dt; --i) {\n var i2_3 = t2[i].s;\n if (tr[i2_3] == mb) {\n --tr[i2_3];\n ++dt;\n }\n }\n mbt = mb;\n }\n return { t: new u8(tr), l: mbt };\n};\n// get the max length and assign length codes\nvar ln = function (n, l, d) {\n return n.s == -1\n ? Math.max(ln(n.l, l, d + 1), ln(n.r, l, d + 1))\n : (l[n.s] = d);\n};\n// length codes generation\nvar lc = function (c) {\n var s = c.length;\n // Note that the semicolon was intentional\n while (s && !c[--s])\n ;\n var cl = new u16(++s);\n // ind num streak\n var cli = 0, cln = c[0], cls = 1;\n var w = function (v) { cl[cli++] = v; };\n for (var i = 1; i <= s; ++i) {\n if (c[i] == cln && i != s)\n ++cls;\n else {\n if (!cln && cls > 2) {\n for (; cls > 138; cls -= 138)\n w(32754);\n if (cls > 2) {\n w(cls > 10 ? ((cls - 11) << 5) | 28690 : ((cls - 3) << 5) | 12305);\n cls = 0;\n }\n }\n else if (cls > 3) {\n w(cln), --cls;\n for (; cls > 6; cls -= 6)\n w(8304);\n if (cls > 2)\n w(((cls - 3) << 5) | 8208), cls = 0;\n }\n while (cls--)\n w(cln);\n cls = 1;\n cln = c[i];\n }\n }\n return { c: cl.subarray(0, cli), n: s };\n};\n// calculate the length of output from tree, code lengths\nvar clen = function (cf, cl) {\n var l = 0;\n for (var i = 0; i < cl.length; ++i)\n l += cf[i] * cl[i];\n return l;\n};\n// writes a fixed block\n// returns the new bit pos\nvar wfblk = function (out, pos, dat) {\n // no need to write 00 as type: TypedArray defaults to 0\n var s = dat.length;\n var o = shft(pos + 2);\n out[o] = s & 255;\n out[o + 1] = s >> 8;\n out[o + 2] = out[o] ^ 255;\n out[o + 3] = out[o + 1] ^ 255;\n for (var i = 0; i < s; ++i)\n out[o + i + 4] = dat[i];\n return (o + 4 + s) * 8;\n};\n// writes a block\nvar wblk = function (dat, out, final, syms, lf, df, eb, li, bs, bl, p) {\n wbits(out, p++, final);\n ++lf[256];\n var _a = hTree(lf, 15), dlt = _a.t, mlb = _a.l;\n var _b = hTree(df, 15), ddt = _b.t, mdb = _b.l;\n var _c = lc(dlt), lclt = _c.c, nlc = _c.n;\n var _d = lc(ddt), lcdt = _d.c, ndc = _d.n;\n var lcfreq = new u16(19);\n for (var i = 0; i < lclt.length; ++i)\n ++lcfreq[lclt[i] & 31];\n for (var i = 0; i < lcdt.length; ++i)\n ++lcfreq[lcdt[i] & 31];\n var _e = hTree(lcfreq, 7), lct = _e.t, mlcb = _e.l;\n var nlcc = 19;\n for (; nlcc > 4 && !lct[clim[nlcc - 1]]; --nlcc)\n ;\n var flen = (bl + 5) << 3;\n var ftlen = clen(lf, flt) + clen(df, fdt) + eb;\n var dtlen = clen(lf, dlt) + clen(df, ddt) + eb + 14 + 3 * nlcc + clen(lcfreq, lct) + 2 * lcfreq[16] + 3 * lcfreq[17] + 7 * lcfreq[18];\n if (bs >= 0 && flen <= ftlen && flen <= dtlen)\n return wfblk(out, p, dat.subarray(bs, bs + bl));\n var lm, ll, dm, dl;\n wbits(out, p, 1 + (dtlen < ftlen)), p += 2;\n if (dtlen < ftlen) {\n lm = hMap(dlt, mlb, 0), ll = dlt, dm = hMap(ddt, mdb, 0), dl = ddt;\n var llm = hMap(lct, mlcb, 0);\n wbits(out, p, nlc - 257);\n wbits(out, p + 5, ndc - 1);\n wbits(out, p + 10, nlcc - 4);\n p += 14;\n for (var i = 0; i < nlcc; ++i)\n wbits(out, p + 3 * i, lct[clim[i]]);\n p += 3 * nlcc;\n var lcts = [lclt, lcdt];\n for (var it = 0; it < 2; ++it) {\n var clct = lcts[it];\n for (var i = 0; i < clct.length; ++i) {\n var len = clct[i] & 31;\n wbits(out, p, llm[len]), p += lct[len];\n if (len > 15)\n wbits(out, p, (clct[i] >> 5) & 127), p += clct[i] >> 12;\n }\n }\n }\n else {\n lm = flm, ll = flt, dm = fdm, dl = fdt;\n }\n for (var i = 0; i < li; ++i) {\n var sym = syms[i];\n if (sym > 255) {\n var len = (sym >> 18) & 31;\n wbits16(out, p, lm[len + 257]), p += ll[len + 257];\n if (len > 7)\n wbits(out, p, (sym >> 23) & 31), p += fleb[len];\n var dst = sym & 31;\n wbits16(out, p, dm[dst]), p += dl[dst];\n if (dst > 3)\n wbits16(out, p, (sym >> 5) & 8191), p += fdeb[dst];\n }\n else {\n wbits16(out, p, lm[sym]), p += ll[sym];\n }\n }\n wbits16(out, p, lm[256]);\n return p + ll[256];\n};\n// deflate options (nice << 13) | chain\nvar deo = /*#__PURE__*/ new i32([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]);\n// empty\nvar et = /*#__PURE__*/ new u8(0);\n// compresses data into a raw DEFLATE buffer\nvar dflt = function (dat, lvl, plvl, pre, post, st) {\n var s = st.z || dat.length;\n var o = new u8(pre + s + 5 * (1 + Math.ceil(s / 7000)) + post);\n // writing to this writes to the output buffer\n var w = o.subarray(pre, o.length - post);\n var lst = st.l;\n var pos = (st.r || 0) & 7;\n if (lvl) {\n if (pos)\n w[0] = st.r >> 3;\n var opt = deo[lvl - 1];\n var n = opt >> 13, c = opt & 8191;\n var msk_1 = (1 << plvl) - 1;\n // prev 2-byte val map curr 2-byte val map\n var prev = st.p || new u16(32768), head = st.h || new u16(msk_1 + 1);\n var bs1_1 = Math.ceil(plvl / 3), bs2_1 = 2 * bs1_1;\n var hsh = function (i) { return (dat[i] ^ (dat[i + 1] << bs1_1) ^ (dat[i + 2] << bs2_1)) & msk_1; };\n // 24576 is an arbitrary number of maximum symbols per block\n // 424 buffer for last block\n var syms = new i32(25000);\n // length/literal freq distance freq\n var lf = new u16(288), df = new u16(32);\n // l/lcnt exbits index l/lind waitdx blkpos\n var lc_1 = 0, eb = 0, i = st.i || 0, li = 0, wi = st.w || 0, bs = 0;\n for (; i + 2 < s; ++i) {\n // hash value\n var hv = hsh(i);\n // index mod 32768 previous index mod\n var imod = i & 32767, pimod = head[hv];\n prev[imod] = pimod;\n head[hv] = imod;\n // We always should modify head and prev, but only add symbols if\n // this data is not yet processed (\"wait\" for wait index)\n if (wi <= i) {\n // bytes remaining\n var rem = s - i;\n if ((lc_1 > 7000 || li > 24576) && (rem > 423 || !lst)) {\n pos = wblk(dat, w, 0, syms, lf, df, eb, li, bs, i - bs, pos);\n li = lc_1 = eb = 0, bs = i;\n for (var j = 0; j < 286; ++j)\n lf[j] = 0;\n for (var j = 0; j < 30; ++j)\n df[j] = 0;\n }\n // len dist chain\n var l = 2, d = 0, ch_1 = c, dif = imod - pimod & 32767;\n if (rem > 2 && hv == hsh(i - dif)) {\n var maxn = Math.min(n, rem) - 1;\n var maxd = Math.min(32767, i);\n // max possible length\n // not capped at dif because decompressors implement \"rolling\" index population\n var ml = Math.min(258, rem);\n while (dif <= maxd && --ch_1 && imod != pimod) {\n if (dat[i + l] == dat[i + l - dif]) {\n var nl = 0;\n for (; nl < ml && dat[i + nl] == dat[i + nl - dif]; ++nl)\n ;\n if (nl > l) {\n l = nl, d = dif;\n // break out early when we reach \"nice\" (we are satisfied enough)\n if (nl > maxn)\n break;\n // now, find the rarest 2-byte sequence within this\n // length of literals and search for that instead.\n // Much faster than just using the start\n var mmd = Math.min(dif, nl - 2);\n var md = 0;\n for (var j = 0; j < mmd; ++j) {\n var ti = i - dif + j & 32767;\n var pti = prev[ti];\n var cd = ti - pti & 32767;\n if (cd > md)\n md = cd, pimod = ti;\n }\n }\n }\n // check the previous match\n imod = pimod, pimod = prev[imod];\n dif += imod - pimod & 32767;\n }\n }\n // d will be nonzero only when a match was found\n if (d) {\n // store both dist and len data in one int32\n // Make sure this is recognized as a len/dist with 28th bit (2^28)\n syms[li++] = 268435456 | (revfl[l] << 18) | revfd[d];\n var lin = revfl[l] & 31, din = revfd[d] & 31;\n eb += fleb[lin] + fdeb[din];\n ++lf[257 + lin];\n ++df[din];\n wi = i + l;\n ++lc_1;\n }\n else {\n syms[li++] = dat[i];\n ++lf[dat[i]];\n }\n }\n }\n for (i = Math.max(i, wi); i < s; ++i) {\n syms[li++] = dat[i];\n ++lf[dat[i]];\n }\n pos = wblk(dat, w, lst, syms, lf, df, eb, li, bs, i - bs, pos);\n if (!lst) {\n st.r = (pos & 7) | w[(pos / 8) | 0] << 3;\n // shft(pos) now 1 less if pos & 7 != 0\n pos -= 7;\n st.h = head, st.p = prev, st.i = i, st.w = wi;\n }\n }\n else {\n for (var i = st.w || 0; i < s + lst; i += 65535) {\n // end\n var e = i + 65535;\n if (e >= s) {\n // write final block\n w[(pos / 8) | 0] = lst;\n e = s;\n }\n pos = wfblk(w, pos + 1, dat.subarray(i, e));\n }\n st.i = s;\n }\n return slc(o, 0, pre + shft(pos) + post);\n};\n// CRC32 table\nvar crct = /*#__PURE__*/ (function () {\n var t = new Int32Array(256);\n for (var i = 0; i < 256; ++i) {\n var c = i, k = 9;\n while (--k)\n c = ((c & 1) && -306674912) ^ (c >>> 1);\n t[i] = c;\n }\n return t;\n})();\n// CRC32\nvar crc = function () {\n var c = -1;\n return {\n p: function (d) {\n // closures have awful performance\n var cr = c;\n for (var i = 0; i < d.length; ++i)\n cr = crct[(cr & 255) ^ d[i]] ^ (cr >>> 8);\n c = cr;\n },\n d: function () { return ~c; }\n };\n};\n// Adler32\nvar adler = function () {\n var a = 1, b = 0;\n return {\n p: function (d) {\n // closures have awful performance\n var n = a, m = b;\n var l = d.length | 0;\n for (var i = 0; i != l;) {\n var e = Math.min(i + 2655, l);\n for (; i < e; ++i)\n m += n += d[i];\n n = (n & 65535) + 15 * (n >> 16), m = (m & 65535) + 15 * (m >> 16);\n }\n a = n, b = m;\n },\n d: function () {\n a %= 65521, b %= 65521;\n return (a & 255) << 24 | (a & 0xFF00) << 8 | (b & 255) << 8 | (b >> 8);\n }\n };\n};\n;\n// deflate with opts\nvar dopt = function (dat, opt, pre, post, st) {\n if (!st) {\n st = { l: 1 };\n if (opt.dictionary) {\n var dict = opt.dictionary.subarray(-32768);\n var newDat = new u8(dict.length + dat.length);\n newDat.set(dict);\n newDat.set(dat, dict.length);\n dat = newDat;\n st.w = dict.length;\n }\n }\n return dflt(dat, opt.level == null ? 6 : opt.level, opt.mem == null ? (st.l ? Math.ceil(Math.max(8, Math.min(13, Math.log(dat.length))) * 1.5) : 20) : (12 + opt.mem), pre, post, st);\n};\n// Walmart object spread\nvar mrg = function (a, b) {\n var o = {};\n for (var k in a)\n o[k] = a[k];\n for (var k in b)\n o[k] = b[k];\n return o;\n};\n// worker clone\n// This is possibly the craziest part of the entire codebase, despite how simple it may seem.\n// The only parameter to this function is a closure that returns an array of variables outside of the function scope.\n// We're going to try to figure out the variable names used in the closure as strings because that is crucial for workerization.\n// We will return an object mapping of true variable name to value (basically, the current scope as a JS object).\n// The reason we can't just use the original variable names is minifiers mangling the toplevel scope.\n// This took me three weeks to figure out how to do.\nvar wcln = function (fn, fnStr, td) {\n var dt = fn();\n var st = fn.toString();\n var ks = st.slice(st.indexOf('[') + 1, st.lastIndexOf(']')).replace(/\\s+/g, '').split(',');\n for (var i = 0; i < dt.length; ++i) {\n var v = dt[i], k = ks[i];\n if (typeof v == 'function') {\n fnStr += ';' + k + '=';\n var st_1 = v.toString();\n if (v.prototype) {\n // for global objects\n if (st_1.indexOf('[native code]') != -1) {\n var spInd = st_1.indexOf(' ', 8) + 1;\n fnStr += st_1.slice(spInd, st_1.indexOf('(', spInd));\n }\n else {\n fnStr += st_1;\n for (var t in v.prototype)\n fnStr += ';' + k + '.prototype.' + t + '=' + v.prototype[t].toString();\n }\n }\n else\n fnStr += st_1;\n }\n else\n td[k] = v;\n }\n return fnStr;\n};\nvar ch = [];\n// clone bufs\nvar cbfs = function (v) {\n var tl = [];\n for (var k in v) {\n if (v[k].buffer) {\n tl.push((v[k] = new v[k].constructor(v[k])).buffer);\n }\n }\n return tl;\n};\n// use a worker to execute code\nvar wrkr = function (fns, init, id, cb) {\n if (!ch[id]) {\n var fnStr = '', td_1 = {}, m = fns.length - 1;\n for (var i = 0; i < m; ++i)\n fnStr = wcln(fns[i], fnStr, td_1);\n ch[id] = { c: wcln(fns[m], fnStr, td_1), e: td_1 };\n }\n var td = mrg({}, ch[id].e);\n return wk(ch[id].c + ';onmessage=function(e){for(var k in e.data)self[k]=e.data[k];onmessage=' + init.toString() + '}', id, td, cbfs(td), cb);\n};\n// base async inflate fn\nvar bInflt = function () { return [u8, u16, i32, fleb, fdeb, clim, fl, fd, flrm, fdrm, rev, ec, hMap, max, bits, bits16, shft, slc, err, inflt, inflateSync, pbf, gopt]; };\nvar bDflt = function () { return [u8, u16, i32, fleb, fdeb, clim, revfl, revfd, flm, flt, fdm, fdt, rev, deo, et, hMap, wbits, wbits16, hTree, ln, lc, clen, wfblk, wblk, shft, slc, dflt, dopt, deflateSync, pbf]; };\n// gzip extra\nvar gze = function () { return [gzh, gzhl, wbytes, crc, crct]; };\n// gunzip extra\nvar guze = function () { return [gzs, gzl]; };\n// zlib extra\nvar zle = function () { return [zlh, wbytes, adler]; };\n// unzlib extra\nvar zule = function () { return [zls]; };\n// post buf\nvar pbf = function (msg) { return postMessage(msg, [msg.buffer]); };\n// get opts\nvar gopt = function (o) { return o && {\n out: o.size && new u8(o.size),\n dictionary: o.dictionary\n}; };\n// async helper\nvar cbify = function (dat, opts, fns, init, id, cb) {\n var w = wrkr(fns, init, id, function (err, dat) {\n w.terminate();\n cb(err, dat);\n });\n w.postMessage([dat, opts], opts.consume ? [dat.buffer] : []);\n return function () { w.terminate(); };\n};\n// auto stream\nvar astrm = function (strm) {\n strm.ondata = function (dat, final) { return postMessage([dat, final], [dat.buffer]); };\n return function (ev) {\n if (ev.data.length) {\n strm.push(ev.data[0], ev.data[1]);\n postMessage([ev.data[0].length]);\n }\n else\n strm.flush();\n };\n};\n// async stream attach\nvar astrmify = function (fns, strm, opts, init, id, flush, ext) {\n var t;\n var w = wrkr(fns, init, id, function (err, dat) {\n if (err)\n w.terminate(), strm.ondata.call(strm, err);\n else if (!Array.isArray(dat))\n ext(dat);\n else if (dat.length == 1) {\n strm.queuedSize -= dat[0];\n if (strm.ondrain)\n strm.ondrain(dat[0]);\n }\n else {\n if (dat[1])\n w.terminate();\n strm.ondata.call(strm, err, dat[0], dat[1]);\n }\n });\n w.postMessage(opts);\n strm.queuedSize = 0;\n strm.push = function (d, f) {\n if (!strm.ondata)\n err(5);\n if (t)\n strm.ondata(err(4, 0, 1), null, !!f);\n strm.queuedSize += d.length;\n w.postMessage([d, t = f], [d.buffer]);\n };\n strm.terminate = function () { w.terminate(); };\n if (flush) {\n strm.flush = function () { w.postMessage([]); };\n }\n};\n// read 2 bytes\nvar b2 = function (d, b) { return d[b] | (d[b + 1] << 8); };\n// read 4 bytes\nvar b4 = function (d, b) { return (d[b] | (d[b + 1] << 8) | (d[b + 2] << 16) | (d[b + 3] << 24)) >>> 0; };\nvar b8 = function (d, b) { return b4(d, b) + (b4(d, b + 4) * 4294967296); };\n// write bytes\nvar wbytes = function (d, b, v) {\n for (; v; ++b)\n d[b] = v, v >>>= 8;\n};\n// gzip header\nvar gzh = function (c, o) {\n var fn = o.filename;\n c[0] = 31, c[1] = 139, c[2] = 8, c[8] = o.level < 2 ? 4 : o.level == 9 ? 2 : 0, c[9] = 3; // assume Unix\n if (o.mtime != 0)\n wbytes(c, 4, Math.floor(new Date(o.mtime || Date.now()) / 1000));\n if (fn) {\n c[3] = 8;\n for (var i = 0; i <= fn.length; ++i)\n c[i + 10] = fn.charCodeAt(i);\n }\n};\n// gzip footer: -8 to -4 = CRC, -4 to -0 is length\n// gzip start\nvar gzs = function (d) {\n if (d[0] != 31 || d[1] != 139 || d[2] != 8)\n err(6, 'invalid gzip data');\n var flg = d[3];\n var st = 10;\n if (flg & 4)\n st += (d[10] | d[11] << 8) + 2;\n for (var zs = (flg >> 3 & 1) + (flg >> 4 & 1); zs > 0; zs -= !d[st++])\n ;\n return st + (flg & 2);\n};\n// gzip length\nvar gzl = function (d) {\n var l = d.length;\n return (d[l - 4] | d[l - 3] << 8 | d[l - 2] << 16 | d[l - 1] << 24) >>> 0;\n};\n// gzip header length\nvar gzhl = function (o) { return 10 + (o.filename ? o.filename.length + 1 : 0); };\n// zlib header\nvar zlh = function (c, o) {\n var lv = o.level, fl = lv == 0 ? 0 : lv < 6 ? 1 : lv == 9 ? 3 : 2;\n c[0] = 120, c[1] = (fl << 6) | (o.dictionary && 32);\n c[1] |= 31 - ((c[0] << 8) | c[1]) % 31;\n if (o.dictionary) {\n var h = adler();\n h.p(o.dictionary);\n wbytes(c, 2, h.d());\n }\n};\n// zlib start\nvar zls = function (d, dict) {\n if ((d[0] & 15) != 8 || (d[0] >> 4) > 7 || ((d[0] << 8 | d[1]) % 31))\n err(6, 'invalid zlib data');\n if ((d[1] >> 5 & 1) == +!dict)\n err(6, 'invalid zlib data: ' + (d[1] & 32 ? 'need' : 'unexpected') + ' dictionary');\n return (d[1] >> 3 & 4) + 2;\n};\nfunction StrmOpt(opts, cb) {\n if (typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n return opts;\n}\n/**\n * Streaming DEFLATE compression\n */\nvar Deflate = /*#__PURE__*/ (function () {\n function Deflate(opts, cb) {\n if (typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n this.o = opts || {};\n this.s = { l: 0, i: 32768, w: 32768, z: 32768 };\n // Buffer length must always be 0 mod 32768 for index calculations to be correct when modifying head and prev\n // 98304 = 32768 (lookback) + 65536 (common chunk size)\n this.b = new u8(98304);\n if (this.o.dictionary) {\n var dict = this.o.dictionary.subarray(-32768);\n this.b.set(dict, 32768 - dict.length);\n this.s.i = 32768 - dict.length;\n }\n }\n Deflate.prototype.p = function (c, f) {\n this.ondata(dopt(c, this.o, 0, 0, this.s), f);\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Deflate.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (this.s.l)\n err(4);\n var endLen = chunk.length + this.s.z;\n if (endLen > this.b.length) {\n if (endLen > 2 * this.b.length - 32768) {\n var newBuf = new u8(endLen & -32768);\n newBuf.set(this.b.subarray(0, this.s.z));\n this.b = newBuf;\n }\n var split = this.b.length - this.s.z;\n this.b.set(chunk.subarray(0, split), this.s.z);\n this.s.z = this.b.length;\n this.p(this.b, false);\n this.b.set(this.b.subarray(-32768));\n this.b.set(chunk.subarray(split), 32768);\n this.s.z = chunk.length - split + 32768;\n this.s.i = 32766, this.s.w = 32768;\n }\n else {\n this.b.set(chunk, this.s.z);\n this.s.z += chunk.length;\n }\n this.s.l = final & 1;\n if (this.s.z > this.s.w + 8191 || final) {\n this.p(this.b, final || false);\n this.s.w = this.s.i, this.s.i -= 2;\n }\n };\n /**\n * Flushes buffered uncompressed data. Useful to immediately retrieve the\n * deflated output for small inputs.\n */\n Deflate.prototype.flush = function () {\n if (!this.ondata)\n err(5);\n if (this.s.l)\n err(4);\n this.p(this.b, false);\n this.s.w = this.s.i, this.s.i -= 2;\n };\n return Deflate;\n}());\nexport { Deflate };\n/**\n * Asynchronous streaming DEFLATE compression\n */\nvar AsyncDeflate = /*#__PURE__*/ (function () {\n function AsyncDeflate(opts, cb) {\n astrmify([\n bDflt,\n function () { return [astrm, Deflate]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Deflate(ev.data);\n onmessage = astrm(strm);\n }, 6, 1);\n }\n return AsyncDeflate;\n}());\nexport { AsyncDeflate };\nexport function deflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n ], function (ev) { return pbf(deflateSync(ev.data[0], ev.data[1])); }, 0, cb);\n}\n/**\n * Compresses data with DEFLATE without any wrapper\n * @param data The data to compress\n * @param opts The compression options\n * @returns The deflated version of the data\n */\nexport function deflateSync(data, opts) {\n return dopt(data, opts || {}, 0, 0);\n}\n/**\n * Streaming DEFLATE decompression\n */\nvar Inflate = /*#__PURE__*/ (function () {\n function Inflate(opts, cb) {\n // no StrmOpt here to avoid adding to workerizer\n if (typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n var dict = opts && opts.dictionary && opts.dictionary.subarray(-32768);\n this.s = { i: 0, b: dict ? dict.length : 0 };\n this.o = new u8(32768);\n this.p = new u8(0);\n if (dict)\n this.o.set(dict);\n }\n Inflate.prototype.e = function (c) {\n if (!this.ondata)\n err(5);\n if (this.d)\n err(4);\n if (!this.p.length)\n this.p = c;\n else if (c.length) {\n var n = new u8(this.p.length + c.length);\n n.set(this.p), n.set(c, this.p.length), this.p = n;\n }\n };\n Inflate.prototype.c = function (final) {\n this.s.i = +(this.d = final || false);\n var bts = this.s.b;\n var dt = inflt(this.p, this.s, this.o);\n this.ondata(slc(dt, bts, this.s.b), this.d);\n this.o = slc(dt, this.s.b - 32768), this.s.b = this.o.length;\n this.p = slc(this.p, (this.s.p / 8) | 0), this.s.p &= 7;\n };\n /**\n * Pushes a chunk to be inflated\n * @param chunk The chunk to push\n * @param final Whether this is the final chunk\n */\n Inflate.prototype.push = function (chunk, final) {\n this.e(chunk), this.c(final);\n };\n return Inflate;\n}());\nexport { Inflate };\n/**\n * Asynchronous streaming DEFLATE decompression\n */\nvar AsyncInflate = /*#__PURE__*/ (function () {\n function AsyncInflate(opts, cb) {\n astrmify([\n bInflt,\n function () { return [astrm, Inflate]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Inflate(ev.data);\n onmessage = astrm(strm);\n }, 7, 0);\n }\n return AsyncInflate;\n}());\nexport { AsyncInflate };\nexport function inflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt\n ], function (ev) { return pbf(inflateSync(ev.data[0], gopt(ev.data[1]))); }, 1, cb);\n}\n/**\n * Expands DEFLATE data with no wrapper\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function inflateSync(data, opts) {\n return inflt(data, { i: 2 }, opts && opts.out, opts && opts.dictionary);\n}\n// before you yell at me for not just using extends, my reason is that TS inheritance is hard to workerize.\n/**\n * Streaming GZIP compression\n */\nvar Gzip = /*#__PURE__*/ (function () {\n function Gzip(opts, cb) {\n this.c = crc();\n this.l = 0;\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be GZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gzip.prototype.push = function (chunk, final) {\n this.c.p(chunk);\n this.l += chunk.length;\n Deflate.prototype.push.call(this, chunk, final);\n };\n Gzip.prototype.p = function (c, f) {\n var raw = dopt(c, this.o, this.v && gzhl(this.o), f && 8, this.s);\n if (this.v)\n gzh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 8, this.c.d()), wbytes(raw, raw.length - 4, this.l);\n this.ondata(raw, f);\n };\n /**\n * Flushes buffered uncompressed data. Useful to immediately retrieve the\n * GZIPped output for small inputs.\n */\n Gzip.prototype.flush = function () {\n Deflate.prototype.flush.call(this);\n };\n return Gzip;\n}());\nexport { Gzip };\n/**\n * Asynchronous streaming GZIP compression\n */\nvar AsyncGzip = /*#__PURE__*/ (function () {\n function AsyncGzip(opts, cb) {\n astrmify([\n bDflt,\n gze,\n function () { return [astrm, Deflate, Gzip]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Gzip(ev.data);\n onmessage = astrm(strm);\n }, 8, 1);\n }\n return AsyncGzip;\n}());\nexport { AsyncGzip };\nexport function gzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n gze,\n function () { return [gzipSync]; }\n ], function (ev) { return pbf(gzipSync(ev.data[0], ev.data[1])); }, 2, cb);\n}\n/**\n * Compresses data with GZIP\n * @param data The data to compress\n * @param opts The compression options\n * @returns The gzipped version of the data\n */\nexport function gzipSync(data, opts) {\n if (!opts)\n opts = {};\n var c = crc(), l = data.length;\n c.p(data);\n var d = dopt(data, opts, gzhl(opts), 8), s = d.length;\n return gzh(d, opts), wbytes(d, s - 8, c.d()), wbytes(d, s - 4, l), d;\n}\n/**\n * Streaming single or multi-member GZIP decompression\n */\nvar Gunzip = /*#__PURE__*/ (function () {\n function Gunzip(opts, cb) {\n this.v = 1;\n this.r = 0;\n Inflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be GUNZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gunzip.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n this.r += chunk.length;\n if (this.v) {\n var p = this.p.subarray(this.v - 1);\n var s = p.length > 3 ? gzs(p) : 4;\n if (s > p.length) {\n if (!final)\n return;\n }\n else if (this.v > 1 && this.onmember) {\n this.onmember(this.r - p.length);\n }\n this.p = p.subarray(s), this.v = 0;\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n // process concatenated GZIP\n if (this.s.f && !this.s.l && !final) {\n this.v = shft(this.s.p) + 9;\n this.s = { i: 0 };\n this.o = new u8(0);\n this.push(new u8(0), final);\n }\n };\n return Gunzip;\n}());\nexport { Gunzip };\n/**\n * Asynchronous streaming single or multi-member GZIP decompression\n */\nvar AsyncGunzip = /*#__PURE__*/ (function () {\n function AsyncGunzip(opts, cb) {\n var _this = this;\n astrmify([\n bInflt,\n guze,\n function () { return [astrm, Inflate, Gunzip]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Gunzip(ev.data);\n strm.onmember = function (offset) { return postMessage(offset); };\n onmessage = astrm(strm);\n }, 9, 0, function (offset) { return _this.onmember && _this.onmember(offset); });\n }\n return AsyncGunzip;\n}());\nexport { AsyncGunzip };\nexport function gunzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt,\n guze,\n function () { return [gunzipSync]; }\n ], function (ev) { return pbf(gunzipSync(ev.data[0], ev.data[1])); }, 3, cb);\n}\n/**\n * Expands GZIP data\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function gunzipSync(data, opts) {\n var st = gzs(data);\n if (st + 8 > data.length)\n err(6, 'invalid gzip data');\n return inflt(data.subarray(st, -8), { i: 2 }, opts && opts.out || new u8(gzl(data)), opts && opts.dictionary);\n}\n/**\n * Streaming Zlib compression\n */\nvar Zlib = /*#__PURE__*/ (function () {\n function Zlib(opts, cb) {\n this.c = adler();\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be zlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Zlib.prototype.push = function (chunk, final) {\n this.c.p(chunk);\n Deflate.prototype.push.call(this, chunk, final);\n };\n Zlib.prototype.p = function (c, f) {\n var raw = dopt(c, this.o, this.v && (this.o.dictionary ? 6 : 2), f && 4, this.s);\n if (this.v)\n zlh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 4, this.c.d());\n this.ondata(raw, f);\n };\n /**\n * Flushes buffered uncompressed data. Useful to immediately retrieve the\n * zlibbed output for small inputs.\n */\n Zlib.prototype.flush = function () {\n Deflate.prototype.flush.call(this);\n };\n return Zlib;\n}());\nexport { Zlib };\n/**\n * Asynchronous streaming Zlib compression\n */\nvar AsyncZlib = /*#__PURE__*/ (function () {\n function AsyncZlib(opts, cb) {\n astrmify([\n bDflt,\n zle,\n function () { return [astrm, Deflate, Zlib]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Zlib(ev.data);\n onmessage = astrm(strm);\n }, 10, 1);\n }\n return AsyncZlib;\n}());\nexport { AsyncZlib };\nexport function zlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n zle,\n function () { return [zlibSync]; }\n ], function (ev) { return pbf(zlibSync(ev.data[0], ev.data[1])); }, 4, cb);\n}\n/**\n * Compress data with Zlib\n * @param data The data to compress\n * @param opts The compression options\n * @returns The zlib-compressed version of the data\n */\nexport function zlibSync(data, opts) {\n if (!opts)\n opts = {};\n var a = adler();\n a.p(data);\n var d = dopt(data, opts, opts.dictionary ? 6 : 2, 4);\n return zlh(d, opts), wbytes(d, d.length - 4, a.d()), d;\n}\n/**\n * Streaming Zlib decompression\n */\nvar Unzlib = /*#__PURE__*/ (function () {\n function Unzlib(opts, cb) {\n Inflate.call(this, opts, cb);\n this.v = opts && opts.dictionary ? 2 : 1;\n }\n /**\n * Pushes a chunk to be unzlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Unzlib.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n if (this.v) {\n if (this.p.length < 6 && !final)\n return;\n this.p = this.p.subarray(zls(this.p, this.v - 1)), this.v = 0;\n }\n if (final) {\n if (this.p.length < 4)\n err(6, 'invalid zlib data');\n this.p = this.p.subarray(0, -4);\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n };\n return Unzlib;\n}());\nexport { Unzlib };\n/**\n * Asynchronous streaming Zlib decompression\n */\nvar AsyncUnzlib = /*#__PURE__*/ (function () {\n function AsyncUnzlib(opts, cb) {\n astrmify([\n bInflt,\n zule,\n function () { return [astrm, Inflate, Unzlib]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Unzlib(ev.data);\n onmessage = astrm(strm);\n }, 11, 0);\n }\n return AsyncUnzlib;\n}());\nexport { AsyncUnzlib };\nexport function unzlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt,\n zule,\n function () { return [unzlibSync]; }\n ], function (ev) { return pbf(unzlibSync(ev.data[0], gopt(ev.data[1]))); }, 5, cb);\n}\n/**\n * Expands Zlib data\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function unzlibSync(data, opts) {\n return inflt(data.subarray(zls(data, opts && opts.dictionary), -4), { i: 2 }, opts && opts.out, opts && opts.dictionary);\n}\n// Default algorithm for compression (used because having a known output size allows faster decompression)\nexport { gzip as compress, AsyncGzip as AsyncCompress };\nexport { gzipSync as compressSync, Gzip as Compress };\n/**\n * Streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar Decompress = /*#__PURE__*/ (function () {\n function Decompress(opts, cb) {\n this.o = StrmOpt.call(this, opts, cb) || {};\n this.G = Gunzip;\n this.I = Inflate;\n this.Z = Unzlib;\n }\n // init substream\n // overriden by AsyncDecompress\n Decompress.prototype.i = function () {\n var _this = this;\n this.s.ondata = function (dat, final) {\n _this.ondata(dat, final);\n };\n };\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Decompress.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (!this.s) {\n if (this.p && this.p.length) {\n var n = new u8(this.p.length + chunk.length);\n n.set(this.p), n.set(chunk, this.p.length);\n }\n else\n this.p = chunk;\n if (this.p.length > 2) {\n this.s = (this.p[0] == 31 && this.p[1] == 139 && this.p[2] == 8)\n ? new this.G(this.o)\n : ((this.p[0] & 15) != 8 || (this.p[0] >> 4) > 7 || ((this.p[0] << 8 | this.p[1]) % 31))\n ? new this.I(this.o)\n : new this.Z(this.o);\n this.i();\n this.s.push(this.p, final);\n this.p = null;\n }\n }\n else\n this.s.push(chunk, final);\n };\n return Decompress;\n}());\nexport { Decompress };\n/**\n * Asynchronous streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar AsyncDecompress = /*#__PURE__*/ (function () {\n function AsyncDecompress(opts, cb) {\n Decompress.call(this, opts, cb);\n this.queuedSize = 0;\n this.G = AsyncGunzip;\n this.I = AsyncInflate;\n this.Z = AsyncUnzlib;\n }\n AsyncDecompress.prototype.i = function () {\n var _this = this;\n this.s.ondata = function (err, dat, final) {\n _this.ondata(err, dat, final);\n };\n this.s.ondrain = function (size) {\n _this.queuedSize -= size;\n if (_this.ondrain)\n _this.ondrain(size);\n };\n };\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n AsyncDecompress.prototype.push = function (chunk, final) {\n this.queuedSize += chunk.length;\n Decompress.prototype.push.call(this, chunk, final);\n };\n return AsyncDecompress;\n}());\nexport { AsyncDecompress };\nexport function decompress(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzip(data, opts, cb)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflate(data, opts, cb)\n : unzlib(data, opts, cb);\n}\n/**\n * Expands compressed GZIP, Zlib, or raw DEFLATE data, automatically detecting the format\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function decompressSync(data, opts) {\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzipSync(data, opts)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflateSync(data, opts)\n : unzlibSync(data, opts);\n}\n// flatten a directory structure\nvar fltn = function (d, p, t, o) {\n for (var k in d) {\n var val = d[k], n = p + k, op = o;\n if (Array.isArray(val))\n op = mrg(o, val[1]), val = val[0];\n if (val instanceof u8)\n t[n] = [val, op];\n else {\n t[n += '/'] = [new u8(0), op];\n fltn(val, n, t, o);\n }\n }\n};\n// text encoder\nvar te = typeof TextEncoder != 'undefined' && /*#__PURE__*/ new TextEncoder();\n// text decoder\nvar td = typeof TextDecoder != 'undefined' && /*#__PURE__*/ new TextDecoder();\n// text decoder stream\nvar tds = 0;\ntry {\n td.decode(et, { stream: true });\n tds = 1;\n}\ncatch (e) { }\n// decode UTF8\nvar dutf8 = function (d) {\n for (var r = '', i = 0;;) {\n var c = d[i++];\n var eb = (c > 127) + (c > 223) + (c > 239);\n if (i + eb > d.length)\n return { s: r, r: slc(d, i - 1) };\n if (!eb)\n r += String.fromCharCode(c);\n else if (eb == 3) {\n c = ((c & 15) << 18 | (d[i++] & 63) << 12 | (d[i++] & 63) << 6 | (d[i++] & 63)) - 65536,\n r += String.fromCharCode(55296 | (c >> 10), 56320 | (c & 1023));\n }\n else if (eb & 1)\n r += String.fromCharCode((c & 31) << 6 | (d[i++] & 63));\n else\n r += String.fromCharCode((c & 15) << 12 | (d[i++] & 63) << 6 | (d[i++] & 63));\n }\n};\n/**\n * Streaming UTF-8 decoding\n */\nvar DecodeUTF8 = /*#__PURE__*/ (function () {\n /**\n * Creates a UTF-8 decoding stream\n * @param cb The callback to call whenever data is decoded\n */\n function DecodeUTF8(cb) {\n this.ondata = cb;\n if (tds)\n this.t = new TextDecoder();\n else\n this.p = et;\n }\n /**\n * Pushes a chunk to be decoded from UTF-8 binary\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n DecodeUTF8.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n final = !!final;\n if (this.t) {\n this.ondata(this.t.decode(chunk, { stream: true }), final);\n if (final) {\n if (this.t.decode().length)\n err(8);\n this.t = null;\n }\n return;\n }\n if (!this.p)\n err(4);\n var dat = new u8(this.p.length + chunk.length);\n dat.set(this.p);\n dat.set(chunk, this.p.length);\n var _a = dutf8(dat), s = _a.s, r = _a.r;\n if (final) {\n if (r.length)\n err(8);\n this.p = null;\n }\n else\n this.p = r;\n this.ondata(s, final);\n };\n return DecodeUTF8;\n}());\nexport { DecodeUTF8 };\n/**\n * Streaming UTF-8 encoding\n */\nvar EncodeUTF8 = /*#__PURE__*/ (function () {\n /**\n * Creates a UTF-8 decoding stream\n * @param cb The callback to call whenever data is encoded\n */\n function EncodeUTF8(cb) {\n this.ondata = cb;\n }\n /**\n * Pushes a chunk to be encoded to UTF-8\n * @param chunk The string data to push\n * @param final Whether this is the last chunk\n */\n EncodeUTF8.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (this.d)\n err(4);\n this.ondata(strToU8(chunk), this.d = final || false);\n };\n return EncodeUTF8;\n}());\nexport { EncodeUTF8 };\n/**\n * Converts a string into a Uint8Array for use with compression/decompression methods\n * @param str The string to encode\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless decoding a binary string.\n * @returns The string encoded in UTF-8/Latin-1 binary\n */\nexport function strToU8(str, latin1) {\n if (latin1) {\n var ar_1 = new u8(str.length);\n for (var i = 0; i < str.length; ++i)\n ar_1[i] = str.charCodeAt(i);\n return ar_1;\n }\n if (te)\n return te.encode(str);\n var l = str.length;\n var ar = new u8(str.length + (str.length >> 1));\n var ai = 0;\n var w = function (v) { ar[ai++] = v; };\n for (var i = 0; i < l; ++i) {\n if (ai + 5 > ar.length) {\n var n = new u8(ai + 8 + ((l - i) << 1));\n n.set(ar);\n ar = n;\n }\n var c = str.charCodeAt(i);\n if (c < 128 || latin1)\n w(c);\n else if (c < 2048)\n w(192 | (c >> 6)), w(128 | (c & 63));\n else if (c > 55295 && c < 57344)\n c = 65536 + (c & 1023 << 10) | (str.charCodeAt(++i) & 1023),\n w(240 | (c >> 18)), w(128 | ((c >> 12) & 63)), w(128 | ((c >> 6) & 63)), w(128 | (c & 63));\n else\n w(224 | (c >> 12)), w(128 | ((c >> 6) & 63)), w(128 | (c & 63));\n }\n return slc(ar, 0, ai);\n}\n/**\n * Converts a Uint8Array to a string\n * @param dat The data to decode to string\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless encoding to binary string.\n * @returns The original UTF-8/Latin-1 string\n */\nexport function strFromU8(dat, latin1) {\n if (latin1) {\n var r = '';\n for (var i = 0; i < dat.length; i += 16384)\n r += String.fromCharCode.apply(null, dat.subarray(i, i + 16384));\n return r;\n }\n else if (td) {\n return td.decode(dat);\n }\n else {\n var _a = dutf8(dat), s = _a.s, r = _a.r;\n if (r.length)\n err(8);\n return s;\n }\n}\n;\n// deflate bit flag\nvar dbf = function (l) { return l == 1 ? 3 : l < 6 ? 2 : l == 9 ? 1 : 0; };\n// skip local zip header\nvar slzh = function (d, b) { return b + 30 + b2(d, b + 26) + b2(d, b + 28); };\n// read zip header\nvar zh = function (d, b, z) {\n var fnl = b2(d, b + 28), fn = strFromU8(d.subarray(b + 46, b + 46 + fnl), !(b2(d, b + 8) & 2048)), es = b + 46 + fnl, bs = b4(d, b + 20);\n var _a = z && bs == 4294967295 ? z64e(d, es) : [bs, b4(d, b + 24), b4(d, b + 42)], sc = _a[0], su = _a[1], off = _a[2];\n return [b2(d, b + 10), sc, su, fn, es + b2(d, b + 30) + b2(d, b + 32), off];\n};\n// read zip64 extra field\nvar z64e = function (d, b) {\n for (; b2(d, b) != 1; b += 4 + b2(d, b + 2))\n ;\n return [b8(d, b + 12), b8(d, b + 4), b8(d, b + 20)];\n};\n// extra field length\nvar exfl = function (ex) {\n var le = 0;\n if (ex) {\n for (var k in ex) {\n var l = ex[k].length;\n if (l > 65535)\n err(9);\n le += l + 4;\n }\n }\n return le;\n};\n// write zip header\nvar wzh = function (d, b, f, fn, u, c, ce, co) {\n var fl = fn.length, ex = f.extra, col = co && co.length;\n var exl = exfl(ex);\n wbytes(d, b, ce != null ? 0x2014B50 : 0x4034B50), b += 4;\n if (ce != null)\n d[b++] = 20, d[b++] = f.os;\n d[b] = 20, b += 2; // spec compliance? what's that?\n d[b++] = (f.flag << 1) | (c < 0 && 8), d[b++] = u && 8;\n d[b++] = f.compression & 255, d[b++] = f.compression >> 8;\n var dt = new Date(f.mtime == null ? Date.now() : f.mtime), y = dt.getFullYear() - 1980;\n if (y < 0 || y > 119)\n err(10);\n wbytes(d, b, (y << 25) | ((dt.getMonth() + 1) << 21) | (dt.getDate() << 16) | (dt.getHours() << 11) | (dt.getMinutes() << 5) | (dt.getSeconds() >> 1)), b += 4;\n if (c != -1) {\n wbytes(d, b, f.crc);\n wbytes(d, b + 4, c < 0 ? -c - 2 : c);\n wbytes(d, b + 8, f.size);\n }\n wbytes(d, b + 12, fl);\n wbytes(d, b + 14, exl), b += 16;\n if (ce != null) {\n wbytes(d, b, col);\n wbytes(d, b + 6, f.attrs);\n wbytes(d, b + 10, ce), b += 14;\n }\n d.set(fn, b);\n b += fl;\n if (exl) {\n for (var k in ex) {\n var exf = ex[k], l = exf.length;\n wbytes(d, b, +k);\n wbytes(d, b + 2, l);\n d.set(exf, b + 4), b += 4 + l;\n }\n }\n if (col)\n d.set(co, b), b += col;\n return b;\n};\n// write zip footer (end of central directory)\nvar wzf = function (o, b, c, d, e) {\n wbytes(o, b, 0x6054B50); // skip disk\n wbytes(o, b + 8, c);\n wbytes(o, b + 10, c);\n wbytes(o, b + 12, d);\n wbytes(o, b + 16, e);\n};\n/**\n * A pass-through stream to keep data uncompressed in a ZIP archive.\n */\nvar ZipPassThrough = /*#__PURE__*/ (function () {\n /**\n * Creates a pass-through stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n */\n function ZipPassThrough(filename) {\n this.filename = filename;\n this.c = crc();\n this.size = 0;\n this.compression = 0;\n }\n /**\n * Processes a chunk and pushes to the output stream. You can override this\n * method in a subclass for custom behavior, but by default this passes\n * the data through. You must call this.ondata(err, chunk, final) at some\n * point in this method.\n * @param chunk The chunk to process\n * @param final Whether this is the last chunk\n */\n ZipPassThrough.prototype.process = function (chunk, final) {\n this.ondata(null, chunk, final);\n };\n /**\n * Pushes a chunk to be added. If you are subclassing this with a custom\n * compression algorithm, note that you must push data from the source\n * file only, pre-compression.\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n ZipPassThrough.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n this.c.p(chunk);\n this.size += chunk.length;\n if (final)\n this.crc = this.c.d();\n this.process(chunk, final || false);\n };\n return ZipPassThrough;\n}());\nexport { ZipPassThrough };\n// I don't extend because TypeScript extension adds 1kB of runtime bloat\n/**\n * Streaming DEFLATE compression for ZIP archives. Prefer using AsyncZipDeflate\n * for better performance\n */\nvar ZipDeflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n * @param opts The compression options\n */\n function ZipDeflate(filename, opts) {\n var _this = this;\n if (!opts)\n opts = {};\n ZipPassThrough.call(this, filename);\n this.d = new Deflate(opts, function (dat, final) {\n _this.ondata(null, dat, final);\n });\n this.compression = 8;\n this.flag = dbf(opts.level);\n }\n ZipDeflate.prototype.process = function (chunk, final) {\n try {\n this.d.push(chunk, final);\n }\n catch (e) {\n this.ondata(e, null, final);\n }\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n ZipDeflate.prototype.push = function (chunk, final) {\n ZipPassThrough.prototype.push.call(this, chunk, final);\n };\n return ZipDeflate;\n}());\nexport { ZipDeflate };\n/**\n * Asynchronous streaming DEFLATE compression for ZIP archives\n */\nvar AsyncZipDeflate = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous DEFLATE stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n * @param opts The compression options\n */\n function AsyncZipDeflate(filename, opts) {\n var _this = this;\n if (!opts)\n opts = {};\n ZipPassThrough.call(this, filename);\n this.d = new AsyncDeflate(opts, function (err, dat, final) {\n _this.ondata(err, dat, final);\n });\n this.compression = 8;\n this.flag = dbf(opts.level);\n this.terminate = this.d.terminate;\n }\n AsyncZipDeflate.prototype.process = function (chunk, final) {\n this.d.push(chunk, final);\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n AsyncZipDeflate.prototype.push = function (chunk, final) {\n ZipPassThrough.prototype.push.call(this, chunk, final);\n };\n return AsyncZipDeflate;\n}());\nexport { AsyncZipDeflate };\n// TODO: Better tree shaking\n/**\n * A zippable archive to which files can incrementally be added\n */\nvar Zip = /*#__PURE__*/ (function () {\n /**\n * Creates an empty ZIP archive to which files can be added\n * @param cb The callback to call whenever data for the generated ZIP archive\n * is available\n */\n function Zip(cb) {\n this.ondata = cb;\n this.u = [];\n this.d = 1;\n }\n /**\n * Adds a file to the ZIP archive\n * @param file The file stream to add\n */\n Zip.prototype.add = function (file) {\n var _this = this;\n if (!this.ondata)\n err(5);\n // finishing or finished\n if (this.d & 2)\n this.ondata(err(4 + (this.d & 1) * 8, 0, 1), null, false);\n else {\n var f = strToU8(file.filename), fl_1 = f.length;\n var com = file.comment, o = com && strToU8(com);\n var u = fl_1 != file.filename.length || (o && (com.length != o.length));\n var hl_1 = fl_1 + exfl(file.extra) + 30;\n if (fl_1 > 65535)\n this.ondata(err(11, 0, 1), null, false);\n var header = new u8(hl_1);\n wzh(header, 0, file, f, u, -1);\n var chks_1 = [header];\n var pAll_1 = function () {\n for (var _i = 0, chks_2 = chks_1; _i < chks_2.length; _i++) {\n var chk = chks_2[_i];\n _this.ondata(null, chk, false);\n }\n chks_1 = [];\n };\n var tr_1 = this.d;\n this.d = 0;\n var ind_1 = this.u.length;\n var uf_1 = mrg(file, {\n f: f,\n u: u,\n o: o,\n t: function () {\n if (file.terminate)\n file.terminate();\n },\n r: function () {\n pAll_1();\n if (tr_1) {\n var nxt = _this.u[ind_1 + 1];\n if (nxt)\n nxt.r();\n else\n _this.d = 1;\n }\n tr_1 = 1;\n }\n });\n var cl_1 = 0;\n file.ondata = function (err, dat, final) {\n if (err) {\n _this.ondata(err, dat, final);\n _this.terminate();\n }\n else {\n cl_1 += dat.length;\n chks_1.push(dat);\n if (final) {\n var dd = new u8(16);\n wbytes(dd, 0, 0x8074B50);\n wbytes(dd, 4, file.crc);\n wbytes(dd, 8, cl_1);\n wbytes(dd, 12, file.size);\n chks_1.push(dd);\n uf_1.c = cl_1, uf_1.b = hl_1 + cl_1 + 16, uf_1.crc = file.crc, uf_1.size = file.size;\n if (tr_1)\n uf_1.r();\n tr_1 = 1;\n }\n else if (tr_1)\n pAll_1();\n }\n };\n this.u.push(uf_1);\n }\n };\n /**\n * Ends the process of adding files and prepares to emit the final chunks.\n * This *must* be called after adding all desired files for the resulting\n * ZIP file to work properly.\n */\n Zip.prototype.end = function () {\n var _this = this;\n if (this.d & 2) {\n this.ondata(err(4 + (this.d & 1) * 8, 0, 1), null, true);\n return;\n }\n if (this.d)\n this.e();\n else\n this.u.push({\n r: function () {\n if (!(_this.d & 1))\n return;\n _this.u.splice(-1, 1);\n _this.e();\n },\n t: function () { }\n });\n this.d = 3;\n };\n Zip.prototype.e = function () {\n var bt = 0, l = 0, tl = 0;\n for (var _i = 0, _a = this.u; _i < _a.length; _i++) {\n var f = _a[_i];\n tl += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0);\n }\n var out = new u8(tl + 22);\n for (var _b = 0, _c = this.u; _b < _c.length; _b++) {\n var f = _c[_b];\n wzh(out, bt, f, f.f, f.u, -f.c - 2, l, f.o);\n bt += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0), l += f.b;\n }\n wzf(out, bt, this.u.length, tl, l);\n this.ondata(null, out, true);\n this.d = 2;\n };\n /**\n * A method to terminate any internal workers used by the stream. Subsequent\n * calls to add() will fail.\n */\n Zip.prototype.terminate = function () {\n for (var _i = 0, _a = this.u; _i < _a.length; _i++) {\n var f = _a[_i];\n f.t();\n }\n this.d = 2;\n };\n return Zip;\n}());\nexport { Zip };\nexport function zip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n var r = {};\n fltn(data, '', r, opts);\n var k = Object.keys(r);\n var lft = k.length, o = 0, tot = 0;\n var slft = lft, files = new Array(lft);\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var cbd = function (a, b) {\n mt(function () { cb(a, b); });\n };\n mt(function () { cbd = cb; });\n var cbf = function () {\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n tot = 0;\n for (var i = 0; i < slft; ++i) {\n var f = files[i];\n try {\n var l = f.c.length;\n wzh(out, tot, f, f.f, f.u, l);\n var badd = 30 + f.f.length + exfl(f.extra);\n var loc = tot + badd;\n out.set(f.c, loc);\n wzh(out, o, f, f.f, f.u, l, tot, f.m), o += 16 + badd + (f.m ? f.m.length : 0), tot = loc + l;\n }\n catch (e) {\n return cbd(e, null);\n }\n }\n wzf(out, o, files.length, cdl, oe);\n cbd(null, out);\n };\n if (!lft)\n cbf();\n var _loop_1 = function (i) {\n var fn = k[i];\n var _a = r[fn], file = _a[0], p = _a[1];\n var c = crc(), size = file.length;\n c.p(file);\n var f = strToU8(fn), s = f.length;\n var com = p.comment, m = com && strToU8(com), ms = m && m.length;\n var exl = exfl(p.extra);\n var compression = p.level == 0 ? 0 : 8;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cbd(e, null);\n }\n else {\n var l = d.length;\n files[i] = mrg(p, {\n size: size,\n crc: c.d(),\n c: d,\n f: f,\n m: m,\n u: s != fn.length || (m && (com.length != ms)),\n compression: compression\n });\n o += 30 + s + exl + l;\n tot += 76 + 2 * (s + exl) + (ms || 0) + l;\n if (!--lft)\n cbf();\n }\n };\n if (s > 65535)\n cbl(err(11, 0, 1), null);\n if (!compression)\n cbl(null, file);\n else if (size < 160000) {\n try {\n cbl(null, deflateSync(file, p));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(deflate(file, p, cbl));\n };\n // Cannot use lft because it can decrease\n for (var i = 0; i < slft; ++i) {\n _loop_1(i);\n }\n return tAll;\n}\n/**\n * Synchronously creates a ZIP file. Prefer using `zip` for better performance\n * with more than one file.\n * @param data The directory structure for the ZIP archive\n * @param opts The main options, merged with per-file options\n * @returns The generated ZIP archive\n */\nexport function zipSync(data, opts) {\n if (!opts)\n opts = {};\n var r = {};\n var files = [];\n fltn(data, '', r, opts);\n var o = 0;\n var tot = 0;\n for (var fn in r) {\n var _a = r[fn], file = _a[0], p = _a[1];\n var compression = p.level == 0 ? 0 : 8;\n var f = strToU8(fn), s = f.length;\n var com = p.comment, m = com && strToU8(com), ms = m && m.length;\n var exl = exfl(p.extra);\n if (s > 65535)\n err(11);\n var d = compression ? deflateSync(file, p) : file, l = d.length;\n var c = crc();\n c.p(file);\n files.push(mrg(p, {\n size: file.length,\n crc: c.d(),\n c: d,\n f: f,\n m: m,\n u: s != fn.length || (m && (com.length != ms)),\n o: o,\n compression: compression\n }));\n o += 30 + s + exl + l;\n tot += 76 + 2 * (s + exl) + (ms || 0) + l;\n }\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n for (var i = 0; i < files.length; ++i) {\n var f = files[i];\n wzh(out, f.o, f, f.f, f.u, f.c.length);\n var badd = 30 + f.f.length + exfl(f.extra);\n out.set(f.c, f.o + badd);\n wzh(out, o, f, f.f, f.u, f.c.length, f.o, f.m), o += 16 + badd + (f.m ? f.m.length : 0);\n }\n wzf(out, o, files.length, cdl, oe);\n return out;\n}\n/**\n * Streaming pass-through decompression for ZIP archives\n */\nvar UnzipPassThrough = /*#__PURE__*/ (function () {\n function UnzipPassThrough() {\n }\n UnzipPassThrough.prototype.push = function (data, final) {\n this.ondata(null, data, final);\n };\n UnzipPassThrough.compression = 0;\n return UnzipPassThrough;\n}());\nexport { UnzipPassThrough };\n/**\n * Streaming DEFLATE decompression for ZIP archives. Prefer AsyncZipInflate for\n * better performance.\n */\nvar UnzipInflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE decompression that can be used in ZIP archives\n */\n function UnzipInflate() {\n var _this = this;\n this.i = new Inflate(function (dat, final) {\n _this.ondata(null, dat, final);\n });\n }\n UnzipInflate.prototype.push = function (data, final) {\n try {\n this.i.push(data, final);\n }\n catch (e) {\n this.ondata(e, null, final);\n }\n };\n UnzipInflate.compression = 8;\n return UnzipInflate;\n}());\nexport { UnzipInflate };\n/**\n * Asynchronous streaming DEFLATE decompression for ZIP archives\n */\nvar AsyncUnzipInflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE decompression that can be used in ZIP archives\n */\n function AsyncUnzipInflate(_, sz) {\n var _this = this;\n if (sz < 320000) {\n this.i = new Inflate(function (dat, final) {\n _this.ondata(null, dat, final);\n });\n }\n else {\n this.i = new AsyncInflate(function (err, dat, final) {\n _this.ondata(err, dat, final);\n });\n this.terminate = this.i.terminate;\n }\n }\n AsyncUnzipInflate.prototype.push = function (data, final) {\n if (this.i.terminate)\n data = slc(data, 0);\n this.i.push(data, final);\n };\n AsyncUnzipInflate.compression = 8;\n return AsyncUnzipInflate;\n}());\nexport { AsyncUnzipInflate };\n/**\n * A ZIP archive decompression stream that emits files as they are discovered\n */\nvar Unzip = /*#__PURE__*/ (function () {\n /**\n * Creates a ZIP decompression stream\n * @param cb The callback to call whenever a file in the ZIP archive is found\n */\n function Unzip(cb) {\n this.onfile = cb;\n this.k = [];\n this.o = {\n 0: UnzipPassThrough\n };\n this.p = et;\n }\n /**\n * Pushes a chunk to be unzipped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Unzip.prototype.push = function (chunk, final) {\n var _this = this;\n if (!this.onfile)\n err(5);\n if (!this.p)\n err(4);\n if (this.c > 0) {\n var len = Math.min(this.c, chunk.length);\n var toAdd = chunk.subarray(0, len);\n this.c -= len;\n if (this.d)\n this.d.push(toAdd, !this.c);\n else\n this.k[0].push(toAdd);\n chunk = chunk.subarray(len);\n if (chunk.length)\n return this.push(chunk, final);\n }\n else {\n var f = 0, i = 0, is = void 0, buf = void 0;\n if (!this.p.length)\n buf = chunk;\n else if (!chunk.length)\n buf = this.p;\n else {\n buf = new u8(this.p.length + chunk.length);\n buf.set(this.p), buf.set(chunk, this.p.length);\n }\n var l = buf.length, oc = this.c, add = oc && this.d;\n var _loop_2 = function () {\n var _a;\n var sig = b4(buf, i);\n if (sig == 0x4034B50) {\n f = 1, is = i;\n this_1.d = null;\n this_1.c = 0;\n var bf = b2(buf, i + 6), cmp_1 = b2(buf, i + 8), u = bf & 2048, dd = bf & 8, fnl = b2(buf, i + 26), es = b2(buf, i + 28);\n if (l > i + 30 + fnl + es) {\n var chks_3 = [];\n this_1.k.unshift(chks_3);\n f = 2;\n var sc_1 = b4(buf, i + 18), su_1 = b4(buf, i + 22);\n var fn_1 = strFromU8(buf.subarray(i + 30, i += 30 + fnl), !u);\n if (sc_1 == 4294967295) {\n _a = dd ? [-2] : z64e(buf, i), sc_1 = _a[0], su_1 = _a[1];\n }\n else if (dd)\n sc_1 = -1;\n i += es;\n this_1.c = sc_1;\n var d_1;\n var file_1 = {\n name: fn_1,\n compression: cmp_1,\n start: function () {\n if (!file_1.ondata)\n err(5);\n if (!sc_1)\n file_1.ondata(null, et, true);\n else {\n var ctr = _this.o[cmp_1];\n if (!ctr)\n file_1.ondata(err(14, 'unknown compression type ' + cmp_1, 1), null, false);\n d_1 = sc_1 < 0 ? new ctr(fn_1) : new ctr(fn_1, sc_1, su_1);\n d_1.ondata = function (err, dat, final) { file_1.ondata(err, dat, final); };\n for (var _i = 0, chks_4 = chks_3; _i < chks_4.length; _i++) {\n var dat = chks_4[_i];\n d_1.push(dat, false);\n }\n if (_this.k[0] == chks_3 && _this.c)\n _this.d = d_1;\n else\n d_1.push(et, true);\n }\n },\n terminate: function () {\n if (d_1 && d_1.terminate)\n d_1.terminate();\n }\n };\n if (sc_1 >= 0)\n file_1.size = sc_1, file_1.originalSize = su_1;\n this_1.onfile(file_1);\n }\n return \"break\";\n }\n else if (oc) {\n if (sig == 0x8074B50) {\n is = i += 12 + (oc == -2 && 8), f = 3, this_1.c = 0;\n return \"break\";\n }\n else if (sig == 0x2014B50) {\n is = i -= 4, f = 3, this_1.c = 0;\n return \"break\";\n }\n }\n };\n var this_1 = this;\n for (; i < l - 4; ++i) {\n var state_1 = _loop_2();\n if (state_1 === \"break\")\n break;\n }\n this.p = et;\n if (oc < 0) {\n var dat = f ? buf.subarray(0, is - 12 - (oc == -2 && 8) - (b4(buf, is - 16) == 0x8074B50 && 4)) : buf.subarray(0, i);\n if (add)\n add.push(dat, !!f);\n else\n this.k[+(f == 2)].push(dat);\n }\n if (f & 2)\n return this.push(buf.subarray(i), final);\n this.p = buf.subarray(i);\n }\n if (final) {\n if (this.c)\n err(13);\n this.p = null;\n }\n };\n /**\n * Registers a decoder with the stream, allowing for files compressed with\n * the compression type provided to be expanded correctly\n * @param decoder The decoder constructor\n */\n Unzip.prototype.register = function (decoder) {\n this.o[decoder.compression] = decoder;\n };\n return Unzip;\n}());\nexport { Unzip };\nvar mt = typeof queueMicrotask == 'function' ? queueMicrotask : typeof setTimeout == 'function' ? setTimeout : function (fn) { fn(); };\nexport function unzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var files = {};\n var cbd = function (a, b) {\n mt(function () { cb(a, b); });\n };\n mt(function () { cbd = cb; });\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558) {\n cbd(err(13, 0, 1), null);\n return tAll;\n }\n }\n ;\n var lft = b2(data, e + 8);\n if (lft) {\n var c = lft;\n var o = b4(data, e + 16);\n var z = o == 4294967295 || c == 65535;\n if (z) {\n var ze = b4(data, e - 12);\n z = b4(data, ze) == 0x6064B50;\n if (z) {\n c = lft = b4(data, ze + 32);\n o = b4(data, ze + 48);\n }\n }\n var fltr = opts && opts.filter;\n var _loop_3 = function (i) {\n var _a = zh(data, o, z), c_1 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cbd(e, null);\n }\n else {\n if (d)\n files[fn] = d;\n if (!--lft)\n cbd(null, files);\n }\n };\n if (!fltr || fltr({\n name: fn,\n size: sc,\n originalSize: su,\n compression: c_1\n })) {\n if (!c_1)\n cbl(null, slc(data, b, b + sc));\n else if (c_1 == 8) {\n var infl = data.subarray(b, b + sc);\n // Synchronously decompress under 512KB, or barely-compressed data\n if (su < 524288 || sc > 0.8 * su) {\n try {\n cbl(null, inflateSync(infl, { out: new u8(su) }));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(inflate(infl, { size: su }, cbl));\n }\n else\n cbl(err(14, 'unknown compression type ' + c_1, 1), null);\n }\n else\n cbl(null, null);\n };\n for (var i = 0; i < c; ++i) {\n _loop_3(i);\n }\n }\n else\n cbd(null, {});\n return tAll;\n}\n/**\n * Synchronously decompresses a ZIP archive. Prefer using `unzip` for better\n * performance with more than one file.\n * @param data The raw compressed ZIP file\n * @param opts The ZIP extraction options\n * @returns The decompressed files\n */\nexport function unzipSync(data, opts) {\n var files = {};\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558)\n err(13);\n }\n ;\n var c = b2(data, e + 8);\n if (!c)\n return {};\n var o = b4(data, e + 16);\n var z = o == 4294967295 || c == 65535;\n if (z) {\n var ze = b4(data, e - 12);\n z = b4(data, ze) == 0x6064B50;\n if (z) {\n c = b4(data, ze + 32);\n o = b4(data, ze + 48);\n }\n }\n var fltr = opts && opts.filter;\n for (var i = 0; i < c; ++i) {\n var _a = zh(data, o, z), c_2 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n if (!fltr || fltr({\n name: fn,\n size: sc,\n originalSize: su,\n compression: c_2\n })) {\n if (!c_2)\n files[fn] = slc(data, b, b + sc);\n else if (c_2 == 8)\n files[fn] = inflateSync(data.subarray(b, b + sc), { out: new u8(su) });\n else\n err(14, 'unknown compression type ' + c_2);\n }\n }\n return files;\n}\n","/** @license\n *\n * jsPDF - PDF Document creation from JavaScript\n * Version 3.0.0 Built on 2025-02-19T09:26:58.791Z\n * CommitID 00000000\n *\n * Copyright (c) 2010-2021 James Hall , https://github.com/MrRio/jsPDF\n * 2015-2021 yWorks GmbH, http://www.yworks.com\n * 2015-2021 Lukas Holländer , https://github.com/HackbrettXXX\n * 2016-2018 Aras Abbasi \n * 2010 Aaron Spike, https://github.com/acspike\n * 2012 Willow Systems Corporation, https://github.com/willowsystems\n * 2012 Pablo Hess, https://github.com/pablohess\n * 2012 Florian Jenett, https://github.com/fjenett\n * 2013 Warren Weckesser, https://github.com/warrenweckesser\n * 2013 Youssef Beddad, https://github.com/lifof\n * 2013 Lee Driscoll, https://github.com/lsdriscoll\n * 2013 Stefan Slonevskiy, https://github.com/stefslon\n * 2013 Jeremy Morel, https://github.com/jmorel\n * 2013 Christoph Hartmann, https://github.com/chris-rock\n * 2014 Juan Pablo Gaviria, https://github.com/juanpgaviria\n * 2014 James Makes, https://github.com/dollaruw\n * 2014 Diego Casorran, https://github.com/diegocr\n * 2014 Steven Spungin, https://github.com/Flamenco\n * 2014 Kenneth Glassey, https://github.com/Gavvers\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a 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\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n *\n * Contributor(s):\n * siefkenj, ahwolf, rickygu, Midnith, saintclair, eaparango,\n * kim3er, mfo, alnorth, Flamenco\n */\n\nimport t from\"@babel/runtime/helpers/typeof\";import{zlibSync as e,unzlibSync as r}from\"fflate\";var n=function(){return\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:this}();function i(){n.console&&\"function\"==typeof n.console.log&&n.console.log.apply(n.console,arguments)}var a={log:i,warn:function(t){n.console&&(\"function\"==typeof n.console.warn?n.console.warn.apply(n.console,arguments):i.call(null,arguments))},error:function(t){n.console&&(\"function\"==typeof n.console.error?n.console.error.apply(n.console,arguments):i(t))}};function o(t,e,r){var n=new XMLHttpRequest;n.open(\"GET\",t),n.responseType=\"blob\",n.onload=function(){l(n.response,e,r)},n.onerror=function(){a.error(\"could not download file\")},n.send()}function s(t){var e=new XMLHttpRequest;e.open(\"HEAD\",t,!1);try{e.send()}catch(t){}return e.status>=200&&e.status<=299}function c(t){try{t.dispatchEvent(new MouseEvent(\"click\"))}catch(r){var e=document.createEvent(\"MouseEvents\");e.initMouseEvent(\"click\",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),t.dispatchEvent(e)}}var u,h,l=n.saveAs||(\"object\"!==(\"undefined\"==typeof window?\"undefined\":t(window))||window!==n?function(){}:\"undefined\"!=typeof HTMLAnchorElement&&\"download\"in HTMLAnchorElement.prototype?function(t,e,r){var i=n.URL||n.webkitURL,a=document.createElement(\"a\");e=e||t.name||\"download\",a.download=e,a.rel=\"noopener\",\"string\"==typeof t?(a.href=t,a.origin!==location.origin?s(a.href)?o(t,e,r):c(a,a.target=\"_blank\"):c(a)):(a.href=i.createObjectURL(t),setTimeout((function(){i.revokeObjectURL(a.href)}),4e4),setTimeout((function(){c(a)}),0))}:\"msSaveOrOpenBlob\"in navigator?function(e,r,n){if(r=r||e.name||\"download\",\"string\"==typeof e)if(s(e))o(e,r,n);else{var i=document.createElement(\"a\");i.href=e,i.target=\"_blank\",setTimeout((function(){c(i)}))}else navigator.msSaveOrOpenBlob(function(e,r){return void 0===r?r={autoBom:!1}:\"object\"!==t(r)&&(a.warn(\"Deprecated: Expected third argument to be a object\"),r={autoBom:!r}),r.autoBom&&/^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(e.type)?new Blob([String.fromCharCode(65279),e],{type:e.type}):e}(e,n),r)}:function(e,r,i,a){if((a=a||open(\"\",\"_blank\"))&&(a.document.title=a.document.body.innerText=\"downloading...\"),\"string\"==typeof e)return o(e,r,i);var s=\"application/octet-stream\"===e.type,c=/constructor/i.test(n.HTMLElement)||n.safari,u=/CriOS\\/[\\d]+/.test(navigator.userAgent);if((u||s&&c)&&\"object\"===(\"undefined\"==typeof FileReader?\"undefined\":t(FileReader))){var h=new FileReader;h.onloadend=function(){var t=h.result;t=u?t:t.replace(/^data:[^;]*;/,\"data:attachment/file;\"),a?a.location.href=t:location=t,a=null},h.readAsDataURL(e)}else{var l=n.URL||n.webkitURL,f=l.createObjectURL(e);a?a.location=f:location.href=f,a=null,setTimeout((function(){l.revokeObjectURL(f)}),4e4)}});\n/**\n * A class to parse color values\n * @author Stoyan Stefanov \n * {@link http://www.phpied.com/rgb-color-parser-in-javascript/}\n * @license Use it if you like it\n */function f(t){var e;t=t||\"\",this.ok=!1,\"#\"==t.charAt(0)&&(t=t.substr(1,6));t={aliceblue:\"f0f8ff\",antiquewhite:\"faebd7\",aqua:\"00ffff\",aquamarine:\"7fffd4\",azure:\"f0ffff\",beige:\"f5f5dc\",bisque:\"ffe4c4\",black:\"000000\",blanchedalmond:\"ffebcd\",blue:\"0000ff\",blueviolet:\"8a2be2\",brown:\"a52a2a\",burlywood:\"deb887\",cadetblue:\"5f9ea0\",chartreuse:\"7fff00\",chocolate:\"d2691e\",coral:\"ff7f50\",cornflowerblue:\"6495ed\",cornsilk:\"fff8dc\",crimson:\"dc143c\",cyan:\"00ffff\",darkblue:\"00008b\",darkcyan:\"008b8b\",darkgoldenrod:\"b8860b\",darkgray:\"a9a9a9\",darkgreen:\"006400\",darkkhaki:\"bdb76b\",darkmagenta:\"8b008b\",darkolivegreen:\"556b2f\",darkorange:\"ff8c00\",darkorchid:\"9932cc\",darkred:\"8b0000\",darksalmon:\"e9967a\",darkseagreen:\"8fbc8f\",darkslateblue:\"483d8b\",darkslategray:\"2f4f4f\",darkturquoise:\"00ced1\",darkviolet:\"9400d3\",deeppink:\"ff1493\",deepskyblue:\"00bfff\",dimgray:\"696969\",dodgerblue:\"1e90ff\",feldspar:\"d19275\",firebrick:\"b22222\",floralwhite:\"fffaf0\",forestgreen:\"228b22\",fuchsia:\"ff00ff\",gainsboro:\"dcdcdc\",ghostwhite:\"f8f8ff\",gold:\"ffd700\",goldenrod:\"daa520\",gray:\"808080\",green:\"008000\",greenyellow:\"adff2f\",honeydew:\"f0fff0\",hotpink:\"ff69b4\",indianred:\"cd5c5c\",indigo:\"4b0082\",ivory:\"fffff0\",khaki:\"f0e68c\",lavender:\"e6e6fa\",lavenderblush:\"fff0f5\",lawngreen:\"7cfc00\",lemonchiffon:\"fffacd\",lightblue:\"add8e6\",lightcoral:\"f08080\",lightcyan:\"e0ffff\",lightgoldenrodyellow:\"fafad2\",lightgrey:\"d3d3d3\",lightgreen:\"90ee90\",lightpink:\"ffb6c1\",lightsalmon:\"ffa07a\",lightseagreen:\"20b2aa\",lightskyblue:\"87cefa\",lightslateblue:\"8470ff\",lightslategray:\"778899\",lightsteelblue:\"b0c4de\",lightyellow:\"ffffe0\",lime:\"00ff00\",limegreen:\"32cd32\",linen:\"faf0e6\",magenta:\"ff00ff\",maroon:\"800000\",mediumaquamarine:\"66cdaa\",mediumblue:\"0000cd\",mediumorchid:\"ba55d3\",mediumpurple:\"9370d8\",mediumseagreen:\"3cb371\",mediumslateblue:\"7b68ee\",mediumspringgreen:\"00fa9a\",mediumturquoise:\"48d1cc\",mediumvioletred:\"c71585\",midnightblue:\"191970\",mintcream:\"f5fffa\",mistyrose:\"ffe4e1\",moccasin:\"ffe4b5\",navajowhite:\"ffdead\",navy:\"000080\",oldlace:\"fdf5e6\",olive:\"808000\",olivedrab:\"6b8e23\",orange:\"ffa500\",orangered:\"ff4500\",orchid:\"da70d6\",palegoldenrod:\"eee8aa\",palegreen:\"98fb98\",paleturquoise:\"afeeee\",palevioletred:\"d87093\",papayawhip:\"ffefd5\",peachpuff:\"ffdab9\",peru:\"cd853f\",pink:\"ffc0cb\",plum:\"dda0dd\",powderblue:\"b0e0e6\",purple:\"800080\",red:\"ff0000\",rosybrown:\"bc8f8f\",royalblue:\"4169e1\",saddlebrown:\"8b4513\",salmon:\"fa8072\",sandybrown:\"f4a460\",seagreen:\"2e8b57\",seashell:\"fff5ee\",sienna:\"a0522d\",silver:\"c0c0c0\",skyblue:\"87ceeb\",slateblue:\"6a5acd\",slategray:\"708090\",snow:\"fffafa\",springgreen:\"00ff7f\",steelblue:\"4682b4\",tan:\"d2b48c\",teal:\"008080\",thistle:\"d8bfd8\",tomato:\"ff6347\",turquoise:\"40e0d0\",violet:\"ee82ee\",violetred:\"d02090\",wheat:\"f5deb3\",white:\"ffffff\",whitesmoke:\"f5f5f5\",yellow:\"ffff00\",yellowgreen:\"9acd32\"}[t=(t=t.replace(/ /g,\"\")).toLowerCase()]||t;for(var r=[{re:/^rgb\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3})\\)$/,example:[\"rgb(123, 234, 45)\",\"rgb(255,234,245)\"],process:function(t){return[parseInt(t[1]),parseInt(t[2]),parseInt(t[3])]}},{re:/^(\\w{2})(\\w{2})(\\w{2})$/,example:[\"#00ff00\",\"336699\"],process:function(t){return[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16)]}},{re:/^(\\w{1})(\\w{1})(\\w{1})$/,example:[\"#fb0\",\"f0f\"],process:function(t){return[parseInt(t[1]+t[1],16),parseInt(t[2]+t[2],16),parseInt(t[3]+t[3],16)]}}],n=0;n255?255:this.r,this.g=this.g<0||isNaN(this.g)?0:this.g>255?255:this.g,this.b=this.b<0||isNaN(this.b)?0:this.b>255?255:this.b,this.toRGB=function(){return\"rgb(\"+this.r+\", \"+this.g+\", \"+this.b+\")\"},this.toHex=function(){var t=this.r.toString(16),e=this.g.toString(16),r=this.b.toString(16);return 1==t.length&&(t=\"0\"+t),1==e.length&&(e=\"0\"+e),1==r.length&&(r=\"0\"+r),\"#\"+t+e+r}}\n/**\n * @license\n * Joseph Myers does not specify a particular license for his work.\n *\n * Author: Joseph Myers\n * Accessed from: http://www.myersdaily.org/joseph/javascript/md5.js\n *\n * Modified by: Owen Leong\n */\nfunction d(t,e){var r=t[0],n=t[1],i=t[2],a=t[3];r=g(r,n,i,a,e[0],7,-680876936),a=g(a,r,n,i,e[1],12,-389564586),i=g(i,a,r,n,e[2],17,606105819),n=g(n,i,a,r,e[3],22,-1044525330),r=g(r,n,i,a,e[4],7,-176418897),a=g(a,r,n,i,e[5],12,1200080426),i=g(i,a,r,n,e[6],17,-1473231341),n=g(n,i,a,r,e[7],22,-45705983),r=g(r,n,i,a,e[8],7,1770035416),a=g(a,r,n,i,e[9],12,-1958414417),i=g(i,a,r,n,e[10],17,-42063),n=g(n,i,a,r,e[11],22,-1990404162),r=g(r,n,i,a,e[12],7,1804603682),a=g(a,r,n,i,e[13],12,-40341101),i=g(i,a,r,n,e[14],17,-1502002290),r=m(r,n=g(n,i,a,r,e[15],22,1236535329),i,a,e[1],5,-165796510),a=m(a,r,n,i,e[6],9,-1069501632),i=m(i,a,r,n,e[11],14,643717713),n=m(n,i,a,r,e[0],20,-373897302),r=m(r,n,i,a,e[5],5,-701558691),a=m(a,r,n,i,e[10],9,38016083),i=m(i,a,r,n,e[15],14,-660478335),n=m(n,i,a,r,e[4],20,-405537848),r=m(r,n,i,a,e[9],5,568446438),a=m(a,r,n,i,e[14],9,-1019803690),i=m(i,a,r,n,e[3],14,-187363961),n=m(n,i,a,r,e[8],20,1163531501),r=m(r,n,i,a,e[13],5,-1444681467),a=m(a,r,n,i,e[2],9,-51403784),i=m(i,a,r,n,e[7],14,1735328473),r=v(r,n=m(n,i,a,r,e[12],20,-1926607734),i,a,e[5],4,-378558),a=v(a,r,n,i,e[8],11,-2022574463),i=v(i,a,r,n,e[11],16,1839030562),n=v(n,i,a,r,e[14],23,-35309556),r=v(r,n,i,a,e[1],4,-1530992060),a=v(a,r,n,i,e[4],11,1272893353),i=v(i,a,r,n,e[7],16,-155497632),n=v(n,i,a,r,e[10],23,-1094730640),r=v(r,n,i,a,e[13],4,681279174),a=v(a,r,n,i,e[0],11,-358537222),i=v(i,a,r,n,e[3],16,-722521979),n=v(n,i,a,r,e[6],23,76029189),r=v(r,n,i,a,e[9],4,-640364487),a=v(a,r,n,i,e[12],11,-421815835),i=v(i,a,r,n,e[15],16,530742520),r=b(r,n=v(n,i,a,r,e[2],23,-995338651),i,a,e[0],6,-198630844),a=b(a,r,n,i,e[7],10,1126891415),i=b(i,a,r,n,e[14],15,-1416354905),n=b(n,i,a,r,e[5],21,-57434055),r=b(r,n,i,a,e[12],6,1700485571),a=b(a,r,n,i,e[3],10,-1894986606),i=b(i,a,r,n,e[10],15,-1051523),n=b(n,i,a,r,e[1],21,-2054922799),r=b(r,n,i,a,e[8],6,1873313359),a=b(a,r,n,i,e[15],10,-30611744),i=b(i,a,r,n,e[6],15,-1560198380),n=b(n,i,a,r,e[13],21,1309151649),r=b(r,n,i,a,e[4],6,-145523070),a=b(a,r,n,i,e[11],10,-1120210379),i=b(i,a,r,n,e[2],15,718787259),n=b(n,i,a,r,e[9],21,-343485551),t[0]=_(r,t[0]),t[1]=_(n,t[1]),t[2]=_(i,t[2]),t[3]=_(a,t[3])}function p(t,e,r,n,i,a){return e=_(_(e,t),_(n,a)),_(e<>>32-i,r)}function g(t,e,r,n,i,a,o){return p(e&r|~e&n,t,e,i,a,o)}function m(t,e,r,n,i,a,o){return p(e&n|r&~n,t,e,i,a,o)}function v(t,e,r,n,i,a,o){return p(e^r^n,t,e,i,a,o)}function b(t,e,r,n,i,a,o){return p(r^(e|~n),t,e,i,a,o)}function y(t){var e,r=t.length,n=[1732584193,-271733879,-1732584194,271733878];for(e=64;e<=t.length;e+=64)d(n,w(t.substring(e-64,e)));t=t.substring(e-64);var i=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(e=0;e>2]|=t.charCodeAt(e)<<(e%4<<3);if(i[e>>2]|=128<<(e%4<<3),e>55)for(d(n,i),e=0;e<16;e++)i[e]=0;return i[14]=8*r,d(n,i),n}function w(t){var e,r=[];for(e=0;e<64;e+=4)r[e>>2]=t.charCodeAt(e)+(t.charCodeAt(e+1)<<8)+(t.charCodeAt(e+2)<<16)+(t.charCodeAt(e+3)<<24);return r}u=n.atob.bind(n),h=n.btoa.bind(n);var N=\"0123456789abcdef\".split(\"\");function L(t){for(var e=\"\",r=0;r<4;r++)e+=N[t>>8*r+4&15]+N[t>>8*r&15];return e}function A(t){return String.fromCharCode((255&t)>>0,(65280&t)>>8,(16711680&t)>>16,(4278190080&t)>>24)}function x(t){return y(t).map(A).join(\"\")}var S=\"5d41402abc4b2a76b9719d911017c592\"!=function(t){for(var e=0;e>16)+(e>>16)+(r>>16)<<16|65535&r}return t+e&4294967295}\n/**\n * @license\n * FPDF is released under a permissive license: there is no usage restriction.\n * You may embed it freely in your application (commercial or not), with or\n * without modifications.\n *\n * Reference: http://www.fpdf.org/en/script/script37.php\n */function P(t,e){var r,n,i,a;if(t!==r){for(var o=(i=t,a=1+(256/t.length>>0),new Array(a+1).join(i)),s=[],c=0;c<256;c++)s[c]=c;var u=0;for(c=0;c<256;c++){var h=s[c];u=(u+h+o.charCodeAt(c))%256,s[c]=s[u],s[u]=h}r=t,n=s}else s=n;var l=e.length,f=0,d=0,p=\"\";for(c=0;c€/\\f©þdSiz\";var a=(e+this.padding).substr(0,32),o=(r+this.padding).substr(0,32);this.O=this.processOwnerPassword(a,o),this.P=-(1+(255^i)),this.encryptionKey=x(a+this.O+this.lsbFirstWord(this.P)+this.hexToBytes(n)).substr(0,5),this.U=P(this.encryptionKey,this.padding)}function F(t){if(/[^\\u0000-\\u00ff]/.test(t))throw new Error(\"Invalid PDF Name Object: \"+t+\", Only accept ASCII characters.\");for(var e=\"\",r=t.length,n=0;n126)e+=\"#\"+(\"0\"+i.toString(16)).slice(-2);else e+=t[n]}return e}function C(e){if(\"object\"!==t(e))throw new Error(\"Invalid Context passed to initialize PubSub (jsPDF-module)\");var r={};this.subscribe=function(t,e,n){if(n=n||!1,\"string\"!=typeof t||\"function\"!=typeof e||\"boolean\"!=typeof n)throw new Error(\"Invalid arguments passed to PubSub.subscribe (jsPDF-module)\");r.hasOwnProperty(t)||(r[t]={});var i=Math.random().toString(35);return r[t][i]=[e,!!n],i},this.unsubscribe=function(t){for(var e in r)if(r[e][t])return delete r[e][t],0===Object.keys(r[e]).length&&delete r[e],!0;return!1},this.publish=function(t){if(r.hasOwnProperty(t)){var i=Array.prototype.slice.call(arguments,1),o=[];for(var s in r[t]){var c=r[t][s];try{c[0].apply(e,i)}catch(t){n.console&&a.error(\"jsPDF PubSub Error\",t.message,t)}c[1]&&o.push(s)}o.length&&o.forEach(this.unsubscribe)}},this.getTopics=function(){return r}}function j(t){if(!(this instanceof j))return new j(t);var e=\"opacity,stroke-opacity\".split(\",\");for(var r in t)t.hasOwnProperty(r)&&e.indexOf(r)>=0&&(this[r]=t[r]);this.id=\"\",this.objectNumber=-1}function O(t,e){this.gState=t,this.matrix=e,this.id=\"\",this.objectNumber=-1}function B(t,e,r,n,i){if(!(this instanceof B))return new B(t,e,r,n,i);this.type=\"axial\"===t?2:3,this.coords=e,this.colors=r,O.call(this,n,i)}function M(t,e,r,n,i){if(!(this instanceof M))return new M(t,e,r,n,i);this.boundingBox=t,this.xStep=e,this.yStep=r,this.stream=\"\",this.cloneIndex=0,O.call(this,n,i)}function E(e){var r,i=\"string\"==typeof arguments[0]?arguments[0]:\"p\",o=arguments[1],s=arguments[2],c=arguments[3],u=[],d=1,p=16,g=\"S\",m=null;\"object\"===t(e=e||{})&&(i=e.orientation,o=e.unit||o,s=e.format||s,c=e.compress||e.compressPdf||c,null!==(m=e.encryption||null)&&(m.userPassword=m.userPassword||\"\",m.ownerPassword=m.ownerPassword||\"\",m.userPermissions=m.userPermissions||[]),d=\"number\"==typeof e.userUnit?Math.abs(e.userUnit):1,void 0!==e.precision&&(r=e.precision),void 0!==e.floatPrecision&&(p=e.floatPrecision),g=e.defaultPathOperation||\"S\"),u=e.filters||(!0===c?[\"FlateEncode\"]:u),o=o||\"mm\",i=(\"\"+(i||\"P\")).toLowerCase();var v=e.putOnlyUsedFonts||!1,b={},y={internal:{},__private__:{}};y.__private__.PubSub=C;var w=\"1.3\",N=y.__private__.getPdfVersion=function(){return w};y.__private__.setPdfVersion=function(t){w=t};var L={a0:[2383.94,3370.39],a1:[1683.78,2383.94],a2:[1190.55,1683.78],a3:[841.89,1190.55],a4:[595.28,841.89],a5:[419.53,595.28],a6:[297.64,419.53],a7:[209.76,297.64],a8:[147.4,209.76],a9:[104.88,147.4],a10:[73.7,104.88],b0:[2834.65,4008.19],b1:[2004.09,2834.65],b2:[1417.32,2004.09],b3:[1000.63,1417.32],b4:[708.66,1000.63],b5:[498.9,708.66],b6:[354.33,498.9],b7:[249.45,354.33],b8:[175.75,249.45],b9:[124.72,175.75],b10:[87.87,124.72],c0:[2599.37,3676.54],c1:[1836.85,2599.37],c2:[1298.27,1836.85],c3:[918.43,1298.27],c4:[649.13,918.43],c5:[459.21,649.13],c6:[323.15,459.21],c7:[229.61,323.15],c8:[161.57,229.61],c9:[113.39,161.57],c10:[79.37,113.39],dl:[311.81,623.62],letter:[612,792],\"government-letter\":[576,756],legal:[612,1008],\"junior-legal\":[576,360],ledger:[1224,792],tabloid:[792,1224],\"credit-card\":[153,243]};y.__private__.getPageFormats=function(){return L};var A=y.__private__.getPageFormat=function(t){return L[t]};s=s||\"a4\";var x={COMPAT:\"compat\",ADVANCED:\"advanced\"},S=x.COMPAT;function _(){this.saveGraphicsState(),lt(new Vt(_t,0,0,-_t,0,Rr()*_t).toString()+\" cm\"),this.setFontSize(this.getFontSize()/_t),g=\"n\",S=x.ADVANCED}function P(){this.restoreGraphicsState(),g=\"S\",S=x.COMPAT}var k=y.__private__.combineFontStyleAndFontWeight=function(t,e){if(\"bold\"==t&&\"normal\"==e||\"bold\"==t&&400==e||\"normal\"==t&&\"italic\"==e||\"bold\"==t&&\"italic\"==e)throw new Error(\"Invalid Combination of fontweight and fontstyle\");return e&&(t=400==e||\"normal\"===e?\"italic\"===t?\"italic\":\"normal\":700!=e&&\"bold\"!==e||\"normal\"!==t?(700==e?\"bold\":e)+\"\"+t:\"bold\"),t};y.advancedAPI=function(t){var e=S===x.COMPAT;return e&&_.call(this),\"function\"!=typeof t||(t(this),e&&P.call(this)),this},y.compatAPI=function(t){var e=S===x.ADVANCED;return e&&P.call(this),\"function\"!=typeof t||(t(this),e&&_.call(this)),this},y.isAdvancedAPI=function(){return S===x.ADVANCED};var O,q=function(t){if(S!==x.ADVANCED)throw new Error(t+\" is only available in 'advanced' API mode. You need to call advancedAPI() first.\")},D=y.roundToPrecision=y.__private__.roundToPrecision=function(t,e){var n=r||e;if(isNaN(t)||isNaN(n))throw new Error(\"Invalid argument passed to jsPDF.roundToPrecision\");return t.toFixed(n).replace(/0+$/,\"\")};O=y.hpf=y.__private__.hpf=\"number\"==typeof p?function(t){if(isNaN(t))throw new Error(\"Invalid argument passed to jsPDF.hpf\");return D(t,p)}:\"smart\"===p?function(t){if(isNaN(t))throw new Error(\"Invalid argument passed to jsPDF.hpf\");return D(t,t>-1&&t<1?16:5)}:function(t){if(isNaN(t))throw new Error(\"Invalid argument passed to jsPDF.hpf\");return D(t,16)};var R=y.f2=y.__private__.f2=function(t){if(isNaN(t))throw new Error(\"Invalid argument passed to jsPDF.f2\");return D(t,2)},T=y.__private__.f3=function(t){if(isNaN(t))throw new Error(\"Invalid argument passed to jsPDF.f3\");return D(t,3)},U=y.scale=y.__private__.scale=function(t){if(isNaN(t))throw new Error(\"Invalid argument passed to jsPDF.scale\");return S===x.COMPAT?t*_t:S===x.ADVANCED?t:void 0},z=function(t){return S===x.COMPAT?Rr()-t:S===x.ADVANCED?t:void 0},H=function(t){return U(z(t))};y.__private__.setPrecision=y.setPrecision=function(t){\"number\"==typeof parseInt(t,10)&&(r=parseInt(t,10))};var W,V=\"00000000000000000000000000000000\",G=y.__private__.getFileId=function(){return V},Y=y.__private__.setFileId=function(t){return V=void 0!==t&&/^[a-fA-F0-9]{32}$/.test(t)?t.toUpperCase():V.split(\"\").map((function(){return\"ABCDEF0123456789\".charAt(Math.floor(16*Math.random()))})).join(\"\"),null!==m&&(Ye=new I(m.userPermissions,m.userPassword,m.ownerPassword,V)),V};y.setFileId=function(t){return Y(t),this},y.getFileId=function(){return G()};var J=y.__private__.convertDateToPDFDate=function(t){var e=t.getTimezoneOffset(),r=e<0?\"+\":\"-\",n=Math.floor(Math.abs(e/60)),i=Math.abs(e%60),a=[r,Q(n),\"'\",Q(i),\"'\"].join(\"\");return[\"D:\",t.getFullYear(),Q(t.getMonth()+1),Q(t.getDate()),Q(t.getHours()),Q(t.getMinutes()),Q(t.getSeconds()),a].join(\"\")},X=y.__private__.convertPDFDateToDate=function(t){var e=parseInt(t.substr(2,4),10),r=parseInt(t.substr(6,2),10)-1,n=parseInt(t.substr(8,2),10),i=parseInt(t.substr(10,2),10),a=parseInt(t.substr(12,2),10),o=parseInt(t.substr(14,2),10);return new Date(e,r,n,i,a,o,0)},K=y.__private__.setCreationDate=function(t){var e;if(void 0===t&&(t=new Date),t instanceof Date)e=J(t);else{if(!/^D:(20[0-2][0-9]|203[0-7]|19[7-9][0-9])(0[0-9]|1[0-2])([0-2][0-9]|3[0-1])(0[0-9]|1[0-9]|2[0-3])(0[0-9]|[1-5][0-9])(0[0-9]|[1-5][0-9])(\\+0[0-9]|\\+1[0-4]|-0[0-9]|-1[0-1])'(0[0-9]|[1-5][0-9])'?$/.test(t))throw new Error(\"Invalid argument passed to jsPDF.setCreationDate\");e=t}return W=e},Z=y.__private__.getCreationDate=function(t){var e=W;return\"jsDate\"===t&&(e=X(W)),e};y.setCreationDate=function(t){return K(t),this},y.getCreationDate=function(t){return Z(t)};var $,Q=y.__private__.padd2=function(t){return(\"0\"+parseInt(t)).slice(-2)},tt=y.__private__.padd2Hex=function(t){return(\"00\"+(t=t.toString())).substr(t.length)},et=0,rt=[],nt=[],it=0,at=[],ot=[],st=!1,ct=nt,ut=function(){et=0,it=0,nt=[],rt=[],at=[],Qt=Kt(),te=Kt()};y.__private__.setCustomOutputDestination=function(t){st=!0,ct=t};var ht=function(t){st||(ct=t)};y.__private__.resetCustomOutputDestination=function(){st=!1,ct=nt};var lt=y.__private__.out=function(t){return t=t.toString(),it+=t.length+1,ct.push(t),ct},ft=y.__private__.write=function(t){return lt(1===arguments.length?t.toString():Array.prototype.join.call(arguments,\" \"))},dt=y.__private__.getArrayBuffer=function(t){for(var e=t.length,r=new ArrayBuffer(e),n=new Uint8Array(r);e--;)n[e]=t.charCodeAt(e);return r},pt=[[\"Helvetica\",\"helvetica\",\"normal\",\"WinAnsiEncoding\"],[\"Helvetica-Bold\",\"helvetica\",\"bold\",\"WinAnsiEncoding\"],[\"Helvetica-Oblique\",\"helvetica\",\"italic\",\"WinAnsiEncoding\"],[\"Helvetica-BoldOblique\",\"helvetica\",\"bolditalic\",\"WinAnsiEncoding\"],[\"Courier\",\"courier\",\"normal\",\"WinAnsiEncoding\"],[\"Courier-Bold\",\"courier\",\"bold\",\"WinAnsiEncoding\"],[\"Courier-Oblique\",\"courier\",\"italic\",\"WinAnsiEncoding\"],[\"Courier-BoldOblique\",\"courier\",\"bolditalic\",\"WinAnsiEncoding\"],[\"Times-Roman\",\"times\",\"normal\",\"WinAnsiEncoding\"],[\"Times-Bold\",\"times\",\"bold\",\"WinAnsiEncoding\"],[\"Times-Italic\",\"times\",\"italic\",\"WinAnsiEncoding\"],[\"Times-BoldItalic\",\"times\",\"bolditalic\",\"WinAnsiEncoding\"],[\"ZapfDingbats\",\"zapfdingbats\",\"normal\",null],[\"Symbol\",\"symbol\",\"normal\",null]];y.__private__.getStandardFonts=function(){return pt};var gt=e.fontSize||16;y.__private__.setFontSize=y.setFontSize=function(t){return gt=S===x.ADVANCED?t/_t:t,this};var mt,vt=y.__private__.getFontSize=y.getFontSize=function(){return S===x.COMPAT?gt:gt*_t},bt=e.R2L||!1;y.__private__.setR2L=y.setR2L=function(t){return bt=t,this},y.__private__.getR2L=y.getR2L=function(){return bt};var yt,wt=y.__private__.setZoomMode=function(t){var e=[void 0,null,\"fullwidth\",\"fullheight\",\"fullpage\",\"original\"];if(/^(?:\\d+\\.\\d*|\\d*\\.\\d+|\\d+)%$/.test(t))mt=t;else if(isNaN(t)){if(-1===e.indexOf(t))throw new Error('zoom must be Integer (e.g. 2), a percentage Value (e.g. 300%) or fullwidth, fullheight, fullpage, original. \"'+t+'\" is not recognized.');mt=t}else mt=parseInt(t,10)};y.__private__.getZoomMode=function(){return mt};var Nt,Lt=y.__private__.setPageMode=function(t){if(-1==[void 0,null,\"UseNone\",\"UseOutlines\",\"UseThumbs\",\"FullScreen\"].indexOf(t))throw new Error('Page mode must be one of UseNone, UseOutlines, UseThumbs, or FullScreen. \"'+t+'\" is not recognized.');yt=t};y.__private__.getPageMode=function(){return yt};var At=y.__private__.setLayoutMode=function(t){if(-1==[void 0,null,\"continuous\",\"single\",\"twoleft\",\"tworight\",\"two\"].indexOf(t))throw new Error('Layout mode must be one of continuous, single, twoleft, tworight. \"'+t+'\" is not recognized.');Nt=t};y.__private__.getLayoutMode=function(){return Nt},y.__private__.setDisplayMode=y.setDisplayMode=function(t,e,r){return wt(t),At(e),Lt(r),this};var xt={title:\"\",subject:\"\",author:\"\",keywords:\"\",creator:\"\"};y.__private__.getDocumentProperty=function(t){if(-1===Object.keys(xt).indexOf(t))throw new Error(\"Invalid argument passed to jsPDF.getDocumentProperty\");return xt[t]},y.__private__.getDocumentProperties=function(){return xt},y.__private__.setDocumentProperties=y.setProperties=y.setDocumentProperties=function(t){for(var e in xt)xt.hasOwnProperty(e)&&t[e]&&(xt[e]=t[e]);return this},y.__private__.setDocumentProperty=function(t,e){if(-1===Object.keys(xt).indexOf(t))throw new Error(\"Invalid arguments passed to jsPDF.setDocumentProperty\");return xt[t]=e};var St,_t,Pt,kt,It,Ft={},Ct={},jt=[],Ot={},Bt={},Mt={},Et={},qt=null,Dt=0,Rt=[],Tt=new C(y),Ut=e.hotfixes||[],zt={},Ht={},Wt=[],Vt=function t(e,r,n,i,a,o){if(!(this instanceof t))return new t(e,r,n,i,a,o);isNaN(e)&&(e=1),isNaN(r)&&(r=0),isNaN(n)&&(n=0),isNaN(i)&&(i=1),isNaN(a)&&(a=0),isNaN(o)&&(o=0),this._matrix=[e,r,n,i,a,o]};Object.defineProperty(Vt.prototype,\"sx\",{get:function(){return this._matrix[0]},set:function(t){this._matrix[0]=t}}),Object.defineProperty(Vt.prototype,\"shy\",{get:function(){return this._matrix[1]},set:function(t){this._matrix[1]=t}}),Object.defineProperty(Vt.prototype,\"shx\",{get:function(){return this._matrix[2]},set:function(t){this._matrix[2]=t}}),Object.defineProperty(Vt.prototype,\"sy\",{get:function(){return this._matrix[3]},set:function(t){this._matrix[3]=t}}),Object.defineProperty(Vt.prototype,\"tx\",{get:function(){return this._matrix[4]},set:function(t){this._matrix[4]=t}}),Object.defineProperty(Vt.prototype,\"ty\",{get:function(){return this._matrix[5]},set:function(t){this._matrix[5]=t}}),Object.defineProperty(Vt.prototype,\"a\",{get:function(){return this._matrix[0]},set:function(t){this._matrix[0]=t}}),Object.defineProperty(Vt.prototype,\"b\",{get:function(){return this._matrix[1]},set:function(t){this._matrix[1]=t}}),Object.defineProperty(Vt.prototype,\"c\",{get:function(){return this._matrix[2]},set:function(t){this._matrix[2]=t}}),Object.defineProperty(Vt.prototype,\"d\",{get:function(){return this._matrix[3]},set:function(t){this._matrix[3]=t}}),Object.defineProperty(Vt.prototype,\"e\",{get:function(){return this._matrix[4]},set:function(t){this._matrix[4]=t}}),Object.defineProperty(Vt.prototype,\"f\",{get:function(){return this._matrix[5]},set:function(t){this._matrix[5]=t}}),Object.defineProperty(Vt.prototype,\"rotation\",{get:function(){return Math.atan2(this.shx,this.sx)}}),Object.defineProperty(Vt.prototype,\"scaleX\",{get:function(){return this.decompose().scale.sx}}),Object.defineProperty(Vt.prototype,\"scaleY\",{get:function(){return this.decompose().scale.sy}}),Object.defineProperty(Vt.prototype,\"isIdentity\",{get:function(){return 1===this.sx&&(0===this.shy&&(0===this.shx&&(1===this.sy&&(0===this.tx&&0===this.ty))))}}),Vt.prototype.join=function(t){return[this.sx,this.shy,this.shx,this.sy,this.tx,this.ty].map(O).join(t)},Vt.prototype.multiply=function(t){var e=t.sx*this.sx+t.shy*this.shx,r=t.sx*this.shy+t.shy*this.sy,n=t.shx*this.sx+t.sy*this.shx,i=t.shx*this.shy+t.sy*this.sy,a=t.tx*this.sx+t.ty*this.shx+this.tx,o=t.tx*this.shy+t.ty*this.sy+this.ty;return new Vt(e,r,n,i,a,o)},Vt.prototype.decompose=function(){var t=this.sx,e=this.shy,r=this.shx,n=this.sy,i=this.tx,a=this.ty,o=Math.sqrt(t*t+e*e),s=(t/=o)*r+(e/=o)*n;r-=t*s,n-=e*s;var c=Math.sqrt(r*r+n*n);return s/=c,t*(n/=c)>16&255,i=u>>8&255,a=255&u}if(void 0===i||void 0===o&&n===i&&i===a)if(\"string\"==typeof n)r=n+\" \"+s[0];else switch(e.precision){case 2:r=R(n/255)+\" \"+s[0];break;case 3:default:r=T(n/255)+\" \"+s[0]}else if(void 0===o||\"object\"===t(o)){if(o&&!isNaN(o.a)&&0===o.a)return r=[\"1.\",\"1.\",\"1.\",s[1]].join(\" \");if(\"string\"==typeof n)r=[n,i,a,s[1]].join(\" \");else switch(e.precision){case 2:r=[R(n/255),R(i/255),R(a/255),s[1]].join(\" \");break;default:case 3:r=[T(n/255),T(i/255),T(a/255),s[1]].join(\" \")}}else if(\"string\"==typeof n)r=[n,i,a,o,s[2]].join(\" \");else switch(e.precision){case 2:r=[R(n),R(i),R(a),R(o),s[2]].join(\" \");break;case 3:default:r=[T(n),T(i),T(a),T(o),s[2]].join(\" \")}return r},ne=y.__private__.getFilters=function(){return u},ie=y.__private__.putStream=function(t){var e=(t=t||{}).data||\"\",r=t.filters||ne(),n=t.alreadyAppliedFilters||[],i=t.addLength1||!1,a=e.length,o=t.objectId,s=function(t){return t};if(null!==m&&void 0===o)throw new Error(\"ObjectId must be passed to putStream for file encryption\");null!==m&&(s=Ye.encryptor(o,0));var c={};!0===r&&(r=[\"FlateEncode\"]);var u=t.additionalKeyValues||[],h=(c=void 0!==E.API.processDataByFilters?E.API.processDataByFilters(e,r):{data:e,reverseChain:[]}).reverseChain+(Array.isArray(n)?n.join(\" \"):n.toString());if(0!==c.data.length&&(u.push({key:\"Length\",value:c.data.length}),!0===i&&u.push({key:\"Length1\",value:a})),0!=h.length)if(h.split(\"/\").length-1==1)u.push({key:\"Filter\",value:h});else{u.push({key:\"Filter\",value:\"[\"+h+\"]\"});for(var l=0;l>\"),0!==c.data.length&&(lt(\"stream\"),lt(s(c.data)),lt(\"endstream\"))},ae=y.__private__.putPage=function(t){var e=t.number,r=t.data,n=t.objId,i=t.contentsObjId;Zt(n,!0),lt(\"<>\"),lt(\"endobj\");var a=r.join(\"\\n\");return S===x.ADVANCED&&(a+=\"\\nQ\"),Zt(i,!0),ie({data:a,filters:ne(),objectId:i}),lt(\"endobj\"),n},oe=y.__private__.putPages=function(){var t,e,r=[];for(t=1;t<=Dt;t++)Rt[t].objId=Kt(),Rt[t].contentsObjId=Kt();for(t=1;t<=Dt;t++)r.push(ae({number:t,data:ot[t],objId:Rt[t].objId,contentsObjId:Rt[t].contentsObjId,mediaBox:Rt[t].mediaBox,cropBox:Rt[t].cropBox,bleedBox:Rt[t].bleedBox,trimBox:Rt[t].trimBox,artBox:Rt[t].artBox,userUnit:Rt[t].userUnit,rootDictionaryObjId:Qt,resourceDictionaryObjId:te}));Zt(Qt,!0),lt(\"<>\"),lt(\"endobj\"),Tt.publish(\"postPutPages\")},se=function(t){Tt.publish(\"putFont\",{font:t,out:lt,newObject:Xt,putStream:ie}),!0!==t.isAlreadyPutted&&(t.objectNumber=Xt(),lt(\"<<\"),lt(\"/Type /Font\"),lt(\"/BaseFont /\"+F(t.postScriptName)),lt(\"/Subtype /Type1\"),\"string\"==typeof t.encoding&<(\"/Encoding /\"+t.encoding),lt(\"/FirstChar 32\"),lt(\"/LastChar 255\"),lt(\">>\"),lt(\"endobj\"))},ce=function(){for(var t in Ft)Ft.hasOwnProperty(t)&&(!1===v||!0===v&&b.hasOwnProperty(t))&&se(Ft[t])},ue=function(t){t.objectNumber=Xt();var e=[];e.push({key:\"Type\",value:\"/XObject\"}),e.push({key:\"Subtype\",value:\"/Form\"}),e.push({key:\"BBox\",value:\"[\"+[O(t.x),O(t.y),O(t.x+t.width),O(t.y+t.height)].join(\" \")+\"]\"}),e.push({key:\"Matrix\",value:\"[\"+t.matrix.toString()+\"]\"});var r=t.pages[1].join(\"\\n\");ie({data:r,additionalKeyValues:e,objectId:t.objectNumber}),lt(\"endobj\")},he=function(){for(var t in zt)zt.hasOwnProperty(t)&&ue(zt[t])},le=function(t,e){var r,n=[],i=1/(e-1);for(r=0;r<1;r+=i)n.push(r);if(n.push(1),0!=t[0].offset){var a={offset:0,color:t[0].color};t.unshift(a)}if(1!=t[t.length-1].offset){var o={offset:1,color:t[t.length-1].color};t.push(o)}for(var s=\"\",c=0,u=0;ut[c+1].offset;)c++;var h=t[c].offset,l=(r-h)/(t[c+1].offset-h),f=t[c].color,d=t[c+1].color;s+=tt(Math.round((1-l)*f[0]+l*d[0]).toString(16))+tt(Math.round((1-l)*f[1]+l*d[1]).toString(16))+tt(Math.round((1-l)*f[2]+l*d[2]).toString(16))}return s.trim()},fe=function(t,e){e||(e=21);var r=Xt(),n=le(t.colors,e),i=[];i.push({key:\"FunctionType\",value:\"0\"}),i.push({key:\"Domain\",value:\"[0.0 1.0]\"}),i.push({key:\"Size\",value:\"[\"+e+\"]\"}),i.push({key:\"BitsPerSample\",value:\"8\"}),i.push({key:\"Range\",value:\"[0.0 1.0 0.0 1.0 0.0 1.0]\"}),i.push({key:\"Decode\",value:\"[0.0 1.0 0.0 1.0 0.0 1.0]\"}),ie({data:n,additionalKeyValues:i,alreadyAppliedFilters:[\"/ASCIIHexDecode\"],objectId:r}),lt(\"endobj\"),t.objectNumber=Xt(),lt(\"<< /ShadingType \"+t.type),lt(\"/ColorSpace /DeviceRGB\");var a=\"/Coords [\"+O(parseFloat(t.coords[0]))+\" \"+O(parseFloat(t.coords[1]))+\" \";2===t.type?a+=O(parseFloat(t.coords[2]))+\" \"+O(parseFloat(t.coords[3])):a+=O(parseFloat(t.coords[2]))+\" \"+O(parseFloat(t.coords[3]))+\" \"+O(parseFloat(t.coords[4]))+\" \"+O(parseFloat(t.coords[5])),lt(a+=\"]\"),t.matrix&<(\"/Matrix [\"+t.matrix.toString()+\"]\"),lt(\"/Function \"+r+\" 0 R\"),lt(\"/Extend [true true]\"),lt(\">>\"),lt(\"endobj\")},de=function(t,e){var r=Kt(),n=Xt();e.push({resourcesOid:r,objectOid:n}),t.objectNumber=n;var i=[];i.push({key:\"Type\",value:\"/Pattern\"}),i.push({key:\"PatternType\",value:\"1\"}),i.push({key:\"PaintType\",value:\"1\"}),i.push({key:\"TilingType\",value:\"1\"}),i.push({key:\"BBox\",value:\"[\"+t.boundingBox.map(O).join(\" \")+\"]\"}),i.push({key:\"XStep\",value:O(t.xStep)}),i.push({key:\"YStep\",value:O(t.yStep)}),i.push({key:\"Resources\",value:r+\" 0 R\"}),t.matrix&&i.push({key:\"Matrix\",value:\"[\"+t.matrix.toString()+\"]\"}),ie({data:t.stream,additionalKeyValues:i,objectId:t.objectNumber}),lt(\"endobj\")},pe=function(t){var e;for(e in Ot)Ot.hasOwnProperty(e)&&(Ot[e]instanceof B?fe(Ot[e]):Ot[e]instanceof M&&de(Ot[e],t))},ge=function(t){for(var e in t.objectNumber=Xt(),lt(\"<<\"),t)switch(e){case\"opacity\":lt(\"/ca \"+R(t[e]));break;case\"stroke-opacity\":lt(\"/CA \"+R(t[e]))}lt(\">>\"),lt(\"endobj\")},me=function(){var t;for(t in Mt)Mt.hasOwnProperty(t)&&ge(Mt[t])},ve=function(){for(var t in lt(\"/XObject <<\"),zt)zt.hasOwnProperty(t)&&zt[t].objectNumber>=0&<(\"/\"+t+\" \"+zt[t].objectNumber+\" 0 R\");Tt.publish(\"putXobjectDict\"),lt(\">>\")},be=function(){Ye.oid=Xt(),lt(\"<<\"),lt(\"/Filter /Standard\"),lt(\"/V \"+Ye.v),lt(\"/R \"+Ye.r),lt(\"/U <\"+Ye.toHexString(Ye.U)+\">\"),lt(\"/O <\"+Ye.toHexString(Ye.O)+\">\"),lt(\"/P \"+Ye.P),lt(\">>\"),lt(\"endobj\")},ye=function(){for(var t in lt(\"/Font <<\"),Ft)Ft.hasOwnProperty(t)&&(!1===v||!0===v&&b.hasOwnProperty(t))&<(\"/\"+t+\" \"+Ft[t].objectNumber+\" 0 R\");lt(\">>\")},we=function(){if(Object.keys(Ot).length>0){for(var t in lt(\"/Shading <<\"),Ot)Ot.hasOwnProperty(t)&&Ot[t]instanceof B&&Ot[t].objectNumber>=0&<(\"/\"+t+\" \"+Ot[t].objectNumber+\" 0 R\");Tt.publish(\"putShadingPatternDict\"),lt(\">>\")}},Ne=function(t){if(Object.keys(Ot).length>0){for(var e in lt(\"/Pattern <<\"),Ot)Ot.hasOwnProperty(e)&&Ot[e]instanceof y.TilingPattern&&Ot[e].objectNumber>=0&&Ot[e].objectNumber>\")}},Le=function(){if(Object.keys(Mt).length>0){var t;for(t in lt(\"/ExtGState <<\"),Mt)Mt.hasOwnProperty(t)&&Mt[t].objectNumber>=0&<(\"/\"+t+\" \"+Mt[t].objectNumber+\" 0 R\");Tt.publish(\"putGStateDict\"),lt(\">>\")}},Ae=function(t){Zt(t.resourcesOid,!0),lt(\"<<\"),lt(\"/ProcSet [/PDF /Text /ImageB /ImageC /ImageI]\"),ye(),we(),Ne(t.objectOid),Le(),ve(),lt(\">>\"),lt(\"endobj\")},xe=function(){var t=[];ce(),me(),he(),pe(t),Tt.publish(\"putResources\"),t.forEach(Ae),Ae({resourcesOid:te,objectOid:Number.MAX_SAFE_INTEGER}),Tt.publish(\"postPutResources\")},Se=function(){Tt.publish(\"putAdditionalObjects\");for(var t=0;t>8&&(c=!0);t=s.join(\"\")}for(r=t.length;void 0===c&&0!==r;)t.charCodeAt(r-1)>>8&&(c=!0),r--;if(!c)return t;for(s=e.noBOM?[]:[254,255],r=0,n=t.length;r>8)>>8)throw new Error(\"Character at position \"+r+\" of string '\"+t+\"' exceeds 16bits. Cannot be encoded into UCS-2 BE\");s.push(h),s.push(u-(h<<8))}return String.fromCharCode.apply(void 0,s)},Ce=y.__private__.pdfEscape=y.pdfEscape=function(t,e){return Fe(t,e).replace(/\\\\/g,\"\\\\\\\\\").replace(/\\(/g,\"\\\\(\").replace(/\\)/g,\"\\\\)\")},je=y.__private__.beginPage=function(t){ot[++Dt]=[],Rt[Dt]={objId:0,contentsObjId:0,userUnit:Number(d),artBox:null,bleedBox:null,cropBox:null,trimBox:null,mediaBox:{bottomLeftX:0,bottomLeftY:0,topRightX:Number(t[0]),topRightY:Number(t[1])}},Me(Dt),ht(ot[$])},Oe=function(t,e){var r,n,o;switch(i=e||i,\"string\"==typeof t&&(r=A(t.toLowerCase()),Array.isArray(r)&&(n=r[0],o=r[1])),Array.isArray(t)&&(n=t[0]*_t,o=t[1]*_t),isNaN(n)&&(n=s[0],o=s[1]),(n>14400||o>14400)&&(a.warn(\"A page in a PDF can not be wider or taller than 14400 userUnit. jsPDF limits the width/height to 14400\"),n=Math.min(14400,n),o=Math.min(14400,o)),s=[n,o],i.substr(0,1)){case\"l\":o>n&&(s=[o,n]);break;case\"p\":n>o&&(s=[o,n])}je(s),pr(fr),lt(Lr),0!==kr&<(kr+\" J\"),0!==Ir&<(Ir+\" j\"),Tt.publish(\"addPage\",{pageNumber:Dt})},Be=function(t){t>0&&t<=Dt&&(ot.splice(t,1),Rt.splice(t,1),Dt--,$>Dt&&($=Dt),this.setPage($))},Me=function(t){t>0&&t<=Dt&&($=t)},Ee=y.__private__.getNumberOfPages=y.getNumberOfPages=function(){return ot.length-1},qe=function(t,e,r){var n,i=void 0;return r=r||{},t=void 0!==t?t:Ft[St].fontName,e=void 0!==e?e:Ft[St].fontStyle,n=t.toLowerCase(),void 0!==Ct[n]&&void 0!==Ct[n][e]?i=Ct[n][e]:void 0!==Ct[t]&&void 0!==Ct[t][e]?i=Ct[t][e]:!1===r.disableWarning&&a.warn(\"Unable to look up font label for font '\"+t+\"', '\"+e+\"'. Refer to getFontList() for available fonts.\"),i||r.noFallback||null==(i=Ct.times[e])&&(i=Ct.times.normal),i},De=y.__private__.putInfo=function(){var t=Xt(),e=function(t){return t};for(var r in null!==m&&(e=Ye.encryptor(t,0)),lt(\"<<\"),lt(\"/Producer (\"+Ce(e(\"jsPDF \"+E.version))+\")\"),xt)xt.hasOwnProperty(r)&&xt[r]&<(\"/\"+r.substr(0,1).toUpperCase()+r.substr(1)+\" (\"+Ce(e(xt[r]))+\")\");lt(\"/CreationDate (\"+Ce(e(W))+\")\"),lt(\">>\"),lt(\"endobj\")},Re=y.__private__.putCatalog=function(t){var e=(t=t||{}).rootDictionaryObjId||Qt;switch(Xt(),lt(\"<<\"),lt(\"/Type /Catalog\"),lt(\"/Pages \"+e+\" 0 R\"),mt||(mt=\"fullwidth\"),mt){case\"fullwidth\":lt(\"/OpenAction [3 0 R /FitH null]\");break;case\"fullheight\":lt(\"/OpenAction [3 0 R /FitV null]\");break;case\"fullpage\":lt(\"/OpenAction [3 0 R /Fit]\");break;case\"original\":lt(\"/OpenAction [3 0 R /XYZ null null 1]\");break;default:var r=\"\"+mt;\"%\"===r.substr(r.length-1)&&(mt=parseInt(mt)/100),\"number\"==typeof mt&<(\"/OpenAction [3 0 R /XYZ null null \"+R(mt)+\"]\")}switch(Nt||(Nt=\"continuous\"),Nt){case\"continuous\":lt(\"/PageLayout /OneColumn\");break;case\"single\":lt(\"/PageLayout /SinglePage\");break;case\"two\":case\"twoleft\":lt(\"/PageLayout /TwoColumnLeft\");break;case\"tworight\":lt(\"/PageLayout /TwoColumnRight\")}yt&<(\"/PageMode /\"+yt),Tt.publish(\"putCatalog\"),lt(\">>\"),lt(\"endobj\")},Te=y.__private__.putTrailer=function(){lt(\"trailer\"),lt(\"<<\"),lt(\"/Size \"+(et+1)),lt(\"/Root \"+et+\" 0 R\"),lt(\"/Info \"+(et-1)+\" 0 R\"),null!==m&<(\"/Encrypt \"+Ye.oid+\" 0 R\"),lt(\"/ID [ <\"+V+\"> <\"+V+\"> ]\"),lt(\">>\")},Ue=y.__private__.putHeader=function(){lt(\"%PDF-\"+w),lt(\"%ºß¬à\")},ze=y.__private__.putXRef=function(){var t=\"0000000000\";lt(\"xref\"),lt(\"0 \"+(et+1)),lt(\"0000000000 65535 f \");for(var e=1;e<=et;e++){\"function\"==typeof rt[e]?lt((t+rt[e]()).slice(-10)+\" 00000 n \"):void 0!==rt[e]?lt((t+rt[e]).slice(-10)+\" 00000 n \"):lt(\"0000000000 00000 n \")}},He=y.__private__.buildDocument=function(){ut(),ht(nt),Tt.publish(\"buildDocument\"),Ue(),oe(),Se(),xe(),null!==m&&be(),De(),Re();var t=it;return ze(),Te(),lt(\"startxref\"),lt(\"\"+t),lt(\"%%EOF\"),ht(ot[$]),nt.join(\"\\n\")},We=y.__private__.getBlob=function(t){return new Blob([dt(t)],{type:\"application/pdf\"})},Ve=y.output=y.__private__.output=Ie((function(t,e){switch(\"string\"==typeof(e=e||{})?e={filename:e}:e.filename=e.filename||\"generated.pdf\",t){case void 0:return He();case\"save\":y.save(e.filename);break;case\"arraybuffer\":return dt(He());case\"blob\":return We(He());case\"bloburi\":case\"bloburl\":if(void 0!==n.URL&&\"function\"==typeof n.URL.createObjectURL)return n.URL&&n.URL.createObjectURL(We(He()))||void 0;a.warn(\"bloburl is not supported by your system, because URL.createObjectURL is not supported by your browser.\");break;case\"datauristring\":case\"dataurlstring\":var r=\"\",i=He();try{r=h(i)}catch(t){r=h(unescape(encodeURIComponent(i)))}return\"data:application/pdf;filename=\"+e.filename+\";base64,\"+r;case\"pdfobjectnewwindow\":if(\"[object Window]\"===Object.prototype.toString.call(n)){var o=\"https://cdnjs.cloudflare.com/ajax/libs/pdfobject/2.1.1/pdfobject.min.js\",s=' integrity=\"sha512-4ze/a9/4jqu+tX9dfOqJYSvyYd5M6qum/3HpCLr+/Jqf0whc37VUbkpNGHR7/8pSnCFw47T1fmIpwBV7UySh3g==\" crossorigin=\"anonymous\"';e.pdfObjectUrl&&(o=e.pdfObjectUrl,s=\"\");var c='