clhq-postgres-module 1.1.0-alpha.111 → 1.1.0-alpha.113

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.
@@ -0,0 +1,50 @@
1
+ import { User } from './user.entity';
2
+ import { EditorProject } from './editor-project.entity';
3
+ export declare enum RenderStatus {
4
+ QUEUED = "queued",
5
+ PENDING = "pending",
6
+ RENDERING = "rendering",
7
+ COMPLETED = "completed",
8
+ FAILED = "failed"
9
+ }
10
+ export declare class RemotionRender {
11
+ id: string;
12
+ projectId: string;
13
+ project?: EditorProject;
14
+ userId: string;
15
+ user?: User;
16
+ workspaceId?: string;
17
+ renderId?: string;
18
+ status: RenderStatus;
19
+ bucketName: string;
20
+ functionName: string;
21
+ region: string;
22
+ outputFileUrl?: string;
23
+ errorMessage?: string;
24
+ retryCount: number;
25
+ compositionId?: string;
26
+ inputProps?: Record<string, any>;
27
+ renderMetadata?: {
28
+ title?: string;
29
+ width?: number;
30
+ height?: number;
31
+ fps?: number;
32
+ durationInFrames?: number;
33
+ totalDuration?: number;
34
+ };
35
+ creditsReserved?: number;
36
+ creditsConsumed?: number;
37
+ reservationId?: string;
38
+ renderCostMetadata?: {
39
+ operationType?: string;
40
+ baseCost?: number;
41
+ durationModifierCost?: number;
42
+ videoDurationSeconds?: number;
43
+ resolution?: string;
44
+ lambdaDurationMs?: number;
45
+ lambdaBilledDurationMs?: number;
46
+ estimatedAwsCostCents?: number;
47
+ };
48
+ createdAt: Date;
49
+ updatedAt: Date;
50
+ }
@@ -0,0 +1,144 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.RemotionRender = exports.RenderStatus = void 0;
13
+ const typeorm_1 = require("typeorm");
14
+ const user_entity_1 = require("./user.entity");
15
+ const editor_project_entity_1 = require("./editor-project.entity");
16
+ var RenderStatus;
17
+ (function (RenderStatus) {
18
+ RenderStatus["QUEUED"] = "queued";
19
+ RenderStatus["PENDING"] = "pending";
20
+ RenderStatus["RENDERING"] = "rendering";
21
+ RenderStatus["COMPLETED"] = "completed";
22
+ RenderStatus["FAILED"] = "failed";
23
+ })(RenderStatus || (exports.RenderStatus = RenderStatus = {}));
24
+ let RemotionRender = class RemotionRender {
25
+ };
26
+ exports.RemotionRender = RemotionRender;
27
+ __decorate([
28
+ (0, typeorm_1.PrimaryGeneratedColumn)('uuid'),
29
+ __metadata("design:type", String)
30
+ ], RemotionRender.prototype, "id", void 0);
31
+ __decorate([
32
+ (0, typeorm_1.Column)({ name: 'project_id' }),
33
+ __metadata("design:type", String)
34
+ ], RemotionRender.prototype, "projectId", void 0);
35
+ __decorate([
36
+ (0, typeorm_1.ManyToOne)(() => editor_project_entity_1.EditorProject, { nullable: true }),
37
+ (0, typeorm_1.JoinColumn)({ name: 'project_id' }),
38
+ __metadata("design:type", editor_project_entity_1.EditorProject)
39
+ ], RemotionRender.prototype, "project", void 0);
40
+ __decorate([
41
+ (0, typeorm_1.Column)({ name: 'user_id' }),
42
+ __metadata("design:type", String)
43
+ ], RemotionRender.prototype, "userId", void 0);
44
+ __decorate([
45
+ (0, typeorm_1.ManyToOne)(() => user_entity_1.User, { nullable: true }),
46
+ (0, typeorm_1.JoinColumn)({ name: 'user_id' }),
47
+ __metadata("design:type", user_entity_1.User)
48
+ ], RemotionRender.prototype, "user", void 0);
49
+ __decorate([
50
+ (0, typeorm_1.Column)({ name: 'workspace_id', nullable: true }),
51
+ __metadata("design:type", String)
52
+ ], RemotionRender.prototype, "workspaceId", void 0);
53
+ __decorate([
54
+ (0, typeorm_1.Column)({ name: 'render_id', nullable: true }),
55
+ __metadata("design:type", String)
56
+ ], RemotionRender.prototype, "renderId", void 0);
57
+ __decorate([
58
+ (0, typeorm_1.Column)({
59
+ type: 'enum',
60
+ enum: RenderStatus,
61
+ default: RenderStatus.PENDING,
62
+ }),
63
+ __metadata("design:type", String)
64
+ ], RemotionRender.prototype, "status", void 0);
65
+ __decorate([
66
+ (0, typeorm_1.Column)({ name: 'bucket_name' }),
67
+ __metadata("design:type", String)
68
+ ], RemotionRender.prototype, "bucketName", void 0);
69
+ __decorate([
70
+ (0, typeorm_1.Column)({ name: 'function_name' }),
71
+ __metadata("design:type", String)
72
+ ], RemotionRender.prototype, "functionName", void 0);
73
+ __decorate([
74
+ (0, typeorm_1.Column)({ default: 'ap-southeast-2' }),
75
+ __metadata("design:type", String)
76
+ ], RemotionRender.prototype, "region", void 0);
77
+ __decorate([
78
+ (0, typeorm_1.Column)({ name: 'output_file_url', type: 'text', nullable: true }),
79
+ __metadata("design:type", String)
80
+ ], RemotionRender.prototype, "outputFileUrl", void 0);
81
+ __decorate([
82
+ (0, typeorm_1.Column)({ name: 'error_message', type: 'text', nullable: true }),
83
+ __metadata("design:type", String)
84
+ ], RemotionRender.prototype, "errorMessage", void 0);
85
+ __decorate([
86
+ (0, typeorm_1.Column)({ name: 'retry_count', default: 0 }),
87
+ __metadata("design:type", Number)
88
+ ], RemotionRender.prototype, "retryCount", void 0);
89
+ __decorate([
90
+ (0, typeorm_1.Column)({ name: 'composition_id', nullable: true }),
91
+ __metadata("design:type", String)
92
+ ], RemotionRender.prototype, "compositionId", void 0);
93
+ __decorate([
94
+ (0, typeorm_1.Column)({ name: 'input_props', type: 'jsonb', nullable: true }),
95
+ __metadata("design:type", Object)
96
+ ], RemotionRender.prototype, "inputProps", void 0);
97
+ __decorate([
98
+ (0, typeorm_1.Column)({ name: 'render_metadata', type: 'jsonb', nullable: true }),
99
+ __metadata("design:type", Object)
100
+ ], RemotionRender.prototype, "renderMetadata", void 0);
101
+ __decorate([
102
+ (0, typeorm_1.Column)({
103
+ name: 'credits_reserved',
104
+ type: 'decimal',
105
+ precision: 10,
106
+ scale: 2,
107
+ nullable: true,
108
+ }),
109
+ __metadata("design:type", Number)
110
+ ], RemotionRender.prototype, "creditsReserved", void 0);
111
+ __decorate([
112
+ (0, typeorm_1.Column)({
113
+ name: 'credits_consumed',
114
+ type: 'decimal',
115
+ precision: 10,
116
+ scale: 2,
117
+ nullable: true,
118
+ }),
119
+ __metadata("design:type", Number)
120
+ ], RemotionRender.prototype, "creditsConsumed", void 0);
121
+ __decorate([
122
+ (0, typeorm_1.Column)({ name: 'reservation_id', type: 'uuid', nullable: true }),
123
+ __metadata("design:type", String)
124
+ ], RemotionRender.prototype, "reservationId", void 0);
125
+ __decorate([
126
+ (0, typeorm_1.Column)({ name: 'render_cost_metadata', type: 'jsonb', nullable: true }),
127
+ __metadata("design:type", Object)
128
+ ], RemotionRender.prototype, "renderCostMetadata", void 0);
129
+ __decorate([
130
+ (0, typeorm_1.CreateDateColumn)({ name: 'created_at' }),
131
+ __metadata("design:type", Date)
132
+ ], RemotionRender.prototype, "createdAt", void 0);
133
+ __decorate([
134
+ (0, typeorm_1.UpdateDateColumn)({ name: 'updated_at' }),
135
+ __metadata("design:type", Date)
136
+ ], RemotionRender.prototype, "updatedAt", void 0);
137
+ exports.RemotionRender = RemotionRender = __decorate([
138
+ (0, typeorm_1.Entity)('remotion_renders'),
139
+ (0, typeorm_1.Index)(['projectId']),
140
+ (0, typeorm_1.Index)(['userId']),
141
+ (0, typeorm_1.Index)(['renderId']),
142
+ (0, typeorm_1.Index)(['status']),
143
+ (0, typeorm_1.Index)(['reservationId'])
144
+ ], RemotionRender);
@@ -33,3 +33,4 @@ export * from './ai-embedding.entity';
33
33
  export * from './metadata-activity-log.entity';
34
34
  export * from './project-scene-job.entity';
35
35
  export * from './project-scene.entity';
36
+ export * from './RemotionRender';
@@ -51,3 +51,4 @@ __exportStar(require("./ai-embedding.entity"), exports);
51
51
  __exportStar(require("./metadata-activity-log.entity"), exports);
52
52
  __exportStar(require("./project-scene-job.entity"), exports);
53
53
  __exportStar(require("./project-scene.entity"), exports);
54
+ __exportStar(require("./RemotionRender"), exports);
@@ -0,0 +1,15 @@
1
+ import { Repository } from 'typeorm';
2
+ import { BaseRepository } from './base.repository';
3
+ import { RemotionRender, RenderStatus } from '../entities/RemotionRender';
4
+ export declare class RemotionRenderRepository extends BaseRepository<RemotionRender> {
5
+ private readonly remotionRenderRepository;
6
+ constructor(remotionRenderRepository: Repository<RemotionRender>);
7
+ createRender(data: Partial<RemotionRender>): Promise<RemotionRender>;
8
+ findByRenderId(renderId: string): Promise<RemotionRender | null>;
9
+ findByProjectId(projectId: string): Promise<RemotionRender[]>;
10
+ findLatestByProjectId(projectId: string): Promise<RemotionRender | null>;
11
+ updateStatus(id: string, status: RenderStatus, additionalData?: Partial<RemotionRender>): Promise<RemotionRender | null>;
12
+ markCompleted(id: string, outputFileUrl: string): Promise<RemotionRender | null>;
13
+ markFailed(id: string, errorMessage: string): Promise<RemotionRender | null>;
14
+ incrementRetryCount(id: string): Promise<RemotionRender | null>;
15
+ }
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.RemotionRenderRepository = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const typeorm_1 = require("@nestjs/typeorm");
18
+ const typeorm_2 = require("typeorm");
19
+ const base_repository_1 = require("./base.repository");
20
+ const RemotionRender_1 = require("../entities/RemotionRender");
21
+ let RemotionRenderRepository = class RemotionRenderRepository extends base_repository_1.BaseRepository {
22
+ constructor(remotionRenderRepository) {
23
+ super(remotionRenderRepository);
24
+ this.remotionRenderRepository = remotionRenderRepository;
25
+ }
26
+ async createRender(data) {
27
+ const render = this.remotionRenderRepository.create(data);
28
+ return this.remotionRenderRepository.save(render);
29
+ }
30
+ async findByRenderId(renderId) {
31
+ return this.remotionRenderRepository.findOne({ where: { renderId } });
32
+ }
33
+ async findByProjectId(projectId) {
34
+ return this.remotionRenderRepository.find({
35
+ where: { projectId },
36
+ order: { createdAt: 'DESC' },
37
+ });
38
+ }
39
+ async findLatestByProjectId(projectId) {
40
+ return this.remotionRenderRepository.findOne({
41
+ where: { projectId },
42
+ order: { createdAt: 'DESC' },
43
+ });
44
+ }
45
+ async updateStatus(id, status, additionalData) {
46
+ await this.remotionRenderRepository.update(id, { status, ...additionalData });
47
+ return this.findById(id);
48
+ }
49
+ async markCompleted(id, outputFileUrl) {
50
+ return this.updateStatus(id, RemotionRender_1.RenderStatus.COMPLETED, { outputFileUrl });
51
+ }
52
+ async markFailed(id, errorMessage) {
53
+ return this.updateStatus(id, RemotionRender_1.RenderStatus.FAILED, { errorMessage });
54
+ }
55
+ async incrementRetryCount(id) {
56
+ await this.remotionRenderRepository.increment({ id }, 'retryCount', 1);
57
+ return this.findById(id);
58
+ }
59
+ };
60
+ exports.RemotionRenderRepository = RemotionRenderRepository;
61
+ exports.RemotionRenderRepository = RemotionRenderRepository = __decorate([
62
+ (0, common_1.Injectable)(),
63
+ __param(0, (0, typeorm_1.InjectRepository)(RemotionRender_1.RemotionRender)),
64
+ __metadata("design:paramtypes", [typeorm_2.Repository])
65
+ ], RemotionRenderRepository);
@@ -30,3 +30,4 @@ export { UserContextRepository } from './user-context.repository';
30
30
  export { AiEmbeddingRepository } from './ai-embedding.repository';
31
31
  export { MetadataActivityLogRepository } from './metadata-activity-log.repository';
32
32
  export { ProjectSceneRepository } from './project-scene.repository';
33
+ export { RemotionRenderRepository } from './RemotionRenderRepository';
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ProjectSceneRepository = exports.MetadataActivityLogRepository = exports.AiEmbeddingRepository = exports.UserContextRepository = exports.ProjectMetadataRepository = exports.AssetMetadataRepository = exports.AudioWaveformRepository = exports.VideoFilmstripRepository = exports.VideoRenderRepository = exports.VideoTranscodeRepository = exports.EffectRepository = exports.AssetRepository = exports.AiUsageRepository = exports.ReferralEventRepository = exports.RewardRuleRepository = exports.CreditTransactionRepository = exports.StripeWebhookRepository = exports.PaymentTransactionRepository = exports.SubscriptionUsageRepository = exports.UserSubscriptionRepository = exports.PlanRepository = exports.SubscriptionPlanRepository = exports.CommentRepository = exports.EditorProjectRepository = exports.InviteRepository = exports.WorkspaceMemberRepository = exports.WorkspaceRepository = exports.AuthSessionRepository = exports.UserOnboardingRepository = exports.UserProfileRepository = exports.UserRepository = exports.BaseRepository = void 0;
3
+ exports.RemotionRenderRepository = exports.ProjectSceneRepository = exports.MetadataActivityLogRepository = exports.AiEmbeddingRepository = exports.UserContextRepository = exports.ProjectMetadataRepository = exports.AssetMetadataRepository = exports.AudioWaveformRepository = exports.VideoFilmstripRepository = exports.VideoRenderRepository = exports.VideoTranscodeRepository = exports.EffectRepository = exports.AssetRepository = exports.AiUsageRepository = exports.ReferralEventRepository = exports.RewardRuleRepository = exports.CreditTransactionRepository = exports.StripeWebhookRepository = exports.PaymentTransactionRepository = exports.SubscriptionUsageRepository = exports.UserSubscriptionRepository = exports.PlanRepository = exports.SubscriptionPlanRepository = exports.CommentRepository = exports.EditorProjectRepository = exports.InviteRepository = exports.WorkspaceMemberRepository = exports.WorkspaceRepository = exports.AuthSessionRepository = exports.UserOnboardingRepository = exports.UserProfileRepository = exports.UserRepository = exports.BaseRepository = void 0;
4
4
  var base_repository_1 = require("./base.repository");
5
5
  Object.defineProperty(exports, "BaseRepository", { enumerable: true, get: function () { return base_repository_1.BaseRepository; } });
6
6
  var user_repository_1 = require("./user.repository");
@@ -65,3 +65,5 @@ var metadata_activity_log_repository_1 = require("./metadata-activity-log.reposi
65
65
  Object.defineProperty(exports, "MetadataActivityLogRepository", { enumerable: true, get: function () { return metadata_activity_log_repository_1.MetadataActivityLogRepository; } });
66
66
  var project_scene_repository_1 = require("./project-scene.repository");
67
67
  Object.defineProperty(exports, "ProjectSceneRepository", { enumerable: true, get: function () { return project_scene_repository_1.ProjectSceneRepository; } });
68
+ var RemotionRenderRepository_1 = require("./RemotionRenderRepository");
69
+ Object.defineProperty(exports, "RemotionRenderRepository", { enumerable: true, get: function () { return RemotionRenderRepository_1.RemotionRenderRepository; } });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "clhq-postgres-module",
3
- "version": "1.1.0-alpha.111",
3
+ "version": "1.1.0-alpha.113",
4
4
  "description": "PostgreSQL module using TypeORM for Clippy",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",