@sentroy-co/client-sdk 2.6.1 → 2.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -46,7 +46,7 @@ export declare class Sentroy {
46
46
  */
47
47
  constructor(config: SentroyClientConfig);
48
48
  }
49
- export type { SentroyClientConfig, ApiResponse, Domain, MailboxUser, Template, LocalizedString, MessageAddress, MessageSummary, MessageDetail, AttachmentInfo, Mailbox, InboxListParams, Attachment, SendParams, SendResult, Bucket, CreateBucketParams, UpdateBucketParams, Media, MediaType, MediaThumbnail, MediaImageMeta, MediaListParams, MediaListResult, UploadMediaParams, StorageQuota, StorageUsage, StorageUsageBucket, StorageUsageByType, Contact, ContactStatus, ContactList, CreateContactParams, UpdateContactParams, ContactListParams, ContactListResult, CreateAudienceListParams, Suppression, AddSuppressionParams, SuppressionListParams, Webhook, WebhookEvent, CreateWebhookParams, UpdateWebhookParams, MailLog, MailLogStatus, LogListParams, } from "./types";
49
+ export type { SentroyClientConfig, ApiResponse, Domain, MailboxUser, Template, LocalizedString, MessageAddress, MessageSummary, MessageDetail, AttachmentInfo, Mailbox, InboxListParams, Attachment, SendParams, SendResult, Bucket, CreateBucketParams, UpdateBucketParams, Media, MediaType, MediaThumbnail, MediaImageMeta, MediaListParams, MediaListResult, UploadMediaParams, StorageQuota, StorageUsage, StorageUsageBucket, StorageUsageByType, Contact, ContactStatus, ContactList, CreateContactParams, UpdateContactParams, ContactListParams, ContactListResult, CreateAudienceListParams, Suppression, AddSuppressionParams, SuppressionListParams, Webhook, WebhookEvent, CreateWebhookParams, UpdateWebhookParams, WebhookDelivery, WebhookDeliveryStatus, WebhookDeliveryKind, WebhookDeliveryListParams, WebhookDeliveryListResult, WebhookTestParams, WebhookDispatchResult, MailLog, MailLogStatus, LogListParams, } from "./types";
50
50
  export { SentroyError } from "./http";
51
51
  export { pickThumbnailUrl, pickPresetThumbnailUrl, THUMBNAIL_PRESETS, type ThumbnailPreset, type ThumbnailSourceMedia, } from "./thumbnails";
52
52
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAC7C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAElD,qBAAa,OAAO;IAClB,SAAgB,OAAO,EAAE,OAAO,CAAA;IAChC,SAAgB,SAAS,EAAE,SAAS,CAAA;IACpC,SAAgB,SAAS,EAAE,SAAS,CAAA;IACpC,SAAgB,KAAK,EAAE,KAAK,CAAA;IAC5B,SAAgB,IAAI,EAAE,IAAI,CAAA;IAC1B,SAAgB,QAAQ,EAAE,QAAQ,CAAA;IAClC,SAAgB,YAAY,EAAE,YAAY,CAAA;IAC1C,SAAgB,QAAQ,EAAE,QAAQ,CAAA;IAClC,SAAgB,IAAI,EAAE,IAAI,CAAA;IAC1B,SAAgB,OAAO,EAAE,OAAO,CAAA;IAChC,SAAgB,KAAK,EAAE,aAAa,CAAA;IACpC,SAAgB,OAAO,EAAE,OAAO,CAAA;IAEhC;;;;;;;;;;;;;;;;;;;OAmBG;gBACS,MAAM,EAAE,mBAAmB;CAiCxC;AAGD,YAAY,EACV,mBAAmB,EACnB,WAAW,EACX,MAAM,EACN,WAAW,EACX,QAAQ,EACR,eAAe,EACf,cAAc,EACd,cAAc,EACd,aAAa,EACb,cAAc,EACd,OAAO,EACP,eAAe,EACf,UAAU,EACV,UAAU,EACV,UAAU,EACV,MAAM,EACN,kBAAkB,EAClB,kBAAkB,EAClB,KAAK,EACL,SAAS,EACT,cAAc,EACd,cAAc,EACd,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,OAAO,EACP,aAAa,EACb,WAAW,EACX,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,wBAAwB,EACxB,WAAW,EACX,oBAAoB,EACpB,qBAAqB,EACrB,OAAO,EACP,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,EACnB,OAAO,EACP,aAAa,EACb,aAAa,GACd,MAAM,SAAS,CAAA;AAEhB,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAErC,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,iBAAiB,EACjB,KAAK,eAAe,EACpB,KAAK,oBAAoB,GAC1B,MAAM,cAAc,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAC7C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAElD,qBAAa,OAAO;IAClB,SAAgB,OAAO,EAAE,OAAO,CAAA;IAChC,SAAgB,SAAS,EAAE,SAAS,CAAA;IACpC,SAAgB,SAAS,EAAE,SAAS,CAAA;IACpC,SAAgB,KAAK,EAAE,KAAK,CAAA;IAC5B,SAAgB,IAAI,EAAE,IAAI,CAAA;IAC1B,SAAgB,QAAQ,EAAE,QAAQ,CAAA;IAClC,SAAgB,YAAY,EAAE,YAAY,CAAA;IAC1C,SAAgB,QAAQ,EAAE,QAAQ,CAAA;IAClC,SAAgB,IAAI,EAAE,IAAI,CAAA;IAC1B,SAAgB,OAAO,EAAE,OAAO,CAAA;IAChC,SAAgB,KAAK,EAAE,aAAa,CAAA;IACpC,SAAgB,OAAO,EAAE,OAAO,CAAA;IAEhC;;;;;;;;;;;;;;;;;;;OAmBG;gBACS,MAAM,EAAE,mBAAmB;CAiCxC;AAGD,YAAY,EACV,mBAAmB,EACnB,WAAW,EACX,MAAM,EACN,WAAW,EACX,QAAQ,EACR,eAAe,EACf,cAAc,EACd,cAAc,EACd,aAAa,EACb,cAAc,EACd,OAAO,EACP,eAAe,EACf,UAAU,EACV,UAAU,EACV,UAAU,EACV,MAAM,EACN,kBAAkB,EAClB,kBAAkB,EAClB,KAAK,EACL,SAAS,EACT,cAAc,EACd,cAAc,EACd,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,OAAO,EACP,aAAa,EACb,WAAW,EACX,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,wBAAwB,EACxB,WAAW,EACX,oBAAoB,EACpB,qBAAqB,EACrB,OAAO,EACP,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,yBAAyB,EACzB,yBAAyB,EACzB,iBAAiB,EACjB,qBAAqB,EACrB,OAAO,EACP,aAAa,EACb,aAAa,GACd,MAAM,SAAS,CAAA;AAEhB,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAErC,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,iBAAiB,EACjB,KAAK,eAAe,EACpB,KAAK,oBAAoB,GAC1B,MAAM,cAAc,CAAA"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,iCAAmC;AACnC,iDAA6C;AAC7C,qDAAiD;AACjD,qDAAiD;AACjD,6CAAyC;AACzC,2CAAuC;AACvC,mDAA+C;AAC/C,2DAAuD;AACvD,mDAA+C;AAC/C,2CAAuC;AACvC,iDAA6C;AAC7C,6CAAiD;AACjD,iDAA6C;AAG7C,MAAa,OAAO;IACF,OAAO,CAAS;IAChB,SAAS,CAAW;IACpB,SAAS,CAAW;IACpB,KAAK,CAAO;IACZ,IAAI,CAAM;IACV,QAAQ,CAAU;IAClB,YAAY,CAAc;IAC1B,QAAQ,CAAU;IAClB,IAAI,CAAM;IACV,OAAO,CAAS;IAChB,KAAK,CAAe;IACpB,OAAO,CAAS;IAEhC;;;;;;;;;;;;;;;;;;;OAmBG;IACH,YAAY,MAA2B;QACrC,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;QAC/C,MAAM,IAAI,GAAG,kBAAkB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;QAEnD,mEAAmE;QACnE,kEAAkE;QAClE,mBAAmB;QACnB,MAAM,QAAQ,GAAG,IAAI,iBAAU,CAC7B,GAAG,IAAI,uBAAuB,IAAI,EAAE,EACpC,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,OAAO,CACf,CAAA;QAED,8DAA8D;QAC9D,MAAM,WAAW,GAAG,IAAI,iBAAU,CAChC,GAAG,IAAI,0BAA0B,IAAI,EAAE,EACvC,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,OAAO,CACf,CAAA;QAED,IAAI,CAAC,OAAO,GAAG,IAAI,iBAAO,CAAC,QAAQ,CAAC,CAAA;QACpC,IAAI,CAAC,SAAS,GAAG,IAAI,qBAAS,CAAC,QAAQ,CAAC,CAAA;QACxC,IAAI,CAAC,SAAS,GAAG,IAAI,qBAAS,CAAC,QAAQ,CAAC,CAAA;QACxC,IAAI,CAAC,KAAK,GAAG,IAAI,aAAK,CAAC,QAAQ,CAAC,CAAA;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,WAAI,CAAC,QAAQ,CAAC,CAAA;QAC9B,IAAI,CAAC,QAAQ,GAAG,IAAI,mBAAQ,CAAC,QAAQ,CAAC,CAAA;QACtC,IAAI,CAAC,YAAY,GAAG,IAAI,2BAAY,CAAC,QAAQ,CAAC,CAAA;QAC9C,IAAI,CAAC,QAAQ,GAAG,IAAI,mBAAQ,CAAC,QAAQ,CAAC,CAAA;QACtC,IAAI,CAAC,IAAI,GAAG,IAAI,WAAI,CAAC,QAAQ,CAAC,CAAA;QAC9B,IAAI,CAAC,OAAO,GAAG,IAAI,iBAAO,CAAC,WAAW,CAAC,CAAA;QACvC,IAAI,CAAC,KAAK,GAAG,IAAI,qBAAa,CAAC,WAAW,CAAC,CAAA;QAC3C,IAAI,CAAC,OAAO,GAAG,IAAI,iBAAO,CAAC,WAAW,CAAC,CAAA;IACzC,CAAC;CACF;AAnED,0BAmEC;AAqDD,+BAAqC;AAA5B,oGAAA,YAAY,OAAA;AAErB,2CAMqB;AALnB,8GAAA,gBAAgB,OAAA;AAChB,oHAAA,sBAAsB,OAAA;AACtB,+GAAA,iBAAiB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,iCAAmC;AACnC,iDAA6C;AAC7C,qDAAiD;AACjD,qDAAiD;AACjD,6CAAyC;AACzC,2CAAuC;AACvC,mDAA+C;AAC/C,2DAAuD;AACvD,mDAA+C;AAC/C,2CAAuC;AACvC,iDAA6C;AAC7C,6CAAiD;AACjD,iDAA6C;AAG7C,MAAa,OAAO;IACF,OAAO,CAAS;IAChB,SAAS,CAAW;IACpB,SAAS,CAAW;IACpB,KAAK,CAAO;IACZ,IAAI,CAAM;IACV,QAAQ,CAAU;IAClB,YAAY,CAAc;IAC1B,QAAQ,CAAU;IAClB,IAAI,CAAM;IACV,OAAO,CAAS;IAChB,KAAK,CAAe;IACpB,OAAO,CAAS;IAEhC;;;;;;;;;;;;;;;;;;;OAmBG;IACH,YAAY,MAA2B;QACrC,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;QAC/C,MAAM,IAAI,GAAG,kBAAkB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;QAEnD,mEAAmE;QACnE,kEAAkE;QAClE,mBAAmB;QACnB,MAAM,QAAQ,GAAG,IAAI,iBAAU,CAC7B,GAAG,IAAI,uBAAuB,IAAI,EAAE,EACpC,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,OAAO,CACf,CAAA;QAED,8DAA8D;QAC9D,MAAM,WAAW,GAAG,IAAI,iBAAU,CAChC,GAAG,IAAI,0BAA0B,IAAI,EAAE,EACvC,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,OAAO,CACf,CAAA;QAED,IAAI,CAAC,OAAO,GAAG,IAAI,iBAAO,CAAC,QAAQ,CAAC,CAAA;QACpC,IAAI,CAAC,SAAS,GAAG,IAAI,qBAAS,CAAC,QAAQ,CAAC,CAAA;QACxC,IAAI,CAAC,SAAS,GAAG,IAAI,qBAAS,CAAC,QAAQ,CAAC,CAAA;QACxC,IAAI,CAAC,KAAK,GAAG,IAAI,aAAK,CAAC,QAAQ,CAAC,CAAA;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,WAAI,CAAC,QAAQ,CAAC,CAAA;QAC9B,IAAI,CAAC,QAAQ,GAAG,IAAI,mBAAQ,CAAC,QAAQ,CAAC,CAAA;QACtC,IAAI,CAAC,YAAY,GAAG,IAAI,2BAAY,CAAC,QAAQ,CAAC,CAAA;QAC9C,IAAI,CAAC,QAAQ,GAAG,IAAI,mBAAQ,CAAC,QAAQ,CAAC,CAAA;QACtC,IAAI,CAAC,IAAI,GAAG,IAAI,WAAI,CAAC,QAAQ,CAAC,CAAA;QAC9B,IAAI,CAAC,OAAO,GAAG,IAAI,iBAAO,CAAC,WAAW,CAAC,CAAA;QACvC,IAAI,CAAC,KAAK,GAAG,IAAI,qBAAa,CAAC,WAAW,CAAC,CAAA;QAC3C,IAAI,CAAC,OAAO,GAAG,IAAI,iBAAO,CAAC,WAAW,CAAC,CAAA;IACzC,CAAC;CACF;AAnED,0BAmEC;AA4DD,+BAAqC;AAA5B,oGAAA,YAAY,OAAA;AAErB,2CAMqB;AALnB,8GAAA,gBAAgB,OAAA;AAChB,oHAAA,sBAAsB,OAAA;AACtB,+GAAA,iBAAiB,OAAA"}
@@ -12,6 +12,20 @@ export declare class MediaResource {
12
12
  * is a `Blob` or `File`. Returns the full serialized media record
13
13
  * (with `url`, `downloadUrl`, image thumbnails when applicable).
14
14
  *
15
+ * For video uploads, two opt-in flags trigger server-side
16
+ * processing:
17
+ * - `compressVideo`: light single-pass H.264 re-encode at
18
+ * source resolution. Trims most uploads by 30–60% with no
19
+ * visible quality loss. Synchronous (the upload response
20
+ * waits for the encode).
21
+ * - `transcodeVideo`: implies `compressVideo`, plus a
22
+ * 144p/480p/720p/1080p variant ladder. Asynchronous — the
23
+ * response comes back immediately with
24
+ * `media.processing.status === "queued"` and the ladder
25
+ * fills in via `media.videoMeta.variants` over the next
26
+ * few minutes. Poll `media.get(...)` to watch the count
27
+ * climb; ladder rungs are reachable at `/f/<id>/<height>`.
28
+ *
15
29
  * @example Browser
16
30
  * ```ts
17
31
  * const file = input.files[0]
@@ -19,6 +33,20 @@ export declare class MediaResource {
19
33
  * console.log(media.url)
20
34
  * ```
21
35
  *
36
+ * @example Video with multi-quality ladder
37
+ * ```ts
38
+ * const media = await sentroy.media.upload("clips", {
39
+ * body: videoFile,
40
+ * compressVideo: true,
41
+ * transcodeVideo: true,
42
+ * })
43
+ * // media.processing.status === "queued"
44
+ * // poll later:
45
+ * const updated = await sentroy.media.get("clips", media.mediaId)
46
+ * console.log(updated.videoMeta?.variants.map((v) => v.height))
47
+ * // → [144, 480, 720, 1080] (filled in over time)
48
+ * ```
49
+ *
22
50
  * @example Node 18+
23
51
  * ```ts
24
52
  * import { openAsBlob } from "node:fs"
@@ -1 +1 @@
1
- {"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../src/resources/media.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACzC,OAAO,KAAK,EACV,KAAK,EACL,eAAe,EACf,eAAe,EACf,iBAAiB,EAClB,MAAM,UAAU,CAAA;AAEjB,qBAAa,aAAa;IACZ,OAAO,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAEpC,0CAA0C;IACpC,IAAI,CACR,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,eAAe,GACvB,OAAO,CAAC,eAAe,CAAC;IAO3B,iCAAiC;IAC3B,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAM9D;;;;;;;;;;;;;;;;;;;;;OAqBG;IACG,MAAM,CACV,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,iBAAiB,EACzB,IAAI,CAAC,EAAE;QACL;uEAC+D;QAC/D,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;QACpD;sCAC8B;QAC9B,MAAM,CAAC,EAAE,WAAW,CAAA;KACrB,GACA,OAAO,CAAC,KAAK,CAAC;IAsBjB;;;;OAIG;IACG,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMhE;;;;;;;;OAQG;IACG,QAAQ,CACZ,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,GAAG,UAAU,CAAA;KAAE,GACvC,OAAO,CAAC,IAAI,CAAC;CAejB"}
1
+ {"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../src/resources/media.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACzC,OAAO,KAAK,EACV,KAAK,EACL,eAAe,EACf,eAAe,EACf,iBAAiB,EAClB,MAAM,UAAU,CAAA;AAEjB,qBAAa,aAAa;IACZ,OAAO,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAEpC,0CAA0C;IACpC,IAAI,CACR,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,eAAe,GACvB,OAAO,CAAC,eAAe,CAAC;IAO3B,iCAAiC;IAC3B,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAM9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiDG;IACG,MAAM,CACV,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,iBAAiB,EACzB,IAAI,CAAC,EAAE;QACL;uEAC+D;QAC/D,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;QACpD;sCAC8B;QAC9B,MAAM,CAAC,EAAE,WAAW,CAAA;KACrB,GACA,OAAO,CAAC,KAAK,CAAC;IA2BjB;;;;OAIG;IACG,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMhE;;;;;;;;OAQG;IACG,QAAQ,CACZ,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,GAAG,UAAU,CAAA;KAAE,GACvC,OAAO,CAAC,IAAI,CAAC;CAejB"}
@@ -19,6 +19,20 @@ class MediaResource {
19
19
  * is a `Blob` or `File`. Returns the full serialized media record
20
20
  * (with `url`, `downloadUrl`, image thumbnails when applicable).
21
21
  *
22
+ * For video uploads, two opt-in flags trigger server-side
23
+ * processing:
24
+ * - `compressVideo`: light single-pass H.264 re-encode at
25
+ * source resolution. Trims most uploads by 30–60% with no
26
+ * visible quality loss. Synchronous (the upload response
27
+ * waits for the encode).
28
+ * - `transcodeVideo`: implies `compressVideo`, plus a
29
+ * 144p/480p/720p/1080p variant ladder. Asynchronous — the
30
+ * response comes back immediately with
31
+ * `media.processing.status === "queued"` and the ladder
32
+ * fills in via `media.videoMeta.variants` over the next
33
+ * few minutes. Poll `media.get(...)` to watch the count
34
+ * climb; ladder rungs are reachable at `/f/<id>/<height>`.
35
+ *
22
36
  * @example Browser
23
37
  * ```ts
24
38
  * const file = input.files[0]
@@ -26,6 +40,20 @@ class MediaResource {
26
40
  * console.log(media.url)
27
41
  * ```
28
42
  *
43
+ * @example Video with multi-quality ladder
44
+ * ```ts
45
+ * const media = await sentroy.media.upload("clips", {
46
+ * body: videoFile,
47
+ * compressVideo: true,
48
+ * transcodeVideo: true,
49
+ * })
50
+ * // media.processing.status === "queued"
51
+ * // poll later:
52
+ * const updated = await sentroy.media.get("clips", media.mediaId)
53
+ * console.log(updated.videoMeta?.variants.map((v) => v.height))
54
+ * // → [144, 480, 720, 1080] (filled in over time)
55
+ * ```
56
+ *
29
57
  * @example Node 18+
30
58
  * ```ts
31
59
  * import { openAsBlob } from "node:fs"
@@ -53,6 +81,13 @@ class MediaResource {
53
81
  form.append("caption", params.caption);
54
82
  if (params.tags?.length)
55
83
  form.append("tags", params.tags.join(","));
84
+ // Video processing opt-ins. Backend ignores these for non-video
85
+ // uploads, so passing on every upload is safe; we still gate on
86
+ // truthiness to keep the form payload clean.
87
+ if (params.compressVideo)
88
+ form.append("compressVideo", "true");
89
+ if (params.transcodeVideo)
90
+ form.append("transcodeVideo", "true");
56
91
  const path = `/buckets/${encodeURIComponent(bucketSlug)}/media`;
57
92
  if (opts?.onProgress || opts?.signal) {
58
93
  return this.http.postFormWithProgress(path, form, opts);
@@ -1 +1 @@
1
- {"version":3,"file":"media.js","sourceRoot":"","sources":["../../src/resources/media.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"media.js","sourceRoot":"","sources":["../../src/resources/media.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,24 @@
1
1
  import type { HttpClient } from "../http";
2
- import type { CreateWebhookParams, UpdateWebhookParams, Webhook } from "../types";
2
+ import type { CreateWebhookParams, UpdateWebhookParams, Webhook, WebhookDelivery, WebhookDeliveryListParams, WebhookDeliveryListResult, WebhookDispatchResult, WebhookTestParams } from "../types";
3
+ declare class WebhookDeliveries {
4
+ private http;
5
+ private webhookId;
6
+ constructor(http: HttpClient, webhookId: string);
7
+ /**
8
+ * List recorded test/replay dispatches for a webhook. Production
9
+ * deliveries (driven by the mail server) live elsewhere — this
10
+ * returns only what was fired from the Sentroy console or this SDK's
11
+ * `test` / `replay` calls.
12
+ */
13
+ list(params?: WebhookDeliveryListParams): Promise<WebhookDeliveryListResult>;
14
+ /** Get a single delivery row, including the full payload + response body. */
15
+ get(deliveryId: string): Promise<WebhookDelivery>;
16
+ /**
17
+ * Re-fire the recorded payload at the webhook's *current* URL. The
18
+ * new row is linked to this one via `replayOf`.
19
+ */
20
+ replay(deliveryId: string): Promise<WebhookDispatchResult>;
21
+ }
3
22
  export declare class Webhooks {
4
23
  private http;
5
24
  constructor(http: HttpClient);
@@ -17,5 +36,14 @@ export declare class Webhooks {
17
36
  update(id: string, params: UpdateWebhookParams): Promise<Webhook>;
18
37
  /** Delete a webhook. In-flight deliveries are not retried. */
19
38
  delete(id: string): Promise<void>;
39
+ /**
40
+ * Manually fire a custom event payload at a webhook's current URL.
41
+ * Returns the dispatch result (status, duration, deliveryId) and
42
+ * records a row in the delivery log.
43
+ */
44
+ test(id: string, params: WebhookTestParams): Promise<WebhookDispatchResult>;
45
+ /** Delivery-log scope for a single webhook id. */
46
+ deliveries(webhookId: string): WebhookDeliveries;
20
47
  }
48
+ export {};
21
49
  //# sourceMappingURL=webhooks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"webhooks.d.ts","sourceRoot":"","sources":["../../src/resources/webhooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACzC,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACnB,OAAO,EACR,MAAM,UAAU,CAAA;AAEjB,qBAAa,QAAQ;IACP,OAAO,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAEpC,sEAAsE;IAChE,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAOjD,kCAAkC;IAC5B,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIvC;;;;OAIG;IACG,MAAM,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;IAI3D,+CAA+C;IACzC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;IAOvE,8DAA8D;IACxD,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAKxC"}
1
+ {"version":3,"file":"webhooks.d.ts","sourceRoot":"","sources":["../../src/resources/webhooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACzC,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACnB,OAAO,EACP,eAAe,EACf,yBAAyB,EACzB,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,UAAU,CAAA;AAEjB,cAAM,iBAAiB;IAEnB,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,SAAS;gBADT,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE,MAAM;IAG3B;;;;;OAKG;IACG,IAAI,CACR,MAAM,CAAC,EAAE,yBAAyB,GACjC,OAAO,CAAC,yBAAyB,CAAC;IAWrC,6EAA6E;IACvE,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAMvD;;;OAGG;IACG,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;CAKjE;AAED,qBAAa,QAAQ;IACP,OAAO,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAEpC,sEAAsE;IAChE,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAOjD,kCAAkC;IAC5B,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIvC;;;;OAIG;IACG,MAAM,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;IAI3D,+CAA+C;IACzC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;IAOvE,8DAA8D;IACxD,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMvC;;;;OAIG;IACG,IAAI,CACR,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,qBAAqB,CAAC;IAOjC,kDAAkD;IAClD,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,iBAAiB;CAGjD"}
@@ -1,6 +1,41 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Webhooks = void 0;
4
+ class WebhookDeliveries {
5
+ http;
6
+ webhookId;
7
+ constructor(http, webhookId) {
8
+ this.http = http;
9
+ this.webhookId = webhookId;
10
+ }
11
+ /**
12
+ * List recorded test/replay dispatches for a webhook. Production
13
+ * deliveries (driven by the mail server) live elsewhere — this
14
+ * returns only what was fired from the Sentroy console or this SDK's
15
+ * `test` / `replay` calls.
16
+ */
17
+ async list(params) {
18
+ const query = {};
19
+ if (params?.page !== undefined)
20
+ query.page = params.page;
21
+ if (params?.limit !== undefined)
22
+ query.limit = params.limit;
23
+ if (params?.status)
24
+ query.status = params.status;
25
+ return this.http.get(`/webhooks/${encodeURIComponent(this.webhookId)}/deliveries`, query);
26
+ }
27
+ /** Get a single delivery row, including the full payload + response body. */
28
+ async get(deliveryId) {
29
+ return this.http.get(`/webhooks/${encodeURIComponent(this.webhookId)}/deliveries/${encodeURIComponent(deliveryId)}`);
30
+ }
31
+ /**
32
+ * Re-fire the recorded payload at the webhook's *current* URL. The
33
+ * new row is linked to this one via `replayOf`.
34
+ */
35
+ async replay(deliveryId) {
36
+ return this.http.post(`/webhooks/${encodeURIComponent(this.webhookId)}/deliveries/${encodeURIComponent(deliveryId)}/replay`);
37
+ }
38
+ }
4
39
  class Webhooks {
5
40
  http;
6
41
  constructor(http) {
@@ -30,6 +65,18 @@ class Webhooks {
30
65
  async delete(id) {
31
66
  await this.http.del(`/webhooks/${encodeURIComponent(id)}`);
32
67
  }
68
+ /**
69
+ * Manually fire a custom event payload at a webhook's current URL.
70
+ * Returns the dispatch result (status, duration, deliveryId) and
71
+ * records a row in the delivery log.
72
+ */
73
+ async test(id, params) {
74
+ return this.http.post(`/webhooks/${encodeURIComponent(id)}/test`, params);
75
+ }
76
+ /** Delivery-log scope for a single webhook id. */
77
+ deliveries(webhookId) {
78
+ return new WebhookDeliveries(this.http, webhookId);
79
+ }
33
80
  }
34
81
  exports.Webhooks = Webhooks;
35
82
  //# sourceMappingURL=webhooks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"webhooks.js","sourceRoot":"","sources":["../../src/resources/webhooks.ts"],"names":[],"mappings":";;;AAOA,MAAa,QAAQ;IACC;IAApB,YAAoB,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;IAAG,CAAC;IAExC,sEAAsE;IACtE,KAAK,CAAC,IAAI,CAAC,QAAiB;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,WAAW,EACX,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CACpC,CAAA;IACH,CAAC;IAED,kCAAkC;IAClC,KAAK,CAAC,GAAG,CAAC,EAAU;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAU,aAAa,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;IACtE,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,MAAM,CAAC,MAA2B;QACtC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAU,WAAW,EAAE,MAAM,CAAC,CAAA;IACrD,CAAC;IAED,+CAA+C;IAC/C,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,MAA2B;QAClD,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CACpB,aAAa,kBAAkB,CAAC,EAAE,CAAC,EAAE,EACrC,MAAM,CACP,CAAA;IACH,CAAC;IAED,8DAA8D;IAC9D,KAAK,CAAC,MAAM,CAAC,EAAU;QACrB,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CACjB,aAAa,kBAAkB,CAAC,EAAE,CAAC,EAAE,CACtC,CAAA;IACH,CAAC;CACF;AAvCD,4BAuCC"}
1
+ {"version":3,"file":"webhooks.js","sourceRoot":"","sources":["../../src/resources/webhooks.ts"],"names":[],"mappings":";;;AAYA,MAAM,iBAAiB;IAEX;IACA;IAFV,YACU,IAAgB,EAChB,SAAiB;QADjB,SAAI,GAAJ,IAAI,CAAY;QAChB,cAAS,GAAT,SAAS,CAAQ;IACxB,CAAC;IAEJ;;;;;OAKG;IACH,KAAK,CAAC,IAAI,CACR,MAAkC;QAElC,MAAM,KAAK,GAA4B,EAAE,CAAA;QACzC,IAAI,MAAM,EAAE,IAAI,KAAK,SAAS;YAAE,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;QACxD,IAAI,MAAM,EAAE,KAAK,KAAK,SAAS;YAAE,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAA;QAC3D,IAAI,MAAM,EAAE,MAAM;YAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;QAChD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,aAAa,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAC5D,KAAK,CACN,CAAA;IACH,CAAC;IAED,6EAA6E;IAC7E,KAAK,CAAC,GAAG,CAAC,UAAkB;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,aAAa,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,kBAAkB,CAAC,UAAU,CAAC,EAAE,CAC/F,CAAA;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAM,CAAC,UAAkB;QAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,aAAa,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,kBAAkB,CAAC,UAAU,CAAC,SAAS,CACtG,CAAA;IACH,CAAC;CACF;AAED,MAAa,QAAQ;IACC;IAApB,YAAoB,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;IAAG,CAAC;IAExC,sEAAsE;IACtE,KAAK,CAAC,IAAI,CAAC,QAAiB;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,WAAW,EACX,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CACpC,CAAA;IACH,CAAC;IAED,kCAAkC;IAClC,KAAK,CAAC,GAAG,CAAC,EAAU;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAU,aAAa,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;IACtE,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,MAAM,CAAC,MAA2B;QACtC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAU,WAAW,EAAE,MAAM,CAAC,CAAA;IACrD,CAAC;IAED,+CAA+C;IAC/C,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,MAA2B;QAClD,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CACpB,aAAa,kBAAkB,CAAC,EAAE,CAAC,EAAE,EACrC,MAAM,CACP,CAAA;IACH,CAAC;IAED,8DAA8D;IAC9D,KAAK,CAAC,MAAM,CAAC,EAAU;QACrB,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CACjB,aAAa,kBAAkB,CAAC,EAAE,CAAC,EAAE,CACtC,CAAA;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,IAAI,CACR,EAAU,EACV,MAAyB;QAEzB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,aAAa,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAC1C,MAAM,CACP,CAAA;IACH,CAAC;IAED,kDAAkD;IAClD,UAAU,CAAC,SAAiB;QAC1B,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;IACpD,CAAC;CACF;AA3DD,4BA2DC"}
package/dist/types.d.ts CHANGED
@@ -183,6 +183,43 @@ export interface MediaImageMeta {
183
183
  orientation: "landscape" | "portrait" | "square";
184
184
  thumbnails: MediaThumbnail[];
185
185
  }
186
+ /**
187
+ * Single transcoded video rung. Generated by the storage CDN when
188
+ * `transcodeVideo: true` is passed to `media.upload`. Reachable via
189
+ * `/f/<mediaId>/<height>` (e.g. `/f/abc/720` for the 720p variant).
190
+ */
191
+ export interface MediaVideoVariant {
192
+ height: number;
193
+ width: number;
194
+ fileName: string;
195
+ size: number;
196
+ bitrate?: number;
197
+ }
198
+ export interface MediaVideoMeta {
199
+ width: number;
200
+ height: number;
201
+ /** Length in seconds. May be 0 if probe failed. */
202
+ duration: number;
203
+ variants: MediaVideoVariant[];
204
+ }
205
+ /**
206
+ * Async background-processing tracker. Populated only on uploads
207
+ * that opted into the multi-quality video ladder. Polling pattern:
208
+ *
209
+ * while ((m = await sentroy.media.get(bucket, id)).processing &&
210
+ * m.processing.status !== "completed" &&
211
+ * m.processing.status !== "failed") {
212
+ * await new Promise((r) => setTimeout(r, 4000))
213
+ * }
214
+ */
215
+ export interface MediaProcessing {
216
+ status: "queued" | "processing" | "completed" | "failed";
217
+ variantsTotal?: number;
218
+ variantsCompleted?: number;
219
+ error?: string;
220
+ startedAt?: string;
221
+ completedAt?: string;
222
+ }
186
223
  export interface Media {
187
224
  id: string;
188
225
  bucketId: string;
@@ -199,6 +236,15 @@ export interface Media {
199
236
  caption?: string;
200
237
  isPublic: boolean;
201
238
  imageMeta?: MediaImageMeta;
239
+ /** Populated for video uploads with `transcodeVideo: true`.
240
+ * Variant rungs stream in over time as the background pipeline
241
+ * finishes each ladder step. */
242
+ videoMeta?: MediaVideoMeta;
243
+ /** Async background processing tracker. Present on any upload
244
+ * that triggered async work (currently only video transcoding).
245
+ * Treat anything other than `"completed"` / `undefined` as
246
+ * "still in flight". */
247
+ processing?: MediaProcessing;
202
248
  /** Public bucket'larda direct CDN URL — server response'undan gelir
203
249
  * (her zaman değil). Yoksa caller proxy/download endpoint'i kullanmalı. */
204
250
  url?: string;
@@ -238,6 +284,27 @@ export interface UploadMediaParams {
238
284
  alt?: string;
239
285
  caption?: string;
240
286
  tags?: string[];
287
+ /**
288
+ * Light single-pass H.264 re-encode of the source video at the
289
+ * source resolution. Trims a typical phone/screen-recording
290
+ * upload by 30–60% with no visible quality loss. Roughly doubles
291
+ * the upload-handler latency since the request waits for the
292
+ * encode before returning. Default `false`. Ignored on non-video
293
+ * uploads.
294
+ */
295
+ compressVideo?: boolean;
296
+ /**
297
+ * Multi-quality variant ladder (144p / 480p / 720p / 1080p).
298
+ * Implies `compressVideo`. Variants are generated **asynchronously**
299
+ * after the upload response: the API returns immediately with
300
+ * `media.processing.status === "queued"`, then streams ladder
301
+ * rungs into `media.videoMeta.variants` one by one. Poll the
302
+ * media list (or fetch by id) to watch `variantsCompleted` climb
303
+ * — once `processing.status === "completed"` the ladder is fully
304
+ * available via `/f/<id>/<height>` (e.g. `/f/abc/720`). Default
305
+ * `false`. Ignored on non-video uploads.
306
+ */
307
+ transcodeVideo?: boolean;
241
308
  }
242
309
  /**
243
310
  * Plan-level storage quota for the company. Mail and storage share the
@@ -370,6 +437,52 @@ export interface UpdateWebhookParams {
370
437
  events?: WebhookEvent[] | string[];
371
438
  active?: boolean;
372
439
  }
440
+ export type WebhookDeliveryStatus = "success" | "failed" | "pending";
441
+ export type WebhookDeliveryKind = "test" | "replay";
442
+ export interface WebhookDelivery {
443
+ id: string;
444
+ webhookId: string;
445
+ companyId: string;
446
+ kind: WebhookDeliveryKind;
447
+ event: string;
448
+ payload: Record<string, unknown>;
449
+ /** URL the dispatcher actually POSTed to (frozen at dispatch time). */
450
+ url: string;
451
+ /** HTTP status returned by the receiver — 0 if the request never landed. */
452
+ responseStatus: number;
453
+ /** Truncated response body (max 4 KB). */
454
+ responseBody: string;
455
+ durationMs: number;
456
+ status: WebhookDeliveryStatus;
457
+ error?: string;
458
+ /** Set when this row is a replay of an earlier delivery. */
459
+ replayOf?: string;
460
+ /** User id, email, or "system" for token/internal callers. */
461
+ triggeredBy: string;
462
+ createdAt: string;
463
+ }
464
+ export interface WebhookDeliveryListParams {
465
+ page?: number;
466
+ limit?: number;
467
+ status?: WebhookDeliveryStatus;
468
+ }
469
+ export interface WebhookDeliveryListResult {
470
+ items: WebhookDelivery[];
471
+ total: number;
472
+ page: number;
473
+ limit: number;
474
+ }
475
+ export interface WebhookTestParams {
476
+ event: WebhookEvent | string;
477
+ payload: Record<string, unknown>;
478
+ }
479
+ export interface WebhookDispatchResult {
480
+ deliveryId: string;
481
+ responseStatus: number;
482
+ durationMs: number;
483
+ status: "success" | "failed";
484
+ error?: string;
485
+ }
373
486
  export type MailLogStatus = "queued" | "processing" | "sent" | "bounced" | "failed";
374
487
  export interface MailLog {
375
488
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sentroy-co/client-sdk",
3
- "version": "2.6.1",
3
+ "version": "2.6.3",
4
4
  "description": "TypeScript SDK for the Sentroy platform — REST resources + React components.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
package/src/index.ts CHANGED
@@ -128,6 +128,13 @@ export type {
128
128
  WebhookEvent,
129
129
  CreateWebhookParams,
130
130
  UpdateWebhookParams,
131
+ WebhookDelivery,
132
+ WebhookDeliveryStatus,
133
+ WebhookDeliveryKind,
134
+ WebhookDeliveryListParams,
135
+ WebhookDeliveryListResult,
136
+ WebhookTestParams,
137
+ WebhookDispatchResult,
131
138
  MailLog,
132
139
  MailLogStatus,
133
140
  LogListParams,
@@ -32,6 +32,20 @@ export class MediaResource {
32
32
  * is a `Blob` or `File`. Returns the full serialized media record
33
33
  * (with `url`, `downloadUrl`, image thumbnails when applicable).
34
34
  *
35
+ * For video uploads, two opt-in flags trigger server-side
36
+ * processing:
37
+ * - `compressVideo`: light single-pass H.264 re-encode at
38
+ * source resolution. Trims most uploads by 30–60% with no
39
+ * visible quality loss. Synchronous (the upload response
40
+ * waits for the encode).
41
+ * - `transcodeVideo`: implies `compressVideo`, plus a
42
+ * 144p/480p/720p/1080p variant ladder. Asynchronous — the
43
+ * response comes back immediately with
44
+ * `media.processing.status === "queued"` and the ladder
45
+ * fills in via `media.videoMeta.variants` over the next
46
+ * few minutes. Poll `media.get(...)` to watch the count
47
+ * climb; ladder rungs are reachable at `/f/<id>/<height>`.
48
+ *
35
49
  * @example Browser
36
50
  * ```ts
37
51
  * const file = input.files[0]
@@ -39,6 +53,20 @@ export class MediaResource {
39
53
  * console.log(media.url)
40
54
  * ```
41
55
  *
56
+ * @example Video with multi-quality ladder
57
+ * ```ts
58
+ * const media = await sentroy.media.upload("clips", {
59
+ * body: videoFile,
60
+ * compressVideo: true,
61
+ * transcodeVideo: true,
62
+ * })
63
+ * // media.processing.status === "queued"
64
+ * // poll later:
65
+ * const updated = await sentroy.media.get("clips", media.mediaId)
66
+ * console.log(updated.videoMeta?.variants.map((v) => v.height))
67
+ * // → [144, 480, 720, 1080] (filled in over time)
68
+ * ```
69
+ *
42
70
  * @example Node 18+
43
71
  * ```ts
44
72
  * import { openAsBlob } from "node:fs"
@@ -74,6 +102,11 @@ export class MediaResource {
74
102
  if (params.alt) form.append("alt", params.alt)
75
103
  if (params.caption) form.append("caption", params.caption)
76
104
  if (params.tags?.length) form.append("tags", params.tags.join(","))
105
+ // Video processing opt-ins. Backend ignores these for non-video
106
+ // uploads, so passing on every upload is safe; we still gate on
107
+ // truthiness to keep the form payload clean.
108
+ if (params.compressVideo) form.append("compressVideo", "true")
109
+ if (params.transcodeVideo) form.append("transcodeVideo", "true")
77
110
 
78
111
  const path = `/buckets/${encodeURIComponent(bucketSlug)}/media`
79
112
  if (opts?.onProgress || opts?.signal) {
@@ -3,8 +3,56 @@ import type {
3
3
  CreateWebhookParams,
4
4
  UpdateWebhookParams,
5
5
  Webhook,
6
+ WebhookDelivery,
7
+ WebhookDeliveryListParams,
8
+ WebhookDeliveryListResult,
9
+ WebhookDispatchResult,
10
+ WebhookTestParams,
6
11
  } from "../types"
7
12
 
13
+ class WebhookDeliveries {
14
+ constructor(
15
+ private http: HttpClient,
16
+ private webhookId: string,
17
+ ) {}
18
+
19
+ /**
20
+ * List recorded test/replay dispatches for a webhook. Production
21
+ * deliveries (driven by the mail server) live elsewhere — this
22
+ * returns only what was fired from the Sentroy console or this SDK's
23
+ * `test` / `replay` calls.
24
+ */
25
+ async list(
26
+ params?: WebhookDeliveryListParams,
27
+ ): Promise<WebhookDeliveryListResult> {
28
+ const query: Record<string, unknown> = {}
29
+ if (params?.page !== undefined) query.page = params.page
30
+ if (params?.limit !== undefined) query.limit = params.limit
31
+ if (params?.status) query.status = params.status
32
+ return this.http.get<WebhookDeliveryListResult>(
33
+ `/webhooks/${encodeURIComponent(this.webhookId)}/deliveries`,
34
+ query,
35
+ )
36
+ }
37
+
38
+ /** Get a single delivery row, including the full payload + response body. */
39
+ async get(deliveryId: string): Promise<WebhookDelivery> {
40
+ return this.http.get<WebhookDelivery>(
41
+ `/webhooks/${encodeURIComponent(this.webhookId)}/deliveries/${encodeURIComponent(deliveryId)}`,
42
+ )
43
+ }
44
+
45
+ /**
46
+ * Re-fire the recorded payload at the webhook's *current* URL. The
47
+ * new row is linked to this one via `replayOf`.
48
+ */
49
+ async replay(deliveryId: string): Promise<WebhookDispatchResult> {
50
+ return this.http.post<WebhookDispatchResult>(
51
+ `/webhooks/${encodeURIComponent(this.webhookId)}/deliveries/${encodeURIComponent(deliveryId)}/replay`,
52
+ )
53
+ }
54
+ }
55
+
8
56
  export class Webhooks {
9
57
  constructor(private http: HttpClient) {}
10
58
 
@@ -44,4 +92,24 @@ export class Webhooks {
44
92
  `/webhooks/${encodeURIComponent(id)}`,
45
93
  )
46
94
  }
95
+
96
+ /**
97
+ * Manually fire a custom event payload at a webhook's current URL.
98
+ * Returns the dispatch result (status, duration, deliveryId) and
99
+ * records a row in the delivery log.
100
+ */
101
+ async test(
102
+ id: string,
103
+ params: WebhookTestParams,
104
+ ): Promise<WebhookDispatchResult> {
105
+ return this.http.post<WebhookDispatchResult>(
106
+ `/webhooks/${encodeURIComponent(id)}/test`,
107
+ params,
108
+ )
109
+ }
110
+
111
+ /** Delivery-log scope for a single webhook id. */
112
+ deliveries(webhookId: string): WebhookDeliveries {
113
+ return new WebhookDeliveries(this.http, webhookId)
114
+ }
47
115
  }
package/src/types.ts CHANGED
@@ -222,6 +222,46 @@ export interface MediaImageMeta {
222
222
  thumbnails: MediaThumbnail[]
223
223
  }
224
224
 
225
+ /**
226
+ * Single transcoded video rung. Generated by the storage CDN when
227
+ * `transcodeVideo: true` is passed to `media.upload`. Reachable via
228
+ * `/f/<mediaId>/<height>` (e.g. `/f/abc/720` for the 720p variant).
229
+ */
230
+ export interface MediaVideoVariant {
231
+ height: number
232
+ width: number
233
+ fileName: string
234
+ size: number
235
+ bitrate?: number
236
+ }
237
+
238
+ export interface MediaVideoMeta {
239
+ width: number
240
+ height: number
241
+ /** Length in seconds. May be 0 if probe failed. */
242
+ duration: number
243
+ variants: MediaVideoVariant[]
244
+ }
245
+
246
+ /**
247
+ * Async background-processing tracker. Populated only on uploads
248
+ * that opted into the multi-quality video ladder. Polling pattern:
249
+ *
250
+ * while ((m = await sentroy.media.get(bucket, id)).processing &&
251
+ * m.processing.status !== "completed" &&
252
+ * m.processing.status !== "failed") {
253
+ * await new Promise((r) => setTimeout(r, 4000))
254
+ * }
255
+ */
256
+ export interface MediaProcessing {
257
+ status: "queued" | "processing" | "completed" | "failed"
258
+ variantsTotal?: number
259
+ variantsCompleted?: number
260
+ error?: string
261
+ startedAt?: string
262
+ completedAt?: string
263
+ }
264
+
225
265
  export interface Media {
226
266
  id: string
227
267
  bucketId: string
@@ -238,6 +278,15 @@ export interface Media {
238
278
  caption?: string
239
279
  isPublic: boolean
240
280
  imageMeta?: MediaImageMeta
281
+ /** Populated for video uploads with `transcodeVideo: true`.
282
+ * Variant rungs stream in over time as the background pipeline
283
+ * finishes each ladder step. */
284
+ videoMeta?: MediaVideoMeta
285
+ /** Async background processing tracker. Present on any upload
286
+ * that triggered async work (currently only video transcoding).
287
+ * Treat anything other than `"completed"` / `undefined` as
288
+ * "still in flight". */
289
+ processing?: MediaProcessing
241
290
  /** Public bucket'larda direct CDN URL — server response'undan gelir
242
291
  * (her zaman değil). Yoksa caller proxy/download endpoint'i kullanmalı. */
243
292
  url?: string
@@ -280,6 +329,27 @@ export interface UploadMediaParams {
280
329
  alt?: string
281
330
  caption?: string
282
331
  tags?: string[]
332
+ /**
333
+ * Light single-pass H.264 re-encode of the source video at the
334
+ * source resolution. Trims a typical phone/screen-recording
335
+ * upload by 30–60% with no visible quality loss. Roughly doubles
336
+ * the upload-handler latency since the request waits for the
337
+ * encode before returning. Default `false`. Ignored on non-video
338
+ * uploads.
339
+ */
340
+ compressVideo?: boolean
341
+ /**
342
+ * Multi-quality variant ladder (144p / 480p / 720p / 1080p).
343
+ * Implies `compressVideo`. Variants are generated **asynchronously**
344
+ * after the upload response: the API returns immediately with
345
+ * `media.processing.status === "queued"`, then streams ladder
346
+ * rungs into `media.videoMeta.variants` one by one. Poll the
347
+ * media list (or fetch by id) to watch `variantsCompleted` climb
348
+ * — once `processing.status === "completed"` the ladder is fully
349
+ * available via `/f/<id>/<height>` (e.g. `/f/abc/720`). Default
350
+ * `false`. Ignored on non-video uploads.
351
+ */
352
+ transcodeVideo?: boolean
283
353
  }
284
354
 
285
355
  // ── Storage quota / usage ─────────────────────────────────────────────────
@@ -444,6 +514,61 @@ export interface UpdateWebhookParams {
444
514
  active?: boolean
445
515
  }
446
516
 
517
+ // ── Webhook deliveries ────────────────────────────────────────────────────
518
+
519
+ export type WebhookDeliveryStatus = "success" | "failed" | "pending"
520
+
521
+ export type WebhookDeliveryKind = "test" | "replay"
522
+
523
+ export interface WebhookDelivery {
524
+ id: string
525
+ webhookId: string
526
+ companyId: string
527
+ kind: WebhookDeliveryKind
528
+ event: string
529
+ payload: Record<string, unknown>
530
+ /** URL the dispatcher actually POSTed to (frozen at dispatch time). */
531
+ url: string
532
+ /** HTTP status returned by the receiver — 0 if the request never landed. */
533
+ responseStatus: number
534
+ /** Truncated response body (max 4 KB). */
535
+ responseBody: string
536
+ durationMs: number
537
+ status: WebhookDeliveryStatus
538
+ error?: string
539
+ /** Set when this row is a replay of an earlier delivery. */
540
+ replayOf?: string
541
+ /** User id, email, or "system" for token/internal callers. */
542
+ triggeredBy: string
543
+ createdAt: string
544
+ }
545
+
546
+ export interface WebhookDeliveryListParams {
547
+ page?: number
548
+ limit?: number
549
+ status?: WebhookDeliveryStatus
550
+ }
551
+
552
+ export interface WebhookDeliveryListResult {
553
+ items: WebhookDelivery[]
554
+ total: number
555
+ page: number
556
+ limit: number
557
+ }
558
+
559
+ export interface WebhookTestParams {
560
+ event: WebhookEvent | string
561
+ payload: Record<string, unknown>
562
+ }
563
+
564
+ export interface WebhookDispatchResult {
565
+ deliveryId: string
566
+ responseStatus: number
567
+ durationMs: number
568
+ status: "success" | "failed"
569
+ error?: string
570
+ }
571
+
447
572
  // ── Logs ──────────────────────────────────────────────────────────────────
448
573
 
449
574
  export type MailLogStatus =