@arcote.tech/arc-workspace 0.4.5 → 0.4.7
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.
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@arcote.tech/arc-workspace",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.4.
|
|
4
|
+
"version": "0.4.7",
|
|
5
5
|
"private": false,
|
|
6
6
|
"description": "Reusable workspace module for Arc framework — multi-workspace with dual token architecture",
|
|
7
7
|
"main": "./src/index.ts",
|
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
"type-check": "tsc --noEmit"
|
|
11
11
|
},
|
|
12
12
|
"peerDependencies": {
|
|
13
|
-
"@arcote.tech/arc": "^0.4.
|
|
14
|
-
"@arcote.tech/arc-auth": "^0.4.
|
|
13
|
+
"@arcote.tech/arc": "^0.4.7",
|
|
14
|
+
"@arcote.tech/arc-auth": "^0.4.7",
|
|
15
15
|
"typescript": "^5.0.0"
|
|
16
16
|
},
|
|
17
17
|
"devDependencies": {
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
aggregate,
|
|
3
3
|
date,
|
|
4
4
|
string,
|
|
5
|
-
type
|
|
5
|
+
type ArcAggregateElement,
|
|
6
6
|
type ArcId,
|
|
7
7
|
} from "@arcote.tech/arc";
|
|
8
8
|
import type { Token } from "@arcote.tech/arc-auth";
|
|
@@ -15,7 +15,7 @@ export type WorkspaceMemberAggregateData = {
|
|
|
15
15
|
accountId: ArcId<any>;
|
|
16
16
|
workspaceToken: WorkspaceToken;
|
|
17
17
|
userToken: Token;
|
|
18
|
-
WorkspaceAggregate:
|
|
18
|
+
WorkspaceAggregate: ArcAggregateElement<any, any, any, any, any, any>;
|
|
19
19
|
};
|
|
20
20
|
|
|
21
21
|
export const createWorkspaceMemberAggregate = <
|
|
@@ -206,11 +206,9 @@ export const createWorkspaceMemberAggregate = <
|
|
|
206
206
|
|
|
207
207
|
.protectBy(userToken, (params: any) => ({ accountId: params.accountId }))
|
|
208
208
|
.clientQuery("getAll", async (ctx) => ctx.$query.find({}))
|
|
209
|
-
|
|
209
|
+
;
|
|
210
210
|
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
return WorkspaceMember;
|
|
211
|
+
return Constructor;
|
|
214
212
|
};
|
|
215
213
|
|
|
216
214
|
export type WorkspaceMemberAggregate<
|
package/src/workspace-builder.ts
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
|
-
aggregateContextElement,
|
|
3
2
|
context,
|
|
4
3
|
type ArcAggregateElement,
|
|
5
4
|
type ArcContextElement,
|
|
6
|
-
type AggregateConstructorAny,
|
|
7
5
|
} from "@arcote.tech/arc";
|
|
8
6
|
import type { AccountId, Token } from "@arcote.tech/arc-auth";
|
|
9
7
|
import { createWorkspaceId } from "./ids/workspace";
|
|
@@ -16,10 +14,8 @@ export class WorkspaceBuilder<
|
|
|
16
14
|
WsId,
|
|
17
15
|
WsMemberId,
|
|
18
16
|
WsToken,
|
|
19
|
-
Workspace extends
|
|
20
|
-
|
|
21
|
-
WorkspaceMember extends AggregateConstructorAny,
|
|
22
|
-
WorkspaceMemberEl extends ArcAggregateElement<WorkspaceMember>,
|
|
17
|
+
Workspace extends ArcAggregateElement,
|
|
18
|
+
WorkspaceMember extends ArcAggregateElement,
|
|
23
19
|
Types extends readonly string[],
|
|
24
20
|
Elements extends ArcContextElement<any>[],
|
|
25
21
|
> {
|
|
@@ -29,9 +25,7 @@ export class WorkspaceBuilder<
|
|
|
29
25
|
readonly workspaceMemberId: WsMemberId,
|
|
30
26
|
readonly workspaceToken: WsToken,
|
|
31
27
|
readonly Workspace: Workspace,
|
|
32
|
-
readonly workspaceElement: WorkspaceEl,
|
|
33
28
|
readonly WorkspaceMember: WorkspaceMember,
|
|
34
|
-
readonly workspaceMemberElement: WorkspaceMemberEl,
|
|
35
29
|
readonly types: Types,
|
|
36
30
|
readonly elements: Elements,
|
|
37
31
|
) {}
|
|
@@ -45,7 +39,6 @@ export class WorkspaceBuilder<
|
|
|
45
39
|
Workspace: this.Workspace,
|
|
46
40
|
WorkspaceMember: this.WorkspaceMember,
|
|
47
41
|
types: this.types,
|
|
48
|
-
// Protection helpers
|
|
49
42
|
isOwner: (params: { role: string }) => params.role === "owner",
|
|
50
43
|
isMember: (params: { role: string }) =>
|
|
51
44
|
params.role === "member" || params.role === "owner",
|
|
@@ -80,7 +73,6 @@ export function workspace<
|
|
|
80
73
|
accountId: config.accountId,
|
|
81
74
|
workspaceToken,
|
|
82
75
|
});
|
|
83
|
-
const workspaceElement = aggregateContextElement(Workspace);
|
|
84
76
|
|
|
85
77
|
const WorkspaceMember = createWorkspaceMemberAggregate({
|
|
86
78
|
name: config.name,
|
|
@@ -91,9 +83,6 @@ export function workspace<
|
|
|
91
83
|
userToken: config.userToken,
|
|
92
84
|
WorkspaceAggregate: Workspace,
|
|
93
85
|
});
|
|
94
|
-
const workspaceMemberElement = aggregateContextElement(WorkspaceMember);
|
|
95
|
-
|
|
96
|
-
const elements = [workspaceElement, workspaceMemberElement];
|
|
97
86
|
|
|
98
87
|
return new WorkspaceBuilder(
|
|
99
88
|
config.name,
|
|
@@ -101,10 +90,8 @@ export function workspace<
|
|
|
101
90
|
workspaceMemberId,
|
|
102
91
|
workspaceToken,
|
|
103
92
|
Workspace,
|
|
104
|
-
workspaceElement,
|
|
105
93
|
WorkspaceMember,
|
|
106
|
-
workspaceMemberElement,
|
|
107
94
|
config.types,
|
|
108
|
-
|
|
95
|
+
[Workspace, WorkspaceMember],
|
|
109
96
|
);
|
|
110
97
|
}
|