@tearleads/client-sdk 0.1.17 → 0.1.18

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 (33) hide show
  1. package/client/principalMutationApi.d.ts +1 -1
  2. package/client/principalMutationApi.js +5 -13
  3. package/client/principalMutationApi.js.map +1 -1
  4. package/client/principalMutationDispatch.js +54 -0
  5. package/client/principalMutationDispatch.js.map +1 -0
  6. package/data/principals/principalMutationJournal.d.ts +2 -5
  7. package/data/principals/principalMutationJournal.js +3 -20
  8. package/data/principals/principalMutationJournal.js.map +1 -1
  9. package/data/principals/principalMutationJournalShape.d.ts +26 -0
  10. package/data/principals/principalMutationJournalShape.js +46 -0
  11. package/data/principals/principalMutationJournalShape.js.map +1 -0
  12. package/index.d.ts +1 -1
  13. package/index.js.map +1 -1
  14. package/internal/api-client/ApiClient.d.ts +267 -3
  15. package/internal/api-client/ApiClient.js +11 -29
  16. package/internal/api-client/ApiClient.js.map +1 -1
  17. package/internal/api-client/principalPolicyRequests.d.ts +266 -1
  18. package/internal/api-client/principalPolicyRequests.js +43 -1
  19. package/internal/api-client/principalPolicyRequests.js.map +1 -1
  20. package/internal/validators/operation/organizations.d.ts +54 -0
  21. package/internal/validators/operation/organizations.js +19 -4
  22. package/internal/validators/operation/organizations.js.map +1 -1
  23. package/package.json +1 -1
  24. package/workflows/organizations/index.d.ts +1 -0
  25. package/workflows/organizations/index.js.map +1 -1
  26. package/workflows/organizations/principalMutationJournalSession.d.ts +3 -3
  27. package/workflows/organizations/principalMutationJournalSession.js +2 -2
  28. package/workflows/organizations/principalMutationJournalSession.js.map +1 -1
  29. package/workflows/organizations/principalMutationReceipt.js +13 -12
  30. package/workflows/organizations/principalMutationReceipt.js.map +1 -1
  31. package/workflows/organizations/principalOperationReceipt.d.ts +5 -0
  32. package/workflows/organizations/principalOperationReceipt.js +36 -0
  33. package/workflows/organizations/principalOperationReceipt.js.map +1 -0
@@ -1,6 +1,6 @@
1
1
  import type { NativeSubscriptionStore } from "../validators/billing.js";
2
2
  import { type RootIdentitiesQuery, type RootOrganizationPageQuery, type RootOrganizationsQuery } from "../validators/operation/index.js";
3
- import type { BlobAttachmentBindRequest, BlobAttachmentDetachRequest, CommitOrganizationGroupPolicyRequest, CompleteMultipartBlobStageRequest, ContainerCreateWithMetadataDocumentRequest, ContainerMutationRequest, ContainerReciteRequest, ContainerRotationRequest, CreateOrganizationGroupWithPolicyRequest, CreateOrganizationRequest, DeleteOrganizationGroupRequest, DocumentCreateRequest, DocumentLinkSetMutationRequest, DocumentPurgeRequest, DocumentSyncRequest, InitiateMultipartBlobStageRequest, ListContainerParentLanesRequest, RegistrationRequest, UpdateOrganizationProfileRequest, UpdateOrganizationRosterEntryRequest } from "../validators/request/index.js";
3
+ import type { BlobAttachmentBindRequest, BlobAttachmentDetachRequest, CommitOrganizationGroupPolicyRequest, CompleteMultipartBlobStageRequest, ContainerCreateWithMetadataDocumentRequest, ContainerMutationRequest, ContainerReciteRequest, ContainerRotationRequest, CreateOrganizationRequest, DocumentCreateRequest, DocumentLinkSetMutationRequest, DocumentPurgeRequest, DocumentSyncRequest, InitiateMultipartBlobStageRequest, ListContainerParentLanesRequest, RegistrationRequest, UpdateOrganizationProfileRequest, UpdateOrganizationRosterEntryRequest } from "../validators/request/index.js";
4
4
  import type { CommitOrganizationGroupPolicyResponse, ContainerCreateWithMetadataDocumentResponse, ContainerDeleteResponse, ContainerMutationResponse, ContainerRotationResponse, ContainerWriterProjectionResponse, DocumentCreateResponse, DocumentSyncResponse, DocumentWriterProjectionResponse, ListContainerDocumentsResponse, OrganizationDataUsageResponse, OrganizationPolicyHistoryResponse, OrganizationReadModelResponse, RootDataUsageReportResponse, RootIdentitiesResponse, RootIdentityDetailResponse, RootIdentityOrganizationsResponse, RootOrganizationDetailResponse, RootOrganizationIdentitiesResponse, RootOrganizationsResponse } from "../validators/response/index.js";
5
5
  import type { PrincipalPolicyPageReadOptions } from "./principalPolicyPages.js";
6
6
  import { PrincipalPolicyRequests } from "./principalPolicyRequests.js";
@@ -1904,7 +1904,7 @@ export declare class ApiClient {
1904
1904
  organizationId: string;
1905
1905
  profileDocumentId: string | null;
1906
1906
  } | null>;
1907
- createOrganizationGroup(organizationId: string, input: CreateOrganizationGroupWithPolicyRequest): Promise<{
1907
+ createOrganizationGroup(...args: Parameters<PrincipalPolicyRequests["createResult"]>): Promise<{
1908
1908
  group: {
1909
1909
  createdAt: string;
1910
1910
  currentState: {
@@ -2041,7 +2041,144 @@ export declare class ApiClient {
2041
2041
  };
2042
2042
  };
2043
2043
  } | null>;
2044
- deleteOrganizationGroup(organizationId: string, groupId: string, input: DeleteOrganizationGroupRequest): Promise<{
2044
+ createOrganizationGroupResult(...args: Parameters<PrincipalPolicyRequests["createResult"]>): Promise<RequestResult<{
2045
+ group: {
2046
+ createdAt: string;
2047
+ currentState: {
2048
+ keyEpoch: number;
2049
+ keyFingerprint: string;
2050
+ memberCount: number;
2051
+ stateHash: string;
2052
+ version: number;
2053
+ } | null;
2054
+ groupId: string;
2055
+ isBuiltin: boolean;
2056
+ organizationId: string;
2057
+ };
2058
+ organizationPolicy: {
2059
+ containerMutations: {
2060
+ createdAt: string;
2061
+ manifestHead: {
2062
+ epoch: number;
2063
+ manifestHash: string;
2064
+ };
2065
+ organizationId: string;
2066
+ parentId: string | null;
2067
+ referencedPrincipalHeads: {
2068
+ principalType: "group";
2069
+ keyEpoch: number;
2070
+ keyFingerprint: string;
2071
+ principalId: string;
2072
+ stateHash: string;
2073
+ version: number;
2074
+ }[];
2075
+ updatedAt: string;
2076
+ accessManifest: {
2077
+ event: {
2078
+ body: unknown;
2079
+ event: Record<string, unknown>;
2080
+ eventHash: string;
2081
+ };
2082
+ manifest: Record<string, unknown>;
2083
+ manifestHash: string;
2084
+ state: Record<string, unknown>;
2085
+ };
2086
+ containerId: string;
2087
+ containerKek: {
2088
+ accessManifestHash: string;
2089
+ containerId: string;
2090
+ containerKeyEpoch: number;
2091
+ containerKeyEpochId: string;
2092
+ containerManifestHistory: {
2093
+ event: {
2094
+ body: unknown;
2095
+ event: Record<string, unknown>;
2096
+ eventHash: string;
2097
+ };
2098
+ manifest: Record<string, unknown>;
2099
+ manifestHash: string;
2100
+ state: Record<string, unknown>;
2101
+ }[];
2102
+ keyEpoch: Record<string, unknown>;
2103
+ keyEpochHash: string;
2104
+ keyring: {
2105
+ containerId: string;
2106
+ containerKeyEpochId: string;
2107
+ iv: string;
2108
+ sealed: string;
2109
+ sealingSuite: string;
2110
+ version: number;
2111
+ } | null;
2112
+ keyTargetHash: string;
2113
+ parentContainerKeyEpochId: string | null;
2114
+ recipientTargets: Record<string, unknown>[];
2115
+ wraps: Record<string, unknown>[];
2116
+ };
2117
+ systemSlot?: string | null | undefined;
2118
+ }[];
2119
+ currentGrants: {
2120
+ accessLevel: "admin" | "read" | "write";
2121
+ containerId: string;
2122
+ }[];
2123
+ currentMemberEnvelopes: {
2124
+ envelopes: {
2125
+ kemCipherText: string;
2126
+ memberKeyFingerprint: string;
2127
+ userId: string;
2128
+ wrappedKey: string;
2129
+ }[];
2130
+ epoch: number;
2131
+ principalId: string;
2132
+ principalType: "group" | "organization";
2133
+ stateHash: string;
2134
+ };
2135
+ currentPayload: {
2136
+ cipherSuite: "aes-256-gcm";
2137
+ ciphertext: string;
2138
+ ciphertextHash: string;
2139
+ createdAt: string;
2140
+ principalId: string;
2141
+ principalType: "group" | "organization";
2142
+ stateHash: string;
2143
+ };
2144
+ currentProjection: {
2145
+ role: "member" | "admin";
2146
+ userId: string;
2147
+ }[];
2148
+ currentState: {
2149
+ createdAt: string;
2150
+ encapsulationPublicKey: string;
2151
+ externalAuthority: {
2152
+ keyEpoch: number;
2153
+ keyFingerprint: string;
2154
+ principalId: string;
2155
+ principalType: "group";
2156
+ stateHash: string;
2157
+ version: number;
2158
+ } | null;
2159
+ grantCount: number;
2160
+ grantRoot: string;
2161
+ keyEpoch: number;
2162
+ keyFingerprint: string;
2163
+ memberCount: number;
2164
+ memberEnvelopesRoot: string;
2165
+ membershipMode: "projection";
2166
+ membershipRoot: string;
2167
+ payloadCiphertextHash: string;
2168
+ prevStateHash: string | null;
2169
+ principalId: string;
2170
+ principalType: "group" | "organization";
2171
+ projectionRoot: string;
2172
+ signature: string;
2173
+ signedAt: string;
2174
+ signerUserId: string;
2175
+ signerUserKeyFingerprint: string;
2176
+ stateHash: string;
2177
+ version: number;
2178
+ };
2179
+ };
2180
+ }>>;
2181
+ deleteOrganizationGroup(...args: Parameters<PrincipalPolicyRequests["deleteResult"]>): Promise<{
2045
2182
  deleted: true;
2046
2183
  groupId: string;
2047
2184
  organizationPolicy: {
@@ -2168,6 +2305,133 @@ export declare class ApiClient {
2168
2305
  };
2169
2306
  organizationId: string;
2170
2307
  } | null>;
2308
+ deleteOrganizationGroupResult(...args: Parameters<PrincipalPolicyRequests["deleteResult"]>): Promise<RequestResult<{
2309
+ deleted: true;
2310
+ groupId: string;
2311
+ organizationPolicy: {
2312
+ containerMutations: {
2313
+ createdAt: string;
2314
+ manifestHead: {
2315
+ epoch: number;
2316
+ manifestHash: string;
2317
+ };
2318
+ organizationId: string;
2319
+ parentId: string | null;
2320
+ referencedPrincipalHeads: {
2321
+ principalType: "group";
2322
+ keyEpoch: number;
2323
+ keyFingerprint: string;
2324
+ principalId: string;
2325
+ stateHash: string;
2326
+ version: number;
2327
+ }[];
2328
+ updatedAt: string;
2329
+ accessManifest: {
2330
+ event: {
2331
+ body: unknown;
2332
+ event: Record<string, unknown>;
2333
+ eventHash: string;
2334
+ };
2335
+ manifest: Record<string, unknown>;
2336
+ manifestHash: string;
2337
+ state: Record<string, unknown>;
2338
+ };
2339
+ containerId: string;
2340
+ containerKek: {
2341
+ accessManifestHash: string;
2342
+ containerId: string;
2343
+ containerKeyEpoch: number;
2344
+ containerKeyEpochId: string;
2345
+ containerManifestHistory: {
2346
+ event: {
2347
+ body: unknown;
2348
+ event: Record<string, unknown>;
2349
+ eventHash: string;
2350
+ };
2351
+ manifest: Record<string, unknown>;
2352
+ manifestHash: string;
2353
+ state: Record<string, unknown>;
2354
+ }[];
2355
+ keyEpoch: Record<string, unknown>;
2356
+ keyEpochHash: string;
2357
+ keyring: {
2358
+ containerId: string;
2359
+ containerKeyEpochId: string;
2360
+ iv: string;
2361
+ sealed: string;
2362
+ sealingSuite: string;
2363
+ version: number;
2364
+ } | null;
2365
+ keyTargetHash: string;
2366
+ parentContainerKeyEpochId: string | null;
2367
+ recipientTargets: Record<string, unknown>[];
2368
+ wraps: Record<string, unknown>[];
2369
+ };
2370
+ systemSlot?: string | null | undefined;
2371
+ }[];
2372
+ currentGrants: {
2373
+ accessLevel: "admin" | "read" | "write";
2374
+ containerId: string;
2375
+ }[];
2376
+ currentMemberEnvelopes: {
2377
+ envelopes: {
2378
+ kemCipherText: string;
2379
+ memberKeyFingerprint: string;
2380
+ userId: string;
2381
+ wrappedKey: string;
2382
+ }[];
2383
+ epoch: number;
2384
+ principalId: string;
2385
+ principalType: "group" | "organization";
2386
+ stateHash: string;
2387
+ };
2388
+ currentPayload: {
2389
+ cipherSuite: "aes-256-gcm";
2390
+ ciphertext: string;
2391
+ ciphertextHash: string;
2392
+ createdAt: string;
2393
+ principalId: string;
2394
+ principalType: "group" | "organization";
2395
+ stateHash: string;
2396
+ };
2397
+ currentProjection: {
2398
+ role: "member" | "admin";
2399
+ userId: string;
2400
+ }[];
2401
+ currentState: {
2402
+ createdAt: string;
2403
+ encapsulationPublicKey: string;
2404
+ externalAuthority: {
2405
+ keyEpoch: number;
2406
+ keyFingerprint: string;
2407
+ principalId: string;
2408
+ principalType: "group";
2409
+ stateHash: string;
2410
+ version: number;
2411
+ } | null;
2412
+ grantCount: number;
2413
+ grantRoot: string;
2414
+ keyEpoch: number;
2415
+ keyFingerprint: string;
2416
+ memberCount: number;
2417
+ memberEnvelopesRoot: string;
2418
+ membershipMode: "projection";
2419
+ membershipRoot: string;
2420
+ payloadCiphertextHash: string;
2421
+ prevStateHash: string | null;
2422
+ principalId: string;
2423
+ principalType: "group" | "organization";
2424
+ projectionRoot: string;
2425
+ signature: string;
2426
+ signedAt: string;
2427
+ signerUserId: string;
2428
+ signerUserKeyFingerprint: string;
2429
+ stateHash: string;
2430
+ version: number;
2431
+ };
2432
+ };
2433
+ organizationId: string;
2434
+ }>>;
2171
2435
  listOrganizationGroupMembers(organizationId: string, groupId: string): Promise<{
2172
2436
  groupId: string;
2173
2437
  members: {
@@ -1,5 +1,5 @@
1
1
  import { sign } from "../crypto/index.js";
2
- import { bindBlobAttachmentOperation, blobWireHeaderKeys, cancelStripeSubscriptionOperation, challengeOperation, claimNativeOrganizationSubscriptionOperation, completeMultipartBlobStageOperation, createContainerOperation, createContainerWithMetadataDocumentOperation, createDocumentOperation, createOrganizationGroupOperation, createOrganizationOperation, createStripeCheckoutOperation, createStripeCheckoutSessionOperation, createStripePortalOperation, deleteContainerOperation, deleteOrganizationGroupOperation, destroySessionOperation, detachBlobAttachmentOperation, documentSyncOperation, getContainerKekLogOperation, getContainerReplacementAuthorizationsOperation, getContainerWriterProjectionOperation, getDocumentPurgeProofOperation, getDocumentWriterProjectionOperation, getHealthOperation, getMultipartBlobStageOperation, getOrganizationBillingHistoryOperation, getOrganizationBillingManagementUrlOperation, getOrganizationBillingOperation, getOrganizationDataUsageOperation, getOrganizationNativePurchaseEligibilityOperation, getOrganizationPolicyHistoryOperation, getOrganizationReadModelOperation, getRootIdentityOperation, getRootOrganizationDataUsageOperation, getRootOrganizationOperation, getStripeCheckoutOptionsOperation, initiateMultipartBlobStageOperation, linkDocumentOperation, listContainerDocumentsOperation, listContainerParentLanesOperation, listDocumentAttachmentsOperation, listOrganizationGroupMembersOperation, listRootDataUsageReportOperation, listRootIdentitiesOperation, listRootIdentityOrganizationsOperation, listRootOrganizationIdentitiesOperation, listRootOrganizationsOperation, listSessionsOperation, logoutOperation, moveContainerOperation, purgeDocumentOperation, reciteContainerOperation, registerOperation, rekeyContainerOperation, revokeContainerOperation, shareContainerOperation, startOrganizationTrialOperation, unlinkDocumentOperation, updateOrganizationProfileOperation, updateOrganizationRosterEntryOperation, uploadMultipartBlobPartBytesOperation, userIdentityOperation, verifyOperation, webSocketTicketOperation, } from "../validators/operation/index.js";
2
+ import { bindBlobAttachmentOperation, blobWireHeaderKeys, cancelStripeSubscriptionOperation, challengeOperation, claimNativeOrganizationSubscriptionOperation, completeMultipartBlobStageOperation, createContainerOperation, createContainerWithMetadataDocumentOperation, createDocumentOperation, createOrganizationOperation, createStripeCheckoutOperation, createStripeCheckoutSessionOperation, createStripePortalOperation, deleteContainerOperation, destroySessionOperation, detachBlobAttachmentOperation, documentSyncOperation, getContainerKekLogOperation, getContainerReplacementAuthorizationsOperation, getContainerWriterProjectionOperation, getDocumentPurgeProofOperation, getDocumentWriterProjectionOperation, getHealthOperation, getMultipartBlobStageOperation, getOrganizationBillingHistoryOperation, getOrganizationBillingManagementUrlOperation, getOrganizationBillingOperation, getOrganizationDataUsageOperation, getOrganizationNativePurchaseEligibilityOperation, getOrganizationPolicyHistoryOperation, getOrganizationReadModelOperation, getRootIdentityOperation, getRootOrganizationDataUsageOperation, getRootOrganizationOperation, getStripeCheckoutOptionsOperation, initiateMultipartBlobStageOperation, linkDocumentOperation, listContainerDocumentsOperation, listContainerParentLanesOperation, listDocumentAttachmentsOperation, listOrganizationGroupMembersOperation, listRootDataUsageReportOperation, listRootIdentitiesOperation, listRootIdentityOrganizationsOperation, listRootOrganizationIdentitiesOperation, listRootOrganizationsOperation, listSessionsOperation, logoutOperation, moveContainerOperation, purgeDocumentOperation, reciteContainerOperation, registerOperation, rekeyContainerOperation, revokeContainerOperation, shareContainerOperation, startOrganizationTrialOperation, unlinkDocumentOperation, updateOrganizationProfileOperation, updateOrganizationRosterEntryOperation, uploadMultipartBlobPartBytesOperation, userIdentityOperation, verifyOperation, webSocketTicketOperation, } from "../validators/operation/index.js";
3
3
  import { BoundedCache } from "./ApiCache.js";
4
4
  import { ApiRequestRuntime } from "./apiRequestRuntime.js";
5
5
  import { createOperationTransport, } from "./operationTransportFactory.js";
@@ -16,9 +16,7 @@ import { listDocumentAttachments as documentAttachmentsList } from "./routes/doc
16
16
  import { DocumentAttributionRequests } from "./routes/documents/attributionRequests.js";
17
17
  import { documentCreate, documentLink, documentPurge, documentPurgeProof, documentUnlink, } from "./routes/documents/mutations.js";
18
18
  import { organizationBilling } from "./routes/organizations/billing.js";
19
- import { createOrganizationGroup as groupCreate } from "./routes/organizations/createGroup.js";
20
19
  import { getOrganizationDataUsage as organizationDataUsage } from "./routes/organizations/dataUsage.js";
21
- import { deleteOrganizationGroup as groupDelete } from "./routes/organizations/deleteGroup.js";
22
20
  import { listOrganizationGroupMembers as groupMembers } from "./routes/organizations/groupMembers.js";
23
21
  import { updateOrganizationProfile as profileUpdate } from "./routes/organizations/profile.js";
24
22
  import { updateOrganizationRosterEntry as rosterUpdate } from "./routes/organizations/roster.js";
@@ -366,33 +364,17 @@ export class ApiClient {
366
364
  updateOrganizationProfile(organizationId, input) {
367
365
  return this.request(profileUpdate.path(organizationId), profileUpdate.isResponse, profileUpdate.method, JSON.stringify(input), { expectedPaymentRequiredOrganizationId: organizationId }, updateOrganizationProfileOperation);
368
366
  }
369
- createOrganizationGroup(organizationId, input) {
370
- const groupRequestKey = JSON.stringify(["group", input.groupId]);
371
- const organizationRequestKey = JSON.stringify([
372
- "organization",
373
- organizationId,
374
- ]);
375
- this.principalPolicyRequestsByKey.delete(groupRequestKey);
376
- this.principalPolicyRequestsByKey.delete(organizationRequestKey);
377
- return this.request(groupCreate.path(organizationId), groupCreate.isResponse, groupCreate.method, JSON.stringify(input), { expectedPaymentRequiredOrganizationId: organizationId }, createOrganizationGroupOperation).finally(() => {
378
- this.principalPolicyRequestsByKey.delete(groupRequestKey);
379
- this.principalPolicyRequestsByKey.delete(organizationRequestKey);
380
- this.clearWriterProjectionCaches();
381
- });
367
+ createOrganizationGroup(...args) {
368
+ return this.createOrganizationGroupResult(...args).then((result) => result.ok ? result.data : null);
382
369
  }
383
- deleteOrganizationGroup(organizationId, groupId, input) {
384
- const groupRequestKey = JSON.stringify(["group", groupId]);
385
- const organizationRequestKey = JSON.stringify([
386
- "organization",
387
- organizationId,
388
- ]);
389
- this.principalPolicyRequestsByKey.delete(groupRequestKey);
390
- this.principalPolicyRequestsByKey.delete(organizationRequestKey);
391
- return this.request(groupDelete.path(organizationId, groupId), groupDelete.isResponse, groupDelete.method, JSON.stringify(input), { expectedPaymentRequiredOrganizationId: organizationId }, deleteOrganizationGroupOperation).finally(() => {
392
- this.principalPolicyRequestsByKey.delete(groupRequestKey);
393
- this.principalPolicyRequestsByKey.delete(organizationRequestKey);
394
- this.clearWriterProjectionCaches();
395
- });
370
+ createOrganizationGroupResult(...args) {
371
+ return this.principalPolicyRequests.createResult(...args);
372
+ }
373
+ deleteOrganizationGroup(...args) {
374
+ return this.deleteOrganizationGroupResult(...args).then((result) => result.ok ? result.data : null);
375
+ }
376
+ deleteOrganizationGroupResult(...args) {
377
+ return this.principalPolicyRequests.deleteResult(...args);
396
378
  }
397
379
  listOrganizationGroupMembers(organizationId, groupId) {
398
380
  return this.request(groupMembers.path(organizationId, groupId), groupMembers.isResponse, groupMembers.method, undefined, undefined, listOrganizationGroupMembersOperation);