@openrouter/sdk 0.0.0-beta.37 → 0.0.0-beta.39
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commonjs/funcs/betaResponsesSend.d.ts +2 -2
- package/dist/commonjs/funcs/betaResponsesSend.d.ts.map +1 -1
- package/dist/commonjs/funcs/betaResponsesSend.js +1 -1
- package/dist/commonjs/funcs/betaResponsesSend.js.map +1 -1
- package/dist/commonjs/funcs/chatSend.js +1 -1
- package/dist/commonjs/funcs/chatSend.js.map +1 -1
- package/dist/commonjs/funcs/custom/oAuthCreateAuthorizationUrl.d.ts +43 -0
- package/dist/commonjs/funcs/custom/oAuthCreateAuthorizationUrl.d.ts.map +1 -0
- package/dist/commonjs/funcs/custom/oAuthCreateAuthorizationUrl.js +50 -0
- package/dist/commonjs/funcs/custom/oAuthCreateAuthorizationUrl.js.map +1 -0
- package/dist/commonjs/funcs/custom/oAuthCreateAuthorizationUrl.test.d.ts +2 -0
- package/dist/commonjs/funcs/custom/oAuthCreateAuthorizationUrl.test.d.ts.map +1 -0
- package/dist/commonjs/funcs/custom/oAuthCreateAuthorizationUrl.test.js +213 -0
- package/dist/commonjs/funcs/custom/oAuthCreateAuthorizationUrl.test.js.map +1 -0
- package/dist/commonjs/funcs/custom/oAuthCreateSHA256CodeChallenge.d.ts +35 -0
- package/dist/commonjs/funcs/custom/oAuthCreateSHA256CodeChallenge.d.ts.map +1 -0
- package/dist/commonjs/funcs/custom/oAuthCreateSHA256CodeChallenge.js +75 -0
- package/dist/commonjs/funcs/custom/oAuthCreateSHA256CodeChallenge.js.map +1 -0
- package/dist/commonjs/funcs/custom/oAuthCreateSHA256CodeChallenge.test.d.ts +2 -0
- package/dist/commonjs/funcs/custom/oAuthCreateSHA256CodeChallenge.test.d.ts.map +1 -0
- package/dist/commonjs/funcs/custom/oAuthCreateSHA256CodeChallenge.test.js +164 -0
- package/dist/commonjs/funcs/custom/oAuthCreateSHA256CodeChallenge.test.js.map +1 -0
- package/dist/commonjs/funcs/modelsList.js +1 -1
- package/dist/commonjs/funcs/modelsList.js.map +1 -1
- package/dist/commonjs/lib/config.d.ts +3 -3
- package/dist/commonjs/lib/config.js +3 -3
- package/dist/commonjs/lib/config.js.map +1 -1
- package/dist/commonjs/models/chatgenerationparams.d.ts +16 -42
- package/dist/commonjs/models/chatgenerationparams.d.ts.map +1 -1
- package/dist/commonjs/models/chatgenerationparams.js +27 -6
- package/dist/commonjs/models/chatgenerationparams.js.map +1 -1
- package/dist/commonjs/models/chatmessagecontentitemaudio.d.ts +6 -22
- package/dist/commonjs/models/chatmessagecontentitemaudio.d.ts.map +1 -1
- package/dist/commonjs/models/chatmessagecontentitemaudio.js +10 -2
- package/dist/commonjs/models/chatmessagecontentitemaudio.js.map +1 -1
- package/dist/commonjs/models/chatmessagecontentitemimage.d.ts +6 -14
- package/dist/commonjs/models/chatmessagecontentitemimage.d.ts.map +1 -1
- package/dist/commonjs/models/chatmessagecontentitemimage.js +10 -2
- package/dist/commonjs/models/chatmessagecontentitemimage.js.map +1 -1
- package/dist/commonjs/models/chatresponsechoice.d.ts +6 -18
- package/dist/commonjs/models/chatresponsechoice.d.ts.map +1 -1
- package/dist/commonjs/models/chatresponsechoice.js +10 -2
- package/dist/commonjs/models/chatresponsechoice.js.map +1 -1
- package/dist/commonjs/models/chatstreamingchoice.d.ts +6 -18
- package/dist/commonjs/models/chatstreamingchoice.d.ts.map +1 -1
- package/dist/commonjs/models/chatstreamingchoice.js +10 -2
- package/dist/commonjs/models/chatstreamingchoice.js.map +1 -1
- package/dist/commonjs/models/completionfinishreason.d.ts +6 -14
- package/dist/commonjs/models/completionfinishreason.d.ts.map +1 -1
- package/dist/commonjs/models/completionfinishreason.js +10 -2
- package/dist/commonjs/models/completionfinishreason.js.map +1 -1
- package/dist/commonjs/models/createapikeydata.d.ts +120 -0
- package/dist/commonjs/models/createapikeydata.d.ts.map +1 -0
- package/dist/commonjs/models/createapikeydata.js +134 -0
- package/dist/commonjs/models/createapikeydata.js.map +1 -0
- package/dist/commonjs/models/endpointslist.d.ts +21 -269
- package/dist/commonjs/models/endpointslist.d.ts.map +1 -1
- package/dist/commonjs/models/endpointslist.js +37 -8
- package/dist/commonjs/models/endpointslist.js.map +1 -1
- package/dist/commonjs/models/errorresponse.d.ts +6 -148
- package/dist/commonjs/models/errorresponse.d.ts.map +1 -1
- package/dist/commonjs/models/errorresponse.js +10 -2
- package/dist/commonjs/models/errorresponse.js.map +1 -1
- package/dist/commonjs/models/getapikeydata.d.ts +120 -0
- package/dist/commonjs/models/getapikeydata.d.ts.map +1 -0
- package/dist/commonjs/models/getapikeydata.js +134 -0
- package/dist/commonjs/models/getapikeydata.js.map +1 -0
- package/dist/commonjs/models/index.d.ts +4 -0
- package/dist/commonjs/models/index.d.ts.map +1 -1
- package/dist/commonjs/models/index.js +4 -0
- package/dist/commonjs/models/index.js.map +1 -1
- package/dist/commonjs/models/keyinfo.d.ts +8 -8
- package/dist/commonjs/models/listapikeysdata.d.ts +117 -0
- package/dist/commonjs/models/listapikeysdata.d.ts.map +1 -0
- package/dist/commonjs/models/listapikeysdata.js +134 -0
- package/dist/commonjs/models/listapikeysdata.js.map +1 -0
- package/dist/commonjs/models/modelslist.d.ts +26 -178
- package/dist/commonjs/models/modelslist.d.ts.map +1 -1
- package/dist/commonjs/models/modelslist.js +46 -11
- package/dist/commonjs/models/modelslist.js.map +1 -1
- package/dist/commonjs/models/operations/addcoinbasecharge.d.ts +6 -14
- package/dist/commonjs/models/operations/addcoinbasecharge.d.ts.map +1 -1
- package/dist/commonjs/models/operations/addcoinbasecharge.js +9 -2
- package/dist/commonjs/models/operations/addcoinbasecharge.js.map +1 -1
- package/dist/commonjs/models/operations/create.d.ts +35 -68
- package/dist/commonjs/models/operations/create.d.ts.map +1 -1
- package/dist/commonjs/models/operations/create.js +39 -54
- package/dist/commonjs/models/operations/create.js.map +1 -1
- package/dist/commonjs/models/operations/createauthorizationcode.d.ts +6 -12
- package/dist/commonjs/models/operations/createauthorizationcode.d.ts.map +1 -1
- package/dist/commonjs/models/operations/createauthorizationcode.js +9 -2
- package/dist/commonjs/models/operations/createauthorizationcode.js.map +1 -1
- package/dist/commonjs/models/operations/exchangeauthorizationcode.d.ts +6 -12
- package/dist/commonjs/models/operations/exchangeauthorizationcode.d.ts.map +1 -1
- package/dist/commonjs/models/operations/exchangeauthorizationcode.js +9 -2
- package/dist/commonjs/models/operations/exchangeauthorizationcode.js.map +1 -1
- package/dist/commonjs/models/operations/generate.d.ts +37 -569
- package/dist/commonjs/models/operations/generate.d.ts.map +1 -1
- package/dist/commonjs/models/operations/generate.js +55 -12
- package/dist/commonjs/models/operations/generate.js.map +1 -1
- package/dist/commonjs/models/operations/getapikey.d.ts +3 -68
- package/dist/commonjs/models/operations/getapikey.d.ts.map +1 -1
- package/dist/commonjs/models/operations/getapikey.js +4 -55
- package/dist/commonjs/models/operations/getapikey.js.map +1 -1
- package/dist/commonjs/models/operations/getmetadata.d.ts +6 -12
- package/dist/commonjs/models/operations/getmetadata.d.ts.map +1 -1
- package/dist/commonjs/models/operations/getmetadata.js +9 -2
- package/dist/commonjs/models/operations/getmetadata.js.map +1 -1
- package/dist/commonjs/models/operations/getparameters.d.ts +11 -189
- package/dist/commonjs/models/operations/getparameters.d.ts.map +1 -1
- package/dist/commonjs/models/operations/getparameters.js +19 -4
- package/dist/commonjs/models/operations/getparameters.js.map +1 -1
- package/dist/commonjs/models/operations/list.d.ts +21 -125
- package/dist/commonjs/models/operations/list.d.ts.map +1 -1
- package/dist/commonjs/models/operations/list.js +36 -8
- package/dist/commonjs/models/operations/list.js.map +1 -1
- package/dist/commonjs/models/operations/listapikeys.d.ts +3 -65
- package/dist/commonjs/models/operations/listapikeys.d.ts.map +1 -1
- package/dist/commonjs/models/operations/listapikeys.js +4 -54
- package/dist/commonjs/models/operations/listapikeys.js.map +1 -1
- package/dist/commonjs/models/operations/previewzdr.d.ts +21 -269
- package/dist/commonjs/models/operations/previewzdr.d.ts.map +1 -1
- package/dist/commonjs/models/operations/previewzdr.js +38 -9
- package/dist/commonjs/models/operations/previewzdr.js.map +1 -1
- package/dist/commonjs/models/operations/sendresponsesrequest.d.ts +57 -621
- package/dist/commonjs/models/operations/sendresponsesrequest.d.ts.map +1 -1
- package/dist/commonjs/models/operations/sendresponsesrequest.js +88 -20
- package/dist/commonjs/models/operations/sendresponsesrequest.js.map +1 -1
- package/dist/commonjs/models/operations/update.d.ts +35 -68
- package/dist/commonjs/models/operations/update.d.ts.map +1 -1
- package/dist/commonjs/models/operations/update.js +39 -54
- package/dist/commonjs/models/operations/update.js.map +1 -1
- package/dist/commonjs/models/responsefunctioncallstatus.d.ts +6 -14
- package/dist/commonjs/models/responsefunctioncallstatus.d.ts.map +1 -1
- package/dist/commonjs/models/responsefunctioncallstatus.js +10 -2
- package/dist/commonjs/models/responsefunctioncallstatus.js.map +1 -1
- package/dist/commonjs/models/responseimagegenerationcallstatus.d.ts +6 -16
- package/dist/commonjs/models/responseimagegenerationcallstatus.d.ts.map +1 -1
- package/dist/commonjs/models/responseimagegenerationcallstatus.js +10 -2
- package/dist/commonjs/models/responseimagegenerationcallstatus.js.map +1 -1
- package/dist/commonjs/models/responseincludable.d.ts +6 -18
- package/dist/commonjs/models/responseincludable.d.ts.map +1 -1
- package/dist/commonjs/models/responseincludable.js +10 -2
- package/dist/commonjs/models/responseincludable.js.map +1 -1
- package/dist/commonjs/models/responseinputimagedetail.d.ts +6 -14
- package/dist/commonjs/models/responseinputimagedetail.d.ts.map +1 -1
- package/dist/commonjs/models/responseinputimagedetail.js +10 -2
- package/dist/commonjs/models/responseinputimagedetail.js.map +1 -1
- package/dist/commonjs/models/responsereasoningconfig.d.ts +6 -16
- package/dist/commonjs/models/responsereasoningconfig.d.ts.map +1 -1
- package/dist/commonjs/models/responsereasoningconfig.js +10 -2
- package/dist/commonjs/models/responsereasoningconfig.js.map +1 -1
- package/dist/commonjs/models/responsereasoningsummarymode.d.ts +6 -14
- package/dist/commonjs/models/responsereasoningsummarymode.d.ts.map +1 -1
- package/dist/commonjs/models/responsereasoningsummarymode.js +10 -2
- package/dist/commonjs/models/responsereasoningsummarymode.js.map +1 -1
- package/dist/commonjs/models/responsesincompletedetails.d.ts +6 -12
- package/dist/commonjs/models/responsesincompletedetails.d.ts.map +1 -1
- package/dist/commonjs/models/responsesincompletedetails.js +10 -2
- package/dist/commonjs/models/responsesincompletedetails.js.map +1 -1
- package/dist/commonjs/models/responsesnonstreamingresponse.d.ts +21 -61
- package/dist/commonjs/models/responsesnonstreamingresponse.d.ts.map +1 -1
- package/dist/commonjs/models/responsesnonstreamingresponse.js +35 -8
- package/dist/commonjs/models/responsesnonstreamingresponse.js.map +1 -1
- package/dist/commonjs/models/responsesoutputitemfilesearchcall.d.ts +6 -16
- package/dist/commonjs/models/responsesoutputitemfilesearchcall.d.ts.map +1 -1
- package/dist/commonjs/models/responsesoutputitemfilesearchcall.js +9 -2
- package/dist/commonjs/models/responsesoutputitemfilesearchcall.js.map +1 -1
- package/dist/commonjs/models/responsesoutputitemreasoning.d.ts +7 -14
- package/dist/commonjs/models/responsesoutputitemreasoning.d.ts.map +1 -1
- package/dist/commonjs/models/responsesoutputitemreasoning.js +11 -2
- package/dist/commonjs/models/responsesoutputitemreasoning.js.map +1 -1
- package/dist/commonjs/models/responsesstreamchunkunion.d.ts +31 -81
- package/dist/commonjs/models/responsesstreamchunkunion.d.ts.map +1 -1
- package/dist/commonjs/models/responsesstreamchunkunion.js +55 -12
- package/dist/commonjs/models/responsesstreamchunkunion.js.map +1 -1
- package/dist/commonjs/models/responseswebsearchcalloutput.d.ts +6 -16
- package/dist/commonjs/models/responseswebsearchcalloutput.d.ts.map +1 -1
- package/dist/commonjs/models/responseswebsearchcalloutput.js +10 -2
- package/dist/commonjs/models/responseswebsearchcalloutput.js.map +1 -1
- package/dist/commonjs/models/responsetextverbosity.d.ts +6 -14
- package/dist/commonjs/models/responsetextverbosity.d.ts.map +1 -1
- package/dist/commonjs/models/responsetextverbosity.js +10 -2
- package/dist/commonjs/models/responsetextverbosity.js.map +1 -1
- package/dist/commonjs/models/updateapikeydata.d.ts +120 -0
- package/dist/commonjs/models/updateapikeydata.d.ts.map +1 -0
- package/dist/commonjs/models/updateapikeydata.js +134 -0
- package/dist/commonjs/models/updateapikeydata.js.map +1 -0
- package/dist/commonjs/sdk/oauth.d.ts +27 -0
- package/dist/commonjs/sdk/oauth.d.ts.map +1 -1
- package/dist/commonjs/sdk/oauth.js +43 -0
- package/dist/commonjs/sdk/oauth.js.map +1 -1
- package/dist/commonjs/sdk/responses.d.ts +2 -2
- package/dist/commonjs/sdk/responses.d.ts.map +1 -1
- package/dist/esm/funcs/betaResponsesSend.d.ts +2 -2
- package/dist/esm/funcs/betaResponsesSend.d.ts.map +1 -1
- package/dist/esm/funcs/betaResponsesSend.js +1 -1
- package/dist/esm/funcs/betaResponsesSend.js.map +1 -1
- package/dist/esm/funcs/chatSend.js +1 -1
- package/dist/esm/funcs/chatSend.js.map +1 -1
- package/dist/esm/funcs/custom/oAuthCreateAuthorizationUrl.d.ts +43 -0
- package/dist/esm/funcs/custom/oAuthCreateAuthorizationUrl.d.ts.map +1 -0
- package/dist/esm/funcs/custom/oAuthCreateAuthorizationUrl.js +44 -0
- package/dist/esm/funcs/custom/oAuthCreateAuthorizationUrl.js.map +1 -0
- package/dist/esm/funcs/custom/oAuthCreateAuthorizationUrl.test.d.ts +2 -0
- package/dist/esm/funcs/custom/oAuthCreateAuthorizationUrl.test.d.ts.map +1 -0
- package/dist/esm/funcs/custom/oAuthCreateAuthorizationUrl.test.js +211 -0
- package/dist/esm/funcs/custom/oAuthCreateAuthorizationUrl.test.js.map +1 -0
- package/dist/esm/funcs/custom/oAuthCreateSHA256CodeChallenge.d.ts +35 -0
- package/dist/esm/funcs/custom/oAuthCreateSHA256CodeChallenge.d.ts.map +1 -0
- package/dist/esm/funcs/custom/oAuthCreateSHA256CodeChallenge.js +69 -0
- package/dist/esm/funcs/custom/oAuthCreateSHA256CodeChallenge.js.map +1 -0
- package/dist/esm/funcs/custom/oAuthCreateSHA256CodeChallenge.test.d.ts +2 -0
- package/dist/esm/funcs/custom/oAuthCreateSHA256CodeChallenge.test.d.ts.map +1 -0
- package/dist/esm/funcs/custom/oAuthCreateSHA256CodeChallenge.test.js +162 -0
- package/dist/esm/funcs/custom/oAuthCreateSHA256CodeChallenge.test.js.map +1 -0
- package/dist/esm/funcs/modelsList.js +1 -1
- package/dist/esm/funcs/modelsList.js.map +1 -1
- package/dist/esm/lib/config.d.ts +3 -3
- package/dist/esm/lib/config.js +3 -3
- package/dist/esm/lib/config.js.map +1 -1
- package/dist/esm/models/chatgenerationparams.d.ts +16 -42
- package/dist/esm/models/chatgenerationparams.d.ts.map +1 -1
- package/dist/esm/models/chatgenerationparams.js +27 -6
- package/dist/esm/models/chatgenerationparams.js.map +1 -1
- package/dist/esm/models/chatmessagecontentitemaudio.d.ts +6 -22
- package/dist/esm/models/chatmessagecontentitemaudio.d.ts.map +1 -1
- package/dist/esm/models/chatmessagecontentitemaudio.js +10 -2
- package/dist/esm/models/chatmessagecontentitemaudio.js.map +1 -1
- package/dist/esm/models/chatmessagecontentitemimage.d.ts +6 -14
- package/dist/esm/models/chatmessagecontentitemimage.d.ts.map +1 -1
- package/dist/esm/models/chatmessagecontentitemimage.js +10 -2
- package/dist/esm/models/chatmessagecontentitemimage.js.map +1 -1
- package/dist/esm/models/chatresponsechoice.d.ts +6 -18
- package/dist/esm/models/chatresponsechoice.d.ts.map +1 -1
- package/dist/esm/models/chatresponsechoice.js +10 -2
- package/dist/esm/models/chatresponsechoice.js.map +1 -1
- package/dist/esm/models/chatstreamingchoice.d.ts +6 -18
- package/dist/esm/models/chatstreamingchoice.d.ts.map +1 -1
- package/dist/esm/models/chatstreamingchoice.js +10 -2
- package/dist/esm/models/chatstreamingchoice.js.map +1 -1
- package/dist/esm/models/completionfinishreason.d.ts +6 -14
- package/dist/esm/models/completionfinishreason.d.ts.map +1 -1
- package/dist/esm/models/completionfinishreason.js +10 -2
- package/dist/esm/models/completionfinishreason.js.map +1 -1
- package/dist/esm/models/createapikeydata.d.ts +120 -0
- package/dist/esm/models/createapikeydata.d.ts.map +1 -0
- package/dist/esm/models/createapikeydata.js +96 -0
- package/dist/esm/models/createapikeydata.js.map +1 -0
- package/dist/esm/models/endpointslist.d.ts +21 -269
- package/dist/esm/models/endpointslist.d.ts.map +1 -1
- package/dist/esm/models/endpointslist.js +37 -8
- package/dist/esm/models/endpointslist.js.map +1 -1
- package/dist/esm/models/errorresponse.d.ts +6 -148
- package/dist/esm/models/errorresponse.d.ts.map +1 -1
- package/dist/esm/models/errorresponse.js +10 -2
- package/dist/esm/models/errorresponse.js.map +1 -1
- package/dist/esm/models/getapikeydata.d.ts +120 -0
- package/dist/esm/models/getapikeydata.d.ts.map +1 -0
- package/dist/esm/models/getapikeydata.js +96 -0
- package/dist/esm/models/getapikeydata.js.map +1 -0
- package/dist/esm/models/index.d.ts +4 -0
- package/dist/esm/models/index.d.ts.map +1 -1
- package/dist/esm/models/index.js +4 -0
- package/dist/esm/models/index.js.map +1 -1
- package/dist/esm/models/keyinfo.d.ts +8 -8
- package/dist/esm/models/listapikeysdata.d.ts +117 -0
- package/dist/esm/models/listapikeysdata.d.ts.map +1 -0
- package/dist/esm/models/listapikeysdata.js +96 -0
- package/dist/esm/models/listapikeysdata.js.map +1 -0
- package/dist/esm/models/modelslist.d.ts +26 -178
- package/dist/esm/models/modelslist.d.ts.map +1 -1
- package/dist/esm/models/modelslist.js +46 -11
- package/dist/esm/models/modelslist.js.map +1 -1
- package/dist/esm/models/operations/addcoinbasecharge.d.ts +6 -14
- package/dist/esm/models/operations/addcoinbasecharge.d.ts.map +1 -1
- package/dist/esm/models/operations/addcoinbasecharge.js +9 -2
- package/dist/esm/models/operations/addcoinbasecharge.js.map +1 -1
- package/dist/esm/models/operations/create.d.ts +35 -68
- package/dist/esm/models/operations/create.d.ts.map +1 -1
- package/dist/esm/models/operations/create.js +38 -51
- package/dist/esm/models/operations/create.js.map +1 -1
- package/dist/esm/models/operations/createauthorizationcode.d.ts +6 -12
- package/dist/esm/models/operations/createauthorizationcode.d.ts.map +1 -1
- package/dist/esm/models/operations/createauthorizationcode.js +9 -2
- package/dist/esm/models/operations/createauthorizationcode.js.map +1 -1
- package/dist/esm/models/operations/exchangeauthorizationcode.d.ts +6 -12
- package/dist/esm/models/operations/exchangeauthorizationcode.d.ts.map +1 -1
- package/dist/esm/models/operations/exchangeauthorizationcode.js +9 -2
- package/dist/esm/models/operations/exchangeauthorizationcode.js.map +1 -1
- package/dist/esm/models/operations/generate.d.ts +37 -569
- package/dist/esm/models/operations/generate.d.ts.map +1 -1
- package/dist/esm/models/operations/generate.js +55 -12
- package/dist/esm/models/operations/generate.js.map +1 -1
- package/dist/esm/models/operations/getapikey.d.ts +3 -68
- package/dist/esm/models/operations/getapikey.d.ts.map +1 -1
- package/dist/esm/models/operations/getapikey.js +3 -52
- package/dist/esm/models/operations/getapikey.js.map +1 -1
- package/dist/esm/models/operations/getmetadata.d.ts +6 -12
- package/dist/esm/models/operations/getmetadata.d.ts.map +1 -1
- package/dist/esm/models/operations/getmetadata.js +9 -2
- package/dist/esm/models/operations/getmetadata.js.map +1 -1
- package/dist/esm/models/operations/getparameters.d.ts +11 -189
- package/dist/esm/models/operations/getparameters.d.ts.map +1 -1
- package/dist/esm/models/operations/getparameters.js +19 -4
- package/dist/esm/models/operations/getparameters.js.map +1 -1
- package/dist/esm/models/operations/list.d.ts +21 -125
- package/dist/esm/models/operations/list.d.ts.map +1 -1
- package/dist/esm/models/operations/list.js +36 -8
- package/dist/esm/models/operations/list.js.map +1 -1
- package/dist/esm/models/operations/listapikeys.d.ts +3 -65
- package/dist/esm/models/operations/listapikeys.d.ts.map +1 -1
- package/dist/esm/models/operations/listapikeys.js +3 -51
- package/dist/esm/models/operations/listapikeys.js.map +1 -1
- package/dist/esm/models/operations/previewzdr.d.ts +21 -269
- package/dist/esm/models/operations/previewzdr.d.ts.map +1 -1
- package/dist/esm/models/operations/previewzdr.js +38 -9
- package/dist/esm/models/operations/previewzdr.js.map +1 -1
- package/dist/esm/models/operations/sendresponsesrequest.d.ts +57 -621
- package/dist/esm/models/operations/sendresponsesrequest.d.ts.map +1 -1
- package/dist/esm/models/operations/sendresponsesrequest.js +88 -20
- package/dist/esm/models/operations/sendresponsesrequest.js.map +1 -1
- package/dist/esm/models/operations/update.d.ts +35 -68
- package/dist/esm/models/operations/update.d.ts.map +1 -1
- package/dist/esm/models/operations/update.js +38 -51
- package/dist/esm/models/operations/update.js.map +1 -1
- package/dist/esm/models/responsefunctioncallstatus.d.ts +6 -14
- package/dist/esm/models/responsefunctioncallstatus.d.ts.map +1 -1
- package/dist/esm/models/responsefunctioncallstatus.js +10 -2
- package/dist/esm/models/responsefunctioncallstatus.js.map +1 -1
- package/dist/esm/models/responseimagegenerationcallstatus.d.ts +6 -16
- package/dist/esm/models/responseimagegenerationcallstatus.d.ts.map +1 -1
- package/dist/esm/models/responseimagegenerationcallstatus.js +10 -2
- package/dist/esm/models/responseimagegenerationcallstatus.js.map +1 -1
- package/dist/esm/models/responseincludable.d.ts +6 -18
- package/dist/esm/models/responseincludable.d.ts.map +1 -1
- package/dist/esm/models/responseincludable.js +10 -2
- package/dist/esm/models/responseincludable.js.map +1 -1
- package/dist/esm/models/responseinputimagedetail.d.ts +6 -14
- package/dist/esm/models/responseinputimagedetail.d.ts.map +1 -1
- package/dist/esm/models/responseinputimagedetail.js +10 -2
- package/dist/esm/models/responseinputimagedetail.js.map +1 -1
- package/dist/esm/models/responsereasoningconfig.d.ts +6 -16
- package/dist/esm/models/responsereasoningconfig.d.ts.map +1 -1
- package/dist/esm/models/responsereasoningconfig.js +10 -2
- package/dist/esm/models/responsereasoningconfig.js.map +1 -1
- package/dist/esm/models/responsereasoningsummarymode.d.ts +6 -14
- package/dist/esm/models/responsereasoningsummarymode.d.ts.map +1 -1
- package/dist/esm/models/responsereasoningsummarymode.js +10 -2
- package/dist/esm/models/responsereasoningsummarymode.js.map +1 -1
- package/dist/esm/models/responsesincompletedetails.d.ts +6 -12
- package/dist/esm/models/responsesincompletedetails.d.ts.map +1 -1
- package/dist/esm/models/responsesincompletedetails.js +10 -2
- package/dist/esm/models/responsesincompletedetails.js.map +1 -1
- package/dist/esm/models/responsesnonstreamingresponse.d.ts +21 -61
- package/dist/esm/models/responsesnonstreamingresponse.d.ts.map +1 -1
- package/dist/esm/models/responsesnonstreamingresponse.js +35 -8
- package/dist/esm/models/responsesnonstreamingresponse.js.map +1 -1
- package/dist/esm/models/responsesoutputitemfilesearchcall.d.ts +6 -16
- package/dist/esm/models/responsesoutputitemfilesearchcall.d.ts.map +1 -1
- package/dist/esm/models/responsesoutputitemfilesearchcall.js +9 -2
- package/dist/esm/models/responsesoutputitemfilesearchcall.js.map +1 -1
- package/dist/esm/models/responsesoutputitemreasoning.d.ts +7 -14
- package/dist/esm/models/responsesoutputitemreasoning.d.ts.map +1 -1
- package/dist/esm/models/responsesoutputitemreasoning.js +11 -2
- package/dist/esm/models/responsesoutputitemreasoning.js.map +1 -1
- package/dist/esm/models/responsesstreamchunkunion.d.ts +31 -81
- package/dist/esm/models/responsesstreamchunkunion.d.ts.map +1 -1
- package/dist/esm/models/responsesstreamchunkunion.js +55 -12
- package/dist/esm/models/responsesstreamchunkunion.js.map +1 -1
- package/dist/esm/models/responseswebsearchcalloutput.d.ts +6 -16
- package/dist/esm/models/responseswebsearchcalloutput.d.ts.map +1 -1
- package/dist/esm/models/responseswebsearchcalloutput.js +10 -2
- package/dist/esm/models/responseswebsearchcalloutput.js.map +1 -1
- package/dist/esm/models/responsetextverbosity.d.ts +6 -14
- package/dist/esm/models/responsetextverbosity.d.ts.map +1 -1
- package/dist/esm/models/responsetextverbosity.js +10 -2
- package/dist/esm/models/responsetextverbosity.js.map +1 -1
- package/dist/esm/models/updateapikeydata.d.ts +120 -0
- package/dist/esm/models/updateapikeydata.d.ts.map +1 -0
- package/dist/esm/models/updateapikeydata.js +96 -0
- package/dist/esm/models/updateapikeydata.js.map +1 -0
- package/dist/esm/sdk/oauth.d.ts +27 -0
- package/dist/esm/sdk/oauth.d.ts.map +1 -1
- package/dist/esm/sdk/oauth.js +43 -0
- package/dist/esm/sdk/oauth.js.map +1 -1
- package/dist/esm/sdk/responses.d.ts +2 -2
- package/dist/esm/sdk/responses.d.ts.map +1 -1
- package/docs/sdks/apikeys/README.md +4 -0
- package/jsr.json +1 -1
- package/package.json +3 -2
- package/src/funcs/betaResponsesSend.ts +3 -3
- package/src/funcs/chatSend.ts +1 -1
- package/src/funcs/custom/oAuthCreateAuthorizationUrl.test.ts +265 -0
- package/src/funcs/custom/oAuthCreateAuthorizationUrl.ts +66 -0
- package/src/funcs/custom/oAuthCreateSHA256CodeChallenge.test.ts +189 -0
- package/src/funcs/custom/oAuthCreateSHA256CodeChallenge.ts +90 -0
- package/src/funcs/modelsList.ts +1 -1
- package/src/lib/config.ts +3 -3
- package/src/models/chatgenerationparams.ts +59 -20
- package/src/models/chatmessagecontentitemaudio.ts +23 -8
- package/src/models/chatmessagecontentitemimage.ts +16 -6
- package/src/models/chatresponsechoice.ts +23 -8
- package/src/models/chatstreamingchoice.ts +23 -8
- package/src/models/completionfinishreason.ts +23 -8
- package/src/models/createapikeydata.ts +222 -0
- package/src/models/endpointslist.ts +77 -25
- package/src/models/errorresponse.ts +23 -8
- package/src/models/getapikeydata.ts +218 -0
- package/src/models/index.ts +4 -0
- package/src/models/keyinfo.ts +8 -8
- package/src/models/listapikeysdata.ts +217 -0
- package/src/models/modelslist.ts +95 -32
- package/src/models/operations/addcoinbasecharge.ts +17 -6
- package/src/models/operations/create.ts +64 -123
- package/src/models/operations/createauthorizationcode.ts +20 -6
- package/src/models/operations/exchangeauthorizationcode.ts +23 -6
- package/src/models/operations/generate.ts +114 -41
- package/src/models/operations/getapikey.ts +5 -124
- package/src/models/operations/getmetadata.ts +17 -6
- package/src/models/operations/getparameters.ts +41 -15
- package/src/models/operations/list.ts +77 -25
- package/src/models/operations/listapikeys.ts +5 -122
- package/src/models/operations/previewzdr.ts +70 -25
- package/src/models/operations/sendresponsesrequest.ts +179 -63
- package/src/models/operations/update.ts +64 -123
- package/src/models/responsefunctioncallstatus.ts +23 -8
- package/src/models/responseimagegenerationcallstatus.ts +23 -8
- package/src/models/responseincludable.ts +23 -8
- package/src/models/responseinputimagedetail.ts +23 -8
- package/src/models/responsereasoningconfig.ts +23 -8
- package/src/models/responsereasoningsummarymode.ts +23 -8
- package/src/models/responsesincompletedetails.ts +23 -8
- package/src/models/responsesnonstreamingresponse.ts +78 -25
- package/src/models/responsesoutputitemfilesearchcall.ts +24 -8
- package/src/models/responsesoutputitemreasoning.ts +25 -8
- package/src/models/responsesstreamchunkunion.ts +114 -43
- package/src/models/responseswebsearchcalloutput.ts +24 -8
- package/src/models/responsetextverbosity.ts +23 -8
- package/src/models/updateapikeydata.ts +222 -0
- package/src/sdk/oauth.ts +60 -0
- package/src/sdk/responses.ts +2 -2
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
import { describe, it, expect } from "vitest";
|
|
2
|
+
import { OpenRouterCore } from "../../core.js";
|
|
3
|
+
import { oAuthCreateAuthorizationUrl } from "./oAuthCreateAuthorizationUrl.js";
|
|
4
|
+
describe("oAuthCreateAuthorizationUrl", () => {
|
|
5
|
+
const createMockClient = (serverURL) => {
|
|
6
|
+
return new OpenRouterCore({ serverURL });
|
|
7
|
+
};
|
|
8
|
+
it("should generate authorization URL with callback URL", () => {
|
|
9
|
+
const client = createMockClient("https://openrouter.ai/api/v1");
|
|
10
|
+
const result = oAuthCreateAuthorizationUrl(client, {
|
|
11
|
+
callbackUrl: "https://example.com/callback",
|
|
12
|
+
});
|
|
13
|
+
expect(result.ok).toBe(true);
|
|
14
|
+
if (result.ok) {
|
|
15
|
+
const url = new URL(result.value);
|
|
16
|
+
expect(url.searchParams.get("callback_url")).toBe("https://example.com/callback");
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
it("should generate authorization URL with URL object as callback", () => {
|
|
20
|
+
const client = createMockClient("https://openrouter.ai/api/v1");
|
|
21
|
+
const callbackUrl = new URL("https://example.com/callback");
|
|
22
|
+
const result = oAuthCreateAuthorizationUrl(client, {
|
|
23
|
+
callbackUrl,
|
|
24
|
+
});
|
|
25
|
+
expect(result.ok).toBe(true);
|
|
26
|
+
if (result.ok) {
|
|
27
|
+
const url = new URL(result.value);
|
|
28
|
+
expect(url.searchParams.get("callback_url")).toBe("https://example.com/callback");
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
it("should include code challenge with S256 method", () => {
|
|
32
|
+
const client = createMockClient("https://openrouter.ai/api/v1");
|
|
33
|
+
const result = oAuthCreateAuthorizationUrl(client, {
|
|
34
|
+
callbackUrl: "https://example.com/callback",
|
|
35
|
+
codeChallenge: "test-code-challenge-abc123",
|
|
36
|
+
codeChallengeMethod: "S256",
|
|
37
|
+
});
|
|
38
|
+
expect(result.ok).toBe(true);
|
|
39
|
+
if (result.ok) {
|
|
40
|
+
const url = new URL(result.value);
|
|
41
|
+
expect(url.searchParams.get("code_challenge")).toBe("test-code-challenge-abc123");
|
|
42
|
+
expect(url.searchParams.get("code_challenge_method")).toBe("S256");
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
it("should include code challenge with plain method", () => {
|
|
46
|
+
const client = createMockClient("https://openrouter.ai/api/v1");
|
|
47
|
+
const result = oAuthCreateAuthorizationUrl(client, {
|
|
48
|
+
callbackUrl: "https://example.com/callback",
|
|
49
|
+
codeChallenge: "plain-code-challenge",
|
|
50
|
+
codeChallengeMethod: "plain",
|
|
51
|
+
});
|
|
52
|
+
expect(result.ok).toBe(true);
|
|
53
|
+
if (result.ok) {
|
|
54
|
+
const url = new URL(result.value);
|
|
55
|
+
expect(url.searchParams.get("code_challenge")).toBe("plain-code-challenge");
|
|
56
|
+
expect(url.searchParams.get("code_challenge_method")).toBe("plain");
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
it("should include limit parameter when provided", () => {
|
|
60
|
+
const client = createMockClient("https://openrouter.ai/api/v1");
|
|
61
|
+
const result = oAuthCreateAuthorizationUrl(client, {
|
|
62
|
+
callbackUrl: "https://example.com/callback",
|
|
63
|
+
limit: 100,
|
|
64
|
+
});
|
|
65
|
+
expect(result.ok).toBe(true);
|
|
66
|
+
if (result.ok) {
|
|
67
|
+
const url = new URL(result.value);
|
|
68
|
+
expect(url.searchParams.get("limit")).toBe("100");
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
it("should handle callback URL with query parameters", () => {
|
|
72
|
+
const client = createMockClient("https://openrouter.ai/api/v1");
|
|
73
|
+
const result = oAuthCreateAuthorizationUrl(client, {
|
|
74
|
+
callbackUrl: "https://example.com/callback?state=abc123&redirect=true",
|
|
75
|
+
});
|
|
76
|
+
expect(result.ok).toBe(true);
|
|
77
|
+
if (result.ok) {
|
|
78
|
+
const url = new URL(result.value);
|
|
79
|
+
expect(url.searchParams.get("callback_url")).toBe("https://example.com/callback?state=abc123&redirect=true");
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
it("should handle callback URL with special characters", () => {
|
|
83
|
+
const client = createMockClient("https://openrouter.ai/api/v1");
|
|
84
|
+
const result = oAuthCreateAuthorizationUrl(client, {
|
|
85
|
+
callbackUrl: "https://example.com/callback?data=hello%20world",
|
|
86
|
+
});
|
|
87
|
+
expect(result.ok).toBe(true);
|
|
88
|
+
if (result.ok) {
|
|
89
|
+
const url = new URL(result.value);
|
|
90
|
+
expect(url.searchParams.get("callback_url")).toBe("https://example.com/callback?data=hello%20world");
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
it("should return error for invalid callback URL string", () => {
|
|
94
|
+
const client = createMockClient("https://openrouter.ai/api/v1");
|
|
95
|
+
const result = oAuthCreateAuthorizationUrl(client, {
|
|
96
|
+
callbackUrl: "not-a-valid-url",
|
|
97
|
+
});
|
|
98
|
+
expect(result.ok).toBe(false);
|
|
99
|
+
if (!result.ok) {
|
|
100
|
+
expect(result.error).toBeDefined();
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
it("should handle callback URL with localhost", () => {
|
|
104
|
+
const client = createMockClient("https://openrouter.ai/api/v1");
|
|
105
|
+
const result = oAuthCreateAuthorizationUrl(client, {
|
|
106
|
+
callbackUrl: "http://localhost:3000/callback",
|
|
107
|
+
});
|
|
108
|
+
expect(result.ok).toBe(true);
|
|
109
|
+
if (result.ok) {
|
|
110
|
+
const url = new URL(result.value);
|
|
111
|
+
expect(url.searchParams.get("callback_url")).toBe("http://localhost:3000/callback");
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
it("should use default production server when no serverURL provided", () => {
|
|
115
|
+
const client = createMockClient();
|
|
116
|
+
const result = oAuthCreateAuthorizationUrl(client, {
|
|
117
|
+
callbackUrl: "https://example.com/callback",
|
|
118
|
+
});
|
|
119
|
+
expect(result.ok).toBe(true);
|
|
120
|
+
if (result.ok) {
|
|
121
|
+
const url = new URL(result.value);
|
|
122
|
+
expect(url.origin).toBe("https://openrouter.ai");
|
|
123
|
+
expect(url.pathname).toBe("/auth");
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
it("should use custom server URL when provided", () => {
|
|
127
|
+
const client = createMockClient("https://custom.example.com/api");
|
|
128
|
+
const result = oAuthCreateAuthorizationUrl(client, {
|
|
129
|
+
callbackUrl: "https://example.com/callback",
|
|
130
|
+
});
|
|
131
|
+
expect(result.ok).toBe(true);
|
|
132
|
+
if (result.ok) {
|
|
133
|
+
const url = new URL(result.value);
|
|
134
|
+
expect(url.origin).toBe("https://custom.example.com");
|
|
135
|
+
expect(url.pathname).toBe("/auth");
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
it("should preserve all parameters with PKCE", () => {
|
|
139
|
+
const client = createMockClient("https://openrouter.ai/api/v1");
|
|
140
|
+
const result = oAuthCreateAuthorizationUrl(client, {
|
|
141
|
+
callbackUrl: "https://example.com/callback?state=xyz",
|
|
142
|
+
codeChallenge: "challenge123",
|
|
143
|
+
codeChallengeMethod: "S256",
|
|
144
|
+
limit: 50,
|
|
145
|
+
});
|
|
146
|
+
expect(result.ok).toBe(true);
|
|
147
|
+
if (result.ok) {
|
|
148
|
+
const url = new URL(result.value);
|
|
149
|
+
expect(url.searchParams.get("callback_url")).toBe("https://example.com/callback?state=xyz");
|
|
150
|
+
expect(url.searchParams.get("code_challenge")).toBe("challenge123");
|
|
151
|
+
expect(url.searchParams.get("code_challenge_method")).toBe("S256");
|
|
152
|
+
expect(url.searchParams.get("limit")).toBe("50");
|
|
153
|
+
}
|
|
154
|
+
});
|
|
155
|
+
it("should handle callback URL with fragment", () => {
|
|
156
|
+
const client = createMockClient("https://openrouter.ai/api/v1");
|
|
157
|
+
const result = oAuthCreateAuthorizationUrl(client, {
|
|
158
|
+
callbackUrl: "https://example.com/callback#section",
|
|
159
|
+
});
|
|
160
|
+
expect(result.ok).toBe(true);
|
|
161
|
+
if (result.ok) {
|
|
162
|
+
const url = new URL(result.value);
|
|
163
|
+
expect(url.searchParams.get("callback_url")).toBe("https://example.com/callback#section");
|
|
164
|
+
}
|
|
165
|
+
});
|
|
166
|
+
it("should return error for invalid input types", () => {
|
|
167
|
+
const client = createMockClient("https://openrouter.ai/api/v1");
|
|
168
|
+
const result = oAuthCreateAuthorizationUrl(client, {
|
|
169
|
+
callbackUrl: 12345,
|
|
170
|
+
});
|
|
171
|
+
expect(result.ok).toBe(false);
|
|
172
|
+
if (!result.ok) {
|
|
173
|
+
expect(result.error).toBeDefined();
|
|
174
|
+
}
|
|
175
|
+
});
|
|
176
|
+
it("should handle URL with port number in callback", () => {
|
|
177
|
+
const client = createMockClient("https://openrouter.ai/api/v1");
|
|
178
|
+
const result = oAuthCreateAuthorizationUrl(client, {
|
|
179
|
+
callbackUrl: "https://example.com:8443/callback",
|
|
180
|
+
});
|
|
181
|
+
expect(result.ok).toBe(true);
|
|
182
|
+
if (result.ok) {
|
|
183
|
+
const url = new URL(result.value);
|
|
184
|
+
expect(url.searchParams.get("callback_url")).toBe("https://example.com:8443/callback");
|
|
185
|
+
}
|
|
186
|
+
});
|
|
187
|
+
it("should not omit limit parameter when value is 0", () => {
|
|
188
|
+
const client = createMockClient("https://openrouter.ai/api/v1");
|
|
189
|
+
const result = oAuthCreateAuthorizationUrl(client, {
|
|
190
|
+
callbackUrl: "https://example.com/callback",
|
|
191
|
+
limit: 0,
|
|
192
|
+
});
|
|
193
|
+
expect(result.ok).toBe(true);
|
|
194
|
+
if (result.ok) {
|
|
195
|
+
const url = new URL(result.value);
|
|
196
|
+
expect(url.searchParams.get("limit")).toBe("0");
|
|
197
|
+
}
|
|
198
|
+
});
|
|
199
|
+
it("should omit limit parameter when not provided", () => {
|
|
200
|
+
const client = createMockClient("https://openrouter.ai/api/v1");
|
|
201
|
+
const result = oAuthCreateAuthorizationUrl(client, {
|
|
202
|
+
callbackUrl: "https://example.com/callback",
|
|
203
|
+
});
|
|
204
|
+
expect(result.ok).toBe(true);
|
|
205
|
+
if (result.ok) {
|
|
206
|
+
const url = new URL(result.value);
|
|
207
|
+
expect(url.searchParams.has("limit")).toBe(false);
|
|
208
|
+
}
|
|
209
|
+
});
|
|
210
|
+
});
|
|
211
|
+
//# sourceMappingURL=oAuthCreateAuthorizationUrl.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oAuthCreateAuthorizationUrl.test.js","sourceRoot":"","sources":["../../../../src/funcs/custom/oAuthCreateAuthorizationUrl.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import z from "zod/v3";
|
|
2
|
+
import { Result } from "../../types/fp.js";
|
|
3
|
+
declare const CreateSHA256CodeChallengeRequestSchema: z.ZodObject<{
|
|
4
|
+
/**
|
|
5
|
+
* If not provided, a random code verifier will be generated.
|
|
6
|
+
* If provided, must be 43-128 characters and contain only unreserved
|
|
7
|
+
* characters [A-Za-z0-9-._~] per RFC 7636.
|
|
8
|
+
*/
|
|
9
|
+
codeVerifier: z.ZodOptional<z.ZodString>;
|
|
10
|
+
}, "strip", z.ZodTypeAny, {
|
|
11
|
+
codeVerifier?: string | undefined;
|
|
12
|
+
}, {
|
|
13
|
+
codeVerifier?: string | undefined;
|
|
14
|
+
}>;
|
|
15
|
+
export type CreateSHA256CodeChallengeRequest = z.infer<typeof CreateSHA256CodeChallengeRequestSchema>;
|
|
16
|
+
export type CreateSHA256CodeChallengeResponse = {
|
|
17
|
+
codeChallenge: string;
|
|
18
|
+
codeVerifier: string;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Generate a SHA-256 code challenge for PKCE
|
|
22
|
+
*
|
|
23
|
+
* @remarks
|
|
24
|
+
* Generates a SHA-256 code challenge and corresponding code verifier for use
|
|
25
|
+
* in the PKCE extension to OAuth2. If no code verifier is provided, a random
|
|
26
|
+
* one will be generated according to RFC 7636 (32 random bytes, base64url
|
|
27
|
+
* encoded). If a code verifier is provided, it must be 43-128 characters and
|
|
28
|
+
* contain only unreserved characters [A-Za-z0-9-._~].
|
|
29
|
+
*
|
|
30
|
+
* @see {@link https://openrouter.ai/docs/use-cases/oauth-pkce}
|
|
31
|
+
* @see {@link https://datatracker.ietf.org/doc/html/rfc7636}
|
|
32
|
+
*/
|
|
33
|
+
export declare function oAuthCreateSHA256CodeChallenge(params?: CreateSHA256CodeChallengeRequest): Promise<Result<CreateSHA256CodeChallengeResponse>>;
|
|
34
|
+
export {};
|
|
35
|
+
//# sourceMappingURL=oAuthCreateSHA256CodeChallenge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oAuthCreateSHA256CodeChallenge.d.ts","sourceRoot":"","sources":["../../../../src/funcs/custom/oAuthCreateSHA256CodeChallenge.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,QAAQ,CAAC;AACvB,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,QAAA,MAAM,sCAAsC;IAC1C;;;;OAIG;;;;;;EAUH,CAAC;AAEH,MAAM,MAAM,gCAAgC,GAAG,CAAC,CAAC,KAAK,CACpD,OAAO,sCAAsC,CAC9C,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG;IAC9C,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAyBF;;;;;;;;;;;;GAYG;AACH,wBAAsB,8BAA8B,CAClD,MAAM,GAAE,gCAAqC,GAC5C,OAAO,CAAC,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAsBpD"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import z from "zod/v3";
|
|
2
|
+
const CreateSHA256CodeChallengeRequestSchema = z.object({
|
|
3
|
+
/**
|
|
4
|
+
* If not provided, a random code verifier will be generated.
|
|
5
|
+
* If provided, must be 43-128 characters and contain only unreserved
|
|
6
|
+
* characters [A-Za-z0-9-._~] per RFC 7636.
|
|
7
|
+
*/
|
|
8
|
+
codeVerifier: z
|
|
9
|
+
.string()
|
|
10
|
+
.min(43, "Code verifier must be at least 43 characters")
|
|
11
|
+
.max(128, "Code verifier must be at most 128 characters")
|
|
12
|
+
.regex(/^[A-Za-z0-9\-._~]+$/, "Code verifier must only contain unreserved characters: [A-Za-z0-9-._~]")
|
|
13
|
+
.optional(),
|
|
14
|
+
});
|
|
15
|
+
/**
|
|
16
|
+
* Convert a Uint8Array to base64url encoding (RFC 4648)
|
|
17
|
+
*/
|
|
18
|
+
function arrayBufferToBase64Url(buffer) {
|
|
19
|
+
let binary = "";
|
|
20
|
+
for (let i = 0; i < buffer.length; i++) {
|
|
21
|
+
binary += String.fromCharCode(buffer[i]);
|
|
22
|
+
}
|
|
23
|
+
return btoa(binary)
|
|
24
|
+
.replace(/\+/g, "-")
|
|
25
|
+
.replace(/\//g, "_")
|
|
26
|
+
.replace(/=+$/, "");
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Generate a cryptographically random code verifier per RFC 7636
|
|
30
|
+
*/
|
|
31
|
+
function generateCodeVerifier() {
|
|
32
|
+
// RFC 7636 recommends 32 octets of random data, base64url encoded = 43 chars
|
|
33
|
+
const randomBytes = crypto.getRandomValues(new Uint8Array(32));
|
|
34
|
+
return arrayBufferToBase64Url(randomBytes);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Generate a SHA-256 code challenge for PKCE
|
|
38
|
+
*
|
|
39
|
+
* @remarks
|
|
40
|
+
* Generates a SHA-256 code challenge and corresponding code verifier for use
|
|
41
|
+
* in the PKCE extension to OAuth2. If no code verifier is provided, a random
|
|
42
|
+
* one will be generated according to RFC 7636 (32 random bytes, base64url
|
|
43
|
+
* encoded). If a code verifier is provided, it must be 43-128 characters and
|
|
44
|
+
* contain only unreserved characters [A-Za-z0-9-._~].
|
|
45
|
+
*
|
|
46
|
+
* @see {@link https://openrouter.ai/docs/use-cases/oauth-pkce}
|
|
47
|
+
* @see {@link https://datatracker.ietf.org/doc/html/rfc7636}
|
|
48
|
+
*/
|
|
49
|
+
export async function oAuthCreateSHA256CodeChallenge(params = {}) {
|
|
50
|
+
const parsedParams = CreateSHA256CodeChallengeRequestSchema.safeParse(params);
|
|
51
|
+
if (!parsedParams.success)
|
|
52
|
+
return { ok: false, error: parsedParams.error };
|
|
53
|
+
const { codeVerifier = generateCodeVerifier() } = parsedParams.data;
|
|
54
|
+
// Generate SHA-256 hash
|
|
55
|
+
const encoder = new TextEncoder();
|
|
56
|
+
const data = encoder.encode(codeVerifier);
|
|
57
|
+
const hash = await crypto.subtle.digest("SHA-256", data);
|
|
58
|
+
// Convert hash to base64url
|
|
59
|
+
const hashArray = new Uint8Array(hash);
|
|
60
|
+
const codeChallenge = arrayBufferToBase64Url(hashArray);
|
|
61
|
+
return {
|
|
62
|
+
ok: true,
|
|
63
|
+
value: {
|
|
64
|
+
codeChallenge,
|
|
65
|
+
codeVerifier,
|
|
66
|
+
},
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=oAuthCreateSHA256CodeChallenge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oAuthCreateSHA256CodeChallenge.js","sourceRoot":"","sources":["../../../../src/funcs/custom/oAuthCreateSHA256CodeChallenge.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,QAAQ,CAAC;AAGvB,MAAM,sCAAsC,GAAG,CAAC,CAAC,MAAM,CAAC;IACtD;;;;OAIG;IACH,YAAY,EAAE,CAAC;SACZ,MAAM,EAAE;SACR,GAAG,CAAC,EAAE,EAAE,8CAA8C,CAAC;SACvD,GAAG,CAAC,GAAG,EAAE,8CAA8C,CAAC;SACxD,KAAK,CACJ,qBAAqB,EACrB,wEAAwE,CACzE;SACA,QAAQ,EAAE;CACd,CAAC,CAAC;AAWH;;GAEG;AACH,SAAS,sBAAsB,CAAC,MAAkB;IAChD,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,CAAC;SAChB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB;IAC3B,6EAA6E;IAC7E,MAAM,WAAW,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/D,OAAO,sBAAsB,CAAC,WAAW,CAAC,CAAC;AAC7C,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAClD,SAA2C,EAAE;IAE7C,MAAM,YAAY,GAAG,sCAAsC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC9E,IAAI,CAAC,YAAY,CAAC,OAAO;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,CAAC;IAE3E,MAAM,EAAE,YAAY,GAAG,oBAAoB,EAAE,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC;IAEpE,wBAAwB;IACxB,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;IAClC,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAEzD,4BAA4B;IAC5B,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,aAAa,GAAG,sBAAsB,CAAC,SAAS,CAAC,CAAC;IAExD,OAAO;QACL,EAAE,EAAE,IAAI;QACR,KAAK,EAAE;YACL,aAAa;YACb,YAAY;SACb;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oAuthCreateSHA256CodeChallenge.test.d.ts","sourceRoot":"","sources":["../../../../src/funcs/custom/oAuthCreateSHA256CodeChallenge.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import { describe, it, expect } from "vitest";
|
|
2
|
+
import { oAuthCreateSHA256CodeChallenge } from "./oAuthCreateSHA256CodeChallenge.js";
|
|
3
|
+
describe("oAuthCreateSHA256CodeChallenge", () => {
|
|
4
|
+
it("should generate code challenge from provided code verifier", async () => {
|
|
5
|
+
// Use RFC 7636 compliant verifier (43 chars minimum)
|
|
6
|
+
const codeVerifier = "dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk";
|
|
7
|
+
const result = await oAuthCreateSHA256CodeChallenge({ codeVerifier });
|
|
8
|
+
expect(result.ok).toBe(true);
|
|
9
|
+
if (result.ok) {
|
|
10
|
+
expect(result.value.codeVerifier).toBe(codeVerifier);
|
|
11
|
+
expect(result.value.codeChallenge).toBeTruthy();
|
|
12
|
+
expect(typeof result.value.codeChallenge).toBe("string");
|
|
13
|
+
// Code challenge should be base64url encoded (no +, /, or = characters)
|
|
14
|
+
expect(result.value.codeChallenge).not.toMatch(/[+/=]/);
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
it("should generate consistent code challenge for same verifier", async () => {
|
|
18
|
+
// RFC compliant verifier (43+ chars)
|
|
19
|
+
const codeVerifier = "a".repeat(43);
|
|
20
|
+
const result1 = await oAuthCreateSHA256CodeChallenge({ codeVerifier });
|
|
21
|
+
const result2 = await oAuthCreateSHA256CodeChallenge({ codeVerifier });
|
|
22
|
+
expect(result1.ok).toBe(true);
|
|
23
|
+
expect(result2.ok).toBe(true);
|
|
24
|
+
if (result1.ok && result2.ok) {
|
|
25
|
+
expect(result1.value.codeChallenge).toBe(result2.value.codeChallenge);
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
it("should generate RFC 7636 compliant random code verifier when not provided", async () => {
|
|
29
|
+
const result = await oAuthCreateSHA256CodeChallenge();
|
|
30
|
+
expect(result.ok).toBe(true);
|
|
31
|
+
if (result.ok) {
|
|
32
|
+
expect(result.value.codeVerifier).toBeTruthy();
|
|
33
|
+
expect(result.value.codeChallenge).toBeTruthy();
|
|
34
|
+
expect(typeof result.value.codeVerifier).toBe("string");
|
|
35
|
+
// RFC 7636: verifier should be exactly 43 characters (32 bytes base64url encoded)
|
|
36
|
+
expect(result.value.codeVerifier.length).toBe(43);
|
|
37
|
+
// Should only contain base64url characters
|
|
38
|
+
expect(result.value.codeVerifier).toMatch(/^[A-Za-z0-9_-]+$/);
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
it("should generate different code verifiers on successive calls", async () => {
|
|
42
|
+
const result1 = await oAuthCreateSHA256CodeChallenge();
|
|
43
|
+
const result2 = await oAuthCreateSHA256CodeChallenge();
|
|
44
|
+
expect(result1.ok).toBe(true);
|
|
45
|
+
expect(result2.ok).toBe(true);
|
|
46
|
+
if (result1.ok && result2.ok) {
|
|
47
|
+
expect(result1.value.codeVerifier).not.toBe(result2.value.codeVerifier);
|
|
48
|
+
expect(result1.value.codeChallenge).not.toBe(result2.value.codeChallenge);
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
it("should generate base64url encoded challenge (RFC 7636)", async () => {
|
|
52
|
+
const codeVerifier = "dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk";
|
|
53
|
+
const result = await oAuthCreateSHA256CodeChallenge({ codeVerifier });
|
|
54
|
+
expect(result.ok).toBe(true);
|
|
55
|
+
if (result.ok) {
|
|
56
|
+
// Should be base64url encoded (no standard base64 chars)
|
|
57
|
+
expect(result.value.codeChallenge).not.toMatch(/\+/);
|
|
58
|
+
expect(result.value.codeChallenge).not.toMatch(/\//);
|
|
59
|
+
expect(result.value.codeChallenge).not.toMatch(/=/);
|
|
60
|
+
// Should only contain base64url characters
|
|
61
|
+
expect(result.value.codeChallenge).toMatch(/^[A-Za-z0-9_-]+$/);
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
it("should handle invalid input type", async () => {
|
|
65
|
+
const result = await oAuthCreateSHA256CodeChallenge({
|
|
66
|
+
codeVerifier: 123,
|
|
67
|
+
});
|
|
68
|
+
expect(result.ok).toBe(false);
|
|
69
|
+
if (!result.ok) {
|
|
70
|
+
expect(result.error).toBeDefined();
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
it("should produce SHA-256 hash of correct length", async () => {
|
|
74
|
+
const codeVerifier = "a".repeat(43); // RFC compliant length
|
|
75
|
+
const result = await oAuthCreateSHA256CodeChallenge({ codeVerifier });
|
|
76
|
+
expect(result.ok).toBe(true);
|
|
77
|
+
if (result.ok) {
|
|
78
|
+
// SHA-256 produces 256 bits = 32 bytes
|
|
79
|
+
// Base64url encoding of 32 bytes should be 43 characters (no padding)
|
|
80
|
+
expect(result.value.codeChallenge.length).toBe(43);
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
it("should reject empty string code verifier (RFC 7636 violation)", async () => {
|
|
84
|
+
const result = await oAuthCreateSHA256CodeChallenge({ codeVerifier: "" });
|
|
85
|
+
expect(result.ok).toBe(false);
|
|
86
|
+
if (!result.ok) {
|
|
87
|
+
expect(result.error).toBeDefined();
|
|
88
|
+
expect(result.error.message).toContain("at least 43 characters");
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
it("should reject code verifier shorter than 43 characters", async () => {
|
|
92
|
+
const result = await oAuthCreateSHA256CodeChallenge({
|
|
93
|
+
codeVerifier: "too-short",
|
|
94
|
+
});
|
|
95
|
+
expect(result.ok).toBe(false);
|
|
96
|
+
if (!result.ok) {
|
|
97
|
+
expect(result.error).toBeDefined();
|
|
98
|
+
expect(result.error.message).toContain("at least 43 characters");
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
it("should reject code verifier longer than 128 characters (RFC 7636)", async () => {
|
|
102
|
+
const longVerifier = "a".repeat(129);
|
|
103
|
+
const result = await oAuthCreateSHA256CodeChallenge({
|
|
104
|
+
codeVerifier: longVerifier,
|
|
105
|
+
});
|
|
106
|
+
expect(result.ok).toBe(false);
|
|
107
|
+
if (!result.ok) {
|
|
108
|
+
expect(result.error).toBeDefined();
|
|
109
|
+
expect(result.error.message).toContain("at most 128 characters");
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
it("should accept code verifier at maximum length (128 characters)", async () => {
|
|
113
|
+
const maxVerifier = "a".repeat(128);
|
|
114
|
+
const result = await oAuthCreateSHA256CodeChallenge({
|
|
115
|
+
codeVerifier: maxVerifier,
|
|
116
|
+
});
|
|
117
|
+
expect(result.ok).toBe(true);
|
|
118
|
+
if (result.ok) {
|
|
119
|
+
expect(result.value.codeVerifier).toBe(maxVerifier);
|
|
120
|
+
expect(result.value.codeChallenge).toBeTruthy();
|
|
121
|
+
// SHA-256 always produces same length output regardless of input length
|
|
122
|
+
expect(result.value.codeChallenge.length).toBe(43);
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
it("should accept RFC 7636 unreserved characters in code verifier", async () => {
|
|
126
|
+
// RFC 7636 allows: [A-Z] / [a-z] / [0-9] / "-" / "." / "_" / "~"
|
|
127
|
+
const validVerifier = "aZ09-._~" + "a".repeat(35); // 43 chars total
|
|
128
|
+
const result = await oAuthCreateSHA256CodeChallenge({
|
|
129
|
+
codeVerifier: validVerifier,
|
|
130
|
+
});
|
|
131
|
+
expect(result.ok).toBe(true);
|
|
132
|
+
if (result.ok) {
|
|
133
|
+
expect(result.value.codeVerifier).toBe(validVerifier);
|
|
134
|
+
expect(result.value.codeChallenge).toBeTruthy();
|
|
135
|
+
expect(result.value.codeChallenge.length).toBe(43);
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
it("should reject code verifier with invalid characters", async () => {
|
|
139
|
+
// Contains invalid characters like ! @ # $ etc.
|
|
140
|
+
const invalidVerifier = "test!@#$%^&*()+=[]{}|;:',.<>?/`" + "a".repeat(13);
|
|
141
|
+
const result = await oAuthCreateSHA256CodeChallenge({
|
|
142
|
+
codeVerifier: invalidVerifier,
|
|
143
|
+
});
|
|
144
|
+
expect(result.ok).toBe(false);
|
|
145
|
+
if (!result.ok) {
|
|
146
|
+
expect(result.error).toBeDefined();
|
|
147
|
+
expect(result.error.message).toContain("unreserved characters");
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
it("should reject code verifier with spaces", async () => {
|
|
151
|
+
const verifierWithSpaces = "test verifier with spaces" + "a".repeat(18);
|
|
152
|
+
const result = await oAuthCreateSHA256CodeChallenge({
|
|
153
|
+
codeVerifier: verifierWithSpaces,
|
|
154
|
+
});
|
|
155
|
+
expect(result.ok).toBe(false);
|
|
156
|
+
if (!result.ok) {
|
|
157
|
+
expect(result.error).toBeDefined();
|
|
158
|
+
expect(result.error.message).toContain("unreserved characters");
|
|
159
|
+
}
|
|
160
|
+
});
|
|
161
|
+
});
|
|
162
|
+
//# sourceMappingURL=oAuthCreateSHA256CodeChallenge.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oAuthCreateSHA256CodeChallenge.test.js","sourceRoot":"","sources":["../../../../src/funcs/custom/oAuthCreateSHA256CodeChallenge.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAC;AAErF,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;IAC9C,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;QAC1E,qDAAqD;QACrD,MAAM,YAAY,GAAG,6CAA6C,CAAC;QACnE,MAAM,MAAM,GAAG,MAAM,8BAA8B,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;QAEtE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;YACd,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACrD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,UAAU,EAAE,CAAC;YAChD,MAAM,CAAC,OAAO,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzD,wEAAwE;YACxE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QAC3E,qCAAqC;QACrC,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACpC,MAAM,OAAO,GAAG,MAAM,8BAA8B,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;QACvE,MAAM,OAAO,GAAG,MAAM,8BAA8B,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;QAEvE,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,OAAO,CAAC,EAAE,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;YAC7B,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACxE,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2EAA2E,EAAE,KAAK,IAAI,EAAE;QACzF,MAAM,MAAM,GAAG,MAAM,8BAA8B,EAAE,CAAC;QAEtD,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;YACd,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,UAAU,EAAE,CAAC;YAC/C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,UAAU,EAAE,CAAC;YAChD,MAAM,CAAC,OAAO,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACxD,kFAAkF;YAClF,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAClD,2CAA2C;YAC3C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QAChE,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;QAC5E,MAAM,OAAO,GAAG,MAAM,8BAA8B,EAAE,CAAC;QACvD,MAAM,OAAO,GAAG,MAAM,8BAA8B,EAAE,CAAC;QAEvD,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,OAAO,CAAC,EAAE,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;YAC7B,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YACxE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;QACtE,MAAM,YAAY,GAAG,6CAA6C,CAAC;QACnE,MAAM,MAAM,GAAG,MAAM,8BAA8B,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;QAEtE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;YACd,yDAAyD;YACzD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACrD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACrD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACpD,2CAA2C;YAC3C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QACjE,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;QAChD,MAAM,MAAM,GAAG,MAAM,8BAA8B,CAAC;YAClD,YAAY,EAAE,GAAU;SACzB,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;QACrC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC7D,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,uBAAuB;QAC5D,MAAM,MAAM,GAAG,MAAM,8BAA8B,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;QAEtE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;YACd,uCAAuC;YACvC,sEAAsE;YACtE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;QAC7E,MAAM,MAAM,GAAG,MAAM,8BAA8B,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CAAC;QAE1E,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YACnC,MAAM,CAAE,MAAM,CAAC,KAAe,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;QACtE,MAAM,MAAM,GAAG,MAAM,8BAA8B,CAAC;YAClD,YAAY,EAAE,WAAW;SAC1B,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YACnC,MAAM,CAAE,MAAM,CAAC,KAAe,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;QACjF,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACrC,MAAM,MAAM,GAAG,MAAM,8BAA8B,CAAC;YAClD,YAAY,EAAE,YAAY;SAC3B,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YACnC,MAAM,CAAE,MAAM,CAAC,KAAe,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;QAC9E,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,MAAM,8BAA8B,CAAC;YAClD,YAAY,EAAE,WAAW;SAC1B,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;YACd,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACpD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,UAAU,EAAE,CAAC;YAChD,wEAAwE;YACxE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;QAC7E,iEAAiE;QACjE,MAAM,aAAa,GAAG,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB;QACpE,MAAM,MAAM,GAAG,MAAM,8BAA8B,CAAC;YAClD,YAAY,EAAE,aAAa;SAC5B,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;YACd,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACtD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,UAAU,EAAE,CAAC;YAChD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACnE,gDAAgD;QAChD,MAAM,eAAe,GAAG,iCAAiC,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC3E,MAAM,MAAM,GAAG,MAAM,8BAA8B,CAAC;YAClD,YAAY,EAAE,eAAe;SAC9B,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YACnC,MAAM,CAAE,MAAM,CAAC,KAAe,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;QACvD,MAAM,kBAAkB,GAAG,2BAA2B,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACxE,MAAM,MAAM,GAAG,MAAM,8BAA8B,CAAC;YAClD,YAAY,EAAE,kBAAkB;SACjC,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YACnC,MAAM,CAAE,MAAM,CAAC,KAAe,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -31,7 +31,7 @@ async function $do(client, request, options) {
|
|
|
31
31
|
"use_rss_chat_links": payload?.use_rss_chat_links,
|
|
32
32
|
});
|
|
33
33
|
const headers = new Headers(compactMap({
|
|
34
|
-
Accept: "application/json;q=1",
|
|
34
|
+
Accept: "application/json;q=1, application/rss+xml;q=0",
|
|
35
35
|
}));
|
|
36
36
|
const secConfig = await extractSecurity(client._options.apiKey);
|
|
37
37
|
const securityInput = secConfig == null ? {} : { apiKey: secConfig };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modelsList.js","sourceRoot":"","sources":["../../../src/funcs/modelsList.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,CAAC,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAQ3C,OAAO,KAAK,MAAM,MAAM,2BAA2B,CAAC;AAIpD,OAAO,KAAK,UAAU,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAW,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGxD;;GAEG;AACH,MAAM,UAAU,UAAU,CACxB,MAAsB,EACtB,OAAkD,EAClD,OAAwB;IAexB,OAAO,IAAI,UAAU,CAAC,GAAG,CACvB,MAAM,EACN,OAAO,EACP,OAAO,CACR,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,GAAG,CAChB,MAAsB,EACtB,OAAkD,EAClD,OAAwB;IAkBxB,MAAM,MAAM,GAAG,SAAS,CACtB,OAAO,EACP,CAAC,KAAK,EAAE,EAAE,CACR,UAAU,CAAC,gCAAgC,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EACrE,yBAAyB,CAC1B,CAAC;IACF,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,OAAO,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IACzC,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC;IAC7B,MAAM,IAAI,GAAG,IAAI,CAAC;IAElB,MAAM,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;IAErC,MAAM,KAAK,GAAG,eAAe,CAAC;QAC5B,UAAU,EAAE,OAAO,EAAE,QAAQ;QAC7B,sBAAsB,EAAE,OAAO,EAAE,oBAAoB;QACrD,SAAS,EAAE,OAAO,EAAE,OAAO;QAC3B,oBAAoB,EAAE,OAAO,EAAE,kBAAkB;KAClD,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC;QACrC,MAAM,EAAE
|
|
1
|
+
{"version":3,"file":"modelsList.js","sourceRoot":"","sources":["../../../src/funcs/modelsList.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/lib/config.d.ts
CHANGED
|
@@ -37,8 +37,8 @@ export declare function serverURLFromOptions(options: SDKOptions): URL | null;
|
|
|
37
37
|
export declare const SDK_METADATA: {
|
|
38
38
|
readonly language: "typescript";
|
|
39
39
|
readonly openapiDocVersion: "1.0.0";
|
|
40
|
-
readonly sdkVersion: "0.0.0-beta.
|
|
41
|
-
readonly genVersion: "2.723.
|
|
42
|
-
readonly userAgent: "speakeasy-sdk/typescript 0.0.0-beta.
|
|
40
|
+
readonly sdkVersion: "0.0.0-beta.39";
|
|
41
|
+
readonly genVersion: "2.723.11";
|
|
42
|
+
readonly userAgent: "speakeasy-sdk/typescript 0.0.0-beta.39 2.723.11 1.0.0 @openrouter/sdk";
|
|
43
43
|
};
|
|
44
44
|
//# sourceMappingURL=config.d.ts.map
|
package/dist/esm/lib/config.js
CHANGED
|
@@ -25,8 +25,8 @@ export function serverURLFromOptions(options) {
|
|
|
25
25
|
export const SDK_METADATA = {
|
|
26
26
|
language: "typescript",
|
|
27
27
|
openapiDocVersion: "1.0.0",
|
|
28
|
-
sdkVersion: "0.0.0-beta.
|
|
29
|
-
genVersion: "2.723.
|
|
30
|
-
userAgent: "speakeasy-sdk/typescript 0.0.0-beta.
|
|
28
|
+
sdkVersion: "0.0.0-beta.39",
|
|
29
|
+
genVersion: "2.723.11",
|
|
30
|
+
userAgent: "speakeasy-sdk/typescript 0.0.0-beta.39 2.723.11 1.0.0 @openrouter/sdk",
|
|
31
31
|
};
|
|
32
32
|
//# sourceMappingURL=config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/lib/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAU,UAAU,EAAE,MAAM,UAAU,CAAC;AAE9C;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,YAAY,CAAC;AAC7C;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,CAAC,gBAAgB,CAAC,EAAE,8BAA8B;CAC1C,CAAC;AA0BX,MAAM,UAAU,oBAAoB,CAAC,OAAmB;IACtD,IAAI,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IAElC,MAAM,MAAM,GAAW,EAAE,CAAC;IAE1B,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,gBAAgB,CAAC;QAClD,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;IACxC,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,QAAQ,EAAE,YAAY;IACtB,iBAAiB,EAAE,OAAO;IAC1B,UAAU,EAAE,eAAe;IAC3B,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/lib/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAU,UAAU,EAAE,MAAM,UAAU,CAAC;AAE9C;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,YAAY,CAAC;AAC7C;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,CAAC,gBAAgB,CAAC,EAAE,8BAA8B;CAC1C,CAAC;AA0BX,MAAM,UAAU,oBAAoB,CAAC,OAAmB;IACtD,IAAI,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IAElC,MAAM,MAAM,GAAW,EAAE,CAAC;IAE1B,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,gBAAgB,CAAC;QAClD,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;IACxC,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,QAAQ,EAAE,YAAY;IACtB,iBAAiB,EAAE,OAAO;IAC1B,UAAU,EAAE,eAAe;IAC3B,UAAU,EAAE,UAAU;IACtB,SAAS,EACP,uEAAuE;CACjE,CAAC"}
|