@byte_fluffy/nexra-sdk 0.1.0-alpha.12 → 0.1.0-alpha.14

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
@@ -1,5 +1,5 @@
1
- import { A as AssetsClient, T as TasksClient, R as RunTaskOptions, a as RunResult, b as ApiErrorPayload, c as TaskResult } from './types-CPMdhb6o.js';
2
- export { d as AssetImportRequest, e as AssetInput, f as AssetReference, g as AssetUploadOptions, C as CreateTaskOptions, h as CreateTaskRequest, M as MEDIA_KINDS, i as MediaAsset, j as MediaAssetStatus, k as MediaKind, l as RequestDetails, m as TASK_STATUSES, n as Task, o as TaskCost, p as TaskError, q as TaskEvent, r as TaskEventType, s as TaskListParams, t as TaskPage, u as TaskProgress, v as TaskReceipt, w as TaskStatus, x as TaskTiming, y as TaskUsage, z as TaskWebhookConfig, B as TerminalTaskStatus, V as VerifyWebhookOptions, W as WaitTaskOptions, D as WatchTaskOptions, E as isTerminalTaskStatus, F as verifyWebhook } from './types-CPMdhb6o.js';
1
+ import { A as AssetsClient, T as TasksClient, R as RunTaskOptions, a as RunResult, b as ApiErrorPayload, c as TaskResult } from './types-5jsH7tBX.js';
2
+ export { d as AssetImportRequest, e as AssetInput, f as AssetReference, g as AssetUploadOptions, C as CreateTaskOptions, h as CreateTaskRequest, M as MEDIA_KINDS, i as MediaAsset, j as MediaAssetStatus, k as MediaKind, l as RequestDetails, m as TASK_STATUSES, n as Task, o as TaskCost, p as TaskError, q as TaskEvent, r as TaskEventType, s as TaskListParams, t as TaskPage, u as TaskProgress, v as TaskReceipt, w as TaskStatus, x as TaskTiming, y as TaskUsage, z as TaskWebhookConfig, B as TerminalTaskStatus, V as VerifyWebhookOptions, W as WaitTaskOptions, D as WatchTaskOptions, E as isTerminalTaskStatus, F as verifyWebhook } from './types-5jsH7tBX.js';
3
3
  import { H as HttpTransport, q as ModelSearchParams, r as CursorPage, T as TaskModelSummary, s as TaskModel, t as ModelSchema, u as NexraClientOptions, J as JsonValue } from './media-geometry-Ckr1-Mh3.js';
4
4
  export { b as CreateNexraDisplayQuoteBatchRequest, C as CreateNexraQuoteRequest, F as FetchLike, v as JsonObject, w as JsonPrimitive, M as MediaGeometryField, g as MediaGeometryProjection, x as ModelCapabilitySummary, y as ModelDateVersion, z as ModelEndpointSummary, A as ModelModality, B as ModelResourceList, D as ModelResourceOption, h as NexraBillingCurrency, d as NexraCatalogRevision, c as NexraDisplayQuoteBatch, E as NexraDisplayQuoteBatchEntry, j as NexraModelOperation, e as NexraModelSpec, f as NexraModelSpecFilter, a as NexraQuote, k as NexraSalePrice, N as NexraSalePriceList, l as NexraSettlement, U as UnifiedMediaGeometry, m as applyMediaGeometry, n as decodeMediaGeometry, o as encodeMediaGeometry, p as projectMediaGeometry } from './media-geometry-Ckr1-Mh3.js';
5
5
  import { CatalogClient } from './catalog.js';
package/dist/index.js CHANGED
@@ -16,7 +16,7 @@ import {
16
16
  projectMediaGeometry,
17
17
  queryString,
18
18
  sleep
19
- } from "./chunk-QT5MXX6K.js";
19
+ } from "./chunk-Z7RXRNVE.js";
20
20
  import {
21
21
  ceilDecimal,
22
22
  multiplyDecimal
@@ -58,6 +58,38 @@ var AssetsClient = class {
58
58
  signal
59
59
  });
60
60
  }
61
+ certifyForSeedance(asset, request = {}, signal) {
62
+ const assetId = typeof asset === "string" ? asset : asset.id;
63
+ return this.transport.json(
64
+ `/assets/${encodeURIComponent(assetId)}/certifications/seedance`,
65
+ {
66
+ method: "POST",
67
+ ...jsonBody(request),
68
+ signal
69
+ },
70
+ { retryable: false }
71
+ );
72
+ }
73
+ getSeedanceCertification(asset, signal) {
74
+ const assetId = typeof asset === "string" ? asset : asset.id;
75
+ return this.transport.json(
76
+ `/assets/${encodeURIComponent(assetId)}/certifications/seedance`,
77
+ { signal }
78
+ );
79
+ }
80
+ async waitForSeedanceCertification(asset, options = {}) {
81
+ const pollIntervalMs = positiveInteger(options.pollIntervalMs ?? 2e3, "pollIntervalMs");
82
+ const timeoutMs = positiveInteger(options.timeoutMs ?? 3e5, "timeoutMs");
83
+ const deadline = Date.now() + timeoutMs;
84
+ while (true) {
85
+ const certification = await this.getSeedanceCertification(asset, options.signal);
86
+ if (certification.status !== "processing") return certification;
87
+ if (Date.now() >= deadline) {
88
+ throw new Error("Timed out waiting for Seedance Asset certification");
89
+ }
90
+ await wait(Math.min(pollIntervalMs, Math.max(1, deadline - Date.now())), options.signal);
91
+ }
92
+ }
61
93
  download(asset, signal) {
62
94
  const assetId = typeof asset === "string" ? asset : asset.id;
63
95
  return this.transport.response(`/assets/${encodeURIComponent(assetId)}/content`, {
@@ -70,6 +102,20 @@ var AssetsClient = class {
70
102
  return response.body;
71
103
  }
72
104
  };
105
+ function positiveInteger(value, name) {
106
+ if (!Number.isSafeInteger(value) || value < 1) throw new TypeError(`${name} must be a positive integer`);
107
+ return value;
108
+ }
109
+ async function wait(milliseconds, signal) {
110
+ if (signal?.aborted) throw signal.reason;
111
+ await new Promise((resolve, reject) => {
112
+ const timer = setTimeout(resolve, milliseconds);
113
+ signal?.addEventListener("abort", () => {
114
+ clearTimeout(timer);
115
+ reject(signal.reason);
116
+ }, { once: true });
117
+ });
118
+ }
73
119
  function inferKind(mimeType) {
74
120
  if (mimeType.startsWith("image/")) return "image";
75
121
  if (mimeType.startsWith("video/")) return "video";
@@ -35,6 +35,28 @@ interface AssetImportRequest {
35
35
  kind?: MediaKind;
36
36
  name?: string;
37
37
  }
38
+ type AssetCertificationProvider = "seedance";
39
+ type AssetCertificationStatus = "processing" | "ready" | "failed";
40
+ interface AssetCertification {
41
+ assetId: string;
42
+ provider: AssetCertificationProvider;
43
+ status: AssetCertificationStatus;
44
+ providerAssetId?: string;
45
+ assetUri?: string;
46
+ groupId?: string;
47
+ library: "general" | "liveness";
48
+ error?: string;
49
+ createdAt: string;
50
+ updatedAt: string;
51
+ }
52
+ interface AssetCertificationRequest {
53
+ library?: "general" | "liveness";
54
+ }
55
+ interface AssetCertificationWaitOptions {
56
+ pollIntervalMs?: number;
57
+ timeoutMs?: number;
58
+ signal?: AbortSignal;
59
+ }
38
60
 
39
61
  interface ApiErrorPayload {
40
62
  error: {
@@ -228,6 +250,9 @@ declare class AssetsClient {
228
250
  upload(file: Blob, options?: AssetUploadOptions): Promise<MediaAsset>;
229
251
  import(request: AssetImportRequest, signal?: AbortSignal): Promise<MediaAsset>;
230
252
  get(assetId: string, signal?: AbortSignal): Promise<MediaAsset>;
253
+ certifyForSeedance(asset: MediaAsset | string, request?: AssetCertificationRequest, signal?: AbortSignal): Promise<AssetCertification>;
254
+ getSeedanceCertification(asset: MediaAsset | string, signal?: AbortSignal): Promise<AssetCertification>;
255
+ waitForSeedanceCertification(asset: MediaAsset | string, options?: AssetCertificationWaitOptions): Promise<AssetCertification>;
231
256
  download(asset: MediaAsset | string, signal?: AbortSignal): Promise<Response>;
232
257
  stream(asset: MediaAsset | string, signal?: AbortSignal): Promise<ReadableStream<Uint8Array>>;
233
258
  }
package/dist/types.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export { b as ApiErrorPayload, d as AssetImportRequest, e as AssetInput, f as AssetReference, g as AssetUploadOptions, C as CreateTaskOptions, h as CreateTaskRequest, i as MediaAsset, j as MediaAssetStatus, k as MediaKind, l as RequestDetails, a as RunResult, R as RunTaskOptions, n as Task, o as TaskCost, p as TaskError, q as TaskEvent, r as TaskEventType, s as TaskListParams, t as TaskPage, u as TaskProgress, v as TaskReceipt, c as TaskResult, w as TaskStatus, x as TaskTiming, y as TaskUsage, z as TaskWebhookConfig, B as TerminalTaskStatus, V as VerifyWebhookOptions, W as WaitTaskOptions, D as WatchTaskOptions } from './types-CPMdhb6o.js';
1
+ export { b as ApiErrorPayload, d as AssetImportRequest, e as AssetInput, f as AssetReference, g as AssetUploadOptions, C as CreateTaskOptions, h as CreateTaskRequest, i as MediaAsset, j as MediaAssetStatus, k as MediaKind, l as RequestDetails, a as RunResult, R as RunTaskOptions, n as Task, o as TaskCost, p as TaskError, q as TaskEvent, r as TaskEventType, s as TaskListParams, t as TaskPage, u as TaskProgress, v as TaskReceipt, c as TaskResult, w as TaskStatus, x as TaskTiming, y as TaskUsage, z as TaskWebhookConfig, B as TerminalTaskStatus, V as VerifyWebhookOptions, W as WaitTaskOptions, D as WatchTaskOptions } from './types-5jsH7tBX.js';
2
2
  export { b as CreateNexraDisplayQuoteBatchRequest, C as CreateNexraQuoteRequest, r as CursorPage, F as FetchLike, v as JsonObject, w as JsonPrimitive, J as JsonValue, M as MediaGeometryField, g as MediaGeometryProjection, x as ModelCapabilitySummary, y as ModelDateVersion, z as ModelEndpointSummary, A as ModelModality, B as ModelResourceList, D as ModelResourceOption, t as ModelSchema, q as ModelSearchParams, h as NexraBillingCurrency, d as NexraCatalogRevision, u as NexraClientOptions, c as NexraDisplayQuoteBatch, E as NexraDisplayQuoteBatchEntry, j as NexraModelOperation, e as NexraModelSpec, f as NexraModelSpecFilter, a as NexraQuote, k as NexraSalePrice, N as NexraSalePriceList, l as NexraSettlement, s as TaskModel, T as TaskModelSummary, U as UnifiedMediaGeometry } from './media-geometry-Ckr1-Mh3.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@byte_fluffy/nexra-sdk",
3
- "version": "0.1.0-alpha.12",
3
+ "version": "0.1.0-alpha.14",
4
4
  "type": "module",
5
5
  "types": "./dist/index.d.ts",
6
6
  "sideEffects": false,