@vm0/cli 9.238.5 → 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-KS3ULPSZ.js → agent-JH2NEPZR.js} +5 -5
- package/{banking-2B3GDOIE.js → banking-2NXK6J3W.js} +3 -3
- package/{chat-HP7XYF7H.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-GIACTMOF.js → chunk-6NTG5UZE.js} +506 -1757
- package/chunk-6NTG5UZE.js.map +1 -0
- package/{chunk-VUER2HGS.js → chunk-BTGJACXR.js} +2 -2
- package/{chunk-YQ5ZYQN3.js → chunk-FNQ62BY2.js} +2 -2
- package/{chunk-TEJZT6KB.js → chunk-FZT6ZD5Z.js} +4 -4
- package/{chunk-UHVWYX44.js → chunk-I564TTWT.js} +2 -2
- package/{chunk-VC7E6IA7.js → chunk-RD5IGGLO.js} +3 -3
- package/chunk-RD5IGGLO.js.map +1 -0
- package/{chunk-OCOHCUE3.js → chunk-SOHCGADW.js} +15273 -454
- package/chunk-SOHCGADW.js.map +1 -0
- package/{chunk-EJBHYDGP.js → chunk-UF3EQMOH.js} +4 -4
- package/{chunk-T3XOMNS6.js → chunk-VAXSHLMI.js} +3 -3
- package/{computer-use-6GZVM5S6.js → computer-use-XLD4LAIV.js} +3 -3
- package/{connector-SFMD6HBQ.js → connector-YDDOAHYS.js} +4 -4
- package/{credit-B465R4TF.js → credit-CEONTACE.js} +4 -4
- package/{developer-support-6GM2UW5P.js → developer-support-FHWKHJGW.js} +3 -3
- package/doctor-BF3SESXM.js +1194 -0
- package/doctor-BF3SESXM.js.map +1 -0
- package/{generate-37CJMAVG.js → generate-YDBYHQ4H.js} +5 -5
- package/{github-6CSR7332.js → github-XIJ2Y5PZ.js} +3 -3
- package/{goal-XURMW5OS.js → goal-6I3U2AER.js} +3 -3
- package/{host-EVFNV5BX.js → host-IPPGVU6F.js} +3 -3
- package/index.js +13 -14
- package/index.js.map +1 -1
- package/{logs-DR7ZTWBK.js → logs-VQGWXDS3.js} +6 -7
- package/{logs-DR7ZTWBK.js.map → logs-VQGWXDS3.js.map} +1 -1
- package/{maps-IAVJJMRT.js → maps-YR4X4XJE.js} +3 -3
- package/{memory-X765S3ZI.js → memory-PLFDXK3U.js} +3 -3
- package/{model-ZYVNUG47.js → model-IHQGI5SD.js} +4 -4
- package/{model-provider-SZIIRXS3.js → model-provider-KFJS22YT.js} +4 -4
- package/{org-GBDLJZSE.js → org-7DENHEEO.js} +3 -3
- package/package.json +1 -1
- package/{phone-KA4NZFQC.js → phone-GYNROKO5.js} +3 -3
- package/{preference-TEMJHA73.js → preference-NHBRBTHG.js} +3 -3
- package/{relationship-OXV2SPNL.js → relationship-TZ3AHEGI.js} +3 -3
- package/{resource-2WREU3GR.js → resource-X5ZTVDLF.js} +8 -5
- package/resource-X5ZTVDLF.js.map +1 -0
- package/{search-V5V5IHY7.js → search-BAAAYJAP.js} +6 -7
- package/{search-V5V5IHY7.js.map → search-BAAAYJAP.js.map} +1 -1
- package/{secret-LIAHG47P.js → secret-X3Y6E65Z.js} +3 -3
- package/{slack-BUOXO2HU.js → slack-35G46FJA.js} +3 -3
- package/{teams-G7TYHRJB.js → teams-IMSR3V3W.js} +3 -3
- package/{telegram-DEHNZSEN.js → telegram-D3EWKPVI.js} +3 -3
- package/{variable-RMYF6NVZ.js → variable-QUYQA7OA.js} +3 -3
- package/{video-XEYMVSIU.js → video-XOAQYGPA.js} +2 -2
- package/{web-4REDKON3.js → web-5ENALPKP.js} +3 -3
- package/{whoami-66W7DPQX.js → whoami-2Q2N7V3N.js} +5 -5
- package/{workflow-PBJVC6HV.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-GIACTMOF.js.map +0 -1
- package/chunk-H4Y7JDZB.js +0 -16427
- package/chunk-H4Y7JDZB.js.map +0 -1
- package/chunk-OCOHCUE3.js.map +0 -1
- package/chunk-VC7E6IA7.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-Z3HFRIKJ.js +0 -4305
- package/doctor-Z3HFRIKJ.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-2WREU3GR.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-KS3ULPSZ.js.map → agent-JH2NEPZR.js.map} +0 -0
- /package/{banking-2B3GDOIE.js.map → banking-2NXK6J3W.js.map} +0 -0
- /package/{chat-HP7XYF7H.js.map → chat-MN4IB7GD.js.map} +0 -0
- /package/{chunk-VUER2HGS.js.map → chunk-BTGJACXR.js.map} +0 -0
- /package/{chunk-YQ5ZYQN3.js.map → chunk-FNQ62BY2.js.map} +0 -0
- /package/{chunk-TEJZT6KB.js.map → chunk-FZT6ZD5Z.js.map} +0 -0
- /package/{chunk-UHVWYX44.js.map → chunk-I564TTWT.js.map} +0 -0
- /package/{chunk-EJBHYDGP.js.map → chunk-UF3EQMOH.js.map} +0 -0
- /package/{chunk-T3XOMNS6.js.map → chunk-VAXSHLMI.js.map} +0 -0
- /package/{computer-use-6GZVM5S6.js.map → computer-use-XLD4LAIV.js.map} +0 -0
- /package/{connector-SFMD6HBQ.js.map → connector-YDDOAHYS.js.map} +0 -0
- /package/{credit-B465R4TF.js.map → credit-CEONTACE.js.map} +0 -0
- /package/{developer-support-6GM2UW5P.js.map → developer-support-FHWKHJGW.js.map} +0 -0
- /package/{generate-37CJMAVG.js.map → generate-YDBYHQ4H.js.map} +0 -0
- /package/{github-6CSR7332.js.map → github-XIJ2Y5PZ.js.map} +0 -0
- /package/{goal-XURMW5OS.js.map → goal-6I3U2AER.js.map} +0 -0
- /package/{host-EVFNV5BX.js.map → host-IPPGVU6F.js.map} +0 -0
- /package/{maps-IAVJJMRT.js.map → maps-YR4X4XJE.js.map} +0 -0
- /package/{memory-X765S3ZI.js.map → memory-PLFDXK3U.js.map} +0 -0
- /package/{model-ZYVNUG47.js.map → model-IHQGI5SD.js.map} +0 -0
- /package/{model-provider-SZIIRXS3.js.map → model-provider-KFJS22YT.js.map} +0 -0
- /package/{org-GBDLJZSE.js.map → org-7DENHEEO.js.map} +0 -0
- /package/{phone-KA4NZFQC.js.map → phone-GYNROKO5.js.map} +0 -0
- /package/{preference-TEMJHA73.js.map → preference-NHBRBTHG.js.map} +0 -0
- /package/{relationship-OXV2SPNL.js.map → relationship-TZ3AHEGI.js.map} +0 -0
- /package/{secret-LIAHG47P.js.map → secret-X3Y6E65Z.js.map} +0 -0
- /package/{slack-BUOXO2HU.js.map → slack-35G46FJA.js.map} +0 -0
- /package/{teams-G7TYHRJB.js.map → teams-IMSR3V3W.js.map} +0 -0
- /package/{telegram-DEHNZSEN.js.map → telegram-D3EWKPVI.js.map} +0 -0
- /package/{variable-RMYF6NVZ.js.map → variable-QUYQA7OA.js.map} +0 -0
- /package/{video-XEYMVSIU.js.map → video-XOAQYGPA.js.map} +0 -0
- /package/{web-4REDKON3.js.map → web-5ENALPKP.js.map} +0 -0
- /package/{whoami-66W7DPQX.js.map → whoami-2Q2N7V3N.js.map} +0 -0
- /package/{workflow-PBJVC6HV.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
|
}
|
|
@@ -1983,1454 +1832,126 @@ function pathSegmentHasUnsafeSyntax(segment, rejectPathStructure) {
|
|
|
1983
1832
|
if (pathSegmentHasUnsafeSyntaxParts(current, rejectPathStructure) || normalizedPathSegmentHasUnsafeSyntax(current, rejectPathStructure)) {
|
|
1984
1833
|
return true;
|
|
1985
1834
|
}
|
|
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
|
-
};
|
|
3329
|
-
}
|
|
3330
|
-
return { url: replaced, dynamicPrefixSuffix: "" };
|
|
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,234 @@ var zeroConnectorCatalogContract = c21.router({
|
|
|
6536
5057
|
}
|
|
6537
5058
|
});
|
|
6538
5059
|
|
|
6539
|
-
// ../../packages/api-contracts/src/contracts/zero-
|
|
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();
|
|
5229
|
+
var connectorPermissionDenyRequestSchema = external_exports.object({
|
|
5230
|
+
method: external_exports.string().min(1).max(16),
|
|
5231
|
+
url: external_exports.string().min(1).max(8192)
|
|
5232
|
+
}).strict();
|
|
5233
|
+
var connectorPermissionDenyMatchedSchema = external_exports.object({
|
|
5234
|
+
outcome: external_exports.literal("matched"),
|
|
5235
|
+
label: external_exports.string().min(1),
|
|
5236
|
+
base: external_exports.string().min(1),
|
|
5237
|
+
relativePath: external_exports.string().min(1),
|
|
5238
|
+
permissions: external_exports.array(external_exports.string().min(1)).min(1)
|
|
5239
|
+
}).strict();
|
|
5240
|
+
var connectorPermissionDenyUnknownEndpointSchema = external_exports.object({
|
|
5241
|
+
outcome: external_exports.literal("unknown-endpoint"),
|
|
5242
|
+
label: external_exports.string().min(1),
|
|
5243
|
+
base: external_exports.string().min(1),
|
|
5244
|
+
relativePath: external_exports.string().min(1)
|
|
5245
|
+
}).strict();
|
|
5246
|
+
var connectorPermissionDenyUnknownConnectorSchema = external_exports.object({ outcome: external_exports.literal("unknown-connector") }).strict();
|
|
5247
|
+
var connectorPermissionDenyNoMatchingBaseSchema = external_exports.object({
|
|
5248
|
+
outcome: external_exports.literal("no-matching-base"),
|
|
5249
|
+
label: external_exports.string().min(1)
|
|
5250
|
+
}).strict();
|
|
5251
|
+
var connectorPermissionDenyUnresolvedDynamicBaseSchema = external_exports.object({
|
|
5252
|
+
outcome: external_exports.literal("unresolved-dynamic-base"),
|
|
5253
|
+
label: external_exports.string().min(1)
|
|
5254
|
+
}).strict();
|
|
5255
|
+
var connectorPermissionDenyUnsafeInputSchema = external_exports.object({
|
|
5256
|
+
outcome: external_exports.literal("unsafe-input"),
|
|
5257
|
+
reason: external_exports.enum(["invalid-method", "invalid-url", "unsafe-path"])
|
|
5258
|
+
}).strict();
|
|
5259
|
+
var connectorPermissionDenyDiagnosticResultSchema = external_exports.discriminatedUnion("outcome", [
|
|
5260
|
+
connectorPermissionDenyMatchedSchema,
|
|
5261
|
+
connectorPermissionDenyUnknownEndpointSchema,
|
|
5262
|
+
connectorPermissionDenyUnknownConnectorSchema,
|
|
5263
|
+
connectorPermissionDenyNoMatchingBaseSchema,
|
|
5264
|
+
connectorPermissionDenyUnresolvedDynamicBaseSchema,
|
|
5265
|
+
connectorPermissionDenyUnsafeInputSchema
|
|
5266
|
+
]);
|
|
5267
|
+
var zeroConnectorPermissionDenyContract = c23.router({
|
|
5268
|
+
diagnose: {
|
|
5269
|
+
method: "POST",
|
|
5270
|
+
path: "/api/zero/connectors/:connectorRef/diagnostics/permission-deny",
|
|
5271
|
+
headers: authHeadersSchema,
|
|
5272
|
+
pathParams: external_exports.object({ connectorRef: connectorCatalogRefSchema }),
|
|
5273
|
+
body: connectorPermissionDenyRequestSchema,
|
|
5274
|
+
responses: {
|
|
5275
|
+
200: connectorPermissionDenyDiagnosticResultSchema,
|
|
5276
|
+
400: apiErrorSchema,
|
|
5277
|
+
401: apiErrorSchema,
|
|
5278
|
+
403: apiErrorSchema,
|
|
5279
|
+
500: apiErrorSchema
|
|
5280
|
+
},
|
|
5281
|
+
summary: "Diagnose a connector permission denial"
|
|
5282
|
+
}
|
|
5283
|
+
});
|
|
5284
|
+
|
|
5285
|
+
// ../../packages/api-contracts/src/contracts/zero-custom-connectors.ts
|
|
5286
|
+
init_esm_shims();
|
|
5287
|
+
var c24 = initContract();
|
|
6542
5288
|
var customConnectorFieldKindSchema = external_exports.enum(["secret", "variable"]);
|
|
6543
5289
|
var customConnectorFieldSchema = external_exports.object({
|
|
6544
5290
|
key: external_exports.string().min(1).max(64),
|
|
@@ -6635,7 +5381,7 @@ var saveCustomConnectorProposalResponseSchema = external_exports.object({
|
|
|
6635
5381
|
connector: customConnectorResponseSchema,
|
|
6636
5382
|
authorizedAgentId: external_exports.string().uuid().optional()
|
|
6637
5383
|
});
|
|
6638
|
-
var zeroCustomConnectorsContract =
|
|
5384
|
+
var zeroCustomConnectorsContract = c24.router({
|
|
6639
5385
|
list: {
|
|
6640
5386
|
method: "GET",
|
|
6641
5387
|
path: "/api/zero/custom-connectors",
|
|
@@ -6662,7 +5408,7 @@ var zeroCustomConnectorsContract = c22.router({
|
|
|
6662
5408
|
summary: "Create an org custom connector"
|
|
6663
5409
|
}
|
|
6664
5410
|
});
|
|
6665
|
-
var zeroCustomConnectorByIdContract =
|
|
5411
|
+
var zeroCustomConnectorByIdContract = c24.router({
|
|
6666
5412
|
get: {
|
|
6667
5413
|
method: "GET",
|
|
6668
5414
|
path: "/api/zero/custom-connectors/:id",
|
|
@@ -6683,7 +5429,7 @@ var zeroCustomConnectorByIdContract = c22.router({
|
|
|
6683
5429
|
headers: authHeadersSchema,
|
|
6684
5430
|
pathParams: external_exports.object({ id: external_exports.string().uuid() }),
|
|
6685
5431
|
responses: {
|
|
6686
|
-
204:
|
|
5432
|
+
204: c24.noBody(),
|
|
6687
5433
|
401: apiErrorSchema,
|
|
6688
5434
|
403: apiErrorSchema,
|
|
6689
5435
|
404: apiErrorSchema,
|
|
@@ -6708,7 +5454,7 @@ var zeroCustomConnectorByIdContract = c22.router({
|
|
|
6708
5454
|
summary: "Rename an org custom connector"
|
|
6709
5455
|
}
|
|
6710
5456
|
});
|
|
6711
|
-
var zeroCustomConnectorSecretContract =
|
|
5457
|
+
var zeroCustomConnectorSecretContract = c24.router({
|
|
6712
5458
|
set: {
|
|
6713
5459
|
method: "PUT",
|
|
6714
5460
|
path: "/api/zero/custom-connectors/:id/secret",
|
|
@@ -6716,7 +5462,7 @@ var zeroCustomConnectorSecretContract = c22.router({
|
|
|
6716
5462
|
pathParams: external_exports.object({ id: external_exports.string().uuid() }),
|
|
6717
5463
|
body: setCustomConnectorSecretBodySchema,
|
|
6718
5464
|
responses: {
|
|
6719
|
-
204:
|
|
5465
|
+
204: c24.noBody(),
|
|
6720
5466
|
400: apiErrorSchema,
|
|
6721
5467
|
401: apiErrorSchema,
|
|
6722
5468
|
404: apiErrorSchema,
|
|
@@ -6730,7 +5476,7 @@ var zeroCustomConnectorSecretContract = c22.router({
|
|
|
6730
5476
|
headers: authHeadersSchema,
|
|
6731
5477
|
pathParams: external_exports.object({ id: external_exports.string().uuid() }),
|
|
6732
5478
|
responses: {
|
|
6733
|
-
204:
|
|
5479
|
+
204: c24.noBody(),
|
|
6734
5480
|
401: apiErrorSchema,
|
|
6735
5481
|
404: apiErrorSchema,
|
|
6736
5482
|
500: apiErrorSchema
|
|
@@ -6738,7 +5484,7 @@ var zeroCustomConnectorSecretContract = c22.router({
|
|
|
6738
5484
|
summary: "Clear the calling user's secret for a custom connector"
|
|
6739
5485
|
}
|
|
6740
5486
|
});
|
|
6741
|
-
var zeroCustomConnectorProposalContract =
|
|
5487
|
+
var zeroCustomConnectorProposalContract = c24.router({
|
|
6742
5488
|
save: {
|
|
6743
5489
|
method: "POST",
|
|
6744
5490
|
path: "/api/zero/custom-connectors/proposals/save",
|
|
@@ -6766,18 +5512,6 @@ async function listZeroConnectors() {
|
|
|
6766
5512
|
}
|
|
6767
5513
|
handleError(result, "Failed to list connectors");
|
|
6768
5514
|
}
|
|
6769
|
-
async function searchZeroConnectors(keyword) {
|
|
6770
|
-
const config = await getClientConfig();
|
|
6771
|
-
const client = initClient(zeroConnectorsSearchContract, config);
|
|
6772
|
-
const result = await client.search({
|
|
6773
|
-
headers: {},
|
|
6774
|
-
query: keyword ? { keyword } : {}
|
|
6775
|
-
});
|
|
6776
|
-
if (result.status === 200) {
|
|
6777
|
-
return result.body;
|
|
6778
|
-
}
|
|
6779
|
-
handleError(result, "Failed to search connectors");
|
|
6780
|
-
}
|
|
6781
5515
|
async function listZeroConnectorCatalog() {
|
|
6782
5516
|
const config = await getClientConfig();
|
|
6783
5517
|
const client = initClient(zeroConnectorCatalogContract, config);
|
|
@@ -6818,6 +5552,36 @@ async function getZeroConnectorCatalogPermissions(connectorRef) {
|
|
|
6818
5552
|
`Failed to get connector permission metadata for "${connectorRef}"`
|
|
6819
5553
|
);
|
|
6820
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
|
+
}
|
|
5567
|
+
async function diagnoseZeroConnectorPermissionDeny(connectorRef, method, url) {
|
|
5568
|
+
const config = await getClientConfig();
|
|
5569
|
+
const client = initClient(zeroConnectorPermissionDenyContract, {
|
|
5570
|
+
...config,
|
|
5571
|
+
validateResponse: true
|
|
5572
|
+
});
|
|
5573
|
+
const result = await client.diagnose({
|
|
5574
|
+
params: { connectorRef },
|
|
5575
|
+
body: { method, url }
|
|
5576
|
+
});
|
|
5577
|
+
if (result.status === 200) {
|
|
5578
|
+
return result.body;
|
|
5579
|
+
}
|
|
5580
|
+
handleError(
|
|
5581
|
+
result,
|
|
5582
|
+
`Failed to diagnose permission denial for "${connectorRef}"`
|
|
5583
|
+
);
|
|
5584
|
+
}
|
|
6821
5585
|
async function getZeroConnector(type) {
|
|
6822
5586
|
const config = await getClientConfig();
|
|
6823
5587
|
const client = initClient(zeroConnectorsByTypeContract, config);
|
|
@@ -6877,7 +5641,7 @@ init_esm_shims();
|
|
|
6877
5641
|
|
|
6878
5642
|
// ../../packages/api-contracts/src/contracts/runners.ts
|
|
6879
5643
|
init_esm_shims();
|
|
6880
|
-
var
|
|
5644
|
+
var c25 = initContract();
|
|
6881
5645
|
var MIN_EPOCH_MS_TIMESTAMP = 1e12;
|
|
6882
5646
|
var apiStartTimeSchema = external_exports.number().int().min(MIN_EPOCH_MS_TIMESTAMP);
|
|
6883
5647
|
var CANONICAL_GUEST_HOME_DIR = "/home/user";
|
|
@@ -6983,7 +5747,7 @@ var heldSessionStateSchema = external_exports.object({
|
|
|
6983
5747
|
profile: external_exports.string()
|
|
6984
5748
|
}).optional()
|
|
6985
5749
|
});
|
|
6986
|
-
var runnersPollContract =
|
|
5750
|
+
var runnersPollContract = c25.router({
|
|
6987
5751
|
poll: {
|
|
6988
5752
|
method: "POST",
|
|
6989
5753
|
path: "/api/runners/poll",
|
|
@@ -7221,7 +5985,7 @@ var executionContextSchema = external_exports.object({
|
|
|
7221
5985
|
// API-owned Codex provider/runtime metadata forwarded through the runner.
|
|
7222
5986
|
codexRuntimeConfig: modelProviderCodexRuntimeConfigSchema.nullable().optional()
|
|
7223
5987
|
});
|
|
7224
|
-
var runnersJobClaimContract =
|
|
5988
|
+
var runnersJobClaimContract = c25.router({
|
|
7225
5989
|
claim: {
|
|
7226
5990
|
method: "POST",
|
|
7227
5991
|
path: "/api/runners/jobs/:id/claim",
|
|
@@ -7245,7 +6009,7 @@ var runnersJobClaimContract = c23.router({
|
|
|
7245
6009
|
summary: "Claim a pending job for execution"
|
|
7246
6010
|
}
|
|
7247
6011
|
});
|
|
7248
|
-
var runnersNetworkPolicyRefreshContract =
|
|
6012
|
+
var runnersNetworkPolicyRefreshContract = c25.router({
|
|
7249
6013
|
refresh: {
|
|
7250
6014
|
method: "POST",
|
|
7251
6015
|
path: "/api/runners/runs/:runId/network-policy-refresh",
|
|
@@ -7275,7 +6039,7 @@ var runnersNetworkPolicyRefreshContract = c23.router({
|
|
|
7275
6039
|
summary: "Refresh active run network policies"
|
|
7276
6040
|
}
|
|
7277
6041
|
});
|
|
7278
|
-
var runnersBuiltinFirewallsResolveContract =
|
|
6042
|
+
var runnersBuiltinFirewallsResolveContract = c25.router({
|
|
7279
6043
|
resolve: {
|
|
7280
6044
|
method: "POST",
|
|
7281
6045
|
path: "/api/runners/builtin-firewalls/resolve",
|
|
@@ -7304,7 +6068,7 @@ var heartbeatBodySchema = external_exports.object({
|
|
|
7304
6068
|
heldSessionStates: external_exports.array(heldSessionStateSchema).max(1024),
|
|
7305
6069
|
mode: external_exports.enum(["starting", "running", "draining", "stopping"])
|
|
7306
6070
|
});
|
|
7307
|
-
var runnersHeartbeatContract =
|
|
6071
|
+
var runnersHeartbeatContract = c25.router({
|
|
7308
6072
|
heartbeat: {
|
|
7309
6073
|
method: "POST",
|
|
7310
6074
|
path: "/api/runners/heartbeat",
|
|
@@ -7322,7 +6086,7 @@ var runnersHeartbeatContract = c23.router({
|
|
|
7322
6086
|
|
|
7323
6087
|
// ../../packages/api-contracts/src/contracts/storages.ts
|
|
7324
6088
|
init_esm_shims();
|
|
7325
|
-
var
|
|
6089
|
+
var c26 = initContract();
|
|
7326
6090
|
var storageTypeSchema = external_exports.enum(["volume", "artifact"]);
|
|
7327
6091
|
var versionQuerySchema = external_exports.string().regex(/^[a-f0-9]{8,64}$/i, "Version must be 8-64 hex characters").optional();
|
|
7328
6092
|
var uploadStorageResponseSchema = external_exports.object({
|
|
@@ -7333,7 +6097,7 @@ var uploadStorageResponseSchema = external_exports.object({
|
|
|
7333
6097
|
type: storageTypeSchema,
|
|
7334
6098
|
deduplicated: external_exports.boolean()
|
|
7335
6099
|
});
|
|
7336
|
-
var storagesContract =
|
|
6100
|
+
var storagesContract = c26.router({
|
|
7337
6101
|
/**
|
|
7338
6102
|
* POST /api/storages
|
|
7339
6103
|
* Upload a storage (tar.gz file)
|
|
@@ -7350,7 +6114,7 @@ var storagesContract = c24.router({
|
|
|
7350
6114
|
path: "/api/storages",
|
|
7351
6115
|
headers: authHeadersSchema,
|
|
7352
6116
|
contentType: "multipart/form-data",
|
|
7353
|
-
body:
|
|
6117
|
+
body: c26.type(),
|
|
7354
6118
|
responses: {
|
|
7355
6119
|
200: uploadStorageResponseSchema,
|
|
7356
6120
|
400: apiErrorSchema,
|
|
@@ -7379,9 +6143,9 @@ var storagesContract = c24.router({
|
|
|
7379
6143
|
}),
|
|
7380
6144
|
responses: {
|
|
7381
6145
|
// Binary response - actual handling done at route level
|
|
7382
|
-
200:
|
|
6146
|
+
200: c26.otherResponse({
|
|
7383
6147
|
contentType: "application/gzip",
|
|
7384
|
-
body:
|
|
6148
|
+
body: c26.type()
|
|
7385
6149
|
}),
|
|
7386
6150
|
400: apiErrorSchema,
|
|
7387
6151
|
401: apiErrorSchema,
|
|
@@ -7406,7 +6170,7 @@ var presignedUploadSchema = external_exports.object({
|
|
|
7406
6170
|
key: external_exports.string(),
|
|
7407
6171
|
presignedUrl: external_exports.url()
|
|
7408
6172
|
});
|
|
7409
|
-
var storagesPrepareContract =
|
|
6173
|
+
var storagesPrepareContract = c26.router({
|
|
7410
6174
|
prepare: {
|
|
7411
6175
|
method: "POST",
|
|
7412
6176
|
path: "/api/storages/prepare",
|
|
@@ -7441,7 +6205,7 @@ var storagesPrepareContract = c24.router({
|
|
|
7441
6205
|
summary: "Prepare for direct S3 upload"
|
|
7442
6206
|
}
|
|
7443
6207
|
});
|
|
7444
|
-
var storagesCommitContract =
|
|
6208
|
+
var storagesCommitContract = c26.router({
|
|
7445
6209
|
commit: {
|
|
7446
6210
|
method: "POST",
|
|
7447
6211
|
path: "/api/storages/commit",
|
|
@@ -7475,7 +6239,7 @@ var storagesCommitContract = c24.router({
|
|
|
7475
6239
|
summary: "Commit uploaded storage"
|
|
7476
6240
|
}
|
|
7477
6241
|
});
|
|
7478
|
-
var storagesDownloadContract =
|
|
6242
|
+
var storagesDownloadContract = c26.router({
|
|
7479
6243
|
download: {
|
|
7480
6244
|
method: "GET",
|
|
7481
6245
|
path: "/api/storages/download",
|
|
@@ -7511,7 +6275,7 @@ var storagesDownloadContract = c24.router({
|
|
|
7511
6275
|
summary: "Get presigned download URL"
|
|
7512
6276
|
}
|
|
7513
6277
|
});
|
|
7514
|
-
var storagesListContract =
|
|
6278
|
+
var storagesListContract = c26.router({
|
|
7515
6279
|
list: {
|
|
7516
6280
|
method: "GET",
|
|
7517
6281
|
path: "/api/storages/list",
|
|
@@ -7539,7 +6303,7 @@ var storagesListContract = c24.router({
|
|
|
7539
6303
|
});
|
|
7540
6304
|
|
|
7541
6305
|
// ../../packages/api-contracts/src/contracts/webhooks.ts
|
|
7542
|
-
var
|
|
6306
|
+
var c27 = initContract();
|
|
7543
6307
|
var sha256HexSchema = external_exports.string().regex(
|
|
7544
6308
|
/^[a-f0-9]{64}$/,
|
|
7545
6309
|
"hash must be a lowercase 64-character SHA-256 hex string"
|
|
@@ -7549,11 +6313,11 @@ var thirdPartyWebhookOkSchema = external_exports.union([
|
|
|
7549
6313
|
external_exports.string(),
|
|
7550
6314
|
external_exports.object({ message: external_exports.literal("pong") })
|
|
7551
6315
|
]);
|
|
7552
|
-
var webhookClerkContract =
|
|
6316
|
+
var webhookClerkContract = c27.router({
|
|
7553
6317
|
post: {
|
|
7554
6318
|
method: "POST",
|
|
7555
6319
|
path: "/api/webhooks/clerk",
|
|
7556
|
-
body:
|
|
6320
|
+
body: c27.type(),
|
|
7557
6321
|
responses: {
|
|
7558
6322
|
200: thirdPartyWebhookOkSchema,
|
|
7559
6323
|
401: thirdPartyWebhookErrorSchema
|
|
@@ -7561,11 +6325,11 @@ var webhookClerkContract = c25.router({
|
|
|
7561
6325
|
summary: "Handle Clerk organization and user webhooks"
|
|
7562
6326
|
}
|
|
7563
6327
|
});
|
|
7564
|
-
var webhookGithubContract =
|
|
6328
|
+
var webhookGithubContract = c27.router({
|
|
7565
6329
|
post: {
|
|
7566
6330
|
method: "POST",
|
|
7567
6331
|
path: "/api/webhooks/github",
|
|
7568
|
-
body:
|
|
6332
|
+
body: c27.type(),
|
|
7569
6333
|
responses: {
|
|
7570
6334
|
200: thirdPartyWebhookOkSchema,
|
|
7571
6335
|
400: thirdPartyWebhookErrorSchema,
|
|
@@ -7575,11 +6339,11 @@ var webhookGithubContract = c25.router({
|
|
|
7575
6339
|
summary: "Handle GitHub App webhooks"
|
|
7576
6340
|
}
|
|
7577
6341
|
});
|
|
7578
|
-
var webhookStripeContract =
|
|
6342
|
+
var webhookStripeContract = c27.router({
|
|
7579
6343
|
post: {
|
|
7580
6344
|
method: "POST",
|
|
7581
6345
|
path: "/api/webhooks/stripe",
|
|
7582
|
-
body:
|
|
6346
|
+
body: c27.type(),
|
|
7583
6347
|
responses: {
|
|
7584
6348
|
200: thirdPartyWebhookOkSchema,
|
|
7585
6349
|
401: thirdPartyWebhookErrorSchema,
|
|
@@ -7618,11 +6382,11 @@ var workflowTriggerWebhookResponseSchema = external_exports.object({
|
|
|
7618
6382
|
duplicate: external_exports.boolean(),
|
|
7619
6383
|
runId: external_exports.string().uuid().optional()
|
|
7620
6384
|
});
|
|
7621
|
-
var webhookGmailContract =
|
|
6385
|
+
var webhookGmailContract = c27.router({
|
|
7622
6386
|
post: {
|
|
7623
6387
|
method: "POST",
|
|
7624
6388
|
path: "/api/webhooks/gmail",
|
|
7625
|
-
body:
|
|
6389
|
+
body: c27.type(),
|
|
7626
6390
|
responses: {
|
|
7627
6391
|
200: gmailWebhookResponseSchema,
|
|
7628
6392
|
400: thirdPartyWebhookErrorSchema,
|
|
@@ -7633,11 +6397,11 @@ var webhookGmailContract = c25.router({
|
|
|
7633
6397
|
summary: "Handle Gmail Pub/Sub push notifications"
|
|
7634
6398
|
}
|
|
7635
6399
|
});
|
|
7636
|
-
var webhookGoogleCalendarContract =
|
|
6400
|
+
var webhookGoogleCalendarContract = c27.router({
|
|
7637
6401
|
post: {
|
|
7638
6402
|
method: "POST",
|
|
7639
6403
|
path: "/api/webhooks/google-calendar",
|
|
7640
|
-
body:
|
|
6404
|
+
body: c27.type(),
|
|
7641
6405
|
responses: {
|
|
7642
6406
|
200: googleCalendarWebhookResponseSchema,
|
|
7643
6407
|
400: thirdPartyWebhookErrorSchema,
|
|
@@ -7648,11 +6412,11 @@ var webhookGoogleCalendarContract = c25.router({
|
|
|
7648
6412
|
summary: "Handle Google Calendar push notifications"
|
|
7649
6413
|
}
|
|
7650
6414
|
});
|
|
7651
|
-
var webhookGoogleWorkspaceEventsContract =
|
|
6415
|
+
var webhookGoogleWorkspaceEventsContract = c27.router({
|
|
7652
6416
|
post: {
|
|
7653
6417
|
method: "POST",
|
|
7654
6418
|
path: "/api/webhooks/google-workspace-events",
|
|
7655
|
-
body:
|
|
6419
|
+
body: c27.type(),
|
|
7656
6420
|
responses: {
|
|
7657
6421
|
200: googleWorkspaceEventsWebhookResponseSchema,
|
|
7658
6422
|
400: thirdPartyWebhookErrorSchema,
|
|
@@ -7663,11 +6427,11 @@ var webhookGoogleWorkspaceEventsContract = c25.router({
|
|
|
7663
6427
|
summary: "Handle Google Workspace Events Pub/Sub push notifications"
|
|
7664
6428
|
}
|
|
7665
6429
|
});
|
|
7666
|
-
var webhookNotionContract =
|
|
6430
|
+
var webhookNotionContract = c27.router({
|
|
7667
6431
|
post: {
|
|
7668
6432
|
method: "POST",
|
|
7669
6433
|
path: "/api/webhooks/notion",
|
|
7670
|
-
body:
|
|
6434
|
+
body: c27.type(),
|
|
7671
6435
|
responses: {
|
|
7672
6436
|
200: notionWebhookResponseSchema,
|
|
7673
6437
|
400: thirdPartyWebhookErrorSchema,
|
|
@@ -7677,14 +6441,14 @@ var webhookNotionContract = c25.router({
|
|
|
7677
6441
|
summary: "Handle Notion webhook events"
|
|
7678
6442
|
}
|
|
7679
6443
|
});
|
|
7680
|
-
var webhookWorkflowTriggerContract =
|
|
6444
|
+
var webhookWorkflowTriggerContract = c27.router({
|
|
7681
6445
|
post: {
|
|
7682
6446
|
method: "POST",
|
|
7683
6447
|
path: "/api/webhooks/workflow-triggers/:token",
|
|
7684
6448
|
pathParams: external_exports.object({
|
|
7685
6449
|
token: external_exports.string().min(1)
|
|
7686
6450
|
}),
|
|
7687
|
-
body:
|
|
6451
|
+
body: c27.type(),
|
|
7688
6452
|
responses: {
|
|
7689
6453
|
200: workflowTriggerWebhookResponseSchema,
|
|
7690
6454
|
400: thirdPartyWebhookErrorSchema,
|
|
@@ -7697,7 +6461,7 @@ var webhookWorkflowTriggerContract = c25.router({
|
|
|
7697
6461
|
summary: "Handle inbound workflow trigger webhooks"
|
|
7698
6462
|
}
|
|
7699
6463
|
});
|
|
7700
|
-
var webhookBuiltInGenerationFalContract =
|
|
6464
|
+
var webhookBuiltInGenerationFalContract = c27.router({
|
|
7701
6465
|
post: {
|
|
7702
6466
|
method: "POST",
|
|
7703
6467
|
path: "/api/webhooks/built-in-generations/fal/:generationId",
|
|
@@ -7708,7 +6472,7 @@ var webhookBuiltInGenerationFalContract = c25.router({
|
|
|
7708
6472
|
token: external_exports.string().min(1),
|
|
7709
6473
|
visualKey: external_exports.string().min(1).optional()
|
|
7710
6474
|
}),
|
|
7711
|
-
body:
|
|
6475
|
+
body: c27.type(),
|
|
7712
6476
|
responses: {
|
|
7713
6477
|
200: thirdPartyWebhookOkSchema,
|
|
7714
6478
|
400: thirdPartyWebhookErrorSchema,
|
|
@@ -7718,7 +6482,7 @@ var webhookBuiltInGenerationFalContract = c25.router({
|
|
|
7718
6482
|
summary: "Handle fal built-in generation webhooks"
|
|
7719
6483
|
}
|
|
7720
6484
|
});
|
|
7721
|
-
var webhookBuiltInGenerationBytePlusContract =
|
|
6485
|
+
var webhookBuiltInGenerationBytePlusContract = c27.router({
|
|
7722
6486
|
post: {
|
|
7723
6487
|
method: "POST",
|
|
7724
6488
|
path: "/api/webhooks/built-in-generations/byteplus/:generationId",
|
|
@@ -7729,7 +6493,7 @@ var webhookBuiltInGenerationBytePlusContract = c25.router({
|
|
|
7729
6493
|
token: external_exports.string().min(1),
|
|
7730
6494
|
visualKey: external_exports.string().min(1).optional()
|
|
7731
6495
|
}),
|
|
7732
|
-
body:
|
|
6496
|
+
body: c27.type(),
|
|
7733
6497
|
responses: {
|
|
7734
6498
|
200: thirdPartyWebhookOkSchema,
|
|
7735
6499
|
400: thirdPartyWebhookErrorSchema,
|
|
@@ -7789,7 +6553,7 @@ var firewallAuthResponseSchema = external_exports.object({
|
|
|
7789
6553
|
refreshedConnectors: external_exports.array(external_exports.string()),
|
|
7790
6554
|
refreshedSecrets: external_exports.array(external_exports.string())
|
|
7791
6555
|
});
|
|
7792
|
-
var webhookFirewallAuthContract =
|
|
6556
|
+
var webhookFirewallAuthContract = c27.router({
|
|
7793
6557
|
/**
|
|
7794
6558
|
* POST /api/webhooks/agent/firewall/auth
|
|
7795
6559
|
* Resolve firewall auth templates and refresh access tokens on demand.
|
|
@@ -7831,7 +6595,7 @@ var webhookFirewallAuthContract = c25.router({
|
|
|
7831
6595
|
summary: "Resolve firewall auth templates"
|
|
7832
6596
|
}
|
|
7833
6597
|
});
|
|
7834
|
-
var webhookEventsContract =
|
|
6598
|
+
var webhookEventsContract = c27.router({
|
|
7835
6599
|
/**
|
|
7836
6600
|
* POST /api/webhooks/agent/events
|
|
7837
6601
|
* Receive agent events from sandbox
|
|
@@ -7858,7 +6622,7 @@ var webhookEventsContract = c25.router({
|
|
|
7858
6622
|
summary: "Receive agent events from sandbox"
|
|
7859
6623
|
}
|
|
7860
6624
|
});
|
|
7861
|
-
var webhookCompleteContract =
|
|
6625
|
+
var webhookCompleteContract = c27.router({
|
|
7862
6626
|
/**
|
|
7863
6627
|
* POST /api/webhooks/agent/complete
|
|
7864
6628
|
* Handle agent run completion (success or failure)
|
|
@@ -7895,7 +6659,7 @@ var webhookCompleteContract = c25.router({
|
|
|
7895
6659
|
summary: "Handle agent run completion"
|
|
7896
6660
|
}
|
|
7897
6661
|
});
|
|
7898
|
-
var webhookCheckpointsContract =
|
|
6662
|
+
var webhookCheckpointsContract = c27.router({
|
|
7899
6663
|
/**
|
|
7900
6664
|
* POST /api/webhooks/agent/checkpoints
|
|
7901
6665
|
* Create a recoverable checkpoint for an agent run.
|
|
@@ -7931,7 +6695,7 @@ var webhookCheckpointsContract = c25.router({
|
|
|
7931
6695
|
summary: "Create checkpoint for agent run"
|
|
7932
6696
|
}
|
|
7933
6697
|
});
|
|
7934
|
-
var webhookCheckpointsPrepareHistoryContract =
|
|
6698
|
+
var webhookCheckpointsPrepareHistoryContract = c27.router({
|
|
7935
6699
|
prepare: {
|
|
7936
6700
|
method: "POST",
|
|
7937
6701
|
path: "/api/webhooks/agent/checkpoints/prepare-history",
|
|
@@ -7957,7 +6721,7 @@ var webhookCheckpointsPrepareHistoryContract = c25.router({
|
|
|
7957
6721
|
summary: "Get presigned URL for uploading session history to S3"
|
|
7958
6722
|
}
|
|
7959
6723
|
});
|
|
7960
|
-
var webhookHeartbeatContract =
|
|
6724
|
+
var webhookHeartbeatContract = c27.router({
|
|
7961
6725
|
/**
|
|
7962
6726
|
* POST /api/webhooks/agent/heartbeat
|
|
7963
6727
|
* Receive heartbeat signals from sandbox
|
|
@@ -7981,7 +6745,7 @@ var webhookHeartbeatContract = c25.router({
|
|
|
7981
6745
|
summary: "Receive heartbeat from sandbox"
|
|
7982
6746
|
}
|
|
7983
6747
|
});
|
|
7984
|
-
var webhookStoragesContract =
|
|
6748
|
+
var webhookStoragesContract = c27.router({
|
|
7985
6749
|
/**
|
|
7986
6750
|
* POST /api/webhooks/agent/storages
|
|
7987
6751
|
* Create a new version of a storage from sandbox
|
|
@@ -7997,7 +6761,7 @@ var webhookStoragesContract = c25.router({
|
|
|
7997
6761
|
path: "/api/webhooks/agent/storages",
|
|
7998
6762
|
headers: authHeadersSchema,
|
|
7999
6763
|
contentType: "multipart/form-data",
|
|
8000
|
-
body:
|
|
6764
|
+
body: c27.type(),
|
|
8001
6765
|
responses: {
|
|
8002
6766
|
200: external_exports.object({
|
|
8003
6767
|
versionId: external_exports.string(),
|
|
@@ -8013,7 +6777,7 @@ var webhookStoragesContract = c25.router({
|
|
|
8013
6777
|
summary: "Upload storage version from sandbox"
|
|
8014
6778
|
}
|
|
8015
6779
|
});
|
|
8016
|
-
var webhookStoragesIncrementalContract =
|
|
6780
|
+
var webhookStoragesIncrementalContract = c27.router({
|
|
8017
6781
|
/**
|
|
8018
6782
|
* POST /api/webhooks/agent/storages/incremental
|
|
8019
6783
|
* Create a new version using incremental upload
|
|
@@ -8031,7 +6795,7 @@ var webhookStoragesIncrementalContract = c25.router({
|
|
|
8031
6795
|
path: "/api/webhooks/agent/storages/incremental",
|
|
8032
6796
|
headers: authHeadersSchema,
|
|
8033
6797
|
contentType: "multipart/form-data",
|
|
8034
|
-
body:
|
|
6798
|
+
body: c27.type(),
|
|
8035
6799
|
responses: {
|
|
8036
6800
|
200: external_exports.object({
|
|
8037
6801
|
versionId: external_exports.string(),
|
|
@@ -8125,7 +6889,7 @@ var sandboxOperationSchema = external_exports.object({
|
|
|
8125
6889
|
session_history_transfer_encoding_state: sessionHistoryTransferEncodingStateSchema.optional(),
|
|
8126
6890
|
session_history_download_source: sandboxOperationDownloadSourceSchema
|
|
8127
6891
|
});
|
|
8128
|
-
var webhookTelemetryContract =
|
|
6892
|
+
var webhookTelemetryContract = c27.router({
|
|
8129
6893
|
/**
|
|
8130
6894
|
* POST /api/webhooks/agent/telemetry
|
|
8131
6895
|
* Receive telemetry data (system log, metrics, network logs, and sandbox operations) from sandbox
|
|
@@ -8154,7 +6918,7 @@ var webhookTelemetryContract = c25.router({
|
|
|
8154
6918
|
summary: "Receive telemetry data from sandbox"
|
|
8155
6919
|
}
|
|
8156
6920
|
});
|
|
8157
|
-
var webhookStoragesPrepareContract =
|
|
6921
|
+
var webhookStoragesPrepareContract = c27.router({
|
|
8158
6922
|
prepare: {
|
|
8159
6923
|
method: "POST",
|
|
8160
6924
|
path: "/api/webhooks/agent/storages/prepare",
|
|
@@ -8188,7 +6952,7 @@ var webhookStoragesPrepareContract = c25.router({
|
|
|
8188
6952
|
summary: "Prepare for direct S3 upload from sandbox"
|
|
8189
6953
|
}
|
|
8190
6954
|
});
|
|
8191
|
-
var webhookStoragesCommitContract =
|
|
6955
|
+
var webhookStoragesCommitContract = c27.router({
|
|
8192
6956
|
commit: {
|
|
8193
6957
|
method: "POST",
|
|
8194
6958
|
path: "/api/webhooks/agent/storages/commit",
|
|
@@ -8230,7 +6994,7 @@ var webhookUsageEventItemSchema = external_exports.object({
|
|
|
8230
6994
|
category: external_exports.string().min(1).max(100),
|
|
8231
6995
|
quantity: external_exports.number().int().min(0)
|
|
8232
6996
|
}).strict();
|
|
8233
|
-
var webhookUsageEventContract =
|
|
6997
|
+
var webhookUsageEventContract = c27.router({
|
|
8234
6998
|
send: {
|
|
8235
6999
|
method: "POST",
|
|
8236
7000
|
path: "/api/webhooks/agent/usage-event",
|
|
@@ -8263,7 +7027,7 @@ var webhookModelUsageObservationItemSchema = external_exports.object({
|
|
|
8263
7027
|
category: modelUsageObservationCategorySchema,
|
|
8264
7028
|
quantity: external_exports.number().int().min(1)
|
|
8265
7029
|
}).strict();
|
|
8266
|
-
var webhookModelUsageObservationContract =
|
|
7030
|
+
var webhookModelUsageObservationContract = c27.router({
|
|
8267
7031
|
send: {
|
|
8268
7032
|
method: "POST",
|
|
8269
7033
|
path: "/api/webhooks/agent/model-usage-observation",
|
|
@@ -8301,7 +7065,7 @@ var zeroRunRequestSchema = unifiedRunRequestSchema.omit({
|
|
|
8301
7065
|
agentId: external_exports.string().optional(),
|
|
8302
7066
|
modelProvider: external_exports.string().optional()
|
|
8303
7067
|
});
|
|
8304
|
-
var
|
|
7068
|
+
var c28 = initContract();
|
|
8305
7069
|
var zeroLogPaginationQuerySchema = createLogPaginationQuerySchema({
|
|
8306
7070
|
cursorKind: "sequence"
|
|
8307
7071
|
});
|
|
@@ -8311,7 +7075,7 @@ var zeroNetworkLogPaginationQuerySchema = createLogPaginationQuerySchema({
|
|
|
8311
7075
|
defaultLimit: 500,
|
|
8312
7076
|
defaultOrder: "asc"
|
|
8313
7077
|
});
|
|
8314
|
-
var zeroRunsMainContract =
|
|
7078
|
+
var zeroRunsMainContract = c28.router({
|
|
8315
7079
|
create: {
|
|
8316
7080
|
method: "POST",
|
|
8317
7081
|
path: "/api/zero/runs",
|
|
@@ -8330,7 +7094,7 @@ var zeroRunsMainContract = c26.router({
|
|
|
8330
7094
|
summary: "Create and execute agent run (zero proxy)"
|
|
8331
7095
|
}
|
|
8332
7096
|
});
|
|
8333
|
-
var zeroRunsByIdContract =
|
|
7097
|
+
var zeroRunsByIdContract = c28.router({
|
|
8334
7098
|
getById: {
|
|
8335
7099
|
method: "GET",
|
|
8336
7100
|
path: "/api/zero/runs/:id",
|
|
@@ -8348,7 +7112,7 @@ var zeroRunsByIdContract = c26.router({
|
|
|
8348
7112
|
summary: "Get agent run by ID (zero proxy)"
|
|
8349
7113
|
}
|
|
8350
7114
|
});
|
|
8351
|
-
var zeroRunsCancelContract =
|
|
7115
|
+
var zeroRunsCancelContract = c28.router({
|
|
8352
7116
|
cancel: {
|
|
8353
7117
|
method: "POST",
|
|
8354
7118
|
path: "/api/zero/runs/:id/cancel",
|
|
@@ -8367,7 +7131,7 @@ var zeroRunsCancelContract = c26.router({
|
|
|
8367
7131
|
summary: "Cancel a pending or running run (zero proxy)"
|
|
8368
7132
|
}
|
|
8369
7133
|
});
|
|
8370
|
-
var zeroRunsQueueContract =
|
|
7134
|
+
var zeroRunsQueueContract = c28.router({
|
|
8371
7135
|
getQueue: {
|
|
8372
7136
|
method: "GET",
|
|
8373
7137
|
path: "/api/zero/runs/queue",
|
|
@@ -8380,7 +7144,7 @@ var zeroRunsQueueContract = c26.router({
|
|
|
8380
7144
|
summary: "Get org run queue status (zero proxy)"
|
|
8381
7145
|
}
|
|
8382
7146
|
});
|
|
8383
|
-
var zeroRunAgentEventsContract =
|
|
7147
|
+
var zeroRunAgentEventsContract = c28.router({
|
|
8384
7148
|
getAgentEvents: {
|
|
8385
7149
|
method: "GET",
|
|
8386
7150
|
path: "/api/zero/runs/:id/telemetry/agent",
|
|
@@ -8444,7 +7208,7 @@ var runContextResponseSchema = external_exports.object({
|
|
|
8444
7208
|
artifact: runContextArtifactSchema.nullable(),
|
|
8445
7209
|
featureFlags: external_exports.record(external_exports.string(), external_exports.boolean()).nullable()
|
|
8446
7210
|
});
|
|
8447
|
-
var zeroRunContextContract =
|
|
7211
|
+
var zeroRunContextContract = c28.router({
|
|
8448
7212
|
getContext: {
|
|
8449
7213
|
method: "GET",
|
|
8450
7214
|
path: "/api/zero/runs/:id/context",
|
|
@@ -8462,7 +7226,7 @@ var zeroRunContextContract = c26.router({
|
|
|
8462
7226
|
summary: "Get run execution context snapshot for debugging"
|
|
8463
7227
|
}
|
|
8464
7228
|
});
|
|
8465
|
-
var zeroRunNetworkLogsContract =
|
|
7229
|
+
var zeroRunNetworkLogsContract = c28.router({
|
|
8466
7230
|
getNetworkLogs: {
|
|
8467
7231
|
method: "GET",
|
|
8468
7232
|
path: "/api/zero/runs/:id/network",
|
|
@@ -8484,7 +7248,7 @@ var zeroRunNetworkLogsContract = c26.router({
|
|
|
8484
7248
|
var runRunnerResponseSchema = external_exports.object({
|
|
8485
7249
|
sandboxReuseResult: sandboxReuseResultSchema.nullable()
|
|
8486
7250
|
});
|
|
8487
|
-
var zeroRunRunnerContract =
|
|
7251
|
+
var zeroRunRunnerContract = c28.router({
|
|
8488
7252
|
getRunner: {
|
|
8489
7253
|
method: "GET",
|
|
8490
7254
|
path: "/api/zero/runs/:id/runner",
|
|
@@ -8502,7 +7266,7 @@ var zeroRunRunnerContract = c26.router({
|
|
|
8502
7266
|
summary: "Get runner-level metadata for a run"
|
|
8503
7267
|
}
|
|
8504
7268
|
});
|
|
8505
|
-
var zeroLogsSearchContract =
|
|
7269
|
+
var zeroLogsSearchContract = c28.router({
|
|
8506
7270
|
searchLogs: {
|
|
8507
7271
|
method: "GET",
|
|
8508
7272
|
path: "/api/zero/logs/search",
|
|
@@ -8535,13 +7299,6 @@ async function getZeroRunAgentEvents(id, options) {
|
|
|
8535
7299
|
if (result.status === 200) return result.body;
|
|
8536
7300
|
handleError(result, `Failed to get zero run events for "${id}"`);
|
|
8537
7301
|
}
|
|
8538
|
-
async function getZeroRunContext(id) {
|
|
8539
|
-
const config = await getClientConfig();
|
|
8540
|
-
const client = initClient(zeroRunContextContract, config);
|
|
8541
|
-
const result = await client.getContext({ params: { id } });
|
|
8542
|
-
if (result.status === 200) return result.body;
|
|
8543
|
-
handleError(result, `Failed to get zero run context for "${id}"`);
|
|
8544
|
-
}
|
|
8545
7302
|
|
|
8546
7303
|
// src/lib/api/domains/zero-chat.ts
|
|
8547
7304
|
init_esm_shims();
|
|
@@ -8605,7 +7362,7 @@ init_esm_shims();
|
|
|
8605
7362
|
|
|
8606
7363
|
// ../../packages/api-contracts/src/contracts/zero-developer-support.ts
|
|
8607
7364
|
init_esm_shims();
|
|
8608
|
-
var
|
|
7365
|
+
var c29 = initContract();
|
|
8609
7366
|
var developerSupportBodySchema = external_exports.object({
|
|
8610
7367
|
title: external_exports.string().min(1, "Title is required"),
|
|
8611
7368
|
description: external_exports.string().min(1, "Description is required"),
|
|
@@ -8617,7 +7374,7 @@ var consentCodeResponseSchema = external_exports.object({
|
|
|
8617
7374
|
var submitResponseSchema = external_exports.object({
|
|
8618
7375
|
reference: external_exports.string()
|
|
8619
7376
|
});
|
|
8620
|
-
var zeroDeveloperSupportContract =
|
|
7377
|
+
var zeroDeveloperSupportContract = c29.router({
|
|
8621
7378
|
submit: {
|
|
8622
7379
|
method: "POST",
|
|
8623
7380
|
path: "/api/zero/developer-support",
|
|
@@ -8813,7 +7570,7 @@ init_esm_shims();
|
|
|
8813
7570
|
|
|
8814
7571
|
// ../../packages/api-contracts/src/contracts/zero-computer-use.ts
|
|
8815
7572
|
init_esm_shims();
|
|
8816
|
-
var
|
|
7573
|
+
var c30 = initContract();
|
|
8817
7574
|
var computerUseHostStatusSchema = external_exports.enum(["online", "offline"]);
|
|
8818
7575
|
var computerUseReadCommandKindSchema = external_exports.enum([
|
|
8819
7576
|
"apps.list",
|
|
@@ -9188,7 +7945,7 @@ var computerUseAuditEventSchema = external_exports.object({
|
|
|
9188
7945
|
var computerUseAuditEventListResponseSchema = external_exports.object({
|
|
9189
7946
|
auditEvents: external_exports.array(computerUseAuditEventSchema)
|
|
9190
7947
|
});
|
|
9191
|
-
var zeroComputerUseHostsContract =
|
|
7948
|
+
var zeroComputerUseHostsContract = c30.router({
|
|
9192
7949
|
start: {
|
|
9193
7950
|
method: "POST",
|
|
9194
7951
|
path: "/api/zero/computer-use/hosts/start",
|
|
@@ -9227,7 +7984,7 @@ var zeroComputerUseHostsContract = c28.router({
|
|
|
9227
7984
|
summary: "Delete a desktop computer-use host"
|
|
9228
7985
|
}
|
|
9229
7986
|
});
|
|
9230
|
-
var zeroComputerUseHeartbeatContract =
|
|
7987
|
+
var zeroComputerUseHeartbeatContract = c30.router({
|
|
9231
7988
|
heartbeat: {
|
|
9232
7989
|
method: "POST",
|
|
9233
7990
|
path: "/api/zero/computer-use/heartbeat",
|
|
@@ -9252,7 +8009,7 @@ var zeroComputerUseHeartbeatContract = c28.router({
|
|
|
9252
8009
|
summary: "Stop a desktop computer-use host"
|
|
9253
8010
|
}
|
|
9254
8011
|
});
|
|
9255
|
-
var zeroComputerUseAuthorizationRequestsContract =
|
|
8012
|
+
var zeroComputerUseAuthorizationRequestsContract = c30.router({
|
|
9256
8013
|
create: {
|
|
9257
8014
|
method: "POST",
|
|
9258
8015
|
path: "/api/zero/computer-use/authorization-requests",
|
|
@@ -9299,7 +8056,7 @@ var zeroComputerUseAuthorizationRequestsContract = c28.router({
|
|
|
9299
8056
|
summary: "Bind a Computer Use host for a delegated authorization request"
|
|
9300
8057
|
}
|
|
9301
8058
|
});
|
|
9302
|
-
var zeroComputerUseCommandContract =
|
|
8059
|
+
var zeroComputerUseCommandContract = c30.router({
|
|
9303
8060
|
create: {
|
|
9304
8061
|
method: "POST",
|
|
9305
8062
|
path: "/api/zero/computer-use/commands",
|
|
@@ -9334,7 +8091,7 @@ var zeroComputerUseCommandContract = c28.router({
|
|
|
9334
8091
|
headers: authHeadersSchema,
|
|
9335
8092
|
pathParams: commandIdPathParamsSchema,
|
|
9336
8093
|
responses: {
|
|
9337
|
-
200:
|
|
8094
|
+
200: c30.type(),
|
|
9338
8095
|
401: apiErrorSchema,
|
|
9339
8096
|
403: apiErrorSchema,
|
|
9340
8097
|
404: apiErrorSchema
|
|
@@ -9347,7 +8104,7 @@ var zeroComputerUseCommandContract = c28.router({
|
|
|
9347
8104
|
headers: authHeadersSchema,
|
|
9348
8105
|
pathParams: commandIdPathParamsSchema,
|
|
9349
8106
|
responses: {
|
|
9350
|
-
200:
|
|
8107
|
+
200: c30.type(),
|
|
9351
8108
|
401: apiErrorSchema,
|
|
9352
8109
|
403: apiErrorSchema,
|
|
9353
8110
|
404: apiErrorSchema
|
|
@@ -9355,7 +8112,7 @@ var zeroComputerUseCommandContract = c28.router({
|
|
|
9355
8112
|
summary: "Download offloaded desktop computer-use plugin content"
|
|
9356
8113
|
}
|
|
9357
8114
|
});
|
|
9358
|
-
var zeroComputerUseWriteCommandContract =
|
|
8115
|
+
var zeroComputerUseWriteCommandContract = c30.router({
|
|
9359
8116
|
create: {
|
|
9360
8117
|
method: "POST",
|
|
9361
8118
|
path: "/api/zero/computer-use/write-commands",
|
|
@@ -9372,7 +8129,7 @@ var zeroComputerUseWriteCommandContract = c28.router({
|
|
|
9372
8129
|
summary: "Create a desktop computer-use write command"
|
|
9373
8130
|
}
|
|
9374
8131
|
});
|
|
9375
|
-
var zeroComputerUsePluginCommandContract =
|
|
8132
|
+
var zeroComputerUsePluginCommandContract = c30.router({
|
|
9376
8133
|
create: {
|
|
9377
8134
|
method: "POST",
|
|
9378
8135
|
path: "/api/zero/computer-use/plugin-commands",
|
|
@@ -9389,7 +8146,7 @@ var zeroComputerUsePluginCommandContract = c28.router({
|
|
|
9389
8146
|
summary: "Create a desktop computer-use plugin command"
|
|
9390
8147
|
}
|
|
9391
8148
|
});
|
|
9392
|
-
var zeroComputerUseHostCommandsContract =
|
|
8149
|
+
var zeroComputerUseHostCommandsContract = c30.router({
|
|
9393
8150
|
next: {
|
|
9394
8151
|
method: "POST",
|
|
9395
8152
|
path: "/api/zero/computer-use/host/commands/next",
|
|
@@ -9417,7 +8174,7 @@ var zeroComputerUseHostCommandsContract = c28.router({
|
|
|
9417
8174
|
summary: "Complete a desktop computer-use command"
|
|
9418
8175
|
}
|
|
9419
8176
|
});
|
|
9420
|
-
var zeroComputerUseAuditEventsContract =
|
|
8177
|
+
var zeroComputerUseAuditEventsContract = c30.router({
|
|
9421
8178
|
list: {
|
|
9422
8179
|
method: "GET",
|
|
9423
8180
|
path: "/api/zero/computer-use/audit-events",
|
|
@@ -9716,7 +8473,7 @@ init_esm_shims();
|
|
|
9716
8473
|
|
|
9717
8474
|
// ../../packages/api-contracts/src/contracts/composes.ts
|
|
9718
8475
|
init_esm_shims();
|
|
9719
|
-
var
|
|
8476
|
+
var c31 = initContract();
|
|
9720
8477
|
var MOUNT_PATH_TEMPLATE = "${{ working_dir }}";
|
|
9721
8478
|
var composeVersionQuerySchema = external_exports.string().min(1, "Missing version query parameter").regex(
|
|
9722
8479
|
/^[a-f0-9]{8,64}$|^latest$/i,
|
|
@@ -9836,7 +8593,7 @@ var createComposeResponseSchema = external_exports.object({
|
|
|
9836
8593
|
action: external_exports.enum(["created", "existing"]),
|
|
9837
8594
|
updatedAt: external_exports.string()
|
|
9838
8595
|
});
|
|
9839
|
-
var composesMainContract =
|
|
8596
|
+
var composesMainContract = c31.router({
|
|
9840
8597
|
/**
|
|
9841
8598
|
* GET /api/agent/composes?name={name}&org={org}
|
|
9842
8599
|
* Get agent compose by name with HEAD version content
|
|
@@ -9882,7 +8639,7 @@ var composesMainContract = c29.router({
|
|
|
9882
8639
|
summary: "Create or update agent compose version"
|
|
9883
8640
|
}
|
|
9884
8641
|
});
|
|
9885
|
-
var composesByIdContract =
|
|
8642
|
+
var composesByIdContract = c31.router({
|
|
9886
8643
|
/**
|
|
9887
8644
|
* GET /api/agent/composes/:id
|
|
9888
8645
|
* Get agent compose by ID with HEAD version content
|
|
@@ -9904,7 +8661,7 @@ var composesByIdContract = c29.router({
|
|
|
9904
8661
|
summary: "Get agent compose by ID"
|
|
9905
8662
|
}
|
|
9906
8663
|
});
|
|
9907
|
-
var composesVersionsContract =
|
|
8664
|
+
var composesVersionsContract = c31.router({
|
|
9908
8665
|
/**
|
|
9909
8666
|
* GET /api/agent/composes/versions?composeId={id}&version={hash|tag}
|
|
9910
8667
|
* Resolve a version specifier to a full version ID
|
|
@@ -10058,7 +8815,7 @@ init_esm_shims();
|
|
|
10058
8815
|
|
|
10059
8816
|
// ../../packages/api-contracts/src/contracts/sessions.ts
|
|
10060
8817
|
init_esm_shims();
|
|
10061
|
-
var
|
|
8818
|
+
var c32 = initContract();
|
|
10062
8819
|
var sessionResponseSchema = external_exports.object({
|
|
10063
8820
|
id: external_exports.string(),
|
|
10064
8821
|
agentComposeId: external_exports.string(),
|
|
@@ -10099,7 +8856,7 @@ var checkpointResponseSchema = external_exports.object({
|
|
|
10099
8856
|
volumeVersionsSnapshot: volumeVersionsSnapshotSchema2.nullable(),
|
|
10100
8857
|
createdAt: external_exports.string()
|
|
10101
8858
|
});
|
|
10102
|
-
var sessionsByIdContract =
|
|
8859
|
+
var sessionsByIdContract = c32.router({
|
|
10103
8860
|
/**
|
|
10104
8861
|
* GET /api/agent/sessions/:id
|
|
10105
8862
|
* Get session by ID
|
|
@@ -10120,7 +8877,7 @@ var sessionsByIdContract = c30.router({
|
|
|
10120
8877
|
summary: "Get session by ID"
|
|
10121
8878
|
}
|
|
10122
8879
|
});
|
|
10123
|
-
var checkpointsByIdContract =
|
|
8880
|
+
var checkpointsByIdContract = c32.router({
|
|
10124
8881
|
/**
|
|
10125
8882
|
* GET /api/agent/checkpoints/:id
|
|
10126
8883
|
* Get checkpoint by ID
|
|
@@ -10273,8 +9030,8 @@ var setVariableRequestSchema = external_exports.object({
|
|
|
10273
9030
|
});
|
|
10274
9031
|
|
|
10275
9032
|
// ../../packages/api-contracts/src/contracts/zero-secrets.ts
|
|
10276
|
-
var
|
|
10277
|
-
var zeroSecretsContract =
|
|
9033
|
+
var c33 = initContract();
|
|
9034
|
+
var zeroSecretsContract = c33.router({
|
|
10278
9035
|
list: {
|
|
10279
9036
|
method: "GET",
|
|
10280
9037
|
path: "/api/zero/secrets",
|
|
@@ -10301,7 +9058,7 @@ var zeroSecretsContract = c31.router({
|
|
|
10301
9058
|
summary: "Create or update a secret"
|
|
10302
9059
|
}
|
|
10303
9060
|
});
|
|
10304
|
-
var zeroSecretsByNameContract =
|
|
9061
|
+
var zeroSecretsByNameContract = c33.router({
|
|
10305
9062
|
delete: {
|
|
10306
9063
|
method: "DELETE",
|
|
10307
9064
|
path: "/api/zero/secrets/:name",
|
|
@@ -10310,7 +9067,7 @@ var zeroSecretsByNameContract = c31.router({
|
|
|
10310
9067
|
name: secretNameSchema
|
|
10311
9068
|
}),
|
|
10312
9069
|
responses: {
|
|
10313
|
-
204:
|
|
9070
|
+
204: c33.noBody(),
|
|
10314
9071
|
401: apiErrorSchema,
|
|
10315
9072
|
404: apiErrorSchema,
|
|
10316
9073
|
500: apiErrorSchema
|
|
@@ -10318,7 +9075,7 @@ var zeroSecretsByNameContract = c31.router({
|
|
|
10318
9075
|
summary: "Delete a secret by name"
|
|
10319
9076
|
}
|
|
10320
9077
|
});
|
|
10321
|
-
var zeroVariablesContract =
|
|
9078
|
+
var zeroVariablesContract = c33.router({
|
|
10322
9079
|
list: {
|
|
10323
9080
|
method: "GET",
|
|
10324
9081
|
path: "/api/zero/variables",
|
|
@@ -10345,7 +9102,7 @@ var zeroVariablesContract = c31.router({
|
|
|
10345
9102
|
summary: "Create or update a variable"
|
|
10346
9103
|
}
|
|
10347
9104
|
});
|
|
10348
|
-
var zeroVariablesByNameContract =
|
|
9105
|
+
var zeroVariablesByNameContract = c33.router({
|
|
10349
9106
|
delete: {
|
|
10350
9107
|
method: "DELETE",
|
|
10351
9108
|
path: "/api/zero/variables/:name",
|
|
@@ -10354,7 +9111,7 @@ var zeroVariablesByNameContract = c31.router({
|
|
|
10354
9111
|
name: variableNameSchema
|
|
10355
9112
|
}),
|
|
10356
9113
|
responses: {
|
|
10357
|
-
204:
|
|
9114
|
+
204: c33.noBody(),
|
|
10358
9115
|
401: apiErrorSchema,
|
|
10359
9116
|
404: apiErrorSchema,
|
|
10360
9117
|
500: apiErrorSchema
|
|
@@ -10495,9 +9252,9 @@ init_esm_shims();
|
|
|
10495
9252
|
|
|
10496
9253
|
// ../../packages/api-contracts/src/contracts/zero-model-providers.ts
|
|
10497
9254
|
init_esm_shims();
|
|
10498
|
-
var
|
|
9255
|
+
var c34 = initContract();
|
|
10499
9256
|
var orgUpsertModelProviderRequestSchema = upsertModelProviderRequestSchema.omit({ selectedModel: true });
|
|
10500
|
-
var zeroModelProvidersMainContract =
|
|
9257
|
+
var zeroModelProvidersMainContract = c34.router({
|
|
10501
9258
|
list: {
|
|
10502
9259
|
method: "GET",
|
|
10503
9260
|
path: "/api/zero/model-providers",
|
|
@@ -10526,7 +9283,7 @@ var zeroModelProvidersMainContract = c32.router({
|
|
|
10526
9283
|
summary: "Create or update an org-level model provider (admin only)"
|
|
10527
9284
|
}
|
|
10528
9285
|
});
|
|
10529
|
-
var zeroModelProvidersByTypeContract =
|
|
9286
|
+
var zeroModelProvidersByTypeContract = c34.router({
|
|
10530
9287
|
delete: {
|
|
10531
9288
|
method: "DELETE",
|
|
10532
9289
|
path: "/api/zero/model-providers/:type",
|
|
@@ -10535,7 +9292,7 @@ var zeroModelProvidersByTypeContract = c32.router({
|
|
|
10535
9292
|
type: modelProviderTypeSchema
|
|
10536
9293
|
}),
|
|
10537
9294
|
responses: {
|
|
10538
|
-
204:
|
|
9295
|
+
204: c34.noBody(),
|
|
10539
9296
|
401: apiErrorSchema,
|
|
10540
9297
|
403: apiErrorSchema,
|
|
10541
9298
|
404: apiErrorSchema,
|
|
@@ -10581,7 +9338,7 @@ init_esm_shims();
|
|
|
10581
9338
|
|
|
10582
9339
|
// ../../packages/api-contracts/src/contracts/zero-workflows.ts
|
|
10583
9340
|
init_esm_shims();
|
|
10584
|
-
var
|
|
9341
|
+
var c35 = initContract();
|
|
10585
9342
|
var zeroWorkflowVisibilitySchema = external_exports.enum(["public", "private"]);
|
|
10586
9343
|
var zeroWorkflowNameSchema = external_exports.string().min(2).max(64).regex(/^[a-z0-9][a-z0-9-]*[a-z0-9]$/);
|
|
10587
9344
|
var RESERVED_SKILL_FILE = "SKILL.md";
|
|
@@ -11226,7 +9983,7 @@ var zeroWorkflowConnectorReadinessResponseSchema = external_exports.object({
|
|
|
11226
9983
|
connectors: external_exports.array(zeroWorkflowConnectorReadinessEntrySchema)
|
|
11227
9984
|
}).strict();
|
|
11228
9985
|
var workflowIdParams = external_exports.object({ workflowId: external_exports.string().uuid() });
|
|
11229
|
-
var zeroWorkflowsCollectionContract =
|
|
9986
|
+
var zeroWorkflowsCollectionContract = c35.router({
|
|
11230
9987
|
list: {
|
|
11231
9988
|
method: "GET",
|
|
11232
9989
|
path: "/api/zero/workflows",
|
|
@@ -11255,7 +10012,7 @@ var zeroWorkflowsCollectionContract = c33.router({
|
|
|
11255
10012
|
summary: "Create a workflow under an agent"
|
|
11256
10013
|
}
|
|
11257
10014
|
});
|
|
11258
|
-
var zeroWorkflowsDetailContract =
|
|
10015
|
+
var zeroWorkflowsDetailContract = c35.router({
|
|
11259
10016
|
get: {
|
|
11260
10017
|
method: "GET",
|
|
11261
10018
|
path: "/api/zero/workflows/:workflowId",
|
|
@@ -11290,9 +10047,9 @@ var zeroWorkflowsDetailContract = c33.router({
|
|
|
11290
10047
|
path: "/api/zero/workflows/:workflowId",
|
|
11291
10048
|
headers: authHeadersSchema,
|
|
11292
10049
|
pathParams: workflowIdParams,
|
|
11293
|
-
body:
|
|
10050
|
+
body: c35.noBody(),
|
|
11294
10051
|
responses: {
|
|
11295
|
-
204:
|
|
10052
|
+
204: c35.noBody(),
|
|
11296
10053
|
401: apiErrorSchema,
|
|
11297
10054
|
403: apiErrorSchema,
|
|
11298
10055
|
404: apiErrorSchema
|
|
@@ -11320,7 +10077,7 @@ var zeroWorkflowsDetailContract = c33.router({
|
|
|
11320
10077
|
path: "/api/zero/workflows/:workflowId/chat-thread",
|
|
11321
10078
|
headers: authHeadersSchema,
|
|
11322
10079
|
pathParams: workflowIdParams,
|
|
11323
|
-
body:
|
|
10080
|
+
body: c35.noBody(),
|
|
11324
10081
|
responses: {
|
|
11325
10082
|
200: zeroWorkflowChatThreadResponseSchema,
|
|
11326
10083
|
401: apiErrorSchema,
|
|
@@ -11334,7 +10091,7 @@ var zeroWorkflowsDetailContract = c33.router({
|
|
|
11334
10091
|
path: "/api/zero/workflows/:workflowId/run",
|
|
11335
10092
|
headers: authHeadersSchema,
|
|
11336
10093
|
pathParams: workflowIdParams,
|
|
11337
|
-
body:
|
|
10094
|
+
body: c35.noBody(),
|
|
11338
10095
|
responses: {
|
|
11339
10096
|
200: zeroWorkflowRunResponseSchema,
|
|
11340
10097
|
401: apiErrorSchema,
|
|
@@ -11349,7 +10106,7 @@ var zeroWorkflowsDetailContract = c33.router({
|
|
|
11349
10106
|
path: "/api/zero/workflows/:workflowId/connector-readiness",
|
|
11350
10107
|
headers: authHeadersSchema,
|
|
11351
10108
|
pathParams: workflowIdParams,
|
|
11352
|
-
body:
|
|
10109
|
+
body: c35.noBody(),
|
|
11353
10110
|
responses: {
|
|
11354
10111
|
200: zeroWorkflowConnectorReadinessResponseSchema,
|
|
11355
10112
|
400: apiErrorSchema,
|
|
@@ -11362,13 +10119,13 @@ var zeroWorkflowsDetailContract = c33.router({
|
|
|
11362
10119
|
summary: "Detect the built-in connectors a workflow may need and report their readiness"
|
|
11363
10120
|
}
|
|
11364
10121
|
});
|
|
11365
|
-
var zeroWorkflowVisibilityContract =
|
|
10122
|
+
var zeroWorkflowVisibilityContract = c35.router({
|
|
11366
10123
|
publish: {
|
|
11367
10124
|
method: "POST",
|
|
11368
10125
|
path: "/api/zero/workflows/:workflowId/publish",
|
|
11369
10126
|
headers: authHeadersSchema,
|
|
11370
10127
|
pathParams: workflowIdParams,
|
|
11371
|
-
body:
|
|
10128
|
+
body: c35.noBody(),
|
|
11372
10129
|
responses: {
|
|
11373
10130
|
200: zeroWorkflowSummarySchema,
|
|
11374
10131
|
400: apiErrorSchema,
|
|
@@ -11384,7 +10141,7 @@ var zeroWorkflowVisibilityContract = c33.router({
|
|
|
11384
10141
|
path: "/api/zero/workflows/:workflowId/demote",
|
|
11385
10142
|
headers: authHeadersSchema,
|
|
11386
10143
|
pathParams: workflowIdParams,
|
|
11387
|
-
body:
|
|
10144
|
+
body: c35.noBody(),
|
|
11388
10145
|
responses: {
|
|
11389
10146
|
200: zeroWorkflowSummarySchema,
|
|
11390
10147
|
400: apiErrorSchema,
|
|
@@ -11402,7 +10159,7 @@ var zeroWorkflowWebhookSecretResponseSchema = external_exports.object({
|
|
|
11402
10159
|
webhookUrl: external_exports.url(),
|
|
11403
10160
|
webhookSecret: external_exports.string().min(1)
|
|
11404
10161
|
});
|
|
11405
|
-
var zeroWorkflowTriggersContract =
|
|
10162
|
+
var zeroWorkflowTriggersContract = c35.router({
|
|
11406
10163
|
listWorkspace: {
|
|
11407
10164
|
method: "GET",
|
|
11408
10165
|
path: "/api/zero/workflow-triggers",
|
|
@@ -11491,9 +10248,9 @@ var zeroWorkflowTriggersContract = c33.router({
|
|
|
11491
10248
|
path: "/api/zero/workflow-triggers/:id",
|
|
11492
10249
|
headers: authHeadersSchema,
|
|
11493
10250
|
pathParams: triggerIdParams,
|
|
11494
|
-
body:
|
|
10251
|
+
body: c35.noBody(),
|
|
11495
10252
|
responses: {
|
|
11496
|
-
204:
|
|
10253
|
+
204: c35.noBody(),
|
|
11497
10254
|
401: apiErrorSchema,
|
|
11498
10255
|
403: apiErrorSchema,
|
|
11499
10256
|
404: apiErrorSchema
|
|
@@ -11505,7 +10262,7 @@ var zeroWorkflowTriggersContract = c33.router({
|
|
|
11505
10262
|
path: "/api/zero/workflow-triggers/:id/enable",
|
|
11506
10263
|
headers: authHeadersSchema,
|
|
11507
10264
|
pathParams: triggerIdParams,
|
|
11508
|
-
body:
|
|
10265
|
+
body: c35.noBody(),
|
|
11509
10266
|
responses: {
|
|
11510
10267
|
200: zeroWorkflowTriggerSummarySchema,
|
|
11511
10268
|
400: apiErrorSchema,
|
|
@@ -11522,7 +10279,7 @@ var zeroWorkflowTriggersContract = c33.router({
|
|
|
11522
10279
|
path: "/api/zero/workflow-triggers/:id/disable",
|
|
11523
10280
|
headers: authHeadersSchema,
|
|
11524
10281
|
pathParams: triggerIdParams,
|
|
11525
|
-
body:
|
|
10282
|
+
body: c35.noBody(),
|
|
11526
10283
|
responses: {
|
|
11527
10284
|
200: zeroWorkflowTriggerSummarySchema,
|
|
11528
10285
|
401: apiErrorSchema,
|
|
@@ -11536,7 +10293,7 @@ var zeroWorkflowTriggersContract = c33.router({
|
|
|
11536
10293
|
path: "/api/zero/workflow-triggers/:id/run",
|
|
11537
10294
|
headers: authHeadersSchema,
|
|
11538
10295
|
pathParams: triggerIdParams,
|
|
11539
|
-
body:
|
|
10296
|
+
body: c35.noBody(),
|
|
11540
10297
|
responses: {
|
|
11541
10298
|
201: zeroWorkflowRunResponseSchema,
|
|
11542
10299
|
400: apiErrorSchema,
|
|
@@ -11552,7 +10309,7 @@ var zeroWorkflowTriggersContract = c33.router({
|
|
|
11552
10309
|
path: "/api/zero/workflow-triggers/:id/webhook-secret",
|
|
11553
10310
|
headers: authHeadersSchema,
|
|
11554
10311
|
pathParams: triggerIdParams,
|
|
11555
|
-
body:
|
|
10312
|
+
body: c35.noBody(),
|
|
11556
10313
|
responses: {
|
|
11557
10314
|
200: zeroWorkflowWebhookSecretResponseSchema,
|
|
11558
10315
|
401: apiErrorSchema,
|
|
@@ -11667,7 +10424,7 @@ import { pipeline } from "stream/promises";
|
|
|
11667
10424
|
|
|
11668
10425
|
// ../../packages/api-contracts/src/contracts/integrations.ts
|
|
11669
10426
|
init_esm_shims();
|
|
11670
|
-
var
|
|
10427
|
+
var c36 = initContract();
|
|
11671
10428
|
var sendSlackMessageBodySchema = external_exports.object({
|
|
11672
10429
|
channel: external_exports.string().min(1, "Channel ID is required").optional(),
|
|
11673
10430
|
user: external_exports.string().min(1, "User ID is required").optional(),
|
|
@@ -11685,7 +10442,7 @@ var sendSlackMessageResponseSchema = external_exports.object({
|
|
|
11685
10442
|
ts: external_exports.string().optional(),
|
|
11686
10443
|
channel: external_exports.string().optional()
|
|
11687
10444
|
});
|
|
11688
|
-
var integrationsSlackMessageContract =
|
|
10445
|
+
var integrationsSlackMessageContract = c36.router({
|
|
11689
10446
|
sendMessage: {
|
|
11690
10447
|
method: "POST",
|
|
11691
10448
|
path: "/api/zero/integrations/slack/message",
|
|
@@ -11713,7 +10470,7 @@ var sendTelegramMessageResponseSchema = external_exports.object({
|
|
|
11713
10470
|
messageId: external_exports.number().int(),
|
|
11714
10471
|
chatId: external_exports.string()
|
|
11715
10472
|
});
|
|
11716
|
-
var integrationsTelegramMessageContract =
|
|
10473
|
+
var integrationsTelegramMessageContract = c36.router({
|
|
11717
10474
|
sendMessage: {
|
|
11718
10475
|
method: "POST",
|
|
11719
10476
|
path: "/api/zero/integrations/telegram/message",
|
|
@@ -11772,7 +10529,7 @@ var sendTeamsMessageResponseSchema = external_exports.object({
|
|
|
11772
10529
|
activityId: external_exports.string().optional(),
|
|
11773
10530
|
conversationId: external_exports.string()
|
|
11774
10531
|
});
|
|
11775
|
-
var integrationsTeamsMessageContract =
|
|
10532
|
+
var integrationsTeamsMessageContract = c36.router({
|
|
11776
10533
|
sendMessage: {
|
|
11777
10534
|
method: "POST",
|
|
11778
10535
|
path: "/api/zero/integrations/teams/message",
|
|
@@ -11800,7 +10557,7 @@ var sendPhoneMessageResponseSchema = external_exports.object({
|
|
|
11800
10557
|
channel: external_exports.string().nullable(),
|
|
11801
10558
|
toNumber: external_exports.string()
|
|
11802
10559
|
});
|
|
11803
|
-
var integrationsPhoneMessageContract =
|
|
10560
|
+
var integrationsPhoneMessageContract = c36.router({
|
|
11804
10561
|
sendMessage: {
|
|
11805
10562
|
method: "POST",
|
|
11806
10563
|
path: "/api/zero/integrations/phone/message",
|
|
@@ -11820,14 +10577,14 @@ var integrationsPhoneMessageContract = c34.router({
|
|
|
11820
10577
|
var phoneDownloadFileQuerySchema = external_exports.object({
|
|
11821
10578
|
file_id: external_exports.string().min(1, "file_id query parameter is required")
|
|
11822
10579
|
});
|
|
11823
|
-
var integrationsPhoneDownloadFileContract =
|
|
10580
|
+
var integrationsPhoneDownloadFileContract = c36.router({
|
|
11824
10581
|
download: {
|
|
11825
10582
|
method: "GET",
|
|
11826
10583
|
path: "/api/zero/integrations/phone/download-file",
|
|
11827
10584
|
headers: authHeadersSchema,
|
|
11828
10585
|
query: phoneDownloadFileQuerySchema,
|
|
11829
10586
|
responses: {
|
|
11830
|
-
200:
|
|
10587
|
+
200: c36.type(),
|
|
11831
10588
|
400: apiErrorSchema,
|
|
11832
10589
|
401: apiErrorSchema,
|
|
11833
10590
|
403: apiErrorSchema,
|
|
@@ -11862,7 +10619,7 @@ var telegramBotListItemSchema = external_exports.object({
|
|
|
11862
10619
|
var listTelegramBotsResponseSchema = external_exports.object({
|
|
11863
10620
|
bots: external_exports.array(telegramBotListItemSchema)
|
|
11864
10621
|
});
|
|
11865
|
-
var integrationsTelegramBotListContract =
|
|
10622
|
+
var integrationsTelegramBotListContract = c36.router({
|
|
11866
10623
|
listBots: {
|
|
11867
10624
|
method: "GET",
|
|
11868
10625
|
path: "/api/zero/integrations/telegram/bots",
|
|
@@ -11883,7 +10640,7 @@ var slackUploadInitResponseSchema = external_exports.object({
|
|
|
11883
10640
|
uploadUrl: external_exports.string(),
|
|
11884
10641
|
fileId: external_exports.string()
|
|
11885
10642
|
});
|
|
11886
|
-
var integrationsSlackUploadInitContract =
|
|
10643
|
+
var integrationsSlackUploadInitContract = c36.router({
|
|
11887
10644
|
init: {
|
|
11888
10645
|
method: "POST",
|
|
11889
10646
|
path: "/api/zero/integrations/slack/upload-file/init",
|
|
@@ -11912,7 +10669,7 @@ var telegramUploadInitResponseSchema = external_exports.object({
|
|
|
11912
10669
|
contentType: external_exports.string(),
|
|
11913
10670
|
size: external_exports.number().int().nonnegative()
|
|
11914
10671
|
});
|
|
11915
|
-
var integrationsTelegramUploadInitContract =
|
|
10672
|
+
var integrationsTelegramUploadInitContract = c36.router({
|
|
11916
10673
|
init: {
|
|
11917
10674
|
method: "POST",
|
|
11918
10675
|
path: "/api/zero/integrations/telegram/upload-file/init",
|
|
@@ -11940,7 +10697,7 @@ var teamsUploadInitResponseSchema = external_exports.object({
|
|
|
11940
10697
|
contentType: external_exports.string(),
|
|
11941
10698
|
size: external_exports.number().int().nonnegative()
|
|
11942
10699
|
});
|
|
11943
|
-
var integrationsTeamsUploadInitContract =
|
|
10700
|
+
var integrationsTeamsUploadInitContract = c36.router({
|
|
11944
10701
|
init: {
|
|
11945
10702
|
method: "POST",
|
|
11946
10703
|
path: "/api/zero/integrations/teams/upload-file/init",
|
|
@@ -11972,7 +10729,7 @@ var telegramUploadCompleteResponseSchema = external_exports.object({
|
|
|
11972
10729
|
size: external_exports.number().int().nonnegative(),
|
|
11973
10730
|
url: external_exports.string()
|
|
11974
10731
|
});
|
|
11975
|
-
var integrationsTelegramUploadCompleteContract =
|
|
10732
|
+
var integrationsTelegramUploadCompleteContract = c36.router({
|
|
11976
10733
|
complete: {
|
|
11977
10734
|
method: "POST",
|
|
11978
10735
|
path: "/api/zero/integrations/telegram/upload-file/complete",
|
|
@@ -12004,7 +10761,7 @@ var teamsUploadCompleteResponseSchema = external_exports.object({
|
|
|
12004
10761
|
size: external_exports.number().int().nonnegative(),
|
|
12005
10762
|
url: external_exports.string()
|
|
12006
10763
|
});
|
|
12007
|
-
var integrationsTeamsUploadCompleteContract =
|
|
10764
|
+
var integrationsTeamsUploadCompleteContract = c36.router({
|
|
12008
10765
|
complete: {
|
|
12009
10766
|
method: "POST",
|
|
12010
10767
|
path: "/api/zero/integrations/teams/upload-file/complete",
|
|
@@ -12034,7 +10791,7 @@ var githubUploadInitResponseSchema = external_exports.object({
|
|
|
12034
10791
|
contentType: external_exports.string(),
|
|
12035
10792
|
size: external_exports.number().int().nonnegative()
|
|
12036
10793
|
});
|
|
12037
|
-
var integrationsGithubUploadInitContract =
|
|
10794
|
+
var integrationsGithubUploadInitContract = c36.router({
|
|
12038
10795
|
init: {
|
|
12039
10796
|
method: "POST",
|
|
12040
10797
|
path: "/api/zero/integrations/github/upload-file/init",
|
|
@@ -12068,7 +10825,7 @@ var githubUploadCompleteResponseSchema = external_exports.object({
|
|
|
12068
10825
|
size: external_exports.number().int().nonnegative(),
|
|
12069
10826
|
url: external_exports.string()
|
|
12070
10827
|
});
|
|
12071
|
-
var integrationsGithubUploadCompleteContract =
|
|
10828
|
+
var integrationsGithubUploadCompleteContract = c36.router({
|
|
12072
10829
|
complete: {
|
|
12073
10830
|
method: "POST",
|
|
12074
10831
|
path: "/api/zero/integrations/github/upload-file/complete",
|
|
@@ -12099,7 +10856,7 @@ var phoneUploadInitResponseSchema = external_exports.object({
|
|
|
12099
10856
|
contentType: external_exports.string(),
|
|
12100
10857
|
size: external_exports.number().int().nonnegative()
|
|
12101
10858
|
});
|
|
12102
|
-
var integrationsPhoneUploadInitContract =
|
|
10859
|
+
var integrationsPhoneUploadInitContract = c36.router({
|
|
12103
10860
|
init: {
|
|
12104
10861
|
method: "POST",
|
|
12105
10862
|
path: "/api/zero/integrations/phone/upload-file/init",
|
|
@@ -12130,7 +10887,7 @@ var phoneUploadCompleteResponseSchema = external_exports.object({
|
|
|
12130
10887
|
size: external_exports.number().int().nonnegative(),
|
|
12131
10888
|
url: external_exports.string()
|
|
12132
10889
|
});
|
|
12133
|
-
var integrationsPhoneUploadCompleteContract =
|
|
10890
|
+
var integrationsPhoneUploadCompleteContract = c36.router({
|
|
12134
10891
|
complete: {
|
|
12135
10892
|
method: "POST",
|
|
12136
10893
|
path: "/api/zero/integrations/phone/upload-file/complete",
|
|
@@ -12158,7 +10915,7 @@ var slackUploadCompleteResponseSchema = external_exports.object({
|
|
|
12158
10915
|
fileId: external_exports.string(),
|
|
12159
10916
|
permalink: external_exports.string()
|
|
12160
10917
|
});
|
|
12161
|
-
var integrationsSlackUploadCompleteContract =
|
|
10918
|
+
var integrationsSlackUploadCompleteContract = c36.router({
|
|
12162
10919
|
complete: {
|
|
12163
10920
|
method: "POST",
|
|
12164
10921
|
path: "/api/zero/integrations/slack/upload-file/complete",
|
|
@@ -12605,7 +11362,7 @@ init_esm_shims();
|
|
|
12605
11362
|
|
|
12606
11363
|
// ../../packages/api-contracts/src/contracts/zero-relationships.ts
|
|
12607
11364
|
init_esm_shims();
|
|
12608
|
-
var
|
|
11365
|
+
var c37 = initContract();
|
|
12609
11366
|
var RELATIONSHIP_SEARCH_DEFAULT_LIMIT = 100;
|
|
12610
11367
|
var RELATIONSHIP_SEARCH_MAX_LIMIT = 100;
|
|
12611
11368
|
var relationshipEntityTypeSchema = external_exports.enum(["person", "organization"]);
|
|
@@ -12720,7 +11477,7 @@ var resolveQuerySchema = external_exports.object({
|
|
|
12720
11477
|
message: "Provide exactly one of id, email, or domain"
|
|
12721
11478
|
}
|
|
12722
11479
|
);
|
|
12723
|
-
var zeroRelationshipsContract =
|
|
11480
|
+
var zeroRelationshipsContract = c37.router({
|
|
12724
11481
|
gmailStatus: {
|
|
12725
11482
|
method: "GET",
|
|
12726
11483
|
path: "/api/zero/relationships/gmail/status",
|
|
@@ -12847,7 +11604,7 @@ init_esm_shims();
|
|
|
12847
11604
|
|
|
12848
11605
|
// ../../packages/api-contracts/src/contracts/zero-memory.ts
|
|
12849
11606
|
init_esm_shims();
|
|
12850
|
-
var
|
|
11607
|
+
var c38 = initContract();
|
|
12851
11608
|
var memoryFileSchema = external_exports.object({
|
|
12852
11609
|
path: external_exports.string(),
|
|
12853
11610
|
size: external_exports.number()
|
|
@@ -13395,7 +12152,7 @@ var memoryDetailResponseSchema = external_exports.object({
|
|
|
13395
12152
|
files: external_exports.array(memoryFileSchema),
|
|
13396
12153
|
fileContents: external_exports.array(memoryFileContentSchema)
|
|
13397
12154
|
});
|
|
13398
|
-
var zeroMemoryContract =
|
|
12155
|
+
var zeroMemoryContract = c38.router({
|
|
13399
12156
|
get: {
|
|
13400
12157
|
method: "GET",
|
|
13401
12158
|
path: "/api/zero/memory",
|
|
@@ -14185,17 +12942,9 @@ async function getHostedSiteFiles(publicSlug) {
|
|
|
14185
12942
|
export {
|
|
14186
12943
|
connectorCatalogRefSchema,
|
|
14187
12944
|
guaranteedConnectorProvidedBindingNames,
|
|
14188
|
-
hasRawWhitespace,
|
|
14189
|
-
hasUnsafeUrlCodepoint,
|
|
14190
|
-
parseSegment,
|
|
14191
|
-
splitPathSegments,
|
|
14192
12945
|
UNKNOWN_PERMISSION_GRANT,
|
|
14193
12946
|
firewallPoliciesSchema,
|
|
14194
12947
|
hasUnsafeFirewallPath,
|
|
14195
|
-
resolveFirewallBaseUrlTemplate,
|
|
14196
|
-
hasBaseUrlParams,
|
|
14197
|
-
validateBaseUrl,
|
|
14198
|
-
validateAuthBaseUrl,
|
|
14199
12948
|
authHeadersSchema,
|
|
14200
12949
|
runnerGroupSchema,
|
|
14201
12950
|
volumeConfigSchema,
|
|
@@ -14283,10 +13032,11 @@ export {
|
|
|
14283
13032
|
clearGoal,
|
|
14284
13033
|
customConnectorProposalSchema,
|
|
14285
13034
|
listZeroConnectors,
|
|
14286
|
-
searchZeroConnectors,
|
|
14287
13035
|
listZeroConnectorCatalog,
|
|
14288
13036
|
listZeroConnectorCatalogStatus,
|
|
14289
13037
|
getZeroConnectorCatalogPermissions,
|
|
13038
|
+
diagnoseZeroConnectorCheck,
|
|
13039
|
+
diagnoseZeroConnectorPermissionDeny,
|
|
14290
13040
|
getZeroConnector,
|
|
14291
13041
|
connectZeroConnectorManualGrant,
|
|
14292
13042
|
listZeroCustomConnectors,
|
|
@@ -14312,7 +13062,6 @@ export {
|
|
|
14312
13062
|
completePhoneFileUpload,
|
|
14313
13063
|
downloadPhoneFile,
|
|
14314
13064
|
getZeroRunAgentEvents,
|
|
14315
|
-
getZeroRunContext,
|
|
14316
13065
|
listZeroLogs,
|
|
14317
13066
|
searchZeroLogs,
|
|
14318
13067
|
searchZeroChat,
|
|
@@ -14356,4 +13105,4 @@ export {
|
|
|
14356
13105
|
completeHostedSite,
|
|
14357
13106
|
getHostedSiteFiles
|
|
14358
13107
|
};
|
|
14359
|
-
//# sourceMappingURL=chunk-
|
|
13108
|
+
//# sourceMappingURL=chunk-6NTG5UZE.js.map
|