@lokalise/harmony 2.1.0-exp-testingContracts.6 → 2.1.0-exp-testingContracts.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/harmony.cjs +69 -73
- package/dist/harmony.cjs.map +1 -1
- package/dist/harmony.mjs +69 -73
- package/dist/harmony.mjs.map +1 -1
- package/dist/harmony10.cjs +1 -1
- package/dist/harmony10.mjs +1 -1
- package/dist/harmony100.cjs +42 -65
- package/dist/harmony100.cjs.map +1 -1
- package/dist/harmony100.mjs +42 -65
- package/dist/harmony100.mjs.map +1 -1
- package/dist/harmony101.cjs +39 -3
- package/dist/harmony101.cjs.map +1 -1
- package/dist/harmony101.mjs +39 -3
- package/dist/harmony101.mjs.map +1 -1
- package/dist/harmony102.cjs +38 -43
- package/dist/harmony102.cjs.map +1 -1
- package/dist/harmony102.mjs +38 -43
- package/dist/harmony102.mjs.map +1 -1
- package/dist/harmony103.cjs +9 -39
- package/dist/harmony103.cjs.map +1 -1
- package/dist/harmony103.mjs +8 -38
- package/dist/harmony103.mjs.map +1 -1
- package/dist/harmony104.cjs +30 -35
- package/dist/harmony104.cjs.map +1 -1
- package/dist/harmony104.mjs +32 -37
- package/dist/harmony104.mjs.map +1 -1
- package/dist/harmony105.cjs +166 -9
- package/dist/harmony105.cjs.map +1 -1
- package/dist/harmony105.mjs +165 -8
- package/dist/harmony105.mjs.map +1 -1
- package/dist/harmony106.cjs +44 -33
- package/dist/harmony106.cjs.map +1 -1
- package/dist/harmony106.mjs +44 -33
- package/dist/harmony106.mjs.map +1 -1
- package/dist/harmony107.cjs +13 -165
- package/dist/harmony107.cjs.map +1 -1
- package/dist/harmony107.mjs +13 -165
- package/dist/harmony107.mjs.map +1 -1
- package/dist/harmony108.cjs +2 -43
- package/dist/harmony108.cjs.map +1 -1
- package/dist/harmony108.mjs +3 -44
- package/dist/harmony108.mjs.map +1 -1
- package/dist/harmony109.cjs +16 -9
- package/dist/harmony109.cjs.map +1 -1
- package/dist/harmony109.mjs +18 -11
- package/dist/harmony109.mjs.map +1 -1
- package/dist/harmony110.cjs +76 -21
- package/dist/harmony110.cjs.map +1 -1
- package/dist/harmony110.mjs +75 -20
- package/dist/harmony110.mjs.map +1 -1
- package/dist/harmony111.cjs +10 -12
- package/dist/harmony111.cjs.map +1 -1
- package/dist/harmony111.mjs +10 -12
- package/dist/harmony111.mjs.map +1 -1
- package/dist/harmony112.cjs +34 -3
- package/dist/harmony112.cjs.map +1 -1
- package/dist/harmony112.mjs +34 -3
- package/dist/harmony112.mjs.map +1 -1
- package/dist/harmony113.cjs +8 -17
- package/dist/harmony113.cjs.map +1 -1
- package/dist/harmony113.mjs +8 -17
- package/dist/harmony113.mjs.map +1 -1
- package/dist/harmony114.cjs +37 -66
- package/dist/harmony114.cjs.map +1 -1
- package/dist/harmony114.mjs +38 -67
- package/dist/harmony114.mjs.map +1 -1
- package/dist/harmony115.cjs +9 -12
- package/dist/harmony115.cjs.map +1 -1
- package/dist/harmony115.mjs +8 -11
- package/dist/harmony115.mjs.map +1 -1
- package/dist/harmony116.cjs +12 -34
- package/dist/harmony116.cjs.map +1 -1
- package/dist/harmony116.mjs +12 -34
- package/dist/harmony116.mjs.map +1 -1
- package/dist/harmony117.cjs +13 -10
- package/dist/harmony117.cjs.map +1 -1
- package/dist/harmony117.mjs +12 -9
- package/dist/harmony117.mjs.map +1 -1
- package/dist/harmony118.cjs +9 -45
- package/dist/harmony118.cjs.map +1 -1
- package/dist/harmony118.mjs +11 -47
- package/dist/harmony118.mjs.map +1 -1
- package/dist/harmony119.cjs +20 -8
- package/dist/harmony119.cjs.map +1 -1
- package/dist/harmony119.mjs +20 -8
- package/dist/harmony119.mjs.map +1 -1
- package/dist/harmony120.cjs +96 -9
- package/dist/harmony120.cjs.map +1 -1
- package/dist/harmony120.mjs +79 -9
- package/dist/harmony120.mjs.map +1 -1
- package/dist/harmony121.cjs +21 -13
- package/dist/harmony121.cjs.map +1 -1
- package/dist/harmony121.mjs +20 -12
- package/dist/harmony121.mjs.map +1 -1
- package/dist/harmony122.cjs +7 -87
- package/dist/harmony122.cjs.map +1 -1
- package/dist/harmony122.mjs +7 -87
- package/dist/harmony122.mjs.map +1 -1
- package/dist/harmony123.cjs +17 -30
- package/dist/harmony123.cjs.map +1 -1
- package/dist/harmony123.mjs +17 -30
- package/dist/harmony123.mjs.map +1 -1
- package/dist/harmony124.cjs +8 -20
- package/dist/harmony124.cjs.map +1 -1
- package/dist/harmony124.mjs +8 -20
- package/dist/harmony124.mjs.map +1 -1
- package/dist/harmony125.cjs +8 -7
- package/dist/harmony125.cjs.map +1 -1
- package/dist/harmony125.mjs +8 -7
- package/dist/harmony125.mjs.map +1 -1
- package/dist/harmony126.cjs +14 -16
- package/dist/harmony126.cjs.map +1 -1
- package/dist/harmony126.mjs +14 -16
- package/dist/harmony126.mjs.map +1 -1
- package/dist/harmony127.cjs +86 -7
- package/dist/harmony127.cjs.map +1 -1
- package/dist/harmony127.mjs +86 -7
- package/dist/harmony127.mjs.map +1 -1
- package/dist/harmony128.cjs +30 -8
- package/dist/harmony128.cjs.map +1 -1
- package/dist/harmony128.mjs +30 -8
- package/dist/harmony128.mjs.map +1 -1
- package/dist/harmony129.cjs +9 -15
- package/dist/harmony129.cjs.map +1 -1
- package/dist/harmony129.mjs +8 -14
- package/dist/harmony129.mjs.map +1 -1
- package/dist/harmony130.cjs +11 -98
- package/dist/harmony130.cjs.map +1 -1
- package/dist/harmony130.mjs +11 -81
- package/dist/harmony130.mjs.map +1 -1
- package/dist/harmony131.cjs +15 -9
- package/dist/harmony131.cjs.map +1 -1
- package/dist/harmony131.mjs +14 -8
- package/dist/harmony131.mjs.map +1 -1
- package/dist/harmony132.cjs +13 -6
- package/dist/harmony132.cjs.map +1 -1
- package/dist/harmony132.mjs +15 -8
- package/dist/harmony132.mjs.map +1 -1
- package/dist/harmony133.cjs +7 -12
- package/dist/harmony133.cjs.map +1 -1
- package/dist/harmony133.mjs +9 -14
- package/dist/harmony133.mjs.map +1 -1
- package/dist/harmony134.cjs +20 -13
- package/dist/harmony134.cjs.map +1 -1
- package/dist/harmony134.mjs +22 -15
- package/dist/harmony134.mjs.map +1 -1
- package/dist/harmony135.cjs +9 -7
- package/dist/harmony135.cjs.map +1 -1
- package/dist/harmony135.mjs +11 -9
- package/dist/harmony135.mjs.map +1 -1
- package/dist/harmony136.cjs +30 -18
- package/dist/harmony136.cjs.map +1 -1
- package/dist/harmony136.mjs +32 -20
- package/dist/harmony136.mjs.map +1 -1
- package/dist/harmony137.cjs +6 -6
- package/dist/harmony137.cjs.map +1 -1
- package/dist/harmony137.mjs +6 -6
- package/dist/harmony137.mjs.map +1 -1
- package/dist/harmony138.cjs +13 -29
- package/dist/harmony138.cjs.map +1 -1
- package/dist/harmony138.mjs +14 -30
- package/dist/harmony138.mjs.map +1 -1
- package/dist/harmony139.cjs +31 -7
- package/dist/harmony139.cjs.map +1 -1
- package/dist/harmony139.mjs +32 -8
- package/dist/harmony139.mjs.map +1 -1
- package/dist/harmony140.cjs +21 -22
- package/dist/harmony140.cjs.map +1 -1
- package/dist/harmony140.mjs +20 -21
- package/dist/harmony140.mjs.map +1 -1
- package/dist/harmony141.cjs +15 -30
- package/dist/harmony141.cjs.map +1 -1
- package/dist/harmony141.mjs +17 -32
- package/dist/harmony141.mjs.map +1 -1
- package/dist/harmony142.cjs +3 -18
- package/dist/harmony142.cjs.map +1 -1
- package/dist/harmony142.mjs +3 -18
- package/dist/harmony142.mjs.map +1 -1
- package/dist/harmony143.cjs +15 -21
- package/dist/harmony143.cjs.map +1 -1
- package/dist/harmony143.mjs +14 -20
- package/dist/harmony143.mjs.map +1 -1
- package/dist/harmony144.cjs +5 -6
- package/dist/harmony144.cjs.map +1 -1
- package/dist/harmony144.mjs +5 -6
- package/dist/harmony145.cjs +5 -15
- package/dist/harmony145.cjs.map +1 -1
- package/dist/harmony145.mjs +5 -15
- package/dist/harmony145.mjs.map +1 -1
- package/dist/harmony146.cjs +3 -10
- package/dist/harmony146.cjs.map +1 -1
- package/dist/harmony146.mjs +3 -10
- package/dist/harmony146.mjs.map +1 -1
- package/dist/harmony147.cjs +4 -6
- package/dist/harmony147.cjs.map +1 -1
- package/dist/harmony147.mjs +3 -5
- package/dist/harmony147.mjs.map +1 -1
- package/dist/harmony148.cjs +4 -6
- package/dist/harmony148.cjs.map +1 -1
- package/dist/harmony148.mjs +3 -5
- package/dist/harmony148.mjs.map +1 -1
- package/dist/harmony149.cjs +14 -3
- package/dist/harmony149.cjs.map +1 -1
- package/dist/harmony149.mjs +14 -3
- package/dist/harmony149.mjs.map +1 -1
- package/dist/harmony150.cjs +14 -3
- package/dist/harmony150.cjs.map +1 -1
- package/dist/harmony150.mjs +14 -3
- package/dist/harmony150.mjs.map +1 -1
- package/dist/harmony151.cjs +3 -3
- package/dist/harmony151.cjs.map +1 -1
- package/dist/harmony151.mjs +3 -3
- package/dist/harmony151.mjs.map +1 -1
- package/dist/harmony152.cjs +10 -14
- package/dist/harmony152.cjs.map +1 -1
- package/dist/harmony152.mjs +10 -14
- package/dist/harmony152.mjs.map +1 -1
- package/dist/harmony153.cjs +10 -15
- package/dist/harmony153.cjs.map +1 -1
- package/dist/harmony153.mjs +9 -14
- package/dist/harmony153.mjs.map +1 -1
- package/dist/harmony154.cjs +7 -4
- package/dist/harmony154.cjs.map +1 -1
- package/dist/harmony154.mjs +6 -3
- package/dist/harmony154.mjs.map +1 -1
- package/dist/harmony155.cjs +10 -97
- package/dist/harmony155.cjs.map +1 -1
- package/dist/harmony155.mjs +9 -96
- package/dist/harmony155.mjs.map +1 -1
- package/dist/harmony156.cjs +25 -14
- package/dist/harmony156.cjs.map +1 -1
- package/dist/harmony156.mjs +24 -13
- package/dist/harmony156.mjs.map +1 -1
- package/dist/harmony157.cjs +7 -15
- package/dist/harmony157.cjs.map +1 -1
- package/dist/harmony157.mjs +6 -14
- package/dist/harmony157.mjs.map +1 -1
- package/dist/harmony158.cjs +13 -37
- package/dist/harmony158.cjs.map +1 -1
- package/dist/harmony158.mjs +12 -36
- package/dist/harmony158.mjs.map +1 -1
- package/dist/harmony159.cjs +7 -29
- package/dist/harmony159.cjs.map +1 -1
- package/dist/harmony159.mjs +6 -28
- package/dist/harmony159.mjs.map +1 -1
- package/dist/harmony160.cjs +97 -10
- package/dist/harmony160.cjs.map +1 -1
- package/dist/harmony160.mjs +96 -9
- package/dist/harmony160.mjs.map +1 -1
- package/dist/harmony161.cjs +14 -7
- package/dist/harmony161.cjs.map +1 -1
- package/dist/harmony161.mjs +13 -6
- package/dist/harmony161.mjs.map +1 -1
- package/dist/harmony162.cjs +15 -10
- package/dist/harmony162.cjs.map +1 -1
- package/dist/harmony162.mjs +14 -9
- package/dist/harmony162.mjs.map +1 -1
- package/dist/harmony163.cjs +37 -25
- package/dist/harmony163.cjs.map +1 -1
- package/dist/harmony163.mjs +36 -24
- package/dist/harmony163.mjs.map +1 -1
- package/dist/harmony164.cjs +29 -7
- package/dist/harmony164.cjs.map +1 -1
- package/dist/harmony164.mjs +28 -6
- package/dist/harmony164.mjs.map +1 -1
- package/dist/harmony165.cjs +32 -12
- package/dist/harmony165.cjs.map +1 -1
- package/dist/harmony165.mjs +31 -11
- package/dist/harmony165.mjs.map +1 -1
- package/dist/harmony166.cjs +14 -7
- package/dist/harmony166.cjs.map +1 -1
- package/dist/harmony166.mjs +13 -6
- package/dist/harmony166.mjs.map +1 -1
- package/dist/harmony167.cjs +14 -31
- package/dist/harmony167.cjs.map +1 -1
- package/dist/harmony167.mjs +14 -31
- package/dist/harmony167.mjs.map +1 -1
- package/dist/harmony168.cjs +15 -12
- package/dist/harmony168.cjs.map +1 -1
- package/dist/harmony168.mjs +15 -12
- package/dist/harmony168.mjs.map +1 -1
- package/dist/harmony169.cjs +10 -14
- package/dist/harmony169.cjs.map +1 -1
- package/dist/harmony169.mjs +10 -14
- package/dist/harmony169.mjs.map +1 -1
- package/dist/harmony17.cjs +3 -3
- package/dist/harmony17.cjs.map +1 -1
- package/dist/harmony17.mjs +2 -2
- package/dist/harmony17.mjs.map +1 -1
- package/dist/harmony170.cjs +14 -14
- package/dist/harmony170.cjs.map +1 -1
- package/dist/harmony170.mjs +14 -14
- package/dist/harmony170.mjs.map +1 -1
- package/dist/harmony171.cjs +20 -10
- package/dist/harmony171.cjs.map +1 -1
- package/dist/harmony171.mjs +20 -10
- package/dist/harmony171.mjs.map +1 -1
- package/dist/harmony172.cjs +10 -14
- package/dist/harmony172.cjs.map +1 -1
- package/dist/harmony172.mjs +10 -14
- package/dist/harmony172.mjs.map +1 -1
- package/dist/harmony173.cjs +4 -21
- package/dist/harmony173.cjs.map +1 -1
- package/dist/harmony173.mjs +4 -21
- package/dist/harmony173.mjs.map +1 -1
- package/dist/harmony174.cjs +5 -11
- package/dist/harmony174.cjs.map +1 -1
- package/dist/harmony174.mjs +5 -11
- package/dist/harmony174.mjs.map +1 -1
- package/dist/harmony175.cjs +12 -4
- package/dist/harmony175.cjs.map +1 -1
- package/dist/harmony175.mjs +12 -4
- package/dist/harmony175.mjs.map +1 -1
- package/dist/harmony176.cjs +31 -5
- package/dist/harmony176.cjs.map +1 -1
- package/dist/harmony176.mjs +31 -5
- package/dist/harmony176.mjs.map +1 -1
- package/dist/harmony177.cjs +13 -11
- package/dist/harmony177.cjs.map +1 -1
- package/dist/harmony177.mjs +13 -11
- package/dist/harmony177.mjs.map +1 -1
- package/dist/harmony18.cjs +2 -2
- package/dist/harmony18.cjs.map +1 -1
- package/dist/harmony18.mjs +1 -1
- package/dist/harmony18.mjs.map +1 -1
- package/dist/harmony2.cjs +3 -3
- package/dist/harmony2.mjs +3 -3
- package/dist/harmony20.cjs +1 -1
- package/dist/harmony20.mjs +1 -1
- package/dist/harmony22.cjs +20 -16
- package/dist/harmony22.cjs.map +1 -1
- package/dist/harmony22.mjs +20 -16
- package/dist/harmony22.mjs.map +1 -1
- package/dist/harmony23.cjs +13 -141
- package/dist/harmony23.cjs.map +1 -1
- package/dist/harmony23.mjs +13 -141
- package/dist/harmony23.mjs.map +1 -1
- package/dist/harmony24.cjs +17 -20
- package/dist/harmony24.cjs.map +1 -1
- package/dist/harmony24.mjs +17 -20
- package/dist/harmony24.mjs.map +1 -1
- package/dist/harmony25.cjs +16 -12
- package/dist/harmony25.cjs.map +1 -1
- package/dist/harmony25.mjs +16 -12
- package/dist/harmony25.mjs.map +1 -1
- package/dist/harmony26.cjs +18 -15
- package/dist/harmony26.cjs.map +1 -1
- package/dist/harmony26.mjs +18 -15
- package/dist/harmony26.mjs.map +1 -1
- package/dist/harmony27.cjs +18 -16
- package/dist/harmony27.cjs.map +1 -1
- package/dist/harmony27.mjs +18 -16
- package/dist/harmony27.mjs.map +1 -1
- package/dist/harmony28.cjs +8 -18
- package/dist/harmony28.cjs.map +1 -1
- package/dist/harmony28.mjs +8 -18
- package/dist/harmony28.mjs.map +1 -1
- package/dist/harmony29.cjs +10 -19
- package/dist/harmony29.cjs.map +1 -1
- package/dist/harmony29.mjs +10 -19
- package/dist/harmony29.mjs.map +1 -1
- package/dist/harmony3.cjs +4 -4
- package/dist/harmony3.mjs +4 -4
- package/dist/harmony30.cjs +9 -10
- package/dist/harmony30.cjs.map +1 -1
- package/dist/harmony30.mjs +9 -10
- package/dist/harmony30.mjs.map +1 -1
- package/dist/harmony31.cjs +9 -11
- package/dist/harmony31.cjs.map +1 -1
- package/dist/harmony31.mjs +9 -11
- package/dist/harmony31.mjs.map +1 -1
- package/dist/harmony32.cjs +11 -5
- package/dist/harmony32.cjs.map +1 -1
- package/dist/harmony32.mjs +11 -5
- package/dist/harmony32.mjs.map +1 -1
- package/dist/harmony33.cjs +8 -7
- package/dist/harmony33.cjs.map +1 -1
- package/dist/harmony33.mjs +9 -8
- package/dist/harmony33.mjs.map +1 -1
- package/dist/harmony34.cjs +9 -11
- package/dist/harmony34.cjs.map +1 -1
- package/dist/harmony34.mjs +10 -12
- package/dist/harmony34.mjs.map +1 -1
- package/dist/harmony35.cjs +5 -5
- package/dist/harmony35.cjs.map +1 -1
- package/dist/harmony35.mjs +5 -5
- package/dist/harmony35.mjs.map +1 -1
- package/dist/harmony36.cjs +11 -10
- package/dist/harmony36.cjs.map +1 -1
- package/dist/harmony36.mjs +11 -10
- package/dist/harmony36.mjs.map +1 -1
- package/dist/harmony37.cjs +7 -9
- package/dist/harmony37.cjs.map +1 -1
- package/dist/harmony37.mjs +7 -9
- package/dist/harmony37.mjs.map +1 -1
- package/dist/harmony38.cjs +10 -13
- package/dist/harmony38.cjs.map +1 -1
- package/dist/harmony38.mjs +10 -13
- package/dist/harmony38.mjs.map +1 -1
- package/dist/harmony39.cjs +8 -5
- package/dist/harmony39.cjs.map +1 -1
- package/dist/harmony39.mjs +8 -5
- package/dist/harmony39.mjs.map +1 -1
- package/dist/harmony4.cjs +2 -2
- package/dist/harmony4.mjs +2 -2
- package/dist/harmony40.cjs +7 -9
- package/dist/harmony40.cjs.map +1 -1
- package/dist/harmony40.mjs +7 -9
- package/dist/harmony40.mjs.map +1 -1
- package/dist/harmony41.cjs +7 -9
- package/dist/harmony41.cjs.map +1 -1
- package/dist/harmony41.mjs +7 -9
- package/dist/harmony41.mjs.map +1 -1
- package/dist/harmony42.cjs +9 -9
- package/dist/harmony42.cjs.map +1 -1
- package/dist/harmony42.mjs +9 -9
- package/dist/harmony42.mjs.map +1 -1
- package/dist/harmony43.cjs +88 -9
- package/dist/harmony43.cjs.map +1 -1
- package/dist/harmony43.mjs +88 -9
- package/dist/harmony43.mjs.map +1 -1
- package/dist/harmony44.cjs +55 -9
- package/dist/harmony44.cjs.map +1 -1
- package/dist/harmony44.mjs +55 -9
- package/dist/harmony44.mjs.map +1 -1
- package/dist/harmony45.cjs +31 -88
- package/dist/harmony45.cjs.map +1 -1
- package/dist/harmony45.mjs +31 -88
- package/dist/harmony45.mjs.map +1 -1
- package/dist/harmony46.cjs +10 -54
- package/dist/harmony46.cjs.map +1 -1
- package/dist/harmony46.mjs +10 -54
- package/dist/harmony46.mjs.map +1 -1
- package/dist/harmony47.cjs +50 -26
- package/dist/harmony47.cjs.map +1 -1
- package/dist/harmony47.mjs +51 -27
- package/dist/harmony47.mjs.map +1 -1
- package/dist/harmony48.cjs +27 -8
- package/dist/harmony48.cjs.map +1 -1
- package/dist/harmony48.mjs +28 -9
- package/dist/harmony48.mjs.map +1 -1
- package/dist/harmony49.cjs +15 -52
- package/dist/harmony49.cjs.map +1 -1
- package/dist/harmony49.mjs +16 -53
- package/dist/harmony49.mjs.map +1 -1
- package/dist/harmony5.cjs +5 -5
- package/dist/harmony5.mjs +5 -5
- package/dist/harmony50.cjs +24 -26
- package/dist/harmony50.cjs.map +1 -1
- package/dist/harmony50.mjs +25 -27
- package/dist/harmony50.mjs.map +1 -1
- package/dist/harmony51.cjs +12 -16
- package/dist/harmony51.cjs.map +1 -1
- package/dist/harmony51.mjs +13 -17
- package/dist/harmony51.mjs.map +1 -1
- package/dist/harmony52.cjs +14 -28
- package/dist/harmony52.cjs.map +1 -1
- package/dist/harmony52.mjs +14 -28
- package/dist/harmony52.mjs.map +1 -1
- package/dist/harmony53.cjs +14 -14
- package/dist/harmony53.cjs.map +1 -1
- package/dist/harmony53.mjs +14 -14
- package/dist/harmony53.mjs.map +1 -1
- package/dist/harmony54.cjs +6 -6
- package/dist/harmony54.cjs.map +1 -1
- package/dist/harmony54.mjs +6 -6
- package/dist/harmony54.mjs.map +1 -1
- package/dist/harmony55.cjs +6 -6
- package/dist/harmony55.cjs.map +1 -1
- package/dist/harmony55.mjs +6 -6
- package/dist/harmony55.mjs.map +1 -1
- package/dist/harmony56.cjs +4 -5
- package/dist/harmony56.cjs.map +1 -1
- package/dist/harmony56.mjs +4 -5
- package/dist/harmony56.mjs.map +1 -1
- package/dist/harmony57.cjs +15 -7
- package/dist/harmony57.cjs.map +1 -1
- package/dist/harmony57.mjs +16 -8
- package/dist/harmony57.mjs.map +1 -1
- package/dist/harmony58.cjs +6 -6
- package/dist/harmony58.cjs.map +1 -1
- package/dist/harmony58.mjs +7 -7
- package/dist/harmony58.mjs.map +1 -1
- package/dist/harmony59.cjs +7 -16
- package/dist/harmony59.cjs.map +1 -1
- package/dist/harmony59.mjs +7 -16
- package/dist/harmony59.mjs.map +1 -1
- package/dist/harmony6.cjs +2 -2
- package/dist/harmony6.mjs +2 -2
- package/dist/harmony60.cjs +11 -7
- package/dist/harmony60.cjs.map +1 -1
- package/dist/harmony60.mjs +13 -9
- package/dist/harmony60.mjs.map +1 -1
- package/dist/harmony61.cjs +10 -6
- package/dist/harmony61.cjs.map +1 -1
- package/dist/harmony61.mjs +12 -8
- package/dist/harmony61.mjs.map +1 -1
- package/dist/harmony62.cjs +12 -14
- package/dist/harmony62.cjs.map +1 -1
- package/dist/harmony62.mjs +12 -14
- package/dist/harmony62.mjs.map +1 -1
- package/dist/harmony63.cjs +12 -14
- package/dist/harmony63.cjs.map +1 -1
- package/dist/harmony63.mjs +13 -15
- package/dist/harmony63.mjs.map +1 -1
- package/dist/harmony64.cjs +9 -9
- package/dist/harmony64.cjs.map +1 -1
- package/dist/harmony64.mjs +9 -9
- package/dist/harmony64.mjs.map +1 -1
- package/dist/harmony65.cjs +14 -12
- package/dist/harmony65.cjs.map +1 -1
- package/dist/harmony65.mjs +15 -13
- package/dist/harmony65.mjs.map +1 -1
- package/dist/harmony66.cjs +14 -12
- package/dist/harmony66.cjs.map +1 -1
- package/dist/harmony66.mjs +14 -12
- package/dist/harmony66.mjs.map +1 -1
- package/dist/harmony67.cjs +10 -10
- package/dist/harmony67.cjs.map +1 -1
- package/dist/harmony67.mjs +10 -10
- package/dist/harmony67.mjs.map +1 -1
- package/dist/harmony68.cjs +8 -8
- package/dist/harmony68.cjs.map +1 -1
- package/dist/harmony68.mjs +8 -8
- package/dist/harmony68.mjs.map +1 -1
- package/dist/harmony69.cjs +8 -8
- package/dist/harmony69.cjs.map +1 -1
- package/dist/harmony69.mjs +8 -8
- package/dist/harmony69.mjs.map +1 -1
- package/dist/harmony7.cjs +2 -2
- package/dist/harmony7.mjs +2 -2
- package/dist/harmony70.cjs +12 -14
- package/dist/harmony70.cjs.map +1 -1
- package/dist/harmony70.mjs +12 -14
- package/dist/harmony70.mjs.map +1 -1
- package/dist/harmony71.cjs +8 -8
- package/dist/harmony71.cjs.map +1 -1
- package/dist/harmony71.mjs +8 -8
- package/dist/harmony71.mjs.map +1 -1
- package/dist/harmony72.cjs +14 -12
- package/dist/harmony72.cjs.map +1 -1
- package/dist/harmony72.mjs +14 -12
- package/dist/harmony72.mjs.map +1 -1
- package/dist/harmony73.cjs +9 -8
- package/dist/harmony73.cjs.map +1 -1
- package/dist/harmony73.mjs +10 -9
- package/dist/harmony73.mjs.map +1 -1
- package/dist/harmony74.cjs +7 -10
- package/dist/harmony74.cjs.map +1 -1
- package/dist/harmony74.mjs +9 -12
- package/dist/harmony74.mjs.map +1 -1
- package/dist/harmony75.cjs +7 -11
- package/dist/harmony75.cjs.map +1 -1
- package/dist/harmony75.mjs +8 -12
- package/dist/harmony75.mjs.map +1 -1
- package/dist/harmony76.cjs +123 -13
- package/dist/harmony76.cjs.map +1 -1
- package/dist/harmony76.mjs +123 -13
- package/dist/harmony76.mjs.map +1 -1
- package/dist/harmony77.cjs +81 -13
- package/dist/harmony77.cjs.map +1 -1
- package/dist/harmony77.mjs +81 -13
- package/dist/harmony77.mjs.map +1 -1
- package/dist/harmony78.cjs +4 -122
- package/dist/harmony78.cjs.map +1 -1
- package/dist/harmony78.mjs +4 -122
- package/dist/harmony78.mjs.map +1 -1
- package/dist/harmony79.cjs +27 -81
- package/dist/harmony79.cjs.map +1 -1
- package/dist/harmony79.mjs +26 -80
- package/dist/harmony79.mjs.map +1 -1
- package/dist/harmony80.cjs +22 -4
- package/dist/harmony80.cjs.map +1 -1
- package/dist/harmony80.mjs +22 -4
- package/dist/harmony80.mjs.map +1 -1
- package/dist/harmony81.cjs +129 -16
- package/dist/harmony81.cjs.map +1 -1
- package/dist/harmony81.mjs +129 -16
- package/dist/harmony81.mjs.map +1 -1
- package/dist/harmony82.cjs +35 -22
- package/dist/harmony82.cjs.map +1 -1
- package/dist/harmony82.mjs +35 -22
- package/dist/harmony82.mjs.map +1 -1
- package/dist/harmony83.cjs +25 -140
- package/dist/harmony83.cjs.map +1 -1
- package/dist/harmony83.mjs +25 -140
- package/dist/harmony83.mjs.map +1 -1
- package/dist/harmony84.cjs +3 -36
- package/dist/harmony84.cjs.map +1 -1
- package/dist/harmony84.mjs +3 -36
- package/dist/harmony84.mjs.map +1 -1
- package/dist/harmony85.cjs +82 -24
- package/dist/harmony85.cjs.map +1 -1
- package/dist/harmony85.mjs +82 -24
- package/dist/harmony85.mjs.map +1 -1
- package/dist/harmony86.cjs +57 -3
- package/dist/harmony86.cjs.map +1 -1
- package/dist/harmony86.mjs +57 -3
- package/dist/harmony86.mjs.map +1 -1
- package/dist/harmony87.cjs +16 -82
- package/dist/harmony87.cjs.map +1 -1
- package/dist/harmony87.mjs +16 -82
- package/dist/harmony87.mjs.map +1 -1
- package/dist/harmony88.cjs +8 -58
- package/dist/harmony88.cjs.map +1 -1
- package/dist/harmony88.mjs +7 -57
- package/dist/harmony88.mjs.map +1 -1
- package/dist/harmony89.cjs +3 -19
- package/dist/harmony89.cjs.map +1 -1
- package/dist/harmony89.mjs +2 -18
- package/dist/harmony89.mjs.map +1 -1
- package/dist/harmony9.cjs +1 -1
- package/dist/harmony9.mjs +1 -1
- package/dist/harmony90.cjs +3 -9
- package/dist/harmony90.cjs.map +1 -1
- package/dist/harmony90.mjs +2 -8
- package/dist/harmony90.mjs.map +1 -1
- package/dist/harmony91.cjs +15 -2
- package/dist/harmony91.cjs.map +1 -1
- package/dist/harmony91.mjs +15 -2
- package/dist/harmony91.mjs.map +1 -1
- package/dist/harmony92.cjs +18 -2
- package/dist/harmony92.cjs.map +1 -1
- package/dist/harmony92.mjs +18 -2
- package/dist/harmony92.mjs.map +1 -1
- package/dist/harmony93.cjs +60 -14
- package/dist/harmony93.cjs.map +1 -1
- package/dist/harmony93.mjs +60 -14
- package/dist/harmony93.mjs.map +1 -1
- package/dist/harmony94.cjs +9 -19
- package/dist/harmony94.cjs.map +1 -1
- package/dist/harmony94.mjs +8 -18
- package/dist/harmony94.mjs.map +1 -1
- package/dist/harmony95.cjs +28 -60
- package/dist/harmony95.cjs.map +1 -1
- package/dist/harmony95.mjs +28 -60
- package/dist/harmony95.mjs.map +1 -1
- package/dist/harmony96.cjs +3 -8
- package/dist/harmony96.cjs.map +1 -1
- package/dist/harmony96.mjs +3 -8
- package/dist/harmony96.mjs.map +1 -1
- package/dist/harmony97.cjs +27 -27
- package/dist/harmony97.cjs.map +1 -1
- package/dist/harmony97.mjs +28 -28
- package/dist/harmony97.mjs.map +1 -1
- package/dist/harmony98.cjs +66 -3
- package/dist/harmony98.cjs.map +1 -1
- package/dist/harmony98.mjs +66 -3
- package/dist/harmony98.mjs.map +1 -1
- package/dist/harmony99.cjs +3 -29
- package/dist/harmony99.cjs.map +1 -1
- package/dist/harmony99.mjs +3 -29
- package/dist/harmony99.mjs.map +1 -1
- package/dist/types/src/features/auth/core/middleware/jwtAuthHeaderBuilderMiddleware.d.ts +1 -1
- package/dist/types/src/features/auth/core/middleware/publicApiHeaderBuilderMiddleware.d.ts +1 -1
- package/dist/types/src/features/auth/factories/headerBuilderFactories.d.ts +1 -1
- package/dist/types/src/features/auth/frontend/hooks/useAuthenticatedProjectContributor.d.ts +1 -1
- package/dist/types/src/features/auth/frontend/hooks/useAuthenticatedUser.d.ts +1 -1
- package/dist/types/src/features/auth/frontend/hooks/useGetPromotedClassicSessionJwtQuery.d.ts +1 -1
- package/dist/types/src/features/auth/node.d.ts +0 -2
- package/dist/types/src/features/publicApi/TESTING_CONTRACTS.d.ts +1 -1
- package/dist/types/src/features/publicApi/hooks/useAddContributorsMutation.d.ts +1 -1
- package/dist/types/src/features/publicApi/hooks/useAddLanguagesToProjectMutation.d.ts +1 -1
- package/dist/types/src/features/publicApi/hooks/useBulkUpdateProjectLanguagesMutation.d.ts +1 -1
- package/dist/types/src/features/publicApi/hooks/useCreateProjectMutation.d.ts +1 -1
- package/dist/types/src/features/publicApi/hooks/useCreateScoreMutation.d.ts +1 -1
- package/dist/types/src/features/publicApi/hooks/useDeleteContributorMutation.d.ts +1 -1
- package/dist/types/src/features/publicApi/hooks/useDeleteProjectMutation.d.ts +1 -1
- package/dist/types/src/features/publicApi/hooks/useDeleteScoreMutation.d.ts +1 -1
- package/dist/types/src/features/publicApi/hooks/useGetProjectPermissionMetaQuery.d.ts +1 -1
- package/dist/types/src/features/publicApi/hooks/useGetScoreQuery.d.ts +1 -1
- package/dist/types/src/features/publicApi/hooks/useGetTeamUsersQuery.d.ts +1 -1
- package/dist/types/src/features/publicApi/hooks/useGetUserTokenQuery.d.ts +1 -1
- package/dist/types/src/features/publicApi/hooks/useListContributorsQuery.d.ts +1 -1
- package/dist/types/src/features/publicApi/hooks/useListPermissionTemplates.d.ts +1 -1
- package/dist/types/src/features/publicApi/hooks/useListProjectLanguagesQuery.d.ts +1 -1
- package/dist/types/src/features/publicApi/hooks/useListProjectsQuery.d.ts +1 -1
- package/dist/types/src/features/publicApi/hooks/useListTeamUsersQuery.d.ts +1 -1
- package/dist/types/src/features/publicApi/hooks/useListTeamsQuery.d.ts +1 -1
- package/dist/types/src/features/publicApi/hooks/useRetrieveContributorQuery.d.ts +1 -1
- package/dist/types/src/features/publicApi/hooks/useRetrieveProjectQuery.d.ts +1 -1
- package/dist/types/src/features/publicApi/hooks/useRetrieveTeamQuery.d.ts +1 -1
- package/dist/types/src/features/publicApi/hooks/useRetrieveUserPermissions.d.ts +1 -1
- package/dist/types/src/features/publicApi/hooks/useUpdateContributorMutation.d.ts +1 -1
- package/dist/types/src/features/publicApi/hooks/useUpdateProjectMutation.d.ts +1 -1
- package/dist/types/tests/utils/apiHelpers.d.ts +1 -1
- package/package.json +1 -1
- package/dist/harmony178.cjs +0 -35
- package/dist/harmony178.cjs.map +0 -1
- package/dist/harmony178.mjs +0 -35
- package/dist/harmony178.mjs.map +0 -1
- package/dist/harmony179.cjs +0 -17
- package/dist/harmony179.cjs.map +0 -1
- package/dist/harmony179.mjs +0 -17
- package/dist/harmony179.mjs.map +0 -1
- package/dist/types/src/features/auth/core/headers/createHeaderBuilderMiddleware.d.ts +0 -32
- package/dist/types/src/features/auth/core/headers/createHeaderBuilderMiddleware.test.d.ts +0 -1
- package/dist/types/src/features/auth/core/headers/headerBuilder.d.ts +0 -171
- package/dist/types/src/features/auth/core/headers/headerBuilder.test.d.ts +0 -1
package/dist/harmony23.cjs
CHANGED
|
@@ -1,145 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
return new HeaderBuilder([() => initialHeaders]);
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Adds a single header to the builder by providing a key and a value.
|
|
19
|
-
*
|
|
20
|
-
* @example
|
|
21
|
-
* ```typescript
|
|
22
|
-
* const builder = HeaderBuilder.create()
|
|
23
|
-
* .add('Content-Type', 'application/json')
|
|
24
|
-
* .add('authorization', 'Bearer token')
|
|
25
|
-
*
|
|
26
|
-
* const headers = await builder.resolve()
|
|
27
|
-
* console.log(headers)
|
|
28
|
-
* // { 'Content-Type': 'application/json', 'authorization': 'Bearer token' }
|
|
29
|
-
* ```
|
|
30
|
-
*
|
|
31
|
-
* @param key - The key of the header
|
|
32
|
-
* @param value - The value of the header
|
|
33
|
-
*/
|
|
34
|
-
add(key, value) {
|
|
35
|
-
return new HeaderBuilder([...this.factories, () => ({ [key]: value })]);
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Adds multiple headers to the builder by providing an object or a promise of an object with the headers.
|
|
39
|
-
*
|
|
40
|
-
* @example
|
|
41
|
-
* ```typescript
|
|
42
|
-
* const builder = HeaderBuilder.create()
|
|
43
|
-
* .and({ 'Content-Type': 'application/json', 'authorization': 'Bearer token' })
|
|
44
|
-
* .and(Promise.resolve({ 'X-Custom-Header': 'custom', 'X-Another-Header': 'another' }))
|
|
45
|
-
*
|
|
46
|
-
* const headers = await builder.resolve()
|
|
47
|
-
* console.log(headers)
|
|
48
|
-
* // Prints: {
|
|
49
|
-
* // 'Content-Type': 'application/json',
|
|
50
|
-
* // 'authorization': 'Bearer token',
|
|
51
|
-
* // 'X-Custom-Header': 'custom',
|
|
52
|
-
* // 'X-Another-Header': 'another'
|
|
53
|
-
* // }
|
|
54
|
-
* ```
|
|
55
|
-
*
|
|
56
|
-
* @param extension - An object with the headers to add
|
|
57
|
-
*/
|
|
58
|
-
and(extension) {
|
|
59
|
-
return new HeaderBuilder([...this.factories, () => extension]);
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Adds a factory function that returns a promise of headers to the builder.
|
|
63
|
-
* This is useful when you need to fetch some data asynchronously to build the headers.
|
|
64
|
-
*
|
|
65
|
-
* @example
|
|
66
|
-
* ```typescript
|
|
67
|
-
* const builder = HeaderBuilder.create()
|
|
68
|
-
* .from(async () => {
|
|
69
|
-
* const token = await fetchToken()
|
|
70
|
-
* return { 'authorization': `Bearer ${token}` }
|
|
71
|
-
* })
|
|
72
|
-
*
|
|
73
|
-
* const headers = await builder.resolve()
|
|
74
|
-
* console.log(headers) // { 'authorization': 'Bearer <token>' }
|
|
75
|
-
* ```
|
|
76
|
-
*
|
|
77
|
-
* @param factory - A function that returns a promise of headers
|
|
78
|
-
*/
|
|
79
|
-
from(factory) {
|
|
80
|
-
return new HeaderBuilder([...this.factories, factory]);
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* Takes a middleware function that receives the current builder and returns a new, modified, builder.
|
|
84
|
-
*
|
|
85
|
-
* @example
|
|
86
|
-
* ```typescript
|
|
87
|
-
* const authMiddleware = createHeaderBuilderMiddleware(async (builder) => {
|
|
88
|
-
* const token = await fetchToken()
|
|
89
|
-
* return builder.add('authorization', `Bearer ${token}`)
|
|
90
|
-
* })
|
|
91
|
-
*
|
|
92
|
-
* const builder = HeaderBuilder.create()
|
|
93
|
-
* .with(authMiddleware)
|
|
94
|
-
*
|
|
95
|
-
* const headers = await builder.resolve() // Type of headers is { 'authorization': string }
|
|
96
|
-
* console.log(headers) // { 'authorization': 'Bearer <token>' }
|
|
97
|
-
* ```
|
|
98
|
-
*
|
|
99
|
-
* @param middleware
|
|
100
|
-
*/
|
|
101
|
-
with(middleware) {
|
|
102
|
-
return middleware.apply(this);
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* Merges the current builder with another builder.
|
|
106
|
-
*
|
|
107
|
-
* @example
|
|
108
|
-
* ```typescript
|
|
109
|
-
* const builderA = HeaderBuilder.create()
|
|
110
|
-
* .add('Content-Type', 'application/json')
|
|
111
|
-
*
|
|
112
|
-
* const builderB = HeaderBuilder.create()
|
|
113
|
-
* .add('authorization', 'Bearer token')
|
|
114
|
-
*
|
|
115
|
-
* const mergedBuilder = builderA.merge(builderB)
|
|
116
|
-
*
|
|
117
|
-
* const headers = await mergedBuilder.resolve()
|
|
118
|
-
* console.log(headers)
|
|
119
|
-
* // { 'Content-Type': 'application/json', 'authorization': 'Bearer token' }
|
|
120
|
-
* ```
|
|
121
|
-
*
|
|
122
|
-
* @param builder - The builder to merge with
|
|
123
|
-
*/
|
|
124
|
-
merge(builder) {
|
|
125
|
-
return new HeaderBuilder([...this.factories, ...builder.factories]);
|
|
126
|
-
}
|
|
127
|
-
/**
|
|
128
|
-
* Resolves the headers by waiting for all the promises to resolve and merging them together.
|
|
129
|
-
*
|
|
130
|
-
* @example
|
|
131
|
-
* ```typescript
|
|
132
|
-
* const builder = HeaderBuilder.create()
|
|
133
|
-
* .add('Content-Type', 'application/json')
|
|
134
|
-
*
|
|
135
|
-
* const headers = await builder.resolve()
|
|
136
|
-
* console.log(headers) // { 'Content-Type': 'application/json' }
|
|
137
|
-
*/
|
|
138
|
-
async resolve() {
|
|
139
|
-
const headers = this.factories.map((header) => header());
|
|
140
|
-
const resolvedHeaders = await Promise.all(headers);
|
|
141
|
-
return Object.assign({}, ...resolvedHeaders);
|
|
142
|
-
}
|
|
3
|
+
const jwtTokenPayload = require("./harmony20.cjs");
|
|
4
|
+
const cookieTokenUtils = require("./harmony21.cjs");
|
|
5
|
+
function getAuthenticatedSessionDetailFromRequest() {
|
|
6
|
+
const cookie = cookieTokenUtils.getJwtTokenFromCookie();
|
|
7
|
+
if (!cookie) {
|
|
8
|
+
return void 0;
|
|
9
|
+
}
|
|
10
|
+
const payload = jwtTokenPayload.parseJwtTokenPayload(cookie.accessToken);
|
|
11
|
+
if (!payload) {
|
|
12
|
+
return void 0;
|
|
13
|
+
}
|
|
14
|
+
return { ...cookie, payload };
|
|
143
15
|
}
|
|
144
|
-
exports.
|
|
16
|
+
exports.getAuthenticatedSessionDetailFromRequest = getAuthenticatedSessionDetailFromRequest;
|
|
145
17
|
//# sourceMappingURL=harmony23.cjs.map
|
package/dist/harmony23.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"harmony23.cjs","sources":["../src/features/auth/
|
|
1
|
+
{"version":3,"file":"harmony23.cjs","sources":["../src/features/auth/backend/services/getAuthenticatedSessionDetailFromRequest.ts"],"sourcesContent":["import type { JwtTokenPayload } from '@features/auth/core/types/jwtTokenPayload'\nimport { parseJwtTokenPayload } from '@features/auth/core/utils/jwtTokenPayload'\nimport { getJwtTokenFromCookie } from '@features/auth/frontend/utils/cookieTokenUtils'\nimport type { JwtToken } from '@features/publicApi/types/userTokenTypes'\n\ntype AuthenticatedSessionDetail = JwtToken & { payload: JwtTokenPayload }\n\n/**\n * Returns the JWT tokens and parses the attached payload.\n */\nexport function getAuthenticatedSessionDetailFromRequest(): AuthenticatedSessionDetail | undefined {\n\tconst cookie = getJwtTokenFromCookie()\n\tif (!cookie) {\n\t\treturn undefined\n\t}\n\n\tconst payload = parseJwtTokenPayload(cookie.accessToken)\n\tif (!payload) {\n\t\treturn undefined\n\t}\n\n\treturn { ...cookie, payload }\n}\n"],"names":["getJwtTokenFromCookie","parseJwtTokenPayload"],"mappings":";;;;AAUO,SAAS,2CAAmF;AAClG,QAAM,SAASA,iBAAAA,sBAAsB;AACrC,MAAI,CAAC,QAAQ;AACL,WAAA;AAAA,EAAA;AAGF,QAAA,UAAUC,gBAAAA,qBAAqB,OAAO,WAAW;AACvD,MAAI,CAAC,SAAS;AACN,WAAA;AAAA,EAAA;AAGD,SAAA,EAAE,GAAG,QAAQ,QAAQ;AAC7B;;"}
|
package/dist/harmony23.mjs
CHANGED
|
@@ -1,145 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
return new HeaderBuilder([() => initialHeaders]);
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Adds a single header to the builder by providing a key and a value.
|
|
17
|
-
*
|
|
18
|
-
* @example
|
|
19
|
-
* ```typescript
|
|
20
|
-
* const builder = HeaderBuilder.create()
|
|
21
|
-
* .add('Content-Type', 'application/json')
|
|
22
|
-
* .add('authorization', 'Bearer token')
|
|
23
|
-
*
|
|
24
|
-
* const headers = await builder.resolve()
|
|
25
|
-
* console.log(headers)
|
|
26
|
-
* // { 'Content-Type': 'application/json', 'authorization': 'Bearer token' }
|
|
27
|
-
* ```
|
|
28
|
-
*
|
|
29
|
-
* @param key - The key of the header
|
|
30
|
-
* @param value - The value of the header
|
|
31
|
-
*/
|
|
32
|
-
add(key, value) {
|
|
33
|
-
return new HeaderBuilder([...this.factories, () => ({ [key]: value })]);
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Adds multiple headers to the builder by providing an object or a promise of an object with the headers.
|
|
37
|
-
*
|
|
38
|
-
* @example
|
|
39
|
-
* ```typescript
|
|
40
|
-
* const builder = HeaderBuilder.create()
|
|
41
|
-
* .and({ 'Content-Type': 'application/json', 'authorization': 'Bearer token' })
|
|
42
|
-
* .and(Promise.resolve({ 'X-Custom-Header': 'custom', 'X-Another-Header': 'another' }))
|
|
43
|
-
*
|
|
44
|
-
* const headers = await builder.resolve()
|
|
45
|
-
* console.log(headers)
|
|
46
|
-
* // Prints: {
|
|
47
|
-
* // 'Content-Type': 'application/json',
|
|
48
|
-
* // 'authorization': 'Bearer token',
|
|
49
|
-
* // 'X-Custom-Header': 'custom',
|
|
50
|
-
* // 'X-Another-Header': 'another'
|
|
51
|
-
* // }
|
|
52
|
-
* ```
|
|
53
|
-
*
|
|
54
|
-
* @param extension - An object with the headers to add
|
|
55
|
-
*/
|
|
56
|
-
and(extension) {
|
|
57
|
-
return new HeaderBuilder([...this.factories, () => extension]);
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Adds a factory function that returns a promise of headers to the builder.
|
|
61
|
-
* This is useful when you need to fetch some data asynchronously to build the headers.
|
|
62
|
-
*
|
|
63
|
-
* @example
|
|
64
|
-
* ```typescript
|
|
65
|
-
* const builder = HeaderBuilder.create()
|
|
66
|
-
* .from(async () => {
|
|
67
|
-
* const token = await fetchToken()
|
|
68
|
-
* return { 'authorization': `Bearer ${token}` }
|
|
69
|
-
* })
|
|
70
|
-
*
|
|
71
|
-
* const headers = await builder.resolve()
|
|
72
|
-
* console.log(headers) // { 'authorization': 'Bearer <token>' }
|
|
73
|
-
* ```
|
|
74
|
-
*
|
|
75
|
-
* @param factory - A function that returns a promise of headers
|
|
76
|
-
*/
|
|
77
|
-
from(factory) {
|
|
78
|
-
return new HeaderBuilder([...this.factories, factory]);
|
|
79
|
-
}
|
|
80
|
-
/**
|
|
81
|
-
* Takes a middleware function that receives the current builder and returns a new, modified, builder.
|
|
82
|
-
*
|
|
83
|
-
* @example
|
|
84
|
-
* ```typescript
|
|
85
|
-
* const authMiddleware = createHeaderBuilderMiddleware(async (builder) => {
|
|
86
|
-
* const token = await fetchToken()
|
|
87
|
-
* return builder.add('authorization', `Bearer ${token}`)
|
|
88
|
-
* })
|
|
89
|
-
*
|
|
90
|
-
* const builder = HeaderBuilder.create()
|
|
91
|
-
* .with(authMiddleware)
|
|
92
|
-
*
|
|
93
|
-
* const headers = await builder.resolve() // Type of headers is { 'authorization': string }
|
|
94
|
-
* console.log(headers) // { 'authorization': 'Bearer <token>' }
|
|
95
|
-
* ```
|
|
96
|
-
*
|
|
97
|
-
* @param middleware
|
|
98
|
-
*/
|
|
99
|
-
with(middleware) {
|
|
100
|
-
return middleware.apply(this);
|
|
101
|
-
}
|
|
102
|
-
/**
|
|
103
|
-
* Merges the current builder with another builder.
|
|
104
|
-
*
|
|
105
|
-
* @example
|
|
106
|
-
* ```typescript
|
|
107
|
-
* const builderA = HeaderBuilder.create()
|
|
108
|
-
* .add('Content-Type', 'application/json')
|
|
109
|
-
*
|
|
110
|
-
* const builderB = HeaderBuilder.create()
|
|
111
|
-
* .add('authorization', 'Bearer token')
|
|
112
|
-
*
|
|
113
|
-
* const mergedBuilder = builderA.merge(builderB)
|
|
114
|
-
*
|
|
115
|
-
* const headers = await mergedBuilder.resolve()
|
|
116
|
-
* console.log(headers)
|
|
117
|
-
* // { 'Content-Type': 'application/json', 'authorization': 'Bearer token' }
|
|
118
|
-
* ```
|
|
119
|
-
*
|
|
120
|
-
* @param builder - The builder to merge with
|
|
121
|
-
*/
|
|
122
|
-
merge(builder) {
|
|
123
|
-
return new HeaderBuilder([...this.factories, ...builder.factories]);
|
|
124
|
-
}
|
|
125
|
-
/**
|
|
126
|
-
* Resolves the headers by waiting for all the promises to resolve and merging them together.
|
|
127
|
-
*
|
|
128
|
-
* @example
|
|
129
|
-
* ```typescript
|
|
130
|
-
* const builder = HeaderBuilder.create()
|
|
131
|
-
* .add('Content-Type', 'application/json')
|
|
132
|
-
*
|
|
133
|
-
* const headers = await builder.resolve()
|
|
134
|
-
* console.log(headers) // { 'Content-Type': 'application/json' }
|
|
135
|
-
*/
|
|
136
|
-
async resolve() {
|
|
137
|
-
const headers = this.factories.map((header) => header());
|
|
138
|
-
const resolvedHeaders = await Promise.all(headers);
|
|
139
|
-
return Object.assign({}, ...resolvedHeaders);
|
|
140
|
-
}
|
|
1
|
+
import { parseJwtTokenPayload } from "./harmony20.mjs";
|
|
2
|
+
import { getJwtTokenFromCookie } from "./harmony21.mjs";
|
|
3
|
+
function getAuthenticatedSessionDetailFromRequest() {
|
|
4
|
+
const cookie = getJwtTokenFromCookie();
|
|
5
|
+
if (!cookie) {
|
|
6
|
+
return void 0;
|
|
7
|
+
}
|
|
8
|
+
const payload = parseJwtTokenPayload(cookie.accessToken);
|
|
9
|
+
if (!payload) {
|
|
10
|
+
return void 0;
|
|
11
|
+
}
|
|
12
|
+
return { ...cookie, payload };
|
|
141
13
|
}
|
|
142
14
|
export {
|
|
143
|
-
|
|
15
|
+
getAuthenticatedSessionDetailFromRequest
|
|
144
16
|
};
|
|
145
17
|
//# sourceMappingURL=harmony23.mjs.map
|
package/dist/harmony23.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"harmony23.mjs","sources":["../src/features/auth/
|
|
1
|
+
{"version":3,"file":"harmony23.mjs","sources":["../src/features/auth/backend/services/getAuthenticatedSessionDetailFromRequest.ts"],"sourcesContent":["import type { JwtTokenPayload } from '@features/auth/core/types/jwtTokenPayload'\nimport { parseJwtTokenPayload } from '@features/auth/core/utils/jwtTokenPayload'\nimport { getJwtTokenFromCookie } from '@features/auth/frontend/utils/cookieTokenUtils'\nimport type { JwtToken } from '@features/publicApi/types/userTokenTypes'\n\ntype AuthenticatedSessionDetail = JwtToken & { payload: JwtTokenPayload }\n\n/**\n * Returns the JWT tokens and parses the attached payload.\n */\nexport function getAuthenticatedSessionDetailFromRequest(): AuthenticatedSessionDetail | undefined {\n\tconst cookie = getJwtTokenFromCookie()\n\tif (!cookie) {\n\t\treturn undefined\n\t}\n\n\tconst payload = parseJwtTokenPayload(cookie.accessToken)\n\tif (!payload) {\n\t\treturn undefined\n\t}\n\n\treturn { ...cookie, payload }\n}\n"],"names":[],"mappings":";;AAUO,SAAS,2CAAmF;AAClG,QAAM,SAAS,sBAAsB;AACrC,MAAI,CAAC,QAAQ;AACL,WAAA;AAAA,EAAA;AAGF,QAAA,UAAU,qBAAqB,OAAO,WAAW;AACvD,MAAI,CAAC,SAAS;AACN,WAAA;AAAA,EAAA;AAGD,SAAA,EAAE,GAAG,QAAQ,QAAQ;AAC7B;"}
|
package/dist/harmony24.cjs
CHANGED
|
@@ -1,23 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
return authenticationHeaderBuilder.with(publicApiHeaderBuilderMiddleware.PublicApiHeaderBuilderMiddleware);
|
|
21
|
-
};
|
|
22
|
-
exports.createPublicApiHeaderBuilder = createPublicApiHeaderBuilder;
|
|
3
|
+
const UnauthorizedError = require("./harmony19.cjs");
|
|
4
|
+
const userToken = require("./harmony51.cjs");
|
|
5
|
+
const apiContracts = require("@lokalise/api-contracts");
|
|
6
|
+
const frontendHttpClient = require("@lokalise/frontend-http-client");
|
|
7
|
+
function generateTokenFromClassicSession(authenticationProvider, getCsrfToken, getTeamId) {
|
|
8
|
+
return async () => {
|
|
9
|
+
const csrfToken = getCsrfToken();
|
|
10
|
+
if (!csrfToken) {
|
|
11
|
+
throw new UnauthorizedError.UnauthorizedError();
|
|
12
|
+
}
|
|
13
|
+
return frontendHttpClient.sendByPayloadRoute(authenticationProvider, userToken.getUserToken, {
|
|
14
|
+
pathParams: { teamId: Number(await getTeamId()) },
|
|
15
|
+
headers: await apiContracts.HeaderBuilder.create().add("x-csrf-token", csrfToken).resolve()
|
|
16
|
+
});
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
exports.generateTokenFromClassicSession = generateTokenFromClassicSession;
|
|
23
20
|
//# sourceMappingURL=harmony24.cjs.map
|
package/dist/harmony24.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"harmony24.cjs","sources":["../src/features/auth/
|
|
1
|
+
{"version":3,"file":"harmony24.cjs","sources":["../src/features/auth/frontend/services/generateTokenFromClassicSession.ts"],"sourcesContent":["import { UnauthorizedError } from '@features/auth/errors/UnauthorizedError'\nimport { getUserToken } from '@features/publicApi/userToken'\nimport { HeaderBuilder } from '@lokalise/api-contracts'\nimport { sendByPayloadRoute } from '@lokalise/frontend-http-client'\nimport type { Wretch } from 'wretch'\n\nexport function generateTokenFromClassicSession<T>(\n\tauthenticationProvider: Wretch<T>,\n\tgetCsrfToken: () => string | null,\n\tgetTeamId: () => Promise<string>,\n) {\n\treturn async () => {\n\t\tconst csrfToken = getCsrfToken()\n\n\t\tif (!csrfToken) {\n\t\t\tthrow new UnauthorizedError()\n\t\t}\n\n\t\treturn sendByPayloadRoute(authenticationProvider, getUserToken, {\n\t\t\tpathParams: { teamId: Number(await getTeamId()) },\n\t\t\theaders: await HeaderBuilder.create().add('x-csrf-token', csrfToken).resolve(),\n\t\t})\n\t}\n}\n"],"names":["UnauthorizedError","sendByPayloadRoute","getUserToken","HeaderBuilder"],"mappings":";;;;;;AAMgB,SAAA,gCACf,wBACA,cACA,WACC;AACD,SAAO,YAAY;AAClB,UAAM,YAAY,aAAa;AAE/B,QAAI,CAAC,WAAW;AACf,YAAM,IAAIA,kBAAAA,kBAAkB;AAAA,IAAA;AAGtB,WAAAC,mBAAA,mBAAmB,wBAAwBC,wBAAc;AAAA,MAC/D,YAAY,EAAE,QAAQ,OAAO,MAAM,UAAW,CAAA,EAAE;AAAA,MAChD,SAAS,MAAMC,aAAAA,cAAc,OAAA,EAAS,IAAI,gBAAgB,SAAS,EAAE,QAAQ;AAAA,IAAA,CAC7E;AAAA,EACF;AACD;;"}
|
package/dist/harmony24.mjs
CHANGED
|
@@ -1,23 +1,20 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import { HeaderBuilder } from "
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
const authenticationHeaderBuilder = createAuthenticationHeaderBuilder(apiUrl);
|
|
18
|
-
return authenticationHeaderBuilder.with(PublicApiHeaderBuilderMiddleware);
|
|
19
|
-
};
|
|
1
|
+
import { UnauthorizedError } from "./harmony19.mjs";
|
|
2
|
+
import { getUserToken } from "./harmony51.mjs";
|
|
3
|
+
import { HeaderBuilder } from "@lokalise/api-contracts";
|
|
4
|
+
import { sendByPayloadRoute } from "@lokalise/frontend-http-client";
|
|
5
|
+
function generateTokenFromClassicSession(authenticationProvider, getCsrfToken, getTeamId) {
|
|
6
|
+
return async () => {
|
|
7
|
+
const csrfToken = getCsrfToken();
|
|
8
|
+
if (!csrfToken) {
|
|
9
|
+
throw new UnauthorizedError();
|
|
10
|
+
}
|
|
11
|
+
return sendByPayloadRoute(authenticationProvider, getUserToken, {
|
|
12
|
+
pathParams: { teamId: Number(await getTeamId()) },
|
|
13
|
+
headers: await HeaderBuilder.create().add("x-csrf-token", csrfToken).resolve()
|
|
14
|
+
});
|
|
15
|
+
};
|
|
16
|
+
}
|
|
20
17
|
export {
|
|
21
|
-
|
|
18
|
+
generateTokenFromClassicSession
|
|
22
19
|
};
|
|
23
20
|
//# sourceMappingURL=harmony24.mjs.map
|
package/dist/harmony24.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"harmony24.mjs","sources":["../src/features/auth/
|
|
1
|
+
{"version":3,"file":"harmony24.mjs","sources":["../src/features/auth/frontend/services/generateTokenFromClassicSession.ts"],"sourcesContent":["import { UnauthorizedError } from '@features/auth/errors/UnauthorizedError'\nimport { getUserToken } from '@features/publicApi/userToken'\nimport { HeaderBuilder } from '@lokalise/api-contracts'\nimport { sendByPayloadRoute } from '@lokalise/frontend-http-client'\nimport type { Wretch } from 'wretch'\n\nexport function generateTokenFromClassicSession<T>(\n\tauthenticationProvider: Wretch<T>,\n\tgetCsrfToken: () => string | null,\n\tgetTeamId: () => Promise<string>,\n) {\n\treturn async () => {\n\t\tconst csrfToken = getCsrfToken()\n\n\t\tif (!csrfToken) {\n\t\t\tthrow new UnauthorizedError()\n\t\t}\n\n\t\treturn sendByPayloadRoute(authenticationProvider, getUserToken, {\n\t\t\tpathParams: { teamId: Number(await getTeamId()) },\n\t\t\theaders: await HeaderBuilder.create().add('x-csrf-token', csrfToken).resolve(),\n\t\t})\n\t}\n}\n"],"names":[],"mappings":";;;;AAMgB,SAAA,gCACf,wBACA,cACA,WACC;AACD,SAAO,YAAY;AAClB,UAAM,YAAY,aAAa;AAE/B,QAAI,CAAC,WAAW;AACf,YAAM,IAAI,kBAAkB;AAAA,IAAA;AAGtB,WAAA,mBAAmB,wBAAwB,cAAc;AAAA,MAC/D,YAAY,EAAE,QAAQ,OAAO,MAAM,UAAW,CAAA,EAAE;AAAA,MAChD,SAAS,MAAM,cAAc,OAAA,EAAS,IAAI,gBAAgB,SAAS,EAAE,QAAQ;AAAA,IAAA,CAC7E;AAAA,EACF;AACD;"}
|
package/dist/harmony25.cjs
CHANGED
|
@@ -1,17 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const jwtTokenPayload = require("./harmony20.cjs");
|
|
4
|
-
const
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
4
|
+
const UnauthorizedError = require("./harmony19.cjs");
|
|
5
|
+
const userToken = require("./harmony51.cjs");
|
|
6
|
+
const apiContracts = require("@lokalise/api-contracts");
|
|
7
|
+
const frontendHttpClient = require("@lokalise/frontend-http-client");
|
|
8
|
+
function refreshExpiredToken(authenticationProvider) {
|
|
9
|
+
return async ({ accessToken, refreshToken }) => {
|
|
10
|
+
const payload = jwtTokenPayload.parseJwtTokenPayload(accessToken);
|
|
11
|
+
if (!payload) {
|
|
12
|
+
throw new UnauthorizedError.UnauthorizedError();
|
|
13
|
+
}
|
|
14
|
+
return frontendHttpClient.sendByPayloadRoute(authenticationProvider, userToken.getUserToken, {
|
|
15
|
+
pathParams: { teamId: payload.teamId },
|
|
16
|
+
headers: await apiContracts.HeaderBuilder.create().add("authorization", `Bearer ${refreshToken}`).resolve()
|
|
17
|
+
});
|
|
18
|
+
};
|
|
15
19
|
}
|
|
16
|
-
exports.
|
|
20
|
+
exports.refreshExpiredToken = refreshExpiredToken;
|
|
17
21
|
//# sourceMappingURL=harmony25.cjs.map
|
package/dist/harmony25.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"harmony25.cjs","sources":["../src/features/auth/
|
|
1
|
+
{"version":3,"file":"harmony25.cjs","sources":["../src/features/auth/frontend/services/refreshExpiredToken.ts"],"sourcesContent":["import { parseJwtTokenPayload } from '@features/auth/core/utils/jwtTokenPayload'\nimport { UnauthorizedError } from '@features/auth/errors/UnauthorizedError'\nimport type { JwtToken } from '@features/publicApi/types/userTokenTypes'\nimport { getUserToken } from '@features/publicApi/userToken'\nimport { HeaderBuilder } from '@lokalise/api-contracts'\nimport { sendByPayloadRoute } from '@lokalise/frontend-http-client'\nimport type { Wretch } from 'wretch'\n\nexport function refreshExpiredToken<T>(authenticationProvider: Wretch<T>) {\n\treturn async ({ accessToken, refreshToken }: JwtToken) => {\n\t\tconst payload = parseJwtTokenPayload(accessToken)\n\n\t\tif (!payload) {\n\t\t\tthrow new UnauthorizedError()\n\t\t}\n\n\t\treturn sendByPayloadRoute(authenticationProvider, getUserToken, {\n\t\t\tpathParams: { teamId: payload.teamId },\n\t\t\theaders: await HeaderBuilder.create()\n\t\t\t\t.add('authorization', `Bearer ${refreshToken}`)\n\t\t\t\t.resolve(),\n\t\t})\n\t}\n}\n"],"names":["parseJwtTokenPayload","UnauthorizedError","sendByPayloadRoute","getUserToken","HeaderBuilder"],"mappings":";;;;;;;AAQO,SAAS,oBAAuB,wBAAmC;AACzE,SAAO,OAAO,EAAE,aAAa,mBAA6B;AACnD,UAAA,UAAUA,qCAAqB,WAAW;AAEhD,QAAI,CAAC,SAAS;AACb,YAAM,IAAIC,kBAAAA,kBAAkB;AAAA,IAAA;AAGtB,WAAAC,mBAAA,mBAAmB,wBAAwBC,wBAAc;AAAA,MAC/D,YAAY,EAAE,QAAQ,QAAQ,OAAO;AAAA,MACrC,SAAS,MAAMC,aAAAA,cAAc,OAAO,EAClC,IAAI,iBAAiB,UAAU,YAAY,EAAE,EAC7C,QAAQ;AAAA,IAAA,CACV;AAAA,EACF;AACD;;"}
|
package/dist/harmony25.mjs
CHANGED
|
@@ -1,17 +1,21 @@
|
|
|
1
1
|
import { parseJwtTokenPayload } from "./harmony20.mjs";
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
2
|
+
import { UnauthorizedError } from "./harmony19.mjs";
|
|
3
|
+
import { getUserToken } from "./harmony51.mjs";
|
|
4
|
+
import { HeaderBuilder } from "@lokalise/api-contracts";
|
|
5
|
+
import { sendByPayloadRoute } from "@lokalise/frontend-http-client";
|
|
6
|
+
function refreshExpiredToken(authenticationProvider) {
|
|
7
|
+
return async ({ accessToken, refreshToken }) => {
|
|
8
|
+
const payload = parseJwtTokenPayload(accessToken);
|
|
9
|
+
if (!payload) {
|
|
10
|
+
throw new UnauthorizedError();
|
|
11
|
+
}
|
|
12
|
+
return sendByPayloadRoute(authenticationProvider, getUserToken, {
|
|
13
|
+
pathParams: { teamId: payload.teamId },
|
|
14
|
+
headers: await HeaderBuilder.create().add("authorization", `Bearer ${refreshToken}`).resolve()
|
|
15
|
+
});
|
|
16
|
+
};
|
|
13
17
|
}
|
|
14
18
|
export {
|
|
15
|
-
|
|
19
|
+
refreshExpiredToken
|
|
16
20
|
};
|
|
17
21
|
//# sourceMappingURL=harmony25.mjs.map
|
package/dist/harmony25.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"harmony25.mjs","sources":["../src/features/auth/
|
|
1
|
+
{"version":3,"file":"harmony25.mjs","sources":["../src/features/auth/frontend/services/refreshExpiredToken.ts"],"sourcesContent":["import { parseJwtTokenPayload } from '@features/auth/core/utils/jwtTokenPayload'\nimport { UnauthorizedError } from '@features/auth/errors/UnauthorizedError'\nimport type { JwtToken } from '@features/publicApi/types/userTokenTypes'\nimport { getUserToken } from '@features/publicApi/userToken'\nimport { HeaderBuilder } from '@lokalise/api-contracts'\nimport { sendByPayloadRoute } from '@lokalise/frontend-http-client'\nimport type { Wretch } from 'wretch'\n\nexport function refreshExpiredToken<T>(authenticationProvider: Wretch<T>) {\n\treturn async ({ accessToken, refreshToken }: JwtToken) => {\n\t\tconst payload = parseJwtTokenPayload(accessToken)\n\n\t\tif (!payload) {\n\t\t\tthrow new UnauthorizedError()\n\t\t}\n\n\t\treturn sendByPayloadRoute(authenticationProvider, getUserToken, {\n\t\t\tpathParams: { teamId: payload.teamId },\n\t\t\theaders: await HeaderBuilder.create()\n\t\t\t\t.add('authorization', `Bearer ${refreshToken}`)\n\t\t\t\t.resolve(),\n\t\t})\n\t}\n}\n"],"names":[],"mappings":";;;;;AAQO,SAAS,oBAAuB,wBAAmC;AACzE,SAAO,OAAO,EAAE,aAAa,mBAA6B;AACnD,UAAA,UAAU,qBAAqB,WAAW;AAEhD,QAAI,CAAC,SAAS;AACb,YAAM,IAAI,kBAAkB;AAAA,IAAA;AAGtB,WAAA,mBAAmB,wBAAwB,cAAc;AAAA,MAC/D,YAAY,EAAE,QAAQ,QAAQ,OAAO;AAAA,MACrC,SAAS,MAAM,cAAc,OAAO,EAClC,IAAI,iBAAiB,UAAU,YAAY,EAAE,EAC7C,QAAQ;AAAA,IAAA,CACV;AAAA,EACF;AACD;"}
|