langgraph-ui-components 0.0.4 → 0.0.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/index.es10.js +31 -16
- package/dist/index.es10.js.map +1 -1
- package/dist/index.es100.js +143 -3134
- package/dist/index.es100.js.map +1 -1
- package/dist/index.es101.js +202 -36
- package/dist/index.es101.js.map +1 -1
- package/dist/index.es102.js +14 -5
- package/dist/index.es102.js.map +1 -1
- package/dist/index.es103.js +27 -70
- package/dist/index.es103.js.map +1 -1
- package/dist/index.es104.js +28 -31
- package/dist/index.es104.js.map +1 -1
- package/dist/index.es105.js +3157 -5
- package/dist/index.es105.js.map +1 -1
- package/dist/index.es106.js +18 -2
- package/dist/index.es106.js.map +1 -1
- package/dist/index.es107.js +5 -11
- package/dist/index.es107.js.map +1 -1
- package/dist/index.es108.js +2 -503
- package/dist/index.es108.js.map +1 -1
- package/dist/index.es109.js +11 -5
- package/dist/index.es109.js.map +1 -1
- package/dist/index.es11.js +166 -123
- package/dist/index.es11.js.map +1 -1
- package/dist/index.es110.js +503 -2
- package/dist/index.es110.js.map +1 -1
- package/dist/index.es111.js +5 -146
- package/dist/index.es111.js.map +1 -1
- package/dist/index.es112.js +2 -908
- package/dist/index.es112.js.map +1 -1
- package/dist/index.es113.js +128 -262
- package/dist/index.es113.js.map +1 -1
- package/dist/index.es114.js +907 -3
- package/dist/index.es114.js.map +1 -1
- package/dist/index.es115.js +262 -426
- package/dist/index.es115.js.map +1 -1
- package/dist/index.es116.js +3 -47
- package/dist/index.es116.js.map +1 -1
- package/dist/index.es117.js +443 -21
- package/dist/index.es117.js.map +1 -1
- package/dist/index.es118.js +42 -75
- package/dist/index.es118.js.map +1 -1
- package/dist/index.es119.js +22 -129
- package/dist/index.es119.js.map +1 -1
- package/dist/index.es12.js +13 -103
- package/dist/index.es12.js.map +1 -1
- package/dist/index.es120.js +74 -44
- package/dist/index.es120.js.map +1 -1
- package/dist/index.es121.js +129 -10
- package/dist/index.es121.js.map +1 -1
- package/dist/index.es122.js +47 -43
- package/dist/index.es122.js.map +1 -1
- package/dist/index.es123.js +9 -98
- package/dist/index.es123.js.map +1 -1
- package/dist/index.es124.js +43 -51
- package/dist/index.es124.js.map +1 -1
- package/dist/index.es125.js +96 -13
- package/dist/index.es125.js.map +1 -1
- package/dist/index.es126.js +52 -14
- package/dist/index.es126.js.map +1 -1
- package/dist/index.es127.js +156 -81
- package/dist/index.es127.js.map +1 -1
- package/dist/index.es128.js +2 -2
- package/dist/index.es129.js +14 -55
- package/dist/index.es129.js.map +1 -1
- package/dist/index.es13.js +126 -32
- package/dist/index.es13.js.map +1 -1
- package/dist/index.es130.js +87 -98
- package/dist/index.es130.js.map +1 -1
- package/dist/index.es131.js +2 -191
- package/dist/index.es131.js.map +1 -1
- package/dist/index.es132.js +54 -108
- package/dist/index.es132.js.map +1 -1
- package/dist/index.es133.js +98 -33
- package/dist/index.es133.js.map +1 -1
- package/dist/index.es134.js +191 -10
- package/dist/index.es134.js.map +1 -1
- package/dist/index.es135.js +109 -10
- package/dist/index.es135.js.map +1 -1
- package/dist/index.es136.js +35 -12
- package/dist/index.es136.js.map +1 -1
- package/dist/index.es137.js +10 -91
- package/dist/index.es137.js.map +1 -1
- package/dist/index.es138.js +11 -275
- package/dist/index.es138.js.map +1 -1
- package/dist/index.es139.js +12 -2
- package/dist/index.es139.js.map +1 -1
- package/dist/index.es140.js +88 -161
- package/dist/index.es140.js.map +1 -1
- package/dist/index.es141.js +270 -46
- package/dist/index.es141.js.map +1 -1
- package/dist/index.es142.js +2 -40
- package/dist/index.es142.js.map +1 -1
- package/dist/index.es143.js +164 -35
- package/dist/index.es143.js.map +1 -1
- package/dist/index.es144.js +45 -34
- package/dist/index.es144.js.map +1 -1
- package/dist/index.es145.js +37 -21
- package/dist/index.es145.js.map +1 -1
- package/dist/index.es146.js +32 -588
- package/dist/index.es146.js.map +1 -1
- package/dist/index.es147.js +32 -117
- package/dist/index.es147.js.map +1 -1
- package/dist/index.es148.js +22 -162
- package/dist/index.es148.js.map +1 -1
- package/dist/index.es149.js +591 -2
- package/dist/index.es149.js.map +1 -1
- package/dist/index.es15.js +15 -15
- package/dist/index.es150.js +125 -2
- package/dist/index.es150.js.map +1 -1
- package/dist/index.es151.js +2 -2
- package/dist/index.es152.js +2 -22
- package/dist/index.es152.js.map +1 -1
- package/dist/index.es153.js +22 -2
- package/dist/index.es153.js.map +1 -1
- package/dist/index.es154.js +2 -25
- package/dist/index.es154.js.map +1 -1
- package/dist/index.es155.js +25 -8
- package/dist/index.es155.js.map +1 -1
- package/dist/index.es156.js +4 -5
- package/dist/index.es156.js.map +1 -1
- package/dist/index.es157.js +7 -12
- package/dist/index.es157.js.map +1 -1
- package/dist/index.es158.js +5 -6
- package/dist/index.es158.js.map +1 -1
- package/dist/index.es159.js +12 -63
- package/dist/index.es159.js.map +1 -1
- package/dist/index.es160.js +5 -21
- package/dist/index.es160.js.map +1 -1
- package/dist/index.es161.js +24 -5
- package/dist/index.es161.js.map +1 -1
- package/dist/index.es162.js +11 -348
- package/dist/index.es162.js.map +1 -1
- package/dist/index.es163.js +52 -23
- package/dist/index.es163.js.map +1 -1
- package/dist/index.es164.js +63 -11
- package/dist/index.es164.js.map +1 -1
- package/dist/index.es165.js +21 -53
- package/dist/index.es165.js.map +1 -1
- package/dist/index.es166.js +6 -7
- package/dist/index.es166.js.map +1 -1
- package/dist/index.es167.js +342 -96
- package/dist/index.es167.js.map +1 -1
- package/dist/index.es168.js +6 -118
- package/dist/index.es168.js.map +1 -1
- package/dist/index.es169.js +98 -131
- package/dist/index.es169.js.map +1 -1
- package/dist/index.es17.js +2 -2
- package/dist/index.es170.js +108 -104
- package/dist/index.es170.js.map +1 -1
- package/dist/index.es171.js +136 -6
- package/dist/index.es171.js.map +1 -1
- package/dist/index.es172.js +114 -3
- package/dist/index.es172.js.map +1 -1
- package/dist/index.es173.js +6 -2
- package/dist/index.es173.js.map +1 -1
- package/dist/index.es174.js +2 -3737
- package/dist/index.es174.js.map +1 -1
- package/dist/index.es175.js +3682 -287
- package/dist/index.es175.js.map +1 -1
- package/dist/index.es176.js +321 -88
- package/dist/index.es176.js.map +1 -1
- package/dist/index.es177.js +95 -119
- package/dist/index.es177.js.map +1 -1
- package/dist/index.es178.js +131 -13
- package/dist/index.es178.js.map +1 -1
- package/dist/index.es179.js +13 -150
- package/dist/index.es179.js.map +1 -1
- package/dist/index.es180.js +150 -13
- package/dist/index.es180.js.map +1 -1
- package/dist/index.es181.js +13 -6
- package/dist/index.es181.js.map +1 -1
- package/dist/index.es182.js +6 -19
- package/dist/index.es182.js.map +1 -1
- package/dist/index.es183.js +17 -86
- package/dist/index.es183.js.map +1 -1
- package/dist/index.es184.js +69 -222
- package/dist/index.es184.js.map +1 -1
- package/dist/index.es185.js +242 -23
- package/dist/index.es185.js.map +1 -1
- package/dist/index.es186.js +23 -5
- package/dist/index.es186.js.map +1 -1
- package/dist/index.es187.js +6 -4
- package/dist/index.es187.js.map +1 -1
- package/dist/index.es188.js +4 -18
- package/dist/index.es188.js.map +1 -1
- package/dist/index.es189.js +16 -6
- package/dist/index.es189.js.map +1 -1
- package/dist/index.es19.js +119 -15
- package/dist/index.es19.js.map +1 -1
- package/dist/index.es190.js +7 -141
- package/dist/index.es190.js.map +1 -1
- package/dist/index.es191.js +142 -2
- package/dist/index.es191.js.map +1 -1
- package/dist/index.es192.js +2 -32
- package/dist/index.es192.js.map +1 -1
- package/dist/index.es193.js +31 -5
- package/dist/index.es193.js.map +1 -1
- package/dist/index.es194.js +5 -105
- package/dist/index.es194.js.map +1 -1
- package/dist/index.es195.js +106 -13
- package/dist/index.es195.js.map +1 -1
- package/dist/index.es196.js +12 -17
- package/dist/index.es196.js.map +1 -1
- package/dist/index.es197.js +15 -28
- package/dist/index.es197.js.map +1 -1
- package/dist/index.es198.js +30 -3
- package/dist/index.es198.js.map +1 -1
- package/dist/index.es199.js +3 -4
- package/dist/index.es199.js.map +1 -1
- package/dist/index.es2.js +24 -16
- package/dist/index.es2.js.map +1 -1
- package/dist/index.es20.js +17 -68
- package/dist/index.es20.js.map +1 -1
- package/dist/index.es200.js +5 -5
- package/dist/index.es200.js.map +1 -1
- package/dist/index.es201.js +4 -36
- package/dist/index.es201.js.map +1 -1
- package/dist/index.es202.js +36 -7
- package/dist/index.es202.js.map +1 -1
- package/dist/index.es203.js +7 -5
- package/dist/index.es203.js.map +1 -1
- package/dist/index.es204.js +5 -6
- package/dist/index.es204.js.map +1 -1
- package/dist/index.es205.js +6 -41
- package/dist/index.es205.js.map +1 -1
- package/dist/index.es206.js +41 -12
- package/dist/index.es206.js.map +1 -1
- package/dist/index.es207.js +11 -240
- package/dist/index.es207.js.map +1 -1
- package/dist/index.es208.js +239 -48
- package/dist/index.es208.js.map +1 -1
- package/dist/index.es209.js +49 -33
- package/dist/index.es209.js.map +1 -1
- package/dist/index.es21.js +3 -3
- package/dist/index.es21.js.map +1 -1
- package/dist/index.es210.js +32 -10
- package/dist/index.es210.js.map +1 -1
- package/dist/index.es211.js +12 -7
- package/dist/index.es211.js.map +1 -1
- package/dist/index.es212.js +7 -6
- package/dist/index.es212.js.map +1 -1
- package/dist/index.es213.js +6 -64
- package/dist/index.es213.js.map +1 -1
- package/dist/index.es214.js +60 -36
- package/dist/index.es214.js.map +1 -1
- package/dist/index.es215.js +39 -30
- package/dist/index.es215.js.map +1 -1
- package/dist/index.es216.js +30 -60
- package/dist/index.es216.js.map +1 -1
- package/dist/index.es217.js +60 -13
- package/dist/index.es217.js.map +1 -1
- package/dist/index.es218.js +9 -17
- package/dist/index.es218.js.map +1 -1
- package/dist/index.es219.js +23 -5
- package/dist/index.es219.js.map +1 -1
- package/dist/index.es22.js +1 -1
- package/dist/index.es220.js +4 -16
- package/dist/index.es220.js.map +1 -1
- package/dist/index.es221.js +14 -30
- package/dist/index.es221.js.map +1 -1
- package/dist/index.es222.js +32 -4
- package/dist/index.es222.js.map +1 -1
- package/dist/index.es223.js +4 -4
- package/dist/index.es223.js.map +1 -1
- package/dist/index.es224.js +5 -5
- package/dist/index.es224.js.map +1 -1
- package/dist/index.es225.js +5 -8
- package/dist/index.es225.js.map +1 -1
- package/dist/index.es226.js +6 -90
- package/dist/index.es226.js.map +1 -1
- package/dist/index.es227.js +90 -16
- package/dist/index.es227.js.map +1 -1
- package/dist/index.es228.js +17 -761
- package/dist/index.es228.js.map +1 -1
- package/dist/index.es229.js +762 -66
- package/dist/index.es229.js.map +1 -1
- package/dist/index.es230.js +66 -174
- package/dist/index.es230.js.map +1 -1
- package/dist/index.es231.js +169 -33
- package/dist/index.es231.js.map +1 -1
- package/dist/index.es232.js +37 -136
- package/dist/index.es232.js.map +1 -1
- package/dist/index.es233.js +136 -92
- package/dist/index.es233.js.map +1 -1
- package/dist/index.es234.js +92 -32
- package/dist/index.es234.js.map +1 -1
- package/dist/index.es235.js +32 -284
- package/dist/index.es235.js.map +1 -1
- package/dist/index.es236.js +284 -25
- package/dist/index.es236.js.map +1 -1
- package/dist/index.es237.js +22 -20
- package/dist/index.es237.js.map +1 -1
- package/dist/index.es238.js +22 -13
- package/dist/index.es238.js.map +1 -1
- package/dist/index.es239.js +12 -12
- package/dist/index.es239.js.map +1 -1
- package/dist/index.es24.js +103 -305
- package/dist/index.es24.js.map +1 -1
- package/dist/index.es240.js +13 -24
- package/dist/index.es240.js.map +1 -1
- package/dist/index.es241.js +22 -42
- package/dist/index.es241.js.map +1 -1
- package/dist/index.es242.js +45 -11
- package/dist/index.es242.js.map +1 -1
- package/dist/index.es243.js +10 -10
- package/dist/index.es243.js.map +1 -1
- package/dist/index.es244.js +10 -10
- package/dist/index.es244.js.map +1 -1
- package/dist/index.es245.js +11 -14
- package/dist/index.es245.js.map +1 -1
- package/dist/index.es246.js +14 -11
- package/dist/index.es246.js.map +1 -1
- package/dist/index.es247.js +11 -11
- package/dist/index.es247.js.map +1 -1
- package/dist/index.es248.js +10 -10
- package/dist/index.es248.js.map +1 -1
- package/dist/index.es249.js +11 -15
- package/dist/index.es249.js.map +1 -1
- package/dist/index.es25.js +68 -121
- package/dist/index.es25.js.map +1 -1
- package/dist/index.es250.js +15 -11
- package/dist/index.es250.js.map +1 -1
- package/dist/index.es251.js +10 -10
- package/dist/index.es251.js.map +1 -1
- package/dist/index.es252.js +11 -11
- package/dist/index.es252.js.map +1 -1
- package/dist/index.es253.js +10 -10
- package/dist/index.es253.js.map +1 -1
- package/dist/index.es254.js +10 -10
- package/dist/index.es254.js.map +1 -1
- package/dist/index.es255.js +10 -10
- package/dist/index.es255.js.map +1 -1
- package/dist/index.es256.js +10 -10
- package/dist/index.es256.js.map +1 -1
- package/dist/index.es257.js +10 -10
- package/dist/index.es257.js.map +1 -1
- package/dist/index.es258.js +11 -56
- package/dist/index.es258.js.map +1 -1
- package/dist/index.es259.js +53 -46
- package/dist/index.es259.js.map +1 -1
- package/dist/index.es26.js +305 -5
- package/dist/index.es26.js.map +1 -1
- package/dist/index.es260.js +42 -112
- package/dist/index.es260.js.map +1 -1
- package/dist/index.es261.js +87 -352
- package/dist/index.es261.js.map +1 -1
- package/dist/index.es262.js +381 -15
- package/dist/index.es262.js.map +1 -1
- package/dist/index.es263.js +17 -10
- package/dist/index.es263.js.map +1 -1
- package/dist/index.es264.js +10 -30
- package/dist/index.es264.js.map +1 -1
- package/dist/index.es265.js +17 -17
- package/dist/index.es265.js.map +1 -1
- package/dist/index.es266.js +25 -56
- package/dist/index.es266.js.map +1 -1
- package/dist/index.es267.js +59 -14
- package/dist/index.es267.js.map +1 -1
- package/dist/index.es268.js +14 -74
- package/dist/index.es268.js.map +1 -1
- package/dist/index.es269.js +77 -11
- package/dist/index.es269.js.map +1 -1
- package/dist/index.es270.js +10 -10
- package/dist/index.es270.js.map +1 -1
- package/dist/index.es271.js +11 -15
- package/dist/index.es271.js.map +1 -1
- package/dist/index.es272.js +14 -51
- package/dist/index.es272.js.map +1 -1
- package/dist/index.es273.js +44 -158
- package/dist/index.es273.js.map +1 -1
- package/dist/index.es274.js +167 -2
- package/dist/index.es274.js.map +1 -1
- package/dist/index.es275.js +2 -11
- package/dist/index.es275.js.map +1 -1
- package/dist/index.es276.js +9 -18
- package/dist/index.es276.js.map +1 -1
- package/dist/index.es277.js +17 -36
- package/dist/index.es277.js.map +1 -1
- package/dist/index.es278.js +42 -0
- package/dist/index.es278.js.map +1 -0
- package/dist/index.es28.js +7 -7
- package/dist/index.es29.js +1 -1
- package/dist/index.es32.js +4 -4
- package/dist/index.es33.js +1191 -13
- package/dist/index.es33.js.map +1 -1
- package/dist/index.es34.js +6 -117
- package/dist/index.es34.js.map +1 -1
- package/dist/index.es35.js +8 -70
- package/dist/index.es35.js.map +1 -1
- package/dist/index.es36.js +148 -19
- package/dist/index.es36.js.map +1 -1
- package/dist/index.es37.js +112 -255
- package/dist/index.es37.js.map +1 -1
- package/dist/index.es38.js +68 -40
- package/dist/index.es38.js.map +1 -1
- package/dist/index.es39.js +17 -214
- package/dist/index.es39.js.map +1 -1
- package/dist/index.es40.js +247 -53
- package/dist/index.es40.js.map +1 -1
- package/dist/index.es41.js +24 -123
- package/dist/index.es41.js.map +1 -1
- package/dist/index.es42.js +205 -14
- package/dist/index.es42.js.map +1 -1
- package/dist/index.es43.js +58 -221
- package/dist/index.es43.js.map +1 -1
- package/dist/index.es44.js +140 -7
- package/dist/index.es44.js.map +1 -1
- package/dist/index.es45.js +17 -1185
- package/dist/index.es45.js.map +1 -1
- package/dist/index.es46.js +229 -6
- package/dist/index.es46.js.map +1 -1
- package/dist/index.es47.js +15 -146
- package/dist/index.es47.js.map +1 -1
- package/dist/index.es48.js +6 -8
- package/dist/index.es48.js.map +1 -1
- package/dist/index.es49.js +84 -87
- package/dist/index.es49.js.map +1 -1
- package/dist/index.es50.js +7 -3
- package/dist/index.es50.js.map +1 -1
- package/dist/index.es51.js +14 -35
- package/dist/index.es51.js.map +1 -1
- package/dist/index.es52.js +7 -71
- package/dist/index.es52.js.map +1 -1
- package/dist/index.es53.js +89 -33
- package/dist/index.es53.js.map +1 -1
- package/dist/index.es54.js +3 -305
- package/dist/index.es54.js.map +1 -1
- package/dist/index.es55.js +36 -9
- package/dist/index.es55.js.map +1 -1
- package/dist/index.es56.js +64 -83
- package/dist/index.es56.js.map +1 -1
- package/dist/index.es57.js +36 -6
- package/dist/index.es57.js.map +1 -1
- package/dist/index.es58.js +303 -12
- package/dist/index.es58.js.map +1 -1
- package/dist/index.es59.js +9 -143
- package/dist/index.es59.js.map +1 -1
- package/dist/index.es60.js +5 -299
- package/dist/index.es60.js.map +1 -1
- package/dist/index.es61.js +158 -61
- package/dist/index.es61.js.map +1 -1
- package/dist/index.es62.js +658 -199
- package/dist/index.es62.js.map +1 -1
- package/dist/index.es63.js +138 -29
- package/dist/index.es63.js.map +1 -1
- package/dist/index.es64.js +299 -8
- package/dist/index.es64.js.map +1 -1
- package/dist/index.es65.js +65 -11
- package/dist/index.es65.js.map +1 -1
- package/dist/index.es66.js +201 -175
- package/dist/index.es66.js.map +1 -1
- package/dist/index.es67.js +33 -23
- package/dist/index.es67.js.map +1 -1
- package/dist/index.es68.js +8 -1399
- package/dist/index.es68.js.map +1 -1
- package/dist/index.es69.js +12 -9
- package/dist/index.es69.js.map +1 -1
- package/dist/index.es70.js +187 -8
- package/dist/index.es70.js.map +1 -1
- package/dist/index.es71.js +24 -6
- package/dist/index.es71.js.map +1 -1
- package/dist/index.es72.js +1384 -147
- package/dist/index.es72.js.map +1 -1
- package/dist/index.es73.js +9 -672
- package/dist/index.es73.js.map +1 -1
- package/dist/index.es74.js +8 -12
- package/dist/index.es74.js.map +1 -1
- package/dist/index.es75.js +35 -38
- package/dist/index.es75.js.map +1 -1
- package/dist/index.es76.js +5 -34
- package/dist/index.es76.js.map +1 -1
- package/dist/index.es77.js +64 -223
- package/dist/index.es77.js.map +1 -1
- package/dist/index.es78.js +36 -29
- package/dist/index.es78.js.map +1 -1
- package/dist/index.es79.js +11 -74
- package/dist/index.es79.js.map +1 -1
- package/dist/index.es80.js +37 -73
- package/dist/index.es80.js.map +1 -1
- package/dist/index.es81.js +32 -50
- package/dist/index.es81.js.map +1 -1
- package/dist/index.es82.js +228 -26
- package/dist/index.es82.js.map +1 -1
- package/dist/index.es83.js +6 -19
- package/dist/index.es83.js.map +1 -1
- package/dist/index.es84.js +72 -54
- package/dist/index.es84.js.map +1 -1
- package/dist/index.es85.js +76 -13
- package/dist/index.es85.js.map +1 -1
- package/dist/index.es86.js +47 -132
- package/dist/index.es86.js.map +1 -1
- package/dist/index.es87.js +29 -20
- package/dist/index.es87.js.map +1 -1
- package/dist/index.es88.js +37 -176
- package/dist/index.es88.js.map +1 -1
- package/dist/index.es89.js +49 -233
- package/dist/index.es89.js.map +1 -1
- package/dist/index.es90.js +13 -355
- package/dist/index.es90.js.map +1 -1
- package/dist/index.es91.js +128 -128
- package/dist/index.es91.js.map +1 -1
- package/dist/index.es92.js +21 -70
- package/dist/index.es92.js.map +1 -1
- package/dist/index.es93.js +179 -34
- package/dist/index.es93.js.map +1 -1
- package/dist/index.es94.js +230 -26
- package/dist/index.es94.js.map +1 -1
- package/dist/index.es95.js +346 -157
- package/dist/index.es95.js.map +1 -1
- package/dist/index.es96.js +129 -195
- package/dist/index.es96.js.map +1 -1
- package/dist/index.es97.js +70 -14
- package/dist/index.es97.js.map +1 -1
- package/dist/index.es98.js +35 -28
- package/dist/index.es98.js.map +1 -1
- package/dist/index.es99.js +34 -31
- package/dist/index.es99.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +8 -11
package/dist/index.es62.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es62.js","sources":["../node_modules/.pnpm/@langchain+core@1.1.13_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/block_translators/openai.js"],"sourcesContent":["import { _isArray, _isContentBlock, _isObject, _isString, iife } from \"./utils.js\";\nimport { convertToV1FromOpenAIDataBlock, isOpenAIDataBlock } from \"./data.js\";\n\n//#region src/messages/block_translators/openai.ts\n/**\n* Converts a ChatOpenAICompletions message to an array of v1 standard content blocks.\n*\n* This function processes an AI message from ChatOpenAICompletions API format\n* and converts it to the standardized v1 content block format. It handles both\n* string content and structured content blocks, as well as tool calls.\n*\n* @param message - The AI message containing ChatOpenAICompletions formatted content\n* @returns Array of content blocks in v1 standard format\n*\n* @example\n* ```typescript\n* const message = new AIMessage(\"Hello world\");\n* const standardBlocks = convertToV1FromChatCompletions(message);\n* // Returns: [{ type: \"text\", text: \"Hello world\" }]\n* ```\n*\n* @example\n* ```typescript\n* const message = new AIMessage([\n* { type: \"text\", text: \"Hello\" },\n* { type: \"image_url\", image_url: { url: \"https://example.com/image.png\" } }\n* ]);\n* message.tool_calls = [\n* { id: \"call_123\", name: \"calculator\", args: { a: 1, b: 2 } }\n* ];\n*\n* const standardBlocks = convertToV1FromChatCompletions(message);\n* // Returns:\n* // [\n* // { type: \"text\", text: \"Hello\" },\n* // { type: \"image\", url: \"https://example.com/image.png\" },\n* // { type: \"tool_call\", id: \"call_123\", name: \"calculator\", args: { a: 1, b: 2 } }\n* // ]\n* ```\n*/\nfunction convertToV1FromChatCompletions(message) {\n\tconst blocks = [];\n\tif (typeof message.content === \"string\") blocks.push({\n\t\ttype: \"text\",\n\t\ttext: message.content\n\t});\n\telse blocks.push(...convertToV1FromChatCompletionsInput(message.content));\n\tfor (const toolCall of message.tool_calls ?? []) blocks.push({\n\t\ttype: \"tool_call\",\n\t\tid: toolCall.id,\n\t\tname: toolCall.name,\n\t\targs: toolCall.args\n\t});\n\treturn blocks;\n}\n/**\n* Converts a ChatOpenAICompletions message chunk to an array of v1 standard content blocks.\n*\n* This function processes an AI message chunk from OpenAI's chat completions API and converts\n* it to the standardized v1 content block format. It handles both string and array content,\n* as well as tool calls that may be present in the chunk.\n*\n* @param message - The AI message chunk containing OpenAI-formatted content blocks\n* @returns Array of content blocks in v1 standard format\n*\n* @example\n* ```typescript\n* const chunk = new AIMessage(\"Hello\");\n* const standardBlocks = convertToV1FromChatCompletionsChunk(chunk);\n* // Returns: [{ type: \"text\", text: \"Hello\" }]\n* ```\n*\n* @example\n* ```typescript\n* const chunk = new AIMessage([\n* { type: \"text\", text: \"Processing...\" }\n* ]);\n* chunk.tool_calls = [\n* { id: \"call_456\", name: \"search\", args: { query: \"test\" } }\n* ];\n*\n* const standardBlocks = convertToV1FromChatCompletionsChunk(chunk);\n* // Returns:\n* // [\n* // { type: \"text\", text: \"Processing...\" },\n* // { type: \"tool_call\", id: \"call_456\", name: \"search\", args: { query: \"test\" } }\n* // ]\n* ```\n*/\nfunction convertToV1FromChatCompletionsChunk(message) {\n\tconst blocks = [];\n\tif (typeof message.content === \"string\") blocks.push({\n\t\ttype: \"text\",\n\t\ttext: message.content\n\t});\n\telse blocks.push(...convertToV1FromChatCompletionsInput(message.content));\n\tfor (const toolCall of message.tool_calls ?? []) blocks.push({\n\t\ttype: \"tool_call\",\n\t\tid: toolCall.id,\n\t\tname: toolCall.name,\n\t\targs: toolCall.args\n\t});\n\treturn blocks;\n}\n/**\n* Converts an array of ChatOpenAICompletions content blocks to v1 standard content blocks.\n*\n* This function processes content blocks from OpenAI's Chat Completions API format\n* and converts them to the standardized v1 content block format. It handles both\n* OpenAI-specific data blocks (which require conversion) and standard blocks\n* (which are passed through with type assertion).\n*\n* @param blocks - Array of content blocks in ChatOpenAICompletions format\n* @returns Array of content blocks in v1 standard format\n*\n* @example\n* ```typescript\n* const openaiBlocks = [\n* { type: \"text\", text: \"Hello world\" },\n* { type: \"image_url\", image_url: { url: \"https://example.com/image.png\" } }\n* ];\n*\n* const standardBlocks = convertToV1FromChatCompletionsInput(openaiBlocks);\n* // Returns:\n* // [\n* // { type: \"text\", text: \"Hello world\" },\n* // { type: \"image\", url: \"https://example.com/image.png\" }\n* // ]\n* ```\n*/\nfunction convertToV1FromChatCompletionsInput(blocks) {\n\tconst convertedBlocks = [];\n\tfor (const block of blocks) if (isOpenAIDataBlock(block)) convertedBlocks.push(convertToV1FromOpenAIDataBlock(block));\n\telse convertedBlocks.push(block);\n\treturn convertedBlocks;\n}\nfunction convertResponsesAnnotation(annotation) {\n\tif (annotation.type === \"url_citation\") {\n\t\tconst { url, title, start_index, end_index } = annotation;\n\t\treturn {\n\t\t\ttype: \"citation\",\n\t\t\turl,\n\t\t\ttitle,\n\t\t\tstartIndex: start_index,\n\t\t\tendIndex: end_index\n\t\t};\n\t}\n\tif (annotation.type === \"file_citation\") {\n\t\tconst { file_id, filename, index } = annotation;\n\t\treturn {\n\t\t\ttype: \"citation\",\n\t\t\ttitle: filename,\n\t\t\tstartIndex: index,\n\t\t\tendIndex: index,\n\t\t\tfileId: file_id\n\t\t};\n\t}\n\treturn annotation;\n}\n/**\n* Converts a ChatOpenAIResponses message to an array of v1 standard content blocks.\n*\n* This function processes an AI message containing OpenAI Responses-specific content blocks\n* and converts them to the standardized v1 content block format. It handles reasoning summaries,\n* text content with annotations, tool calls, and various tool outputs including code interpreter,\n* web search, file search, computer calls, and MCP-related blocks.\n*\n* @param message - The AI message containing OpenAI Responses-formatted content blocks\n* @returns Array of content blocks in v1 standard format\n*\n* @example\n* ```typescript\n* const message = new AIMessage({\n* content: [{ type: \"text\", text: \"Hello world\", annotations: [] }],\n* tool_calls: [{ id: \"123\", name: \"calculator\", args: { a: 1, b: 2 } }],\n* additional_kwargs: {\n* reasoning: { summary: [{ text: \"Let me calculate this...\" }] },\n* tool_outputs: [\n* {\n* type: \"code_interpreter_call\",\n* code: \"print('hello')\",\n* outputs: [{ type: \"logs\", logs: \"hello\" }]\n* }\n* ]\n* }\n* });\n*\n* const standardBlocks = convertToV1FromResponses(message);\n* // Returns:\n* // [\n* // { type: \"reasoning\", reasoning: \"Let me calculate this...\" },\n* // { type: \"text\", text: \"Hello world\", annotations: [] },\n* // { type: \"tool_call\", id: \"123\", name: \"calculator\", args: { a: 1, b: 2 } },\n* // { type: \"code_interpreter_call\", code: \"print('hello')\" },\n* // { type: \"code_interpreter_result\", output: [{ type: \"code_interpreter_output\", returnCode: 0, stdout: \"hello\" }] }\n* // ]\n* ```\n*/\nfunction convertToV1FromResponses(message) {\n\tfunction* iterateContent() {\n\t\tif (_isObject(message.additional_kwargs?.reasoning) && _isArray(message.additional_kwargs.reasoning.summary)) {\n\t\t\tconst summary = message.additional_kwargs.reasoning.summary.reduce((acc, item) => {\n\t\t\t\tif (_isObject(item) && _isString(item.text)) return `${acc}${item.text}`;\n\t\t\t\treturn acc;\n\t\t\t}, \"\");\n\t\t\tyield {\n\t\t\t\ttype: \"reasoning\",\n\t\t\t\treasoning: summary\n\t\t\t};\n\t\t}\n\t\tconst content = typeof message.content === \"string\" ? [{\n\t\t\ttype: \"text\",\n\t\t\ttext: message.content\n\t\t}] : message.content;\n\t\tfor (const block of content) if (_isContentBlock(block, \"text\")) {\n\t\t\tconst { text, annotations,...rest } = block;\n\t\t\tif (Array.isArray(annotations)) yield {\n\t\t\t\t...rest,\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: String(text),\n\t\t\t\tannotations: annotations.map(convertResponsesAnnotation)\n\t\t\t};\n\t\t\telse yield {\n\t\t\t\t...rest,\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: String(text)\n\t\t\t};\n\t\t}\n\t\tfor (const toolCall of message.tool_calls ?? []) yield {\n\t\t\ttype: \"tool_call\",\n\t\t\tid: toolCall.id,\n\t\t\tname: toolCall.name,\n\t\t\targs: toolCall.args\n\t\t};\n\t\tif (_isObject(message.additional_kwargs) && _isArray(message.additional_kwargs.tool_outputs)) for (const toolOutput of message.additional_kwargs.tool_outputs) {\n\t\t\tif (_isContentBlock(toolOutput, \"web_search_call\")) {\n\t\t\t\tyield {\n\t\t\t\t\tid: toolOutput.id,\n\t\t\t\t\ttype: \"server_tool_call\",\n\t\t\t\t\tname: \"web_search\",\n\t\t\t\t\targs: { query: toolOutput.query }\n\t\t\t\t};\n\t\t\t\tcontinue;\n\t\t\t} else if (_isContentBlock(toolOutput, \"file_search_call\")) {\n\t\t\t\tyield {\n\t\t\t\t\tid: toolOutput.id,\n\t\t\t\t\ttype: \"server_tool_call\",\n\t\t\t\t\tname: \"file_search\",\n\t\t\t\t\targs: { query: toolOutput.query }\n\t\t\t\t};\n\t\t\t\tcontinue;\n\t\t\t} else if (_isContentBlock(toolOutput, \"computer_call\")) {\n\t\t\t\tyield {\n\t\t\t\t\ttype: \"non_standard\",\n\t\t\t\t\tvalue: toolOutput\n\t\t\t\t};\n\t\t\t\tcontinue;\n\t\t\t} else if (_isContentBlock(toolOutput, \"code_interpreter_call\")) {\n\t\t\t\tif (_isString(toolOutput.code)) yield {\n\t\t\t\t\tid: toolOutput.id,\n\t\t\t\t\ttype: \"server_tool_call\",\n\t\t\t\t\tname: \"code_interpreter\",\n\t\t\t\t\targs: { code: toolOutput.code }\n\t\t\t\t};\n\t\t\t\tif (_isArray(toolOutput.outputs)) {\n\t\t\t\t\tconst returnCode = iife(() => {\n\t\t\t\t\t\tif (toolOutput.status === \"in_progress\") return void 0;\n\t\t\t\t\t\tif (toolOutput.status === \"completed\") return 0;\n\t\t\t\t\t\tif (toolOutput.status === \"incomplete\") return 127;\n\t\t\t\t\t\tif (toolOutput.status === \"interpreting\") return void 0;\n\t\t\t\t\t\tif (toolOutput.status === \"failed\") return 1;\n\t\t\t\t\t\treturn void 0;\n\t\t\t\t\t});\n\t\t\t\t\tfor (const output of toolOutput.outputs) if (_isContentBlock(output, \"logs\")) {\n\t\t\t\t\t\tyield {\n\t\t\t\t\t\t\ttype: \"server_tool_call_result\",\n\t\t\t\t\t\t\ttoolCallId: toolOutput.id ?? \"\",\n\t\t\t\t\t\t\tstatus: \"success\",\n\t\t\t\t\t\t\toutput: {\n\t\t\t\t\t\t\t\ttype: \"code_interpreter_output\",\n\t\t\t\t\t\t\t\treturnCode: returnCode ?? 0,\n\t\t\t\t\t\t\t\tstderr: [0, void 0].includes(returnCode) ? void 0 : String(output.logs),\n\t\t\t\t\t\t\t\tstdout: [0, void 0].includes(returnCode) ? String(output.logs) : void 0\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t} else if (_isContentBlock(toolOutput, \"mcp_call\")) {\n\t\t\t\tyield {\n\t\t\t\t\tid: toolOutput.id,\n\t\t\t\t\ttype: \"server_tool_call\",\n\t\t\t\t\tname: \"mcp_call\",\n\t\t\t\t\targs: toolOutput.input\n\t\t\t\t};\n\t\t\t\tcontinue;\n\t\t\t} else if (_isContentBlock(toolOutput, \"mcp_list_tools\")) {\n\t\t\t\tyield {\n\t\t\t\t\tid: toolOutput.id,\n\t\t\t\t\ttype: \"server_tool_call\",\n\t\t\t\t\tname: \"mcp_list_tools\",\n\t\t\t\t\targs: toolOutput.input\n\t\t\t\t};\n\t\t\t\tcontinue;\n\t\t\t} else if (_isContentBlock(toolOutput, \"mcp_approval_request\")) {\n\t\t\t\tyield {\n\t\t\t\t\ttype: \"non_standard\",\n\t\t\t\t\tvalue: toolOutput\n\t\t\t\t};\n\t\t\t\tcontinue;\n\t\t\t} else if (_isContentBlock(toolOutput, \"image_generation_call\")) {\n\t\t\t\tyield {\n\t\t\t\t\ttype: \"non_standard\",\n\t\t\t\t\tvalue: toolOutput\n\t\t\t\t};\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (_isObject(toolOutput)) yield {\n\t\t\t\ttype: \"non_standard\",\n\t\t\t\tvalue: toolOutput\n\t\t\t};\n\t\t}\n\t}\n\treturn Array.from(iterateContent());\n}\n/**\n* Converts a ChatOpenAIResponses message chunk to an array of v1 standard content blocks.\n*\n* This function processes an AI message chunk containing OpenAI-specific content blocks\n* and converts them to the standardized v1 content block format. It handles both the\n* regular message content and tool call chunks that are specific to streaming responses.\n*\n* @param message - The AI message chunk containing OpenAI-formatted content blocks\n* @returns Array of content blocks in v1 standard format\n*\n* @example\n* ```typescript\n* const messageChunk = new AIMessageChunk({\n* content: [{ type: \"text\", text: \"Hello\" }],\n* tool_call_chunks: [\n* { id: \"call_123\", name: \"calculator\", args: '{\"a\": 1' }\n* ]\n* });\n*\n* const standardBlocks = convertToV1FromResponsesChunk(messageChunk);\n* // Returns:\n* // [\n* // { type: \"text\", text: \"Hello\" },\n* // { type: \"tool_call_chunk\", id: \"call_123\", name: \"calculator\", args: '{\"a\": 1' }\n* // ]\n* ```\n*/\nfunction convertToV1FromResponsesChunk(message) {\n\tfunction* iterateContent() {\n\t\tyield* convertToV1FromResponses(message);\n\t\tfor (const toolCallChunk of message.tool_call_chunks ?? []) yield {\n\t\t\ttype: \"tool_call_chunk\",\n\t\t\tid: toolCallChunk.id,\n\t\t\tname: toolCallChunk.name,\n\t\t\targs: toolCallChunk.args\n\t\t};\n\t}\n\treturn Array.from(iterateContent());\n}\nconst ChatOpenAITranslator = {\n\ttranslateContent: (message) => {\n\t\tif (typeof message.content === \"string\") return convertToV1FromChatCompletions(message);\n\t\treturn convertToV1FromResponses(message);\n\t},\n\ttranslateContentChunk: (message) => {\n\t\tif (typeof message.content === \"string\") return convertToV1FromChatCompletionsChunk(message);\n\t\treturn convertToV1FromResponsesChunk(message);\n\t}\n};\n\n//#endregion\nexport { ChatOpenAITranslator, convertToV1FromChatCompletionsInput };\n//# sourceMappingURL=openai.js.map"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"index.es62.js","sources":["../node_modules/.pnpm/p-queue@9.1.0/node_modules/p-queue/dist/index.js"],"sourcesContent":["import { EventEmitter } from 'eventemitter3';\nimport pTimeout from 'p-timeout';\nimport PriorityQueue from './priority-queue.js';\n/**\nPromise queue with concurrency control.\n*/\nexport default class PQueue extends EventEmitter {\n #carryoverIntervalCount;\n #isIntervalIgnored;\n #intervalCount = 0;\n #intervalCap;\n #rateLimitedInInterval = false;\n #rateLimitFlushScheduled = false;\n #interval;\n #intervalEnd = 0;\n #lastExecutionTime = 0;\n #intervalId;\n #timeoutId;\n #strict;\n // Circular buffer implementation for better performance\n #strictTicks = [];\n #strictTicksStartIndex = 0;\n #queue;\n #queueClass;\n #pending = 0;\n // The `!` is needed because of https://github.com/microsoft/TypeScript/issues/32194\n #concurrency;\n #isPaused;\n // Use to assign a unique identifier to a promise function, if not explicitly specified\n #idAssigner = 1n;\n // Track currently running tasks for debugging\n #runningTasks = new Map();\n /**\n Get or set the default timeout for all tasks. Can be changed at runtime.\n\n Operations will throw a `TimeoutError` if they don't complete within the specified time.\n\n The timeout begins when the operation is dequeued and starts execution, not while it's waiting in the queue.\n\n @example\n ```\n const queue = new PQueue({timeout: 5000});\n\n // Change timeout for all future tasks\n queue.timeout = 10000;\n ```\n */\n timeout;\n constructor(options) {\n super();\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n options = {\n carryoverIntervalCount: false,\n intervalCap: Number.POSITIVE_INFINITY,\n interval: 0,\n concurrency: Number.POSITIVE_INFINITY,\n autoStart: true,\n queueClass: PriorityQueue,\n strict: false,\n ...options,\n };\n if (!(typeof options.intervalCap === 'number' && options.intervalCap >= 1)) {\n throw new TypeError(`Expected \\`intervalCap\\` to be a number from 1 and up, got \\`${options.intervalCap?.toString() ?? ''}\\` (${typeof options.intervalCap})`);\n }\n if (options.interval === undefined || !(Number.isFinite(options.interval) && options.interval >= 0)) {\n throw new TypeError(`Expected \\`interval\\` to be a finite number >= 0, got \\`${options.interval?.toString() ?? ''}\\` (${typeof options.interval})`);\n }\n if (options.strict && options.interval === 0) {\n throw new TypeError('The `strict` option requires a non-zero `interval`');\n }\n if (options.strict && options.intervalCap === Number.POSITIVE_INFINITY) {\n throw new TypeError('The `strict` option requires a finite `intervalCap`');\n }\n // TODO: Remove this fallback in the next major version\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n this.#carryoverIntervalCount = options.carryoverIntervalCount ?? options.carryoverConcurrencyCount ?? false;\n this.#isIntervalIgnored = options.intervalCap === Number.POSITIVE_INFINITY || options.interval === 0;\n this.#intervalCap = options.intervalCap;\n this.#interval = options.interval;\n this.#strict = options.strict;\n this.#queue = new options.queueClass();\n this.#queueClass = options.queueClass;\n this.concurrency = options.concurrency;\n if (options.timeout !== undefined && !(Number.isFinite(options.timeout) && options.timeout > 0)) {\n throw new TypeError(`Expected \\`timeout\\` to be a positive finite number, got \\`${options.timeout}\\` (${typeof options.timeout})`);\n }\n this.timeout = options.timeout;\n this.#isPaused = options.autoStart === false;\n this.#setupRateLimitTracking();\n }\n #cleanupStrictTicks(now) {\n // Remove ticks outside the current interval window using circular buffer approach\n while (this.#strictTicksStartIndex < this.#strictTicks.length) {\n const oldestTick = this.#strictTicks[this.#strictTicksStartIndex];\n if (oldestTick !== undefined && now - oldestTick >= this.#interval) {\n this.#strictTicksStartIndex++;\n }\n else {\n break;\n }\n }\n // Compact the array when it becomes inefficient or fully consumed\n // Compact when: (start index is large AND more than half wasted) OR all ticks expired\n const shouldCompact = (this.#strictTicksStartIndex > 100 && this.#strictTicksStartIndex > this.#strictTicks.length / 2)\n || this.#strictTicksStartIndex === this.#strictTicks.length;\n if (shouldCompact) {\n this.#strictTicks = this.#strictTicks.slice(this.#strictTicksStartIndex);\n this.#strictTicksStartIndex = 0;\n }\n }\n // Helper methods for interval consumption\n #consumeIntervalSlot(now) {\n if (this.#strict) {\n this.#strictTicks.push(now);\n }\n else {\n this.#intervalCount++;\n }\n }\n #rollbackIntervalSlot() {\n if (this.#strict) {\n // Pop from the end of the actual data (not from start index)\n if (this.#strictTicks.length > this.#strictTicksStartIndex) {\n this.#strictTicks.pop();\n }\n }\n else if (this.#intervalCount > 0) {\n this.#intervalCount--;\n }\n }\n #getActiveTicksCount() {\n return this.#strictTicks.length - this.#strictTicksStartIndex;\n }\n get #doesIntervalAllowAnother() {\n if (this.#isIntervalIgnored) {\n return true;\n }\n if (this.#strict) {\n // Cleanup already done by #isIntervalPausedAt before this is called\n return this.#getActiveTicksCount() < this.#intervalCap;\n }\n return this.#intervalCount < this.#intervalCap;\n }\n get #doesConcurrentAllowAnother() {\n return this.#pending < this.#concurrency;\n }\n #next() {\n this.#pending--;\n if (this.#pending === 0) {\n this.emit('pendingZero');\n }\n this.#tryToStartAnother();\n this.emit('next');\n }\n #onResumeInterval() {\n // Clear timeout ID before processing to prevent race condition\n // Must clear before #onInterval to allow new timeouts to be scheduled\n this.#timeoutId = undefined;\n this.#onInterval();\n this.#initializeIntervalIfNeeded();\n }\n #isIntervalPausedAt(now) {\n // Strict mode: check if we need to wait for oldest tick to age out\n if (this.#strict) {\n this.#cleanupStrictTicks(now);\n // If at capacity, need to wait for oldest tick to age out\n const activeTicksCount = this.#getActiveTicksCount();\n if (activeTicksCount >= this.#intervalCap) {\n const oldestTick = this.#strictTicks[this.#strictTicksStartIndex];\n // After cleanup, remaining ticks are within interval, so delay is always > 0\n const delay = this.#interval - (now - oldestTick);\n this.#createIntervalTimeout(delay);\n return true;\n }\n return false;\n }\n // Fixed window mode (original logic)\n if (this.#intervalId === undefined) {\n const delay = this.#intervalEnd - now;\n if (delay < 0) {\n // If the interval has expired while idle, check if we should enforce the interval\n // from the last task execution. This ensures proper spacing between tasks even\n // when the queue becomes empty and then new tasks are added.\n if (this.#lastExecutionTime > 0) {\n const timeSinceLastExecution = now - this.#lastExecutionTime;\n if (timeSinceLastExecution < this.#interval) {\n // Not enough time has passed since the last task execution\n this.#createIntervalTimeout(this.#interval - timeSinceLastExecution);\n return true;\n }\n }\n // Enough time has passed or no previous execution, allow execution\n this.#intervalCount = (this.#carryoverIntervalCount) ? this.#pending : 0;\n }\n else {\n // Act as the interval is pending\n this.#createIntervalTimeout(delay);\n return true;\n }\n }\n return false;\n }\n #createIntervalTimeout(delay) {\n if (this.#timeoutId !== undefined) {\n return;\n }\n this.#timeoutId = setTimeout(() => {\n this.#onResumeInterval();\n }, delay);\n }\n #clearIntervalTimer() {\n if (this.#intervalId) {\n clearInterval(this.#intervalId);\n this.#intervalId = undefined;\n }\n }\n #clearTimeoutTimer() {\n if (this.#timeoutId) {\n clearTimeout(this.#timeoutId);\n this.#timeoutId = undefined;\n }\n }\n #tryToStartAnother() {\n if (this.#queue.size === 0) {\n // We can clear the interval (\"pause\")\n // Because we can redo it later (\"resume\")\n this.#clearIntervalTimer();\n this.emit('empty');\n if (this.#pending === 0) {\n // Clear timeout as well when completely idle\n this.#clearTimeoutTimer();\n // Compact strict ticks when idle to free memory\n if (this.#strict && this.#strictTicksStartIndex > 0) {\n const now = Date.now();\n this.#cleanupStrictTicks(now);\n }\n this.emit('idle');\n }\n return false;\n }\n let taskStarted = false;\n if (!this.#isPaused) {\n const now = Date.now();\n const canInitializeInterval = !this.#isIntervalPausedAt(now);\n if (this.#doesIntervalAllowAnother && this.#doesConcurrentAllowAnother) {\n const job = this.#queue.dequeue();\n if (!this.#isIntervalIgnored) {\n this.#consumeIntervalSlot(now);\n this.#scheduleRateLimitUpdate();\n }\n this.emit('active');\n job();\n if (canInitializeInterval) {\n this.#initializeIntervalIfNeeded();\n }\n taskStarted = true;\n }\n }\n return taskStarted;\n }\n #initializeIntervalIfNeeded() {\n if (this.#isIntervalIgnored || this.#intervalId !== undefined) {\n return;\n }\n // Strict mode uses timeouts instead of interval timers\n if (this.#strict) {\n return;\n }\n this.#intervalId = setInterval(() => {\n this.#onInterval();\n }, this.#interval);\n this.#intervalEnd = Date.now() + this.#interval;\n }\n #onInterval() {\n // Non-strict mode uses interval timers and intervalCount\n if (!this.#strict) {\n if (this.#intervalCount === 0 && this.#pending === 0 && this.#intervalId) {\n this.#clearIntervalTimer();\n }\n this.#intervalCount = this.#carryoverIntervalCount ? this.#pending : 0;\n }\n this.#processQueue();\n this.#scheduleRateLimitUpdate();\n }\n /**\n Executes all queued functions until it reaches the limit.\n */\n #processQueue() {\n // eslint-disable-next-line no-empty\n while (this.#tryToStartAnother()) { }\n }\n get concurrency() {\n return this.#concurrency;\n }\n set concurrency(newConcurrency) {\n if (!(typeof newConcurrency === 'number' && newConcurrency >= 1)) {\n throw new TypeError(`Expected \\`concurrency\\` to be a number from 1 and up, got \\`${newConcurrency}\\` (${typeof newConcurrency})`);\n }\n this.#concurrency = newConcurrency;\n this.#processQueue();\n }\n /**\n Updates the priority of a promise function by its id, affecting its execution order. Requires a defined concurrency limit to take effect.\n\n For example, this can be used to prioritize a promise function to run earlier.\n\n ```js\n import PQueue from 'p-queue';\n\n const queue = new PQueue({concurrency: 1});\n\n queue.add(async () => '🦄', {priority: 1});\n queue.add(async () => '🦀', {priority: 0, id: '🦀'});\n queue.add(async () => '🦄', {priority: 1});\n queue.add(async () => '🦄', {priority: 1});\n\n queue.setPriority('🦀', 2);\n ```\n\n In this case, the promise function with `id: '🦀'` runs second.\n\n You can also deprioritize a promise function to delay its execution:\n\n ```js\n import PQueue from 'p-queue';\n\n const queue = new PQueue({concurrency: 1});\n\n queue.add(async () => '🦄', {priority: 1});\n queue.add(async () => '🦀', {priority: 1, id: '🦀'});\n queue.add(async () => '🦄');\n queue.add(async () => '🦄', {priority: 0});\n\n queue.setPriority('🦀', -1);\n ```\n Here, the promise function with `id: '🦀'` executes last.\n */\n setPriority(id, priority) {\n if (typeof priority !== 'number' || !Number.isFinite(priority)) {\n throw new TypeError(`Expected \\`priority\\` to be a finite number, got \\`${priority}\\` (${typeof priority})`);\n }\n this.#queue.setPriority(id, priority);\n }\n async add(function_, options = {}) {\n // Create a copy to avoid mutating the original options object\n options = {\n timeout: this.timeout,\n ...options,\n // Assign unique ID if not provided\n id: options.id ?? (this.#idAssigner++).toString(),\n };\n return new Promise((resolve, reject) => {\n // Create a unique symbol for tracking this task\n const taskSymbol = Symbol(`task-${options.id}`);\n this.#queue.enqueue(async () => {\n this.#pending++;\n // Track this running task\n this.#runningTasks.set(taskSymbol, {\n id: options.id,\n priority: options.priority ?? 0, // Match priority-queue default\n startTime: Date.now(),\n timeout: options.timeout,\n });\n let eventListener;\n try {\n // Check abort signal - if aborted, need to decrement the counter\n // that was incremented in tryToStartAnother\n try {\n options.signal?.throwIfAborted();\n }\n catch (error) {\n this.#rollbackIntervalConsumption();\n // Clean up tracking before throwing\n this.#runningTasks.delete(taskSymbol);\n throw error;\n }\n this.#lastExecutionTime = Date.now();\n let operation = function_({ signal: options.signal });\n if (options.timeout) {\n operation = pTimeout(Promise.resolve(operation), {\n milliseconds: options.timeout,\n message: `Task timed out after ${options.timeout}ms (queue has ${this.#pending} running, ${this.#queue.size} waiting)`,\n });\n }\n if (options.signal) {\n const { signal } = options;\n operation = Promise.race([operation, new Promise((_resolve, reject) => {\n eventListener = () => {\n reject(signal.reason);\n };\n signal.addEventListener('abort', eventListener, { once: true });\n })]);\n }\n const result = await operation;\n resolve(result);\n this.emit('completed', result);\n }\n catch (error) {\n reject(error);\n this.emit('error', error);\n }\n finally {\n // Clean up abort event listener\n if (eventListener) {\n options.signal?.removeEventListener('abort', eventListener);\n }\n // Remove from running tasks\n this.#runningTasks.delete(taskSymbol);\n // Use queueMicrotask to prevent deep recursion while maintaining timing\n queueMicrotask(() => {\n this.#next();\n });\n }\n }, options);\n this.emit('add');\n this.#tryToStartAnother();\n });\n }\n async addAll(functions, options) {\n return Promise.all(functions.map(async (function_) => this.add(function_, options)));\n }\n /**\n Start (or resume) executing enqueued tasks within concurrency limit. No need to call this if queue is not paused (via `options.autoStart = false` or by `.pause()` method.)\n */\n start() {\n if (!this.#isPaused) {\n return this;\n }\n this.#isPaused = false;\n this.#processQueue();\n return this;\n }\n /**\n Put queue execution on hold.\n */\n pause() {\n this.#isPaused = true;\n }\n /**\n Clear the queue.\n */\n clear() {\n this.#queue = new this.#queueClass();\n // Clear interval timer since queue is now empty (consistent with #tryToStartAnother)\n this.#clearIntervalTimer();\n // Note: We preserve strict mode rate-limiting state (ticks and timeout)\n // because clear() only clears queued tasks, not rate limit history.\n // This ensures that rate limits are still enforced after clearing the queue.\n // Note: We don't clear #runningTasks as those tasks are still running\n // They will be removed when they complete in the finally block\n // Force synchronous update since clear() should have immediate effect\n this.#updateRateLimitState();\n // Emit events so waiters (onEmpty, onIdle, onSizeLessThan) can resolve\n this.emit('empty');\n if (this.#pending === 0) {\n this.#clearTimeoutTimer();\n this.emit('idle');\n }\n this.emit('next');\n }\n /**\n Can be called multiple times. Useful if you for example add additional items at a later time.\n\n @returns A promise that settles when the queue becomes empty.\n */\n async onEmpty() {\n // Instantly resolve if the queue is empty\n if (this.#queue.size === 0) {\n return;\n }\n await this.#onEvent('empty');\n }\n /**\n @returns A promise that settles when the queue size is less than the given limit: `queue.size < limit`.\n\n If you want to avoid having the queue grow beyond a certain size you can `await queue.onSizeLessThan()` before adding a new item.\n\n Note that this only limits the number of items waiting to start. There could still be up to `concurrency` jobs already running that this call does not include in its calculation.\n */\n async onSizeLessThan(limit) {\n // Instantly resolve if the queue is empty.\n if (this.#queue.size < limit) {\n return;\n }\n await this.#onEvent('next', () => this.#queue.size < limit);\n }\n /**\n The difference with `.onEmpty` is that `.onIdle` guarantees that all work from the queue has finished. `.onEmpty` merely signals that the queue is empty, but it could mean that some promises haven't completed yet.\n\n @returns A promise that settles when the queue becomes empty, and all promises have completed; `queue.size === 0 && queue.pending === 0`.\n */\n async onIdle() {\n // Instantly resolve if none pending and if nothing else is queued\n if (this.#pending === 0 && this.#queue.size === 0) {\n return;\n }\n await this.#onEvent('idle');\n }\n /**\n The difference with `.onIdle` is that `.onPendingZero` only waits for currently running tasks to finish, ignoring queued tasks.\n\n @returns A promise that settles when all currently running tasks have completed; `queue.pending === 0`.\n */\n async onPendingZero() {\n if (this.#pending === 0) {\n return;\n }\n await this.#onEvent('pendingZero');\n }\n /**\n @returns A promise that settles when the queue becomes rate-limited due to intervalCap.\n */\n async onRateLimit() {\n if (this.isRateLimited) {\n return;\n }\n await this.#onEvent('rateLimit');\n }\n /**\n @returns A promise that settles when the queue is no longer rate-limited.\n */\n async onRateLimitCleared() {\n if (!this.isRateLimited) {\n return;\n }\n await this.#onEvent('rateLimitCleared');\n }\n /**\n @returns A promise that rejects when any task in the queue errors.\n\n Use with `Promise.race([queue.onError(), queue.onIdle()])` to fail fast on the first error while still resolving normally when the queue goes idle.\n\n Important: The promise returned by `add()` still rejects. You must handle each `add()` promise (for example, `.catch(() => {})`) to avoid unhandled rejections.\n\n @example\n ```\n import PQueue from 'p-queue';\n\n const queue = new PQueue({concurrency: 2});\n\n queue.add(() => fetchData(1)).catch(() => {});\n queue.add(() => fetchData(2)).catch(() => {});\n queue.add(() => fetchData(3)).catch(() => {});\n\n // Stop processing on first error\n try {\n await Promise.race([\n queue.onError(),\n queue.onIdle()\n ]);\n } catch (error) {\n queue.pause(); // Stop processing remaining tasks\n console.error('Queue failed:', error);\n }\n ```\n */\n // eslint-disable-next-line @typescript-eslint/promise-function-async\n onError() {\n return new Promise((_resolve, reject) => {\n const handleError = (error) => {\n this.off('error', handleError);\n reject(error);\n };\n this.on('error', handleError);\n });\n }\n async #onEvent(event, filter) {\n return new Promise(resolve => {\n const listener = () => {\n if (filter && !filter()) {\n return;\n }\n this.off(event, listener);\n resolve();\n };\n this.on(event, listener);\n });\n }\n /**\n Size of the queue, the number of queued items waiting to run.\n */\n get size() {\n return this.#queue.size;\n }\n /**\n Size of the queue, filtered by the given options.\n\n For example, this can be used to find the number of items remaining in the queue with a specific priority level.\n */\n sizeBy(options) {\n // eslint-disable-next-line unicorn/no-array-callback-reference\n return this.#queue.filter(options).length;\n }\n /**\n Number of running items (no longer in the queue).\n */\n get pending() {\n return this.#pending;\n }\n /**\n Whether the queue is currently paused.\n */\n get isPaused() {\n return this.#isPaused;\n }\n #setupRateLimitTracking() {\n // Only schedule updates when rate limiting is enabled\n if (this.#isIntervalIgnored) {\n return;\n }\n // Wire up to lifecycle events that affect rate limit state\n // Only 'add' and 'next' can actually change rate limit state\n this.on('add', () => {\n if (this.#queue.size > 0) {\n this.#scheduleRateLimitUpdate();\n }\n });\n this.on('next', () => {\n this.#scheduleRateLimitUpdate();\n });\n }\n #scheduleRateLimitUpdate() {\n // Skip if rate limiting is not enabled or already scheduled\n if (this.#isIntervalIgnored || this.#rateLimitFlushScheduled) {\n return;\n }\n this.#rateLimitFlushScheduled = true;\n queueMicrotask(() => {\n this.#rateLimitFlushScheduled = false;\n this.#updateRateLimitState();\n });\n }\n #rollbackIntervalConsumption() {\n if (this.#isIntervalIgnored) {\n return;\n }\n this.#rollbackIntervalSlot();\n this.#scheduleRateLimitUpdate();\n }\n #updateRateLimitState() {\n const previous = this.#rateLimitedInInterval;\n // Early exit if rate limiting is disabled or queue is empty\n if (this.#isIntervalIgnored || this.#queue.size === 0) {\n if (previous) {\n this.#rateLimitedInInterval = false;\n this.emit('rateLimitCleared');\n }\n return;\n }\n // Get the current count based on mode\n let count;\n if (this.#strict) {\n const now = Date.now();\n this.#cleanupStrictTicks(now);\n count = this.#getActiveTicksCount();\n }\n else {\n count = this.#intervalCount;\n }\n const shouldBeRateLimited = count >= this.#intervalCap;\n if (shouldBeRateLimited !== previous) {\n this.#rateLimitedInInterval = shouldBeRateLimited;\n this.emit(shouldBeRateLimited ? 'rateLimit' : 'rateLimitCleared');\n }\n }\n /**\n Whether the queue is currently rate-limited due to intervalCap.\n */\n get isRateLimited() {\n return this.#rateLimitedInInterval;\n }\n /**\n Whether the queue is saturated. Returns `true` when:\n - All concurrency slots are occupied and tasks are waiting, OR\n - The queue is rate-limited and tasks are waiting\n\n Useful for detecting backpressure and potential hanging tasks.\n\n ```js\n import PQueue from 'p-queue';\n\n const queue = new PQueue({concurrency: 2});\n\n // Backpressure handling\n if (queue.isSaturated) {\n console.log('Queue is saturated, waiting for capacity...');\n await queue.onSizeLessThan(queue.concurrency);\n }\n\n // Monitoring for stuck tasks\n setInterval(() => {\n if (queue.isSaturated) {\n console.warn(`Queue saturated: ${queue.pending} running, ${queue.size} waiting`);\n }\n }, 60000);\n ```\n */\n get isSaturated() {\n return (this.#pending === this.#concurrency && this.#queue.size > 0)\n || (this.isRateLimited && this.#queue.size > 0);\n }\n /**\n The tasks currently being executed. Each task includes its `id`, `priority`, `startTime`, and `timeout` (if set).\n\n Returns an array of task info objects.\n\n ```js\n import PQueue from 'p-queue';\n\n const queue = new PQueue({concurrency: 2});\n\n // Add tasks with IDs for better debugging\n queue.add(() => fetchUser(123), {id: 'user-123'});\n queue.add(() => fetchPosts(456), {id: 'posts-456', priority: 1});\n\n // Check what's running\n console.log(queue.runningTasks);\n // => [{\n // id: 'user-123',\n // priority: 0,\n // startTime: 1759253001716,\n // timeout: undefined\n // }, {\n // id: 'posts-456',\n // priority: 1,\n // startTime: 1759253001916,\n // timeout: undefined\n // }]\n ```\n */\n get runningTasks() {\n // Return fresh array with fresh objects to prevent mutations\n return [...this.#runningTasks.values()].map(task => ({ ...task }));\n }\n}\n/**\nError thrown when a task times out.\n\n@example\n```\nimport PQueue, {TimeoutError} from 'p-queue';\n\nconst queue = new PQueue({timeout: 1000});\n\ntry {\n await queue.add(() => someTask());\n} catch (error) {\n if (error instanceof TimeoutError) {\n console.log('Task timed out');\n }\n}\n```\n*/\nexport { TimeoutError } from 'p-timeout';\n"],"names":["reject"],"mappings":";;;;AAMe,MAAM,eAAe,aAAa;AAAA,EAC7C;AAAA,EACA;AAAA,EACA,iBAAiB;AAAA,EACjB;AAAA,EACA,yBAAyB;AAAA,EACzB,2BAA2B;AAAA,EAC3B;AAAA,EACA,eAAe;AAAA,EACf,qBAAqB;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA,eAAe,CAAA;AAAA,EACf,yBAAyB;AAAA,EACzB;AAAA,EACA;AAAA,EACA,WAAW;AAAA;AAAA,EAEX;AAAA,EACA;AAAA;AAAA,EAEA,cAAc;AAAA;AAAA,EAEd,gBAAgB,oBAAI,IAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAgBvB;AAAA,EACA,YAAY,SAAS;AACjB,UAAK;AAEL,cAAU;AAAA,MACN,wBAAwB;AAAA,MACxB,aAAa,OAAO;AAAA,MACpB,UAAU;AAAA,MACV,aAAa,OAAO;AAAA,MACpB,WAAW;AAAA,MACX,YAAY;AAAA,MACZ,QAAQ;AAAA,MACR,GAAG;AAAA,IACf;AACQ,QAAI,EAAE,OAAO,QAAQ,gBAAgB,YAAY,QAAQ,eAAe,IAAI;AACxE,YAAM,IAAI,UAAU,gEAAgE,QAAQ,aAAa,cAAc,EAAE,OAAO,OAAO,QAAQ,WAAW,GAAG;AAAA,IACjK;AACA,QAAI,QAAQ,aAAa,UAAa,EAAE,OAAO,SAAS,QAAQ,QAAQ,KAAK,QAAQ,YAAY,IAAI;AACjG,YAAM,IAAI,UAAU,2DAA2D,QAAQ,UAAU,cAAc,EAAE,OAAO,OAAO,QAAQ,QAAQ,GAAG;AAAA,IACtJ;AACA,QAAI,QAAQ,UAAU,QAAQ,aAAa,GAAG;AAC1C,YAAM,IAAI,UAAU,oDAAoD;AAAA,IAC5E;AACA,QAAI,QAAQ,UAAU,QAAQ,gBAAgB,OAAO,mBAAmB;AACpE,YAAM,IAAI,UAAU,qDAAqD;AAAA,IAC7E;AAGA,SAAK,0BAA0B,QAAQ,0BAA0B,QAAQ,6BAA6B;AACtG,SAAK,qBAAqB,QAAQ,gBAAgB,OAAO,qBAAqB,QAAQ,aAAa;AACnG,SAAK,eAAe,QAAQ;AAC5B,SAAK,YAAY,QAAQ;AACzB,SAAK,UAAU,QAAQ;AACvB,SAAK,SAAS,IAAI,QAAQ,WAAU;AACpC,SAAK,cAAc,QAAQ;AAC3B,SAAK,cAAc,QAAQ;AAC3B,QAAI,QAAQ,YAAY,UAAa,EAAE,OAAO,SAAS,QAAQ,OAAO,KAAK,QAAQ,UAAU,IAAI;AAC7F,YAAM,IAAI,UAAU,8DAA8D,QAAQ,OAAO,OAAO,OAAO,QAAQ,OAAO,GAAG;AAAA,IACrI;AACA,SAAK,UAAU,QAAQ;AACvB,SAAK,YAAY,QAAQ,cAAc;AACvC,SAAK,wBAAuB;AAAA,EAChC;AAAA,EACA,oBAAoB,KAAK;AAErB,WAAO,KAAK,yBAAyB,KAAK,aAAa,QAAQ;AAC3D,YAAM,aAAa,KAAK,aAAa,KAAK,sBAAsB;AAChE,UAAI,eAAe,UAAa,MAAM,cAAc,KAAK,WAAW;AAChE,aAAK;AAAA,MACT,OACK;AACD;AAAA,MACJ;AAAA,IACJ;AAGA,UAAM,gBAAiB,KAAK,yBAAyB,OAAO,KAAK,yBAAyB,KAAK,aAAa,SAAS,KAC9G,KAAK,2BAA2B,KAAK,aAAa;AACzD,QAAI,eAAe;AACf,WAAK,eAAe,KAAK,aAAa,MAAM,KAAK,sBAAsB;AACvE,WAAK,yBAAyB;AAAA,IAClC;AAAA,EACJ;AAAA;AAAA,EAEA,qBAAqB,KAAK;AACtB,QAAI,KAAK,SAAS;AACd,WAAK,aAAa,KAAK,GAAG;AAAA,IAC9B,OACK;AACD,WAAK;AAAA,IACT;AAAA,EACJ;AAAA,EACA,wBAAwB;AACpB,QAAI,KAAK,SAAS;AAEd,UAAI,KAAK,aAAa,SAAS,KAAK,wBAAwB;AACxD,aAAK,aAAa,IAAG;AAAA,MACzB;AAAA,IACJ,WACS,KAAK,iBAAiB,GAAG;AAC9B,WAAK;AAAA,IACT;AAAA,EACJ;AAAA,EACA,uBAAuB;AACnB,WAAO,KAAK,aAAa,SAAS,KAAK;AAAA,EAC3C;AAAA,EACA,IAAI,4BAA4B;AAC5B,QAAI,KAAK,oBAAoB;AACzB,aAAO;AAAA,IACX;AACA,QAAI,KAAK,SAAS;AAEd,aAAO,KAAK,yBAAyB,KAAK;AAAA,IAC9C;AACA,WAAO,KAAK,iBAAiB,KAAK;AAAA,EACtC;AAAA,EACA,IAAI,8BAA8B;AAC9B,WAAO,KAAK,WAAW,KAAK;AAAA,EAChC;AAAA,EACA,QAAQ;AACJ,SAAK;AACL,QAAI,KAAK,aAAa,GAAG;AACrB,WAAK,KAAK,aAAa;AAAA,IAC3B;AACA,SAAK,mBAAkB;AACvB,SAAK,KAAK,MAAM;AAAA,EACpB;AAAA,EACA,oBAAoB;AAGhB,SAAK,aAAa;AAClB,SAAK,YAAW;AAChB,SAAK,4BAA2B;AAAA,EACpC;AAAA,EACA,oBAAoB,KAAK;AAErB,QAAI,KAAK,SAAS;AACd,WAAK,oBAAoB,GAAG;AAE5B,YAAM,mBAAmB,KAAK,qBAAoB;AAClD,UAAI,oBAAoB,KAAK,cAAc;AACvC,cAAM,aAAa,KAAK,aAAa,KAAK,sBAAsB;AAEhE,cAAM,QAAQ,KAAK,aAAa,MAAM;AACtC,aAAK,uBAAuB,KAAK;AACjC,eAAO;AAAA,MACX;AACA,aAAO;AAAA,IACX;AAEA,QAAI,KAAK,gBAAgB,QAAW;AAChC,YAAM,QAAQ,KAAK,eAAe;AAClC,UAAI,QAAQ,GAAG;AAIX,YAAI,KAAK,qBAAqB,GAAG;AAC7B,gBAAM,yBAAyB,MAAM,KAAK;AAC1C,cAAI,yBAAyB,KAAK,WAAW;AAEzC,iBAAK,uBAAuB,KAAK,YAAY,sBAAsB;AACnE,mBAAO;AAAA,UACX;AAAA,QACJ;AAEA,aAAK,iBAAkB,KAAK,0BAA2B,KAAK,WAAW;AAAA,MAC3E,OACK;AAED,aAAK,uBAAuB,KAAK;AACjC,eAAO;AAAA,MACX;AAAA,IACJ;AACA,WAAO;AAAA,EACX;AAAA,EACA,uBAAuB,OAAO;AAC1B,QAAI,KAAK,eAAe,QAAW;AAC/B;AAAA,IACJ;AACA,SAAK,aAAa,WAAW,MAAM;AAC/B,WAAK,kBAAiB;AAAA,IAC1B,GAAG,KAAK;AAAA,EACZ;AAAA,EACA,sBAAsB;AAClB,QAAI,KAAK,aAAa;AAClB,oBAAc,KAAK,WAAW;AAC9B,WAAK,cAAc;AAAA,IACvB;AAAA,EACJ;AAAA,EACA,qBAAqB;AACjB,QAAI,KAAK,YAAY;AACjB,mBAAa,KAAK,UAAU;AAC5B,WAAK,aAAa;AAAA,IACtB;AAAA,EACJ;AAAA,EACA,qBAAqB;AACjB,QAAI,KAAK,OAAO,SAAS,GAAG;AAGxB,WAAK,oBAAmB;AACxB,WAAK,KAAK,OAAO;AACjB,UAAI,KAAK,aAAa,GAAG;AAErB,aAAK,mBAAkB;AAEvB,YAAI,KAAK,WAAW,KAAK,yBAAyB,GAAG;AACjD,gBAAM,MAAM,KAAK,IAAG;AACpB,eAAK,oBAAoB,GAAG;AAAA,QAChC;AACA,aAAK,KAAK,MAAM;AAAA,MACpB;AACA,aAAO;AAAA,IACX;AACA,QAAI,cAAc;AAClB,QAAI,CAAC,KAAK,WAAW;AACjB,YAAM,MAAM,KAAK,IAAG;AACpB,YAAM,wBAAwB,CAAC,KAAK,oBAAoB,GAAG;AAC3D,UAAI,KAAK,6BAA6B,KAAK,6BAA6B;AACpE,cAAM,MAAM,KAAK,OAAO,QAAO;AAC/B,YAAI,CAAC,KAAK,oBAAoB;AAC1B,eAAK,qBAAqB,GAAG;AAC7B,eAAK,yBAAwB;AAAA,QACjC;AACA,aAAK,KAAK,QAAQ;AAClB,YAAG;AACH,YAAI,uBAAuB;AACvB,eAAK,4BAA2B;AAAA,QACpC;AACA,sBAAc;AAAA,MAClB;AAAA,IACJ;AACA,WAAO;AAAA,EACX;AAAA,EACA,8BAA8B;AAC1B,QAAI,KAAK,sBAAsB,KAAK,gBAAgB,QAAW;AAC3D;AAAA,IACJ;AAEA,QAAI,KAAK,SAAS;AACd;AAAA,IACJ;AACA,SAAK,cAAc,YAAY,MAAM;AACjC,WAAK,YAAW;AAAA,IACpB,GAAG,KAAK,SAAS;AACjB,SAAK,eAAe,KAAK,IAAG,IAAK,KAAK;AAAA,EAC1C;AAAA,EACA,cAAc;AAEV,QAAI,CAAC,KAAK,SAAS;AACf,UAAI,KAAK,mBAAmB,KAAK,KAAK,aAAa,KAAK,KAAK,aAAa;AACtE,aAAK,oBAAmB;AAAA,MAC5B;AACA,WAAK,iBAAiB,KAAK,0BAA0B,KAAK,WAAW;AAAA,IACzE;AACA,SAAK,cAAa;AAClB,SAAK,yBAAwB;AAAA,EACjC;AAAA;AAAA;AAAA;AAAA,EAIA,gBAAgB;AAEZ,WAAO,KAAK,mBAAkB,GAAI;AAAA,IAAE;AAAA,EACxC;AAAA,EACA,IAAI,cAAc;AACd,WAAO,KAAK;AAAA,EAChB;AAAA,EACA,IAAI,YAAY,gBAAgB;AAC5B,QAAI,EAAE,OAAO,mBAAmB,YAAY,kBAAkB,IAAI;AAC9D,YAAM,IAAI,UAAU,gEAAgE,cAAc,OAAO,OAAO,cAAc,GAAG;AAAA,IACrI;AACA,SAAK,eAAe;AACpB,SAAK,cAAa;AAAA,EACtB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAqCA,YAAY,IAAI,UAAU;AACtB,QAAI,OAAO,aAAa,YAAY,CAAC,OAAO,SAAS,QAAQ,GAAG;AAC5D,YAAM,IAAI,UAAU,sDAAsD,QAAQ,OAAO,OAAO,QAAQ,GAAG;AAAA,IAC/G;AACA,SAAK,OAAO,YAAY,IAAI,QAAQ;AAAA,EACxC;AAAA,EACA,MAAM,IAAI,WAAW,UAAU,IAAI;AAE/B,cAAU;AAAA,MACN,SAAS,KAAK;AAAA,MACd,GAAG;AAAA;AAAA,MAEH,IAAI,QAAQ,OAAO,KAAK,eAAe,SAAQ;AAAA,IAC3D;AACQ,WAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AAEpC,YAAM,aAAa,uBAAO,QAAQ,QAAQ,EAAE,EAAE;AAC9C,WAAK,OAAO,QAAQ,YAAY;AAC5B,aAAK;AAEL,aAAK,cAAc,IAAI,YAAY;AAAA,UAC/B,IAAI,QAAQ;AAAA,UACZ,UAAU,QAAQ,YAAY;AAAA;AAAA,UAC9B,WAAW,KAAK,IAAG;AAAA,UACnB,SAAS,QAAQ;AAAA,QACrC,CAAiB;AACD,YAAI;AACJ,YAAI;AAGA,cAAI;AACA,oBAAQ,QAAQ,eAAc;AAAA,UAClC,SACO,OAAO;AACV,iBAAK,6BAA4B;AAEjC,iBAAK,cAAc,OAAO,UAAU;AACpC,kBAAM;AAAA,UACV;AACA,eAAK,qBAAqB,KAAK,IAAG;AAClC,cAAI,YAAY,UAAU,EAAE,QAAQ,QAAQ,OAAM,CAAE;AACpD,cAAI,QAAQ,SAAS;AACjB,wBAAY,SAAS,QAAQ,QAAQ,SAAS,GAAG;AAAA,cAC7C,cAAc,QAAQ;AAAA,cACtB,SAAS,wBAAwB,QAAQ,OAAO,iBAAiB,KAAK,QAAQ,aAAa,KAAK,OAAO,IAAI;AAAA,YACvI,CAAyB;AAAA,UACL;AACA,cAAI,QAAQ,QAAQ;AAChB,kBAAM,EAAE,OAAM,IAAK;AACnB,wBAAY,QAAQ,KAAK,CAAC,WAAW,IAAI,QAAQ,CAAC,UAAUA,YAAW;AAC/D,8BAAgB,MAAM;AAClB,gBAAAA,QAAO,OAAO,MAAM;AAAA,cACxB;AACA,qBAAO,iBAAiB,SAAS,eAAe,EAAE,MAAM,MAAM;AAAA,YAClE,CAAC,CAAC,CAAC;AAAA,UACX;AACA,gBAAM,SAAS,MAAM;AACrB,kBAAQ,MAAM;AACd,eAAK,KAAK,aAAa,MAAM;AAAA,QACjC,SACO,OAAO;AACV,iBAAO,KAAK;AACZ,eAAK,KAAK,SAAS,KAAK;AAAA,QAC5B,UAChB;AAEoB,cAAI,eAAe;AACf,oBAAQ,QAAQ,oBAAoB,SAAS,aAAa;AAAA,UAC9D;AAEA,eAAK,cAAc,OAAO,UAAU;AAEpC,yBAAe,MAAM;AACjB,iBAAK,MAAK;AAAA,UACd,CAAC;AAAA,QACL;AAAA,MACJ,GAAG,OAAO;AACV,WAAK,KAAK,KAAK;AACf,WAAK,mBAAkB;AAAA,IAC3B,CAAC;AAAA,EACL;AAAA,EACA,MAAM,OAAO,WAAW,SAAS;AAC7B,WAAO,QAAQ,IAAI,UAAU,IAAI,OAAO,cAAc,KAAK,IAAI,WAAW,OAAO,CAAC,CAAC;AAAA,EACvF;AAAA;AAAA;AAAA;AAAA,EAIA,QAAQ;AACJ,QAAI,CAAC,KAAK,WAAW;AACjB,aAAO;AAAA,IACX;AACA,SAAK,YAAY;AACjB,SAAK,cAAa;AAClB,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAIA,QAAQ;AACJ,SAAK,YAAY;AAAA,EACrB;AAAA;AAAA;AAAA;AAAA,EAIA,QAAQ;AACJ,SAAK,SAAS,IAAI,KAAK,YAAW;AAElC,SAAK,oBAAmB;AAOxB,SAAK,sBAAqB;AAE1B,SAAK,KAAK,OAAO;AACjB,QAAI,KAAK,aAAa,GAAG;AACrB,WAAK,mBAAkB;AACvB,WAAK,KAAK,MAAM;AAAA,IACpB;AACA,SAAK,KAAK,MAAM;AAAA,EACpB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,UAAU;AAEZ,QAAI,KAAK,OAAO,SAAS,GAAG;AACxB;AAAA,IACJ;AACA,UAAM,KAAK,SAAS,OAAO;AAAA,EAC/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,eAAe,OAAO;AAExB,QAAI,KAAK,OAAO,OAAO,OAAO;AAC1B;AAAA,IACJ;AACA,UAAM,KAAK,SAAS,QAAQ,MAAM,KAAK,OAAO,OAAO,KAAK;AAAA,EAC9D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,SAAS;AAEX,QAAI,KAAK,aAAa,KAAK,KAAK,OAAO,SAAS,GAAG;AAC/C;AAAA,IACJ;AACA,UAAM,KAAK,SAAS,MAAM;AAAA,EAC9B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,gBAAgB;AAClB,QAAI,KAAK,aAAa,GAAG;AACrB;AAAA,IACJ;AACA,UAAM,KAAK,SAAS,aAAa;AAAA,EACrC;AAAA;AAAA;AAAA;AAAA,EAIA,MAAM,cAAc;AAChB,QAAI,KAAK,eAAe;AACpB;AAAA,IACJ;AACA,UAAM,KAAK,SAAS,WAAW;AAAA,EACnC;AAAA;AAAA;AAAA;AAAA,EAIA,MAAM,qBAAqB;AACvB,QAAI,CAAC,KAAK,eAAe;AACrB;AAAA,IACJ;AACA,UAAM,KAAK,SAAS,kBAAkB;AAAA,EAC1C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA+BA,UAAU;AACN,WAAO,IAAI,QAAQ,CAAC,UAAU,WAAW;AACrC,YAAM,cAAc,CAAC,UAAU;AAC3B,aAAK,IAAI,SAAS,WAAW;AAC7B,eAAO,KAAK;AAAA,MAChB;AACA,WAAK,GAAG,SAAS,WAAW;AAAA,IAChC,CAAC;AAAA,EACL;AAAA,EACA,MAAM,SAAS,OAAO,QAAQ;AAC1B,WAAO,IAAI,QAAQ,aAAW;AAC1B,YAAM,WAAW,MAAM;AACnB,YAAI,UAAU,CAAC,UAAU;AACrB;AAAA,QACJ;AACA,aAAK,IAAI,OAAO,QAAQ;AACxB,gBAAO;AAAA,MACX;AACA,WAAK,GAAG,OAAO,QAAQ;AAAA,IAC3B,CAAC;AAAA,EACL;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,OAAO;AACP,WAAO,KAAK,OAAO;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAO,SAAS;AAEZ,WAAO,KAAK,OAAO,OAAO,OAAO,EAAE;AAAA,EACvC;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,UAAU;AACV,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,WAAW;AACX,WAAO,KAAK;AAAA,EAChB;AAAA,EACA,0BAA0B;AAEtB,QAAI,KAAK,oBAAoB;AACzB;AAAA,IACJ;AAGA,SAAK,GAAG,OAAO,MAAM;AACjB,UAAI,KAAK,OAAO,OAAO,GAAG;AACtB,aAAK,yBAAwB;AAAA,MACjC;AAAA,IACJ,CAAC;AACD,SAAK,GAAG,QAAQ,MAAM;AAClB,WAAK,yBAAwB;AAAA,IACjC,CAAC;AAAA,EACL;AAAA,EACA,2BAA2B;AAEvB,QAAI,KAAK,sBAAsB,KAAK,0BAA0B;AAC1D;AAAA,IACJ;AACA,SAAK,2BAA2B;AAChC,mBAAe,MAAM;AACjB,WAAK,2BAA2B;AAChC,WAAK,sBAAqB;AAAA,IAC9B,CAAC;AAAA,EACL;AAAA,EACA,+BAA+B;AAC3B,QAAI,KAAK,oBAAoB;AACzB;AAAA,IACJ;AACA,SAAK,sBAAqB;AAC1B,SAAK,yBAAwB;AAAA,EACjC;AAAA,EACA,wBAAwB;AACpB,UAAM,WAAW,KAAK;AAEtB,QAAI,KAAK,sBAAsB,KAAK,OAAO,SAAS,GAAG;AACnD,UAAI,UAAU;AACV,aAAK,yBAAyB;AAC9B,aAAK,KAAK,kBAAkB;AAAA,MAChC;AACA;AAAA,IACJ;AAEA,QAAI;AACJ,QAAI,KAAK,SAAS;AACd,YAAM,MAAM,KAAK,IAAG;AACpB,WAAK,oBAAoB,GAAG;AAC5B,cAAQ,KAAK,qBAAoB;AAAA,IACrC,OACK;AACD,cAAQ,KAAK;AAAA,IACjB;AACA,UAAM,sBAAsB,SAAS,KAAK;AAC1C,QAAI,wBAAwB,UAAU;AAClC,WAAK,yBAAyB;AAC9B,WAAK,KAAK,sBAAsB,cAAc,kBAAkB;AAAA,IACpE;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,gBAAgB;AAChB,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA2BA,IAAI,cAAc;AACd,WAAQ,KAAK,aAAa,KAAK,gBAAgB,KAAK,OAAO,OAAO,KAC1D,KAAK,iBAAiB,KAAK,OAAO,OAAO;AAAA,EACrD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA8BA,IAAI,eAAe;AAEf,WAAO,CAAC,GAAG,KAAK,cAAc,OAAM,CAAE,EAAE,IAAI,WAAS,EAAE,GAAG,KAAI,EAAG;AAAA,EACrE;AACJ;","x_google_ignoreList":[0]}
|
package/dist/index.es63.js
CHANGED
|
@@ -1,37 +1,146 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { __export } from "./index.es52.js";
|
|
2
|
+
import { mapKeys, keyToJson } from "./index.es79.js";
|
|
3
|
+
import { escapeIfNeeded } from "./index.es80.js";
|
|
4
|
+
var serializable_exports = {};
|
|
5
|
+
__export(serializable_exports, {
|
|
6
|
+
Serializable: () => Serializable,
|
|
7
|
+
get_lc_unique_name: () => get_lc_unique_name
|
|
8
|
+
});
|
|
9
|
+
function shallowCopy(obj) {
|
|
10
|
+
return Array.isArray(obj) ? [...obj] : { ...obj };
|
|
4
11
|
}
|
|
5
|
-
function
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
if (aiMessage.tool_calls && aiMessage.tool_calls.length > 0) {
|
|
15
|
-
lines.push("Tool Calls:");
|
|
16
|
-
for (const tc of aiMessage.tool_calls) {
|
|
17
|
-
lines.push(` ${tc.name} (${tc.id})`);
|
|
18
|
-
lines.push(` Call ID: ${tc.id}`);
|
|
19
|
-
lines.push(" Args:");
|
|
20
|
-
for (const [key, value] of Object.entries(tc.args)) lines.push(` ${key}: ${typeof value === "object" ? JSON.stringify(value) : value}`);
|
|
21
|
-
}
|
|
12
|
+
function replaceSecrets(root, secretsMap) {
|
|
13
|
+
const result = shallowCopy(root);
|
|
14
|
+
for (const [path, secretId] of Object.entries(secretsMap)) {
|
|
15
|
+
const [last, ...partsReverse] = path.split(".").reverse();
|
|
16
|
+
let current = result;
|
|
17
|
+
for (const part of partsReverse.reverse()) {
|
|
18
|
+
if (current[part] === void 0) break;
|
|
19
|
+
current[part] = shallowCopy(current[part]);
|
|
20
|
+
current = current[part];
|
|
22
21
|
}
|
|
22
|
+
if (current[last] !== void 0) current[last] = {
|
|
23
|
+
lc: 1,
|
|
24
|
+
type: "secret",
|
|
25
|
+
id: [secretId]
|
|
26
|
+
};
|
|
23
27
|
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
28
|
+
return result;
|
|
29
|
+
}
|
|
30
|
+
function get_lc_unique_name(serializableClass) {
|
|
31
|
+
const parentClass = Object.getPrototypeOf(serializableClass);
|
|
32
|
+
const lcNameIsSubclassed = typeof serializableClass.lc_name === "function" && (typeof parentClass.lc_name !== "function" || serializableClass.lc_name() !== parentClass.lc_name());
|
|
33
|
+
if (lcNameIsSubclassed) return serializableClass.lc_name();
|
|
34
|
+
else return serializableClass.name;
|
|
35
|
+
}
|
|
36
|
+
var Serializable = class Serializable2 {
|
|
37
|
+
lc_serializable = false;
|
|
38
|
+
lc_kwargs;
|
|
39
|
+
/**
|
|
40
|
+
* The name of the serializable. Override to provide an alias or
|
|
41
|
+
* to preserve the serialized module name in minified environments.
|
|
42
|
+
*
|
|
43
|
+
* Implemented as a static method to support loading logic.
|
|
44
|
+
*/
|
|
45
|
+
static lc_name() {
|
|
46
|
+
return this.name;
|
|
27
47
|
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
48
|
+
/**
|
|
49
|
+
* The final serialized identifier for the module.
|
|
50
|
+
*/
|
|
51
|
+
get lc_id() {
|
|
52
|
+
return [...this.lc_namespace, get_lc_unique_name(this.constructor)];
|
|
31
53
|
}
|
|
32
|
-
|
|
33
|
-
|
|
54
|
+
/**
|
|
55
|
+
* A map of secrets, which will be omitted from serialization.
|
|
56
|
+
* Keys are paths to the secret in constructor args, e.g. "foo.bar.baz".
|
|
57
|
+
* Values are the secret ids, which will be used when deserializing.
|
|
58
|
+
*/
|
|
59
|
+
get lc_secrets() {
|
|
60
|
+
return void 0;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* A map of additional attributes to merge with constructor args.
|
|
64
|
+
* Keys are the attribute names, e.g. "foo".
|
|
65
|
+
* Values are the attribute values, which will be serialized.
|
|
66
|
+
* These attributes need to be accepted by the constructor as arguments.
|
|
67
|
+
*/
|
|
68
|
+
get lc_attributes() {
|
|
69
|
+
return void 0;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* A map of aliases for constructor args.
|
|
73
|
+
* Keys are the attribute names, e.g. "foo".
|
|
74
|
+
* Values are the alias that will replace the key in serialization.
|
|
75
|
+
* This is used to eg. make argument names match Python.
|
|
76
|
+
*/
|
|
77
|
+
get lc_aliases() {
|
|
78
|
+
return void 0;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* A manual list of keys that should be serialized.
|
|
82
|
+
* If not overridden, all fields passed into the constructor will be serialized.
|
|
83
|
+
*/
|
|
84
|
+
get lc_serializable_keys() {
|
|
85
|
+
return void 0;
|
|
86
|
+
}
|
|
87
|
+
constructor(kwargs, ..._args) {
|
|
88
|
+
if (this.lc_serializable_keys !== void 0) this.lc_kwargs = Object.fromEntries(Object.entries(kwargs || {}).filter(([key]) => this.lc_serializable_keys?.includes(key)));
|
|
89
|
+
else this.lc_kwargs = kwargs ?? {};
|
|
90
|
+
}
|
|
91
|
+
toJSON() {
|
|
92
|
+
if (!this.lc_serializable) return this.toJSONNotImplemented();
|
|
93
|
+
if (this.lc_kwargs instanceof Serializable2 || typeof this.lc_kwargs !== "object" || Array.isArray(this.lc_kwargs)) return this.toJSONNotImplemented();
|
|
94
|
+
const aliases = {};
|
|
95
|
+
const secrets = {};
|
|
96
|
+
const kwargs = Object.keys(this.lc_kwargs).reduce((acc, key) => {
|
|
97
|
+
acc[key] = key in this ? this[key] : this.lc_kwargs[key];
|
|
98
|
+
return acc;
|
|
99
|
+
}, {});
|
|
100
|
+
for (let current = Object.getPrototypeOf(this); current; current = Object.getPrototypeOf(current)) {
|
|
101
|
+
Object.assign(aliases, Reflect.get(current, "lc_aliases", this));
|
|
102
|
+
Object.assign(secrets, Reflect.get(current, "lc_secrets", this));
|
|
103
|
+
Object.assign(kwargs, Reflect.get(current, "lc_attributes", this));
|
|
104
|
+
}
|
|
105
|
+
Object.keys(secrets).forEach((keyPath) => {
|
|
106
|
+
let read = this;
|
|
107
|
+
let write = kwargs;
|
|
108
|
+
const [last, ...partsReverse] = keyPath.split(".").reverse();
|
|
109
|
+
for (const key of partsReverse.reverse()) {
|
|
110
|
+
if (!(key in read) || read[key] === void 0) return;
|
|
111
|
+
if (!(key in write) || write[key] === void 0) {
|
|
112
|
+
if (typeof read[key] === "object" && read[key] != null) write[key] = {};
|
|
113
|
+
else if (Array.isArray(read[key])) write[key] = [];
|
|
114
|
+
}
|
|
115
|
+
read = read[key];
|
|
116
|
+
write = write[key];
|
|
117
|
+
}
|
|
118
|
+
if (last in read && read[last] !== void 0) write[last] = write[last] || read[last];
|
|
119
|
+
});
|
|
120
|
+
const escapedKwargs = {};
|
|
121
|
+
const pathSet = /* @__PURE__ */ new WeakSet();
|
|
122
|
+
pathSet.add(this);
|
|
123
|
+
for (const [key, value] of Object.entries(kwargs)) escapedKwargs[key] = escapeIfNeeded(value, pathSet);
|
|
124
|
+
const kwargsWithSecrets = Object.keys(secrets).length ? replaceSecrets(escapedKwargs, secrets) : escapedKwargs;
|
|
125
|
+
const processedKwargs = mapKeys(kwargsWithSecrets, keyToJson, aliases);
|
|
126
|
+
return {
|
|
127
|
+
lc: 1,
|
|
128
|
+
type: "constructor",
|
|
129
|
+
id: this.lc_id,
|
|
130
|
+
kwargs: processedKwargs
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
toJSONNotImplemented() {
|
|
134
|
+
return {
|
|
135
|
+
lc: 1,
|
|
136
|
+
type: "not_implemented",
|
|
137
|
+
id: this.lc_id
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
};
|
|
34
141
|
export {
|
|
35
|
-
|
|
142
|
+
Serializable,
|
|
143
|
+
get_lc_unique_name,
|
|
144
|
+
serializable_exports
|
|
36
145
|
};
|
|
37
146
|
//# sourceMappingURL=index.es63.js.map
|
package/dist/index.es63.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es63.js","sources":["../node_modules/.pnpm/@langchain+core@1.1.13_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/
|
|
1
|
+
{"version":3,"file":"index.es63.js","sources":["../node_modules/.pnpm/@langchain+core@1.1.13_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/load/serializable.js"],"sourcesContent":["import { __export } from \"../_virtual/rolldown_runtime.js\";\nimport { keyToJson, mapKeys } from \"./map_keys.js\";\nimport { escapeIfNeeded } from \"./validation.js\";\n\n//#region src/load/serializable.ts\nvar serializable_exports = {};\n__export(serializable_exports, {\n\tSerializable: () => Serializable,\n\tget_lc_unique_name: () => get_lc_unique_name\n});\nfunction shallowCopy(obj) {\n\treturn Array.isArray(obj) ? [...obj] : { ...obj };\n}\nfunction replaceSecrets(root, secretsMap) {\n\tconst result = shallowCopy(root);\n\tfor (const [path, secretId] of Object.entries(secretsMap)) {\n\t\tconst [last, ...partsReverse] = path.split(\".\").reverse();\n\t\tlet current = result;\n\t\tfor (const part of partsReverse.reverse()) {\n\t\t\tif (current[part] === void 0) break;\n\t\t\tcurrent[part] = shallowCopy(current[part]);\n\t\t\tcurrent = current[part];\n\t\t}\n\t\tif (current[last] !== void 0) current[last] = {\n\t\t\tlc: 1,\n\t\t\ttype: \"secret\",\n\t\t\tid: [secretId]\n\t\t};\n\t}\n\treturn result;\n}\n/**\n* Get a unique name for the module, rather than parent class implementations.\n* Should not be subclassed, subclass lc_name above instead.\n*/\nfunction get_lc_unique_name(serializableClass) {\n\tconst parentClass = Object.getPrototypeOf(serializableClass);\n\tconst lcNameIsSubclassed = typeof serializableClass.lc_name === \"function\" && (typeof parentClass.lc_name !== \"function\" || serializableClass.lc_name() !== parentClass.lc_name());\n\tif (lcNameIsSubclassed) return serializableClass.lc_name();\n\telse return serializableClass.name;\n}\nvar Serializable = class Serializable {\n\tlc_serializable = false;\n\tlc_kwargs;\n\t/**\n\t* The name of the serializable. Override to provide an alias or\n\t* to preserve the serialized module name in minified environments.\n\t*\n\t* Implemented as a static method to support loading logic.\n\t*/\n\tstatic lc_name() {\n\t\treturn this.name;\n\t}\n\t/**\n\t* The final serialized identifier for the module.\n\t*/\n\tget lc_id() {\n\t\treturn [...this.lc_namespace, get_lc_unique_name(this.constructor)];\n\t}\n\t/**\n\t* A map of secrets, which will be omitted from serialization.\n\t* Keys are paths to the secret in constructor args, e.g. \"foo.bar.baz\".\n\t* Values are the secret ids, which will be used when deserializing.\n\t*/\n\tget lc_secrets() {\n\t\treturn void 0;\n\t}\n\t/**\n\t* A map of additional attributes to merge with constructor args.\n\t* Keys are the attribute names, e.g. \"foo\".\n\t* Values are the attribute values, which will be serialized.\n\t* These attributes need to be accepted by the constructor as arguments.\n\t*/\n\tget lc_attributes() {\n\t\treturn void 0;\n\t}\n\t/**\n\t* A map of aliases for constructor args.\n\t* Keys are the attribute names, e.g. \"foo\".\n\t* Values are the alias that will replace the key in serialization.\n\t* This is used to eg. make argument names match Python.\n\t*/\n\tget lc_aliases() {\n\t\treturn void 0;\n\t}\n\t/**\n\t* A manual list of keys that should be serialized.\n\t* If not overridden, all fields passed into the constructor will be serialized.\n\t*/\n\tget lc_serializable_keys() {\n\t\treturn void 0;\n\t}\n\tconstructor(kwargs, ..._args) {\n\t\tif (this.lc_serializable_keys !== void 0) this.lc_kwargs = Object.fromEntries(Object.entries(kwargs || {}).filter(([key]) => this.lc_serializable_keys?.includes(key)));\n\t\telse this.lc_kwargs = kwargs ?? {};\n\t}\n\ttoJSON() {\n\t\tif (!this.lc_serializable) return this.toJSONNotImplemented();\n\t\tif (this.lc_kwargs instanceof Serializable || typeof this.lc_kwargs !== \"object\" || Array.isArray(this.lc_kwargs)) return this.toJSONNotImplemented();\n\t\tconst aliases = {};\n\t\tconst secrets = {};\n\t\tconst kwargs = Object.keys(this.lc_kwargs).reduce((acc, key) => {\n\t\t\tacc[key] = key in this ? this[key] : this.lc_kwargs[key];\n\t\t\treturn acc;\n\t\t}, {});\n\t\tfor (let current = Object.getPrototypeOf(this); current; current = Object.getPrototypeOf(current)) {\n\t\t\tObject.assign(aliases, Reflect.get(current, \"lc_aliases\", this));\n\t\t\tObject.assign(secrets, Reflect.get(current, \"lc_secrets\", this));\n\t\t\tObject.assign(kwargs, Reflect.get(current, \"lc_attributes\", this));\n\t\t}\n\t\tObject.keys(secrets).forEach((keyPath) => {\n\t\t\tlet read = this;\n\t\t\tlet write = kwargs;\n\t\t\tconst [last, ...partsReverse] = keyPath.split(\".\").reverse();\n\t\t\tfor (const key of partsReverse.reverse()) {\n\t\t\t\tif (!(key in read) || read[key] === void 0) return;\n\t\t\t\tif (!(key in write) || write[key] === void 0) {\n\t\t\t\t\tif (typeof read[key] === \"object\" && read[key] != null) write[key] = {};\n\t\t\t\t\telse if (Array.isArray(read[key])) write[key] = [];\n\t\t\t\t}\n\t\t\t\tread = read[key];\n\t\t\t\twrite = write[key];\n\t\t\t}\n\t\t\tif (last in read && read[last] !== void 0) write[last] = write[last] || read[last];\n\t\t});\n\t\tconst escapedKwargs = {};\n\t\tconst pathSet = /* @__PURE__ */ new WeakSet();\n\t\tpathSet.add(this);\n\t\tfor (const [key, value] of Object.entries(kwargs)) escapedKwargs[key] = escapeIfNeeded(value, pathSet);\n\t\tconst kwargsWithSecrets = Object.keys(secrets).length ? replaceSecrets(escapedKwargs, secrets) : escapedKwargs;\n\t\tconst processedKwargs = mapKeys(kwargsWithSecrets, keyToJson, aliases);\n\t\treturn {\n\t\t\tlc: 1,\n\t\t\ttype: \"constructor\",\n\t\t\tid: this.lc_id,\n\t\t\tkwargs: processedKwargs\n\t\t};\n\t}\n\ttoJSONNotImplemented() {\n\t\treturn {\n\t\t\tlc: 1,\n\t\t\ttype: \"not_implemented\",\n\t\t\tid: this.lc_id\n\t\t};\n\t}\n};\n\n//#endregion\nexport { Serializable, get_lc_unique_name, serializable_exports };\n//# sourceMappingURL=serializable.js.map"],"names":["Serializable"],"mappings":"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","x_google_ignoreList":[0]}
|