@crossworks/client-types 0.232.307 → 0.232.309
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 +1 -1
- package/src/dto/member.ts +77 -10
- package/src/dto/rows.ts +6 -2
- package/src/index.ts +8 -0
package/package.json
CHANGED
package/src/dto/member.ts
CHANGED
|
@@ -79,16 +79,21 @@ export type MemberChatMessage = {
|
|
|
79
79
|
/** GET /api/member/chat. `agent` null = chat not open yet (no team-level agent). */
|
|
80
80
|
export type MemberChatThread = {
|
|
81
81
|
agent: { slug: string; name: string } | null;
|
|
82
|
-
/** false = this login is not linked to a team contact, so it cannot send
|
|
83
|
-
* (POST answers 409). Absent from brains before 0.232.260. */
|
|
84
|
-
linked?: boolean;
|
|
85
82
|
messages: MemberChatMessage[];
|
|
86
83
|
};
|
|
87
84
|
|
|
88
85
|
// ── Personal spaces (member logins Phase 2) ──────────────────────────────
|
|
89
86
|
|
|
90
87
|
export type MemberSpaceSharing = 'private' | 'team';
|
|
91
|
-
|
|
88
|
+
/** A personal item's review state as the brain stores it. `taken` (brains
|
|
89
|
+
* from the take-over release, migration 0183): an admin took the submitted
|
|
90
|
+
* item into their own private space; only admin rows carry it. */
|
|
91
|
+
export type MemberReviewState = 'draft' | 'submitted' | 'returned' | 'accepted' | 'taken';
|
|
92
|
+
|
|
93
|
+
/** A row's state in a list: the stored state, or `with-admin` on the
|
|
94
|
+
* MEMBER's own list for an item an admin took over (title and kind only:
|
|
95
|
+
* opening it answers 409 `with-admin`). */
|
|
96
|
+
export type MemberSpaceItemState = MemberReviewState | 'with-admin';
|
|
92
97
|
|
|
93
98
|
/** One item of a personal space: GET /api/member/space[/team] rows. */
|
|
94
99
|
export type MemberSpaceItemRow = {
|
|
@@ -97,7 +102,7 @@ export type MemberSpaceItemRow = {
|
|
|
97
102
|
title: string;
|
|
98
103
|
icon: string | null;
|
|
99
104
|
sharing: MemberSpaceSharing;
|
|
100
|
-
reviewState:
|
|
105
|
+
reviewState: MemberSpaceItemState;
|
|
101
106
|
submittedAt: string | null;
|
|
102
107
|
returnedNote: string | null;
|
|
103
108
|
/** The login that wrote it (team drafts show whose it is). */
|
|
@@ -105,7 +110,12 @@ export type MemberSpaceItemRow = {
|
|
|
105
110
|
updatedAt: string;
|
|
106
111
|
};
|
|
107
112
|
|
|
108
|
-
/**
|
|
113
|
+
/**
|
|
114
|
+
* GET /api/member/space?kind=&q=&review=&page= (and /space/team). On the
|
|
115
|
+
* member's own list, page 1 also carries the member's items an admin has
|
|
116
|
+
* taken over (reviewState `with-admin`, before the own rows; `total` counts
|
|
117
|
+
* them), unless `review=` names states without `with-admin`.
|
|
118
|
+
*/
|
|
109
119
|
export type MemberSpaceList = {
|
|
110
120
|
items: MemberSpaceItemRow[];
|
|
111
121
|
total: number;
|
|
@@ -113,6 +123,58 @@ export type MemberSpaceList = {
|
|
|
113
123
|
pageSize: number;
|
|
114
124
|
};
|
|
115
125
|
|
|
126
|
+
// ── An admin's private space and Take over (audit F07) ──────────────────
|
|
127
|
+
|
|
128
|
+
/** Who wrote an item an admin took over from the Review queue. */
|
|
129
|
+
export type AdminTakenFrom = {
|
|
130
|
+
/** The member login; null once that login is deleted. */
|
|
131
|
+
loginId: string | null;
|
|
132
|
+
/** Display name, else the email's local part; "Removed member" once the
|
|
133
|
+
* login is deleted. */
|
|
134
|
+
name: string;
|
|
135
|
+
/** False when the member is deactivated, deleted or no longer a member:
|
|
136
|
+
* give-back is refused (409 `author-inactive`), accept or delete it. */
|
|
137
|
+
canGiveBack: boolean;
|
|
138
|
+
takenAt: string | null;
|
|
139
|
+
};
|
|
140
|
+
|
|
141
|
+
/** One row of GET /api/admin/space: a member row, plus who wrote it when
|
|
142
|
+
* the admin took it over (reviewState `taken`), else null. */
|
|
143
|
+
export type AdminSpaceItemRow = MemberSpaceItemRow & { takenFrom: AdminTakenFrom | null };
|
|
144
|
+
|
|
145
|
+
/** GET /api/admin/space?kind=&q=&review=&page= */
|
|
146
|
+
export type AdminSpaceList = {
|
|
147
|
+
items: AdminSpaceItemRow[];
|
|
148
|
+
total: number;
|
|
149
|
+
page: number;
|
|
150
|
+
pageSize: number;
|
|
151
|
+
};
|
|
152
|
+
|
|
153
|
+
/** GET /api/admin/space/:id (and the PATCH answer). */
|
|
154
|
+
export type AdminSpaceItem<TDoc = unknown, TTable = unknown> = {
|
|
155
|
+
row: AdminSpaceItemRow;
|
|
156
|
+
body: MemberSpaceItemBody<TDoc, TTable>;
|
|
157
|
+
};
|
|
158
|
+
|
|
159
|
+
/** An item that moved with a Take over or a Give back. */
|
|
160
|
+
export type MovedSpaceItem = { id: string; type: MemberItemKind; title: string };
|
|
161
|
+
|
|
162
|
+
/** POST /api/team-admin/submissions/:id/take-over -> 200 */
|
|
163
|
+
export type TakeOverResult = {
|
|
164
|
+
/** The taken item: now in the acting admin's private space, same id. */
|
|
165
|
+
id: string;
|
|
166
|
+
/** It and its bundle, in bundle order. */
|
|
167
|
+
moved: MovedSpaceItem[];
|
|
168
|
+
};
|
|
169
|
+
|
|
170
|
+
/** POST /api/admin/space/:id/give-back { note } -> 200 */
|
|
171
|
+
export type GiveBackResult = {
|
|
172
|
+
id: string;
|
|
173
|
+
/** Back in the member's space: the item `returned` with the note, the rest
|
|
174
|
+
* of what was taken with it as drafts. */
|
|
175
|
+
returned: MovedSpaceItem[];
|
|
176
|
+
};
|
|
177
|
+
|
|
116
178
|
/** A space file's metadata; the bytes stream from the item's bytes route. */
|
|
117
179
|
export type MemberSpaceFile = {
|
|
118
180
|
id: string;
|
|
@@ -164,17 +226,22 @@ export type MemberAcceptedPage = {
|
|
|
164
226
|
pageSize: number;
|
|
165
227
|
};
|
|
166
228
|
|
|
167
|
-
/** GET /api/member/accepted/:id -> { item }: the
|
|
168
|
-
*
|
|
169
|
-
*
|
|
229
|
+
/** GET /api/member/accepted/:id -> { item }: the version ACCEPTED (the
|
|
230
|
+
* snapshot taken at Accept, brains from the take-over release; never the
|
|
231
|
+
* brain's current version), whatever its level. A drawing shows from
|
|
232
|
+
* /api/member/draws/:id/svg, a file's bytes from /api/member/files/:id.
|
|
233
|
+
* `changedByAdmin: true`: an admin changed the file (or a drawing with no
|
|
234
|
+
* saved picture) since, so its bytes are not served any more; the metadata
|
|
235
|
+
* is what was accepted. */
|
|
170
236
|
export type MemberAcceptedItem =
|
|
171
237
|
| (MemberAcceptedRow & { type: 'page'; doc: unknown })
|
|
172
238
|
| (MemberAcceptedRow & { type: 'note'; content: string })
|
|
173
239
|
| (MemberAcceptedRow & { type: 'table'; table: unknown })
|
|
174
|
-
| (MemberAcceptedRow & { type: 'draw' })
|
|
240
|
+
| (MemberAcceptedRow & { type: 'draw'; changedByAdmin?: boolean })
|
|
175
241
|
| (MemberAcceptedRow & {
|
|
176
242
|
type: 'file';
|
|
177
243
|
filename: string;
|
|
178
244
|
mimeType: string | null;
|
|
179
245
|
sizeBytes: number | null;
|
|
246
|
+
changedByAdmin?: boolean;
|
|
180
247
|
});
|
package/src/dto/rows.ts
CHANGED
|
@@ -547,9 +547,13 @@ export type TeamRequest = {
|
|
|
547
547
|
status: 'open' | 'done';
|
|
548
548
|
priority: string;
|
|
549
549
|
createdAt: string;
|
|
550
|
-
/** Provenance from data.teamRequest
|
|
551
|
-
*
|
|
550
|
+
/** Provenance from data.teamRequest. A member LOGIN's request (the only
|
|
551
|
+
* kind filed since the team-code portal retired) has `loginId` set and
|
|
552
|
+
* `contactId` null; a request from the old portal has a contact and no
|
|
553
|
+
* login. Reply and "View their chat" apply when either is set. */
|
|
552
554
|
contactId: string | null;
|
|
555
|
+
/** The member login that filed it; null on a portal-era request. */
|
|
556
|
+
loginId: string | null;
|
|
553
557
|
contactName: string | null;
|
|
554
558
|
/** When the owner last posted a resolution to the member for this request. */
|
|
555
559
|
notifiedAt: string | null;
|
package/src/index.ts
CHANGED
|
@@ -42,6 +42,13 @@ export type {
|
|
|
42
42
|
MemberItemAuthor,
|
|
43
43
|
} from './dto/access';
|
|
44
44
|
export type {
|
|
45
|
+
AdminSpaceItem,
|
|
46
|
+
AdminSpaceItemRow,
|
|
47
|
+
AdminSpaceList,
|
|
48
|
+
AdminTakenFrom,
|
|
49
|
+
GiveBackResult,
|
|
50
|
+
MovedSpaceItem,
|
|
51
|
+
TakeOverResult,
|
|
45
52
|
MemberAcceptedItem,
|
|
46
53
|
MemberAcceptedPage,
|
|
47
54
|
MemberAcceptedRow,
|
|
@@ -57,6 +64,7 @@ export type {
|
|
|
57
64
|
MemberSpaceItem,
|
|
58
65
|
MemberSpaceItemBody,
|
|
59
66
|
MemberSpaceItemRow,
|
|
67
|
+
MemberSpaceItemState,
|
|
60
68
|
MemberSpaceList,
|
|
61
69
|
MemberSpaceSharing,
|
|
62
70
|
} from './dto/member';
|