vidspotai-shared 1.0.32 → 1.0.34

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.
Files changed (41) hide show
  1. package/lib/globals/index.d.ts +1 -0
  2. package/lib/globals/index.d.ts.map +1 -1
  3. package/lib/globals/index.js +1 -0
  4. package/lib/models/user.model.d.ts +2 -0
  5. package/lib/models/user.model.d.ts.map +1 -1
  6. package/lib/models/video.model.d.ts +9 -0
  7. package/lib/models/video.model.d.ts.map +1 -1
  8. package/lib/services/aiGen/aiGenFactory.service.d.ts.map +1 -1
  9. package/lib/services/aiGen/aiGenFactory.service.js +36 -12
  10. package/lib/services/aiGen/providers/bytedance/bytedance.service.d.ts.map +1 -1
  11. package/lib/services/aiGen/providers/bytedance/bytedance.service.js +22 -2
  12. package/lib/services/aiGen/providers/google/google.service.js +1 -1
  13. package/lib/services/aiGen/providers/kling/kling.service.d.ts +7 -2
  14. package/lib/services/aiGen/providers/kling/kling.service.d.ts.map +1 -1
  15. package/lib/services/aiGen/providers/kling/kling.service.js +126 -10
  16. package/lib/services/aiGen/providers/kling/types.d.ts +13 -0
  17. package/lib/services/aiGen/providers/kling/types.d.ts.map +1 -1
  18. package/lib/services/aiGen/providers/runway/runway.service.d.ts.map +1 -1
  19. package/lib/services/aiGen/providers/runway/runway.service.js +16 -4
  20. package/lib/services/aiGen/providers/types.d.ts +6 -0
  21. package/lib/services/aiGen/providers/types.d.ts.map +1 -1
  22. package/lib/services/credit.service.d.ts +1 -0
  23. package/lib/services/credit.service.d.ts.map +1 -1
  24. package/lib/services/credit.service.js +17 -0
  25. package/lib/services/index.d.ts +1 -0
  26. package/lib/services/index.d.ts.map +1 -1
  27. package/lib/services/index.js +1 -0
  28. package/lib/services/tts/providers/elevenlabs.service.d.ts +1 -0
  29. package/lib/services/tts/providers/elevenlabs.service.d.ts.map +1 -1
  30. package/lib/services/tts/providers/elevenlabs.service.js +4 -2
  31. package/lib/utils/helpers.js +2 -2
  32. package/lib/utils/index.d.ts +1 -0
  33. package/lib/utils/index.d.ts.map +1 -1
  34. package/lib/utils/index.js +1 -0
  35. package/lib/utils/logger.d.ts +2 -1
  36. package/lib/utils/logger.d.ts.map +1 -1
  37. package/lib/utils/logger.js +2 -0
  38. package/package.json +1 -1
  39. package/lib/globals/aiModels.d.ts +0 -63
  40. package/lib/globals/aiModels.d.ts.map +0 -1
  41. package/lib/globals/aiModels.js +0 -529
@@ -2,5 +2,6 @@ export * from "./aiModels";
2
2
  export * from "./config";
3
3
  export * from "./plans";
4
4
  export * from "./schemas";
5
+ export * from "./ttsModels";
5
6
  export * from "./types";
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/globals/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/globals/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC"}
@@ -18,4 +18,5 @@ __exportStar(require("./aiModels"), exports);
18
18
  __exportStar(require("./config"), exports);
19
19
  __exportStar(require("./plans"), exports);
20
20
  __exportStar(require("./schemas"), exports);
21
+ __exportStar(require("./ttsModels"), exports);
21
22
  __exportStar(require("./types"), exports);
@@ -40,5 +40,7 @@ export interface IUserSubscription {
40
40
  trialUsed?: boolean;
41
41
  trialStart?: number | null;
42
42
  trialEnd?: number | null;
43
+ cancelAt?: number | null;
44
+ nextCreditRefreshAt?: number | null;
43
45
  }
44
46
  //# sourceMappingURL=user.model.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"user.model.d.ts","sourceRoot":"","sources":["../../src/models/user.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EACL,SAAS,EACT,kBAAkB,EAElB,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,YAAY,CAAC;IACtC,SAAS,EAAE,UAAU,CAAC;IACtB,SAAS,EAAE,UAAU,CAAC;IACtB,QAAQ,EAAE,YAAY,GAAG,UAAU,GAAG,WAAW,GAAG,MAAM,CAAC;IAC3D,aAAa,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE;QAEf,SAAS,EAAE,MAAM,CAAC;QAClB,aAAa,EAAE,YAAY,GAAG,WAAW,GAAG,QAAQ,CAAC;QACrD,aAAa,EAAE,IAAI,CAAC;KACrB,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,SAAS,CAAC,EAAE,UAAU,CAAC;QACvB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,oBAAoB,CAAC;IAE7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAC/B,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAO1B"}
1
+ {"version":3,"file":"user.model.d.ts","sourceRoot":"","sources":["../../src/models/user.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EACL,SAAS,EACT,kBAAkB,EAElB,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,YAAY,CAAC;IACtC,SAAS,EAAE,UAAU,CAAC;IACtB,SAAS,EAAE,UAAU,CAAC;IACtB,QAAQ,EAAE,YAAY,GAAG,UAAU,GAAG,WAAW,GAAG,MAAM,CAAC;IAC3D,aAAa,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE;QAEf,SAAS,EAAE,MAAM,CAAC;QAClB,aAAa,EAAE,YAAY,GAAG,WAAW,GAAG,QAAQ,CAAC;QACrD,aAAa,EAAE,IAAI,CAAC;KACrB,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,SAAS,CAAC,EAAE,UAAU,CAAC;QACvB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,oBAAoB,CAAC;IAE7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAC/B,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAOrC"}
@@ -10,6 +10,7 @@ export interface IVideoScene {
10
10
  outputVideoUrl?: string;
11
11
  inputVideoUrl?: string;
12
12
  inputImageUrl?: string;
13
+ inputAudioUrl?: string;
13
14
  status: EVideoSceneStatus;
14
15
  creditsUsed?: number;
15
16
  errorMessage?: string;
@@ -39,11 +40,19 @@ export interface IVideoJobModel {
39
40
  };
40
41
  duration?: number;
41
42
  mode?: EVideoMode;
43
+ audio?: boolean;
42
44
  dimensions?: string;
43
45
  resolution?: string;
44
46
  aspectRatio?: string;
45
47
  inputVideoUrl?: string;
46
48
  inputImageUrl?: string;
49
+ inputAudioUrl?: string;
50
+ contentType?: "video" | "avatar-video";
51
+ ttsText?: string;
52
+ ttsProvider?: string;
53
+ ttsVoiceId?: string;
54
+ ttsLanguageCode?: string;
55
+ generatedAudioUrl?: string;
47
56
  createdAt: FieldValue;
48
57
  updatedAt: FieldValue;
49
58
  }
@@ -1 +1 @@
1
- {"version":3,"file":"video.model.d.ts","sourceRoot":"","sources":["../../src/models/video.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAe,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,WAAW,EACZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IAEnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CAOpB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,eAAe,CAAC;IAC1B,MAAM,EAAE,eAAe,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;IACvB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,EAAE;QACT,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,UAAU,CAAC;KACxB,CAAA;IAGD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IAGvB,SAAS,EAAE,UAAU,CAAC;IACtB,SAAS,EAAE,UAAU,CAAC;CACvB"}
1
+ {"version":3,"file":"video.model.d.ts","sourceRoot":"","sources":["../../src/models/video.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,WAAW,EACZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IAEnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CAOpB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,eAAe,CAAC;IAC1B,MAAM,EAAE,eAAe,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;IACvB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,EAAE;QACT,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,UAAU,CAAC;KACxB,CAAA;IAGD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IAGvB,WAAW,CAAC,EAAE,OAAO,GAAG,cAAc,CAAC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAG3B,SAAS,EAAE,UAAU,CAAC;IACtB,SAAS,EAAE,UAAU,CAAC;CACvB"}
@@ -1 +1 @@
1
- {"version":3,"file":"aiGenFactory.service.d.ts","sourceRoot":"","sources":["../../../src/services/aiGen/aiGenFactory.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EACL,cAAc,EACd,eAAe,EACf,WAAW,EACZ,MAAM,wBAAwB,CAAC;AAUhC,KAAK,uBAAuB,GAAG,UAAU,wBAAwB,CAAC;AAElE,eAAO,MAAM,gBAAgB,EAAE,MAAM,CACnC,eAAe,EACf,uBAAuB,CAqBxB,CAAC;AAUF,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,cAAc,EAAE,uBAAuB,CAQzE,CAAC;AAEJ,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,WAAW,GACpB,wBAAwB,CAY1B"}
1
+ {"version":3,"file":"aiGenFactory.service.d.ts","sourceRoot":"","sources":["../../../src/services/aiGen/aiGenFactory.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EACL,cAAc,EACd,eAAe,EACf,WAAW,EACZ,MAAM,wBAAwB,CAAC;AAYhC,KAAK,uBAAuB,GAAG,UAAU,wBAAwB,CAAC;AAElE,eAAO,MAAM,gBAAgB,EAAE,MAAM,CACnC,eAAe,EACf,uBAAuB,CAmDxB,CAAC;AAUF,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,cAAc,EAAE,uBAAuB,CAQzE,CAAC;AAEJ,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,WAAW,GACpB,wBAAwB,CAY1B"}
@@ -7,28 +7,52 @@ const kling_service_1 = require("./providers/kling/kling.service");
7
7
  const minimax_service_1 = require("./providers/minimax/minimax.service");
8
8
  const openai_service_1 = require("./providers/openai/openai.service");
9
9
  const runway_service_1 = require("./providers/runway/runway.service");
10
- const alibaba_1 = require("./providers/alibaba/alibaba");
11
- const azure_1 = require("./providers/azure");
10
+ // import { AlibabaService } from "./providers/alibaba/alibaba";
11
+ // import { AzureService } from "./providers/azure";
12
+ const pixverse_service_1 = require("./providers/pixverse/pixverse.service");
13
+ const bytedance_service_1 = require("./providers/bytedance/bytedance.service");
12
14
  exports.videoServicesMap = {
13
- "google-veo-3.1-preview": google_service_1.GoogleService,
14
- "google-veo-3.1-fast-preview": google_service_1.GoogleService,
15
+ // --- Pixverse ---
16
+ "pixverse-v5.6": pixverse_service_1.PixVerseService,
17
+ "pixverse-v5.5": pixverse_service_1.PixVerseService,
18
+ "pixverse-v5": pixverse_service_1.PixVerseService,
19
+ // --- ByteDance ---
20
+ "bytedance-seedance-1.5-pro": bytedance_service_1.ByteDanceService,
21
+ "bytedance-seedance-1.0-pro-fast": bytedance_service_1.ByteDanceService,
22
+ "bytedance-seedance-1.0-pro": bytedance_service_1.ByteDanceService,
23
+ // --- Google ---
24
+ "google-veo-3.1": google_service_1.GoogleService,
25
+ "google-veo-3.1-fast": google_service_1.GoogleService,
15
26
  "google-veo-3": google_service_1.GoogleService,
16
- "google-veo-2": google_service_1.GoogleService,
17
27
  "google-veo-3-fast": google_service_1.GoogleService,
28
+ "google-veo-2": google_service_1.GoogleService,
29
+ // --- Runway ---
30
+ "runway-gen4.5": runway_service_1.RunwayService,
18
31
  "runway-gen4-turbo": runway_service_1.RunwayService,
19
32
  "runway-gen4-aleph": runway_service_1.RunwayService,
20
- "kling-v1": kling_service_1.KlingService,
21
- "kling-v1.6": kling_service_1.KlingService,
33
+ // --- Kling ---
34
+ "kling-v2.6": kling_service_1.KlingService,
35
+ "kling-v2.5-turbo": kling_service_1.KlingService,
22
36
  "kling-v2-master": kling_service_1.KlingService,
37
+ "kling-v2.1": kling_service_1.KlingService,
23
38
  "kling-v2.1-master": kling_service_1.KlingService,
24
- "T2V-01": minimax_service_1.MinimaxService,
25
- "T2V-01-Director": minimax_service_1.MinimaxService,
39
+ "kling-avatar": kling_service_1.KlingService,
40
+ // "kling-v1.6": KlingService,
41
+ // "kling-v1": KlingService,
42
+ // --- MiniMax ---
43
+ "minimax-hailuo-2.3-fast": minimax_service_1.MinimaxService,
44
+ "minimax-hailuo-2.3": minimax_service_1.MinimaxService,
26
45
  "minimax-hailuo-02": minimax_service_1.MinimaxService,
27
- "azure-sora": azure_1.AzureService,
46
+ // "T2V-01-Director": MinimaxService,
47
+ // "T2V-01": MinimaxService,
48
+ // --- Azure ---
49
+ // "azure-sora": AzureService,
50
+ // --- OpenAI ---
28
51
  "openai-sora-2": openai_service_1.OpenaiService,
29
52
  "openai-sora-2-pro": openai_service_1.OpenaiService,
30
- "alibaba-wan-2.5": alibaba_1.AlibabaService,
31
- "alibaba-wan-2.2": alibaba_1.AlibabaService,
53
+ // --- Alibaba ---
54
+ // "alibaba-wan-2.5": AlibabaService,
55
+ // "alibaba-wan-2.2": AlibabaService,
32
56
  };
33
57
  // export const imageServicesMap: Record<imageGenModel, BaseAiGenProviderService> = {
34
58
  // "openai-dalle-3": DalleService,
@@ -1 +1 @@
1
- {"version":3,"file":"bytedance.service.d.ts","sourceRoot":"","sources":["../../../../../src/services/aiGen/providers/bytedance/bytedance.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,UAAU,CAAC;AASlB,qBAAa,gBAAiB,SAAQ,wBAAwB;IAC5D,OAAO,CAAC,QAAQ,CAAC,OAAO,CACsD;IAExE,aAAa,CACjB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,qBAAqB,CAAC;IA6D3B,gBAAgB,CAAC,EACrB,IAAI,EACJ,cAAc,EACd,cAAyB,GAC1B,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA8FjD,aAAa,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM;CAoCjD"}
1
+ {"version":3,"file":"bytedance.service.d.ts","sourceRoot":"","sources":["../../../../../src/services/aiGen/providers/bytedance/bytedance.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,UAAU,CAAC;AASlB,qBAAa,gBAAiB,SAAQ,wBAAwB;IAC5D,OAAO,CAAC,QAAQ,CAAC,OAAO,CACsD;IAExE,aAAa,CACjB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,qBAAqB,CAAC;IA0F3B,gBAAgB,CAAC,EACrB,IAAI,EACJ,cAAc,EACd,cAAyB,GAC1B,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA8FjD,aAAa,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM;CAoCjD"}
@@ -31,8 +31,8 @@ class ByteDanceService extends baseAiGenProvider_service_1.BaseAiGenProviderServ
31
31
  // Optional image → Image-to-Video (first frame)
32
32
  if (params.inputImageUrl) {
33
33
  content.push({
34
- type: "image",
35
- image_url: params.inputImageUrl,
34
+ type: "image_url",
35
+ image_url: { url: params.inputImageUrl },
36
36
  });
37
37
  }
38
38
  const body = {
@@ -56,6 +56,26 @@ class ByteDanceService extends baseAiGenProvider_service_1.BaseAiGenProviderServ
56
56
  });
57
57
  if (!resp.ok) {
58
58
  const errText = await resp.text();
59
+ let parsed;
60
+ try {
61
+ parsed = JSON.parse(errText);
62
+ }
63
+ catch { /* ignore */ }
64
+ const code = parsed?.error?.code;
65
+ const param = parsed?.error?.param;
66
+ const message = parsed?.error?.message ?? "";
67
+ if (code === "InputTextSensitiveContentDetected") {
68
+ throw new Error("Your prompt contains content that violates the content policy. Please modify your prompt and try again.");
69
+ }
70
+ if (code === "InvalidParameter" && param === "image_url") {
71
+ if (message.includes("aspect ratio")) {
72
+ throw new Error("Your input image's aspect ratio is not supported by this model. Please use an image with an aspect ratio between 0.40 and 2.50 (e.g. 1:1, 9:16, 16:9).");
73
+ }
74
+ if (message.includes("width") || message.includes("height") || message.includes("px")) {
75
+ throw new Error("Your input image is too small. Please use an image with a minimum width of 300px.");
76
+ }
77
+ throw new Error(`Your input image is not valid: ${message}`);
78
+ }
59
79
  throw new Error(`ByteDance generateVideo failed (${resp.status}): ${errText}`);
60
80
  }
61
81
  const data = await resp.json();
@@ -24,7 +24,7 @@ class GoogleService extends baseAiGenProvider_service_1.BaseAiGenProviderService
24
24
  (0, helpers_2.validateParams)(params);
25
25
  const modelConfig = aiModels_1.aiModelConfigs[params.modelKey];
26
26
  const modelId = modelConfig.modelId;
27
- console.log("GoogleService.generateVideo - modelId:", modelId, params);
27
+ // console.log("GoogleService.generateVideo - modelId:", modelId, params);
28
28
  const request = {
29
29
  model: modelId,
30
30
  prompt: params.prompt,
@@ -2,11 +2,16 @@ import { BaseAiGenProviderService } from "../baseAiGenProvider.service";
2
2
  import { CreditUsageParams, VideoGenerationParams, VideoGenerationResult, VideoStatusParams, VideoStatusResult } from "../types";
3
3
  export declare class KlingService extends BaseAiGenProviderService {
4
4
  private readonly baseUrl;
5
- private readonly timeout;
5
+ private readonly generateTimeout;
6
+ private readonly statusTimeout;
6
7
  constructor();
7
8
  private request;
8
9
  generateVideo(params: VideoGenerationParams): Promise<VideoGenerationResult>;
9
- checkVideoStatus({ task, outputFilename, outputFilePath, }: VideoStatusParams): Promise<VideoStatusResult>;
10
+ private generateAvatarVideo;
11
+ private requestWithTimeoutRetry;
12
+ checkVideoStatus(params: VideoStatusParams): Promise<VideoStatusResult>;
13
+ private checkRegularVideoStatus;
14
+ private checkAvatarVideoStatus;
10
15
  encodeJwtToken(): string;
11
16
  getCreditUsed({ modelKey, mode, duration, }: CreditUsageParams): number;
12
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"kling.service.d.ts","sourceRoot":"","sources":["../../../../../src/services/aiGen/providers/kling/kling.service.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,UAAU,CAAC;AAWlB,qBAAa,YAAa,SAAQ,wBAAwB;IACxD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuC;IAC/D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;;YAWnB,OAAO;IA6Bf,aAAa,CACjB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,qBAAqB,CAAC;IA8B3B,gBAAgB,CAAC,EACrB,IAAI,EACJ,cAAc,EACd,cAAyB,GAC1B,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA8DjD,cAAc,IAAI,MAAM;IAexB,aAAa,CAAC,EACZ,QAAQ,EACR,IAA8B,EAC9B,QAAY,GACb,EAAE,iBAAiB,GAAG,MAAM;CAK9B"}
1
+ {"version":3,"file":"kling.service.d.ts","sourceRoot":"","sources":["../../../../../src/services/aiGen/providers/kling/kling.service.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,UAAU,CAAC;AAYlB,qBAAa,YAAa,SAAQ,wBAAwB;IACxD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuC;IAC/D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAW;IAC3C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAU;;YAW1B,OAAO;IA8Bf,aAAa,CACjB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,qBAAqB,CAAC;YAqCnB,mBAAmB;YAqCnB,uBAAuB;IAmC/B,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;YAO/D,uBAAuB;YAgEvB,sBAAsB;IA6DpC,cAAc,IAAI,MAAM;IAexB,aAAa,CAAC,EACZ,QAAQ,EACR,IAA8B,EAC9B,QAAY,GACb,EAAE,iBAAiB,GAAG,MAAM;CAc9B"}
@@ -10,6 +10,7 @@ const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
10
10
  const aiModels_1 = require("../../../../globals/aiModels");
11
11
  const types_1 = require("../../../../globals/types");
12
12
  const firebase_1 = require("../../../../libs/firebase");
13
+ const logger_1 = require("../../../../utils/logger");
13
14
  const helpers_1 = require("../../helpers");
14
15
  const types_2 = require("../../types");
15
16
  const baseAiGenProvider_service_1 = require("../baseAiGenProvider.service");
@@ -18,12 +19,13 @@ class KlingService extends baseAiGenProvider_service_1.BaseAiGenProviderService
18
19
  constructor() {
19
20
  super();
20
21
  this.baseUrl = "https://api-singapore.klingai.com";
21
- this.timeout = 60000; // 1 min
22
+ this.generateTimeout = 120000; // 2 min — submit endpoint can be slow under Kling load
23
+ this.statusTimeout = 60000; // 1 min — status/poll should be fast
22
24
  if (!process.env.KLING_SECRET_KEY || !process.env.KLING_ACCESS_KEY) {
23
25
  throw new Error("Missing KLING_SECRET_KEY or KLING_ACCESS_KEY in environment variables");
24
26
  }
25
27
  }
26
- async request(endpoint, method, body) {
28
+ async request(endpoint, method, body, timeout = this.generateTimeout) {
27
29
  const config = {
28
30
  method,
29
31
  url: `${this.baseUrl}${endpoint}`,
@@ -31,7 +33,7 @@ class KlingService extends baseAiGenProvider_service_1.BaseAiGenProviderService
31
33
  Authorization: `Bearer ${this.encodeJwtToken()}`,
32
34
  "Content-Type": "application/json",
33
35
  },
34
- timeout: this.timeout,
36
+ timeout,
35
37
  data: body,
36
38
  };
37
39
  const response = await axios_1.default.request(config);
@@ -42,6 +44,9 @@ class KlingService extends baseAiGenProvider_service_1.BaseAiGenProviderService
42
44
  }
43
45
  async generateVideo(params) {
44
46
  (0, helpers_1.validateParams)(params);
47
+ if (params.modelKey === "kling-avatar") {
48
+ return this.generateAvatarVideo(params);
49
+ }
45
50
  const modelId = aiModels_1.aiModelConfigs[params.modelKey]?.modelId;
46
51
  if (!modelId)
47
52
  throw new Error(`Unknown modelKey: ${params.modelKey}`);
@@ -53,14 +58,75 @@ class KlingService extends baseAiGenProvider_service_1.BaseAiGenProviderService
53
58
  mode: params.mode || types_2.EVideoMode.STANDARD,
54
59
  };
55
60
  const starttime = Date.now();
56
- const task = await this.request("/v1/videos/text2video", "POST", request);
57
- console.log(`Kling generateVideo API call took ${Date.now() - starttime} ms`, task ? `(task ID: ${task.data.task_id})` : "(failed)");
61
+ const task = await this.requestWithTimeoutRetry("/v1/videos/text2video", "POST", request, 4, this.generateTimeout);
62
+ logger_1.logger.info("Kling generateVideo submitted", {
63
+ modelKey: params.modelKey,
64
+ taskId: task.data.task_id,
65
+ durationMs: Date.now() - starttime,
66
+ });
67
+ return { task: task.data.task_id, status: types_1.EVideoSceneStatus.TRIGGERED };
68
+ }
69
+ async generateAvatarVideo(params) {
70
+ if (!params.inputImageUrl) {
71
+ throw new Error("inputImageUrl (avatar face image) is required for Kling Avatar generation");
72
+ }
73
+ if (!params.inputAudioUrl) {
74
+ throw new Error("inputAudioUrl (audio file) is required for Kling Avatar generation");
75
+ }
76
+ const request = {
77
+ image: params.inputImageUrl,
78
+ sound_file: params.inputAudioUrl,
79
+ prompt: params.prompt,
80
+ mode: params.mode || "std",
81
+ };
82
+ const starttime = Date.now();
83
+ // Use requestWithTimeoutRetry so transient Kling server slowness doesn't fail the job outright.
84
+ // generateTimeout (2 min) gives enough headroom; up to 4 attempts before giving up.
85
+ const task = await this.requestWithTimeoutRetry("/v1/videos/avatar/image2video", "POST", request, 4, this.generateTimeout);
86
+ logger_1.logger.info("Kling generateAvatarVideo submitted", {
87
+ taskId: task.data.task_id,
88
+ durationMs: Date.now() - starttime,
89
+ });
58
90
  return { task: task.data.task_id, status: types_1.EVideoSceneStatus.TRIGGERED };
59
91
  }
60
- async checkVideoStatus({ task, outputFilename, outputFilePath = "videos", }) {
92
+ async requestWithTimeoutRetry(endpoint, method, body, maxAttempts = 4, timeout = this.statusTimeout) {
93
+ for (let attempt = 1; attempt <= maxAttempts; attempt++) {
94
+ try {
95
+ return await this.request(endpoint, method, body, timeout);
96
+ }
97
+ catch (err) {
98
+ const isTimeout = err.code === "ECONNABORTED" || err.message?.includes("timeout");
99
+ const isNetworkError = err.code === "ECONNRESET" ||
100
+ err.code === "ECONNREFUSED" ||
101
+ err.code === "ENOTFOUND" ||
102
+ err.code === "ERR_NETWORK" ||
103
+ err?.name === "AggregateError";
104
+ const isRetryable = isTimeout || isNetworkError;
105
+ if (!isRetryable || attempt === maxAttempts)
106
+ throw err;
107
+ logger_1.logger.warn("Kling request failed with transient error — retrying", {
108
+ endpoint,
109
+ attempt,
110
+ maxAttempts,
111
+ timeoutMs: timeout,
112
+ errorCode: err.code,
113
+ errorName: err?.name,
114
+ });
115
+ await new Promise((r) => setTimeout(r, 1000));
116
+ }
117
+ }
118
+ throw new Error("Unreachable");
119
+ }
120
+ async checkVideoStatus(params) {
121
+ if (params.modelKey === "kling-avatar") {
122
+ return this.checkAvatarVideoStatus(params);
123
+ }
124
+ return this.checkRegularVideoStatus(params);
125
+ }
126
+ async checkRegularVideoStatus({ task, outputFilename, outputFilePath = "videos", }) {
61
127
  const startTime = Date.now();
62
- const result = await this.request(`/v1/videos/text2video/${task}`, "GET");
63
- console.log(`Kling checkVideoStatus API call took ${Date.now() - startTime} ms`);
128
+ const result = await this.requestWithTimeoutRetry(`/v1/videos/text2video/${task}`, "GET");
129
+ logger_1.logger.info("Kling checkVideoStatus polled", { task, durationMs: Date.now() - startTime, status: result?.data?.task_status });
64
130
  if (!result) {
65
131
  return {
66
132
  status: types_1.EVideoSceneStatus.FAILED,
@@ -78,10 +144,53 @@ class KlingService extends baseAiGenProvider_service_1.BaseAiGenProviderService
78
144
  // console.log("Kling video URL:", videoUrl);
79
145
  const filePath = `${outputFilePath}/${outputFilename}.mp4`;
80
146
  const file = (0, firebase_1.getBucket)().file(filePath);
81
- // Download video using axios
147
+ // Download video using axios — use generateTimeout since video files can be large
82
148
  const videoResp = await axios_1.default.get(videoUrl, {
83
149
  responseType: "arraybuffer",
84
- timeout: this.timeout,
150
+ timeout: this.generateTimeout,
151
+ });
152
+ const buffer = Buffer.from(videoResp.data);
153
+ await file.save(buffer, { contentType: "video/mp4" });
154
+ const [signedUrl] = await file.getSignedUrl({
155
+ action: "read",
156
+ expires: "03-09-2491",
157
+ });
158
+ return {
159
+ videoUrl: signedUrl,
160
+ status: types_1.EVideoSceneStatus.COMPLETED,
161
+ };
162
+ }
163
+ if (result.data.task_status === "failed") {
164
+ return {
165
+ status: types_1.EVideoSceneStatus.FAILED,
166
+ errorMessage: `${result.code}: ${result.message}`,
167
+ };
168
+ }
169
+ return { status: types_1.EVideoSceneStatus.PENDING };
170
+ }
171
+ async checkAvatarVideoStatus({ task, outputFilename, outputFilePath = "videos", }) {
172
+ const startTime = Date.now();
173
+ const result = await this.requestWithTimeoutRetry(`/v1/videos/avatar/image2video/${task}`, "GET");
174
+ logger_1.logger.info("Kling checkAvatarVideoStatus polled", { task, durationMs: Date.now() - startTime, status: result?.data?.task_status });
175
+ if (!result) {
176
+ return {
177
+ status: types_1.EVideoSceneStatus.FAILED,
178
+ errorMessage: "No response from Kling Avatar API",
179
+ };
180
+ }
181
+ if (result.data.task_status === "succeed") {
182
+ const videoUrl = result.data.task_result?.videos?.[0]?.url;
183
+ if (!videoUrl) {
184
+ return {
185
+ status: types_1.EVideoSceneStatus.FAILED,
186
+ errorMessage: "No video URL in avatar response",
187
+ };
188
+ }
189
+ const filePath = `${outputFilePath}/${outputFilename}.mp4`;
190
+ const file = (0, firebase_1.getBucket)().file(filePath);
191
+ const videoResp = await axios_1.default.get(videoUrl, {
192
+ responseType: "arraybuffer",
193
+ timeout: this.generateTimeout,
85
194
  });
86
195
  const buffer = Buffer.from(videoResp.data);
87
196
  await file.save(buffer, { contentType: "video/mp4" });
@@ -116,6 +225,13 @@ class KlingService extends baseAiGenProvider_service_1.BaseAiGenProviderService
116
225
  }
117
226
  getCreditUsed({ modelKey, mode = types_2.EVideoMode.PROFESSIONAL, duration = 5, }) {
118
227
  const modelConfig = aiModels_1.aiModelConfigs[modelKey];
228
+ // Avatar: per-second pricing based on mode
229
+ if (modelKey === "kling-avatar") {
230
+ const perSecond = modelConfig?.cost?.[mode]?.perSecond
231
+ ?? modelConfig?.cost?.["std"]?.perSecond
232
+ ?? 0.014;
233
+ return (0, helpers_2.getCreditsFromCost)(perSecond * duration);
234
+ }
119
235
  const cost = modelConfig?.cost?.table?.[mode]?.[duration];
120
236
  return (0, helpers_2.getCreditsFromCost)(cost ?? 1);
121
237
  }
@@ -68,6 +68,19 @@ export interface TaskResult {
68
68
  export interface VideoResult {
69
69
  id: string;
70
70
  url: string;
71
+ watermark_url?: string;
71
72
  duration: string;
72
73
  }
74
+ export interface KlingAvatarGenerateRequest {
75
+ image: string;
76
+ audio_id?: string;
77
+ sound_file?: string;
78
+ prompt?: string;
79
+ mode?: "std" | "pro";
80
+ watermark_info?: {
81
+ enabled: boolean;
82
+ };
83
+ callback_url?: string;
84
+ external_task_id?: string;
85
+ }
73
86
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/services/aiGen/providers/kling/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,aAAa,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,WAAW,GAAG,YAAY,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC/D,SAAS,EAAE,QAAQ,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,QAAQ;IACvB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,cAAc,GACtB,UAAU,GACV,YAAY,GACZ,iBAAiB,GACjB,mBAAmB,CAAC;AAExB,MAAM,MAAM,UAAU,GAClB,QAAQ,GACR,WAAW,GACX,YAAY,GACZ,oBAAoB,GACpB,mBAAmB,CAAC;AAExB,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;AAEvD,MAAM,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,CAAC;AAEnC,MAAM,WAAW,YAAY;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED,MAAM,WAAW,yBAAyB;IACxC,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAGD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,aAAa,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,UAAU,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,QAAQ,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,UAAU,CAAC;CAC1B;AAED,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,YAAY,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE3E,MAAM,WAAW,QAAQ;IACvB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;CAClB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/services/aiGen/providers/kling/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"runway.service.d.ts","sourceRoot":"","sources":["../../../../../src/services/aiGen/providers/runway/runway.service.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,UAAU,CAAC;AAGlB,qBAAa,aAAc,SAAQ,wBAAwB;IACzD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiC;IACzD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;;YAUlB,OAAO;IA+Bf,aAAa,CACjB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,qBAAqB,CAAC;IAuC3B,gBAAgB,CAAC,EACrB,IAAI,EACJ,cAAc,EACd,cAAyB,GAC1B,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA4DjD,aAAa,CAAC,EAAE,QAAQ,EAAE,QAAY,EAAE,EAAE,iBAAiB,GAAG,MAAM;CAIrE"}
1
+ {"version":3,"file":"runway.service.d.ts","sourceRoot":"","sources":["../../../../../src/services/aiGen/providers/runway/runway.service.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,UAAU,CAAC;AAGlB,qBAAa,aAAc,SAAQ,wBAAwB;IACzD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqC;IAC7D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;;YAUlB,OAAO;IAgCf,aAAa,CACjB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,qBAAqB,CAAC;IAqD3B,gBAAgB,CAAC,EACrB,IAAI,EACJ,cAAc,EACd,cAAyB,GAC1B,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA4DjD,aAAa,CAAC,EAAE,QAAQ,EAAE,QAAY,EAAE,EAAE,iBAAiB,GAAG,MAAM;CAIrE"}
@@ -14,7 +14,7 @@ const baseAiGenProvider_service_1 = require("../baseAiGenProvider.service");
14
14
  class RunwayService extends baseAiGenProvider_service_1.BaseAiGenProviderService {
15
15
  constructor() {
16
16
  super();
17
- this.baseUrl = "https://api.runwayml.com/v1";
17
+ this.baseUrl = "https://api.dev.runwayml.com/v1";
18
18
  if (!process.env.RUNWAYML_API_SECRET) {
19
19
  throw new Error("Missing RUNWAYML_API_SECRET in environment variables");
20
20
  }
@@ -25,6 +25,7 @@ class RunwayService extends baseAiGenProvider_service_1.BaseAiGenProviderService
25
25
  const headers = {
26
26
  Authorization: `Bearer ${this.apiKey}`,
27
27
  "Content-Type": "application/json",
28
+ "X-Runway-Version": "2024-11-06",
28
29
  };
29
30
  const response = await (0, axios_1.default)({
30
31
  url,
@@ -45,8 +46,19 @@ class RunwayService extends baseAiGenProvider_service_1.BaseAiGenProviderService
45
46
  if (!modelId)
46
47
  throw new Error(`Unknown modelKey: ${params.modelKey}`);
47
48
  let run;
48
- // IMAGE → VIDEO
49
- if (modelId === "gen4_turbo") {
49
+ // TEXT → VIDEO (gen4.5)
50
+ if (modelId === "gen4.5") {
51
+ const ratio = (params.aspectRatio || "1280x720").replace("x", ":");
52
+ const body = {
53
+ model: "gen4.5",
54
+ promptText: params.prompt,
55
+ ratio,
56
+ duration: params.duration || 5,
57
+ };
58
+ run = await this.request("/text_to_video", "POST", body);
59
+ }
60
+ // IMAGE → VIDEO (gen4_turbo)
61
+ else if (modelId === "gen4_turbo") {
50
62
  const body = {
51
63
  model: "gen4_turbo",
52
64
  promptText: params.prompt,
@@ -56,7 +68,7 @@ class RunwayService extends baseAiGenProvider_service_1.BaseAiGenProviderService
56
68
  };
57
69
  run = await this.request("/image-to-video", "POST", body);
58
70
  }
59
- // VIDEO → VIDEO
71
+ // VIDEO → VIDEO (gen4_aleph)
60
72
  else if (modelId === "gen4_aleph") {
61
73
  const body = {
62
74
  model: "gen4_aleph",
@@ -10,8 +10,12 @@ export interface VideoGenerationParams {
10
10
  duration?: number;
11
11
  inputVideoUrl?: string;
12
12
  inputImageUrl?: string;
13
+ inputAudioUrl?: string;
13
14
  mode?: EVideoMode;
14
15
  type?: "text-to-video" | "image-to-video" | "video-to-video";
16
+ audio?: boolean;
17
+ negativePrompt?: string;
18
+ multiClip?: boolean;
15
19
  }
16
20
  export interface VideoGenerationResult {
17
21
  status: EVideoSceneStatus.TRIGGERED;
@@ -45,5 +49,7 @@ export interface CreditUsageParams {
45
49
  aspectRatio?: string;
46
50
  inputType?: "text" | "image" | "video";
47
51
  outputType?: "text" | "image" | "video";
52
+ audio?: boolean;
53
+ multiClip?: boolean;
48
54
  }
49
55
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/services/aiGen/providers/types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5E,OAAO,EACL,iBAAiB,EACjB,aAAa,EACd,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,eAAe,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,IAAI,CAAC,EAAE,eAAe,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;CAC9D;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,iBAAiB,CAAC,SAAS,CAAC;IACpC,IAAI,EAAE,aAAa,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CAEvB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,aAAa,CAAC;IACpB,QAAQ,EAAE,eAAe,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;CAMzB;AAED,MAAM,WAAW,oBAAoB;IAEnC,KAAK,EAAE,GAAG,CAAC;IACX,QAAQ,EAAE,cAAc,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,eAAe,GAAG,cAAc,CAAC;IAC3C,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;IACvC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;CACzC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/services/aiGen/providers/types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5E,OAAO,EACL,iBAAiB,EACjB,aAAa,EACd,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,eAAe,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,IAAI,CAAC,EAAE,eAAe,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;IAE7D,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,iBAAiB,CAAC,SAAS,CAAC;IACpC,IAAI,EAAE,aAAa,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CAEvB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,aAAa,CAAC;IACpB,QAAQ,EAAE,eAAe,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;CAMzB;AAED,MAAM,WAAW,oBAAoB;IAEnC,KAAK,EAAE,GAAG,CAAC;IACX,QAAQ,EAAE,cAAc,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,eAAe,GAAG,cAAc,CAAC;IAC3C,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;IACvC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;IACxC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB"}
@@ -1,4 +1,5 @@
1
1
  export declare class CreditService {
2
2
  static consumeCredits(userId: string, creditsToConsume: number): Promise<void>;
3
+ static refundCredits(userId: string, creditsToRefund: number): Promise<void>;
3
4
  }
4
5
  //# sourceMappingURL=credit.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"credit.service.d.ts","sourceRoot":"","sources":["../../src/services/credit.service.ts"],"names":[],"mappings":"AAGA,qBAAa,aAAa;WACX,cAAc,CACzB,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,IAAI,CAAC;CAwBjB"}
1
+ {"version":3,"file":"credit.service.d.ts","sourceRoot":"","sources":["../../src/services/credit.service.ts"],"names":[],"mappings":"AAGA,qBAAa,aAAa;WACX,cAAc,CACzB,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,IAAI,CAAC;WAyBH,aAAa,CACxB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,IAAI,CAAC;CAoBjB"}
@@ -25,5 +25,22 @@ class CreditService {
25
25
  });
26
26
  });
27
27
  }
28
+ static async refundCredits(userId, creditsToRefund) {
29
+ if (creditsToRefund <= 0)
30
+ return;
31
+ await firebase_1.firestore.runTransaction(async (tx) => {
32
+ const userRef = firestore_service_1.FirestoreService.usersCol.doc(userId);
33
+ const snap = await tx.get(userRef);
34
+ if (!snap.exists) {
35
+ throw new Error("USER_NOT_FOUND");
36
+ }
37
+ const consumed = snap.data()?.credits?.consumed ?? 0;
38
+ // Never let consumed go below 0
39
+ const newConsumed = Math.max(0, consumed - creditsToRefund);
40
+ tx.update(userRef, {
41
+ "credits.consumed": newConsumed,
42
+ });
43
+ });
44
+ }
28
45
  }
29
46
  exports.CreditService = CreditService;
@@ -4,4 +4,5 @@ export * from "./aiGen";
4
4
  export * from "./bullmq.service";
5
5
  export * from "./gcp";
6
6
  export * from "./credit.service";
7
+ export * from "./tts";
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,SAAS,CAAC;AACxB,cAAc,kBAAkB,CAAC;AACjC,cAAc,OAAO,CAAC;AACtB,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,SAAS,CAAC;AACxB,cAAc,kBAAkB,CAAC;AACjC,cAAc,OAAO,CAAC;AACtB,cAAc,kBAAkB,CAAC;AACjC,cAAc,OAAO,CAAC"}
@@ -20,3 +20,4 @@ __exportStar(require("./aiGen"), exports);
20
20
  __exportStar(require("./bullmq.service"), exports);
21
21
  __exportStar(require("./gcp"), exports);
22
22
  __exportStar(require("./credit.service"), exports);
23
+ __exportStar(require("./tts"), exports);
@@ -1,6 +1,7 @@
1
1
  import { BaseTtsProviderService, TtsParams, TtsResult } from "../types";
2
2
  export declare class ElevenLabsService extends BaseTtsProviderService {
3
3
  private readonly baseUrl;
4
+ private readonly apiKey;
4
5
  constructor();
5
6
  generate(params: TtsParams): Promise<TtsResult>;
6
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"elevenlabs.service.d.ts","sourceRoot":"","sources":["../../../../src/services/tts/providers/elevenlabs.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAExE,qBAAa,iBAAkB,SAAQ,sBAAsB;IAC3D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkC;;IASpD,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;CA+BtD"}
1
+ {"version":3,"file":"elevenlabs.service.d.ts","sourceRoot":"","sources":["../../../../src/services/tts/providers/elevenlabs.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAExE,qBAAa,iBAAkB,SAAQ,sBAAsB;IAC3D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkC;IAE1D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;;IAW1B,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;CA+BtD"}