@ycadence/sdk 0.1.0 → 0.2.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/README.md CHANGED
@@ -53,6 +53,41 @@ try {
53
53
  }
54
54
  ```
55
55
 
56
+ ### Writes, retries and concurrency
57
+
58
+ Every method takes an optional last argument of request options:
59
+
60
+ ```ts
61
+ await client.createWorkItem(projectId, { name: 'Fix login' }, { idempotencyKey: 'import-row-17' })
62
+ await client.updateWorkItem(id, { priority: 'urgent' }, { expectedVersion: 7 }) // If-Match: "7"
63
+ ```
64
+
65
+ - `idempotencyKey` is sent as `Idempotency-Key`, and makes the write safe to retry.
66
+ - `expectedVersion` is sent as `If-Match`. A server that versions the resource answers 409
67
+ `version_conflict` (or 412) when it has moved on; one that does not ignores the header.
68
+ - GET requests, and writes that carry an idempotency key, are retried on 429, 5xx, timeouts
69
+ and network errors: twice by default, with exponential backoff and jitter, honouring
70
+ `Retry-After`. Other writes are never retried, since they may already have been applied.
71
+
72
+ ### Errors
73
+
74
+ Every failure is a `YCadenceError` with `status`, `code`, `message`, `issues`, `details`,
75
+ `requestId` and `retryable`, and is also an instance of a class for its kind:
76
+ `YCadenceValidationError` (400, 422), `YCadencePermissionError` (401, 403),
77
+ `YCadenceNotFoundError` (404), `YCadenceConflictError` (409), `YCadencePreconditionError`
78
+ (412), `YCadenceRateLimitError` (429, with `retryAfter`) and `YCadenceNetworkError`
79
+ (unreachable or timed out).
80
+
81
+ ### Pages
82
+
83
+ Lists return `{ items, nextCursor }`. `iterateWorkItems` follows the cursor lazily, and
84
+ `paginate` / `collect` do the same for any list:
85
+
86
+ ```ts
87
+ import { collect, paginate } from '@ycadence/sdk'
88
+ const all = await collect(paginate((cursor) => client.listWorkItems(projectId, { cursor })))
89
+ ```
90
+
56
91
  ### Options
57
92
 
58
93
  | Option | Meaning |
@@ -62,6 +97,9 @@ try {
62
97
  | `identityToken` | Only for an instance behind Google IAP or authenticated Cloud Run. Pass a string or a function, which is called before each request; it is sent as `Authorization: Bearer`. |
63
98
  | `timeoutMs` | Defaults to 30000. |
64
99
  | `fetch` | A custom `fetch`, for tests or proxies. |
100
+ | `retry` | `{ retries, baseDelayMs, maxDelayMs }`; `{ retries: 0 }` turns retrying off. |
101
+ | `userAgent` | Prepended to `User-Agent` (`ycadence-sdk/<version>`). |
102
+ | `onResponse` | Called after every response with method, path, status, request id, duration and attempt. Never sees credentials. |
65
103
 
66
104
  ## Renamed from DevPulse
67
105
 
package/dist/client.d.ts CHANGED
@@ -3,77 +3,105 @@
3
3
  *
4
4
  * Shared by the CLI, the MCP server and anyone integrating from TypeScript, so
5
5
  * there is one place that knows how to talk to the API — how errors are shaped,
6
- * how paging works, how a key is presented. Three separate implementations of
7
- * that would disagree, and the disagreement would surface as "the CLI works but
8
- * the MCP server does not".
6
+ * how paging works, how a key is presented, when a request is safe to retry.
7
+ * Three separate implementations of that would disagree, and the disagreement
8
+ * would surface as "the CLI works but the MCP server does not".
9
9
  */
10
+ import { YCadenceError } from './errors';
11
+ import { type OperationId } from './operations';
12
+ import type { CreateViewInput, CreateWorkItemInput, Cycle, CycleProgress, Health, ImportInput, ImportPreview, ImportRun, IntakeItem, Label, ListWorkItemsOptions, Me, Page, Project, State, SubmitIntakeInput, SubmitIntakeResult, TriageInput, TriageResult, UpdateWorkItemInput, View, WorkItem, WorkItemDetail } from './types';
13
+ export interface RetryOptions {
14
+ /** Attempts after the first. Default 2. `0` turns retrying off. */
15
+ retries?: number;
16
+ /** First backoff, doubled each attempt, with jitter. Default 250ms. */
17
+ baseDelayMs?: number;
18
+ /** Ceiling for one wait, including a server's `Retry-After`. Default 8s. */
19
+ maxDelayMs?: number;
20
+ }
21
+ /** What happened to one HTTP exchange; for logging. Never carries credentials. */
22
+ export interface ResponseInfo {
23
+ method: string;
24
+ path: string;
25
+ status: number;
26
+ requestId: string | undefined;
27
+ durationMs: number;
28
+ attempt: number;
29
+ replayed: boolean;
30
+ }
10
31
  export interface ClientOptions {
11
- /** e.g. https://devpulse.yarlis.com. Trailing slashes are tolerated. */
32
+ /** e.g. https://ycadence.example.com. Trailing slashes are tolerated. */
12
33
  baseUrl: string;
13
34
  apiKey: string;
14
35
  /**
15
36
  * A Google identity token for an instance behind IAP or an authenticated
16
37
  * Cloud Run service, sent as `Authorization: Bearer`. The transport's
17
- * credential and YCadence's are different things and travel in different
38
+ * credential and the product's are different things and travel in different
18
39
  * headers: the key always goes in `x-api-key`.
19
40
  *
20
41
  * A function is called before every request, because these tokens last
21
42
  * about an hour and a long-running caller — the MCP server — outlives one.
22
43
  */
23
- identityToken?: string | (() => string | Promise<string>);
44
+ identityToken?: string | (() => string | undefined | Promise<string | undefined>);
24
45
  /** Defaults to 30s. A request that hangs forever is worse than one that fails. */
25
46
  timeoutMs?: number;
26
47
  fetch?: typeof globalThis.fetch;
48
+ /**
49
+ * Retries for 429, 5xx, timeouts and network errors. Only GET requests, and
50
+ * mutations sent with an idempotency key, are retried: repeating any other
51
+ * write could apply it twice.
52
+ */
53
+ retry?: RetryOptions;
54
+ /** Prepended to the default `User-Agent`, e.g. `ycadence-cli/0.2.0`. */
55
+ userAgent?: string;
56
+ /** Called after every response, including ones that are retried. */
57
+ onResponse?: (info: ResponseInfo) => void;
58
+ /** Injected for tests; defaults to a timer. */
59
+ sleep?: (ms: number) => Promise<void>;
27
60
  }
28
- export interface ApiFailure {
29
- error: string;
30
- code: string;
31
- issues?: {
32
- path: string;
33
- message: string;
34
- }[];
35
- }
36
- export declare class YCadenceError extends Error {
37
- readonly status: number;
38
- readonly code: string;
39
- readonly issues?: ApiFailure['issues'];
40
- constructor(status: number, code: string, message: string, issues?: ApiFailure['issues']);
41
- /** Whether retrying unchanged could plausibly succeed. */
42
- get retryable(): boolean;
43
- }
44
- export interface WorkItem {
45
- id: string;
46
- key: string;
47
- sequenceId: number;
48
- name: string;
49
- priority: 'urgent' | 'high' | 'medium' | 'low' | 'none';
50
- stateId: string | null;
51
- assigneeIds: string[];
52
- labelIds: string[];
53
- parentId: string | null;
54
- sortOrder: string;
55
- createdAt: string;
56
- }
57
- export interface Page<T> {
58
- items: T[];
59
- nextCursor: string | null;
61
+ /** Per-call options for any request. */
62
+ export interface RequestOptions {
63
+ /**
64
+ * Sent as `Idempotency-Key` on a mutation, which also makes the mutation
65
+ * safe to retry. Servers that do not support the header ignore it.
66
+ */
67
+ idempotencyKey?: string;
68
+ /**
69
+ * The version the caller last saw, sent as `If-Match: "<version>"`. A server
70
+ * that versions the resource answers 409 `version_conflict` or 412 when it
71
+ * has moved on; one that does not ignores the header.
72
+ */
73
+ expectedVersion?: number | string;
74
+ signal?: AbortSignal;
75
+ /** Overrides the client's retry count for this call. */
76
+ retries?: number;
60
77
  }
61
78
  export declare class YCadenceClient {
79
+ private readonly options;
62
80
  private readonly baseUrl;
63
81
  private readonly apiKey;
64
82
  private readonly identityToken;
65
83
  private readonly timeoutMs;
66
84
  private readonly doFetch;
85
+ private readonly retry;
86
+ private readonly userAgent;
87
+ private readonly onResponse;
88
+ private readonly sleep;
67
89
  constructor(options: ClientOptions);
68
- health(): Promise<{
69
- status: string;
70
- checks: Record<string, string>;
71
- }>;
72
- listWorkItems(projectId: string, options?: {
73
- filter?: unknown;
90
+ /** A copy of this client with some options replaced. */
91
+ withOptions(overrides: Partial<ClientOptions>): YCadenceClient;
92
+ /** The fetch this client sends with; for wrapping in `withOptions`. */
93
+ get fetchImplementation(): typeof globalThis.fetch;
94
+ health(): Promise<Health>;
95
+ /** Who the credential is. A 404 means the server predates Slice 2A. */
96
+ me(options?: RequestOptions): Promise<Me>;
97
+ /** Projects the credential can read; `q` matches a name or identifier prefix. */
98
+ listProjects(query?: {
99
+ q?: string;
100
+ archived?: boolean;
74
101
  limit?: number;
75
102
  cursor?: string;
76
- }): Promise<Page<WorkItem>>;
103
+ }, options?: RequestOptions): Promise<Page<Project>>;
104
+ listWorkItems(projectId: string, query?: ListWorkItemsOptions, options?: RequestOptions): Promise<Page<WorkItem>>;
77
105
  /**
78
106
  * Every work item matching a filter, following the cursor.
79
107
  *
@@ -85,93 +113,65 @@ export declare class YCadenceClient {
85
113
  filter?: unknown;
86
114
  pageSize?: number;
87
115
  }): AsyncGenerator<WorkItem>;
88
- createWorkItem(projectId: string, body: Record<string, unknown>): Promise<WorkItem>;
89
- getWorkItem(workItemId: string): Promise<WorkItem & {
90
- description: string | null;
116
+ createWorkItem(projectId: string, body: CreateWorkItemInput | Record<string, unknown>, options?: RequestOptions): Promise<WorkItem>;
117
+ getWorkItem(workItemId: string, options?: RequestOptions): Promise<WorkItemDetail>;
118
+ updateWorkItem(workItemId: string, body: UpdateWorkItemInput | Record<string, unknown>, options?: RequestOptions): Promise<WorkItem>;
119
+ deleteWorkItem(workItemId: string, options?: RequestOptions): Promise<void>;
120
+ listStates(projectId: string, options?: RequestOptions): Promise<{
121
+ states: State[];
91
122
  }>;
92
- updateWorkItem(workItemId: string, body: Record<string, unknown>): Promise<WorkItem>;
93
- deleteWorkItem(workItemId: string): Promise<void>;
94
- listStates(projectId: string): Promise<{
95
- states: {
96
- id: string;
97
- name: string;
98
- group: string;
99
- }[];
123
+ listLabels(projectId: string, options?: RequestOptions): Promise<{
124
+ labels: Label[];
100
125
  }>;
101
- listLabels(projectId: string): Promise<{
102
- labels: {
103
- id: string;
104
- name: string;
105
- }[];
126
+ createLabel(projectId: string, body: {
127
+ name: string;
128
+ color: string;
129
+ description?: string;
130
+ }, options?: RequestOptions): Promise<Label>;
131
+ listTypes(projectId: string, options?: RequestOptions): Promise<{
132
+ types: unknown[];
133
+ }>;
134
+ listCycles(projectId: string, options?: RequestOptions): Promise<{
135
+ cycles: Cycle[];
136
+ }>;
137
+ createCycle(projectId: string, body: {
138
+ name: string;
139
+ description?: string;
140
+ startDate?: string;
141
+ endDate?: string;
142
+ }, options?: RequestOptions): Promise<Cycle>;
143
+ getCycleProgress(cycleId: string, options?: RequestOptions): Promise<CycleProgress>;
144
+ addWorkItemsToCycle(cycleId: string, workItemIds: string[], options?: RequestOptions): Promise<{
145
+ added: number;
146
+ }>;
147
+ listViews(projectId: string, options?: RequestOptions): Promise<{
148
+ views: View[];
106
149
  }>;
107
- listCycles(projectId: string): Promise<{
108
- cycles: {
109
- id: string;
110
- name: string;
111
- status: string;
112
- }[];
150
+ createView(projectId: string, body: CreateViewInput, options?: RequestOptions): Promise<View>;
151
+ listIntake(projectId: string, query?: {
152
+ includeDecided?: boolean;
153
+ }, options?: RequestOptions): Promise<{
154
+ items: IntakeItem[];
113
155
  }>;
114
- previewImport(projectId: string, body: Record<string, unknown>): Promise<ImportPreview>;
115
- startImport(projectId: string, body: Record<string, unknown>): Promise<{
156
+ submitIntake(projectId: string, body: SubmitIntakeInput, options?: RequestOptions): Promise<SubmitIntakeResult>;
157
+ triageIntake(intakeItemId: string, body: TriageInput, options?: RequestOptions): Promise<TriageResult>;
158
+ previewImport(projectId: string, body: ImportInput | Record<string, unknown>, options?: RequestOptions): Promise<ImportPreview>;
159
+ startImport(projectId: string, body: ImportInput | Record<string, unknown>, options?: RequestOptions): Promise<{
116
160
  runId: string;
117
161
  }>;
118
- getImport(runId: string): Promise<ImportRun>;
119
- listImports(projectId: string): Promise<{
162
+ getImport(runId: string, options?: RequestOptions): Promise<ImportRun>;
163
+ listImports(projectId: string, options?: RequestOptions): Promise<{
120
164
  runs: ImportRun[];
121
165
  }>;
122
- listViews(projectId: string): Promise<{
123
- views: {
124
- id: string;
125
- name: string;
126
- }[];
127
- }>;
166
+ /** Call any operation in the table by id. */
167
+ call<T>(operation: OperationId, params?: Record<string, string>, query?: Record<string, string | number | boolean | undefined>, body?: unknown, options?: RequestOptions): Promise<T>;
128
168
  private request;
169
+ private backoff;
170
+ private send;
129
171
  }
130
- export interface ImportPreview {
131
- source: string;
132
- total: number;
133
- states: {
134
- name: string;
135
- suggestedStateId: string | null;
136
- }[];
137
- labels: {
138
- name: string;
139
- exists: boolean;
140
- }[];
141
- assignees: {
142
- value: string;
143
- matched: boolean;
144
- }[];
145
- skipped: {
146
- row: number;
147
- reason: string;
148
- }[];
149
- unmappedPriorities: string[];
150
- /**
151
- * False when re-importing would create duplicates rather than update — a CSV
152
- * with no id column. Worth showing before the import, not after.
153
- */
154
- idempotent: boolean;
155
- }
156
- export interface ImportRun {
157
- id: string;
158
- source: string;
159
- status: string;
160
- totalItems: number;
161
- createdCount: number;
162
- updatedCount: number;
163
- cursor: number;
164
- skipped: {
165
- row: number;
166
- reason: string;
167
- }[];
168
- unmatched: {
169
- kind: string;
170
- value: string;
171
- item: string;
172
- }[];
173
- error: string | null;
174
- }
172
+ /** Seconds, from either form `Retry-After` takes: a number or an HTTP date. */
173
+ export declare function parseRetryAfter(value: string | null, now?: number): number | undefined;
174
+ export type { ImportPreview, ImportRun, Page, WorkItem } from './types';
175
175
  /**
176
176
  * @deprecated Renamed to {@link YCadenceClient}. This alias stays for one
177
177
  * release so existing integrations keep compiling.
@@ -179,6 +179,7 @@ export interface ImportRun {
179
179
  export declare const DevPulseClient: typeof YCadenceClient;
180
180
  /** @deprecated Renamed to {@link YCadenceClient}. */
181
181
  export type DevPulseClient = YCadenceClient;
182
+ export { type ApiFailure, YCadenceError } from './errors';
182
183
  /**
183
184
  * @deprecated Renamed to {@link YCadenceError}. The alias is the same class,
184
185
  * so `error instanceof DevPulseError` still matches errors the client throws.
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,100 @@
1
+ /**
2
+ * Errors the client throws.
3
+ *
4
+ * One base class, `YCadenceError`, so `instanceof YCadenceError` catches every
5
+ * failure the client produces, and a subclass per kind of failure, so a caller
6
+ * can branch on the class instead of comparing status codes. The base keeps its
7
+ * original positional constructor `(status, code, message, issues)`, because
8
+ * integrations construct it in their own tests.
9
+ */
10
+ export interface ApiIssue {
11
+ path: string;
12
+ message: string;
13
+ }
14
+ /** The error body every v1 route returns (`packages/api/src/types.ts`). */
15
+ export interface ApiFailure {
16
+ error: string;
17
+ code: string;
18
+ issues?: ApiIssue[];
19
+ /** Added by the work management contracts; absent on older servers. */
20
+ details?: Record<string, unknown>;
21
+ requestId?: string;
22
+ }
23
+ export interface ErrorExtras {
24
+ /** The server's request id, from the body or the `x-request-id` header. */
25
+ requestId?: string;
26
+ details?: Record<string, unknown>;
27
+ /** Seconds, from `Retry-After`, when the server sent one. */
28
+ retryAfter?: number;
29
+ method?: string;
30
+ path?: string;
31
+ }
32
+ export declare class YCadenceError extends Error {
33
+ readonly status: number;
34
+ readonly code: string;
35
+ readonly issues?: ApiIssue[] | undefined;
36
+ readonly requestId: string | undefined;
37
+ readonly details: Record<string, unknown> | undefined;
38
+ readonly retryAfter: number | undefined;
39
+ readonly method: string | undefined;
40
+ readonly path: string | undefined;
41
+ constructor(status: number, code: string, message: string, issues?: ApiIssue[] | undefined, extras?: ErrorExtras);
42
+ /**
43
+ * Whether retrying unchanged could plausibly succeed: rate limits, server
44
+ * errors, timeouts and an unreachable host. A 4xx means the request itself
45
+ * needs to change.
46
+ */
47
+ get retryable(): boolean;
48
+ }
49
+ /** 400 or 422: the request was understood and refused as invalid. */
50
+ export declare class YCadenceValidationError extends YCadenceError {
51
+ name: string;
52
+ }
53
+ /** 401 or 403: no credential, a bad one, or not allowed. */
54
+ export declare class YCadencePermissionError extends YCadenceError {
55
+ name: string;
56
+ }
57
+ /** 404: missing, deleted, or in another organization. */
58
+ export declare class YCadenceNotFoundError extends YCadenceError {
59
+ name: string;
60
+ }
61
+ /** 409: a domain rule, a version conflict, or the same idempotency key still running. */
62
+ export declare class YCadenceConflictError extends YCadenceError {
63
+ name: string;
64
+ }
65
+ /** 412: an `If-Match` precondition failed; reload and try again. */
66
+ export declare class YCadencePreconditionError extends YCadenceError {
67
+ name: string;
68
+ }
69
+ /** 429: slow down; `retryAfter` says for how long when the server said. */
70
+ export declare class YCadenceRateLimitError extends YCadenceError {
71
+ name: string;
72
+ }
73
+ /** Status 0 or 408: the host could not be reached, or did not answer in time. */
74
+ export declare class YCadenceNetworkError extends YCadenceError {
75
+ name: string;
76
+ }
77
+ /** The class that matches a status. */
78
+ export declare function errorClassFor(status: number): typeof YCadenceError;
79
+ export declare function createError(status: number, code: string, message: string, issues?: ApiIssue[], extras?: ErrorExtras): YCadenceError;
80
+ /**
81
+ * Thrown, unchanged, through the client by a custom `fetch` that wants to stop
82
+ * a request without it being reported as a network error. The CLI's
83
+ * `--dry-run` uses it to show a mutation instead of sending it.
84
+ */
85
+ export declare class RequestIntercepted extends Error {
86
+ readonly request: {
87
+ method: string;
88
+ url: string;
89
+ headers: Record<string, string>;
90
+ body: unknown;
91
+ };
92
+ name: string;
93
+ constructor(request: {
94
+ method: string;
95
+ url: string;
96
+ headers: Record<string, string>;
97
+ body: unknown;
98
+ });
99
+ }
100
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,2 +1,7 @@
1
- export { type ApiFailure, type ClientOptions, DevPulseClient, DevPulseError, type Page, type WorkItem, YCadenceClient, YCadenceError, } from './client.js';
1
+ export { type ClientOptions, DevPulseClient, DevPulseError, parseRetryAfter, type RequestOptions, type ResponseInfo, type RetryOptions, YCadenceClient, } from './client.js';
2
+ export { type ApiFailure, type ApiIssue, createError, type ErrorExtras, errorClassFor, RequestIntercepted, YCadenceConflictError, YCadenceError, YCadenceNetworkError, YCadenceNotFoundError, YCadencePermissionError, YCadencePreconditionError, YCadenceRateLimitError, YCadenceValidationError, } from './errors.js';
3
+ export { buildPath, type HttpMethod, isIdempotentMethod, OPERATIONS, type Operation, type OperationId, } from './operations.js';
4
+ export { collect, paginate } from './pagination.js';
5
+ export * from './types.js';
6
+ export { SDK_VERSION } from './version.js';
2
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,cAAc,EACd,aAAa,EACb,KAAK,IAAI,EACT,KAAK,QAAQ,EACb,cAAc,EACd,aAAa,GACd,MAAM,aAAa,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAClB,cAAc,EACd,aAAa,EACb,eAAe,EACf,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,cAAc,GACf,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,KAAK,UAAU,EACf,KAAK,QAAQ,EACb,WAAW,EACX,KAAK,WAAW,EAChB,aAAa,EACb,kBAAkB,EAClB,qBAAqB,EACrB,aAAa,EACb,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,yBAAyB,EACzB,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,SAAS,EACT,KAAK,UAAU,EACf,kBAAkB,EAClB,UAAU,EACV,KAAK,SAAS,EACd,KAAK,WAAW,GACjB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AACnD,cAAc,YAAY,CAAA;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA"}