clhq-postgres-module 1.1.0-alpha.93 → 1.1.0-alpha.95

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.
@@ -21,6 +21,7 @@ export declare class Asset {
21
21
  uploadedBy: string;
22
22
  user: User;
23
23
  categoryId: string;
24
+ uniqueId: string;
24
25
  name: string;
25
26
  originalFilename: string;
26
27
  fileType: string;
@@ -58,6 +58,10 @@ __decorate([
58
58
  (0, typeorm_1.Column)({ name: 'category_id', type: 'uuid', nullable: true }),
59
59
  __metadata("design:type", String)
60
60
  ], Asset.prototype, "categoryId", void 0);
61
+ __decorate([
62
+ (0, typeorm_1.Column)({ name: 'unique_id', type: 'varchar', length: 255, nullable: true }),
63
+ __metadata("design:type", String)
64
+ ], Asset.prototype, "uniqueId", void 0);
61
65
  __decorate([
62
66
  (0, typeorm_1.Column)({ type: 'varchar', length: 255 }),
63
67
  __metadata("design:type", String)
@@ -0,0 +1,27 @@
1
+ export declare enum AudioWaveformStatus {
2
+ NEW = "NEW",
3
+ PROCESSING = "PROCESSING",
4
+ SUCCESS = "SUCCESS",
5
+ ERROR = "ERROR"
6
+ }
7
+ export interface AudioWaveformData {
8
+ waveformUrl?: string;
9
+ waveformKey?: string;
10
+ peaks?: number[];
11
+ duration?: number;
12
+ sampleRate?: number;
13
+ channels?: number;
14
+ samplesPerSecond?: number;
15
+ totalSamples?: number;
16
+ error?: string;
17
+ }
18
+ export declare class AudioWaveform {
19
+ id: string;
20
+ projectId: string;
21
+ audioS3Key: string;
22
+ status: AudioWaveformStatus;
23
+ data: AudioWaveformData;
24
+ queueStatus: string;
25
+ createdAt: Date;
26
+ updatedAt: Date;
27
+ }
@@ -0,0 +1,64 @@
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.AudioWaveform = exports.AudioWaveformStatus = void 0;
13
+ const typeorm_1 = require("typeorm");
14
+ var AudioWaveformStatus;
15
+ (function (AudioWaveformStatus) {
16
+ AudioWaveformStatus["NEW"] = "NEW";
17
+ AudioWaveformStatus["PROCESSING"] = "PROCESSING";
18
+ AudioWaveformStatus["SUCCESS"] = "SUCCESS";
19
+ AudioWaveformStatus["ERROR"] = "ERROR";
20
+ })(AudioWaveformStatus || (exports.AudioWaveformStatus = AudioWaveformStatus = {}));
21
+ let AudioWaveform = class AudioWaveform {
22
+ };
23
+ exports.AudioWaveform = AudioWaveform;
24
+ __decorate([
25
+ (0, typeorm_1.PrimaryColumn)({ type: 'varchar', length: 255 }),
26
+ __metadata("design:type", String)
27
+ ], AudioWaveform.prototype, "id", void 0);
28
+ __decorate([
29
+ (0, typeorm_1.Column)({ name: 'project_id', type: 'varchar', length: 255, nullable: true }),
30
+ __metadata("design:type", String)
31
+ ], AudioWaveform.prototype, "projectId", void 0);
32
+ __decorate([
33
+ (0, typeorm_1.Column)({ name: 'audio_s3_key', type: 'text', nullable: true }),
34
+ __metadata("design:type", String)
35
+ ], AudioWaveform.prototype, "audioS3Key", void 0);
36
+ __decorate([
37
+ (0, typeorm_1.Column)({
38
+ type: 'enum',
39
+ enum: AudioWaveformStatus,
40
+ default: AudioWaveformStatus.NEW,
41
+ }),
42
+ __metadata("design:type", String)
43
+ ], AudioWaveform.prototype, "status", void 0);
44
+ __decorate([
45
+ (0, typeorm_1.Column)({ type: 'jsonb', nullable: true }),
46
+ __metadata("design:type", Object)
47
+ ], AudioWaveform.prototype, "data", void 0);
48
+ __decorate([
49
+ (0, typeorm_1.Column)({ name: 'queue_status', type: 'varchar', length: 50, nullable: true }),
50
+ __metadata("design:type", String)
51
+ ], AudioWaveform.prototype, "queueStatus", void 0);
52
+ __decorate([
53
+ (0, typeorm_1.CreateDateColumn)({ name: 'created_at' }),
54
+ __metadata("design:type", Date)
55
+ ], AudioWaveform.prototype, "createdAt", void 0);
56
+ __decorate([
57
+ (0, typeorm_1.UpdateDateColumn)({ name: 'updated_at' }),
58
+ __metadata("design:type", Date)
59
+ ], AudioWaveform.prototype, "updatedAt", void 0);
60
+ exports.AudioWaveform = AudioWaveform = __decorate([
61
+ (0, typeorm_1.Entity)('audio_waveforms'),
62
+ (0, typeorm_1.Index)(['projectId']),
63
+ (0, typeorm_1.Index)(['status'])
64
+ ], AudioWaveform);
@@ -22,3 +22,4 @@ export * from './video-transcode.entity';
22
22
  export * from './video-render.entity';
23
23
  export * from './video-subtitle.entity';
24
24
  export * from './video-filmstrip.entity';
25
+ export * from './audio-waveform.entity';
@@ -40,3 +40,4 @@ __exportStar(require("./video-transcode.entity"), exports);
40
40
  __exportStar(require("./video-render.entity"), exports);
41
41
  __exportStar(require("./video-subtitle.entity"), exports);
42
42
  __exportStar(require("./video-filmstrip.entity"), exports);
43
+ __exportStar(require("./audio-waveform.entity"), exports);
@@ -7,6 +7,7 @@ export declare class AssetRepository extends BaseRepository<Asset> {
7
7
  findByWorkspace(workspaceId: string): Promise<Asset[]>;
8
8
  findByFileType(workspaceId: string, fileType: string): Promise<Asset[]>;
9
9
  findByUser(userId: string): Promise<Asset[]>;
10
+ findByUniqueId(uniqueId: string): Promise<Asset | null>;
10
11
  searchByName(workspaceId: string, searchTerm: string): Promise<Asset[]>;
11
12
  findByUploadedBy(userId: string): Promise<Asset[]>;
12
13
  findByWorkspaceId(workspaceId: string): Promise<Asset[]>;
@@ -14,6 +15,7 @@ export declare class AssetRepository extends BaseRepository<Asset> {
14
15
  updateUploadStatus(id: string, uploadStatus: string): Promise<Asset | null>;
15
16
  bulkUpdateUploadStatus(ids: string[], uploadStatus: string): Promise<void>;
16
17
  updateMetadata(id: string, metadata: Record<string, any>): Promise<Asset | null>;
18
+ updateProcessingMetadata(uniqueId: string, processingData: Record<string, any>): Promise<Asset | null>;
17
19
  getAll(): Promise<Asset[]>;
18
20
  findByUserOrLegacy(userId: string): Promise<Asset[]>;
19
21
  incrementUsageCount(id: string): Promise<void>;
@@ -44,6 +44,11 @@ let AssetRepository = class AssetRepository extends base_repository_1.BaseReposi
44
44
  order: { createdAt: 'DESC' }
45
45
  });
46
46
  }
47
+ async findByUniqueId(uniqueId) {
48
+ return this.assetRepository.findOne({
49
+ where: { uniqueId },
50
+ });
51
+ }
47
52
  async searchByName(workspaceId, searchTerm) {
48
53
  return this.assetRepository
49
54
  .createQueryBuilder('asset')
@@ -75,6 +80,21 @@ let AssetRepository = class AssetRepository extends base_repository_1.BaseReposi
75
80
  await this.assetRepository.update(id, { metadata });
76
81
  return this.findById(id);
77
82
  }
83
+ async updateProcessingMetadata(uniqueId, processingData) {
84
+ const asset = await this.findByUniqueId(uniqueId);
85
+ if (!asset)
86
+ return null;
87
+ const existingMetadata = asset.metadata || {};
88
+ const updatedMetadata = {
89
+ ...existingMetadata,
90
+ processing: {
91
+ ...existingMetadata.processing,
92
+ ...processingData,
93
+ },
94
+ };
95
+ await this.assetRepository.update(asset.id, { metadata: updatedMetadata });
96
+ return this.findById(asset.id);
97
+ }
78
98
  async getAll() {
79
99
  return this.assetRepository.find({
80
100
  order: { createdAt: 'DESC' },
@@ -0,0 +1,24 @@
1
+ import { Repository } from 'typeorm';
2
+ import { BaseRepository } from './base.repository';
3
+ import { AudioWaveform, AudioWaveformStatus, AudioWaveformData } from '../entities/audio-waveform.entity';
4
+ export declare class AudioWaveformRepository extends BaseRepository<AudioWaveform> {
5
+ private readonly audioWaveformRepository;
6
+ constructor(audioWaveformRepository: Repository<AudioWaveform>);
7
+ findByProjectId(projectId: string): Promise<AudioWaveform[]>;
8
+ findByStatus(status: AudioWaveformStatus): Promise<AudioWaveform[]>;
9
+ findByAudioS3Key(audioS3Key: string): Promise<AudioWaveform | null>;
10
+ updateWaveform(id: string, data: {
11
+ status?: AudioWaveformStatus;
12
+ audioS3Key?: string;
13
+ data?: AudioWaveformData;
14
+ queueStatus?: string;
15
+ }): Promise<AudioWaveform | null>;
16
+ createWithId(data: {
17
+ id: string;
18
+ projectId?: string;
19
+ audioS3Key?: string;
20
+ status?: AudioWaveformStatus;
21
+ data?: AudioWaveformData;
22
+ queueStatus?: string;
23
+ }): Promise<AudioWaveform>;
24
+ }
@@ -0,0 +1,57 @@
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.AudioWaveformRepository = void 0;
16
+ const typeorm_1 = require("typeorm");
17
+ const common_1 = require("@nestjs/common");
18
+ const typeorm_2 = require("@nestjs/typeorm");
19
+ const base_repository_1 = require("./base.repository");
20
+ const audio_waveform_entity_1 = require("../entities/audio-waveform.entity");
21
+ let AudioWaveformRepository = class AudioWaveformRepository extends base_repository_1.BaseRepository {
22
+ constructor(audioWaveformRepository) {
23
+ super(audioWaveformRepository);
24
+ this.audioWaveformRepository = audioWaveformRepository;
25
+ }
26
+ async findByProjectId(projectId) {
27
+ return this.audioWaveformRepository.find({
28
+ where: { projectId },
29
+ order: { createdAt: 'DESC' },
30
+ });
31
+ }
32
+ async findByStatus(status) {
33
+ return this.audioWaveformRepository.find({
34
+ where: { status },
35
+ order: { createdAt: 'DESC' },
36
+ });
37
+ }
38
+ async findByAudioS3Key(audioS3Key) {
39
+ return this.audioWaveformRepository.findOne({
40
+ where: { audioS3Key },
41
+ });
42
+ }
43
+ async updateWaveform(id, data) {
44
+ await this.audioWaveformRepository.update(id, data);
45
+ return this.findById(id);
46
+ }
47
+ async createWithId(data) {
48
+ const entity = this.audioWaveformRepository.create(data);
49
+ return this.audioWaveformRepository.save(entity);
50
+ }
51
+ };
52
+ exports.AudioWaveformRepository = AudioWaveformRepository;
53
+ exports.AudioWaveformRepository = AudioWaveformRepository = __decorate([
54
+ (0, common_1.Injectable)(),
55
+ __param(0, (0, typeorm_2.InjectRepository)(audio_waveform_entity_1.AudioWaveform)),
56
+ __metadata("design:paramtypes", [typeorm_1.Repository])
57
+ ], AudioWaveformRepository);
@@ -22,3 +22,4 @@ export { EffectRepository } from './effect.repository';
22
22
  export { VideoTranscodeRepository } from './video-transcode.repository';
23
23
  export { VideoRenderRepository } from './video-render.repository';
24
24
  export { VideoFilmstripRepository } from './video-filmstrip.repository';
25
+ export { AudioWaveformRepository } from './audio-waveform.repository';
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.VideoFilmstripRepository = exports.VideoRenderRepository = exports.VideoTranscodeRepository = exports.EffectRepository = exports.AssetRepository = exports.AiUsageRepository = 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.AudioWaveformRepository = exports.VideoFilmstripRepository = exports.VideoRenderRepository = exports.VideoTranscodeRepository = exports.EffectRepository = exports.AssetRepository = exports.AiUsageRepository = 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");
@@ -49,3 +49,5 @@ var video_render_repository_1 = require("./video-render.repository");
49
49
  Object.defineProperty(exports, "VideoRenderRepository", { enumerable: true, get: function () { return video_render_repository_1.VideoRenderRepository; } });
50
50
  var video_filmstrip_repository_1 = require("./video-filmstrip.repository");
51
51
  Object.defineProperty(exports, "VideoFilmstripRepository", { enumerable: true, get: function () { return video_filmstrip_repository_1.VideoFilmstripRepository; } });
52
+ var audio_waveform_repository_1 = require("./audio-waveform.repository");
53
+ Object.defineProperty(exports, "AudioWaveformRepository", { enumerable: true, get: function () { return audio_waveform_repository_1.AudioWaveformRepository; } });
@@ -35,6 +35,7 @@ const repositories = [
35
35
  _1.VideoTranscodeRepository,
36
36
  _1.VideoRenderRepository,
37
37
  _1.VideoFilmstripRepository,
38
+ _1.AudioWaveformRepository,
38
39
  ];
39
40
  const entities = [
40
41
  entities_1.User,
@@ -60,6 +61,7 @@ const entities = [
60
61
  entities_1.VideoTranscode,
61
62
  entities_1.VideoRender,
62
63
  entities_1.VideoFilmstrip,
64
+ entities_1.AudioWaveform,
63
65
  ];
64
66
  let RepositoryModule = class RepositoryModule {
65
67
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "clhq-postgres-module",
3
- "version": "1.1.0-alpha.93",
3
+ "version": "1.1.0-alpha.95",
4
4
  "description": "PostgreSQL module using TypeORM for Clippy",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",