@claudian-collab/protocol 3.2.0 → 3.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 (35) hide show
  1. package/README.md +8 -6
  2. package/dist/CollabAuthorityTransfer.d.ts +1 -1
  3. package/dist/CollabCloudBinding.d.ts +1 -1
  4. package/dist/CollabCloudBinding.js +7 -0
  5. package/dist/CollabControlOperationCodecs.d.ts +18 -0
  6. package/dist/CollabControlOperationCodecs.js +2 -0
  7. package/dist/CollabProjectBackupCheckpoint.d.ts +93 -4
  8. package/dist/CollabProjectBackupCheckpoint.js +640 -12
  9. package/dist/CollabProjectMembership.d.ts +318 -0
  10. package/dist/CollabProjectMembership.js +714 -0
  11. package/dist/CollabProtocol.d.ts +2 -1
  12. package/dist/esm/CollabAuthorityTransfer.mjs +884 -0
  13. package/dist/esm/CollabCloudBinding.mjs +559 -0
  14. package/dist/esm/CollabCloudProjectEvent.mjs +150 -0
  15. package/dist/esm/CollabCloudProjectSnapshot.mjs +277 -0
  16. package/dist/esm/CollabConstants.mjs +31 -0
  17. package/dist/esm/CollabControlOperationCodecs.mjs +106 -0
  18. package/dist/esm/CollabError.mjs +175 -0
  19. package/dist/esm/CollabMarkdownProse.mjs +54 -0
  20. package/dist/esm/CollabMemberMentionParser.mjs +48 -0
  21. package/dist/esm/CollabProjectBackupCheckpoint.mjs +2101 -0
  22. package/dist/esm/CollabProjectCheckpoint.mjs +1326 -0
  23. package/dist/esm/CollabProjectMembership.mjs +709 -0
  24. package/dist/esm/CollabProjectRetirement.mjs +119 -0
  25. package/dist/esm/CollabProtocol.mjs +64 -0
  26. package/dist/esm/CollabRequestTicketRequestCodecs.mjs +263 -0
  27. package/dist/esm/CollabRequestTicketResponseCodecs.mjs +353 -0
  28. package/dist/esm/CollabTicketReferenceParser.mjs +52 -0
  29. package/dist/esm/CollabValidation.mjs +19 -0
  30. package/dist/esm/DevelopmentBootstrap.mjs +537 -0
  31. package/dist/esm/index.mjs +17 -0
  32. package/dist/esm/types.mjs +8 -0
  33. package/dist/index.d.ts +4 -2
  34. package/dist/index.js +10 -3
  35. package/package.json +5 -2
@@ -0,0 +1,318 @@
1
+ import type { CollabDecodeResult } from './CollabProtocol';
2
+ import type { CollabGitOid, CollabIdempotencyKey, CollabIsoTimestamp, CollabMemberId, CollabProjectId, CollabRequestId, CollabRole } from './types';
3
+ export declare const COLLAB_PROJECT_MEMBERSHIP_LIMITS: Readonly<{
4
+ readonly invitationSecretLength: 43;
5
+ readonly invitationTtlMs: 86400000;
6
+ readonly managerResponsibilityOfferRetentionMs: 2592000000;
7
+ readonly managerResponsibilityOfferTtlMs: 86400000;
8
+ readonly maxCurrentManagerOffers: 100;
9
+ readonly maxDisplayNameUtf8Bytes: 128;
10
+ readonly maxProjectInvitations: 100;
11
+ readonly maxProjectMembers: 100;
12
+ readonly maxProjectNameUtf8Bytes: 256;
13
+ readonly secretReplayTtlMs: 2592000000;
14
+ readonly transferredClaimLength: 43;
15
+ readonly transferredClaimTtlMs: 2592000000;
16
+ }>;
17
+ export type CollabProjectInvitationState = 'active' | 'redeeming' | 'redeemed' | 'revoked' | 'expired';
18
+ export type CollabProjectMemberBindingState = 'bound' | 'unbound' | 'hidden';
19
+ export type CollabImportedClaimState = 'not-applicable' | 'original-active' | 'override-active' | 'revoked' | 'expired' | 'redeemed' | 'hidden';
20
+ export type CollabManagerResponsibilityPurpose = 'manager-promotion' | 'manager-leave';
21
+ export type CollabManagerResponsibilityOfferState = 'offered' | 'acknowledged' | 'declined' | 'cancelled' | 'consumed' | 'expired';
22
+ export interface CollabProjectRequest {
23
+ readonly projectId: CollabProjectId;
24
+ }
25
+ export interface CollabProjectMutationRequest extends CollabProjectRequest {
26
+ readonly idempotencyKey: CollabIdempotencyKey;
27
+ }
28
+ export interface CreateCloudProjectRequest extends CollabProjectMutationRequest {
29
+ readonly managerDisplayName: string;
30
+ readonly projectName: string;
31
+ }
32
+ export interface CreateCloudProjectResponse {
33
+ readonly createdAt: CollabIsoTimestamp;
34
+ readonly mainOid: CollabGitOid;
35
+ readonly managerSetGeneration: 1;
36
+ readonly memberId: CollabMemberId;
37
+ readonly membershipRevision: 2;
38
+ readonly personalRef: string;
39
+ readonly projectId: CollabProjectId;
40
+ readonly role: 'manager';
41
+ }
42
+ export interface CreateProjectInvitationRequest extends CollabProjectMutationRequest {
43
+ readonly expectedManagerSetGeneration: number;
44
+ }
45
+ export interface CreateProjectInvitationResponse {
46
+ readonly createdAt: CollabIsoTimestamp;
47
+ readonly expiresAt: CollabIsoTimestamp;
48
+ readonly invitationId: string;
49
+ readonly issuedState: 'active';
50
+ readonly projectId: CollabProjectId;
51
+ readonly secret: string;
52
+ readonly secretReplayExpiresAt: CollabIsoTimestamp;
53
+ }
54
+ export interface CollabProjectInvitationSummary {
55
+ readonly createdAt: CollabIsoTimestamp;
56
+ readonly expiresAt: CollabIsoTimestamp;
57
+ readonly invitationId: string;
58
+ readonly revision: number;
59
+ readonly state: CollabProjectInvitationState;
60
+ readonly terminalAt: CollabIsoTimestamp | null;
61
+ }
62
+ export type ListProjectInvitationsRequest = CollabProjectRequest;
63
+ export interface ListProjectInvitationsResponse {
64
+ readonly invitations: readonly CollabProjectInvitationSummary[];
65
+ readonly managerSetGeneration: number;
66
+ readonly projectId: CollabProjectId;
67
+ }
68
+ export interface RevokeProjectInvitationRequest extends CollabProjectMutationRequest {
69
+ readonly expectedInvitationRevision: number;
70
+ readonly expectedManagerSetGeneration: number;
71
+ readonly invitationId: string;
72
+ }
73
+ export interface RevokeProjectInvitationResponse {
74
+ readonly invitationId: string;
75
+ readonly projectId: CollabProjectId;
76
+ readonly revision: number;
77
+ readonly revokedAt: CollabIsoTimestamp;
78
+ readonly state: 'revoked';
79
+ }
80
+ export interface JoinCloudProjectRequest extends CollabProjectMutationRequest {
81
+ readonly displayName: string;
82
+ readonly invitationId: string;
83
+ readonly secret: string;
84
+ }
85
+ export interface JoinCloudProjectResponse {
86
+ readonly joinedAt: CollabIsoTimestamp;
87
+ readonly mainOid: CollabGitOid;
88
+ readonly managerSetGeneration: number;
89
+ readonly memberId: CollabMemberId;
90
+ readonly membershipRevision: 2;
91
+ readonly personalRef: string;
92
+ readonly projectId: CollabProjectId;
93
+ readonly role: 'member';
94
+ }
95
+ export interface CollabProjectMemberSummary {
96
+ readonly bindingState: CollabProjectMemberBindingState;
97
+ readonly displayName: string;
98
+ readonly importedClaimState: CollabImportedClaimState;
99
+ readonly memberId: CollabMemberId;
100
+ readonly membershipRevision: number;
101
+ readonly role: CollabRole;
102
+ }
103
+ export type ListProjectMembersRequest = CollabProjectRequest;
104
+ export interface ListProjectMembersResponse {
105
+ readonly managerSetGeneration: number;
106
+ readonly members: readonly CollabProjectMemberSummary[];
107
+ readonly projectId: CollabProjectId;
108
+ }
109
+ export interface ReissueTransferredMembershipClaimRequest extends CollabProjectMutationRequest {
110
+ readonly expectedClaimGeneration: number;
111
+ readonly expectedManagerSetGeneration: number;
112
+ readonly expectedMembershipRevision: number;
113
+ readonly memberId: CollabMemberId;
114
+ }
115
+ export interface ReissueTransferredMembershipClaimResponse {
116
+ readonly claim: string;
117
+ readonly claimGeneration: number;
118
+ readonly createdAt: CollabIsoTimestamp;
119
+ readonly expiresAt: CollabIsoTimestamp;
120
+ readonly memberId: CollabMemberId;
121
+ readonly projectId: CollabProjectId;
122
+ readonly secretReplayExpiresAt: CollabIsoTimestamp;
123
+ }
124
+ export type RevokeTransferredMembershipClaimRequest = ReissueTransferredMembershipClaimRequest;
125
+ export interface RevokeTransferredMembershipClaimResponse {
126
+ readonly claimGeneration: number;
127
+ readonly memberId: CollabMemberId;
128
+ readonly projectId: CollabProjectId;
129
+ readonly revokedAt: CollabIsoTimestamp;
130
+ readonly state: 'revoked';
131
+ }
132
+ export interface CollabManagerResponsibilityOffer {
133
+ readonly acknowledgedAt: CollabIsoTimestamp | null;
134
+ readonly expiresAt: CollabIsoTimestamp;
135
+ readonly managerSetGenerationAtOffer: number;
136
+ readonly offeredAt: CollabIsoTimestamp;
137
+ readonly offerId: string;
138
+ readonly purpose: CollabManagerResponsibilityPurpose;
139
+ readonly revision: number;
140
+ readonly sourceManagerMemberId: CollabMemberId;
141
+ readonly state: CollabManagerResponsibilityOfferState;
142
+ readonly targetMemberId: CollabMemberId;
143
+ readonly targetMembershipRevisionAtOffer: number;
144
+ readonly terminalAt: CollabIsoTimestamp | null;
145
+ }
146
+ export interface CreateManagerResponsibilityOfferRequest extends CollabProjectMutationRequest {
147
+ readonly expectedManagerSetGeneration: number;
148
+ readonly expectedTargetMembershipRevision: number;
149
+ readonly purpose: CollabManagerResponsibilityPurpose;
150
+ readonly targetMemberId: CollabMemberId;
151
+ }
152
+ export interface CollabManagerResponsibilityOfferResponse {
153
+ readonly offer: CollabManagerResponsibilityOffer;
154
+ }
155
+ export type ListCurrentManagerResponsibilityOffersRequest = CollabProjectRequest;
156
+ export interface ListCurrentManagerResponsibilityOffersResponse {
157
+ readonly offers: readonly CollabManagerResponsibilityOffer[];
158
+ readonly projectId: CollabProjectId;
159
+ }
160
+ export interface GetManagerResponsibilityOfferRequest extends CollabProjectRequest {
161
+ readonly offerId: string;
162
+ }
163
+ export interface TransitionManagerResponsibilityOfferRequest extends CollabProjectMutationRequest {
164
+ readonly expectedOfferRevision: number;
165
+ readonly offerId: string;
166
+ }
167
+ export interface PromoteManagerRequest extends CollabProjectMutationRequest {
168
+ readonly expectedManagerSetGeneration: number;
169
+ readonly expectedOfferRevision: number;
170
+ readonly expectedTargetMembershipRevision: number;
171
+ readonly managerResponsibilityOfferId: string;
172
+ readonly targetMemberId: CollabMemberId;
173
+ }
174
+ export interface PromoteManagerResponse {
175
+ readonly managerSetGeneration: number;
176
+ readonly membershipRevision: number;
177
+ readonly offerRevision: number;
178
+ readonly projectId: CollabProjectId;
179
+ readonly promotedMemberId: CollabMemberId;
180
+ }
181
+ export interface DemoteManagerRequest extends CollabProjectMutationRequest {
182
+ readonly expectedManagerSetGeneration: number;
183
+ readonly expectedTargetMembershipRevision: number;
184
+ readonly targetMemberId: CollabMemberId;
185
+ }
186
+ export interface DemoteManagerResponse {
187
+ readonly demotedMemberId: CollabMemberId;
188
+ readonly managerSetGeneration: number;
189
+ readonly membershipRevision: number;
190
+ readonly projectId: CollabProjectId;
191
+ }
192
+ export type RemoveMemberRequest = DemoteManagerRequest;
193
+ export interface RemoveMemberResponse {
194
+ readonly discardedRequestId: CollabRequestId | null;
195
+ readonly managerSetGeneration: number;
196
+ readonly memberId: CollabMemberId;
197
+ readonly projectId: CollabProjectId;
198
+ readonly removedAt: CollabIsoTimestamp;
199
+ readonly status: 'revoked';
200
+ }
201
+ export interface LeaveProjectRequest extends CollabProjectMutationRequest {
202
+ readonly expectedManagerSetGeneration: number;
203
+ readonly expectedMembershipRevision: number;
204
+ readonly expectedOfferRevision: number | null;
205
+ readonly expectedPersonalRefOid: CollabGitOid;
206
+ readonly managerResponsibilityOfferId: string | null;
207
+ }
208
+ export interface LeaveProjectResponse {
209
+ readonly discardedRequestId: CollabRequestId | null;
210
+ readonly leftAt: CollabIsoTimestamp;
211
+ readonly managerSetGeneration: number;
212
+ readonly memberId: CollabMemberId;
213
+ readonly projectId: CollabProjectId;
214
+ readonly promotedSuccessorMemberId: CollabMemberId | null;
215
+ readonly status: 'left';
216
+ }
217
+ export declare const COLLAB_PROJECT_MEMBERSHIP_OPERATIONS: readonly ["createCloudProject", "createProjectInvitation", "listProjectInvitations", "revokeProjectInvitation", "joinCloudProject", "listProjectMembers", "reissueTransferredMembershipClaim", "revokeTransferredMembershipClaim", "createManagerResponsibilityOffer", "listCurrentManagerResponsibilityOffers", "getManagerResponsibilityOffer", "acknowledgeManagerResponsibility", "declineManagerResponsibility", "cancelManagerResponsibilityOffer", "promoteManager", "demoteManager", "removeMember", "leaveProject"];
218
+ export type CollabProjectMembershipOperation = typeof COLLAB_PROJECT_MEMBERSHIP_OPERATIONS[number];
219
+ export interface CollabProjectMembershipOperationMap {
220
+ readonly createCloudProject: {
221
+ readonly request: CreateCloudProjectRequest;
222
+ readonly response: CreateCloudProjectResponse;
223
+ };
224
+ readonly createProjectInvitation: {
225
+ readonly request: CreateProjectInvitationRequest;
226
+ readonly response: CreateProjectInvitationResponse;
227
+ };
228
+ readonly listProjectInvitations: {
229
+ readonly request: ListProjectInvitationsRequest;
230
+ readonly response: ListProjectInvitationsResponse;
231
+ };
232
+ readonly revokeProjectInvitation: {
233
+ readonly request: RevokeProjectInvitationRequest;
234
+ readonly response: RevokeProjectInvitationResponse;
235
+ };
236
+ readonly joinCloudProject: {
237
+ readonly request: JoinCloudProjectRequest;
238
+ readonly response: JoinCloudProjectResponse;
239
+ };
240
+ readonly listProjectMembers: {
241
+ readonly request: ListProjectMembersRequest;
242
+ readonly response: ListProjectMembersResponse;
243
+ };
244
+ readonly reissueTransferredMembershipClaim: {
245
+ readonly request: ReissueTransferredMembershipClaimRequest;
246
+ readonly response: ReissueTransferredMembershipClaimResponse;
247
+ };
248
+ readonly revokeTransferredMembershipClaim: {
249
+ readonly request: RevokeTransferredMembershipClaimRequest;
250
+ readonly response: RevokeTransferredMembershipClaimResponse;
251
+ };
252
+ readonly createManagerResponsibilityOffer: {
253
+ readonly request: CreateManagerResponsibilityOfferRequest;
254
+ readonly response: CollabManagerResponsibilityOfferResponse;
255
+ };
256
+ readonly listCurrentManagerResponsibilityOffers: {
257
+ readonly request: ListCurrentManagerResponsibilityOffersRequest;
258
+ readonly response: ListCurrentManagerResponsibilityOffersResponse;
259
+ };
260
+ readonly getManagerResponsibilityOffer: {
261
+ readonly request: GetManagerResponsibilityOfferRequest;
262
+ readonly response: CollabManagerResponsibilityOfferResponse;
263
+ };
264
+ readonly acknowledgeManagerResponsibility: {
265
+ readonly request: TransitionManagerResponsibilityOfferRequest;
266
+ readonly response: CollabManagerResponsibilityOfferResponse;
267
+ };
268
+ readonly declineManagerResponsibility: {
269
+ readonly request: TransitionManagerResponsibilityOfferRequest;
270
+ readonly response: CollabManagerResponsibilityOfferResponse;
271
+ };
272
+ readonly cancelManagerResponsibilityOffer: {
273
+ readonly request: TransitionManagerResponsibilityOfferRequest;
274
+ readonly response: CollabManagerResponsibilityOfferResponse;
275
+ };
276
+ readonly promoteManager: {
277
+ readonly request: PromoteManagerRequest;
278
+ readonly response: PromoteManagerResponse;
279
+ };
280
+ readonly demoteManager: {
281
+ readonly request: DemoteManagerRequest;
282
+ readonly response: DemoteManagerResponse;
283
+ };
284
+ readonly removeMember: {
285
+ readonly request: RemoveMemberRequest;
286
+ readonly response: RemoveMemberResponse;
287
+ };
288
+ readonly leaveProject: {
289
+ readonly request: LeaveProjectRequest;
290
+ readonly response: LeaveProjectResponse;
291
+ };
292
+ }
293
+ export interface CollabProjectMembershipOperationCodec<Request, Response> {
294
+ readonly decodeRequest: (input: unknown) => CollabDecodeResult<Request>;
295
+ readonly decodeResponse: (input: unknown) => Response;
296
+ }
297
+ export declare const COLLAB_PROJECT_MEMBERSHIP_OPERATION_CODECS: Readonly<{
298
+ readonly createCloudProject: CollabProjectMembershipOperationCodec<CreateCloudProjectRequest, CreateCloudProjectResponse>;
299
+ readonly createProjectInvitation: CollabProjectMembershipOperationCodec<CreateProjectInvitationRequest, CreateProjectInvitationResponse>;
300
+ readonly listProjectInvitations: CollabProjectMembershipOperationCodec<CollabProjectRequest, ListProjectInvitationsResponse>;
301
+ readonly revokeProjectInvitation: CollabProjectMembershipOperationCodec<RevokeProjectInvitationRequest, RevokeProjectInvitationResponse>;
302
+ readonly joinCloudProject: CollabProjectMembershipOperationCodec<JoinCloudProjectRequest, JoinCloudProjectResponse>;
303
+ readonly listProjectMembers: CollabProjectMembershipOperationCodec<CollabProjectRequest, ListProjectMembersResponse>;
304
+ readonly reissueTransferredMembershipClaim: CollabProjectMembershipOperationCodec<ReissueTransferredMembershipClaimRequest, ReissueTransferredMembershipClaimResponse>;
305
+ readonly revokeTransferredMembershipClaim: CollabProjectMembershipOperationCodec<ReissueTransferredMembershipClaimRequest, RevokeTransferredMembershipClaimResponse>;
306
+ readonly createManagerResponsibilityOffer: CollabProjectMembershipOperationCodec<CreateManagerResponsibilityOfferRequest, CollabManagerResponsibilityOfferResponse>;
307
+ readonly listCurrentManagerResponsibilityOffers: CollabProjectMembershipOperationCodec<CollabProjectRequest, ListCurrentManagerResponsibilityOffersResponse>;
308
+ readonly getManagerResponsibilityOffer: CollabProjectMembershipOperationCodec<GetManagerResponsibilityOfferRequest, CollabManagerResponsibilityOfferResponse>;
309
+ readonly acknowledgeManagerResponsibility: CollabProjectMembershipOperationCodec<TransitionManagerResponsibilityOfferRequest, CollabManagerResponsibilityOfferResponse>;
310
+ readonly declineManagerResponsibility: CollabProjectMembershipOperationCodec<TransitionManagerResponsibilityOfferRequest, CollabManagerResponsibilityOfferResponse>;
311
+ readonly cancelManagerResponsibilityOffer: CollabProjectMembershipOperationCodec<TransitionManagerResponsibilityOfferRequest, CollabManagerResponsibilityOfferResponse>;
312
+ readonly promoteManager: CollabProjectMembershipOperationCodec<PromoteManagerRequest, PromoteManagerResponse>;
313
+ readonly demoteManager: CollabProjectMembershipOperationCodec<DemoteManagerRequest, DemoteManagerResponse>;
314
+ readonly removeMember: CollabProjectMembershipOperationCodec<DemoteManagerRequest, RemoveMemberResponse>;
315
+ readonly leaveProject: CollabProjectMembershipOperationCodec<LeaveProjectRequest, LeaveProjectResponse>;
316
+ }>;
317
+ export declare function decodeCollabProjectMembershipOperationRequest<Operation extends CollabProjectMembershipOperation>(operation: Operation, value: unknown): CollabDecodeResult<CollabProjectMembershipOperationMap[Operation]['request']>;
318
+ export declare function decodeCollabProjectMembershipOperationResponse<Operation extends CollabProjectMembershipOperation>(operation: Operation, value: unknown): CollabProjectMembershipOperationMap[Operation]['response'];