@curviate/sdk 0.30.0 → 0.32.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.
- package/CHANGELOG.md +91 -0
- package/README.md +2 -1
- package/dist/index.d.ts +496 -24
- package/dist/index.js +37 -31
- package/package.json +1 -1
- package/src/generated/types.ts +467 -18
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,97 @@ Versioning: semantic. Minor for additive changes, patch for bug fixes; no stabil
|
|
|
7
7
|
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
+
## [0.32.0] - 2026-09-15
|
|
11
|
+
|
|
12
|
+
Seat discovery for connecting an account. Additive; nothing removed or renamed.
|
|
13
|
+
|
|
14
|
+
Fixture and types regenerated against the deployed staging document
|
|
15
|
+
(`https://api.staging.curviate.com`, 127 paths); the exact source commit is
|
|
16
|
+
recorded in `fixtures/PROVENANCE.json`.
|
|
17
|
+
|
|
18
|
+
### Added
|
|
19
|
+
|
|
20
|
+
- **`accounts.listSeats()`** (`GET /v1/accounts/seats`). Returns
|
|
21
|
+
`{ object: "seat_list", items: { seat_id, occupied, account_id }[] }`: the
|
|
22
|
+
workspace's live seats, whether an account occupies each, and that account
|
|
23
|
+
(`null` when free). Not paginated. An empty seat is listed only when
|
|
24
|
+
connecting an account to it would be accepted right now, so an empty seat
|
|
25
|
+
that is provisional, cancelling, on an ended trial or blocked by billing is
|
|
26
|
+
left out, and `items` can be `[]` while the workspace still has seats. Any seat with `occupied: false` is a valid `seat_id` for connecting a new
|
|
27
|
+
account with `auth.intent`, so a connect no longer needs a seat id copied
|
|
28
|
+
from the dashboard. Carries no billing fields. The response type is
|
|
29
|
+
exported as `SeatList`.
|
|
30
|
+
|
|
31
|
+
- **Types only: `GET` and `PATCH /v1/safety-policy`** (tenant-wide safety
|
|
32
|
+
defaults per limit profile and budget row). The generated `paths` type now
|
|
33
|
+
describes them; there is no resource method yet, so call them through your
|
|
34
|
+
own request if you need them today.
|
|
35
|
+
|
|
36
|
+
### Changed
|
|
37
|
+
|
|
38
|
+
- `auth.intent` documentation now points to `accounts.listSeats()` for finding
|
|
39
|
+
a free seat, matching the regenerated `seat_id` description.
|
|
40
|
+
- Regenerated descriptions on `GET` and `PATCH /v1/{account_id}/safety-policy`:
|
|
41
|
+
an account's values now resolve from its own setting, then the tenant
|
|
42
|
+
default for its `limit_profile`, then the Curviate default, and `null` on the
|
|
43
|
+
account write restores the tenant default where one is set. Documentation
|
|
44
|
+
only; no type moved.
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## [0.31.0] - 2026-09-11
|
|
49
|
+
|
|
50
|
+
Step two of the tier retirement, plus one billing refusal this SDK was about to
|
|
51
|
+
erase to `INTERNAL`. **Breaking** for any caller still branching on the two
|
|
52
|
+
retired codes; additive otherwise.
|
|
53
|
+
|
|
54
|
+
The trigger 0.30.0 named for the removal is met: every deployment now carries
|
|
55
|
+
the seat-based entitlement contract, so neither retired code can arrive.
|
|
56
|
+
|
|
57
|
+
Fixture and types regenerated against the deployed staging document
|
|
58
|
+
(`https://api.staging.curviate.com`, 125 paths); the exact source commit is
|
|
59
|
+
recorded in `fixtures/PROVENANCE.json`.
|
|
60
|
+
|
|
61
|
+
### Removed
|
|
62
|
+
|
|
63
|
+
- **`TIER_NOT_ACTIVE` and `PREMIUM_CONFLICT` are gone from `ErrorCode`,
|
|
64
|
+
`ERROR_CODES` and `KNOWN_ERROR_CODES`.** Deprecated in 0.30.0; no deployment
|
|
65
|
+
emits either any more. A `case "TIER_NOT_ACTIVE"` or
|
|
66
|
+
`case "PREMIUM_CONFLICT"` now fails to type-check, which is the point: it was
|
|
67
|
+
a branch that could never be taken. Handle `NO_ACTIVE_SEAT` for the seat
|
|
68
|
+
refusal; `PREMIUM_CONFLICT` has no replacement, because the current connect
|
|
69
|
+
input cannot express the conflict it reported.
|
|
70
|
+
|
|
71
|
+
Should a wire body ever carry either code, it decodes to `INTERNAL` like any
|
|
72
|
+
unknown code.
|
|
73
|
+
|
|
74
|
+
- **`seat_tier_mismatch` is gone from the safety-policy types**, on the read
|
|
75
|
+
response, the write response and the write body. Seats no longer carry a
|
|
76
|
+
tier, so there is nothing for it to disagree with, and the API has stopped
|
|
77
|
+
returning it. Read `limit_profile` for what LinkedIn grants the account.
|
|
78
|
+
|
|
79
|
+
### Changed
|
|
80
|
+
|
|
81
|
+
- Two regenerated descriptions: job search `paging.total_count` now says it
|
|
82
|
+
counts matching job postings and is `0` on an empty page, and the connect
|
|
83
|
+
body's `recruiter_contract_id` is described by the LinkedIn Recruiter
|
|
84
|
+
subscription rather than a Curviate tier. Documentation only; no type moved.
|
|
85
|
+
|
|
86
|
+
### Added
|
|
87
|
+
|
|
88
|
+
- **`STRIPE_DRIFT_DETECTED` (503).** Checkout refuses closed when Curviate's
|
|
89
|
+
own seat-price configuration disagrees with the price it displays, so no one
|
|
90
|
+
is charged an amount they were never shown. It is a Curviate-side
|
|
91
|
+
misconfiguration: `userFixable` is `false`, a retry fails the same way until
|
|
92
|
+
Curviate corrects the price, and nothing was charged. Surface it to a human
|
|
93
|
+
or to support instead of backing off. Not in the transport's retryable set,
|
|
94
|
+
so a GET carrying it is fetched once.
|
|
95
|
+
|
|
96
|
+
Without this entry the refusal would have decoded to `INTERNAL`, reading as
|
|
97
|
+
a generic server fault and being retried as one.
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
10
101
|
## [0.30.0] - 2026-09-09
|
|
11
102
|
|
|
12
103
|
Fixture and types regenerated against the deployed staging document
|
package/README.md
CHANGED
|
@@ -113,7 +113,8 @@ try {
|
|
|
113
113
|
// Curviate's OWN account-safety ceiling, not a request-rate limit:
|
|
114
114
|
// nothing reached LinkedIn and nothing was spent, so backing off is the
|
|
115
115
|
// wrong move. Wait until err.resetAt, or raise the setting the hint
|
|
116
|
-
// names on PATCH /v1/{account_id}/safety-policy.
|
|
116
|
+
// names on PATCH /v1/{account_id}/safety-policy. The ceiling comes from the
|
|
117
|
+
// account's safety policy or the tenant default (GET/PATCH /v1/safety-policy).
|
|
117
118
|
// resetAt is null in the two cases no clock frees: the pending_invites
|
|
118
119
|
// backlog, and an InMail credit pool LinkedIn regrants on its own schedule.
|
|
119
120
|
console.warn(`${err.budgetRow} is spent until ${err.resetAt ?? "no fixed time"}`);
|