promptfoo 0.121.5 → 0.121.8
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/src/{ListApp-BRUsT43Y.js → ListApp-DLmM02JS.js} +1 -1
- package/dist/src/{accounts-BIFntVWB.cjs → accounts-BVz5gHLK.cjs} +16 -10
- package/dist/src/{accounts-bnyHT7Ju.js → accounts-BWjqwsrf.js} +12 -7
- package/dist/src/{accounts-CLJHCDDb.js → accounts-D6IBfEE0.js} +13 -8
- package/dist/src/{accounts-CaLNYnf7.js → accounts-DAv_0iE7.js} +12 -7
- package/dist/src/{agentic-utils-B5krlibj.js → agentic-utils-BJKAkz2e.js} +2 -2
- package/dist/src/{agentic-utils-D2x0wGhB.cjs → agentic-utils-C-A92xhn.cjs} +8 -7
- package/dist/src/{agentic-utils-Ba67xmgs.js → agentic-utils-DmoS_S4B.js} +2 -2
- package/dist/src/{agentic-utils-BclbiXiq.js → agentic-utils-GdToujHu.js} +2 -2
- package/dist/src/{agents-BGqaTDnr.js → agents-2C8NN6I1.js} +20 -9
- package/dist/src/{agents-n6vPqV3i.js → agents-BMAiSR2o.js} +4 -4
- package/dist/src/{agents-BYdMl1UE.js → agents-C-PGaxwj.js} +20 -9
- package/dist/src/{agents-BV9yFpXX.js → agents-C98cz5pl.js} +20 -9
- package/dist/src/{agents-WULPVjbH.cjs → agents-DB8Ub2Ld.cjs} +7 -6
- package/dist/src/{agents-DhxWMCtH.js → agents-Dwshy2H8.js} +4 -4
- package/dist/src/{agents-emVcx3yh.js → agents-mlKjx-cK.js} +2 -2
- package/dist/src/{agents-DiWmQYH9.cjs → agents-n2ej-c4H.cjs} +21 -10
- package/dist/src/{aimlapi-DR4pgeiC.js → aimlapi-Bi-laUlp.js} +6 -6
- package/dist/src/{aimlapi-BzLjZI_m.cjs → aimlapi-D0OFV4Vj.cjs} +7 -7
- package/dist/src/{aimlapi-BxqK9HF_.js → aimlapi-WyUK0wYy.js} +6 -6
- package/dist/src/{aimlapi-uPGp0Zdo.js → aimlapi-v-63ZjEI.js} +6 -6
- package/dist/src/app/app/tsconfig.app.tsbuildinfo +1 -1
- package/dist/src/app/assets/Report-sCXUfaWo.js +1 -0
- package/dist/src/app/assets/index-BopgkZEh.js +388 -0
- package/dist/src/app/assets/index-yhM8y1PP.css +1 -0
- package/dist/src/app/assets/{scroll-timeline-D9IT_e8Z.js → scroll-timeline-RpeTwOvs.js} +1 -1
- package/dist/src/app/assets/sync-5gq6fmG4.js +4 -0
- package/dist/src/app/assets/vendor-charts-BL9OMNU7.js +36 -0
- package/dist/src/app/assets/{vendor-markdown-Ch00wnNI.js → vendor-markdown-BYsQqn7Z.js} +10 -10
- package/dist/src/app/assets/{vendor-react-CVvmk1UB.js → vendor-react-CqWgVW6T.js} +2 -2
- package/dist/src/app/assets/{vendor-utils-BnEYbx2Q.js → vendor-utils-BHPO71pu.js} +1 -1
- package/dist/src/app/index.html +6 -6
- package/dist/src/{audio-CScmnmEB.js → audio-DnEIHWZR.js} +3 -3
- package/dist/src/{audio-Da8U9IS5.js → audio-heR0mu0n.js} +3 -3
- package/dist/src/{audio-BvpTOArF.js → audio-wafFO1wn.js} +3 -3
- package/dist/src/{audio-C0vDeS0j.cjs → audio-x44tsxIo.cjs} +4 -4
- package/dist/src/authoritativeMarkupInjection-2G3Be6oL.cjs +74 -0
- package/dist/src/authoritativeMarkupInjection-81PPynHR.js +75 -0
- package/dist/src/authoritativeMarkupInjection-D9O70HPi.js +74 -0
- package/dist/src/authoritativeMarkupInjection-PxSf3Rh8.js +74 -0
- package/dist/src/{base-dYsl2hmL.js → base-0Gzzue9Z.js} +4 -3
- package/dist/src/{base-BOMaNEes.js → base-Bp4c52YZ.js} +4 -3
- package/dist/src/{base-BTux96b1.js → base-BuNn-YBX.js} +4 -3
- package/dist/src/{base-Tw6uhH8K.cjs → base-BzdS8tod.cjs} +5 -4
- package/dist/src/bestOfN-BHiOjeaq.js +136 -0
- package/dist/src/bestOfN-CdkNPPbX.js +136 -0
- package/dist/src/bestOfN-ClUSOhN0.js +137 -0
- package/dist/src/bestOfN-DWwXEg1h.cjs +140 -0
- package/dist/src/{blobs-B95F_7vE.cjs → blobs-B0977K1O.cjs} +7 -6
- package/dist/src/{blobs-D_gg8nbm.js → blobs-CeFdPn_T.js} +2 -2
- package/dist/src/{blobs-DjLby-uP.js → blobs-DODuTK-a.js} +2 -2
- package/dist/src/{blobs-BW4U31ue.js → blobs-Dwef1Ao1.js} +2 -2
- package/dist/src/cache-BKYi3kAA.js +3 -0
- package/dist/src/{cache-BI5BY7ey.js → cache-BR77mdIR.js} +127 -11
- package/dist/src/{cache-Cr-qWIbP.js → cache-CrioYnaa.js} +125 -10
- package/dist/src/{cache-Bzttsk0X.js → cache-DdriHsNX.js} +125 -10
- package/dist/src/{cache-DGg-yTZG.cjs → cache-h5MWOBZI.cjs} +135 -25
- package/dist/src/{chat-Cx_LkwvZ.js → chat-BBEnnpQk.js} +11 -11
- package/dist/src/{chat-DChSH_Es.js → chat-BSos6PvZ.js} +9 -9
- package/dist/src/{chat-aMQZw6R7.js → chat-Bnt7ieO0.js} +4 -4
- package/dist/src/{chat-vYqqv1gP.cjs → chat-DSyYuTYT.cjs} +14 -13
- package/dist/src/{chat-BLOdH60v.js → chat-DTdf-J5Q.js} +11 -11
- package/dist/src/{chat-DH97tVV9.cjs → chat-Dq3DomYU.cjs} +6 -6
- package/dist/src/{chat-DG2LkwLq.js → chat-g5QLeLOo.js} +4 -4
- package/dist/src/{chat-D9nudO9b.js → chat-mTTuUAYb.js} +4 -4
- package/dist/src/{chatkit-B8X34dQc.js → chatkit-B6DWi70Q.js} +3 -3
- package/dist/src/{chatkit-D44VyUyB.cjs → chatkit-BYveR48_.cjs} +6 -5
- package/dist/src/{chatkit-BXu42Qwt.js → chatkit-fARZwEfV.js} +3 -3
- package/dist/src/{chatkit-CbMRoeYw.js → chatkit-lb6FK02w.js} +1 -1
- package/dist/src/{claude-agent-sdk-DYv_AJ8u.js → claude-agent-sdk-BGUac_kS.js} +213 -66
- package/dist/src/{claude-agent-sdk-BjriSVRZ.js → claude-agent-sdk-BP__YGfK.js} +213 -66
- package/dist/src/{claude-agent-sdk-BzNZeZ0N.js → claude-agent-sdk-Ddgx5BIQ.js} +212 -65
- package/dist/src/{claude-agent-sdk-BRq0bbIK.cjs → claude-agent-sdk-n2XcEclh.cjs} +219 -71
- package/dist/src/cloud-DiWbUiVP.js +3 -0
- package/dist/src/{cloud-Da0bofJd.js → cloud-DqF5N1aJ.js} +2 -2
- package/dist/src/{cloudflare-ai-CXC4b1EU.js → cloudflare-ai-BGamMotN.js} +4 -4
- package/dist/src/{cloudflare-ai-DGOwgexC.js → cloudflare-ai-BwW8W-w7.js} +4 -4
- package/dist/src/{cloudflare-ai-DJv5qnyb.cjs → cloudflare-ai-DCRGnsyL.cjs} +6 -6
- package/dist/src/{cloudflare-ai-CyBoIs1Q.js → cloudflare-ai-sD26nP6V.js} +4 -4
- package/dist/src/{cloudflare-gateway-TJkVrZlB.js → cloudflare-gateway-2lnOT4qM.js} +3 -3
- package/dist/src/{cloudflare-gateway-D-dnkzCF.js → cloudflare-gateway-B1-8KNCt.js} +3 -3
- package/dist/src/{cloudflare-gateway-DKVjkDav.cjs → cloudflare-gateway-CCC1DFrC.cjs} +5 -5
- package/dist/src/{cloudflare-gateway-1sAoOyft.js → cloudflare-gateway-DOghiU6r.js} +3 -3
- package/dist/src/{codex-app-server-CCLjqCh9.js → codex-app-server-BWeWamEb.js} +19 -4
- package/dist/src/{codex-app-server-CCe0TiDc.js → codex-app-server-DyQB1P0p.js} +20 -5
- package/dist/src/{codex-app-server-VMRnjZ68.cjs → codex-app-server-R9u_G7W9.cjs} +27 -11
- package/dist/src/{codex-app-server-CPW1LFwh.js → codex-app-server-ZQRJSJjU.js} +20 -5
- package/dist/src/{codex-sdk-Bzb_TqX9.js → codex-sdk-B62H0fe7.js} +16 -5
- package/dist/src/{codex-sdk-Bd8UbO9q.cjs → codex-sdk-BRPUvJG8.cjs} +31 -12
- package/dist/src/{codex-sdk-BgEFQ70r.js → codex-sdk-Dio1zJBS.js} +18 -7
- package/dist/src/codex-sdk-DxukZs_K.js +3 -0
- package/dist/src/{codex-sdk-DfvDTN33.js → codex-sdk-iEmW1eS2.js} +18 -7
- package/dist/src/{cometapi-B5ImDlSm.js → cometapi--hh7dESS.js} +7 -7
- package/dist/src/{cometapi-CC7hWxmX.js → cometapi-C7yWNGqt.js} +7 -7
- package/dist/src/{cometapi-CCbpHkuF.js → cometapi-CSIi16a0.js} +7 -7
- package/dist/src/{cometapi-BgAkuYCw.cjs → cometapi-sZgBZtbU.cjs} +8 -8
- package/dist/src/{completion-DtQ72Bm3.cjs → completion-CWtqdn3z.cjs} +6 -6
- package/dist/src/{completion-Vq_ad618.js → completion-DT8cxo9T.js} +4 -4
- package/dist/src/{completion-2iuYVxwi.js → completion-DUScduXp.js} +5 -5
- package/dist/src/{completion-CrD6MQ93.js → completion-D_2IOAoS.js} +5 -5
- package/dist/src/constants-BjJV0cRr.js +6 -0
- package/dist/src/constants-DH5XYLKZ.js +7 -0
- package/dist/src/constants-DZGEFLsu.js +6 -0
- package/dist/src/constants-a2kYssQk.cjs +11 -0
- package/dist/src/{createHash-4gFQpDDv.js → createHash-BtbSX3mj.js} +1 -1
- package/dist/src/{createHash-Un4Q_huE.js → createHash-CGVzWdjj.js} +1 -1
- package/dist/src/{createHash-VvBIc-AW.cjs → createHash-CSiqnK5P.cjs} +2 -2
- package/dist/src/{createHash-DPpsZgFF.js → createHash-CgRvs4Fn.js} +1 -1
- package/dist/src/crescendo-B41TwUHM.js +722 -0
- package/dist/src/crescendo-Bfic7KC4.js +724 -0
- package/dist/src/crescendo-DXFB7rHP.cjs +725 -0
- package/dist/src/crescendo-DvvYxMLA.js +723 -0
- package/dist/src/custom-BdzuqFTN.js +619 -0
- package/dist/src/custom-Cf5Q6r-P.js +618 -0
- package/dist/src/custom-DLgufezC.js +620 -0
- package/dist/src/custom-LEXHCRe3.cjs +621 -0
- package/dist/src/{docker--3qzPa-6.js → docker-BOSO_6hK.js} +5 -5
- package/dist/src/{docker-D3AY-5F5.cjs → docker-D0h2vFrc.cjs} +6 -6
- package/dist/src/{docker-DCsCDvwM.js → docker-D2TWGyTP.js} +5 -5
- package/dist/src/{docker-Dorv4_Dg.js → docker-Vj_4_cPg.js} +5 -5
- package/dist/src/{embedding-BXhN5lCH.cjs → embedding-BQIApR18.cjs} +6 -6
- package/dist/src/{embedding-ChS1ivFS.js → embedding-CStK0TV6.js} +5 -5
- package/dist/src/{embedding-DNRvZwRN.js → embedding-CU78FMnw.js} +5 -5
- package/dist/src/{embedding-D_bI4NDq.js → embedding-CV8lmCnU.js} +4 -4
- package/dist/src/{errors-DFHe4L-n.js → errors-9PcUL8BC.js} +1 -1
- package/dist/src/{esm-B_rGuPTo.cjs → esm-BIKakvNa.cjs} +8 -7
- package/dist/src/{esm-BRkfNsYs.js → esm-BTK1W7lG.js} +1 -1
- package/dist/src/{esm-BX8fwlAO.js → esm-Bexx2PFc.js} +1 -1
- package/dist/src/{eval-DJ_4A-tr.js → eval-B3BaNBbO.js} +19 -19
- package/dist/src/{eval-BQPLBJbw.js → eval-DfR9885C.js} +1 -1
- package/dist/src/evalResult-BtZSUgQv.js +3 -0
- package/dist/src/{evalResult-D6P5I5il.js → evalResult-CcSqNl_Y.js} +17 -10
- package/dist/src/{evalResult-Cx-8OWkb.cjs → evalResult-DHXs-9TL.cjs} +29 -11
- package/dist/src/{evalResult-pSvGWFMo.js → evalResult-PGqEbasb.js} +18 -11
- package/dist/src/evaluator-B9LGbKI8.js +3 -0
- package/dist/src/{evaluator-D-UIbbYq.js → evaluator-n_dEb00o.js} +258 -132
- package/dist/src/evaluatorHelpers-CrRObe2z.js +510 -0
- package/dist/src/evaluatorHelpers-D06I9WFL.cjs +537 -0
- package/dist/src/evaluatorHelpers-D1_kwvyp.js +511 -0
- package/dist/src/{extractor-DxyiFhPk.js → extractor-BVkZtk4R.js} +5 -5
- package/dist/src/{extractor-BM3jRERL.js → extractor-D3Fv_Tdh.js} +5 -5
- package/dist/src/{extractor-YlZbUMsL.js → extractor-Jp53vs-6.js} +5 -5
- package/dist/src/{extractor-Dxr2J_wK.cjs → extractor-bV_NOoaz.cjs} +6 -6
- package/dist/src/{fetch-Y5qX_kST.js → fetch-BSSAcMxf.js} +90 -26
- package/dist/src/fetch-BodQTrMU.js +3 -0
- package/dist/src/{fetch-NuqXW1Xb.cjs → fetch-Cfm4EuOB.cjs} +115 -32
- package/dist/src/{fetch-B6ch2nU2.js → fetch-Cpf1U1nO.js} +86 -26
- package/dist/src/{fetch-D9xxyC1p.js → fetch-Doks14zQ.js} +90 -26
- package/dist/src/{fileExtensions-D9h-8Wxg.cjs → fileExtensions-BhdwzYaD.cjs} +24 -1
- package/dist/src/{fileExtensions-BGh-W-HT.js → fileExtensions-CXRfY3Ss.js} +12 -2
- package/dist/src/{fileExtensions-DysCsxNG.js → fileExtensions-D4GCJ67J.js} +12 -2
- package/dist/src/{formatDuration-Ch4A7G3o.js → formatDuration-CMVNrYvE.js} +1 -1
- package/dist/src/{genaiTracer-BokHC-MW.cjs → genaiTracer-14nugQQx.cjs} +14 -2
- package/dist/src/{genaiTracer-C3ZPQU60.js → genaiTracer-BPVvltoW.js} +2 -2
- package/dist/src/{genaiTracer-DxODqT9e.js → genaiTracer-D18lYzhB.js} +2 -2
- package/dist/src/{genaiTracer-CFny3gOy.js → genaiTracer-jJKYsnjc.js} +2 -2
- package/dist/src/goat-Ba7Gznzq.js +467 -0
- package/dist/src/goat-CJngS-WU.js +468 -0
- package/dist/src/goat-CwsbfQeu.js +466 -0
- package/dist/src/goat-DOMbozoX.cjs +470 -0
- package/dist/src/graders-B3D7kCcD.js +3 -0
- package/dist/src/{graders-CgPn32yp.js → graders-BQt1BaQe.js} +1019 -86
- package/dist/src/{graders-Bw1wk_21.cjs → graders-CBQ2s6gz.cjs} +1087 -130
- package/dist/src/{graders-CwrbifOo.js → graders-DaRU98zs.js} +1022 -84
- package/dist/src/{graders-BoUqsCEm.js → graders-KXzjnIim.js} +1024 -86
- package/dist/src/hydra-BU6GjYoQ.js +560 -0
- package/dist/src/hydra-BmXHxlyl.js +559 -0
- package/dist/src/hydra-CR0KyYDb.js +561 -0
- package/dist/src/hydra-RO9jBks7.cjs +560 -0
- package/dist/src/{image-BeWaInPF.js → image-BBmZdKO3.js} +3 -3
- package/dist/src/{image-qjO6FWPs.js → image-B_PFG7IG.js} +3 -3
- package/dist/src/image-BtODOZjh.js +442 -0
- package/dist/src/image-CYuNJIqd.js +442 -0
- package/dist/src/{image-D10dNAav.cjs → image-E00WFZkq.cjs} +4 -4
- package/dist/src/image-HK2Cfqb1.cjs +465 -0
- package/dist/src/{image-Dr_3I3nK.js → image-LGj8dTcr.js} +3 -3
- package/dist/src/image-YMKejC0r.js +443 -0
- package/dist/src/index.cjs +711 -339
- package/dist/src/index.d.cts +3159 -1611
- package/dist/src/index.d.ts +3158 -1610
- package/dist/src/index.js +605 -249
- package/dist/src/indirectWebPwn-B80dLlFC.js +260 -0
- package/dist/src/indirectWebPwn-BMTXXznx.js +386 -0
- package/dist/src/indirectWebPwn-BZFPV7Q9.js +385 -0
- package/dist/src/indirectWebPwn-BaEQEOIO.cjs +260 -0
- package/dist/src/indirectWebPwn-BzpyMnFS.js +259 -0
- package/dist/src/indirectWebPwn-CiWB-vVH.js +385 -0
- package/dist/src/indirectWebPwn-D7NA9Nsv.cjs +397 -0
- package/dist/src/indirectWebPwn-o_bEFMjP.js +259 -0
- package/dist/src/inputVariables-B0qUChbV.js +467 -0
- package/dist/src/inputVariables-DUGMb9Ka.js +464 -0
- package/dist/src/inputVariables-DXFdi7AI.js +468 -0
- package/dist/src/inputVariables-Dq9W-Z3a.cjs +475 -0
- package/dist/src/{interactiveCheck-CCICw2cy.js → interactiveCheck-C4QlIuoR.js} +1 -1
- package/dist/src/{invariant-kfQ8Bu82.cjs → invariant-QtnLD03y.cjs} +1 -1
- package/dist/src/iterative-B-l0syBV.js +501 -0
- package/dist/src/iterative-BACUeCCz.cjs +503 -0
- package/dist/src/iterative-CVwoExo8.js +502 -0
- package/dist/src/iterative-QDrGSyss.js +500 -0
- package/dist/src/iterativeImage-BQg2OwA6.js +413 -0
- package/dist/src/iterativeImage-Bwn0fM75.js +413 -0
- package/dist/src/iterativeImage-CcgVyASo.cjs +415 -0
- package/dist/src/iterativeImage-D_UbQXg4.js +414 -0
- package/dist/src/iterativeMeta-CIu-CHRS.js +405 -0
- package/dist/src/iterativeMeta-CN8CNjFA.js +406 -0
- package/dist/src/iterativeMeta-DN6BTjpq.js +404 -0
- package/dist/src/iterativeMeta-DlqY3BsS.cjs +405 -0
- package/dist/src/iterativeTree-CJ8a8G9T.js +820 -0
- package/dist/src/iterativeTree-DcuFXnjL.js +819 -0
- package/dist/src/iterativeTree-FrDDYAN0.js +818 -0
- package/dist/src/iterativeTree-LOgAi0nU.cjs +821 -0
- package/dist/src/{knowledgeBase-C8qOo26M.cjs → knowledgeBase-CdbcGBZF.cjs} +25 -11
- package/dist/src/{knowledgeBase-BBETc5-S.js → knowledgeBase-CjOXp6Lr.js} +23 -9
- package/dist/src/{knowledgeBase-Dr3Kib7F.js → knowledgeBase-DxAq4n4z.js} +24 -10
- package/dist/src/{knowledgeBase-CzAi2rUI.js → knowledgeBase-o_wTLzrt.js} +24 -10
- package/dist/src/{litellm-DRc4qWfc.js → litellm-B2gHwya_.js} +4 -4
- package/dist/src/{litellm-CaUmV7Mk.cjs → litellm-CPpdlO7n.cjs} +5 -5
- package/dist/src/{litellm-BLSiANhk.js → litellm-CYfgxLrM.js} +4 -4
- package/dist/src/{litellm-DQGo_juI.js → litellm-ojWBKU3C.js} +4 -4
- package/dist/src/{logger-COuQb2xB.cjs → logger-cfNpzI4o.cjs} +13 -55
- package/dist/src/{luma-ray-if-Ml4R9.cjs → luma-ray-BCCO9XXG.cjs} +9 -8
- package/dist/src/{luma-ray-B-tNZzqW.js → luma-ray-BPrdihAb.js} +5 -5
- package/dist/src/{luma-ray-CtS3OlGq.js → luma-ray-DP5N79lB.js} +5 -5
- package/dist/src/{luma-ray-PJJgUjOc.js → luma-ray-DTDyoAlM.js} +5 -5
- package/dist/src/main.js +727 -234
- package/dist/src/memoryPoisoning-B6N3us35.cjs +106 -0
- package/dist/src/memoryPoisoning-Bc_BK_k2.js +106 -0
- package/dist/src/memoryPoisoning-D375zwSX.js +107 -0
- package/dist/src/memoryPoisoning-DJA0YjJT.js +106 -0
- package/dist/src/{messages-CewuNcNS.js → messages-Bg29Nbit.js} +17 -9
- package/dist/src/{messages-BnsVHUnm.cjs → messages-BrZEnHsV.cjs} +24 -15
- package/dist/src/{messages-CI69Lasb.js → messages-CBulRaud.js} +18 -10
- package/dist/src/{messages-B9dSjrNf.js → messages-K9A8RxBM.js} +18 -10
- package/dist/src/{meteor-CeGo0Lu2.js → meteor--TZYICTI.js} +1 -1
- package/dist/src/{meteor-BBGcGeCa.cjs → meteor-CR226f7Z.cjs} +2 -2
- package/dist/src/{meteor-Wc_aUVvu.js → meteor-Cl_yd7rJ.js} +1 -1
- package/dist/src/{meteor-BKTM-7KS.js → meteor-Dce-_zGQ.js} +1 -1
- package/dist/src/mischievousUser-BDLwSGN0.js +46 -0
- package/dist/src/mischievousUser-Blx-OtT3.js +47 -0
- package/dist/src/mischievousUser-CHuTTvBg.js +46 -0
- package/dist/src/mischievousUser-CSUrH3fq.cjs +46 -0
- package/dist/src/{modelslab-zpz9JcK0.js → modelslab-BjEk7yCP.js} +6 -6
- package/dist/src/{modelslab-BCLOtfek.js → modelslab-CBCrdIBc.js} +6 -6
- package/dist/src/{modelslab-D73OnKSx.js → modelslab-CrGpXuhv.js} +6 -6
- package/dist/src/{modelslab-BkapYJhh.cjs → modelslab-Cvh0klQx.cjs} +7 -7
- package/dist/src/{nova-reel-B8F_TK5w.js → nova-reel-CUDDZcSA.js} +5 -5
- package/dist/src/{nova-reel-Bx0NFV2f.js → nova-reel-CyDESu5J.js} +5 -5
- package/dist/src/{nova-reel-DkT7tnoB.cjs → nova-reel-DH_Ksu6X.cjs} +9 -8
- package/dist/src/{nova-reel-CNGJTLtG.js → nova-reel-YQAqUYJY.js} +5 -5
- package/dist/src/{nova-sonic-BeTRaFOh.js → nova-sonic-BVFFB7JZ.js} +2 -2
- package/dist/src/{nova-sonic-YT426juD.cjs → nova-sonic-Bg3cxMMu.cjs} +5 -4
- package/dist/src/{nova-sonic-CL7Zqv0G.js → nova-sonic-BhmnRGyh.js} +3 -3
- package/dist/src/{nova-sonic-BaXRN1cr.js → nova-sonic-DxmK95c1.js} +3 -3
- package/dist/src/{openai-Cy1XLs0c.cjs → openai-C3uXv8wS.cjs} +2 -2
- package/dist/src/{openai-BT-JvDse.js → openai-CJrsh9n4.js} +1 -1
- package/dist/src/{openai-D4fxGvRx.js → openai-zgwBb4Ff.js} +1 -1
- package/dist/src/{openclaw-DUBZP3GL.cjs → openclaw-CHQaZi_-.cjs} +17 -15
- package/dist/src/{openclaw-DA8U4DsD.js → openclaw-CWOm2eOr.js} +9 -8
- package/dist/src/{openclaw-DObVgpjC.js → openclaw-Cdk9JKfY.js} +9 -8
- package/dist/src/{openclaw-Bq7RVR3k.js → openclaw-DhF8rUpI.js} +9 -8
- package/dist/src/{opencode-sdk-BB40Wir1.js → opencode-sdk-BRjiPV-g.js} +38 -3
- package/dist/src/{opencode-sdk-CeqiOcOU.cjs → opencode-sdk-CPFMw0ed.cjs} +45 -9
- package/dist/src/{opencode-sdk-BM1UAIv1.js → opencode-sdk-CaSOCsBA.js} +39 -4
- package/dist/src/{opencode-sdk-ChdK7F7z.js → opencode-sdk-CqkyG8De.js} +39 -4
- package/dist/src/{otlpReceiver-UYMQx3sy.js → otlpReceiver--gTpSagc.js} +119 -3
- package/dist/src/{otlpReceiver-C6thJRXi.js → otlpReceiver-B2eaKC8C.js} +118 -2
- package/dist/src/{otlpReceiver-CcdIikOu.js → otlpReceiver-BXjcRqAM.js} +119 -3
- package/dist/src/{otlpReceiver-DNSQj6bf.cjs → otlpReceiver-CvJdBGSc.cjs} +125 -7
- package/dist/src/packageParser--MWTSrPW.js +36 -0
- package/dist/src/packageParser-CgE-ziRo.js +35 -0
- package/dist/src/packageParser-QoCS1FMl.cjs +54 -0
- package/dist/src/packageParser-hwwSGnAZ.js +35 -0
- package/dist/src/processShim-BBxt7LKO.js +95 -0
- package/dist/src/processShim-BcGzU8fY.js +94 -0
- package/dist/src/processShim-C_z3aRvF.js +94 -0
- package/dist/src/processShim-DSY9BV2T.cjs +98 -0
- package/dist/src/promptLength-0qIHyhA5.js +71 -0
- package/dist/src/promptLength-4X-Wd8PG.js +72 -0
- package/dist/src/promptLength-B9nZEfO6.js +71 -0
- package/dist/src/promptLength-BbBbDHNj.cjs +94 -0
- package/dist/src/promptfoo-BU4_0J85.js +238 -0
- package/dist/src/promptfoo-CReYAtfb.js +237 -0
- package/dist/src/promptfoo-ClChwT74.cjs +292 -0
- package/dist/src/promptfoo-CqEpj6Sr.js +237 -0
- package/dist/src/prompts-BYMtqPCw.js +259 -0
- package/dist/src/prompts-C-bqE1Yp.js +260 -0
- package/dist/src/prompts-Cp_Qx5Ml.js +270 -0
- package/dist/src/prompts-DHhQsANy.js +259 -0
- package/dist/src/prompts-D_QpZ2Dm.js +271 -0
- package/dist/src/prompts-hNvWBD3z.cjs +284 -0
- package/dist/src/prompts-huDVH2CI.js +270 -0
- package/dist/src/prompts-p78Hul5i.cjs +289 -0
- package/dist/src/{providerRegistry-BESeALrr.cjs → providerRegistry-CZO_w7ue.cjs} +2 -2
- package/dist/src/{providerRegistry-DoACwqhD.js → providerRegistry-DHcFiVWX.js} +1 -1
- package/dist/src/{providerRegistry-PMsleEzs.js → providerRegistry-ReCd0sFa.js} +1 -1
- package/dist/src/{providers-DT-GtF2t.js → providers-B7TyByfj.js} +789 -11925
- package/dist/src/{providers-CJh7iriU.js → providers-BGc7tDtQ.js} +796 -11872
- package/dist/src/{providers-Ctcc592x.js → providers-CSOp-bCm.js} +1 -1
- package/dist/src/{providers-eDShy16E.cjs → providers-V6RBuieY.cjs} +837 -12138
- package/dist/src/{providers-DRrerKra.js → providers-iH3Sw1yo.js} +851 -11938
- package/dist/src/{pythonUtils-C4tltmIn.js → pythonUtils-CLCgQ9tt.js} +1 -1
- package/dist/src/{pythonUtils-DNqbnRdx.js → pythonUtils-CgYxeSmO.js} +2 -2
- package/dist/src/{pythonUtils-CoLaCwNY.cjs → pythonUtils-Cokhluq3.cjs} +7 -6
- package/dist/src/{pythonUtils-DMO68Jg7.js → pythonUtils-D0BYebvX.js} +2 -2
- package/dist/src/{quiverai-CPKhWgaT.js → quiverai-58BtRRet.js} +3 -3
- package/dist/src/{quiverai-Bk1KrvL6.js → quiverai-C1dYu5MW.js} +3 -3
- package/dist/src/{quiverai-BSS9a7wV.js → quiverai-CNMIpZQg.js} +3 -3
- package/dist/src/{quiverai-Bpx6MZ7T.cjs → quiverai-fmSfU43k.cjs} +4 -4
- package/dist/src/registry-6Jw6ebor.cjs +124 -0
- package/dist/src/registry-BTGk2ZkB.js +124 -0
- package/dist/src/registry-BTNqmP5o.js +125 -0
- package/dist/src/registry-NGnOG2xa.js +124 -0
- package/dist/src/{server-gyd6d4Hc.js → remoteGeneration--D6WjzUm.js} +15 -108
- package/dist/src/{server-BEECpeGG.cjs → remoteGeneration-BpIYlb_O.cjs} +30 -119
- package/dist/src/{server-ByxbqAcQ.js → remoteGeneration-CJC3E0aW.js} +15 -147
- package/dist/src/remoteGeneration-D6UjE2JT.js +218 -0
- package/dist/src/render-BNTrbmBw.cjs +384 -0
- package/dist/src/render-CSP99NLm.js +348 -0
- package/dist/src/render-DFfDeYUK.js +347 -0
- package/dist/src/{render-nj-UaPdn.js → render-DznWrxGO.js} +2 -2
- package/dist/src/render-_6ur1fhE.js +347 -0
- package/dist/src/resourceAttributes-D1jP3kL5.js +17 -0
- package/dist/src/resourceAttributes-DQbBB--2.js +16 -0
- package/dist/src/resourceAttributes-ephgOvdR.cjs +27 -0
- package/dist/src/resourceAttributes-v6-I67fn.js +16 -0
- package/dist/src/{responses-1ztiVYsx.js → responses-5Gf5HNOi.js} +11 -7
- package/dist/src/{responses-BiaBguAu.js → responses-BVi7xIdv.js} +13 -9
- package/dist/src/{responses-CF-ayauu.cjs → responses-CUARGrhY.cjs} +16 -11
- package/dist/src/{responses-B8haB-mD.js → responses-CrmWv6iz.js} +13 -9
- package/dist/src/rolldown-runtime-D_mwlA32.cjs +43 -0
- package/dist/src/rubyUtils-BYVlQ94c.js +3 -0
- package/dist/src/{rubyUtils-CIQFnVz4.js → rubyUtils-CXlFM2rR.js} +2 -2
- package/dist/src/{rubyUtils-BI0p46eZ.js → rubyUtils-CnlW8AYb.js} +2 -2
- package/dist/src/{rubyUtils-DoifqkiA.cjs → rubyUtils-CqUWBZAt.cjs} +16 -26
- package/dist/src/{rubyUtils-DGnoCYL2.js → rubyUtils-DdGojpfv.js} +1 -1
- package/dist/src/runtimeTransform-BJOpL9Yc.js +142 -0
- package/dist/src/runtimeTransform-Dgh_D7DU.js +143 -0
- package/dist/src/runtimeTransform-DigbjU1r.js +142 -0
- package/dist/src/runtimeTransform-ON3YYILw.cjs +147 -0
- package/dist/src/{sagemaker-ljtY12VM.cjs → sagemaker-BeVTKfrv.cjs} +65 -53
- package/dist/src/{sagemaker-BDLeW29y.js → sagemaker-BwbV5U7_.js} +61 -50
- package/dist/src/{sagemaker-C5T60MKf.js → sagemaker-ClAZ6Qwc.js} +61 -50
- package/dist/src/{sagemaker-ClS_NB07.js → sagemaker-DY2qrOpq.js} +61 -50
- package/dist/src/{scanner-nOCWNIXa.js → scanner-BS-iFIp3.js} +6 -6
- package/dist/src/server/index.js +4115 -420
- package/dist/src/server-BHOEL8p8.cjs +126 -0
- package/dist/src/server-CbiJppij.js +107 -0
- package/dist/src/server-D18AAlAc.js +3 -0
- package/dist/src/server-DLYjSFm2.js +182 -0
- package/dist/src/server-JQYD_Nws.js +146 -0
- package/dist/src/{fileExtensions-8CjoL7vB.js → shared-BoG7qLMv.js} +12 -2
- package/dist/src/shared-CRq0gGVf.js +1334 -0
- package/dist/src/shared-CSIGeGLl.js +1334 -0
- package/dist/src/shared-DNvim54U.js +1335 -0
- package/dist/src/shared-aHWko3P1.cjs +1436 -0
- package/dist/src/{signal-DTtUuU3l.js → signal-CSurUUyV.js} +2 -2
- package/dist/src/simulatedUser-C7sOFSF6.js +222 -0
- package/dist/src/simulatedUser-DH_7RzEQ.js +222 -0
- package/dist/src/simulatedUser-lgMMmniD.js +223 -0
- package/dist/src/simulatedUser-mnCUS9Bm.cjs +227 -0
- package/dist/src/{slack-Bamy_7te.js → slack-Bapo-7_8.js} +1 -1
- package/dist/src/{slack-BLlsDpfG.cjs → slack-DMC1QVEg.cjs} +3 -2
- package/dist/src/{slack-BPYLQLgb.js → slack-DTEFhrMn.js} +1 -1
- package/dist/src/{slack-4zZX1OKP.js → slack-k-_CP84Q.js} +1 -1
- package/dist/src/storage-95htjpLs.js +834 -0
- package/dist/src/storage-A4WnAeN3.cjs +911 -0
- package/dist/src/storage-B2Ql_oq4.js +822 -0
- package/dist/src/storage-EKVWZBNY.js +875 -0
- package/dist/src/{store-2K0kDi80.cjs → store-B2NDDooM.cjs} +60 -24
- package/dist/src/{store-CPh25336.js → store-DKd5592Q.js} +50 -19
- package/dist/src/{store-BPkzEyFM.js → store-HpopRVzl.js} +50 -19
- package/dist/src/store-IbiRIF3k.js +3 -0
- package/dist/src/strategies-CBI1brSy.js +2333 -0
- package/dist/src/strategies-CCcnEbFO.cjs +2360 -0
- package/dist/src/strategies-CD1gHeeQ.js +2331 -0
- package/dist/src/{tables-WgdUZ8Ck.js → tables-CRSXQ2Ke.js} +2 -2
- package/dist/src/{tables-BMSOS2Gg.js → tables-CxjU7bBd.js} +2 -2
- package/dist/src/{tables-CXbaZ9y1.cjs → tables-DBIJU0WE.cjs} +6 -5
- package/dist/src/{tables-NlvH23ky.js → tables-DafUHOeh.js} +2 -2
- package/dist/src/telemetry-BUm_krVX.js +3 -0
- package/dist/src/{telemetry--iqaGyaS.js → telemetry-BbpmrenM.js} +4 -4
- package/dist/src/{telemetry-CgdVGV8N.js → telemetry-C4bX-6Sr.js} +4 -4
- package/dist/src/{telemetry-CEQxGnMZ.cjs → telemetry-C_ImlCOk.cjs} +15 -9
- package/dist/src/{telemetry-DWdGHvEf.js → telemetry-DOE567Wj.js} +4 -4
- package/dist/src/{text-DDQP0tuQ.js → text-CZr46tp_.js} +1 -1
- package/dist/src/{text-D4lz-Jg_.js → text-Db-Wt2u2.js} +1 -1
- package/dist/src/{text-NWvfMfkF.js → text-DwYK5EBn.js} +1 -1
- package/dist/src/{text-BiNME7QG.cjs → text-nywWsRBM.cjs} +1 -1
- package/dist/src/{tokenUsageUtils-2wIvAhB3.js → tokenUsageUtils-CDet74yk.js} +1 -1
- package/dist/src/{tokenUsageUtils-4c780gFd.js → tokenUsageUtils-CmnQ0G2m.js} +1 -1
- package/dist/src/{tokenUsageUtils-C9odhsbW.cjs → tokenUsageUtils-_B-P8IAi.cjs} +1 -1
- package/dist/src/toolAttributes-BAjwcBf0.cjs +103 -0
- package/dist/src/toolAttributes-COVgDrBG.js +87 -0
- package/dist/src/toolAttributes-DJ9ZEKXD.js +86 -0
- package/dist/src/tracingOptions-BOP1FsRt.js +220 -0
- package/dist/src/tracingOptions-BvmDa_jH.js +219 -0
- package/dist/src/tracingOptions-DFBoE8O0.cjs +249 -0
- package/dist/src/tracingOptions-xhjOg2b1.js +221 -0
- package/dist/src/{transcription-D7Q0vJsh.js → transcription-BOXDoehT.js} +4 -4
- package/dist/src/{transcription-Bm2emLmJ.js → transcription-CpVdKc4P.js} +5 -5
- package/dist/src/{transcription-CZ4LG5hQ.cjs → transcription-D8kkPXg_.cjs} +9 -8
- package/dist/src/{transcription-84t4ALo2.js → transcription-Z94eV9LR.js} +5 -5
- package/dist/src/transform-BnSTnFlp.js +187 -0
- package/dist/src/transform-BnSXWmU_2.cjs +221 -0
- package/dist/src/{transform-DtooZqYY.js → transform-BufxPIQL.js} +8 -8
- package/dist/src/transform-CGt7Kt3y2.js +186 -0
- package/dist/src/transform-CrPGTsij.js +186 -0
- package/dist/src/{transform-Dg4LcO1Y.cjs → transform-DJkt81VY.cjs} +12 -11
- package/dist/src/{transform-B-b6Cq-q.js → transform-DtTfiGoh.js} +8 -8
- package/dist/src/{transform-_DpNB4qp.js → transform-Wp6s_5QE.js} +8 -8
- package/dist/src/{transformersAvailability-lvCCvuPT.js → transformersAvailability-0ThtPved.js} +1 -1
- package/dist/src/transformersAvailability-BYydDE5U.js +35 -0
- package/dist/src/{transformersAvailability-rJGPccjr.js → transformersAvailability-BvyU9vDD.js} +1 -1
- package/dist/src/{transformersAvailability-B22swDxr.cjs → transformersAvailability-BytPvKUW.cjs} +1 -1
- package/dist/src/{types-BVH9hjgW.js → types-BFevViUY.js} +113 -19
- package/dist/src/{types-BDjGOq4E.js → types-BJQBBPTP.js} +113 -19
- package/dist/src/{types-CgG2rKiW.cjs → types-CxJvaY2S.cjs} +211 -28
- package/dist/src/{types-DNRZVOue.js → types-D6glLbdF.js} +125 -26
- package/dist/src/{util-Dpmm_dAI.cjs → util-BHCAeuXx.cjs} +33 -7
- package/dist/src/{util-DFPeFkiV.js → util-CMrHV35u.js} +28 -8
- package/dist/src/{util-DvpHnLt0.cjs → util-COnzevXE.cjs} +29 -21
- package/dist/src/{util-BlFVL0UF.js → util-CYev3d-r.js} +22 -7
- package/dist/src/util-DGqkTb2-.js +327 -0
- package/dist/src/util-DNtUsus_.cjs +386 -0
- package/dist/src/{util-Dub0f_ej.js → util-DRfqa4xz.js} +17 -10
- package/dist/src/{util-BVXcTwXu.js → util-DTq3jq2z.js} +28 -8
- package/dist/src/{util-C-kmRosx.js → util-DeY58psG.js} +22 -7
- package/dist/src/util-DpV6KT5i.js +327 -0
- package/dist/src/{util-3pBZZb_H.js → util-DwNJzqOV.js} +45 -10
- package/dist/src/util-ETfU_sS9.js +328 -0
- package/dist/src/{util-A5_ZsQUn.cjs → util-NYQvo1C7.cjs} +25 -9
- package/dist/src/{util-DN0-b81k.js → util-X4KQgyVD.js} +28 -8
- package/dist/src/{util-BQOCAHQC.js → util-jZRrXe1P.js} +46 -11
- package/dist/src/{util-B9CNhyac.js → util-o2Qg5rZv.js} +22 -7
- package/dist/src/{utils-BUMN8orw.js → utils-B0lzitHZ.js} +2 -2
- package/dist/src/{utils-kt7lv30R.js → utils-BFOh20Gb.js} +2 -2
- package/dist/src/{utils-o8S5huU2.js → utils-BGY69tk_.js} +2 -2
- package/dist/src/{utils-DkVeShIB.cjs → utils-Ve6kuJsa.cjs} +3 -3
- package/dist/src/{version-CbuBKu2U.js → version-CHR-EFec.js} +2 -2
- package/dist/src/{version-CbpiUINz.js → version-F0YDgb7J.js} +2 -2
- package/dist/src/{version-D9zu9FWB.cjs → version-VzUqOBZk.cjs} +2 -2
- package/dist/src/{version-0frU0UTr.js → version-qVEN5qCm.js} +2 -2
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +49 -23
- package/dist/src/app/assets/Report-vjzrbgce.js +0 -1
- package/dist/src/app/assets/index-B3NQ8HTd.js +0 -385
- package/dist/src/app/assets/index-Cli2yAXv.css +0 -1
- package/dist/src/app/assets/sync-IjzpWrOE.js +0 -4
- package/dist/src/app/assets/vendor-charts-BNdH8TCw.js +0 -36
- package/dist/src/cache-BRkhlH3k.cjs +0 -3
- package/dist/src/cache-BlC6aeJ0.js +0 -3
- package/dist/src/cloud-CoD5OacT.js +0 -3
- package/dist/src/codex-sdk-1jm_qPHf.js +0 -3
- package/dist/src/codex-sdk-Danroptg.cjs +0 -2
- package/dist/src/evalResult-BBJAHAtw.cjs +0 -2
- package/dist/src/evalResult-BBK58h2B.js +0 -3
- package/dist/src/evalResult-spPqh1G_.js +0 -2
- package/dist/src/evaluator-DgLKaZk8.js +0 -3
- package/dist/src/fetch-8viavNv8.js +0 -3
- package/dist/src/graders-C84JI-m5.js +0 -2
- package/dist/src/graders-CBbd0K0Q.cjs +0 -2
- package/dist/src/graders-CbQqpHSN.js +0 -3
- package/dist/src/graders-DS42d3ZG.js +0 -2
- package/dist/src/image-BmilRNqO.js +0 -258
- package/dist/src/image-CxJoa3aW.cjs +0 -280
- package/dist/src/image-DsGRlkh7.js +0 -257
- package/dist/src/image-a_SGUobh.js +0 -257
- package/dist/src/providers-BuyzKt7C.js +0 -2
- package/dist/src/providers-C7lNVBjX.cjs +0 -3
- package/dist/src/providers-CCE2COJi2.js +0 -2
- package/dist/src/render-7uNJ2V14.js +0 -135
- package/dist/src/render-DlscvAUJ.js +0 -135
- package/dist/src/render-eui5p5mL.js +0 -136
- package/dist/src/render-tG6ir9_g.cjs +0 -165
- package/dist/src/rubyUtils-4hjGxvju.js +0 -3
- package/dist/src/rubyUtils-CO-tuszQ.cjs +0 -2
- package/dist/src/server-ByiF3qlg.js +0 -386
- package/dist/src/server-C0XKRNB_.cjs +0 -2
- package/dist/src/server-C_15p79-.js +0 -3
- package/dist/src/store-2OXm_eBY.js +0 -240
- package/dist/src/store-BELqNwvz.js +0 -3
- package/dist/src/store-uQZ4AjPe.cjs +0 -2
- package/dist/src/telemetry-DjNoC_n3.cjs +0 -2
- package/dist/src/telemetry-ZdPZc0fm.js +0 -3
- package/dist/src/transform-BQt0BeAW.js +0 -3
- package/dist/src/transform-Bq5oqC0s.cjs +0 -2
- package/dist/src/transform-C9izGX54.cjs +0 -228
- package/dist/src/transform-CwbAZ84V.js +0 -216
- package/dist/src/transform-DzCF-wqV.js +0 -213
- package/dist/src/transform-eGiUAv86.js +0 -216
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { t as __exportAll } from "./chunk-DRamLcfz.js";
|
|
3
3
|
import { C as getConfigDirectoryPath, D as getEnvInt, O as getEnvString, T as getEnvBool, s as logger } from "./logger-BbY6ypFL.js";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
4
|
+
import { _ as REQUEST_TIMEOUT_MS, a as getFetchWithProxyHeaders, f as sleep, r as fetchWithRetries, u as isPromptfooCloudApiHost } from "./fetch-Cpf1U1nO.js";
|
|
5
|
+
import { a as cloudConfig } from "./cloud-DqF5N1aJ.js";
|
|
6
|
+
import { n as sha256 } from "./createHash-CgRvs4Fn.js";
|
|
7
|
+
import { r as isTransientConnectionError } from "./errors-9PcUL8BC.js";
|
|
6
8
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
7
9
|
import fs from "fs";
|
|
8
10
|
import path from "path";
|
|
@@ -16,6 +18,7 @@ var cache_exports = /* @__PURE__ */ __exportAll({
|
|
|
16
18
|
enableCache: () => enableCache,
|
|
17
19
|
fetchWithCache: () => fetchWithCache,
|
|
18
20
|
getCache: () => getCache,
|
|
21
|
+
getScopedCacheKey: () => getScopedCacheKey,
|
|
19
22
|
isCacheEnabled: () => isCacheEnabled,
|
|
20
23
|
withCacheNamespace: () => withCacheNamespace
|
|
21
24
|
});
|
|
@@ -131,6 +134,120 @@ function withCacheNamespace(namespace, fn) {
|
|
|
131
134
|
return cacheNamespaceStorage.run({ namespace: scopedNamespace }, fn);
|
|
132
135
|
}
|
|
133
136
|
const inflightFetchResponses = /* @__PURE__ */ new Map();
|
|
137
|
+
const IGNORED_FETCH_CACHE_OPTION_KEYS = new Set(["method", "signal"]);
|
|
138
|
+
const abortSignalIds = /* @__PURE__ */ new WeakMap();
|
|
139
|
+
let nextAbortSignalId = 0;
|
|
140
|
+
function getHeadersForCacheKey(url, options) {
|
|
141
|
+
const headers = new Headers(getFetchWithProxyHeaders(url, options));
|
|
142
|
+
if (isPromptfooCloudApiHost(url)) {
|
|
143
|
+
const token = cloudConfig.getApiKey();
|
|
144
|
+
if (token) headers.set("Authorization", `Bearer ${token}`);
|
|
145
|
+
}
|
|
146
|
+
return Array.from(headers.entries()).sort(([nameA, valueA], [nameB, valueB]) => {
|
|
147
|
+
const nameComparison = nameA.localeCompare(nameB);
|
|
148
|
+
return nameComparison === 0 ? valueA.localeCompare(valueB) : nameComparison;
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
function hashFetchCacheKey(identity) {
|
|
152
|
+
return sha256(JSON.stringify(identity));
|
|
153
|
+
}
|
|
154
|
+
function hashBytesForCacheKey(bytes) {
|
|
155
|
+
const buffer = ArrayBuffer.isView(bytes) ? Buffer.from(bytes.buffer, bytes.byteOffset, bytes.byteLength) : Buffer.from(bytes);
|
|
156
|
+
return {
|
|
157
|
+
byteLength: buffer.byteLength,
|
|
158
|
+
sha256: sha256(buffer)
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
function getBodyForFetchCacheKey(body) {
|
|
162
|
+
if (body == null) return {
|
|
163
|
+
cacheable: true,
|
|
164
|
+
identity: void 0
|
|
165
|
+
};
|
|
166
|
+
if (typeof body === "string") return {
|
|
167
|
+
cacheable: true,
|
|
168
|
+
identity: {
|
|
169
|
+
type: "string",
|
|
170
|
+
value: body
|
|
171
|
+
}
|
|
172
|
+
};
|
|
173
|
+
if (typeof URLSearchParams !== "undefined" && body instanceof URLSearchParams) return {
|
|
174
|
+
cacheable: true,
|
|
175
|
+
identity: {
|
|
176
|
+
type: "url-search-params",
|
|
177
|
+
value: body.toString()
|
|
178
|
+
}
|
|
179
|
+
};
|
|
180
|
+
if (body instanceof ArrayBuffer) return {
|
|
181
|
+
cacheable: true,
|
|
182
|
+
identity: {
|
|
183
|
+
type: "array-buffer",
|
|
184
|
+
...hashBytesForCacheKey(body)
|
|
185
|
+
}
|
|
186
|
+
};
|
|
187
|
+
if (ArrayBuffer.isView(body)) return {
|
|
188
|
+
cacheable: true,
|
|
189
|
+
identity: {
|
|
190
|
+
type: body.constructor.name,
|
|
191
|
+
...hashBytesForCacheKey(body)
|
|
192
|
+
}
|
|
193
|
+
};
|
|
194
|
+
return {
|
|
195
|
+
cacheable: false,
|
|
196
|
+
identity: void 0
|
|
197
|
+
};
|
|
198
|
+
}
|
|
199
|
+
function getOptionsForFetchCacheKey(options, bodyIdentity) {
|
|
200
|
+
const identity = {};
|
|
201
|
+
for (const [key, value] of Object.entries(options).sort(([keyA], [keyB]) => keyA.localeCompare(keyB))) {
|
|
202
|
+
if (key === "headers" || IGNORED_FETCH_CACHE_OPTION_KEYS.has(key)) continue;
|
|
203
|
+
if (key === "body") {
|
|
204
|
+
identity.body = bodyIdentity;
|
|
205
|
+
continue;
|
|
206
|
+
}
|
|
207
|
+
if (value == null || [
|
|
208
|
+
"boolean",
|
|
209
|
+
"number",
|
|
210
|
+
"string"
|
|
211
|
+
].includes(typeof value)) {
|
|
212
|
+
identity[key] = value;
|
|
213
|
+
continue;
|
|
214
|
+
}
|
|
215
|
+
return {
|
|
216
|
+
cacheable: false,
|
|
217
|
+
identity: void 0
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
if (!Object.prototype.hasOwnProperty.call(options, "body") && bodyIdentity !== void 0) identity.body = bodyIdentity;
|
|
221
|
+
return {
|
|
222
|
+
cacheable: true,
|
|
223
|
+
identity
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
function getFetchCacheKey(url, options, method, format) {
|
|
227
|
+
const bodyForCacheKey = getBodyForFetchCacheKey(options.body ?? (url instanceof Request ? url.body : void 0));
|
|
228
|
+
if (!bodyForCacheKey.cacheable) return null;
|
|
229
|
+
const optionsForCacheKey = getOptionsForFetchCacheKey(options, bodyForCacheKey.identity);
|
|
230
|
+
if (!optionsForCacheKey.cacheable) return null;
|
|
231
|
+
return getScopedCacheKey(`fetch:v3:${hashFetchCacheKey({
|
|
232
|
+
format,
|
|
233
|
+
headers: getHeadersForCacheKey(url, options),
|
|
234
|
+
method,
|
|
235
|
+
options: optionsForCacheKey.identity,
|
|
236
|
+
url: url instanceof Request ? url.url : String(url)
|
|
237
|
+
})}`);
|
|
238
|
+
}
|
|
239
|
+
function getAbortSignalId(signal) {
|
|
240
|
+
let signalId = abortSignalIds.get(signal);
|
|
241
|
+
if (signalId === void 0) {
|
|
242
|
+
signalId = ++nextAbortSignalId;
|
|
243
|
+
abortSignalIds.set(signal, signalId);
|
|
244
|
+
}
|
|
245
|
+
return signalId;
|
|
246
|
+
}
|
|
247
|
+
function getInflightFetchCacheKey(cacheKey, url, options) {
|
|
248
|
+
const signal = options.signal ?? (url instanceof Request ? url.signal : void 0);
|
|
249
|
+
return signal ? `${cacheKey}:signal:${getAbortSignalId(signal)}` : cacheKey;
|
|
250
|
+
}
|
|
134
251
|
function serializeFetchResponse(data, status, statusText, headers, latencyMs) {
|
|
135
252
|
return JSON.stringify({
|
|
136
253
|
data,
|
|
@@ -222,7 +339,8 @@ async function fetchWithCache(url, options = {}, timeout = REQUEST_TIMEOUT_MS, f
|
|
|
222
339
|
"PUT",
|
|
223
340
|
"DELETE"
|
|
224
341
|
].includes(method);
|
|
225
|
-
|
|
342
|
+
const cacheKey = enabled && !bust ? getFetchCacheKey(url, options, method, format) : null;
|
|
343
|
+
if (!enabled || bust || cacheKey == null) {
|
|
226
344
|
const { respText, resp, fetchLatencyMs } = await fetchAndReadBody(url, options, timeout, maxRetries, isIdempotent);
|
|
227
345
|
try {
|
|
228
346
|
return {
|
|
@@ -238,25 +356,23 @@ async function fetchWithCache(url, options = {}, timeout = REQUEST_TIMEOUT_MS, f
|
|
|
238
356
|
throw new Error(`Error parsing response as JSON: ${respText}`);
|
|
239
357
|
}
|
|
240
358
|
}
|
|
241
|
-
const copy = Object.assign({}, options);
|
|
242
|
-
delete copy.headers;
|
|
243
|
-
const cacheKey = getScopedCacheKey(`fetch:v2:${url}:${JSON.stringify(copy)}`);
|
|
244
359
|
const cache = getCacheInstance();
|
|
245
360
|
const cachedResponse = await cache.get(cacheKey);
|
|
246
361
|
if (cachedResponse != null) {
|
|
247
362
|
logger.debug(`Returning cached response for ${url}: ${cachedResponse}`);
|
|
248
363
|
return deserializeFetchResponse(cachedResponse, true, cache, cacheKey);
|
|
249
364
|
}
|
|
250
|
-
|
|
365
|
+
const inflightCacheKey = getInflightFetchCacheKey(cacheKey, url, options);
|
|
366
|
+
let inflightResponse = inflightFetchResponses.get(inflightCacheKey);
|
|
251
367
|
if (!inflightResponse) {
|
|
252
368
|
inflightResponse = (async () => {
|
|
253
369
|
const preparedResponse = await prepareFetchResponse(url, options, timeout, maxRetries, isIdempotent, format);
|
|
254
370
|
if (preparedResponse.cacheable) await cache.set(cacheKey, preparedResponse.response);
|
|
255
371
|
return preparedResponse.response;
|
|
256
372
|
})().finally(() => {
|
|
257
|
-
inflightFetchResponses.delete(
|
|
373
|
+
inflightFetchResponses.delete(inflightCacheKey);
|
|
258
374
|
});
|
|
259
|
-
inflightFetchResponses.set(
|
|
375
|
+
inflightFetchResponses.set(inflightCacheKey, inflightResponse);
|
|
260
376
|
}
|
|
261
377
|
return deserializeFetchResponse(await inflightResponse, false, cache, cacheKey);
|
|
262
378
|
}
|
|
@@ -275,6 +391,6 @@ function isCacheEnabled() {
|
|
|
275
391
|
return enabled;
|
|
276
392
|
}
|
|
277
393
|
//#endregion
|
|
278
|
-
export { fetchWithCache as a,
|
|
394
|
+
export { fetchWithCache as a, isCacheEnabled as c, enableCache as i, withCacheNamespace as l, clearCache as n, getCache as o, disableCache as r, getScopedCacheKey as s, cache_exports as t };
|
|
279
395
|
|
|
280
|
-
//# sourceMappingURL=cache-
|
|
396
|
+
//# sourceMappingURL=cache-BR77mdIR.js.map
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { t as __exportAll } from "./chunk-DEq-mXcV.js";
|
|
2
2
|
import { S as getEnvBool, T as getEnvString, a as logger, w as getEnvInt, x as getConfigDirectoryPath } from "./logger-KD8JjCRJ.js";
|
|
3
|
-
import {
|
|
3
|
+
import { a as getFetchWithProxyHeaders, l as cloudConfig, m as sleep, n as fetchWithRetries, s as isPromptfooCloudApiHost, v as REQUEST_TIMEOUT_MS } from "./fetch-BSSAcMxf.js";
|
|
4
|
+
import { n as sha256 } from "./createHash-CGVzWdjj.js";
|
|
4
5
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
5
6
|
import fs from "fs";
|
|
6
7
|
import path from "path";
|
|
@@ -46,6 +47,7 @@ var cache_exports = /* @__PURE__ */ __exportAll({
|
|
|
46
47
|
enableCache: () => enableCache,
|
|
47
48
|
fetchWithCache: () => fetchWithCache,
|
|
48
49
|
getCache: () => getCache,
|
|
50
|
+
getScopedCacheKey: () => getScopedCacheKey,
|
|
49
51
|
isCacheEnabled: () => isCacheEnabled,
|
|
50
52
|
withCacheNamespace: () => withCacheNamespace
|
|
51
53
|
});
|
|
@@ -161,6 +163,120 @@ function withCacheNamespace(namespace, fn) {
|
|
|
161
163
|
return cacheNamespaceStorage.run({ namespace: scopedNamespace }, fn);
|
|
162
164
|
}
|
|
163
165
|
const inflightFetchResponses = /* @__PURE__ */ new Map();
|
|
166
|
+
const IGNORED_FETCH_CACHE_OPTION_KEYS = new Set(["method", "signal"]);
|
|
167
|
+
const abortSignalIds = /* @__PURE__ */ new WeakMap();
|
|
168
|
+
let nextAbortSignalId = 0;
|
|
169
|
+
function getHeadersForCacheKey(url, options) {
|
|
170
|
+
const headers = new Headers(getFetchWithProxyHeaders(url, options));
|
|
171
|
+
if (isPromptfooCloudApiHost(url)) {
|
|
172
|
+
const token = cloudConfig.getApiKey();
|
|
173
|
+
if (token) headers.set("Authorization", `Bearer ${token}`);
|
|
174
|
+
}
|
|
175
|
+
return Array.from(headers.entries()).sort(([nameA, valueA], [nameB, valueB]) => {
|
|
176
|
+
const nameComparison = nameA.localeCompare(nameB);
|
|
177
|
+
return nameComparison === 0 ? valueA.localeCompare(valueB) : nameComparison;
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
function hashFetchCacheKey(identity) {
|
|
181
|
+
return sha256(JSON.stringify(identity));
|
|
182
|
+
}
|
|
183
|
+
function hashBytesForCacheKey(bytes) {
|
|
184
|
+
const buffer = ArrayBuffer.isView(bytes) ? Buffer.from(bytes.buffer, bytes.byteOffset, bytes.byteLength) : Buffer.from(bytes);
|
|
185
|
+
return {
|
|
186
|
+
byteLength: buffer.byteLength,
|
|
187
|
+
sha256: sha256(buffer)
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
function getBodyForFetchCacheKey(body) {
|
|
191
|
+
if (body == null) return {
|
|
192
|
+
cacheable: true,
|
|
193
|
+
identity: void 0
|
|
194
|
+
};
|
|
195
|
+
if (typeof body === "string") return {
|
|
196
|
+
cacheable: true,
|
|
197
|
+
identity: {
|
|
198
|
+
type: "string",
|
|
199
|
+
value: body
|
|
200
|
+
}
|
|
201
|
+
};
|
|
202
|
+
if (typeof URLSearchParams !== "undefined" && body instanceof URLSearchParams) return {
|
|
203
|
+
cacheable: true,
|
|
204
|
+
identity: {
|
|
205
|
+
type: "url-search-params",
|
|
206
|
+
value: body.toString()
|
|
207
|
+
}
|
|
208
|
+
};
|
|
209
|
+
if (body instanceof ArrayBuffer) return {
|
|
210
|
+
cacheable: true,
|
|
211
|
+
identity: {
|
|
212
|
+
type: "array-buffer",
|
|
213
|
+
...hashBytesForCacheKey(body)
|
|
214
|
+
}
|
|
215
|
+
};
|
|
216
|
+
if (ArrayBuffer.isView(body)) return {
|
|
217
|
+
cacheable: true,
|
|
218
|
+
identity: {
|
|
219
|
+
type: body.constructor.name,
|
|
220
|
+
...hashBytesForCacheKey(body)
|
|
221
|
+
}
|
|
222
|
+
};
|
|
223
|
+
return {
|
|
224
|
+
cacheable: false,
|
|
225
|
+
identity: void 0
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
function getOptionsForFetchCacheKey(options, bodyIdentity) {
|
|
229
|
+
const identity = {};
|
|
230
|
+
for (const [key, value] of Object.entries(options).sort(([keyA], [keyB]) => keyA.localeCompare(keyB))) {
|
|
231
|
+
if (key === "headers" || IGNORED_FETCH_CACHE_OPTION_KEYS.has(key)) continue;
|
|
232
|
+
if (key === "body") {
|
|
233
|
+
identity.body = bodyIdentity;
|
|
234
|
+
continue;
|
|
235
|
+
}
|
|
236
|
+
if (value == null || [
|
|
237
|
+
"boolean",
|
|
238
|
+
"number",
|
|
239
|
+
"string"
|
|
240
|
+
].includes(typeof value)) {
|
|
241
|
+
identity[key] = value;
|
|
242
|
+
continue;
|
|
243
|
+
}
|
|
244
|
+
return {
|
|
245
|
+
cacheable: false,
|
|
246
|
+
identity: void 0
|
|
247
|
+
};
|
|
248
|
+
}
|
|
249
|
+
if (!Object.prototype.hasOwnProperty.call(options, "body") && bodyIdentity !== void 0) identity.body = bodyIdentity;
|
|
250
|
+
return {
|
|
251
|
+
cacheable: true,
|
|
252
|
+
identity
|
|
253
|
+
};
|
|
254
|
+
}
|
|
255
|
+
function getFetchCacheKey(url, options, method, format) {
|
|
256
|
+
const bodyForCacheKey = getBodyForFetchCacheKey(options.body ?? (url instanceof Request ? url.body : void 0));
|
|
257
|
+
if (!bodyForCacheKey.cacheable) return null;
|
|
258
|
+
const optionsForCacheKey = getOptionsForFetchCacheKey(options, bodyForCacheKey.identity);
|
|
259
|
+
if (!optionsForCacheKey.cacheable) return null;
|
|
260
|
+
return getScopedCacheKey(`fetch:v3:${hashFetchCacheKey({
|
|
261
|
+
format,
|
|
262
|
+
headers: getHeadersForCacheKey(url, options),
|
|
263
|
+
method,
|
|
264
|
+
options: optionsForCacheKey.identity,
|
|
265
|
+
url: url instanceof Request ? url.url : String(url)
|
|
266
|
+
})}`);
|
|
267
|
+
}
|
|
268
|
+
function getAbortSignalId(signal) {
|
|
269
|
+
let signalId = abortSignalIds.get(signal);
|
|
270
|
+
if (signalId === void 0) {
|
|
271
|
+
signalId = ++nextAbortSignalId;
|
|
272
|
+
abortSignalIds.set(signal, signalId);
|
|
273
|
+
}
|
|
274
|
+
return signalId;
|
|
275
|
+
}
|
|
276
|
+
function getInflightFetchCacheKey(cacheKey, url, options) {
|
|
277
|
+
const signal = options.signal ?? (url instanceof Request ? url.signal : void 0);
|
|
278
|
+
return signal ? `${cacheKey}:signal:${getAbortSignalId(signal)}` : cacheKey;
|
|
279
|
+
}
|
|
164
280
|
function serializeFetchResponse(data, status, statusText, headers, latencyMs) {
|
|
165
281
|
return JSON.stringify({
|
|
166
282
|
data,
|
|
@@ -252,7 +368,8 @@ async function fetchWithCache(url, options = {}, timeout = REQUEST_TIMEOUT_MS, f
|
|
|
252
368
|
"PUT",
|
|
253
369
|
"DELETE"
|
|
254
370
|
].includes(method);
|
|
255
|
-
|
|
371
|
+
const cacheKey = enabled && !bust ? getFetchCacheKey(url, options, method, format) : null;
|
|
372
|
+
if (!enabled || bust || cacheKey == null) {
|
|
256
373
|
const { respText, resp, fetchLatencyMs } = await fetchAndReadBody(url, options, timeout, maxRetries, isIdempotent);
|
|
257
374
|
try {
|
|
258
375
|
return {
|
|
@@ -268,25 +385,23 @@ async function fetchWithCache(url, options = {}, timeout = REQUEST_TIMEOUT_MS, f
|
|
|
268
385
|
throw new Error(`Error parsing response as JSON: ${respText}`);
|
|
269
386
|
}
|
|
270
387
|
}
|
|
271
|
-
const copy = Object.assign({}, options);
|
|
272
|
-
delete copy.headers;
|
|
273
|
-
const cacheKey = getScopedCacheKey(`fetch:v2:${url}:${JSON.stringify(copy)}`);
|
|
274
388
|
const cache = getCacheInstance();
|
|
275
389
|
const cachedResponse = await cache.get(cacheKey);
|
|
276
390
|
if (cachedResponse != null) {
|
|
277
391
|
logger.debug(`Returning cached response for ${url}: ${cachedResponse}`);
|
|
278
392
|
return deserializeFetchResponse(cachedResponse, true, cache, cacheKey);
|
|
279
393
|
}
|
|
280
|
-
|
|
394
|
+
const inflightCacheKey = getInflightFetchCacheKey(cacheKey, url, options);
|
|
395
|
+
let inflightResponse = inflightFetchResponses.get(inflightCacheKey);
|
|
281
396
|
if (!inflightResponse) {
|
|
282
397
|
inflightResponse = (async () => {
|
|
283
398
|
const preparedResponse = await prepareFetchResponse(url, options, timeout, maxRetries, isIdempotent, format);
|
|
284
399
|
if (preparedResponse.cacheable) await cache.set(cacheKey, preparedResponse.response);
|
|
285
400
|
return preparedResponse.response;
|
|
286
401
|
})().finally(() => {
|
|
287
|
-
inflightFetchResponses.delete(
|
|
402
|
+
inflightFetchResponses.delete(inflightCacheKey);
|
|
288
403
|
});
|
|
289
|
-
inflightFetchResponses.set(
|
|
404
|
+
inflightFetchResponses.set(inflightCacheKey, inflightResponse);
|
|
290
405
|
}
|
|
291
406
|
return deserializeFetchResponse(await inflightResponse, false, cache, cacheKey);
|
|
292
407
|
}
|
|
@@ -305,6 +420,6 @@ function isCacheEnabled() {
|
|
|
305
420
|
return enabled;
|
|
306
421
|
}
|
|
307
422
|
//#endregion
|
|
308
|
-
export {
|
|
423
|
+
export { getScopedCacheKey as a, NON_TRANSIENT_HTTP_STATUSES as c, getCache as i, isNonTransientHttpStatus as l, disableCache as n, isCacheEnabled as o, fetchWithCache as r, withCacheNamespace as s, cache_exports as t, isTransientConnectionError as u };
|
|
309
424
|
|
|
310
|
-
//# sourceMappingURL=cache-
|
|
425
|
+
//# sourceMappingURL=cache-CrioYnaa.js.map
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { t as __exportAll } from "./chunk-DEq-mXcV.js";
|
|
2
2
|
import { S as getEnvBool, T as getEnvString, a as logger, w as getEnvInt, x as getConfigDirectoryPath } from "./logger-Ct2S6Yx-.js";
|
|
3
|
-
import {
|
|
3
|
+
import { T as cloudConfig, a as getFetchWithProxyHeaders, l as sleep, n as fetchWithRetries, p as REQUEST_TIMEOUT_MS, s as isPromptfooCloudApiHost } from "./fetch-Doks14zQ.js";
|
|
4
|
+
import { n as sha256 } from "./createHash-BtbSX3mj.js";
|
|
4
5
|
import fs from "fs";
|
|
5
6
|
import path from "path";
|
|
6
7
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
@@ -46,6 +47,7 @@ var cache_exports = /* @__PURE__ */ __exportAll({
|
|
|
46
47
|
enableCache: () => enableCache,
|
|
47
48
|
fetchWithCache: () => fetchWithCache,
|
|
48
49
|
getCache: () => getCache,
|
|
50
|
+
getScopedCacheKey: () => getScopedCacheKey,
|
|
49
51
|
isCacheEnabled: () => isCacheEnabled,
|
|
50
52
|
withCacheNamespace: () => withCacheNamespace
|
|
51
53
|
});
|
|
@@ -161,6 +163,120 @@ function withCacheNamespace(namespace, fn) {
|
|
|
161
163
|
return cacheNamespaceStorage.run({ namespace: scopedNamespace }, fn);
|
|
162
164
|
}
|
|
163
165
|
const inflightFetchResponses = /* @__PURE__ */ new Map();
|
|
166
|
+
const IGNORED_FETCH_CACHE_OPTION_KEYS = new Set(["method", "signal"]);
|
|
167
|
+
const abortSignalIds = /* @__PURE__ */ new WeakMap();
|
|
168
|
+
let nextAbortSignalId = 0;
|
|
169
|
+
function getHeadersForCacheKey(url, options) {
|
|
170
|
+
const headers = new Headers(getFetchWithProxyHeaders(url, options));
|
|
171
|
+
if (isPromptfooCloudApiHost(url)) {
|
|
172
|
+
const token = cloudConfig.getApiKey();
|
|
173
|
+
if (token) headers.set("Authorization", `Bearer ${token}`);
|
|
174
|
+
}
|
|
175
|
+
return Array.from(headers.entries()).sort(([nameA, valueA], [nameB, valueB]) => {
|
|
176
|
+
const nameComparison = nameA.localeCompare(nameB);
|
|
177
|
+
return nameComparison === 0 ? valueA.localeCompare(valueB) : nameComparison;
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
function hashFetchCacheKey(identity) {
|
|
181
|
+
return sha256(JSON.stringify(identity));
|
|
182
|
+
}
|
|
183
|
+
function hashBytesForCacheKey(bytes) {
|
|
184
|
+
const buffer = ArrayBuffer.isView(bytes) ? Buffer.from(bytes.buffer, bytes.byteOffset, bytes.byteLength) : Buffer.from(bytes);
|
|
185
|
+
return {
|
|
186
|
+
byteLength: buffer.byteLength,
|
|
187
|
+
sha256: sha256(buffer)
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
function getBodyForFetchCacheKey(body) {
|
|
191
|
+
if (body == null) return {
|
|
192
|
+
cacheable: true,
|
|
193
|
+
identity: void 0
|
|
194
|
+
};
|
|
195
|
+
if (typeof body === "string") return {
|
|
196
|
+
cacheable: true,
|
|
197
|
+
identity: {
|
|
198
|
+
type: "string",
|
|
199
|
+
value: body
|
|
200
|
+
}
|
|
201
|
+
};
|
|
202
|
+
if (typeof URLSearchParams !== "undefined" && body instanceof URLSearchParams) return {
|
|
203
|
+
cacheable: true,
|
|
204
|
+
identity: {
|
|
205
|
+
type: "url-search-params",
|
|
206
|
+
value: body.toString()
|
|
207
|
+
}
|
|
208
|
+
};
|
|
209
|
+
if (body instanceof ArrayBuffer) return {
|
|
210
|
+
cacheable: true,
|
|
211
|
+
identity: {
|
|
212
|
+
type: "array-buffer",
|
|
213
|
+
...hashBytesForCacheKey(body)
|
|
214
|
+
}
|
|
215
|
+
};
|
|
216
|
+
if (ArrayBuffer.isView(body)) return {
|
|
217
|
+
cacheable: true,
|
|
218
|
+
identity: {
|
|
219
|
+
type: body.constructor.name,
|
|
220
|
+
...hashBytesForCacheKey(body)
|
|
221
|
+
}
|
|
222
|
+
};
|
|
223
|
+
return {
|
|
224
|
+
cacheable: false,
|
|
225
|
+
identity: void 0
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
function getOptionsForFetchCacheKey(options, bodyIdentity) {
|
|
229
|
+
const identity = {};
|
|
230
|
+
for (const [key, value] of Object.entries(options).sort(([keyA], [keyB]) => keyA.localeCompare(keyB))) {
|
|
231
|
+
if (key === "headers" || IGNORED_FETCH_CACHE_OPTION_KEYS.has(key)) continue;
|
|
232
|
+
if (key === "body") {
|
|
233
|
+
identity.body = bodyIdentity;
|
|
234
|
+
continue;
|
|
235
|
+
}
|
|
236
|
+
if (value == null || [
|
|
237
|
+
"boolean",
|
|
238
|
+
"number",
|
|
239
|
+
"string"
|
|
240
|
+
].includes(typeof value)) {
|
|
241
|
+
identity[key] = value;
|
|
242
|
+
continue;
|
|
243
|
+
}
|
|
244
|
+
return {
|
|
245
|
+
cacheable: false,
|
|
246
|
+
identity: void 0
|
|
247
|
+
};
|
|
248
|
+
}
|
|
249
|
+
if (!Object.prototype.hasOwnProperty.call(options, "body") && bodyIdentity !== void 0) identity.body = bodyIdentity;
|
|
250
|
+
return {
|
|
251
|
+
cacheable: true,
|
|
252
|
+
identity
|
|
253
|
+
};
|
|
254
|
+
}
|
|
255
|
+
function getFetchCacheKey(url, options, method, format) {
|
|
256
|
+
const bodyForCacheKey = getBodyForFetchCacheKey(options.body ?? (url instanceof Request ? url.body : void 0));
|
|
257
|
+
if (!bodyForCacheKey.cacheable) return null;
|
|
258
|
+
const optionsForCacheKey = getOptionsForFetchCacheKey(options, bodyForCacheKey.identity);
|
|
259
|
+
if (!optionsForCacheKey.cacheable) return null;
|
|
260
|
+
return getScopedCacheKey(`fetch:v3:${hashFetchCacheKey({
|
|
261
|
+
format,
|
|
262
|
+
headers: getHeadersForCacheKey(url, options),
|
|
263
|
+
method,
|
|
264
|
+
options: optionsForCacheKey.identity,
|
|
265
|
+
url: url instanceof Request ? url.url : String(url)
|
|
266
|
+
})}`);
|
|
267
|
+
}
|
|
268
|
+
function getAbortSignalId(signal) {
|
|
269
|
+
let signalId = abortSignalIds.get(signal);
|
|
270
|
+
if (signalId === void 0) {
|
|
271
|
+
signalId = ++nextAbortSignalId;
|
|
272
|
+
abortSignalIds.set(signal, signalId);
|
|
273
|
+
}
|
|
274
|
+
return signalId;
|
|
275
|
+
}
|
|
276
|
+
function getInflightFetchCacheKey(cacheKey, url, options) {
|
|
277
|
+
const signal = options.signal ?? (url instanceof Request ? url.signal : void 0);
|
|
278
|
+
return signal ? `${cacheKey}:signal:${getAbortSignalId(signal)}` : cacheKey;
|
|
279
|
+
}
|
|
164
280
|
function serializeFetchResponse(data, status, statusText, headers, latencyMs) {
|
|
165
281
|
return JSON.stringify({
|
|
166
282
|
data,
|
|
@@ -252,7 +368,8 @@ async function fetchWithCache(url, options = {}, timeout = REQUEST_TIMEOUT_MS, f
|
|
|
252
368
|
"PUT",
|
|
253
369
|
"DELETE"
|
|
254
370
|
].includes(method);
|
|
255
|
-
|
|
371
|
+
const cacheKey = enabled && !bust ? getFetchCacheKey(url, options, method, format) : null;
|
|
372
|
+
if (!enabled || bust || cacheKey == null) {
|
|
256
373
|
const { respText, resp, fetchLatencyMs } = await fetchAndReadBody(url, options, timeout, maxRetries, isIdempotent);
|
|
257
374
|
try {
|
|
258
375
|
return {
|
|
@@ -268,25 +385,23 @@ async function fetchWithCache(url, options = {}, timeout = REQUEST_TIMEOUT_MS, f
|
|
|
268
385
|
throw new Error(`Error parsing response as JSON: ${respText}`);
|
|
269
386
|
}
|
|
270
387
|
}
|
|
271
|
-
const copy = Object.assign({}, options);
|
|
272
|
-
delete copy.headers;
|
|
273
|
-
const cacheKey = getScopedCacheKey(`fetch:v2:${url}:${JSON.stringify(copy)}`);
|
|
274
388
|
const cache = getCacheInstance();
|
|
275
389
|
const cachedResponse = await cache.get(cacheKey);
|
|
276
390
|
if (cachedResponse != null) {
|
|
277
391
|
logger.debug(`Returning cached response for ${url}: ${cachedResponse}`);
|
|
278
392
|
return deserializeFetchResponse(cachedResponse, true, cache, cacheKey);
|
|
279
393
|
}
|
|
280
|
-
|
|
394
|
+
const inflightCacheKey = getInflightFetchCacheKey(cacheKey, url, options);
|
|
395
|
+
let inflightResponse = inflightFetchResponses.get(inflightCacheKey);
|
|
281
396
|
if (!inflightResponse) {
|
|
282
397
|
inflightResponse = (async () => {
|
|
283
398
|
const preparedResponse = await prepareFetchResponse(url, options, timeout, maxRetries, isIdempotent, format);
|
|
284
399
|
if (preparedResponse.cacheable) await cache.set(cacheKey, preparedResponse.response);
|
|
285
400
|
return preparedResponse.response;
|
|
286
401
|
})().finally(() => {
|
|
287
|
-
inflightFetchResponses.delete(
|
|
402
|
+
inflightFetchResponses.delete(inflightCacheKey);
|
|
288
403
|
});
|
|
289
|
-
inflightFetchResponses.set(
|
|
404
|
+
inflightFetchResponses.set(inflightCacheKey, inflightResponse);
|
|
290
405
|
}
|
|
291
406
|
return deserializeFetchResponse(await inflightResponse, false, cache, cacheKey);
|
|
292
407
|
}
|
|
@@ -305,6 +420,6 @@ function isCacheEnabled() {
|
|
|
305
420
|
return enabled;
|
|
306
421
|
}
|
|
307
422
|
//#endregion
|
|
308
|
-
export {
|
|
423
|
+
export { getScopedCacheKey as a, NON_TRANSIENT_HTTP_STATUSES as c, getCache as i, isNonTransientHttpStatus as l, disableCache as n, isCacheEnabled as o, fetchWithCache as r, withCacheNamespace as s, cache_exports as t, isTransientConnectionError as u };
|
|
309
424
|
|
|
310
|
-
//# sourceMappingURL=cache-
|
|
425
|
+
//# sourceMappingURL=cache-DdriHsNX.js.map
|