@meridianjs/meridian 2.2.0 → 2.3.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.
Files changed (23) hide show
  1. package/dist/api/admin/projects/[id]/access-requests/route.d.ts.map +1 -1
  2. package/dist/api/admin/projects/[id]/access-requests/route.js +9 -0
  3. package/dist/api/admin/projects/[id]/access-requests/route.js.map +1 -1
  4. package/dist/api/admin/projects/by-identifier/[identifier]/access-requests/route.d.ts +4 -0
  5. package/dist/api/admin/projects/by-identifier/[identifier]/access-requests/route.d.ts.map +1 -0
  6. package/dist/api/admin/projects/by-identifier/[identifier]/access-requests/route.js +107 -0
  7. package/dist/api/admin/projects/by-identifier/[identifier]/access-requests/route.js.map +1 -0
  8. package/dist/api/admin/workspaces/[id]/access-requests/[requestId]/route.d.ts +2 -2
  9. package/dist/api/admin/workspaces/[id]/access-requests/[requestId]/route.d.ts.map +1 -1
  10. package/dist/api/admin/workspaces/[id]/access-requests/[requestId]/route.js +25 -15
  11. package/dist/api/admin/workspaces/[id]/access-requests/[requestId]/route.js.map +1 -1
  12. package/dist/api/admin/workspaces/search/route.d.ts.map +1 -1
  13. package/dist/api/admin/workspaces/search/route.js +2 -1
  14. package/dist/api/admin/workspaces/search/route.js.map +1 -1
  15. package/dist/subscribers/project-access-request-cancelled.d.ts +11 -0
  16. package/dist/subscribers/project-access-request-cancelled.d.ts.map +1 -0
  17. package/dist/subscribers/project-access-request-cancelled.js +11 -0
  18. package/dist/subscribers/project-access-request-cancelled.js.map +1 -0
  19. package/dist/subscribers/workspace-access-request-cancelled.d.ts +10 -0
  20. package/dist/subscribers/workspace-access-request-cancelled.d.ts.map +1 -0
  21. package/dist/subscribers/workspace-access-request-cancelled.js +11 -0
  22. package/dist/subscribers/workspace-access-request-cancelled.js.map +1 -0
  23. package/package.json +6 -6
@@ -1 +1 @@
1
- {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../../src/api/admin/projects/[id]/access-requests/route.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAGrD,eAAO,MAAM,GAAG,GAAU,KAAK,GAAG,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,kBAkCpE,CAAA;AAED,eAAO,MAAM,IAAI,GAAU,KAAK,GAAG,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,kBA6FrE,CAAA;AAGD,eAAO,MAAM,MAAM,GAAU,KAAK,GAAG,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,kBAgBvE,CAAA"}
1
+ {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../../src/api/admin/projects/[id]/access-requests/route.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAGrD,eAAO,MAAM,GAAG,GAAU,KAAK,GAAG,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,kBAkCpE,CAAA;AAED,eAAO,MAAM,IAAI,GAAU,KAAK,GAAG,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,kBA6FrE,CAAA;AAGD,eAAO,MAAM,MAAM,GAAU,KAAK,GAAG,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,kBA2BvE,CAAA"}
@@ -129,6 +129,15 @@ export const DELETE = async (req, res, next) => {
129
129
  return;
130
130
  }
131
131
  await projectMemberService.deleteAccessRequest(existing.id);
132
+ const projectService = req.scope.resolve("projectModuleService");
133
+ const project = await projectService.retrieveProject(req.params.id).catch(() => null);
134
+ if (project) {
135
+ const eventBus = req.scope.resolve("eventBus");
136
+ eventBus.emit({
137
+ name: "project.access_request_cancelled",
138
+ data: { project_id: project.id, workspace_id: project.workspace_id, user_id: userId, request_id: existing.id },
139
+ }).catch(() => { });
140
+ }
132
141
  res.status(204).end();
133
142
  }
134
143
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"route.js","sourceRoot":"","sources":["../../../../../../src/api/admin/projects/[id]/access-requests/route.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"route.js","sourceRoot":"","sources":["../../../../../../src/api/admin/projects/[id]/access-requests/route.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { Response, NextFunction } from "express";
2
+ export declare const POST: (req: any, res: Response, next: NextFunction) => Promise<void>;
3
+ export declare const DELETE: (req: any, res: Response, next: NextFunction) => Promise<void>;
4
+ //# sourceMappingURL=route.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../../../src/api/admin/projects/by-identifier/[identifier]/access-requests/route.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAKrD,eAAO,MAAM,IAAI,GAAU,KAAK,GAAG,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,kBAmFrE,CAAA;AAED,eAAO,MAAM,MAAM,GAAU,KAAK,GAAG,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,kBA+BvE,CAAA"}
@@ -0,0 +1,107 @@
1
+ // Workspace member submits or cancels a project access request using the project identifier.
2
+ // This lets the client avoid needing the project ID from a prior (forbidden) fetch.
3
+ export const POST = async (req, res, next) => {
4
+ try {
5
+ const projectService = req.scope.resolve("projectModuleService");
6
+ const projectMemberService = req.scope.resolve("projectMemberModuleService");
7
+ const workspaceMemberService = req.scope.resolve("workspaceMemberModuleService");
8
+ const identifier = req.params.identifier;
9
+ const project = await projectService.retrieveProjectByIdentifier(identifier).catch(() => null);
10
+ if (!project) {
11
+ res.status(404).json({ error: { message: `Project "${identifier}" not found` } });
12
+ return;
13
+ }
14
+ const userId = req.user?.id;
15
+ // Must be a workspace member to request project access
16
+ const wsMembership = await workspaceMemberService.getMembership(project.workspace_id, userId);
17
+ if (!wsMembership) {
18
+ res.status(403).json({ error: { message: "Forbidden — must be a workspace member" } });
19
+ return;
20
+ }
21
+ // Must not already be a project member
22
+ const members = await projectMemberService.listProjectMembers(project.id);
23
+ if (members.some((m) => m.user_id === userId)) {
24
+ res.status(409).json({ error: { message: "Already a member of this project" } });
25
+ return;
26
+ }
27
+ // Must not already have a pending request
28
+ const existing = await projectMemberService.getPendingRequest(project.id, userId);
29
+ if (existing) {
30
+ res.status(409).json({ error: { message: "Access request already pending" } });
31
+ return;
32
+ }
33
+ const { message } = req.body;
34
+ const access_request = await projectMemberService.createAccessRequest({
35
+ project_id: project.id,
36
+ user_id: userId,
37
+ message: message?.trim() || null,
38
+ });
39
+ // Notify project managers
40
+ try {
41
+ const notificationService = req.scope.resolve("notificationModuleService");
42
+ const userService = req.scope.resolve("userModuleService");
43
+ const requester = await userService.retrieveUser(userId).catch(() => null);
44
+ const requesterName = requester
45
+ ? `${requester.first_name ?? ""} ${requester.last_name ?? ""}`.trim() || requester.email
46
+ : "Someone";
47
+ const managers = members.filter((m) => m.role === "manager");
48
+ for (const manager of managers) {
49
+ await notificationService.createNotification({
50
+ user_id: manager.user_id,
51
+ entity_type: "project_access_request",
52
+ entity_id: access_request.id,
53
+ action: "access_requested",
54
+ message: `${requesterName} requested access to "${project.name}"`,
55
+ workspace_id: project.workspace_id,
56
+ metadata: {
57
+ requesting_user_id: userId,
58
+ requesting_user_name: requesterName,
59
+ project_id: project.id,
60
+ project_name: project.name,
61
+ },
62
+ }).catch(() => { });
63
+ }
64
+ }
65
+ catch {
66
+ // Non-fatal
67
+ }
68
+ const eventBus = req.scope.resolve("eventBus");
69
+ eventBus.emit({
70
+ name: "project.access_requested",
71
+ data: { project_id: project.id, workspace_id: project.workspace_id, user_id: userId, request_id: access_request.id },
72
+ }).catch(() => { });
73
+ res.status(201).json({ access_request });
74
+ }
75
+ catch (err) {
76
+ next(err);
77
+ }
78
+ };
79
+ export const DELETE = async (req, res, next) => {
80
+ try {
81
+ const projectService = req.scope.resolve("projectModuleService");
82
+ const projectMemberService = req.scope.resolve("projectMemberModuleService");
83
+ const identifier = req.params.identifier;
84
+ const project = await projectService.retrieveProjectByIdentifier(identifier).catch(() => null);
85
+ if (!project) {
86
+ res.status(404).json({ error: { message: `Project "${identifier}" not found` } });
87
+ return;
88
+ }
89
+ const userId = req.user?.id;
90
+ const existing = await projectMemberService.getPendingRequest(project.id, userId);
91
+ if (!existing) {
92
+ res.status(404).json({ error: { message: "No pending access request found" } });
93
+ return;
94
+ }
95
+ await projectMemberService.deleteAccessRequest(existing.id);
96
+ const eventBus = req.scope.resolve("eventBus");
97
+ eventBus.emit({
98
+ name: "project.access_request_cancelled",
99
+ data: { project_id: project.id, workspace_id: project.workspace_id, user_id: userId, request_id: existing.id },
100
+ }).catch(() => { });
101
+ res.status(204).end();
102
+ }
103
+ catch (err) {
104
+ next(err);
105
+ }
106
+ };
107
+ //# sourceMappingURL=route.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route.js","sourceRoot":"","sources":["../../../../../../../src/api/admin/projects/by-identifier/[identifier]/access-requests/route.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { Response } from "express";
2
- export declare const DELETE: (req: any, res: Response) => Promise<void>;
1
+ import type { Response, NextFunction } from "express";
2
+ export declare const DELETE: (req: any, res: Response, next: NextFunction) => Promise<void>;
3
3
  export declare const PATCH: (req: any, res: Response) => Promise<void>;
4
4
  //# sourceMappingURL=route.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../../../src/api/admin/workspaces/[id]/access-requests/[requestId]/route.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAKvC,eAAO,MAAM,MAAM,GAAU,KAAK,GAAG,EAAE,KAAK,QAAQ,kBAmBnD,CAAA;AAED,eAAO,MAAM,KAAK,GAAU,KAAK,GAAG,EAAE,KAAK,QAAQ,kBA+DlD,CAAA"}
1
+ {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../../../src/api/admin/workspaces/[id]/access-requests/[requestId]/route.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAKrD,eAAO,MAAM,MAAM,GAAU,KAAK,GAAG,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,kBA8BvE,CAAA;AAED,eAAO,MAAM,KAAK,GAAU,KAAK,GAAG,EAAE,KAAK,QAAQ,kBA+DlD,CAAA"}
@@ -1,23 +1,33 @@
1
1
  import { assertWorkspaceAdmin } from "../../../../../utils/workspace-access.js";
2
2
  import { assignDefaultUserRole } from "../../../../../utils/assign-default-role.js";
3
3
  // Owner cancels their own pending request
4
- export const DELETE = async (req, res) => {
5
- const workspaceMemberService = req.scope.resolve("workspaceMemberModuleService");
6
- const accessRequest = await workspaceMemberService.getAccessRequest(req.params.requestId);
7
- if (!accessRequest || accessRequest.workspace_id !== req.params.id) {
8
- res.status(404).json({ error: { message: "Access request not found" } });
9
- return;
4
+ export const DELETE = async (req, res, next) => {
5
+ try {
6
+ const workspaceMemberService = req.scope.resolve("workspaceMemberModuleService");
7
+ const accessRequest = await workspaceMemberService.getAccessRequest(req.params.requestId);
8
+ if (!accessRequest || accessRequest.workspace_id !== req.params.id) {
9
+ res.status(404).json({ error: { message: "Access request not found" } });
10
+ return;
11
+ }
12
+ if (accessRequest.user_id !== req.user?.id) {
13
+ res.status(403).json({ error: { message: "Forbidden — can only cancel your own request" } });
14
+ return;
15
+ }
16
+ if (accessRequest.status !== "pending") {
17
+ res.status(409).json({ error: { message: "Request is no longer pending" } });
18
+ return;
19
+ }
20
+ await workspaceMemberService.deleteAccessRequest(req.params.requestId);
21
+ const eventBus = req.scope.resolve("eventBus");
22
+ eventBus.emit({
23
+ name: "workspace.access_request_cancelled",
24
+ data: { workspace_id: req.params.id, user_id: accessRequest.user_id, request_id: req.params.requestId },
25
+ }).catch(() => { });
26
+ res.status(204).end();
10
27
  }
11
- if (accessRequest.user_id !== req.user?.id) {
12
- res.status(403).json({ error: { message: "Forbidden — can only cancel your own request" } });
13
- return;
14
- }
15
- if (accessRequest.status !== "pending") {
16
- res.status(409).json({ error: { message: "Request is no longer pending" } });
17
- return;
28
+ catch (err) {
29
+ next(err);
18
30
  }
19
- await workspaceMemberService.deleteAccessRequest(req.params.requestId);
20
- res.status(204).end();
21
31
  };
22
32
  export const PATCH = async (req, res) => {
23
33
  if (!await assertWorkspaceAdmin(req, res))
@@ -1 +1 @@
1
- {"version":3,"file":"route.js","sourceRoot":"","sources":["../../../../../../../src/api/admin/workspaces/[id]/access-requests/[requestId]/route.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"route.js","sourceRoot":"","sources":["../../../../../../../src/api/admin/workspaces/[id]/access-requests/[requestId]/route.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../src/api/admin/workspaces/search/route.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAEvC,eAAO,MAAM,GAAG,GAAU,KAAK,GAAG,EAAE,KAAK,QAAQ,kBA6BhD,CAAA"}
1
+ {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../src/api/admin/workspaces/search/route.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAEvC,eAAO,MAAM,GAAG,GAAU,KAAK,GAAG,EAAE,KAAK,QAAQ,kBAiChD,CAAA"}
@@ -4,7 +4,8 @@ export const GET = async (req, res) => {
4
4
  const q = (req.query.q ?? "").trim().toLowerCase();
5
5
  const [workspaces] = await workspaceService.listAndCountWorkspaces({ is_private: false }, { limit: 100 });
6
6
  const filtered = q
7
- ? workspaces.filter((w) => w.name.toLowerCase().includes(q))
7
+ ? workspaces.filter((w) => w.name.toLowerCase().includes(q) ||
8
+ w.slug.toLowerCase().includes(q))
8
9
  : workspaces;
9
10
  const limited = filtered.slice(0, 20);
10
11
  // Check membership and pending request for each workspace
@@ -1 +1 @@
1
- {"version":3,"file":"route.js","sourceRoot":"","sources":["../../../../../src/api/admin/workspaces/search/route.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,GAAG,GAAG,KAAK,EAAE,GAAQ,EAAE,GAAa,EAAE,EAAE;IACnD,MAAM,gBAAgB,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,wBAAwB,CAAQ,CAAA;IAC3E,MAAM,sBAAsB,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,8BAA8B,CAAQ,CAAA;IAEvF,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAW,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IAE5D,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,gBAAgB,CAAC,sBAAsB,CAChE,EAAE,UAAU,EAAE,KAAK,EAAE,EACrB,EAAE,KAAK,EAAE,GAAG,EAAE,CACf,CAAA;IAED,MAAM,QAAQ,GAAG,CAAC;QAChB,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACjE,CAAC,CAAC,UAAU,CAAA;IAEd,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAErC,0DAA0D;IAC1D,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAM,EAAE,EAAE;QAC3B,MAAM,QAAQ,GAAG,MAAM,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;QAC1E,MAAM,iBAAiB,GAAG,CAAC,QAAQ;YACjC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,sBAAsB,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACxE,CAAC,CAAC,KAAK,CAAA;QACT,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,CAAA;IACxI,CAAC,CAAC,CACH,CAAA;IAED,GAAG,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAA;AACnC,CAAC,CAAA"}
1
+ {"version":3,"file":"route.js","sourceRoot":"","sources":["../../../../../src/api/admin/workspaces/search/route.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,GAAG,GAAG,KAAK,EAAE,GAAQ,EAAE,GAAa,EAAE,EAAE;IACnD,MAAM,gBAAgB,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,wBAAwB,CAAQ,CAAA;IAC3E,MAAM,sBAAsB,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,8BAA8B,CAAQ,CAAA;IAEvF,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAW,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IAE5D,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,gBAAgB,CAAC,sBAAsB,CAChE,EAAE,UAAU,EAAE,KAAK,EAAE,EACrB,EAAE,KAAK,EAAE,GAAG,EAAE,CACf,CAAA;IAED,MAAM,QAAQ,GAAG,CAAC;QAChB,CAAC,CAAC,UAAU,CAAC,MAAM,CACf,CAAC,CAAM,EAAE,EAAE,CACT,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;YAChC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CACnC;QACH,CAAC,CAAC,UAAU,CAAA;IAEd,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAErC,0DAA0D;IAC1D,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAM,EAAE,EAAE;QAC3B,MAAM,QAAQ,GAAG,MAAM,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;QAC1E,MAAM,iBAAiB,GAAG,CAAC,QAAQ;YACjC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,sBAAsB,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACxE,CAAC,CAAC,KAAK,CAAA;QACT,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,CAAA;IACxI,CAAC,CAAC,CACH,CAAA;IAED,GAAG,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAA;AACnC,CAAC,CAAA"}
@@ -0,0 +1,11 @@
1
+ import type { SubscriberArgs, SubscriberConfig } from "@meridianjs/types";
2
+ interface ProjectAccessRequestCancelledData {
3
+ project_id: string;
4
+ workspace_id: string;
5
+ user_id: string;
6
+ request_id: string;
7
+ }
8
+ export default function handler({ event }: SubscriberArgs<ProjectAccessRequestCancelledData>): Promise<void>;
9
+ export declare const config: SubscriberConfig;
10
+ export {};
11
+ //# sourceMappingURL=project-access-request-cancelled.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-access-request-cancelled.d.ts","sourceRoot":"","sources":["../../src/subscribers/project-access-request-cancelled.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAGzE,UAAU,iCAAiC;IACzC,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,wBAA8B,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,cAAc,CAAC,iCAAiC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAQjH;AAED,eAAO,MAAM,MAAM,EAAE,gBAAgE,CAAA"}
@@ -0,0 +1,11 @@
1
+ import { sseManager } from "@meridianjs/framework";
2
+ export default async function handler({ event }) {
3
+ const data = event.data;
4
+ // SSE: update the project access-requests badge for managers/admins
5
+ sseManager.broadcast(data.workspace_id, "project.access_request_cancelled", {
6
+ project_id: data.project_id,
7
+ request_id: data.request_id,
8
+ });
9
+ }
10
+ export const config = { event: "project.access_request_cancelled" };
11
+ //# sourceMappingURL=project-access-request-cancelled.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-access-request-cancelled.js","sourceRoot":"","sources":["../../src/subscribers/project-access-request-cancelled.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AASlD,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,OAAO,CAAC,EAAE,KAAK,EAAqD;IAChG,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;IAEvB,oEAAoE;IACpE,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,kCAAkC,EAAE;QAC1E,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;KAC5B,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAqB,EAAE,KAAK,EAAE,kCAAkC,EAAE,CAAA"}
@@ -0,0 +1,10 @@
1
+ import type { SubscriberArgs, SubscriberConfig } from "@meridianjs/types";
2
+ interface WorkspaceAccessRequestCancelledData {
3
+ workspace_id: string;
4
+ user_id: string;
5
+ request_id: string;
6
+ }
7
+ export default function handler({ event }: SubscriberArgs<WorkspaceAccessRequestCancelledData>): Promise<void>;
8
+ export declare const config: SubscriberConfig;
9
+ export {};
10
+ //# sourceMappingURL=workspace-access-request-cancelled.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-access-request-cancelled.d.ts","sourceRoot":"","sources":["../../src/subscribers/workspace-access-request-cancelled.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAGzE,UAAU,mCAAmC;IAC3C,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,wBAA8B,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,cAAc,CAAC,mCAAmC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAQnH;AAED,eAAO,MAAM,MAAM,EAAE,gBAAkE,CAAA"}
@@ -0,0 +1,11 @@
1
+ import { sseManager } from "@meridianjs/framework";
2
+ export default async function handler({ event }) {
3
+ const data = event.data;
4
+ // SSE: update the workspace access-requests list for admins
5
+ sseManager.broadcast(data.workspace_id, "workspace.access_request_cancelled", {
6
+ workspace_id: data.workspace_id,
7
+ request_id: data.request_id,
8
+ });
9
+ }
10
+ export const config = { event: "workspace.access_request_cancelled" };
11
+ //# sourceMappingURL=workspace-access-request-cancelled.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-access-request-cancelled.js","sourceRoot":"","sources":["../../src/subscribers/workspace-access-request-cancelled.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAQlD,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,OAAO,CAAC,EAAE,KAAK,EAAuD;IAClG,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;IAEvB,4DAA4D;IAC5D,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,oCAAoC,EAAE;QAC5E,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,UAAU,EAAE,IAAI,CAAC,UAAU;KAC5B,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAqB,EAAE,KAAK,EAAE,oCAAoC,EAAE,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@meridianjs/meridian",
3
- "version": "2.2.0",
3
+ "version": "2.3.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.2.0",
24
- "@meridianjs/framework-utils": "^2.2.0",
25
- "@meridianjs/workflow-engine": "^2.2.0",
26
- "@meridianjs/types": "^2.2.0",
23
+ "@meridianjs/framework": "^2.3.0",
24
+ "@meridianjs/framework-utils": "^2.3.0",
25
+ "@meridianjs/workflow-engine": "^2.3.0",
26
+ "@meridianjs/types": "^2.3.0",
27
27
  "@meridianjs/user": "^2.0.0",
28
28
  "@meridianjs/workspace": "^1.2.1",
29
- "@meridianjs/auth": "^2.2.0",
29
+ "@meridianjs/auth": "^2.3.0",
30
30
  "@meridianjs/project": "^2.0.0",
31
31
  "@meridianjs/issue": "^2.0.0",
32
32
  "@meridianjs/sprint": "^1.0.1",