ticketnation-sdk 1.0.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.
- package/README.md +208 -0
- package/dist/index.d.mts +372 -0
- package/dist/index.d.ts +372 -0
- package/dist/index.js +303 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +298 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +46 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/errors.ts","../src/client.ts","../src/resources/events.ts","../src/resources/tickets.ts","../src/resources/orders.ts","../src/resources/venues.ts","../src/utils/pagination.ts","../src/index.ts"],"names":[],"mappings":";;;AAEO,IAAM,iBAAA,GAAN,MAAM,kBAAA,SAA0B,KAAA,CAAM;AAAA,EAClC,IAAA;AAAA,EACA,MAAA;AAAA,EACA,SAAA;AAAA,EACA,OAAA;AAAA,EAET,WAAA,CACE,SACA,IAAA,EAMA;AACA,IAAA,KAAA,CAAM,OAAO,CAAA;AACb,IAAA,IAAA,CAAK,IAAA,GAAO,mBAAA;AACZ,IAAA,IAAA,CAAK,OAAO,IAAA,CAAK,IAAA;AACjB,IAAA,IAAA,CAAK,SAAS,IAAA,CAAK,MAAA;AACnB,IAAA,IAAA,CAAK,SAAA,GAAY,KAAK,SAAA,IAAa,IAAA;AACnC,IAAA,IAAA,CAAK,UAAU,IAAA,CAAK,OAAA;AAAA,EACtB;AAAA,EAEA,OAAO,YAAA,CAAa,MAAA,EAAgB,IAAA,EAAsE;AACxG,IAAA,OAAO,IAAI,kBAAA,CAAkB,IAAA,CAAK,KAAA,CAAM,OAAA,EAAS;AAAA,MAC/C,IAAA,EAAM,KAAK,KAAA,CAAM,IAAA;AAAA,MACjB,MAAA;AAAA,MACA,WAAW,IAAA,CAAK,SAAA;AAAA,MAChB,OAAA,EAAS,KAAK,KAAA,CAAM;AAAA,KACrB,CAAA;AAAA,EACH;AAAA,EAEA,MAAA,GAAS;AACP,IAAA,OAAO;AAAA,MACL,MAAM,IAAA,CAAK,IAAA;AAAA,MACX,MAAM,IAAA,CAAK,IAAA;AAAA,MACX,QAAQ,IAAA,CAAK,MAAA;AAAA,MACb,SAAS,IAAA,CAAK,OAAA;AAAA,MACd,WAAW,IAAA,CAAK,SAAA;AAAA,MAChB,SAAS,IAAA,CAAK;AAAA,KAChB;AAAA,EACF;AACF;;;AClCO,IAAM,aAAN,MAAiB;AAAA,EACL,MAAA;AAAA,EAEjB,YAAY,MAAA,EAAsB;AAChC,IAAA,IAAA,CAAK,MAAA,GAAS,MAAA;AAAA,EAChB;AAAA,EAEA,MAAM,OAAA,CAAW,MAAA,EAAgB,IAAA,EAAc,IAAA,EAAyE;AACtH,IAAA,MAAM,GAAA,GAAM,IAAA,CAAK,QAAA,CAAS,IAAA,EAAM,MAAM,MAAM,CAAA;AAC5C,IAAA,IAAI,SAAA,GAA0B,IAAA;AAE9B,IAAA,KAAA,IAAS,UAAU,CAAA,EAAG,OAAA,IAAW,IAAA,CAAK,MAAA,CAAO,SAAS,OAAA,EAAA,EAAW;AAC/D,MAAA,IAAI,UAAU,CAAA,EAAG;AACf,QAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,GAAA,CAAI,GAAA,GAAO,IAAA,CAAK,IAAI,CAAA,EAAG,OAAA,GAAU,CAAC,CAAA,EAAG,GAAK,CAAA;AAC7D,QAAA,MAAM,IAAA,CAAK,MAAM,KAAK,CAAA;AACtB,QAAA,IAAI,IAAA,CAAK,OAAO,KAAA,EAAO;AACrB,UAAA,OAAA,CAAQ,GAAA,CAAI,CAAA,iCAAA,EAAoC,OAAO,CAAA,CAAA,EAAI,IAAA,CAAK,MAAA,CAAO,OAAO,CAAA,KAAA,EAAQ,MAAM,CAAA,CAAA,EAAI,IAAI,CAAA,CAAE,CAAA;AAAA,QACxG;AAAA,MACF;AAEA,MAAA,IAAI;AACF,QAAA,MAAM,WAAW,MAAM,IAAA,CAAK,UAAU,MAAA,EAAQ,GAAA,EAAK,MAAM,IAAI,CAAA;AAC7D,QAAA,OAAO,QAAA;AAAA,MACT,SAAS,KAAA,EAAO;AACd,QAAA,SAAA,GAAY,KAAA;AACZ,QAAA,IAAI,KAAA,YAAiB,iBAAA,IAAqB,KAAA,CAAM,MAAA,GAAS,GAAA,EAAK;AAC5D,UAAA,MAAM,KAAA;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAEA,IAAA,MAAM,SAAA;AAAA,EACR;AAAA,EAEA,MAAc,SAAA,CAAU,MAAA,EAAgB,GAAA,EAAa,IAAA,EAAkC;AACrF,IAAA,IAAI,IAAA,CAAK,OAAO,KAAA,EAAO;AACrB,MAAA,MAAM,WAAA,GAAc,IAAA,CAAK,MAAA,CAAO,MAAA,CAAO,KAAA,CAAM,CAAA,EAAG,CAAC,CAAA,GAAI,KAAA,GAAQ,IAAA,CAAK,MAAA,CAAO,MAAA,CAAO,MAAM,EAAE,CAAA;AACxF,MAAA,OAAA,CAAQ,IAAI,CAAA,mBAAA,EAAsB,MAAM,IAAI,GAAG,CAAA,OAAA,EAAU,WAAW,CAAA,CAAA,CAAG,CAAA;AAAA,IACzE;AAEA,IAAA,MAAM,UAAA,GAAa,IAAI,eAAA,EAAgB;AACvC,IAAA,MAAM,SAAA,GAAY,WAAW,MAAM,UAAA,CAAW,OAAM,EAAG,IAAA,CAAK,OAAO,OAAO,CAAA;AAE1E,IAAA,IAAI;AACF,MAAA,MAAM,OAAA,GAAkC;AAAA,QACtC,SAAA,EAAW,KAAK,MAAA,CAAO,MAAA;AAAA,QACvB,cAAA,EAAgB,kBAAA;AAAA,QAChB,QAAA,EAAU,kBAAA;AAAA,QACV,YAAA,EAAc;AAAA,OAChB;AAEA,MAAA,MAAM,IAAA,GAAoB;AAAA,QACxB,MAAA;AAAA,QACA,OAAA;AAAA,QACA,QAAQ,UAAA,CAAW;AAAA,OACrB;AAEA,MAAA,IAAI,SAAS,MAAA,KAAW,MAAA,IAAU,MAAA,KAAW,OAAA,IAAW,WAAW,KAAA,CAAA,EAAQ;AACzE,QAAA,IAAA,CAAK,IAAA,GAAO,IAAA,CAAK,SAAA,CAAU,IAAI,CAAA;AAAA,MACjC;AAEA,MAAA,MAAM,QAAA,GAAW,MAAM,KAAA,CAAM,GAAA,EAAK,IAAI,CAAA;AAEtC,MAAA,IAAI,CAAC,SAAS,EAAA,EAAI;AAChB,QAAA,IAAI,SAAA;AACJ,QAAA,IAAI;AACF,UAAA,SAAA,GAAY,MAAM,SAAS,IAAA,EAAK;AAAA,QAClC,CAAA,CAAA,MAAQ;AACN,UAAA,MAAM,IAAI,kBAAkB,CAAA,KAAA,EAAQ,QAAA,CAAS,MAAM,CAAA,EAAA,EAAK,QAAA,CAAS,UAAU,CAAA,CAAA,EAAI;AAAA,YAC7E,IAAA,EAAM,YAAA;AAAA,YACN,QAAQ,QAAA,CAAS;AAAA,WAClB,CAAA;AAAA,QACH;AAEA,QAAA,MAAM,MAAA,GAAS,SAAA;AACf,QAAA,IAAI,OAAO,KAAA,EAAO;AAChB,UAAA,MAAM,iBAAA,CAAkB,YAAA,CAAa,QAAA,CAAS,MAAA,EAAQ,MAA0E,CAAA;AAAA,QAClI;AAEA,QAAA,MAAM,IAAI,kBAAkB,CAAA,KAAA,EAAQ,QAAA,CAAS,MAAM,CAAA,EAAA,EAAK,QAAA,CAAS,UAAU,CAAA,CAAA,EAAI;AAAA,UAC7E,IAAA,EAAM,YAAA;AAAA,UACN,QAAQ,QAAA,CAAS;AAAA,SAClB,CAAA;AAAA,MACH;AAEA,MAAA,IAAI,QAAA,CAAS,WAAW,GAAA,EAAK;AAC3B,QAAA,OAAO,EAAC;AAAA,MACV;AAEA,MAAA,OAAO,MAAM,SAAS,IAAA,EAAK;AAAA,IAC7B,SAAS,KAAA,EAAO;AACd,MAAA,IAAI,KAAA,YAAiB,mBAAmB,MAAM,KAAA;AAE9C,MAAA,IAAI,KAAA,YAAiB,YAAA,IAAgB,KAAA,CAAM,IAAA,KAAS,YAAA,EAAc;AAChE,QAAA,MAAM,IAAI,iBAAA,CAAkB,CAAA,wBAAA,EAA2B,IAAA,CAAK,MAAA,CAAO,OAAO,CAAA,EAAA,CAAA,EAAM;AAAA,UAC9E,IAAA,EAAM,SAAA;AAAA,UACN,MAAA,EAAQ;AAAA,SACT,CAAA;AAAA,MACH;AAEA,MAAA,MAAM,IAAI,iBAAA,CAAkB,CAAA,eAAA,EAAmB,KAAA,CAAgB,OAAO,CAAA,CAAA,EAAI;AAAA,QACxE,IAAA,EAAM,eAAA;AAAA,QACN,MAAA,EAAQ;AAAA,OACT,CAAA;AAAA,IACH,CAAA,SAAE;AACA,MAAA,YAAA,CAAa,SAAS,CAAA;AAAA,IACxB;AAAA,EACF;AAAA,EAEQ,QAAA,CAAS,MAAc,MAAA,EAA0C;AACvE,IAAA,MAAM,OAAO,IAAA,CAAK,MAAA,CAAO,OAAA,CAAQ,OAAA,CAAQ,OAAO,EAAE,CAAA;AAClD,IAAA,MAAM,MAAM,IAAI,GAAA,CAAI,GAAG,IAAI,CAAA,EAAG,IAAI,CAAA,CAAE,CAAA;AAEpC,IAAA,IAAI,MAAA,EAAQ;AACV,MAAA,KAAA,MAAW,CAAC,GAAA,EAAK,KAAK,KAAK,MAAA,CAAO,OAAA,CAAQ,MAAM,CAAA,EAAG;AACjD,QAAA,IAAI,KAAA,KAAU,MAAA,IAAa,KAAA,KAAU,IAAA,EAAM;AACzC,UAAA,GAAA,CAAI,YAAA,CAAa,GAAA,CAAI,GAAA,EAAK,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,QACzC;AAAA,MACF;AAAA,IACF;AAEA,IAAA,OAAO,IAAI,QAAA,EAAS;AAAA,EACtB;AAAA,EAEQ,MAAM,EAAA,EAA2B;AACvC,IAAA,OAAO,IAAI,OAAA,CAAQ,CAAC,YAAY,UAAA,CAAW,OAAA,EAAS,EAAE,CAAC,CAAA;AAAA,EACzD;AACF,CAAA;;;AC9HO,IAAM,iBAAN,MAAqB;AAAA,EAC1B,YAA6B,MAAA,EAAoB;AAApB,IAAA,IAAA,CAAA,MAAA,GAAA,MAAA;AAAA,EAAqB;AAAA,EAElD,MAAM,OAAO,MAAA,EAA2C;AACtD,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,MAAA,CAAO,OAAA,CAA6B,QAAQ,qBAAA,EAAuB,EAAE,IAAA,EAAM,MAAA,EAAQ,CAAA;AAC1G,IAAA,OAAO,GAAA,CAAI,IAAA;AAAA,EACb;AAAA,EAEA,MAAM,KAAK,MAAA,EAA8D;AACvE,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,OAAA,CAAkC,KAAA,EAAO,qBAAA,EAAuB;AAAA,MACjF,MAAA,EAAQ,MAAA,GAAS,EAAE,IAAA,EAAM,OAAO,IAAA,EAAM,IAAA,EAAM,MAAA,CAAO,IAAA,EAAM,QAAQ,MAAA,CAAO,MAAA,EAAQ,MAAA,EAAQ,MAAA,CAAO,QAAO,GAAI;AAAA,KAC3G,CAAA;AAAA,EACH;AAAA,EAEA,MAAM,IAAI,QAAA,EAAkC;AAC1C,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,MAAA,CAAO,OAAA,CAA6B,OAAO,CAAA,oBAAA,EAAuB,kBAAA,CAAmB,QAAQ,CAAC,CAAA,CAAE,CAAA;AACvH,IAAA,OAAO,GAAA,CAAI,IAAA;AAAA,EACb;AAAA,EAEA,MAAM,MAAA,CAAO,OAAA,EAAiB,MAAA,EAA2C;AACvE,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,MAAA,CAAO,OAAA,CAA6B,OAAA,EAAS,CAAA,oBAAA,EAAuB,OAAO,CAAA,CAAA,EAAI,EAAE,IAAA,EAAM,MAAA,EAAQ,CAAA;AACtH,IAAA,OAAO,GAAA,CAAI,IAAA;AAAA,EACb;AAAA,EAEA,MAAM,QAAQ,OAAA,EAAiC;AAC7C,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,MAAA,CAAO,QAA6B,MAAA,EAAQ,CAAA,oBAAA,EAAuB,OAAO,CAAA,QAAA,CAAU,CAAA;AAC3G,IAAA,OAAO,GAAA,CAAI,IAAA;AAAA,EACb;AAAA,EAEA,MAAM,UAAU,OAAA,EAAiC;AAC/C,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,MAAA,CAAO,QAA6B,MAAA,EAAQ,CAAA,oBAAA,EAAuB,OAAO,CAAA,UAAA,CAAY,CAAA;AAC7G,IAAA,OAAO,GAAA,CAAI,IAAA;AAAA,EACb;AAAA,EAEA,MAAM,QAAQ,OAAA,EAAiC;AAC7C,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,MAAA,CAAO,QAA6B,MAAA,EAAQ,CAAA,oBAAA,EAAuB,OAAO,CAAA,QAAA,CAAU,CAAA;AAC3G,IAAA,OAAO,GAAA,CAAI,IAAA;AAAA,EACb;AAAA,EAEA,MAAM,OAAO,OAAA,EAA2C;AACtD,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,MAAA,CAAO,QAAuC,QAAA,EAAU,CAAA,oBAAA,EAAuB,OAAO,CAAA,CAAE,CAAA;AAC/G,IAAA,OAAO,GAAA,CAAI,IAAA;AAAA,EACb;AACF,CAAA;;;AC7CO,IAAM,kBAAN,MAAsB;AAAA,EAC3B,YAA6B,MAAA,EAAoB;AAApB,IAAA,IAAA,CAAA,MAAA,GAAA,MAAA;AAAA,EAAqB;AAAA,EAElD,MAAM,MAAA,CAAO,OAAA,EAAiB,MAAA,EAA6C;AACzE,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,MAAA,CAAO,OAAA,CAA8B,MAAA,EAAQ,CAAA,oBAAA,EAAuB,OAAO,CAAA,QAAA,CAAA,EAAY,EAAE,IAAA,EAAM,MAAA,EAAQ,CAAA;AAC9H,IAAA,OAAO,GAAA,CAAI,IAAA;AAAA,EACb;AAAA,EAEA,MAAM,KAAK,OAAA,EAAoC;AAC7C,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,MAAA,CAAO,QAAgC,KAAA,EAAO,CAAA,oBAAA,EAAuB,OAAO,CAAA,QAAA,CAAU,CAAA;AAC7G,IAAA,OAAO,GAAA,CAAI,IAAA;AAAA,EACb;AAAA,EAEA,MAAM,GAAA,CAAI,OAAA,EAAiB,QAAA,EAAmC;AAC5D,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,MAAA,CAAO,OAAA,CAA8B,OAAO,CAAA,oBAAA,EAAuB,OAAO,CAAA,SAAA,EAAY,QAAQ,CAAA,CAAE,CAAA;AACvH,IAAA,OAAO,GAAA,CAAI,IAAA;AAAA,EACb;AAAA,EAEA,MAAM,MAAA,CAAO,OAAA,EAAiB,QAAA,EAAkB,MAAA,EAA6C;AAC3F,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,MAAA,CAAO,QAA8B,OAAA,EAAS,CAAA,oBAAA,EAAuB,OAAO,CAAA,SAAA,EAAY,QAAQ,CAAA,CAAA,EAAI,EAAE,IAAA,EAAM,QAAQ,CAAA;AAC3I,IAAA,OAAO,GAAA,CAAI,IAAA;AAAA,EACb;AAAA,EAEA,MAAM,OAAA,CAAQ,OAAA,EAAiB,QAAA,EAAmC;AAChE,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,MAAA,CAAO,OAAA,CAA8B,QAAQ,CAAA,oBAAA,EAAuB,OAAO,CAAA,SAAA,EAAY,QAAQ,CAAA,QAAA,CAAU,CAAA;AAChI,IAAA,OAAO,GAAA,CAAI,IAAA;AAAA,EACb;AAAA,EAEA,MAAM,WAAA,CAAY,OAAA,EAAiB,QAAA,EAAmC;AACpE,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,MAAA,CAAO,OAAA,CAA8B,QAAQ,CAAA,oBAAA,EAAuB,OAAO,CAAA,SAAA,EAAY,QAAQ,CAAA,SAAA,CAAW,CAAA;AACjI,IAAA,OAAO,GAAA,CAAI,IAAA;AAAA,EACb;AAAA,EAEA,MAAM,MAAA,CAAO,OAAA,EAAiB,QAAA,EAA4C;AACxE,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,MAAA,CAAO,OAAA,CAAuC,UAAU,CAAA,oBAAA,EAAuB,OAAO,CAAA,SAAA,EAAY,QAAQ,CAAA,CAAE,CAAA;AACnI,IAAA,OAAO,GAAA,CAAI,IAAA;AAAA,EACb;AACF,CAAA;;;ACtCO,IAAM,iBAAN,MAAqB;AAAA,EAC1B,YAA6B,MAAA,EAAoB;AAApB,IAAA,IAAA,CAAA,MAAA,GAAA,MAAA;AAAA,EAAqB;AAAA,EAElD,MAAM,IAAA,CAAK,OAAA,EAAiB,MAAA,EAA8D;AACxF,IAAA,OAAO,KAAK,MAAA,CAAO,OAAA,CAAkC,KAAA,EAAO,CAAA,oBAAA,EAAuB,OAAO,CAAA,OAAA,CAAA,EAAW;AAAA,MACnG,MAAA,EAAQ,MAAA,GAAS,EAAE,IAAA,EAAM,MAAA,CAAO,IAAA,EAAM,IAAA,EAAM,MAAA,CAAO,IAAA,EAAM,MAAA,EAAQ,MAAA,CAAO,MAAA,EAAO,GAAI;AAAA,KACpF,CAAA;AAAA,EACH;AAAA,EAEA,MAAM,IAAI,OAAA,EAAiC;AACzC,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,MAAA,CAAO,QAA6B,KAAA,EAAO,CAAA,oBAAA,EAAuB,OAAO,CAAA,CAAE,CAAA;AAClG,IAAA,OAAO,GAAA,CAAI,IAAA;AAAA,EACb;AACF,CAAA;;;ACdO,IAAM,iBAAN,MAAqB;AAAA,EAC1B,YAA6B,MAAA,EAAoB;AAApB,IAAA,IAAA,CAAA,MAAA,GAAA,MAAA;AAAA,EAAqB;AAAA,EAElD,MAAM,OAAO,MAAA,EAA+D;AAC1E,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,OAAA,CAAkC,KAAA,EAAO,4BAAA,EAA8B;AAAA,MACxF,MAAA,EAAQ,EAAE,KAAA,EAAO,MAAA,CAAO,KAAA,EAAO,MAAM,MAAA,CAAO,IAAA,EAAM,IAAA,EAAM,MAAA,CAAO,IAAA;AAAK,KACrE,CAAA;AAAA,EACH;AACF,CAAA;;;ACbA,gBAAuB,QAAA,CACrB,WACA,aAAA,EACsC;AACtC,EAAA,IAAI,IAAA,GAAO,eAAe,IAAA,IAAQ,CAAA;AAClC,EAAA,MAAM,IAAA,GAAO,eAAe,IAAA,IAAQ,EAAA;AAEpC,EAAA,OAAO,IAAA,EAAM;AACX,IAAA,MAAM,WAAW,MAAM,SAAA,CAAU,EAAE,IAAA,EAAM,MAAM,CAAA;AAC/C,IAAA,MAAM,QAAA,CAAS,IAAA;AAEf,IAAA,IAAI,IAAA,IAAQ,QAAA,CAAS,IAAA,CAAK,UAAA,EAAY;AACpC,MAAA;AAAA,IACF;AACA,IAAA,IAAA,EAAA;AAAA,EACF;AACF;AAEA,eAAsB,aAAA,CACpB,WACA,aAAA,EACc;AACd,EAAA,MAAM,MAAW,EAAC;AAClB,EAAA,WAAA,MAAiB,KAAA,IAAS,QAAA,CAAS,SAAA,EAAW,aAAa,CAAA,EAAG;AAC5D,IAAA,GAAA,CAAI,IAAA,CAAK,GAAG,KAAK,CAAA;AAAA,EACnB;AACA,EAAA,OAAO,GAAA;AACT;;;ACtBO,IAAM,eAAN,MAAmB;AAAA,EACf,MAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA,MAAA;AAAA,EAEQ,MAAA;AAAA,EAEjB,YAAY,MAAA,EAA4B;AACtC,IAAA,IAAI,CAAC,OAAO,MAAA,EAAQ;AAClB,MAAA,MAAM,IAAI,MAAM,qCAAqC,CAAA;AAAA,IACvD;AAEA,IAAA,IAAA,CAAK,MAAA,GAAS,IAAI,UAAA,CAAW;AAAA,MAC3B,QAAQ,MAAA,CAAO,MAAA;AAAA,MACf,OAAA,EAAS,OAAO,OAAA,IAAW,6BAAA;AAAA,MAC3B,OAAA,EAAS,OAAO,OAAA,IAAW,GAAA;AAAA,MAC3B,OAAA,EAAS,OAAO,OAAA,IAAW,CAAA;AAAA,MAC3B,KAAA,EAAO,OAAO,KAAA,IAAS;AAAA,KACxB,CAAA;AAED,IAAA,IAAA,CAAK,MAAA,GAAS,IAAI,cAAA,CAAe,IAAA,CAAK,MAAM,CAAA;AAC5C,IAAA,IAAA,CAAK,OAAA,GAAU,IAAI,eAAA,CAAgB,IAAA,CAAK,MAAM,CAAA;AAC9C,IAAA,IAAA,CAAK,MAAA,GAAS,IAAI,cAAA,CAAe,IAAA,CAAK,MAAM,CAAA;AAC5C,IAAA,IAAA,CAAK,MAAA,GAAS,IAAI,cAAA,CAAe,IAAA,CAAK,MAAM,CAAA;AAAA,EAC9C;AAAA,EAEA,MAAM,EAAA,GAA2B;AAC/B,IAAA,MAAM,MAAM,MAAM,IAAA,CAAK,MAAA,CAAO,OAAA,CAAmC,OAAO,iBAAiB,CAAA;AACzF,IAAA,OAAO,GAAA,CAAI,IAAA;AAAA,EACb;AACF","file":"index.js","sourcesContent":["import type { ApiErrorBody } from './types';\n\nexport class TicketNationError extends Error {\n readonly code: string;\n readonly status: number;\n readonly requestId: string | null;\n readonly details: Array<{ field: string; message: string }> | undefined;\n\n constructor(\n message: string,\n opts: {\n code: string;\n status: number;\n requestId?: string;\n details?: Array<{ field: string; message: string }>;\n },\n ) {\n super(message);\n this.name = 'TicketNationError';\n this.code = opts.code;\n this.status = opts.status;\n this.requestId = opts.requestId ?? null;\n this.details = opts.details;\n }\n\n static fromResponse(status: number, body: { error: ApiErrorBody; requestId?: string }): TicketNationError {\n return new TicketNationError(body.error.message, {\n code: body.error.code,\n status,\n requestId: body.requestId,\n details: body.error.details,\n });\n }\n\n toJSON() {\n return {\n name: this.name,\n code: this.code,\n status: this.status,\n message: this.message,\n requestId: this.requestId,\n details: this.details,\n };\n }\n}\n","import { TicketNationError } from './errors';\n\nexport interface ClientConfig {\n apiKey: string;\n baseUrl: string;\n timeout: number;\n retries: number;\n debug: boolean;\n}\n\nexport class HttpClient {\n private readonly config: ClientConfig;\n\n constructor(config: ClientConfig) {\n this.config = config;\n }\n\n async request<T>(method: string, path: string, opts?: { body?: unknown; params?: Record<string, unknown> }): Promise<T> {\n const url = this.buildUrl(path, opts?.params);\n let lastError: Error | null = null;\n\n for (let attempt = 0; attempt <= this.config.retries; attempt++) {\n if (attempt > 0) {\n const delay = Math.min(1000 * Math.pow(2, attempt - 1), 10000);\n await this.sleep(delay);\n if (this.config.debug) {\n console.log(`[TicketNation SDK] Retry attempt ${attempt}/${this.config.retries} for ${method} ${path}`);\n }\n }\n\n try {\n const response = await this.doRequest(method, url, opts?.body);\n return response as T;\n } catch (error) {\n lastError = error as Error;\n if (error instanceof TicketNationError && error.status < 500) {\n throw error;\n }\n }\n }\n\n throw lastError;\n }\n\n private async doRequest(method: string, url: string, body?: unknown): Promise<unknown> {\n if (this.config.debug) {\n const redactedKey = this.config.apiKey.slice(0, 6) + '...' + this.config.apiKey.slice(-4);\n console.log(`[TicketNation SDK] ${method} ${url} (key: ${redactedKey})`);\n }\n\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), this.config.timeout);\n\n try {\n const headers: Record<string, string> = {\n 'api-key': this.config.apiKey,\n 'Content-Type': 'application/json',\n 'Accept': 'application/json',\n 'User-Agent': '@ticketnation/sdk/1.0.0',\n };\n\n const init: RequestInit = {\n method,\n headers,\n signal: controller.signal,\n };\n\n if (body && (method === 'POST' || method === 'PATCH' || method === 'PUT')) {\n init.body = JSON.stringify(body);\n }\n\n const response = await fetch(url, init);\n\n if (!response.ok) {\n let errorBody: unknown;\n try {\n errorBody = await response.json();\n } catch {\n throw new TicketNationError(`HTTP ${response.status}: ${response.statusText}`, {\n code: 'HTTP_ERROR',\n status: response.status,\n });\n }\n\n const parsed = errorBody as { error?: { code: string; message: string; details?: Array<{ field: string; message: string }> }; requestId?: string };\n if (parsed.error) {\n throw TicketNationError.fromResponse(response.status, parsed as { error: { code: string; message: string }; requestId?: string });\n }\n\n throw new TicketNationError(`HTTP ${response.status}: ${response.statusText}`, {\n code: 'HTTP_ERROR',\n status: response.status,\n });\n }\n\n if (response.status === 204) {\n return {};\n }\n\n return await response.json();\n } catch (error) {\n if (error instanceof TicketNationError) throw error;\n\n if (error instanceof DOMException && error.name === 'AbortError') {\n throw new TicketNationError(`Request timed out after ${this.config.timeout}ms`, {\n code: 'TIMEOUT',\n status: 0,\n });\n }\n\n throw new TicketNationError(`Network error: ${(error as Error).message}`, {\n code: 'NETWORK_ERROR',\n status: 0,\n });\n } finally {\n clearTimeout(timeoutId);\n }\n }\n\n private buildUrl(path: string, params?: Record<string, unknown>): string {\n const base = this.config.baseUrl.replace(/\\/$/, '');\n const url = new URL(`${base}${path}`);\n\n if (params) {\n for (const [key, value] of Object.entries(params)) {\n if (value !== undefined && value !== null) {\n url.searchParams.set(key, String(value));\n }\n }\n }\n\n return url.toString();\n }\n\n private sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n }\n}\n","import type { HttpClient } from '../client';\nimport type {\n Event,\n CreateEventParams,\n UpdateEventParams,\n ListEventsParams,\n DataResponse,\n PaginatedResponse,\n DeletedResponse,\n} from '../types';\n\nexport class EventsResource {\n constructor(private readonly client: HttpClient) {}\n\n async create(params: CreateEventParams): Promise<Event> {\n const res = await this.client.request<DataResponse<Event>>('POST', '/open-api/v1/events', { body: params });\n return res.data;\n }\n\n async list(params?: ListEventsParams): Promise<PaginatedResponse<Event>> {\n return this.client.request<PaginatedResponse<Event>>('GET', '/open-api/v1/events', {\n params: params ? { page: params.page, take: params.take, status: params.status, search: params.search } : undefined,\n });\n }\n\n async get(idOrSlug: string): Promise<Event> {\n const res = await this.client.request<DataResponse<Event>>('GET', `/open-api/v1/events/${encodeURIComponent(idOrSlug)}`);\n return res.data;\n }\n\n async update(eventId: string, params: UpdateEventParams): Promise<Event> {\n const res = await this.client.request<DataResponse<Event>>('PATCH', `/open-api/v1/events/${eventId}`, { body: params });\n return res.data;\n }\n\n async publish(eventId: string): Promise<Event> {\n const res = await this.client.request<DataResponse<Event>>('POST', `/open-api/v1/events/${eventId}/publish`);\n return res.data;\n }\n\n async unpublish(eventId: string): Promise<Event> {\n const res = await this.client.request<DataResponse<Event>>('POST', `/open-api/v1/events/${eventId}/unpublish`);\n return res.data;\n }\n\n async archive(eventId: string): Promise<Event> {\n const res = await this.client.request<DataResponse<Event>>('POST', `/open-api/v1/events/${eventId}/archive`);\n return res.data;\n }\n\n async delete(eventId: string): Promise<DeletedResponse> {\n const res = await this.client.request<DataResponse<DeletedResponse>>('DELETE', `/open-api/v1/events/${eventId}`);\n return res.data;\n }\n}\n","import type { HttpClient } from '../client';\nimport type {\n Ticket,\n CreateTicketParams,\n UpdateTicketParams,\n DataResponse,\n DeletedResponse,\n} from '../types';\n\nexport class TicketsResource {\n constructor(private readonly client: HttpClient) {}\n\n async create(eventId: string, params: CreateTicketParams): Promise<Ticket> {\n const res = await this.client.request<DataResponse<Ticket>>('POST', `/open-api/v1/events/${eventId}/tickets`, { body: params });\n return res.data;\n }\n\n async list(eventId: string): Promise<Ticket[]> {\n const res = await this.client.request<DataResponse<Ticket[]>>('GET', `/open-api/v1/events/${eventId}/tickets`);\n return res.data;\n }\n\n async get(eventId: string, ticketId: string): Promise<Ticket> {\n const res = await this.client.request<DataResponse<Ticket>>('GET', `/open-api/v1/events/${eventId}/tickets/${ticketId}`);\n return res.data;\n }\n\n async update(eventId: string, ticketId: string, params: UpdateTicketParams): Promise<Ticket> {\n const res = await this.client.request<DataResponse<Ticket>>('PATCH', `/open-api/v1/events/${eventId}/tickets/${ticketId}`, { body: params });\n return res.data;\n }\n\n async publish(eventId: string, ticketId: string): Promise<Ticket> {\n const res = await this.client.request<DataResponse<Ticket>>('POST', `/open-api/v1/events/${eventId}/tickets/${ticketId}/publish`);\n return res.data;\n }\n\n async markSoldOut(eventId: string, ticketId: string): Promise<Ticket> {\n const res = await this.client.request<DataResponse<Ticket>>('POST', `/open-api/v1/events/${eventId}/tickets/${ticketId}/sold-out`);\n return res.data;\n }\n\n async delete(eventId: string, ticketId: string): Promise<DeletedResponse> {\n const res = await this.client.request<DataResponse<DeletedResponse>>('DELETE', `/open-api/v1/events/${eventId}/tickets/${ticketId}`);\n return res.data;\n }\n}\n","import type { HttpClient } from '../client';\nimport type {\n Order,\n ListOrdersParams,\n DataResponse,\n PaginatedResponse,\n} from '../types';\n\nexport class OrdersResource {\n constructor(private readonly client: HttpClient) {}\n\n async list(eventId: string, params?: ListOrdersParams): Promise<PaginatedResponse<Order>> {\n return this.client.request<PaginatedResponse<Order>>('GET', `/open-api/v1/events/${eventId}/orders`, {\n params: params ? { page: params.page, take: params.take, status: params.status } : undefined,\n });\n }\n\n async get(orderId: string): Promise<Order> {\n const res = await this.client.request<DataResponse<Order>>('GET', `/open-api/v1/orders/${orderId}`);\n return res.data;\n }\n}\n","import type { HttpClient } from '../client';\nimport type {\n Venue,\n SearchVenuesParams,\n PaginatedResponse,\n} from '../types';\n\nexport class VenuesResource {\n constructor(private readonly client: HttpClient) {}\n\n async search(params: SearchVenuesParams): Promise<PaginatedResponse<Venue>> {\n return this.client.request<PaginatedResponse<Venue>>('GET', '/open-api/v1/venues/search', {\n params: { query: params.query, page: params.page, take: params.take },\n });\n }\n}\n","import type { PaginatedResponse, PaginationParams } from '../types';\n\nexport async function* paginate<T>(\n fetchPage: (params: PaginationParams) => Promise<PaginatedResponse<T>>,\n initialParams?: PaginationParams,\n): AsyncGenerator<T[], void, undefined> {\n let page = initialParams?.page ?? 1;\n const take = initialParams?.take ?? 10;\n\n while (true) {\n const response = await fetchPage({ page, take });\n yield response.data;\n\n if (page >= response.meta.totalPages) {\n break;\n }\n page++;\n }\n}\n\nexport async function fetchAllPages<T>(\n fetchPage: (params: PaginationParams) => Promise<PaginatedResponse<T>>,\n initialParams?: PaginationParams,\n): Promise<T[]> {\n const all: T[] = [];\n for await (const batch of paginate(fetchPage, initialParams)) {\n all.push(...batch);\n }\n return all;\n}\n","import { HttpClient } from './client';\nimport { EventsResource } from './resources/events';\nimport { TicketsResource } from './resources/tickets';\nimport { OrdersResource } from './resources/orders';\nimport { VenuesResource } from './resources/venues';\nimport type { TicketNationConfig, AccountInfo, DataResponse } from './types';\n\nexport class TicketNation {\n readonly events: EventsResource;\n readonly tickets: TicketsResource;\n readonly orders: OrdersResource;\n readonly venues: VenuesResource;\n\n private readonly client: HttpClient;\n\n constructor(config: TicketNationConfig) {\n if (!config.apiKey) {\n throw new Error('TicketNation SDK requires an apiKey');\n }\n\n this.client = new HttpClient({\n apiKey: config.apiKey,\n baseUrl: config.baseUrl ?? 'https://api.ticketnation.ph',\n timeout: config.timeout ?? 30000,\n retries: config.retries ?? 2,\n debug: config.debug ?? false,\n });\n\n this.events = new EventsResource(this.client);\n this.tickets = new TicketsResource(this.client);\n this.orders = new OrdersResource(this.client);\n this.venues = new VenuesResource(this.client);\n }\n\n async me(): Promise<AccountInfo> {\n const res = await this.client.request<DataResponse<AccountInfo>>('GET', '/open-api/v1/me');\n return res.data;\n }\n}\n\n// Re-export everything\nexport { TicketNationError } from './errors';\nexport { paginate, fetchAllPages } from './utils/pagination';\nexport type * from './types';\n"]}
|
package/dist/index.mjs
ADDED
|
@@ -0,0 +1,298 @@
|
|
|
1
|
+
// src/errors.ts
|
|
2
|
+
var TicketNationError = class _TicketNationError extends Error {
|
|
3
|
+
code;
|
|
4
|
+
status;
|
|
5
|
+
requestId;
|
|
6
|
+
details;
|
|
7
|
+
constructor(message, opts) {
|
|
8
|
+
super(message);
|
|
9
|
+
this.name = "TicketNationError";
|
|
10
|
+
this.code = opts.code;
|
|
11
|
+
this.status = opts.status;
|
|
12
|
+
this.requestId = opts.requestId ?? null;
|
|
13
|
+
this.details = opts.details;
|
|
14
|
+
}
|
|
15
|
+
static fromResponse(status, body) {
|
|
16
|
+
return new _TicketNationError(body.error.message, {
|
|
17
|
+
code: body.error.code,
|
|
18
|
+
status,
|
|
19
|
+
requestId: body.requestId,
|
|
20
|
+
details: body.error.details
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
toJSON() {
|
|
24
|
+
return {
|
|
25
|
+
name: this.name,
|
|
26
|
+
code: this.code,
|
|
27
|
+
status: this.status,
|
|
28
|
+
message: this.message,
|
|
29
|
+
requestId: this.requestId,
|
|
30
|
+
details: this.details
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
// src/client.ts
|
|
36
|
+
var HttpClient = class {
|
|
37
|
+
config;
|
|
38
|
+
constructor(config) {
|
|
39
|
+
this.config = config;
|
|
40
|
+
}
|
|
41
|
+
async request(method, path, opts) {
|
|
42
|
+
const url = this.buildUrl(path, opts?.params);
|
|
43
|
+
let lastError = null;
|
|
44
|
+
for (let attempt = 0; attempt <= this.config.retries; attempt++) {
|
|
45
|
+
if (attempt > 0) {
|
|
46
|
+
const delay = Math.min(1e3 * Math.pow(2, attempt - 1), 1e4);
|
|
47
|
+
await this.sleep(delay);
|
|
48
|
+
if (this.config.debug) {
|
|
49
|
+
console.log(`[TicketNation SDK] Retry attempt ${attempt}/${this.config.retries} for ${method} ${path}`);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
try {
|
|
53
|
+
const response = await this.doRequest(method, url, opts?.body);
|
|
54
|
+
return response;
|
|
55
|
+
} catch (error) {
|
|
56
|
+
lastError = error;
|
|
57
|
+
if (error instanceof TicketNationError && error.status < 500) {
|
|
58
|
+
throw error;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
throw lastError;
|
|
63
|
+
}
|
|
64
|
+
async doRequest(method, url, body) {
|
|
65
|
+
if (this.config.debug) {
|
|
66
|
+
const redactedKey = this.config.apiKey.slice(0, 6) + "..." + this.config.apiKey.slice(-4);
|
|
67
|
+
console.log(`[TicketNation SDK] ${method} ${url} (key: ${redactedKey})`);
|
|
68
|
+
}
|
|
69
|
+
const controller = new AbortController();
|
|
70
|
+
const timeoutId = setTimeout(() => controller.abort(), this.config.timeout);
|
|
71
|
+
try {
|
|
72
|
+
const headers = {
|
|
73
|
+
"api-key": this.config.apiKey,
|
|
74
|
+
"Content-Type": "application/json",
|
|
75
|
+
"Accept": "application/json",
|
|
76
|
+
"User-Agent": "@ticketnation/sdk/1.0.0"
|
|
77
|
+
};
|
|
78
|
+
const init = {
|
|
79
|
+
method,
|
|
80
|
+
headers,
|
|
81
|
+
signal: controller.signal
|
|
82
|
+
};
|
|
83
|
+
if (body && (method === "POST" || method === "PATCH" || method === "PUT")) {
|
|
84
|
+
init.body = JSON.stringify(body);
|
|
85
|
+
}
|
|
86
|
+
const response = await fetch(url, init);
|
|
87
|
+
if (!response.ok) {
|
|
88
|
+
let errorBody;
|
|
89
|
+
try {
|
|
90
|
+
errorBody = await response.json();
|
|
91
|
+
} catch {
|
|
92
|
+
throw new TicketNationError(`HTTP ${response.status}: ${response.statusText}`, {
|
|
93
|
+
code: "HTTP_ERROR",
|
|
94
|
+
status: response.status
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
const parsed = errorBody;
|
|
98
|
+
if (parsed.error) {
|
|
99
|
+
throw TicketNationError.fromResponse(response.status, parsed);
|
|
100
|
+
}
|
|
101
|
+
throw new TicketNationError(`HTTP ${response.status}: ${response.statusText}`, {
|
|
102
|
+
code: "HTTP_ERROR",
|
|
103
|
+
status: response.status
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
if (response.status === 204) {
|
|
107
|
+
return {};
|
|
108
|
+
}
|
|
109
|
+
return await response.json();
|
|
110
|
+
} catch (error) {
|
|
111
|
+
if (error instanceof TicketNationError) throw error;
|
|
112
|
+
if (error instanceof DOMException && error.name === "AbortError") {
|
|
113
|
+
throw new TicketNationError(`Request timed out after ${this.config.timeout}ms`, {
|
|
114
|
+
code: "TIMEOUT",
|
|
115
|
+
status: 0
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
throw new TicketNationError(`Network error: ${error.message}`, {
|
|
119
|
+
code: "NETWORK_ERROR",
|
|
120
|
+
status: 0
|
|
121
|
+
});
|
|
122
|
+
} finally {
|
|
123
|
+
clearTimeout(timeoutId);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
buildUrl(path, params) {
|
|
127
|
+
const base = this.config.baseUrl.replace(/\/$/, "");
|
|
128
|
+
const url = new URL(`${base}${path}`);
|
|
129
|
+
if (params) {
|
|
130
|
+
for (const [key, value] of Object.entries(params)) {
|
|
131
|
+
if (value !== void 0 && value !== null) {
|
|
132
|
+
url.searchParams.set(key, String(value));
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
return url.toString();
|
|
137
|
+
}
|
|
138
|
+
sleep(ms) {
|
|
139
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
140
|
+
}
|
|
141
|
+
};
|
|
142
|
+
|
|
143
|
+
// src/resources/events.ts
|
|
144
|
+
var EventsResource = class {
|
|
145
|
+
constructor(client) {
|
|
146
|
+
this.client = client;
|
|
147
|
+
}
|
|
148
|
+
async create(params) {
|
|
149
|
+
const res = await this.client.request("POST", "/open-api/v1/events", { body: params });
|
|
150
|
+
return res.data;
|
|
151
|
+
}
|
|
152
|
+
async list(params) {
|
|
153
|
+
return this.client.request("GET", "/open-api/v1/events", {
|
|
154
|
+
params: params ? { page: params.page, take: params.take, status: params.status, search: params.search } : void 0
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
async get(idOrSlug) {
|
|
158
|
+
const res = await this.client.request("GET", `/open-api/v1/events/${encodeURIComponent(idOrSlug)}`);
|
|
159
|
+
return res.data;
|
|
160
|
+
}
|
|
161
|
+
async update(eventId, params) {
|
|
162
|
+
const res = await this.client.request("PATCH", `/open-api/v1/events/${eventId}`, { body: params });
|
|
163
|
+
return res.data;
|
|
164
|
+
}
|
|
165
|
+
async publish(eventId) {
|
|
166
|
+
const res = await this.client.request("POST", `/open-api/v1/events/${eventId}/publish`);
|
|
167
|
+
return res.data;
|
|
168
|
+
}
|
|
169
|
+
async unpublish(eventId) {
|
|
170
|
+
const res = await this.client.request("POST", `/open-api/v1/events/${eventId}/unpublish`);
|
|
171
|
+
return res.data;
|
|
172
|
+
}
|
|
173
|
+
async archive(eventId) {
|
|
174
|
+
const res = await this.client.request("POST", `/open-api/v1/events/${eventId}/archive`);
|
|
175
|
+
return res.data;
|
|
176
|
+
}
|
|
177
|
+
async delete(eventId) {
|
|
178
|
+
const res = await this.client.request("DELETE", `/open-api/v1/events/${eventId}`);
|
|
179
|
+
return res.data;
|
|
180
|
+
}
|
|
181
|
+
};
|
|
182
|
+
|
|
183
|
+
// src/resources/tickets.ts
|
|
184
|
+
var TicketsResource = class {
|
|
185
|
+
constructor(client) {
|
|
186
|
+
this.client = client;
|
|
187
|
+
}
|
|
188
|
+
async create(eventId, params) {
|
|
189
|
+
const res = await this.client.request("POST", `/open-api/v1/events/${eventId}/tickets`, { body: params });
|
|
190
|
+
return res.data;
|
|
191
|
+
}
|
|
192
|
+
async list(eventId) {
|
|
193
|
+
const res = await this.client.request("GET", `/open-api/v1/events/${eventId}/tickets`);
|
|
194
|
+
return res.data;
|
|
195
|
+
}
|
|
196
|
+
async get(eventId, ticketId) {
|
|
197
|
+
const res = await this.client.request("GET", `/open-api/v1/events/${eventId}/tickets/${ticketId}`);
|
|
198
|
+
return res.data;
|
|
199
|
+
}
|
|
200
|
+
async update(eventId, ticketId, params) {
|
|
201
|
+
const res = await this.client.request("PATCH", `/open-api/v1/events/${eventId}/tickets/${ticketId}`, { body: params });
|
|
202
|
+
return res.data;
|
|
203
|
+
}
|
|
204
|
+
async publish(eventId, ticketId) {
|
|
205
|
+
const res = await this.client.request("POST", `/open-api/v1/events/${eventId}/tickets/${ticketId}/publish`);
|
|
206
|
+
return res.data;
|
|
207
|
+
}
|
|
208
|
+
async markSoldOut(eventId, ticketId) {
|
|
209
|
+
const res = await this.client.request("POST", `/open-api/v1/events/${eventId}/tickets/${ticketId}/sold-out`);
|
|
210
|
+
return res.data;
|
|
211
|
+
}
|
|
212
|
+
async delete(eventId, ticketId) {
|
|
213
|
+
const res = await this.client.request("DELETE", `/open-api/v1/events/${eventId}/tickets/${ticketId}`);
|
|
214
|
+
return res.data;
|
|
215
|
+
}
|
|
216
|
+
};
|
|
217
|
+
|
|
218
|
+
// src/resources/orders.ts
|
|
219
|
+
var OrdersResource = class {
|
|
220
|
+
constructor(client) {
|
|
221
|
+
this.client = client;
|
|
222
|
+
}
|
|
223
|
+
async list(eventId, params) {
|
|
224
|
+
return this.client.request("GET", `/open-api/v1/events/${eventId}/orders`, {
|
|
225
|
+
params: params ? { page: params.page, take: params.take, status: params.status } : void 0
|
|
226
|
+
});
|
|
227
|
+
}
|
|
228
|
+
async get(orderId) {
|
|
229
|
+
const res = await this.client.request("GET", `/open-api/v1/orders/${orderId}`);
|
|
230
|
+
return res.data;
|
|
231
|
+
}
|
|
232
|
+
};
|
|
233
|
+
|
|
234
|
+
// src/resources/venues.ts
|
|
235
|
+
var VenuesResource = class {
|
|
236
|
+
constructor(client) {
|
|
237
|
+
this.client = client;
|
|
238
|
+
}
|
|
239
|
+
async search(params) {
|
|
240
|
+
return this.client.request("GET", "/open-api/v1/venues/search", {
|
|
241
|
+
params: { query: params.query, page: params.page, take: params.take }
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
};
|
|
245
|
+
|
|
246
|
+
// src/utils/pagination.ts
|
|
247
|
+
async function* paginate(fetchPage, initialParams) {
|
|
248
|
+
let page = initialParams?.page ?? 1;
|
|
249
|
+
const take = initialParams?.take ?? 10;
|
|
250
|
+
while (true) {
|
|
251
|
+
const response = await fetchPage({ page, take });
|
|
252
|
+
yield response.data;
|
|
253
|
+
if (page >= response.meta.totalPages) {
|
|
254
|
+
break;
|
|
255
|
+
}
|
|
256
|
+
page++;
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
async function fetchAllPages(fetchPage, initialParams) {
|
|
260
|
+
const all = [];
|
|
261
|
+
for await (const batch of paginate(fetchPage, initialParams)) {
|
|
262
|
+
all.push(...batch);
|
|
263
|
+
}
|
|
264
|
+
return all;
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
// src/index.ts
|
|
268
|
+
var TicketNation = class {
|
|
269
|
+
events;
|
|
270
|
+
tickets;
|
|
271
|
+
orders;
|
|
272
|
+
venues;
|
|
273
|
+
client;
|
|
274
|
+
constructor(config) {
|
|
275
|
+
if (!config.apiKey) {
|
|
276
|
+
throw new Error("TicketNation SDK requires an apiKey");
|
|
277
|
+
}
|
|
278
|
+
this.client = new HttpClient({
|
|
279
|
+
apiKey: config.apiKey,
|
|
280
|
+
baseUrl: config.baseUrl ?? "https://api.ticketnation.ph",
|
|
281
|
+
timeout: config.timeout ?? 3e4,
|
|
282
|
+
retries: config.retries ?? 2,
|
|
283
|
+
debug: config.debug ?? false
|
|
284
|
+
});
|
|
285
|
+
this.events = new EventsResource(this.client);
|
|
286
|
+
this.tickets = new TicketsResource(this.client);
|
|
287
|
+
this.orders = new OrdersResource(this.client);
|
|
288
|
+
this.venues = new VenuesResource(this.client);
|
|
289
|
+
}
|
|
290
|
+
async me() {
|
|
291
|
+
const res = await this.client.request("GET", "/open-api/v1/me");
|
|
292
|
+
return res.data;
|
|
293
|
+
}
|
|
294
|
+
};
|
|
295
|
+
|
|
296
|
+
export { TicketNation, TicketNationError, fetchAllPages, paginate };
|
|
297
|
+
//# sourceMappingURL=index.mjs.map
|
|
298
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/errors.ts","../src/client.ts","../src/resources/events.ts","../src/resources/tickets.ts","../src/resources/orders.ts","../src/resources/venues.ts","../src/utils/pagination.ts","../src/index.ts"],"names":[],"mappings":"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","file":"index.mjs","sourcesContent":["import type { ApiErrorBody } from './types';\n\nexport class TicketNationError extends Error {\n readonly code: string;\n readonly status: number;\n readonly requestId: string | null;\n readonly details: Array<{ field: string; message: string }> | undefined;\n\n constructor(\n message: string,\n opts: {\n code: string;\n status: number;\n requestId?: string;\n details?: Array<{ field: string; message: string }>;\n },\n ) {\n super(message);\n this.name = 'TicketNationError';\n this.code = opts.code;\n this.status = opts.status;\n this.requestId = opts.requestId ?? null;\n this.details = opts.details;\n }\n\n static fromResponse(status: number, body: { error: ApiErrorBody; requestId?: string }): TicketNationError {\n return new TicketNationError(body.error.message, {\n code: body.error.code,\n status,\n requestId: body.requestId,\n details: body.error.details,\n });\n }\n\n toJSON() {\n return {\n name: this.name,\n code: this.code,\n status: this.status,\n message: this.message,\n requestId: this.requestId,\n details: this.details,\n };\n }\n}\n","import { TicketNationError } from './errors';\n\nexport interface ClientConfig {\n apiKey: string;\n baseUrl: string;\n timeout: number;\n retries: number;\n debug: boolean;\n}\n\nexport class HttpClient {\n private readonly config: ClientConfig;\n\n constructor(config: ClientConfig) {\n this.config = config;\n }\n\n async request<T>(method: string, path: string, opts?: { body?: unknown; params?: Record<string, unknown> }): Promise<T> {\n const url = this.buildUrl(path, opts?.params);\n let lastError: Error | null = null;\n\n for (let attempt = 0; attempt <= this.config.retries; attempt++) {\n if (attempt > 0) {\n const delay = Math.min(1000 * Math.pow(2, attempt - 1), 10000);\n await this.sleep(delay);\n if (this.config.debug) {\n console.log(`[TicketNation SDK] Retry attempt ${attempt}/${this.config.retries} for ${method} ${path}`);\n }\n }\n\n try {\n const response = await this.doRequest(method, url, opts?.body);\n return response as T;\n } catch (error) {\n lastError = error as Error;\n if (error instanceof TicketNationError && error.status < 500) {\n throw error;\n }\n }\n }\n\n throw lastError;\n }\n\n private async doRequest(method: string, url: string, body?: unknown): Promise<unknown> {\n if (this.config.debug) {\n const redactedKey = this.config.apiKey.slice(0, 6) + '...' + this.config.apiKey.slice(-4);\n console.log(`[TicketNation SDK] ${method} ${url} (key: ${redactedKey})`);\n }\n\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), this.config.timeout);\n\n try {\n const headers: Record<string, string> = {\n 'api-key': this.config.apiKey,\n 'Content-Type': 'application/json',\n 'Accept': 'application/json',\n 'User-Agent': '@ticketnation/sdk/1.0.0',\n };\n\n const init: RequestInit = {\n method,\n headers,\n signal: controller.signal,\n };\n\n if (body && (method === 'POST' || method === 'PATCH' || method === 'PUT')) {\n init.body = JSON.stringify(body);\n }\n\n const response = await fetch(url, init);\n\n if (!response.ok) {\n let errorBody: unknown;\n try {\n errorBody = await response.json();\n } catch {\n throw new TicketNationError(`HTTP ${response.status}: ${response.statusText}`, {\n code: 'HTTP_ERROR',\n status: response.status,\n });\n }\n\n const parsed = errorBody as { error?: { code: string; message: string; details?: Array<{ field: string; message: string }> }; requestId?: string };\n if (parsed.error) {\n throw TicketNationError.fromResponse(response.status, parsed as { error: { code: string; message: string }; requestId?: string });\n }\n\n throw new TicketNationError(`HTTP ${response.status}: ${response.statusText}`, {\n code: 'HTTP_ERROR',\n status: response.status,\n });\n }\n\n if (response.status === 204) {\n return {};\n }\n\n return await response.json();\n } catch (error) {\n if (error instanceof TicketNationError) throw error;\n\n if (error instanceof DOMException && error.name === 'AbortError') {\n throw new TicketNationError(`Request timed out after ${this.config.timeout}ms`, {\n code: 'TIMEOUT',\n status: 0,\n });\n }\n\n throw new TicketNationError(`Network error: ${(error as Error).message}`, {\n code: 'NETWORK_ERROR',\n status: 0,\n });\n } finally {\n clearTimeout(timeoutId);\n }\n }\n\n private buildUrl(path: string, params?: Record<string, unknown>): string {\n const base = this.config.baseUrl.replace(/\\/$/, '');\n const url = new URL(`${base}${path}`);\n\n if (params) {\n for (const [key, value] of Object.entries(params)) {\n if (value !== undefined && value !== null) {\n url.searchParams.set(key, String(value));\n }\n }\n }\n\n return url.toString();\n }\n\n private sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n }\n}\n","import type { HttpClient } from '../client';\nimport type {\n Event,\n CreateEventParams,\n UpdateEventParams,\n ListEventsParams,\n DataResponse,\n PaginatedResponse,\n DeletedResponse,\n} from '../types';\n\nexport class EventsResource {\n constructor(private readonly client: HttpClient) {}\n\n async create(params: CreateEventParams): Promise<Event> {\n const res = await this.client.request<DataResponse<Event>>('POST', '/open-api/v1/events', { body: params });\n return res.data;\n }\n\n async list(params?: ListEventsParams): Promise<PaginatedResponse<Event>> {\n return this.client.request<PaginatedResponse<Event>>('GET', '/open-api/v1/events', {\n params: params ? { page: params.page, take: params.take, status: params.status, search: params.search } : undefined,\n });\n }\n\n async get(idOrSlug: string): Promise<Event> {\n const res = await this.client.request<DataResponse<Event>>('GET', `/open-api/v1/events/${encodeURIComponent(idOrSlug)}`);\n return res.data;\n }\n\n async update(eventId: string, params: UpdateEventParams): Promise<Event> {\n const res = await this.client.request<DataResponse<Event>>('PATCH', `/open-api/v1/events/${eventId}`, { body: params });\n return res.data;\n }\n\n async publish(eventId: string): Promise<Event> {\n const res = await this.client.request<DataResponse<Event>>('POST', `/open-api/v1/events/${eventId}/publish`);\n return res.data;\n }\n\n async unpublish(eventId: string): Promise<Event> {\n const res = await this.client.request<DataResponse<Event>>('POST', `/open-api/v1/events/${eventId}/unpublish`);\n return res.data;\n }\n\n async archive(eventId: string): Promise<Event> {\n const res = await this.client.request<DataResponse<Event>>('POST', `/open-api/v1/events/${eventId}/archive`);\n return res.data;\n }\n\n async delete(eventId: string): Promise<DeletedResponse> {\n const res = await this.client.request<DataResponse<DeletedResponse>>('DELETE', `/open-api/v1/events/${eventId}`);\n return res.data;\n }\n}\n","import type { HttpClient } from '../client';\nimport type {\n Ticket,\n CreateTicketParams,\n UpdateTicketParams,\n DataResponse,\n DeletedResponse,\n} from '../types';\n\nexport class TicketsResource {\n constructor(private readonly client: HttpClient) {}\n\n async create(eventId: string, params: CreateTicketParams): Promise<Ticket> {\n const res = await this.client.request<DataResponse<Ticket>>('POST', `/open-api/v1/events/${eventId}/tickets`, { body: params });\n return res.data;\n }\n\n async list(eventId: string): Promise<Ticket[]> {\n const res = await this.client.request<DataResponse<Ticket[]>>('GET', `/open-api/v1/events/${eventId}/tickets`);\n return res.data;\n }\n\n async get(eventId: string, ticketId: string): Promise<Ticket> {\n const res = await this.client.request<DataResponse<Ticket>>('GET', `/open-api/v1/events/${eventId}/tickets/${ticketId}`);\n return res.data;\n }\n\n async update(eventId: string, ticketId: string, params: UpdateTicketParams): Promise<Ticket> {\n const res = await this.client.request<DataResponse<Ticket>>('PATCH', `/open-api/v1/events/${eventId}/tickets/${ticketId}`, { body: params });\n return res.data;\n }\n\n async publish(eventId: string, ticketId: string): Promise<Ticket> {\n const res = await this.client.request<DataResponse<Ticket>>('POST', `/open-api/v1/events/${eventId}/tickets/${ticketId}/publish`);\n return res.data;\n }\n\n async markSoldOut(eventId: string, ticketId: string): Promise<Ticket> {\n const res = await this.client.request<DataResponse<Ticket>>('POST', `/open-api/v1/events/${eventId}/tickets/${ticketId}/sold-out`);\n return res.data;\n }\n\n async delete(eventId: string, ticketId: string): Promise<DeletedResponse> {\n const res = await this.client.request<DataResponse<DeletedResponse>>('DELETE', `/open-api/v1/events/${eventId}/tickets/${ticketId}`);\n return res.data;\n }\n}\n","import type { HttpClient } from '../client';\nimport type {\n Order,\n ListOrdersParams,\n DataResponse,\n PaginatedResponse,\n} from '../types';\n\nexport class OrdersResource {\n constructor(private readonly client: HttpClient) {}\n\n async list(eventId: string, params?: ListOrdersParams): Promise<PaginatedResponse<Order>> {\n return this.client.request<PaginatedResponse<Order>>('GET', `/open-api/v1/events/${eventId}/orders`, {\n params: params ? { page: params.page, take: params.take, status: params.status } : undefined,\n });\n }\n\n async get(orderId: string): Promise<Order> {\n const res = await this.client.request<DataResponse<Order>>('GET', `/open-api/v1/orders/${orderId}`);\n return res.data;\n }\n}\n","import type { HttpClient } from '../client';\nimport type {\n Venue,\n SearchVenuesParams,\n PaginatedResponse,\n} from '../types';\n\nexport class VenuesResource {\n constructor(private readonly client: HttpClient) {}\n\n async search(params: SearchVenuesParams): Promise<PaginatedResponse<Venue>> {\n return this.client.request<PaginatedResponse<Venue>>('GET', '/open-api/v1/venues/search', {\n params: { query: params.query, page: params.page, take: params.take },\n });\n }\n}\n","import type { PaginatedResponse, PaginationParams } from '../types';\n\nexport async function* paginate<T>(\n fetchPage: (params: PaginationParams) => Promise<PaginatedResponse<T>>,\n initialParams?: PaginationParams,\n): AsyncGenerator<T[], void, undefined> {\n let page = initialParams?.page ?? 1;\n const take = initialParams?.take ?? 10;\n\n while (true) {\n const response = await fetchPage({ page, take });\n yield response.data;\n\n if (page >= response.meta.totalPages) {\n break;\n }\n page++;\n }\n}\n\nexport async function fetchAllPages<T>(\n fetchPage: (params: PaginationParams) => Promise<PaginatedResponse<T>>,\n initialParams?: PaginationParams,\n): Promise<T[]> {\n const all: T[] = [];\n for await (const batch of paginate(fetchPage, initialParams)) {\n all.push(...batch);\n }\n return all;\n}\n","import { HttpClient } from './client';\nimport { EventsResource } from './resources/events';\nimport { TicketsResource } from './resources/tickets';\nimport { OrdersResource } from './resources/orders';\nimport { VenuesResource } from './resources/venues';\nimport type { TicketNationConfig, AccountInfo, DataResponse } from './types';\n\nexport class TicketNation {\n readonly events: EventsResource;\n readonly tickets: TicketsResource;\n readonly orders: OrdersResource;\n readonly venues: VenuesResource;\n\n private readonly client: HttpClient;\n\n constructor(config: TicketNationConfig) {\n if (!config.apiKey) {\n throw new Error('TicketNation SDK requires an apiKey');\n }\n\n this.client = new HttpClient({\n apiKey: config.apiKey,\n baseUrl: config.baseUrl ?? 'https://api.ticketnation.ph',\n timeout: config.timeout ?? 30000,\n retries: config.retries ?? 2,\n debug: config.debug ?? false,\n });\n\n this.events = new EventsResource(this.client);\n this.tickets = new TicketsResource(this.client);\n this.orders = new OrdersResource(this.client);\n this.venues = new VenuesResource(this.client);\n }\n\n async me(): Promise<AccountInfo> {\n const res = await this.client.request<DataResponse<AccountInfo>>('GET', '/open-api/v1/me');\n return res.data;\n }\n}\n\n// Re-export everything\nexport { TicketNationError } from './errors';\nexport { paginate, fetchAllPages } from './utils/pagination';\nexport type * from './types';\n"]}
|
package/package.json
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "ticketnation-sdk",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Official TypeScript SDK for the TicketNation Open API — publish events, manage tickets, and receive orders programmatically.",
|
|
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
|
+
"README.md"
|
|
18
|
+
],
|
|
19
|
+
"scripts": {
|
|
20
|
+
"build": "tsup",
|
|
21
|
+
"dev": "tsup --watch",
|
|
22
|
+
"typecheck": "tsc --noEmit",
|
|
23
|
+
"clean": "rm -rf dist"
|
|
24
|
+
},
|
|
25
|
+
"keywords": [
|
|
26
|
+
"ticketnation",
|
|
27
|
+
"events",
|
|
28
|
+
"tickets",
|
|
29
|
+
"api",
|
|
30
|
+
"sdk",
|
|
31
|
+
"typescript"
|
|
32
|
+
],
|
|
33
|
+
"author": "TicketNation <dev@ticketnation.ph>",
|
|
34
|
+
"license": "MIT",
|
|
35
|
+
"repository": {
|
|
36
|
+
"type": "git",
|
|
37
|
+
"url": "https://github.com/ticketnation/sdk"
|
|
38
|
+
},
|
|
39
|
+
"engines": {
|
|
40
|
+
"node": ">=18.0.0"
|
|
41
|
+
},
|
|
42
|
+
"devDependencies": {
|
|
43
|
+
"tsup": "^8.0.0",
|
|
44
|
+
"typescript": "^5.6.0"
|
|
45
|
+
}
|
|
46
|
+
}
|