@leonardo-ai/sdk 4.6.0 → 4.14.1
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/README.md +132 -44
- package/docs/sdks/dataset/README.md +16 -21
- package/docs/sdks/{element → elements}/README.md +5 -4
- package/docs/sdks/{model → image}/README.md +32 -121
- package/docs/sdks/initimages/README.md +182 -0
- package/docs/sdks/models/README.md +180 -0
- package/docs/sdks/motion/README.md +50 -0
- package/docs/sdks/pricingcalculator/README.md +48 -0
- package/docs/sdks/prompt/README.md +4 -2
- package/docs/sdks/realtimecanvas/README.md +190 -0
- package/docs/sdks/texture/README.md +92 -0
- package/docs/sdks/{initimage → threedmodelassets}/README.md +17 -62
- package/docs/sdks/user/README.md +2 -1
- package/docs/sdks/variation/README.md +52 -7
- package/hooks/hooks.d.ts +5 -1
- package/hooks/hooks.d.ts.map +1 -1
- package/hooks/hooks.js +11 -0
- package/hooks/hooks.js.map +1 -1
- package/hooks/index.d.ts +2 -2
- package/hooks/index.d.ts.map +1 -1
- package/hooks/index.js +2 -2
- package/hooks/index.js.map +1 -1
- package/hooks/types.d.ts +29 -16
- package/hooks/types.d.ts.map +1 -1
- package/index.d.ts +2 -2
- package/index.d.ts.map +1 -1
- package/index.js +2 -2
- package/index.js.map +1 -1
- package/lib/config.d.ts +6 -5
- package/lib/config.d.ts.map +1 -1
- package/lib/config.js +5 -5
- package/lib/config.js.map +1 -1
- package/lib/encodings.d.ts +16 -1
- package/lib/encodings.d.ts.map +1 -1
- package/lib/encodings.js +55 -23
- package/lib/encodings.js.map +1 -1
- package/lib/http.d.ts +66 -3
- package/lib/http.d.ts.map +1 -1
- package/lib/http.js +216 -17
- package/lib/http.js.map +1 -1
- package/lib/is-plain-object.d.ts +2 -0
- package/lib/is-plain-object.d.ts.map +1 -0
- package/lib/is-plain-object.js +42 -0
- package/lib/is-plain-object.js.map +1 -0
- package/lib/primitives.d.ts +16 -0
- package/lib/primitives.d.ts.map +1 -0
- package/lib/primitives.js +30 -0
- package/lib/primitives.js.map +1 -0
- package/lib/schemas.d.ts +4 -0
- package/lib/schemas.d.ts.map +1 -1
- package/lib/schemas.js +22 -26
- package/lib/schemas.js.map +1 -1
- package/lib/sdks.d.ts +31 -9
- package/lib/sdks.d.ts.map +1 -1
- package/lib/sdks.js +66 -32
- package/lib/sdks.js.map +1 -1
- package/lib/security.d.ts +2 -2
- package/lib/security.d.ts.map +1 -1
- package/package.json +8 -9
- package/sdk/dataset.d.ts +4 -4
- package/sdk/dataset.d.ts.map +1 -1
- package/sdk/dataset.js +111 -129
- package/sdk/dataset.js.map +1 -1
- package/sdk/{element.d.ts → elements.d.ts} +5 -5
- package/sdk/elements.d.ts.map +1 -0
- package/sdk/{element.js → elements.js} +29 -35
- package/sdk/elements.js.map +1 -0
- package/sdk/image.d.ts +36 -0
- package/sdk/image.d.ts.map +1 -0
- package/sdk/image.js +316 -0
- package/sdk/image.js.map +1 -0
- package/sdk/index.d.ts +1 -1
- package/sdk/index.d.ts.map +1 -1
- package/sdk/index.js +1 -1
- package/sdk/index.js.map +1 -1
- package/sdk/initimages.d.ts +36 -0
- package/sdk/initimages.d.ts.map +1 -0
- package/sdk/initimages.js +304 -0
- package/sdk/initimages.js.map +1 -0
- package/sdk/models/errors/index.d.ts +2 -2
- package/sdk/models/errors/index.d.ts.map +1 -1
- package/sdk/models/errors/index.js +2 -2
- package/sdk/models/errors/index.js.map +1 -1
- package/sdk/models/errors/sdkerror.d.ts +1 -0
- package/sdk/models/errors/sdkerror.d.ts.map +1 -1
- package/sdk/models/errors/sdkerror.js +3 -1
- package/sdk/models/errors/sdkerror.js.map +1 -1
- package/sdk/models/operations/createdataset.d.ts +72 -40
- package/sdk/models/operations/createdataset.d.ts.map +1 -1
- package/sdk/models/operations/createdataset.js +100 -95
- package/sdk/models/operations/createdataset.js.map +1 -1
- package/sdk/models/operations/creategeneration.d.ts +166 -122
- package/sdk/models/operations/creategeneration.d.ts.map +1 -1
- package/sdk/models/operations/creategeneration.js +219 -279
- package/sdk/models/operations/creategeneration.js.map +1 -1
- package/sdk/models/operations/createlcmgeneration.d.ts +83 -61
- package/sdk/models/operations/createlcmgeneration.d.ts.map +1 -1
- package/sdk/models/operations/createlcmgeneration.js +109 -148
- package/sdk/models/operations/createlcmgeneration.js.map +1 -1
- package/sdk/models/operations/createmodel.d.ts +81 -57
- package/sdk/models/operations/createmodel.d.ts.map +1 -1
- package/sdk/models/operations/createmodel.js +119 -124
- package/sdk/models/operations/createmodel.js.map +1 -1
- package/sdk/models/operations/createsvdmotiongeneration.d.ts +76 -48
- package/sdk/models/operations/createsvdmotiongeneration.d.ts.map +1 -1
- package/sdk/models/operations/createsvdmotiongeneration.js +96 -115
- package/sdk/models/operations/createsvdmotiongeneration.js.map +1 -1
- package/sdk/models/operations/createtexturegeneration.d.ts +79 -54
- package/sdk/models/operations/createtexturegeneration.d.ts.map +1 -1
- package/sdk/models/operations/createtexturegeneration.js +124 -135
- package/sdk/models/operations/createtexturegeneration.js.map +1 -1
- package/sdk/models/operations/createuniversalupscalerjob.d.ts +157 -0
- package/sdk/models/operations/createuniversalupscalerjob.d.ts.map +1 -0
- package/sdk/models/operations/createuniversalupscalerjob.js +147 -0
- package/sdk/models/operations/createuniversalupscalerjob.js.map +1 -0
- package/sdk/models/operations/createvariationnobg.d.ts +73 -42
- package/sdk/models/operations/createvariationnobg.d.ts.map +1 -1
- package/sdk/models/operations/createvariationnobg.js +90 -95
- package/sdk/models/operations/createvariationnobg.js.map +1 -1
- package/sdk/models/operations/createvariationunzoom.d.ts +73 -42
- package/sdk/models/operations/createvariationunzoom.d.ts.map +1 -1
- package/sdk/models/operations/createvariationunzoom.js +90 -95
- package/sdk/models/operations/createvariationunzoom.js.map +1 -1
- package/sdk/models/operations/createvariationupscale.d.ts +72 -40
- package/sdk/models/operations/createvariationupscale.d.ts.map +1 -1
- package/sdk/models/operations/createvariationupscale.js +92 -95
- package/sdk/models/operations/createvariationupscale.js.map +1 -1
- package/sdk/models/operations/delete3dmodelbyid.d.ts +93 -52
- package/sdk/models/operations/delete3dmodelbyid.d.ts.map +1 -1
- package/sdk/models/operations/delete3dmodelbyid.js +127 -117
- package/sdk/models/operations/delete3dmodelbyid.js.map +1 -1
- package/sdk/models/operations/deletedatasetbyid.d.ts +71 -38
- package/sdk/models/operations/deletedatasetbyid.d.ts.map +1 -1
- package/sdk/models/operations/deletedatasetbyid.js +102 -95
- package/sdk/models/operations/deletedatasetbyid.js.map +1 -1
- package/sdk/models/operations/deletegenerationbyid.d.ts +71 -38
- package/sdk/models/operations/deletegenerationbyid.d.ts.map +1 -1
- package/sdk/models/operations/deletegenerationbyid.js +98 -93
- package/sdk/models/operations/deletegenerationbyid.js.map +1 -1
- package/sdk/models/operations/deleteinitimagebyid.d.ts +71 -38
- package/sdk/models/operations/deleteinitimagebyid.d.ts.map +1 -1
- package/sdk/models/operations/deleteinitimagebyid.js +98 -93
- package/sdk/models/operations/deleteinitimagebyid.js.map +1 -1
- package/sdk/models/operations/deletemodelbyid.d.ts +71 -38
- package/sdk/models/operations/deletemodelbyid.d.ts.map +1 -1
- package/sdk/models/operations/deletemodelbyid.js +98 -95
- package/sdk/models/operations/deletemodelbyid.js.map +1 -1
- package/sdk/models/operations/deletetexturegenerationbyid.d.ts +93 -52
- package/sdk/models/operations/deletetexturegenerationbyid.d.ts.map +1 -1
- package/sdk/models/operations/deletetexturegenerationbyid.js +131 -127
- package/sdk/models/operations/deletetexturegenerationbyid.js.map +1 -1
- package/sdk/models/operations/getdatasetbyid.d.ts +95 -60
- package/sdk/models/operations/getdatasetbyid.d.ts.map +1 -1
- package/sdk/models/operations/getdatasetbyid.js +139 -137
- package/sdk/models/operations/getdatasetbyid.js.map +1 -1
- package/sdk/models/operations/getgenerationbyid.d.ts +184 -159
- package/sdk/models/operations/getgenerationbyid.d.ts.map +1 -1
- package/sdk/models/operations/getgenerationbyid.js +283 -376
- package/sdk/models/operations/getgenerationbyid.js.map +1 -1
- package/sdk/models/operations/getgenerationsbyuserid.d.ts +186 -162
- package/sdk/models/operations/getgenerationsbyuserid.d.ts.map +1 -1
- package/sdk/models/operations/getgenerationsbyuserid.js +277 -380
- package/sdk/models/operations/getgenerationsbyuserid.js.map +1 -1
- package/sdk/models/operations/getinitimagebyid.d.ts +73 -42
- package/sdk/models/operations/getinitimagebyid.d.ts.map +1 -1
- package/sdk/models/operations/getinitimagebyid.js +106 -103
- package/sdk/models/operations/getinitimagebyid.js.map +1 -1
- package/sdk/models/operations/getmodelbyid.d.ts +83 -61
- package/sdk/models/operations/getmodelbyid.d.ts.map +1 -1
- package/sdk/models/operations/getmodelbyid.js +125 -140
- package/sdk/models/operations/getmodelbyid.js.map +1 -1
- package/sdk/models/operations/getuserself.d.ts +81 -58
- package/sdk/models/operations/getuserself.d.ts.map +1 -1
- package/sdk/models/operations/getuserself.js +118 -155
- package/sdk/models/operations/getuserself.js.map +1 -1
- package/sdk/models/operations/getvariationbyid.d.ts +76 -47
- package/sdk/models/operations/getvariationbyid.d.ts.map +1 -1
- package/sdk/models/operations/getvariationbyid.js +111 -112
- package/sdk/models/operations/getvariationbyid.js.map +1 -1
- package/sdk/models/operations/index.d.ts +36 -33
- package/sdk/models/operations/index.d.ts.map +1 -1
- package/sdk/models/operations/index.js +36 -33
- package/sdk/models/operations/index.js.map +1 -1
- package/sdk/models/operations/listelements.d.ts +63 -47
- package/sdk/models/operations/listelements.d.ts.map +1 -1
- package/sdk/models/operations/listelements.js +88 -102
- package/sdk/models/operations/listelements.js.map +1 -1
- package/sdk/models/operations/listplatformmodels.d.ts +77 -50
- package/sdk/models/operations/listplatformmodels.d.ts.map +1 -1
- package/sdk/models/operations/listplatformmodels.js +130 -121
- package/sdk/models/operations/listplatformmodels.js.map +1 -1
- package/sdk/models/operations/performalchemyupscalelcm.d.ts +88 -71
- package/sdk/models/operations/performalchemyupscalelcm.d.ts.map +1 -1
- package/sdk/models/operations/performalchemyupscalelcm.js +123 -174
- package/sdk/models/operations/performalchemyupscalelcm.js.map +1 -1
- package/sdk/models/operations/performinpaintinglcm.d.ts +84 -63
- package/sdk/models/operations/performinpaintinglcm.d.ts.map +1 -1
- package/sdk/models/operations/performinpaintinglcm.js +115 -152
- package/sdk/models/operations/performinpaintinglcm.js.map +1 -1
- package/sdk/models/operations/performinstantrefine.d.ts +83 -61
- package/sdk/models/operations/performinstantrefine.d.ts.map +1 -1
- package/sdk/models/operations/performinstantrefine.js +113 -148
- package/sdk/models/operations/performinstantrefine.js.map +1 -1
- package/sdk/models/operations/pricingcalculator.d.ts +476 -0
- package/sdk/models/operations/pricingcalculator.d.ts.map +1 -0
- package/sdk/models/operations/pricingcalculator.js +391 -0
- package/sdk/models/operations/pricingcalculator.js.map +1 -0
- package/sdk/models/operations/promptimprove.d.ts +72 -40
- package/sdk/models/operations/promptimprove.d.ts.map +1 -1
- package/sdk/models/operations/promptimprove.js +88 -95
- package/sdk/models/operations/promptimprove.js.map +1 -1
- package/sdk/models/operations/promptrandom.d.ts +55 -32
- package/sdk/models/operations/promptrandom.d.ts.map +1 -1
- package/sdk/models/operations/promptrandom.js +73 -81
- package/sdk/models/operations/promptrandom.js.map +1 -1
- package/sdk/models/operations/uploadcanvasinitimage.d.ts +140 -0
- package/sdk/models/operations/uploadcanvasinitimage.d.ts.map +1 -0
- package/sdk/models/operations/uploadcanvasinitimage.js +152 -0
- package/sdk/models/operations/uploadcanvasinitimage.js.map +1 -0
- package/sdk/models/operations/uploaddatasetimage.d.ts +92 -54
- package/sdk/models/operations/uploaddatasetimage.d.ts.map +1 -1
- package/sdk/models/operations/uploaddatasetimage.js +121 -129
- package/sdk/models/operations/uploaddatasetimage.js.map +1 -1
- package/sdk/models/operations/uploaddatasetimagefromgen.d.ts +89 -48
- package/sdk/models/operations/uploaddatasetimagefromgen.d.ts.map +1 -1
- package/sdk/models/operations/uploaddatasetimagefromgen.js +119 -117
- package/sdk/models/operations/uploaddatasetimagefromgen.js.map +1 -1
- package/sdk/models/operations/uploadinitimage.d.ts +74 -44
- package/sdk/models/operations/uploadinitimage.d.ts.map +1 -1
- package/sdk/models/operations/uploadinitimage.js +92 -107
- package/sdk/models/operations/uploadinitimage.js.map +1 -1
- package/sdk/models/operations/uploadmodelasset.d.ts +75 -46
- package/sdk/models/operations/uploadmodelasset.d.ts.map +1 -1
- package/sdk/models/operations/uploadmodelasset.js +94 -111
- package/sdk/models/operations/uploadmodelasset.js.map +1 -1
- package/sdk/models/shared/canvasrequesttype.d.ts +25 -0
- package/sdk/models/shared/canvasrequesttype.d.ts.map +1 -0
- package/sdk/models/shared/canvasrequesttype.js +56 -0
- package/sdk/models/shared/canvasrequesttype.js.map +1 -0
- package/sdk/models/shared/controlnetinput.d.ts +93 -0
- package/sdk/models/shared/controlnetinput.d.ts.map +1 -0
- package/sdk/models/shared/controlnetinput.js +107 -0
- package/sdk/models/shared/controlnetinput.js.map +1 -0
- package/sdk/models/shared/controlnettype.d.ts +16 -2
- package/sdk/models/shared/controlnettype.d.ts.map +1 -1
- package/sdk/models/shared/controlnettype.js +18 -3
- package/sdk/models/shared/controlnettype.js.map +1 -1
- package/sdk/models/shared/custommodeltype.d.ts +13 -1
- package/sdk/models/shared/custommodeltype.d.ts.map +1 -1
- package/sdk/models/shared/custommodeltype.js +15 -2
- package/sdk/models/shared/custommodeltype.js.map +1 -1
- package/sdk/models/shared/elementinput.d.ts +18 -10
- package/sdk/models/shared/elementinput.d.ts.map +1 -1
- package/sdk/models/shared/elementinput.js +18 -23
- package/sdk/models/shared/elementinput.js.map +1 -1
- package/sdk/models/shared/index.d.ts +15 -11
- package/sdk/models/shared/index.d.ts.map +1 -1
- package/sdk/models/shared/index.js +15 -11
- package/sdk/models/shared/index.js.map +1 -1
- package/sdk/models/shared/jobstatus.d.ts +13 -1
- package/sdk/models/shared/jobstatus.d.ts.map +1 -1
- package/sdk/models/shared/jobstatus.js +15 -2
- package/sdk/models/shared/jobstatus.js.map +1 -1
- package/sdk/models/shared/lcmgenerationstyle.d.ts +13 -1
- package/sdk/models/shared/lcmgenerationstyle.d.ts.map +1 -1
- package/sdk/models/shared/lcmgenerationstyle.js +15 -2
- package/sdk/models/shared/lcmgenerationstyle.js.map +1 -1
- package/sdk/models/shared/pricingcalculatorservices.d.ts +28 -0
- package/sdk/models/shared/pricingcalculatorservices.d.ts.map +1 -0
- package/sdk/models/shared/pricingcalculatorservices.js +59 -0
- package/sdk/models/shared/pricingcalculatorservices.js.map +1 -0
- package/sdk/models/shared/sdgenerationschedulers.d.ts +13 -1
- package/sdk/models/shared/sdgenerationschedulers.d.ts.map +1 -1
- package/sdk/models/shared/sdgenerationschedulers.js +15 -2
- package/sdk/models/shared/sdgenerationschedulers.js.map +1 -1
- package/sdk/models/shared/sdgenerationstyle.d.ts +13 -1
- package/sdk/models/shared/sdgenerationstyle.d.ts.map +1 -1
- package/sdk/models/shared/sdgenerationstyle.js +15 -2
- package/sdk/models/shared/sdgenerationstyle.js.map +1 -1
- package/sdk/models/shared/sdversions.d.ts +13 -1
- package/sdk/models/shared/sdversions.d.ts.map +1 -1
- package/sdk/models/shared/sdversions.js +15 -2
- package/sdk/models/shared/sdversions.js.map +1 -1
- package/sdk/models/shared/security.d.ts +17 -8
- package/sdk/models/shared/security.d.ts.map +1 -1
- package/sdk/models/shared/security.js +16 -19
- package/sdk/models/shared/security.js.map +1 -1
- package/sdk/models/shared/strength.d.ts +13 -1
- package/sdk/models/shared/strength.d.ts.map +1 -1
- package/sdk/models/shared/strength.js +15 -2
- package/sdk/models/shared/strength.js.map +1 -1
- package/sdk/models/shared/universalupscalerstyle.d.ts +25 -0
- package/sdk/models/shared/universalupscalerstyle.d.ts.map +1 -0
- package/sdk/models/shared/universalupscalerstyle.js +56 -0
- package/sdk/models/shared/universalupscalerstyle.js.map +1 -0
- package/sdk/models/shared/variationtype.d.ts +13 -1
- package/sdk/models/shared/variationtype.d.ts.map +1 -1
- package/sdk/models/shared/variationtype.js +15 -2
- package/sdk/models/shared/variationtype.js.map +1 -1
- package/sdk/models.d.ts +36 -0
- package/sdk/models.d.ts.map +1 -0
- package/sdk/models.js +299 -0
- package/sdk/models.js.map +1 -0
- package/sdk/motion.d.ts +15 -0
- package/sdk/motion.d.ts.map +1 -0
- package/sdk/motion.js +121 -0
- package/sdk/motion.js.map +1 -0
- package/sdk/pricingcalculator.d.ts +15 -0
- package/sdk/pricingcalculator.d.ts.map +1 -0
- package/sdk/pricingcalculator.js +119 -0
- package/sdk/pricingcalculator.js.map +1 -0
- package/sdk/prompt.d.ts +4 -4
- package/sdk/prompt.d.ts.map +1 -1
- package/sdk/prompt.js +49 -57
- package/sdk/prompt.js.map +1 -1
- package/sdk/realtimecanvas.d.ts +36 -0
- package/sdk/realtimecanvas.d.ts.map +1 -0
- package/sdk/realtimecanvas.js +296 -0
- package/sdk/realtimecanvas.js.map +1 -0
- package/sdk/sdk.d.ts +33 -18
- package/sdk/sdk.d.ts.map +1 -1
- package/sdk/sdk.js +54 -29
- package/sdk/sdk.js.map +1 -1
- package/sdk/texture.d.ts +22 -0
- package/sdk/texture.d.ts.map +1 -0
- package/sdk/texture.js +186 -0
- package/sdk/texture.js.map +1 -0
- package/sdk/threedmodelassets.d.ts +22 -0
- package/sdk/threedmodelassets.d.ts.map +1 -0
- package/sdk/threedmodelassets.js +184 -0
- package/sdk/threedmodelassets.js.map +1 -0
- package/sdk/types/enums.d.ts +12 -0
- package/sdk/types/enums.d.ts.map +1 -0
- package/sdk/types/enums.js +11 -0
- package/sdk/types/enums.js.map +1 -0
- package/sdk/types/index.d.ts +6 -4
- package/sdk/types/index.d.ts.map +1 -1
- package/sdk/types/index.js +10 -8
- package/sdk/types/index.js.map +1 -1
- package/sdk/user.d.ts +3 -3
- package/sdk/user.d.ts.map +1 -1
- package/sdk/user.js +26 -32
- package/sdk/user.js.map +1 -1
- package/sdk/variation.d.ts +13 -6
- package/sdk/variation.d.ts.map +1 -1
- package/sdk/variation.js +154 -111
- package/sdk/variation.js.map +1 -1
- package/src/hooks/hooks.ts +19 -1
- package/src/hooks/index.ts +2 -2
- package/src/hooks/types.ts +31 -16
- package/src/index.ts +2 -2
- package/src/lib/config.ts +7 -6
- package/src/lib/encodings.ts +72 -13
- package/src/lib/http.ts +450 -159
- package/src/lib/is-plain-object.ts +43 -0
- package/src/lib/primitives.ts +40 -0
- package/src/lib/schemas.ts +37 -3
- package/src/lib/sdks.ts +102 -31
- package/src/lib/security.ts +2 -2
- package/src/sdk/dataset.ts +122 -140
- package/src/sdk/{element.ts → elements.ts} +25 -32
- package/src/sdk/image.ts +377 -0
- package/src/sdk/index.ts +1 -1
- package/src/sdk/initimages.ts +359 -0
- package/src/sdk/models/errors/index.ts +2 -2
- package/src/sdk/models/errors/sdkerror.ts +4 -1
- package/src/sdk/models/operations/createdataset.ts +160 -134
- package/src/sdk/models/operations/creategeneration.ts +365 -391
- package/src/sdk/models/operations/createlcmgeneration.ts +181 -208
- package/src/sdk/models/operations/createmodel.ts +185 -173
- package/src/sdk/models/operations/createsvdmotiongeneration.ts +162 -181
- package/src/sdk/models/operations/createtexturegeneration.ts +193 -204
- package/src/sdk/models/operations/createuniversalupscalerjob.ts +271 -0
- package/src/sdk/models/operations/createvariationnobg.ts +160 -144
- package/src/sdk/models/operations/createvariationunzoom.ts +157 -152
- package/src/sdk/models/operations/createvariationupscale.ts +161 -161
- package/src/sdk/models/operations/delete3dmodelbyid.ts +209 -168
- package/src/sdk/models/operations/deletedatasetbyid.ts +168 -133
- package/src/sdk/models/operations/deletegenerationbyid.ts +161 -136
- package/src/sdk/models/operations/deleteinitimagebyid.ts +158 -136
- package/src/sdk/models/operations/deletemodelbyid.ts +160 -132
- package/src/sdk/models/operations/deletetexturegenerationbyid.ts +213 -210
- package/src/sdk/models/operations/getdatasetbyid.ts +217 -188
- package/src/sdk/models/operations/getgenerationbyid.ts +459 -548
- package/src/sdk/models/operations/getgenerationsbyuserid.ts +457 -596
- package/src/sdk/models/operations/getinitimagebyid.ts +174 -144
- package/src/sdk/models/operations/getmodelbyid.ts +196 -193
- package/src/sdk/models/operations/getuserself.ts +176 -206
- package/src/sdk/models/operations/getvariationbyid.ts +181 -162
- package/src/sdk/models/operations/index.ts +36 -33
- package/src/sdk/models/operations/listelements.ts +139 -148
- package/src/sdk/models/operations/listplatformmodels.ts +200 -178
- package/src/sdk/models/operations/performalchemyupscalelcm.ts +201 -268
- package/src/sdk/models/operations/performinpaintinglcm.ts +188 -226
- package/src/sdk/models/operations/performinstantrefine.ts +185 -220
- package/src/sdk/models/operations/pricingcalculator.ts +883 -0
- package/src/sdk/models/operations/promptimprove.ts +157 -136
- package/src/sdk/models/operations/promptrandom.ts +125 -121
- package/src/sdk/models/operations/uploadcanvasinitimage.ts +256 -0
- package/src/sdk/models/operations/uploaddatasetimage.ts +200 -177
- package/src/sdk/models/operations/uploaddatasetimagefromgen.ts +196 -187
- package/src/sdk/models/operations/uploadinitimage.ts +163 -152
- package/src/sdk/models/operations/uploadmodelasset.ts +166 -158
- package/src/sdk/models/shared/canvasrequesttype.ts +34 -0
- package/src/sdk/models/shared/controlnetinput.ts +130 -0
- package/src/sdk/models/shared/controlnettype.ts +20 -2
- package/src/sdk/models/shared/custommodeltype.ts +16 -1
- package/src/sdk/models/shared/elementinput.ts +29 -31
- package/src/sdk/models/shared/index.ts +15 -11
- package/src/sdk/models/shared/jobstatus.ts +15 -1
- package/src/sdk/models/shared/lcmgenerationstyle.ts +16 -1
- package/src/sdk/models/shared/pricingcalculatorservices.ts +39 -0
- package/src/sdk/models/shared/sdgenerationschedulers.ts +16 -1
- package/src/sdk/models/shared/sdgenerationstyle.ts +16 -1
- package/src/sdk/models/shared/sdversions.ts +17 -1
- package/src/sdk/models/shared/security.ts +23 -25
- package/src/sdk/models/shared/strength.ts +15 -1
- package/src/sdk/models/shared/universalupscalerstyle.ts +34 -0
- package/src/sdk/models/shared/variationtype.ts +17 -1
- package/src/sdk/models.ts +347 -0
- package/src/sdk/motion.ts +123 -0
- package/src/sdk/pricingcalculator.ts +119 -0
- package/src/sdk/prompt.ts +51 -60
- package/src/sdk/realtimecanvas.ts +361 -0
- package/src/sdk/sdk.ts +54 -24
- package/src/sdk/texture.ts +208 -0
- package/src/sdk/threedmodelassets.ts +204 -0
- package/src/sdk/types/enums.ts +16 -0
- package/src/sdk/types/index.ts +6 -4
- package/src/sdk/user.ts +24 -31
- package/src/sdk/variation.ts +186 -121
- package/docs/sdks/generation/README.md +0 -503
- package/sdk/element.d.ts.map +0 -1
- package/sdk/element.js.map +0 -1
- package/sdk/generation.d.ts +0 -85
- package/sdk/generation.d.ts.map +0 -1
- package/sdk/generation.js +0 -781
- package/sdk/generation.js.map +0 -1
- package/sdk/initimage.d.ts +0 -29
- package/sdk/initimage.d.ts.map +0 -1
- package/sdk/initimage.js +0 -257
- package/sdk/initimage.js.map +0 -1
- package/sdk/model.d.ts +0 -50
- package/sdk/model.d.ts.map +0 -1
- package/sdk/model.js +0 -446
- package/sdk/model.js.map +0 -1
- package/src/sdk/generation.ts +0 -984
- package/src/sdk/initimage.ts +0 -293
- package/src/sdk/model.ts +0 -536
package/src/lib/http.ts
CHANGED
|
@@ -2,17 +2,40 @@
|
|
|
2
2
|
* Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
import { never as znever } from "zod";
|
|
6
|
+
import { parse } from "./schemas.js";
|
|
7
|
+
import { isPlainObject } from "./is-plain-object.js";
|
|
8
|
+
import { SDKError } from "../sdk/models/errors/sdkerror.js";
|
|
9
|
+
|
|
10
|
+
export type Fetcher = (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
|
|
9
11
|
|
|
10
12
|
export type Awaitable<T> = T | Promise<T>;
|
|
11
13
|
|
|
12
|
-
const DEFAULT_FETCHER: Fetcher = (input, init) =>
|
|
14
|
+
const DEFAULT_FETCHER: Fetcher = (input, init) => {
|
|
15
|
+
// If input is a Request and init is undefined, Bun will discard the method,
|
|
16
|
+
// headers, body and other options that were set on the request object.
|
|
17
|
+
// Node.js and browers would ignore an undefined init value. This check is
|
|
18
|
+
// therefore needed for interop with Bun.
|
|
19
|
+
if (init == null) {
|
|
20
|
+
return fetch(input);
|
|
21
|
+
} else {
|
|
22
|
+
return fetch(input, init);
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
export type RequestInput = {
|
|
27
|
+
/**
|
|
28
|
+
* The URL the request will use.
|
|
29
|
+
*/
|
|
30
|
+
url: URL;
|
|
31
|
+
/**
|
|
32
|
+
* Options used to create a [`Request`](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request).
|
|
33
|
+
*/
|
|
34
|
+
options?: RequestInit | undefined;
|
|
35
|
+
};
|
|
13
36
|
|
|
14
37
|
export interface HTTPClientOptions {
|
|
15
|
-
|
|
38
|
+
fetcher?: Fetcher;
|
|
16
39
|
}
|
|
17
40
|
|
|
18
41
|
export type BeforeRequestHook = (req: Request) => Awaitable<Request | void>;
|
|
@@ -20,196 +43,464 @@ export type RequestErrorHook = (err: unknown, req: Request) => Awaitable<void>;
|
|
|
20
43
|
export type ResponseHook = (res: Response, req: Request) => Awaitable<void>;
|
|
21
44
|
|
|
22
45
|
export class HTTPClient {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
async request(request: Request): Promise<Response> {
|
|
33
|
-
let req = request;
|
|
34
|
-
for (const hook of this.requestHooks) {
|
|
35
|
-
const nextRequest = await hook(req);
|
|
36
|
-
if (nextRequest) {
|
|
37
|
-
req = nextRequest;
|
|
38
|
-
}
|
|
46
|
+
private fetcher: Fetcher;
|
|
47
|
+
private requestHooks: BeforeRequestHook[] = [];
|
|
48
|
+
private requestErrorHooks: RequestErrorHook[] = [];
|
|
49
|
+
private responseHooks: ResponseHook[] = [];
|
|
50
|
+
|
|
51
|
+
constructor(private options: HTTPClientOptions = {}) {
|
|
52
|
+
this.fetcher = options.fetcher || DEFAULT_FETCHER;
|
|
39
53
|
}
|
|
40
54
|
|
|
41
|
-
|
|
42
|
-
|
|
55
|
+
async request(request: Request): Promise<Response> {
|
|
56
|
+
let req = request;
|
|
57
|
+
for (const hook of this.requestHooks) {
|
|
58
|
+
const nextRequest = await hook(req);
|
|
59
|
+
if (nextRequest) {
|
|
60
|
+
req = nextRequest;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
try {
|
|
65
|
+
const res = await this.fetcher(req);
|
|
66
|
+
|
|
67
|
+
for (const hook of this.responseHooks) {
|
|
68
|
+
await hook(res, req);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
return res;
|
|
72
|
+
} catch (err) {
|
|
73
|
+
for (const hook of this.requestErrorHooks) {
|
|
74
|
+
await hook(err, req);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
throw err;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
43
80
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
81
|
+
/**
|
|
82
|
+
* Registers a hook that is called before a request is made. The hook function
|
|
83
|
+
* can mutate the request or return a new request. This may be useful to add
|
|
84
|
+
* additional information to request such as request IDs and tracing headers.
|
|
85
|
+
*/
|
|
86
|
+
addHook(hook: "beforeRequest", fn: BeforeRequestHook): this;
|
|
87
|
+
/**
|
|
88
|
+
* Registers a hook that is called when a request cannot be made due to a
|
|
89
|
+
* network error.
|
|
90
|
+
*/
|
|
91
|
+
addHook(hook: "requestError", fn: RequestErrorHook): this;
|
|
92
|
+
/**
|
|
93
|
+
* Registers a hook that is called when a response has been received from the
|
|
94
|
+
* server.
|
|
95
|
+
*/
|
|
96
|
+
addHook(hook: "response", fn: ResponseHook): this;
|
|
97
|
+
addHook(
|
|
98
|
+
...args:
|
|
99
|
+
| [hook: "beforeRequest", fn: BeforeRequestHook]
|
|
100
|
+
| [hook: "requestError", fn: RequestErrorHook]
|
|
101
|
+
| [hook: "response", fn: ResponseHook]
|
|
102
|
+
) {
|
|
103
|
+
if (args[0] === "beforeRequest") {
|
|
104
|
+
this.requestHooks.push(args[1]);
|
|
105
|
+
} else if (args[0] === "requestError") {
|
|
106
|
+
this.requestErrorHooks.push(args[1]);
|
|
107
|
+
} else if (args[0] === "response") {
|
|
108
|
+
this.responseHooks.push(args[1]);
|
|
109
|
+
} else {
|
|
110
|
+
throw new Error(`Invalid hook type: ${args[0]}`);
|
|
111
|
+
}
|
|
112
|
+
return this;
|
|
113
|
+
}
|
|
47
114
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
115
|
+
/** Removes a hook that was previously registered with `addHook`. */
|
|
116
|
+
removeHook(hook: "beforeRequest", fn: BeforeRequestHook): this;
|
|
117
|
+
/** Removes a hook that was previously registered with `addHook`. */
|
|
118
|
+
removeHook(hook: "requestError", fn: RequestErrorHook): this;
|
|
119
|
+
/** Removes a hook that was previously registered with `addHook`. */
|
|
120
|
+
removeHook(hook: "response", fn: ResponseHook): this;
|
|
121
|
+
removeHook(
|
|
122
|
+
...args:
|
|
123
|
+
| [hook: "beforeRequest", fn: BeforeRequestHook]
|
|
124
|
+
| [hook: "requestError", fn: RequestErrorHook]
|
|
125
|
+
| [hook: "response", fn: ResponseHook]
|
|
126
|
+
): this {
|
|
127
|
+
let target: unknown[];
|
|
128
|
+
if (args[0] === "beforeRequest") {
|
|
129
|
+
target = this.requestHooks;
|
|
130
|
+
} else if (args[0] === "requestError") {
|
|
131
|
+
target = this.requestErrorHooks;
|
|
132
|
+
} else if (args[0] === "response") {
|
|
133
|
+
target = this.responseHooks;
|
|
134
|
+
} else {
|
|
135
|
+
throw new Error(`Invalid hook type: ${args[0]}`);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
const index = target.findIndex((v) => v === args[1]);
|
|
139
|
+
if (index >= 0) {
|
|
140
|
+
target.splice(index, 1);
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
return this;
|
|
144
|
+
}
|
|
53
145
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
* additional information to request such as request IDs and tracing headers.
|
|
62
|
-
*/
|
|
63
|
-
addHook(hook: "beforeRequest", fn: BeforeRequestHook): this;
|
|
64
|
-
/**
|
|
65
|
-
* Registers a hook that is called when a request cannot be made due to a
|
|
66
|
-
* network error.
|
|
67
|
-
*/
|
|
68
|
-
addHook(hook: "requestError", fn: RequestErrorHook): this;
|
|
69
|
-
/**
|
|
70
|
-
* Registers a hook that is called when a response has been received from the
|
|
71
|
-
* server.
|
|
72
|
-
*/
|
|
73
|
-
addHook(hook: "response", fn: ResponseHook): this;
|
|
74
|
-
addHook(
|
|
75
|
-
...args:
|
|
76
|
-
| [hook: "beforeRequest", fn: BeforeRequestHook]
|
|
77
|
-
| [hook: "requestError", fn: RequestErrorHook]
|
|
78
|
-
| [hook: "response", fn: ResponseHook]
|
|
79
|
-
) {
|
|
80
|
-
if (args[0] === "beforeRequest") {
|
|
81
|
-
this.requestHooks.push(args[1]);
|
|
82
|
-
} else if (args[0] === "requestError") {
|
|
83
|
-
this.requestErrorHooks.push(args[1]);
|
|
84
|
-
} else if (args[0] === "response") {
|
|
85
|
-
this.responseHooks.push(args[1]);
|
|
86
|
-
} else {
|
|
87
|
-
throw new Error(`Invalid hook type: ${args[0]}`);
|
|
88
|
-
}
|
|
89
|
-
return this;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
/** Removes a hook that was previously registered with `addHook`. */
|
|
93
|
-
removeHook(hook: "beforeRequest", fn: BeforeRequestHook): this;
|
|
94
|
-
/** Removes a hook that was previously registered with `addHook`. */
|
|
95
|
-
removeHook(hook: "requestError", fn: RequestErrorHook): this;
|
|
96
|
-
/** Removes a hook that was previously registered with `addHook`. */
|
|
97
|
-
removeHook(hook: "response", fn: ResponseHook): this;
|
|
98
|
-
removeHook(
|
|
99
|
-
...args:
|
|
100
|
-
| [hook: "beforeRequest", fn: BeforeRequestHook]
|
|
101
|
-
| [hook: "requestError", fn: RequestErrorHook]
|
|
102
|
-
| [hook: "response", fn: ResponseHook]
|
|
103
|
-
): this {
|
|
104
|
-
let target: unknown[];
|
|
105
|
-
if (args[0] === "beforeRequest") {
|
|
106
|
-
target = this.requestHooks;
|
|
107
|
-
} else if (args[0] === "requestError") {
|
|
108
|
-
target = this.requestErrorHooks;
|
|
109
|
-
} else if (args[0] === "response") {
|
|
110
|
-
target = this.responseHooks;
|
|
111
|
-
} else {
|
|
112
|
-
throw new Error(`Invalid hook type: ${args[0]}`);
|
|
146
|
+
clone(): HTTPClient {
|
|
147
|
+
const child = new HTTPClient(this.options);
|
|
148
|
+
child.requestHooks = this.requestHooks.slice();
|
|
149
|
+
child.requestErrorHooks = this.requestErrorHooks.slice();
|
|
150
|
+
child.responseHooks = this.responseHooks.slice();
|
|
151
|
+
|
|
152
|
+
return child;
|
|
113
153
|
}
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
export type StatusCodePredicate = number | string | (number | string)[];
|
|
114
157
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
158
|
+
// A semicolon surrounded by optional whitespace characters is used to separate
|
|
159
|
+
// segments in a media type string.
|
|
160
|
+
const mediaParamSeparator = /\s*;\s*/g;
|
|
161
|
+
|
|
162
|
+
function matchContentType(response: Response, pattern: string): boolean {
|
|
163
|
+
// `*` is a special case which means anything is acceptable.
|
|
164
|
+
if (pattern === "*") {
|
|
165
|
+
return true;
|
|
118
166
|
}
|
|
119
167
|
|
|
120
|
-
|
|
121
|
-
|
|
168
|
+
let contentType = response.headers.get("content-type")?.trim() || "application/octet-stream";
|
|
169
|
+
contentType = contentType.toLowerCase();
|
|
122
170
|
|
|
123
|
-
|
|
124
|
-
const
|
|
125
|
-
child.requestHooks = this.requestHooks.slice();
|
|
126
|
-
child.requestErrorHooks = this.requestErrorHooks.slice();
|
|
127
|
-
child.responseHooks = this.responseHooks.slice();
|
|
171
|
+
const wantParts = pattern.toLowerCase().trim().split(mediaParamSeparator);
|
|
172
|
+
const [wantType = "", ...wantParams] = wantParts;
|
|
128
173
|
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
}
|
|
174
|
+
if (wantType.split("/").length !== 2) {
|
|
175
|
+
return false;
|
|
176
|
+
}
|
|
132
177
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
return true;
|
|
136
|
-
}
|
|
178
|
+
const gotParts = contentType.split(mediaParamSeparator);
|
|
179
|
+
const [gotType = "", ...gotParams] = gotParts;
|
|
137
180
|
|
|
138
|
-
|
|
139
|
-
|
|
181
|
+
const [type = "", subtype = ""] = gotType.split("/");
|
|
182
|
+
if (!type || !subtype) {
|
|
183
|
+
return false;
|
|
184
|
+
}
|
|
140
185
|
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
186
|
+
if (
|
|
187
|
+
wantType !== "*/*" &&
|
|
188
|
+
gotType !== wantType &&
|
|
189
|
+
`${type}/*` !== wantType &&
|
|
190
|
+
`*/${subtype}` !== wantType
|
|
191
|
+
) {
|
|
192
|
+
return false;
|
|
145
193
|
}
|
|
146
194
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
return false;
|
|
195
|
+
if (gotParams.length < wantParams.length) {
|
|
196
|
+
return false;
|
|
150
197
|
}
|
|
151
198
|
|
|
152
|
-
|
|
153
|
-
|
|
199
|
+
const params = new Set(gotParams);
|
|
200
|
+
for (const wantParam of wantParams) {
|
|
201
|
+
if (!params.has(wantParam)) {
|
|
202
|
+
return false;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
154
205
|
|
|
155
|
-
|
|
206
|
+
return true;
|
|
156
207
|
}
|
|
157
208
|
|
|
158
209
|
const codeRangeRE = new RegExp("^[0-9]xx$", "i");
|
|
159
210
|
|
|
160
|
-
export function matchStatusCode(
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
)
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
if (!expectedCodes.length) {
|
|
167
|
-
return false;
|
|
168
|
-
}
|
|
211
|
+
export function matchStatusCode(response: Response, codes: StatusCodePredicate): boolean {
|
|
212
|
+
const actual = `${response.status}`;
|
|
213
|
+
const expectedCodes = Array.isArray(codes) ? codes : [codes];
|
|
214
|
+
if (!expectedCodes.length) {
|
|
215
|
+
return false;
|
|
216
|
+
}
|
|
169
217
|
|
|
170
|
-
|
|
171
|
-
|
|
218
|
+
return expectedCodes.some((ec) => {
|
|
219
|
+
const code = `${ec}`;
|
|
172
220
|
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
221
|
+
if (code === "default") {
|
|
222
|
+
return true;
|
|
223
|
+
}
|
|
176
224
|
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
225
|
+
if (!codeRangeRE.test(`${code}`)) {
|
|
226
|
+
return code === actual;
|
|
227
|
+
}
|
|
180
228
|
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
229
|
+
const expectFamily = code.charAt(0);
|
|
230
|
+
if (!expectFamily) {
|
|
231
|
+
throw new Error("Invalid status code range");
|
|
232
|
+
}
|
|
185
233
|
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
234
|
+
const actualFamily = actual.charAt(0);
|
|
235
|
+
if (!actualFamily) {
|
|
236
|
+
throw new Error(`Invalid response status code: ${actual}`);
|
|
237
|
+
}
|
|
190
238
|
|
|
191
|
-
|
|
192
|
-
|
|
239
|
+
return actualFamily === expectFamily;
|
|
240
|
+
});
|
|
193
241
|
}
|
|
194
242
|
|
|
195
243
|
export function matchResponse(
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
244
|
+
response: Response,
|
|
245
|
+
code: StatusCodePredicate,
|
|
246
|
+
contentTypePattern: string
|
|
199
247
|
): boolean {
|
|
200
|
-
|
|
201
|
-
matchStatusCode(response, code) &&
|
|
202
|
-
matchContentType(response, contentTypePattern)
|
|
203
|
-
);
|
|
248
|
+
return matchStatusCode(response, code) && matchContentType(response, contentTypePattern);
|
|
204
249
|
}
|
|
205
250
|
|
|
206
251
|
const headerValRE = /, */;
|
|
207
252
|
export function unpackHeaders(headers: Headers): Record<string, string[]> {
|
|
208
|
-
|
|
253
|
+
const out: Record<string, string[]> = {};
|
|
254
|
+
|
|
255
|
+
for (const [k, v] of headers.entries()) {
|
|
256
|
+
out[k] = v.split(headerValRE);
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
return out;
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
type ResponseMatcherSchema<T> =
|
|
263
|
+
| { parse: (data: unknown) => T }
|
|
264
|
+
| { inboundSchema: { parse: (data: unknown) => T } };
|
|
265
|
+
|
|
266
|
+
type SerializationMethod = "sse" | "json" | "rawBytes" | "rawStream" | "text" | "void" | "fail";
|
|
267
|
+
|
|
268
|
+
const defaultContentTypes: Record<SerializationMethod, string> = {
|
|
269
|
+
sse: "text/event-stream",
|
|
270
|
+
json: "application/json",
|
|
271
|
+
rawBytes: "application/octet-stream",
|
|
272
|
+
rawStream: "application/octet-stream",
|
|
273
|
+
text: "text/plain",
|
|
274
|
+
void: "",
|
|
275
|
+
fail: "",
|
|
276
|
+
};
|
|
277
|
+
|
|
278
|
+
type ResponsePredicateMatch<Result> = {
|
|
279
|
+
method: SerializationMethod;
|
|
280
|
+
codes: StatusCodePredicate;
|
|
281
|
+
ctype: string;
|
|
282
|
+
schema: ResponseMatcherSchema<Result | Error>;
|
|
283
|
+
hdrs: boolean;
|
|
284
|
+
key: string | undefined;
|
|
285
|
+
err: boolean;
|
|
286
|
+
fail: boolean;
|
|
287
|
+
sseSentinel?: string | undefined;
|
|
288
|
+
};
|
|
289
|
+
|
|
290
|
+
type ResponsePredicateOptions = {
|
|
291
|
+
/** Content type to match on. */
|
|
292
|
+
ctype?: string;
|
|
293
|
+
/** Pass HTTP headers to deserializer. */
|
|
294
|
+
hdrs?: boolean;
|
|
295
|
+
/** A value for an SSE event's data field that indicates a stream should be terminated. */
|
|
296
|
+
sseSentinel?: string;
|
|
297
|
+
} & (
|
|
298
|
+
| {
|
|
299
|
+
/** The result key to store the deserialized value into. */
|
|
300
|
+
key?: string;
|
|
301
|
+
fail?: never;
|
|
302
|
+
err?: never;
|
|
303
|
+
}
|
|
304
|
+
| {
|
|
305
|
+
/** Indicates the matched response must throw the built-in error. */
|
|
306
|
+
fail: true;
|
|
307
|
+
key?: never;
|
|
308
|
+
err?: never;
|
|
309
|
+
}
|
|
310
|
+
| {
|
|
311
|
+
/** Indicates the matched response is a custom error. */
|
|
312
|
+
err: true;
|
|
313
|
+
key?: never;
|
|
314
|
+
fail?: never;
|
|
315
|
+
}
|
|
316
|
+
);
|
|
317
|
+
|
|
318
|
+
export class ResponseMatcher<Result> {
|
|
319
|
+
private predicates: ResponsePredicateMatch<Result>[] = [];
|
|
320
|
+
|
|
321
|
+
#any<T extends Result | Error>(
|
|
322
|
+
method: SerializationMethod,
|
|
323
|
+
codes: StatusCodePredicate,
|
|
324
|
+
schema: ResponseMatcherSchema<T>,
|
|
325
|
+
opts?: ResponsePredicateOptions
|
|
326
|
+
) {
|
|
327
|
+
const ctype = opts?.ctype || defaultContentTypes[method];
|
|
328
|
+
const hdrs = !!opts?.hdrs;
|
|
329
|
+
const key = opts?.key;
|
|
330
|
+
const err = !!opts?.err;
|
|
331
|
+
const fail = !!opts?.fail;
|
|
332
|
+
const sseSentinel = opts?.sseSentinel;
|
|
333
|
+
this.predicates.push({
|
|
334
|
+
method,
|
|
335
|
+
codes,
|
|
336
|
+
ctype,
|
|
337
|
+
schema,
|
|
338
|
+
hdrs,
|
|
339
|
+
key,
|
|
340
|
+
err,
|
|
341
|
+
fail,
|
|
342
|
+
sseSentinel,
|
|
343
|
+
});
|
|
344
|
+
return this;
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
json<T extends Result | Error>(
|
|
348
|
+
codes: StatusCodePredicate,
|
|
349
|
+
schema: ResponseMatcherSchema<T>,
|
|
350
|
+
opts?: ResponsePredicateOptions
|
|
351
|
+
): this {
|
|
352
|
+
return this.#any("json", codes, schema, opts);
|
|
353
|
+
}
|
|
354
|
+
bytes<T extends Result | Error>(
|
|
355
|
+
codes: StatusCodePredicate,
|
|
356
|
+
schema: ResponseMatcherSchema<T>,
|
|
357
|
+
opts?: ResponsePredicateOptions
|
|
358
|
+
): this {
|
|
359
|
+
return this.#any("rawBytes", codes, schema, opts);
|
|
360
|
+
}
|
|
361
|
+
stream<T extends Result | Error>(
|
|
362
|
+
codes: StatusCodePredicate,
|
|
363
|
+
schema: ResponseMatcherSchema<T>,
|
|
364
|
+
opts?: ResponsePredicateOptions
|
|
365
|
+
): this {
|
|
366
|
+
return this.#any("rawStream", codes, schema, opts);
|
|
367
|
+
}
|
|
368
|
+
text<T extends Result | Error>(
|
|
369
|
+
codes: StatusCodePredicate,
|
|
370
|
+
schema: ResponseMatcherSchema<T>,
|
|
371
|
+
opts?: ResponsePredicateOptions
|
|
372
|
+
): this {
|
|
373
|
+
return this.#any("text", codes, schema, opts);
|
|
374
|
+
}
|
|
375
|
+
sse<T extends Result | Error>(
|
|
376
|
+
codes: StatusCodePredicate,
|
|
377
|
+
schema: ResponseMatcherSchema<T>,
|
|
378
|
+
opts?: Omit<ResponsePredicateOptions, "err" | "fail">
|
|
379
|
+
): this {
|
|
380
|
+
return this.#any("sse", codes, schema, opts);
|
|
381
|
+
}
|
|
382
|
+
void<T extends Result | Error>(
|
|
383
|
+
codes: StatusCodePredicate,
|
|
384
|
+
schema: ResponseMatcherSchema<T>,
|
|
385
|
+
opts?: Pick<ResponsePredicateOptions, "hdrs">
|
|
386
|
+
): this {
|
|
387
|
+
return this.#any("void", codes, schema, opts);
|
|
388
|
+
}
|
|
389
|
+
fail(codes: StatusCodePredicate): this {
|
|
390
|
+
return this.#any("fail", codes, znever(), { fail: true });
|
|
391
|
+
}
|
|
209
392
|
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
393
|
+
async match(
|
|
394
|
+
response: Response,
|
|
395
|
+
// envelope
|
|
396
|
+
options?: {
|
|
397
|
+
resultKey?: string;
|
|
398
|
+
extraFields?: Record<string, unknown>;
|
|
399
|
+
}
|
|
400
|
+
): Promise<[result: Result, rawData: unknown]> {
|
|
401
|
+
let pred: ResponsePredicateMatch<Result> | undefined;
|
|
402
|
+
for (const predicate of this.predicates) {
|
|
403
|
+
const { codes, ctype } = predicate;
|
|
404
|
+
if (ctype && matchResponse(response, codes, ctype)) {
|
|
405
|
+
pred = predicate;
|
|
406
|
+
break;
|
|
407
|
+
} else if (!ctype && matchStatusCode(response, codes)) {
|
|
408
|
+
pred = predicate;
|
|
409
|
+
break;
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
if (pred == null) {
|
|
413
|
+
const responseBody = await response.text();
|
|
414
|
+
throw new SDKError(
|
|
415
|
+
"Unexpected API response status or content-type",
|
|
416
|
+
response,
|
|
417
|
+
responseBody
|
|
418
|
+
);
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
const { method, schema } = pred;
|
|
422
|
+
|
|
423
|
+
let raw: unknown;
|
|
424
|
+
switch (method) {
|
|
425
|
+
case "json":
|
|
426
|
+
raw = await response.json();
|
|
427
|
+
break;
|
|
428
|
+
case "rawBytes":
|
|
429
|
+
raw = await response.arrayBuffer();
|
|
430
|
+
break;
|
|
431
|
+
case "rawStream":
|
|
432
|
+
raw = response.body;
|
|
433
|
+
break;
|
|
434
|
+
case "text":
|
|
435
|
+
raw = await response.text();
|
|
436
|
+
break;
|
|
437
|
+
case "sse":
|
|
438
|
+
raw = response.body;
|
|
439
|
+
break;
|
|
440
|
+
case "void":
|
|
441
|
+
raw = await discardResponseBody(response);
|
|
442
|
+
break;
|
|
443
|
+
case "fail":
|
|
444
|
+
raw = await response.text();
|
|
445
|
+
break;
|
|
446
|
+
default:
|
|
447
|
+
method satisfies never;
|
|
448
|
+
throw new Error(`Unsupported response type: ${method}`);
|
|
449
|
+
}
|
|
450
|
+
|
|
451
|
+
const resultKey = pred.key || options?.resultKey;
|
|
452
|
+
let data: unknown;
|
|
453
|
+
if (pred.fail) {
|
|
454
|
+
throw new SDKError("API error occurred", response, typeof raw === "string" ? raw : "");
|
|
455
|
+
} else if (pred.err) {
|
|
456
|
+
data = {
|
|
457
|
+
...options?.extraFields,
|
|
458
|
+
...(pred.hdrs ? { Headers: unpackHeaders(response.headers) } : null),
|
|
459
|
+
...(isPlainObject(raw) ? raw : null),
|
|
460
|
+
};
|
|
461
|
+
} else if (resultKey) {
|
|
462
|
+
data = {
|
|
463
|
+
...options?.extraFields,
|
|
464
|
+
...(pred.hdrs ? { Headers: unpackHeaders(response.headers) } : null),
|
|
465
|
+
[resultKey]: raw,
|
|
466
|
+
};
|
|
467
|
+
} else {
|
|
468
|
+
data = {
|
|
469
|
+
...options?.extraFields,
|
|
470
|
+
...(pred.hdrs ? { Headers: unpackHeaders(response.headers) } : null),
|
|
471
|
+
};
|
|
472
|
+
}
|
|
473
|
+
|
|
474
|
+
const parser = "inboundSchema" in schema ? schema.inboundSchema : schema;
|
|
475
|
+
const body = parse(data, (v: unknown) => parser.parse(v), "Response validation failed");
|
|
476
|
+
|
|
477
|
+
if (body instanceof Error) {
|
|
478
|
+
throw body;
|
|
479
|
+
}
|
|
480
|
+
|
|
481
|
+
return [body, raw];
|
|
482
|
+
}
|
|
483
|
+
}
|
|
484
|
+
|
|
485
|
+
/**
|
|
486
|
+
* Discards the response body to free up resources.
|
|
487
|
+
*
|
|
488
|
+
* To learn why this is need, see the undici docs:
|
|
489
|
+
* https://undici.nodejs.org/#/?id=garbage-collection
|
|
490
|
+
*/
|
|
491
|
+
export async function discardResponseBody(res: Response) {
|
|
492
|
+
const reader = res.body?.getReader();
|
|
493
|
+
if (reader == null) {
|
|
494
|
+
return;
|
|
495
|
+
}
|
|
213
496
|
|
|
214
|
-
|
|
497
|
+
try {
|
|
498
|
+
let done = false;
|
|
499
|
+
while (!done) {
|
|
500
|
+
const res = await reader.read();
|
|
501
|
+
done = res.done;
|
|
502
|
+
}
|
|
503
|
+
} finally {
|
|
504
|
+
reader.releaseLock();
|
|
505
|
+
}
|
|
215
506
|
}
|