@stackfactor/client-api 1.11.0 → 1.11.2
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/dist/cjs/lib/constants.d.ts +43 -0
- package/dist/cjs/lib/constants.d.ts.map +1 -1
- package/dist/cjs/lib/constants.js +44 -1
- package/dist/cjs/lib/constants.js.map +1 -1
- package/dist/cjs/lib/partnerships.d.ts +231 -45
- package/dist/cjs/lib/partnerships.d.ts.map +1 -1
- package/dist/cjs/lib/partnerships.js +187 -42
- package/dist/cjs/lib/partnerships.js.map +1 -1
- package/dist/cjs/lib/userExperiences.d.ts +2 -0
- package/dist/cjs/lib/userExperiences.d.ts.map +1 -1
- package/dist/cjs/lib/userExperiences.js.map +1 -1
- package/dist/esm/lib/constants.d.ts +43 -0
- package/dist/esm/lib/constants.d.ts.map +1 -1
- package/dist/esm/lib/constants.js +43 -0
- package/dist/esm/lib/constants.js.map +1 -1
- package/dist/esm/lib/partnerships.d.ts +231 -45
- package/dist/esm/lib/partnerships.d.ts.map +1 -1
- package/dist/esm/lib/partnerships.js +177 -38
- package/dist/esm/lib/partnerships.js.map +1 -1
- package/dist/esm/lib/userExperiences.d.ts +2 -0
- package/dist/esm/lib/userExperiences.d.ts.map +1 -1
- package/dist/esm/lib/userExperiences.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,3 +1,126 @@
|
|
|
1
|
+
import type { PARTNERSHIP_STATUS } from "./constants.js";
|
|
2
|
+
/** Where a partnership stands. One of the `PARTNERSHIP_STATUS` values. */
|
|
3
|
+
export type PartnershipStatus = (typeof PARTNERSHIP_STATUS)[keyof typeof PARTNERSHIP_STATUS];
|
|
4
|
+
/** A programme's published terms, at the version the partner is shown. */
|
|
5
|
+
export interface PartnershipTerms {
|
|
6
|
+
version: number;
|
|
7
|
+
body: string;
|
|
8
|
+
}
|
|
9
|
+
/** What both sides of a partnership see of it. Dates are ISO strings. */
|
|
10
|
+
export interface PartnershipSummaryBase {
|
|
11
|
+
_id: string;
|
|
12
|
+
programmeId: string;
|
|
13
|
+
publisherTenantId: string;
|
|
14
|
+
/**
|
|
15
|
+
* Null on the vendor's side until the partner has accepted: an unanswered
|
|
16
|
+
* invitation to an address that matched an account looks like one that
|
|
17
|
+
* matched nobody.
|
|
18
|
+
*/
|
|
19
|
+
partnerTenantId: string | null;
|
|
20
|
+
status: PartnershipStatus;
|
|
21
|
+
/** Matches a tier `key` on the programme; null for a partner on no tier. */
|
|
22
|
+
tier: string | null;
|
|
23
|
+
/** The tier's display name ("Gold"); null when untiered or the tier is gone. */
|
|
24
|
+
tierName: string | null;
|
|
25
|
+
/** Seats the vendor funds on this partnership. */
|
|
26
|
+
seatAllocation: number;
|
|
27
|
+
/** Seats filled. The vendor sees the count, never who. */
|
|
28
|
+
enrolled: number;
|
|
29
|
+
invitedOrganizationName: string | null;
|
|
30
|
+
invitedEmail: string | null;
|
|
31
|
+
invitationExpiresAt: string | null;
|
|
32
|
+
termsVersionAccepted: number | null;
|
|
33
|
+
termsVersionCurrent: number | null;
|
|
34
|
+
/**
|
|
35
|
+
* The vendor has revised its terms since this partner accepted. Surfaced,
|
|
36
|
+
* not enforced: the partner keeps its catalog and clears the flag with
|
|
37
|
+
* `reacceptTerms`.
|
|
38
|
+
*/
|
|
39
|
+
termsReacceptanceRequired: boolean;
|
|
40
|
+
acceptedAt: string | null;
|
|
41
|
+
endedAt: string | null;
|
|
42
|
+
endedReason: string | null;
|
|
43
|
+
created: string;
|
|
44
|
+
lastUpdated: string;
|
|
45
|
+
}
|
|
46
|
+
/** A partnership as the vendor sees it. */
|
|
47
|
+
export interface VendorPartnership extends PartnershipSummaryBase {
|
|
48
|
+
/** The partner organization's name once accepted. */
|
|
49
|
+
partnerName: string | null;
|
|
50
|
+
}
|
|
51
|
+
/** A partnership as the partner sees it: the programme, its vendor and terms. */
|
|
52
|
+
export interface PartnerPartnership extends PartnershipSummaryBase {
|
|
53
|
+
/** Null when the programme no longer resolves; the partnership is still listed. */
|
|
54
|
+
programmeName: string | null;
|
|
55
|
+
programmeDescription: string;
|
|
56
|
+
objectives: string[];
|
|
57
|
+
/** Null when the vendor no longer resolves. */
|
|
58
|
+
publisherName: string | null;
|
|
59
|
+
/** The partner may seat more people than the vendor funds, at its own cost. */
|
|
60
|
+
allowPartnerFundedSeats: boolean;
|
|
61
|
+
/**
|
|
62
|
+
* The vendor's own price per seat on this tier, shown to the partner. Not
|
|
63
|
+
* invoiced by StackFactor.
|
|
64
|
+
*/
|
|
65
|
+
costPerSeat: number;
|
|
66
|
+
terms: PartnershipTerms | null;
|
|
67
|
+
}
|
|
68
|
+
/** The vendor's seat meter across all of its partnerships. */
|
|
69
|
+
export interface VendorSeatSummary {
|
|
70
|
+
/** Seats the vendor may allocate in all; null when unmetered. */
|
|
71
|
+
pool: number | null;
|
|
72
|
+
/** Seats allocated to invited and active partnerships. */
|
|
73
|
+
allocated: number;
|
|
74
|
+
/** Funded seats filled by partners' people. */
|
|
75
|
+
filled: number;
|
|
76
|
+
/** The month's peak of filled seats, which is what is charged. */
|
|
77
|
+
peakThisMonth: number | null;
|
|
78
|
+
}
|
|
79
|
+
/** StackFactor's own conditions a partner agrees to on accepting. */
|
|
80
|
+
export interface PlatformConditions {
|
|
81
|
+
version: number;
|
|
82
|
+
body: string;
|
|
83
|
+
}
|
|
84
|
+
/** One of a partner's people holding a seat on a partnership. */
|
|
85
|
+
export interface SeatHolder {
|
|
86
|
+
userId: string;
|
|
87
|
+
assignedAt: string;
|
|
88
|
+
/** The user who seated them. */
|
|
89
|
+
assignedBy: string;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* What a partner agrees to in accepting. Both versions must match what is
|
|
93
|
+
* current, and the data-sharing consent must be given.
|
|
94
|
+
*/
|
|
95
|
+
export interface AcceptPartnershipInput {
|
|
96
|
+
/** The programme terms version being accepted. */
|
|
97
|
+
termsVersion: number;
|
|
98
|
+
/** The platform conditions version being accepted. */
|
|
99
|
+
platformConditionsVersion: number;
|
|
100
|
+
/** Consent to share partner progress with the vendor. Required to be true. */
|
|
101
|
+
dataSharingConsent: boolean;
|
|
102
|
+
comments?: string;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* What a partnership invitation notification carries, for the details viewer
|
|
106
|
+
* on either side.
|
|
107
|
+
*/
|
|
108
|
+
export interface PartnershipInvitationDetails {
|
|
109
|
+
partnershipId: string;
|
|
110
|
+
programmeName: string;
|
|
111
|
+
publisherName: string;
|
|
112
|
+
partnerName: string | null;
|
|
113
|
+
invitedEmail: string | null;
|
|
114
|
+
tier: string | null;
|
|
115
|
+
seatAllocation: number;
|
|
116
|
+
allowPartnerFundedSeats: boolean;
|
|
117
|
+
costPerSeat: number;
|
|
118
|
+
/** When the invitation expires. */
|
|
119
|
+
respondBy: string | null;
|
|
120
|
+
objectives: string[];
|
|
121
|
+
terms: PartnershipTerms;
|
|
122
|
+
platformConditions: PlatformConditions;
|
|
123
|
+
}
|
|
1
124
|
/** Who to invite, and on what terms. */
|
|
2
125
|
export interface PartnerInvitationInput {
|
|
3
126
|
/** The programme being offered. */
|
|
@@ -12,13 +135,15 @@ export interface PartnerInvitationInput {
|
|
|
12
135
|
tier?: string | null;
|
|
13
136
|
seatAllocation?: number | null;
|
|
14
137
|
}
|
|
138
|
+
/** A vendor's change to an invited or active partnership. */
|
|
139
|
+
export interface PartnershipUpdateInput {
|
|
140
|
+
/** Matches a tier `key` on the programme. */
|
|
141
|
+
tier?: string | null;
|
|
142
|
+
seatAllocation?: number | null;
|
|
143
|
+
}
|
|
15
144
|
/** Optional status filters for either listing. */
|
|
16
145
|
export interface PartnershipListParams {
|
|
17
|
-
|
|
18
|
-
* One or more of "invited" | "active" | "declined" | "revoked" |
|
|
19
|
-
* "terminated" | "expired".
|
|
20
|
-
*/
|
|
21
|
-
statuses?: string[];
|
|
146
|
+
statuses?: PartnershipStatus[];
|
|
22
147
|
}
|
|
23
148
|
/** Vendor-side listing filters. */
|
|
24
149
|
export interface VendorPartnershipListParams extends PartnershipListParams {
|
|
@@ -32,30 +157,45 @@ export interface VendorPartnershipListParams extends PartnershipListParams {
|
|
|
32
157
|
* an address that matches nobody still produces a record that simply expires, so
|
|
33
158
|
* "they ignored me" and "no such account" are indistinguishable. This is
|
|
34
159
|
* deliberate: it stops the endpoint being used to discover who has an account.
|
|
35
|
-
*
|
|
160
|
+
*
|
|
161
|
+
* The seat allocation counts against the vendor's pool; an invitation past it
|
|
162
|
+
* is refused (429).
|
|
36
163
|
* POST /api/v1/partnerships/invite
|
|
37
164
|
* @param {PartnerInvitationInput} data Programme, email and optional tier / seats
|
|
38
165
|
* @param {String} authToken Authentication token
|
|
39
|
-
* @returns {Promise<
|
|
166
|
+
* @returns {Promise<VendorPartnership>}
|
|
167
|
+
*/
|
|
168
|
+
export declare const invitePartner: (data: PartnerInvitationInput, authToken: string) => Promise<VendorPartnership>;
|
|
169
|
+
/**
|
|
170
|
+
* Change the tier or seat allocation of an invited or active partnership.
|
|
171
|
+
*
|
|
172
|
+
* A larger allocation counts against the vendor's pool and is refused (429)
|
|
173
|
+
* past it.
|
|
174
|
+
* POST /api/v1/partnerships/update/:id
|
|
175
|
+
* @param {String} id Partnership id
|
|
176
|
+
* @param {PartnershipUpdateInput} data The new tier and / or seat allocation
|
|
177
|
+
* @param {String} authToken Authentication token
|
|
178
|
+
* @returns {Promise<VendorPartnership>}
|
|
40
179
|
*/
|
|
41
|
-
export declare const
|
|
180
|
+
export declare const updatePartnership: (id: string, data: PartnershipUpdateInput, authToken: string) => Promise<VendorPartnership>;
|
|
42
181
|
/**
|
|
43
|
-
* Re-
|
|
44
|
-
* emailed code stops working.
|
|
182
|
+
* Re-send an open invitation and extend its window.
|
|
45
183
|
* POST /api/v1/partnerships/resend/:id
|
|
46
184
|
* @param {String} id Partnership id
|
|
47
185
|
* @param {String} authToken Authentication token
|
|
48
|
-
* @returns {Promise<
|
|
186
|
+
* @returns {Promise<VendorPartnership>}
|
|
49
187
|
*/
|
|
50
|
-
export declare const resendInvitation: (id: string, authToken: string) => Promise<
|
|
188
|
+
export declare const resendInvitation: (id: string, authToken: string) => Promise<VendorPartnership>;
|
|
51
189
|
/**
|
|
52
|
-
* Withdraw an invitation that has not been answered.
|
|
190
|
+
* Withdraw an invitation that has not been answered. The invitee's
|
|
191
|
+
* notification is settled as cancelled.
|
|
53
192
|
* POST /api/v1/partnerships/revoke/:id
|
|
54
193
|
* @param {String} id Partnership id
|
|
194
|
+
* @param {String} [comments] Optional note, retained with the cancellation
|
|
55
195
|
* @param {String} authToken Authentication token
|
|
56
|
-
* @returns {Promise<
|
|
196
|
+
* @returns {Promise<VendorPartnership>}
|
|
57
197
|
*/
|
|
58
|
-
export declare const revokeInvitation: (id: string, authToken: string) => Promise<
|
|
198
|
+
export declare const revokeInvitation: (id: string, comments: string | null | undefined, authToken: string) => Promise<VendorPartnership>;
|
|
59
199
|
/**
|
|
60
200
|
* The partnerships of the calling vendor's own programmes.
|
|
61
201
|
*
|
|
@@ -65,9 +205,17 @@ export declare const revokeInvitation: (id: string, authToken: string) => Promis
|
|
|
65
205
|
* POST /api/v1/partnerships/vendor
|
|
66
206
|
* @param {VendorPartnershipListParams} params Optional programme / status filters
|
|
67
207
|
* @param {String} authToken Authentication token
|
|
68
|
-
* @returns {Promise<
|
|
208
|
+
* @returns {Promise<VendorPartnership[]>}
|
|
209
|
+
*/
|
|
210
|
+
export declare const listVendorPartnerships: (params: VendorPartnershipListParams, authToken: string) => Promise<VendorPartnership[]>;
|
|
211
|
+
/**
|
|
212
|
+
* The calling vendor's seat meter: its pool, what is allocated against it,
|
|
213
|
+
* what is filled, and this month's charged peak.
|
|
214
|
+
* GET /api/v1/partnerships/vendor/summary
|
|
215
|
+
* @param {String} authToken Authentication token
|
|
216
|
+
* @returns {Promise<VendorSeatSummary>}
|
|
69
217
|
*/
|
|
70
|
-
export declare const
|
|
218
|
+
export declare const getVendorSeatSummary: (authToken: string) => Promise<VendorSeatSummary>;
|
|
71
219
|
/**
|
|
72
220
|
* The calling tenant's own standing, across every vendor it partners with.
|
|
73
221
|
*
|
|
@@ -77,42 +225,40 @@ export declare const listVendorPartnerships: (params: VendorPartnershipListParam
|
|
|
77
225
|
* POST /api/v1/partnerships
|
|
78
226
|
* @param {PartnershipListParams} params Optional status filter
|
|
79
227
|
* @param {String} authToken Authentication token
|
|
80
|
-
* @returns {Promise<
|
|
228
|
+
* @returns {Promise<PartnerPartnership[]>}
|
|
81
229
|
*/
|
|
82
|
-
export declare const listTenantPartnerships: (params: PartnershipListParams, authToken: string) => Promise<
|
|
230
|
+
export declare const listTenantPartnerships: (params: PartnershipListParams, authToken: string) => Promise<PartnerPartnership[]>;
|
|
83
231
|
/**
|
|
84
|
-
*
|
|
85
|
-
*
|
|
86
|
-
*
|
|
87
|
-
* An unknown code, a code addressed to another organization, and an expired one
|
|
88
|
-
* all fail identically, so this cannot be used to probe which codes are real.
|
|
89
|
-
* POST /api/v1/partnerships/invitation
|
|
90
|
-
* @param {String} code The invitation code the user typed
|
|
232
|
+
* StackFactor's current platform conditions, which a partner accepts alongside
|
|
233
|
+
* the programme's terms.
|
|
234
|
+
* GET /api/v1/partnerships/platformconditions
|
|
91
235
|
* @param {String} authToken Authentication token
|
|
92
|
-
* @returns {Promise<
|
|
236
|
+
* @returns {Promise<PlatformConditions>}
|
|
93
237
|
*/
|
|
94
|
-
export declare const
|
|
238
|
+
export declare const getPlatformConditions: (authToken: string) => Promise<PlatformConditions>;
|
|
95
239
|
/**
|
|
96
|
-
* Accept an invitation on the organization's behalf.
|
|
240
|
+
* Accept an invitation on the organization's behalf, in one step.
|
|
97
241
|
*
|
|
98
|
-
* `termsVersion` must match
|
|
99
|
-
* a version that has since been revised returns 409 rather than
|
|
100
|
-
* against terms nobody agreed to
|
|
101
|
-
*
|
|
102
|
-
*
|
|
103
|
-
* @param {
|
|
242
|
+
* `termsVersion` and `platformConditionsVersion` must match what is current —
|
|
243
|
+
* accepting a version that has since been revised returns 409 rather than
|
|
244
|
+
* succeeding against terms nobody agreed to — and `dataSharingConsent` must be
|
|
245
|
+
* true (400 otherwise).
|
|
246
|
+
* POST /api/v1/partnerships/accept/:id
|
|
247
|
+
* @param {String} id Partnership id
|
|
248
|
+
* @param {AcceptPartnershipInput} input The versions accepted and the consent
|
|
104
249
|
* @param {String} authToken Authentication token
|
|
105
|
-
* @returns {Promise<
|
|
250
|
+
* @returns {Promise<PartnerPartnership>}
|
|
106
251
|
*/
|
|
107
|
-
export declare const
|
|
252
|
+
export declare const acceptPartnership: (id: string, input: AcceptPartnershipInput, authToken: string) => Promise<PartnerPartnership>;
|
|
108
253
|
/**
|
|
109
254
|
* Decline an invitation. Terminal — a change of mind is a new invitation.
|
|
110
|
-
* POST /api/v1/partnerships/decline
|
|
111
|
-
* @param {String}
|
|
255
|
+
* POST /api/v1/partnerships/decline/:id
|
|
256
|
+
* @param {String} id Partnership id
|
|
257
|
+
* @param {String} [comments] Optional note to the vendor
|
|
112
258
|
* @param {String} authToken Authentication token
|
|
113
|
-
* @returns {Promise<
|
|
259
|
+
* @returns {Promise<PartnerPartnership>}
|
|
114
260
|
*/
|
|
115
|
-
export declare const
|
|
261
|
+
export declare const declinePartnership: (id: string, comments: string | null | undefined, authToken: string) => Promise<PartnerPartnership>;
|
|
116
262
|
/**
|
|
117
263
|
* Accept a revised set of terms on an already-active partnership, clearing the
|
|
118
264
|
* `termsReacceptanceRequired` flag the listing raises.
|
|
@@ -120,9 +266,49 @@ export declare const declineInvitation: (code: string, authToken: string) => Pro
|
|
|
120
266
|
* @param {String} id Partnership id
|
|
121
267
|
* @param {Number} termsVersion The terms version being accepted
|
|
122
268
|
* @param {String} authToken Authentication token
|
|
123
|
-
* @returns {Promise<
|
|
269
|
+
* @returns {Promise<PartnerPartnership>}
|
|
270
|
+
*/
|
|
271
|
+
export declare const reacceptTerms: (id: string, termsVersion: number, authToken: string) => Promise<PartnerPartnership>;
|
|
272
|
+
/**
|
|
273
|
+
* Who holds a seat on a partnership.
|
|
274
|
+
* GET /api/v1/partnerships/:id/seats
|
|
275
|
+
* @param {String} id Partnership id
|
|
276
|
+
* @param {String} authToken Authentication token
|
|
277
|
+
* @returns {Promise<SeatHolder[]>}
|
|
278
|
+
*/
|
|
279
|
+
export declare const listSeats: (id: string, authToken: string) => Promise<SeatHolder[]>;
|
|
280
|
+
/**
|
|
281
|
+
* Seat some of the organization's people on a partnership.
|
|
282
|
+
*
|
|
283
|
+
* Seats past the vendor's allocation are refused (400) unless the programme
|
|
284
|
+
* allows partner-funded seats. The partner's own enrolment is never blocked by
|
|
285
|
+
* the vendor's pool.
|
|
286
|
+
* PUT /api/v1/partnerships/:id/seats
|
|
287
|
+
* @param {String} id Partnership id
|
|
288
|
+
* @param {String[]} userIds The people to seat, 1 to 200
|
|
289
|
+
* @param {String} authToken Authentication token
|
|
290
|
+
* @returns {Promise<SeatHolder[]>} Everyone now holding a seat
|
|
291
|
+
*/
|
|
292
|
+
export declare const enrolSeats: (id: string, userIds: string[], authToken: string) => Promise<SeatHolder[]>;
|
|
293
|
+
/**
|
|
294
|
+
* Move a seat from one person to another, in one step.
|
|
295
|
+
* POST /api/v1/partnerships/:id/seats/move
|
|
296
|
+
* @param {String} id Partnership id
|
|
297
|
+
* @param {String} fromUserId The person giving up the seat
|
|
298
|
+
* @param {String} toUserId The person taking it
|
|
299
|
+
* @param {String} authToken Authentication token
|
|
300
|
+
* @returns {Promise<SeatHolder[]>} Everyone now holding a seat
|
|
301
|
+
*/
|
|
302
|
+
export declare const moveSeat: (id: string, fromUserId: string, toUserId: string, authToken: string) => Promise<SeatHolder[]>;
|
|
303
|
+
/**
|
|
304
|
+
* Release a person's seat. The seat is kept as history, not deleted.
|
|
305
|
+
* POST /api/v1/partnerships/:id/seats/release
|
|
306
|
+
* @param {String} id Partnership id
|
|
307
|
+
* @param {String} userId The person whose seat is released
|
|
308
|
+
* @param {String} authToken Authentication token
|
|
309
|
+
* @returns {Promise<SeatHolder[]>} Everyone still holding a seat
|
|
124
310
|
*/
|
|
125
|
-
export declare const
|
|
311
|
+
export declare const releaseSeat: (id: string, userId: string, authToken: string) => Promise<SeatHolder[]>;
|
|
126
312
|
/**
|
|
127
313
|
* End an active partnership — the vendor removing a partner, or the partner
|
|
128
314
|
* leaving. The caller must be on one end of the edge.
|
|
@@ -135,7 +321,7 @@ export declare const reacceptTerms: (id: string, termsVersion: number, authToken
|
|
|
135
321
|
* @param {String} id Partnership id
|
|
136
322
|
* @param {String} reason Free-text reason, retained on the record
|
|
137
323
|
* @param {String} authToken Authentication token
|
|
138
|
-
* @returns {Promise<
|
|
324
|
+
* @returns {Promise<PartnershipSummaryBase>}
|
|
139
325
|
*/
|
|
140
|
-
export declare const terminatePartnership: (id: string, reason: string | null, authToken: string) => Promise<
|
|
326
|
+
export declare const terminatePartnership: (id: string, reason: string | null, authToken: string) => Promise<PartnershipSummaryBase>;
|
|
141
327
|
//# sourceMappingURL=partnerships.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"partnerships.d.ts","sourceRoot":"","sources":["../../../src/lib/partnerships.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"partnerships.d.ts","sourceRoot":"","sources":["../../../src/lib/partnerships.ts"],"names":[],"mappings":"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"}
|