@meridianjs/meridian 2.5.0 → 2.6.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.
@@ -0,0 +1,3 @@
1
+ import type { Response } from "express";
2
+ export declare const GET: (req: any, res: Response) => Promise<void>;
3
+ //# sourceMappingURL=route.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../src/api/admin/team/tasks/route.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAGvC,eAAO,MAAM,GAAG,GAAU,KAAK,GAAG,EAAE,KAAK,QAAQ,kBAqKhD,CAAA"}
@@ -0,0 +1,139 @@
1
+ import { getAccessibleWorkspaceIds } from "../../../utils/workspace-access.js";
2
+ export const GET = async (req, res) => {
3
+ // ── Auth: require privileged caller ──
4
+ const roles = req.user?.roles ?? [];
5
+ const permissions = req.user?.permissions ?? [];
6
+ const isPrivileged = roles.includes("super-admin") ||
7
+ roles.includes("admin") ||
8
+ permissions.includes("workspace:admin");
9
+ if (!isPrivileged) {
10
+ res.status(403).json({ error: { message: "Forbidden — admin access required" } });
11
+ return;
12
+ }
13
+ const viewerId = req.user?.id;
14
+ if (!viewerId) {
15
+ res.status(401).json({ error: { message: "Unauthorized" } });
16
+ return;
17
+ }
18
+ // ── Target user ──
19
+ const targetUserId = req.query.user_id;
20
+ if (!targetUserId) {
21
+ res.status(400).json({ error: { message: "user_id query parameter is required" } });
22
+ return;
23
+ }
24
+ const issueService = req.scope.resolve("issueModuleService");
25
+ const projectService = req.scope.resolve("projectModuleService");
26
+ const limit = Math.min(Number(req.query.limit) || 50, 200);
27
+ const offset = Number(req.query.offset) || 0;
28
+ // ── Workspace scoping ──
29
+ const isSuperAdmin = roles.includes("super-admin");
30
+ const issueFilters = {
31
+ assignee_ids: { $contains: targetUserId },
32
+ };
33
+ // Super-admins see all workspaces; others are scoped to their accessible ones
34
+ if (!isSuperAdmin) {
35
+ let accessibleWsIds = await getAccessibleWorkspaceIds(req);
36
+ if (req.query.workspace_id) {
37
+ const requested = req.query.workspace_id.split(",").filter(Boolean);
38
+ const accessibleSet = new Set(accessibleWsIds);
39
+ accessibleWsIds = requested.filter((id) => accessibleSet.has(id));
40
+ }
41
+ if (accessibleWsIds.length === 0) {
42
+ res.json({ issues: [], count: 0, limit, offset });
43
+ return;
44
+ }
45
+ issueFilters.workspace_id = accessibleWsIds.length === 1 ? accessibleWsIds[0] : { $in: accessibleWsIds };
46
+ }
47
+ else if (req.query.workspace_id) {
48
+ // Super-admin with workspace filter
49
+ const wsIds = req.query.workspace_id.split(",").filter(Boolean);
50
+ if (wsIds.length > 0) {
51
+ issueFilters.workspace_id = wsIds.length === 1 ? wsIds[0] : { $in: wsIds };
52
+ }
53
+ }
54
+ if (req.query.priority) {
55
+ const priorities = req.query.priority.split(",").filter(Boolean);
56
+ issueFilters.priority = priorities.length === 1 ? priorities[0] : { $in: priorities };
57
+ }
58
+ if (req.query.type) {
59
+ const types = req.query.type.split(",").filter(Boolean);
60
+ issueFilters.type = types.length === 1 ? types[0] : { $in: types };
61
+ }
62
+ let [issues] = await issueService.listAndCountIssues(issueFilters, { limit: 500, offset: 0, orderBy: { updated_at: "DESC" } });
63
+ // ── Determine viewer's accessible projects ──
64
+ const isGlobalAdmin = roles.includes("super-admin") || roles.includes("admin");
65
+ let viewerAccessibleProjectIds;
66
+ if (isGlobalAdmin) {
67
+ // Global admins can see all projects
68
+ viewerAccessibleProjectIds = new Set(issues.map((i) => i.project_id));
69
+ }
70
+ else {
71
+ const teamMemberService = req.scope.resolve("teamMemberModuleService");
72
+ const projectMemberService = req.scope.resolve("projectMemberModuleService");
73
+ const viewerTeamIds = await teamMemberService.getUserTeamIds(viewerId);
74
+ const accessible = await projectMemberService.getAccessibleProjectIds(viewerId, viewerTeamIds);
75
+ viewerAccessibleProjectIds = new Set(accessible);
76
+ }
77
+ // ── Enrich with project + status data ──
78
+ const projectIds = [...new Set(issues.map((i) => i.project_id))];
79
+ const projectMap = new Map();
80
+ const statusMap = new Map();
81
+ if (projectIds.length > 0) {
82
+ const [projects] = await projectService.listAndCountProjects({ id: { $in: projectIds } }, { limit: projectIds.length });
83
+ for (const p of projects) {
84
+ projectMap.set(p.id, { name: p.name, identifier: p.identifier });
85
+ }
86
+ try {
87
+ const allStatuses = await projectService.listProjectStatuss({ project_id: projectIds.length === 1 ? projectIds[0] : { $in: projectIds } }, { limit: projectIds.length * 50 });
88
+ for (const s of allStatuses) {
89
+ statusMap.set(`${s.project_id}:${s.key}`, { name: s.name, color: s.color, category: s.category });
90
+ }
91
+ }
92
+ catch {
93
+ // Projects may not have custom statuses
94
+ }
95
+ }
96
+ // ── Build enriched response with privacy redaction ──
97
+ const enriched = issues.map((issue) => {
98
+ const isAccessible = viewerAccessibleProjectIds.has(issue.project_id);
99
+ const proj = projectMap.get(issue.project_id);
100
+ const status = statusMap.get(`${issue.project_id}:${issue.status}`);
101
+ if (!isAccessible) {
102
+ return {
103
+ id: issue.id,
104
+ identifier: "---",
105
+ title: "Private Issue",
106
+ description: null,
107
+ status: issue.status,
108
+ priority: "none",
109
+ type: issue.type,
110
+ start_date: null,
111
+ due_date: null,
112
+ assignee_ids: issue.assignee_ids,
113
+ project_id: issue.project_id,
114
+ workspace_id: issue.workspace_id,
115
+ created_at: issue.created_at,
116
+ updated_at: issue.updated_at,
117
+ _project: { name: "Private Project", identifier: "---" },
118
+ _status: status ?? { name: issue.status, color: "#94a3b8", category: "backlog" },
119
+ _private: true,
120
+ };
121
+ }
122
+ return {
123
+ ...issue,
124
+ _project: proj ?? null,
125
+ _status: status ?? { name: issue.status, color: "#94a3b8", category: "backlog" },
126
+ _private: false,
127
+ };
128
+ });
129
+ // ── Category filter (post-enrichment) ──
130
+ if (req.query.category) {
131
+ const categories = req.query.category.split(",").filter(Boolean);
132
+ const filtered = enriched.filter((i) => categories.includes(i._status.category));
133
+ res.json({ issues: filtered.slice(offset, offset + limit), count: filtered.length, limit, offset });
134
+ return;
135
+ }
136
+ const count = enriched.length;
137
+ res.json({ issues: enriched.slice(offset, offset + limit), count, limit, offset });
138
+ };
139
+ //# sourceMappingURL=route.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route.js","sourceRoot":"","sources":["../../../../../src/api/admin/team/tasks/route.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@meridianjs/meridian",
3
- "version": "2.5.0",
3
+ "version": "2.6.0",
4
4
  "description": "Default API routes, workflows, links, and subscribers for Meridian applications",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",
@@ -20,13 +20,13 @@
20
20
  "prepublishOnly": "cd ../.. && npm run check:routes && cd packages/meridian && npm run build"
21
21
  },
22
22
  "dependencies": {
23
- "@meridianjs/framework": "^2.5.0",
24
- "@meridianjs/framework-utils": "^2.5.0",
25
- "@meridianjs/workflow-engine": "^2.5.0",
26
- "@meridianjs/types": "^2.5.0",
23
+ "@meridianjs/framework": "^2.6.0",
24
+ "@meridianjs/framework-utils": "^2.6.0",
25
+ "@meridianjs/workflow-engine": "^2.6.0",
26
+ "@meridianjs/types": "^2.6.0",
27
27
  "@meridianjs/user": "^2.0.0",
28
28
  "@meridianjs/workspace": "^1.2.1",
29
- "@meridianjs/auth": "^2.5.0",
29
+ "@meridianjs/auth": "^2.6.0",
30
30
  "@meridianjs/project": "^2.0.0",
31
31
  "@meridianjs/issue": "^2.0.0",
32
32
  "@meridianjs/sprint": "^1.0.1",