@teamlearners/clawops 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.
- package/LICENSE +21 -0
- package/README.md +313 -0
- package/dist/agent/index.cjs +2668 -0
- package/dist/agent/index.cjs.map +1 -0
- package/dist/agent/index.d.cts +821 -0
- package/dist/agent/index.d.ts +821 -0
- package/dist/agent/index.js +2613 -0
- package/dist/agent/index.js.map +1 -0
- package/dist/chunk-JNSHMKDI.cjs +175 -0
- package/dist/chunk-JNSHMKDI.cjs.map +1 -0
- package/dist/chunk-UKAT24I6.js +152 -0
- package/dist/chunk-UKAT24I6.js.map +1 -0
- package/dist/index.cjs +601 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +549 -0
- package/dist/index.d.ts +549 -0
- package/dist/index.js +523 -0
- package/dist/index.js.map +1 -0
- package/package.json +71 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/version.ts","../src/base-client.ts","../src/resource.ts","../src/util.ts","../src/types/shared.ts","../src/pagination.ts","../src/types/call.ts","../src/resources/calls.ts","../src/types/message.ts","../src/resources/messages.ts","../src/types/number.ts","../src/resources/numbers.ts","../src/types/webhook-log.ts","../src/resources/webhook-logs.ts","../src/resources/accounts.ts","../src/webhooks.ts","../src/client.ts","../src/client-default.ts"],"names":["ClawOpsError","DEFAULT_BASE_URL","DEFAULT_MAX_RETRIES","DEFAULT_TIMEOUT","method","APITimeoutError","APIConnectionError","APIResponseValidationError","makeStatusError","INITIAL_RETRY_DELAY","MAX_RETRY_DELAY","z","timingSafeEqual","createHmac"],"mappings":";;;;;;;;;AAAO,IAAM,OAAA,GAAU;;;ACiBvB,IAAM,eAAA,uBAAsB,GAAA,CAAI,CAAC,aAAa,WAAA,EAAa,SAAA,EAAW,OAAO,CAAC,CAAA;AAE9E,SAAS,gBAAgB,GAAA,EAAqB;AAC5C,EAAA,IAAI,MAAA;AACJ,EAAA,IAAI;AACF,IAAA,MAAA,GAAS,IAAI,IAAI,GAAG,CAAA;AAAA,EACtB,CAAA,CAAA,MAAQ;AACN,IAAA,MAAM,IAAIA,8BAAA,CAAa,CAAA,kBAAA,EAAqB,GAAG,CAAA,CAAE,CAAA;AAAA,EACnD;AACA,EAAA,IAAI,MAAA,CAAO,QAAA,KAAa,QAAA,EAAU,OAAO,GAAA;AACzC,EAAA,IAAI,MAAA,CAAO,aAAa,OAAA,IAAW,eAAA,CAAgB,IAAI,MAAA,CAAO,QAAQ,GAAG,OAAO,GAAA;AAChF,EAAA,MAAM,IAAIA,8BAAA;AAAA,IACR,iGAAqC,GAAG,CAAA,2HAAA;AAAA,GAE1C;AACF;AAWO,IAAM,YAAN,MAAgB;AAAA,EACX,OAAA;AAAA,EACA,QAAA;AAAA,EACA,WAAA;AAAA,EACA,QAAA;AAAA,EACA,MAAA;AAAA,EACA,eAAA;AAAA,EAEV,YAAY,OAAA,EAA2B;AACrC,IAAA,IAAA,CAAK,UAAU,OAAA,CAAQ,MAAA;AACvB,IAAA,IAAA,CAAK,QAAA,GAAW,iBAAiB,OAAA,CAAQ,OAAA,IAAWC,oCAAkB,OAAA,CAAQ,MAAA,EAAQ,EAAE,CAAC,CAAA;AACzF,IAAA,IAAA,CAAK,WAAA,GAAc,QAAQ,UAAA,IAAcC,qCAAA;AACzC,IAAA,IAAA,CAAK,QAAA,GAAW,QAAQ,OAAA,IAAWC,iCAAA;AACnC,IAAA,IAAA,CAAK,MAAA,GAAS,OAAA,CAAQ,KAAA,IAAS,UAAA,CAAW,KAAA;AAC1C,IAAA,IAAA,CAAK,eAAA,GAAkB,OAAA,CAAQ,cAAA,IAAkB,EAAC;AAAA,EACpD;AAAA,EAEQ,cAAc,KAAA,EAAwD;AAC5E,IAAA,MAAM,OAAA,GAAkC;AAAA,MACtC,aAAA,EAAe,CAAA,OAAA,EAAU,IAAA,CAAK,OAAO,CAAA,CAAA;AAAA,MACrC,cAAA,EAAgB,kBAAA;AAAA,MAChB,MAAA,EAAQ,kBAAA;AAAA,MACR,YAAA,EAAc,iBAAiB,OAAO,CAAA,CAAA;AAAA,MACtC,GAAG,IAAA,CAAK;AAAA,KACV;AACA,IAAA,IAAI,KAAA,EAAO,MAAA,CAAO,MAAA,CAAO,OAAA,EAAS,KAAK,CAAA;AACvC,IAAA,OAAO,OAAA;AAAA,EACT;AAAA,EAEA,MAAgB,QAAA,CACdC,OAAAA,EACA,IAAA,EACA,OAAA,GAOI,EAAC,EACc;AACnB,IAAA,MAAM,OAAA,GAAU,IAAA,CAAK,aAAA,CAAc,OAAA,CAAQ,YAAY,CAAA;AAEvD,IAAA,MAAM,MAAA,GAAS,IAAI,eAAA,EAAgB;AACnC,IAAA,MAAM,WAAW,EAAE,GAAG,QAAQ,KAAA,EAAO,GAAG,QAAQ,UAAA,EAAW;AAC3D,IAAA,KAAA,MAAW,CAAC,CAAA,EAAG,CAAC,KAAK,MAAA,CAAO,OAAA,CAAQ,QAAQ,CAAA,EAAG;AAC7C,MAAA,IAAI,KAAK,IAAA,EAAM,MAAA,CAAO,IAAI,CAAA,EAAG,MAAA,CAAO,CAAC,CAAC,CAAA;AAAA,IACxC;AAEA,IAAA,MAAM,WAAA,GAAc,OAAO,QAAA,EAAS;AACpC,IAAA,MAAM,GAAA,GAAM,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,EAAG,IAAI,CAAA,EAAG,WAAA,GAAc,CAAA,CAAA,EAAI,WAAW,CAAA,CAAA,GAAK,EAAE,CAAA,CAAA;AAC1E,IAAA,MAAM,UAAA,GAAa,OAAA,CAAQ,OAAA,IAAW,IAAA,CAAK,QAAA;AAE3C,IAAA,IAAI,cAAc,IAAA,CAAK,WAAA;AAEvB,IAAA,OAAO,IAAA,EAAM;AACX,MAAA,MAAM,UAAA,GAAa,IAAI,eAAA,EAAgB;AACvC,MAAA,MAAM,YAAY,UAAA,CAAW,MAAM,UAAA,CAAW,KAAA,IAAS,UAAU,CAAA;AAEjE,MAAA,IAAI,QAAA;AACJ,MAAA,IAAI;AACF,QAAA,QAAA,GAAW,MAAM,IAAA,CAAK,MAAA,CAAO,GAAA,EAAK;AAAA,UAChC,MAAA,EAAAA,OAAAA;AAAA,UACA,OAAA;AAAA,UACA,MAAM,OAAA,CAAQ,IAAA,GAAO,KAAK,SAAA,CAAU,OAAA,CAAQ,IAAI,CAAA,GAAI,KAAA,CAAA;AAAA,UACpD,QAAQ,UAAA,CAAW;AAAA,SACpB,CAAA;AAAA,MACH,SAAS,GAAA,EAAK;AACZ,QAAA,YAAA,CAAa,SAAS,CAAA;AACtB,QAAA,IAAI,GAAA,YAAe,YAAA,IAAgB,GAAA,CAAI,IAAA,KAAS,YAAA,EAAc;AAC5D,UAAA,IAAI,cAAc,CAAA,EAAG;AACnB,YAAA,WAAA,EAAA;AACA,YAAA,MAAM,KAAK,MAAA,CAAO,IAAA,CAAK,YAAY,IAAA,CAAK,WAAA,GAAc,WAAW,CAAC,CAAA;AAClE,YAAA;AAAA,UACF;AACA,UAAA,MAAM,IAAIC,iCAAA,CAAgB,EAAE,MAAA,EAAAD,OAAAA,EAAQ,KAAK,CAAA;AAAA,QAC3C;AACA,QAAA,IAAI,cAAc,CAAA,EAAG;AACnB,UAAA,WAAA,EAAA;AACA,UAAA,MAAM,KAAK,MAAA,CAAO,IAAA,CAAK,YAAY,IAAA,CAAK,WAAA,GAAc,WAAW,CAAC,CAAA;AAClE,UAAA;AAAA,QACF;AACA,QAAA,MAAM,IAAIE,oCAAA,CAAmB,EAAE,MAAA,EAAAF,OAAAA,EAAQ,KAAK,CAAA;AAAA,MAC9C,CAAA,SAAE;AACA,QAAA,YAAA,CAAa,SAAS,CAAA;AAAA,MACxB;AAEA,MAAA,IAAI,SAAS,EAAA,EAAI;AACf,QAAA,IAAI,QAAA,CAAS,MAAA,KAAW,GAAA,IAAO,CAAC,QAAQ,MAAA,EAAQ;AAC9C,UAAA,OAAO,IAAA;AAAA,QACT;AACA,QAAA,IAAI,IAAA;AACJ,QAAA,IAAI;AACF,UAAA,IAAA,GAAO,MAAM,SAAS,IAAA,EAAK;AAAA,QAC7B,CAAA,CAAA,MAAQ;AACN,UAAA,MAAM,IAAIG,4CAAA,CAA2B,EAAE,MAAA,EAAQ,QAAA,CAAS,MAAA,EAAO,EAAG,EAAE,MAAA,EAAAH,OAAAA,EAAQ,GAAA,EAAK,CAAA;AAAA,QACnF;AACA,QAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,SAAA,CAAU,IAAI,CAAA;AAC5C,QAAA,IAAI,CAAC,OAAO,OAAA,EAAS;AACnB,UAAA,MAAM,IAAIG,4CAAA,CAA2B,EAAE,MAAA,EAAQ,QAAA,CAAS,MAAA,EAAO,EAAG,EAAE,MAAA,EAAAH,OAAAA,EAAQ,GAAA,EAAK,CAAA;AAAA,QACnF;AACA,QAAA,OAAO,MAAA,CAAO,IAAA;AAAA,MAChB;AAEA,MAAA,IAAI,cAAc,CAAA,IAAK,IAAA,CAAK,YAAA,CAAa,QAAA,CAAS,MAAM,CAAA,EAAG;AACzD,QAAA,WAAA,EAAA;AACA,QAAA,MAAM,KAAK,MAAA,CAAO,IAAA,CAAK,YAAY,IAAA,CAAK,WAAA,GAAc,WAAW,CAAC,CAAA;AAClE,QAAA;AAAA,MACF;AAEA,MAAA,IAAI,IAAA;AACJ,MAAA,IAAI;AACF,QAAA,IAAA,GAAO,MAAM,SAAS,IAAA,EAAK;AAAA,MAC7B,CAAA,CAAA,MAAQ;AACN,QAAA,IAAA,GAAO,IAAA;AAAA,MACT;AACA,MAAA,MAAMI,iCAAA,CAAgB,QAAA,CAAS,MAAA,EAAQ,IAAA,EAAM,QAAA,CAAS,SAAS,EAAE,MAAA,EAAAJ,OAAAA,EAAQ,GAAA,EAAK,CAAA;AAAA,IAChF;AAAA,EACF;AAAA,EAEQ,aAAa,MAAA,EAAyB;AAC5C,IAAA,OAAO,WAAW,GAAA,IAAO,MAAA,KAAW,GAAA,IAAO,MAAA,KAAW,OAAO,MAAA,IAAU,GAAA;AAAA,EACzE;AAAA,EAEQ,YAAY,YAAA,EAA8B;AAChD,IAAA,MAAM,QAAQ,IAAA,CAAK,GAAA,CAAIK,qCAAA,GAAsB,CAAA,IAAK,cAAcC,iCAAe,CAAA;AAC/E,IAAA,OAAO,KAAA,IAAS,CAAA,GAAI,IAAA,CAAK,MAAA,EAAO,CAAA;AAAA,EAClC;AAAA,EAEQ,OAAO,EAAA,EAA2B;AACxC,IAAA,OAAO,IAAI,OAAA,CAAQ,CAAC,YAAY,UAAA,CAAW,OAAA,EAAS,EAAE,CAAC,CAAA;AAAA,EACzD;AAAA,EAEA,MAAM,IAAA,CACJ,IAAA,EACA,OAAA,EAOY;AACZ,IAAA,MAAM,MAAA,GAAS,MAAM,IAAA,CAAK,QAAA,CAAY,OAAO,KAAK,CAAA,EAAG,MAAM,OAAO,CAAA;AAClE,IAAA,OAAO,MAAA;AAAA,EACT;AAAA,EAEA,MAAM,KAAA,CACJ,IAAA,EACA,OAAA,EAOY;AACZ,IAAA,MAAM,SAAS,MAAM,IAAA,CAAK,QAAA,CAAY,MAAA,EAAQ,MAAM,OAAO,CAAA;AAC3D,IAAA,OAAO,MAAA;AAAA,EACT;AAAA,EAEA,MAAM,IAAA,CACJ,IAAA,EACA,OAAA,EAOY;AACZ,IAAA,MAAM,SAAS,MAAM,IAAA,CAAK,QAAA,CAAY,KAAA,EAAO,MAAM,OAAO,CAAA;AAC1D,IAAA,OAAO,MAAA;AAAA,EACT;AAAA,EAEA,MAAM,OAAA,CACJ,IAAA,EACA,OAAA,GAGI,EAAC,EACU;AACf,IAAA,MAAM,IAAA,CAAK,QAAA,CAAS,QAAA,EAAU,IAAA,EAAM,OAAO,CAAA;AAAA,EAC7C;AACF;AAEA,SAAS,OAAO,CAAA,EAAmB;AACjC,EAAA,OAAO,CAAA;AACT;;;ACrOO,IAAM,cAAN,MAAkB;AAAA,EACb,OAAA;AAAA,EACA,UAAA;AAAA,EAEV,WAAA,CAAY,QAAmB,SAAA,EAAmB;AAChD,IAAA,IAAA,CAAK,OAAA,GAAU,MAAA;AACf,IAAA,IAAA,CAAK,UAAA,GAAa,SAAA;AAAA,EACpB;AAAA,EAEA,IAAc,SAAA,GAAoB;AAChC,IAAA,OAAO,CAAA,aAAA,EAAgB,KAAK,UAAU,CAAA,CAAA;AAAA,EACxC;AACF,CAAA;;;ACEO,SAAS,cAAc,IAAA,EAAwD;AACpF,EAAA,MAAM,SAAkC,EAAC;AACzC,EAAA,KAAA,MAAW,CAAC,CAAA,EAAG,CAAC,KAAK,MAAA,CAAO,OAAA,CAAQ,IAAI,CAAA,EAAG;AACzC,IAAA,IAAI,KAAK,IAAA,EAAM;AACb,MAAA,MAAA,CAAO,CAAC,CAAA,GAAI,CAAA;AAAA,IACd;AAAA,EACF;AACA,EAAA,OAAO,MAAA;AACT;ACtBO,IAAM,oBAAA,GAAuBC,MACjC,MAAA,CAAO;AAAA,EACN,KAAA,EAAOA,MAAE,MAAA,EAAO;AAAA,EAChB,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA,EACf,QAAA,EAAUA,MAAE,MAAA;AACd,CAAC,EACA,WAAA,EAAY;;;ACJR,SAAS,WAAc,UAAA,EAA0B;AACtD,EAAA,OAAOA,MACJ,MAAA,CAAO;AAAA,IACN,IAAA,EAAMA,KAAAA,CAAE,KAAA,CAAM,UAAU,CAAA;AAAA,IACxB,IAAA,EAAM;AAAA,GACP,EACA,WAAA,EAAY;AACjB;AAEO,IAAM,IAAA,GAAN,MAAM,KAAA,CAAQ;AAAA,EACnB,IAAA;AAAA,EACA,IAAA;AAAA,EAEQ,OAAA,GAA4B,IAAA;AAAA,EAC5B,KAAA,GAAQ,EAAA;AAAA,EACR,WAAA,GAAmC,IAAA;AAAA,EACnC,SAAkC,EAAC;AAAA,EAE3C,WAAA,CAAY,MAAW,IAAA,EAAyD;AAC9E,IAAA,IAAA,CAAK,IAAA,GAAO,IAAA;AACZ,IAAA,IAAA,CAAK,IAAA,GAAO,IAAA;AAAA,EACd;AAAA;AAAA,EAGA,UAAA,CACE,MAAA,EACA,IAAA,EACA,UAAA,EACA,KAAA,EACM;AACN,IAAA,IAAA,CAAK,OAAA,GAAU,MAAA;AACf,IAAA,IAAA,CAAK,KAAA,GAAQ,IAAA;AACb,IAAA,IAAA,CAAK,WAAA,GAAc,UAAA;AACnB,IAAA,IAAA,CAAK,MAAA,GAAS,KAAA;AAAA,EAChB;AAAA,EAEA,WAAA,GAAuB;AACrB,IAAA,OAAA,CAAQ,IAAA,CAAK,KAAK,IAAA,GAAO,CAAA,IAAK,KAAK,IAAA,CAAK,QAAA,GAAW,KAAK,IAAA,CAAK,KAAA;AAAA,EAC/D;AAAA,EAEA,MAAM,QAAA,GAA6B;AACjC,IAAA,IAAI,CAAC,IAAA,CAAK,OAAA,IAAW,CAAC,KAAK,WAAA,EAAa;AACtC,MAAA,MAAM,IAAI,MAAM,wBAAwB,CAAA;AAAA,IAC1C;AACA,IAAA,IAAI,CAAC,IAAA,CAAK,WAAA,EAAY,EAAG;AACvB,MAAA,MAAM,IAAI,MAAM,eAAe,CAAA;AAAA,IACjC;AACA,IAAA,MAAM,SAAA,GAAY,EAAE,GAAG,IAAA,CAAK,QAAQ,IAAA,EAAM,IAAA,CAAK,IAAA,CAAK,IAAA,GAAO,CAAA,EAAE;AAC7D,IAAA,MAAM,MAAA,GAAS,UAAA,CAAW,IAAA,CAAK,WAAW,CAAA;AAE1C,IAAA,MAAM,MAAM,MAAM,IAAA,CAAK,OAAA,CAAQ,IAAA,CAAK,KAAK,KAAA,EAAO;AAAA,MAC9C,MAAA,EAAQ,MAAA;AAAA,MACR,KAAA,EAAO;AAAA,KACR,CAAA;AAED,IAAA,MAAM,OAAO,IAAI,KAAA,CAAQ,GAAA,CAAI,IAAA,EAAM,IAAI,IAAI,CAAA;AAC3C,IAAA,IAAA,CAAK,UAAA,CAAW,KAAK,OAAA,EAAS,IAAA,CAAK,OAAO,IAAA,CAAK,WAAA,EAAa,KAAK,MAAM,CAAA;AACvE,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,CAAC,MAAA,CAAO,QAAQ,CAAA,GAAiB;AAC/B,IAAA,OAAO,IAAA,CAAK,IAAA,CAAK,MAAA,CAAO,QAAQ,CAAA,EAAE;AAAA,EACpC;AAAA,EAEA,OAAO,cAAA,GAAoC;AACzC,IAAA,IAAI,IAAA,GAAgB,IAAA;AACpB,IAAA,OAAO,IAAA,EAAM;AACX,MAAA,KAAA,MAAW,IAAA,IAAQ,KAAK,IAAA,EAAM;AAC5B,QAAA,MAAM,IAAA;AAAA,MACR;AACA,MAAA,IAAI,CAAC,IAAA,CAAK,WAAA,EAAY,EAAG;AACzB,MAAA,IAAA,GAAO,MAAM,KAAK,QAAA,EAAS;AAAA,IAC7B;AAAA,EACF;AACF;AC5EO,IAAM,UAAA,GAAaA,MACvB,MAAA,CAAO;AAAA,EACN,MAAA,EAAQA,MAAE,MAAA,EAAO;AAAA,EACjB,MAAA,EAAQA,MAAE,IAAA,CAAK,CAAC,UAAU,SAAA,EAAW,aAAA,EAAe,WAAA,EAAa,QAAQ,CAAC,CAAA;AAAA,EAC1E,EAAA,EAAIA,MAAE,MAAA,EAAO;AAAA,EACb,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA,EACf,WAAWA,KAAAA,CAAE,IAAA,CAAK,CAAC,UAAA,EAAY,SAAS,CAAC,CAAA;AAAA,EACzC,UAAUA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,GAAW,QAAA,EAAS;AAAA,EACzC,SAAA,EAAWA,MAAE,MAAA,EAAO;AAAA,EACpB,WAAA,EAAaA,MAAE,MAAA,EAAO;AAAA,EACtB,aAAaA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,GAAW,QAAA;AACrC,CAAC,EACA,WAAA,EAAY;AAIR,IAAM,yBAAA,GAA4BA,MACtC,MAAA,CAAO;AAAA,EACN,MAAA,EAAQA,MAAE,MAAA,EAAO;AAAA,EACjB,MAAA,EAAQA,MAAE,MAAA;AACZ,CAAC,EACA,WAAA,EAAY;;;AChBR,IAAM,KAAA,GAAN,cAAoB,WAAA,CAAY;AAAA,EACrC,MAAM,MAAA,CACJ,MAAA,EACA,OAAA,GAII,EAAC,EACU;AACf,IAAA,MAAM,OAAO,aAAA,CAAc;AAAA,MACzB,IAAI,MAAA,CAAO,EAAA;AAAA,MACX,MAAM,MAAA,CAAO,IAAA;AAAA,MACb,KAAK,MAAA,CAAO,GAAA;AAAA,MACZ,gBAAgB,MAAA,CAAO,cAAA;AAAA,MACvB,qBAAqB,MAAA,CAAO;AAAA,KAC7B,CAAA;AACD,IAAA,OAAO,KAAK,OAAA,CAAQ,KAAA,CAAM,CAAA,EAAG,IAAA,CAAK,SAAS,CAAA,MAAA,CAAA,EAAU;AAAA,MACnD,IAAA;AAAA,MACA,MAAA,EAAQ,UAAA;AAAA,MACR,GAAG;AAAA,KACJ,CAAA;AAAA,EACH;AAAA,EAEA,MAAM,IAAA,CACJ,MAAA,GAAyB,EAAC,EAC1B,OAAA,GAII,EAAC,EACgB;AACrB,IAAA,MAAM,QAAQ,aAAA,CAAc;AAAA,MAC1B,QAAQ,MAAA,CAAO,MAAA;AAAA,MACf,MAAM,MAAA,CAAO,IAAA;AAAA,MACb,UAAU,MAAA,CAAO;AAAA,KAClB,CAAA;AACD,IAAA,MAAM,IAAA,GAAO,CAAA,EAAG,IAAA,CAAK,SAAS,CAAA,MAAA,CAAA;AAC9B,IAAA,MAAM,MAAA,GAAS,WAAW,UAAU,CAAA;AACpC,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,OAAA,CAAQ,KAAK,IAAA,EAAM;AAAA,MACxC,MAAA,EAAQ,MAAA;AAAA,MACR,OAAO,MAAA,CAAO,IAAA,CAAK,KAAK,CAAA,CAAE,SAAS,KAAA,GAAQ,MAAA;AAAA,MAC3C,GAAG;AAAA,KACJ,CAAA;AACD,IAAA,MAAM,OAAO,IAAI,IAAA,CAAW,GAAA,CAAI,IAAA,EAAM,IAAI,IAAI,CAAA;AAC9C,IAAA,IAAA,CAAK,UAAA,CAAW,IAAA,CAAK,OAAA,EAAS,IAAA,EAAM,YAAY,KAAK,CAAA;AACrD,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,MAAM,GAAA,CACJ,MAAA,EACA,OAAA,GAII,EAAC,EACU;AACf,IAAA,OAAO,IAAA,CAAK,QAAQ,IAAA,CAAK,CAAA,EAAG,KAAK,SAAS,CAAA,OAAA,EAAU,MAAM,CAAA,CAAA,EAAI;AAAA,MAC5D,MAAA,EAAQ,UAAA;AAAA,MACR,GAAG;AAAA,KACJ,CAAA;AAAA,EACH;AAAA,EAEA,MAAM,OACJ,MAAA,EACA,MAAA,GAAmC,EAAC,EACpC,OAAA,GAII,EAAC,EACyB;AAC9B,IAAA,OAAO,IAAA,CAAK,QAAQ,KAAA,CAAM,CAAA,EAAG,KAAK,SAAS,CAAA,OAAA,EAAU,MAAM,CAAA,CAAA,EAAI;AAAA,MAC7D,IAAA,EAAM,EAAE,MAAA,EAAQ,MAAA,CAAO,UAAU,WAAA,EAAY;AAAA,MAC7C,MAAA,EAAQ,yBAAA;AAAA,MACR,GAAG;AAAA,KACJ,CAAA;AAAA,EACH;AACF;AClFO,IAAM,aAAA,GAAgBA,MAC1B,MAAA,CAAO;AAAA,EACN,SAAA,EAAWA,MAAE,MAAA,EAAO;AAAA,EACpB,MAAA,EAAQA,MAAE,IAAA,CAAK,CAAC,UAAU,SAAA,EAAW,MAAA,EAAQ,QAAA,EAAU,UAAU,CAAC,CAAA;AAAA,EAClE,IAAA,EAAMA,MAAE,IAAA,CAAK,CAAC,OAAO,KAAA,EAAO,KAAA,EAAO,OAAO,CAAC,CAAA;AAAA,EAC3C,EAAA,EAAIA,MAAE,MAAA,EAAO;AAAA,EACb,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA,EACf,MAAMA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,GAAW,QAAA,EAAS;AAAA,EACrC,WAAWA,KAAAA,CAAE,IAAA,CAAK,CAAC,UAAA,EAAY,SAAS,CAAC,CAAA;AAAA,EACzC,SAAA,EAAWA,MAAE,MAAA,EAAO;AAAA,EACpB,WAAA,EAAaA,MAAE,MAAA,EAAO;AAAA,EACtB,aAAaA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,GAAW,QAAA;AACrC,CAAC,EACA,WAAA,EAAY;;;ACRR,IAAM,QAAA,GAAN,cAAuB,WAAA,CAAY;AAAA,EACxC,MAAM,MAAA,CACJ,MAAA,EACA,OAAA,GAII,EAAC,EACa;AAClB,IAAA,MAAM,OAAO,aAAA,CAAc;AAAA,MACzB,IAAI,MAAA,CAAO,EAAA;AAAA,MACX,MAAM,MAAA,CAAO,IAAA;AAAA,MACb,MAAM,MAAA,CAAO,IAAA;AAAA,MACb,MAAM,MAAA,CAAO,IAAA;AAAA,MACb,SAAS,MAAA,CAAO;AAAA,KACjB,CAAA;AACD,IAAA,OAAO,KAAK,OAAA,CAAQ,KAAA,CAAM,CAAA,EAAG,IAAA,CAAK,SAAS,CAAA,SAAA,CAAA,EAAa;AAAA,MACtD,IAAA;AAAA,MACA,MAAA,EAAQ,aAAA;AAAA,MACR,GAAG;AAAA,KACJ,CAAA;AAAA,EACH;AAAA,EAEA,MAAM,IAAA,CACJ,MAAA,GAA4B,EAAC,EAC7B,OAAA,GAII,EAAC,EACmB;AACxB,IAAA,MAAM,QAAQ,aAAA,CAAc;AAAA,MAC1B,MAAM,MAAA,CAAO,IAAA;AAAA,MACb,QAAQ,MAAA,CAAO,MAAA;AAAA,MACf,MAAM,MAAA,CAAO,IAAA;AAAA,MACb,UAAU,MAAA,CAAO;AAAA,KAClB,CAAA;AACD,IAAA,MAAM,IAAA,GAAO,CAAA,EAAG,IAAA,CAAK,SAAS,CAAA,SAAA,CAAA;AAC9B,IAAA,MAAM,MAAA,GAAS,WAAW,aAAa,CAAA;AACvC,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,OAAA,CAAQ,KAAK,IAAA,EAAM;AAAA,MACxC,MAAA,EAAQ,MAAA;AAAA,MACR,OAAO,MAAA,CAAO,IAAA,CAAK,KAAK,CAAA,CAAE,SAAS,KAAA,GAAQ,MAAA;AAAA,MAC3C,GAAG;AAAA,KACJ,CAAA;AACD,IAAA,MAAM,OAAO,IAAI,IAAA,CAAc,GAAA,CAAI,IAAA,EAAM,IAAI,IAAI,CAAA;AACjD,IAAA,IAAA,CAAK,UAAA,CAAW,IAAA,CAAK,OAAA,EAAS,IAAA,EAAM,eAAe,KAAK,CAAA;AACxD,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,MAAM,GAAA,CACJ,SAAA,EACA,OAAA,GAII,EAAC,EACa;AAClB,IAAA,OAAO,IAAA,CAAK,QAAQ,IAAA,CAAK,CAAA,EAAG,KAAK,SAAS,CAAA,UAAA,EAAa,SAAS,CAAA,CAAA,EAAI;AAAA,MAClE,MAAA,EAAQ,aAAA;AAAA,MACR,GAAG;AAAA,KACJ,CAAA;AAAA,EACH;AACF;ACnEO,IAAM,iBAAA,GAAoBA,MAC9B,MAAA,CAAO;AAAA,EACN,MAAA,EAAQA,MAAE,MAAA,EAAO;AAAA,EACjB,QAAQA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,GAAW,QAAA,EAAS;AAAA,EACvC,YAAYA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,GAAW,QAAA,EAAS;AAAA,EAC3C,aAAA,EAAeA,KAAAA,CAAE,IAAA,CAAK,CAAC,MAAA,EAAQ,KAAK,CAAC,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,EAAS;AAAA,EAC3D,WAAWA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,GAAW,QAAA;AACnC,CAAC,EACA,WAAA,EAAY;;;ACJR,IAAM,OAAA,GAAN,cAAsB,WAAA,CAAY;AAAA,EACvC,MAAM,MAAA,CACJ,MAAA,GAAkC,EAAC,EACnC,OAAA,GAII,EAAC,EACiB;AACtB,IAAA,MAAM,OAAO,aAAA,CAAc,EAAE,UAAA,EAAY,MAAA,CAAO,YAAY,CAAA;AAC5D,IAAA,OAAO,KAAK,OAAA,CAAQ,KAAA,CAAM,CAAA,EAAG,IAAA,CAAK,SAAS,CAAA,QAAA,CAAA,EAAY;AAAA,MACrD,MAAM,MAAA,CAAO,IAAA,CAAK,IAAI,CAAA,CAAE,SAAS,IAAA,GAAO,MAAA;AAAA,MACxC,MAAA,EAAQ,iBAAA;AAAA,MACR,GAAG;AAAA,KACJ,CAAA;AAAA,EACH;AAAA,EAEA,MAAM,IAAA,CACJ,OAAA,GAII,EAAC,EACsB;AAC3B,IAAA,MAAM,MAAA,GAASA,KAAAA,CAAE,MAAA,CAAO,EAAE,IAAA,EAAMA,KAAAA,CAAE,KAAA,CAAM,iBAAiB,CAAA,EAAG,CAAA,CAAE,WAAA,EAAY;AAC1E,IAAA,MAAM,MAAA,GAAS,MAAM,IAAA,CAAK,OAAA,CAAQ,KAAK,CAAA,EAAG,IAAA,CAAK,SAAS,CAAA,QAAA,CAAA,EAAY;AAAA,MAClE,MAAA,EAAQ,MAAA;AAAA,MACR,GAAG;AAAA,KACJ,CAAA;AACD,IAAA,OAAO,MAAA,CAAO,IAAA;AAAA,EAChB;AAAA,EAEA,MAAM,OACJ,MAAA,EACA,MAAA,GAAkE,EAAC,EACnE,OAAA,GAII,EAAC,EAC0B;AAC/B,IAAA,MAAM,OAAO,aAAA,CAAc;AAAA,MACzB,YAAY,MAAA,CAAO,UAAA;AAAA,MACnB,eAAe,MAAA,CAAO;AAAA,KACvB,CAAA;AACD,IAAA,OAAO,IAAA,CAAK,QAAQ,IAAA,CAAK,CAAA,EAAG,KAAK,SAAS,CAAA,SAAA,EAAY,MAAM,CAAA,CAAA,EAAI;AAAA,MAC9D,IAAA;AAAA,MACA,MAAA,EAAQ,iBAAA;AAAA,MACR,GAAG;AAAA,KACJ,CAAA;AAAA,EACH;AAAA,EAEA,MAAM,MAAA,CACJ,MAAA,EACA,OAAA,GAGI,EAAC,EACU;AACf,IAAA,MAAM,IAAA,CAAK,QAAQ,OAAA,CAAQ,CAAA,EAAG,KAAK,SAAS,CAAA,SAAA,EAAY,MAAM,CAAA,CAAA,EAAI,OAAO,CAAA;AAAA,EAC3E;AACF;ACjEO,IAAM,gBAAA,GAAmBA,MAC7B,MAAA,CAAO;AAAA,EACN,EAAA,EAAIA,MAAE,MAAA,EAAO;AAAA,EACb,SAAA,EAAWA,MAAE,MAAA,EAAO;AAAA,EACpB,KAAA,EAAOA,MAAE,MAAA,EAAO;AAAA,EAChB,UAAA,EAAYA,MAAE,MAAA,EAAO;AAAA,EACrB,cAAA,EAAgBA,KAAAA,CAAE,MAAA,CAAOA,KAAAA,CAAE,SAAS,CAAA;AAAA,EACpC,gBAAgBA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,GAAW,QAAA,EAAS;AAAA,EAC/C,cAAcA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,GAAW,QAAA,EAAS;AAAA,EAC7C,gBAAgBA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,GAAW,QAAA,EAAS;AAAA,EAC/C,QAAQA,KAAAA,CAAE,IAAA,CAAK,CAAC,SAAA,EAAW,WAAA,EAAa,QAAQ,CAAC,CAAA;AAAA,EACjD,OAAA,EAASA,MAAE,MAAA,EAAO;AAAA,EAClB,WAAA,EAAaA,MAAE,MAAA,EAAO;AAAA,EACtB,SAAA,EAAWA,MAAE,MAAA,EAAO;AAAA,EACpB,aAAaA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,GAAW,QAAA;AACrC,CAAC,EACA,WAAA,EAAY;;;ACZR,IAAM,WAAA,GAAN,cAA0B,WAAA,CAAY;AAAA,EAC3C,MAAM,KACJ,SAAA,EACA,MAAA,GAA+C,EAAC,EAChD,OAAA,GAII,EAAC,EACsB;AAC3B,IAAA,MAAM,KAAA,GAAQ,cAAc,EAAE,IAAA,EAAM,OAAO,IAAA,EAAM,QAAA,EAAU,MAAA,CAAO,QAAA,EAAU,CAAA;AAC5E,IAAA,MAAM,IAAA,GAAO,CAAA,EAAG,IAAA,CAAK,SAAS,aAAa,SAAS,CAAA,KAAA,CAAA;AACpD,IAAA,MAAM,MAAA,GAAS,WAAW,gBAAgB,CAAA;AAC1C,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,OAAA,CAAQ,KAAK,IAAA,EAAM;AAAA,MACxC,MAAA,EAAQ,MAAA;AAAA,MACR,OAAO,MAAA,CAAO,IAAA,CAAK,KAAK,CAAA,CAAE,SAAS,KAAA,GAAQ,MAAA;AAAA,MAC3C,GAAG;AAAA,KACJ,CAAA;AACD,IAAA,MAAM,OAAO,IAAI,IAAA,CAAiB,GAAA,CAAI,IAAA,EAAM,IAAI,IAAI,CAAA;AACpD,IAAA,IAAA,CAAK,UAAA,CAAW,IAAA,CAAK,OAAA,EAAS,IAAA,EAAM,kBAAkB,KAAK,CAAA;AAC3D,IAAA,OAAO,IAAA;AAAA,EACT;AACF;;;ACtBO,IAAM,iBAAN,MAAqB;AAAA,EAClB,OAAA;AAAA,EACA,UAAA;AAAA,EAER,WAAA,CAAY,QAAmB,SAAA,EAAmB;AAChD,IAAA,IAAA,CAAK,OAAA,GAAU,MAAA;AACf,IAAA,IAAA,CAAK,UAAA,GAAa,SAAA;AAAA,EACpB;AAAA,EAEA,IAAI,KAAA,GAAe;AACjB,IAAA,OAAO,IAAI,KAAA,CAAM,IAAA,CAAK,OAAA,EAAS,KAAK,UAAU,CAAA;AAAA,EAChD;AAAA,EAEA,IAAI,QAAA,GAAqB;AACvB,IAAA,OAAO,IAAI,QAAA,CAAS,IAAA,CAAK,OAAA,EAAS,KAAK,UAAU,CAAA;AAAA,EACnD;AAAA,EAEA,IAAI,OAAA,GAAmB;AACrB,IAAA,OAAO,IAAI,OAAA,CAAQ,IAAA,CAAK,OAAA,EAAS,KAAK,UAAU,CAAA;AAAA,EAClD;AAAA,EAEA,IAAI,WAAA,GAA2B;AAC7B,IAAA,OAAO,IAAI,WAAA,CAAY,IAAA,CAAK,OAAA,EAAS,KAAK,UAAU,CAAA;AAAA,EACtD;AACF;AC3BO,IAAM,wBAAA,GAAN,cAAuCX,8BAAA,CAAa;AAAA,EACzD,WAAA,CAAY,UAAU,+EAAA,EAA0B;AAC9C,IAAA,KAAA,CAAM,OAAO,CAAA;AACb,IAAA,IAAA,CAAK,IAAA,GAAO,0BAAA;AAAA,EACd;AACF;AAEO,IAAM,QAAA,GAAN,MAAM,SAAA,CAAS;AAAA,EACpB,OAAO,OAAA,EAKK;AACV,IAAA,MAAM,QAAA,GAAW,UAAS,iBAAA,CAAkB,OAAA,CAAQ,KAAK,OAAA,CAAQ,MAAA,EAAQ,QAAQ,UAAU,CAAA;AAC3F,IAAA,MAAM,WAAA,GAAc,MAAA,CAAO,IAAA,CAAK,QAAA,EAAU,OAAO,CAAA;AACjD,IAAA,MAAM,YAAA,GAAe,MAAA,CAAO,IAAA,CAAK,OAAA,CAAQ,WAAW,OAAO,CAAA;AAE3D,IAAA,IAAI,WAAA,CAAY,WAAW,YAAA,CAAa,MAAA,IAAU,CAACY,sBAAA,CAAgB,WAAA,EAAa,YAAY,CAAA,EAAG;AAC7F,MAAA,MAAM,IAAI,wBAAA,EAAyB;AAAA,IACrC;AACA,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,OAAO,iBAAA,CACL,GAAA,EACA,MAAA,EACA,UAAA,EACQ;AACR,IAAA,MAAM,eAAe,MAAA,CAAO,IAAA,CAAK,MAAM,CAAA,CACpC,IAAA,GACA,GAAA,CAAI,CAAC,MAAM,CAAA,EAAG,CAAC,GAAG,MAAA,CAAO,CAAC,CAAC,CAAA,CAAE,CAAA,CAC7B,KAAK,EAAE,CAAA;AACV,IAAA,MAAM,aAAa,GAAA,GAAM,YAAA;AACzB,IAAA,MAAM,MAAA,GAASC,kBAAW,QAAA,EAAU,UAAU,EAAE,MAAA,CAAO,UAAA,EAAY,OAAO,CAAA,CAAE,MAAA,EAAO;AACnF,IAAA,OAAO,MAAA,CAAO,SAAS,QAAQ,CAAA;AAAA,EACjC;AACF;;;ACpBO,IAAM,OAAA,GAAN,cAAsB,SAAA,CAAU;AAAA,EAC7B,iBAAA;AAAA,EAER,WAAA,CAAY,OAAA,GAA0B,EAAC,EAAG;AACxC,IAAA,IAAI,MAAA,GAAS,OAAA,CAAQ,MAAA,IAAU,OAAA,CAAQ,GAAA,CAAI,eAAA;AAC3C,IAAA,IAAI,CAAC,MAAA,EAAQ;AACX,MAAA,MAAM,IAAIb,+BAAa,4HAA4C,CAAA;AAAA,IACrE;AAEA,IAAA,IAAI,SAAA,GAAY,OAAA,CAAQ,SAAA,IAAa,OAAA,CAAQ,GAAA,CAAI,kBAAA;AACjD,IAAA,IAAI,CAAC,SAAA,EAAW;AACd,MAAA,MAAM,IAAIA,+BAAa,kIAAkD,CAAA;AAAA,IAC3E;AAEA,IAAA,MAAM,OAAA,GAAU,OAAA,CAAQ,OAAA,IAAW,OAAA,CAAQ,IAAI,gBAAA,IAAoBC,kCAAA;AAEnE,IAAA,KAAA,CAAM;AAAA,MACJ,MAAA;AAAA,MACA,OAAA;AAAA,MACA,SAAS,OAAA,CAAQ,OAAA;AAAA,MACjB,YAAY,OAAA,CAAQ,UAAA;AAAA,MACpB,OAAO,OAAA,CAAQ,KAAA;AAAA,MACf,gBAAgB,OAAA,CAAQ;AAAA,KACzB,CAAA;AAED,IAAA,IAAA,CAAK,iBAAA,GAAoB,SAAA;AAAA,EAC3B;AAAA,EAEA,IAAI,KAAA,GAAe;AACjB,IAAA,OAAO,IAAI,KAAA,CAAM,IAAA,EAAM,IAAA,CAAK,iBAAiB,CAAA;AAAA,EAC/C;AAAA,EAEA,IAAI,QAAA,GAAqB;AACvB,IAAA,OAAO,IAAI,QAAA,CAAS,IAAA,EAAM,IAAA,CAAK,iBAAiB,CAAA;AAAA,EAClD;AAAA,EAEA,IAAI,OAAA,GAAmB;AACrB,IAAA,OAAO,IAAI,OAAA,CAAQ,IAAA,EAAM,IAAA,CAAK,iBAAiB,CAAA;AAAA,EACjD;AAAA,EAEA,IAAI,WAAA,GAA2B;AAC7B,IAAA,OAAO,IAAI,WAAA,CAAY,IAAA,EAAM,IAAA,CAAK,iBAAiB,CAAA;AAAA,EACrD;AAAA,EAEA,IAAI,QAAA,GAAqB;AACvB,IAAA,OAAO,IAAI,QAAA,EAAS;AAAA,EACtB;AAAA,EAEA,SAAS,SAAA,EAAmC;AAC1C,IAAA,OAAO,IAAI,cAAA,CAAe,IAAA,EAAM,SAAS,CAAA;AAAA,EAC3C;AACF;;;ACtEA,IAAO,sBAAA,GAAQ","file":"index.cjs","sourcesContent":["export const VERSION = '0.1.0';\n","import { z } from 'zod';\nimport {\n DEFAULT_BASE_URL,\n DEFAULT_MAX_RETRIES,\n DEFAULT_TIMEOUT,\n INITIAL_RETRY_DELAY,\n MAX_RETRY_DELAY,\n} from './constants.js';\nimport {\n APIConnectionError,\n APIResponseValidationError,\n APITimeoutError,\n ClawOpsError,\n makeStatusError,\n} from './error.js';\nimport { VERSION } from './version.js';\n\nconst LOCALHOST_HOSTS = new Set(['localhost', '127.0.0.1', '0.0.0.0', '[::1]']);\n\nfunction validateBaseUrl(url: string): string {\n let parsed: URL;\n try {\n parsed = new URL(url);\n } catch {\n throw new ClawOpsError(`Invalid base_url: ${url}`);\n }\n if (parsed.protocol === 'https:') return url;\n if (parsed.protocol === 'http:' && LOCALHOST_HOSTS.has(parsed.hostname)) return url;\n throw new ClawOpsError(\n `base_url은 HTTPS를 사용해야 합니다 (받은 값: '${url}'). ` +\n `로컬 개발 시에는 http://localhost를 사용할 수 있습니다.`,\n );\n}\n\nexport interface APIClientOptions {\n apiKey: string;\n baseURL?: string;\n timeout?: number;\n maxRetries?: number;\n fetch?: typeof globalThis.fetch;\n defaultHeaders?: Record<string, string>;\n}\n\nexport class APIClient {\n protected _apiKey: string;\n protected _baseURL: string;\n protected _maxRetries: number;\n protected _timeout: number;\n protected _fetch: typeof globalThis.fetch;\n protected _defaultHeaders: Record<string, string>;\n\n constructor(options: APIClientOptions) {\n this._apiKey = options.apiKey;\n this._baseURL = validateBaseUrl((options.baseURL ?? DEFAULT_BASE_URL).replace(/\\/+$/, ''));\n this._maxRetries = options.maxRetries ?? DEFAULT_MAX_RETRIES;\n this._timeout = options.timeout ?? DEFAULT_TIMEOUT;\n this._fetch = options.fetch ?? globalThis.fetch;\n this._defaultHeaders = options.defaultHeaders ?? {};\n }\n\n private _buildHeaders(extra?: Record<string, string>): Record<string, string> {\n const headers: Record<string, string> = {\n Authorization: `Bearer ${this._apiKey}`,\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n 'User-Agent': `claw-ops-node/${VERSION}`,\n ...this._defaultHeaders,\n };\n if (extra) Object.assign(headers, extra);\n return headers;\n }\n\n protected async _request<T>(\n method: string,\n path: string,\n options: {\n body?: Record<string, unknown> | null;\n query?: Record<string, unknown> | null;\n castTo?: z.ZodType<T>;\n extraHeaders?: Record<string, string>;\n extraQuery?: Record<string, unknown>;\n timeout?: number;\n } = {},\n ): Promise<T | null> {\n const headers = this._buildHeaders(options.extraHeaders);\n\n const params = new URLSearchParams();\n const queryObj = { ...options.query, ...options.extraQuery };\n for (const [k, v] of Object.entries(queryObj)) {\n if (v != null) params.set(k, String(v));\n }\n\n const queryString = params.toString();\n const url = `${this._baseURL}${path}${queryString ? `?${queryString}` : ''}`;\n const reqTimeout = options.timeout ?? this._timeout;\n\n let retriesLeft = this._maxRetries;\n\n while (true) {\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), reqTimeout);\n\n let response: Response;\n try {\n response = await this._fetch(url, {\n method,\n headers,\n body: options.body ? JSON.stringify(options.body) : undefined,\n signal: controller.signal,\n });\n } catch (err) {\n clearTimeout(timeoutId);\n if (err instanceof DOMException && err.name === 'AbortError') {\n if (retriesLeft > 0) {\n retriesLeft--;\n await this._sleep(this._retryDelay(this._maxRetries - retriesLeft));\n continue;\n }\n throw new APITimeoutError({ method, url });\n }\n if (retriesLeft > 0) {\n retriesLeft--;\n await this._sleep(this._retryDelay(this._maxRetries - retriesLeft));\n continue;\n }\n throw new APIConnectionError({ method, url });\n } finally {\n clearTimeout(timeoutId);\n }\n\n if (response.ok) {\n if (response.status === 204 || !options.castTo) {\n return null;\n }\n let json: unknown;\n try {\n json = await response.json();\n } catch {\n throw new APIResponseValidationError({ status: response.status }, { method, url });\n }\n const parsed = options.castTo.safeParse(json);\n if (!parsed.success) {\n throw new APIResponseValidationError({ status: response.status }, { method, url });\n }\n return parsed.data;\n }\n\n if (retriesLeft > 0 && this._shouldRetry(response.status)) {\n retriesLeft--;\n await this._sleep(this._retryDelay(this._maxRetries - retriesLeft));\n continue;\n }\n\n let body: unknown;\n try {\n body = await response.json();\n } catch {\n body = null;\n }\n throw makeStatusError(response.status, body, response.headers, { method, url });\n }\n }\n\n private _shouldRetry(status: number): boolean {\n return status === 408 || status === 409 || status === 429 || status >= 500;\n }\n\n private _retryDelay(retriesTaken: number): number {\n const delay = Math.min(INITIAL_RETRY_DELAY * 2 ** retriesTaken, MAX_RETRY_DELAY);\n return delay * (1 + Math.random());\n }\n\n private _sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n }\n\n async _get<T>(\n path: string,\n options: {\n castTo: z.ZodType<T>;\n query?: Record<string, unknown> | null;\n extraHeaders?: Record<string, string>;\n extraQuery?: Record<string, unknown>;\n timeout?: number;\n },\n ): Promise<T> {\n const result = await this._request<T>(method('GET'), path, options);\n return result!;\n }\n\n async _post<T>(\n path: string,\n options: {\n body?: Record<string, unknown> | null;\n castTo: z.ZodType<T>;\n extraHeaders?: Record<string, string>;\n extraQuery?: Record<string, unknown>;\n timeout?: number;\n },\n ): Promise<T> {\n const result = await this._request<T>('POST', path, options);\n return result!;\n }\n\n async _put<T>(\n path: string,\n options: {\n body?: Record<string, unknown> | null;\n castTo: z.ZodType<T>;\n extraHeaders?: Record<string, string>;\n extraQuery?: Record<string, unknown>;\n timeout?: number;\n },\n ): Promise<T> {\n const result = await this._request<T>('PUT', path, options);\n return result!;\n }\n\n async _delete(\n path: string,\n options: {\n extraHeaders?: Record<string, string>;\n timeout?: number;\n } = {},\n ): Promise<void> {\n await this._request('DELETE', path, options);\n }\n}\n\nfunction method(m: string): string {\n return m;\n}\n","import type { APIClient } from './base-client.js';\n\nexport class APIResource {\n protected _client: APIClient;\n protected _accountId: string;\n\n constructor(client: APIClient, accountId: string) {\n this._client = client;\n this._accountId = accountId;\n }\n\n protected get _basePath(): string {\n return `/v1/accounts/${this._accountId}`;\n }\n}\n","/**\n * snake_case를 camelCase로 변환합니다.\n * trailing underscore(예약어 회피용)는 제거합니다.\n * 예: 'from_' -> 'from', 'account_id' -> 'accountId'\n */\nexport function toCamelCase(snake: string): string {\n if (snake.endsWith('_')) {\n snake = snake.slice(0, -1);\n }\n const parts = snake.split('_');\n return parts[0] + parts.slice(1).map((w) => w.charAt(0).toUpperCase() + w.slice(1)).join('');\n}\n\n/**\n * null/undefined 값을 제거하여 API에 불필요한 필드를 보내지 않습니다.\n */\nexport function stripNotGiven(data: Record<string, unknown>): Record<string, unknown> {\n const result: Record<string, unknown> = {};\n for (const [k, v] of Object.entries(data)) {\n if (v != null) {\n result[k] = v;\n }\n }\n return result;\n}\n","import { z } from 'zod';\n\nexport const PaginationMetaSchema = z\n .object({\n total: z.number(),\n page: z.number(),\n pageSize: z.number(),\n })\n .passthrough();\n\nexport type PaginationMeta = z.infer<typeof PaginationMetaSchema>;\n","import { z } from 'zod';\nimport type { APIClient } from './base-client.js';\nimport { PaginationMetaSchema } from './types/shared.js';\n\nexport function PageSchema<T>(itemSchema: z.ZodType<T>) {\n return z\n .object({\n data: z.array(itemSchema),\n meta: PaginationMetaSchema,\n })\n .passthrough();\n}\n\nexport class Page<T> {\n data: T[];\n meta: { total: number; page: number; pageSize: number };\n\n private _client: APIClient | null = null;\n private _path = '';\n private _itemSchema: z.ZodType<T> | null = null;\n private _query: Record<string, unknown> = {};\n\n constructor(data: T[], meta: { total: number; page: number; pageSize: number }) {\n this.data = data;\n this.meta = meta;\n }\n\n /** @internal */\n _setClient(\n client: APIClient,\n path: string,\n itemSchema: z.ZodType<T>,\n query: Record<string, unknown>,\n ): void {\n this._client = client;\n this._path = path;\n this._itemSchema = itemSchema;\n this._query = query;\n }\n\n hasNextPage(): boolean {\n return (this.meta.page + 1) * this.meta.pageSize < this.meta.total;\n }\n\n async nextPage(): Promise<Page<T>> {\n if (!this._client || !this._itemSchema) {\n throw new Error('Page client is not set');\n }\n if (!this.hasNextPage()) {\n throw new Error('No more pages');\n }\n const nextQuery = { ...this._query, page: this.meta.page + 1 };\n const schema = PageSchema(this._itemSchema);\n\n const raw = await this._client._get(this._path, {\n castTo: schema,\n query: nextQuery,\n });\n\n const page = new Page<T>(raw.data, raw.meta);\n page._setClient(this._client, this._path, this._itemSchema, this._query);\n return page;\n }\n\n [Symbol.iterator](): Iterator<T> {\n return this.data[Symbol.iterator]();\n }\n\n async *autoPagingIter(): AsyncGenerator<T> {\n let page: Page<T> = this;\n while (true) {\n for (const item of page.data) {\n yield item;\n }\n if (!page.hasNextPage()) break;\n page = await page.nextPage();\n }\n }\n}\n","import { z } from 'zod';\n\nexport const CallSchema = z\n .object({\n callId: z.string(),\n status: z.enum(['queued', 'ringing', 'in-progress', 'completed', 'failed']),\n to: z.string(),\n from: z.string(),\n direction: z.enum(['outbound', 'inbound']),\n duration: z.number().nullable().optional(),\n accountId: z.string(),\n dateCreated: z.string(),\n dateUpdated: z.string().nullable().optional(),\n })\n .passthrough();\n\nexport type Call = z.infer<typeof CallSchema>;\n\nexport const CallControlResponseSchema = z\n .object({\n callId: z.string(),\n status: z.string(),\n })\n .passthrough();\n\nexport type CallControlResponse = z.infer<typeof CallControlResponseSchema>;\n","import { APIResource } from '../resource.js';\nimport { stripNotGiven } from '../util.js';\nimport { Page, PageSchema } from '../pagination.js';\nimport { CallSchema, CallControlResponseSchema } from '../types/call.js';\nimport type { Call, CallControlResponse } from '../types/call.js';\nimport type { CallCreateParams, CallListParams } from '../types/call-params.js';\n\nexport class Calls extends APIResource {\n async create(\n params: CallCreateParams,\n options: {\n extraHeaders?: Record<string, string>;\n extraQuery?: Record<string, unknown>;\n timeout?: number;\n } = {},\n ): Promise<Call> {\n const body = stripNotGiven({\n To: params.to,\n From: params.from,\n Url: params.url,\n StatusCallback: params.statusCallback,\n StatusCallbackEvent: params.statusCallbackEvent,\n });\n return this._client._post(`${this._basePath}/calls`, {\n body,\n castTo: CallSchema,\n ...options,\n });\n }\n\n async list(\n params: CallListParams = {},\n options: {\n extraHeaders?: Record<string, string>;\n extraQuery?: Record<string, unknown>;\n timeout?: number;\n } = {},\n ): Promise<Page<Call>> {\n const query = stripNotGiven({\n status: params.status,\n page: params.page,\n pageSize: params.pageSize,\n });\n const path = `${this._basePath}/calls`;\n const schema = PageSchema(CallSchema);\n const raw = await this._client._get(path, {\n castTo: schema,\n query: Object.keys(query).length ? query : undefined,\n ...options,\n });\n const page = new Page<Call>(raw.data, raw.meta);\n page._setClient(this._client, path, CallSchema, query);\n return page;\n }\n\n async get(\n callId: string,\n options: {\n extraHeaders?: Record<string, string>;\n extraQuery?: Record<string, unknown>;\n timeout?: number;\n } = {},\n ): Promise<Call> {\n return this._client._get(`${this._basePath}/calls/${callId}`, {\n castTo: CallSchema,\n ...options,\n });\n }\n\n async update(\n callId: string,\n params: { status?: 'completed' } = {},\n options: {\n extraHeaders?: Record<string, string>;\n extraQuery?: Record<string, unknown>;\n timeout?: number;\n } = {},\n ): Promise<CallControlResponse> {\n return this._client._post(`${this._basePath}/calls/${callId}`, {\n body: { Status: params.status ?? 'completed' },\n castTo: CallControlResponseSchema,\n ...options,\n });\n }\n}\n","import { z } from 'zod';\n\nexport const MessageSchema = z\n .object({\n messageId: z.string(),\n status: z.enum(['queued', 'sending', 'sent', 'failed', 'received']),\n type: z.enum(['sms', 'mms', 'rcs', 'kakao']),\n to: z.string(),\n from: z.string(),\n body: z.string().nullable().optional(),\n direction: z.enum(['outbound', 'inbound']),\n accountId: z.string(),\n dateCreated: z.string(),\n dateUpdated: z.string().nullable().optional(),\n })\n .passthrough();\n\nexport type Message = z.infer<typeof MessageSchema>;\n","import { APIResource } from '../resource.js';\nimport { stripNotGiven } from '../util.js';\nimport { Page, PageSchema } from '../pagination.js';\nimport { MessageSchema } from '../types/message.js';\nimport type { Message } from '../types/message.js';\nimport type { MessageCreateParams, MessageListParams } from '../types/message-params.js';\n\nexport class Messages extends APIResource {\n async create(\n params: MessageCreateParams,\n options: {\n extraHeaders?: Record<string, string>;\n extraQuery?: Record<string, unknown>;\n timeout?: number;\n } = {},\n ): Promise<Message> {\n const body = stripNotGiven({\n To: params.to,\n From: params.from,\n Body: params.body,\n Type: params.type,\n Subject: params.subject,\n });\n return this._client._post(`${this._basePath}/messages`, {\n body,\n castTo: MessageSchema,\n ...options,\n });\n }\n\n async list(\n params: MessageListParams = {},\n options: {\n extraHeaders?: Record<string, string>;\n extraQuery?: Record<string, unknown>;\n timeout?: number;\n } = {},\n ): Promise<Page<Message>> {\n const query = stripNotGiven({\n type: params.type,\n status: params.status,\n page: params.page,\n pageSize: params.pageSize,\n });\n const path = `${this._basePath}/messages`;\n const schema = PageSchema(MessageSchema);\n const raw = await this._client._get(path, {\n castTo: schema,\n query: Object.keys(query).length ? query : undefined,\n ...options,\n });\n const page = new Page<Message>(raw.data, raw.meta);\n page._setClient(this._client, path, MessageSchema, query);\n return page;\n }\n\n async get(\n messageId: string,\n options: {\n extraHeaders?: Record<string, string>;\n extraQuery?: Record<string, unknown>;\n timeout?: number;\n } = {},\n ): Promise<Message> {\n return this._client._get(`${this._basePath}/messages/${messageId}`, {\n castTo: MessageSchema,\n ...options,\n });\n }\n}\n","import { z } from 'zod';\n\nexport const PhoneNumberSchema = z\n .object({\n number: z.string(),\n source: z.string().nullable().optional(),\n webhookUrl: z.string().nullable().optional(),\n webhookMethod: z.enum(['POST', 'GET']).nullable().optional(),\n createdAt: z.string().nullable().optional(),\n })\n .passthrough();\n\nexport type PhoneNumber = z.infer<typeof PhoneNumberSchema>;\nexport type NumberListItem = PhoneNumber;\nexport type NumberUpdateResponse = PhoneNumber;\n","import { z } from 'zod';\nimport { APIResource } from '../resource.js';\nimport { stripNotGiven } from '../util.js';\nimport { PhoneNumberSchema } from '../types/number.js';\nimport type { PhoneNumber, NumberListItem, NumberUpdateResponse } from '../types/number.js';\n\nexport class Numbers extends APIResource {\n async create(\n params: { webhookUrl?: string } = {},\n options: {\n extraHeaders?: Record<string, string>;\n extraQuery?: Record<string, unknown>;\n timeout?: number;\n } = {},\n ): Promise<PhoneNumber> {\n const body = stripNotGiven({ webhookUrl: params.webhookUrl });\n return this._client._post(`${this._basePath}/numbers`, {\n body: Object.keys(body).length ? body : undefined,\n castTo: PhoneNumberSchema,\n ...options,\n });\n }\n\n async list(\n options: {\n extraHeaders?: Record<string, string>;\n extraQuery?: Record<string, unknown>;\n timeout?: number;\n } = {},\n ): Promise<NumberListItem[]> {\n const schema = z.object({ data: z.array(PhoneNumberSchema) }).passthrough();\n const result = await this._client._get(`${this._basePath}/numbers`, {\n castTo: schema,\n ...options,\n });\n return result.data;\n }\n\n async update(\n number: string,\n params: { webhookUrl?: string; webhookMethod?: 'POST' | 'GET' } = {},\n options: {\n extraHeaders?: Record<string, string>;\n extraQuery?: Record<string, unknown>;\n timeout?: number;\n } = {},\n ): Promise<NumberUpdateResponse> {\n const body = stripNotGiven({\n webhookUrl: params.webhookUrl,\n webhookMethod: params.webhookMethod,\n });\n return this._client._put(`${this._basePath}/numbers/${number}`, {\n body,\n castTo: PhoneNumberSchema,\n ...options,\n });\n }\n\n async delete(\n number: string,\n options: {\n extraHeaders?: Record<string, string>;\n timeout?: number;\n } = {},\n ): Promise<void> {\n await this._client._delete(`${this._basePath}/numbers/${number}`, options);\n }\n}\n","import { z } from 'zod';\n\nexport const WebhookLogSchema = z\n .object({\n id: z.string(),\n webhookId: z.string(),\n event: z.string(),\n requestUrl: z.string(),\n requestPayload: z.record(z.unknown()),\n responseStatus: z.number().nullable().optional(),\n responseBody: z.string().nullable().optional(),\n responseTimeMs: z.number().nullable().optional(),\n status: z.enum(['pending', 'delivered', 'failed']),\n attempt: z.number(),\n maxAttempts: z.number(),\n createdAt: z.string(),\n completedAt: z.string().nullable().optional(),\n })\n .passthrough();\n\nexport type WebhookLog = z.infer<typeof WebhookLogSchema>;\n","import { APIResource } from '../resource.js';\nimport { stripNotGiven } from '../util.js';\nimport { Page, PageSchema } from '../pagination.js';\nimport { WebhookLogSchema } from '../types/webhook-log.js';\nimport type { WebhookLog } from '../types/webhook-log.js';\n\nexport class WebhookLogs extends APIResource {\n async list(\n webhookId: string,\n params: { page?: number; pageSize?: number } = {},\n options: {\n extraHeaders?: Record<string, string>;\n extraQuery?: Record<string, unknown>;\n timeout?: number;\n } = {},\n ): Promise<Page<WebhookLog>> {\n const query = stripNotGiven({ page: params.page, pageSize: params.pageSize });\n const path = `${this._basePath}/webhooks/${webhookId}/logs`;\n const schema = PageSchema(WebhookLogSchema);\n const raw = await this._client._get(path, {\n castTo: schema,\n query: Object.keys(query).length ? query : undefined,\n ...options,\n });\n const page = new Page<WebhookLog>(raw.data, raw.meta);\n page._setClient(this._client, path, WebhookLogSchema, query);\n return page;\n }\n}\n","import type { APIClient } from '../base-client.js';\nimport { Calls } from './calls.js';\nimport { Messages } from './messages.js';\nimport { Numbers } from './numbers.js';\nimport { WebhookLogs } from './webhook-logs.js';\n\nexport class AccountContext {\n private _client: APIClient;\n private _accountId: string;\n\n constructor(client: APIClient, accountId: string) {\n this._client = client;\n this._accountId = accountId;\n }\n\n get calls(): Calls {\n return new Calls(this._client, this._accountId);\n }\n\n get messages(): Messages {\n return new Messages(this._client, this._accountId);\n }\n\n get numbers(): Numbers {\n return new Numbers(this._client, this._accountId);\n }\n\n get webhookLogs(): WebhookLogs {\n return new WebhookLogs(this._client, this._accountId);\n }\n}\n","import { createHmac, timingSafeEqual } from 'node:crypto';\nimport { ClawOpsError } from './error.js';\n\nexport class WebhookVerificationError extends ClawOpsError {\n constructor(message = 'Webhook 서명이 일치하지 않습니다.') {\n super(message);\n this.name = 'WebhookVerificationError';\n }\n}\n\nexport class Webhooks {\n verify(options: {\n url: string;\n params: Record<string, string>;\n signature: string;\n signingKey: string;\n }): boolean {\n const expected = Webhooks._computeSignature(options.url, options.params, options.signingKey);\n const expectedBuf = Buffer.from(expected, 'utf-8');\n const signatureBuf = Buffer.from(options.signature, 'utf-8');\n\n if (expectedBuf.length !== signatureBuf.length || !timingSafeEqual(expectedBuf, signatureBuf)) {\n throw new WebhookVerificationError();\n }\n return true;\n }\n\n static _computeSignature(\n url: string,\n params: Record<string, string>,\n signingKey: string,\n ): string {\n const sortedParams = Object.keys(params)\n .sort()\n .map((k) => `${k}${params[k]}`)\n .join('');\n const dataToSign = url + sortedParams;\n const digest = createHmac('sha256', signingKey).update(dataToSign, 'utf-8').digest();\n return digest.toString('base64');\n }\n}\n","import { APIClient, type APIClientOptions } from './base-client.js';\nimport { DEFAULT_BASE_URL } from './constants.js';\nimport { ClawOpsError } from './error.js';\nimport { Calls } from './resources/calls.js';\nimport { Messages } from './resources/messages.js';\nimport { Numbers } from './resources/numbers.js';\nimport { WebhookLogs } from './resources/webhook-logs.js';\nimport { AccountContext } from './resources/accounts.js';\nimport { Webhooks } from './webhooks.js';\n\nexport interface ClawOpsOptions {\n apiKey?: string;\n accountId?: string;\n baseURL?: string;\n timeout?: number;\n maxRetries?: number;\n fetch?: typeof globalThis.fetch;\n defaultHeaders?: Record<string, string>;\n}\n\nexport class ClawOps extends APIClient {\n private _defaultAccountId: string;\n\n constructor(options: ClawOpsOptions = {}) {\n let apiKey = options.apiKey ?? process.env.CLAWOPS_API_KEY;\n if (!apiKey) {\n throw new ClawOpsError('apiKey를 지정하거나 CLAWOPS_API_KEY 환경변수를 설정하세요.');\n }\n\n let accountId = options.accountId ?? process.env.CLAWOPS_ACCOUNT_ID;\n if (!accountId) {\n throw new ClawOpsError('accountId를 지정하거나 CLAWOPS_ACCOUNT_ID 환경변수를 설정하세요.');\n }\n\n const baseURL = options.baseURL ?? process.env.CLAWOPS_BASE_URL ?? DEFAULT_BASE_URL;\n\n super({\n apiKey,\n baseURL,\n timeout: options.timeout,\n maxRetries: options.maxRetries,\n fetch: options.fetch,\n defaultHeaders: options.defaultHeaders,\n });\n\n this._defaultAccountId = accountId;\n }\n\n get calls(): Calls {\n return new Calls(this, this._defaultAccountId);\n }\n\n get messages(): Messages {\n return new Messages(this, this._defaultAccountId);\n }\n\n get numbers(): Numbers {\n return new Numbers(this, this._defaultAccountId);\n }\n\n get webhookLogs(): WebhookLogs {\n return new WebhookLogs(this, this._defaultAccountId);\n }\n\n get webhooks(): Webhooks {\n return new Webhooks();\n }\n\n accounts(accountId: string): AccountContext {\n return new AccountContext(this, accountId);\n }\n}\n","import { ClawOps } from './client.js';\nexport default ClawOps;\n"]}
|
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1,549 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
|
|
3
|
+
interface APIClientOptions {
|
|
4
|
+
apiKey: string;
|
|
5
|
+
baseURL?: string;
|
|
6
|
+
timeout?: number;
|
|
7
|
+
maxRetries?: number;
|
|
8
|
+
fetch?: typeof globalThis.fetch;
|
|
9
|
+
defaultHeaders?: Record<string, string>;
|
|
10
|
+
}
|
|
11
|
+
declare class APIClient {
|
|
12
|
+
protected _apiKey: string;
|
|
13
|
+
protected _baseURL: string;
|
|
14
|
+
protected _maxRetries: number;
|
|
15
|
+
protected _timeout: number;
|
|
16
|
+
protected _fetch: typeof globalThis.fetch;
|
|
17
|
+
protected _defaultHeaders: Record<string, string>;
|
|
18
|
+
constructor(options: APIClientOptions);
|
|
19
|
+
private _buildHeaders;
|
|
20
|
+
protected _request<T>(method: string, path: string, options?: {
|
|
21
|
+
body?: Record<string, unknown> | null;
|
|
22
|
+
query?: Record<string, unknown> | null;
|
|
23
|
+
castTo?: z.ZodType<T>;
|
|
24
|
+
extraHeaders?: Record<string, string>;
|
|
25
|
+
extraQuery?: Record<string, unknown>;
|
|
26
|
+
timeout?: number;
|
|
27
|
+
}): Promise<T | null>;
|
|
28
|
+
private _shouldRetry;
|
|
29
|
+
private _retryDelay;
|
|
30
|
+
private _sleep;
|
|
31
|
+
_get<T>(path: string, options: {
|
|
32
|
+
castTo: z.ZodType<T>;
|
|
33
|
+
query?: Record<string, unknown> | null;
|
|
34
|
+
extraHeaders?: Record<string, string>;
|
|
35
|
+
extraQuery?: Record<string, unknown>;
|
|
36
|
+
timeout?: number;
|
|
37
|
+
}): Promise<T>;
|
|
38
|
+
_post<T>(path: string, options: {
|
|
39
|
+
body?: Record<string, unknown> | null;
|
|
40
|
+
castTo: z.ZodType<T>;
|
|
41
|
+
extraHeaders?: Record<string, string>;
|
|
42
|
+
extraQuery?: Record<string, unknown>;
|
|
43
|
+
timeout?: number;
|
|
44
|
+
}): Promise<T>;
|
|
45
|
+
_put<T>(path: string, options: {
|
|
46
|
+
body?: Record<string, unknown> | null;
|
|
47
|
+
castTo: z.ZodType<T>;
|
|
48
|
+
extraHeaders?: Record<string, string>;
|
|
49
|
+
extraQuery?: Record<string, unknown>;
|
|
50
|
+
timeout?: number;
|
|
51
|
+
}): Promise<T>;
|
|
52
|
+
_delete(path: string, options?: {
|
|
53
|
+
extraHeaders?: Record<string, string>;
|
|
54
|
+
timeout?: number;
|
|
55
|
+
}): Promise<void>;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
declare class APIResource {
|
|
59
|
+
protected _client: APIClient;
|
|
60
|
+
protected _accountId: string;
|
|
61
|
+
constructor(client: APIClient, accountId: string);
|
|
62
|
+
protected get _basePath(): string;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
declare class Page<T> {
|
|
66
|
+
data: T[];
|
|
67
|
+
meta: {
|
|
68
|
+
total: number;
|
|
69
|
+
page: number;
|
|
70
|
+
pageSize: number;
|
|
71
|
+
};
|
|
72
|
+
private _client;
|
|
73
|
+
private _path;
|
|
74
|
+
private _itemSchema;
|
|
75
|
+
private _query;
|
|
76
|
+
constructor(data: T[], meta: {
|
|
77
|
+
total: number;
|
|
78
|
+
page: number;
|
|
79
|
+
pageSize: number;
|
|
80
|
+
});
|
|
81
|
+
/** @internal */
|
|
82
|
+
_setClient(client: APIClient, path: string, itemSchema: z.ZodType<T>, query: Record<string, unknown>): void;
|
|
83
|
+
hasNextPage(): boolean;
|
|
84
|
+
nextPage(): Promise<Page<T>>;
|
|
85
|
+
[Symbol.iterator](): Iterator<T>;
|
|
86
|
+
autoPagingIter(): AsyncGenerator<T>;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
declare const CallSchema: z.ZodObject<{
|
|
90
|
+
callId: z.ZodString;
|
|
91
|
+
status: z.ZodEnum<["queued", "ringing", "in-progress", "completed", "failed"]>;
|
|
92
|
+
to: z.ZodString;
|
|
93
|
+
from: z.ZodString;
|
|
94
|
+
direction: z.ZodEnum<["outbound", "inbound"]>;
|
|
95
|
+
duration: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
96
|
+
accountId: z.ZodString;
|
|
97
|
+
dateCreated: z.ZodString;
|
|
98
|
+
dateUpdated: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
99
|
+
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
100
|
+
callId: z.ZodString;
|
|
101
|
+
status: z.ZodEnum<["queued", "ringing", "in-progress", "completed", "failed"]>;
|
|
102
|
+
to: z.ZodString;
|
|
103
|
+
from: z.ZodString;
|
|
104
|
+
direction: z.ZodEnum<["outbound", "inbound"]>;
|
|
105
|
+
duration: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
106
|
+
accountId: z.ZodString;
|
|
107
|
+
dateCreated: z.ZodString;
|
|
108
|
+
dateUpdated: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
109
|
+
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
110
|
+
callId: z.ZodString;
|
|
111
|
+
status: z.ZodEnum<["queued", "ringing", "in-progress", "completed", "failed"]>;
|
|
112
|
+
to: z.ZodString;
|
|
113
|
+
from: z.ZodString;
|
|
114
|
+
direction: z.ZodEnum<["outbound", "inbound"]>;
|
|
115
|
+
duration: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
116
|
+
accountId: z.ZodString;
|
|
117
|
+
dateCreated: z.ZodString;
|
|
118
|
+
dateUpdated: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
119
|
+
}, z.ZodTypeAny, "passthrough">>;
|
|
120
|
+
type Call = z.infer<typeof CallSchema>;
|
|
121
|
+
declare const CallControlResponseSchema: z.ZodObject<{
|
|
122
|
+
callId: z.ZodString;
|
|
123
|
+
status: z.ZodString;
|
|
124
|
+
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
125
|
+
callId: z.ZodString;
|
|
126
|
+
status: z.ZodString;
|
|
127
|
+
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
128
|
+
callId: z.ZodString;
|
|
129
|
+
status: z.ZodString;
|
|
130
|
+
}, z.ZodTypeAny, "passthrough">>;
|
|
131
|
+
type CallControlResponse = z.infer<typeof CallControlResponseSchema>;
|
|
132
|
+
|
|
133
|
+
interface CallCreateParams {
|
|
134
|
+
to: string;
|
|
135
|
+
from: string;
|
|
136
|
+
url: string;
|
|
137
|
+
statusCallback?: string;
|
|
138
|
+
statusCallbackEvent?: string;
|
|
139
|
+
}
|
|
140
|
+
interface CallListParams {
|
|
141
|
+
status?: 'queued' | 'ringing' | 'in-progress' | 'completed' | 'failed';
|
|
142
|
+
page?: number;
|
|
143
|
+
pageSize?: number;
|
|
144
|
+
}
|
|
145
|
+
interface CallUpdateParams {
|
|
146
|
+
status?: 'completed';
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
declare class Calls extends APIResource {
|
|
150
|
+
create(params: CallCreateParams, options?: {
|
|
151
|
+
extraHeaders?: Record<string, string>;
|
|
152
|
+
extraQuery?: Record<string, unknown>;
|
|
153
|
+
timeout?: number;
|
|
154
|
+
}): Promise<Call>;
|
|
155
|
+
list(params?: CallListParams, options?: {
|
|
156
|
+
extraHeaders?: Record<string, string>;
|
|
157
|
+
extraQuery?: Record<string, unknown>;
|
|
158
|
+
timeout?: number;
|
|
159
|
+
}): Promise<Page<Call>>;
|
|
160
|
+
get(callId: string, options?: {
|
|
161
|
+
extraHeaders?: Record<string, string>;
|
|
162
|
+
extraQuery?: Record<string, unknown>;
|
|
163
|
+
timeout?: number;
|
|
164
|
+
}): Promise<Call>;
|
|
165
|
+
update(callId: string, params?: {
|
|
166
|
+
status?: 'completed';
|
|
167
|
+
}, options?: {
|
|
168
|
+
extraHeaders?: Record<string, string>;
|
|
169
|
+
extraQuery?: Record<string, unknown>;
|
|
170
|
+
timeout?: number;
|
|
171
|
+
}): Promise<CallControlResponse>;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
declare const MessageSchema: z.ZodObject<{
|
|
175
|
+
messageId: z.ZodString;
|
|
176
|
+
status: z.ZodEnum<["queued", "sending", "sent", "failed", "received"]>;
|
|
177
|
+
type: z.ZodEnum<["sms", "mms", "rcs", "kakao"]>;
|
|
178
|
+
to: z.ZodString;
|
|
179
|
+
from: z.ZodString;
|
|
180
|
+
body: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
181
|
+
direction: z.ZodEnum<["outbound", "inbound"]>;
|
|
182
|
+
accountId: z.ZodString;
|
|
183
|
+
dateCreated: z.ZodString;
|
|
184
|
+
dateUpdated: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
185
|
+
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
186
|
+
messageId: z.ZodString;
|
|
187
|
+
status: z.ZodEnum<["queued", "sending", "sent", "failed", "received"]>;
|
|
188
|
+
type: z.ZodEnum<["sms", "mms", "rcs", "kakao"]>;
|
|
189
|
+
to: z.ZodString;
|
|
190
|
+
from: z.ZodString;
|
|
191
|
+
body: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
192
|
+
direction: z.ZodEnum<["outbound", "inbound"]>;
|
|
193
|
+
accountId: z.ZodString;
|
|
194
|
+
dateCreated: z.ZodString;
|
|
195
|
+
dateUpdated: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
196
|
+
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
197
|
+
messageId: z.ZodString;
|
|
198
|
+
status: z.ZodEnum<["queued", "sending", "sent", "failed", "received"]>;
|
|
199
|
+
type: z.ZodEnum<["sms", "mms", "rcs", "kakao"]>;
|
|
200
|
+
to: z.ZodString;
|
|
201
|
+
from: z.ZodString;
|
|
202
|
+
body: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
203
|
+
direction: z.ZodEnum<["outbound", "inbound"]>;
|
|
204
|
+
accountId: z.ZodString;
|
|
205
|
+
dateCreated: z.ZodString;
|
|
206
|
+
dateUpdated: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
207
|
+
}, z.ZodTypeAny, "passthrough">>;
|
|
208
|
+
type Message = z.infer<typeof MessageSchema>;
|
|
209
|
+
|
|
210
|
+
interface MessageCreateParams {
|
|
211
|
+
to: string;
|
|
212
|
+
from: string;
|
|
213
|
+
body: string;
|
|
214
|
+
type?: 'sms' | 'mms' | 'rcs' | 'kakao';
|
|
215
|
+
subject?: string;
|
|
216
|
+
}
|
|
217
|
+
interface MessageListParams {
|
|
218
|
+
type?: 'sms' | 'mms' | 'rcs' | 'kakao';
|
|
219
|
+
status?: 'queued' | 'sending' | 'sent' | 'failed' | 'received';
|
|
220
|
+
page?: number;
|
|
221
|
+
pageSize?: number;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
declare class Messages extends APIResource {
|
|
225
|
+
create(params: MessageCreateParams, options?: {
|
|
226
|
+
extraHeaders?: Record<string, string>;
|
|
227
|
+
extraQuery?: Record<string, unknown>;
|
|
228
|
+
timeout?: number;
|
|
229
|
+
}): Promise<Message>;
|
|
230
|
+
list(params?: MessageListParams, options?: {
|
|
231
|
+
extraHeaders?: Record<string, string>;
|
|
232
|
+
extraQuery?: Record<string, unknown>;
|
|
233
|
+
timeout?: number;
|
|
234
|
+
}): Promise<Page<Message>>;
|
|
235
|
+
get(messageId: string, options?: {
|
|
236
|
+
extraHeaders?: Record<string, string>;
|
|
237
|
+
extraQuery?: Record<string, unknown>;
|
|
238
|
+
timeout?: number;
|
|
239
|
+
}): Promise<Message>;
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
declare const PhoneNumberSchema: z.ZodObject<{
|
|
243
|
+
number: z.ZodString;
|
|
244
|
+
source: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
245
|
+
webhookUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
246
|
+
webhookMethod: z.ZodOptional<z.ZodNullable<z.ZodEnum<["POST", "GET"]>>>;
|
|
247
|
+
createdAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
248
|
+
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
249
|
+
number: z.ZodString;
|
|
250
|
+
source: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
251
|
+
webhookUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
252
|
+
webhookMethod: z.ZodOptional<z.ZodNullable<z.ZodEnum<["POST", "GET"]>>>;
|
|
253
|
+
createdAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
254
|
+
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
255
|
+
number: z.ZodString;
|
|
256
|
+
source: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
257
|
+
webhookUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
258
|
+
webhookMethod: z.ZodOptional<z.ZodNullable<z.ZodEnum<["POST", "GET"]>>>;
|
|
259
|
+
createdAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
260
|
+
}, z.ZodTypeAny, "passthrough">>;
|
|
261
|
+
type PhoneNumber = z.infer<typeof PhoneNumberSchema>;
|
|
262
|
+
type NumberListItem = PhoneNumber;
|
|
263
|
+
type NumberUpdateResponse = PhoneNumber;
|
|
264
|
+
|
|
265
|
+
declare class Numbers extends APIResource {
|
|
266
|
+
create(params?: {
|
|
267
|
+
webhookUrl?: string;
|
|
268
|
+
}, options?: {
|
|
269
|
+
extraHeaders?: Record<string, string>;
|
|
270
|
+
extraQuery?: Record<string, unknown>;
|
|
271
|
+
timeout?: number;
|
|
272
|
+
}): Promise<PhoneNumber>;
|
|
273
|
+
list(options?: {
|
|
274
|
+
extraHeaders?: Record<string, string>;
|
|
275
|
+
extraQuery?: Record<string, unknown>;
|
|
276
|
+
timeout?: number;
|
|
277
|
+
}): Promise<NumberListItem[]>;
|
|
278
|
+
update(number: string, params?: {
|
|
279
|
+
webhookUrl?: string;
|
|
280
|
+
webhookMethod?: 'POST' | 'GET';
|
|
281
|
+
}, options?: {
|
|
282
|
+
extraHeaders?: Record<string, string>;
|
|
283
|
+
extraQuery?: Record<string, unknown>;
|
|
284
|
+
timeout?: number;
|
|
285
|
+
}): Promise<NumberUpdateResponse>;
|
|
286
|
+
delete(number: string, options?: {
|
|
287
|
+
extraHeaders?: Record<string, string>;
|
|
288
|
+
timeout?: number;
|
|
289
|
+
}): Promise<void>;
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
declare const WebhookLogSchema: z.ZodObject<{
|
|
293
|
+
id: z.ZodString;
|
|
294
|
+
webhookId: z.ZodString;
|
|
295
|
+
event: z.ZodString;
|
|
296
|
+
requestUrl: z.ZodString;
|
|
297
|
+
requestPayload: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
298
|
+
responseStatus: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
299
|
+
responseBody: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
300
|
+
responseTimeMs: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
301
|
+
status: z.ZodEnum<["pending", "delivered", "failed"]>;
|
|
302
|
+
attempt: z.ZodNumber;
|
|
303
|
+
maxAttempts: z.ZodNumber;
|
|
304
|
+
createdAt: z.ZodString;
|
|
305
|
+
completedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
306
|
+
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
307
|
+
id: z.ZodString;
|
|
308
|
+
webhookId: z.ZodString;
|
|
309
|
+
event: z.ZodString;
|
|
310
|
+
requestUrl: z.ZodString;
|
|
311
|
+
requestPayload: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
312
|
+
responseStatus: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
313
|
+
responseBody: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
314
|
+
responseTimeMs: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
315
|
+
status: z.ZodEnum<["pending", "delivered", "failed"]>;
|
|
316
|
+
attempt: z.ZodNumber;
|
|
317
|
+
maxAttempts: z.ZodNumber;
|
|
318
|
+
createdAt: z.ZodString;
|
|
319
|
+
completedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
320
|
+
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
321
|
+
id: z.ZodString;
|
|
322
|
+
webhookId: z.ZodString;
|
|
323
|
+
event: z.ZodString;
|
|
324
|
+
requestUrl: z.ZodString;
|
|
325
|
+
requestPayload: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
326
|
+
responseStatus: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
327
|
+
responseBody: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
328
|
+
responseTimeMs: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
329
|
+
status: z.ZodEnum<["pending", "delivered", "failed"]>;
|
|
330
|
+
attempt: z.ZodNumber;
|
|
331
|
+
maxAttempts: z.ZodNumber;
|
|
332
|
+
createdAt: z.ZodString;
|
|
333
|
+
completedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
334
|
+
}, z.ZodTypeAny, "passthrough">>;
|
|
335
|
+
type WebhookLog = z.infer<typeof WebhookLogSchema>;
|
|
336
|
+
|
|
337
|
+
declare class WebhookLogs extends APIResource {
|
|
338
|
+
list(webhookId: string, params?: {
|
|
339
|
+
page?: number;
|
|
340
|
+
pageSize?: number;
|
|
341
|
+
}, options?: {
|
|
342
|
+
extraHeaders?: Record<string, string>;
|
|
343
|
+
extraQuery?: Record<string, unknown>;
|
|
344
|
+
timeout?: number;
|
|
345
|
+
}): Promise<Page<WebhookLog>>;
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
declare class AccountContext {
|
|
349
|
+
private _client;
|
|
350
|
+
private _accountId;
|
|
351
|
+
constructor(client: APIClient, accountId: string);
|
|
352
|
+
get calls(): Calls;
|
|
353
|
+
get messages(): Messages;
|
|
354
|
+
get numbers(): Numbers;
|
|
355
|
+
get webhookLogs(): WebhookLogs;
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
declare class ClawOpsError extends Error {
|
|
359
|
+
constructor(message: string);
|
|
360
|
+
}
|
|
361
|
+
declare class APIError extends ClawOpsError {
|
|
362
|
+
readonly request: {
|
|
363
|
+
method: string;
|
|
364
|
+
url: string;
|
|
365
|
+
};
|
|
366
|
+
constructor(message: string, request: {
|
|
367
|
+
method: string;
|
|
368
|
+
url: string;
|
|
369
|
+
});
|
|
370
|
+
}
|
|
371
|
+
declare class APIStatusError extends APIError {
|
|
372
|
+
readonly status: number;
|
|
373
|
+
readonly body: unknown;
|
|
374
|
+
readonly headers: Headers | undefined;
|
|
375
|
+
constructor(message: string, response: {
|
|
376
|
+
status: number;
|
|
377
|
+
headers?: Headers;
|
|
378
|
+
}, body: unknown, request: {
|
|
379
|
+
method: string;
|
|
380
|
+
url: string;
|
|
381
|
+
});
|
|
382
|
+
}
|
|
383
|
+
declare class BadRequestError extends APIStatusError {
|
|
384
|
+
readonly status: 400;
|
|
385
|
+
constructor(message: string, response: {
|
|
386
|
+
status: number;
|
|
387
|
+
headers?: Headers;
|
|
388
|
+
}, body: unknown, request: {
|
|
389
|
+
method: string;
|
|
390
|
+
url: string;
|
|
391
|
+
});
|
|
392
|
+
}
|
|
393
|
+
declare class AuthenticationError extends APIStatusError {
|
|
394
|
+
readonly status: 401;
|
|
395
|
+
constructor(message: string, response: {
|
|
396
|
+
status: number;
|
|
397
|
+
headers?: Headers;
|
|
398
|
+
}, body: unknown, request: {
|
|
399
|
+
method: string;
|
|
400
|
+
url: string;
|
|
401
|
+
});
|
|
402
|
+
}
|
|
403
|
+
declare class PermissionDeniedError extends APIStatusError {
|
|
404
|
+
readonly status: 403;
|
|
405
|
+
constructor(message: string, response: {
|
|
406
|
+
status: number;
|
|
407
|
+
headers?: Headers;
|
|
408
|
+
}, body: unknown, request: {
|
|
409
|
+
method: string;
|
|
410
|
+
url: string;
|
|
411
|
+
});
|
|
412
|
+
}
|
|
413
|
+
declare class NotFoundError extends APIStatusError {
|
|
414
|
+
readonly status: 404;
|
|
415
|
+
constructor(message: string, response: {
|
|
416
|
+
status: number;
|
|
417
|
+
headers?: Headers;
|
|
418
|
+
}, body: unknown, request: {
|
|
419
|
+
method: string;
|
|
420
|
+
url: string;
|
|
421
|
+
});
|
|
422
|
+
}
|
|
423
|
+
declare class ConflictError extends APIStatusError {
|
|
424
|
+
readonly status: 409;
|
|
425
|
+
constructor(message: string, response: {
|
|
426
|
+
status: number;
|
|
427
|
+
headers?: Headers;
|
|
428
|
+
}, body: unknown, request: {
|
|
429
|
+
method: string;
|
|
430
|
+
url: string;
|
|
431
|
+
});
|
|
432
|
+
}
|
|
433
|
+
declare class UnprocessableEntityError extends APIStatusError {
|
|
434
|
+
readonly status: 422;
|
|
435
|
+
constructor(message: string, response: {
|
|
436
|
+
status: number;
|
|
437
|
+
headers?: Headers;
|
|
438
|
+
}, body: unknown, request: {
|
|
439
|
+
method: string;
|
|
440
|
+
url: string;
|
|
441
|
+
});
|
|
442
|
+
}
|
|
443
|
+
declare class InternalServerError extends APIStatusError {
|
|
444
|
+
readonly status: 500;
|
|
445
|
+
constructor(message: string, response: {
|
|
446
|
+
status: number;
|
|
447
|
+
headers?: Headers;
|
|
448
|
+
}, body: unknown, request: {
|
|
449
|
+
method: string;
|
|
450
|
+
url: string;
|
|
451
|
+
});
|
|
452
|
+
}
|
|
453
|
+
declare class ServiceUnavailableError extends APIStatusError {
|
|
454
|
+
readonly status: 503;
|
|
455
|
+
constructor(message: string, response: {
|
|
456
|
+
status: number;
|
|
457
|
+
headers?: Headers;
|
|
458
|
+
}, body: unknown, request: {
|
|
459
|
+
method: string;
|
|
460
|
+
url: string;
|
|
461
|
+
});
|
|
462
|
+
}
|
|
463
|
+
declare class APIConnectionError extends APIError {
|
|
464
|
+
constructor(request: {
|
|
465
|
+
method: string;
|
|
466
|
+
url: string;
|
|
467
|
+
}, message?: string);
|
|
468
|
+
}
|
|
469
|
+
declare class APITimeoutError extends APIConnectionError {
|
|
470
|
+
constructor(request: {
|
|
471
|
+
method: string;
|
|
472
|
+
url: string;
|
|
473
|
+
});
|
|
474
|
+
}
|
|
475
|
+
declare class APIResponseValidationError extends APIError {
|
|
476
|
+
readonly status: number;
|
|
477
|
+
constructor(response: {
|
|
478
|
+
status: number;
|
|
479
|
+
}, request: {
|
|
480
|
+
method: string;
|
|
481
|
+
url: string;
|
|
482
|
+
});
|
|
483
|
+
}
|
|
484
|
+
declare class AgentError extends ClawOpsError {
|
|
485
|
+
constructor(message: string);
|
|
486
|
+
}
|
|
487
|
+
declare class AgentConnectionError extends AgentError {
|
|
488
|
+
constructor(message?: string);
|
|
489
|
+
}
|
|
490
|
+
|
|
491
|
+
declare class WebhookVerificationError extends ClawOpsError {
|
|
492
|
+
constructor(message?: string);
|
|
493
|
+
}
|
|
494
|
+
declare class Webhooks {
|
|
495
|
+
verify(options: {
|
|
496
|
+
url: string;
|
|
497
|
+
params: Record<string, string>;
|
|
498
|
+
signature: string;
|
|
499
|
+
signingKey: string;
|
|
500
|
+
}): boolean;
|
|
501
|
+
static _computeSignature(url: string, params: Record<string, string>, signingKey: string): string;
|
|
502
|
+
}
|
|
503
|
+
|
|
504
|
+
interface ClawOpsOptions {
|
|
505
|
+
apiKey?: string;
|
|
506
|
+
accountId?: string;
|
|
507
|
+
baseURL?: string;
|
|
508
|
+
timeout?: number;
|
|
509
|
+
maxRetries?: number;
|
|
510
|
+
fetch?: typeof globalThis.fetch;
|
|
511
|
+
defaultHeaders?: Record<string, string>;
|
|
512
|
+
}
|
|
513
|
+
declare class ClawOps extends APIClient {
|
|
514
|
+
private _defaultAccountId;
|
|
515
|
+
constructor(options?: ClawOpsOptions);
|
|
516
|
+
get calls(): Calls;
|
|
517
|
+
get messages(): Messages;
|
|
518
|
+
get numbers(): Numbers;
|
|
519
|
+
get webhookLogs(): WebhookLogs;
|
|
520
|
+
get webhooks(): Webhooks;
|
|
521
|
+
accounts(accountId: string): AccountContext;
|
|
522
|
+
}
|
|
523
|
+
|
|
524
|
+
declare const VERSION = "0.1.0";
|
|
525
|
+
|
|
526
|
+
declare const PaginationMetaSchema: z.ZodObject<{
|
|
527
|
+
total: z.ZodNumber;
|
|
528
|
+
page: z.ZodNumber;
|
|
529
|
+
pageSize: z.ZodNumber;
|
|
530
|
+
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
531
|
+
total: z.ZodNumber;
|
|
532
|
+
page: z.ZodNumber;
|
|
533
|
+
pageSize: z.ZodNumber;
|
|
534
|
+
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
535
|
+
total: z.ZodNumber;
|
|
536
|
+
page: z.ZodNumber;
|
|
537
|
+
pageSize: z.ZodNumber;
|
|
538
|
+
}, z.ZodTypeAny, "passthrough">>;
|
|
539
|
+
type PaginationMeta = z.infer<typeof PaginationMetaSchema>;
|
|
540
|
+
|
|
541
|
+
interface NumberCreateParams {
|
|
542
|
+
webhookUrl?: string;
|
|
543
|
+
}
|
|
544
|
+
interface NumberUpdateParams {
|
|
545
|
+
webhookUrl?: string;
|
|
546
|
+
webhookMethod?: 'POST' | 'GET';
|
|
547
|
+
}
|
|
548
|
+
|
|
549
|
+
export { APIClient, type APIClientOptions, APIConnectionError, APIError, APIResponseValidationError, APIStatusError, APITimeoutError, AccountContext, AgentConnectionError, AgentError, AuthenticationError, BadRequestError, type Call, type CallControlResponse, type CallCreateParams, type CallListParams, type CallUpdateParams, Calls, ClawOps, ClawOpsError, type ClawOpsOptions, ConflictError, InternalServerError, type Message, type MessageCreateParams, type MessageListParams, Messages, NotFoundError, type NumberCreateParams, type NumberListItem, type NumberUpdateParams, type NumberUpdateResponse, Numbers, Page, type PaginationMeta, PermissionDeniedError, type PhoneNumber, ServiceUnavailableError, UnprocessableEntityError, VERSION, type WebhookLog, WebhookLogs, WebhookVerificationError, Webhooks, ClawOps as default };
|