@vm0/cli 9.238.6 → 9.238.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/{agent-RI5TB3MT.js → agent-JH2NEPZR.js} +5 -5
- package/{banking-ZZTY42QD.js → banking-2NXK6J3W.js} +3 -3
- package/{chat-VBEB2LIU.js → chat-MN4IB7GD.js} +4 -4
- package/{chunk-GU4IPLKQ.js → chunk-6F7XCWTU.js} +23 -23
- package/{chunk-GU4IPLKQ.js.map → chunk-6F7XCWTU.js.map} +1 -1
- package/{chunk-MSZRROJT.js → chunk-6NTG5UZE.js} +432 -1761
- package/chunk-6NTG5UZE.js.map +1 -0
- package/{chunk-2YG67KBB.js → chunk-BTGJACXR.js} +2 -2
- package/{chunk-VWG7JMMA.js → chunk-FNQ62BY2.js} +2 -2
- package/{chunk-3PWT6JIH.js → chunk-FZT6ZD5Z.js} +4 -4
- package/{chunk-ZOTQGSKT.js → chunk-I564TTWT.js} +2 -2
- package/{chunk-GE2LI4MS.js → chunk-RD5IGGLO.js} +2 -2
- package/{chunk-W7KBXNOK.js → chunk-SOHCGADW.js} +15270 -386
- package/chunk-SOHCGADW.js.map +1 -0
- package/{chunk-MM5ESLJI.js → chunk-UF3EQMOH.js} +4 -4
- package/{chunk-CEKLUICQ.js → chunk-VAXSHLMI.js} +3 -3
- package/{computer-use-2GWQELMK.js → computer-use-XLD4LAIV.js} +3 -3
- package/{connector-HVF5LTLS.js → connector-YDDOAHYS.js} +4 -4
- package/{credit-DR3ZW2FG.js → credit-CEONTACE.js} +4 -4
- package/{developer-support-LUUIXIXG.js → developer-support-FHWKHJGW.js} +3 -3
- package/doctor-BF3SESXM.js +1194 -0
- package/doctor-BF3SESXM.js.map +1 -0
- package/{generate-EEWDZMO7.js → generate-YDBYHQ4H.js} +5 -5
- package/{github-WSCP6BCL.js → github-XIJ2Y5PZ.js} +3 -3
- package/{goal-TBQ73X4G.js → goal-6I3U2AER.js} +3 -3
- package/{host-FF62XPMH.js → host-IPPGVU6F.js} +3 -3
- package/index.js +13 -14
- package/index.js.map +1 -1
- package/{logs-PKOHZJ5X.js → logs-VQGWXDS3.js} +6 -7
- package/{logs-PKOHZJ5X.js.map → logs-VQGWXDS3.js.map} +1 -1
- package/{maps-LC4V32L6.js → maps-YR4X4XJE.js} +3 -3
- package/{memory-IQO5L4DF.js → memory-PLFDXK3U.js} +3 -3
- package/{model-NJ3PEGDV.js → model-IHQGI5SD.js} +4 -4
- package/{model-provider-MPBVWSUT.js → model-provider-KFJS22YT.js} +4 -4
- package/{org-FFCTROTZ.js → org-7DENHEEO.js} +3 -3
- package/package.json +1 -1
- package/{phone-35G4MSU4.js → phone-GYNROKO5.js} +3 -3
- package/{preference-7LX3CJUT.js → preference-NHBRBTHG.js} +3 -3
- package/{relationship-PKU2B5BP.js → relationship-TZ3AHEGI.js} +3 -3
- package/{resource-ENHLW46D.js → resource-X5ZTVDLF.js} +8 -5
- package/resource-X5ZTVDLF.js.map +1 -0
- package/{search-ZKKMK4PS.js → search-BAAAYJAP.js} +6 -7
- package/{search-ZKKMK4PS.js.map → search-BAAAYJAP.js.map} +1 -1
- package/{secret-7K6ED3SD.js → secret-X3Y6E65Z.js} +3 -3
- package/{slack-VTGS2LE7.js → slack-35G46FJA.js} +3 -3
- package/{teams-SOYUSM2G.js → teams-IMSR3V3W.js} +3 -3
- package/{telegram-F2GYSKWJ.js → telegram-D3EWKPVI.js} +3 -3
- package/{variable-6NWZSJVI.js → variable-QUYQA7OA.js} +3 -3
- package/{video-VHL2UFS7.js → video-XOAQYGPA.js} +2 -2
- package/{web-6A35VLL5.js → web-5ENALPKP.js} +3 -3
- package/{whoami-6SU2NDI3.js → whoami-2Q2N7V3N.js} +5 -5
- package/{workflow-W23JY7HR.js → workflow-OKSOZKGH.js} +3 -3
- package/zero.js +34 -34
- package/adzuna.generated-NY6BDYRS.js +0 -16
- package/adzuna.generated-NY6BDYRS.js.map +0 -1
- package/adzuna.generated-UYD26H6U.js +0 -16
- package/adzuna.generated-UYD26H6U.js.map +0 -1
- package/agentmail.generated-77KAUVC7.js +0 -16
- package/agentmail.generated-77KAUVC7.js.map +0 -1
- package/agentmail.generated-D5K3CI4D.js +0 -16
- package/agentmail.generated-D5K3CI4D.js.map +0 -1
- package/agora.generated-2XGFL5LA.js +0 -16
- package/agora.generated-2XGFL5LA.js.map +0 -1
- package/agora.generated-QAI4NT4L.js +0 -16
- package/agora.generated-QAI4NT4L.js.map +0 -1
- package/ahrefs.generated-IYB5FTIF.js +0 -16
- package/ahrefs.generated-IYB5FTIF.js.map +0 -1
- package/ahrefs.generated-N6XI6SZP.js +0 -16
- package/ahrefs.generated-N6XI6SZP.js.map +0 -1
- package/airtable.generated-4MSPGWSM.js +0 -16
- package/airtable.generated-4MSPGWSM.js.map +0 -1
- package/airtable.generated-CV3LK62W.js +0 -16
- package/airtable.generated-CV3LK62W.js.map +0 -1
- package/alchemy.generated-FXRD7HLX.js +0 -16
- package/alchemy.generated-FXRD7HLX.js.map +0 -1
- package/alchemy.generated-L5FRQKJL.js +0 -16
- package/alchemy.generated-L5FRQKJL.js.map +0 -1
- package/altium-365.generated-IZ353434.js +0 -16
- package/altium-365.generated-IZ353434.js.map +0 -1
- package/altium-365.generated-QDLMKJPS.js +0 -16
- package/altium-365.generated-QDLMKJPS.js.map +0 -1
- package/amadeus.generated-EB6AUY2W.js +0 -16
- package/amadeus.generated-EB6AUY2W.js.map +0 -1
- package/amadeus.generated-GT4FYKKP.js +0 -16
- package/amadeus.generated-GT4FYKKP.js.map +0 -1
- package/amplitude.generated-25YXZ7DS.js +0 -16
- package/amplitude.generated-25YXZ7DS.js.map +0 -1
- package/amplitude.generated-FBXLF3CF.js +0 -16
- package/amplitude.generated-FBXLF3CF.js.map +0 -1
- package/anthropic-managed-agents.generated-GGOL2DHS.js +0 -16
- package/anthropic-managed-agents.generated-GGOL2DHS.js.map +0 -1
- package/anthropic-managed-agents.generated-OV3XUSJW.js +0 -16
- package/anthropic-managed-agents.generated-OV3XUSJW.js.map +0 -1
- package/apify.generated-GDYJRE42.js +0 -16
- package/apify.generated-GDYJRE42.js.map +0 -1
- package/apify.generated-ZPU5PRK7.js +0 -16
- package/apify.generated-ZPU5PRK7.js.map +0 -1
- package/apollo.generated-2K42PO5U.js +0 -16
- package/apollo.generated-2K42PO5U.js.map +0 -1
- package/apollo.generated-Y4GJY36V.js +0 -16
- package/apollo.generated-Y4GJY36V.js.map +0 -1
- package/asana.generated-UQEJDGNN.js +0 -16
- package/asana.generated-UQEJDGNN.js.map +0 -1
- package/asana.generated-W7WM5RGV.js +0 -16
- package/asana.generated-W7WM5RGV.js.map +0 -1
- package/ashby.generated-F65MN25P.js +0 -16
- package/ashby.generated-F65MN25P.js.map +0 -1
- package/ashby.generated-FFGCPPDE.js +0 -16
- package/ashby.generated-FFGCPPDE.js.map +0 -1
- package/atlascloud.generated-OKU5H4JY.js +0 -16
- package/atlascloud.generated-OKU5H4JY.js.map +0 -1
- package/atlascloud.generated-ZVFC4NA6.js +0 -16
- package/atlascloud.generated-ZVFC4NA6.js.map +0 -1
- package/atlassian.generated-VHLFBNH6.js +0 -16
- package/atlassian.generated-VHLFBNH6.js.map +0 -1
- package/atlassian.generated-W4ILXBVF.js +0 -16
- package/atlassian.generated-W4ILXBVF.js.map +0 -1
- package/attio.generated-4L65LUMM.js +0 -16
- package/attio.generated-4L65LUMM.js.map +0 -1
- package/attio.generated-PWXTXJJ7.js +0 -16
- package/attio.generated-PWXTXJJ7.js.map +0 -1
- package/aviationstack.generated-KKNB55S7.js +0 -16
- package/aviationstack.generated-KKNB55S7.js.map +0 -1
- package/aviationstack.generated-WB2JLDN5.js +0 -16
- package/aviationstack.generated-WB2JLDN5.js.map +0 -1
- package/aws.generated-6ZS75EQE.js +0 -16
- package/aws.generated-6ZS75EQE.js.map +0 -1
- package/aws.generated-GBI2IANF.js +0 -16
- package/aws.generated-GBI2IANF.js.map +0 -1
- package/axiom.generated-IJ7MJL3K.js +0 -16
- package/axiom.generated-IJ7MJL3K.js.map +0 -1
- package/axiom.generated-PYNPK75B.js +0 -16
- package/axiom.generated-PYNPK75B.js.map +0 -1
- package/base44.generated-AJWZUK7K.js +0 -16
- package/base44.generated-AJWZUK7K.js.map +0 -1
- package/base44.generated-U5Y6426G.js +0 -16
- package/base44.generated-U5Y6426G.js.map +0 -1
- package/bentoml.generated-HI57PONV.js +0 -16
- package/bentoml.generated-HI57PONV.js.map +0 -1
- package/bentoml.generated-UZYPBUOS.js +0 -16
- package/bentoml.generated-UZYPBUOS.js.map +0 -1
- package/bfl.generated-G52LFYYD.js +0 -16
- package/bfl.generated-G52LFYYD.js.map +0 -1
- package/bfl.generated-XQZSSEDA.js +0 -16
- package/bfl.generated-XQZSSEDA.js.map +0 -1
- package/bill.generated-5FJHQPXY.js +0 -16
- package/bill.generated-5FJHQPXY.js.map +0 -1
- package/bill.generated-HYFQCA2Q.js +0 -16
- package/bill.generated-HYFQCA2Q.js.map +0 -1
- package/bitrefill.generated-GUVTJ23H.js +0 -16
- package/bitrefill.generated-GUVTJ23H.js.map +0 -1
- package/bitrefill.generated-NLFRI6LE.js +0 -16
- package/bitrefill.generated-NLFRI6LE.js.map +0 -1
- package/bitrix.generated-QGLVCTHC.js +0 -16
- package/bitrix.generated-QGLVCTHC.js.map +0 -1
- package/bitrix.generated-WBOBPY7B.js +0 -16
- package/bitrix.generated-WBOBPY7B.js.map +0 -1
- package/bland.generated-563BJLD7.js +0 -16
- package/bland.generated-563BJLD7.js.map +0 -1
- package/bland.generated-QFAOCGRV.js +0 -16
- package/bland.generated-QFAOCGRV.js.map +0 -1
- package/box.generated-GIUVTDKW.js +0 -16
- package/box.generated-GIUVTDKW.js.map +0 -1
- package/box.generated-NVWK7PUW.js +0 -16
- package/box.generated-NVWK7PUW.js.map +0 -1
- package/brave-search.generated-6G3FPSOI.js +0 -16
- package/brave-search.generated-6G3FPSOI.js.map +0 -1
- package/brave-search.generated-H7OPQC5L.js +0 -16
- package/brave-search.generated-H7OPQC5L.js.map +0 -1
- package/brevo.generated-IIYV244D.js +0 -16
- package/brevo.generated-IIYV244D.js.map +0 -1
- package/brevo.generated-WXFZ2QA3.js +0 -16
- package/brevo.generated-WXFZ2QA3.js.map +0 -1
- package/brex.generated-AFXJCCTP.js +0 -16
- package/brex.generated-AFXJCCTP.js.map +0 -1
- package/brex.generated-JB7Q5UHY.js +0 -16
- package/brex.generated-JB7Q5UHY.js.map +0 -1
- package/bright-data.generated-C3SGIKHN.js +0 -16
- package/bright-data.generated-C3SGIKHN.js.map +0 -1
- package/bright-data.generated-TDAWKLP2.js +0 -16
- package/bright-data.generated-TDAWKLP2.js.map +0 -1
- package/browser-use.generated-E5G7YL6Y.js +0 -16
- package/browser-use.generated-E5G7YL6Y.js.map +0 -1
- package/browser-use.generated-I2BIBOM4.js +0 -16
- package/browser-use.generated-I2BIBOM4.js.map +0 -1
- package/browserbase.generated-MPEQJRB2.js +0 -16
- package/browserbase.generated-MPEQJRB2.js.map +0 -1
- package/browserbase.generated-OULKTUBA.js +0 -16
- package/browserbase.generated-OULKTUBA.js.map +0 -1
- package/browserless.generated-6APMGIX6.js +0 -16
- package/browserless.generated-6APMGIX6.js.map +0 -1
- package/browserless.generated-OAZ7AVJK.js +0 -16
- package/browserless.generated-OAZ7AVJK.js.map +0 -1
- package/browserstack.generated-5JBA3BIA.js +0 -16
- package/browserstack.generated-5JBA3BIA.js.map +0 -1
- package/browserstack.generated-TUTDW7V5.js +0 -16
- package/browserstack.generated-TUTDW7V5.js.map +0 -1
- package/bubblemaps.generated-GCD4DIQT.js +0 -16
- package/bubblemaps.generated-GCD4DIQT.js.map +0 -1
- package/bubblemaps.generated-O5MAE2GL.js +0 -16
- package/bubblemaps.generated-O5MAE2GL.js.map +0 -1
- package/buffer.generated-CZ3PT3I5.js +0 -16
- package/buffer.generated-CZ3PT3I5.js.map +0 -1
- package/buffer.generated-WYAFG4MY.js +0 -16
- package/buffer.generated-WYAFG4MY.js.map +0 -1
- package/builtwith.generated-QZ5FLIIV.js +0 -16
- package/builtwith.generated-QZ5FLIIV.js.map +0 -1
- package/builtwith.generated-ULTM7PP5.js +0 -16
- package/builtwith.generated-ULTM7PP5.js.map +0 -1
- package/cal-com.generated-66LFMVPY.js +0 -16
- package/cal-com.generated-66LFMVPY.js.map +0 -1
- package/cal-com.generated-YPEDDD5J.js +0 -16
- package/cal-com.generated-YPEDDD5J.js.map +0 -1
- package/calendly.generated-CFKJKQV6.js +0 -16
- package/calendly.generated-CFKJKQV6.js.map +0 -1
- package/calendly.generated-PFJIZATI.js +0 -16
- package/calendly.generated-PFJIZATI.js.map +0 -1
- package/canva.generated-BOJJUGXF.js +0 -16
- package/canva.generated-BOJJUGXF.js.map +0 -1
- package/canva.generated-ZHJ35VU3.js +0 -16
- package/canva.generated-ZHJ35VU3.js.map +0 -1
- package/chatwoot.generated-DWKKDSPE.js +0 -16
- package/chatwoot.generated-DWKKDSPE.js.map +0 -1
- package/chatwoot.generated-S6YJHKG5.js +0 -16
- package/chatwoot.generated-S6YJHKG5.js.map +0 -1
- package/checkr.generated-NYTE4TTX.js +0 -16
- package/checkr.generated-NYTE4TTX.js.map +0 -1
- package/checkr.generated-VJCUTI6T.js +0 -16
- package/checkr.generated-VJCUTI6T.js.map +0 -1
- package/chunk-DUOJIVWA.js +0 -16427
- package/chunk-DUOJIVWA.js.map +0 -1
- package/chunk-MSZRROJT.js.map +0 -1
- package/chunk-W7KBXNOK.js.map +0 -1
- package/clado.generated-M5SSL6PD.js +0 -16
- package/clado.generated-M5SSL6PD.js.map +0 -1
- package/clado.generated-PSBCEQRT.js +0 -16
- package/clado.generated-PSBCEQRT.js.map +0 -1
- package/clearbit.generated-53TOIKS2.js +0 -16
- package/clearbit.generated-53TOIKS2.js.map +0 -1
- package/clearbit.generated-U4BWJIBF.js +0 -16
- package/clearbit.generated-U4BWJIBF.js.map +0 -1
- package/clerk.generated-HRYIFEYG.js +0 -404
- package/clerk.generated-HRYIFEYG.js.map +0 -1
- package/clerk.generated-M5C4UFQQ.js +0 -16
- package/clerk.generated-M5C4UFQQ.js.map +0 -1
- package/clickup.generated-SKZ2NPN7.js +0 -16
- package/clickup.generated-SKZ2NPN7.js.map +0 -1
- package/clickup.generated-YVJKWZXT.js +0 -16
- package/clickup.generated-YVJKWZXT.js.map +0 -1
- package/close.generated-5WRX7CKY.js +0 -16
- package/close.generated-5WRX7CKY.js.map +0 -1
- package/close.generated-M3V7AAQR.js +0 -16
- package/close.generated-M3V7AAQR.js.map +0 -1
- package/cloudflare.generated-3VWLY47X.js +0 -16
- package/cloudflare.generated-3VWLY47X.js.map +0 -1
- package/cloudflare.generated-AJY4K6U2.js +0 -16
- package/cloudflare.generated-AJY4K6U2.js.map +0 -1
- package/coda.generated-NL63PYGH.js +0 -16
- package/coda.generated-NL63PYGH.js.map +0 -1
- package/coda.generated-WE3Z3UQN.js +0 -16
- package/coda.generated-WE3Z3UQN.js.map +0 -1
- package/coingecko.generated-Q66Y5MCV.js +0 -16
- package/coingecko.generated-Q66Y5MCV.js.map +0 -1
- package/coingecko.generated-YW5JBNK3.js +0 -16
- package/coingecko.generated-YW5JBNK3.js.map +0 -1
- package/copper.generated-PZRA3BV7.js +0 -16
- package/copper.generated-PZRA3BV7.js.map +0 -1
- package/copper.generated-UBWQDA5K.js +0 -16
- package/copper.generated-UBWQDA5K.js.map +0 -1
- package/coresignal.generated-QKDHJYVO.js +0 -16
- package/coresignal.generated-QKDHJYVO.js.map +0 -1
- package/coresignal.generated-U344Q2UM.js +0 -16
- package/coresignal.generated-U344Q2UM.js.map +0 -1
- package/cronlytic.generated-4LB2MI5Q.js +0 -16
- package/cronlytic.generated-4LB2MI5Q.js.map +0 -1
- package/cronlytic.generated-PWUPGGTS.js +0 -16
- package/cronlytic.generated-PWUPGGTS.js.map +0 -1
- package/crustdata.generated-BM256Z5G.js +0 -16
- package/crustdata.generated-BM256Z5G.js.map +0 -1
- package/crustdata.generated-U3SDU6PO.js +0 -16
- package/crustdata.generated-U3SDU6PO.js.map +0 -1
- package/cursor.generated-4RRYU2NY.js +0 -16
- package/cursor.generated-4RRYU2NY.js.map +0 -1
- package/cursor.generated-OSITR3ZU.js +0 -16
- package/cursor.generated-OSITR3ZU.js.map +0 -1
- package/customer-io.generated-52XITRCS.js +0 -16
- package/customer-io.generated-52XITRCS.js.map +0 -1
- package/customer-io.generated-PXSZUHIQ.js +0 -16
- package/customer-io.generated-PXSZUHIQ.js.map +0 -1
- package/datadog.generated-S4YB2V57.js +0 -16
- package/datadog.generated-S4YB2V57.js.map +0 -1
- package/datadog.generated-Z3O2DYLP.js +0 -16
- package/datadog.generated-Z3O2DYLP.js.map +0 -1
- package/daytona.generated-NMEVCK2C.js +0 -16
- package/daytona.generated-NMEVCK2C.js.map +0 -1
- package/daytona.generated-SQ4CHQAD.js +0 -16
- package/daytona.generated-SQ4CHQAD.js.map +0 -1
- package/db9.generated-QQVGBNAG.js +0 -16
- package/db9.generated-QQVGBNAG.js.map +0 -1
- package/db9.generated-TYNLLX2L.js +0 -16
- package/db9.generated-TYNLLX2L.js.map +0 -1
- package/deel.generated-V4NV7DNO.js +0 -16
- package/deel.generated-V4NV7DNO.js.map +0 -1
- package/deel.generated-WRQX7JK3.js +0 -16
- package/deel.generated-WRQX7JK3.js.map +0 -1
- package/deepseek.generated-GAWSLOVM.js +0 -16
- package/deepseek.generated-GAWSLOVM.js.map +0 -1
- package/deepseek.generated-RV25NG3W.js +0 -16
- package/deepseek.generated-RV25NG3W.js.map +0 -1
- package/defillama.generated-OIUIVCBL.js +0 -16
- package/defillama.generated-OIUIVCBL.js.map +0 -1
- package/defillama.generated-RUE4MEAQ.js +0 -16
- package/defillama.generated-RUE4MEAQ.js.map +0 -1
- package/devto.generated-5GWHDQ2J.js +0 -16
- package/devto.generated-5GWHDQ2J.js.map +0 -1
- package/devto.generated-C3OPR4KJ.js +0 -16
- package/devto.generated-C3OPR4KJ.js.map +0 -1
- package/diffbot.generated-OCF5VCVT.js +0 -16
- package/diffbot.generated-OCF5VCVT.js.map +0 -1
- package/diffbot.generated-TNUOC4IP.js +0 -16
- package/diffbot.generated-TNUOC4IP.js.map +0 -1
- package/dify.generated-AXDXZFXG.js +0 -16
- package/dify.generated-AXDXZFXG.js.map +0 -1
- package/dify.generated-MJXSKUH7.js +0 -16
- package/dify.generated-MJXSKUH7.js.map +0 -1
- package/discord-webhook.generated-2SJ3F2ID.js +0 -16
- package/discord-webhook.generated-2SJ3F2ID.js.map +0 -1
- package/discord-webhook.generated-BECYRCFR.js +0 -16
- package/discord-webhook.generated-BECYRCFR.js.map +0 -1
- package/discord.generated-62KV4SIG.js +0 -16
- package/discord.generated-62KV4SIG.js.map +0 -1
- package/discord.generated-VMZJJHBD.js +0 -16
- package/discord.generated-VMZJJHBD.js.map +0 -1
- package/doctor-XNJOG3LG.js +0 -4127
- package/doctor-XNJOG3LG.js.map +0 -1
- package/docusign.generated-AFFJRD76.js +0 -16
- package/docusign.generated-AFFJRD76.js.map +0 -1
- package/docusign.generated-HP77UTLV.js +0 -16
- package/docusign.generated-HP77UTLV.js.map +0 -1
- package/doppler.generated-MHGWEGZ7.js +0 -16
- package/doppler.generated-MHGWEGZ7.js.map +0 -1
- package/doppler.generated-VC4SP4JE.js +0 -16
- package/doppler.generated-VC4SP4JE.js.map +0 -1
- package/doubao.generated-FZRC2AEU.js +0 -16
- package/doubao.generated-FZRC2AEU.js.map +0 -1
- package/doubao.generated-HX2SITQ2.js +0 -16
- package/doubao.generated-HX2SITQ2.js.map +0 -1
- package/drive9.generated-2PITA5TU.js +0 -16
- package/drive9.generated-2PITA5TU.js.map +0 -1
- package/drive9.generated-VRSZGUHS.js +0 -16
- package/drive9.generated-VRSZGUHS.js.map +0 -1
- package/dropbox-sign.generated-EZ5Q2P3H.js +0 -16
- package/dropbox-sign.generated-EZ5Q2P3H.js.map +0 -1
- package/dropbox-sign.generated-YNR3MPMO.js +0 -16
- package/dropbox-sign.generated-YNR3MPMO.js.map +0 -1
- package/dropbox.generated-2FDAXOCO.js +0 -142
- package/dropbox.generated-2FDAXOCO.js.map +0 -1
- package/dropbox.generated-M2GTRFYO.js +0 -16
- package/dropbox.generated-M2GTRFYO.js.map +0 -1
- package/duffel.generated-3MN62WQ6.js +0 -16
- package/duffel.generated-3MN62WQ6.js.map +0 -1
- package/duffel.generated-OXRPP5HD.js +0 -16
- package/duffel.generated-OXRPP5HD.js.map +0 -1
- package/e2b.generated-O5LENHMP.js +0 -16
- package/e2b.generated-O5LENHMP.js.map +0 -1
- package/e2b.generated-OKFNQVBP.js +0 -16
- package/e2b.generated-OKFNQVBP.js.map +0 -1
- package/elevenlabs.generated-DGHUKPPA.js +0 -16
- package/elevenlabs.generated-DGHUKPPA.js.map +0 -1
- package/elevenlabs.generated-JRVJB7GO.js +0 -16
- package/elevenlabs.generated-JRVJB7GO.js.map +0 -1
- package/etherscan.generated-Q4SQ7XZ6.js +0 -16
- package/etherscan.generated-Q4SQ7XZ6.js.map +0 -1
- package/etherscan.generated-Y2UWWGRY.js +0 -16
- package/etherscan.generated-Y2UWWGRY.js.map +0 -1
- package/etsy.generated-24NNH3DR.js +0 -16
- package/etsy.generated-24NNH3DR.js.map +0 -1
- package/etsy.generated-TL335MSF.js +0 -16
- package/etsy.generated-TL335MSF.js.map +0 -1
- package/exa.generated-PWXG74Y7.js +0 -16
- package/exa.generated-PWXG74Y7.js.map +0 -1
- package/exa.generated-QNMLVVOP.js +0 -16
- package/exa.generated-QNMLVVOP.js.map +0 -1
- package/expensify.generated-G2ZGBKBQ.js +0 -16
- package/expensify.generated-G2ZGBKBQ.js.map +0 -1
- package/expensify.generated-OHAW3AHP.js +0 -16
- package/expensify.generated-OHAW3AHP.js.map +0 -1
- package/explorium.generated-7MKBQYVS.js +0 -16
- package/explorium.generated-7MKBQYVS.js.map +0 -1
- package/explorium.generated-NWLGZPLQ.js +0 -16
- package/explorium.generated-NWLGZPLQ.js.map +0 -1
- package/faire.generated-3J7ZYAFG.js +0 -16
- package/faire.generated-3J7ZYAFG.js.map +0 -1
- package/faire.generated-TMOWPVEH.js +0 -16
- package/faire.generated-TMOWPVEH.js.map +0 -1
- package/fal.generated-BMEFTIB2.js +0 -16
- package/fal.generated-BMEFTIB2.js.map +0 -1
- package/fal.generated-WKPLQELS.js +0 -16
- package/fal.generated-WKPLQELS.js.map +0 -1
- package/figma.generated-O3DAC4DF.js +0 -16
- package/figma.generated-O3DAC4DF.js.map +0 -1
- package/figma.generated-SIDCYFC2.js +0 -16
- package/figma.generated-SIDCYFC2.js.map +0 -1
- package/firecrawl.generated-EUOMMBRG.js +0 -16
- package/firecrawl.generated-EUOMMBRG.js.map +0 -1
- package/firecrawl.generated-HJIPXQLQ.js +0 -16
- package/firecrawl.generated-HJIPXQLQ.js.map +0 -1
- package/fireflies.generated-4UJXEVZ5.js +0 -16
- package/fireflies.generated-4UJXEVZ5.js.map +0 -1
- package/fireflies.generated-LDCTDIIH.js +0 -16
- package/fireflies.generated-LDCTDIIH.js.map +0 -1
- package/flightaware.generated-2KOEWR2B.js +0 -16
- package/flightaware.generated-2KOEWR2B.js.map +0 -1
- package/flightaware.generated-U3NCDOZY.js +0 -16
- package/flightaware.generated-U3NCDOZY.js.map +0 -1
- package/freshdesk.generated-4QAEEWUR.js +0 -16
- package/freshdesk.generated-4QAEEWUR.js.map +0 -1
- package/freshdesk.generated-AKKM6RNX.js +0 -16
- package/freshdesk.generated-AKKM6RNX.js.map +0 -1
- package/gamma.generated-I4YS2CF2.js +0 -16
- package/gamma.generated-I4YS2CF2.js.map +0 -1
- package/gamma.generated-WMSDL5XO.js +0 -16
- package/gamma.generated-WMSDL5XO.js.map +0 -1
- package/garmin-connect.generated-7CAXD2YK.js +0 -16
- package/garmin-connect.generated-7CAXD2YK.js.map +0 -1
- package/garmin-connect.generated-XPHMWKRW.js +0 -16
- package/garmin-connect.generated-XPHMWKRW.js.map +0 -1
- package/gemini.generated-JOB7ODR5.js +0 -16
- package/gemini.generated-JOB7ODR5.js.map +0 -1
- package/gemini.generated-OOSH7PPV.js +0 -16
- package/gemini.generated-OOSH7PPV.js.map +0 -1
- package/github.generated-JWDPQNED.js +0 -16
- package/github.generated-JWDPQNED.js.map +0 -1
- package/github.generated-XG4A3XLA.js +0 -16
- package/github.generated-XG4A3XLA.js.map +0 -1
- package/gitlab.generated-X4BLRWTS.js +0 -16
- package/gitlab.generated-X4BLRWTS.js.map +0 -1
- package/gitlab.generated-YNQLLSR7.js +0 -16
- package/gitlab.generated-YNQLLSR7.js.map +0 -1
- package/gmail.generated-DS3XZSJN.js +0 -16
- package/gmail.generated-DS3XZSJN.js.map +0 -1
- package/gmail.generated-EW36YIP4.js +0 -16
- package/gmail.generated-EW36YIP4.js.map +0 -1
- package/gong.generated-LT2RRE65.js +0 -16
- package/gong.generated-LT2RRE65.js.map +0 -1
- package/gong.generated-WKOS2N7D.js +0 -16
- package/gong.generated-WKOS2N7D.js.map +0 -1
- package/google-ads.generated-7U3PXTR2.js +0 -16
- package/google-ads.generated-7U3PXTR2.js.map +0 -1
- package/google-ads.generated-M4252SMF.js +0 -16
- package/google-ads.generated-M4252SMF.js.map +0 -1
- package/google-analytics.generated-R4LSYXWV.js +0 -16
- package/google-analytics.generated-R4LSYXWV.js.map +0 -1
- package/google-analytics.generated-VVSGX2SR.js +0 -16
- package/google-analytics.generated-VVSGX2SR.js.map +0 -1
- package/google-calendar.generated-CEL5QTMU.js +0 -16
- package/google-calendar.generated-CEL5QTMU.js.map +0 -1
- package/google-calendar.generated-SH7YZFEN.js +0 -134
- package/google-calendar.generated-SH7YZFEN.js.map +0 -1
- package/google-cloud.generated-M6FGSIDX.js +0 -16
- package/google-cloud.generated-M6FGSIDX.js.map +0 -1
- package/google-cloud.generated-QHFDZ2QP.js +0 -16
- package/google-cloud.generated-QHFDZ2QP.js.map +0 -1
- package/google-contacts.generated-FL6Z7MTD.js +0 -16
- package/google-contacts.generated-FL6Z7MTD.js.map +0 -1
- package/google-contacts.generated-Q67YBTPW.js +0 -16
- package/google-contacts.generated-Q67YBTPW.js.map +0 -1
- package/google-docs.generated-H5SPCVL7.js +0 -16
- package/google-docs.generated-H5SPCVL7.js.map +0 -1
- package/google-docs.generated-O5POGHJR.js +0 -16
- package/google-docs.generated-O5POGHJR.js.map +0 -1
- package/google-drive.generated-AFDEMMQF.js +0 -16
- package/google-drive.generated-AFDEMMQF.js.map +0 -1
- package/google-drive.generated-GA6UGN7J.js +0 -16
- package/google-drive.generated-GA6UGN7J.js.map +0 -1
- package/google-forms.generated-AOKO24AB.js +0 -16
- package/google-forms.generated-AOKO24AB.js.map +0 -1
- package/google-forms.generated-KDCHIV43.js +0 -16
- package/google-forms.generated-KDCHIV43.js.map +0 -1
- package/google-maps.generated-R4SWRZUA.js +0 -16
- package/google-maps.generated-R4SWRZUA.js.map +0 -1
- package/google-maps.generated-R5GWNF7Q.js +0 -16
- package/google-maps.generated-R5GWNF7Q.js.map +0 -1
- package/google-meet.generated-2VF7Z73A.js +0 -16
- package/google-meet.generated-2VF7Z73A.js.map +0 -1
- package/google-meet.generated-AMMQ2O3Y.js +0 -16
- package/google-meet.generated-AMMQ2O3Y.js.map +0 -1
- package/google-search-console.generated-BCDG3TVZ.js +0 -16
- package/google-search-console.generated-BCDG3TVZ.js.map +0 -1
- package/google-search-console.generated-PZKSK4HW.js +0 -16
- package/google-search-console.generated-PZKSK4HW.js.map +0 -1
- package/google-sheets.generated-LXJXNPJR.js +0 -16
- package/google-sheets.generated-LXJXNPJR.js.map +0 -1
- package/google-sheets.generated-SD7ME3SW.js +0 -16
- package/google-sheets.generated-SD7ME3SW.js.map +0 -1
- package/granola.generated-4KD22XPO.js +0 -16
- package/granola.generated-4KD22XPO.js.map +0 -1
- package/granola.generated-GQIDICRQ.js +0 -16
- package/granola.generated-GQIDICRQ.js.map +0 -1
- package/greenhouse.generated-IDVXJRBH.js +0 -16
- package/greenhouse.generated-IDVXJRBH.js.map +0 -1
- package/greenhouse.generated-YB6YOHTV.js +0 -16
- package/greenhouse.generated-YB6YOHTV.js.map +0 -1
- package/groq.generated-P7CXNTSN.js +0 -16
- package/groq.generated-P7CXNTSN.js.map +0 -1
- package/groq.generated-VHH4SIFZ.js +0 -16
- package/groq.generated-VHH4SIFZ.js.map +0 -1
- package/gumroad.generated-C2XIJBSU.js +0 -16
- package/gumroad.generated-C2XIJBSU.js.map +0 -1
- package/gumroad.generated-OPBGPDF4.js +0 -16
- package/gumroad.generated-OPBGPDF4.js.map +0 -1
- package/helicone.generated-F6X2XNYQ.js +0 -16
- package/helicone.generated-F6X2XNYQ.js.map +0 -1
- package/helicone.generated-ZOFMVL4C.js +0 -16
- package/helicone.generated-ZOFMVL4C.js.map +0 -1
- package/heygen.generated-JMKXHZFY.js +0 -16
- package/heygen.generated-JMKXHZFY.js.map +0 -1
- package/heygen.generated-TMU5IYPU.js +0 -16
- package/heygen.generated-TMU5IYPU.js.map +0 -1
- package/hitem3d.generated-B73OTDG5.js +0 -16
- package/hitem3d.generated-B73OTDG5.js.map +0 -1
- package/hitem3d.generated-KI44N32Y.js +0 -16
- package/hitem3d.generated-KI44N32Y.js.map +0 -1
- package/honcho.generated-Q52KK24D.js +0 -16
- package/honcho.generated-Q52KK24D.js.map +0 -1
- package/honcho.generated-YNWUDVXO.js +0 -16
- package/honcho.generated-YNWUDVXO.js.map +0 -1
- package/htmlcsstoimage.generated-JHIE6RA2.js +0 -16
- package/htmlcsstoimage.generated-JHIE6RA2.js.map +0 -1
- package/htmlcsstoimage.generated-R4ZCB2LL.js +0 -16
- package/htmlcsstoimage.generated-R4ZCB2LL.js.map +0 -1
- package/hubspot.generated-6LHX6BDN.js +0 -16
- package/hubspot.generated-6LHX6BDN.js.map +0 -1
- package/hubspot.generated-77GK6PT7.js +0 -16
- package/hubspot.generated-77GK6PT7.js.map +0 -1
- package/hugging-face.generated-546AKYVT.js +0 -16
- package/hugging-face.generated-546AKYVT.js.map +0 -1
- package/hugging-face.generated-ILQYRN7Q.js +0 -16
- package/hugging-face.generated-ILQYRN7Q.js.map +0 -1
- package/hume.generated-GMZXWN5V.js +0 -16
- package/hume.generated-GMZXWN5V.js.map +0 -1
- package/hume.generated-PH2WYG6V.js +0 -16
- package/hume.generated-PH2WYG6V.js.map +0 -1
- package/hunter.generated-24W3F2AB.js +0 -16
- package/hunter.generated-24W3F2AB.js.map +0 -1
- package/hunter.generated-D2I4PUM5.js +0 -16
- package/hunter.generated-D2I4PUM5.js.map +0 -1
- package/imgur.generated-ATYGUAPB.js +0 -16
- package/imgur.generated-ATYGUAPB.js.map +0 -1
- package/imgur.generated-BCT56H2T.js +0 -16
- package/imgur.generated-BCT56H2T.js.map +0 -1
- package/infisical.generated-NASVOFWQ.js +0 -16
- package/infisical.generated-NASVOFWQ.js.map +0 -1
- package/infisical.generated-W4JAVLHC.js +0 -16
- package/infisical.generated-W4JAVLHC.js.map +0 -1
- package/insforge.generated-3KEGLQDJ.js +0 -16
- package/insforge.generated-3KEGLQDJ.js.map +0 -1
- package/insforge.generated-VP23RSUH.js +0 -16
- package/insforge.generated-VP23RSUH.js.map +0 -1
- package/instagram.generated-JZYQO3HP.js +0 -16
- package/instagram.generated-JZYQO3HP.js.map +0 -1
- package/instagram.generated-YXHEDQCV.js +0 -16
- package/instagram.generated-YXHEDQCV.js.map +0 -1
- package/instantly.generated-LSU5NZMS.js +0 -16
- package/instantly.generated-LSU5NZMS.js.map +0 -1
- package/instantly.generated-N76J3BGQ.js +0 -16
- package/instantly.generated-N76J3BGQ.js.map +0 -1
- package/intercom.generated-QRCQM7RI.js +0 -16
- package/intercom.generated-QRCQM7RI.js.map +0 -1
- package/intercom.generated-RINBGNFM.js +0 -16
- package/intercom.generated-RINBGNFM.js.map +0 -1
- package/intervals-icu.generated-KJYR72MA.js +0 -16
- package/intervals-icu.generated-KJYR72MA.js.map +0 -1
- package/intervals-icu.generated-Q3CSM7NT.js +0 -16
- package/intervals-icu.generated-Q3CSM7NT.js.map +0 -1
- package/ironclad.generated-4GBX4E66.js +0 -16
- package/ironclad.generated-4GBX4E66.js.map +0 -1
- package/ironclad.generated-KSXTA4BI.js +0 -16
- package/ironclad.generated-KSXTA4BI.js.map +0 -1
- package/jam.generated-7NEKQ4SW.js +0 -16
- package/jam.generated-7NEKQ4SW.js.map +0 -1
- package/jam.generated-MJHTSETU.js +0 -16
- package/jam.generated-MJHTSETU.js.map +0 -1
- package/jira.generated-AWULGARK.js +0 -16
- package/jira.generated-AWULGARK.js.map +0 -1
- package/jira.generated-ZXHLDZDK.js +0 -16
- package/jira.generated-ZXHLDZDK.js.map +0 -1
- package/jotform.generated-BDLAH2AZ.js +0 -16
- package/jotform.generated-BDLAH2AZ.js.map +0 -1
- package/jotform.generated-BESF7Q4F.js +0 -16
- package/jotform.generated-BESF7Q4F.js.map +0 -1
- package/klaviyo.generated-VJR6576N.js +0 -16
- package/klaviyo.generated-VJR6576N.js.map +0 -1
- package/klaviyo.generated-ZPARMY2A.js +0 -16
- package/klaviyo.generated-ZPARMY2A.js.map +0 -1
- package/kommo.generated-NU5FQGFZ.js +0 -16
- package/kommo.generated-NU5FQGFZ.js.map +0 -1
- package/kommo.generated-RY5JIBVM.js +0 -16
- package/kommo.generated-RY5JIBVM.js.map +0 -1
- package/langfuse.generated-2TEZPEGI.js +0 -16
- package/langfuse.generated-2TEZPEGI.js.map +0 -1
- package/langfuse.generated-T3ASN6RU.js +0 -16
- package/langfuse.generated-T3ASN6RU.js.map +0 -1
- package/langsmith.generated-33VTXPTC.js +0 -16
- package/langsmith.generated-33VTXPTC.js.map +0 -1
- package/langsmith.generated-7VDIOSYU.js +0 -16
- package/langsmith.generated-7VDIOSYU.js.map +0 -1
- package/lark.generated-STIJYMKG.js +0 -16
- package/lark.generated-STIJYMKG.js.map +0 -1
- package/lark.generated-VK3DHNC4.js +0 -16
- package/lark.generated-VK3DHNC4.js.map +0 -1
- package/line.generated-V4PVO2AB.js +0 -16
- package/line.generated-V4PVO2AB.js.map +0 -1
- package/line.generated-XBL22L7B.js +0 -16
- package/line.generated-XBL22L7B.js.map +0 -1
- package/linear.generated-TCGXBP4E.js +0 -16
- package/linear.generated-TCGXBP4E.js.map +0 -1
- package/linear.generated-X5TGJC5I.js +0 -16
- package/linear.generated-X5TGJC5I.js.map +0 -1
- package/loops.generated-G55SCI4R.js +0 -16
- package/loops.generated-G55SCI4R.js.map +0 -1
- package/loops.generated-NJOC2NMK.js +0 -16
- package/loops.generated-NJOC2NMK.js.map +0 -1
- package/luma-ai.generated-RZFZ75FX.js +0 -16
- package/luma-ai.generated-RZFZ75FX.js.map +0 -1
- package/luma-ai.generated-S6Z3QGDW.js +0 -16
- package/luma-ai.generated-S6Z3QGDW.js.map +0 -1
- package/luma.generated-FJYSJIGM.js +0 -16
- package/luma.generated-FJYSJIGM.js.map +0 -1
- package/luma.generated-JKZXRF7R.js +0 -16
- package/luma.generated-JKZXRF7R.js.map +0 -1
- package/mailchimp.generated-7XSORFN5.js +0 -16
- package/mailchimp.generated-7XSORFN5.js.map +0 -1
- package/mailchimp.generated-LP6YPY36.js +0 -16
- package/mailchimp.generated-LP6YPY36.js.map +0 -1
- package/mailsac.generated-2K3FIGHH.js +0 -16
- package/mailsac.generated-2K3FIGHH.js.map +0 -1
- package/mailsac.generated-UD7X5TO7.js +0 -16
- package/mailsac.generated-UD7X5TO7.js.map +0 -1
- package/make.generated-3NL7DSRL.js +0 -16
- package/make.generated-3NL7DSRL.js.map +0 -1
- package/make.generated-66C3YY2M.js +0 -16
- package/make.generated-66C3YY2M.js.map +0 -1
- package/manus.generated-IWUQTBWM.js +0 -16
- package/manus.generated-IWUQTBWM.js.map +0 -1
- package/manus.generated-VRSJEPES.js +0 -16
- package/manus.generated-VRSJEPES.js.map +0 -1
- package/mapbox.generated-FWIAPHMS.js +0 -16
- package/mapbox.generated-FWIAPHMS.js.map +0 -1
- package/mapbox.generated-WKY7P7QO.js +0 -16
- package/mapbox.generated-WKY7P7QO.js.map +0 -1
- package/maskdb.generated-G7ZJSNRB.js +0 -16
- package/maskdb.generated-G7ZJSNRB.js.map +0 -1
- package/maskdb.generated-IZ3HKDOG.js +0 -65
- package/maskdb.generated-IZ3HKDOG.js.map +0 -1
- package/massive.generated-H52ZKQ3G.js +0 -16
- package/massive.generated-H52ZKQ3G.js.map +0 -1
- package/massive.generated-HS33B6JC.js +0 -16
- package/massive.generated-HS33B6JC.js.map +0 -1
- package/mathpix.generated-M7CZRVBY.js +0 -16
- package/mathpix.generated-M7CZRVBY.js.map +0 -1
- package/mathpix.generated-XEBEMSSG.js +0 -16
- package/mathpix.generated-XEBEMSSG.js.map +0 -1
- package/mem0.generated-F5QOASVA.js +0 -16
- package/mem0.generated-F5QOASVA.js.map +0 -1
- package/mem0.generated-SV4AQSTK.js +0 -16
- package/mem0.generated-SV4AQSTK.js.map +0 -1
- package/mercury.generated-7RXKRQ2E.js +0 -16
- package/mercury.generated-7RXKRQ2E.js.map +0 -1
- package/mercury.generated-JDW5IOTZ.js +0 -16
- package/mercury.generated-JDW5IOTZ.js.map +0 -1
- package/meshy.generated-U2YOW2KQ.js +0 -16
- package/meshy.generated-U2YOW2KQ.js.map +0 -1
- package/meshy.generated-XXWGLFRR.js +0 -16
- package/meshy.generated-XXWGLFRR.js.map +0 -1
- package/meta-ads.generated-BO4KSWTB.js +0 -16
- package/meta-ads.generated-BO4KSWTB.js.map +0 -1
- package/meta-ads.generated-MNGO4S6H.js +0 -16
- package/meta-ads.generated-MNGO4S6H.js.map +0 -1
- package/metabase.generated-I7BI2SCP.js +0 -16
- package/metabase.generated-I7BI2SCP.js.map +0 -1
- package/metabase.generated-VROE6QM4.js +0 -16
- package/metabase.generated-VROE6QM4.js.map +0 -1
- package/microsoft-365.generated-7SIBC7I5.js +0 -16
- package/microsoft-365.generated-7SIBC7I5.js.map +0 -1
- package/microsoft-365.generated-EY4W6XGM.js +0 -16
- package/microsoft-365.generated-EY4W6XGM.js.map +0 -1
- package/minimax.generated-2QOHIYJ7.js +0 -16
- package/minimax.generated-2QOHIYJ7.js.map +0 -1
- package/minimax.generated-TUZBVXP6.js +0 -16
- package/minimax.generated-TUZBVXP6.js.map +0 -1
- package/miro.generated-6RVCMIKF.js +0 -16
- package/miro.generated-6RVCMIKF.js.map +0 -1
- package/miro.generated-NI3L32HY.js +0 -16
- package/miro.generated-NI3L32HY.js.map +0 -1
- package/mixpanel.generated-GI2KRDBR.js +0 -16
- package/mixpanel.generated-GI2KRDBR.js.map +0 -1
- package/mixpanel.generated-XHI2GL4M.js +0 -16
- package/mixpanel.generated-XHI2GL4M.js.map +0 -1
- package/modal.generated-IOMB6JHM.js +0 -16
- package/modal.generated-IOMB6JHM.js.map +0 -1
- package/modal.generated-VT4LLGOY.js +0 -16
- package/modal.generated-VT4LLGOY.js.map +0 -1
- package/monday.generated-3GCO245A.js +0 -16
- package/monday.generated-3GCO245A.js.map +0 -1
- package/monday.generated-ICJN6SA3.js +0 -16
- package/monday.generated-ICJN6SA3.js.map +0 -1
- package/moss.generated-E3464JIJ.js +0 -16
- package/moss.generated-E3464JIJ.js.map +0 -1
- package/moss.generated-QL4VPRWK.js +0 -16
- package/moss.generated-QL4VPRWK.js.map +0 -1
- package/msg9.generated-SRQZAQKQ.js +0 -16
- package/msg9.generated-SRQZAQKQ.js.map +0 -1
- package/msg9.generated-UKFSS263.js +0 -16
- package/msg9.generated-UKFSS263.js.map +0 -1
- package/n8n.generated-2BBTLDXE.js +0 -16
- package/n8n.generated-2BBTLDXE.js.map +0 -1
- package/n8n.generated-MAM3IF7E.js +0 -16
- package/n8n.generated-MAM3IF7E.js.map +0 -1
- package/neon.generated-ASFFUR25.js +0 -16
- package/neon.generated-ASFFUR25.js.map +0 -1
- package/neon.generated-WICH623I.js +0 -16
- package/neon.generated-WICH623I.js.map +0 -1
- package/netdata.generated-65SJSGA2.js +0 -16
- package/netdata.generated-65SJSGA2.js.map +0 -1
- package/netdata.generated-ZMPYNQTY.js +0 -16
- package/netdata.generated-ZMPYNQTY.js.map +0 -1
- package/netsuite.generated-3NXSZOXT.js +0 -16
- package/netsuite.generated-3NXSZOXT.js.map +0 -1
- package/netsuite.generated-XV3WXA4I.js +0 -16
- package/netsuite.generated-XV3WXA4I.js.map +0 -1
- package/nintendo-store.generated-2NZUKBVJ.js +0 -16
- package/nintendo-store.generated-2NZUKBVJ.js.map +0 -1
- package/nintendo-store.generated-EPABCSLJ.js +0 -16
- package/nintendo-store.generated-EPABCSLJ.js.map +0 -1
- package/nintendo-switch-parental-controls.generated-35V4BZRI.js +0 -16
- package/nintendo-switch-parental-controls.generated-35V4BZRI.js.map +0 -1
- package/nintendo-switch-parental-controls.generated-BJ3HY3NH.js +0 -16
- package/nintendo-switch-parental-controls.generated-BJ3HY3NH.js.map +0 -1
- package/notion.generated-26PVMFZJ.js +0 -16
- package/notion.generated-26PVMFZJ.js.map +0 -1
- package/notion.generated-JVIPX54E.js +0 -16
- package/notion.generated-JVIPX54E.js.map +0 -1
- package/novita.generated-2FJJZF2S.js +0 -16
- package/novita.generated-2FJJZF2S.js.map +0 -1
- package/novita.generated-UIQ42IUL.js +0 -16
- package/novita.generated-UIQ42IUL.js.map +0 -1
- package/nyne.generated-PSZUG5QY.js +0 -16
- package/nyne.generated-PSZUG5QY.js.map +0 -1
- package/nyne.generated-R3VNG53M.js +0 -16
- package/nyne.generated-R3VNG53M.js.map +0 -1
- package/onyx.generated-3JJWSPBR.js +0 -16
- package/onyx.generated-3JJWSPBR.js.map +0 -1
- package/onyx.generated-KS4UKL7H.js +0 -16
- package/onyx.generated-KS4UKL7H.js.map +0 -1
- package/openai.generated-25H24BGJ.js +0 -16
- package/openai.generated-25H24BGJ.js.map +0 -1
- package/openai.generated-TPRYCRRV.js +0 -16
- package/openai.generated-TPRYCRRV.js.map +0 -1
- package/openrouter.generated-5XPMZOCP.js +0 -16
- package/openrouter.generated-5XPMZOCP.js.map +0 -1
- package/openrouter.generated-NBDHO6LW.js +0 -16
- package/openrouter.generated-NBDHO6LW.js.map +0 -1
- package/openweather.generated-7ZHVSI2Q.js +0 -16
- package/openweather.generated-7ZHVSI2Q.js.map +0 -1
- package/openweather.generated-ROMIRSUS.js +0 -16
- package/openweather.generated-ROMIRSUS.js.map +0 -1
- package/outlook-calendar.generated-2JDC2IYT.js +0 -16
- package/outlook-calendar.generated-2JDC2IYT.js.map +0 -1
- package/outlook-calendar.generated-JTTEECF3.js +0 -16
- package/outlook-calendar.generated-JTTEECF3.js.map +0 -1
- package/outlook-mail.generated-FW45O7RQ.js +0 -16
- package/outlook-mail.generated-FW45O7RQ.js.map +0 -1
- package/outlook-mail.generated-SQEH2MNU.js +0 -16
- package/outlook-mail.generated-SQEH2MNU.js.map +0 -1
- package/pandadoc.generated-7S5GCGXI.js +0 -16
- package/pandadoc.generated-7S5GCGXI.js.map +0 -1
- package/pandadoc.generated-BUPVIHD4.js +0 -16
- package/pandadoc.generated-BUPVIHD4.js.map +0 -1
- package/parallel.generated-T2QM2RQL.js +0 -16
- package/parallel.generated-T2QM2RQL.js.map +0 -1
- package/parallel.generated-XAGRZVYH.js +0 -16
- package/parallel.generated-XAGRZVYH.js.map +0 -1
- package/paypal.generated-MDKROCJG.js +0 -16
- package/paypal.generated-MDKROCJG.js.map +0 -1
- package/paypal.generated-YZYYL7HX.js +0 -16
- package/paypal.generated-YZYYL7HX.js.map +0 -1
- package/pdf4me.generated-2HAK664D.js +0 -16
- package/pdf4me.generated-2HAK664D.js.map +0 -1
- package/pdf4me.generated-B5GJCNOL.js +0 -16
- package/pdf4me.generated-B5GJCNOL.js.map +0 -1
- package/pdfco.generated-IJOLQ4OG.js +0 -16
- package/pdfco.generated-IJOLQ4OG.js.map +0 -1
- package/pdfco.generated-PWLZXEBR.js +0 -16
- package/pdfco.generated-PWLZXEBR.js.map +0 -1
- package/pdforge.generated-NEOKWH7H.js +0 -16
- package/pdforge.generated-NEOKWH7H.js.map +0 -1
- package/pdforge.generated-PAQH2WGV.js +0 -16
- package/pdforge.generated-PAQH2WGV.js.map +0 -1
- package/people-data-labs.generated-PTKJIK4D.js +0 -16
- package/people-data-labs.generated-PTKJIK4D.js.map +0 -1
- package/people-data-labs.generated-UJB75LNA.js +0 -16
- package/people-data-labs.generated-UJB75LNA.js.map +0 -1
- package/perplexity.generated-BGTCHWGF.js +0 -16
- package/perplexity.generated-BGTCHWGF.js.map +0 -1
- package/perplexity.generated-YBA7RZ7S.js +0 -16
- package/perplexity.generated-YBA7RZ7S.js.map +0 -1
- package/pexels.generated-MDI2MAKR.js +0 -16
- package/pexels.generated-MDI2MAKR.js.map +0 -1
- package/pexels.generated-YSXOXFRS.js +0 -16
- package/pexels.generated-YSXOXFRS.js.map +0 -1
- package/pika.generated-ELAYHKXU.js +0 -16
- package/pika.generated-ELAYHKXU.js.map +0 -1
- package/pika.generated-YU3W7HY6.js +0 -16
- package/pika.generated-YU3W7HY6.js.map +0 -1
- package/pinecone.generated-7XMAYCDM.js +0 -16
- package/pinecone.generated-7XMAYCDM.js.map +0 -1
- package/pinecone.generated-HA3L6WIX.js +0 -16
- package/pinecone.generated-HA3L6WIX.js.map +0 -1
- package/pipedream.generated-WDCAHL7H.js +0 -16
- package/pipedream.generated-WDCAHL7H.js.map +0 -1
- package/pipedream.generated-ZAF4A2F4.js +0 -16
- package/pipedream.generated-ZAF4A2F4.js.map +0 -1
- package/pipedrive.generated-NDA6AYZP.js +0 -16
- package/pipedrive.generated-NDA6AYZP.js.map +0 -1
- package/pipedrive.generated-VVXKZRU4.js +0 -16
- package/pipedrive.generated-VVXKZRU4.js.map +0 -1
- package/plain.generated-37QOE5LH.js +0 -16
- package/plain.generated-37QOE5LH.js.map +0 -1
- package/plain.generated-MHOVVMJY.js +0 -16
- package/plain.generated-MHOVVMJY.js.map +0 -1
- package/plausible.generated-O5JNHT2T.js +0 -16
- package/plausible.generated-O5JNHT2T.js.map +0 -1
- package/plausible.generated-Q57V3KFO.js +0 -16
- package/plausible.generated-Q57V3KFO.js.map +0 -1
- package/playstation.generated-5XSS5QPM.js +0 -16
- package/playstation.generated-5XSS5QPM.js.map +0 -1
- package/playstation.generated-GK3DIZEG.js +0 -16
- package/playstation.generated-GK3DIZEG.js.map +0 -1
- package/podchaser.generated-QUJGEYMJ.js +0 -16
- package/podchaser.generated-QUJGEYMJ.js.map +0 -1
- package/podchaser.generated-S6HTKMY2.js +0 -16
- package/podchaser.generated-S6HTKMY2.js.map +0 -1
- package/porkbun.generated-43VWHT5M.js +0 -16
- package/porkbun.generated-43VWHT5M.js.map +0 -1
- package/porkbun.generated-TLAPT422.js +0 -16
- package/porkbun.generated-TLAPT422.js.map +0 -1
- package/posthog.generated-A7DO447R.js +0 -16
- package/posthog.generated-A7DO447R.js.map +0 -1
- package/posthog.generated-NNGYQHNC.js +0 -16
- package/posthog.generated-NNGYQHNC.js.map +0 -1
- package/printful.generated-7T5CLGEJ.js +0 -16
- package/printful.generated-7T5CLGEJ.js.map +0 -1
- package/printful.generated-MDZ4FDEQ.js +0 -16
- package/printful.generated-MDZ4FDEQ.js.map +0 -1
- package/prisma-postgres.generated-MWPUK6L5.js +0 -16
- package/prisma-postgres.generated-MWPUK6L5.js.map +0 -1
- package/prisma-postgres.generated-RPR5BGGD.js +0 -16
- package/prisma-postgres.generated-RPR5BGGD.js.map +0 -1
- package/productlane.generated-BZH2M52E.js +0 -16
- package/productlane.generated-BZH2M52E.js.map +0 -1
- package/productlane.generated-EVDEW5OR.js +0 -16
- package/productlane.generated-EVDEW5OR.js.map +0 -1
- package/profound.generated-ITNYFF6E.js +0 -16
- package/profound.generated-ITNYFF6E.js.map +0 -1
- package/profound.generated-JOYJYP5X.js +0 -16
- package/profound.generated-JOYJYP5X.js.map +0 -1
- package/pushinator.generated-6HTDLNVJ.js +0 -16
- package/pushinator.generated-6HTDLNVJ.js.map +0 -1
- package/pushinator.generated-WT46YHCO.js +0 -16
- package/pushinator.generated-WT46YHCO.js.map +0 -1
- package/qdrant.generated-LQBRAMOK.js +0 -16
- package/qdrant.generated-LQBRAMOK.js.map +0 -1
- package/qdrant.generated-QGMEOAFO.js +0 -16
- package/qdrant.generated-QGMEOAFO.js.map +0 -1
- package/qiita.generated-CETQKI6U.js +0 -16
- package/qiita.generated-CETQKI6U.js.map +0 -1
- package/qiita.generated-PHTZ72JL.js +0 -16
- package/qiita.generated-PHTZ72JL.js.map +0 -1
- package/quickbooks.generated-5535LLZF.js +0 -16
- package/quickbooks.generated-5535LLZF.js.map +0 -1
- package/quickbooks.generated-ILTCAJRO.js +0 -16
- package/quickbooks.generated-ILTCAJRO.js.map +0 -1
- package/railway-project.generated-AFZKE36K.js +0 -16
- package/railway-project.generated-AFZKE36K.js.map +0 -1
- package/railway-project.generated-WMHWYEZ7.js +0 -16
- package/railway-project.generated-WMHWYEZ7.js.map +0 -1
- package/railway.generated-I6VCXM4F.js +0 -16
- package/railway.generated-I6VCXM4F.js.map +0 -1
- package/railway.generated-ZTDW2OVF.js +0 -16
- package/railway.generated-ZTDW2OVF.js.map +0 -1
- package/ramp.generated-GDRLFPGX.js +0 -16
- package/ramp.generated-GDRLFPGX.js.map +0 -1
- package/ramp.generated-RJKZQLIG.js +0 -16
- package/ramp.generated-RJKZQLIG.js.map +0 -1
- package/reap.generated-6B3G2OPC.js +0 -16
- package/reap.generated-6B3G2OPC.js.map +0 -1
- package/reap.generated-WAP7WY76.js +0 -16
- package/reap.generated-WAP7WY76.js.map +0 -1
- package/recraft.generated-JIRZPKOH.js +0 -16
- package/recraft.generated-JIRZPKOH.js.map +0 -1
- package/recraft.generated-S6LUCQ6Y.js +0 -16
- package/recraft.generated-S6LUCQ6Y.js.map +0 -1
- package/reddit.generated-X64MIQ7K.js +0 -16
- package/reddit.generated-X64MIQ7K.js.map +0 -1
- package/reddit.generated-XC5ZGYZS.js +0 -16
- package/reddit.generated-XC5ZGYZS.js.map +0 -1
- package/reducto.generated-A6EG7MKI.js +0 -16
- package/reducto.generated-A6EG7MKI.js.map +0 -1
- package/reducto.generated-HEQ36ZYP.js +0 -16
- package/reducto.generated-HEQ36ZYP.js.map +0 -1
- package/render.generated-KAN3ERCP.js +0 -16
- package/render.generated-KAN3ERCP.js.map +0 -1
- package/render.generated-ULLCX5I5.js +0 -16
- package/render.generated-ULLCX5I5.js.map +0 -1
- package/rentcast.generated-2LZTVFHF.js +0 -16
- package/rentcast.generated-2LZTVFHF.js.map +0 -1
- package/rentcast.generated-GBBZDYLS.js +0 -16
- package/rentcast.generated-GBBZDYLS.js.map +0 -1
- package/replicate.generated-OTF3BU6Q.js +0 -16
- package/replicate.generated-OTF3BU6Q.js.map +0 -1
- package/replicate.generated-PVWXEG2R.js +0 -16
- package/replicate.generated-PVWXEG2R.js.map +0 -1
- package/reportei.generated-3OMXGZLW.js +0 -16
- package/reportei.generated-3OMXGZLW.js.map +0 -1
- package/reportei.generated-OMZDRYF2.js +0 -16
- package/reportei.generated-OMZDRYF2.js.map +0 -1
- package/resend.generated-SNQKFCFU.js +0 -16
- package/resend.generated-SNQKFCFU.js.map +0 -1
- package/resend.generated-ZLELGIAA.js +0 -16
- package/resend.generated-ZLELGIAA.js.map +0 -1
- package/resource-ENHLW46D.js.map +0 -1
- package/revenuecat.generated-XMPGJ7BU.js +0 -16
- package/revenuecat.generated-XMPGJ7BU.js.map +0 -1
- package/revenuecat.generated-XQNHNP6K.js +0 -16
- package/revenuecat.generated-XQNHNP6K.js.map +0 -1
- package/runway.generated-6NJMUATX.js +0 -16
- package/runway.generated-6NJMUATX.js.map +0 -1
- package/runway.generated-YIMWKSK2.js +0 -16
- package/runway.generated-YIMWKSK2.js.map +0 -1
- package/salesforce.generated-5KLSM6C3.js +0 -16
- package/salesforce.generated-5KLSM6C3.js.map +0 -1
- package/salesforce.generated-WZUNVLKC.js +0 -16
- package/salesforce.generated-WZUNVLKC.js.map +0 -1
- package/scrapeninja.generated-77MTR2FT.js +0 -16
- package/scrapeninja.generated-77MTR2FT.js.map +0 -1
- package/scrapeninja.generated-HNT27RIK.js +0 -16
- package/scrapeninja.generated-HNT27RIK.js.map +0 -1
- package/segment.generated-PTNCAEPN.js +0 -16
- package/segment.generated-PTNCAEPN.js.map +0 -1
- package/segment.generated-ZQ5G35SN.js +0 -16
- package/segment.generated-ZQ5G35SN.js.map +0 -1
- package/semrush.generated-JSFLSUJH.js +0 -16
- package/semrush.generated-JSFLSUJH.js.map +0 -1
- package/semrush.generated-TZ6FLCLI.js +0 -16
- package/semrush.generated-TZ6FLCLI.js.map +0 -1
- package/sendgrid.generated-7ZIRLCBY.js +0 -16
- package/sendgrid.generated-7ZIRLCBY.js.map +0 -1
- package/sendgrid.generated-ZIISZJJV.js +0 -16
- package/sendgrid.generated-ZIISZJJV.js.map +0 -1
- package/sentry.generated-DLHCTOF4.js +0 -16
- package/sentry.generated-DLHCTOF4.js.map +0 -1
- package/sentry.generated-FQGBSZOW.js +0 -16
- package/sentry.generated-FQGBSZOW.js.map +0 -1
- package/serpapi.generated-D3XXB6PM.js +0 -16
- package/serpapi.generated-D3XXB6PM.js.map +0 -1
- package/serpapi.generated-T7TWC2EV.js +0 -16
- package/serpapi.generated-T7TWC2EV.js.map +0 -1
- package/servicenow.generated-6JAOXT2T.js +0 -16
- package/servicenow.generated-6JAOXT2T.js.map +0 -1
- package/servicenow.generated-SYD53QKL.js +0 -16
- package/servicenow.generated-SYD53QKL.js.map +0 -1
- package/shopify.generated-CBWJCWDO.js +0 -16
- package/shopify.generated-CBWJCWDO.js.map +0 -1
- package/shopify.generated-J5LJOTL2.js +0 -16
- package/shopify.generated-J5LJOTL2.js.map +0 -1
- package/shortio.generated-33OGHBXA.js +0 -16
- package/shortio.generated-33OGHBXA.js.map +0 -1
- package/shortio.generated-AK4HELH2.js +0 -16
- package/shortio.generated-AK4HELH2.js.map +0 -1
- package/similarweb.generated-LS5LWTS3.js +0 -16
- package/similarweb.generated-LS5LWTS3.js.map +0 -1
- package/similarweb.generated-U2WLW7PD.js +0 -16
- package/similarweb.generated-U2WLW7PD.js.map +0 -1
- package/slack-webhook.generated-CH6MAJDM.js +0 -16
- package/slack-webhook.generated-CH6MAJDM.js.map +0 -1
- package/slack-webhook.generated-WFSKREKT.js +0 -16
- package/slack-webhook.generated-WFSKREKT.js.map +0 -1
- package/slack.generated-K6CNNTWI.js +0 -16
- package/slack.generated-K6CNNTWI.js.map +0 -1
- package/slack.generated-OHDZZ2UW.js +0 -473
- package/slack.generated-OHDZZ2UW.js.map +0 -1
- package/slock.generated-GVG2UBIX.js +0 -16
- package/slock.generated-GVG2UBIX.js.map +0 -1
- package/slock.generated-UPM3H7WO.js +0 -16
- package/slock.generated-UPM3H7WO.js.map +0 -1
- package/snowflake.generated-776JFNOH.js +0 -16
- package/snowflake.generated-776JFNOH.js.map +0 -1
- package/snowflake.generated-ZIGWWUF7.js +0 -16
- package/snowflake.generated-ZIGWWUF7.js.map +0 -1
- package/sociavault.generated-VBPZFT3O.js +0 -16
- package/sociavault.generated-VBPZFT3O.js.map +0 -1
- package/sociavault.generated-ZYWACDCU.js +0 -16
- package/sociavault.generated-ZYWACDCU.js.map +0 -1
- package/sponge.generated-P7T47F43.js +0 -16
- package/sponge.generated-P7T47F43.js.map +0 -1
- package/sponge.generated-QTEUYJHA.js +0 -16
- package/sponge.generated-QTEUYJHA.js.map +0 -1
- package/spotify.generated-EJQTESOU.js +0 -16
- package/spotify.generated-EJQTESOU.js.map +0 -1
- package/spotify.generated-OXNISOTN.js +0 -16
- package/spotify.generated-OXNISOTN.js.map +0 -1
- package/sproutgigs.generated-3FP2NV5J.js +0 -16
- package/sproutgigs.generated-3FP2NV5J.js.map +0 -1
- package/sproutgigs.generated-CHKBYDBP.js +0 -16
- package/sproutgigs.generated-CHKBYDBP.js.map +0 -1
- package/square.generated-5PASNXED.js +0 -16
- package/square.generated-5PASNXED.js.map +0 -1
- package/square.generated-I6H75UKF.js +0 -16
- package/square.generated-I6H75UKF.js.map +0 -1
- package/stability-ai.generated-HSDGH6SM.js +0 -16
- package/stability-ai.generated-HSDGH6SM.js.map +0 -1
- package/stability-ai.generated-JGDK6GCK.js +0 -16
- package/stability-ai.generated-JGDK6GCK.js.map +0 -1
- package/steam.generated-JNN222NQ.js +0 -16
- package/steam.generated-JNN222NQ.js.map +0 -1
- package/steam.generated-MYOJ4S7Z.js +0 -16
- package/steam.generated-MYOJ4S7Z.js.map +0 -1
- package/strapi.generated-FOD5SNK7.js +0 -16
- package/strapi.generated-FOD5SNK7.js.map +0 -1
- package/strapi.generated-XW3OUKD3.js +0 -16
- package/strapi.generated-XW3OUKD3.js.map +0 -1
- package/strava.generated-SX6ODSWN.js +0 -16
- package/strava.generated-SX6ODSWN.js.map +0 -1
- package/strava.generated-ZPHTZOG5.js +0 -16
- package/strava.generated-ZPHTZOG5.js.map +0 -1
- package/streak.generated-2TY5VN46.js +0 -16
- package/streak.generated-2TY5VN46.js.map +0 -1
- package/streak.generated-AAR623MO.js +0 -16
- package/streak.generated-AAR623MO.js.map +0 -1
- package/stripe.generated-DHUQVNCR.js +0 -16
- package/stripe.generated-DHUQVNCR.js.map +0 -1
- package/stripe.generated-Z4UPVGVB.js +0 -16
- package/stripe.generated-Z4UPVGVB.js.map +0 -1
- package/supabase.generated-GIN56AML.js +0 -16
- package/supabase.generated-GIN56AML.js.map +0 -1
- package/supabase.generated-QDEGTI2K.js +0 -16
- package/supabase.generated-QDEGTI2K.js.map +0 -1
- package/supadata.generated-IS4ACMQV.js +0 -16
- package/supadata.generated-IS4ACMQV.js.map +0 -1
- package/supadata.generated-SWMZHLJD.js +0 -16
- package/supadata.generated-SWMZHLJD.js.map +0 -1
- package/supermemory.generated-7UE326A4.js +0 -16
- package/supermemory.generated-7UE326A4.js.map +0 -1
- package/supermemory.generated-GEN3T7GF.js +0 -16
- package/supermemory.generated-GEN3T7GF.js.map +0 -1
- package/tavily.generated-PP7CNTMD.js +0 -16
- package/tavily.generated-PP7CNTMD.js.map +0 -1
- package/tavily.generated-TLJZAXJ2.js +0 -16
- package/tavily.generated-TLJZAXJ2.js.map +0 -1
- package/test-oauth.generated-5CGAUTCY.js +0 -16
- package/test-oauth.generated-5CGAUTCY.js.map +0 -1
- package/test-oauth.generated-AS3FZUPO.js +0 -16
- package/test-oauth.generated-AS3FZUPO.js.map +0 -1
- package/testrail.generated-BPX45BM6.js +0 -16
- package/testrail.generated-BPX45BM6.js.map +0 -1
- package/testrail.generated-UTM7ARO2.js +0 -16
- package/testrail.generated-UTM7ARO2.js.map +0 -1
- package/ticketmaster.generated-57OJN3HK.js +0 -16
- package/ticketmaster.generated-57OJN3HK.js.map +0 -1
- package/ticketmaster.generated-AVL5TDW7.js +0 -16
- package/ticketmaster.generated-AVL5TDW7.js.map +0 -1
- package/tiktok-ads.generated-GPW4I5CI.js +0 -16
- package/tiktok-ads.generated-GPW4I5CI.js.map +0 -1
- package/tiktok-ads.generated-R3V3TMJ4.js +0 -16
- package/tiktok-ads.generated-R3V3TMJ4.js.map +0 -1
- package/tldv.generated-3KLPFNDD.js +0 -16
- package/tldv.generated-3KLPFNDD.js.map +0 -1
- package/tldv.generated-MVSWWDBM.js +0 -16
- package/tldv.generated-MVSWWDBM.js.map +0 -1
- package/todoist.generated-FFYZ4NIZ.js +0 -16
- package/todoist.generated-FFYZ4NIZ.js.map +0 -1
- package/todoist.generated-NM6Z3GCJ.js +0 -16
- package/todoist.generated-NM6Z3GCJ.js.map +0 -1
- package/together.generated-5YS3OEZE.js +0 -16
- package/together.generated-5YS3OEZE.js.map +0 -1
- package/together.generated-PSYZA3KN.js +0 -16
- package/together.generated-PSYZA3KN.js.map +0 -1
- package/tripo.generated-5F34VTF4.js +0 -16
- package/tripo.generated-5F34VTF4.js.map +0 -1
- package/tripo.generated-7S3ANJRS.js +0 -16
- package/tripo.generated-7S3ANJRS.js.map +0 -1
- package/twenty.generated-WF2SZFFB.js +0 -16
- package/twenty.generated-WF2SZFFB.js.map +0 -1
- package/twenty.generated-ZXGDLWVG.js +0 -16
- package/twenty.generated-ZXGDLWVG.js.map +0 -1
- package/twilio.generated-WZSOVEW3.js +0 -16
- package/twilio.generated-WZSOVEW3.js.map +0 -1
- package/twilio.generated-Z4JUDX4A.js +0 -16
- package/twilio.generated-Z4JUDX4A.js.map +0 -1
- package/typeform.generated-CCVF2SMJ.js +0 -16
- package/typeform.generated-CCVF2SMJ.js.map +0 -1
- package/typeform.generated-TSCH32VY.js +0 -16
- package/typeform.generated-TSCH32VY.js.map +0 -1
- package/v0.generated-AHDUZAKI.js +0 -16
- package/v0.generated-AHDUZAKI.js.map +0 -1
- package/v0.generated-TDUFN32G.js +0 -16
- package/v0.generated-TDUFN32G.js.map +0 -1
- package/vercel.generated-KUI7SG5R.js +0 -16
- package/vercel.generated-KUI7SG5R.js.map +0 -1
- package/vercel.generated-VMADVAUI.js +0 -16
- package/vercel.generated-VMADVAUI.js.map +0 -1
- package/wandb.generated-D746TCXQ.js +0 -16
- package/wandb.generated-D746TCXQ.js.map +0 -1
- package/wandb.generated-PCEJFRBT.js +0 -16
- package/wandb.generated-PCEJFRBT.js.map +0 -1
- package/webflow.generated-LSUHGBGF.js +0 -16
- package/webflow.generated-LSUHGBGF.js.map +0 -1
- package/webflow.generated-ZAJJMPSA.js +0 -16
- package/webflow.generated-ZAJJMPSA.js.map +0 -1
- package/weread.generated-5GFOIT5R.js +0 -16
- package/weread.generated-5GFOIT5R.js.map +0 -1
- package/weread.generated-Z7OERNZI.js +0 -16
- package/weread.generated-Z7OERNZI.js.map +0 -1
- package/whale-alert.generated-7W5MNRAU.js +0 -16
- package/whale-alert.generated-7W5MNRAU.js.map +0 -1
- package/whale-alert.generated-CKGEQMWK.js +0 -16
- package/whale-alert.generated-CKGEQMWK.js.map +0 -1
- package/wix.generated-EOVJX56S.js +0 -16
- package/wix.generated-EOVJX56S.js.map +0 -1
- package/wix.generated-RQZH5S25.js +0 -16
- package/wix.generated-RQZH5S25.js.map +0 -1
- package/workday.generated-4MPT7O3V.js +0 -16
- package/workday.generated-4MPT7O3V.js.map +0 -1
- package/workday.generated-AHL44LEE.js +0 -16
- package/workday.generated-AHL44LEE.js.map +0 -1
- package/workos.generated-3SFUXTKD.js +0 -16
- package/workos.generated-3SFUXTKD.js.map +0 -1
- package/workos.generated-OAHVH7Y4.js +0 -16
- package/workos.generated-OAHVH7Y4.js.map +0 -1
- package/wrike.generated-JEXQ6TSH.js +0 -16
- package/wrike.generated-JEXQ6TSH.js.map +0 -1
- package/wrike.generated-XT4EET44.js +0 -16
- package/wrike.generated-XT4EET44.js.map +0 -1
- package/x.generated-HPTC6XRL.js +0 -16
- package/x.generated-HPTC6XRL.js.map +0 -1
- package/x.generated-RM23ZNTB.js +0 -16
- package/x.generated-RM23ZNTB.js.map +0 -1
- package/xero.generated-SGWSZ354.js +0 -16
- package/xero.generated-SGWSZ354.js.map +0 -1
- package/xero.generated-VD7ONAU3.js +0 -16
- package/xero.generated-VD7ONAU3.js.map +0 -1
- package/youtube.generated-CVE5S3V4.js +0 -16
- package/youtube.generated-CVE5S3V4.js.map +0 -1
- package/youtube.generated-XGY5NA6Q.js +0 -16
- package/youtube.generated-XGY5NA6Q.js.map +0 -1
- package/zapier.generated-B64YWHJL.js +0 -16
- package/zapier.generated-B64YWHJL.js.map +0 -1
- package/zapier.generated-ED5AA3B4.js +0 -16
- package/zapier.generated-ED5AA3B4.js.map +0 -1
- package/zapsign.generated-KSU2XZZC.js +0 -16
- package/zapsign.generated-KSU2XZZC.js.map +0 -1
- package/zapsign.generated-OLLDYFW3.js +0 -16
- package/zapsign.generated-OLLDYFW3.js.map +0 -1
- package/zendesk.generated-UJ4H2RRU.js +0 -16
- package/zendesk.generated-UJ4H2RRU.js.map +0 -1
- package/zendesk.generated-VRW33ITJ.js +0 -16
- package/zendesk.generated-VRW33ITJ.js.map +0 -1
- package/zep.generated-JPKJY2NZ.js +0 -16
- package/zep.generated-JPKJY2NZ.js.map +0 -1
- package/zep.generated-ZCDQCNEA.js +0 -16
- package/zep.generated-ZCDQCNEA.js.map +0 -1
- package/zeptomail.generated-IFGEI2Q3.js +0 -16
- package/zeptomail.generated-IFGEI2Q3.js.map +0 -1
- package/zeptomail.generated-ZOEIF2KT.js +0 -16
- package/zeptomail.generated-ZOEIF2KT.js.map +0 -1
- package/zoom.generated-F2OK37WV.js +0 -16
- package/zoom.generated-F2OK37WV.js.map +0 -1
- package/zoom.generated-OP7OR6UF.js +0 -16
- package/zoom.generated-OP7OR6UF.js.map +0 -1
- /package/{agent-RI5TB3MT.js.map → agent-JH2NEPZR.js.map} +0 -0
- /package/{banking-ZZTY42QD.js.map → banking-2NXK6J3W.js.map} +0 -0
- /package/{chat-VBEB2LIU.js.map → chat-MN4IB7GD.js.map} +0 -0
- /package/{chunk-2YG67KBB.js.map → chunk-BTGJACXR.js.map} +0 -0
- /package/{chunk-VWG7JMMA.js.map → chunk-FNQ62BY2.js.map} +0 -0
- /package/{chunk-3PWT6JIH.js.map → chunk-FZT6ZD5Z.js.map} +0 -0
- /package/{chunk-ZOTQGSKT.js.map → chunk-I564TTWT.js.map} +0 -0
- /package/{chunk-GE2LI4MS.js.map → chunk-RD5IGGLO.js.map} +0 -0
- /package/{chunk-MM5ESLJI.js.map → chunk-UF3EQMOH.js.map} +0 -0
- /package/{chunk-CEKLUICQ.js.map → chunk-VAXSHLMI.js.map} +0 -0
- /package/{computer-use-2GWQELMK.js.map → computer-use-XLD4LAIV.js.map} +0 -0
- /package/{connector-HVF5LTLS.js.map → connector-YDDOAHYS.js.map} +0 -0
- /package/{credit-DR3ZW2FG.js.map → credit-CEONTACE.js.map} +0 -0
- /package/{developer-support-LUUIXIXG.js.map → developer-support-FHWKHJGW.js.map} +0 -0
- /package/{generate-EEWDZMO7.js.map → generate-YDBYHQ4H.js.map} +0 -0
- /package/{github-WSCP6BCL.js.map → github-XIJ2Y5PZ.js.map} +0 -0
- /package/{goal-TBQ73X4G.js.map → goal-6I3U2AER.js.map} +0 -0
- /package/{host-FF62XPMH.js.map → host-IPPGVU6F.js.map} +0 -0
- /package/{maps-LC4V32L6.js.map → maps-YR4X4XJE.js.map} +0 -0
- /package/{memory-IQO5L4DF.js.map → memory-PLFDXK3U.js.map} +0 -0
- /package/{model-NJ3PEGDV.js.map → model-IHQGI5SD.js.map} +0 -0
- /package/{model-provider-MPBVWSUT.js.map → model-provider-KFJS22YT.js.map} +0 -0
- /package/{org-FFCTROTZ.js.map → org-7DENHEEO.js.map} +0 -0
- /package/{phone-35G4MSU4.js.map → phone-GYNROKO5.js.map} +0 -0
- /package/{preference-7LX3CJUT.js.map → preference-NHBRBTHG.js.map} +0 -0
- /package/{relationship-PKU2B5BP.js.map → relationship-TZ3AHEGI.js.map} +0 -0
- /package/{secret-7K6ED3SD.js.map → secret-X3Y6E65Z.js.map} +0 -0
- /package/{slack-VTGS2LE7.js.map → slack-35G46FJA.js.map} +0 -0
- /package/{teams-SOYUSM2G.js.map → teams-IMSR3V3W.js.map} +0 -0
- /package/{telegram-F2GYSKWJ.js.map → telegram-D3EWKPVI.js.map} +0 -0
- /package/{variable-6NWZSJVI.js.map → variable-QUYQA7OA.js.map} +0 -0
- /package/{video-VHL2UFS7.js.map → video-XOAQYGPA.js.map} +0 -0
- /package/{web-6A35VLL5.js.map → web-5ENALPKP.js.map} +0 -0
- /package/{whoami-6SU2NDI3.js.map → whoami-2Q2N7V3N.js.map} +0 -0
- /package/{workflow-W23JY7HR.js.map → workflow-OKSOZKGH.js.map} +0 -0
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
updateOrgModelPoliciesRequestSchema,
|
|
23
23
|
upsertModelProviderRequestSchema,
|
|
24
24
|
upsertModelProviderResponseSchema
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-RD5IGGLO.js";
|
|
26
26
|
import {
|
|
27
27
|
init_esm_shims
|
|
28
28
|
} from "./chunk-DIRAZ3YX.js";
|
|
@@ -65,7 +65,8 @@ var registryResourceDownloadContract = c.router({
|
|
|
65
65
|
path: "/api/registry/resources/download",
|
|
66
66
|
headers: authHeadersSchema,
|
|
67
67
|
query: external_exports.object({
|
|
68
|
-
id: external_exports.string().min(1, "Resource id is required")
|
|
68
|
+
id: external_exports.string().min(1, "Resource id is required"),
|
|
69
|
+
expectedSha256: external_exports.string().regex(/^[a-f0-9]{64}$/).optional()
|
|
69
70
|
}),
|
|
70
71
|
responses: {
|
|
71
72
|
200: external_exports.object({
|
|
@@ -1605,79 +1606,6 @@ function hasUnsafeUrlCodepoint(value) {
|
|
|
1605
1606
|
|
|
1606
1607
|
// ../../packages/connectors/src/segment-parser.ts
|
|
1607
1608
|
init_esm_shims();
|
|
1608
|
-
var ERROR_HINT = 'use "{name}", "prefix{name}", "{name}suffix", or "prefix{name}suffix"';
|
|
1609
|
-
function parseSegment(seg) {
|
|
1610
|
-
const openCount = countChar(seg, "{");
|
|
1611
|
-
const closeCount = countChar(seg, "}");
|
|
1612
|
-
if (openCount === 0 && closeCount === 0) {
|
|
1613
|
-
return { kind: "literal", value: seg };
|
|
1614
|
-
}
|
|
1615
|
-
if (openCount !== closeCount) {
|
|
1616
|
-
return {
|
|
1617
|
-
kind: "error",
|
|
1618
|
-
reason: `unbalanced brace in segment "${seg}" \u2014 ${ERROR_HINT}`
|
|
1619
|
-
};
|
|
1620
|
-
}
|
|
1621
|
-
const open1 = seg.indexOf("{");
|
|
1622
|
-
const close1 = seg.indexOf("}");
|
|
1623
|
-
if (close1 < open1) {
|
|
1624
|
-
return {
|
|
1625
|
-
kind: "error",
|
|
1626
|
-
reason: `unbalanced brace in segment "${seg}" \u2014 ${ERROR_HINT}`
|
|
1627
|
-
};
|
|
1628
|
-
}
|
|
1629
|
-
if (openCount >= 2) {
|
|
1630
|
-
const open2 = seg.indexOf("{", close1 + 1);
|
|
1631
|
-
if (close1 + 1 === open2) {
|
|
1632
|
-
return {
|
|
1633
|
-
kind: "error",
|
|
1634
|
-
reason: `adjacent parameters in segment "${seg}" \u2014 only one parameter per segment is allowed; ${ERROR_HINT}`
|
|
1635
|
-
};
|
|
1636
|
-
}
|
|
1637
|
-
return {
|
|
1638
|
-
kind: "error",
|
|
1639
|
-
reason: `literal-separated parameters in segment "${seg}" \u2014 only one parameter per segment is allowed; ${ERROR_HINT}`
|
|
1640
|
-
};
|
|
1641
|
-
}
|
|
1642
|
-
const prefix = seg.slice(0, open1);
|
|
1643
|
-
const content = seg.slice(open1 + 1, close1);
|
|
1644
|
-
const suffix = seg.slice(close1 + 1);
|
|
1645
|
-
if (prefix.includes("{") || prefix.includes("}") || suffix.includes("{") || suffix.includes("}")) {
|
|
1646
|
-
return {
|
|
1647
|
-
kind: "error",
|
|
1648
|
-
reason: `unbalanced brace in segment "${seg}" \u2014 ${ERROR_HINT}`
|
|
1649
|
-
};
|
|
1650
|
-
}
|
|
1651
|
-
let greedy = "";
|
|
1652
|
-
let name = content;
|
|
1653
|
-
if (content.length > 0) {
|
|
1654
|
-
const last = content[content.length - 1];
|
|
1655
|
-
if (last === "+" || last === "*") {
|
|
1656
|
-
greedy = last;
|
|
1657
|
-
name = content.slice(0, -1);
|
|
1658
|
-
}
|
|
1659
|
-
}
|
|
1660
|
-
if (name.length === 0) {
|
|
1661
|
-
return {
|
|
1662
|
-
kind: "error",
|
|
1663
|
-
reason: `empty parameter name in segment "${seg}" \u2014 ${ERROR_HINT}`
|
|
1664
|
-
};
|
|
1665
|
-
}
|
|
1666
|
-
return { kind: "param", prefix, name, suffix, greedy };
|
|
1667
|
-
}
|
|
1668
|
-
function splitPathSegments(path) {
|
|
1669
|
-
if (path === "" || path === "/") return [];
|
|
1670
|
-
const pathWithoutLeadingSlash = path.startsWith("/") ? path.slice(1) : path;
|
|
1671
|
-
if (pathWithoutLeadingSlash === "") return [];
|
|
1672
|
-
return pathWithoutLeadingSlash.split("/");
|
|
1673
|
-
}
|
|
1674
|
-
function countChar(s, ch) {
|
|
1675
|
-
let n = 0;
|
|
1676
|
-
for (let i = 0; i < s.length; i++) {
|
|
1677
|
-
if (s[i] === ch) n++;
|
|
1678
|
-
}
|
|
1679
|
-
return n;
|
|
1680
|
-
}
|
|
1681
1609
|
|
|
1682
1610
|
// ../../packages/connectors/src/firewall-types.ts
|
|
1683
1611
|
var HOST_DOT_EQUIVALENT_PATTERN = /[\u3002\uff0e\uff61]/g;
|
|
@@ -1827,96 +1755,17 @@ var networkPolicySchema = external_exports.object({
|
|
|
1827
1755
|
unknownPolicy: firewallPolicyValueSchema
|
|
1828
1756
|
});
|
|
1829
1757
|
var networkPoliciesSchema = external_exports.record(external_exports.string(), networkPolicySchema);
|
|
1830
|
-
var FirewallBaseUrlResolutionError = class extends Error {
|
|
1831
|
-
constructor(message) {
|
|
1832
|
-
super(message);
|
|
1833
|
-
this.name = "FirewallBaseUrlResolutionError";
|
|
1834
|
-
}
|
|
1835
|
-
};
|
|
1836
1758
|
var AUTH_REFERENCE_PATTERN = /\$\{\{\s*(secrets|vars)\.([a-zA-Z_][a-zA-Z0-9_]*)\s*\}\}/g;
|
|
1837
1759
|
var AUTH_REFERENCE_PATTERN_G = new RegExp(AUTH_REFERENCE_PATTERN.source, "g");
|
|
1838
1760
|
var AUTH_REFERENCE_PREFIX_PATTERN = new RegExp(
|
|
1839
1761
|
`^${AUTH_REFERENCE_PATTERN.source}`
|
|
1840
1762
|
);
|
|
1841
|
-
var AUTH_TEMPLATE_START = "${{";
|
|
1842
|
-
var AUTH_TEMPLATE_URL_PLACEHOLDER = "placeholder";
|
|
1843
1763
|
var IPV4_MAX_OCTET = 255;
|
|
1844
1764
|
var IPV4_OCTET_BASE = IPV4_MAX_OCTET + 1;
|
|
1845
|
-
var IPV4_NON_PUBLIC_RANGES = [
|
|
1846
|
-
[0, 16777215],
|
|
1847
|
-
[167772160, 184549375],
|
|
1848
|
-
[1681915904, 1686110207],
|
|
1849
|
-
[2130706432, 2147483647],
|
|
1850
|
-
[2851995648, 2852061183],
|
|
1851
|
-
[2886729728, 2887778303],
|
|
1852
|
-
[3221225472, 3221225480],
|
|
1853
|
-
[3221225483, 3221225727],
|
|
1854
|
-
[3221225984, 3221226239],
|
|
1855
|
-
[3227017984, 3227018239],
|
|
1856
|
-
[3232235520, 3232301055],
|
|
1857
|
-
[3323068416, 3323199487],
|
|
1858
|
-
[3325256704, 3325256959],
|
|
1859
|
-
[3405803776, 3405804031],
|
|
1860
|
-
[3758096384, 4294967295]
|
|
1861
|
-
];
|
|
1862
1765
|
var BASE_URL_VARS_PATTERN = /\$\{\{\s*vars\.([a-zA-Z_][a-zA-Z0-9_]*)\s*\}\}/;
|
|
1863
1766
|
var BASE_URL_VARS_PATTERN_G = new RegExp(BASE_URL_VARS_PATTERN.source, "g");
|
|
1864
|
-
var URL_COMPONENT_DELIMITER_PATTERN = /[/?#]/;
|
|
1865
|
-
var AUTHORITY_VAR_STRUCTURE_CHARS = /* @__PURE__ */ new Set(["/", "?", "#", "@", "\\"]);
|
|
1866
|
-
var AUTHORITY_FRAGMENT_VAR_STRUCTURE_CHARS = /* @__PURE__ */ new Set([
|
|
1867
|
-
"/",
|
|
1868
|
-
":",
|
|
1869
|
-
"?",
|
|
1870
|
-
"#",
|
|
1871
|
-
"@",
|
|
1872
|
-
"\\"
|
|
1873
|
-
]);
|
|
1874
|
-
var PERCENT_DECODED_BOUNDARY_CHARS = /* @__PURE__ */ new Set(["/", ":", "?", "#", "@", "\\"]);
|
|
1875
|
-
var BASE_URL_VAR_PARAMETER_CHARS = /* @__PURE__ */ new Set(["{", "}"]);
|
|
1876
1767
|
var PATH_VAR_STRUCTURE_CHARS = /* @__PURE__ */ new Set(["/", "?", "#", "\\"]);
|
|
1877
|
-
var PORT_VAR_PATTERN = /^[0-9]+$/;
|
|
1878
1768
|
var MAX_PATH_PERCENT_DECODE_PASSES = 5;
|
|
1879
|
-
function hasBaseUrlVars(base) {
|
|
1880
|
-
return BASE_URL_VARS_PATTERN.test(base);
|
|
1881
|
-
}
|
|
1882
|
-
function baseUrlVariableError(base, serviceName, name, detail) {
|
|
1883
|
-
return new Error(
|
|
1884
|
-
errMsg(base, serviceName, `base URL variable "${name}" ${detail}`)
|
|
1885
|
-
);
|
|
1886
|
-
}
|
|
1887
|
-
function validateBaseUrlVariableCommonSyntax({
|
|
1888
|
-
base,
|
|
1889
|
-
serviceName,
|
|
1890
|
-
name,
|
|
1891
|
-
value
|
|
1892
|
-
}) {
|
|
1893
|
-
if (WHITESPACE_PATTERN.test(value)) {
|
|
1894
|
-
throw baseUrlVariableError(
|
|
1895
|
-
base,
|
|
1896
|
-
serviceName,
|
|
1897
|
-
name,
|
|
1898
|
-
"must not contain whitespace"
|
|
1899
|
-
);
|
|
1900
|
-
}
|
|
1901
|
-
if (hasUnsafeUrlCodepoint(value)) {
|
|
1902
|
-
throw baseUrlVariableError(
|
|
1903
|
-
base,
|
|
1904
|
-
serviceName,
|
|
1905
|
-
name,
|
|
1906
|
-
"must not contain control characters or invalid Unicode"
|
|
1907
|
-
);
|
|
1908
|
-
}
|
|
1909
|
-
for (const char of value) {
|
|
1910
|
-
if (BASE_URL_VAR_PARAMETER_CHARS.has(char)) {
|
|
1911
|
-
throw baseUrlVariableError(
|
|
1912
|
-
base,
|
|
1913
|
-
serviceName,
|
|
1914
|
-
name,
|
|
1915
|
-
"must not contain firewall parameter syntax"
|
|
1916
|
-
);
|
|
1917
|
-
}
|
|
1918
|
-
}
|
|
1919
|
-
}
|
|
1920
1769
|
function pathPartDotPrefix(part) {
|
|
1921
1770
|
return part.split(";", 1)[0];
|
|
1922
1771
|
}
|
|
@@ -1980,1457 +1829,129 @@ function pathSegmentHasUnsafeSyntax(segment, rejectPathStructure) {
|
|
|
1980
1829
|
if (decoded2 === current) return false;
|
|
1981
1830
|
current = decoded2;
|
|
1982
1831
|
}
|
|
1983
|
-
if (pathSegmentHasUnsafeSyntaxParts(current, rejectPathStructure) || normalizedPathSegmentHasUnsafeSyntax(current, rejectPathStructure)) {
|
|
1984
|
-
return true;
|
|
1985
|
-
}
|
|
1986
|
-
const decoded = percentDecodePathSegment(current, rejectPathStructure);
|
|
1987
|
-
return decoded === null || decoded !== current;
|
|
1988
|
-
}
|
|
1989
|
-
function hasUnsafeFirewallPath(path) {
|
|
1990
|
-
return path.split("/").some((segment) => {
|
|
1991
|
-
return pathSegmentHasUnsafeSyntax(segment, false);
|
|
1992
|
-
});
|
|
1993
|
-
}
|
|
1994
|
-
function validateBaseUrlVariablePercentEncoding({
|
|
1995
|
-
base,
|
|
1996
|
-
serviceName,
|
|
1997
|
-
name,
|
|
1998
|
-
value,
|
|
1999
|
-
structureChars
|
|
2000
|
-
}) {
|
|
2001
|
-
for (let i = 0; i < value.length; i += 1) {
|
|
2002
|
-
if (value[i] !== "%") {
|
|
2003
|
-
continue;
|
|
2004
|
-
}
|
|
2005
|
-
if (i + 2 >= value.length || !isHexDigit(value[i + 1]) || !isHexDigit(value[i + 2])) {
|
|
2006
|
-
throw baseUrlVariableError(
|
|
2007
|
-
base,
|
|
2008
|
-
serviceName,
|
|
2009
|
-
name,
|
|
2010
|
-
"has invalid percent encoding"
|
|
2011
|
-
);
|
|
2012
|
-
}
|
|
2013
|
-
let end = i;
|
|
2014
|
-
while (end + 2 < value.length && value[end] === "%" && isHexDigit(value[end + 1]) && isHexDigit(value[end + 2])) {
|
|
2015
|
-
end += 3;
|
|
2016
|
-
}
|
|
2017
|
-
let decoded;
|
|
2018
|
-
try {
|
|
2019
|
-
decoded = decodeURIComponent(value.slice(i, end));
|
|
2020
|
-
} catch {
|
|
2021
|
-
throw baseUrlVariableError(
|
|
2022
|
-
base,
|
|
2023
|
-
serviceName,
|
|
2024
|
-
name,
|
|
2025
|
-
"has invalid percent encoding"
|
|
2026
|
-
);
|
|
2027
|
-
}
|
|
2028
|
-
for (const char of decoded) {
|
|
2029
|
-
if (structureChars.has(char) || WHITESPACE_PATTERN.test(char) || UNICODE_CONTROL_PATTERN.test(char)) {
|
|
2030
|
-
throw baseUrlVariableError(
|
|
2031
|
-
base,
|
|
2032
|
-
serviceName,
|
|
2033
|
-
name,
|
|
2034
|
-
"must not contain encoded URL structure"
|
|
2035
|
-
);
|
|
2036
|
-
}
|
|
2037
|
-
}
|
|
2038
|
-
i = end - 1;
|
|
2039
|
-
}
|
|
2040
|
-
if (!value.includes("%")) {
|
|
2041
|
-
return value;
|
|
2042
|
-
}
|
|
2043
|
-
try {
|
|
2044
|
-
return decodeURIComponent(value);
|
|
2045
|
-
} catch {
|
|
2046
|
-
throw baseUrlVariableError(
|
|
2047
|
-
base,
|
|
2048
|
-
serviceName,
|
|
2049
|
-
name,
|
|
2050
|
-
"has invalid percent encoding"
|
|
2051
|
-
);
|
|
2052
|
-
}
|
|
2053
|
-
}
|
|
2054
|
-
function validateBaseUrlPathSegment({
|
|
2055
|
-
base,
|
|
2056
|
-
serviceName,
|
|
2057
|
-
name,
|
|
2058
|
-
segment
|
|
2059
|
-
}) {
|
|
2060
|
-
if (pathSegmentHasUnsafeSyntax(segment, true)) {
|
|
2061
|
-
throw baseUrlVariableError(
|
|
2062
|
-
base,
|
|
2063
|
-
serviceName,
|
|
2064
|
-
name,
|
|
2065
|
-
"must not contain unsafe path segments"
|
|
2066
|
-
);
|
|
2067
|
-
}
|
|
2068
|
-
}
|
|
2069
|
-
function rawPathFromBaseUrl(value) {
|
|
2070
|
-
const schemeEnd = value.indexOf("://");
|
|
2071
|
-
if (schemeEnd === -1) return "";
|
|
2072
|
-
const afterScheme = value.slice(schemeEnd + 3);
|
|
2073
|
-
const pathStart = afterScheme.search(/[/?#]/);
|
|
2074
|
-
if (pathStart === -1 || afterScheme[pathStart] !== "/") return "";
|
|
2075
|
-
const pathAndAfter = afterScheme.slice(pathStart);
|
|
2076
|
-
const pathEnd = pathAndAfter.search(/[?#]/);
|
|
2077
|
-
return pathEnd === -1 ? pathAndAfter : pathAndAfter.slice(0, pathEnd);
|
|
2078
|
-
}
|
|
2079
|
-
function validateBaseUrlPrefixVariable({
|
|
2080
|
-
base,
|
|
2081
|
-
serviceName,
|
|
2082
|
-
name,
|
|
2083
|
-
value
|
|
2084
|
-
}) {
|
|
2085
|
-
const rawPath = rawPathFromBaseUrl(value);
|
|
2086
|
-
if (hasUnsafeFirewallPath(rawPath)) {
|
|
2087
|
-
throw baseUrlVariableError(
|
|
2088
|
-
base,
|
|
2089
|
-
serviceName,
|
|
2090
|
-
name,
|
|
2091
|
-
"must not contain unsafe path segments before a fixed path suffix"
|
|
2092
|
-
);
|
|
2093
|
-
}
|
|
2094
|
-
validateBaseUrl(value, serviceName);
|
|
2095
|
-
const url = new URL(value);
|
|
2096
|
-
if (url.search || url.hash) {
|
|
2097
|
-
throw baseUrlVariableError(
|
|
2098
|
-
base,
|
|
2099
|
-
serviceName,
|
|
2100
|
-
name,
|
|
2101
|
-
"must not contain query or fragment before a fixed path suffix"
|
|
2102
|
-
);
|
|
2103
|
-
}
|
|
2104
|
-
}
|
|
2105
|
-
function validateResolvedBaseUrlPathSafety(templateBase, serviceName, resolved) {
|
|
2106
|
-
const rawPath = rawPathFromBaseUrl(resolved);
|
|
2107
|
-
for (const segment of rawPath.split("/")) {
|
|
2108
|
-
if (pathSegmentHasUnsafeSyntax(segment, false)) {
|
|
2109
|
-
throw new Error(
|
|
2110
|
-
errMsg(
|
|
2111
|
-
templateBase,
|
|
2112
|
-
serviceName,
|
|
2113
|
-
"resolved base URL must not contain unsafe path segments"
|
|
2114
|
-
)
|
|
2115
|
-
);
|
|
2116
|
-
}
|
|
2117
|
-
}
|
|
2118
|
-
}
|
|
2119
|
-
function validateBaseUrlAuthorityVariable({
|
|
2120
|
-
base,
|
|
2121
|
-
serviceName,
|
|
2122
|
-
name,
|
|
2123
|
-
value
|
|
2124
|
-
}) {
|
|
2125
|
-
for (const char of value) {
|
|
2126
|
-
if (AUTHORITY_VAR_STRUCTURE_CHARS.has(char)) {
|
|
2127
|
-
throw baseUrlVariableError(
|
|
2128
|
-
base,
|
|
2129
|
-
serviceName,
|
|
2130
|
-
name,
|
|
2131
|
-
"must not introduce URL structure"
|
|
2132
|
-
);
|
|
2133
|
-
}
|
|
2134
|
-
}
|
|
2135
|
-
validateBaseUrlVariablePercentEncoding({
|
|
2136
|
-
base,
|
|
2137
|
-
serviceName,
|
|
2138
|
-
name,
|
|
2139
|
-
value,
|
|
2140
|
-
structureChars: PERCENT_DECODED_BOUNDARY_CHARS
|
|
2141
|
-
});
|
|
2142
|
-
validateBaseUrl(`https://${value}`, serviceName);
|
|
2143
|
-
}
|
|
2144
|
-
function validateBaseUrlAuthorityFragmentVariable({
|
|
2145
|
-
base,
|
|
2146
|
-
serviceName,
|
|
2147
|
-
name,
|
|
2148
|
-
value
|
|
2149
|
-
}) {
|
|
2150
|
-
for (const char of value) {
|
|
2151
|
-
if (AUTHORITY_FRAGMENT_VAR_STRUCTURE_CHARS.has(char)) {
|
|
2152
|
-
throw baseUrlVariableError(
|
|
2153
|
-
base,
|
|
2154
|
-
serviceName,
|
|
2155
|
-
name,
|
|
2156
|
-
"must not introduce URL structure"
|
|
2157
|
-
);
|
|
2158
|
-
}
|
|
2159
|
-
}
|
|
2160
|
-
validateBaseUrlVariablePercentEncoding({
|
|
2161
|
-
base,
|
|
2162
|
-
serviceName,
|
|
2163
|
-
name,
|
|
2164
|
-
value,
|
|
2165
|
-
structureChars: PERCENT_DECODED_BOUNDARY_CHARS
|
|
2166
|
-
});
|
|
2167
|
-
}
|
|
2168
|
-
function validateBaseUrlPortVariable({
|
|
2169
|
-
base,
|
|
2170
|
-
serviceName,
|
|
2171
|
-
name,
|
|
2172
|
-
value
|
|
2173
|
-
}) {
|
|
2174
|
-
if (!PORT_VAR_PATTERN.test(value)) {
|
|
2175
|
-
throw baseUrlVariableError(
|
|
2176
|
-
base,
|
|
2177
|
-
serviceName,
|
|
2178
|
-
name,
|
|
2179
|
-
"must be a numeric URL port"
|
|
2180
|
-
);
|
|
2181
|
-
}
|
|
2182
|
-
}
|
|
2183
|
-
function validateBaseUrlPathVariable({
|
|
2184
|
-
base,
|
|
2185
|
-
serviceName,
|
|
2186
|
-
name,
|
|
2187
|
-
value,
|
|
2188
|
-
prefix,
|
|
2189
|
-
suffix
|
|
2190
|
-
}) {
|
|
2191
|
-
for (const char of value) {
|
|
2192
|
-
if (PATH_VAR_STRUCTURE_CHARS.has(char)) {
|
|
2193
|
-
throw baseUrlVariableError(
|
|
2194
|
-
base,
|
|
2195
|
-
serviceName,
|
|
2196
|
-
name,
|
|
2197
|
-
"must not introduce path structure"
|
|
2198
|
-
);
|
|
2199
|
-
}
|
|
2200
|
-
}
|
|
2201
|
-
const decoded = validateBaseUrlVariablePercentEncoding({
|
|
2202
|
-
base,
|
|
2203
|
-
serviceName,
|
|
2204
|
-
name,
|
|
2205
|
-
value,
|
|
2206
|
-
structureChars: PATH_VAR_STRUCTURE_CHARS
|
|
2207
|
-
});
|
|
2208
|
-
const prefixSegment = prefix.slice(prefix.lastIndexOf("/") + 1);
|
|
2209
|
-
const suffixSegmentEnd = suffix.search(URL_COMPONENT_DELIMITER_PATTERN);
|
|
2210
|
-
const suffixSegment = suffixSegmentEnd === -1 ? suffix : suffix.slice(0, suffixSegmentEnd);
|
|
2211
|
-
validateBaseUrlPathSegment({
|
|
2212
|
-
base,
|
|
2213
|
-
serviceName,
|
|
2214
|
-
name,
|
|
2215
|
-
segment: `${prefixSegment}${decoded}${suffixSegment}`
|
|
2216
|
-
});
|
|
2217
|
-
}
|
|
2218
|
-
function prefixIsInsideAuthority(prefix) {
|
|
2219
|
-
const schemeEnd = prefix.indexOf("://");
|
|
2220
|
-
if (schemeEnd === -1) return false;
|
|
2221
|
-
const afterScheme = prefix.slice(schemeEnd + 3);
|
|
2222
|
-
return !URL_COMPONENT_DELIMITER_PATTERN.test(afterScheme);
|
|
2223
|
-
}
|
|
2224
|
-
function prefixIsInsidePath(prefix) {
|
|
2225
|
-
const schemeEnd = prefix.indexOf("://");
|
|
2226
|
-
if (schemeEnd === -1) return false;
|
|
2227
|
-
const afterScheme = prefix.slice(schemeEnd + 3);
|
|
2228
|
-
if (afterScheme.includes("?") || afterScheme.includes("#")) return false;
|
|
2229
|
-
return afterScheme.includes("/");
|
|
2230
|
-
}
|
|
2231
|
-
function suffixAuthorityPrefix(suffix) {
|
|
2232
|
-
const delimiterIndex = suffix.search(URL_COMPONENT_DELIMITER_PATTERN);
|
|
2233
|
-
return delimiterIndex === -1 ? suffix : suffix.slice(0, delimiterIndex);
|
|
2234
|
-
}
|
|
2235
|
-
function validateBaseUrlTemplateVariable({
|
|
2236
|
-
base,
|
|
2237
|
-
serviceName,
|
|
2238
|
-
name,
|
|
2239
|
-
value,
|
|
2240
|
-
prefix,
|
|
2241
|
-
suffix
|
|
2242
|
-
}) {
|
|
2243
|
-
validateBaseUrlVariableCommonSyntax({ base, serviceName, name, value });
|
|
2244
|
-
if (prefix === "" && suffix === "") {
|
|
2245
|
-
return;
|
|
2246
|
-
}
|
|
2247
|
-
if (prefix === "" && suffix.startsWith("/")) {
|
|
2248
|
-
validateBaseUrlPrefixVariable({ base, serviceName, name, value });
|
|
2249
|
-
return;
|
|
2250
|
-
}
|
|
2251
|
-
if (prefix.endsWith("://") && (suffix === "" || suffix.startsWith("/"))) {
|
|
2252
|
-
validateBaseUrlAuthorityVariable({ base, serviceName, name, value });
|
|
2253
|
-
return;
|
|
2254
|
-
}
|
|
2255
|
-
if (prefixIsInsideAuthority(prefix) && prefix.endsWith(":") && (suffix === "" || suffix.startsWith("/"))) {
|
|
2256
|
-
validateBaseUrlPortVariable({ base, serviceName, name, value });
|
|
2257
|
-
return;
|
|
2258
|
-
}
|
|
2259
|
-
if (prefixIsInsideAuthority(prefix) && suffixAuthorityPrefix(suffix) !== "") {
|
|
2260
|
-
validateBaseUrlAuthorityFragmentVariable({
|
|
2261
|
-
base,
|
|
2262
|
-
serviceName,
|
|
2263
|
-
name,
|
|
2264
|
-
value
|
|
2265
|
-
});
|
|
2266
|
-
return;
|
|
2267
|
-
}
|
|
2268
|
-
if (prefixIsInsidePath(prefix)) {
|
|
2269
|
-
validateBaseUrlPathVariable({
|
|
2270
|
-
base,
|
|
2271
|
-
serviceName,
|
|
2272
|
-
name,
|
|
2273
|
-
value,
|
|
2274
|
-
prefix,
|
|
2275
|
-
suffix
|
|
2276
|
-
});
|
|
2277
|
-
return;
|
|
2278
|
-
}
|
|
2279
|
-
throw baseUrlVariableError(
|
|
2280
|
-
base,
|
|
2281
|
-
serviceName,
|
|
2282
|
-
name,
|
|
2283
|
-
"is used in an unsupported base URL template position"
|
|
2284
|
-
);
|
|
2285
|
-
}
|
|
2286
|
-
function baseUrlScheme(base) {
|
|
2287
|
-
const schemeEnd = base.indexOf("://");
|
|
2288
|
-
if (schemeEnd === -1) return "";
|
|
2289
|
-
return base.slice(0, schemeEnd).toLowerCase();
|
|
2290
|
-
}
|
|
2291
|
-
function validateCredentialedBaseUrlTransportValue(base, serviceName, credentialed) {
|
|
2292
|
-
if (!credentialed) return;
|
|
2293
|
-
if (baseUrlScheme(base) === REQUIRED_AUTH_BASE_URL_SCHEME) return;
|
|
2294
|
-
throw new Error(
|
|
2295
|
-
`Invalid base URL "${base}" in firewall "${serviceName}": credentialed base URL must use https`
|
|
2296
|
-
);
|
|
2297
|
-
}
|
|
2298
|
-
function normalizeHostPolicyHostname(hostname) {
|
|
2299
|
-
let normalized = hostname.replace(HOST_DOT_EQUIVALENT_PATTERN, ".").toLowerCase();
|
|
2300
|
-
if (normalized.endsWith(".")) {
|
|
2301
|
-
normalized = normalized.slice(0, -1);
|
|
2302
|
-
}
|
|
2303
|
-
return normalized;
|
|
2304
|
-
}
|
|
2305
|
-
function normalizeHostPolicySuffix(suffix) {
|
|
2306
|
-
const withoutLeadingDot = suffix.startsWith(".") ? suffix.slice(1) : suffix;
|
|
2307
|
-
return normalizeHostPolicyHostname(withoutLeadingDot);
|
|
2308
|
-
}
|
|
2309
|
-
function parseCanonicalIpv4Address(value) {
|
|
2310
|
-
if (!isCanonicalIpv4Address(value)) {
|
|
2311
|
-
return null;
|
|
2312
|
-
}
|
|
2313
|
-
return value.split(".").map((part) => {
|
|
2314
|
-
return Number(part);
|
|
2315
|
-
});
|
|
2316
|
-
}
|
|
2317
|
-
function ipv4PartsToNumber(parts) {
|
|
2318
|
-
if (parts.length !== 4) {
|
|
2319
|
-
return null;
|
|
2320
|
-
}
|
|
2321
|
-
return parts.reduce((acc, part) => {
|
|
2322
|
-
return acc * IPV4_OCTET_BASE + part;
|
|
2323
|
-
}, 0);
|
|
2324
|
-
}
|
|
2325
|
-
function isPublicIpv4Address(parts) {
|
|
2326
|
-
const value = ipv4PartsToNumber(parts);
|
|
2327
|
-
if (value === null) {
|
|
2328
|
-
return false;
|
|
2329
|
-
}
|
|
2330
|
-
return !IPV4_NON_PUBLIC_RANGES.some(([start, end]) => {
|
|
2331
|
-
return value >= start && value <= end;
|
|
2332
|
-
});
|
|
2333
|
-
}
|
|
2334
|
-
function parseIpv6Word(value) {
|
|
2335
|
-
if (value === "" || value.length > 4 || ![...value].every((char) => {
|
|
2336
|
-
return isHexDigit(char);
|
|
2337
|
-
})) {
|
|
2338
|
-
return null;
|
|
2339
|
-
}
|
|
2340
|
-
return Number.parseInt(value, 16);
|
|
2341
|
-
}
|
|
2342
|
-
function parseIpv6WordList(value) {
|
|
2343
|
-
if (value === "") {
|
|
2344
|
-
return [];
|
|
2345
|
-
}
|
|
2346
|
-
const words = [];
|
|
2347
|
-
for (const part of value.split(":")) {
|
|
2348
|
-
const word = parseIpv6Word(part);
|
|
2349
|
-
if (word === null) {
|
|
2350
|
-
return null;
|
|
2351
|
-
}
|
|
2352
|
-
words.push(word);
|
|
2353
|
-
}
|
|
2354
|
-
return words;
|
|
2355
|
-
}
|
|
2356
|
-
function parseIpv6Address(value) {
|
|
2357
|
-
if (value.includes("%")) {
|
|
2358
|
-
return null;
|
|
2359
|
-
}
|
|
2360
|
-
let normalized = value.toLowerCase();
|
|
2361
|
-
if (normalized.includes(".")) {
|
|
2362
|
-
const lastColon = normalized.lastIndexOf(":");
|
|
2363
|
-
if (lastColon === -1) {
|
|
2364
|
-
return null;
|
|
2365
|
-
}
|
|
2366
|
-
const ipv4Parts = parseCanonicalIpv4Address(
|
|
2367
|
-
normalized.slice(lastColon + 1)
|
|
2368
|
-
);
|
|
2369
|
-
if (!ipv4Parts) {
|
|
2370
|
-
return null;
|
|
2371
|
-
}
|
|
2372
|
-
const highWord = (ipv4Parts[0] << 8) + ipv4Parts[1];
|
|
2373
|
-
const lowWord = (ipv4Parts[2] << 8) + ipv4Parts[3];
|
|
2374
|
-
normalized = `${normalized.slice(0, lastColon)}:${highWord.toString(16)}:${lowWord.toString(16)}`;
|
|
2375
|
-
}
|
|
2376
|
-
const compressed = normalized.split("::");
|
|
2377
|
-
if (compressed.length > 2) {
|
|
2378
|
-
return null;
|
|
2379
|
-
}
|
|
2380
|
-
const left = parseIpv6WordList(compressed[0]);
|
|
2381
|
-
const right = compressed.length === 2 ? parseIpv6WordList(compressed[1]) : [];
|
|
2382
|
-
if (!left || !right) {
|
|
2383
|
-
return null;
|
|
2384
|
-
}
|
|
2385
|
-
if (compressed.length === 1) {
|
|
2386
|
-
return left.length === 8 ? left : null;
|
|
2387
|
-
}
|
|
2388
|
-
const zeroCount = 8 - left.length - right.length;
|
|
2389
|
-
if (zeroCount < 1) {
|
|
2390
|
-
return null;
|
|
2391
|
-
}
|
|
2392
|
-
return [
|
|
2393
|
-
...left,
|
|
2394
|
-
...Array.from({ length: zeroCount }, () => {
|
|
2395
|
-
return 0;
|
|
2396
|
-
}),
|
|
2397
|
-
...right
|
|
2398
|
-
];
|
|
2399
|
-
}
|
|
2400
|
-
function isPublicIpv6SpecialRegistryException(words) {
|
|
2401
|
-
const second = words[1];
|
|
2402
|
-
if (second === 1 && words[2] === 0 && words[3] === 0 && words[4] === 0 && words[5] === 0 && words[6] === 0 && words[7] >= 1 && words[7] <= 3) {
|
|
2403
|
-
return true;
|
|
2404
|
-
}
|
|
2405
|
-
if (second === 3) {
|
|
2406
|
-
return true;
|
|
2407
|
-
}
|
|
2408
|
-
if (second === 4 && words[2] === 274) {
|
|
2409
|
-
return true;
|
|
2410
|
-
}
|
|
2411
|
-
if (second >= 32 && second <= 47) {
|
|
2412
|
-
return true;
|
|
2413
|
-
}
|
|
2414
|
-
return second >= 48 && second <= 63;
|
|
2415
|
-
}
|
|
2416
|
-
function isPublicIpv6Address(words) {
|
|
2417
|
-
if (words.length !== 8) {
|
|
2418
|
-
return false;
|
|
2419
|
-
}
|
|
2420
|
-
const first = words[0];
|
|
2421
|
-
const second = words[1];
|
|
2422
|
-
if ((first & 57344) !== 8192) {
|
|
2423
|
-
return false;
|
|
2424
|
-
}
|
|
2425
|
-
if (first === 8193 && second <= 511) {
|
|
2426
|
-
return isPublicIpv6SpecialRegistryException(words);
|
|
2427
|
-
}
|
|
2428
|
-
if (first === 8193 && second === 3512) {
|
|
2429
|
-
return false;
|
|
2430
|
-
}
|
|
2431
|
-
if (first === 16383 && second <= 4095) {
|
|
2432
|
-
return false;
|
|
2433
|
-
}
|
|
2434
|
-
if (first === 8194) {
|
|
2435
|
-
return false;
|
|
2436
|
-
}
|
|
2437
|
-
return true;
|
|
2438
|
-
}
|
|
2439
|
-
function hostPolicyIpLiteralIsPublic(hostname) {
|
|
2440
|
-
if (hostname.startsWith("[") && hostname.endsWith("]")) {
|
|
2441
|
-
const words = parseIpv6Address(hostname.slice(1, -1));
|
|
2442
|
-
return words ? isPublicIpv6Address(words) : false;
|
|
2443
|
-
}
|
|
2444
|
-
const ipv4Parts = parseCanonicalIpv4Address(hostname);
|
|
2445
|
-
if (ipv4Parts) {
|
|
2446
|
-
return isPublicIpv4Address(ipv4Parts);
|
|
2447
|
-
}
|
|
2448
|
-
const normalizedIpv4Host = normalizeHostForIpv4LiteralSyntax(hostname);
|
|
2449
|
-
if (isIpv4LiteralLike(normalizedIpv4Host)) {
|
|
2450
|
-
return false;
|
|
2451
|
-
}
|
|
2452
|
-
return null;
|
|
2453
|
-
}
|
|
2454
|
-
function providerOwnedHostMatches(hostname, hostPolicy, options = {}) {
|
|
2455
|
-
if (options.allowExactHosts !== false) {
|
|
2456
|
-
const exactHosts = hostPolicy.exactHosts ?? [];
|
|
2457
|
-
for (const exactHost of exactHosts) {
|
|
2458
|
-
if (hostname === normalizeHostPolicyHostname(exactHost)) {
|
|
2459
|
-
return true;
|
|
2460
|
-
}
|
|
2461
|
-
}
|
|
2462
|
-
}
|
|
2463
|
-
const suffixes = hostPolicy.suffixes ?? [];
|
|
2464
|
-
for (const suffix of suffixes) {
|
|
2465
|
-
const normalizedSuffix = normalizeHostPolicySuffix(suffix);
|
|
2466
|
-
if (normalizedSuffix !== "" && hostname.length > normalizedSuffix.length && hostname.endsWith(`.${normalizedSuffix}`)) {
|
|
2467
|
-
return true;
|
|
2468
|
-
}
|
|
2469
|
-
}
|
|
2470
|
-
return false;
|
|
2471
|
-
}
|
|
2472
|
-
function baseUrlAuthorityHasParams(base) {
|
|
2473
|
-
const authority = rawAuthorityFromBaseUrl(base);
|
|
2474
|
-
return authority !== null && hasBaseUrlParams(authority);
|
|
2475
|
-
}
|
|
2476
|
-
function validateHostPolicyShape(base, serviceName, hostPolicy) {
|
|
2477
|
-
const result = firewallBaseHostPolicySchema.safeParse(hostPolicy);
|
|
2478
|
-
if (result.success) return;
|
|
2479
|
-
const message = result.error.issues.map((issue) => {
|
|
2480
|
-
return issue.message;
|
|
2481
|
-
}).join("; ");
|
|
2482
|
-
throw new Error(
|
|
2483
|
-
errMsg(base, serviceName, `hostPolicy is invalid: ${message}`)
|
|
2484
|
-
);
|
|
2485
|
-
}
|
|
2486
|
-
function urlForHostPolicyValidation(base, serviceName) {
|
|
2487
|
-
if (!baseUrlAuthorityHasParams(base)) return new URL(base);
|
|
2488
|
-
const schemeEnd = base.indexOf("://");
|
|
2489
|
-
const authority = rawAuthorityFromBaseUrl(base);
|
|
2490
|
-
if (schemeEnd === -1 || authority === null) return new URL(base);
|
|
2491
|
-
const authorityParts = splitParameterizedAuthority(
|
|
2492
|
-
authority,
|
|
2493
|
-
base,
|
|
2494
|
-
serviceName
|
|
2495
|
-
);
|
|
2496
|
-
const host = splitAuthorityHostSegments(authorityParts.normalizedHost).map((segment) => {
|
|
2497
|
-
return hostSegmentForSyntaxValidation(segment, base, serviceName);
|
|
2498
|
-
}).join(".");
|
|
2499
|
-
return new URL(
|
|
2500
|
-
`${base.slice(0, schemeEnd)}://${host}${authorityParts.portSuffix}`
|
|
2501
|
-
);
|
|
2502
|
-
}
|
|
2503
|
-
function validateBaseUrlHostPolicy({
|
|
2504
|
-
base,
|
|
2505
|
-
diagnosticBase = base,
|
|
2506
|
-
serviceName,
|
|
2507
|
-
hostPolicy
|
|
2508
|
-
}) {
|
|
2509
|
-
if (!hostPolicy) {
|
|
2510
|
-
return;
|
|
2511
|
-
}
|
|
2512
|
-
validateHostPolicyShape(diagnosticBase, serviceName, hostPolicy);
|
|
2513
|
-
if (hasBaseUrlVars(base)) {
|
|
2514
|
-
return;
|
|
2515
|
-
}
|
|
2516
|
-
const authorityHasParams = baseUrlAuthorityHasParams(base);
|
|
2517
|
-
const url = urlForHostPolicyValidation(base, serviceName);
|
|
2518
|
-
const rawAuthority = rawAuthorityFromBaseUrl(base);
|
|
2519
|
-
const hostname = normalizeHostPolicyHostname(url.hostname);
|
|
2520
|
-
if (hostPolicy.kind === "providerOwned") {
|
|
2521
|
-
if (!providerOwnedHostMatches(hostname, hostPolicy, {
|
|
2522
|
-
allowExactHosts: !authorityHasParams
|
|
2523
|
-
})) {
|
|
2524
|
-
throw new Error(
|
|
2525
|
-
errMsg(
|
|
2526
|
-
diagnosticBase,
|
|
2527
|
-
serviceName,
|
|
2528
|
-
`host policy does not allow resolved host "${hostname}"`
|
|
2529
|
-
)
|
|
2530
|
-
);
|
|
2531
|
-
}
|
|
2532
|
-
if (!hostPolicy.allowNonDefaultPort && url.port !== "") {
|
|
2533
|
-
throw new Error(
|
|
2534
|
-
errMsg(
|
|
2535
|
-
diagnosticBase,
|
|
2536
|
-
serviceName,
|
|
2537
|
-
"host policy does not allow non-default ports"
|
|
2538
|
-
)
|
|
2539
|
-
);
|
|
2540
|
-
}
|
|
2541
|
-
return;
|
|
2542
|
-
}
|
|
2543
|
-
const publicDestinationHost = rawAuthority === null ? url.hostname : rawHostFromAuthority(rawAuthority);
|
|
2544
|
-
const publicIpLiteral = hostPolicyIpLiteralIsPublic(publicDestinationHost);
|
|
2545
|
-
if (publicIpLiteral === false) {
|
|
2546
|
-
throw new Error(
|
|
2547
|
-
errMsg(
|
|
2548
|
-
diagnosticBase,
|
|
2549
|
-
serviceName,
|
|
2550
|
-
`host policy does not allow non-public IP literal "${hostname}"`
|
|
2551
|
-
)
|
|
2552
|
-
);
|
|
2553
|
-
}
|
|
2554
|
-
}
|
|
2555
|
-
function resolveFirewallBaseUrlTemplate({
|
|
2556
|
-
serviceName,
|
|
2557
|
-
base,
|
|
2558
|
-
vars,
|
|
2559
|
-
credentialed = false,
|
|
2560
|
-
hostPolicy
|
|
2561
|
-
}) {
|
|
2562
|
-
if (!hasBaseUrlVars(base)) return base;
|
|
2563
|
-
try {
|
|
2564
|
-
let resolved = "";
|
|
2565
|
-
let lastIndex = 0;
|
|
2566
|
-
for (const match of base.matchAll(BASE_URL_VARS_PATTERN_G)) {
|
|
2567
|
-
const fullMatch = match[0];
|
|
2568
|
-
const name = match[1];
|
|
2569
|
-
const matchIndex = match.index;
|
|
2570
|
-
const value = vars?.[name];
|
|
2571
|
-
if (!value) {
|
|
2572
|
-
throw new FirewallBaseUrlResolutionError(
|
|
2573
|
-
`Firewall "${serviceName}" base URL requires variable "${name}" but it was not provided`
|
|
2574
|
-
);
|
|
2575
|
-
}
|
|
2576
|
-
validateBaseUrlTemplateVariable({
|
|
2577
|
-
base,
|
|
2578
|
-
serviceName,
|
|
2579
|
-
name,
|
|
2580
|
-
value,
|
|
2581
|
-
prefix: base.slice(0, matchIndex),
|
|
2582
|
-
suffix: base.slice(matchIndex + fullMatch.length)
|
|
2583
|
-
});
|
|
2584
|
-
resolved += base.slice(lastIndex, matchIndex) + value;
|
|
2585
|
-
lastIndex = matchIndex + fullMatch.length;
|
|
2586
|
-
}
|
|
2587
|
-
resolved += base.slice(lastIndex);
|
|
2588
|
-
validateResolvedBaseUrlPathSafety(base, serviceName, resolved);
|
|
2589
|
-
validateBaseUrl(resolved, serviceName);
|
|
2590
|
-
validateCredentialedBaseUrlTransportValue(
|
|
2591
|
-
resolved,
|
|
2592
|
-
serviceName,
|
|
2593
|
-
credentialed
|
|
2594
|
-
);
|
|
2595
|
-
validateBaseUrlHostPolicy({
|
|
2596
|
-
base: resolved,
|
|
2597
|
-
diagnosticBase: base,
|
|
2598
|
-
serviceName,
|
|
2599
|
-
hostPolicy
|
|
2600
|
-
});
|
|
2601
|
-
return resolved;
|
|
2602
|
-
} catch (error) {
|
|
2603
|
-
if (error instanceof FirewallBaseUrlResolutionError) {
|
|
2604
|
-
throw error;
|
|
2605
|
-
}
|
|
2606
|
-
if (error instanceof Error) {
|
|
2607
|
-
throw new FirewallBaseUrlResolutionError(error.message);
|
|
2608
|
-
}
|
|
2609
|
-
throw error;
|
|
2610
|
-
}
|
|
2611
|
-
}
|
|
2612
|
-
function hasBaseUrlParams(base) {
|
|
2613
|
-
let stripped = base;
|
|
2614
|
-
let start = stripped.indexOf("${{");
|
|
2615
|
-
while (start !== -1) {
|
|
2616
|
-
const end = stripped.indexOf("}}", start + 3);
|
|
2617
|
-
if (end === -1) break;
|
|
2618
|
-
stripped = stripped.slice(0, start) + stripped.slice(end + 2);
|
|
2619
|
-
start = stripped.indexOf("${{");
|
|
2620
|
-
}
|
|
2621
|
-
return stripped.includes("{") && stripped.includes("}");
|
|
2622
|
-
}
|
|
2623
|
-
function errMsg(base, svc, detail) {
|
|
2624
|
-
return `Invalid base URL "${base}" in firewall "${svc}": ${detail}`;
|
|
2625
|
-
}
|
|
2626
|
-
var HOST_DOT_EQUIVALENTS = /* @__PURE__ */ new Set([".", "\u3002", "\uFF0E", "\uFF61"]);
|
|
2627
|
-
var FORBIDDEN_NORMALIZED_LABEL_CHARS = new Set("#%,/:<>?@[\\]^|[]".split(""));
|
|
2628
|
-
var ALLOWED_BASE_URL_SCHEMES = /* @__PURE__ */ new Set(["http", "https"]);
|
|
2629
|
-
var REQUIRED_AUTH_BASE_URL_SCHEME = "https";
|
|
2630
|
-
var WHITESPACE_PATTERN = /\s/u;
|
|
2631
|
-
var UNICODE_CONTROL_PATTERN = /\p{C}/u;
|
|
2632
|
-
var UNICODE_DECIMAL_NUMBER_PATTERN = /^\p{Decimal_Number}+$/u;
|
|
2633
|
-
var UNICODE_MARK_PATTERN = /\p{M}/u;
|
|
2634
|
-
var UNICODE_LETTER_PATTERN = /\p{L}/u;
|
|
2635
|
-
var GREEK_COMBINING_YPOGEGRAMMENI = "\u0345";
|
|
2636
|
-
var GREEK_SMALL_IOTA = "\u03B9";
|
|
2637
|
-
var IDNA_BIDI_RTL_LABEL_RANGES = [
|
|
2638
|
-
[1565, 1565],
|
|
2639
|
-
[2160, 2190],
|
|
2640
|
-
[2229, 2229],
|
|
2641
|
-
[2248, 2249],
|
|
2642
|
-
[64450, 64450],
|
|
2643
|
-
[69488, 69505],
|
|
2644
|
-
[69510, 69513]
|
|
2645
|
-
];
|
|
2646
|
-
var UNSAFE_UTS46_COLLISION_CHARS = /* @__PURE__ */ new Set([
|
|
2647
|
-
"\u03F2",
|
|
2648
|
-
"\u04C0",
|
|
2649
|
-
"\u1E9E",
|
|
2650
|
-
"\u1806",
|
|
2651
|
-
"\u2132",
|
|
2652
|
-
"\u2183",
|
|
2653
|
-
"\u3164",
|
|
2654
|
-
"\uFFA0",
|
|
2655
|
-
"\uFFFC",
|
|
2656
|
-
"\uFFFD",
|
|
2657
|
-
"\u{2F868}",
|
|
2658
|
-
"\u{2F874}",
|
|
2659
|
-
"\u{2F91F}",
|
|
2660
|
-
"\u{2F95F}",
|
|
2661
|
-
"\u{2F9BF}"
|
|
2662
|
-
]);
|
|
2663
|
-
var UNSAFE_UTS46_COLLISION_RANGES = [
|
|
2664
|
-
[4256, 4293],
|
|
2665
|
-
[4447, 4448],
|
|
2666
|
-
[6068, 6069],
|
|
2667
|
-
[12272, 12283]
|
|
2668
|
-
];
|
|
2669
|
-
var UNSAFE_UTS46_IGNORABLE_RANGES = [
|
|
2670
|
-
[847, 847],
|
|
2671
|
-
[6155, 6157],
|
|
2672
|
-
[6159, 6159],
|
|
2673
|
-
[65024, 65039],
|
|
2674
|
-
[917760, 917999]
|
|
2675
|
-
];
|
|
2676
|
-
function isHexDigit(char) {
|
|
2677
|
-
return char >= "0" && char <= "9" || char >= "a" && char <= "f" || char >= "A" && char <= "F";
|
|
2678
|
-
}
|
|
2679
|
-
function validateBaseUrlScheme(scheme, base, serviceName) {
|
|
2680
|
-
if (!ALLOWED_BASE_URL_SCHEMES.has(scheme.toLowerCase())) {
|
|
2681
|
-
throw new Error(errMsg(base, serviceName, "scheme must be http or https"));
|
|
2682
|
-
}
|
|
2683
|
-
}
|
|
2684
|
-
function validateUrlSchemeDelimiter(value, serviceName, label, displayValue = value) {
|
|
2685
|
-
if (value.includes("://")) return;
|
|
2686
|
-
const colonIndex = value.indexOf(":");
|
|
2687
|
-
if (colonIndex !== -1) {
|
|
2688
|
-
const scheme = value.slice(0, colonIndex);
|
|
2689
|
-
const schemeDetail = label === "auth.base URL" ? "scheme must be https" : "scheme must be http or https";
|
|
2690
|
-
const allowedScheme = label === "auth.base URL" ? scheme.toLowerCase() === REQUIRED_AUTH_BASE_URL_SCHEME : ALLOWED_BASE_URL_SCHEMES.has(scheme.toLowerCase());
|
|
2691
|
-
if (!allowedScheme) {
|
|
2692
|
-
throw new Error(
|
|
2693
|
-
`Invalid ${label} "${displayValue}" in firewall "${serviceName}": ${schemeDetail}`
|
|
2694
|
-
);
|
|
2695
|
-
}
|
|
2696
|
-
throw new Error(
|
|
2697
|
-
`Invalid ${label} "${displayValue}" in firewall "${serviceName}": URL must include "://" after the scheme`
|
|
2698
|
-
);
|
|
2699
|
-
}
|
|
2700
|
-
throw new Error(
|
|
2701
|
-
`Invalid ${label} "${displayValue}" in firewall "${serviceName}": URL must include a scheme (e.g. "https://${displayValue}")`
|
|
2702
|
-
);
|
|
2703
|
-
}
|
|
2704
|
-
function isAscii(value) {
|
|
2705
|
-
for (let i = 0; i < value.length; i += 1) {
|
|
2706
|
-
if (value.charCodeAt(i) > 127) return false;
|
|
2707
|
-
}
|
|
2708
|
-
return true;
|
|
2709
|
-
}
|
|
2710
|
-
function isIpv4NumberComponent(value) {
|
|
2711
|
-
if (value === "") return false;
|
|
2712
|
-
if (value.toLowerCase().startsWith("0x")) {
|
|
2713
|
-
return value.length > 2 && [...value.slice(2)].every((char) => {
|
|
2714
|
-
return isHexDigit(char);
|
|
2715
|
-
});
|
|
2716
|
-
}
|
|
2717
|
-
return UNICODE_DECIMAL_NUMBER_PATTERN.test(value);
|
|
2718
|
-
}
|
|
2719
|
-
function isIpv4LiteralLike(value) {
|
|
2720
|
-
const parts = value.split(".");
|
|
2721
|
-
return parts.length >= 1 && parts.length <= 4 && parts.every(isIpv4NumberComponent);
|
|
2722
|
-
}
|
|
2723
|
-
function isCanonicalIpv4Address(value) {
|
|
2724
|
-
const parts = value.split(".");
|
|
2725
|
-
if (parts.length !== 4) return false;
|
|
2726
|
-
return parts.every((part) => {
|
|
2727
|
-
if (part === "" || ![...part].every((char) => {
|
|
2728
|
-
return char >= "0" && char <= "9";
|
|
2729
|
-
})) {
|
|
2730
|
-
return false;
|
|
2731
|
-
}
|
|
2732
|
-
if (part.length > 1 && part.startsWith("0")) return false;
|
|
2733
|
-
return Number(part) <= IPV4_MAX_OCTET;
|
|
2734
|
-
});
|
|
2735
|
-
}
|
|
2736
|
-
function codePointInRanges(codePoint, ranges) {
|
|
2737
|
-
return ranges.some(([start, end]) => {
|
|
2738
|
-
return start <= codePoint && codePoint <= end;
|
|
2739
|
-
});
|
|
2740
|
-
}
|
|
2741
|
-
function hasUnsafeUts46MappingChar(value) {
|
|
2742
|
-
for (const char of value) {
|
|
2743
|
-
const codePoint = char.codePointAt(0);
|
|
2744
|
-
if (UNSAFE_UTS46_COLLISION_CHARS.has(char) || codePoint !== void 0 && (codePointInRanges(codePoint, UNSAFE_UTS46_COLLISION_RANGES) || codePointInRanges(codePoint, UNSAFE_UTS46_IGNORABLE_RANGES))) {
|
|
2745
|
-
return true;
|
|
2746
|
-
}
|
|
2747
|
-
}
|
|
2748
|
-
return false;
|
|
2749
|
-
}
|
|
2750
|
-
function normalizesToAscii(value) {
|
|
2751
|
-
return isAscii(normalizeLabelTextForIdnaValidation(value));
|
|
2752
|
-
}
|
|
2753
|
-
function normalizeLabelTextForIdnaValidation(value) {
|
|
2754
|
-
return value.replaceAll(GREEK_COMBINING_YPOGEGRAMMENI, GREEK_SMALL_IOTA).normalize("NFKD").normalize("NFC").toLowerCase();
|
|
2755
|
-
}
|
|
2756
|
-
function hasForbiddenNormalizedLabelChar(value) {
|
|
2757
|
-
for (const char of normalizeLabelTextForIdnaValidation(value)) {
|
|
2758
|
-
if (FORBIDDEN_NORMALIZED_LABEL_CHARS.has(char) || HOST_DOT_EQUIVALENTS.has(char) || WHITESPACE_PATTERN.test(char) || UNICODE_CONTROL_PATTERN.test(char)) {
|
|
2759
|
-
return true;
|
|
2760
|
-
}
|
|
2761
|
-
}
|
|
2762
|
-
return false;
|
|
2763
|
-
}
|
|
2764
|
-
function normalizedLabelStartsWithMark(value) {
|
|
2765
|
-
const [firstChar] = normalizeLabelTextForIdnaValidation(value);
|
|
2766
|
-
return firstChar !== void 0 && UNICODE_MARK_PATTERN.test(firstChar);
|
|
2767
|
-
}
|
|
2768
|
-
function isIdnaBidiRtlLabelChar(char) {
|
|
2769
|
-
const codePoint = char.codePointAt(0);
|
|
2770
|
-
return codePoint !== void 0 && codePointInRanges(codePoint, IDNA_BIDI_RTL_LABEL_RANGES);
|
|
2771
|
-
}
|
|
2772
|
-
function isLtrLetterForBidiCheck(char) {
|
|
2773
|
-
return UNICODE_LETTER_PATTERN.test(char) && !isIdnaBidiRtlLabelChar(char);
|
|
2774
|
-
}
|
|
2775
|
-
function isAsciiDigit(char) {
|
|
2776
|
-
return char >= "0" && char <= "9";
|
|
2777
|
-
}
|
|
2778
|
-
function isArabicNumberForBidiCheck(char) {
|
|
2779
|
-
const codePoint = char.codePointAt(0);
|
|
2780
|
-
return codePoint !== void 0 && 1632 <= codePoint && codePoint <= 1641;
|
|
2781
|
-
}
|
|
2782
|
-
function effectiveBidiEndChar(chars) {
|
|
2783
|
-
for (let index = chars.length - 1; index >= 0; index -= 1) {
|
|
2784
|
-
const char = chars[index];
|
|
2785
|
-
if (!UNICODE_MARK_PATTERN.test(char)) return char;
|
|
2786
|
-
}
|
|
2787
|
-
return chars.at(-1);
|
|
2788
|
-
}
|
|
2789
|
-
function firstEffectiveBidiChar(chars) {
|
|
2790
|
-
return chars.find((char) => {
|
|
2791
|
-
return !UNICODE_MARK_PATTERN.test(char);
|
|
2792
|
-
});
|
|
2793
|
-
}
|
|
2794
|
-
function isRtlEndCharForBidiCheck(char) {
|
|
2795
|
-
return isIdnaBidiRtlLabelChar(char) || isAsciiDigit(char) || isArabicNumberForBidiCheck(char);
|
|
2796
|
-
}
|
|
2797
|
-
function hasInvalidMixedBidiLabelText(value) {
|
|
2798
|
-
const chars = Array.from(normalizeLabelTextForIdnaValidation(value));
|
|
2799
|
-
const firstRtlIndex = chars.findIndex((char) => {
|
|
2800
|
-
return isIdnaBidiRtlLabelChar(char);
|
|
2801
|
-
});
|
|
2802
|
-
if (firstRtlIndex === -1) return false;
|
|
2803
|
-
const suffix = chars.slice(firstRtlIndex + 1);
|
|
2804
|
-
if (firstRtlIndex === 0) {
|
|
2805
|
-
const suffixHasLtrLetter2 = suffix.some((char) => {
|
|
2806
|
-
return isLtrLetterForBidiCheck(char);
|
|
2807
|
-
});
|
|
2808
|
-
if (suffixHasLtrLetter2) return true;
|
|
2809
|
-
const endChar2 = effectiveBidiEndChar(chars);
|
|
2810
|
-
return endChar2 !== void 0 && !isRtlEndCharForBidiCheck(endChar2);
|
|
2811
|
-
}
|
|
2812
|
-
const suffixHasLtrLetter = suffix.some((char) => {
|
|
2813
|
-
return isLtrLetterForBidiCheck(char);
|
|
2814
|
-
});
|
|
2815
|
-
if (suffixHasLtrLetter) return true;
|
|
2816
|
-
const prefix = chars.slice(0, firstRtlIndex);
|
|
2817
|
-
const prefixHasLtrLetter = prefix.some((char) => {
|
|
2818
|
-
return isLtrLetterForBidiCheck(char);
|
|
2819
|
-
});
|
|
2820
|
-
if (prefixHasLtrLetter) {
|
|
2821
|
-
if (prefix.some(isArabicNumberForBidiCheck)) return true;
|
|
2822
|
-
const firstPrefixChar = firstEffectiveBidiChar(prefix);
|
|
2823
|
-
if (firstPrefixChar === void 0 || !isLtrLetterForBidiCheck(firstPrefixChar)) {
|
|
2824
|
-
return true;
|
|
2825
|
-
}
|
|
2826
|
-
return suffix.some((char) => {
|
|
2827
|
-
return !UNICODE_MARK_PATTERN.test(char);
|
|
2828
|
-
});
|
|
2829
|
-
}
|
|
2830
|
-
const endChar = effectiveBidiEndChar(chars);
|
|
2831
|
-
return endChar !== void 0 && !isRtlEndCharForBidiCheck(endChar);
|
|
2832
|
-
}
|
|
2833
|
-
function baseUrlRawSyntaxTarget(base) {
|
|
2834
|
-
return base.replace(BASE_URL_VARS_PATTERN_G, AUTH_TEMPLATE_URL_PLACEHOLDER);
|
|
2835
|
-
}
|
|
2836
|
-
function validateHostPercentEncoding(host, base, serviceName) {
|
|
2837
|
-
if (host.includes(",")) {
|
|
2838
|
-
throw new Error(errMsg(base, serviceName, "host must not contain commas"));
|
|
2839
|
-
}
|
|
2840
|
-
for (let i = 0; i < host.length; i += 1) {
|
|
2841
|
-
if (host[i] !== "%") continue;
|
|
2842
|
-
if (i + 2 >= host.length || !isHexDigit(host[i + 1]) || !isHexDigit(host[i + 2])) {
|
|
2843
|
-
throw new Error(
|
|
2844
|
-
errMsg(base, serviceName, "host has invalid percent encoding")
|
|
2845
|
-
);
|
|
2846
|
-
}
|
|
2847
|
-
let end = i;
|
|
2848
|
-
while (end + 2 < host.length && host[end] === "%" && isHexDigit(host[end + 1]) && isHexDigit(host[end + 2])) {
|
|
2849
|
-
end += 3;
|
|
2850
|
-
}
|
|
2851
|
-
let decoded;
|
|
2852
|
-
try {
|
|
2853
|
-
decoded = decodeURIComponent(host.slice(i, end));
|
|
2854
|
-
} catch {
|
|
2855
|
-
throw new Error(
|
|
2856
|
-
errMsg(base, serviceName, "host has invalid percent encoding")
|
|
2857
|
-
);
|
|
2858
|
-
}
|
|
2859
|
-
for (const char of decoded) {
|
|
2860
|
-
if (char === "{" || char === "}") {
|
|
2861
|
-
throw new Error(
|
|
2862
|
-
errMsg(
|
|
2863
|
-
base,
|
|
2864
|
-
serviceName,
|
|
2865
|
-
"host must not contain percent-encoded braces"
|
|
2866
|
-
)
|
|
2867
|
-
);
|
|
2868
|
-
}
|
|
2869
|
-
if (HOST_DOT_EQUIVALENTS.has(char)) {
|
|
2870
|
-
throw new Error(
|
|
2871
|
-
errMsg(
|
|
2872
|
-
base,
|
|
2873
|
-
serviceName,
|
|
2874
|
-
"host must not contain percent-encoded dots"
|
|
2875
|
-
)
|
|
2876
|
-
);
|
|
2877
|
-
}
|
|
2878
|
-
if (char === ",") {
|
|
2879
|
-
throw new Error(
|
|
2880
|
-
errMsg(base, serviceName, "host must not contain commas")
|
|
2881
|
-
);
|
|
2882
|
-
}
|
|
2883
|
-
if (char === "*") {
|
|
2884
|
-
throw new Error(
|
|
2885
|
-
errMsg(
|
|
2886
|
-
base,
|
|
2887
|
-
serviceName,
|
|
2888
|
-
"host must not contain wildcard characters"
|
|
2889
|
-
)
|
|
2890
|
-
);
|
|
2891
|
-
}
|
|
2892
|
-
}
|
|
2893
|
-
i = end - 1;
|
|
2894
|
-
}
|
|
2895
|
-
if (host.includes("%")) {
|
|
2896
|
-
let decoded;
|
|
2897
|
-
try {
|
|
2898
|
-
decoded = decodeURIComponent(host);
|
|
2899
|
-
} catch {
|
|
2900
|
-
throw new Error(
|
|
2901
|
-
errMsg(base, serviceName, "host has invalid percent encoding")
|
|
2902
|
-
);
|
|
2903
|
-
}
|
|
2904
|
-
validateHostHasNoUnsafeIdnaMappings(decoded, base, serviceName);
|
|
2905
|
-
}
|
|
2906
|
-
}
|
|
2907
|
-
function rawAuthorityFromBaseUrl(base) {
|
|
2908
|
-
const schemeEnd = base.indexOf("://");
|
|
2909
|
-
if (schemeEnd === -1) return null;
|
|
2910
|
-
const rest = base.slice(schemeEnd + 3);
|
|
2911
|
-
const delimiterIndexes = [
|
|
2912
|
-
rest.indexOf("/"),
|
|
2913
|
-
rest.indexOf("?"),
|
|
2914
|
-
rest.indexOf("#")
|
|
2915
|
-
].filter((index) => {
|
|
2916
|
-
return index !== -1;
|
|
2917
|
-
});
|
|
2918
|
-
const authorityEnd = delimiterIndexes.length === 0 ? -1 : Math.min(...delimiterIndexes);
|
|
2919
|
-
return authorityEnd === -1 ? rest : rest.slice(0, authorityEnd);
|
|
2920
|
-
}
|
|
2921
|
-
function authorityHasEmptyPort(authority) {
|
|
2922
|
-
if (authority.startsWith("[")) {
|
|
2923
|
-
const closeBracket = authority.indexOf("]");
|
|
2924
|
-
if (closeBracket === -1) return false;
|
|
2925
|
-
return authority.slice(closeBracket + 1) === ":";
|
|
2926
|
-
}
|
|
2927
|
-
const portSeparator = authority.lastIndexOf(":");
|
|
2928
|
-
if (portSeparator === -1) return false;
|
|
2929
|
-
return authority.indexOf(":") === portSeparator && portSeparator === authority.length - 1;
|
|
2930
|
-
}
|
|
2931
|
-
function validateNoUserinfo(authority, base, serviceName) {
|
|
2932
|
-
if (authority.includes("@")) {
|
|
2933
|
-
throw new Error(errMsg(base, serviceName, "must not contain userinfo"));
|
|
2934
|
-
}
|
|
2935
|
-
}
|
|
2936
|
-
function validateHostHasNoEmptyLabels(host, base, serviceName) {
|
|
2937
|
-
let normalizedHost = host.replace(HOST_DOT_EQUIVALENT_PATTERN, ".");
|
|
2938
|
-
if (normalizedHost.endsWith(".")) {
|
|
2939
|
-
normalizedHost = normalizedHost.slice(0, -1);
|
|
2940
|
-
}
|
|
2941
|
-
if (normalizedHost === "" || normalizedHost.endsWith(".") || normalizedHost.split(".").some((label) => {
|
|
2942
|
-
return label === "";
|
|
2943
|
-
})) {
|
|
2944
|
-
throw new Error(
|
|
2945
|
-
errMsg(base, serviceName, "host must not contain empty labels")
|
|
2946
|
-
);
|
|
2947
|
-
}
|
|
2948
|
-
return normalizedHost;
|
|
2949
|
-
}
|
|
2950
|
-
function normalizeHostForIpv4LiteralSyntax(host) {
|
|
2951
|
-
let normalized = host.replace(HOST_DOT_EQUIVALENT_PATTERN, ".").toLowerCase();
|
|
2952
|
-
if (normalized.endsWith(".")) {
|
|
2953
|
-
normalized = normalized.slice(0, -1);
|
|
2954
|
-
}
|
|
2955
|
-
return normalized;
|
|
2956
|
-
}
|
|
2957
|
-
function rawHostForCanonicalIpv4Syntax(host) {
|
|
2958
|
-
const normalized = host.toLowerCase();
|
|
2959
|
-
return normalized.endsWith(".") ? normalized.slice(0, -1) : normalized;
|
|
2960
|
-
}
|
|
2961
|
-
function splitAuthorityHostSegments(host) {
|
|
2962
|
-
if (host.startsWith("[") && host.endsWith("]")) {
|
|
2963
|
-
return [host];
|
|
2964
|
-
}
|
|
2965
|
-
return host.split(".");
|
|
2966
|
-
}
|
|
2967
|
-
function rawHostFromAuthority(authority) {
|
|
2968
|
-
const withoutUserinfo = authority.slice(authority.lastIndexOf("@") + 1);
|
|
2969
|
-
if (withoutUserinfo.startsWith("[")) {
|
|
2970
|
-
const closeBracket = withoutUserinfo.indexOf("]");
|
|
2971
|
-
return closeBracket === -1 ? withoutUserinfo : withoutUserinfo.slice(0, closeBracket + 1);
|
|
2972
|
-
}
|
|
2973
|
-
const portSeparator = withoutUserinfo.lastIndexOf(":");
|
|
2974
|
-
return portSeparator === -1 ? withoutUserinfo : withoutUserinfo.slice(0, portSeparator);
|
|
2975
|
-
}
|
|
2976
|
-
function validateLabelHasNoUnsafeIdnaMappings(label, base, serviceName) {
|
|
2977
|
-
const parsed = parseSegment(label);
|
|
2978
|
-
const value = parsed.kind === "param" ? `${parsed.prefix}${parsed.suffix}` : label;
|
|
2979
|
-
if (value === "" || isAscii(value)) return;
|
|
2980
|
-
if (hasForbiddenNormalizedLabelChar(value)) {
|
|
2981
|
-
throw new Error(
|
|
2982
|
-
errMsg(
|
|
2983
|
-
base,
|
|
2984
|
-
serviceName,
|
|
2985
|
-
"host must not contain characters that normalize to forbidden host syntax"
|
|
2986
|
-
)
|
|
2987
|
-
);
|
|
2988
|
-
}
|
|
2989
|
-
if (normalizedLabelStartsWithMark(value)) {
|
|
2990
|
-
throw new Error(
|
|
2991
|
-
errMsg(
|
|
2992
|
-
base,
|
|
2993
|
-
serviceName,
|
|
2994
|
-
"host label must not start with a combining mark"
|
|
2995
|
-
)
|
|
2996
|
-
);
|
|
2997
|
-
}
|
|
2998
|
-
if (hasInvalidMixedBidiLabelText(value)) {
|
|
2999
|
-
throw new Error(
|
|
3000
|
-
errMsg(
|
|
3001
|
-
base,
|
|
3002
|
-
serviceName,
|
|
3003
|
-
"host must not contain invalid bidirectional label text"
|
|
3004
|
-
)
|
|
3005
|
-
);
|
|
3006
|
-
}
|
|
3007
|
-
if (hasUnsafeUts46MappingChar(value) || normalizesToAscii(value)) {
|
|
3008
|
-
throw new Error(
|
|
3009
|
-
errMsg(
|
|
3010
|
-
base,
|
|
3011
|
-
serviceName,
|
|
3012
|
-
"host must not contain unsafe IDNA compatibility mappings"
|
|
3013
|
-
)
|
|
3014
|
-
);
|
|
3015
|
-
}
|
|
3016
|
-
}
|
|
3017
|
-
function validateHostHasNoUnsafeIdnaMappings(authorityOrHost, base, serviceName) {
|
|
3018
|
-
const host = rawHostFromAuthority(authorityOrHost);
|
|
3019
|
-
if (host.startsWith("[") && host.endsWith("]")) return;
|
|
3020
|
-
for (const label of host.replace(HOST_DOT_EQUIVALENT_PATTERN, ".").split(".")) {
|
|
3021
|
-
validateLabelHasNoUnsafeIdnaMappings(label, base, serviceName);
|
|
3022
|
-
}
|
|
3023
|
-
}
|
|
3024
|
-
function validateHostHasCanonicalIpv4Syntax(authorityOrHost, base, serviceName) {
|
|
3025
|
-
const host = rawHostFromAuthority(authorityOrHost);
|
|
3026
|
-
if (host.startsWith("[") && host.endsWith("]")) return;
|
|
3027
|
-
const normalizedHost = normalizeHostForIpv4LiteralSyntax(host);
|
|
3028
|
-
if (isIpv4LiteralLike(normalizedHost) && (rawHostForCanonicalIpv4Syntax(host) !== normalizedHost || !isCanonicalIpv4Address(normalizedHost))) {
|
|
3029
|
-
throw new Error(
|
|
3030
|
-
errMsg(base, serviceName, "host must use canonical IPv4 address syntax")
|
|
3031
|
-
);
|
|
3032
|
-
}
|
|
3033
|
-
}
|
|
3034
|
-
function splitParameterizedAuthority(authority, base, serviceName) {
|
|
3035
|
-
let host = authority;
|
|
3036
|
-
let portSuffix = "";
|
|
3037
|
-
if (authority.startsWith("[")) {
|
|
3038
|
-
const closeBracket = authority.indexOf("]");
|
|
3039
|
-
if (closeBracket === -1) {
|
|
3040
|
-
throw new Error(errMsg(base, serviceName, "not a valid URL authority"));
|
|
3041
|
-
}
|
|
3042
|
-
host = authority.slice(0, closeBracket + 1);
|
|
3043
|
-
portSuffix = authority.slice(closeBracket + 1);
|
|
3044
|
-
if (portSuffix !== "" && !portSuffix.startsWith(":")) {
|
|
3045
|
-
throw new Error(errMsg(base, serviceName, "not a valid URL authority"));
|
|
3046
|
-
}
|
|
3047
|
-
} else {
|
|
3048
|
-
const portSeparator = authority.lastIndexOf(":");
|
|
3049
|
-
if (portSeparator !== -1) {
|
|
3050
|
-
host = authority.slice(0, portSeparator);
|
|
3051
|
-
portSuffix = authority.slice(portSeparator);
|
|
3052
|
-
}
|
|
3053
|
-
}
|
|
3054
|
-
const normalizedHost = validateHostHasNoEmptyLabels(host, base, serviceName);
|
|
3055
|
-
return { normalizedHost, portSuffix };
|
|
3056
|
-
}
|
|
3057
|
-
function validateStaticHostLabels(hostname, base, serviceName) {
|
|
3058
|
-
if (hostname.startsWith("[") && hostname.endsWith("]")) return;
|
|
3059
|
-
validateHostHasNoEmptyLabels(hostname, base, serviceName);
|
|
3060
|
-
validateHostHasNoRawWildcards(hostname, base, serviceName);
|
|
3061
|
-
}
|
|
3062
|
-
function hostSegmentHasRawWildcard(segment) {
|
|
3063
|
-
const parsed = parseSegment(segment);
|
|
3064
|
-
if (parsed.kind === "literal") return parsed.value.includes("*");
|
|
3065
|
-
if (parsed.kind === "param") {
|
|
3066
|
-
return parsed.prefix.includes("*") || parsed.suffix.includes("*");
|
|
3067
|
-
}
|
|
3068
|
-
return false;
|
|
3069
|
-
}
|
|
3070
|
-
function validateHostHasNoRawWildcards(host, base, serviceName) {
|
|
3071
|
-
if (host.startsWith("[") && host.endsWith("]")) return;
|
|
3072
|
-
for (const segment of host.replace(HOST_DOT_EQUIVALENT_PATTERN, ".").split(".")) {
|
|
3073
|
-
if (hostSegmentHasRawWildcard(segment)) {
|
|
3074
|
-
throw new Error(
|
|
3075
|
-
errMsg(base, serviceName, "host must not contain wildcard characters")
|
|
3076
|
-
);
|
|
3077
|
-
}
|
|
3078
|
-
}
|
|
3079
|
-
}
|
|
3080
|
-
function hostSegmentForSyntaxValidation(seg, base, svc) {
|
|
3081
|
-
const parsed = parseSegment(seg);
|
|
3082
|
-
if (parsed.kind === "literal") return seg;
|
|
3083
|
-
if (parsed.kind === "error") {
|
|
3084
|
-
throw new Error(errMsg(base, svc, parsed.reason));
|
|
3085
|
-
}
|
|
3086
|
-
if (!isAscii(parsed.prefix) || !isAscii(parsed.suffix)) {
|
|
3087
|
-
throw new Error(
|
|
3088
|
-
errMsg(
|
|
3089
|
-
base,
|
|
3090
|
-
svc,
|
|
3091
|
-
`host parameter segment "${seg}" must use ASCII literal prefix and suffix`
|
|
3092
|
-
)
|
|
3093
|
-
);
|
|
3094
|
-
}
|
|
3095
|
-
return `${parsed.prefix}x${parsed.suffix}`;
|
|
3096
|
-
}
|
|
3097
|
-
function validateParameterizedHostUrlSyntax(scheme, authority, base, serviceName) {
|
|
3098
|
-
const syntaxHost = splitAuthorityHostSegments(authority.normalizedHost).map((seg) => {
|
|
3099
|
-
return hostSegmentForSyntaxValidation(seg, base, serviceName);
|
|
3100
|
-
}).join(".");
|
|
3101
|
-
try {
|
|
3102
|
-
new URL(`${scheme}://${syntaxHost}${authority.portSuffix}`);
|
|
3103
|
-
} catch {
|
|
3104
|
-
throw new Error(errMsg(base, serviceName, "not a valid URL authority"));
|
|
3105
|
-
}
|
|
3106
|
-
}
|
|
3107
|
-
function validateHostParams(segments, paramNames, base, svc) {
|
|
3108
|
-
if (segments.length < 2) {
|
|
3109
|
-
throw new Error(errMsg(base, svc, "host must have at least two segments"));
|
|
3110
|
-
}
|
|
3111
|
-
let hasStatic = false;
|
|
3112
|
-
for (let i = 0; i < segments.length; i++) {
|
|
3113
|
-
const seg = segments[i];
|
|
3114
|
-
const parsed = parseSegment(seg);
|
|
3115
|
-
if (parsed.kind === "error") {
|
|
3116
|
-
throw new Error(errMsg(base, svc, parsed.reason));
|
|
3117
|
-
}
|
|
3118
|
-
if (parsed.kind === "literal") {
|
|
3119
|
-
hasStatic = true;
|
|
3120
|
-
continue;
|
|
3121
|
-
}
|
|
3122
|
-
const { name, greedy, prefix, suffix } = parsed;
|
|
3123
|
-
if (paramNames.has(name)) {
|
|
3124
|
-
throw new Error(
|
|
3125
|
-
errMsg(base, svc, `duplicate parameter name "{${name}}" in host`)
|
|
3126
|
-
);
|
|
3127
|
-
}
|
|
3128
|
-
paramNames.add(name);
|
|
3129
|
-
if (greedy && i !== 0) {
|
|
3130
|
-
throw new Error(
|
|
3131
|
-
errMsg(base, svc, `{${name}${greedy}} must be the first host segment`)
|
|
3132
|
-
);
|
|
3133
|
-
}
|
|
3134
|
-
if (greedy && (prefix !== "" || suffix !== "")) {
|
|
3135
|
-
throw new Error(
|
|
3136
|
-
errMsg(
|
|
3137
|
-
base,
|
|
3138
|
-
svc,
|
|
3139
|
-
`greedy parameter {${name}${greedy}} cannot be combined with a literal prefix or suffix in host segment "${seg}"`
|
|
3140
|
-
)
|
|
3141
|
-
);
|
|
3142
|
-
}
|
|
3143
|
-
}
|
|
3144
|
-
if (!hasStatic) {
|
|
3145
|
-
throw new Error(
|
|
3146
|
-
errMsg(base, svc, "host must have at least one static segment")
|
|
3147
|
-
);
|
|
3148
|
-
}
|
|
3149
|
-
}
|
|
3150
|
-
function validatePathParams(segments, paramNames, base, svc) {
|
|
3151
|
-
for (const seg of segments) {
|
|
3152
|
-
const parsed = parseSegment(seg);
|
|
3153
|
-
if (parsed.kind === "error") {
|
|
3154
|
-
throw new Error(errMsg(base, svc, parsed.reason));
|
|
3155
|
-
}
|
|
3156
|
-
if (parsed.kind === "literal") continue;
|
|
3157
|
-
const { name, greedy } = parsed;
|
|
3158
|
-
if (greedy) {
|
|
3159
|
-
throw new Error(
|
|
3160
|
-
errMsg(
|
|
3161
|
-
base,
|
|
3162
|
-
svc,
|
|
3163
|
-
`greedy parameter {${name}${greedy}} is not allowed in base URL path`
|
|
3164
|
-
)
|
|
3165
|
-
);
|
|
3166
|
-
}
|
|
3167
|
-
if (paramNames.has(name)) {
|
|
3168
|
-
throw new Error(
|
|
3169
|
-
errMsg(base, svc, `duplicate parameter name "{${name}}"`)
|
|
3170
|
-
);
|
|
3171
|
-
}
|
|
3172
|
-
paramNames.add(name);
|
|
3173
|
-
}
|
|
3174
|
-
}
|
|
3175
|
-
function validateBaseUrlParams(base, serviceName) {
|
|
3176
|
-
const schemeEnd = base.indexOf("://");
|
|
3177
|
-
if (schemeEnd === -1) {
|
|
3178
|
-
throw new Error(errMsg(base, serviceName, "missing scheme"));
|
|
3179
|
-
}
|
|
3180
|
-
const scheme = base.slice(0, schemeEnd);
|
|
3181
|
-
if (scheme.includes("{")) {
|
|
3182
|
-
throw new Error(
|
|
3183
|
-
errMsg(base, serviceName, "scheme must not contain parameters")
|
|
3184
|
-
);
|
|
3185
|
-
}
|
|
3186
|
-
validateBaseUrlScheme(scheme, base, serviceName);
|
|
3187
|
-
if (base.includes("?")) {
|
|
3188
|
-
throw new Error(errMsg(base, serviceName, "must not contain query string"));
|
|
3189
|
-
}
|
|
3190
|
-
if (base.includes("#")) {
|
|
3191
|
-
throw new Error(errMsg(base, serviceName, "must not contain fragment"));
|
|
3192
|
-
}
|
|
3193
|
-
const rest = base.slice(schemeEnd + 3);
|
|
3194
|
-
const slashIdx = rest.indexOf("/");
|
|
3195
|
-
const host = slashIdx === -1 ? rest : rest.slice(0, slashIdx);
|
|
3196
|
-
const path = slashIdx === -1 ? "" : rest.slice(slashIdx);
|
|
3197
|
-
if (authorityHasEmptyPort(host)) {
|
|
3198
|
-
throw new Error(errMsg(base, serviceName, "not a valid URL authority"));
|
|
3199
|
-
}
|
|
3200
|
-
validateNoUserinfo(host, base, serviceName);
|
|
3201
|
-
validateHostPercentEncoding(host, base, serviceName);
|
|
3202
|
-
const authority = splitParameterizedAuthority(host, base, serviceName);
|
|
3203
|
-
validateHostHasCanonicalIpv4Syntax(
|
|
3204
|
-
authority.normalizedHost,
|
|
3205
|
-
base,
|
|
3206
|
-
serviceName
|
|
3207
|
-
);
|
|
3208
|
-
validateHostHasNoUnsafeIdnaMappings(
|
|
3209
|
-
authority.normalizedHost,
|
|
3210
|
-
base,
|
|
3211
|
-
serviceName
|
|
3212
|
-
);
|
|
3213
|
-
validateHostHasNoRawWildcards(authority.normalizedHost, base, serviceName);
|
|
3214
|
-
validateParameterizedHostUrlSyntax(
|
|
3215
|
-
base.slice(0, schemeEnd),
|
|
3216
|
-
authority,
|
|
3217
|
-
base,
|
|
3218
|
-
serviceName
|
|
3219
|
-
);
|
|
3220
|
-
const paramNames = /* @__PURE__ */ new Set();
|
|
3221
|
-
validateHostParams(
|
|
3222
|
-
splitAuthorityHostSegments(authority.normalizedHost),
|
|
3223
|
-
paramNames,
|
|
3224
|
-
base,
|
|
3225
|
-
serviceName
|
|
3226
|
-
);
|
|
3227
|
-
if (path) {
|
|
3228
|
-
validatePathParams(splitPathSegments(path), paramNames, base, serviceName);
|
|
3229
|
-
}
|
|
3230
|
-
}
|
|
3231
|
-
function validateBaseUrl(base, serviceName) {
|
|
3232
|
-
if (base.includes("\\")) {
|
|
3233
|
-
throw new Error(
|
|
3234
|
-
`Invalid base URL "${base}" in firewall "${serviceName}": must not contain backslash`
|
|
3235
|
-
);
|
|
3236
|
-
}
|
|
3237
|
-
const hasTemplateVars = hasBaseUrlVars(base);
|
|
3238
|
-
const rawSyntaxTarget = baseUrlRawSyntaxTarget(base);
|
|
3239
|
-
if (hasRawWhitespace(rawSyntaxTarget)) {
|
|
3240
|
-
throw new Error(
|
|
3241
|
-
`Invalid base URL "${base}" in firewall "${serviceName}": must not contain whitespace`
|
|
3242
|
-
);
|
|
3243
|
-
}
|
|
3244
|
-
if (hasUnsafeUrlCodepoint(rawSyntaxTarget)) {
|
|
3245
|
-
throw new Error(
|
|
3246
|
-
`Invalid base URL "${base}" in firewall "${serviceName}": must not contain control characters or invalid Unicode`
|
|
3247
|
-
);
|
|
3248
|
-
}
|
|
3249
|
-
let knownRawPath = rawPathFromBaseUrl(rawSyntaxTarget);
|
|
3250
|
-
if (knownRawPath === "" && hasTemplateVars && rawSyntaxTarget.startsWith(`${AUTH_TEMPLATE_URL_PLACEHOLDER}/`)) {
|
|
3251
|
-
knownRawPath = rawSyntaxTarget.slice(AUTH_TEMPLATE_URL_PLACEHOLDER.length);
|
|
3252
|
-
}
|
|
3253
|
-
if (hasUnsafeFirewallPath(knownRawPath)) {
|
|
3254
|
-
throw new Error(
|
|
3255
|
-
errMsg(base, serviceName, "must not contain unsafe path segments")
|
|
3256
|
-
);
|
|
3257
|
-
}
|
|
3258
|
-
if (hasTemplateVars) return;
|
|
3259
|
-
validateUrlSchemeDelimiter(base, serviceName, "base URL");
|
|
3260
|
-
if (hasBaseUrlParams(base)) {
|
|
3261
|
-
validateBaseUrlParams(base, serviceName);
|
|
3262
|
-
return;
|
|
3263
|
-
}
|
|
3264
|
-
let url;
|
|
3265
|
-
try {
|
|
3266
|
-
url = new URL(base);
|
|
3267
|
-
} catch {
|
|
3268
|
-
if (!base.includes("://")) {
|
|
3269
|
-
throw new Error(
|
|
3270
|
-
`Invalid base URL "${base}" in firewall "${serviceName}": URL must include a scheme (e.g. "https://${base}")`
|
|
3271
|
-
);
|
|
3272
|
-
}
|
|
3273
|
-
throw new Error(
|
|
3274
|
-
`Invalid base URL "${base}" in firewall "${serviceName}": not a valid URL`
|
|
3275
|
-
);
|
|
3276
|
-
}
|
|
3277
|
-
validateBaseUrlScheme(url.protocol.slice(0, -1), base, serviceName);
|
|
3278
|
-
if (url.search) {
|
|
3279
|
-
throw new Error(
|
|
3280
|
-
`Invalid base URL "${base}" in firewall "${serviceName}": must not contain query string`
|
|
3281
|
-
);
|
|
3282
|
-
}
|
|
3283
|
-
if (url.hash) {
|
|
3284
|
-
throw new Error(
|
|
3285
|
-
`Invalid base URL "${base}" in firewall "${serviceName}": must not contain fragment`
|
|
3286
|
-
);
|
|
3287
|
-
}
|
|
3288
|
-
const authority = rawAuthorityFromBaseUrl(base);
|
|
3289
|
-
if (authority !== null) {
|
|
3290
|
-
if (authority === "") {
|
|
3291
|
-
throw new Error(
|
|
3292
|
-
`Invalid base URL "${base}" in firewall "${serviceName}": not a valid URL authority`
|
|
3293
|
-
);
|
|
3294
|
-
}
|
|
3295
|
-
if (authorityHasEmptyPort(authority)) {
|
|
3296
|
-
throw new Error(
|
|
3297
|
-
`Invalid base URL "${base}" in firewall "${serviceName}": not a valid URL authority`
|
|
3298
|
-
);
|
|
3299
|
-
}
|
|
3300
|
-
validateNoUserinfo(authority, base, serviceName);
|
|
3301
|
-
validateHostPercentEncoding(authority, base, serviceName);
|
|
3302
|
-
validateHostHasCanonicalIpv4Syntax(authority, base, serviceName);
|
|
3303
|
-
validateHostHasNoUnsafeIdnaMappings(authority, base, serviceName);
|
|
3304
|
-
}
|
|
3305
|
-
validateStaticHostLabels(url.hostname, base, serviceName);
|
|
3306
|
-
if (url.hostname.includes("{") || url.hostname.includes("}")) {
|
|
3307
|
-
throw new Error(
|
|
3308
|
-
`Invalid base URL "${base}" in firewall "${serviceName}": host must not contain braces`
|
|
3309
|
-
);
|
|
3310
|
-
}
|
|
3311
|
-
}
|
|
3312
|
-
function authBaseForStaticUrlValidation(authBase) {
|
|
3313
|
-
if (!authBase.includes(AUTH_TEMPLATE_START)) {
|
|
3314
|
-
return { url: authBase, dynamicPrefixSuffix: "" };
|
|
3315
|
-
}
|
|
3316
|
-
const replaced = authBase.replace(
|
|
3317
|
-
AUTH_REFERENCE_PATTERN_G,
|
|
3318
|
-
AUTH_TEMPLATE_URL_PLACEHOLDER
|
|
3319
|
-
);
|
|
3320
|
-
if (replaced.includes(AUTH_TEMPLATE_START)) {
|
|
3321
|
-
return { url: authBase, dynamicPrefixSuffix: "" };
|
|
3322
|
-
}
|
|
3323
|
-
const prefixMatch = AUTH_REFERENCE_PREFIX_PATTERN.exec(authBase);
|
|
3324
|
-
if (prefixMatch) {
|
|
3325
|
-
return {
|
|
3326
|
-
url: null,
|
|
3327
|
-
dynamicPrefixSuffix: authBase.slice(prefixMatch[0].length).replace(AUTH_REFERENCE_PATTERN_G, AUTH_TEMPLATE_URL_PLACEHOLDER)
|
|
3328
|
-
};
|
|
1832
|
+
if (pathSegmentHasUnsafeSyntaxParts(current, rejectPathStructure) || normalizedPathSegmentHasUnsafeSyntax(current, rejectPathStructure)) {
|
|
1833
|
+
return true;
|
|
3329
1834
|
}
|
|
3330
|
-
|
|
1835
|
+
const decoded = percentDecodePathSegment(current, rejectPathStructure);
|
|
1836
|
+
return decoded === null || decoded !== current;
|
|
3331
1837
|
}
|
|
3332
|
-
function
|
|
3333
|
-
|
|
3334
|
-
|
|
3335
|
-
|
|
3336
|
-
|
|
3337
|
-
|
|
3338
|
-
if (
|
|
3339
|
-
|
|
3340
|
-
`Invalid auth.base URL "${authBase}" in firewall "${serviceName}": must not contain whitespace`
|
|
3341
|
-
);
|
|
1838
|
+
function hasUnsafeFirewallPath(path) {
|
|
1839
|
+
return path.split("/").some((segment) => {
|
|
1840
|
+
return pathSegmentHasUnsafeSyntax(segment, false);
|
|
1841
|
+
});
|
|
1842
|
+
}
|
|
1843
|
+
function parseCanonicalIpv4Address(value) {
|
|
1844
|
+
if (!isCanonicalIpv4Address(value)) {
|
|
1845
|
+
return null;
|
|
3342
1846
|
}
|
|
3343
|
-
|
|
3344
|
-
|
|
3345
|
-
|
|
3346
|
-
|
|
1847
|
+
return value.split(".").map((part) => {
|
|
1848
|
+
return Number(part);
|
|
1849
|
+
});
|
|
1850
|
+
}
|
|
1851
|
+
function parseIpv6Word(value) {
|
|
1852
|
+
if (value === "" || value.length > 4 || ![...value].every((char) => {
|
|
1853
|
+
return isHexDigit(char);
|
|
1854
|
+
})) {
|
|
1855
|
+
return null;
|
|
3347
1856
|
}
|
|
3348
|
-
|
|
3349
|
-
|
|
3350
|
-
|
|
3351
|
-
|
|
1857
|
+
return Number.parseInt(value, 16);
|
|
1858
|
+
}
|
|
1859
|
+
function parseIpv6WordList(value) {
|
|
1860
|
+
if (value === "") {
|
|
1861
|
+
return [];
|
|
3352
1862
|
}
|
|
3353
|
-
|
|
3354
|
-
|
|
3355
|
-
|
|
3356
|
-
)
|
|
1863
|
+
const words = [];
|
|
1864
|
+
for (const part of value.split(":")) {
|
|
1865
|
+
const word = parseIpv6Word(part);
|
|
1866
|
+
if (word === null) {
|
|
1867
|
+
return null;
|
|
1868
|
+
}
|
|
1869
|
+
words.push(word);
|
|
3357
1870
|
}
|
|
1871
|
+
return words;
|
|
3358
1872
|
}
|
|
3359
|
-
function
|
|
3360
|
-
if (
|
|
3361
|
-
|
|
3362
|
-
`Invalid auth.base URL "${authBase}" in firewall "${serviceName}": must not contain backslash`
|
|
3363
|
-
);
|
|
1873
|
+
function parseIpv6Address(value) {
|
|
1874
|
+
if (value.includes("%")) {
|
|
1875
|
+
return null;
|
|
3364
1876
|
}
|
|
3365
|
-
|
|
3366
|
-
|
|
3367
|
-
|
|
3368
|
-
|
|
3369
|
-
|
|
3370
|
-
|
|
3371
|
-
|
|
3372
|
-
|
|
3373
|
-
if (validationUrl.includes(AUTH_TEMPLATE_START)) {
|
|
3374
|
-
throw new Error(
|
|
3375
|
-
`Invalid auth.base URL "${authBase}" in firewall "${serviceName}": contains unsupported template reference`
|
|
1877
|
+
let normalized = value.toLowerCase();
|
|
1878
|
+
if (normalized.includes(".")) {
|
|
1879
|
+
const lastColon = normalized.lastIndexOf(":");
|
|
1880
|
+
if (lastColon === -1) {
|
|
1881
|
+
return null;
|
|
1882
|
+
}
|
|
1883
|
+
const ipv4Parts = parseCanonicalIpv4Address(
|
|
1884
|
+
normalized.slice(lastColon + 1)
|
|
3376
1885
|
);
|
|
1886
|
+
if (!ipv4Parts) {
|
|
1887
|
+
return null;
|
|
1888
|
+
}
|
|
1889
|
+
const highWord = (ipv4Parts[0] << 8) + ipv4Parts[1];
|
|
1890
|
+
const lowWord = (ipv4Parts[2] << 8) + ipv4Parts[3];
|
|
1891
|
+
normalized = `${normalized.slice(0, lastColon)}:${highWord.toString(16)}:${lowWord.toString(16)}`;
|
|
3377
1892
|
}
|
|
3378
|
-
|
|
3379
|
-
|
|
3380
|
-
|
|
3381
|
-
);
|
|
1893
|
+
const compressed = normalized.split("::");
|
|
1894
|
+
if (compressed.length > 2) {
|
|
1895
|
+
return null;
|
|
3382
1896
|
}
|
|
3383
|
-
|
|
3384
|
-
|
|
3385
|
-
|
|
3386
|
-
|
|
1897
|
+
const left = parseIpv6WordList(compressed[0]);
|
|
1898
|
+
const right = compressed.length === 2 ? parseIpv6WordList(compressed[1]) : [];
|
|
1899
|
+
if (!left || !right) {
|
|
1900
|
+
return null;
|
|
3387
1901
|
}
|
|
3388
|
-
|
|
3389
|
-
|
|
3390
|
-
serviceName,
|
|
3391
|
-
"auth.base URL",
|
|
3392
|
-
authBase
|
|
3393
|
-
);
|
|
3394
|
-
let url;
|
|
3395
|
-
try {
|
|
3396
|
-
url = new URL(validationUrl);
|
|
3397
|
-
} catch {
|
|
3398
|
-
throw new Error(
|
|
3399
|
-
`Invalid auth.base URL "${authBase}" in firewall "${serviceName}": not a valid URL`
|
|
3400
|
-
);
|
|
1902
|
+
if (compressed.length === 1) {
|
|
1903
|
+
return left.length === 8 ? left : null;
|
|
3401
1904
|
}
|
|
3402
|
-
|
|
3403
|
-
|
|
3404
|
-
|
|
3405
|
-
);
|
|
1905
|
+
const zeroCount = 8 - left.length - right.length;
|
|
1906
|
+
if (zeroCount < 1) {
|
|
1907
|
+
return null;
|
|
3406
1908
|
}
|
|
3407
|
-
|
|
3408
|
-
|
|
3409
|
-
|
|
3410
|
-
|
|
1909
|
+
return [
|
|
1910
|
+
...left,
|
|
1911
|
+
...Array.from({ length: zeroCount }, () => {
|
|
1912
|
+
return 0;
|
|
1913
|
+
}),
|
|
1914
|
+
...right
|
|
1915
|
+
];
|
|
1916
|
+
}
|
|
1917
|
+
var FORBIDDEN_NORMALIZED_LABEL_CHARS = new Set("#%,/:<>?@[\\]^|[]".split(""));
|
|
1918
|
+
var WHITESPACE_PATTERN = /\s/u;
|
|
1919
|
+
var UNICODE_CONTROL_PATTERN = /\p{C}/u;
|
|
1920
|
+
var UNICODE_DECIMAL_NUMBER_PATTERN = /^\p{Decimal_Number}+$/u;
|
|
1921
|
+
function isHexDigit(char) {
|
|
1922
|
+
return char >= "0" && char <= "9" || char >= "a" && char <= "f" || char >= "A" && char <= "F";
|
|
1923
|
+
}
|
|
1924
|
+
function isAscii(value) {
|
|
1925
|
+
for (let i = 0; i < value.length; i += 1) {
|
|
1926
|
+
if (value.charCodeAt(i) > 127) return false;
|
|
3411
1927
|
}
|
|
3412
|
-
|
|
3413
|
-
|
|
3414
|
-
|
|
3415
|
-
|
|
3416
|
-
|
|
3417
|
-
|
|
3418
|
-
|
|
3419
|
-
|
|
3420
|
-
throw new Error(
|
|
3421
|
-
`Invalid auth.base URL "${authBase}" in firewall "${serviceName}": not a valid URL authority`
|
|
3422
|
-
);
|
|
3423
|
-
}
|
|
3424
|
-
if (authority.includes("@")) {
|
|
3425
|
-
throw new Error(
|
|
3426
|
-
`Invalid auth.base URL "${authBase}" in firewall "${serviceName}": must not contain userinfo`
|
|
3427
|
-
);
|
|
3428
|
-
}
|
|
3429
|
-
validateHostPercentEncoding(authority, validationUrl, serviceName);
|
|
3430
|
-
validateHostHasCanonicalIpv4Syntax(authority, validationUrl, serviceName);
|
|
3431
|
-
validateHostHasNoUnsafeIdnaMappings(authority, validationUrl, serviceName);
|
|
1928
|
+
return true;
|
|
1929
|
+
}
|
|
1930
|
+
function isIpv4NumberComponent(value) {
|
|
1931
|
+
if (value === "") return false;
|
|
1932
|
+
if (value.toLowerCase().startsWith("0x")) {
|
|
1933
|
+
return value.length > 2 && [...value.slice(2)].every((char) => {
|
|
1934
|
+
return isHexDigit(char);
|
|
1935
|
+
});
|
|
3432
1936
|
}
|
|
3433
|
-
|
|
1937
|
+
return UNICODE_DECIMAL_NUMBER_PATTERN.test(value);
|
|
1938
|
+
}
|
|
1939
|
+
function isIpv4LiteralLike(value) {
|
|
1940
|
+
const parts = value.split(".");
|
|
1941
|
+
return parts.length >= 1 && parts.length <= 4 && parts.every(isIpv4NumberComponent);
|
|
1942
|
+
}
|
|
1943
|
+
function isCanonicalIpv4Address(value) {
|
|
1944
|
+
const parts = value.split(".");
|
|
1945
|
+
if (parts.length !== 4) return false;
|
|
1946
|
+
return parts.every((part) => {
|
|
1947
|
+
if (part === "" || ![...part].every((char) => {
|
|
1948
|
+
return char >= "0" && char <= "9";
|
|
1949
|
+
})) {
|
|
1950
|
+
return false;
|
|
1951
|
+
}
|
|
1952
|
+
if (part.length > 1 && part.startsWith("0")) return false;
|
|
1953
|
+
return Number(part) <= IPV4_MAX_OCTET;
|
|
1954
|
+
});
|
|
3434
1955
|
}
|
|
3435
1956
|
|
|
3436
1957
|
// ../../packages/api-contracts/src/contracts/logs.ts
|
|
@@ -6536,9 +5057,175 @@ var zeroConnectorCatalogContract = c21.router({
|
|
|
6536
5057
|
}
|
|
6537
5058
|
});
|
|
6538
5059
|
|
|
6539
|
-
// ../../packages/api-contracts/src/contracts/zero-connector-
|
|
5060
|
+
// ../../packages/api-contracts/src/contracts/zero-connector-check.ts
|
|
6540
5061
|
init_esm_shims();
|
|
6541
5062
|
var c22 = initContract();
|
|
5063
|
+
var boundedNameSchema = external_exports.string().min(1).max(255);
|
|
5064
|
+
var connectorCheckUrlRequestSchema = external_exports.object({
|
|
5065
|
+
mode: external_exports.literal("url"),
|
|
5066
|
+
method: external_exports.string().min(1).max(16),
|
|
5067
|
+
url: external_exports.string().min(1).max(8192),
|
|
5068
|
+
connectorRef: connectorCatalogRefSchema.optional(),
|
|
5069
|
+
environmentName: boundedNameSchema.optional()
|
|
5070
|
+
}).strict();
|
|
5071
|
+
var connectorCheckEnvironmentRequestSchema = external_exports.object({
|
|
5072
|
+
mode: external_exports.literal("environment"),
|
|
5073
|
+
environmentName: boundedNameSchema,
|
|
5074
|
+
permission: boundedNameSchema.optional()
|
|
5075
|
+
}).strict();
|
|
5076
|
+
var connectorCheckRequestSchema = external_exports.discriminatedUnion("mode", [
|
|
5077
|
+
connectorCheckUrlRequestSchema,
|
|
5078
|
+
connectorCheckEnvironmentRequestSchema
|
|
5079
|
+
]);
|
|
5080
|
+
var connectorCheckIdentitySchema = external_exports.object({
|
|
5081
|
+
connectorRef: connectorCatalogRefSchema,
|
|
5082
|
+
label: external_exports.string().min(1),
|
|
5083
|
+
visibility: external_exports.enum(["available", "unavailable"]),
|
|
5084
|
+
credentialResolution: external_exports.enum(["network-boundary", "none"])
|
|
5085
|
+
}).strict();
|
|
5086
|
+
var connectorCheckCandidateSchema = external_exports.object({
|
|
5087
|
+
connectorRef: connectorCatalogRefSchema,
|
|
5088
|
+
label: external_exports.string().min(1)
|
|
5089
|
+
}).strict();
|
|
5090
|
+
var connectorCheckNotScopedRunSchema = external_exports.object({ status: external_exports.literal("not-scoped") }).strict();
|
|
5091
|
+
var connectorCheckConfiguredRunSchema = external_exports.object({
|
|
5092
|
+
status: external_exports.literal("configured"),
|
|
5093
|
+
bases: external_exports.array(external_exports.string().min(1))
|
|
5094
|
+
}).strict();
|
|
5095
|
+
var connectorCheckNotConfiguredRunSchema = external_exports.object({ status: external_exports.literal("not-configured") }).strict();
|
|
5096
|
+
var connectorCheckRunSchema = external_exports.discriminatedUnion("status", [
|
|
5097
|
+
connectorCheckNotScopedRunSchema,
|
|
5098
|
+
connectorCheckConfiguredRunSchema,
|
|
5099
|
+
connectorCheckNotConfiguredRunSchema
|
|
5100
|
+
]);
|
|
5101
|
+
var connectorCheckAllowPolicySchema = external_exports.object({
|
|
5102
|
+
outcome: external_exports.literal("allow"),
|
|
5103
|
+
basis: external_exports.enum(["allow-list", "not-blocked", "no-policy", "unknown-policy"])
|
|
5104
|
+
}).strict();
|
|
5105
|
+
var connectorCheckDenyPolicySchema = external_exports.object({
|
|
5106
|
+
outcome: external_exports.literal("deny"),
|
|
5107
|
+
basis: external_exports.enum(["deny-list", "unknown-policy"])
|
|
5108
|
+
}).strict();
|
|
5109
|
+
var connectorCheckAskPolicySchema = external_exports.object({
|
|
5110
|
+
outcome: external_exports.literal("ask"),
|
|
5111
|
+
basis: external_exports.enum(["ask-list", "unknown-policy"])
|
|
5112
|
+
}).strict();
|
|
5113
|
+
var connectorCheckUnavailablePolicySchema = external_exports.object({
|
|
5114
|
+
outcome: external_exports.literal("unavailable"),
|
|
5115
|
+
basis: external_exports.enum([
|
|
5116
|
+
"not-run-scoped",
|
|
5117
|
+
"policies-unavailable",
|
|
5118
|
+
"connector-not-configured"
|
|
5119
|
+
])
|
|
5120
|
+
}).strict();
|
|
5121
|
+
var connectorCheckPolicySchema = external_exports.discriminatedUnion("outcome", [
|
|
5122
|
+
connectorCheckAllowPolicySchema,
|
|
5123
|
+
connectorCheckDenyPolicySchema,
|
|
5124
|
+
connectorCheckAskPolicySchema,
|
|
5125
|
+
connectorCheckUnavailablePolicySchema
|
|
5126
|
+
]);
|
|
5127
|
+
var connectorCheckMatchedPermissionSchema = external_exports.object({
|
|
5128
|
+
name: external_exports.string().min(1),
|
|
5129
|
+
policy: connectorCheckPolicySchema
|
|
5130
|
+
}).strict();
|
|
5131
|
+
var connectorCheckMatchedPermissionsSchema = external_exports.object({
|
|
5132
|
+
kind: external_exports.literal("matched"),
|
|
5133
|
+
permissions: external_exports.array(connectorCheckMatchedPermissionSchema).min(1)
|
|
5134
|
+
}).strict();
|
|
5135
|
+
var connectorCheckUnknownEndpointSchema = external_exports.object({
|
|
5136
|
+
kind: external_exports.literal("unknown-endpoint"),
|
|
5137
|
+
policy: connectorCheckPolicySchema
|
|
5138
|
+
}).strict();
|
|
5139
|
+
var connectorCheckPermissionResultSchema = external_exports.discriminatedUnion("kind", [
|
|
5140
|
+
connectorCheckMatchedPermissionsSchema,
|
|
5141
|
+
connectorCheckUnknownEndpointSchema
|
|
5142
|
+
]);
|
|
5143
|
+
var connectorCheckResolvedUrlSchema = external_exports.object({
|
|
5144
|
+
outcome: external_exports.literal("resolved"),
|
|
5145
|
+
mode: external_exports.literal("url"),
|
|
5146
|
+
connector: connectorCheckIdentitySchema,
|
|
5147
|
+
environmentNames: external_exports.array(boundedNameSchema).nullable(),
|
|
5148
|
+
run: connectorCheckRunSchema,
|
|
5149
|
+
method: external_exports.string().min(1).max(16),
|
|
5150
|
+
base: external_exports.string().min(1),
|
|
5151
|
+
relativePath: external_exports.string().min(1),
|
|
5152
|
+
permission: connectorCheckPermissionResultSchema
|
|
5153
|
+
}).strict();
|
|
5154
|
+
var connectorCheckResolvedEnvironmentSchema = external_exports.object({
|
|
5155
|
+
outcome: external_exports.literal("resolved"),
|
|
5156
|
+
mode: external_exports.literal("environment"),
|
|
5157
|
+
connector: connectorCheckIdentitySchema,
|
|
5158
|
+
environmentName: boundedNameSchema,
|
|
5159
|
+
run: connectorCheckRunSchema,
|
|
5160
|
+
permission: connectorCheckPolicySchema.nullable()
|
|
5161
|
+
}).strict();
|
|
5162
|
+
var connectorCheckUnsafeInputSchema = external_exports.object({
|
|
5163
|
+
outcome: external_exports.literal("unsafe-input"),
|
|
5164
|
+
reason: external_exports.enum(["invalid-method", "invalid-url", "unsafe-path"])
|
|
5165
|
+
}).strict();
|
|
5166
|
+
var connectorCheckUnknownConnectorSchema = external_exports.object({ outcome: external_exports.literal("unknown-connector") }).strict();
|
|
5167
|
+
var connectorCheckUnknownEnvironmentSchema = external_exports.object({ outcome: external_exports.literal("unknown-environment") }).strict();
|
|
5168
|
+
var connectorCheckNoMatchSchema = external_exports.object({
|
|
5169
|
+
outcome: external_exports.literal("no-match"),
|
|
5170
|
+
scope: external_exports.enum(["run", "catalog"])
|
|
5171
|
+
}).strict();
|
|
5172
|
+
var connectorCheckAmbiguousSchema = external_exports.object({
|
|
5173
|
+
outcome: external_exports.literal("ambiguous"),
|
|
5174
|
+
candidates: external_exports.array(connectorCheckCandidateSchema).min(2)
|
|
5175
|
+
}).strict();
|
|
5176
|
+
var connectorCheckMismatchSchema = external_exports.object({
|
|
5177
|
+
outcome: external_exports.literal("connector-mismatch"),
|
|
5178
|
+
connector: connectorCheckIdentitySchema
|
|
5179
|
+
}).strict();
|
|
5180
|
+
var connectorCheckEnvironmentNotOwnedSchema = external_exports.object({
|
|
5181
|
+
outcome: external_exports.literal("environment-not-owned"),
|
|
5182
|
+
connector: connectorCheckIdentitySchema
|
|
5183
|
+
}).strict();
|
|
5184
|
+
var connectorCheckEnvironmentNotUsedSchema = external_exports.object({
|
|
5185
|
+
outcome: external_exports.literal("environment-not-used"),
|
|
5186
|
+
connector: connectorCheckIdentitySchema,
|
|
5187
|
+
environmentNames: external_exports.array(boundedNameSchema)
|
|
5188
|
+
}).strict();
|
|
5189
|
+
var connectorCheckUnresolvedDynamicBaseSchema = external_exports.object({
|
|
5190
|
+
outcome: external_exports.literal("unresolved-dynamic-base"),
|
|
5191
|
+
connector: connectorCheckIdentitySchema
|
|
5192
|
+
}).strict();
|
|
5193
|
+
var connectorCheckRunContextUnavailableSchema = external_exports.object({ outcome: external_exports.literal("run-context-unavailable") }).strict();
|
|
5194
|
+
var connectorCheckDiagnosticResultSchema = external_exports.union([
|
|
5195
|
+
connectorCheckResolvedUrlSchema,
|
|
5196
|
+
connectorCheckResolvedEnvironmentSchema,
|
|
5197
|
+
connectorCheckUnsafeInputSchema,
|
|
5198
|
+
connectorCheckUnknownConnectorSchema,
|
|
5199
|
+
connectorCheckUnknownEnvironmentSchema,
|
|
5200
|
+
connectorCheckNoMatchSchema,
|
|
5201
|
+
connectorCheckAmbiguousSchema,
|
|
5202
|
+
connectorCheckMismatchSchema,
|
|
5203
|
+
connectorCheckEnvironmentNotOwnedSchema,
|
|
5204
|
+
connectorCheckEnvironmentNotUsedSchema,
|
|
5205
|
+
connectorCheckUnresolvedDynamicBaseSchema,
|
|
5206
|
+
connectorCheckRunContextUnavailableSchema
|
|
5207
|
+
]);
|
|
5208
|
+
var zeroConnectorCheckContract = c22.router({
|
|
5209
|
+
check: {
|
|
5210
|
+
method: "POST",
|
|
5211
|
+
path: "/api/zero/connectors/diagnostics/check",
|
|
5212
|
+
headers: authHeadersSchema,
|
|
5213
|
+
body: connectorCheckRequestSchema,
|
|
5214
|
+
responses: {
|
|
5215
|
+
200: connectorCheckDiagnosticResultSchema,
|
|
5216
|
+
400: apiErrorSchema,
|
|
5217
|
+
401: apiErrorSchema,
|
|
5218
|
+
403: apiErrorSchema,
|
|
5219
|
+
404: apiErrorSchema,
|
|
5220
|
+
500: apiErrorSchema
|
|
5221
|
+
},
|
|
5222
|
+
summary: "Resolve connector runtime diagnostics"
|
|
5223
|
+
}
|
|
5224
|
+
});
|
|
5225
|
+
|
|
5226
|
+
// ../../packages/api-contracts/src/contracts/zero-connector-permission-deny.ts
|
|
5227
|
+
init_esm_shims();
|
|
5228
|
+
var c23 = initContract();
|
|
6542
5229
|
var connectorPermissionDenyRequestSchema = external_exports.object({
|
|
6543
5230
|
method: external_exports.string().min(1).max(16),
|
|
6544
5231
|
url: external_exports.string().min(1).max(8192)
|
|
@@ -6577,7 +5264,7 @@ var connectorPermissionDenyDiagnosticResultSchema = external_exports.discriminat
|
|
|
6577
5264
|
connectorPermissionDenyUnresolvedDynamicBaseSchema,
|
|
6578
5265
|
connectorPermissionDenyUnsafeInputSchema
|
|
6579
5266
|
]);
|
|
6580
|
-
var zeroConnectorPermissionDenyContract =
|
|
5267
|
+
var zeroConnectorPermissionDenyContract = c23.router({
|
|
6581
5268
|
diagnose: {
|
|
6582
5269
|
method: "POST",
|
|
6583
5270
|
path: "/api/zero/connectors/:connectorRef/diagnostics/permission-deny",
|
|
@@ -6597,7 +5284,7 @@ var zeroConnectorPermissionDenyContract = c22.router({
|
|
|
6597
5284
|
|
|
6598
5285
|
// ../../packages/api-contracts/src/contracts/zero-custom-connectors.ts
|
|
6599
5286
|
init_esm_shims();
|
|
6600
|
-
var
|
|
5287
|
+
var c24 = initContract();
|
|
6601
5288
|
var customConnectorFieldKindSchema = external_exports.enum(["secret", "variable"]);
|
|
6602
5289
|
var customConnectorFieldSchema = external_exports.object({
|
|
6603
5290
|
key: external_exports.string().min(1).max(64),
|
|
@@ -6694,7 +5381,7 @@ var saveCustomConnectorProposalResponseSchema = external_exports.object({
|
|
|
6694
5381
|
connector: customConnectorResponseSchema,
|
|
6695
5382
|
authorizedAgentId: external_exports.string().uuid().optional()
|
|
6696
5383
|
});
|
|
6697
|
-
var zeroCustomConnectorsContract =
|
|
5384
|
+
var zeroCustomConnectorsContract = c24.router({
|
|
6698
5385
|
list: {
|
|
6699
5386
|
method: "GET",
|
|
6700
5387
|
path: "/api/zero/custom-connectors",
|
|
@@ -6721,7 +5408,7 @@ var zeroCustomConnectorsContract = c23.router({
|
|
|
6721
5408
|
summary: "Create an org custom connector"
|
|
6722
5409
|
}
|
|
6723
5410
|
});
|
|
6724
|
-
var zeroCustomConnectorByIdContract =
|
|
5411
|
+
var zeroCustomConnectorByIdContract = c24.router({
|
|
6725
5412
|
get: {
|
|
6726
5413
|
method: "GET",
|
|
6727
5414
|
path: "/api/zero/custom-connectors/:id",
|
|
@@ -6742,7 +5429,7 @@ var zeroCustomConnectorByIdContract = c23.router({
|
|
|
6742
5429
|
headers: authHeadersSchema,
|
|
6743
5430
|
pathParams: external_exports.object({ id: external_exports.string().uuid() }),
|
|
6744
5431
|
responses: {
|
|
6745
|
-
204:
|
|
5432
|
+
204: c24.noBody(),
|
|
6746
5433
|
401: apiErrorSchema,
|
|
6747
5434
|
403: apiErrorSchema,
|
|
6748
5435
|
404: apiErrorSchema,
|
|
@@ -6767,7 +5454,7 @@ var zeroCustomConnectorByIdContract = c23.router({
|
|
|
6767
5454
|
summary: "Rename an org custom connector"
|
|
6768
5455
|
}
|
|
6769
5456
|
});
|
|
6770
|
-
var zeroCustomConnectorSecretContract =
|
|
5457
|
+
var zeroCustomConnectorSecretContract = c24.router({
|
|
6771
5458
|
set: {
|
|
6772
5459
|
method: "PUT",
|
|
6773
5460
|
path: "/api/zero/custom-connectors/:id/secret",
|
|
@@ -6775,7 +5462,7 @@ var zeroCustomConnectorSecretContract = c23.router({
|
|
|
6775
5462
|
pathParams: external_exports.object({ id: external_exports.string().uuid() }),
|
|
6776
5463
|
body: setCustomConnectorSecretBodySchema,
|
|
6777
5464
|
responses: {
|
|
6778
|
-
204:
|
|
5465
|
+
204: c24.noBody(),
|
|
6779
5466
|
400: apiErrorSchema,
|
|
6780
5467
|
401: apiErrorSchema,
|
|
6781
5468
|
404: apiErrorSchema,
|
|
@@ -6789,7 +5476,7 @@ var zeroCustomConnectorSecretContract = c23.router({
|
|
|
6789
5476
|
headers: authHeadersSchema,
|
|
6790
5477
|
pathParams: external_exports.object({ id: external_exports.string().uuid() }),
|
|
6791
5478
|
responses: {
|
|
6792
|
-
204:
|
|
5479
|
+
204: c24.noBody(),
|
|
6793
5480
|
401: apiErrorSchema,
|
|
6794
5481
|
404: apiErrorSchema,
|
|
6795
5482
|
500: apiErrorSchema
|
|
@@ -6797,7 +5484,7 @@ var zeroCustomConnectorSecretContract = c23.router({
|
|
|
6797
5484
|
summary: "Clear the calling user's secret for a custom connector"
|
|
6798
5485
|
}
|
|
6799
5486
|
});
|
|
6800
|
-
var zeroCustomConnectorProposalContract =
|
|
5487
|
+
var zeroCustomConnectorProposalContract = c24.router({
|
|
6801
5488
|
save: {
|
|
6802
5489
|
method: "POST",
|
|
6803
5490
|
path: "/api/zero/custom-connectors/proposals/save",
|
|
@@ -6825,18 +5512,6 @@ async function listZeroConnectors() {
|
|
|
6825
5512
|
}
|
|
6826
5513
|
handleError(result, "Failed to list connectors");
|
|
6827
5514
|
}
|
|
6828
|
-
async function searchZeroConnectors(keyword) {
|
|
6829
|
-
const config = await getClientConfig();
|
|
6830
|
-
const client = initClient(zeroConnectorsSearchContract, config);
|
|
6831
|
-
const result = await client.search({
|
|
6832
|
-
headers: {},
|
|
6833
|
-
query: keyword ? { keyword } : {}
|
|
6834
|
-
});
|
|
6835
|
-
if (result.status === 200) {
|
|
6836
|
-
return result.body;
|
|
6837
|
-
}
|
|
6838
|
-
handleError(result, "Failed to search connectors");
|
|
6839
|
-
}
|
|
6840
5515
|
async function listZeroConnectorCatalog() {
|
|
6841
5516
|
const config = await getClientConfig();
|
|
6842
5517
|
const client = initClient(zeroConnectorCatalogContract, config);
|
|
@@ -6877,6 +5552,18 @@ async function getZeroConnectorCatalogPermissions(connectorRef) {
|
|
|
6877
5552
|
`Failed to get connector permission metadata for "${connectorRef}"`
|
|
6878
5553
|
);
|
|
6879
5554
|
}
|
|
5555
|
+
async function diagnoseZeroConnectorCheck(request) {
|
|
5556
|
+
const config = await getClientConfig();
|
|
5557
|
+
const client = initClient(zeroConnectorCheckContract, {
|
|
5558
|
+
...config,
|
|
5559
|
+
validateResponse: true
|
|
5560
|
+
});
|
|
5561
|
+
const result = await client.check({ body: request });
|
|
5562
|
+
if (result.status === 200) {
|
|
5563
|
+
return result.body;
|
|
5564
|
+
}
|
|
5565
|
+
handleError(result, "Failed to diagnose connector");
|
|
5566
|
+
}
|
|
6880
5567
|
async function diagnoseZeroConnectorPermissionDeny(connectorRef, method, url) {
|
|
6881
5568
|
const config = await getClientConfig();
|
|
6882
5569
|
const client = initClient(zeroConnectorPermissionDenyContract, {
|
|
@@ -6954,7 +5641,7 @@ init_esm_shims();
|
|
|
6954
5641
|
|
|
6955
5642
|
// ../../packages/api-contracts/src/contracts/runners.ts
|
|
6956
5643
|
init_esm_shims();
|
|
6957
|
-
var
|
|
5644
|
+
var c25 = initContract();
|
|
6958
5645
|
var MIN_EPOCH_MS_TIMESTAMP = 1e12;
|
|
6959
5646
|
var apiStartTimeSchema = external_exports.number().int().min(MIN_EPOCH_MS_TIMESTAMP);
|
|
6960
5647
|
var CANONICAL_GUEST_HOME_DIR = "/home/user";
|
|
@@ -7060,7 +5747,7 @@ var heldSessionStateSchema = external_exports.object({
|
|
|
7060
5747
|
profile: external_exports.string()
|
|
7061
5748
|
}).optional()
|
|
7062
5749
|
});
|
|
7063
|
-
var runnersPollContract =
|
|
5750
|
+
var runnersPollContract = c25.router({
|
|
7064
5751
|
poll: {
|
|
7065
5752
|
method: "POST",
|
|
7066
5753
|
path: "/api/runners/poll",
|
|
@@ -7298,7 +5985,7 @@ var executionContextSchema = external_exports.object({
|
|
|
7298
5985
|
// API-owned Codex provider/runtime metadata forwarded through the runner.
|
|
7299
5986
|
codexRuntimeConfig: modelProviderCodexRuntimeConfigSchema.nullable().optional()
|
|
7300
5987
|
});
|
|
7301
|
-
var runnersJobClaimContract =
|
|
5988
|
+
var runnersJobClaimContract = c25.router({
|
|
7302
5989
|
claim: {
|
|
7303
5990
|
method: "POST",
|
|
7304
5991
|
path: "/api/runners/jobs/:id/claim",
|
|
@@ -7322,7 +6009,7 @@ var runnersJobClaimContract = c24.router({
|
|
|
7322
6009
|
summary: "Claim a pending job for execution"
|
|
7323
6010
|
}
|
|
7324
6011
|
});
|
|
7325
|
-
var runnersNetworkPolicyRefreshContract =
|
|
6012
|
+
var runnersNetworkPolicyRefreshContract = c25.router({
|
|
7326
6013
|
refresh: {
|
|
7327
6014
|
method: "POST",
|
|
7328
6015
|
path: "/api/runners/runs/:runId/network-policy-refresh",
|
|
@@ -7352,7 +6039,7 @@ var runnersNetworkPolicyRefreshContract = c24.router({
|
|
|
7352
6039
|
summary: "Refresh active run network policies"
|
|
7353
6040
|
}
|
|
7354
6041
|
});
|
|
7355
|
-
var runnersBuiltinFirewallsResolveContract =
|
|
6042
|
+
var runnersBuiltinFirewallsResolveContract = c25.router({
|
|
7356
6043
|
resolve: {
|
|
7357
6044
|
method: "POST",
|
|
7358
6045
|
path: "/api/runners/builtin-firewalls/resolve",
|
|
@@ -7381,7 +6068,7 @@ var heartbeatBodySchema = external_exports.object({
|
|
|
7381
6068
|
heldSessionStates: external_exports.array(heldSessionStateSchema).max(1024),
|
|
7382
6069
|
mode: external_exports.enum(["starting", "running", "draining", "stopping"])
|
|
7383
6070
|
});
|
|
7384
|
-
var runnersHeartbeatContract =
|
|
6071
|
+
var runnersHeartbeatContract = c25.router({
|
|
7385
6072
|
heartbeat: {
|
|
7386
6073
|
method: "POST",
|
|
7387
6074
|
path: "/api/runners/heartbeat",
|
|
@@ -7399,7 +6086,7 @@ var runnersHeartbeatContract = c24.router({
|
|
|
7399
6086
|
|
|
7400
6087
|
// ../../packages/api-contracts/src/contracts/storages.ts
|
|
7401
6088
|
init_esm_shims();
|
|
7402
|
-
var
|
|
6089
|
+
var c26 = initContract();
|
|
7403
6090
|
var storageTypeSchema = external_exports.enum(["volume", "artifact"]);
|
|
7404
6091
|
var versionQuerySchema = external_exports.string().regex(/^[a-f0-9]{8,64}$/i, "Version must be 8-64 hex characters").optional();
|
|
7405
6092
|
var uploadStorageResponseSchema = external_exports.object({
|
|
@@ -7410,7 +6097,7 @@ var uploadStorageResponseSchema = external_exports.object({
|
|
|
7410
6097
|
type: storageTypeSchema,
|
|
7411
6098
|
deduplicated: external_exports.boolean()
|
|
7412
6099
|
});
|
|
7413
|
-
var storagesContract =
|
|
6100
|
+
var storagesContract = c26.router({
|
|
7414
6101
|
/**
|
|
7415
6102
|
* POST /api/storages
|
|
7416
6103
|
* Upload a storage (tar.gz file)
|
|
@@ -7427,7 +6114,7 @@ var storagesContract = c25.router({
|
|
|
7427
6114
|
path: "/api/storages",
|
|
7428
6115
|
headers: authHeadersSchema,
|
|
7429
6116
|
contentType: "multipart/form-data",
|
|
7430
|
-
body:
|
|
6117
|
+
body: c26.type(),
|
|
7431
6118
|
responses: {
|
|
7432
6119
|
200: uploadStorageResponseSchema,
|
|
7433
6120
|
400: apiErrorSchema,
|
|
@@ -7456,9 +6143,9 @@ var storagesContract = c25.router({
|
|
|
7456
6143
|
}),
|
|
7457
6144
|
responses: {
|
|
7458
6145
|
// Binary response - actual handling done at route level
|
|
7459
|
-
200:
|
|
6146
|
+
200: c26.otherResponse({
|
|
7460
6147
|
contentType: "application/gzip",
|
|
7461
|
-
body:
|
|
6148
|
+
body: c26.type()
|
|
7462
6149
|
}),
|
|
7463
6150
|
400: apiErrorSchema,
|
|
7464
6151
|
401: apiErrorSchema,
|
|
@@ -7483,7 +6170,7 @@ var presignedUploadSchema = external_exports.object({
|
|
|
7483
6170
|
key: external_exports.string(),
|
|
7484
6171
|
presignedUrl: external_exports.url()
|
|
7485
6172
|
});
|
|
7486
|
-
var storagesPrepareContract =
|
|
6173
|
+
var storagesPrepareContract = c26.router({
|
|
7487
6174
|
prepare: {
|
|
7488
6175
|
method: "POST",
|
|
7489
6176
|
path: "/api/storages/prepare",
|
|
@@ -7518,7 +6205,7 @@ var storagesPrepareContract = c25.router({
|
|
|
7518
6205
|
summary: "Prepare for direct S3 upload"
|
|
7519
6206
|
}
|
|
7520
6207
|
});
|
|
7521
|
-
var storagesCommitContract =
|
|
6208
|
+
var storagesCommitContract = c26.router({
|
|
7522
6209
|
commit: {
|
|
7523
6210
|
method: "POST",
|
|
7524
6211
|
path: "/api/storages/commit",
|
|
@@ -7552,7 +6239,7 @@ var storagesCommitContract = c25.router({
|
|
|
7552
6239
|
summary: "Commit uploaded storage"
|
|
7553
6240
|
}
|
|
7554
6241
|
});
|
|
7555
|
-
var storagesDownloadContract =
|
|
6242
|
+
var storagesDownloadContract = c26.router({
|
|
7556
6243
|
download: {
|
|
7557
6244
|
method: "GET",
|
|
7558
6245
|
path: "/api/storages/download",
|
|
@@ -7588,7 +6275,7 @@ var storagesDownloadContract = c25.router({
|
|
|
7588
6275
|
summary: "Get presigned download URL"
|
|
7589
6276
|
}
|
|
7590
6277
|
});
|
|
7591
|
-
var storagesListContract =
|
|
6278
|
+
var storagesListContract = c26.router({
|
|
7592
6279
|
list: {
|
|
7593
6280
|
method: "GET",
|
|
7594
6281
|
path: "/api/storages/list",
|
|
@@ -7616,7 +6303,7 @@ var storagesListContract = c25.router({
|
|
|
7616
6303
|
});
|
|
7617
6304
|
|
|
7618
6305
|
// ../../packages/api-contracts/src/contracts/webhooks.ts
|
|
7619
|
-
var
|
|
6306
|
+
var c27 = initContract();
|
|
7620
6307
|
var sha256HexSchema = external_exports.string().regex(
|
|
7621
6308
|
/^[a-f0-9]{64}$/,
|
|
7622
6309
|
"hash must be a lowercase 64-character SHA-256 hex string"
|
|
@@ -7626,11 +6313,11 @@ var thirdPartyWebhookOkSchema = external_exports.union([
|
|
|
7626
6313
|
external_exports.string(),
|
|
7627
6314
|
external_exports.object({ message: external_exports.literal("pong") })
|
|
7628
6315
|
]);
|
|
7629
|
-
var webhookClerkContract =
|
|
6316
|
+
var webhookClerkContract = c27.router({
|
|
7630
6317
|
post: {
|
|
7631
6318
|
method: "POST",
|
|
7632
6319
|
path: "/api/webhooks/clerk",
|
|
7633
|
-
body:
|
|
6320
|
+
body: c27.type(),
|
|
7634
6321
|
responses: {
|
|
7635
6322
|
200: thirdPartyWebhookOkSchema,
|
|
7636
6323
|
401: thirdPartyWebhookErrorSchema
|
|
@@ -7638,11 +6325,11 @@ var webhookClerkContract = c26.router({
|
|
|
7638
6325
|
summary: "Handle Clerk organization and user webhooks"
|
|
7639
6326
|
}
|
|
7640
6327
|
});
|
|
7641
|
-
var webhookGithubContract =
|
|
6328
|
+
var webhookGithubContract = c27.router({
|
|
7642
6329
|
post: {
|
|
7643
6330
|
method: "POST",
|
|
7644
6331
|
path: "/api/webhooks/github",
|
|
7645
|
-
body:
|
|
6332
|
+
body: c27.type(),
|
|
7646
6333
|
responses: {
|
|
7647
6334
|
200: thirdPartyWebhookOkSchema,
|
|
7648
6335
|
400: thirdPartyWebhookErrorSchema,
|
|
@@ -7652,11 +6339,11 @@ var webhookGithubContract = c26.router({
|
|
|
7652
6339
|
summary: "Handle GitHub App webhooks"
|
|
7653
6340
|
}
|
|
7654
6341
|
});
|
|
7655
|
-
var webhookStripeContract =
|
|
6342
|
+
var webhookStripeContract = c27.router({
|
|
7656
6343
|
post: {
|
|
7657
6344
|
method: "POST",
|
|
7658
6345
|
path: "/api/webhooks/stripe",
|
|
7659
|
-
body:
|
|
6346
|
+
body: c27.type(),
|
|
7660
6347
|
responses: {
|
|
7661
6348
|
200: thirdPartyWebhookOkSchema,
|
|
7662
6349
|
401: thirdPartyWebhookErrorSchema,
|
|
@@ -7695,11 +6382,11 @@ var workflowTriggerWebhookResponseSchema = external_exports.object({
|
|
|
7695
6382
|
duplicate: external_exports.boolean(),
|
|
7696
6383
|
runId: external_exports.string().uuid().optional()
|
|
7697
6384
|
});
|
|
7698
|
-
var webhookGmailContract =
|
|
6385
|
+
var webhookGmailContract = c27.router({
|
|
7699
6386
|
post: {
|
|
7700
6387
|
method: "POST",
|
|
7701
6388
|
path: "/api/webhooks/gmail",
|
|
7702
|
-
body:
|
|
6389
|
+
body: c27.type(),
|
|
7703
6390
|
responses: {
|
|
7704
6391
|
200: gmailWebhookResponseSchema,
|
|
7705
6392
|
400: thirdPartyWebhookErrorSchema,
|
|
@@ -7710,11 +6397,11 @@ var webhookGmailContract = c26.router({
|
|
|
7710
6397
|
summary: "Handle Gmail Pub/Sub push notifications"
|
|
7711
6398
|
}
|
|
7712
6399
|
});
|
|
7713
|
-
var webhookGoogleCalendarContract =
|
|
6400
|
+
var webhookGoogleCalendarContract = c27.router({
|
|
7714
6401
|
post: {
|
|
7715
6402
|
method: "POST",
|
|
7716
6403
|
path: "/api/webhooks/google-calendar",
|
|
7717
|
-
body:
|
|
6404
|
+
body: c27.type(),
|
|
7718
6405
|
responses: {
|
|
7719
6406
|
200: googleCalendarWebhookResponseSchema,
|
|
7720
6407
|
400: thirdPartyWebhookErrorSchema,
|
|
@@ -7725,11 +6412,11 @@ var webhookGoogleCalendarContract = c26.router({
|
|
|
7725
6412
|
summary: "Handle Google Calendar push notifications"
|
|
7726
6413
|
}
|
|
7727
6414
|
});
|
|
7728
|
-
var webhookGoogleWorkspaceEventsContract =
|
|
6415
|
+
var webhookGoogleWorkspaceEventsContract = c27.router({
|
|
7729
6416
|
post: {
|
|
7730
6417
|
method: "POST",
|
|
7731
6418
|
path: "/api/webhooks/google-workspace-events",
|
|
7732
|
-
body:
|
|
6419
|
+
body: c27.type(),
|
|
7733
6420
|
responses: {
|
|
7734
6421
|
200: googleWorkspaceEventsWebhookResponseSchema,
|
|
7735
6422
|
400: thirdPartyWebhookErrorSchema,
|
|
@@ -7740,11 +6427,11 @@ var webhookGoogleWorkspaceEventsContract = c26.router({
|
|
|
7740
6427
|
summary: "Handle Google Workspace Events Pub/Sub push notifications"
|
|
7741
6428
|
}
|
|
7742
6429
|
});
|
|
7743
|
-
var webhookNotionContract =
|
|
6430
|
+
var webhookNotionContract = c27.router({
|
|
7744
6431
|
post: {
|
|
7745
6432
|
method: "POST",
|
|
7746
6433
|
path: "/api/webhooks/notion",
|
|
7747
|
-
body:
|
|
6434
|
+
body: c27.type(),
|
|
7748
6435
|
responses: {
|
|
7749
6436
|
200: notionWebhookResponseSchema,
|
|
7750
6437
|
400: thirdPartyWebhookErrorSchema,
|
|
@@ -7754,14 +6441,14 @@ var webhookNotionContract = c26.router({
|
|
|
7754
6441
|
summary: "Handle Notion webhook events"
|
|
7755
6442
|
}
|
|
7756
6443
|
});
|
|
7757
|
-
var webhookWorkflowTriggerContract =
|
|
6444
|
+
var webhookWorkflowTriggerContract = c27.router({
|
|
7758
6445
|
post: {
|
|
7759
6446
|
method: "POST",
|
|
7760
6447
|
path: "/api/webhooks/workflow-triggers/:token",
|
|
7761
6448
|
pathParams: external_exports.object({
|
|
7762
6449
|
token: external_exports.string().min(1)
|
|
7763
6450
|
}),
|
|
7764
|
-
body:
|
|
6451
|
+
body: c27.type(),
|
|
7765
6452
|
responses: {
|
|
7766
6453
|
200: workflowTriggerWebhookResponseSchema,
|
|
7767
6454
|
400: thirdPartyWebhookErrorSchema,
|
|
@@ -7774,7 +6461,7 @@ var webhookWorkflowTriggerContract = c26.router({
|
|
|
7774
6461
|
summary: "Handle inbound workflow trigger webhooks"
|
|
7775
6462
|
}
|
|
7776
6463
|
});
|
|
7777
|
-
var webhookBuiltInGenerationFalContract =
|
|
6464
|
+
var webhookBuiltInGenerationFalContract = c27.router({
|
|
7778
6465
|
post: {
|
|
7779
6466
|
method: "POST",
|
|
7780
6467
|
path: "/api/webhooks/built-in-generations/fal/:generationId",
|
|
@@ -7785,7 +6472,7 @@ var webhookBuiltInGenerationFalContract = c26.router({
|
|
|
7785
6472
|
token: external_exports.string().min(1),
|
|
7786
6473
|
visualKey: external_exports.string().min(1).optional()
|
|
7787
6474
|
}),
|
|
7788
|
-
body:
|
|
6475
|
+
body: c27.type(),
|
|
7789
6476
|
responses: {
|
|
7790
6477
|
200: thirdPartyWebhookOkSchema,
|
|
7791
6478
|
400: thirdPartyWebhookErrorSchema,
|
|
@@ -7795,7 +6482,7 @@ var webhookBuiltInGenerationFalContract = c26.router({
|
|
|
7795
6482
|
summary: "Handle fal built-in generation webhooks"
|
|
7796
6483
|
}
|
|
7797
6484
|
});
|
|
7798
|
-
var webhookBuiltInGenerationBytePlusContract =
|
|
6485
|
+
var webhookBuiltInGenerationBytePlusContract = c27.router({
|
|
7799
6486
|
post: {
|
|
7800
6487
|
method: "POST",
|
|
7801
6488
|
path: "/api/webhooks/built-in-generations/byteplus/:generationId",
|
|
@@ -7806,7 +6493,7 @@ var webhookBuiltInGenerationBytePlusContract = c26.router({
|
|
|
7806
6493
|
token: external_exports.string().min(1),
|
|
7807
6494
|
visualKey: external_exports.string().min(1).optional()
|
|
7808
6495
|
}),
|
|
7809
|
-
body:
|
|
6496
|
+
body: c27.type(),
|
|
7810
6497
|
responses: {
|
|
7811
6498
|
200: thirdPartyWebhookOkSchema,
|
|
7812
6499
|
400: thirdPartyWebhookErrorSchema,
|
|
@@ -7866,7 +6553,7 @@ var firewallAuthResponseSchema = external_exports.object({
|
|
|
7866
6553
|
refreshedConnectors: external_exports.array(external_exports.string()),
|
|
7867
6554
|
refreshedSecrets: external_exports.array(external_exports.string())
|
|
7868
6555
|
});
|
|
7869
|
-
var webhookFirewallAuthContract =
|
|
6556
|
+
var webhookFirewallAuthContract = c27.router({
|
|
7870
6557
|
/**
|
|
7871
6558
|
* POST /api/webhooks/agent/firewall/auth
|
|
7872
6559
|
* Resolve firewall auth templates and refresh access tokens on demand.
|
|
@@ -7908,7 +6595,7 @@ var webhookFirewallAuthContract = c26.router({
|
|
|
7908
6595
|
summary: "Resolve firewall auth templates"
|
|
7909
6596
|
}
|
|
7910
6597
|
});
|
|
7911
|
-
var webhookEventsContract =
|
|
6598
|
+
var webhookEventsContract = c27.router({
|
|
7912
6599
|
/**
|
|
7913
6600
|
* POST /api/webhooks/agent/events
|
|
7914
6601
|
* Receive agent events from sandbox
|
|
@@ -7935,7 +6622,7 @@ var webhookEventsContract = c26.router({
|
|
|
7935
6622
|
summary: "Receive agent events from sandbox"
|
|
7936
6623
|
}
|
|
7937
6624
|
});
|
|
7938
|
-
var webhookCompleteContract =
|
|
6625
|
+
var webhookCompleteContract = c27.router({
|
|
7939
6626
|
/**
|
|
7940
6627
|
* POST /api/webhooks/agent/complete
|
|
7941
6628
|
* Handle agent run completion (success or failure)
|
|
@@ -7972,7 +6659,7 @@ var webhookCompleteContract = c26.router({
|
|
|
7972
6659
|
summary: "Handle agent run completion"
|
|
7973
6660
|
}
|
|
7974
6661
|
});
|
|
7975
|
-
var webhookCheckpointsContract =
|
|
6662
|
+
var webhookCheckpointsContract = c27.router({
|
|
7976
6663
|
/**
|
|
7977
6664
|
* POST /api/webhooks/agent/checkpoints
|
|
7978
6665
|
* Create a recoverable checkpoint for an agent run.
|
|
@@ -8008,7 +6695,7 @@ var webhookCheckpointsContract = c26.router({
|
|
|
8008
6695
|
summary: "Create checkpoint for agent run"
|
|
8009
6696
|
}
|
|
8010
6697
|
});
|
|
8011
|
-
var webhookCheckpointsPrepareHistoryContract =
|
|
6698
|
+
var webhookCheckpointsPrepareHistoryContract = c27.router({
|
|
8012
6699
|
prepare: {
|
|
8013
6700
|
method: "POST",
|
|
8014
6701
|
path: "/api/webhooks/agent/checkpoints/prepare-history",
|
|
@@ -8034,7 +6721,7 @@ var webhookCheckpointsPrepareHistoryContract = c26.router({
|
|
|
8034
6721
|
summary: "Get presigned URL for uploading session history to S3"
|
|
8035
6722
|
}
|
|
8036
6723
|
});
|
|
8037
|
-
var webhookHeartbeatContract =
|
|
6724
|
+
var webhookHeartbeatContract = c27.router({
|
|
8038
6725
|
/**
|
|
8039
6726
|
* POST /api/webhooks/agent/heartbeat
|
|
8040
6727
|
* Receive heartbeat signals from sandbox
|
|
@@ -8058,7 +6745,7 @@ var webhookHeartbeatContract = c26.router({
|
|
|
8058
6745
|
summary: "Receive heartbeat from sandbox"
|
|
8059
6746
|
}
|
|
8060
6747
|
});
|
|
8061
|
-
var webhookStoragesContract =
|
|
6748
|
+
var webhookStoragesContract = c27.router({
|
|
8062
6749
|
/**
|
|
8063
6750
|
* POST /api/webhooks/agent/storages
|
|
8064
6751
|
* Create a new version of a storage from sandbox
|
|
@@ -8074,7 +6761,7 @@ var webhookStoragesContract = c26.router({
|
|
|
8074
6761
|
path: "/api/webhooks/agent/storages",
|
|
8075
6762
|
headers: authHeadersSchema,
|
|
8076
6763
|
contentType: "multipart/form-data",
|
|
8077
|
-
body:
|
|
6764
|
+
body: c27.type(),
|
|
8078
6765
|
responses: {
|
|
8079
6766
|
200: external_exports.object({
|
|
8080
6767
|
versionId: external_exports.string(),
|
|
@@ -8090,7 +6777,7 @@ var webhookStoragesContract = c26.router({
|
|
|
8090
6777
|
summary: "Upload storage version from sandbox"
|
|
8091
6778
|
}
|
|
8092
6779
|
});
|
|
8093
|
-
var webhookStoragesIncrementalContract =
|
|
6780
|
+
var webhookStoragesIncrementalContract = c27.router({
|
|
8094
6781
|
/**
|
|
8095
6782
|
* POST /api/webhooks/agent/storages/incremental
|
|
8096
6783
|
* Create a new version using incremental upload
|
|
@@ -8108,7 +6795,7 @@ var webhookStoragesIncrementalContract = c26.router({
|
|
|
8108
6795
|
path: "/api/webhooks/agent/storages/incremental",
|
|
8109
6796
|
headers: authHeadersSchema,
|
|
8110
6797
|
contentType: "multipart/form-data",
|
|
8111
|
-
body:
|
|
6798
|
+
body: c27.type(),
|
|
8112
6799
|
responses: {
|
|
8113
6800
|
200: external_exports.object({
|
|
8114
6801
|
versionId: external_exports.string(),
|
|
@@ -8202,7 +6889,7 @@ var sandboxOperationSchema = external_exports.object({
|
|
|
8202
6889
|
session_history_transfer_encoding_state: sessionHistoryTransferEncodingStateSchema.optional(),
|
|
8203
6890
|
session_history_download_source: sandboxOperationDownloadSourceSchema
|
|
8204
6891
|
});
|
|
8205
|
-
var webhookTelemetryContract =
|
|
6892
|
+
var webhookTelemetryContract = c27.router({
|
|
8206
6893
|
/**
|
|
8207
6894
|
* POST /api/webhooks/agent/telemetry
|
|
8208
6895
|
* Receive telemetry data (system log, metrics, network logs, and sandbox operations) from sandbox
|
|
@@ -8231,7 +6918,7 @@ var webhookTelemetryContract = c26.router({
|
|
|
8231
6918
|
summary: "Receive telemetry data from sandbox"
|
|
8232
6919
|
}
|
|
8233
6920
|
});
|
|
8234
|
-
var webhookStoragesPrepareContract =
|
|
6921
|
+
var webhookStoragesPrepareContract = c27.router({
|
|
8235
6922
|
prepare: {
|
|
8236
6923
|
method: "POST",
|
|
8237
6924
|
path: "/api/webhooks/agent/storages/prepare",
|
|
@@ -8265,7 +6952,7 @@ var webhookStoragesPrepareContract = c26.router({
|
|
|
8265
6952
|
summary: "Prepare for direct S3 upload from sandbox"
|
|
8266
6953
|
}
|
|
8267
6954
|
});
|
|
8268
|
-
var webhookStoragesCommitContract =
|
|
6955
|
+
var webhookStoragesCommitContract = c27.router({
|
|
8269
6956
|
commit: {
|
|
8270
6957
|
method: "POST",
|
|
8271
6958
|
path: "/api/webhooks/agent/storages/commit",
|
|
@@ -8307,7 +6994,7 @@ var webhookUsageEventItemSchema = external_exports.object({
|
|
|
8307
6994
|
category: external_exports.string().min(1).max(100),
|
|
8308
6995
|
quantity: external_exports.number().int().min(0)
|
|
8309
6996
|
}).strict();
|
|
8310
|
-
var webhookUsageEventContract =
|
|
6997
|
+
var webhookUsageEventContract = c27.router({
|
|
8311
6998
|
send: {
|
|
8312
6999
|
method: "POST",
|
|
8313
7000
|
path: "/api/webhooks/agent/usage-event",
|
|
@@ -8340,7 +7027,7 @@ var webhookModelUsageObservationItemSchema = external_exports.object({
|
|
|
8340
7027
|
category: modelUsageObservationCategorySchema,
|
|
8341
7028
|
quantity: external_exports.number().int().min(1)
|
|
8342
7029
|
}).strict();
|
|
8343
|
-
var webhookModelUsageObservationContract =
|
|
7030
|
+
var webhookModelUsageObservationContract = c27.router({
|
|
8344
7031
|
send: {
|
|
8345
7032
|
method: "POST",
|
|
8346
7033
|
path: "/api/webhooks/agent/model-usage-observation",
|
|
@@ -8378,7 +7065,7 @@ var zeroRunRequestSchema = unifiedRunRequestSchema.omit({
|
|
|
8378
7065
|
agentId: external_exports.string().optional(),
|
|
8379
7066
|
modelProvider: external_exports.string().optional()
|
|
8380
7067
|
});
|
|
8381
|
-
var
|
|
7068
|
+
var c28 = initContract();
|
|
8382
7069
|
var zeroLogPaginationQuerySchema = createLogPaginationQuerySchema({
|
|
8383
7070
|
cursorKind: "sequence"
|
|
8384
7071
|
});
|
|
@@ -8388,7 +7075,7 @@ var zeroNetworkLogPaginationQuerySchema = createLogPaginationQuerySchema({
|
|
|
8388
7075
|
defaultLimit: 500,
|
|
8389
7076
|
defaultOrder: "asc"
|
|
8390
7077
|
});
|
|
8391
|
-
var zeroRunsMainContract =
|
|
7078
|
+
var zeroRunsMainContract = c28.router({
|
|
8392
7079
|
create: {
|
|
8393
7080
|
method: "POST",
|
|
8394
7081
|
path: "/api/zero/runs",
|
|
@@ -8407,7 +7094,7 @@ var zeroRunsMainContract = c27.router({
|
|
|
8407
7094
|
summary: "Create and execute agent run (zero proxy)"
|
|
8408
7095
|
}
|
|
8409
7096
|
});
|
|
8410
|
-
var zeroRunsByIdContract =
|
|
7097
|
+
var zeroRunsByIdContract = c28.router({
|
|
8411
7098
|
getById: {
|
|
8412
7099
|
method: "GET",
|
|
8413
7100
|
path: "/api/zero/runs/:id",
|
|
@@ -8425,7 +7112,7 @@ var zeroRunsByIdContract = c27.router({
|
|
|
8425
7112
|
summary: "Get agent run by ID (zero proxy)"
|
|
8426
7113
|
}
|
|
8427
7114
|
});
|
|
8428
|
-
var zeroRunsCancelContract =
|
|
7115
|
+
var zeroRunsCancelContract = c28.router({
|
|
8429
7116
|
cancel: {
|
|
8430
7117
|
method: "POST",
|
|
8431
7118
|
path: "/api/zero/runs/:id/cancel",
|
|
@@ -8444,7 +7131,7 @@ var zeroRunsCancelContract = c27.router({
|
|
|
8444
7131
|
summary: "Cancel a pending or running run (zero proxy)"
|
|
8445
7132
|
}
|
|
8446
7133
|
});
|
|
8447
|
-
var zeroRunsQueueContract =
|
|
7134
|
+
var zeroRunsQueueContract = c28.router({
|
|
8448
7135
|
getQueue: {
|
|
8449
7136
|
method: "GET",
|
|
8450
7137
|
path: "/api/zero/runs/queue",
|
|
@@ -8457,7 +7144,7 @@ var zeroRunsQueueContract = c27.router({
|
|
|
8457
7144
|
summary: "Get org run queue status (zero proxy)"
|
|
8458
7145
|
}
|
|
8459
7146
|
});
|
|
8460
|
-
var zeroRunAgentEventsContract =
|
|
7147
|
+
var zeroRunAgentEventsContract = c28.router({
|
|
8461
7148
|
getAgentEvents: {
|
|
8462
7149
|
method: "GET",
|
|
8463
7150
|
path: "/api/zero/runs/:id/telemetry/agent",
|
|
@@ -8521,7 +7208,7 @@ var runContextResponseSchema = external_exports.object({
|
|
|
8521
7208
|
artifact: runContextArtifactSchema.nullable(),
|
|
8522
7209
|
featureFlags: external_exports.record(external_exports.string(), external_exports.boolean()).nullable()
|
|
8523
7210
|
});
|
|
8524
|
-
var zeroRunContextContract =
|
|
7211
|
+
var zeroRunContextContract = c28.router({
|
|
8525
7212
|
getContext: {
|
|
8526
7213
|
method: "GET",
|
|
8527
7214
|
path: "/api/zero/runs/:id/context",
|
|
@@ -8539,7 +7226,7 @@ var zeroRunContextContract = c27.router({
|
|
|
8539
7226
|
summary: "Get run execution context snapshot for debugging"
|
|
8540
7227
|
}
|
|
8541
7228
|
});
|
|
8542
|
-
var zeroRunNetworkLogsContract =
|
|
7229
|
+
var zeroRunNetworkLogsContract = c28.router({
|
|
8543
7230
|
getNetworkLogs: {
|
|
8544
7231
|
method: "GET",
|
|
8545
7232
|
path: "/api/zero/runs/:id/network",
|
|
@@ -8561,7 +7248,7 @@ var zeroRunNetworkLogsContract = c27.router({
|
|
|
8561
7248
|
var runRunnerResponseSchema = external_exports.object({
|
|
8562
7249
|
sandboxReuseResult: sandboxReuseResultSchema.nullable()
|
|
8563
7250
|
});
|
|
8564
|
-
var zeroRunRunnerContract =
|
|
7251
|
+
var zeroRunRunnerContract = c28.router({
|
|
8565
7252
|
getRunner: {
|
|
8566
7253
|
method: "GET",
|
|
8567
7254
|
path: "/api/zero/runs/:id/runner",
|
|
@@ -8579,7 +7266,7 @@ var zeroRunRunnerContract = c27.router({
|
|
|
8579
7266
|
summary: "Get runner-level metadata for a run"
|
|
8580
7267
|
}
|
|
8581
7268
|
});
|
|
8582
|
-
var zeroLogsSearchContract =
|
|
7269
|
+
var zeroLogsSearchContract = c28.router({
|
|
8583
7270
|
searchLogs: {
|
|
8584
7271
|
method: "GET",
|
|
8585
7272
|
path: "/api/zero/logs/search",
|
|
@@ -8612,13 +7299,6 @@ async function getZeroRunAgentEvents(id, options) {
|
|
|
8612
7299
|
if (result.status === 200) return result.body;
|
|
8613
7300
|
handleError(result, `Failed to get zero run events for "${id}"`);
|
|
8614
7301
|
}
|
|
8615
|
-
async function getZeroRunContext(id) {
|
|
8616
|
-
const config = await getClientConfig();
|
|
8617
|
-
const client = initClient(zeroRunContextContract, config);
|
|
8618
|
-
const result = await client.getContext({ params: { id } });
|
|
8619
|
-
if (result.status === 200) return result.body;
|
|
8620
|
-
handleError(result, `Failed to get zero run context for "${id}"`);
|
|
8621
|
-
}
|
|
8622
7302
|
|
|
8623
7303
|
// src/lib/api/domains/zero-chat.ts
|
|
8624
7304
|
init_esm_shims();
|
|
@@ -8682,7 +7362,7 @@ init_esm_shims();
|
|
|
8682
7362
|
|
|
8683
7363
|
// ../../packages/api-contracts/src/contracts/zero-developer-support.ts
|
|
8684
7364
|
init_esm_shims();
|
|
8685
|
-
var
|
|
7365
|
+
var c29 = initContract();
|
|
8686
7366
|
var developerSupportBodySchema = external_exports.object({
|
|
8687
7367
|
title: external_exports.string().min(1, "Title is required"),
|
|
8688
7368
|
description: external_exports.string().min(1, "Description is required"),
|
|
@@ -8694,7 +7374,7 @@ var consentCodeResponseSchema = external_exports.object({
|
|
|
8694
7374
|
var submitResponseSchema = external_exports.object({
|
|
8695
7375
|
reference: external_exports.string()
|
|
8696
7376
|
});
|
|
8697
|
-
var zeroDeveloperSupportContract =
|
|
7377
|
+
var zeroDeveloperSupportContract = c29.router({
|
|
8698
7378
|
submit: {
|
|
8699
7379
|
method: "POST",
|
|
8700
7380
|
path: "/api/zero/developer-support",
|
|
@@ -8890,7 +7570,7 @@ init_esm_shims();
|
|
|
8890
7570
|
|
|
8891
7571
|
// ../../packages/api-contracts/src/contracts/zero-computer-use.ts
|
|
8892
7572
|
init_esm_shims();
|
|
8893
|
-
var
|
|
7573
|
+
var c30 = initContract();
|
|
8894
7574
|
var computerUseHostStatusSchema = external_exports.enum(["online", "offline"]);
|
|
8895
7575
|
var computerUseReadCommandKindSchema = external_exports.enum([
|
|
8896
7576
|
"apps.list",
|
|
@@ -9265,7 +7945,7 @@ var computerUseAuditEventSchema = external_exports.object({
|
|
|
9265
7945
|
var computerUseAuditEventListResponseSchema = external_exports.object({
|
|
9266
7946
|
auditEvents: external_exports.array(computerUseAuditEventSchema)
|
|
9267
7947
|
});
|
|
9268
|
-
var zeroComputerUseHostsContract =
|
|
7948
|
+
var zeroComputerUseHostsContract = c30.router({
|
|
9269
7949
|
start: {
|
|
9270
7950
|
method: "POST",
|
|
9271
7951
|
path: "/api/zero/computer-use/hosts/start",
|
|
@@ -9304,7 +7984,7 @@ var zeroComputerUseHostsContract = c29.router({
|
|
|
9304
7984
|
summary: "Delete a desktop computer-use host"
|
|
9305
7985
|
}
|
|
9306
7986
|
});
|
|
9307
|
-
var zeroComputerUseHeartbeatContract =
|
|
7987
|
+
var zeroComputerUseHeartbeatContract = c30.router({
|
|
9308
7988
|
heartbeat: {
|
|
9309
7989
|
method: "POST",
|
|
9310
7990
|
path: "/api/zero/computer-use/heartbeat",
|
|
@@ -9329,7 +8009,7 @@ var zeroComputerUseHeartbeatContract = c29.router({
|
|
|
9329
8009
|
summary: "Stop a desktop computer-use host"
|
|
9330
8010
|
}
|
|
9331
8011
|
});
|
|
9332
|
-
var zeroComputerUseAuthorizationRequestsContract =
|
|
8012
|
+
var zeroComputerUseAuthorizationRequestsContract = c30.router({
|
|
9333
8013
|
create: {
|
|
9334
8014
|
method: "POST",
|
|
9335
8015
|
path: "/api/zero/computer-use/authorization-requests",
|
|
@@ -9376,7 +8056,7 @@ var zeroComputerUseAuthorizationRequestsContract = c29.router({
|
|
|
9376
8056
|
summary: "Bind a Computer Use host for a delegated authorization request"
|
|
9377
8057
|
}
|
|
9378
8058
|
});
|
|
9379
|
-
var zeroComputerUseCommandContract =
|
|
8059
|
+
var zeroComputerUseCommandContract = c30.router({
|
|
9380
8060
|
create: {
|
|
9381
8061
|
method: "POST",
|
|
9382
8062
|
path: "/api/zero/computer-use/commands",
|
|
@@ -9411,7 +8091,7 @@ var zeroComputerUseCommandContract = c29.router({
|
|
|
9411
8091
|
headers: authHeadersSchema,
|
|
9412
8092
|
pathParams: commandIdPathParamsSchema,
|
|
9413
8093
|
responses: {
|
|
9414
|
-
200:
|
|
8094
|
+
200: c30.type(),
|
|
9415
8095
|
401: apiErrorSchema,
|
|
9416
8096
|
403: apiErrorSchema,
|
|
9417
8097
|
404: apiErrorSchema
|
|
@@ -9424,7 +8104,7 @@ var zeroComputerUseCommandContract = c29.router({
|
|
|
9424
8104
|
headers: authHeadersSchema,
|
|
9425
8105
|
pathParams: commandIdPathParamsSchema,
|
|
9426
8106
|
responses: {
|
|
9427
|
-
200:
|
|
8107
|
+
200: c30.type(),
|
|
9428
8108
|
401: apiErrorSchema,
|
|
9429
8109
|
403: apiErrorSchema,
|
|
9430
8110
|
404: apiErrorSchema
|
|
@@ -9432,7 +8112,7 @@ var zeroComputerUseCommandContract = c29.router({
|
|
|
9432
8112
|
summary: "Download offloaded desktop computer-use plugin content"
|
|
9433
8113
|
}
|
|
9434
8114
|
});
|
|
9435
|
-
var zeroComputerUseWriteCommandContract =
|
|
8115
|
+
var zeroComputerUseWriteCommandContract = c30.router({
|
|
9436
8116
|
create: {
|
|
9437
8117
|
method: "POST",
|
|
9438
8118
|
path: "/api/zero/computer-use/write-commands",
|
|
@@ -9449,7 +8129,7 @@ var zeroComputerUseWriteCommandContract = c29.router({
|
|
|
9449
8129
|
summary: "Create a desktop computer-use write command"
|
|
9450
8130
|
}
|
|
9451
8131
|
});
|
|
9452
|
-
var zeroComputerUsePluginCommandContract =
|
|
8132
|
+
var zeroComputerUsePluginCommandContract = c30.router({
|
|
9453
8133
|
create: {
|
|
9454
8134
|
method: "POST",
|
|
9455
8135
|
path: "/api/zero/computer-use/plugin-commands",
|
|
@@ -9466,7 +8146,7 @@ var zeroComputerUsePluginCommandContract = c29.router({
|
|
|
9466
8146
|
summary: "Create a desktop computer-use plugin command"
|
|
9467
8147
|
}
|
|
9468
8148
|
});
|
|
9469
|
-
var zeroComputerUseHostCommandsContract =
|
|
8149
|
+
var zeroComputerUseHostCommandsContract = c30.router({
|
|
9470
8150
|
next: {
|
|
9471
8151
|
method: "POST",
|
|
9472
8152
|
path: "/api/zero/computer-use/host/commands/next",
|
|
@@ -9494,7 +8174,7 @@ var zeroComputerUseHostCommandsContract = c29.router({
|
|
|
9494
8174
|
summary: "Complete a desktop computer-use command"
|
|
9495
8175
|
}
|
|
9496
8176
|
});
|
|
9497
|
-
var zeroComputerUseAuditEventsContract =
|
|
8177
|
+
var zeroComputerUseAuditEventsContract = c30.router({
|
|
9498
8178
|
list: {
|
|
9499
8179
|
method: "GET",
|
|
9500
8180
|
path: "/api/zero/computer-use/audit-events",
|
|
@@ -9793,7 +8473,7 @@ init_esm_shims();
|
|
|
9793
8473
|
|
|
9794
8474
|
// ../../packages/api-contracts/src/contracts/composes.ts
|
|
9795
8475
|
init_esm_shims();
|
|
9796
|
-
var
|
|
8476
|
+
var c31 = initContract();
|
|
9797
8477
|
var MOUNT_PATH_TEMPLATE = "${{ working_dir }}";
|
|
9798
8478
|
var composeVersionQuerySchema = external_exports.string().min(1, "Missing version query parameter").regex(
|
|
9799
8479
|
/^[a-f0-9]{8,64}$|^latest$/i,
|
|
@@ -9913,7 +8593,7 @@ var createComposeResponseSchema = external_exports.object({
|
|
|
9913
8593
|
action: external_exports.enum(["created", "existing"]),
|
|
9914
8594
|
updatedAt: external_exports.string()
|
|
9915
8595
|
});
|
|
9916
|
-
var composesMainContract =
|
|
8596
|
+
var composesMainContract = c31.router({
|
|
9917
8597
|
/**
|
|
9918
8598
|
* GET /api/agent/composes?name={name}&org={org}
|
|
9919
8599
|
* Get agent compose by name with HEAD version content
|
|
@@ -9959,7 +8639,7 @@ var composesMainContract = c30.router({
|
|
|
9959
8639
|
summary: "Create or update agent compose version"
|
|
9960
8640
|
}
|
|
9961
8641
|
});
|
|
9962
|
-
var composesByIdContract =
|
|
8642
|
+
var composesByIdContract = c31.router({
|
|
9963
8643
|
/**
|
|
9964
8644
|
* GET /api/agent/composes/:id
|
|
9965
8645
|
* Get agent compose by ID with HEAD version content
|
|
@@ -9981,7 +8661,7 @@ var composesByIdContract = c30.router({
|
|
|
9981
8661
|
summary: "Get agent compose by ID"
|
|
9982
8662
|
}
|
|
9983
8663
|
});
|
|
9984
|
-
var composesVersionsContract =
|
|
8664
|
+
var composesVersionsContract = c31.router({
|
|
9985
8665
|
/**
|
|
9986
8666
|
* GET /api/agent/composes/versions?composeId={id}&version={hash|tag}
|
|
9987
8667
|
* Resolve a version specifier to a full version ID
|
|
@@ -10135,7 +8815,7 @@ init_esm_shims();
|
|
|
10135
8815
|
|
|
10136
8816
|
// ../../packages/api-contracts/src/contracts/sessions.ts
|
|
10137
8817
|
init_esm_shims();
|
|
10138
|
-
var
|
|
8818
|
+
var c32 = initContract();
|
|
10139
8819
|
var sessionResponseSchema = external_exports.object({
|
|
10140
8820
|
id: external_exports.string(),
|
|
10141
8821
|
agentComposeId: external_exports.string(),
|
|
@@ -10176,7 +8856,7 @@ var checkpointResponseSchema = external_exports.object({
|
|
|
10176
8856
|
volumeVersionsSnapshot: volumeVersionsSnapshotSchema2.nullable(),
|
|
10177
8857
|
createdAt: external_exports.string()
|
|
10178
8858
|
});
|
|
10179
|
-
var sessionsByIdContract =
|
|
8859
|
+
var sessionsByIdContract = c32.router({
|
|
10180
8860
|
/**
|
|
10181
8861
|
* GET /api/agent/sessions/:id
|
|
10182
8862
|
* Get session by ID
|
|
@@ -10197,7 +8877,7 @@ var sessionsByIdContract = c31.router({
|
|
|
10197
8877
|
summary: "Get session by ID"
|
|
10198
8878
|
}
|
|
10199
8879
|
});
|
|
10200
|
-
var checkpointsByIdContract =
|
|
8880
|
+
var checkpointsByIdContract = c32.router({
|
|
10201
8881
|
/**
|
|
10202
8882
|
* GET /api/agent/checkpoints/:id
|
|
10203
8883
|
* Get checkpoint by ID
|
|
@@ -10350,8 +9030,8 @@ var setVariableRequestSchema = external_exports.object({
|
|
|
10350
9030
|
});
|
|
10351
9031
|
|
|
10352
9032
|
// ../../packages/api-contracts/src/contracts/zero-secrets.ts
|
|
10353
|
-
var
|
|
10354
|
-
var zeroSecretsContract =
|
|
9033
|
+
var c33 = initContract();
|
|
9034
|
+
var zeroSecretsContract = c33.router({
|
|
10355
9035
|
list: {
|
|
10356
9036
|
method: "GET",
|
|
10357
9037
|
path: "/api/zero/secrets",
|
|
@@ -10378,7 +9058,7 @@ var zeroSecretsContract = c32.router({
|
|
|
10378
9058
|
summary: "Create or update a secret"
|
|
10379
9059
|
}
|
|
10380
9060
|
});
|
|
10381
|
-
var zeroSecretsByNameContract =
|
|
9061
|
+
var zeroSecretsByNameContract = c33.router({
|
|
10382
9062
|
delete: {
|
|
10383
9063
|
method: "DELETE",
|
|
10384
9064
|
path: "/api/zero/secrets/:name",
|
|
@@ -10387,7 +9067,7 @@ var zeroSecretsByNameContract = c32.router({
|
|
|
10387
9067
|
name: secretNameSchema
|
|
10388
9068
|
}),
|
|
10389
9069
|
responses: {
|
|
10390
|
-
204:
|
|
9070
|
+
204: c33.noBody(),
|
|
10391
9071
|
401: apiErrorSchema,
|
|
10392
9072
|
404: apiErrorSchema,
|
|
10393
9073
|
500: apiErrorSchema
|
|
@@ -10395,7 +9075,7 @@ var zeroSecretsByNameContract = c32.router({
|
|
|
10395
9075
|
summary: "Delete a secret by name"
|
|
10396
9076
|
}
|
|
10397
9077
|
});
|
|
10398
|
-
var zeroVariablesContract =
|
|
9078
|
+
var zeroVariablesContract = c33.router({
|
|
10399
9079
|
list: {
|
|
10400
9080
|
method: "GET",
|
|
10401
9081
|
path: "/api/zero/variables",
|
|
@@ -10422,7 +9102,7 @@ var zeroVariablesContract = c32.router({
|
|
|
10422
9102
|
summary: "Create or update a variable"
|
|
10423
9103
|
}
|
|
10424
9104
|
});
|
|
10425
|
-
var zeroVariablesByNameContract =
|
|
9105
|
+
var zeroVariablesByNameContract = c33.router({
|
|
10426
9106
|
delete: {
|
|
10427
9107
|
method: "DELETE",
|
|
10428
9108
|
path: "/api/zero/variables/:name",
|
|
@@ -10431,7 +9111,7 @@ var zeroVariablesByNameContract = c32.router({
|
|
|
10431
9111
|
name: variableNameSchema
|
|
10432
9112
|
}),
|
|
10433
9113
|
responses: {
|
|
10434
|
-
204:
|
|
9114
|
+
204: c33.noBody(),
|
|
10435
9115
|
401: apiErrorSchema,
|
|
10436
9116
|
404: apiErrorSchema,
|
|
10437
9117
|
500: apiErrorSchema
|
|
@@ -10572,9 +9252,9 @@ init_esm_shims();
|
|
|
10572
9252
|
|
|
10573
9253
|
// ../../packages/api-contracts/src/contracts/zero-model-providers.ts
|
|
10574
9254
|
init_esm_shims();
|
|
10575
|
-
var
|
|
9255
|
+
var c34 = initContract();
|
|
10576
9256
|
var orgUpsertModelProviderRequestSchema = upsertModelProviderRequestSchema.omit({ selectedModel: true });
|
|
10577
|
-
var zeroModelProvidersMainContract =
|
|
9257
|
+
var zeroModelProvidersMainContract = c34.router({
|
|
10578
9258
|
list: {
|
|
10579
9259
|
method: "GET",
|
|
10580
9260
|
path: "/api/zero/model-providers",
|
|
@@ -10603,7 +9283,7 @@ var zeroModelProvidersMainContract = c33.router({
|
|
|
10603
9283
|
summary: "Create or update an org-level model provider (admin only)"
|
|
10604
9284
|
}
|
|
10605
9285
|
});
|
|
10606
|
-
var zeroModelProvidersByTypeContract =
|
|
9286
|
+
var zeroModelProvidersByTypeContract = c34.router({
|
|
10607
9287
|
delete: {
|
|
10608
9288
|
method: "DELETE",
|
|
10609
9289
|
path: "/api/zero/model-providers/:type",
|
|
@@ -10612,7 +9292,7 @@ var zeroModelProvidersByTypeContract = c33.router({
|
|
|
10612
9292
|
type: modelProviderTypeSchema
|
|
10613
9293
|
}),
|
|
10614
9294
|
responses: {
|
|
10615
|
-
204:
|
|
9295
|
+
204: c34.noBody(),
|
|
10616
9296
|
401: apiErrorSchema,
|
|
10617
9297
|
403: apiErrorSchema,
|
|
10618
9298
|
404: apiErrorSchema,
|
|
@@ -10658,7 +9338,7 @@ init_esm_shims();
|
|
|
10658
9338
|
|
|
10659
9339
|
// ../../packages/api-contracts/src/contracts/zero-workflows.ts
|
|
10660
9340
|
init_esm_shims();
|
|
10661
|
-
var
|
|
9341
|
+
var c35 = initContract();
|
|
10662
9342
|
var zeroWorkflowVisibilitySchema = external_exports.enum(["public", "private"]);
|
|
10663
9343
|
var zeroWorkflowNameSchema = external_exports.string().min(2).max(64).regex(/^[a-z0-9][a-z0-9-]*[a-z0-9]$/);
|
|
10664
9344
|
var RESERVED_SKILL_FILE = "SKILL.md";
|
|
@@ -11303,7 +9983,7 @@ var zeroWorkflowConnectorReadinessResponseSchema = external_exports.object({
|
|
|
11303
9983
|
connectors: external_exports.array(zeroWorkflowConnectorReadinessEntrySchema)
|
|
11304
9984
|
}).strict();
|
|
11305
9985
|
var workflowIdParams = external_exports.object({ workflowId: external_exports.string().uuid() });
|
|
11306
|
-
var zeroWorkflowsCollectionContract =
|
|
9986
|
+
var zeroWorkflowsCollectionContract = c35.router({
|
|
11307
9987
|
list: {
|
|
11308
9988
|
method: "GET",
|
|
11309
9989
|
path: "/api/zero/workflows",
|
|
@@ -11332,7 +10012,7 @@ var zeroWorkflowsCollectionContract = c34.router({
|
|
|
11332
10012
|
summary: "Create a workflow under an agent"
|
|
11333
10013
|
}
|
|
11334
10014
|
});
|
|
11335
|
-
var zeroWorkflowsDetailContract =
|
|
10015
|
+
var zeroWorkflowsDetailContract = c35.router({
|
|
11336
10016
|
get: {
|
|
11337
10017
|
method: "GET",
|
|
11338
10018
|
path: "/api/zero/workflows/:workflowId",
|
|
@@ -11367,9 +10047,9 @@ var zeroWorkflowsDetailContract = c34.router({
|
|
|
11367
10047
|
path: "/api/zero/workflows/:workflowId",
|
|
11368
10048
|
headers: authHeadersSchema,
|
|
11369
10049
|
pathParams: workflowIdParams,
|
|
11370
|
-
body:
|
|
10050
|
+
body: c35.noBody(),
|
|
11371
10051
|
responses: {
|
|
11372
|
-
204:
|
|
10052
|
+
204: c35.noBody(),
|
|
11373
10053
|
401: apiErrorSchema,
|
|
11374
10054
|
403: apiErrorSchema,
|
|
11375
10055
|
404: apiErrorSchema
|
|
@@ -11397,7 +10077,7 @@ var zeroWorkflowsDetailContract = c34.router({
|
|
|
11397
10077
|
path: "/api/zero/workflows/:workflowId/chat-thread",
|
|
11398
10078
|
headers: authHeadersSchema,
|
|
11399
10079
|
pathParams: workflowIdParams,
|
|
11400
|
-
body:
|
|
10080
|
+
body: c35.noBody(),
|
|
11401
10081
|
responses: {
|
|
11402
10082
|
200: zeroWorkflowChatThreadResponseSchema,
|
|
11403
10083
|
401: apiErrorSchema,
|
|
@@ -11411,7 +10091,7 @@ var zeroWorkflowsDetailContract = c34.router({
|
|
|
11411
10091
|
path: "/api/zero/workflows/:workflowId/run",
|
|
11412
10092
|
headers: authHeadersSchema,
|
|
11413
10093
|
pathParams: workflowIdParams,
|
|
11414
|
-
body:
|
|
10094
|
+
body: c35.noBody(),
|
|
11415
10095
|
responses: {
|
|
11416
10096
|
200: zeroWorkflowRunResponseSchema,
|
|
11417
10097
|
401: apiErrorSchema,
|
|
@@ -11426,7 +10106,7 @@ var zeroWorkflowsDetailContract = c34.router({
|
|
|
11426
10106
|
path: "/api/zero/workflows/:workflowId/connector-readiness",
|
|
11427
10107
|
headers: authHeadersSchema,
|
|
11428
10108
|
pathParams: workflowIdParams,
|
|
11429
|
-
body:
|
|
10109
|
+
body: c35.noBody(),
|
|
11430
10110
|
responses: {
|
|
11431
10111
|
200: zeroWorkflowConnectorReadinessResponseSchema,
|
|
11432
10112
|
400: apiErrorSchema,
|
|
@@ -11439,13 +10119,13 @@ var zeroWorkflowsDetailContract = c34.router({
|
|
|
11439
10119
|
summary: "Detect the built-in connectors a workflow may need and report their readiness"
|
|
11440
10120
|
}
|
|
11441
10121
|
});
|
|
11442
|
-
var zeroWorkflowVisibilityContract =
|
|
10122
|
+
var zeroWorkflowVisibilityContract = c35.router({
|
|
11443
10123
|
publish: {
|
|
11444
10124
|
method: "POST",
|
|
11445
10125
|
path: "/api/zero/workflows/:workflowId/publish",
|
|
11446
10126
|
headers: authHeadersSchema,
|
|
11447
10127
|
pathParams: workflowIdParams,
|
|
11448
|
-
body:
|
|
10128
|
+
body: c35.noBody(),
|
|
11449
10129
|
responses: {
|
|
11450
10130
|
200: zeroWorkflowSummarySchema,
|
|
11451
10131
|
400: apiErrorSchema,
|
|
@@ -11461,7 +10141,7 @@ var zeroWorkflowVisibilityContract = c34.router({
|
|
|
11461
10141
|
path: "/api/zero/workflows/:workflowId/demote",
|
|
11462
10142
|
headers: authHeadersSchema,
|
|
11463
10143
|
pathParams: workflowIdParams,
|
|
11464
|
-
body:
|
|
10144
|
+
body: c35.noBody(),
|
|
11465
10145
|
responses: {
|
|
11466
10146
|
200: zeroWorkflowSummarySchema,
|
|
11467
10147
|
400: apiErrorSchema,
|
|
@@ -11479,7 +10159,7 @@ var zeroWorkflowWebhookSecretResponseSchema = external_exports.object({
|
|
|
11479
10159
|
webhookUrl: external_exports.url(),
|
|
11480
10160
|
webhookSecret: external_exports.string().min(1)
|
|
11481
10161
|
});
|
|
11482
|
-
var zeroWorkflowTriggersContract =
|
|
10162
|
+
var zeroWorkflowTriggersContract = c35.router({
|
|
11483
10163
|
listWorkspace: {
|
|
11484
10164
|
method: "GET",
|
|
11485
10165
|
path: "/api/zero/workflow-triggers",
|
|
@@ -11568,9 +10248,9 @@ var zeroWorkflowTriggersContract = c34.router({
|
|
|
11568
10248
|
path: "/api/zero/workflow-triggers/:id",
|
|
11569
10249
|
headers: authHeadersSchema,
|
|
11570
10250
|
pathParams: triggerIdParams,
|
|
11571
|
-
body:
|
|
10251
|
+
body: c35.noBody(),
|
|
11572
10252
|
responses: {
|
|
11573
|
-
204:
|
|
10253
|
+
204: c35.noBody(),
|
|
11574
10254
|
401: apiErrorSchema,
|
|
11575
10255
|
403: apiErrorSchema,
|
|
11576
10256
|
404: apiErrorSchema
|
|
@@ -11582,7 +10262,7 @@ var zeroWorkflowTriggersContract = c34.router({
|
|
|
11582
10262
|
path: "/api/zero/workflow-triggers/:id/enable",
|
|
11583
10263
|
headers: authHeadersSchema,
|
|
11584
10264
|
pathParams: triggerIdParams,
|
|
11585
|
-
body:
|
|
10265
|
+
body: c35.noBody(),
|
|
11586
10266
|
responses: {
|
|
11587
10267
|
200: zeroWorkflowTriggerSummarySchema,
|
|
11588
10268
|
400: apiErrorSchema,
|
|
@@ -11599,7 +10279,7 @@ var zeroWorkflowTriggersContract = c34.router({
|
|
|
11599
10279
|
path: "/api/zero/workflow-triggers/:id/disable",
|
|
11600
10280
|
headers: authHeadersSchema,
|
|
11601
10281
|
pathParams: triggerIdParams,
|
|
11602
|
-
body:
|
|
10282
|
+
body: c35.noBody(),
|
|
11603
10283
|
responses: {
|
|
11604
10284
|
200: zeroWorkflowTriggerSummarySchema,
|
|
11605
10285
|
401: apiErrorSchema,
|
|
@@ -11613,7 +10293,7 @@ var zeroWorkflowTriggersContract = c34.router({
|
|
|
11613
10293
|
path: "/api/zero/workflow-triggers/:id/run",
|
|
11614
10294
|
headers: authHeadersSchema,
|
|
11615
10295
|
pathParams: triggerIdParams,
|
|
11616
|
-
body:
|
|
10296
|
+
body: c35.noBody(),
|
|
11617
10297
|
responses: {
|
|
11618
10298
|
201: zeroWorkflowRunResponseSchema,
|
|
11619
10299
|
400: apiErrorSchema,
|
|
@@ -11629,7 +10309,7 @@ var zeroWorkflowTriggersContract = c34.router({
|
|
|
11629
10309
|
path: "/api/zero/workflow-triggers/:id/webhook-secret",
|
|
11630
10310
|
headers: authHeadersSchema,
|
|
11631
10311
|
pathParams: triggerIdParams,
|
|
11632
|
-
body:
|
|
10312
|
+
body: c35.noBody(),
|
|
11633
10313
|
responses: {
|
|
11634
10314
|
200: zeroWorkflowWebhookSecretResponseSchema,
|
|
11635
10315
|
401: apiErrorSchema,
|
|
@@ -11744,7 +10424,7 @@ import { pipeline } from "stream/promises";
|
|
|
11744
10424
|
|
|
11745
10425
|
// ../../packages/api-contracts/src/contracts/integrations.ts
|
|
11746
10426
|
init_esm_shims();
|
|
11747
|
-
var
|
|
10427
|
+
var c36 = initContract();
|
|
11748
10428
|
var sendSlackMessageBodySchema = external_exports.object({
|
|
11749
10429
|
channel: external_exports.string().min(1, "Channel ID is required").optional(),
|
|
11750
10430
|
user: external_exports.string().min(1, "User ID is required").optional(),
|
|
@@ -11762,7 +10442,7 @@ var sendSlackMessageResponseSchema = external_exports.object({
|
|
|
11762
10442
|
ts: external_exports.string().optional(),
|
|
11763
10443
|
channel: external_exports.string().optional()
|
|
11764
10444
|
});
|
|
11765
|
-
var integrationsSlackMessageContract =
|
|
10445
|
+
var integrationsSlackMessageContract = c36.router({
|
|
11766
10446
|
sendMessage: {
|
|
11767
10447
|
method: "POST",
|
|
11768
10448
|
path: "/api/zero/integrations/slack/message",
|
|
@@ -11790,7 +10470,7 @@ var sendTelegramMessageResponseSchema = external_exports.object({
|
|
|
11790
10470
|
messageId: external_exports.number().int(),
|
|
11791
10471
|
chatId: external_exports.string()
|
|
11792
10472
|
});
|
|
11793
|
-
var integrationsTelegramMessageContract =
|
|
10473
|
+
var integrationsTelegramMessageContract = c36.router({
|
|
11794
10474
|
sendMessage: {
|
|
11795
10475
|
method: "POST",
|
|
11796
10476
|
path: "/api/zero/integrations/telegram/message",
|
|
@@ -11849,7 +10529,7 @@ var sendTeamsMessageResponseSchema = external_exports.object({
|
|
|
11849
10529
|
activityId: external_exports.string().optional(),
|
|
11850
10530
|
conversationId: external_exports.string()
|
|
11851
10531
|
});
|
|
11852
|
-
var integrationsTeamsMessageContract =
|
|
10532
|
+
var integrationsTeamsMessageContract = c36.router({
|
|
11853
10533
|
sendMessage: {
|
|
11854
10534
|
method: "POST",
|
|
11855
10535
|
path: "/api/zero/integrations/teams/message",
|
|
@@ -11877,7 +10557,7 @@ var sendPhoneMessageResponseSchema = external_exports.object({
|
|
|
11877
10557
|
channel: external_exports.string().nullable(),
|
|
11878
10558
|
toNumber: external_exports.string()
|
|
11879
10559
|
});
|
|
11880
|
-
var integrationsPhoneMessageContract =
|
|
10560
|
+
var integrationsPhoneMessageContract = c36.router({
|
|
11881
10561
|
sendMessage: {
|
|
11882
10562
|
method: "POST",
|
|
11883
10563
|
path: "/api/zero/integrations/phone/message",
|
|
@@ -11897,14 +10577,14 @@ var integrationsPhoneMessageContract = c35.router({
|
|
|
11897
10577
|
var phoneDownloadFileQuerySchema = external_exports.object({
|
|
11898
10578
|
file_id: external_exports.string().min(1, "file_id query parameter is required")
|
|
11899
10579
|
});
|
|
11900
|
-
var integrationsPhoneDownloadFileContract =
|
|
10580
|
+
var integrationsPhoneDownloadFileContract = c36.router({
|
|
11901
10581
|
download: {
|
|
11902
10582
|
method: "GET",
|
|
11903
10583
|
path: "/api/zero/integrations/phone/download-file",
|
|
11904
10584
|
headers: authHeadersSchema,
|
|
11905
10585
|
query: phoneDownloadFileQuerySchema,
|
|
11906
10586
|
responses: {
|
|
11907
|
-
200:
|
|
10587
|
+
200: c36.type(),
|
|
11908
10588
|
400: apiErrorSchema,
|
|
11909
10589
|
401: apiErrorSchema,
|
|
11910
10590
|
403: apiErrorSchema,
|
|
@@ -11939,7 +10619,7 @@ var telegramBotListItemSchema = external_exports.object({
|
|
|
11939
10619
|
var listTelegramBotsResponseSchema = external_exports.object({
|
|
11940
10620
|
bots: external_exports.array(telegramBotListItemSchema)
|
|
11941
10621
|
});
|
|
11942
|
-
var integrationsTelegramBotListContract =
|
|
10622
|
+
var integrationsTelegramBotListContract = c36.router({
|
|
11943
10623
|
listBots: {
|
|
11944
10624
|
method: "GET",
|
|
11945
10625
|
path: "/api/zero/integrations/telegram/bots",
|
|
@@ -11960,7 +10640,7 @@ var slackUploadInitResponseSchema = external_exports.object({
|
|
|
11960
10640
|
uploadUrl: external_exports.string(),
|
|
11961
10641
|
fileId: external_exports.string()
|
|
11962
10642
|
});
|
|
11963
|
-
var integrationsSlackUploadInitContract =
|
|
10643
|
+
var integrationsSlackUploadInitContract = c36.router({
|
|
11964
10644
|
init: {
|
|
11965
10645
|
method: "POST",
|
|
11966
10646
|
path: "/api/zero/integrations/slack/upload-file/init",
|
|
@@ -11989,7 +10669,7 @@ var telegramUploadInitResponseSchema = external_exports.object({
|
|
|
11989
10669
|
contentType: external_exports.string(),
|
|
11990
10670
|
size: external_exports.number().int().nonnegative()
|
|
11991
10671
|
});
|
|
11992
|
-
var integrationsTelegramUploadInitContract =
|
|
10672
|
+
var integrationsTelegramUploadInitContract = c36.router({
|
|
11993
10673
|
init: {
|
|
11994
10674
|
method: "POST",
|
|
11995
10675
|
path: "/api/zero/integrations/telegram/upload-file/init",
|
|
@@ -12017,7 +10697,7 @@ var teamsUploadInitResponseSchema = external_exports.object({
|
|
|
12017
10697
|
contentType: external_exports.string(),
|
|
12018
10698
|
size: external_exports.number().int().nonnegative()
|
|
12019
10699
|
});
|
|
12020
|
-
var integrationsTeamsUploadInitContract =
|
|
10700
|
+
var integrationsTeamsUploadInitContract = c36.router({
|
|
12021
10701
|
init: {
|
|
12022
10702
|
method: "POST",
|
|
12023
10703
|
path: "/api/zero/integrations/teams/upload-file/init",
|
|
@@ -12049,7 +10729,7 @@ var telegramUploadCompleteResponseSchema = external_exports.object({
|
|
|
12049
10729
|
size: external_exports.number().int().nonnegative(),
|
|
12050
10730
|
url: external_exports.string()
|
|
12051
10731
|
});
|
|
12052
|
-
var integrationsTelegramUploadCompleteContract =
|
|
10732
|
+
var integrationsTelegramUploadCompleteContract = c36.router({
|
|
12053
10733
|
complete: {
|
|
12054
10734
|
method: "POST",
|
|
12055
10735
|
path: "/api/zero/integrations/telegram/upload-file/complete",
|
|
@@ -12081,7 +10761,7 @@ var teamsUploadCompleteResponseSchema = external_exports.object({
|
|
|
12081
10761
|
size: external_exports.number().int().nonnegative(),
|
|
12082
10762
|
url: external_exports.string()
|
|
12083
10763
|
});
|
|
12084
|
-
var integrationsTeamsUploadCompleteContract =
|
|
10764
|
+
var integrationsTeamsUploadCompleteContract = c36.router({
|
|
12085
10765
|
complete: {
|
|
12086
10766
|
method: "POST",
|
|
12087
10767
|
path: "/api/zero/integrations/teams/upload-file/complete",
|
|
@@ -12111,7 +10791,7 @@ var githubUploadInitResponseSchema = external_exports.object({
|
|
|
12111
10791
|
contentType: external_exports.string(),
|
|
12112
10792
|
size: external_exports.number().int().nonnegative()
|
|
12113
10793
|
});
|
|
12114
|
-
var integrationsGithubUploadInitContract =
|
|
10794
|
+
var integrationsGithubUploadInitContract = c36.router({
|
|
12115
10795
|
init: {
|
|
12116
10796
|
method: "POST",
|
|
12117
10797
|
path: "/api/zero/integrations/github/upload-file/init",
|
|
@@ -12145,7 +10825,7 @@ var githubUploadCompleteResponseSchema = external_exports.object({
|
|
|
12145
10825
|
size: external_exports.number().int().nonnegative(),
|
|
12146
10826
|
url: external_exports.string()
|
|
12147
10827
|
});
|
|
12148
|
-
var integrationsGithubUploadCompleteContract =
|
|
10828
|
+
var integrationsGithubUploadCompleteContract = c36.router({
|
|
12149
10829
|
complete: {
|
|
12150
10830
|
method: "POST",
|
|
12151
10831
|
path: "/api/zero/integrations/github/upload-file/complete",
|
|
@@ -12176,7 +10856,7 @@ var phoneUploadInitResponseSchema = external_exports.object({
|
|
|
12176
10856
|
contentType: external_exports.string(),
|
|
12177
10857
|
size: external_exports.number().int().nonnegative()
|
|
12178
10858
|
});
|
|
12179
|
-
var integrationsPhoneUploadInitContract =
|
|
10859
|
+
var integrationsPhoneUploadInitContract = c36.router({
|
|
12180
10860
|
init: {
|
|
12181
10861
|
method: "POST",
|
|
12182
10862
|
path: "/api/zero/integrations/phone/upload-file/init",
|
|
@@ -12207,7 +10887,7 @@ var phoneUploadCompleteResponseSchema = external_exports.object({
|
|
|
12207
10887
|
size: external_exports.number().int().nonnegative(),
|
|
12208
10888
|
url: external_exports.string()
|
|
12209
10889
|
});
|
|
12210
|
-
var integrationsPhoneUploadCompleteContract =
|
|
10890
|
+
var integrationsPhoneUploadCompleteContract = c36.router({
|
|
12211
10891
|
complete: {
|
|
12212
10892
|
method: "POST",
|
|
12213
10893
|
path: "/api/zero/integrations/phone/upload-file/complete",
|
|
@@ -12235,7 +10915,7 @@ var slackUploadCompleteResponseSchema = external_exports.object({
|
|
|
12235
10915
|
fileId: external_exports.string(),
|
|
12236
10916
|
permalink: external_exports.string()
|
|
12237
10917
|
});
|
|
12238
|
-
var integrationsSlackUploadCompleteContract =
|
|
10918
|
+
var integrationsSlackUploadCompleteContract = c36.router({
|
|
12239
10919
|
complete: {
|
|
12240
10920
|
method: "POST",
|
|
12241
10921
|
path: "/api/zero/integrations/slack/upload-file/complete",
|
|
@@ -12682,7 +11362,7 @@ init_esm_shims();
|
|
|
12682
11362
|
|
|
12683
11363
|
// ../../packages/api-contracts/src/contracts/zero-relationships.ts
|
|
12684
11364
|
init_esm_shims();
|
|
12685
|
-
var
|
|
11365
|
+
var c37 = initContract();
|
|
12686
11366
|
var RELATIONSHIP_SEARCH_DEFAULT_LIMIT = 100;
|
|
12687
11367
|
var RELATIONSHIP_SEARCH_MAX_LIMIT = 100;
|
|
12688
11368
|
var relationshipEntityTypeSchema = external_exports.enum(["person", "organization"]);
|
|
@@ -12797,7 +11477,7 @@ var resolveQuerySchema = external_exports.object({
|
|
|
12797
11477
|
message: "Provide exactly one of id, email, or domain"
|
|
12798
11478
|
}
|
|
12799
11479
|
);
|
|
12800
|
-
var zeroRelationshipsContract =
|
|
11480
|
+
var zeroRelationshipsContract = c37.router({
|
|
12801
11481
|
gmailStatus: {
|
|
12802
11482
|
method: "GET",
|
|
12803
11483
|
path: "/api/zero/relationships/gmail/status",
|
|
@@ -12924,7 +11604,7 @@ init_esm_shims();
|
|
|
12924
11604
|
|
|
12925
11605
|
// ../../packages/api-contracts/src/contracts/zero-memory.ts
|
|
12926
11606
|
init_esm_shims();
|
|
12927
|
-
var
|
|
11607
|
+
var c38 = initContract();
|
|
12928
11608
|
var memoryFileSchema = external_exports.object({
|
|
12929
11609
|
path: external_exports.string(),
|
|
12930
11610
|
size: external_exports.number()
|
|
@@ -13472,7 +12152,7 @@ var memoryDetailResponseSchema = external_exports.object({
|
|
|
13472
12152
|
files: external_exports.array(memoryFileSchema),
|
|
13473
12153
|
fileContents: external_exports.array(memoryFileContentSchema)
|
|
13474
12154
|
});
|
|
13475
|
-
var zeroMemoryContract =
|
|
12155
|
+
var zeroMemoryContract = c38.router({
|
|
13476
12156
|
get: {
|
|
13477
12157
|
method: "GET",
|
|
13478
12158
|
path: "/api/zero/memory",
|
|
@@ -14262,17 +12942,9 @@ async function getHostedSiteFiles(publicSlug) {
|
|
|
14262
12942
|
export {
|
|
14263
12943
|
connectorCatalogRefSchema,
|
|
14264
12944
|
guaranteedConnectorProvidedBindingNames,
|
|
14265
|
-
hasRawWhitespace,
|
|
14266
|
-
hasUnsafeUrlCodepoint,
|
|
14267
|
-
parseSegment,
|
|
14268
|
-
splitPathSegments,
|
|
14269
12945
|
UNKNOWN_PERMISSION_GRANT,
|
|
14270
12946
|
firewallPoliciesSchema,
|
|
14271
12947
|
hasUnsafeFirewallPath,
|
|
14272
|
-
resolveFirewallBaseUrlTemplate,
|
|
14273
|
-
hasBaseUrlParams,
|
|
14274
|
-
validateBaseUrl,
|
|
14275
|
-
validateAuthBaseUrl,
|
|
14276
12948
|
authHeadersSchema,
|
|
14277
12949
|
runnerGroupSchema,
|
|
14278
12950
|
volumeConfigSchema,
|
|
@@ -14360,10 +13032,10 @@ export {
|
|
|
14360
13032
|
clearGoal,
|
|
14361
13033
|
customConnectorProposalSchema,
|
|
14362
13034
|
listZeroConnectors,
|
|
14363
|
-
searchZeroConnectors,
|
|
14364
13035
|
listZeroConnectorCatalog,
|
|
14365
13036
|
listZeroConnectorCatalogStatus,
|
|
14366
13037
|
getZeroConnectorCatalogPermissions,
|
|
13038
|
+
diagnoseZeroConnectorCheck,
|
|
14367
13039
|
diagnoseZeroConnectorPermissionDeny,
|
|
14368
13040
|
getZeroConnector,
|
|
14369
13041
|
connectZeroConnectorManualGrant,
|
|
@@ -14390,7 +13062,6 @@ export {
|
|
|
14390
13062
|
completePhoneFileUpload,
|
|
14391
13063
|
downloadPhoneFile,
|
|
14392
13064
|
getZeroRunAgentEvents,
|
|
14393
|
-
getZeroRunContext,
|
|
14394
13065
|
listZeroLogs,
|
|
14395
13066
|
searchZeroLogs,
|
|
14396
13067
|
searchZeroChat,
|
|
@@ -14434,4 +13105,4 @@ export {
|
|
|
14434
13105
|
completeHostedSite,
|
|
14435
13106
|
getHostedSiteFiles
|
|
14436
13107
|
};
|
|
14437
|
-
//# sourceMappingURL=chunk-
|
|
13108
|
+
//# sourceMappingURL=chunk-6NTG5UZE.js.map
|