clhq-dynamodb-module 1.1.0-alpha.90

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 (130) hide show
  1. package/dist/app.module.d.ts +2 -0
  2. package/dist/app.module.js +88 -0
  3. package/dist/common/enums/index.d.ts +1 -0
  4. package/dist/common/enums/index.js +17 -0
  5. package/dist/common/enums/project-enums.d.ts +13 -0
  6. package/dist/common/enums/project-enums.js +18 -0
  7. package/dist/common/user.controller.d.ts +12 -0
  8. package/dist/common/user.controller.js +102 -0
  9. package/dist/dbservice/dynamodb-base.service.d.ts +23 -0
  10. package/dist/dbservice/dynamodb-base.service.js +105 -0
  11. package/dist/dbservice/index.d.ts +4 -0
  12. package/dist/dbservice/index.js +20 -0
  13. package/dist/dbservice/projects.service.d.ts +5 -0
  14. package/dist/dbservice/projects.service.js +25 -0
  15. package/dist/dbservice/users.service.d.ts +5 -0
  16. package/dist/dbservice/users.service.js +25 -0
  17. package/dist/dbservice/workspaces.service.d.ts +5 -0
  18. package/dist/dbservice/workspaces.service.js +25 -0
  19. package/dist/entities/ai-usage.entity.d.ts +16 -0
  20. package/dist/entities/ai-usage.entity.js +71 -0
  21. package/dist/entities/asset.entity.d.ts +59 -0
  22. package/dist/entities/asset.entity.js +185 -0
  23. package/dist/entities/auth.entity.d.ts +10 -0
  24. package/dist/entities/auth.entity.js +9 -0
  25. package/dist/entities/clip-effect.entity.d.ts +9 -0
  26. package/dist/entities/clip-effect.entity.js +53 -0
  27. package/dist/entities/clip.entity.d.ts +44 -0
  28. package/dist/entities/clip.entity.js +114 -0
  29. package/dist/entities/comment.entity.d.ts +18 -0
  30. package/dist/entities/comment.entity.js +83 -0
  31. package/dist/entities/common.entity.d.ts +21 -0
  32. package/dist/entities/common.entity.js +27 -0
  33. package/dist/entities/credit-transaction.entity.d.ts +15 -0
  34. package/dist/entities/credit-transaction.entity.js +66 -0
  35. package/dist/entities/editor-project.entity.d.ts +48 -0
  36. package/dist/entities/editor-project.entity.js +226 -0
  37. package/dist/entities/effect.entity.d.ts +22 -0
  38. package/dist/entities/effect.entity.js +87 -0
  39. package/dist/entities/index.d.ts +28 -0
  40. package/dist/entities/index.js +44 -0
  41. package/dist/entities/invite.entity.d.ts +17 -0
  42. package/dist/entities/invite.entity.js +73 -0
  43. package/dist/entities/keyframe.entity.d.ts +18 -0
  44. package/dist/entities/keyframe.entity.js +73 -0
  45. package/dist/entities/payment-transaction.entity.d.ts +40 -0
  46. package/dist/entities/payment-transaction.entity.js +138 -0
  47. package/dist/entities/payment.entity.d.ts +24 -0
  48. package/dist/entities/payment.entity.js +89 -0
  49. package/dist/entities/plan.entity.d.ts +13 -0
  50. package/dist/entities/plan.entity.js +77 -0
  51. package/dist/entities/project-version.entity.d.ts +11 -0
  52. package/dist/entities/project-version.entity.js +66 -0
  53. package/dist/entities/project.entity.d.ts +48 -0
  54. package/dist/entities/project.entity.js +175 -0
  55. package/dist/entities/reward-rule.entity.d.ts +15 -0
  56. package/dist/entities/reward-rule.entity.js +67 -0
  57. package/dist/entities/stripe-webhook-event.entity.d.ts +9 -0
  58. package/dist/entities/stripe-webhook-event.entity.js +54 -0
  59. package/dist/entities/subscription-plan.entity.d.ts +37 -0
  60. package/dist/entities/subscription-plan.entity.js +197 -0
  61. package/dist/entities/subscription-usage.entity.d.ts +15 -0
  62. package/dist/entities/subscription-usage.entity.js +83 -0
  63. package/dist/entities/timeline.entity.d.ts +8 -0
  64. package/dist/entities/timeline.entity.js +48 -0
  65. package/dist/entities/track.entity.d.ts +20 -0
  66. package/dist/entities/track.entity.js +81 -0
  67. package/dist/entities/user-onboarding-response.entity.d.ts +8 -0
  68. package/dist/entities/user-onboarding-response.entity.js +48 -0
  69. package/dist/entities/user-profile.entity.d.ts +51 -0
  70. package/dist/entities/user-profile.entity.js +200 -0
  71. package/dist/entities/user-subscription.entity.d.ts +44 -0
  72. package/dist/entities/user-subscription.entity.js +160 -0
  73. package/dist/entities/user.entity.d.ts +32 -0
  74. package/dist/entities/user.entity.js +133 -0
  75. package/dist/entities/workspace-member.entity.d.ts +8 -0
  76. package/dist/entities/workspace-member.entity.js +49 -0
  77. package/dist/entities/workspace.entity.d.ts +9 -0
  78. package/dist/entities/workspace.entity.js +54 -0
  79. package/dist/index.d.ts +4 -0
  80. package/dist/index.js +22 -0
  81. package/dist/main.d.ts +1 -0
  82. package/dist/main.js +10 -0
  83. package/dist/repositories/asset.repository.d.ts +15 -0
  84. package/dist/repositories/asset.repository.js +101 -0
  85. package/dist/repositories/base.repository.d.ts +31 -0
  86. package/dist/repositories/base.repository.js +172 -0
  87. package/dist/repositories/clip-effect.repository.d.ts +9 -0
  88. package/dist/repositories/clip-effect.repository.js +49 -0
  89. package/dist/repositories/clip.repository.d.ts +13 -0
  90. package/dist/repositories/clip.repository.js +101 -0
  91. package/dist/repositories/comment.repository.d.ts +12 -0
  92. package/dist/repositories/comment.repository.js +92 -0
  93. package/dist/repositories/editor-project.repository.d.ts +26 -0
  94. package/dist/repositories/editor-project.repository.js +107 -0
  95. package/dist/repositories/effect.repository.d.ts +10 -0
  96. package/dist/repositories/effect.repository.js +59 -0
  97. package/dist/repositories/index.d.ts +21 -0
  98. package/dist/repositories/index.js +37 -0
  99. package/dist/repositories/keyframe.repository.d.ts +9 -0
  100. package/dist/repositories/keyframe.repository.js +49 -0
  101. package/dist/repositories/payment-transaction.repository.d.ts +13 -0
  102. package/dist/repositories/payment-transaction.repository.js +123 -0
  103. package/dist/repositories/project-version.repository.d.ts +9 -0
  104. package/dist/repositories/project-version.repository.js +51 -0
  105. package/dist/repositories/project.repository.d.ts +17 -0
  106. package/dist/repositories/project.repository.js +132 -0
  107. package/dist/repositories/reward-rule.repository.d.ts +13 -0
  108. package/dist/repositories/reward-rule.repository.js +84 -0
  109. package/dist/repositories/subscription-plan.repository.d.ts +11 -0
  110. package/dist/repositories/subscription-plan.repository.js +49 -0
  111. package/dist/repositories/subscription-usage.repository.d.ts +12 -0
  112. package/dist/repositories/subscription-usage.repository.js +68 -0
  113. package/dist/repositories/timeline.repository.d.ts +9 -0
  114. package/dist/repositories/timeline.repository.js +53 -0
  115. package/dist/repositories/track.repository.d.ts +13 -0
  116. package/dist/repositories/track.repository.js +61 -0
  117. package/dist/repositories/user-onboarding-response.repository.d.ts +11 -0
  118. package/dist/repositories/user-onboarding-response.repository.js +58 -0
  119. package/dist/repositories/user-profile.repository.d.ts +18 -0
  120. package/dist/repositories/user-profile.repository.js +62 -0
  121. package/dist/repositories/user-subscription.repository.d.ts +13 -0
  122. package/dist/repositories/user-subscription.repository.js +52 -0
  123. package/dist/repositories/user.repository.d.ts +20 -0
  124. package/dist/repositories/user.repository.js +94 -0
  125. package/dist/repositories/workspace-member.repository.d.ts +10 -0
  126. package/dist/repositories/workspace-member.repository.js +37 -0
  127. package/dist/repositories/workspace.repository.d.ts +10 -0
  128. package/dist/repositories/workspace.repository.js +45 -0
  129. package/package.json +63 -0
  130. package/readme.entity.implementation.md +1560 -0
@@ -0,0 +1,2 @@
1
+ export declare class DynamoDbRepoModule {
2
+ }
@@ -0,0 +1,88 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.DynamoDbRepoModule = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const config_1 = require("@nestjs/config");
12
+ const client_dynamodb_1 = require("@aws-sdk/client-dynamodb");
13
+ const repositories_1 = require("./repositories");
14
+ const user_controller_1 = require("./common/user.controller");
15
+ const users_service_1 = require("./dbservice/users.service");
16
+ const projects_service_1 = require("./dbservice/projects.service");
17
+ const workspaces_service_1 = require("./dbservice/workspaces.service");
18
+ let DynamoDbRepoModule = class DynamoDbRepoModule {
19
+ };
20
+ exports.DynamoDbRepoModule = DynamoDbRepoModule;
21
+ exports.DynamoDbRepoModule = DynamoDbRepoModule = __decorate([
22
+ (0, common_1.Module)({
23
+ imports: [config_1.ConfigModule.forRoot({ isGlobal: true })],
24
+ controllers: [user_controller_1.UserController],
25
+ providers: [
26
+ users_service_1.UsersService,
27
+ projects_service_1.ProjectsService,
28
+ workspaces_service_1.WorkspacesService,
29
+ {
30
+ provide: client_dynamodb_1.DynamoDB,
31
+ useFactory: () => {
32
+ return new client_dynamodb_1.DynamoDB({
33
+ region: process.env.CLIPPY_AWS_DEFAULT_REGION || 'ap-southeast-2',
34
+ credentials: {
35
+ accessKeyId: process.env.CLIPPY_AWS_USER_KEY,
36
+ secretAccessKey: process.env.CLIPPY_AWS_USER_SECRET,
37
+ },
38
+ });
39
+ },
40
+ },
41
+ repositories_1.AssetRepository,
42
+ repositories_1.ClipRepository,
43
+ repositories_1.ClipEffectRepository,
44
+ repositories_1.CommentRepository,
45
+ repositories_1.EffectRepository,
46
+ repositories_1.KeyframeRepository,
47
+ repositories_1.PaymentTransactionRepository,
48
+ repositories_1.ProjectVersionRepository,
49
+ repositories_1.RewardRuleRepository,
50
+ repositories_1.SubscriptionPlanRepository,
51
+ repositories_1.SubscriptionUsageRepository,
52
+ repositories_1.TimelineRepository,
53
+ repositories_1.TrackRepository,
54
+ repositories_1.UserRepository,
55
+ repositories_1.UserOnboardingResponseRepository,
56
+ repositories_1.UserProfileRepository,
57
+ repositories_1.UserSubscriptionRepository,
58
+ repositories_1.WorkspaceRepository,
59
+ repositories_1.WorkspaceMemberRepository,
60
+ repositories_1.EditorProjectRepository,
61
+ ],
62
+ exports: [
63
+ users_service_1.UsersService,
64
+ projects_service_1.ProjectsService,
65
+ workspaces_service_1.WorkspacesService,
66
+ repositories_1.AssetRepository,
67
+ repositories_1.ClipRepository,
68
+ repositories_1.ClipEffectRepository,
69
+ repositories_1.CommentRepository,
70
+ repositories_1.EffectRepository,
71
+ repositories_1.KeyframeRepository,
72
+ repositories_1.PaymentTransactionRepository,
73
+ repositories_1.ProjectVersionRepository,
74
+ repositories_1.RewardRuleRepository,
75
+ repositories_1.SubscriptionPlanRepository,
76
+ repositories_1.SubscriptionUsageRepository,
77
+ repositories_1.TimelineRepository,
78
+ repositories_1.TrackRepository,
79
+ repositories_1.UserRepository,
80
+ repositories_1.UserOnboardingResponseRepository,
81
+ repositories_1.UserProfileRepository,
82
+ repositories_1.UserSubscriptionRepository,
83
+ repositories_1.WorkspaceRepository,
84
+ repositories_1.WorkspaceMemberRepository,
85
+ repositories_1.EditorProjectRepository,
86
+ ],
87
+ })
88
+ ], DynamoDbRepoModule);
@@ -0,0 +1 @@
1
+ export * from './project-enums';
@@ -0,0 +1,17 @@
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("./project-enums"), exports);
@@ -0,0 +1,13 @@
1
+ export declare enum ProjectStatus {
2
+ DRAFT = "draft",
3
+ IN_PROGRESS = "in_progress",
4
+ RENDERING = "rendering",
5
+ COMPLETED = "completed",
6
+ FAILED = "failed",
7
+ ARCHIVED = "archived"
8
+ }
9
+ export declare enum ProjectVisibility {
10
+ PRIVATE = "private",
11
+ WORKSPACE = "workspace",
12
+ PUBLIC = "public"
13
+ }
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProjectVisibility = exports.ProjectStatus = void 0;
4
+ var ProjectStatus;
5
+ (function (ProjectStatus) {
6
+ ProjectStatus["DRAFT"] = "draft";
7
+ ProjectStatus["IN_PROGRESS"] = "in_progress";
8
+ ProjectStatus["RENDERING"] = "rendering";
9
+ ProjectStatus["COMPLETED"] = "completed";
10
+ ProjectStatus["FAILED"] = "failed";
11
+ ProjectStatus["ARCHIVED"] = "archived";
12
+ })(ProjectStatus || (exports.ProjectStatus = ProjectStatus = {}));
13
+ var ProjectVisibility;
14
+ (function (ProjectVisibility) {
15
+ ProjectVisibility["PRIVATE"] = "private";
16
+ ProjectVisibility["WORKSPACE"] = "workspace";
17
+ ProjectVisibility["PUBLIC"] = "public";
18
+ })(ProjectVisibility || (exports.ProjectVisibility = ProjectVisibility = {}));
@@ -0,0 +1,12 @@
1
+ import { Response } from 'express';
2
+ import { UsersService } from '../dbservice/users.service';
3
+ import { User } from '../entities/user.entity';
4
+ export declare class UserController {
5
+ private readonly usersService;
6
+ constructor(usersService: UsersService);
7
+ getById(id: string, res: Response): Promise<Response<any, Record<string, any>>>;
8
+ getAll(res: Response): Promise<Response<any, Record<string, any>>>;
9
+ create(user: User, res: Response): Promise<Response<any, Record<string, any>>>;
10
+ update(id: string, updates: Partial<User>, res: Response): Promise<Response<any, Record<string, any>>>;
11
+ delete(id: string, res: Response): Promise<Response<any, Record<string, any>>>;
12
+ }
@@ -0,0 +1,102 @@
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.UserController = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const users_service_1 = require("../dbservice/users.service");
18
+ const user_entity_1 = require("../entities/user.entity");
19
+ let UserController = class UserController {
20
+ usersService;
21
+ constructor(usersService) {
22
+ this.usersService = usersService;
23
+ }
24
+ async getById(id, res) {
25
+ const user = await this.usersService.getRecordById(id);
26
+ if (!user)
27
+ return res
28
+ .status(common_1.HttpStatus.NOT_FOUND)
29
+ .json({ message: 'User not found' });
30
+ return res.status(common_1.HttpStatus.OK).json(user);
31
+ }
32
+ async getAll(res) {
33
+ const users = await this.usersService.getRecords();
34
+ return res.status(common_1.HttpStatus.OK).json(users);
35
+ }
36
+ async create(user, res) {
37
+ const created = await this.usersService.createRecord(user);
38
+ return res.status(common_1.HttpStatus.CREATED).json(created);
39
+ }
40
+ async update(id, updates, res) {
41
+ const updated = await this.usersService.updateRecord({ id, ...updates });
42
+ if (!updated)
43
+ return res
44
+ .status(common_1.HttpStatus.NOT_FOUND)
45
+ .json({ message: 'User not found' });
46
+ return res.status(common_1.HttpStatus.OK).json(updated);
47
+ }
48
+ async delete(id, res) {
49
+ await this.usersService.deleteRecord(id);
50
+ return res.status(common_1.HttpStatus.NO_CONTENT).send();
51
+ }
52
+ };
53
+ exports.UserController = UserController;
54
+ __decorate([
55
+ (0, common_1.Get)(':id'),
56
+ (0, common_1.HttpCode)(common_1.HttpStatus.OK),
57
+ __param(0, (0, common_1.Param)('id')),
58
+ __param(1, (0, common_1.Res)()),
59
+ __metadata("design:type", Function),
60
+ __metadata("design:paramtypes", [String, Object]),
61
+ __metadata("design:returntype", Promise)
62
+ ], UserController.prototype, "getById", null);
63
+ __decorate([
64
+ (0, common_1.Get)(),
65
+ (0, common_1.HttpCode)(common_1.HttpStatus.OK),
66
+ __param(0, (0, common_1.Res)()),
67
+ __metadata("design:type", Function),
68
+ __metadata("design:paramtypes", [Object]),
69
+ __metadata("design:returntype", Promise)
70
+ ], UserController.prototype, "getAll", null);
71
+ __decorate([
72
+ (0, common_1.Post)(),
73
+ (0, common_1.HttpCode)(common_1.HttpStatus.CREATED),
74
+ __param(0, (0, common_1.Body)()),
75
+ __param(1, (0, common_1.Res)()),
76
+ __metadata("design:type", Function),
77
+ __metadata("design:paramtypes", [user_entity_1.User, Object]),
78
+ __metadata("design:returntype", Promise)
79
+ ], UserController.prototype, "create", null);
80
+ __decorate([
81
+ (0, common_1.Put)(':id'),
82
+ (0, common_1.HttpCode)(common_1.HttpStatus.OK),
83
+ __param(0, (0, common_1.Param)('id')),
84
+ __param(1, (0, common_1.Body)()),
85
+ __param(2, (0, common_1.Res)()),
86
+ __metadata("design:type", Function),
87
+ __metadata("design:paramtypes", [String, Object, Object]),
88
+ __metadata("design:returntype", Promise)
89
+ ], UserController.prototype, "update", null);
90
+ __decorate([
91
+ (0, common_1.Delete)(':id'),
92
+ (0, common_1.HttpCode)(common_1.HttpStatus.NO_CONTENT),
93
+ __param(0, (0, common_1.Param)('id')),
94
+ __param(1, (0, common_1.Res)()),
95
+ __metadata("design:type", Function),
96
+ __metadata("design:paramtypes", [String, Object]),
97
+ __metadata("design:returntype", Promise)
98
+ ], UserController.prototype, "delete", null);
99
+ exports.UserController = UserController = __decorate([
100
+ (0, common_1.Controller)('users'),
101
+ __metadata("design:paramtypes", [users_service_1.UsersService])
102
+ ], UserController);
@@ -0,0 +1,23 @@
1
+ import { Logger } from '@nestjs/common';
2
+ import { ConfigService } from '@nestjs/config';
3
+ import { DynamoDBClient } from '@aws-sdk/client-dynamodb';
4
+ import { DynamoDBDocumentClient } from '@aws-sdk/lib-dynamodb';
5
+ export declare class DynamoDbBaseService<T = any> {
6
+ protected readonly awsUserKey: string;
7
+ protected readonly awsUserPassword: string;
8
+ protected readonly region: string;
9
+ protected readonly logger: Logger;
10
+ protected ddbClient: DynamoDBClient;
11
+ protected ddDocClient: DynamoDBDocumentClient;
12
+ protected readonly tableName: string;
13
+ protected readonly configService: ConfigService;
14
+ constructor(configService: ConfigService, tableEnvOrName: string, loggerContext: string);
15
+ getRecords(): Promise<T[]>;
16
+ getRecordById(id: string): Promise<T>;
17
+ createRecord(body: T): Promise<any>;
18
+ updateRecord(body: Partial<T> & {
19
+ id: string;
20
+ data?: unknown;
21
+ }): Promise<any>;
22
+ deleteRecord(id: string): Promise<any>;
23
+ }
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DynamoDbBaseService = void 0;
4
+ const common_1 = require("@nestjs/common");
5
+ const client_dynamodb_1 = require("@aws-sdk/client-dynamodb");
6
+ const lib_dynamodb_1 = require("@aws-sdk/lib-dynamodb");
7
+ class DynamoDbBaseService {
8
+ awsUserKey;
9
+ awsUserPassword;
10
+ region;
11
+ logger;
12
+ ddbClient;
13
+ ddDocClient;
14
+ tableName;
15
+ configService;
16
+ constructor(configService, tableEnvOrName, loggerContext) {
17
+ this.configService = configService;
18
+ if (!configService) {
19
+ throw new Error('ConfigService is not provided to DynamoDbBaseService');
20
+ }
21
+ this.awsUserKey = configService.get('CLIPPY_AWS_USER_KEY');
22
+ this.awsUserPassword = configService.get('CLIPPY_AWS_USER_SECRET');
23
+ this.region = configService.get('CLIPPY_AWS_DEFAULT_REGION');
24
+ this.logger = new common_1.Logger(loggerContext);
25
+ this.ddbClient = new client_dynamodb_1.DynamoDBClient({
26
+ region: this.region,
27
+ credentials: {
28
+ accessKeyId: this.awsUserKey,
29
+ secretAccessKey: this.awsUserPassword,
30
+ },
31
+ });
32
+ this.ddDocClient = lib_dynamodb_1.DynamoDBDocumentClient.from(this.ddbClient);
33
+ const envTable = this.configService.get(tableEnvOrName);
34
+ this.tableName = envTable || tableEnvOrName;
35
+ }
36
+ async getRecords() {
37
+ try {
38
+ const command = new lib_dynamodb_1.ScanCommand({ TableName: this.tableName });
39
+ const data = await this.ddDocClient.send(command);
40
+ return data.Items;
41
+ }
42
+ catch (e) {
43
+ throw new common_1.InternalServerErrorException(e);
44
+ }
45
+ }
46
+ async getRecordById(id) {
47
+ try {
48
+ const command = new lib_dynamodb_1.GetCommand({
49
+ TableName: this.tableName,
50
+ Key: { id },
51
+ });
52
+ const data = await this.ddDocClient.send(command);
53
+ return data.Item;
54
+ }
55
+ catch (e) {
56
+ throw new common_1.InternalServerErrorException(e);
57
+ }
58
+ }
59
+ async createRecord(body) {
60
+ try {
61
+ const command = new lib_dynamodb_1.PutCommand({ TableName: this.tableName, Item: body });
62
+ return await this.ddDocClient.send(command);
63
+ }
64
+ catch (e) {
65
+ throw new common_1.InternalServerErrorException(e);
66
+ }
67
+ }
68
+ async updateRecord(body) {
69
+ try {
70
+ const params = {
71
+ TableName: this.tableName,
72
+ Key: { id: body.id },
73
+ ExpressionAttributeNames: { '#data': 'data' },
74
+ ExpressionAttributeValues: {},
75
+ UpdateExpression: 'SET ',
76
+ ReturnValues: 'UPDATED_NEW',
77
+ };
78
+ if (body.data !== undefined) {
79
+ params.ExpressionAttributeValues[':data'] = body.data;
80
+ params.UpdateExpression += '#data = :data';
81
+ }
82
+ else {
83
+ throw new common_1.InternalServerErrorException('No data provided for update');
84
+ }
85
+ const command = new lib_dynamodb_1.UpdateCommand(params);
86
+ return await this.ddDocClient.send(command);
87
+ }
88
+ catch (e) {
89
+ throw new common_1.InternalServerErrorException(e);
90
+ }
91
+ }
92
+ async deleteRecord(id) {
93
+ try {
94
+ const command = new lib_dynamodb_1.DeleteCommand({
95
+ TableName: this.tableName,
96
+ Key: { id },
97
+ });
98
+ return await this.ddDocClient.send(command);
99
+ }
100
+ catch (e) {
101
+ throw new common_1.InternalServerErrorException(e);
102
+ }
103
+ }
104
+ }
105
+ exports.DynamoDbBaseService = DynamoDbBaseService;
@@ -0,0 +1,4 @@
1
+ export * from './dynamodb-base.service';
2
+ export * from './projects.service';
3
+ export * from './users.service';
4
+ export * from './workspaces.service';
@@ -0,0 +1,20 @@
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("./dynamodb-base.service"), exports);
18
+ __exportStar(require("./projects.service"), exports);
19
+ __exportStar(require("./users.service"), exports);
20
+ __exportStar(require("./workspaces.service"), exports);
@@ -0,0 +1,5 @@
1
+ import { ConfigService } from '@nestjs/config';
2
+ import { DynamoDbBaseService } from './dynamodb-base.service';
3
+ export declare class ProjectsService extends DynamoDbBaseService<any> {
4
+ constructor(configService: ConfigService);
5
+ }
@@ -0,0 +1,25 @@
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.ProjectsService = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const config_1 = require("@nestjs/config");
15
+ const dynamodb_base_service_1 = require("./dynamodb-base.service");
16
+ let ProjectsService = class ProjectsService extends dynamodb_base_service_1.DynamoDbBaseService {
17
+ constructor(configService) {
18
+ super(configService, 'projects-v1', 'ProjectsService');
19
+ }
20
+ };
21
+ exports.ProjectsService = ProjectsService;
22
+ exports.ProjectsService = ProjectsService = __decorate([
23
+ (0, common_1.Injectable)(),
24
+ __metadata("design:paramtypes", [config_1.ConfigService])
25
+ ], ProjectsService);
@@ -0,0 +1,5 @@
1
+ import { ConfigService } from '@nestjs/config';
2
+ import { DynamoDbBaseService } from './dynamodb-base.service';
3
+ export declare class UsersService extends DynamoDbBaseService<any> {
4
+ constructor(configService: ConfigService);
5
+ }
@@ -0,0 +1,25 @@
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.UsersService = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const config_1 = require("@nestjs/config");
15
+ const dynamodb_base_service_1 = require("./dynamodb-base.service");
16
+ let UsersService = class UsersService extends dynamodb_base_service_1.DynamoDbBaseService {
17
+ constructor(configService) {
18
+ super(configService, 'users-v1', 'UsersService');
19
+ }
20
+ };
21
+ exports.UsersService = UsersService;
22
+ exports.UsersService = UsersService = __decorate([
23
+ (0, common_1.Injectable)(),
24
+ __metadata("design:paramtypes", [config_1.ConfigService])
25
+ ], UsersService);
@@ -0,0 +1,5 @@
1
+ import { ConfigService } from '@nestjs/config';
2
+ import { DynamoDbBaseService } from './dynamodb-base.service';
3
+ export declare class WorkspacesService extends DynamoDbBaseService<any> {
4
+ constructor(configService: ConfigService);
5
+ }
@@ -0,0 +1,25 @@
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.WorkspacesService = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const config_1 = require("@nestjs/config");
15
+ const dynamodb_base_service_1 = require("./dynamodb-base.service");
16
+ let WorkspacesService = class WorkspacesService extends dynamodb_base_service_1.DynamoDbBaseService {
17
+ constructor(configService) {
18
+ super(configService, 'workspaces-v1', 'WorkspacesService');
19
+ }
20
+ };
21
+ exports.WorkspacesService = WorkspacesService;
22
+ exports.WorkspacesService = WorkspacesService = __decorate([
23
+ (0, common_1.Injectable)(),
24
+ __metadata("design:paramtypes", [config_1.ConfigService])
25
+ ], WorkspacesService);
@@ -0,0 +1,16 @@
1
+ export declare enum AIFeatureType {
2
+ TEXT_GENERATION = "text_generation",
3
+ IMAGE_GENERATION = "image_generation",
4
+ CODE_GENERATION = "code_generation"
5
+ }
6
+ export declare class AIUsage {
7
+ id: string;
8
+ userId: string;
9
+ featureType: AIFeatureType;
10
+ usageAmount: number;
11
+ timestamp: string;
12
+ createdAt?: string;
13
+ updatedAt?: string;
14
+ feature: string;
15
+ amount?: number;
16
+ }
@@ -0,0 +1,71 @@
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.AIUsage = exports.AIFeatureType = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ var AIFeatureType;
15
+ (function (AIFeatureType) {
16
+ AIFeatureType["TEXT_GENERATION"] = "text_generation";
17
+ AIFeatureType["IMAGE_GENERATION"] = "image_generation";
18
+ AIFeatureType["CODE_GENERATION"] = "code_generation";
19
+ })(AIFeatureType || (exports.AIFeatureType = AIFeatureType = {}));
20
+ class AIUsage {
21
+ id;
22
+ userId;
23
+ featureType;
24
+ usageAmount;
25
+ timestamp;
26
+ createdAt;
27
+ updatedAt;
28
+ feature;
29
+ amount;
30
+ }
31
+ exports.AIUsage = AIUsage;
32
+ __decorate([
33
+ (0, class_validator_1.IsString)(),
34
+ __metadata("design:type", String)
35
+ ], AIUsage.prototype, "id", void 0);
36
+ __decorate([
37
+ (0, class_validator_1.IsString)(),
38
+ __metadata("design:type", String)
39
+ ], AIUsage.prototype, "userId", void 0);
40
+ __decorate([
41
+ (0, class_validator_1.IsEnum)(AIFeatureType),
42
+ __metadata("design:type", String)
43
+ ], AIUsage.prototype, "featureType", void 0);
44
+ __decorate([
45
+ (0, class_validator_1.IsNumber)(),
46
+ __metadata("design:type", Number)
47
+ ], AIUsage.prototype, "usageAmount", void 0);
48
+ __decorate([
49
+ (0, class_validator_1.IsString)(),
50
+ __metadata("design:type", String)
51
+ ], AIUsage.prototype, "timestamp", void 0);
52
+ __decorate([
53
+ (0, class_validator_1.IsString)(),
54
+ (0, class_validator_1.IsOptional)(),
55
+ __metadata("design:type", String)
56
+ ], AIUsage.prototype, "createdAt", void 0);
57
+ __decorate([
58
+ (0, class_validator_1.IsString)(),
59
+ (0, class_validator_1.IsOptional)(),
60
+ __metadata("design:type", String)
61
+ ], AIUsage.prototype, "updatedAt", void 0);
62
+ __decorate([
63
+ (0, class_validator_1.IsString)(),
64
+ (0, class_validator_1.IsOptional)(),
65
+ __metadata("design:type", String)
66
+ ], AIUsage.prototype, "feature", void 0);
67
+ __decorate([
68
+ (0, class_validator_1.IsNumber)(),
69
+ (0, class_validator_1.IsOptional)(),
70
+ __metadata("design:type", Number)
71
+ ], AIUsage.prototype, "amount", void 0);