vidspotai-shared 1.0.113 → 1.0.115

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 (95) hide show
  1. package/lib/globals/types.d.ts +17 -1
  2. package/lib/globals/types.d.ts.map +1 -1
  3. package/lib/globals/types.js +18 -0
  4. package/lib/libs/index.d.ts +1 -0
  5. package/lib/libs/index.d.ts.map +1 -1
  6. package/lib/libs/index.js +1 -0
  7. package/lib/libs/mediaStore.d.ts +3 -31
  8. package/lib/libs/mediaStore.d.ts.map +1 -1
  9. package/lib/libs/mediaStore.js +16 -140
  10. package/lib/libs/storage/GcsBackend.d.ts +9 -0
  11. package/lib/libs/storage/GcsBackend.d.ts.map +1 -0
  12. package/lib/libs/storage/GcsBackend.js +42 -0
  13. package/lib/libs/storage/MediaStorage.d.ts +117 -0
  14. package/lib/libs/storage/MediaStorage.d.ts.map +1 -0
  15. package/lib/libs/storage/MediaStorage.js +117 -0
  16. package/lib/libs/storage/R2Backend.d.ts +42 -0
  17. package/lib/libs/storage/R2Backend.d.ts.map +1 -0
  18. package/lib/libs/storage/R2Backend.js +175 -0
  19. package/lib/libs/storage/StorageBackend.d.ts +41 -0
  20. package/lib/libs/storage/StorageBackend.d.ts.map +1 -0
  21. package/lib/libs/storage/StorageBackend.js +2 -0
  22. package/lib/libs/storage/cdnUrl.d.ts +27 -0
  23. package/lib/libs/storage/cdnUrl.d.ts.map +1 -0
  24. package/lib/libs/storage/cdnUrl.js +48 -0
  25. package/lib/libs/storage/index.d.ts +6 -0
  26. package/lib/libs/storage/index.d.ts.map +1 -0
  27. package/lib/libs/storage/index.js +21 -0
  28. package/lib/models/agent.model.d.ts +27 -0
  29. package/lib/models/agent.model.d.ts.map +1 -1
  30. package/lib/models/index.d.ts +1 -0
  31. package/lib/models/index.d.ts.map +1 -1
  32. package/lib/models/index.js +1 -0
  33. package/lib/models/outreach.model.d.ts +7 -1
  34. package/lib/models/outreach.model.d.ts.map +1 -1
  35. package/lib/models/outreachIntegration.model.d.ts +42 -0
  36. package/lib/models/outreachIntegration.model.d.ts.map +1 -0
  37. package/lib/models/outreachIntegration.model.js +8 -0
  38. package/lib/models/video.model.d.ts +7 -1
  39. package/lib/models/video.model.d.ts.map +1 -1
  40. package/lib/schemas/videoPlan.schema.d.ts +1 -0
  41. package/lib/schemas/videoPlan.schema.d.ts.map +1 -1
  42. package/lib/schemas/videoPlan.schema.js +10 -0
  43. package/lib/services/agent/tools/generateAvatarVideo.tool.d.ts.map +1 -1
  44. package/lib/services/agent/tools/generateAvatarVideo.tool.js +3 -5
  45. package/lib/services/agent/tools/planVideo.tool.d.ts +1 -0
  46. package/lib/services/agent/tools/planVideo.tool.d.ts.map +1 -1
  47. package/lib/services/aiGen/providers/alibaba/alibaba.d.ts.map +1 -1
  48. package/lib/services/aiGen/providers/alibaba/alibaba.js +5 -11
  49. package/lib/services/aiGen/providers/bytedance/bytedance.service.d.ts.map +1 -1
  50. package/lib/services/aiGen/providers/bytedance/bytedance.service.js +5 -0
  51. package/lib/services/aiGen/providers/elevenlabs/elevenlabs.service.d.ts.map +1 -1
  52. package/lib/services/aiGen/providers/elevenlabs/elevenlabs.service.js +3 -7
  53. package/lib/services/aiGen/providers/google/google.service.d.ts.map +1 -1
  54. package/lib/services/aiGen/providers/google/google.service.js +7 -4
  55. package/lib/services/aiGen/providers/google/googleMusic.d.ts.map +1 -1
  56. package/lib/services/aiGen/providers/google/googleMusic.js +3 -7
  57. package/lib/services/aiGen/providers/kling/kling.service.d.ts +16 -7
  58. package/lib/services/aiGen/providers/kling/kling.service.d.ts.map +1 -1
  59. package/lib/services/aiGen/providers/kling/kling.service.js +2 -2
  60. package/lib/services/aiGen/providers/kling/klingImage.service.d.ts.map +1 -1
  61. package/lib/services/aiGen/providers/kling/klingImage.service.js +3 -5
  62. package/lib/services/aiGen/providers/kling/klingStatus.d.ts +1 -1
  63. package/lib/services/aiGen/providers/kling/klingStatus.d.ts.map +1 -1
  64. package/lib/services/aiGen/providers/kling/klingStatus.js +8 -19
  65. package/lib/services/aiGen/providers/minimax/minimax.service.d.ts.map +1 -1
  66. package/lib/services/aiGen/providers/minimax/minimax.service.js +7 -17
  67. package/lib/services/aiGen/providers/openai/openai.service.d.ts.map +1 -1
  68. package/lib/services/aiGen/providers/openai/openai.service.js +5 -13
  69. package/lib/services/aiGen/providers/pixverse/pixverse.service.d.ts.map +1 -1
  70. package/lib/services/aiGen/providers/pixverse/pixverse.service.js +5 -0
  71. package/lib/services/aiGen/providers/runway/runway.service.d.ts.map +1 -1
  72. package/lib/services/aiGen/providers/runway/runway.service.js +5 -10
  73. package/lib/services/avatarGen/IAvatarVideoProvider.d.ts +25 -3
  74. package/lib/services/avatarGen/IAvatarVideoProvider.d.ts.map +1 -1
  75. package/lib/services/avatarGen/IAvatarVideoProvider.js +2 -1
  76. package/lib/services/avatarGen/providers/heygenAvatarProvider.d.ts +23 -2
  77. package/lib/services/avatarGen/providers/heygenAvatarProvider.d.ts.map +1 -1
  78. package/lib/services/avatarGen/providers/heygenAvatarProvider.js +71 -0
  79. package/lib/services/avatarGen/providers/tavusAvatarProvider.d.ts +3 -4
  80. package/lib/services/avatarGen/providers/tavusAvatarProvider.d.ts.map +1 -1
  81. package/lib/services/avatarGen/providers/tavusAvatarProvider.js +17 -0
  82. package/lib/services/editor/planToProject.d.ts.map +1 -1
  83. package/lib/services/editor/planToProject.js +29 -1
  84. package/lib/services/firestore.service.d.ts +3 -0
  85. package/lib/services/firestore.service.d.ts.map +1 -1
  86. package/lib/services/firestore.service.js +7 -0
  87. package/lib/services/gcp/uploadAudioBuffer.d.ts.map +1 -1
  88. package/lib/services/gcp/uploadAudioBuffer.js +4 -0
  89. package/lib/services/index.d.ts +1 -0
  90. package/lib/services/index.d.ts.map +1 -1
  91. package/lib/services/index.js +1 -0
  92. package/lib/services/outreachWebhooks.service.d.ts +24 -0
  93. package/lib/services/outreachWebhooks.service.d.ts.map +1 -0
  94. package/lib/services/outreachWebhooks.service.js +41 -0
  95. package/package.json +1 -1
@@ -0,0 +1,42 @@
1
+ import type { Readable } from "stream";
2
+ import type { IStorageBackend } from "./StorageBackend";
3
+ export declare class R2Backend implements IStorageBackend {
4
+ readonly name = "r2";
5
+ private client;
6
+ private init;
7
+ /**
8
+ * True once creds+endpoint are present. Since R2 became the sole byte
9
+ * store for `MediaStorage.put`/`putFromFile`/`delete` (2026-09-22), a
10
+ * missing config can no longer silently no-op here — that used to be safe
11
+ * when R2 was only a best-effort mirror (GCS's write still stood), but
12
+ * would now mean a `put()` returns a delivery URL for an object that was
13
+ * never actually written anywhere. `write`/`writeFromFile`/
14
+ * `writeFromReadable`/`delete` below throw when this returns null;
15
+ * `MediaStorage`'s legacy bespoke-pipeline mirror calls
16
+ * (mirrorBytes/mirrorFromFile/mirrorFromReadable) already wrap those in a
17
+ * try/catch, so the throw is caught and stays best-effort there.
18
+ */
19
+ private getClient;
20
+ private requireClient;
21
+ write(key: string, body: Buffer, contentType: string): Promise<void>;
22
+ writeFromFile(key: string, localPath: string, contentType: string): Promise<number>;
23
+ /**
24
+ * Mirror an object already stored elsewhere (GCS) straight through, without
25
+ * buffering it in process memory — for objects a caller never downloads to
26
+ * a local file (e.g. a resumable-upload completion, which only has a GCS
27
+ * read stream). A single PutObject with an explicit ContentLength handles
28
+ * up to 5GiB without multipart, comfortably covering our upload ceiling.
29
+ */
30
+ writeFromReadable(key: string, stream: Readable, contentType: string, size: number): Promise<void>;
31
+ /**
32
+ * Bare CDN read URL (no signature/access-control). Not used as the actual
33
+ * delivery-URL source today — `MediaStorage` mints via `GcsBackend`
34
+ * instead, since the Worker doesn't recognize this bare-key shape and it
35
+ * carries no access control for private content (see MediaStorage.ts's
36
+ * class doc, "Stage 2 composition"). Kept for interface completeness /
37
+ * future use once a real signed-URL scheme exists for this shape.
38
+ */
39
+ signedReadUrl(key: string): Promise<string>;
40
+ delete(key: string): Promise<void>;
41
+ }
42
+ //# sourceMappingURL=R2Backend.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"R2Backend.d.ts","sourceRoot":"","sources":["../../../src/libs/storage/R2Backend.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAIvC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAyBxD,qBAAa,SAAU,YAAW,eAAe;IAC/C,QAAQ,CAAC,IAAI,QAAQ;IAGrB,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,IAAI,CAAyC;IAErD;;;;;;;;;;;OAWG;YACW,SAAS;YAoBT,aAAa;IAQrB,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAepE,aAAa,CACjB,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,CAAC;IAQlB;;;;;;OAMG;IACG,iBAAiB,CACrB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,QAAQ,EAChB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC;IAgBhB;;;;;;;OAOG;IACG,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAI3C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAOzC"}
@@ -0,0 +1,175 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.R2Backend = void 0;
37
+ /**
38
+ * Cloudflare R2 backend — zero-egress mirror (and the future primary).
39
+ * ====================================================================
40
+ *
41
+ * Today R2 is a best-effort MIRROR: the `cdn.vidspotai.com` Worker serves
42
+ * objects from R2 when present (free egress) and falls back to GCS otherwise.
43
+ * When GCS is decommissioned this becomes the primary — hence the full backend
44
+ * surface (write/read-url/delete) even though only writes run today.
45
+ *
46
+ * Canonical GCS-style paths are remapped into R2's clean taxonomy via `toR2Key`
47
+ * — the SAME transform the Worker looks objects up by, so migrate-side and
48
+ * lookup-side can never disagree.
49
+ *
50
+ * The `@aws-sdk/client-s3` import is LAZY (dynamic) so it stays out of the shared
51
+ * package's module import graph — that package is already heavy at import time
52
+ * and this must not add to Cloud Function cold start (memory/project_shared_lazy_load).
53
+ */
54
+ const promises_1 = require("fs/promises");
55
+ const r2KeyMap_1 = require("../r2KeyMap");
56
+ const logger_1 = require("../../utils/logger");
57
+ const R2_BUCKET = process.env.R2_BUCKET || "vidspot-media";
58
+ /** CDN host the Worker serves R2 from — the future delivery URL base. */
59
+ function cdnBase() {
60
+ return (process.env.MEDIA_CDN_BASE ||
61
+ process.env.NEXT_PUBLIC_MEDIA_CDN_BASE ||
62
+ "https://cdn.vidspotai.com").replace(/\/+$/, "");
63
+ }
64
+ function r2Config() {
65
+ return {
66
+ accessKeyId: process.env.CLOUDFLARE_R2_ACCESS_KEY_ID || process.env.R2_ACCESS_KEY_ID,
67
+ secretAccessKey: process.env.CLOUDFLARE_R2_SECRET_ACCESS_KEY ||
68
+ process.env.R2_SECRET_ACCESS_KEY,
69
+ endpoint: process.env.CLOUDFLARE_R2_S3_ENDPOINT || process.env.R2_S3_ENDPOINT,
70
+ };
71
+ }
72
+ class R2Backend {
73
+ constructor() {
74
+ this.name = "r2";
75
+ // Lazily-built singleton S3 client (only when the first R2 op actually runs).
76
+ this.client = null;
77
+ this.init = null;
78
+ }
79
+ /**
80
+ * True once creds+endpoint are present. Since R2 became the sole byte
81
+ * store for `MediaStorage.put`/`putFromFile`/`delete` (2026-09-22), a
82
+ * missing config can no longer silently no-op here — that used to be safe
83
+ * when R2 was only a best-effort mirror (GCS's write still stood), but
84
+ * would now mean a `put()` returns a delivery URL for an object that was
85
+ * never actually written anywhere. `write`/`writeFromFile`/
86
+ * `writeFromReadable`/`delete` below throw when this returns null;
87
+ * `MediaStorage`'s legacy bespoke-pipeline mirror calls
88
+ * (mirrorBytes/mirrorFromFile/mirrorFromReadable) already wrap those in a
89
+ * try/catch, so the throw is caught and stays best-effort there.
90
+ */
91
+ async getClient() {
92
+ if (this.client)
93
+ return this.client;
94
+ if (this.init)
95
+ return this.init;
96
+ this.init = (async () => {
97
+ const { accessKeyId, secretAccessKey, endpoint } = r2Config();
98
+ if (!accessKeyId || !secretAccessKey || !endpoint) {
99
+ logger_1.logger.warn("R2Backend: creds/endpoint missing — R2 ops will fail");
100
+ return null;
101
+ }
102
+ const { S3Client: Client } = await Promise.resolve().then(() => __importStar(require("@aws-sdk/client-s3")));
103
+ this.client = new Client({
104
+ region: "auto",
105
+ endpoint,
106
+ credentials: { accessKeyId, secretAccessKey },
107
+ });
108
+ return this.client;
109
+ })();
110
+ return this.init;
111
+ }
112
+ async requireClient() {
113
+ const client = await this.getClient();
114
+ if (!client) {
115
+ throw new Error("R2Backend: creds/endpoint missing — cannot write/delete");
116
+ }
117
+ return client;
118
+ }
119
+ async write(key, body, contentType) {
120
+ const client = await this.requireClient();
121
+ const { PutObjectCommand } = await Promise.resolve().then(() => __importStar(require("@aws-sdk/client-s3")));
122
+ const r2Key = (0, r2KeyMap_1.toR2Key)(key);
123
+ await client.send(new PutObjectCommand({
124
+ Bucket: R2_BUCKET,
125
+ Key: r2Key,
126
+ Body: body,
127
+ ContentType: contentType,
128
+ }));
129
+ logger_1.logger.info("R2Backend: wrote object", { key, r2Key });
130
+ }
131
+ async writeFromFile(key, localPath, contentType) {
132
+ // Mirror-only path: read the already-validated local file and PutObject.
133
+ // Only runs when mirroring is enabled, so buffering the clip here is fine.
134
+ const body = await (0, promises_1.readFile)(localPath);
135
+ await this.write(key, body, contentType);
136
+ return body.byteLength;
137
+ }
138
+ /**
139
+ * Mirror an object already stored elsewhere (GCS) straight through, without
140
+ * buffering it in process memory — for objects a caller never downloads to
141
+ * a local file (e.g. a resumable-upload completion, which only has a GCS
142
+ * read stream). A single PutObject with an explicit ContentLength handles
143
+ * up to 5GiB without multipart, comfortably covering our upload ceiling.
144
+ */
145
+ async writeFromReadable(key, stream, contentType, size) {
146
+ const client = await this.requireClient();
147
+ const { PutObjectCommand } = await Promise.resolve().then(() => __importStar(require("@aws-sdk/client-s3")));
148
+ const r2Key = (0, r2KeyMap_1.toR2Key)(key);
149
+ await client.send(new PutObjectCommand({
150
+ Bucket: R2_BUCKET,
151
+ Key: r2Key,
152
+ Body: stream,
153
+ ContentType: contentType,
154
+ ContentLength: size,
155
+ }));
156
+ logger_1.logger.info("R2Backend: wrote object from stream", { key, r2Key, size });
157
+ }
158
+ /**
159
+ * Bare CDN read URL (no signature/access-control). Not used as the actual
160
+ * delivery-URL source today — `MediaStorage` mints via `GcsBackend`
161
+ * instead, since the Worker doesn't recognize this bare-key shape and it
162
+ * carries no access control for private content (see MediaStorage.ts's
163
+ * class doc, "Stage 2 composition"). Kept for interface completeness /
164
+ * future use once a real signed-URL scheme exists for this shape.
165
+ */
166
+ async signedReadUrl(key) {
167
+ return `${cdnBase()}/${(0, r2KeyMap_1.toR2Key)(key)}`;
168
+ }
169
+ async delete(key) {
170
+ const client = await this.requireClient();
171
+ const { DeleteObjectCommand } = await Promise.resolve().then(() => __importStar(require("@aws-sdk/client-s3")));
172
+ await client.send(new DeleteObjectCommand({ Bucket: R2_BUCKET, Key: (0, r2KeyMap_1.toR2Key)(key) }));
173
+ }
174
+ }
175
+ exports.R2Backend = R2Backend;
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Storage backend contract.
3
+ * =========================
4
+ *
5
+ * One narrow interface every object-storage implementation (GCS today, R2
6
+ * tomorrow, anything after) satisfies. `MediaStorage` composes backends behind
7
+ * this contract, so swapping the store — or flipping which one is primary — is a
8
+ * change in ONE place (`MediaStorage`), never at the ~30 write call sites.
9
+ *
10
+ * Keys are **canonical object paths** (the GCS-style key we've always used, e.g.
11
+ * `final_videos/<id>.mp4`). Each backend owns the mapping from that canonical
12
+ * path into its own keyspace (R2 remaps via `toR2Key`; GCS is identity). This
13
+ * keeps callers backend-agnostic — they pass one path and never think about R2's
14
+ * clean taxonomy.
15
+ */
16
+ import type { Readable } from "stream";
17
+ export interface IStorageBackend {
18
+ /** Human name for logs (e.g. "gcs", "r2"). */
19
+ readonly name: string;
20
+ /** Write in-memory bytes at `key`. */
21
+ write(key: string, body: Buffer, contentType: string): Promise<void>;
22
+ /**
23
+ * Stream a local file to `key` without buffering it whole in memory (large
24
+ * videos). Returns the stored object size so callers can integrity-check the
25
+ * upload against the local size.
26
+ */
27
+ writeFromFile(key: string, localPath: string, contentType: string): Promise<number>;
28
+ /** A durable read URL for `key` (far-future signed URL, or CDN host). */
29
+ signedReadUrl(key: string): Promise<string>;
30
+ /** Delete `key`. Best-effort; implementations may no-op on "not found". */
31
+ delete(key: string): Promise<void>;
32
+ /**
33
+ * Stream an already-open Readable (e.g. another backend's read stream)
34
+ * straight to `key`, without buffering it whole. Optional — only backends
35
+ * that mirror content already stored elsewhere need it (R2). `size` must be
36
+ * the exact byte length; S3-compatible PutObject requires it up front for a
37
+ * streaming body.
38
+ */
39
+ writeFromReadable?(key: string, stream: Readable, contentType: string, size: number): Promise<void>;
40
+ }
41
+ //# sourceMappingURL=StorageBackend.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StorageBackend.d.ts","sourceRoot":"","sources":["../../../src/libs/storage/StorageBackend.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAEvC,MAAM,WAAW,eAAe;IAC9B,8CAA8C;IAC9C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,sCAAsC;IACtC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErE;;;;OAIG;IACH,aAAa,CACX,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,CAAC,CAAC;IAEnB,yEAAyE;IACzE,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE5C,2EAA2E;IAC3E,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnC;;;;;;OAMG;IACH,iBAAiB,CAAC,CAChB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,QAAQ,EAChB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Backend counterpart of the frontend's `cdn()` helper
3
+ * (vidspot-frontend/src/lib/mediaCdn.ts). Both must stay in sync — same host
4
+ * prefixes, same `/gcs-pub/` `/gcs-priv/` tagging scheme the Worker
5
+ * (infra/cloudflare-media-cdn/worker.js) expects.
6
+ *
7
+ * Most delivery URLs (finalVideoUrl, posterUrl, etc.) are stored once in
8
+ * Firestore and rewritten to the CDN host at RENDER TIME by the frontend. But
9
+ * a few backend endpoints mint a URL and hand it straight to an external
10
+ * client themselves (share links, download redirects) — those never pass
11
+ * through the frontend's cdn(), so they need this to get R2 zero-egress
12
+ * delivery instead of a bare storage.googleapis.com URL.
13
+ */
14
+ export type MediaVisibility = "public" | "private";
15
+ /**
16
+ * Rewrite a Firebase Storage download URL or a GCS V4 signed URL (for our
17
+ * bucket) to the CDN host. Non-matching URLs are returned untouched.
18
+ *
19
+ * @param visibility Only affects GCS signed URLs — "public" (default) is a
20
+ * 1yr-immutable edge cache; "private" is a short edge TTL so a
21
+ * revoked/expired link stops being served within a day. Firebase download
22
+ * URLs are always treated as public.
23
+ */
24
+ export declare function toCdnUrl(url: string, opts?: {
25
+ visibility?: MediaVisibility;
26
+ }): string;
27
+ //# sourceMappingURL=cdnUrl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cdnUrl.d.ts","sourceRoot":"","sources":["../../../src/libs/storage/cdnUrl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAeH,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEnD;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CACtB,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,eAAe,CAAA;CAAE,GACtC,MAAM,CAeR"}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ /**
3
+ * Backend counterpart of the frontend's `cdn()` helper
4
+ * (vidspot-frontend/src/lib/mediaCdn.ts). Both must stay in sync — same host
5
+ * prefixes, same `/gcs-pub/` `/gcs-priv/` tagging scheme the Worker
6
+ * (infra/cloudflare-media-cdn/worker.js) expects.
7
+ *
8
+ * Most delivery URLs (finalVideoUrl, posterUrl, etc.) are stored once in
9
+ * Firestore and rewritten to the CDN host at RENDER TIME by the frontend. But
10
+ * a few backend endpoints mint a URL and hand it straight to an external
11
+ * client themselves (share links, download redirects) — those never pass
12
+ * through the frontend's cdn(), so they need this to get R2 zero-egress
13
+ * delivery instead of a bare storage.googleapis.com URL.
14
+ */
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.toCdnUrl = toCdnUrl;
17
+ const FIREBASE_STORAGE_HOST = "https://firebasestorage.googleapis.com";
18
+ const GCS_HOST = "https://storage.googleapis.com";
19
+ const BUCKET = "vidspot-firebase.firebasestorage.app";
20
+ const GCS_SIGNED_PREFIX = `${GCS_HOST}/${BUCKET}/`;
21
+ function cdnBase() {
22
+ return (process.env.MEDIA_CDN_BASE ||
23
+ process.env.NEXT_PUBLIC_MEDIA_CDN_BASE ||
24
+ "https://cdn.vidspotai.com").replace(/\/+$/, "");
25
+ }
26
+ /**
27
+ * Rewrite a Firebase Storage download URL or a GCS V4 signed URL (for our
28
+ * bucket) to the CDN host. Non-matching URLs are returned untouched.
29
+ *
30
+ * @param visibility Only affects GCS signed URLs — "public" (default) is a
31
+ * 1yr-immutable edge cache; "private" is a short edge TTL so a
32
+ * revoked/expired link stops being served within a day. Firebase download
33
+ * URLs are always treated as public.
34
+ */
35
+ function toCdnUrl(url, opts) {
36
+ const base = cdnBase();
37
+ if (!url || !base)
38
+ return url;
39
+ if (url.startsWith(FIREBASE_STORAGE_HOST)) {
40
+ return base + url.slice(FIREBASE_STORAGE_HOST.length);
41
+ }
42
+ if (url.startsWith(GCS_SIGNED_PREFIX)) {
43
+ const rest = url.slice(GCS_HOST.length); // "/<bucket>/<object>?<signed>"
44
+ const seg = opts?.visibility === "private" ? "gcs-priv" : "gcs-pub";
45
+ return `${base}/${seg}${rest}`;
46
+ }
47
+ return url;
48
+ }
@@ -0,0 +1,6 @@
1
+ export * from "./StorageBackend";
2
+ export * from "./GcsBackend";
3
+ export * from "./R2Backend";
4
+ export * from "./MediaStorage";
5
+ export * from "./cdnUrl";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/libs/storage/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./StorageBackend"), exports);
18
+ __exportStar(require("./GcsBackend"), exports);
19
+ __exportStar(require("./R2Backend"), exports);
20
+ __exportStar(require("./MediaStorage"), exports);
21
+ __exportStar(require("./cdnUrl"), exports);
@@ -31,6 +31,33 @@ export interface IBrandKitModel {
31
31
  * talking-head-avatar strategy. Planner injects into PlannedScene.avatarFaceUrl.
32
32
  */
33
33
  presenterFaceUrl?: string;
34
+ /**
35
+ * Trained hosted-avatar likenesses ("create your own avatar" — Reach
36
+ * Phase 4). Each entry backs one `ISupportsReplica.createReplica` call;
37
+ * once `status: "ready"`, `replicaId` is used directly as a template's
38
+ * `hostedAvatarId` for that `engine`.
39
+ */
40
+ avatarReplicas?: IAvatarReplica[];
41
+ createdAt: string;
42
+ updatedAt: string;
43
+ }
44
+ export interface IAvatarReplica {
45
+ /** Stable per-entry id (uuid), minted at creation — NOT the provider's replicaId. */
46
+ id: string;
47
+ engine: "heygen" | "tavus";
48
+ /** Which avatar model this replica renders through (e.g. heygen-avatar / tavus-avatar). */
49
+ modelKey: string;
50
+ /** Provider-scoped id — once ready, pass straight through as `hostedAvatarId`. */
51
+ replicaId: string;
52
+ /** Opaque per-engine bookkeeping round-tripped to `checkReplicaStatus` unchanged. */
53
+ providerRef?: string;
54
+ status: "training" | "pending_consent" | "ready" | "failed";
55
+ /** Hosted consent page the subject must open (HeyGen); absent for engines
56
+ * that capture consent as part of training itself (Tavus). */
57
+ consentUrl?: string;
58
+ errorMessage?: string;
59
+ /** User-facing label, e.g. "My avatar". */
60
+ name?: string;
34
61
  createdAt: string;
35
62
  updatedAt: string;
36
63
  }
@@ -1 +1 @@
1
- {"version":3,"file":"agent.model.d.ts","sourceRoot":"","sources":["../../src/models/agent.model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.model.d.ts","sourceRoot":"","sources":["../../src/models/agent.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oDAAoD,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AAC/F,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAErF;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8BAA8B;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qCAAqC;IACrC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,4CAA4C;IAC5C,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,uCAAuC;IACvC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;OAKG;IACH,cAAc,CAAC,EAAE,cAAc,EAAE,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,qFAAqF;IACrF,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC3B,2FAA2F;IAC3F,QAAQ,EAAE,MAAM,CAAC;IACjB,kFAAkF;IAClF,SAAS,EAAE,MAAM,CAAC;IAClB,qFAAqF;IACrF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,UAAU,GAAG,iBAAiB,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC5D;mEAC+D;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2CAA2C;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAE3C,MAAM,WAAW,iBAAiB;IAChC;;;;;OAKG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,gEAAgE;IAChE,KAAK,EAAE,OAAO,CAAC;IACf,8BAA8B;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,yCAAyC;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,+CAA+C;IAC/C,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,cAAc,EAAE,iBAAiB,EAAE,CAAC;IACpC,2EAA2E;IAC3E,cAAc,EAAE,iBAAiB,EAAE,CAAC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,2BAA2B,GACnC,MAAM,GACN,MAAM,GACN,OAAO,GACP,WAAW,GACX,MAAM,GACN,cAAc,CAAC;AAEnB,eAAO,MAAM,+BAA+B,EAAE,aAAa,CAAC,2BAA2B,CAOtF,CAAC;AAEF;;;;;GAKG;AACH;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAC1B,iBAAiB,GACjB,wBAAwB,GACxB,cAAc,GACd,gBAAgB,GAEhB,cAAc,GACd,eAAe,GACf,cAAc,GACd,cAAc,GAEd,eAAe,GACf,sBAAsB,GAEtB,uBAAuB,GACvB,gBAAgB,GAChB,gBAAgB,GAChB,qBAAqB,GACrB,WAAW,CAAC;AAEhB,MAAM,WAAW,yBAAyB;IACxC,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,kBAAkB,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC9E,oFAAoF;IACpF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,6EAA6E;IAC7E,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,4DAA4D;IAC5D,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;IACtC,IAAI,EAAE,2BAA2B,CAAC;IAClC,yBAAyB;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yFAAyF;IACzF,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,6EAA6E;IAC7E,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,gDAAgD;IAChD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,yEAAyE;IACzE,QAAQ,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC;IACnC,sEAAsE;IACtE,YAAY,CAAC,EAAE,yBAAyB,CAAC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,wBAAwB;IACvC,oBAAoB;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,kBAAkB,CAAC;IACzB;;kDAE8C;IAC9C,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC9E,gFAAgF;IAChF,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,MAAM,MAAM,SAAS,GACjB,gBAAgB,GAChB,cAAc,GACd,4BAA4B,GAC5B,UAAU,CAAC;AAEf;;;;;;;;GAQG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;;;;OAOG;IACH,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,eAAe,GAAG,QAAQ,CAAC;IAC1D,iFAAiF;IACjF,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,gFAAgF;IAChF,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,8CAA8C;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,yFAAyF;IACzF,WAAW,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kFAAkF;IAClF,KAAK,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,oDAAoD;IACpD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAClC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC;;;;OAIG;IACH,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;IACzB;;;OAGG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B;;;;OAIG;IACH,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;IACzB,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,WAAW,GAAG,iBAAiB,GAAG,UAAU,GAAG,QAAQ,CAAC;IACtF;;;;;;;;;;;;OAYG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IACjC;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,4CAA4C;IAC5C,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,yCAAyC;IACzC,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B;;;;;;;OAOG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC;;;;;;OAMG;IACH,UAAU,CAAC,EAAE;QACX,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,gBAAgB,CAAC;QACxB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,kDAAkD;IAClD,UAAU,CAAC,EAAE;QACX,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC;QAC1C,UAAU,EAAE,MAAM,CAAC;QACnB;iFACyE;QACzE,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF;;+EAE2E;IAC3E,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;GAMG;AAEH,0FAA0F;AAC1F,MAAM,MAAM,qBAAqB,GAC7B;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GACvC;IACE,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,UAAU,CAAC;IACvD,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,GACD;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,WAAW,GAAG,UAAU,CAAA;CAAE,GAIrD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACtD;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,CAAC;AAE3B,uFAAuF;AACvF,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,QAAQ,CAAC;IAClF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0DAA0D;IAC1D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gGAAgG;IAChG,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0HAA0H;IAC1H,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,cAAc,CAAC,EACX,WAAW,GACX,YAAY,GACZ,YAAY,GACZ,QAAQ,GACR,MAAM,GACN,OAAO,GACP,OAAO,GACP,SAAS,CAAC;KACf,CAAC;IAEF,6FAA6F;IAC7F,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wFAAwF;IACxF,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,yFAAyF;IACzF,aAAa,CAAC,EAAE,MAAM,GAAG,mBAAmB,GAAG,OAAO,GAAG,cAAc,GAAG,QAAQ,CAAC;IACnF,iFAAiF;IACjF,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,8DAA8D;IAC9D,YAAY,EAAE,MAAM,CAAC;IACrB,0EAA0E;IAC1E,UAAU,EAAE,MAAM,CAAC;IACnB,gFAAgF;IAChF,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,qFAAqF;IACrF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sDAAsD;IACtD,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,gBAAgB,CAAC;IACvB,SAAS,EAAE,sBAAsB,EAAE,CAAC;IACpC,uDAAuD;IACvD,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,oFAAoF;IACpF,SAAS,EAAE,KAAK,CAAC;QACf,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,OAAO,CAAC;QACf,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC,CAAC;IACH,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;;;;;;;;;;;;;OAkBG;IACH,MAAM,EACF,QAAQ,GACR,WAAW,GACX,SAAS,GACT,WAAW,GACX,QAAQ,GACR,mBAAmB,GACnB,WAAW,GACX,QAAQ,GACR,WAAW,GACX,SAAS,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAG5B,2HAA2H;IAC3H,YAAY,CAAC,EAAE,qBAAqB,CAAC;IACrC,yEAAyE;IACzE,QAAQ,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC/B,0HAA0H;IAC1H,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2GAA2G;IAC3G,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,yFAAyF;IACzF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,4EAA4E;IAC5E,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,mFAAmF;IACnF,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wGAAwG;IACxG,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,uEAAuE;IACvE,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB;;;;OAIG;IACH,eAAe,CAAC,EAAE,qBAAqB,CAAC;IACxC;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;IAC3C,gEAAgE;IAChE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,KAAK,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;IACH,wGAAwG;IACxG,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB"}
@@ -14,6 +14,7 @@ export * from "./demoVideoProject.model";
14
14
  export * from "./githubConnection.model";
15
15
  export * from "./productConnection.model";
16
16
  export * from "./outreach.model";
17
+ export * from "./outreachIntegration.model";
17
18
  export * from "./videoQaJob.model";
18
19
  export * from "./organization.model";
19
20
  export * from "./communitySeed.model";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC"}
@@ -30,6 +30,7 @@ __exportStar(require("./demoVideoProject.model"), exports);
30
30
  __exportStar(require("./githubConnection.model"), exports);
31
31
  __exportStar(require("./productConnection.model"), exports);
32
32
  __exportStar(require("./outreach.model"), exports);
33
+ __exportStar(require("./outreachIntegration.model"), exports);
33
34
  __exportStar(require("./videoQaJob.model"), exports);
34
35
  __exportStar(require("./organization.model"), exports);
35
36
  __exportStar(require("./communitySeed.model"), exports);
@@ -11,7 +11,7 @@ import type { VideoPlan } from "../schemas/videoPlan.schema";
11
11
  * /videoViews/{viewId} — IVideoViewModel (engagement events)
12
12
  */
13
13
  /** How the base video is generated for this template. */
14
- export type OutreachVideoSource = "avatar" | "produced_scene";
14
+ export type OutreachVideoSource = "avatar" | "produced_scene" | "recording";
15
15
  /**
16
16
  * Outreach template — the reusable blueprint for a class of personalized videos.
17
17
  * Contains a `scriptTemplate` with `{{variable}}` placeholders; the controller
@@ -43,6 +43,12 @@ export interface IOutreachTemplateModel {
43
43
  * — no re-planning per recipient. Absent for `avatar` templates.
44
44
  */
45
45
  scenePlan?: VideoPlan;
46
+ /**
47
+ * The single base recording (webcam/screen capture, uploaded once via the
48
+ * in-app recorder) reused across every recipient — no AI regeneration. Each
49
+ * recipient's video is this same clip with a "For {name}" badge burned in.
50
+ */
51
+ recordingUrl?: string;
46
52
  /**
47
53
  * Default locale (BCP-47, e.g. "en", "fr", "id") used when a recipient has no
48
54
  * per-recipient `recipientLocale`. Applies to both avatar TTS and produced
@@ -1 +1 @@
1
- {"version":3,"file":"outreach.model.d.ts","sourceRoot":"","sources":["../../src/models/outreach.model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"outreach.model.d.ts","sourceRoot":"","sources":["../../src/models/outreach.model.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import { FieldValue } from "firebase-admin/firestore";
2
+ /**
3
+ * VidSpot Reach — Phase 7 "self-serve API integration". Two independent
4
+ * pieces: per-user API keys (an alternative auth path to a Firebase ID token,
5
+ * scoped to /v1/outreach/* — see authMiddleware) and outbound webhook
6
+ * subscriptions (campaign.completed / video.ready / recipient.viewed), so
7
+ * external tools (Zapier, Outreach.io, Salesloft, custom scripts) can
8
+ * integrate without native connectors.
9
+ */
10
+ export interface IApiKeyModel {
11
+ id: string;
12
+ userId: string;
13
+ /** User-facing label, e.g. "Zapier". */
14
+ name: string;
15
+ /** SHA-256 hex digest of the full key. The plaintext is never persisted —
16
+ * it's shown to the user exactly once, at creation time. */
17
+ keyHash: string;
18
+ /** First 8 chars after the "vsk_" prefix — enough for the user to tell keys
19
+ * apart in a list without re-exposing the secret. */
20
+ keyPrefix: string;
21
+ createdAt: FieldValue | string;
22
+ lastUsedAt?: FieldValue | string;
23
+ revokedAt?: FieldValue | string;
24
+ }
25
+ export type OutreachWebhookEvent = "campaign.completed" | "video.ready" | "recipient.viewed";
26
+ export declare const OUTREACH_WEBHOOK_EVENTS: readonly OutreachWebhookEvent[];
27
+ export interface IWebhookSubscriptionModel {
28
+ id: string;
29
+ userId: string;
30
+ url: string;
31
+ events: OutreachWebhookEvent[];
32
+ /** Shared secret used to HMAC-SHA256-sign every delivered payload
33
+ * (X-VidSpot-Signature header, "sha256=<hex>") — shown once at creation. */
34
+ secret: string;
35
+ active: boolean;
36
+ createdAt: FieldValue | string;
37
+ updatedAt: FieldValue | string;
38
+ lastDeliveryAt?: FieldValue | string;
39
+ lastDeliveryStatus?: "success" | "failed";
40
+ lastDeliveryError?: string;
41
+ }
42
+ //# sourceMappingURL=outreachIntegration.model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outreachIntegration.model.d.ts","sourceRoot":"","sources":["../../src/models/outreachIntegration.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD;;;;;;;GAOG;AAIH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb;iEAC6D;IAC7D,OAAO,EAAE,MAAM,CAAC;IAChB;0DACsD;IACtD,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,UAAU,GAAG,MAAM,CAAC;IAC/B,UAAU,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;IACjC,SAAS,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;CACjC;AAID,MAAM,MAAM,oBAAoB,GAC5B,oBAAoB,GACpB,aAAa,GACb,kBAAkB,CAAC;AAEvB,eAAO,MAAM,uBAAuB,EAAE,SAAS,oBAAoB,EAIlE,CAAC;AAEF,MAAM,WAAW,yBAAyB;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,oBAAoB,EAAE,CAAC;IAC/B;iFAC6E;IAC7E,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,UAAU,GAAG,MAAM,CAAC;IAC/B,SAAS,EAAE,UAAU,GAAG,MAAM,CAAC;IAC/B,cAAc,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;IACrC,kBAAkB,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC1C,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OUTREACH_WEBHOOK_EVENTS = void 0;
4
+ exports.OUTREACH_WEBHOOK_EVENTS = [
5
+ "campaign.completed",
6
+ "video.ready",
7
+ "recipient.viewed",
8
+ ];
@@ -195,7 +195,13 @@ export interface IVideoJobModel {
195
195
  multiShot?: MultiShot;
196
196
  personGeneration?: "allow_all" | "allow_adult" | "dont_allow";
197
197
  publicFigureThreshold?: "auto" | "low";
198
- contentType?: "video" | "avatar-video";
198
+ contentType?: "video" | "avatar-video" | "recording-personalize";
199
+ /**
200
+ * Reach "record one video once" jobs only: the recipient's display name to
201
+ * burn onto `inputVideoUrl` (the template's base recording) as a "For
202
+ * {name}" badge. See recordingPersonalizer.ts.
203
+ */
204
+ recipientDisplayName?: string;
199
205
  ttsText?: string;
200
206
  ttsProvider?: string;
201
207
  ttsVoiceId?: string;