streamby-core 0.10.12 → 0.11.0

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.
@@ -7,7 +7,6 @@ exports.createStreamByRouter = createStreamByRouter;
7
7
  const express_1 = __importDefault(require("express"));
8
8
  const s3_1 = require("../adapters/s3");
9
9
  const file_1 = require("../services/file");
10
- const project_1 = require("../services/project");
11
10
  const presign_1 = require("../services/presign");
12
11
  function isProjectMember(project, userId) {
13
12
  return project.members?.some((m) => m.userId?.toString() === userId?.toString());
@@ -59,7 +58,7 @@ function createStreamByRouter(config) {
59
58
  return res.status(400).json({ error: 'Missing projectId' });
60
59
  }
61
60
  await (0, file_1.deleteProjectImage)(adapter, projectId);
62
- const updated = await (0, project_1.deleteProjectImageService)(req, config.authProvider, config.projectProvider);
61
+ const updated = await config.projectProvider.update(projectId, { image: '' });
63
62
  res.status(201).json(updated);
64
63
  }
65
64
  catch (err) {
@@ -120,8 +119,13 @@ function createStreamByRouter(config) {
120
119
  if (auth.role !== 'admin' && auth.role !== 'editor') {
121
120
  return res.status(403).json({ error: 'Permission denied' });
122
121
  }
123
- const created = await (0, project_1.createProjectService)(req, config.authProvider, config.projectProvider);
124
- res.status(201).json(created);
122
+ const { name, description } = req.body;
123
+ const newProject = await config.projectProvider.create({
124
+ name,
125
+ description: description || '',
126
+ members: [{ userId: auth.userId, role: "admin" }]
127
+ });
128
+ res.status(201).json({ project: newProject });
125
129
  }
126
130
  catch (err) {
127
131
  res.status(500).json({ error: 'Failed to create project', details: err.message });
@@ -13,8 +13,8 @@ function createMongoProjectProvider(ProjectModel, adapter) {
13
13
  const newProject = await ProjectModel.create({
14
14
  members: [
15
15
  {
16
- userId: data.members[0].userId,
17
- role: data.members[0].role,
16
+ userId: data.members?.[0].userId,
17
+ role: data.members?.[0].role,
18
18
  }
19
19
  ],
20
20
  name: data.name,
@@ -40,7 +40,7 @@ function createMongoProjectProvider(ProjectModel, adapter) {
40
40
  async delete(projectId) {
41
41
  try {
42
42
  await ProjectModel.findByIdAndDelete(projectId);
43
- await adapter.deleteProjectImage(projectId);
43
+ await adapter.deleteProjectDirectory(projectId);
44
44
  return { success: true };
45
45
  }
46
46
  catch (error) {
@@ -60,10 +60,10 @@ export interface ProjectProvider {
60
60
  create(data: {
61
61
  name: string;
62
62
  image?: string;
63
- members: [{
63
+ members?: {
64
64
  userId: string;
65
- role: string;
66
- }];
65
+ role: 'viewer' | 'editor' | 'admin';
66
+ }[];
67
67
  description?: string;
68
68
  allowUpload?: boolean;
69
69
  allowSharing?: boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "streamby-core",
3
- "version": "0.10.12",
3
+ "version": "0.11.0",
4
4
  "description": "StreamBy middleware framework for media storage management",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -38,9 +38,11 @@
38
38
  },
39
39
  "devDependencies": {
40
40
  "@types/bcrypt": "^5.0.2",
41
+ "@types/cors": "^2.8.18",
41
42
  "@types/express": "^4.17.17",
42
43
  "@types/node": "^22.15.21",
43
44
  "@types/supertest": "^6.0.3",
45
+ "cors": "^2.8.5",
44
46
  "supertest": "^7.1.0",
45
47
  "ts-node-dev": "^2.0.0",
46
48
  "typescript": "^5.8.3",