@itm-studio/partner-sdk 0.1.0

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.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/generated/runtime/error.ts","../src/generated/runtime/batcher.ts","../src/generated/runtime/fetcher.ts","../src/generated/runtime/generateGraphqlOperation.ts","../src/generated/runtime/createClient.ts","../src/generated/runtime/linkTypeMap.ts","../src/generated/types.ts","../src/generated/index.ts","../src/client.ts"],"names":["json","field","type","typeMap","k","typeName","createClient"],"mappings":";AACO,IAAM,UAAA,GAAN,cAAyB,KAAA,CAAM;AAAA,EAClC,SAA8B,EAAC;AAAA;AAAA;AAAA;AAAA,EAI/B,IAAA;AAAA,EACA,WAAA,CAAY,QAAe,IAAA,EAAW;AAClC,IAAA,IAAI,OAAA,GAAU,KAAA,CAAM,OAAA,CAAQ,MAAM,IAC5B,MAAA,CAAO,GAAA,CAAI,CAAC,CAAA,KAAM,GAAG,OAAA,IAAW,EAAE,CAAA,CAAE,IAAA,CAAK,IAAI,CAAA,GAC7C,EAAA;AACN,IAAA,IAAI,CAAC,OAAA,EAAS;AACV,MAAA,OAAA,GAAU,eAAA;AAAA,IACd;AACA,IAAA,KAAA,CAAM,OAAO,CAAA;AACb,IAAA,IAAA,CAAK,MAAA,GAAS,MAAA;AACd,IAAA,IAAA,CAAK,IAAA,GAAO,IAAA;AAAA,EAChB;AACJ,CAAA;;;ACwBA,SAAS,kBAAA,CAAmB,QAAsB,KAAA,EAAoB;AAClE,EAAA,IAAI,eAAoB,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,KAAS,KAAK,OAAO,CAAA;AAExD,EAAA,IAAI,YAAA,CAAa,WAAW,CAAA,EAAG;AAC3B,IAAA,YAAA,GAAe,aAAa,CAAC,CAAA;AAAA,EACjC;AACA,EAAA,CAAC,MAAM;AACH,IAAA,IAAI;AACA,MAAA,OAAO,MAAA,CAAO,QAAQ,YAAY,CAAA;AAAA,IACtC,SAAQ,CAAA,EAAG;AACP,MAAA,OAAO,OAAA,CAAQ,OAAO,CAAC,CAAA;AAAA,IAC3B;AAAA,EACJ,CAAA,GAAG,CAAE,IAAA,CAAK,CAAC,SAAA,KAAmB;AAC1B,IAAA,IAAI,MAAM,MAAA,KAAW,CAAA,IAAK,CAAC,KAAA,CAAM,OAAA,CAAQ,SAAS,CAAA,EAAG;AACjD,MAAA,IAAI,SAAA,CAAU,MAAA,IAAU,SAAA,CAAU,MAAA,CAAO,MAAA,EAAQ;AAC7C,QAAA,KAAA,CAAM,CAAC,CAAA,CAAE,MAAA;AAAA,UACL,IAAI,UAAA,CAAW,SAAA,CAAU,MAAA,EAAQ,UAAU,IAAI;AAAA,SACnD;AACA,QAAA;AAAA,MACJ;AAEA,MAAA,KAAA,CAAM,CAAC,CAAA,CAAE,OAAA,CAAQ,SAAS,CAAA;AAC1B,MAAA;AAAA,IACJ,CAAA,MAAA,IAAW,SAAA,CAAU,MAAA,KAAW,KAAA,CAAM,MAAA,EAAQ;AAC1C,MAAA,MAAM,IAAI,MAAM,4CAA4C,CAAA;AAAA,IAChE;AAEA,IAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,KAAA,CAAM,QAAQ,CAAA,EAAA,EAAK;AACnC,MAAA,IAAI,SAAA,CAAU,CAAC,CAAA,CAAE,MAAA,IAAU,UAAU,CAAC,CAAA,CAAE,OAAO,MAAA,EAAQ;AACnD,QAAA,KAAA,CAAM,CAAC,CAAA,CAAE,MAAA;AAAA,UACL,IAAI,WAAW,SAAA,CAAU,CAAC,EAAE,MAAA,EAAQ,SAAA,CAAU,CAAC,CAAA,CAAE,IAAI;AAAA,SACzD;AAAA,MACJ,CAAA,MAAO;AACH,QAAA,KAAA,CAAM,CAAC,CAAA,CAAE,OAAA,CAAQ,SAAA,CAAU,CAAC,CAAC,CAAA;AAAA,MACjC;AAAA,IACJ;AAAA,EACJ,CAAC,CAAA,CACA,KAAA,CAAM,CAAC,CAAA,KAAM;AACV,IAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,KAAA,CAAM,QAAQ,CAAA,EAAA,EAAK;AACnC,MAAA,KAAA,CAAM,CAAC,CAAA,CAAE,MAAA,CAAO,CAAC,CAAA;AAAA,IACrB;AAAA,EACJ,CAAC,CAAA;AACL;AAQA,SAAS,aAAA,CAAc,QAAsB,OAAA,EAAwB;AACjE,EAAA,MAAM,QAAQ,MAAA,CAAO,MAAA;AACrB,EAAA,MAAM,YAAA,GAAe,QAAQ,YAAA,IAAgB,CAAA;AAC7C,EAAA,MAAA,CAAO,SAAS,EAAC;AAEjB,EAAA,IAAI,YAAA,GAAe,CAAA,IAAK,YAAA,GAAe,KAAA,CAAM,MAAA,EAAQ;AACjD,IAAA,KAAA,IAAS,IAAI,CAAA,EAAG,CAAA,GAAI,KAAA,CAAM,MAAA,GAAS,cAAc,CAAA,EAAA,EAAK;AAClD,MAAA,kBAAA;AAAA,QACI,MAAA;AAAA,QACA,MAAM,KAAA,CAAM,CAAA,GAAI,YAAA,EAAA,CAAe,CAAA,GAAI,KAAK,YAAY;AAAA,OACxD;AAAA,IACJ;AAAA,EACJ,CAAA,MAAO;AACH,IAAA,kBAAA,CAAmB,QAAQ,KAAK,CAAA;AAAA,EACpC;AACJ;AAyBO,IAAM,YAAA,GAAN,MAAM,aAAA,CAAa;AAAA,EACtB,OAAA;AAAA,EACA,QAAA;AAAA,EACA,MAAA;AAAA,EAEA,YACI,OAAA,EACA;AAAA,IACI,aAAA,GAAgB,CAAA;AAAA,IAChB,WAAA,GAAc,IAAA;AAAA,IACd,YAAA,GAAe;AAAA,GACnB,GAAa,EAAC,EAChB;AACE,IAAA,IAAA,CAAK,OAAA,GAAU,OAAA;AACf,IAAA,IAAA,CAAK,QAAA,GAAW;AAAA,MACZ,aAAA;AAAA,MACA,WAAA;AAAA,MACA;AAAA,KACJ;AACA,IAAA,IAAA,CAAK,SAAS,EAAC;AAAA,EACnB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAyBA,MACI,KAAA,EACA,SAAA,EACA,aAAA,EACA,SAAA,GAAqB,EAAC,EACP;AACf,IAAA,MAAM,OAAA,GAA4B;AAAA,MAC9B;AAAA,KACJ;AACA,IAAA,MAAM,UAAU,MAAA,CAAO,MAAA,CAAO,EAAC,EAAG,IAAA,CAAK,UAAU,SAAS,CAAA;AAE1D,IAAA,IAAI,SAAA,EAAW;AACX,MAAA,OAAA,CAAQ,SAAA,GAAY,SAAA;AAAA,IACxB;AAEA,IAAA,IAAI,aAAA,EAAe;AACf,MAAA,OAAA,CAAQ,aAAA,GAAgB,aAAA;AAAA,IAC5B;AAEA,IAAA,MAAM,OAAA,GAAU,IAAI,OAAA,CAAgB,CAAC,SAAS,MAAA,KAAW;AACrD,MAAA,IAAA,CAAK,OAAO,IAAA,CAAK;AAAA,QACb,OAAA;AAAA,QACA,OAAA;AAAA,QACA;AAAA,OACH,CAAA;AAED,MAAA,IAAI,IAAA,CAAK,MAAA,CAAO,MAAA,KAAW,CAAA,EAAG;AAC1B,QAAA,IAAI,QAAQ,WAAA,EAAa;AACrB,UAAA,UAAA;AAAA,YACI,MAAM,aAAA,CAAc,IAAA,EAAM,OAAO,CAAA;AAAA,YACjC,OAAA,CAAQ;AAAA,WACZ;AAAA,QACJ,CAAA,MAAO;AACH,UAAA,aAAA,CAAc,MAAM,OAAO,CAAA;AAAA,QAC/B;AAAA,MACJ;AAAA,IACJ,CAAC,CAAA;AACD,IAAA,OAAO,OAAA;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAyBA,WACI,KAAA,EACA,SAAA,EACA,aAAA,EACA,SAAA,GAAqB,EAAC,EACP;AACf,IAAA,MAAM,OAAA,GAA4B;AAAA,MAC9B;AAAA,KACJ;AACA,IAAA,MAAM,UAAU,MAAA,CAAO,MAAA,CAAO,EAAC,EAAG,IAAA,CAAK,UAAU,SAAA,EAAW;AAAA,MACxD,WAAA,EAAa;AAAA,KAChB,CAAA;AAED,IAAA,IAAI,SAAA,EAAW;AACX,MAAA,OAAA,CAAQ,SAAA,GAAY,SAAA;AAAA,IACxB;AAEA,IAAA,IAAI,aAAA,EAAe;AACf,MAAA,OAAA,CAAQ,aAAA,GAAgB,aAAA;AAAA,IAC5B;AAEA,IAAA,MAAM,OAAA,GAAU,IAAI,OAAA,CAAgB,CAAC,SAAS,MAAA,KAAW;AACrD,MAAA,MAAM,SAAS,IAAI,aAAA,CAAa,IAAA,CAAK,OAAA,EAAS,KAAK,QAAQ,CAAA;AAC3D,MAAA,MAAA,CAAO,MAAA,GAAS;AAAA,QACZ;AAAA,UACI,OAAA;AAAA,UACA,OAAA;AAAA,UACA;AAAA;AACJ,OACJ;AACA,MAAA,aAAA,CAAc,QAAQ,OAAO,CAAA;AAAA,IACjC,CAAC,CAAA;AACD,IAAA,OAAO,OAAA;AAAA,EACX;AACJ,CAAA;;;AClQA,IAAM,qBAAA,GAAwB;AAAA,EAC1B,YAAA,EAAc,EAAA;AAAA,EACd,aAAA,EAAe;AACnB,CAAA;AAEO,IAAM,gBAAgB,CAAC;AAAA,EAC1B,GAAA;AAAA,EACA,UAAU,EAAC;AAAA,EACX,OAAA;AAAA,EACA,KAAA,EAAO,MAAA;AAAA,EACP,KAAA,GAAQ,KAAA;AAAA,EACR,GAAG;AACP,CAAA,KAA8B;AAC1B,EAAA,IAAI,CAAC,GAAA,IAAO,CAAC,OAAA,EAAS;AAClB,IAAA,MAAM,IAAI,MAAM,4BAA4B,CAAA;AAAA,EAChD;AAEA,EAAA,OAAA,GAAU,OAAA,KAAY,OAAO,IAAA,KAAS;AAClC,IAAA,IAAI,gBACA,OAAO,OAAA,IAAW,UAAA,GAAa,MAAM,SAAQ,GAAI,OAAA;AACrD,IAAA,aAAA,GAAgB,iBAAiB,EAAC;AAClC,IAAA,IAAI,OAAO,KAAA,KAAU,WAAA,IAAe,CAAC,MAAA,EAAQ;AACzC,MAAA,MAAM,IAAI,KAAA;AAAA,QACN;AAAA,OACJ;AAAA,IACJ;AACA,IAAA,IAAI,YAAY,MAAA,IAAU,KAAA;AAC1B,IAAA,MAAM,GAAA,GAAM,MAAM,SAAA,CAAU,GAAA,EAAM;AAAA,MAC9B,OAAA,EAAS;AAAA,QACL,cAAA,EAAgB,kBAAA;AAAA,QAChB,GAAG;AAAA,OACP;AAAA,MACA,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM,IAAA,CAAK,SAAA,CAAU,IAAI,CAAA;AAAA,MACzB,GAAG;AAAA,KACN,CAAA;AACD,IAAA,IAAI,CAAC,IAAI,EAAA,EAAI;AACT,MAAA,MAAM,IAAI,KAAA,CAAM,CAAA,EAAG,GAAA,CAAI,UAAU,KAAK,MAAM,GAAA,CAAI,IAAA,EAAM,CAAA,CAAE,CAAA;AAAA,IAC5D;AACA,IAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,IAAA,EAAK;AAC5B,IAAA,OAAO,IAAA;AAAA,EACX,CAAA,CAAA;AAEA,EAAA,IAAI,CAAC,KAAA,EAAO;AACR,IAAA,OAAO,OAAO,IAAA,KAAS;AACnB,MAAA,MAAM,IAAA,GAAO,MAAM,OAAA,CAAS,IAAI,CAAA;AAChC,MAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,EAAG;AACrB,QAAA,OAAO,IAAA,CAAK,GAAA,CAAI,CAACA,KAAAA,KAAS;AACtB,UAAA,IAAIA,KAAAA,EAAM,QAAQ,MAAA,EAAQ;AACtB,YAAA,MAAM,IAAI,UAAA,CAAWA,KAAAA,CAAK,UAAU,EAAC,EAAGA,MAAK,IAAI,CAAA;AAAA,UACrD;AACA,UAAA,OAAOA,KAAAA,CAAK,IAAA;AAAA,QAChB,CAAC,CAAA;AAAA,MACL,CAAA,MAAO;AACH,QAAA,IAAI,IAAA,EAAM,QAAQ,MAAA,EAAQ;AACtB,UAAA,MAAM,IAAI,UAAA,CAAW,IAAA,CAAK,UAAU,EAAC,EAAG,KAAK,IAAI,CAAA;AAAA,QACrD;AACA,QAAA,OAAO,IAAA,CAAK,IAAA;AAAA,MAChB;AAAA,IACJ,CAAA;AAAA,EACJ;AAEA,EAAA,MAAM,UAAU,IAAI,YAAA;AAAA,IAChB,OAAO,YAAA,KAAiB;AAEpB,MAAA,MAAM,IAAA,GAAO,MAAM,OAAA,CAAS,YAAY,CAAA;AACxC,MAAA,OAAO,IAAA;AAAA,IACX,CAAA;AAAA,IACA,KAAA,KAAU,OAAO,qBAAA,GAAwB;AAAA,GAC7C;AAEA,EAAA,OAAO,OAAO,EAAE,KAAA,EAAO,SAAA,EAAU,KAAM;AACnC,IAAA,MAAM,IAAA,GAAO,MAAM,OAAA,CAAQ,KAAA,CAAM,OAAO,SAAS,CAAA;AACjD,IAAA,IAAI,MAAM,IAAA,EAAM;AACZ,MAAA,OAAO,IAAA,CAAK,IAAA;AAAA,IAChB;AACA,IAAA,MAAM,IAAI,KAAA;AAAA,MACN,iDAAA,GAAoD,IAAA,CAAK,SAAA,CAAU,IAAI;AAAA,KAC3E;AAAA,EACJ,CAAA;AACJ,CAAA;;;AC9DA,IAAM,YAAA,GAAe,CACjB,OAAA,EACA,GAAA,EACA,IAAA,KACS;AACT,EAAA,IAAI,OAAO,OAAA,KAAY,QAAA,IAAY,QAAA,IAAY,OAAA,EAAS;AACpD,IAAA,MAAM,OAAY,OAAA,CAAQ,MAAA;AAC1B,IAAA,IAAI,MAAA,GAA8B,EAAE,GAAG,OAAA,EAAQ;AAC/C,IAAA,OAAO,MAAA,CAAO,MAAA;AACd,IAAA,MAAM,QAAA,GAAW,MAAA,CAAO,IAAA,CAAK,IAAI,CAAA;AAEjC,IAAA,IAAI,QAAA,CAAS,WAAW,CAAA,EAAG;AACvB,MAAA,OAAO,YAAA,CAAa,MAAA,EAAQ,GAAA,EAAK,IAAI,CAAA;AAAA,IACzC;AAEA,IAAA,MAAM,KAAA,GAAQ,gBAAA,CAAiB,GAAA,CAAI,IAAA,EAAM,IAAI,CAAA;AAE7C,IAAA,MAAM,UAAA,GAAa,QAAA,CAAS,GAAA,CAAI,CAAC,OAAA,KAAY;AACzC,MAAA,GAAA,CAAI,UAAA,EAAA;AACJ,MAAA,MAAM,OAAA,GAAU,CAAA,CAAA,EAAI,GAAA,CAAI,UAAU,CAAA,CAAA;AAElC,MAAA,MAAM,MAAA,GAAS,KAAA,CAAM,IAAA,IAAQ,KAAA,CAAM,KAAK,OAAO,CAAA;AAE/C,MAAA,IAAI,CAAC,MAAA,EAAQ;AACT,QAAA,MAAM,IAAI,KAAA;AAAA,UACN,CAAA,iCAAA,EAAoC,OAAO,CAAA,aAAA,EAAgB,IAAA,CAAK,IAAA;AAAA,YAC5D;AAAA,WACH,CAAA,EAAA;AAAA,SACL;AAAA,MACJ;AAEA,MAAA,GAAA,CAAI,SAAA,CAAU,OAAO,CAAA,GAAI;AAAA,QACrB,KAAA,EAAO,KAAK,OAAO,CAAA;AAAA,QACnB;AAAA,OACJ;AAEA,MAAA,OAAO,CAAA,EAAG,OAAO,CAAA,EAAA,EAAK,OAAO,CAAA,CAAA;AAAA,IACjC,CAAC,CAAA;AACD,IAAA,OAAO,IAAI,UAAU,CAAA,CAAA,EAAI,aAAa,MAAA,EAAQ,GAAA,EAAK,IAAI,CAAC,CAAA,CAAA;AAAA,EAC5D,CAAA,MAAA,IAAW,OAAO,OAAA,KAAY,QAAA,IAAY,OAAO,IAAA,CAAK,OAAO,CAAA,CAAE,MAAA,GAAS,CAAA,EAAG;AACvE,IAAA,MAAM,MAAA,GAAS,OAAA;AACf,IAAA,MAAM,UAAA,GAAa,MAAA,CAAO,IAAA,CAAK,MAAM,CAAA,CAAE,MAAA,CAAO,CAAC,CAAA,KAAM,OAAA,CAAQ,MAAA,CAAO,CAAC,CAAC,CAAC,CAAA;AAEvE,IAAA,IAAI,UAAA,CAAW,WAAW,CAAA,EAAG;AACzB,MAAA,MAAM,IAAI,KAAA;AAAA,QACN,CAAA,qCAAA,EAAwC,IAAA,CAAK,IAAA,CAAK,GAAG,CAAC,CAAA;AAAA,OAC1D;AAAA,IACJ;AAEA,IAAA,MAAM,IAAA,GACF,IAAA,CAAK,MAAA,GAAS,CAAA,GAAI,gBAAA,CAAiB,IAAI,IAAA,EAAM,IAAI,CAAA,CAAE,IAAA,GAAO,GAAA,CAAI,IAAA;AAClE,IAAA,MAAM,eAAe,IAAA,CAAK,MAAA;AAE1B,IAAA,IAAI,oBAAA;AAEJ,IAAA,IAAI,UAAA,CAAW,QAAA,CAAS,UAAU,CAAA,EAAG;AACjC,MAAA,MAAM,kBAAkB,IAAI,GAAA;AAAA,QACxB,MAAA,CAAO,IAAA,CAAK,MAAM,CAAA,CAAE,MAAA,CAAO,CAAC,CAAA,KAAM,CAAC,OAAA,CAAQ,MAAA,CAAO,CAAC,CAAC,CAAC;AAAA,OACzD;AACA,MAAA,IAAI,cAAc,MAAA,EAAQ;AACtB,QAAA,GAAA,CAAI,eAAA,EAAA;AACJ,QAAA,oBAAA,GAAuB,CAAA,CAAA,EAAI,IAAI,eAAe,CAAA,CAAA;AAE9C,QAAA,GAAA,CAAI,SAAA,CAAU,IAAA;AAAA,UACV,YAAY,oBAAoB,CAAA,IAAA,EAC5B,KAAK,IACT,CAAA,CAAA,EAAI,aACC,MAAA,CAAO,CAAC,CAAA,KAAM,CAAC,gBAAgB,GAAA,CAAI,CAAC,CAAC,CAAA,CACrC,IAAA,CAAK,GAAG,CAAC,CAAA,CAAA;AAAA,SAClB;AAAA,MACJ;AAAA,IACJ;AAEA,IAAA,MAAM,kBAAkB,UAAA,CACnB,MAAA,CAAO,CAAC,CAAA,KAAM,CAAC,CAAC,UAAA,EAAY,QAAQ,CAAA,CAAE,SAAS,CAAC,CAAC,CAAA,CACjD,GAAA,CAAI,CAAC,CAAA,KAAM;AACR,MAAA,MAAM,MAAA,GAAS,YAAA,CAAa,MAAA,CAAO,CAAC,CAAA,EAAG,KAAK,CAAC,GAAG,IAAA,EAAM,CAAC,CAAC,CAAA;AAExD,MAAA,IAAI,CAAA,CAAE,UAAA,CAAW,KAAK,CAAA,EAAG;AACrB,QAAA,GAAA,CAAI,eAAA,EAAA;AACJ,QAAA,MAAM,sBAAA,GAAyB,CAAA,CAAA,EAAI,GAAA,CAAI,eAAe,CAAA,CAAA;AAEtD,QAAA,MAAM,SAAA,GAAY,CAAA,CAAE,KAAA,CAAM,UAAU,CAAA;AAEpC,QAAA,IAAI,CAAC,SAAA,IAAa,CAAC,SAAA,CAAU,CAAC,CAAA;AAC1B,UAAA,MAAM,IAAI,MAAM,cAAc,CAAA;AAElC,QAAA,GAAA,CAAI,SAAA,CAAU,IAAA;AAAA,UACV,YAAY,sBAAsB,CAAA,IAAA,EAAO,UAAU,CAAC,CAAC,GAAG,MAAM,CAAA;AAAA,SAClE;AAEA,QAAA,OAAO,MAAM,sBAAsB,CAAA,CAAA;AAAA,MACvC,CAAA,MAAO;AACH,QAAA,OAAO,CAAA,EAAG,CAAC,CAAA,EAAG,MAAM,CAAA,CAAA;AAAA,MACxB;AAAA,IACJ,CAAC,CAAA,CACA,MAAA,CAAO,oBAAA,GAAuB,CAAC,CAAA,GAAA,EAAM,oBAAoB,CAAA,CAAE,CAAA,GAAI,EAAE,CAAA,CACjE,KAAK,GAAG,CAAA;AAEb,IAAA,OAAO,IAAI,eAAe,CAAA,CAAA,CAAA;AAAA,EAC9B,CAAA,MAAO;AACH,IAAA,OAAO,EAAA;AAAA,EACX;AACJ,CAAA;AAEO,IAAM,wBAAA,GAA2B,CACpC,SAAA,EACA,IAAA,EACA,MAAA,KACmB;AACnB,EAAA,MAAM,GAAA,GAAe;AAAA,IACjB,IAAA;AAAA,IACA,UAAA,EAAY,CAAA;AAAA,IACZ,WAAW,EAAC;AAAA,IACZ,eAAA,EAAiB,CAAA;AAAA,IACjB,WAAW;AAAC,GAChB;AACA,EAAA,MAAM,MAAA,GAAS,YAAA,CAAa,MAAA,EAAQ,GAAA,EAAK,EAAE,CAAA;AAE3C,EAAA,MAAM,QAAA,GAAW,MAAA,CAAO,IAAA,CAAK,GAAA,CAAI,SAAS,CAAA;AAE1C,EAAA,MAAM,UAAA,GACF,SAAS,MAAA,GAAS,CAAA,GACZ,IAAI,QAAA,CAAS,GAAA,CAAI,CAAC,CAAA,KAAM;AACpB,IAAA,MAAM,eAAe,GAAA,CAAI,SAAA,CAAU,CAAC,CAAA,CAAE,OAAO,CAAC,CAAA;AAC9C,IAAA,OAAO,CAAA,CAAA,EAAI,CAAC,CAAA,CAAA,EAAI,YAAY,CAAA,CAAA;AAAA,EAChC,CAAC,CAAC,CAAA,CAAA,CAAA,GACF,EAAA;AAEV,EAAA,MAAM,aAAA,GAAgB,QAAQ,MAAA,IAAU,EAAA;AAExC,EAAA,OAAO;AAAA,IACH,KAAA,EAAO;AAAA,MACH,GAAG,SAAS,CAAA,CAAA,EAAI,aAAa,CAAA,EAAG,UAAU,GAAG,MAAM,CAAA,CAAA;AAAA,MACnD,GAAG,GAAA,CAAI;AAAA,KACX,CAAE,KAAK,GAAG,CAAA;AAAA,IACV,SAAA,EAAW,MAAA,CAAO,IAAA,CAAK,GAAA,CAAI,SAAS,CAAA,CAAE,MAAA;AAAA,MAClC,CAAC,GAAG,CAAA,KAAM;AACN,QAAA,CAAA,CAAE,CAAC,CAAA,GAAI,GAAA,CAAI,SAAA,CAAU,CAAC,CAAA,CAAE,KAAA;AACxB,QAAA,OAAO,CAAA;AAAA,MACX,CAAA;AAAA,MACA;AAAC,KACL;AAAA,IACA,GAAI,gBAAgB,EAAE,aAAA,EAAe,cAAc,QAAA,EAAS,KAAM;AAAC,GACvE;AACJ,CAAA;AAEO,IAAM,gBAAA,GAAmB,CAC5B,IAAA,EACA,IAAA,KACC;AACD,EAAA,IAAI,OAAA;AAEJ,EAAA,IAAI,CAAC,IAAA,EAAM,MAAM,IAAI,MAAM,2BAA2B,CAAA;AAEtD,EAAA,IAAI,KAAK,MAAA,KAAW,CAAA,EAAG,MAAM,IAAI,MAAM,CAAA,aAAA,CAAe,CAAA;AAEtD,EAAA,IAAA,CAAK,OAAA,CAAQ,CAAC,CAAA,KAAM;AAChB,IAAA,MAAM,IAAA,GAAO,OAAA,GAAU,OAAA,CAAQ,IAAA,GAAO,IAAA;AAEtC,IAAA,IAAI,CAAC,IAAA,CAAK,MAAA;AACN,MAAA,MAAM,IAAI,KAAA,CAAM,CAAA,OAAA,EAAU,IAAA,CAAK,IAAI,CAAA,uBAAA,CAAyB,CAAA;AAEhE,IAAA,MAAM,aAAA,GAAgB,MAAA,CAAO,IAAA,CAAK,IAAA,CAAK,MAAM,CAAA,CACxC,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,UAAA,CAAW,KAAK,CAAC,CAAA,CACjC,MAAA;AAAA,MACG,CAAC,OAAO,SAAA,KAAc;AAClB,QAAA,MAAMC,MAAAA,GAAQ,IAAA,CAAK,MAAA,IAAU,IAAA,CAAK,OAAO,SAAS,CAAA;AAClD,QAAA,IAAIA,MAAAA,EAAO,KAAA,CAAM,IAAA,CAAKA,MAAAA,CAAM,IAAI,CAAA;AAChC,QAAA,OAAO,KAAA;AAAA,MACX,CAAA;AAAA,MACA,CAAC,IAAI;AAAA,KACT;AAEJ,IAAA,IAAI,KAAA,GAA4B,IAAA;AAEhC,IAAA,aAAA,CAAc,OAAA,CAAQ,CAACC,KAAAA,KAAS;AAC5B,MAAA,MAAM,KAAA,GAAQA,KAAAA,CAAK,MAAA,IAAUA,KAAAA,CAAK,OAAO,CAAC,CAAA;AAC1C,MAAA,IAAI,OAAO,KAAA,GAAQ,KAAA;AAAA,IACvB,CAAC,CAAA;AAED,IAAA,IAAI,CAAC,KAAA;AACD,MAAA,MAAM,IAAI,KAAA;AAAA,QACN,CAAA,OAAA,EAAU,IAAA,CAAK,IAAI,CAAA,2BAAA,EAA8B,CAAC,CAAA,EAAA;AAAA,OACtD;AAEJ,IAAA,OAAA,GAAU,KAAA;AAAA,EACd,CAAC,CAAA;AAED,EAAA,OAAO,OAAA;AACX,CAAA;;;ACtMO,IAAM,eAAe,CAAC;AAAA,EACzB,SAAA;AAAA,EACA,YAAA;AAAA,EACA,gBAAA;AAAA,EACA,GAAG;AACP,CAAA,KAIM;AACF,EAAA,MAAM,OAAA,GAAU,cAAc,OAAO,CAAA;AACrC,EAAA,MAAM,SAGF,EAAC;AAEL,EAAA,IAAI,SAAA,EAAW;AACX,IAAA,MAAA,CAAO,KAAA,GAAQ,CAAC,OAAA,KAAiB;AAC7B,MAAA,IAAI,CAAC,SAAA,EAAW,MAAM,IAAI,MAAM,+BAA+B,CAAA;AAE/D,MAAA,MAAM,aAAA,GAAgB,OAAA;AAAA,QAClB,wBAAA,CAAyB,OAAA,EAAS,SAAA,EAAW,OAAO;AAAA,OACxD;AAEA,MAAA,OAAO,aAAA;AAAA,IACX,CAAA;AAAA,EACJ;AACA,EAAA,IAAI,YAAA,EAAc;AACd,IAAA,MAAA,CAAO,QAAA,GAAW,CAAC,OAAA,KAAiB;AAChC,MAAA,IAAI,CAAC,YAAA;AACD,QAAA,MAAM,IAAI,MAAM,kCAAkC,CAAA;AAEtD,MAAA,MAAM,aAAA,GAAgB,OAAA;AAAA,QAClB,wBAAA,CAAyB,UAAA,EAAY,YAAA,EAAc,OAAO;AAAA,OAC9D;AAEA,MAAA,OAAO,aAAA;AAAA,IACX,CAAA;AAAA,EACJ;AAEA,EAAA,OAAO,MAAA;AACX,CAAA;;;AClDO,IAAM,WAAA,GAAc,CACvBC,QAAAA,KACgB;AAChB,EAAA,MAAM,cAAsC,MAAA,CAAO,MAAA;AAAA,IAC/C,EAAC;AAAA,IACD,GAAG,MAAA,CAAO,IAAA,CAAKA,QAAAA,CAAQ,KAAK,CAAA,CAAE,GAAA,CAAI,CAAC,CAAA,EAAG,OAAO,EAAE,CAAC,CAAC,GAAG,GAAE,CAAE;AAAA,GAC5D;AAEA,EAAA,IAAI,sBAAsB,MAAA,CAAO,MAAA;AAAA,IAC7B,EAAC;AAAA,IACD,GAAG,MAAA,CAAO,IAAA,CAAKA,SAAQ,KAAA,IAAS,EAAE,CAAA,CAAE,GAAA;AAAA,MAChC,CAAC,CAAA,KAAkC;AAC/B,QAAA,MAAM,IAAA,GAAuBA,QAAAA,CAAQ,KAAA,CAAM,CAAC,CAAA;AAC5C,QAAA,MAAM,MAAA,GAAS,QAAQ,EAAC;AACxB,QAAA,OAAO;AAAA,UACH,CAAC,CAAC,GAAG;AAAA,YACD,IAAA,EAAM,CAAA;AAAA;AAAA,YAEN,QAAQ,MAAA,CAAO,IAAA,CAAK,MAAM,CAAA,CAAE,MAAA,CAAO,CAAC,CAAA,KAAM;AACtC,cAAA,MAAM,CAACD,KAAI,CAAA,GAAI,MAAA,CAAO,CAAC,KAAK,EAAC;AAE7B,cAAA,MAAM,QAAA,GACFA,KAAAA,IAAQC,QAAAA,CAAQ,OAAA,CAAQ,SAASD,KAAI,CAAA;AACzC,cAAA,IAAI,CAAC,QAAA,EAAU;AACX,gBAAA,OAAO,KAAA;AAAA,cACX;AACA,cAAA,MAAM,IAAA,GAAO,MAAA,CAAO,CAAC,CAAA,GAAI,CAAC,CAAA;AAC1B,cAAA,MAAM,QAAA,GAAW,MAAA,CAAO,MAAA,CAAO,IAAA,IAAQ,EAAE,CAAA,CACpC,GAAA,CAAI,CAAC,MAAM,CAAA,GAAI,CAAC,CAAC,CAAA,CACjB,OAAO,OAAO,CAAA;AAEnB,cAAA,MAAM,kBAAkB,QAAA,CAAS,IAAA;AAAA,gBAC7B,CAAC,GAAA,KAAQ,GAAA,IAAO,GAAA,CAAI,SAAS,GAAG;AAAA,eACpC;AACA,cAAA,IAAI,eAAA,EAAiB;AACjB,gBAAA,OAAO,KAAA;AAAA,cACX;AACA,cAAA,OAAO,IAAA;AAAA,YACX,CAAC,CAAA;AAAA;AAAA,YAED,QAAQ,MAAA,CAAO,MAAA;AAAA,cACX,EAAC;AAAA,cACD,GAAG,MAAA,CAAO,IAAA,CAAK,MAAM,CAAA,CAAE,GAAA;AAAA,gBACnB,CAAC,CAAA,KAA6B;AAC1B,kBAAA,MAAM,CAAC,SAAA,EAAW,IAAI,IAAI,MAAA,CAAO,CAAC,KAAK,EAAC;AACxC,kBAAA,IAAI,aAAa,IAAA,EAAM;AACnB,oBAAA,OAAO,EAAC;AAAA,kBACZ;AACA,kBAAA,OAAO;AAAA,oBACH,CAAC,CAAC,GAAG;AAAA;AAAA,sBAED,IAAA,EAAM,YAAY,SAAS,CAAA;AAAA,sBAC3B,MAAM,MAAA,CAAO,MAAA;AAAA,wBACT,EAAC;AAAA,wBACD,GAAG,MAAA,CAAO,IAAA,CAAK,IAAA,IAAQ,EAAE,CAAA,CAAE,GAAA;AAAA,0BACvB,CAACE,EAAAA,KAAM;AAEH,4BAAA,IAAI,CAAC,IAAA,IAAQ,CAAC,IAAA,CAAKA,EAAC,CAAA,EAAG;AACnB,8BAAA;AAAA,4BACJ;AACA,4BAAA,MAAM;AAAA,8BACF,WAAA;AAAA,8BACA;AAAA,6BACJ,GAAI,KAAKA,EAAC,CAAA;AACV,4BAAA,OAAO;AAAA,8BACH,CAACA,EAAC,GAAG;AAAA,gCACD,YACI,WACJ,CAAA;AAAA,gCACA,aAAA,IACI,YACI,WACJ;AAAA;AACR,6BACJ;AAAA,0BACJ;AAAA;AACJ;AACJ;AACJ,mBACJ;AAAA,gBACJ;AAAA;AACJ;AACJ;AACJ,SACJ;AAAA,MACJ;AAAA;AACJ,GACJ;AACA,EAAA,MAAM,GAAA,GAAM,qBAAqB,mBAAmB,CAAA;AACpD,EAAA,OAAO,GAAA;AACX,CAAA;AAGO,IAAM,oBAAA,GAAuB,CAAC,aAAA,KAAiC;AAClE,EAAA,MAAA,CAAO,IAAA,CAAK,aAAa,CAAA,CAAE,OAAA,CAAQ,CAAC,eAAA,KAAoB;AACpD,IAAA,MAAM,IAAA,GAAmB,cAAc,eAAe,CAAA;AAEtD,IAAA,IAAI,CAAC,KAAK,MAAA,EAAQ;AACd,MAAA;AAAA,IACJ;AAEA,IAAA,MAAM,SAAS,IAAA,CAAK,MAAA;AAEpB,IAAA,MAAA,CAAO,IAAA,CAAK,MAAM,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAA,KAAM;AAC/B,MAAA,MAAM,KAAA,GAAqB,OAAO,CAAC,CAAA;AAEnC,MAAA,IAAI,MAAM,IAAA,EAAM;AACZ,QAAA,MAAM,OAAO,KAAA,CAAM,IAAA;AACnB,QAAA,MAAA,CAAO,IAAA,CAAK,IAAI,CAAA,CAAE,OAAA,CAAQ,CAAC,GAAA,KAAQ;AAC/B,UAAA,MAAM,GAAA,GAAM,KAAK,GAAG,CAAA;AAEpB,UAAA,IAAI,GAAA,EAAK;AACL,YAAA,MAAM,CAACC,SAAQ,CAAA,GAAI,GAAA;AAEnB,YAAA,IAAI,OAAOA,cAAa,QAAA,EAAU;AAC9B,cAAA,IAAI,CAAC,aAAA,CAAcA,SAAQ,CAAA,EAAG;AAC1B,gBAAA,aAAA,CAAcA,SAAQ,CAAA,GAAI,EAAE,IAAA,EAAMA,SAAAA,EAAS;AAAA,cAC/C;AAEA,cAAA,GAAA,CAAI,CAAC,CAAA,GAAI,aAAA,CAAcA,SAAQ,CAAA;AAAA,YACnC;AAAA,UACJ;AAAA,QACJ,CAAC,CAAA;AAAA,MACL;AAEA,MAAA,MAAM,WAAW,KAAA,CAAM,IAAA;AAEvB,MAAA,IAAI,OAAO,aAAa,QAAA,EAAU;AAC9B,QAAA,IAAI,CAAC,aAAA,CAAc,QAAQ,CAAA,EAAG;AAC1B,UAAA,aAAA,CAAc,QAAQ,CAAA,GAAI,EAAE,IAAA,EAAM,QAAA,EAAS;AAAA,QAC/C;AAEA,QAAA,KAAA,CAAM,IAAA,GAAO,cAAc,QAAQ,CAAA;AAAA,MACvC;AAAA,IACJ,CAAC,CAAA;AAAA,EACL,CAAC,CAAA;AAED,EAAA,OAAO,aAAA;AACX,CAAA;;;AC3JA,IAAO,aAAA,GAAQ;AAAA,EACX,SAAA,EAAW;AAAA,IACP,CAAA;AAAA,IACA,CAAA;AAAA,IACA,CAAA;AAAA,IACA,CAAA;AAAA,IACA,CAAA;AAAA,IACA,CAAA;AAAA,IACA,CAAA;AAAA,IACA,CAAA;AAAA,IACA,CAAA;AAAA,IACA,EAAA;AAAA,IACA,EAAA;AAAA,IACA,EAAA;AAAA,IACA;AAAA,GACJ;AAAA,EACA,OAAA,EAAS;AAAA,IACL,YAAY,EAAC;AAAA,IACb,gBAAgB,EAAC;AAAA,IACjB,mBAAmB,EAAC;AAAA,IACpB,cAAc,EAAC;AAAA,IACf,kBAAkB,EAAC;AAAA,IACnB,qBAAqB,EAAC;AAAA,IACtB,iBAAiB,EAAC;AAAA,IAClB,yBAAyB,EAAC;AAAA,IAC1B,UAAA,EAAY;AAAA,MACR,KAAA,EAAO;AAAA,QACH;AAAA,OACJ;AAAA,MACA,MAAA,EAAQ;AAAA,QACJ;AAAA,OACJ;AAAA,MACA,MAAA,EAAQ;AAAA,QACJ;AAAA,OACJ;AAAA,MACA,QAAA,EAAU;AAAA,QACN;AAAA,OACJ;AAAA,MACA,SAAA,EAAW;AAAA,QACP;AAAA,OACJ;AAAA,MACA,aAAA,EAAe;AAAA,QACX;AAAA,OACJ;AAAA,MACA,WAAA,EAAa;AAAA,QACT;AAAA,OACJ;AAAA,MACA,WAAA,EAAa;AAAA,QACT;AAAA,OACJ;AAAA,MACA,YAAA,EAAc;AAAA,QACV;AAAA;AACJ,KACJ;AAAA,IACA,MAAM,EAAC;AAAA,IACP,UAAU,EAAC;AAAA,IACX,OAAA,EAAS;AAAA,MACL,KAAA,EAAO;AAAA,QACH;AAAA,OACJ;AAAA,MACA,MAAA,EAAQ;AAAA,QACJ;AAAA,OACJ;AAAA,MACA,SAAA,EAAW;AAAA,QACP;AAAA,OACJ;AAAA,MACA,MAAA,EAAQ;AAAA,QACJ;AAAA,OACJ;AAAA,MACA,SAAA,EAAW;AAAA,QACP;AAAA,OACJ;AAAA,MACA,YAAA,EAAc;AAAA,QACV;AAAA,OACJ;AAAA,MACA,WAAA,EAAa;AAAA,QACT;AAAA,OACJ;AAAA,MACA,WAAA,EAAa;AAAA,QACT;AAAA,OACJ;AAAA,MACA,YAAA,EAAc;AAAA,QACV;AAAA;AACJ,KACJ;AAAA,IACA,QAAA,EAAU;AAAA,MACN,KAAA,EAAO;AAAA,QACH;AAAA,OACJ;AAAA,MACA,MAAA,EAAQ;AAAA,QACJ;AAAA,OACJ;AAAA,MACA,aAAA,EAAe;AAAA,QACX;AAAA,OACJ;AAAA,MACA,OAAA,EAAS;AAAA,QACL;AAAA,OACJ;AAAA,MACA,MAAA,EAAQ;AAAA,QACJ;AAAA,OACJ;AAAA,MACA,WAAA,EAAa;AAAA,QACT;AAAA,OACJ;AAAA,MACA,SAAA,EAAW;AAAA,QACP;AAAA,OACJ;AAAA,MACA,WAAA,EAAa;AAAA,QACT;AAAA,OACJ;AAAA,MACA,MAAA,EAAQ;AAAA,QACJ;AAAA,OACJ;AAAA,MACA,UAAA,EAAY;AAAA,QACR;AAAA,OACJ;AAAA,MACA,aAAA,EAAe;AAAA,QACX;AAAA,OACJ;AAAA,MACA,QAAA,EAAU;AAAA,QACN;AAAA,OACJ;AAAA,MACA,SAAA,EAAW;AAAA,QACP;AAAA,OACJ;AAAA,MACA,UAAA,EAAY;AAAA,QACR;AAAA,OACJ;AAAA,MACA,YAAA,EAAc;AAAA,QACV;AAAA,OACJ;AAAA,MACA,OAAA,EAAS;AAAA,QACL;AAAA,OACJ;AAAA,MACA,aAAA,EAAe;AAAA,QACX;AAAA,OACJ;AAAA,MACA,WAAA,EAAa;AAAA,QACT;AAAA,OACJ;AAAA,MACA,WAAA,EAAa;AAAA,QACT;AAAA,OACJ;AAAA,MACA,YAAA,EAAc;AAAA,QACV;AAAA;AACJ,KACJ;AAAA,IACA,WAAW,EAAC;AAAA,IACZ,OAAO,EAAC;AAAA,IACR,YAAA,EAAc;AAAA,MACV,KAAA,EAAO;AAAA,QACH;AAAA,OACJ;AAAA,MACA,MAAA,EAAQ;AAAA,QACJ;AAAA,OACJ;AAAA,MACA,aAAA,EAAe;AAAA,QACX;AAAA,OACJ;AAAA,MACA,OAAA,EAAS;AAAA,QACL;AAAA,OACJ;AAAA,MACA,UAAA,EAAY;AAAA,QACR;AAAA,OACJ;AAAA,MACA,UAAA,EAAY;AAAA,QACR;AAAA,OACJ;AAAA,MACA,WAAA,EAAa;AAAA,QACT;AAAA,OACJ;AAAA,MACA,YAAA,EAAc;AAAA,QACV;AAAA,OACJ;AAAA,MACA,YAAA,EAAc;AAAA,QACV;AAAA,OACJ;AAAA,MACA,iBAAA,EAAmB;AAAA,QACf;AAAA,OACJ;AAAA,MACA,SAAA,EAAW;AAAA,QACP;AAAA,OACJ;AAAA,MACA,cAAA,EAAgB;AAAA,QACZ;AAAA,OACJ;AAAA,MACA,mBAAA,EAAqB;AAAA,QACjB;AAAA,OACJ;AAAA,MACA,iBAAA,EAAmB;AAAA,QACf;AAAA,OACJ;AAAA,MACA,WAAA,EAAa;AAAA,QACT;AAAA,OACJ;AAAA,MACA,WAAA,EAAa;AAAA,QACT;AAAA,OACJ;AAAA,MACA,YAAA,EAAc;AAAA,QACV;AAAA;AACJ,KACJ;AAAA,IACA,SAAS,EAAC;AAAA,IACV,MAAA,EAAQ;AAAA,MACJ,KAAA,EAAO;AAAA,QACH;AAAA,OACJ;AAAA,MACA,MAAA,EAAQ;AAAA,QACJ;AAAA,OACJ;AAAA,MACA,aAAA,EAAe;AAAA,QACX;AAAA,OACJ;AAAA,MACA,cAAA,EAAgB;AAAA,QACZ;AAAA,OACJ;AAAA,MACA,kBAAA,EAAoB;AAAA,QAChB;AAAA,OACJ;AAAA,MACA,gBAAA,EAAkB;AAAA,QACd;AAAA,OACJ;AAAA,MACA,gBAAA,EAAkB;AAAA,QACd;AAAA,OACJ;AAAA,MACA,eAAA,EAAiB;AAAA,QACb;AAAA,OACJ;AAAA,MACA,WAAA,EAAa;AAAA,QACT;AAAA,OACJ;AAAA,MACA,WAAA,EAAa;AAAA,QACT;AAAA,OACJ;AAAA,MACA,YAAA,EAAc;AAAA,QACV;AAAA;AACJ,KACJ;AAAA,IACA,QAAA,EAAU;AAAA,MACN,KAAA,EAAO;AAAA,QACH;AAAA,OACJ;AAAA,MACA,OAAA,EAAS;AAAA,QACL;AAAA,OACJ;AAAA,MACA,YAAA,EAAc;AAAA,QACV;AAAA,OACJ;AAAA,MACA,iBAAA,EAAmB;AAAA,QACf;AAAA,OACJ;AAAA,MACA,OAAA,EAAS;AAAA,QACL;AAAA,OACJ;AAAA,MACA,YAAA,EAAc;AAAA,QACV;AAAA,OACJ;AAAA,MACA,YAAA,EAAc;AAAA,QACV;AAAA,OACJ;AAAA,MACA,YAAA,EAAc;AAAA,QACV;AAAA,OACJ;AAAA,MACA,MAAA,EAAQ;AAAA,QACJ;AAAA,OACJ;AAAA,MACA,QAAA,EAAU;AAAA,QACN;AAAA,OACJ;AAAA,MACA,SAAA,EAAW;AAAA,QACP;AAAA,OACJ;AAAA,MACA,YAAA,EAAc;AAAA,QACV;AAAA,OACJ;AAAA,MACA,oBAAA,EAAsB;AAAA,QAClB;AAAA,OACJ;AAAA,MACA,WAAA,EAAa;AAAA,QACT;AAAA,OACJ;AAAA,MACA,WAAA,EAAa;AAAA,QACT;AAAA,OACJ;AAAA,MACA,YAAA,EAAc;AAAA,QACV;AAAA;AACJ,KACJ;AAAA,IACA,iBAAA,EAAmB;AAAA,MACf,KAAA,EAAO;AAAA,QACH;AAAA,OACJ;AAAA,MACA,OAAA,EAAS;AAAA,QACL;AAAA,OACJ;AAAA,MACA,oBAAA,EAAsB;AAAA,QAClB;AAAA,OACJ;AAAA,MACA,eAAA,EAAiB;AAAA,QACb;AAAA,OACJ;AAAA,MACA,mBAAA,EAAqB;AAAA,QACjB;AAAA,OACJ;AAAA,MACA,iBAAA,EAAmB;AAAA,QACf;AAAA,OACJ;AAAA,MACA,QAAA,EAAU;AAAA,QACN;AAAA,OACJ;AAAA,MACA,WAAA,EAAa;AAAA,QACT;AAAA,OACJ;AAAA,MACA,WAAA,EAAa;AAAA,QACT;AAAA,OACJ;AAAA,MACA,WAAA,EAAa;AAAA,QACT;AAAA,OACJ;AAAA,MACA,YAAA,EAAc;AAAA,QACV;AAAA;AACJ,KACJ;AAAA,IACA,yBAAA,EAA2B;AAAA,MACvB,KAAA,EAAO;AAAA,QACH;AAAA,OACJ;AAAA,MACA,WAAA,EAAa;AAAA,QACT;AAAA,OACJ;AAAA,MACA,WAAA,EAAa;AAAA,QACT;AAAA,OACJ;AAAA,MACA,YAAA,EAAc;AAAA,QACV;AAAA;AACJ,KACJ;AAAA,IACA,SAAA,EAAW;AAAA,MACP,KAAA,EAAO;AAAA,QACH;AAAA,OACJ;AAAA,MACA,QAAA,EAAU;AAAA,QACN;AAAA,OACJ;AAAA,MACA,QAAA,EAAU;AAAA,QACN;AAAA,OACJ;AAAA,MACA,uBAAA,EAAyB;AAAA,QACrB;AAAA,OACJ;AAAA,MACA,0BAAA,EAA4B;AAAA,QACxB;AAAA,OACJ;AAAA,MACA,WAAA,EAAa;AAAA,QACT;AAAA,OACJ;AAAA,MACA,WAAA,EAAa;AAAA,QACT;AAAA,OACJ;AAAA,MACA,YAAA,EAAc;AAAA,QACV;AAAA;AACJ,KACJ;AAAA,IACA,eAAA,EAAiB;AAAA,MACb,KAAA,EAAO;AAAA,QACH;AAAA,OACJ;AAAA,MACA,WAAA,EAAa;AAAA,QACT;AAAA,OACJ;AAAA,MACA,WAAA,EAAa;AAAA,QACT;AAAA,OACJ;AAAA,MACA,YAAA,EAAc;AAAA,QACV;AAAA;AACJ,KACJ;AAAA,IACA,iBAAA,EAAmB;AAAA,MACf,MAAA,EAAQ;AAAA,QACJ;AAAA,OACJ;AAAA,MACA,SAAA,EAAW;AAAA,QACP;AAAA,OACJ;AAAA,MACA,YAAA,EAAc;AAAA,QACV;AAAA;AACJ,KACJ;AAAA,IACA,0BAAA,EAA4B;AAAA,MACxB,SAAA,EAAW;AAAA,QACP;AAAA,OACJ;AAAA,MACA,YAAA,EAAc;AAAA,QACV;AAAA,OACJ;AAAA,MACA,aAAA,EAAe;AAAA,QACX;AAAA,OACJ;AAAA,MACA,YAAA,EAAc;AAAA,QACV;AAAA,OACJ;AAAA,MACA,YAAA,EAAc;AAAA,QACV;AAAA;AACJ,KACJ;AAAA,IACA,oBAAA,EAAsB;AAAA,MAClB,SAAA,EAAW;AAAA,QACP;AAAA,OACJ;AAAA,MACA,YAAA,EAAc;AAAA,QACV;AAAA,OACJ;AAAA,MACA,aAAA,EAAe;AAAA,QACX;AAAA,OACJ;AAAA,MACA,YAAA,EAAc;AAAA,QACV;AAAA,OACJ;AAAA,MACA,YAAA,EAAc;AAAA,QACV;AAAA;AACJ,KACJ;AAAA,IACA,6BAAA,EAA+B;AAAA,MAC3B,WAAA,EAAa;AAAA,QACT;AAAA,OACJ;AAAA,MACA,YAAA,EAAc;AAAA,QACV;AAAA,OACJ;AAAA,MACA,aAAA,EAAe;AAAA,QACX;AAAA,OACJ;AAAA,MACA,YAAA,EAAc;AAAA,QACV;AAAA,OACJ;AAAA,MACA,YAAA,EAAc;AAAA,QACV;AAAA;AACJ,KACJ;AAAA,IACA,OAAA,EAAS;AAAA,MACL,2BAAA,EAA6B;AAAA,QACzB,EAAA;AAAA,QACA;AAAA,UACI,QAAA,EAAU;AAAA,YACN;AAAA,WACJ;AAAA,UACA,MAAA,EAAQ;AAAA,YACJ;AAAA,WACJ;AAAA,UACA,QAAA,EAAU;AAAA,YACN;AAAA,WACJ;AAAA,UACA,WAAA,EAAa;AAAA,YACT;AAAA;AACJ;AACJ,OACJ;AAAA,MACA,kBAAA,EAAoB;AAAA,QAChB,EAAA;AAAA,QACA;AAAA,UACI,MAAA,EAAQ;AAAA,YACJ,EAAA;AAAA,YACA;AAAA;AACJ;AACJ,OACJ;AAAA,MACA,4BAAA,EAA8B;AAAA,QAC1B,EAAA;AAAA,QACA;AAAA,UACI,YAAA,EAAc;AAAA,YACV,EAAA;AAAA,YACA;AAAA,WACJ;AAAA,UACA,QAAA,EAAU;AAAA,YACN;AAAA,WACJ;AAAA,UACA,MAAA,EAAQ;AAAA,YACJ;AAAA,WACJ;AAAA,UACA,WAAA,EAAa;AAAA,YACT;AAAA;AACJ;AACJ,OACJ;AAAA,MACA,8BAAA,EAAgC;AAAA,QAC5B,EAAA;AAAA,QACA;AAAA,UACI,YAAA,EAAc;AAAA,YACV,EAAA;AAAA,YACA;AAAA,WACJ;AAAA,UACA,QAAA,EAAU;AAAA,YACN;AAAA,WACJ;AAAA,UACA,MAAA,EAAQ;AAAA,YACJ;AAAA;AACJ;AACJ,OACJ;AAAA,MACA,YAAA,EAAc;AAAA,QACV;AAAA;AACJ;AACJ;AAER,CAAA;;;ACxeA,IAAM,OAAA,GAAU,YAAY,aAAY,CAAA;AAQjC,IAAMC,aAAAA,GAAe,SAAU,OAAA,EAAiC;AACrE,EAAA,OAAO,YAAA,CAAqB;AAAA,IAC1B,GAAA,EAAK,MAAA;AAAA,IAEL,GAAG,OAAA;AAAA,IACH,WAAW,OAAA,CAAQ,KAAA;AAAA,IACnB,cAAc,OAAA,CAAQ,QAAA;AAAA,IACtB,kBAAkB,OAAA,CAAQ;AAAA,GAC3B,CAAA;AACH,CAAA;AAEO,IAAM,UAAA,GAAa;AAAA,EACxB,QAAA,EAAU;AACZ;AAMO,IAAM,eAAA,GAEW,SAAU,MAAA,EAAQ;AACxC,EAAA,OAAO,wBAAA,CAAyB,OAAA,EAAS,OAAA,CAAQ,KAAA,EAAQ,MAAa,CAAA;AACxE;;;ACGO,SAAS,uBACd,MAAA,EACkB;AAClB,EAAA,MAAM,EAAE,KAAA,EAAO,OAAA,EAAS,OAAA,EAAS,cAAa,GAAI,MAAA;AAElD,EAAA,IAAI,CAAC,KAAA,EAAO;AACV,IAAA,MAAM,IAAI,KAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AAEA,EAAA,OAAOA,aAAAA,CAAkB;AAAA,IACvB,KAAK,OAAA,IAAW,gCAAA;AAAA,IAChB,OAAA,EAAS;AAAA,MACP,mBAAA,EAAqB,KAAA;AAAA,MACrB,cAAA,EAAgB,kBAAA;AAAA,MAChB,GAAG;AAAA;AACL,GACD,CAAA;AACH","file":"index.mjs","sourcesContent":["// @ts-nocheck\nexport class GenqlError extends Error {\n errors: Array<GraphqlError> = []\n /**\n * Partial data returned by the server\n */\n data?: any\n constructor(errors: any[], data: any) {\n let message = Array.isArray(errors)\n ? errors.map((x) => x?.message || '').join('\\n')\n : ''\n if (!message) {\n message = 'GraphQL error'\n }\n super(message)\n this.errors = errors\n this.data = data\n }\n}\n\ninterface GraphqlError {\n message: string\n locations?: Array<{\n line: number\n column: number\n }>\n path?: string[]\n extensions?: Record<string, any>\n}\n","// @ts-nocheck\nimport type { GraphqlOperation } from './generateGraphqlOperation'\nimport { GenqlError } from './error'\n\ntype Variables = Record<string, any>\n\ntype QueryError = Error & {\n message: string\n\n locations?: Array<{\n line: number\n column: number\n }>\n path?: any\n rid: string\n details?: Record<string, any>\n}\ntype Result = {\n data: Record<string, any>\n errors: Array<QueryError>\n}\ntype Fetcher = (\n batchedQuery: GraphqlOperation | Array<GraphqlOperation>,\n) => Promise<Array<Result>>\ntype Options = {\n batchInterval?: number\n shouldBatch?: boolean\n maxBatchSize?: number\n}\ntype Queue = Array<{\n request: GraphqlOperation\n resolve: (...args: Array<any>) => any\n reject: (...args: Array<any>) => any\n}>\n\n/**\n * takes a list of requests (queue) and batches them into a single server request.\n * It will then resolve each individual requests promise with the appropriate data.\n * @private\n * @param {QueryBatcher} client - the client to use\n * @param {Queue} queue - the list of requests to batch\n */\nfunction dispatchQueueBatch(client: QueryBatcher, queue: Queue): void {\n let batchedQuery: any = queue.map((item) => item.request)\n\n if (batchedQuery.length === 1) {\n batchedQuery = batchedQuery[0]\n }\n (() => {\n try {\n return client.fetcher(batchedQuery);\n } catch(e) {\n return Promise.reject(e);\n }\n })().then((responses: any) => {\n if (queue.length === 1 && !Array.isArray(responses)) {\n if (responses.errors && responses.errors.length) {\n queue[0].reject(\n new GenqlError(responses.errors, responses.data),\n )\n return\n }\n\n queue[0].resolve(responses)\n return\n } else if (responses.length !== queue.length) {\n throw new Error('response length did not match query length')\n }\n\n for (let i = 0; i < queue.length; i++) {\n if (responses[i].errors && responses[i].errors.length) {\n queue[i].reject(\n new GenqlError(responses[i].errors, responses[i].data),\n )\n } else {\n queue[i].resolve(responses[i])\n }\n }\n })\n .catch((e) => {\n for (let i = 0; i < queue.length; i++) {\n queue[i].reject(e)\n }\n });\n}\n\n/**\n * creates a list of requests to batch according to max batch size.\n * @private\n * @param {QueryBatcher} client - the client to create list of requests from from\n * @param {Options} options - the options for the batch\n */\nfunction dispatchQueue(client: QueryBatcher, options: Options): void {\n const queue = client._queue\n const maxBatchSize = options.maxBatchSize || 0\n client._queue = []\n\n if (maxBatchSize > 0 && maxBatchSize < queue.length) {\n for (let i = 0; i < queue.length / maxBatchSize; i++) {\n dispatchQueueBatch(\n client,\n queue.slice(i * maxBatchSize, (i + 1) * maxBatchSize),\n )\n }\n } else {\n dispatchQueueBatch(client, queue)\n }\n}\n/**\n * Create a batcher client.\n * @param {Fetcher} fetcher - A function that can handle the network requests to graphql endpoint\n * @param {Options} options - the options to be used by client\n * @param {boolean} options.shouldBatch - should the client batch requests. (default true)\n * @param {integer} options.batchInterval - duration (in MS) of each batch window. (default 6)\n * @param {integer} options.maxBatchSize - max number of requests in a batch. (default 0)\n * @param {boolean} options.defaultHeaders - default headers to include with every request\n *\n * @example\n * const fetcher = batchedQuery => fetch('path/to/graphql', {\n * method: 'post',\n * headers: {\n * Accept: 'application/json',\n * 'Content-Type': 'application/json',\n * },\n * body: JSON.stringify(batchedQuery),\n * credentials: 'include',\n * })\n * .then(response => response.json())\n *\n * const client = new QueryBatcher(fetcher, { maxBatchSize: 10 })\n */\n\nexport class QueryBatcher {\n fetcher: Fetcher\n _options: Options\n _queue: Queue\n\n constructor(\n fetcher: Fetcher,\n {\n batchInterval = 6,\n shouldBatch = true,\n maxBatchSize = 0,\n }: Options = {},\n ) {\n this.fetcher = fetcher\n this._options = {\n batchInterval,\n shouldBatch,\n maxBatchSize,\n }\n this._queue = []\n }\n\n /**\n * Fetch will send a graphql request and return the parsed json.\n * @param {string} query - the graphql query.\n * @param {Variables} variables - any variables you wish to inject as key/value pairs.\n * @param {[string]} operationName - the graphql operationName.\n * @param {Options} overrides - the client options overrides.\n *\n * @return {promise} resolves to parsed json of server response\n *\n * @example\n * client.fetch(`\n * query getHuman($id: ID!) {\n * human(id: $id) {\n * name\n * height\n * }\n * }\n * `, { id: \"1001\" }, 'getHuman')\n * .then(human => {\n * // do something with human\n * console.log(human);\n * });\n */\n fetch(\n query: string,\n variables?: Variables,\n operationName?: string,\n overrides: Options = {},\n ): Promise<Result> {\n const request: GraphqlOperation = {\n query,\n }\n const options = Object.assign({}, this._options, overrides)\n\n if (variables) {\n request.variables = variables\n }\n\n if (operationName) {\n request.operationName = operationName\n }\n\n const promise = new Promise<Result>((resolve, reject) => {\n this._queue.push({\n request,\n resolve,\n reject,\n })\n\n if (this._queue.length === 1) {\n if (options.shouldBatch) {\n setTimeout(\n () => dispatchQueue(this, options),\n options.batchInterval,\n )\n } else {\n dispatchQueue(this, options)\n }\n }\n })\n return promise\n }\n\n /**\n * Fetch will send a graphql request and return the parsed json.\n * @param {string} query - the graphql query.\n * @param {Variables} variables - any variables you wish to inject as key/value pairs.\n * @param {[string]} operationName - the graphql operationName.\n * @param {Options} overrides - the client options overrides.\n *\n * @return {Promise<Array<Result>>} resolves to parsed json of server response\n *\n * @example\n * client.forceFetch(`\n * query getHuman($id: ID!) {\n * human(id: $id) {\n * name\n * height\n * }\n * }\n * `, { id: \"1001\" }, 'getHuman')\n * .then(human => {\n * // do something with human\n * console.log(human);\n * });\n */\n forceFetch(\n query: string,\n variables?: Variables,\n operationName?: string,\n overrides: Options = {},\n ): Promise<Result> {\n const request: GraphqlOperation = {\n query,\n }\n const options = Object.assign({}, this._options, overrides, {\n shouldBatch: false,\n })\n\n if (variables) {\n request.variables = variables\n }\n\n if (operationName) {\n request.operationName = operationName\n }\n\n const promise = new Promise<Result>((resolve, reject) => {\n const client = new QueryBatcher(this.fetcher, this._options)\n client._queue = [\n {\n request,\n resolve,\n reject,\n },\n ]\n dispatchQueue(client, options)\n })\n return promise\n }\n}\n","// @ts-nocheck\nimport { QueryBatcher } from './batcher'\n\nimport type { ClientOptions } from './createClient'\nimport type { GraphqlOperation } from './generateGraphqlOperation'\nimport { GenqlError } from './error'\n\nexport interface Fetcher {\n (gql: GraphqlOperation): Promise<any>\n}\n\nexport type BatchOptions = {\n batchInterval?: number // ms\n maxBatchSize?: number\n}\n\nconst DEFAULT_BATCH_OPTIONS = {\n maxBatchSize: 10,\n batchInterval: 40,\n}\n\nexport const createFetcher = ({\n url,\n headers = {},\n fetcher,\n fetch: _fetch,\n batch = false,\n ...rest\n}: ClientOptions): Fetcher => {\n if (!url && !fetcher) {\n throw new Error('url or fetcher is required')\n }\n\n fetcher = fetcher || (async (body) => {\n let headersObject =\n typeof headers == 'function' ? await headers() : headers\n headersObject = headersObject || {}\n if (typeof fetch === 'undefined' && !_fetch) {\n throw new Error(\n 'Global `fetch` function is not available, pass a fetch polyfill to Genql `createClient`',\n )\n }\n let fetchImpl = _fetch || fetch\n const res = await fetchImpl(url!, {\n headers: {\n 'Content-Type': 'application/json',\n ...headersObject,\n },\n method: 'POST',\n body: JSON.stringify(body),\n ...rest,\n })\n if (!res.ok) {\n throw new Error(`${res.statusText}: ${await res.text()}`)\n }\n const json = await res.json()\n return json\n })\n\n if (!batch) {\n return async (body) => {\n const json = await fetcher!(body)\n if (Array.isArray(json)) {\n return json.map((json) => {\n if (json?.errors?.length) {\n throw new GenqlError(json.errors || [], json.data)\n }\n return json.data\n })\n } else {\n if (json?.errors?.length) {\n throw new GenqlError(json.errors || [], json.data)\n }\n return json.data\n }\n }\n }\n\n const batcher = new QueryBatcher(\n async (batchedQuery) => {\n // console.log(batchedQuery) // [{ query: 'query{user{age}}', variables: {} }, ...]\n const json = await fetcher!(batchedQuery)\n return json as any\n },\n batch === true ? DEFAULT_BATCH_OPTIONS : batch,\n )\n\n return async ({ query, variables }) => {\n const json = await batcher.fetch(query, variables)\n if (json?.data) {\n return json.data\n }\n throw new Error(\n 'Genql batch fetcher returned unexpected result ' + JSON.stringify(json),\n )\n }\n}\n","// @ts-nocheck\nimport type { LinkedField, LinkedType } from './types'\n\nexport interface Args {\n [arg: string]: any | undefined\n}\n\nexport interface Fields {\n [field: string]: Request\n}\n\nexport type Request = boolean | number | Fields\n\nexport interface Variables {\n [name: string]: {\n value: any\n typing: [LinkedType, string]\n }\n}\n\nexport interface Context {\n root: LinkedType\n varCounter: number\n variables: Variables\n fragmentCounter: number\n fragments: string[]\n}\n\nexport interface GraphqlOperation {\n query: string\n variables?: { [name: string]: any }\n operationName?: string\n}\n\nconst parseRequest = (\n request: Request | undefined,\n ctx: Context,\n path: string[],\n): string => {\n if (typeof request === 'object' && '__args' in request) {\n const args: any = request.__args\n let fields: Request | undefined = { ...request }\n delete fields.__args\n const argNames = Object.keys(args)\n\n if (argNames.length === 0) {\n return parseRequest(fields, ctx, path)\n }\n\n const field = getFieldFromPath(ctx.root, path)\n\n const argStrings = argNames.map((argName) => {\n ctx.varCounter++\n const varName = `v${ctx.varCounter}`\n\n const typing = field.args && field.args[argName] // typeMap used here, .args\n\n if (!typing) {\n throw new Error(\n `no typing defined for argument \\`${argName}\\` in path \\`${path.join(\n '.',\n )}\\``,\n )\n }\n\n ctx.variables[varName] = {\n value: args[argName],\n typing,\n }\n\n return `${argName}:$${varName}`\n })\n return `(${argStrings})${parseRequest(fields, ctx, path)}`\n } else if (typeof request === 'object' && Object.keys(request).length > 0) {\n const fields = request\n const fieldNames = Object.keys(fields).filter((k) => Boolean(fields[k]))\n\n if (fieldNames.length === 0) {\n throw new Error(\n `field selection should not be empty: ${path.join('.')}`,\n )\n }\n\n const type =\n path.length > 0 ? getFieldFromPath(ctx.root, path).type : ctx.root\n const scalarFields = type.scalar\n\n let scalarFieldsFragment: string | undefined\n\n if (fieldNames.includes('__scalar')) {\n const falsyFieldNames = new Set(\n Object.keys(fields).filter((k) => !Boolean(fields[k])),\n )\n if (scalarFields?.length) {\n ctx.fragmentCounter++\n scalarFieldsFragment = `f${ctx.fragmentCounter}`\n\n ctx.fragments.push(\n `fragment ${scalarFieldsFragment} on ${\n type.name\n }{${scalarFields\n .filter((f) => !falsyFieldNames.has(f))\n .join(',')}}`,\n )\n }\n }\n\n const fieldsSelection = fieldNames\n .filter((f) => !['__scalar', '__name'].includes(f))\n .map((f) => {\n const parsed = parseRequest(fields[f], ctx, [...path, f])\n\n if (f.startsWith('on_')) {\n ctx.fragmentCounter++\n const implementationFragment = `f${ctx.fragmentCounter}`\n\n const typeMatch = f.match(/^on_(.+)/)\n\n if (!typeMatch || !typeMatch[1])\n throw new Error('match failed')\n\n ctx.fragments.push(\n `fragment ${implementationFragment} on ${typeMatch[1]}${parsed}`,\n )\n\n return `...${implementationFragment}`\n } else {\n return `${f}${parsed}`\n }\n })\n .concat(scalarFieldsFragment ? [`...${scalarFieldsFragment}`] : [])\n .join(',')\n\n return `{${fieldsSelection}}`\n } else {\n return ''\n }\n}\n\nexport const generateGraphqlOperation = (\n operation: 'query' | 'mutation' | 'subscription',\n root: LinkedType,\n fields?: Fields,\n): GraphqlOperation => {\n const ctx: Context = {\n root: root,\n varCounter: 0,\n variables: {},\n fragmentCounter: 0,\n fragments: [],\n }\n const result = parseRequest(fields, ctx, [])\n\n const varNames = Object.keys(ctx.variables)\n\n const varsString =\n varNames.length > 0\n ? `(${varNames.map((v) => {\n const variableType = ctx.variables[v].typing[1]\n return `$${v}:${variableType}`\n })})`\n : ''\n\n const operationName = fields?.__name || ''\n\n return {\n query: [\n `${operation} ${operationName}${varsString}${result}`,\n ...ctx.fragments,\n ].join(','),\n variables: Object.keys(ctx.variables).reduce<{ [name: string]: any }>(\n (r, v) => {\n r[v] = ctx.variables[v].value\n return r\n },\n {},\n ),\n ...(operationName ? { operationName: operationName.toString() } : {}),\n }\n}\n\nexport const getFieldFromPath = (\n root: LinkedType | undefined,\n path: string[],\n) => {\n let current: LinkedField | undefined\n\n if (!root) throw new Error('root type is not provided')\n\n if (path.length === 0) throw new Error(`path is empty`)\n\n path.forEach((f) => {\n const type = current ? current.type : root\n\n if (!type.fields)\n throw new Error(`type \\`${type.name}\\` does not have fields`)\n\n const possibleTypes = Object.keys(type.fields)\n .filter((i) => i.startsWith('on_'))\n .reduce(\n (types, fieldName) => {\n const field = type.fields && type.fields[fieldName]\n if (field) types.push(field.type)\n return types\n },\n [type],\n )\n\n let field: LinkedField | null = null\n\n possibleTypes.forEach((type) => {\n const found = type.fields && type.fields[f]\n if (found) field = found\n })\n\n if (!field)\n throw new Error(\n `type \\`${type.name}\\` does not have a field \\`${f}\\``,\n )\n\n current = field\n })\n\n return current as LinkedField\n}\n","// @ts-nocheck\n\nimport { type BatchOptions, createFetcher } from './fetcher'\nimport type { ExecutionResult, LinkedType } from './types'\nimport {\n generateGraphqlOperation,\n type GraphqlOperation,\n} from './generateGraphqlOperation'\n\nexport type Headers =\n | HeadersInit\n | (() => HeadersInit)\n | (() => Promise<HeadersInit>)\n\nexport type BaseFetcher = (\n operation: GraphqlOperation | GraphqlOperation[],\n) => Promise<ExecutionResult | ExecutionResult[]>\n\nexport type ClientOptions = Omit<RequestInit, 'body' | 'headers'> & {\n url?: string\n batch?: BatchOptions | boolean\n fetcher?: BaseFetcher\n fetch?: Function\n headers?: Headers\n}\n\nexport const createClient = ({\n queryRoot,\n mutationRoot,\n subscriptionRoot,\n ...options\n}: ClientOptions & {\n queryRoot?: LinkedType\n mutationRoot?: LinkedType\n subscriptionRoot?: LinkedType\n}) => {\n const fetcher = createFetcher(options)\n const client: {\n query?: Function\n mutation?: Function\n } = {}\n\n if (queryRoot) {\n client.query = (request: any) => {\n if (!queryRoot) throw new Error('queryRoot argument is missing')\n\n const resultPromise = fetcher(\n generateGraphqlOperation('query', queryRoot, request),\n )\n\n return resultPromise\n }\n }\n if (mutationRoot) {\n client.mutation = (request: any) => {\n if (!mutationRoot)\n throw new Error('mutationRoot argument is missing')\n\n const resultPromise = fetcher(\n generateGraphqlOperation('mutation', mutationRoot, request),\n )\n\n return resultPromise\n }\n }\n\n return client as any\n}\n","// @ts-nocheck\nimport type {\n CompressedType,\n CompressedTypeMap,\n LinkedArgMap,\n LinkedField,\n LinkedType,\n LinkedTypeMap,\n} from './types'\n\nexport interface PartialLinkedFieldMap {\n [field: string]: {\n type: string\n args?: LinkedArgMap\n }\n}\n\nexport const linkTypeMap = (\n typeMap: CompressedTypeMap<number>,\n): LinkedTypeMap => {\n const indexToName: Record<number, string> = Object.assign(\n {},\n ...Object.keys(typeMap.types).map((k, i) => ({ [i]: k })),\n )\n\n let intermediaryTypeMap = Object.assign(\n {},\n ...Object.keys(typeMap.types || {}).map(\n (k): Record<string, LinkedType> => {\n const type: CompressedType = typeMap.types[k]!\n const fields = type || {}\n return {\n [k]: {\n name: k,\n // type scalar properties\n scalar: Object.keys(fields).filter((f) => {\n const [type] = fields[f] || []\n\n const isScalar =\n type && typeMap.scalars.includes(type)\n if (!isScalar) {\n return false\n }\n const args = fields[f]?.[1]\n const argTypes = Object.values(args || {})\n .map((x) => x?.[1])\n .filter(Boolean)\n\n const hasRequiredArgs = argTypes.some(\n (str) => str && str.endsWith('!'),\n )\n if (hasRequiredArgs) {\n return false\n }\n return true\n }),\n // fields with corresponding `type` and `args`\n fields: Object.assign(\n {},\n ...Object.keys(fields).map(\n (f): PartialLinkedFieldMap => {\n const [typeIndex, args] = fields[f] || []\n if (typeIndex == null) {\n return {}\n }\n return {\n [f]: {\n // replace index with type name\n type: indexToName[typeIndex],\n args: Object.assign(\n {},\n ...Object.keys(args || {}).map(\n (k) => {\n // if argTypeString == argTypeName, argTypeString is missing, need to readd it\n if (!args || !args[k]) {\n return\n }\n const [\n argTypeName,\n argTypeString,\n ] = args[k] as any\n return {\n [k]: [\n indexToName[\n argTypeName\n ],\n argTypeString ||\n indexToName[\n argTypeName\n ],\n ],\n }\n },\n ),\n ),\n },\n }\n },\n ),\n ),\n },\n }\n },\n ),\n )\n const res = resolveConcreteTypes(intermediaryTypeMap)\n return res\n}\n\n// replace typename with concrete type\nexport const resolveConcreteTypes = (linkedTypeMap: LinkedTypeMap) => {\n Object.keys(linkedTypeMap).forEach((typeNameFromKey) => {\n const type: LinkedType = linkedTypeMap[typeNameFromKey]!\n // type.name = typeNameFromKey\n if (!type.fields) {\n return\n }\n\n const fields = type.fields\n\n Object.keys(fields).forEach((f) => {\n const field: LinkedField = fields[f]!\n\n if (field.args) {\n const args = field.args\n Object.keys(args).forEach((key) => {\n const arg = args[key]\n\n if (arg) {\n const [typeName] = arg\n\n if (typeof typeName === 'string') {\n if (!linkedTypeMap[typeName]) {\n linkedTypeMap[typeName] = { name: typeName }\n }\n\n arg[0] = linkedTypeMap[typeName]!\n }\n }\n })\n }\n\n const typeName = field.type as LinkedType | string\n\n if (typeof typeName === 'string') {\n if (!linkedTypeMap[typeName]) {\n linkedTypeMap[typeName] = { name: typeName }\n }\n\n field.type = linkedTypeMap[typeName]!\n }\n })\n })\n\n return linkedTypeMap\n}\n","export default {\n \"scalars\": [\n 0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n 9,\n 10,\n 13,\n 14,\n 16\n ],\n \"types\": {\n \"DateTime\": {},\n \"MomentStatus\": {},\n \"MomentSortOrder\": {},\n \"MomentType\": {},\n \"MomentCategory\": {},\n \"MomentSubcategory\": {},\n \"PaymentStatus\": {},\n \"TicketExtensionStatus\": {},\n \"Currency\": {\n \"uid\": [\n 9\n ],\n \"code\": [\n 10\n ],\n \"name\": [\n 10\n ],\n \"symbol\": [\n 10\n ],\n \"country\": [\n 10\n ],\n \"countryCode\": [\n 10\n ],\n \"createdAt\": [\n 0\n ],\n \"updatedAt\": [\n 0\n ],\n \"__typename\": [\n 10\n ]\n },\n \"ID\": {},\n \"String\": {},\n \"Venue\": {\n \"uid\": [\n 9\n ],\n \"name\": [\n 10\n ],\n \"address\": [\n 10\n ],\n \"city\": [\n 10\n ],\n \"country\": [\n 10\n ],\n \"postalCode\": [\n 10\n ],\n \"createdAt\": [\n 0\n ],\n \"updatedAt\": [\n 0\n ],\n \"__typename\": [\n 10\n ]\n },\n \"Moment\": {\n \"uid\": [\n 9\n ],\n \"name\": [\n 10\n ],\n \"description\": [\n 10\n ],\n \"blurb\": [\n 10\n ],\n \"slug\": [\n 10\n ],\n \"startDate\": [\n 0\n ],\n \"endDate\": [\n 0\n ],\n \"isPrivate\": [\n 13\n ],\n \"type\": [\n 3\n ],\n \"category\": [\n 4\n ],\n \"subcategory\": [\n 5\n ],\n \"status\": [\n 1\n ],\n \"soldOut\": [\n 13\n ],\n \"timezone\": [\n 10\n ],\n \"minimumAge\": [\n 14\n ],\n \"venue\": [\n 11\n ],\n \"ticketTiers\": [\n 15\n ],\n \"createdAt\": [\n 0\n ],\n \"updatedAt\": [\n 0\n ],\n \"__typename\": [\n 10\n ]\n },\n \"Boolean\": {},\n \"Int\": {},\n \"TicketTier\": {\n \"uid\": [\n 9\n ],\n \"name\": [\n 10\n ],\n \"description\": [\n 10\n ],\n \"price\": [\n 16\n ],\n \"currency\": [\n 8\n ],\n \"isActive\": [\n 13\n ],\n \"isPrivate\": [\n 13\n ],\n \"maxPerUser\": [\n 14\n ],\n \"minPerUser\": [\n 14\n ],\n \"remainingSupply\": [\n 14\n ],\n \"numSold\": [\n 16\n ],\n \"numCheckedIn\": [\n 16\n ],\n \"startDateOverride\": [\n 0\n ],\n \"endDateOverride\": [\n 0\n ],\n \"createdAt\": [\n 0\n ],\n \"updatedAt\": [\n 0\n ],\n \"__typename\": [\n 10\n ]\n },\n \"Float\": {},\n \"User\": {\n \"uid\": [\n 9\n ],\n \"name\": [\n 10\n ],\n \"phoneNumber\": [\n 10\n ],\n \"primaryEmail\": [\n 10\n ],\n \"instagramProfile\": [\n 10\n ],\n \"twitterProfile\": [\n 10\n ],\n \"spotifyProfile\": [\n 10\n ],\n \"tiktokProfile\": [\n 10\n ],\n \"createdAt\": [\n 0\n ],\n \"updatedAt\": [\n 0\n ],\n \"__typename\": [\n 10\n ]\n },\n \"Ticket\": {\n \"uid\": [\n 9\n ],\n \"price\": [\n 16\n ],\n \"redeemedAt\": [\n 0\n ],\n \"encryptedQRCode\": [\n 10\n ],\n \"notes\": [\n 10\n ],\n \"externalId\": [\n 10\n ],\n \"hasExpired\": [\n 13\n ],\n \"ticketTier\": [\n 15\n ],\n \"user\": [\n 17\n ],\n \"moment\": [\n 12\n ],\n \"payment\": [\n 21\n ],\n \"extensions\": [\n 19\n ],\n \"discountCodeUsages\": [\n 20\n ],\n \"createdAt\": [\n 0\n ],\n \"updatedAt\": [\n 0\n ],\n \"__typename\": [\n 10\n ]\n },\n \"TicketExtension\": {\n \"uid\": [\n 9\n ],\n \"hours\": [\n 14\n ],\n \"previousTotalHours\": [\n 14\n ],\n \"newTotalHours\": [\n 14\n ],\n \"pricePerHourCents\": [\n 14\n ],\n \"totalPriceCents\": [\n 14\n ],\n \"status\": [\n 7\n ],\n \"appliedAt\": [\n 0\n ],\n \"createdAt\": [\n 0\n ],\n \"updatedAt\": [\n 0\n ],\n \"__typename\": [\n 10\n ]\n },\n \"MomentDiscountCodeUsage\": {\n \"uid\": [\n 9\n ],\n \"createdAt\": [\n 0\n ],\n \"updatedAt\": [\n 0\n ],\n \"__typename\": [\n 10\n ]\n },\n \"Payment\": {\n \"uid\": [\n 9\n ],\n \"amount\": [\n 16\n ],\n \"status\": [\n 6\n ],\n \"stripePaymentIntentId\": [\n 10\n ],\n \"stripeConnectedPaymentId\": [\n 10\n ],\n \"createdAt\": [\n 0\n ],\n \"updatedAt\": [\n 0\n ],\n \"__typename\": [\n 10\n ]\n },\n \"MerchPurchase\": {\n \"uid\": [\n 9\n ],\n \"createdAt\": [\n 0\n ],\n \"updatedAt\": [\n 0\n ],\n \"__typename\": [\n 10\n ]\n },\n \"PartnerCustomer\": {\n \"user\": [\n 17\n ],\n \"tickets\": [\n 18\n ],\n \"__typename\": [\n 10\n ]\n },\n \"GetPublicMomentsResponse\": {\n \"moments\": [\n 12\n ],\n \"totalCount\": [\n 14\n ],\n \"hasNextPage\": [\n 13\n ],\n \"nextCursor\": [\n 10\n ],\n \"__typename\": [\n 10\n ]\n },\n \"GetTicketsResponse\": {\n \"tickets\": [\n 18\n ],\n \"totalCount\": [\n 14\n ],\n \"hasNextPage\": [\n 13\n ],\n \"nextCursor\": [\n 10\n ],\n \"__typename\": [\n 10\n ]\n },\n \"GetPartnerCustomersResponse\": {\n \"customers\": [\n 23\n ],\n \"totalCount\": [\n 14\n ],\n \"hasNextPage\": [\n 13\n ],\n \"nextCursor\": [\n 10\n ],\n \"__typename\": [\n 10\n ]\n },\n \"Query\": {\n \"getPartnerMomentsForBrand\": [\n 24,\n {\n \"cursor\": [\n 10\n ],\n \"take\": [\n 14\n ],\n \"status\": [\n 1\n ],\n \"sortOrder\": [\n 2\n ]\n }\n ],\n \"getPartnerMoment\": [\n 12,\n {\n \"slug\": [\n 10,\n \"String!\"\n ]\n }\n ],\n \"getPartnerTicketsForMoment\": [\n 25,\n {\n \"momentSlug\": [\n 10,\n \"String!\"\n ],\n \"cursor\": [\n 10\n ],\n \"take\": [\n 14\n ],\n \"checkedIn\": [\n 13\n ]\n }\n ],\n \"getPartnerCustomersForMoment\": [\n 26,\n {\n \"momentSlug\": [\n 10,\n \"String!\"\n ],\n \"cursor\": [\n 10\n ],\n \"take\": [\n 14\n ]\n }\n ],\n \"__typename\": [\n 10\n ]\n }\n }\n}","// @ts-nocheck\nimport type { QueryGenqlSelection, Query } from './schema'\nimport {\n linkTypeMap,\n createClient as createClientOriginal,\n generateGraphqlOperation,\n type FieldsSelection,\n type GraphqlOperation,\n type ClientOptions,\n GenqlError,\n} from './runtime'\nexport type { FieldsSelection } from './runtime'\nexport { GenqlError }\n\nimport types from './types'\nexport * from './schema'\nconst typeMap = linkTypeMap(types as any)\n\nexport interface Client {\n query<R extends QueryGenqlSelection>(\n request: R & { __name?: string },\n ): Promise<FieldsSelection<Query, R>>\n}\n\nexport const createClient = function (options?: ClientOptions): Client {\n return createClientOriginal({\n url: undefined,\n\n ...options,\n queryRoot: typeMap.Query!,\n mutationRoot: typeMap.Mutation!,\n subscriptionRoot: typeMap.Subscription!,\n }) as any\n}\n\nexport const everything = {\n __scalar: true,\n}\n\nexport type QueryResult<fields extends QueryGenqlSelection> = FieldsSelection<\n Query,\n fields\n>\nexport const generateQueryOp: (\n fields: QueryGenqlSelection & { __name?: string },\n) => GraphqlOperation = function (fields) {\n return generateGraphqlOperation('query', typeMap.Query!, fields as any)\n}\n","import { createClient as createGenqlClient, type Client } from './generated';\n\nexport interface ITMPartnerClientConfig {\n /**\n * Partner API token (from backstage: Settings > Partner API).\n * Sent as `x-partner-api-key` header on every request.\n */\n token: string;\n\n /**\n * Base URL of the ITM GraphQL API.\n * @default 'https://api.itm.studio/graphql'\n */\n baseUrl?: string;\n\n /**\n * Additional headers to include on every request.\n */\n headers?: Record<string, string>;\n}\n\nexport type ITMPartnerClient = Client;\n\n/**\n * Create a typed ITM Partner API client.\n *\n * @example\n * ```ts\n * import { createITMPartnerClient } from '@itm-studio/partner-sdk';\n *\n * const itm = createITMPartnerClient({\n * token: process.env.ITM_PARTNER_TOKEN!,\n * });\n *\n * const { getPartnerMomentsForBrand } = await itm.query({\n * getPartnerMomentsForBrand: {\n * __args: { take: 10 },\n * moments: {\n * uid: true,\n * name: true,\n * startDate: true,\n * venue: { name: true, city: true },\n * },\n * totalCount: true,\n * hasNextPage: true,\n * nextCursor: true,\n * },\n * });\n * ```\n */\nexport function createITMPartnerClient(\n config: ITMPartnerClientConfig,\n): ITMPartnerClient {\n const { token, baseUrl, headers: extraHeaders } = config;\n\n if (!token) {\n throw new Error(\n 'ITM Partner SDK: token is required. Get one from backstage: Settings > Partner API.',\n );\n }\n\n return createGenqlClient({\n url: baseUrl ?? 'https://api.itm.studio/graphql',\n headers: {\n 'x-partner-api-key': token,\n 'Content-Type': 'application/json',\n ...extraHeaders,\n },\n });\n}\n"]}
package/package.json ADDED
@@ -0,0 +1,53 @@
1
+ {
2
+ "name": "@itm-studio/partner-sdk",
3
+ "version": "0.1.0",
4
+ "description": "TypeScript SDK for the ITM Partner API — typed GraphQL client with zero introspection required",
5
+ "main": "dist/index.js",
6
+ "module": "dist/index.mjs",
7
+ "types": "dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.mjs",
12
+ "require": "./dist/index.js"
13
+ }
14
+ },
15
+ "files": [
16
+ "dist",
17
+ "schema"
18
+ ],
19
+ "scripts": {
20
+ "generate": "genql --schema ./schema/partner.graphql --output ./src/generated",
21
+ "build": "npm run generate && tsup",
22
+ "test": "vitest run",
23
+ "test:watch": "vitest",
24
+ "lint": "tsc --noEmit",
25
+ "prepublishOnly": "npm run build",
26
+ "schema:check": "hive schema:check ./schema/partner.graphql",
27
+ "schema:publish": "hive schema:publish ./schema/partner.graphql --author \"CI\" --commit \"$GITHUB_SHA\""
28
+ },
29
+ "keywords": [
30
+ "itm",
31
+ "graphql",
32
+ "sdk",
33
+ "partner-api",
34
+ "typed-client"
35
+ ],
36
+ "author": "ITM Studio",
37
+ "license": "MIT",
38
+ "devDependencies": {
39
+ "@genql/cli": "^6.3.3",
40
+ "@graphql-hive/cli": "^0.46.0",
41
+ "msw": "^2.7.0",
42
+ "tsup": "^8.4.0",
43
+ "typescript": "^5.7.0",
44
+ "vitest": "^3.0.0"
45
+ },
46
+ "dependencies": {
47
+ "@genql/runtime": "^2.10.0"
48
+ },
49
+ "peerDependencies": {},
50
+ "engines": {
51
+ "node": ">=18"
52
+ }
53
+ }
@@ -0,0 +1,439 @@
1
+ """
2
+ ITM Partner API Schema
3
+ This is the subset of the ITM GraphQL API available to partner integrations.
4
+ Partners authenticate via x-partner-api-key header or Authorization: Bearer <token>.
5
+ """
6
+
7
+ scalar DateTime
8
+
9
+ # ─── Enums ───────────────────────────────────────────────────────────────────
10
+
11
+ enum MomentStatus {
12
+ UPCOMING
13
+ LIVE
14
+ ENDED
15
+ }
16
+
17
+ enum MomentSortOrder {
18
+ ASC
19
+ DESC
20
+ }
21
+
22
+ enum MomentType {
23
+ DIGITAL
24
+ IRL
25
+ }
26
+
27
+ enum MomentCategory {
28
+ ACTIVATION
29
+ CONCERT
30
+ DIGITAL
31
+ DINING
32
+ EDUCATION
33
+ EXHIBITION
34
+ FASHION
35
+ FESTIVAL
36
+ LAUNCH
37
+ NIGHTLIFE
38
+ OTHER
39
+ PARTY
40
+ PERFORMING_ARTS
41
+ SCREENING
42
+ SPORTS
43
+ WELLNESS
44
+ }
45
+
46
+ enum MomentSubcategory {
47
+ ACOUSTIC_SET
48
+ ADVANCE_SCREENING
49
+ AFTER_PARTY
50
+ AIRDROP
51
+ ALBUM_DROP
52
+ ALBUM_RELEASE_SHOW
53
+ AMA
54
+ ANNIVERSARY
55
+ ARTIST_TALK
56
+ ART_FAIR
57
+ ART_FESTIVAL
58
+ ATHLETE_APPEARANCE
59
+ AWARDS
60
+ BAR_TAKEOVER
61
+ BATTLE
62
+ BEER_AND_WINE_FESTIVAL
63
+ BIENNALE
64
+ BIRTHDAY
65
+ BLOCK_PARTY
66
+ BRAND_EXPERIENCE
67
+ BRAND_REVEAL
68
+ BREATHWORK
69
+ BRUNCH_EVENT
70
+ BURLESQUE
71
+ CACAO_CEREMONY
72
+ CARNIVAL
73
+ CELEBRATION
74
+ CHAMPIONSHIP
75
+ CHEF_DINNER
76
+ CHOIR_OR_ENSEMBLE
77
+ CLUB_NIGHT
78
+ CLUB_SET
79
+ COLD_PLUNGE
80
+ COLLABORATION_REVEAL
81
+ COLLECTION_DROP
82
+ COMEDY_FESTIVAL
83
+ COMEDY_NIGHT
84
+ COMEDY_SHOW
85
+ COMMUNITY_MEETUP
86
+ CONFERENCE
87
+ COOKING_CLASS
88
+ CULTURAL_FESTIVAL
89
+ DANCE_PERFORMANCE
90
+ DAYCLUB
91
+ DIRECTORS_CUT
92
+ DISCORD_EVENT
93
+ DOCUMENTARY
94
+ DRAG_SHOW
95
+ ECSTATIC_DANCE
96
+ ESPORTS
97
+ EXHIBITION_GAME
98
+ EXTREME_SPORTS
99
+ FAN_EXPERIENCE
100
+ FAN_FEST
101
+ FASHION_FESTIVAL
102
+ FASHION_PANEL
103
+ FASHION_WEEK
104
+ FIGHT_NIGHT
105
+ FILM_FESTIVAL
106
+ FILM_PREMIERE
107
+ FINISSAGE
108
+ FIRESIDE_CHAT
109
+ FITNESS_CLASS
110
+ FITTING_EVENT
111
+ FOOD_FESTIVAL
112
+ FOOD_PAIRING
113
+ GALLERY_OPENING
114
+ GAME_DAY
115
+ GIVEAWAY
116
+ GROUP_EXHIBITION
117
+ GUERRILLA
118
+ HACKATHON
119
+ HEADLINER_SHOW
120
+ HOLIDAY_PARTY
121
+ HYBRID_EVENT
122
+ IMMERSIVE_EXPERIENCE
123
+ IMPROV_SHOW
124
+ INFLUENCER_EVENT
125
+ INSTALLATION
126
+ INTERACTIVE_INSTALLATION
127
+ JAZZ_NIGHT
128
+ JAZZ_SESSION
129
+ KARAOKE_NIGHT
130
+ KEYNOTE
131
+ LATE_NIGHT_SET
132
+ LISTENING_PARTY
133
+ LIVESTREAM
134
+ LOOKBOOK_SHOOT
135
+ MASQUERADE
136
+ MASTERCLASS
137
+ MEDITATION
138
+ MEET_AND_GREET
139
+ MEMBERS_ONLY
140
+ MOBILE_TOUR
141
+ MUSEUM_EVENT
142
+ MUSICAL
143
+ MUSIC_FESTIVAL
144
+ MUSIC_VIDEO_PREMIERE
145
+ NETWORKING_MIXER
146
+ NFT_MINT
147
+ ONLINE_DROP
148
+ ONLINE_PREMIERE
149
+ ONLINE_WATCH_PARTY
150
+ OPEN_MIC
151
+ OPERA
152
+ ORCHESTRA
153
+ OTHER
154
+ OUTDOOR_CINEMA
155
+ PANEL
156
+ PERFORMANCE_ART
157
+ PHOTO_ACTIVATION
158
+ POOL_PARTY
159
+ POP_UP_BOUTIQUE
160
+ POP_UP_DINING
161
+ POP_UP_GALLERY
162
+ POP_UP_SHOP
163
+ PRESENTATION
164
+ PRESS_EVENT
165
+ PREVIEW
166
+ PRIDE_FESTIVAL
167
+ PRIVATE_EVENT
168
+ PRODUCT_LAUNCH
169
+ RAVE
170
+ RELEASE_PARTY
171
+ RESIDENCY
172
+ RESTAURANT_OPENING
173
+ RETREAT
174
+ RIVALRY_GAME
175
+ ROOFTOP_PARTY
176
+ ROUNDTABLE
177
+ RUNWAY_SHOW
178
+ RUN_CLUB
179
+ RUN_OR_RACE
180
+ SAMPLE_SALE
181
+ SAMPLING
182
+ SECRET_DINING
183
+ SEMINAR
184
+ SHORT_FILM
185
+ SHOWCASE
186
+ SHOWROOM
187
+ SILENT_DISCO
188
+ SOCIAL_CHALLENGE
189
+ SOLO_EXHIBITION
190
+ SOUND_BATH
191
+ SPA_EXPERIENCE
192
+ SPOKEN_WORD
193
+ SPONSORSHIP
194
+ SPORTS_CLINIC
195
+ SPORTS_WATCH_PARTY
196
+ STANDUP_COMEDY
197
+ STREET_TEAM
198
+ STUDIO_VISIT
199
+ SUMMIT
200
+ SUPPER_CLUB
201
+ TAILGATE
202
+ TASTING
203
+ THEATER
204
+ THEMED_NIGHT
205
+ TOURNAMENT
206
+ TOUR_STOP
207
+ TRIBUTE_SHOW
208
+ TRUNK_SHOW
209
+ TWITTER_SPACE
210
+ VARIETY_SHOW
211
+ VENUE_OPENING
212
+ VIRTUAL_CONCERT
213
+ VIRTUAL_EVENT
214
+ WAREHOUSE_PARTY
215
+ WATCH_PARTY
216
+ WEBINAR
217
+ WELLNESS_FESTIVAL
218
+ WELLNESS_WORKSHOP
219
+ WORKSHOP
220
+ YOGA_SESSION
221
+ }
222
+
223
+ enum PaymentStatus {
224
+ PENDING
225
+ SUCCEEDED
226
+ FAILED
227
+ }
228
+
229
+ enum TicketExtensionStatus {
230
+ PENDING
231
+ APPLIED
232
+ CANCELLED
233
+ EXPIRED
234
+ FAILED
235
+ REFUNDED
236
+ }
237
+
238
+ # ─── Types ───────────────────────────────────────────────────────────────────
239
+
240
+ type Currency {
241
+ uid: ID!
242
+ code: String!
243
+ name: String!
244
+ symbol: String!
245
+ country: String!
246
+ countryCode: String!
247
+ createdAt: DateTime!
248
+ updatedAt: DateTime!
249
+ }
250
+
251
+ type Venue {
252
+ uid: ID!
253
+ name: String!
254
+ address: String
255
+ city: String!
256
+ country: String!
257
+ postalCode: String
258
+ createdAt: DateTime!
259
+ updatedAt: DateTime!
260
+ }
261
+
262
+ type Moment {
263
+ uid: ID!
264
+ name: String!
265
+ description: String
266
+ blurb: String!
267
+ slug: String!
268
+ startDate: DateTime!
269
+ endDate: DateTime!
270
+ isPrivate: Boolean!
271
+ type: MomentType!
272
+ category: MomentCategory!
273
+ subcategory: MomentSubcategory!
274
+ status: MomentStatus!
275
+ soldOut: Boolean!
276
+ timezone: String!
277
+ minimumAge: Int!
278
+ venue: Venue
279
+ ticketTiers: [TicketTier!]!
280
+ createdAt: DateTime!
281
+ updatedAt: DateTime!
282
+ }
283
+
284
+ type TicketTier {
285
+ uid: ID!
286
+ name: String!
287
+ description: String
288
+ price: Float!
289
+ currency: Currency!
290
+ isActive: Boolean!
291
+ isPrivate: Boolean!
292
+ maxPerUser: Int!
293
+ minPerUser: Int!
294
+ remainingSupply: Int!
295
+ numSold: Float!
296
+ numCheckedIn: Float!
297
+ startDateOverride: DateTime
298
+ endDateOverride: DateTime
299
+ createdAt: DateTime!
300
+ updatedAt: DateTime!
301
+ }
302
+
303
+ type User {
304
+ uid: ID!
305
+ name: String
306
+ phoneNumber: String!
307
+ primaryEmail: String
308
+ instagramProfile: String
309
+ twitterProfile: String
310
+ spotifyProfile: String
311
+ tiktokProfile: String
312
+ createdAt: DateTime!
313
+ updatedAt: DateTime!
314
+ }
315
+
316
+ type Ticket {
317
+ uid: ID!
318
+ price: Float!
319
+ redeemedAt: DateTime
320
+ encryptedQRCode: String!
321
+ notes: String
322
+ externalId: String
323
+ hasExpired: Boolean!
324
+ ticketTier: TicketTier!
325
+ user: User!
326
+ moment: Moment!
327
+ payment: Payment
328
+ extensions: [TicketExtension!]!
329
+ discountCodeUsages: [MomentDiscountCodeUsage!]!
330
+ createdAt: DateTime!
331
+ updatedAt: DateTime!
332
+ }
333
+
334
+ type TicketExtension {
335
+ uid: ID!
336
+ hours: Int!
337
+ previousTotalHours: Int!
338
+ newTotalHours: Int!
339
+ pricePerHourCents: Int!
340
+ totalPriceCents: Int!
341
+ status: TicketExtensionStatus!
342
+ appliedAt: DateTime
343
+ createdAt: DateTime!
344
+ updatedAt: DateTime!
345
+ }
346
+
347
+ type MomentDiscountCodeUsage {
348
+ uid: ID!
349
+ createdAt: DateTime!
350
+ updatedAt: DateTime!
351
+ }
352
+
353
+ type Payment {
354
+ uid: ID!
355
+ amount: Float!
356
+ status: PaymentStatus!
357
+ stripePaymentIntentId: String!
358
+ stripeConnectedPaymentId: String
359
+ createdAt: DateTime!
360
+ updatedAt: DateTime!
361
+ }
362
+
363
+ type MerchPurchase {
364
+ uid: ID!
365
+ createdAt: DateTime!
366
+ updatedAt: DateTime!
367
+ }
368
+
369
+ type PartnerCustomer {
370
+ user: User!
371
+ tickets: [Ticket!]!
372
+ }
373
+
374
+ # ─── Paginated Responses ─────────────────────────────────────────────────────
375
+
376
+ type GetPublicMomentsResponse {
377
+ moments: [Moment!]!
378
+ totalCount: Int!
379
+ hasNextPage: Boolean!
380
+ nextCursor: String
381
+ }
382
+
383
+ type GetTicketsResponse {
384
+ tickets: [Ticket!]!
385
+ totalCount: Int!
386
+ hasNextPage: Boolean!
387
+ nextCursor: String
388
+ }
389
+
390
+ type GetPartnerCustomersResponse {
391
+ customers: [PartnerCustomer!]!
392
+ totalCount: Int!
393
+ hasNextPage: Boolean!
394
+ nextCursor: String
395
+ }
396
+
397
+ # ─── Queries ─────────────────────────────────────────────────────────────────
398
+
399
+ type Query {
400
+ """
401
+ Get paginated moments for the brand associated with the partner token.
402
+ """
403
+ getPartnerMomentsForBrand(
404
+ """The cursor to start from, timestamp string"""
405
+ cursor: String
406
+ take: Int
407
+ status: MomentStatus
408
+ """Sort order for moments by start date (default: DESC - newest to oldest)"""
409
+ sortOrder: MomentSortOrder
410
+ ): GetPublicMomentsResponse!
411
+
412
+ """
413
+ Get a single moment by slug.
414
+ """
415
+ getPartnerMoment(slug: String!): Moment
416
+
417
+ """
418
+ Get paginated tickets for a moment.
419
+ """
420
+ getPartnerTicketsForMoment(
421
+ momentSlug: String!
422
+ """Cursor UID for pagination"""
423
+ cursor: String
424
+ take: Int
425
+ """Filter by check-in status"""
426
+ checkedIn: Boolean
427
+ ): GetTicketsResponse!
428
+
429
+ """
430
+ Get paginated customers (users with tickets) for a moment.
431
+ Sorted by newest first (based on earliest ticket purchase time).
432
+ """
433
+ getPartnerCustomersForMoment(
434
+ momentSlug: String!
435
+ """Cursor UID for pagination (user UID)"""
436
+ cursor: String
437
+ take: Int
438
+ ): GetPartnerCustomersResponse!
439
+ }