@effect/platform 0.72.1 → 0.72.2

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.
@@ -1 +1 @@
1
- {"version":3,"file":"OpenApi.js","names":["Context","constFalse","globalValue","Option","Schema","HttpApi","HttpApiMiddleware","HttpApiSchema","HttpMethod","JsonSchema","Identifier","Tag","Title","Version","Description","License","ExternalDocs","Servers","Format","Summary","Deprecated","Override","Exclude","Reference","defaultValue","Transform","contextPartial","tags","entries","Object","options","context","empty","key","tag","undefined","add","annotations","identifier","title","version","description","license","summary","externalDocs","servers","format","override","exclude","transform","apiCache","WeakMap","fromApi","self","has","get","api","jsonSchemaDefs","spec","openapi","info","getOrElse","paths","components","schemas","securitySchemes","security","makeJsonSchemaOrRef","schema","makeWithDefs","defs","registerSecurity","name","scheme","makeSecurityScheme","map","getOption","AdditionalSchemas","componentSchemas","forEach","componentSchema","assign","middlewares","middleware","isSecurity","push","reflect","onGroup","group","fn","onEndpoint","endpoint","errors","mergedAnnotations","payloads","successes","path","replace","method","toLowerCase","op","operationId","topLevel","parameters","responses","deprecated","size","content","ast","contentType","make","requestBody","required","status","pipe","filter","getEmptyDecodeable","isSome","pathSchema","value","properties","jsonSchema","in","includes","hasBody","payloadSchema","headersSchema","urlParamsSchema","transformFn","set","meta","_tag","type","bearerFormat","getOrUndefined"],"sources":["../../src/OpenApi.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,OAAO,MAAM,gBAAgB;AACzC,SAASC,UAAU,QAAQ,iBAAiB;AAC5C,SAASC,WAAW,QAAQ,oBAAoB;AAChD,OAAO,KAAKC,MAAM,MAAM,eAAe;AAEvC,OAAO,KAAKC,MAAM,MAAM,eAAe;AAEvC,OAAO,KAAKC,OAAO,MAAM,cAAc;AACvC,OAAO,KAAKC,iBAAiB,MAAM,wBAAwB;AAC3D,OAAO,KAAKC,aAAa,MAAM,oBAAoB;AAEnD,OAAO,KAAKC,UAAU,MAAM,iBAAiB;AAC7C,OAAO,KAAKC,UAAU,MAAM,wBAAwB;AAEpD;;;;AAIA,OAAM,MAAOC,UAAW,sBAAQV,OAAO,CAACW,GAAG,CAAC,qCAAqC,CAAC,EAAsB;AAExG;;;;AAIA,OAAM,MAAOC,KAAM,sBAAQZ,OAAO,CAACW,GAAG,CAAC,gCAAgC,CAAC,EAAiB;AAEzF;;;;AAIA,OAAM,MAAOE,OAAQ,sBAAQb,OAAO,CAACW,GAAG,CAAC,kCAAkC,CAAC,EAAmB;AAE/F;;;;AAIA,OAAM,MAAOG,WAAY,sBAAQd,OAAO,CAACW,GAAG,CAAC,sCAAsC,CAAC,EAAuB;AAE3G;;;;AAIA,OAAM,MAAOI,OAAQ,sBAAQf,OAAO,CAACW,GAAG,CAAC,kCAAkC,CAAC,EAA+B;AAE3G;;;;AAIA,OAAM,MAAOK,YACX,sBAAQhB,OAAO,CAACW,GAAG,CAAC,uCAAuC,CAAC,EAAyC;AAGvG;;;;AAIA,OAAM,MAAOM,OACX,sBAAQjB,OAAO,CAACW,GAAG,CAAC,kCAAkC,CAAC,EAA6C;AAGtG;;;;AAIA,OAAM,MAAOO,MAAO,sBAAQlB,OAAO,CAACW,GAAG,CAAC,iCAAiC,CAAC,EAAkB;AAE5F;;;;AAIA,OAAM,MAAOQ,OAAQ,sBAAQnB,OAAO,CAACW,GAAG,CAAC,kCAAkC,CAAC,EAAmB;AAE/F;;;;AAIA,OAAM,MAAOS,UAAW,sBAAQpB,OAAO,CAACW,GAAG,CAAC,qCAAqC,CAAC,EAAuB;AAEzG;;;;AAIA,OAAM,MAAOU,QAAS,sBAAQrB,OAAO,CAACW,GAAG,CAAC,mCAAmC,CAAC,EAAqC;AAEnH;;;;AAIA,OAAM,MAAOW,OAAQ,sBAAQtB,OAAO,CAACuB,SAAS,EAAW,CAAC,kCAAkC,EAAE;EAC5FC,YAAY,EAAEvB;CACf,CAAC;AAEF;;;;;AAKA,OAAM,MAAOwB,SAAU,sBAAQzB,OAAO,CAACW,GAAG,CAAC,oCAAoC,CAAC,EAG7E;AAEH,MAAMe,cAAc,GAAwDC,IAAU,IAIxD;EAC5B,MAAMC,OAAO,GAAGC,MAAM,CAACD,OAAO,CAACD,IAAI,CAAC;EACpC,OAAQG,OAAO,IAAI;IACjB,IAAIC,OAAO,GAAG/B,OAAO,CAACgC,KAAK,EAAE;IAC7B,KAAK,MAAM,CAACC,GAAG,EAAEC,GAAG,CAAC,IAAIN,OAAO,EAAE;MAChC,IAAIE,OAAO,CAACG,GAAG,CAAC,KAAKE,SAAS,EAAE;QAC9BJ,OAAO,GAAG/B,OAAO,CAACoC,GAAG,CAACL,OAAO,EAAEG,GAAG,EAAEJ,OAAO,CAACG,GAAG,CAAE,CAAC;MACpD;IACF;IACA,OAAOF,OAAO;EAChB,CAAC;AACH,CAAC;AAED;;;;AAIA,OAAO,MAAMM,WAAW,gBAeMX,cAAc,CAAC;EAC3CY,UAAU,EAAE5B,UAAU;EACtB6B,KAAK,EAAE3B,KAAK;EACZ4B,OAAO,EAAE3B,OAAO;EAChB4B,WAAW,EAAE3B,WAAW;EACxB4B,OAAO,EAAE3B,OAAO;EAChB4B,OAAO,EAAExB,OAAO;EAChByB,YAAY,EAAE5B,YAAY;EAC1B6B,OAAO,EAAE5B,OAAO;EAChB6B,MAAM,EAAE5B,MAAM;EACd6B,QAAQ,EAAE1B,QAAQ;EAClB2B,OAAO,EAAE1B,OAAO;EAChB2B,SAAS,EAAExB;CACZ,CAAC;AAEF,MAAMyB,QAAQ,gBAAGhD,WAAW,CAAC,mCAAmC,EAAE,MAAM,IAAIiD,OAAO,EAAoC,CAAC;AAExH;;;;AAIA,OAAO,MAAMC,OAAO,GAAmCC,IAAO,IAAiB;EAC7E,IAAIH,QAAQ,CAACI,GAAG,CAACD,IAAI,CAAC,EAAE;IACtB,OAAOH,QAAQ,CAACK,GAAG,CAACF,IAAI,CAAE;EAC5B;EACA,MAAMG,GAAG,GAAGH,IAA+C;EAC3D,MAAMI,cAAc,GAA0C,EAAE;EAChE,IAAIC,IAAI,GAA6B;IACnCC,OAAO,EAAE,OAAO;IAChBC,IAAI,EAAE;MACJrB,KAAK,EAAEvC,OAAO,CAAC6D,SAAS,CAACL,GAAG,CAACnB,WAAW,EAAEzB,KAAK,EAAE,MAAM,KAAK,CAAC;MAC7D4B,OAAO,EAAExC,OAAO,CAAC6D,SAAS,CAACL,GAAG,CAACnB,WAAW,EAAExB,OAAO,EAAE,MAAM,OAAO;KACnE;IACDiD,KAAK,EAAE,EAAE;IACTnC,IAAI,EAAE,EAAE;IACRoC,UAAU,EAAE;MACVC,OAAO,EAAEP,cAAc;MACvBQ,eAAe,EAAE;KAClB;IACDC,QAAQ,EAAE;GACX;EACD,SAASC,mBAAmBA,CAACC,MAAyB;IACpD,OAAO3D,UAAU,CAAC4D,YAAY,CAACD,MAAa,EAAE;MAC5CE,IAAI,EAAEb;KACP,CAAC;EACJ;EACA,SAASc,gBAAgBA,CACvBC,IAAY,EACZN,QAAyB;IAEzB,IAAIR,IAAI,CAACK,UAAW,CAACE,eAAgB,CAACO,IAAI,CAAC,EAAE;MAC3C;IACF;IACA,MAAMC,MAAM,GAAGC,kBAAkB,CAACR,QAAQ,CAAC;IAC3CR,IAAI,CAACK,UAAW,CAACE,eAAgB,CAACO,IAAI,CAAC,GAAGC,MAAM;EAClD;EACAtE,MAAM,CAACwE,GAAG,CAAC3E,OAAO,CAAC4E,SAAS,CAACpB,GAAG,CAACnB,WAAW,EAAEhC,OAAO,CAACwE,iBAAiB,CAAC,EAAGC,gBAAgB,IAAI;IAC7FA,gBAAgB,CAACC,OAAO,CAAEC,eAAe,IAAKb,mBAAmB,CAACa,eAAe,CAAC,CAAC;EACrF,CAAC,CAAC;EACF7E,MAAM,CAACwE,GAAG,CAAC3E,OAAO,CAAC4E,SAAS,CAACpB,GAAG,CAACnB,WAAW,EAAEvB,WAAW,CAAC,EAAG2B,WAAW,IAAI;IAC1EiB,IAAI,CAACE,IAAI,CAACnB,WAAW,GAAGA,WAAW;EACrC,CAAC,CAAC;EACFtC,MAAM,CAACwE,GAAG,CAAC3E,OAAO,CAAC4E,SAAS,CAACpB,GAAG,CAACnB,WAAW,EAAEtB,OAAO,CAAC,EAAG2B,OAAO,IAAI;IAClEgB,IAAI,CAACE,IAAI,CAAClB,OAAO,GAAGA,OAAO;EAC7B,CAAC,CAAC;EACFvC,MAAM,CAACwE,GAAG,CAAC3E,OAAO,CAAC4E,SAAS,CAACpB,GAAG,CAACnB,WAAW,EAAElB,OAAO,CAAC,EAAGwB,OAAO,IAAI;IAClEe,IAAI,CAACE,IAAI,CAACjB,OAAO,GAAGA,OAAc;EACpC,CAAC,CAAC;EACFxC,MAAM,CAACwE,GAAG,CAAC3E,OAAO,CAAC4E,SAAS,CAACpB,GAAG,CAACnB,WAAW,EAAEpB,OAAO,CAAC,EAAG4B,OAAO,IAAI;IAClEa,IAAI,CAACb,OAAO,GAAGA,OAAc;EAC/B,CAAC,CAAC;EACF1C,MAAM,CAACwE,GAAG,CAAC3E,OAAO,CAAC4E,SAAS,CAACpB,GAAG,CAACnB,WAAW,EAAEhB,QAAQ,CAAC,EAAG0B,QAAQ,IAAI;IACpElB,MAAM,CAACoD,MAAM,CAACvB,IAAI,EAAEX,QAAQ,CAAC;EAC/B,CAAC,CAAC;EACFS,GAAG,CAAC0B,WAAW,CAACH,OAAO,CAAEI,UAAU,IAAI;IACrC,IAAI,CAAC7E,iBAAiB,CAAC8E,UAAU,CAACD,UAAU,CAAC,EAAE;MAC7C;IACF;IACA,KAAK,MAAM,CAACX,IAAI,EAAEN,QAAQ,CAAC,IAAIrC,MAAM,CAACD,OAAO,CAACuD,UAAU,CAACjB,QAAQ,CAAC,EAAE;MAClEK,gBAAgB,CAACC,IAAI,EAAEN,QAAQ,CAAC;MAChCR,IAAI,CAACQ,QAAS,CAACmB,IAAI,CAAC;QAAE,CAACb,IAAI,GAAG;MAAE,CAAE,CAAC;IACrC;EACF,CAAC,CAAC;EACFnE,OAAO,CAACiF,OAAO,CAAC9B,GAAU,EAAE;IAC1B+B,OAAOA,CAAC;MAAEC;IAAK,CAAE;MACf,IAAIxF,OAAO,CAACuD,GAAG,CAACiC,KAAK,CAACnD,WAAW,EAAEf,OAAO,CAAC,EAAE;QAC3C;MACF;MACA,IAAIY,GAAG,GAA4B;QACjCsC,IAAI,EAAExE,OAAO,CAAC6D,SAAS,CAAC2B,KAAK,CAACnD,WAAW,EAAEzB,KAAK,EAAE,MAAM4E,KAAK,CAAClD,UAAU;OACzE;MACDnC,MAAM,CAACwE,GAAG,CAAC3E,OAAO,CAAC4E,SAAS,CAACY,KAAK,CAACnD,WAAW,EAAEvB,WAAW,CAAC,EAAG2B,WAAW,IAAI;QAC5EP,GAAG,CAACO,WAAW,GAAGA,WAAW;MAC/B,CAAC,CAAC;MACFtC,MAAM,CAACwE,GAAG,CAAC3E,OAAO,CAAC4E,SAAS,CAACY,KAAK,CAACnD,WAAW,EAAErB,YAAY,CAAC,EAAG4B,YAAY,IAAI;QAC9EV,GAAG,CAACU,YAAY,GAAGA,YAAY;MACjC,CAAC,CAAC;MACFzC,MAAM,CAACwE,GAAG,CAAC3E,OAAO,CAAC4E,SAAS,CAACY,KAAK,CAACnD,WAAW,EAAEhB,QAAQ,CAAC,EAAG0B,QAAQ,IAAI;QACtElB,MAAM,CAACoD,MAAM,CAAC/C,GAAG,EAAEa,QAAQ,CAAC;MAC9B,CAAC,CAAC;MACF5C,MAAM,CAACwE,GAAG,CAAC3E,OAAO,CAAC4E,SAAS,CAACY,KAAK,CAACnD,WAAW,EAAEZ,SAAS,CAAC,EAAGgE,EAAE,IAAI;QACjEvD,GAAG,GAAGuD,EAAE,CAACvD,GAAG,CAAmB;MACjC,CAAC,CAAC;MACFwB,IAAI,CAAC/B,IAAK,CAAC0D,IAAI,CAACnD,GAAG,CAAC;IACtB,CAAC;IACDwD,UAAUA,CAAC;MAAEC,QAAQ;MAAEC,MAAM;MAAEJ,KAAK;MAAEK,iBAAiB;MAAEV,UAAU;MAAEW,QAAQ;MAAEC;IAAS,CAAE;MACxF,IAAI/F,OAAO,CAACuD,GAAG,CAACsC,iBAAiB,EAAEvE,OAAO,CAAC,EAAE;QAC3C;MACF;MACA,MAAM0E,IAAI,GAAGL,QAAQ,CAACK,IAAI,CAACC,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC;MAC1D,MAAMC,MAAM,GAAGP,QAAQ,CAACO,MAAM,CAACC,WAAW,EAA2B;MACrE,IAAIC,EAAE,GAAsC;QAC1CzE,IAAI,EAAE,CAAC3B,OAAO,CAAC6D,SAAS,CAAC2B,KAAK,CAACnD,WAAW,EAAEzB,KAAK,EAAE,MAAM4E,KAAK,CAAClD,UAAU,CAAC,CAAC;QAC3E+D,WAAW,EAAErG,OAAO,CAAC6D,SAAS,CAC5B8B,QAAQ,CAACtD,WAAW,EACpB3B,UAAU,EACV,MAAM8E,KAAK,CAACc,QAAQ,GAAGX,QAAQ,CAACnB,IAAI,GAAG,GAAGgB,KAAK,CAAClD,UAAU,IAAIqD,QAAQ,CAACnB,IAAI,EAAE,CAC9E;QACD+B,UAAU,EAAE,EAAE;QACdrC,QAAQ,EAAE,EAAE;QACZsC,SAAS,EAAE;OACZ;MACDrG,MAAM,CAACwE,GAAG,CAAC3E,OAAO,CAAC4E,SAAS,CAACe,QAAQ,CAACtD,WAAW,EAAEvB,WAAW,CAAC,EAAG2B,WAAW,IAAI;QAC/E2D,EAAE,CAAC3D,WAAW,GAAGA,WAAW;MAC9B,CAAC,CAAC;MACFtC,MAAM,CAACwE,GAAG,CAAC3E,OAAO,CAAC4E,SAAS,CAACe,QAAQ,CAACtD,WAAW,EAAElB,OAAO,CAAC,EAAGwB,OAAO,IAAI;QACvEyD,EAAE,CAACzD,OAAO,GAAGA,OAAO;MACtB,CAAC,CAAC;MACFxC,MAAM,CAACwE,GAAG,CAAC3E,OAAO,CAAC4E,SAAS,CAACe,QAAQ,CAACtD,WAAW,EAAEjB,UAAU,CAAC,EAAGqF,UAAU,IAAI;QAC7EL,EAAE,CAACK,UAAU,GAAGA,UAAU;MAC5B,CAAC,CAAC;MACFtG,MAAM,CAACwE,GAAG,CAAC3E,OAAO,CAAC4E,SAAS,CAACe,QAAQ,CAACtD,WAAW,EAAErB,YAAY,CAAC,EAAG4B,YAAY,IAAI;QACjFwD,EAAE,CAACxD,YAAY,GAAGA,YAAY;MAChC,CAAC,CAAC;MACFuC,UAAU,CAACJ,OAAO,CAAEI,UAAU,IAAI;QAChC,IAAI,CAAC7E,iBAAiB,CAAC8E,UAAU,CAACD,UAAU,CAAC,EAAE;UAC7C;QACF;QACA,KAAK,MAAM,CAACX,IAAI,EAAEN,QAAQ,CAAC,IAAIrC,MAAM,CAACD,OAAO,CAACuD,UAAU,CAACjB,QAAQ,CAAC,EAAE;UAClEK,gBAAgB,CAACC,IAAI,EAAEN,QAAQ,CAAC;UAChCkC,EAAE,CAAClC,QAAS,CAACmB,IAAI,CAAC;YAAE,CAACb,IAAI,GAAG;UAAE,CAAE,CAAC;QACnC;MACF,CAAC,CAAC;MACF,IAAIsB,QAAQ,CAACY,IAAI,GAAG,CAAC,EAAE;QACrB,MAAMC,OAAO,GAAgC,EAAE;QAC/Cb,QAAQ,CAACf,OAAO,CAAC,CAAC;UAAE6B;QAAG,CAAE,EAAEC,WAAW,KAAI;UACxCF,OAAO,CAACE,WAAqC,CAAC,GAAG;YAC/CzC,MAAM,EAAED,mBAAmB,CAAC/D,MAAM,CAAC0G,IAAI,CAACF,GAAG,CAAC;WAC7C;QACH,CAAC,CAAC;QACFR,EAAE,CAACW,WAAW,GAAG;UAAEJ,OAAO;UAAEK,QAAQ,EAAE;QAAI,CAAE;MAC9C;MACA,KAAK,MAAM,CAACC,MAAM,EAAE;QAAEL,GAAG;QAAEnE;MAAW,CAAE,CAAC,IAAIsD,SAAS,EAAE;QACtD,IAAIK,EAAE,CAACI,SAAU,CAACS,MAAM,CAAC,EAAE;QAC3Bb,EAAE,CAACI,SAAU,CAACS,MAAM,CAAC,GAAG;UACtBxE,WAAW,EAAEtC,MAAM,CAAC0D,SAAS,CAACpB,WAAW,EAAE,MAAM,SAAS;SAC3D;QACDmE,GAAG,CAACM,IAAI,CACN/G,MAAM,CAACgH,MAAM,CAAEP,GAAG,IAAK,CAACrG,aAAa,CAAC6G,kBAAkB,CAACR,GAAG,CAAC,CAAC,EAC9DzG,MAAM,CAACwE,GAAG,CAAEiC,GAAG,IAAI;UACjBR,EAAE,CAACI,SAAU,CAACS,MAAM,CAAC,CAACN,OAAO,GAAG;YAC9B,kBAAkB,EAAE;cAClBvC,MAAM,EAAED,mBAAmB,CAAC/D,MAAM,CAAC0G,IAAI,CAACF,GAAG,CAAC;;WAE/C;QACH,CAAC,CAAC,CACH;MACH;MACA,IAAIzG,MAAM,CAACkH,MAAM,CAAC1B,QAAQ,CAAC2B,UAAU,CAAC,EAAE;QACtC,MAAMlD,MAAM,GAAGD,mBAAmB,CAACwB,QAAQ,CAAC2B,UAAU,CAACC,KAAK,CAAsB;QAClF,IAAI,YAAY,IAAInD,MAAM,EAAE;UAC1BvC,MAAM,CAACD,OAAO,CAACwC,MAAM,CAACoD,UAAU,CAAC,CAACzC,OAAO,CAAC,CAAC,CAACP,IAAI,EAAEiD,UAAU,CAAC,KAAI;YAC/DrB,EAAE,CAACG,UAAW,CAAClB,IAAI,CAAC;cAClBb,IAAI;cACJkD,EAAE,EAAE,MAAM;cACVtD,MAAM,EAAEqD,UAAU;cAClBT,QAAQ,EAAE5C,MAAM,CAAC4C,QAAQ,CAACW,QAAQ,CAACnD,IAAI,CAAC;cACxC,IAAIiD,UAAU,CAAChF,WAAW,GAAG;gBAAEA,WAAW,EAAEgF,UAAU,CAAChF;cAAW,CAAE,GAAG,EAAE;aAC1E,CAAC;UACJ,CAAC,CAAC;QACJ;MACF;MACA,IAAI,CAACjC,UAAU,CAACoH,OAAO,CAACjC,QAAQ,CAACO,MAAM,CAAC,IAAI/F,MAAM,CAACkH,MAAM,CAAC1B,QAAQ,CAACkC,aAAa,CAAC,EAAE;QACjF,MAAMzD,MAAM,GAAGD,mBAAmB,CAACwB,QAAQ,CAACkC,aAAa,CAACN,KAAK,CAAsB;QACrF,IAAI,YAAY,IAAInD,MAAM,EAAE;UAC1BvC,MAAM,CAACD,OAAO,CAACwC,MAAM,CAACoD,UAAU,CAAC,CAACzC,OAAO,CAAC,CAAC,CAACP,IAAI,EAAEiD,UAAU,CAAC,KAAI;YAC/DrB,EAAE,CAACG,UAAW,CAAClB,IAAI,CAAC;cAClBb,IAAI;cACJkD,EAAE,EAAE,OAAO;cACXtD,MAAM,EAAEqD,UAAU;cAClBT,QAAQ,EAAE5C,MAAM,CAAC4C,QAAQ,CAACW,QAAQ,CAACnD,IAAI,CAAC;cACxC,IAAIiD,UAAU,CAAChF,WAAW,GAAG;gBAAEA,WAAW,EAAEgF,UAAU,CAAChF;cAAW,CAAE,GAAG,EAAE;aAC1E,CAAC;UACJ,CAAC,CAAC;QACJ;MACF;MACA,IAAItC,MAAM,CAACkH,MAAM,CAAC1B,QAAQ,CAACmC,aAAa,CAAC,EAAE;QACzC,MAAM1D,MAAM,GAAGD,mBAAmB,CAACwB,QAAQ,CAACmC,aAAa,CAACP,KAAK,CAAsB;QACrF,IAAI,YAAY,IAAInD,MAAM,EAAE;UAC1BvC,MAAM,CAACD,OAAO,CAACwC,MAAM,CAACoD,UAAU,CAAC,CAACzC,OAAO,CAAC,CAAC,CAACP,IAAI,EAAEiD,UAAU,CAAC,KAAI;YAC/DrB,EAAE,CAACG,UAAW,CAAClB,IAAI,CAAC;cAClBb,IAAI;cACJkD,EAAE,EAAE,QAAQ;cACZtD,MAAM,EAAEqD,UAAU;cAClBT,QAAQ,EAAE5C,MAAM,CAAC4C,QAAQ,CAACW,QAAQ,CAACnD,IAAI,CAAC;cACxC,IAAIiD,UAAU,CAAChF,WAAW,GAAG;gBAAEA,WAAW,EAAEgF,UAAU,CAAChF;cAAW,CAAE,GAAG,EAAE;aAC1E,CAAC;UACJ,CAAC,CAAC;QACJ;MACF;MACA,IAAItC,MAAM,CAACkH,MAAM,CAAC1B,QAAQ,CAACoC,eAAe,CAAC,EAAE;QAC3C,MAAM3D,MAAM,GAAGD,mBAAmB,CAACwB,QAAQ,CAACoC,eAAe,CAACR,KAAK,CAAsB;QACvF,IAAI,YAAY,IAAInD,MAAM,EAAE;UAC1BvC,MAAM,CAACD,OAAO,CAACwC,MAAM,CAACoD,UAAU,CAAC,CAACzC,OAAO,CAAC,CAAC,CAACP,IAAI,EAAEiD,UAAU,CAAC,KAAI;YAC/DrB,EAAE,CAACG,UAAW,CAAClB,IAAI,CAAC;cAClBb,IAAI;cACJkD,EAAE,EAAE,OAAO;cACXtD,MAAM,EAAEqD,UAAU;cAClBT,QAAQ,EAAE5C,MAAM,CAAC4C,QAAQ,CAACW,QAAQ,CAACnD,IAAI,CAAC;cACxC,IAAIiD,UAAU,CAAChF,WAAW,GAAG;gBAAEA,WAAW,EAAEgF,UAAU,CAAChF;cAAW,CAAE,GAAG,EAAE;aAC1E,CAAC;UACJ,CAAC,CAAC;QACJ;MACF;MACA,KAAK,MAAM,CAACwE,MAAM,EAAE;QAAEL,GAAG;QAAEnE;MAAW,CAAE,CAAC,IAAImD,MAAM,EAAE;QACnD,IAAIQ,EAAE,CAACI,SAAU,CAACS,MAAM,CAAC,EAAE;QAC3Bb,EAAE,CAACI,SAAU,CAACS,MAAM,CAAC,GAAG;UACtBxE,WAAW,EAAEtC,MAAM,CAAC0D,SAAS,CAACpB,WAAW,EAAE,MAAM,OAAO;SACzD;QACDmE,GAAG,CAACM,IAAI,CACN/G,MAAM,CAACgH,MAAM,CAAEP,GAAG,IAAK,CAACrG,aAAa,CAAC6G,kBAAkB,CAACR,GAAG,CAAC,CAAC,EAC9DzG,MAAM,CAACwE,GAAG,CAAEiC,GAAG,IAAI;UACjBR,EAAE,CAACI,SAAU,CAACS,MAAM,CAAC,CAACN,OAAO,GAAG;YAC9B,kBAAkB,EAAE;cAClBvC,MAAM,EAAED,mBAAmB,CAAC/D,MAAM,CAAC0G,IAAI,CAACF,GAAG,CAAC;;WAE/C;QACH,CAAC,CAAC,CACH;MACH;MACA,IAAI,CAAClD,IAAI,CAACI,KAAK,CAACkC,IAAI,CAAC,EAAE;QACrBtC,IAAI,CAACI,KAAK,CAACkC,IAAI,CAAC,GAAG,EAAE;MACvB;MACA7F,MAAM,CAACwE,GAAG,CAAC3E,OAAO,CAAC4E,SAAS,CAACe,QAAQ,CAACtD,WAAW,EAAEhB,QAAQ,CAAC,EAAG0B,QAAQ,IAAI;QACzElB,MAAM,CAACoD,MAAM,CAACmB,EAAE,EAAErD,QAAQ,CAAC;MAC7B,CAAC,CAAC;MACF5C,MAAM,CAACwE,GAAG,CAAC3E,OAAO,CAAC4E,SAAS,CAACe,QAAQ,CAACtD,WAAW,EAAEZ,SAAS,CAAC,EAAGuG,WAAW,IAAI;QAC7E5B,EAAE,GAAG4B,WAAW,CAAC5B,EAAE,CAAC;MACtB,CAAC,CAAC;MACF1C,IAAI,CAACI,KAAK,CAACkC,IAAI,CAAC,CAACE,MAAM,CAAC,GAAGE,EAAE;IAC/B;GACD,CAAC;EAEFjG,MAAM,CAACwE,GAAG,CAAC3E,OAAO,CAAC4E,SAAS,CAACpB,GAAG,CAACnB,WAAW,EAAEZ,SAAS,CAAC,EAAGuG,WAAW,IAAI;IACxEtE,IAAI,GAAGsE,WAAW,CAACtE,IAAI,CAAgB;EACzC,CAAC,CAAC;EAEFR,QAAQ,CAAC+E,GAAG,CAAC5E,IAAI,EAAEK,IAAI,CAAC;EAExB,OAAOA,IAAI;AACb,CAAC;AAED,MAAMgB,kBAAkB,GAAIR,QAAyB,IAA2B;EAC9E,MAAMgE,IAAI,GAA4C,EAAE;EACxD/H,MAAM,CAACwE,GAAG,CAAC3E,OAAO,CAAC4E,SAAS,CAACV,QAAQ,CAAC7B,WAAW,EAAEvB,WAAW,CAAC,EAAG2B,WAAW,IAAI;IAC/EyF,IAAI,CAACzF,WAAW,GAAGA,WAAW;EAChC,CAAC,CAAC;EACF,QAAQyB,QAAQ,CAACiE,IAAI;IACnB,KAAK,OAAO;MAAE;QACZ,OAAO;UACL,GAAGD,IAAI;UACPE,IAAI,EAAE,MAAM;UACZ3D,MAAM,EAAE;SACT;MACH;IACA,KAAK,QAAQ;MAAE;QACb,MAAM3B,MAAM,GAAG9C,OAAO,CAAC4E,SAAS,CAACV,QAAQ,CAAC7B,WAAW,EAAEnB,MAAM,CAAC,CAACgG,IAAI,CACjE/G,MAAM,CAACwE,GAAG,CAAE7B,MAAM,KAAM;UAAEuF,YAAY,EAAEvF;QAAM,CAAE,CAAC,CAAC,EAClD3C,MAAM,CAACmI,cAAc,CACtB;QACD,OAAO;UACL,GAAGJ,IAAI;UACPE,IAAI,EAAE,MAAM;UACZ3D,MAAM,EAAE,QAAQ;UAChB,GAAG3B;SACJ;MACH;IACA,KAAK,QAAQ;MAAE;QACb,OAAO;UACL,GAAGoF,IAAI;UACPE,IAAI,EAAE,QAAQ;UACd5D,IAAI,EAAEN,QAAQ,CAACjC,GAAG;UAClByF,EAAE,EAAExD,QAAQ,CAACwD;SACd;MACH;EACF;AACF,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"OpenApi.js","names":["Context","constFalse","globalValue","Option","HttpApi","HttpApiMiddleware","HttpApiSchema","HttpMethod","JsonSchema","Identifier","Tag","Title","Version","Description","License","ExternalDocs","Servers","Format","Summary","Deprecated","Override","Exclude","Reference","defaultValue","Transform","contextPartial","tags","entries","Object","options","context","empty","key","tag","undefined","add","annotations","identifier","title","version","description","license","summary","deprecated","externalDocs","servers","format","override","exclude","transform","apiCache","WeakMap","fromApi","self","has","get","api","jsonSchemaDefs","spec","openapi","info","getOrElse","paths","components","schemas","securitySchemes","security","makeJsonSchemaOrRef","ast","fromAST","defs","registerSecurity","name","scheme","makeSecurityScheme","map","getOption","AdditionalSchemas","componentSchemas","forEach","componentSchema","assign","middlewares","middleware","isSecurity","push","reflect","onGroup","group","fn","onEndpoint","endpoint","errors","mergedAnnotations","payloads","successes","op","operationId","topLevel","parameters","responses","processResponseMap","defaultDescription","status","pipe","filter","getEmptyDecodeable","encoding","getEncoding","content","contentType","schema","processParameters","i","isSome","jsonSchema","value","properties","psJsonSchema","in","required","includes","hasBody","method","size","requestBody","pathSchema","payloadSchema","headersSchema","urlParamsSchema","path","replace","toLowerCase","transformFn","set","meta","_tag","type","bearerFormat","getOrUndefined"],"sources":["../../src/OpenApi.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,OAAO,MAAM,gBAAgB;AACzC,SAASC,UAAU,QAAQ,iBAAiB;AAC5C,SAASC,WAAW,QAAQ,oBAAoB;AAChD,OAAO,KAAKC,MAAM,MAAM,eAAe;AAKvC,OAAO,KAAKC,OAAO,MAAM,cAAc;AACvC,OAAO,KAAKC,iBAAiB,MAAM,wBAAwB;AAC3D,OAAO,KAAKC,aAAa,MAAM,oBAAoB;AAEnD,OAAO,KAAKC,UAAU,MAAM,iBAAiB;AAC7C,OAAO,KAAKC,UAAU,MAAM,wBAAwB;AAEpD;;;;AAIA,OAAM,MAAOC,UAAW,sBAAQT,OAAO,CAACU,GAAG,CAAC,qCAAqC,CAAC,EAAsB;AAExG;;;;AAIA,OAAM,MAAOC,KAAM,sBAAQX,OAAO,CAACU,GAAG,CAAC,gCAAgC,CAAC,EAAiB;AAEzF;;;;AAIA,OAAM,MAAOE,OAAQ,sBAAQZ,OAAO,CAACU,GAAG,CAAC,kCAAkC,CAAC,EAAmB;AAE/F;;;;AAIA,OAAM,MAAOG,WAAY,sBAAQb,OAAO,CAACU,GAAG,CAAC,sCAAsC,CAAC,EAAuB;AAE3G;;;;AAIA,OAAM,MAAOI,OAAQ,sBAAQd,OAAO,CAACU,GAAG,CAAC,kCAAkC,CAAC,EAA+B;AAE3G;;;;AAIA,OAAM,MAAOK,YACX,sBAAQf,OAAO,CAACU,GAAG,CAAC,uCAAuC,CAAC,EAAyC;AAGvG;;;;AAIA,OAAM,MAAOM,OACX,sBAAQhB,OAAO,CAACU,GAAG,CAAC,kCAAkC,CAAC,EAA6C;AAGtG;;;;AAIA,OAAM,MAAOO,MAAO,sBAAQjB,OAAO,CAACU,GAAG,CAAC,iCAAiC,CAAC,EAAkB;AAE5F;;;;AAIA,OAAM,MAAOQ,OAAQ,sBAAQlB,OAAO,CAACU,GAAG,CAAC,kCAAkC,CAAC,EAAmB;AAE/F;;;;AAIA,OAAM,MAAOS,UAAW,sBAAQnB,OAAO,CAACU,GAAG,CAAC,qCAAqC,CAAC,EAAuB;AAEzG;;;;AAIA,OAAM,MAAOU,QAAS,sBAAQpB,OAAO,CAACU,GAAG,CAAC,mCAAmC,CAAC,EAAqC;AAEnH;;;;AAIA,OAAM,MAAOW,OAAQ,sBAAQrB,OAAO,CAACsB,SAAS,EAAW,CAAC,kCAAkC,EAAE;EAC5FC,YAAY,EAAEtB;CACf,CAAC;AAEF;;;;;AAKA,OAAM,MAAOuB,SAAU,sBAAQxB,OAAO,CAACU,GAAG,CAAC,oCAAoC,CAAC,EAG7E;AAEH,MAAMe,cAAc,GAAwDC,IAAU,IAIxD;EAC5B,MAAMC,OAAO,GAAGC,MAAM,CAACD,OAAO,CAACD,IAAI,CAAC;EACpC,OAAQG,OAAO,IAAI;IACjB,IAAIC,OAAO,GAAG9B,OAAO,CAAC+B,KAAK,EAAE;IAC7B,KAAK,MAAM,CAACC,GAAG,EAAEC,GAAG,CAAC,IAAIN,OAAO,EAAE;MAChC,IAAIE,OAAO,CAACG,GAAG,CAAC,KAAKE,SAAS,EAAE;QAC9BJ,OAAO,GAAG9B,OAAO,CAACmC,GAAG,CAACL,OAAO,EAAEG,GAAG,EAAEJ,OAAO,CAACG,GAAG,CAAE,CAAC;MACpD;IACF;IACA,OAAOF,OAAO;EAChB,CAAC;AACH,CAAC;AAED;;;;AAIA,OAAO,MAAMM,WAAW,gBAgBMX,cAAc,CAAC;EAC3CY,UAAU,EAAE5B,UAAU;EACtB6B,KAAK,EAAE3B,KAAK;EACZ4B,OAAO,EAAE3B,OAAO;EAChB4B,WAAW,EAAE3B,WAAW;EACxB4B,OAAO,EAAE3B,OAAO;EAChB4B,OAAO,EAAExB,OAAO;EAChByB,UAAU,EAAExB,UAAU;EACtByB,YAAY,EAAE7B,YAAY;EAC1B8B,OAAO,EAAE7B,OAAO;EAChB8B,MAAM,EAAE7B,MAAM;EACd8B,QAAQ,EAAE3B,QAAQ;EAClB4B,OAAO,EAAE3B,OAAO;EAChB4B,SAAS,EAAEzB;CACZ,CAAC;AAEF,MAAM0B,QAAQ,gBAAGhD,WAAW,CAAC,mCAAmC,EAAE,MAAM,IAAIiD,OAAO,EAAoC,CAAC;AAExH;;;;AAIA,OAAO,MAAMC,OAAO,GAAmCC,IAAO,IAAiB;EAC7E,IAAIH,QAAQ,CAACI,GAAG,CAACD,IAAI,CAAC,EAAE;IACtB,OAAOH,QAAQ,CAACK,GAAG,CAACF,IAAI,CAAE;EAC5B;EACA,MAAMG,GAAG,GAAGH,IAA+C;EAC3D,MAAMI,cAAc,GAA0C,EAAE;EAChE,IAAIC,IAAI,GAA6B;IACnCC,OAAO,EAAE,OAAO;IAChBC,IAAI,EAAE;MACJtB,KAAK,EAAEtC,OAAO,CAAC6D,SAAS,CAACL,GAAG,CAACpB,WAAW,EAAEzB,KAAK,EAAE,MAAM,KAAK,CAAC;MAC7D4B,OAAO,EAAEvC,OAAO,CAAC6D,SAAS,CAACL,GAAG,CAACpB,WAAW,EAAExB,OAAO,EAAE,MAAM,OAAO;KACnE;IACDkD,KAAK,EAAE,EAAE;IACTC,UAAU,EAAE;MACVC,OAAO,EAAEP,cAAc;MACvBQ,eAAe,EAAE;KAClB;IACDC,QAAQ,EAAE,EAAE;IACZxC,IAAI,EAAE;GACP;EAED,SAASyC,mBAAmBA,CAACC,GAAY;IACvC,OAAO5D,UAAU,CAAC6D,OAAO,CAACD,GAAG,EAAE;MAC7BE,IAAI,EAAEb;KACP,CAAC;EACJ;EAEA,SAASc,gBAAgBA,CACvBC,IAAY,EACZN,QAAyB;IAEzB,IAAIR,IAAI,CAACK,UAAW,CAACE,eAAgB,CAACO,IAAI,CAAC,EAAE;MAC3C;IACF;IACA,MAAMC,MAAM,GAAGC,kBAAkB,CAACR,QAAQ,CAAC;IAC3CR,IAAI,CAACK,UAAW,CAACE,eAAgB,CAACO,IAAI,CAAC,GAAGC,MAAM;EAClD;EAEAtE,MAAM,CAACwE,GAAG,CAAC3E,OAAO,CAAC4E,SAAS,CAACpB,GAAG,CAACpB,WAAW,EAAEhC,OAAO,CAACyE,iBAAiB,CAAC,EAAGC,gBAAgB,IAAI;IAC7FA,gBAAgB,CAACC,OAAO,CAAEC,eAAe,IAAKb,mBAAmB,CAACa,eAAe,CAACZ,GAAG,CAAC,CAAC;EACzF,CAAC,CAAC;EACFjE,MAAM,CAACwE,GAAG,CAAC3E,OAAO,CAAC4E,SAAS,CAACpB,GAAG,CAACpB,WAAW,EAAEvB,WAAW,CAAC,EAAG2B,WAAW,IAAI;IAC1EkB,IAAI,CAACE,IAAI,CAACpB,WAAW,GAAGA,WAAW;EACrC,CAAC,CAAC;EACFrC,MAAM,CAACwE,GAAG,CAAC3E,OAAO,CAAC4E,SAAS,CAACpB,GAAG,CAACpB,WAAW,EAAEtB,OAAO,CAAC,EAAG2B,OAAO,IAAI;IAClEiB,IAAI,CAACE,IAAI,CAACnB,OAAO,GAAGA,OAAO;EAC7B,CAAC,CAAC;EACFtC,MAAM,CAACwE,GAAG,CAAC3E,OAAO,CAAC4E,SAAS,CAACpB,GAAG,CAACpB,WAAW,EAAElB,OAAO,CAAC,EAAGwB,OAAO,IAAI;IAClEgB,IAAI,CAACE,IAAI,CAAClB,OAAO,GAAGA,OAAO;EAC7B,CAAC,CAAC;EACFvC,MAAM,CAACwE,GAAG,CAAC3E,OAAO,CAAC4E,SAAS,CAACpB,GAAG,CAACpB,WAAW,EAAEpB,OAAO,CAAC,EAAG6B,OAAO,IAAI;IAClEa,IAAI,CAACb,OAAO,GAAGA,OAAmC;EACpD,CAAC,CAAC;EACF1C,MAAM,CAACwE,GAAG,CAAC3E,OAAO,CAAC4E,SAAS,CAACpB,GAAG,CAACpB,WAAW,EAAEhB,QAAQ,CAAC,EAAG2B,QAAQ,IAAI;IACpEnB,MAAM,CAACqD,MAAM,CAACvB,IAAI,EAAEX,QAAQ,CAAC;EAC/B,CAAC,CAAC;EACFS,GAAG,CAAC0B,WAAW,CAACH,OAAO,CAAEI,UAAU,IAAI;IACrC,IAAI,CAAC9E,iBAAiB,CAAC+E,UAAU,CAACD,UAAU,CAAC,EAAE;MAC7C;IACF;IACA,KAAK,MAAM,CAACX,IAAI,EAAEN,QAAQ,CAAC,IAAItC,MAAM,CAACD,OAAO,CAACwD,UAAU,CAACjB,QAAQ,CAAC,EAAE;MAClEK,gBAAgB,CAACC,IAAI,EAAEN,QAAQ,CAAC;MAChCR,IAAI,CAACQ,QAAS,CAACmB,IAAI,CAAC;QAAE,CAACb,IAAI,GAAG;MAAE,CAAE,CAAC;IACrC;EACF,CAAC,CAAC;EACFpE,OAAO,CAACkF,OAAO,CAAC9B,GAAG,EAAE;IACnB+B,OAAOA,CAAC;MAAEC;IAAK,CAAE;MACf,IAAIxF,OAAO,CAACuD,GAAG,CAACiC,KAAK,CAACpD,WAAW,EAAEf,OAAO,CAAC,EAAE;QAC3C;MACF;MACA,IAAIY,GAAG,GAA4B;QACjCuC,IAAI,EAAExE,OAAO,CAAC6D,SAAS,CAAC2B,KAAK,CAACpD,WAAW,EAAEzB,KAAK,EAAE,MAAM6E,KAAK,CAACnD,UAAU;OACzE;MACDlC,MAAM,CAACwE,GAAG,CAAC3E,OAAO,CAAC4E,SAAS,CAACY,KAAK,CAACpD,WAAW,EAAEvB,WAAW,CAAC,EAAG2B,WAAW,IAAI;QAC5EP,GAAG,CAACO,WAAW,GAAGA,WAAW;MAC/B,CAAC,CAAC;MACFrC,MAAM,CAACwE,GAAG,CAAC3E,OAAO,CAAC4E,SAAS,CAACY,KAAK,CAACpD,WAAW,EAAErB,YAAY,CAAC,EAAG6B,YAAY,IAAI;QAC9EX,GAAG,CAACW,YAAY,GAAGA,YAAY;MACjC,CAAC,CAAC;MACFzC,MAAM,CAACwE,GAAG,CAAC3E,OAAO,CAAC4E,SAAS,CAACY,KAAK,CAACpD,WAAW,EAAEhB,QAAQ,CAAC,EAAG2B,QAAQ,IAAI;QACtEnB,MAAM,CAACqD,MAAM,CAAChD,GAAG,EAAEc,QAAQ,CAAC;MAC9B,CAAC,CAAC;MACF5C,MAAM,CAACwE,GAAG,CAAC3E,OAAO,CAAC4E,SAAS,CAACY,KAAK,CAACpD,WAAW,EAAEZ,SAAS,CAAC,EAAGiE,EAAE,IAAI;QACjExD,GAAG,GAAGwD,EAAE,CAACxD,GAAG,CAAmB;MACjC,CAAC,CAAC;MACFyB,IAAI,CAAChC,IAAK,CAAC2D,IAAI,CAACpD,GAAG,CAAC;IACtB,CAAC;IACDyD,UAAUA,CAAC;MAAEC,QAAQ;MAAEC,MAAM;MAAEJ,KAAK;MAAEK,iBAAiB;MAAEV,UAAU;MAAEW,QAAQ;MAAEC;IAAS,CAAE;MACxF,IAAI/F,OAAO,CAACuD,GAAG,CAACsC,iBAAiB,EAAExE,OAAO,CAAC,EAAE;QAC3C;MACF;MACA,IAAI2E,EAAE,GAAsC;QAC1CtE,IAAI,EAAE,CAAC1B,OAAO,CAAC6D,SAAS,CAAC2B,KAAK,CAACpD,WAAW,EAAEzB,KAAK,EAAE,MAAM6E,KAAK,CAACnD,UAAU,CAAC,CAAC;QAC3E4D,WAAW,EAAEjG,OAAO,CAAC6D,SAAS,CAC5B8B,QAAQ,CAACvD,WAAW,EACpB3B,UAAU,EACV,MAAM+E,KAAK,CAACU,QAAQ,GAAGP,QAAQ,CAACnB,IAAI,GAAG,GAAGgB,KAAK,CAACnD,UAAU,IAAIsD,QAAQ,CAACnB,IAAI,EAAE,CAC9E;QACD2B,UAAU,EAAE,EAAE;QACdjC,QAAQ,EAAE,EAAE;QACZkC,SAAS,EAAE;OACZ;MAED,SAASC,kBAAkBA,CACzB1B,GAGE,EACF2B,kBAAgC;QAEhC,KAAK,MAAM,CAACC,MAAM,EAAE;UAAEnC,GAAG;UAAE5B;QAAW,CAAE,CAAC,IAAImC,GAAG,EAAE;UAChD,IAAIqB,EAAE,CAACI,SAAU,CAACG,MAAM,CAAC,EAAE;UAC3BP,EAAE,CAACI,SAAU,CAACG,MAAM,CAAC,GAAG;YACtB/D,WAAW,EAAErC,MAAM,CAAC0D,SAAS,CAACrB,WAAW,EAAE8D,kBAAkB;WAC9D;UACDlC,GAAG,CAACoC,IAAI,CACNrG,MAAM,CAACsG,MAAM,CAAErC,GAAG,IAAK,CAAC9D,aAAa,CAACoG,kBAAkB,CAACtC,GAAG,CAAC,CAAC,EAC9DjE,MAAM,CAACwE,GAAG,CAAEP,GAAG,IAAI;YACjB,MAAMuC,QAAQ,GAAGrG,aAAa,CAACsG,WAAW,CAACxC,GAAG,CAAC;YAC/C4B,EAAE,CAACI,SAAU,CAACG,MAAM,CAAC,CAACM,OAAO,GAAG;cAC9B,CAACF,QAAQ,CAACG,WAAW,GAAG;gBACtBC,MAAM,EAAE5C,mBAAmB,CAACC,GAAG;;aAElC;UACH,CAAC,CAAC,CACH;QACH;MACF;MAEA,SAAS4C,iBAAiBA,CAACD,MAAwC,EAAEE,CAA6B;QAChG,IAAI9G,MAAM,CAAC+G,MAAM,CAACH,MAAM,CAAC,EAAE;UACzB,MAAMI,UAAU,GAAGhD,mBAAmB,CAAC4C,MAAM,CAACK,KAAK,CAAChD,GAAG,CAAC;UACxD,IAAI,YAAY,IAAI+C,UAAU,EAAE;YAC9BvF,MAAM,CAACD,OAAO,CAACwF,UAAU,CAACE,UAAU,CAAC,CAACtC,OAAO,CAAC,CAAC,CAACP,IAAI,EAAE8C,YAAY,CAAC,KAAI;cACrEtB,EAAE,CAACG,UAAW,CAACd,IAAI,CAAC;gBAClBb,IAAI;gBACJ+C,EAAE,EAAEN,CAAC;gBACLF,MAAM,EAAEO,YAAY;gBACpBE,QAAQ,EAAEL,UAAU,CAACK,QAAQ,CAACC,QAAQ,CAACjD,IAAI,CAAC;gBAC5C,IAAI8C,YAAY,CAAC9E,WAAW,KAAKN,SAAS,GAAG;kBAAEM,WAAW,EAAE8E,YAAY,CAAC9E;gBAAW,CAAE,GAAGN,SAAS;eACnG,CAAC;YACJ,CAAC,CAAC;UACJ;QACF;MACF;MAEA/B,MAAM,CAACwE,GAAG,CAAC3E,OAAO,CAAC4E,SAAS,CAACe,QAAQ,CAACvD,WAAW,EAAEvB,WAAW,CAAC,EAAG2B,WAAW,IAAI;QAC/EwD,EAAE,CAACxD,WAAW,GAAGA,WAAW;MAC9B,CAAC,CAAC;MACFrC,MAAM,CAACwE,GAAG,CAAC3E,OAAO,CAAC4E,SAAS,CAACe,QAAQ,CAACvD,WAAW,EAAElB,OAAO,CAAC,EAAGwB,OAAO,IAAI;QACvEsD,EAAE,CAACtD,OAAO,GAAGA,OAAO;MACtB,CAAC,CAAC;MACFvC,MAAM,CAACwE,GAAG,CAAC3E,OAAO,CAAC4E,SAAS,CAACe,QAAQ,CAACvD,WAAW,EAAEjB,UAAU,CAAC,EAAGwB,UAAU,IAAI;QAC7EqD,EAAE,CAACrD,UAAU,GAAGA,UAAU;MAC5B,CAAC,CAAC;MACFxC,MAAM,CAACwE,GAAG,CAAC3E,OAAO,CAAC4E,SAAS,CAACe,QAAQ,CAACvD,WAAW,EAAErB,YAAY,CAAC,EAAG6B,YAAY,IAAI;QACjFoD,EAAE,CAACpD,YAAY,GAAGA,YAAY;MAChC,CAAC,CAAC;MACFuC,UAAU,CAACJ,OAAO,CAAEI,UAAU,IAAI;QAChC,IAAI,CAAC9E,iBAAiB,CAAC+E,UAAU,CAACD,UAAU,CAAC,EAAE;UAC7C;QACF;QACA,KAAK,MAAM,CAACX,IAAI,EAAEN,QAAQ,CAAC,IAAItC,MAAM,CAACD,OAAO,CAACwD,UAAU,CAACjB,QAAQ,CAAC,EAAE;UAClEK,gBAAgB,CAACC,IAAI,EAAEN,QAAQ,CAAC;UAChC8B,EAAE,CAAC9B,QAAS,CAACmB,IAAI,CAAC;YAAE,CAACb,IAAI,GAAG;UAAE,CAAE,CAAC;QACnC;MACF,CAAC,CAAC;MACF,MAAMkD,OAAO,GAAGnH,UAAU,CAACmH,OAAO,CAAC/B,QAAQ,CAACgC,MAAM,CAAC;MACnD,IAAID,OAAO,IAAI5B,QAAQ,CAAC8B,IAAI,GAAG,CAAC,EAAE;QAChC,MAAMf,OAAO,GAAgC,EAAE;QAC/Cf,QAAQ,CAACf,OAAO,CAAC,CAAC;UAAEX;QAAG,CAAE,EAAE0C,WAAW,KAAI;UACxCD,OAAO,CAACC,WAAqC,CAAC,GAAG;YAC/CC,MAAM,EAAE5C,mBAAmB,CAACC,GAAG;WAChC;QACH,CAAC,CAAC;QACF4B,EAAE,CAAC6B,WAAW,GAAG;UAAEhB,OAAO;UAAEW,QAAQ,EAAE;QAAI,CAAE;MAC9C;MAEAR,iBAAiB,CAACrB,QAAQ,CAACmC,UAAU,EAAE,MAAM,CAAC;MAC9C,IAAI,CAACJ,OAAO,EAAE;QACZV,iBAAiB,CAACrB,QAAQ,CAACoC,aAAa,EAAE,OAAO,CAAC;MACpD;MACAf,iBAAiB,CAACrB,QAAQ,CAACqC,aAAa,EAAE,QAAQ,CAAC;MACnDhB,iBAAiB,CAACrB,QAAQ,CAACsC,eAAe,EAAE,OAAO,CAAC;MAEpD5B,kBAAkB,CAACN,SAAS,EAAE,MAAM,SAAS,CAAC;MAC9CM,kBAAkB,CAACT,MAAM,EAAE,MAAM,OAAO,CAAC;MAEzC,MAAMsC,IAAI,GAAGvC,QAAQ,CAACuC,IAAI,CAACC,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC;MAC1D,MAAMR,MAAM,GAAGhC,QAAQ,CAACgC,MAAM,CAACS,WAAW,EAA2B;MACrE,IAAI,CAAC1E,IAAI,CAACI,KAAK,CAACoE,IAAI,CAAC,EAAE;QACrBxE,IAAI,CAACI,KAAK,CAACoE,IAAI,CAAC,GAAG,EAAE;MACvB;MACA/H,MAAM,CAACwE,GAAG,CAAC3E,OAAO,CAAC4E,SAAS,CAACe,QAAQ,CAACvD,WAAW,EAAEhB,QAAQ,CAAC,EAAG2B,QAAQ,IAAI;QACzEnB,MAAM,CAACqD,MAAM,CAACe,EAAE,EAAEjD,QAAQ,CAAC;MAC7B,CAAC,CAAC;MACF5C,MAAM,CAACwE,GAAG,CAAC3E,OAAO,CAAC4E,SAAS,CAACe,QAAQ,CAACvD,WAAW,EAAEZ,SAAS,CAAC,EAAG6G,WAAW,IAAI;QAC7ErC,EAAE,GAAGqC,WAAW,CAACrC,EAAE,CAAC;MACtB,CAAC,CAAC;MACFtC,IAAI,CAACI,KAAK,CAACoE,IAAI,CAAC,CAACP,MAAM,CAAC,GAAG3B,EAAE;IAC/B;GACD,CAAC;EAEF7F,MAAM,CAACwE,GAAG,CAAC3E,OAAO,CAAC4E,SAAS,CAACpB,GAAG,CAACpB,WAAW,EAAEZ,SAAS,CAAC,EAAG6G,WAAW,IAAI;IACxE3E,IAAI,GAAG2E,WAAW,CAAC3E,IAAI,CAAgB;EACzC,CAAC,CAAC;EAEFR,QAAQ,CAACoF,GAAG,CAACjF,IAAI,EAAEK,IAAI,CAAC;EAExB,OAAOA,IAAI;AACb,CAAC;AAED,MAAMgB,kBAAkB,GAAIR,QAAyB,IAA2B;EAC9E,MAAMqE,IAAI,GAA4C,EAAE;EACxDpI,MAAM,CAACwE,GAAG,CAAC3E,OAAO,CAAC4E,SAAS,CAACV,QAAQ,CAAC9B,WAAW,EAAEvB,WAAW,CAAC,EAAG2B,WAAW,IAAI;IAC/E+F,IAAI,CAAC/F,WAAW,GAAGA,WAAW;EAChC,CAAC,CAAC;EACF,QAAQ0B,QAAQ,CAACsE,IAAI;IACnB,KAAK,OAAO;MAAE;QACZ,OAAO;UACL,GAAGD,IAAI;UACPE,IAAI,EAAE,MAAM;UACZhE,MAAM,EAAE;SACT;MACH;IACA,KAAK,QAAQ;MAAE;QACb,MAAM3B,MAAM,GAAG9C,OAAO,CAAC4E,SAAS,CAACV,QAAQ,CAAC9B,WAAW,EAAEnB,MAAM,CAAC,CAACuF,IAAI,CACjErG,MAAM,CAACwE,GAAG,CAAE7B,MAAM,KAAM;UAAE4F,YAAY,EAAE5F;QAAM,CAAE,CAAC,CAAC,EAClD3C,MAAM,CAACwI,cAAc,CACtB;QACD,OAAO;UACL,GAAGJ,IAAI;UACPE,IAAI,EAAE,MAAM;UACZhE,MAAM,EAAE,QAAQ;UAChB,GAAG3B;SACJ;MACH;IACA,KAAK,QAAQ;MAAE;QACb,OAAO;UACL,GAAGyF,IAAI;UACPE,IAAI,EAAE,QAAQ;UACdjE,IAAI,EAAEN,QAAQ,CAAClC,GAAG;UAClBuF,EAAE,EAAErD,QAAQ,CAACqD;SACd;MACH;EACF;AACF,CAAC","ignoreList":[]}
@@ -29,8 +29,10 @@ export const make = schema => {
29
29
  * @category encoding
30
30
  * @since 1.0.0
31
31
  */
32
- export const makeWithDefs = (schema, options) => {
33
- const jsonSchema = JSONSchema.fromAST(schema.ast, {
32
+ export const makeWithDefs = (schema, options) => fromAST(schema.ast, options);
33
+ /** @internal */
34
+ export const fromAST = (ast, options) => {
35
+ const jsonSchema = JSONSchema.fromAST(ast, {
34
36
  definitions: options.defs,
35
37
  definitionPath: options.defsPath ?? "#/components/schemas/",
36
38
  target: "openApi3.1",
@@ -1 +1 @@
1
- {"version":3,"file":"OpenApiJsonSchema.js","names":["JSONSchema","Record","make","schema","defs","out","makeWithDefs","isEmptyRecord","$defs","options","jsonSchema","fromAST","ast","definitions","definitionPath","defsPath","target","topLevelReferenceStrategy"],"sources":["../../src/OpenApiJsonSchema.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,UAAU,MAAM,mBAAmB;AAC/C,OAAO,KAAKC,MAAM,MAAM,eAAe;AA+OvC;;;;AAIA,OAAO,MAAMC,IAAI,GAAaC,MAA8B,IAAU;EACpE,MAAMC,IAAI,GAA+B,EAAE;EAC3C,MAAMC,GAAG,GAASC,YAAY,CAACH,MAAM,EAAE;IAAEC;EAAI,CAAE,CAAC;EAChD,IAAI,CAACH,MAAM,CAACM,aAAa,CAACH,IAAI,CAAC,EAAE;IAC/BC,GAAG,CAACG,KAAK,GAAGJ,IAAI;EAClB;EACA,OAAOC,GAAG;AACZ,CAAC;AAED;;;;;;;;;;;;AAYA,OAAO,MAAMC,YAAY,GAAGA,CAAUH,MAA8B,EAAEM,OAIrE,KAAgB;EACf,MAAMC,UAAU,GAAGV,UAAU,CAACW,OAAO,CAACR,MAAM,CAACS,GAAG,EAAE;IAChDC,WAAW,EAAEJ,OAAO,CAACL,IAAI;IACzBU,cAAc,EAAEL,OAAO,CAACM,QAAQ,IAAI,uBAAuB;IAC3DC,MAAM,EAAE,YAAY;IACpBC,yBAAyB,EAAER,OAAO,CAACQ,yBAAyB,IAAI;GACjE,CAAC;EACF,OAAOP,UAAwB;AACjC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"OpenApiJsonSchema.js","names":["JSONSchema","Record","make","schema","defs","out","makeWithDefs","isEmptyRecord","$defs","options","fromAST","ast","jsonSchema","definitions","definitionPath","defsPath","target","topLevelReferenceStrategy"],"sources":["../../src/OpenApiJsonSchema.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,UAAU,MAAM,mBAAmB;AAC/C,OAAO,KAAKC,MAAM,MAAM,eAAe;AAgPvC;;;;AAIA,OAAO,MAAMC,IAAI,GAAaC,MAA8B,IAAU;EACpE,MAAMC,IAAI,GAA+B,EAAE;EAC3C,MAAMC,GAAG,GAASC,YAAY,CAACH,MAAM,EAAE;IAAEC;EAAI,CAAE,CAAC;EAChD,IAAI,CAACH,MAAM,CAACM,aAAa,CAACH,IAAI,CAAC,EAAE;IAC/BC,GAAG,CAACG,KAAK,GAAGJ,IAAI;EAClB;EACA,OAAOC,GAAG;AACZ,CAAC;AAED;;;;;;;;;;;;AAYA,OAAO,MAAMC,YAAY,GAAGA,CAAUH,MAA8B,EAAEM,OAIrE,KAAiBC,OAAO,CAACP,MAAM,CAACQ,GAAG,EAAEF,OAAO,CAAC;AAE9C;AACA,OAAO,MAAMC,OAAO,GAAGA,CAACC,GAAY,EAAEF,OAIrC,KAAgB;EACf,MAAMG,UAAU,GAAGZ,UAAU,CAACU,OAAO,CAACC,GAAG,EAAE;IACzCE,WAAW,EAAEJ,OAAO,CAACL,IAAI;IACzBU,cAAc,EAAEL,OAAO,CAACM,QAAQ,IAAI,uBAAuB;IAC3DC,MAAM,EAAE,YAAY;IACpBC,yBAAyB,EAAER,OAAO,CAACQ,yBAAyB,IAAI;GACjE,CAAC;EACF,OAAOL,UAAwB;AACjC,CAAC","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect/platform",
3
- "version": "0.72.1",
3
+ "version": "0.72.2",
4
4
  "description": "Unified interfaces for common platform-specific services",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -14,7 +14,7 @@
14
14
  "multipasta": "^0.2.5"
15
15
  },
16
16
  "peerDependencies": {
17
- "effect": "^3.12.1"
17
+ "effect": "^3.12.2"
18
18
  },
19
19
  "publishConfig": {
20
20
  "provenance": true
package/src/HttpApi.ts CHANGED
@@ -345,7 +345,7 @@ export const reflect = <Id extends string, Groups extends HttpApiGroup.HttpApiGr
345
345
  const emptyMap = new Map<never, never>()
346
346
 
347
347
  const extractMembers = (
348
- topAst: AST.AST,
348
+ ast: AST.AST,
349
349
  inherited: ReadonlyMap<number, {
350
350
  readonly ast: Option.Option<AST.AST>
351
351
  readonly description: Option.Option<string>
@@ -356,43 +356,40 @@ const extractMembers = (
356
356
  readonly description: Option.Option<string>
357
357
  }> => {
358
358
  const members = new Map(inherited)
359
- function process(ast: AST.AST) {
360
- if (ast._tag === "NeverKeyword") {
359
+ function process(type: AST.AST) {
360
+ if (AST.isNeverKeyword(type)) {
361
361
  return
362
362
  }
363
- ast = AST.annotations(ast, {
364
- ...HttpApiSchema.extractAnnotations(topAst.annotations),
365
- ...ast.annotations
366
- })
367
- const status = getStatus(ast)
368
- const emptyDecodeable = HttpApiSchema.getEmptyDecodeable(ast)
363
+ const annotations = HttpApiSchema.extractAnnotations(ast.annotations)
364
+ // Avoid changing the reference unless necessary
365
+ // Otherwise, deduplication of the ASTs below will not be possible
366
+ if (!Record.isEmptyRecord(annotations)) {
367
+ type = AST.annotations(type, {
368
+ ...annotations,
369
+ ...type.annotations
370
+ })
371
+ }
372
+ const status = getStatus(type)
373
+ const emptyDecodeable = HttpApiSchema.getEmptyDecodeable(type)
369
374
  const current = members.get(status)
370
375
  members.set(
371
376
  status,
372
377
  {
373
378
  description: (current ? current.description : Option.none()).pipe(
374
- Option.orElse(() => getDescriptionOrIdentifier(ast))
379
+ Option.orElse(() => getDescriptionOrIdentifier(type))
375
380
  ),
376
381
  ast: (current ? current.ast : Option.none()).pipe(
377
- Option.map((current) =>
378
- AST.Union.make(
379
- current._tag === "Union" ? [...current.types, ast] : [current, ast]
380
- )
381
- ),
382
+ // Deduplicate the ASTs
383
+ Option.map((current) => HttpApiSchema.UnionUnifyAST(current, type)),
382
384
  Option.orElse(() =>
383
- !emptyDecodeable && AST.encodedAST(ast)._tag === "VoidKeyword" ? Option.none() : Option.some(ast)
385
+ !emptyDecodeable && AST.isVoidKeyword(AST.encodedAST(type)) ? Option.none() : Option.some(type)
384
386
  )
385
387
  )
386
388
  }
387
389
  )
388
390
  }
389
- if (topAst._tag === "Union") {
390
- for (const type of topAst.types) {
391
- process(type)
392
- }
393
- } else {
394
- process(topAst)
395
- }
391
+
392
+ HttpApiSchema.extractUnionTypes(ast).forEach(process)
396
393
  return members
397
394
  }
398
395
 
@@ -445,6 +442,9 @@ const getDescriptionOrIdentifier = (ast: AST.PropertySignature | AST.AST): Optio
445
442
  }
446
443
 
447
444
  /**
445
+ * Adds additional schemas to components/schemas.
446
+ * The provided schemas must have a `identifier` annotation.
447
+ *
448
448
  * @since 1.0.0
449
449
  * @category tags
450
450
  */
@@ -180,6 +180,38 @@ export const getStatusErrorAST = (ast: AST.AST): number => getStatus(ast, 500)
180
180
  */
181
181
  export const getStatusError = <A extends Schema.Schema.All>(self: A): number => getStatusErrorAST(self.ast)
182
182
 
183
+ /**
184
+ * Extracts all individual types from a union type recursively.
185
+ *
186
+ * **Details**
187
+ *
188
+ * This function traverses an AST and collects all the types within a union,
189
+ * even if they are nested. It ensures that every type in a union (including
190
+ * deeply nested unions) is included in the resulting array. The returned array
191
+ * contains each type as an individual AST node, preserving the order in which
192
+ * they appear.
193
+ *
194
+ * @internal
195
+ */
196
+ export const extractUnionTypes = (ast: AST.AST): ReadonlyArray<AST.AST> => {
197
+ function process(ast: AST.AST): void {
198
+ if (AST.isUnion(ast)) {
199
+ for (const type of ast.types) {
200
+ process(type)
201
+ }
202
+ } else {
203
+ out.push(ast)
204
+ }
205
+ }
206
+ const out: Array<AST.AST> = []
207
+ process(ast)
208
+ return out
209
+ }
210
+
211
+ /** @internal */
212
+ export const UnionUnifyAST = (self: AST.AST, that: AST.AST): AST.AST =>
213
+ AST.Union.make(Array.from(new Set<AST.AST>([...extractUnionTypes(self), ...extractUnionTypes(that)])))
214
+
183
215
  /**
184
216
  * @since 1.0.0
185
217
  */
@@ -187,14 +219,7 @@ export const UnionUnify = <A extends Schema.Schema.All, B extends Schema.Schema.
187
219
  A["Type"] | B["Type"],
188
220
  A["Encoded"] | B["Encoded"],
189
221
  A["Context"] | B["Context"]
190
- > => {
191
- return Schema.make(AST.Union.make(Array.from(
192
- new Set<AST.AST>([
193
- ...(self.ast._tag === "Union" ? self.ast.types : [self.ast]),
194
- ...(that.ast._tag === "Union" ? that.ast.types : [that.ast])
195
- ])
196
- )))
197
- }
222
+ > => Schema.make(UnionUnifyAST(self.ast, that.ast))
198
223
 
199
224
  type Void$ = typeof Schema.Void
200
225
 
@@ -113,6 +113,8 @@ export const bearer: Bearer = Object.assign(Object.create(Proto), {
113
113
  * To set the correct cookie in a handler, you can use
114
114
  * `HttpApiBuilder.securitySetCookie`.
115
115
  *
116
+ * The default value for `in` is "header".
117
+ *
116
118
  * @since 1.0.0
117
119
  * @category constructors
118
120
  */
package/src/OpenApi.ts CHANGED
@@ -6,7 +6,8 @@ import { constFalse } from "effect/Function"
6
6
  import { globalValue } from "effect/GlobalValue"
7
7
  import * as Option from "effect/Option"
8
8
  import type { ReadonlyRecord } from "effect/Record"
9
- import * as Schema from "effect/Schema"
9
+ import type * as Schema from "effect/Schema"
10
+ import type * as AST from "effect/SchemaAST"
10
11
  import type { DeepMutable, Mutable } from "effect/Types"
11
12
  import * as HttpApi from "./HttpApi.js"
12
13
  import * as HttpApiMiddleware from "./HttpApiMiddleware.js"
@@ -132,6 +133,7 @@ export const annotations: (
132
133
  readonly description?: string | undefined
133
134
  readonly license?: OpenAPISpecLicense | undefined
134
135
  readonly summary?: string | undefined
136
+ readonly deprecated?: boolean | undefined
135
137
  readonly externalDocs?: OpenAPISpecExternalDocs | undefined
136
138
  readonly servers?: ReadonlyArray<OpenAPISpecServer> | undefined
137
139
  readonly format?: string | undefined
@@ -146,6 +148,7 @@ export const annotations: (
146
148
  description: Description,
147
149
  license: License,
148
150
  summary: Summary,
151
+ deprecated: Deprecated,
149
152
  externalDocs: ExternalDocs,
150
153
  servers: Servers,
151
154
  format: Format,
@@ -173,18 +176,20 @@ export const fromApi = <A extends HttpApi.HttpApi.Any>(self: A): OpenAPISpec =>
173
176
  version: Context.getOrElse(api.annotations, Version, () => "0.0.1")
174
177
  },
175
178
  paths: {},
176
- tags: [],
177
179
  components: {
178
180
  schemas: jsonSchemaDefs,
179
181
  securitySchemes: {}
180
182
  },
181
- security: []
183
+ security: [],
184
+ tags: []
182
185
  }
183
- function makeJsonSchemaOrRef(schema: Schema.Schema.All): JsonSchema.JsonSchema {
184
- return JsonSchema.makeWithDefs(schema as any, {
186
+
187
+ function makeJsonSchemaOrRef(ast: AST.AST): JsonSchema.JsonSchema {
188
+ return JsonSchema.fromAST(ast, {
185
189
  defs: jsonSchemaDefs
186
190
  })
187
191
  }
192
+
188
193
  function registerSecurity(
189
194
  name: string,
190
195
  security: HttpApiSecurity
@@ -195,8 +200,9 @@ export const fromApi = <A extends HttpApi.HttpApi.Any>(self: A): OpenAPISpec =>
195
200
  const scheme = makeSecurityScheme(security)
196
201
  spec.components!.securitySchemes![name] = scheme
197
202
  }
203
+
198
204
  Option.map(Context.getOption(api.annotations, HttpApi.AdditionalSchemas), (componentSchemas) => {
199
- componentSchemas.forEach((componentSchema) => makeJsonSchemaOrRef(componentSchema))
205
+ componentSchemas.forEach((componentSchema) => makeJsonSchemaOrRef(componentSchema.ast))
200
206
  })
201
207
  Option.map(Context.getOption(api.annotations, Description), (description) => {
202
208
  spec.info.description = description
@@ -205,10 +211,10 @@ export const fromApi = <A extends HttpApi.HttpApi.Any>(self: A): OpenAPISpec =>
205
211
  spec.info.license = license
206
212
  })
207
213
  Option.map(Context.getOption(api.annotations, Summary), (summary) => {
208
- spec.info.summary = summary as any
214
+ spec.info.summary = summary
209
215
  })
210
216
  Option.map(Context.getOption(api.annotations, Servers), (servers) => {
211
- spec.servers = servers as any
217
+ spec.servers = servers as Array<OpenAPISpecServer>
212
218
  })
213
219
  Option.map(Context.getOption(api.annotations, Override), (override) => {
214
220
  Object.assign(spec, override)
@@ -222,7 +228,7 @@ export const fromApi = <A extends HttpApi.HttpApi.Any>(self: A): OpenAPISpec =>
222
228
  spec.security!.push({ [name]: [] })
223
229
  }
224
230
  })
225
- HttpApi.reflect(api as any, {
231
+ HttpApi.reflect(api, {
226
232
  onGroup({ group }) {
227
233
  if (Context.get(group.annotations, Exclude)) {
228
234
  return
@@ -248,8 +254,6 @@ export const fromApi = <A extends HttpApi.HttpApi.Any>(self: A): OpenAPISpec =>
248
254
  if (Context.get(mergedAnnotations, Exclude)) {
249
255
  return
250
256
  }
251
- const path = endpoint.path.replace(/:(\w+)[^/]*/g, "{$1}")
252
- const method = endpoint.method.toLowerCase() as OpenAPISpecMethodName
253
257
  let op: DeepMutable<OpenAPISpecOperation> = {
254
258
  tags: [Context.getOrElse(group.annotations, Title, () => group.identifier)],
255
259
  operationId: Context.getOrElse(
@@ -261,6 +265,50 @@ export const fromApi = <A extends HttpApi.HttpApi.Any>(self: A): OpenAPISpec =>
261
265
  security: [],
262
266
  responses: {}
263
267
  }
268
+
269
+ function processResponseMap(
270
+ map: ReadonlyMap<number, {
271
+ readonly ast: Option.Option<AST.AST>
272
+ readonly description: Option.Option<string>
273
+ }>,
274
+ defaultDescription: () => string
275
+ ) {
276
+ for (const [status, { ast, description }] of map) {
277
+ if (op.responses![status]) continue
278
+ op.responses![status] = {
279
+ description: Option.getOrElse(description, defaultDescription)
280
+ }
281
+ ast.pipe(
282
+ Option.filter((ast) => !HttpApiSchema.getEmptyDecodeable(ast)),
283
+ Option.map((ast) => {
284
+ const encoding = HttpApiSchema.getEncoding(ast)
285
+ op.responses![status].content = {
286
+ [encoding.contentType]: {
287
+ schema: makeJsonSchemaOrRef(ast)
288
+ }
289
+ }
290
+ })
291
+ )
292
+ }
293
+ }
294
+
295
+ function processParameters(schema: Option.Option<Schema.Schema.All>, i: OpenAPISpecParameter["in"]) {
296
+ if (Option.isSome(schema)) {
297
+ const jsonSchema = makeJsonSchemaOrRef(schema.value.ast)
298
+ if ("properties" in jsonSchema) {
299
+ Object.entries(jsonSchema.properties).forEach(([name, psJsonSchema]) => {
300
+ op.parameters!.push({
301
+ name,
302
+ in: i,
303
+ schema: psJsonSchema,
304
+ required: jsonSchema.required.includes(name),
305
+ ...(psJsonSchema.description !== undefined ? { description: psJsonSchema.description } : undefined)
306
+ })
307
+ })
308
+ }
309
+ }
310
+ }
311
+
264
312
  Option.map(Context.getOption(endpoint.annotations, Description), (description) => {
265
313
  op.description = description
266
314
  })
@@ -282,103 +330,29 @@ export const fromApi = <A extends HttpApi.HttpApi.Any>(self: A): OpenAPISpec =>
282
330
  op.security!.push({ [name]: [] })
283
331
  }
284
332
  })
285
- if (payloads.size > 0) {
333
+ const hasBody = HttpMethod.hasBody(endpoint.method)
334
+ if (hasBody && payloads.size > 0) {
286
335
  const content: Mutable<OpenApiSpecContent> = {}
287
336
  payloads.forEach(({ ast }, contentType) => {
288
337
  content[contentType as OpenApiSpecContentType] = {
289
- schema: makeJsonSchemaOrRef(Schema.make(ast))
338
+ schema: makeJsonSchemaOrRef(ast)
290
339
  }
291
340
  })
292
341
  op.requestBody = { content, required: true }
293
342
  }
294
- for (const [status, { ast, description }] of successes) {
295
- if (op.responses![status]) continue
296
- op.responses![status] = {
297
- description: Option.getOrElse(description, () => "Success")
298
- }
299
- ast.pipe(
300
- Option.filter((ast) => !HttpApiSchema.getEmptyDecodeable(ast)),
301
- Option.map((ast) => {
302
- op.responses![status].content = {
303
- "application/json": {
304
- schema: makeJsonSchemaOrRef(Schema.make(ast))
305
- }
306
- }
307
- })
308
- )
309
- }
310
- if (Option.isSome(endpoint.pathSchema)) {
311
- const schema = makeJsonSchemaOrRef(endpoint.pathSchema.value) as JsonSchema.Object
312
- if ("properties" in schema) {
313
- Object.entries(schema.properties).forEach(([name, jsonSchema]) => {
314
- op.parameters!.push({
315
- name,
316
- in: "path",
317
- schema: jsonSchema,
318
- required: schema.required.includes(name),
319
- ...(jsonSchema.description ? { description: jsonSchema.description } : {})
320
- })
321
- })
322
- }
323
- }
324
- if (!HttpMethod.hasBody(endpoint.method) && Option.isSome(endpoint.payloadSchema)) {
325
- const schema = makeJsonSchemaOrRef(endpoint.payloadSchema.value) as JsonSchema.Object
326
- if ("properties" in schema) {
327
- Object.entries(schema.properties).forEach(([name, jsonSchema]) => {
328
- op.parameters!.push({
329
- name,
330
- in: "query",
331
- schema: jsonSchema,
332
- required: schema.required.includes(name),
333
- ...(jsonSchema.description ? { description: jsonSchema.description } : {})
334
- })
335
- })
336
- }
337
- }
338
- if (Option.isSome(endpoint.headersSchema)) {
339
- const schema = makeJsonSchemaOrRef(endpoint.headersSchema.value) as JsonSchema.Object
340
- if ("properties" in schema) {
341
- Object.entries(schema.properties).forEach(([name, jsonSchema]) => {
342
- op.parameters!.push({
343
- name,
344
- in: "header",
345
- schema: jsonSchema,
346
- required: schema.required.includes(name),
347
- ...(jsonSchema.description ? { description: jsonSchema.description } : {})
348
- })
349
- })
350
- }
351
- }
352
- if (Option.isSome(endpoint.urlParamsSchema)) {
353
- const schema = makeJsonSchemaOrRef(endpoint.urlParamsSchema.value) as JsonSchema.Object
354
- if ("properties" in schema) {
355
- Object.entries(schema.properties).forEach(([name, jsonSchema]) => {
356
- op.parameters!.push({
357
- name,
358
- in: "query",
359
- schema: jsonSchema,
360
- required: schema.required.includes(name),
361
- ...(jsonSchema.description ? { description: jsonSchema.description } : {})
362
- })
363
- })
364
- }
365
- }
366
- for (const [status, { ast, description }] of errors) {
367
- if (op.responses![status]) continue
368
- op.responses![status] = {
369
- description: Option.getOrElse(description, () => "Error")
370
- }
371
- ast.pipe(
372
- Option.filter((ast) => !HttpApiSchema.getEmptyDecodeable(ast)),
373
- Option.map((ast) => {
374
- op.responses![status].content = {
375
- "application/json": {
376
- schema: makeJsonSchemaOrRef(Schema.make(ast))
377
- }
378
- }
379
- })
380
- )
343
+
344
+ processParameters(endpoint.pathSchema, "path")
345
+ if (!hasBody) {
346
+ processParameters(endpoint.payloadSchema, "query")
381
347
  }
348
+ processParameters(endpoint.headersSchema, "header")
349
+ processParameters(endpoint.urlParamsSchema, "query")
350
+
351
+ processResponseMap(successes, () => "Success")
352
+ processResponseMap(errors, () => "Error")
353
+
354
+ const path = endpoint.path.replace(/:(\w+)[^/]*/g, "{$1}")
355
+ const method = endpoint.method.toLowerCase() as OpenAPISpecMethodName
382
356
  if (!spec.paths[path]) {
383
357
  spec.paths[path] = {}
384
358
  }
@@ -573,7 +547,12 @@ export type OpenAPISpecResponses = Record<number, OpenApiSpecResponse>
573
547
  * @category models
574
548
  * @since 1.0.0
575
549
  */
576
- export type OpenApiSpecContentType = "application/json" | "application/xml" | "multipart/form-data" | "text/plain"
550
+ export type OpenApiSpecContentType =
551
+ | "application/json"
552
+ | "application/xml"
553
+ | "application/x-www-form-urlencoded"
554
+ | "multipart/form-data"
555
+ | "text/plain"
577
556
 
578
557
  /**
579
558
  * @category models
@@ -4,6 +4,7 @@
4
4
  import * as JSONSchema from "effect/JSONSchema"
5
5
  import * as Record from "effect/Record"
6
6
  import type * as Schema from "effect/Schema"
7
+ import type * as AST from "effect/SchemaAST"
7
8
 
8
9
  /**
9
10
  * @category model
@@ -270,8 +271,15 @@ export const makeWithDefs = <A, I, R>(schema: Schema.Schema<A, I, R>, options: {
270
271
  readonly defs: Record<string, any>
271
272
  readonly defsPath?: string
272
273
  readonly topLevelReferenceStrategy?: "skip" | "keep"
274
+ }): JsonSchema => fromAST(schema.ast, options)
275
+
276
+ /** @internal */
277
+ export const fromAST = (ast: AST.AST, options: {
278
+ readonly defs: Record<string, any>
279
+ readonly defsPath?: string
280
+ readonly topLevelReferenceStrategy?: "skip" | "keep"
273
281
  }): JsonSchema => {
274
- const jsonSchema = JSONSchema.fromAST(schema.ast, {
282
+ const jsonSchema = JSONSchema.fromAST(ast, {
275
283
  definitions: options.defs,
276
284
  definitionPath: options.defsPath ?? "#/components/schemas/",
277
285
  target: "openApi3.1",