@ttctl/core 0.0.0 → 0.1.0-rc.1
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 +49 -9
- package/dist/__generated__/gateway.d.ts +4546 -0
- package/dist/__generated__/gateway.d.ts.map +1 -0
- package/dist/__generated__/gateway.js +9 -0
- package/dist/__generated__/gateway.js.map +1 -0
- package/dist/__generated__/talent-profile-zod-schemas.d.ts +1187 -0
- package/dist/__generated__/talent-profile-zod-schemas.d.ts.map +1 -0
- package/dist/__generated__/talent-profile-zod-schemas.js +1136 -0
- package/dist/__generated__/talent-profile-zod-schemas.js.map +1 -0
- package/dist/__generated__/talent-profile.d.ts +1397 -0
- package/dist/__generated__/talent-profile.d.ts.map +1 -0
- package/dist/__generated__/talent-profile.js +9 -0
- package/dist/__generated__/talent-profile.js.map +1 -0
- package/dist/__generated__/zod-schemas.d.ts +2895 -0
- package/dist/__generated__/zod-schemas.d.ts.map +1 -0
- package/dist/__generated__/zod-schemas.js +3121 -0
- package/dist/__generated__/zod-schemas.js.map +1 -0
- package/dist/__tests__/fixtures/profile/builders.d.ts +74 -0
- package/dist/__tests__/fixtures/profile/builders.d.ts.map +1 -0
- package/dist/__tests__/fixtures/profile/builders.js +196 -0
- package/dist/__tests__/fixtures/profile/builders.js.map +1 -0
- package/dist/__tests__/fixtures/profile/data.d.ts +39 -0
- package/dist/__tests__/fixtures/profile/data.d.ts.map +1 -0
- package/dist/__tests__/fixtures/profile/data.js +230 -0
- package/dist/__tests__/fixtures/profile/data.js.map +1 -0
- package/dist/__tests__/fixtures/profile/index.d.ts +9 -0
- package/dist/__tests__/fixtures/profile/index.d.ts.map +1 -0
- package/dist/__tests__/fixtures/profile/index.js +10 -0
- package/dist/__tests__/fixtures/profile/index.js.map +1 -0
- package/dist/__tests__/fixtures/profile/types.d.ts +53 -0
- package/dist/__tests__/fixtures/profile/types.d.ts.map +1 -0
- package/dist/__tests__/fixtures/profile/types.js +4 -0
- package/dist/__tests__/fixtures/profile/types.js.map +1 -0
- package/dist/auth/errors.d.ts +82 -0
- package/dist/auth/errors.d.ts.map +1 -0
- package/dist/auth/errors.js +68 -0
- package/dist/auth/errors.js.map +1 -0
- package/dist/auth.d.ts +192 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +294 -0
- package/dist/auth.js.map +1 -0
- package/dist/config.d.ts +212 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +349 -0
- package/dist/config.js.map +1 -0
- package/dist/configLock.d.ts +50 -0
- package/dist/configLock.d.ts.map +1 -0
- package/dist/configLock.js +88 -0
- package/dist/configLock.js.map +1 -0
- package/dist/configWriter.d.ts +97 -0
- package/dist/configWriter.d.ts.map +1 -0
- package/dist/configWriter.js +687 -0
- package/dist/configWriter.js.map +1 -0
- package/dist/index.d.ts +37 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +28 -0
- package/dist/index.js.map +1 -0
- package/dist/kill-switch.d.ts +161 -0
- package/dist/kill-switch.d.ts.map +1 -0
- package/dist/kill-switch.js +235 -0
- package/dist/kill-switch.js.map +1 -0
- package/dist/lib/date.d.ts +58 -0
- package/dist/lib/date.d.ts.map +1 -0
- package/dist/lib/date.js +104 -0
- package/dist/lib/date.js.map +1 -0
- package/dist/lib/diagnostic-log.d.ts +159 -0
- package/dist/lib/diagnostic-log.d.ts.map +1 -0
- package/dist/lib/diagnostic-log.js +186 -0
- package/dist/lib/diagnostic-log.js.map +1 -0
- package/dist/lib/package-version.d.ts +19 -0
- package/dist/lib/package-version.d.ts.map +1 -0
- package/dist/lib/package-version.js +38 -0
- package/dist/lib/package-version.js.map +1 -0
- package/dist/lib/redact.d.ts +153 -0
- package/dist/lib/redact.d.ts.map +1 -0
- package/dist/lib/redact.js +207 -0
- package/dist/lib/redact.js.map +1 -0
- package/dist/lib/text.d.ts +14 -0
- package/dist/lib/text.d.ts.map +1 -0
- package/dist/lib/text.js +21 -0
- package/dist/lib/text.js.map +1 -0
- package/dist/lib/wire-shape.d.ts +131 -0
- package/dist/lib/wire-shape.d.ts.map +1 -0
- package/dist/lib/wire-shape.js +376 -0
- package/dist/lib/wire-shape.js.map +1 -0
- package/dist/onepassword.d.ts +29 -0
- package/dist/onepassword.d.ts.map +1 -0
- package/dist/onepassword.js +112 -0
- package/dist/onepassword.js.map +1 -0
- package/dist/services/_shared/transport.d.ts +148 -0
- package/dist/services/_shared/transport.d.ts.map +1 -0
- package/dist/services/_shared/transport.js +102 -0
- package/dist/services/_shared/transport.js.map +1 -0
- package/dist/services/applications/index.d.ts +210 -0
- package/dist/services/applications/index.d.ts.map +1 -0
- package/dist/services/applications/index.js +240 -0
- package/dist/services/applications/index.js.map +1 -0
- package/dist/services/availability/index.d.ts +254 -0
- package/dist/services/availability/index.d.ts.map +1 -0
- package/dist/services/availability/index.js +310 -0
- package/dist/services/availability/index.js.map +1 -0
- package/dist/services/contracts/index.d.ts +132 -0
- package/dist/services/contracts/index.d.ts.map +1 -0
- package/dist/services/contracts/index.js +211 -0
- package/dist/services/contracts/index.js.map +1 -0
- package/dist/services/engagements/index.d.ts +504 -0
- package/dist/services/engagements/index.d.ts.map +1 -0
- package/dist/services/engagements/index.js +613 -0
- package/dist/services/engagements/index.js.map +1 -0
- package/dist/services/jobs/index.d.ts +490 -0
- package/dist/services/jobs/index.d.ts.map +1 -0
- package/dist/services/jobs/index.js +753 -0
- package/dist/services/jobs/index.js.map +1 -0
- package/dist/services/payments/index.d.ts +415 -0
- package/dist/services/payments/index.d.ts.map +1 -0
- package/dist/services/payments/index.js +636 -0
- package/dist/services/payments/index.js.map +1 -0
- package/dist/services/profile/__tests__/fixtures.d.ts +214 -0
- package/dist/services/profile/__tests__/fixtures.d.ts.map +1 -0
- package/dist/services/profile/__tests__/fixtures.js +176 -0
- package/dist/services/profile/__tests__/fixtures.js.map +1 -0
- package/dist/services/profile/basic/index.d.ts +390 -0
- package/dist/services/profile/basic/index.d.ts.map +1 -0
- package/dist/services/profile/basic/index.js +1007 -0
- package/dist/services/profile/basic/index.js.map +1 -0
- package/dist/services/profile/certifications/index.d.ts +74 -0
- package/dist/services/profile/certifications/index.d.ts.map +1 -0
- package/dist/services/profile/certifications/index.js +169 -0
- package/dist/services/profile/certifications/index.js.map +1 -0
- package/dist/services/profile/education/index.d.ts +73 -0
- package/dist/services/profile/education/index.d.ts.map +1 -0
- package/dist/services/profile/education/index.js +168 -0
- package/dist/services/profile/education/index.js.map +1 -0
- package/dist/services/profile/employment/index.d.ts +111 -0
- package/dist/services/profile/employment/index.d.ts.map +1 -0
- package/dist/services/profile/employment/index.js +202 -0
- package/dist/services/profile/employment/index.js.map +1 -0
- package/dist/services/profile/external/index.d.ts +219 -0
- package/dist/services/profile/external/index.d.ts.map +1 -0
- package/dist/services/profile/external/index.js +560 -0
- package/dist/services/profile/external/index.js.map +1 -0
- package/dist/services/profile/index.d.ts +24 -0
- package/dist/services/profile/index.d.ts.map +1 -0
- package/dist/services/profile/index.js +26 -0
- package/dist/services/profile/index.js.map +1 -0
- package/dist/services/profile/industries/index.d.ts +130 -0
- package/dist/services/profile/industries/index.d.ts.map +1 -0
- package/dist/services/profile/industries/index.js +292 -0
- package/dist/services/profile/industries/index.js.map +1 -0
- package/dist/services/profile/portfolio/index.d.ts +352 -0
- package/dist/services/profile/portfolio/index.d.ts.map +1 -0
- package/dist/services/profile/portfolio/index.js +833 -0
- package/dist/services/profile/portfolio/index.js.map +1 -0
- package/dist/services/profile/resume/index.d.ts +60 -0
- package/dist/services/profile/resume/index.d.ts.map +1 -0
- package/dist/services/profile/resume/index.js +212 -0
- package/dist/services/profile/resume/index.js.map +1 -0
- package/dist/services/profile/reviews/index.d.ts +137 -0
- package/dist/services/profile/reviews/index.d.ts.map +1 -0
- package/dist/services/profile/reviews/index.js +431 -0
- package/dist/services/profile/reviews/index.js.map +1 -0
- package/dist/services/profile/shared.d.ts +127 -0
- package/dist/services/profile/shared.d.ts.map +1 -0
- package/dist/services/profile/shared.js +155 -0
- package/dist/services/profile/shared.js.map +1 -0
- package/dist/services/profile/skills/index.d.ts +212 -0
- package/dist/services/profile/skills/index.d.ts.map +1 -0
- package/dist/services/profile/skills/index.js +461 -0
- package/dist/services/profile/skills/index.js.map +1 -0
- package/dist/services/profile/visas/index.d.ts +74 -0
- package/dist/services/profile/visas/index.d.ts.map +1 -0
- package/dist/services/profile/visas/index.js +306 -0
- package/dist/services/profile/visas/index.js.map +1 -0
- package/dist/services/timesheet/index.d.ts +326 -0
- package/dist/services/timesheet/index.d.ts.map +1 -0
- package/dist/services/timesheet/index.js +324 -0
- package/dist/services/timesheet/index.js.map +1 -0
- package/dist/services/translations.d.ts +79 -0
- package/dist/services/translations.d.ts.map +1 -0
- package/dist/services/translations.js +136 -0
- package/dist/services/translations.js.map +1 -0
- package/dist/transport-resilience.d.ts +136 -0
- package/dist/transport-resilience.d.ts.map +1 -0
- package/dist/transport-resilience.js +247 -0
- package/dist/transport-resilience.js.map +1 -0
- package/dist/transport.d.ts +408 -0
- package/dist/transport.d.ts.map +1 -0
- package/dist/transport.js +691 -0
- package/dist/transport.js.map +1 -0
- package/dist/types.d.ts +41 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +18 -0
- package/dist/types.js.map +1 -0
- package/package.json +40 -12
- package/index.js +0 -7
|
@@ -0,0 +1,490 @@
|
|
|
1
|
+
import type { DryRunPreview } from "../../transport.js";
|
|
2
|
+
/**
|
|
3
|
+
* Jobs-domain error codes. Mirrors the `EngagementsError` /
|
|
4
|
+
* `ApplicationsError` shape per project convention.
|
|
5
|
+
*
|
|
6
|
+
* - `NO_VIEWER`: HTTP 200 + `data.viewer === null` (defensive — the
|
|
7
|
+
* gateway signals auth revoke differently, but kept for coverage).
|
|
8
|
+
* - `NOT_FOUND`: caller's job id doesn't resolve to a viewable job.
|
|
9
|
+
* Two wire shapes fold into this code: top-level `Record not found`
|
|
10
|
+
* GraphQL error AND `data.viewer.job === null`.
|
|
11
|
+
* - `GRAPHQL_ERROR`: top-level `errors[]` from the gateway, not
|
|
12
|
+
* auth-revoked and not `Record not found`.
|
|
13
|
+
* - `MUTATION_ERROR`: `MutationResult.errors[]` payload (operation
|
|
14
|
+
* succeeded at the GraphQL level, but the mutation itself reports
|
|
15
|
+
* per-field errors — validation, conflict, etc.).
|
|
16
|
+
* - `NETWORK_ERROR`, `UNKNOWN`: standard transport failure modes.
|
|
17
|
+
*
|
|
18
|
+
* Auth-revoked failures throw `AuthRevokedError` (cross-cutting
|
|
19
|
+
* `TtctlError` subclass per #77), not a code on this enum.
|
|
20
|
+
*/
|
|
21
|
+
export type JobsErrorCode = "NO_VIEWER" | "NOT_FOUND" | "GRAPHQL_ERROR" | "MUTATION_ERROR" | "NETWORK_ERROR" | "WIRE_SHAPE_ERROR" | "UNKNOWN";
|
|
22
|
+
export declare class JobsError extends Error {
|
|
23
|
+
readonly code: JobsErrorCode;
|
|
24
|
+
readonly name = "JobsError";
|
|
25
|
+
constructor(code: JobsErrorCode, message: string, options?: {
|
|
26
|
+
cause?: unknown;
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Reason identifier supplied with `MarkJobAsNotInterested`. The wire
|
|
31
|
+
* mutation marks `reason: String!` and rejects empty strings server-
|
|
32
|
+
* side. A free-text reason is accepted; canonical short reasons
|
|
33
|
+
* observed in the wild include `not_a_match`, `low_rate`,
|
|
34
|
+
* `wrong_commitment`, `wrong_location`, `other`. The mutation does not
|
|
35
|
+
* validate the value against a closed enum.
|
|
36
|
+
*/
|
|
37
|
+
export interface NotInterestedOptions {
|
|
38
|
+
reason: string;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Per-mutation option object for the dry-run short-circuit (issue #162,
|
|
42
|
+
* mirroring the #52 reference pattern on `profile.basic.set()`). When
|
|
43
|
+
* `dryRun === true`, the mutation builds a {@link DryRunPreview} and
|
|
44
|
+
* returns `{ kind: "preview", preview }` WITHOUT invoking the gateway
|
|
45
|
+
* transport. Default `false` — the apply path runs and a
|
|
46
|
+
* `{ kind: "applied", result }` outcome is returned.
|
|
47
|
+
*
|
|
48
|
+
* Kept as a stand-alone interface (not a discriminated-union option) so
|
|
49
|
+
* future per-mutation options (e.g. a hypothetical idempotency-key
|
|
50
|
+
* parameter) can extend the same shape additively. The signature is
|
|
51
|
+
* deliberately uniform across the 7 jobs mutations.
|
|
52
|
+
*/
|
|
53
|
+
export interface DryRunOptions {
|
|
54
|
+
/**
|
|
55
|
+
* When `true`, short-circuit before any transport call and return a
|
|
56
|
+
* {@link DryRunPreview}-bearing outcome instead of executing the
|
|
57
|
+
* mutation. Default: `false` — normal apply path.
|
|
58
|
+
*/
|
|
59
|
+
dryRun?: boolean;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Apply-path outcome for a jobs interest-state mutation
|
|
63
|
+
* (`save` / `unsave` / `markViewed` / `notInterested` / `clearInterest`).
|
|
64
|
+
* Wraps the server-confirmed `JobInterestState` in a discriminated
|
|
65
|
+
* union so callers can branch deterministically between the apply path
|
|
66
|
+
* (`kind: "applied"`) and the dry-run path (`kind: "preview"`, see
|
|
67
|
+
* {@link JobsDryRunPreviewOutcome}).
|
|
68
|
+
*/
|
|
69
|
+
export interface JobInterestAppliedOutcome {
|
|
70
|
+
kind: "applied";
|
|
71
|
+
result: JobInterestState;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Dry-run outcome shared by every jobs mutation. Carries a
|
|
75
|
+
* {@link DryRunPreview} (operation name, surface, transport, endpoint,
|
|
76
|
+
* variables payload, redacted headers) — emitted verbatim by the CLI's
|
|
77
|
+
* dry-run envelope (`emitDryRunSuccess` in
|
|
78
|
+
* `packages/cli/src/lib/envelopes.ts`).
|
|
79
|
+
*/
|
|
80
|
+
export interface JobsDryRunPreviewOutcome {
|
|
81
|
+
kind: "preview";
|
|
82
|
+
preview: DryRunPreview;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Discriminated-union return type for {@link save}. The
|
|
86
|
+
* apply path returns the post-mutation {@link JobInterestState} wrapped
|
|
87
|
+
* in `{ kind: "applied", result }`; the dry-run path returns a
|
|
88
|
+
* {@link DryRunPreview} wrapped in `{ kind: "preview", preview }`.
|
|
89
|
+
*
|
|
90
|
+
* Pre-1.0 the pre-#162 return type (`Promise<JobInterestState>`) no
|
|
91
|
+
* longer exists — callers must branch on `outcome.kind` to access either
|
|
92
|
+
* `outcome.result` or `outcome.preview`. The MCP layer (and any future
|
|
93
|
+
* consumer) updates in lockstep with this rename.
|
|
94
|
+
*/
|
|
95
|
+
export type SaveOutcome = JobInterestAppliedOutcome | JobsDryRunPreviewOutcome;
|
|
96
|
+
/**
|
|
97
|
+
* Discriminated-union return type for {@link unsave}. Identical shape
|
|
98
|
+
* to {@link SaveOutcome} since `unsave` delegates to {@link
|
|
99
|
+
* clearInterest} (same wire operation `JobClearInterest`).
|
|
100
|
+
*/
|
|
101
|
+
export type UnsaveOutcome = JobInterestAppliedOutcome | JobsDryRunPreviewOutcome;
|
|
102
|
+
/**
|
|
103
|
+
* Discriminated-union return type for {@link markViewed}.
|
|
104
|
+
*/
|
|
105
|
+
export type MarkViewedOutcome = JobInterestAppliedOutcome | JobsDryRunPreviewOutcome;
|
|
106
|
+
/**
|
|
107
|
+
* Discriminated-union return type for {@link notInterested}.
|
|
108
|
+
*/
|
|
109
|
+
export type NotInterestedOutcome = JobInterestAppliedOutcome | JobsDryRunPreviewOutcome;
|
|
110
|
+
/**
|
|
111
|
+
* Discriminated-union return type for {@link clearInterest}.
|
|
112
|
+
*/
|
|
113
|
+
export type ClearInterestOutcome = JobInterestAppliedOutcome | JobsDryRunPreviewOutcome;
|
|
114
|
+
/**
|
|
115
|
+
* Apply-path outcome for {@link searchSubscriptionSave}. Carries the
|
|
116
|
+
* post-mutation {@link SearchSubscriptionState} (the active filters, or
|
|
117
|
+
* `{ active: false, filters: null }` if the server unexpectedly reports
|
|
118
|
+
* no subscription after a successful `start`).
|
|
119
|
+
*/
|
|
120
|
+
export interface SearchSubscriptionSaveAppliedOutcome {
|
|
121
|
+
kind: "applied";
|
|
122
|
+
result: SearchSubscriptionState;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Discriminated-union return type for {@link searchSubscriptionSave}.
|
|
126
|
+
*/
|
|
127
|
+
export type SearchSubscriptionSaveOutcome = SearchSubscriptionSaveAppliedOutcome | JobsDryRunPreviewOutcome;
|
|
128
|
+
/**
|
|
129
|
+
* Apply-path outcome for {@link searchSubscriptionRemove}. Carries the
|
|
130
|
+
* `{ terminated: true }` confirmation that the wire's idempotent
|
|
131
|
+
* `terminate` mutation returns.
|
|
132
|
+
*/
|
|
133
|
+
export interface SearchSubscriptionRemoveAppliedOutcome {
|
|
134
|
+
kind: "applied";
|
|
135
|
+
result: {
|
|
136
|
+
terminated: true;
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Discriminated-union return type for {@link searchSubscriptionRemove}.
|
|
141
|
+
*/
|
|
142
|
+
export type SearchSubscriptionRemoveOutcome = SearchSubscriptionRemoveAppliedOutcome | JobsDryRunPreviewOutcome;
|
|
143
|
+
/**
|
|
144
|
+
* Filter inputs for {@link list}. All fields fold into the captured
|
|
145
|
+
* operation's variables. Empty arrays / undefined are passed through as
|
|
146
|
+
* `null` so the wire defaults apply.
|
|
147
|
+
*/
|
|
148
|
+
export interface ListOptions {
|
|
149
|
+
/** Skill names — AND across entries. */
|
|
150
|
+
skills?: string[];
|
|
151
|
+
/** Free-text keywords — AND across entries. */
|
|
152
|
+
keywords?: string[];
|
|
153
|
+
/** Skills to EXCLUDE from matching. */
|
|
154
|
+
excludeSkills?: string[];
|
|
155
|
+
/** Keywords to EXCLUDE from matching. */
|
|
156
|
+
excludeKeywords?: string[];
|
|
157
|
+
/** Job commitment slugs (e.g. `FULL_TIME`, `PART_TIME`). */
|
|
158
|
+
commitments?: string[];
|
|
159
|
+
/** Job work types (e.g. `REMOTE`, `ONSITE`). */
|
|
160
|
+
workTypes?: string[];
|
|
161
|
+
/** Estimated lengths (e.g. `SHORT_TERM`, `LONG_TERM`). */
|
|
162
|
+
estimatedLengths?: string[];
|
|
163
|
+
/**
|
|
164
|
+
* Sort target — wire accepts `visible_at`, `posted_at`, etc.
|
|
165
|
+
* Defaults to whatever the server picks when omitted.
|
|
166
|
+
*/
|
|
167
|
+
sortTarget?: string;
|
|
168
|
+
/**
|
|
169
|
+
* 1-indexed page number (issue #138). Translated to the wire's
|
|
170
|
+
* 0-indexed `eligibleJobs.page` argument by {@link buildListVariables}.
|
|
171
|
+
* Default `1` when omitted (the wire's `page: 0`).
|
|
172
|
+
*/
|
|
173
|
+
page?: number;
|
|
174
|
+
/**
|
|
175
|
+
* Items per page (issue #138). Forwarded verbatim to the wire's
|
|
176
|
+
* `eligibleJobs.pageSize` argument. Default `20` when omitted,
|
|
177
|
+
* matching the pre-#138 hardcoded value.
|
|
178
|
+
*/
|
|
179
|
+
perPage?: number;
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Page wrapper returned by {@link list}, {@link saved}, and {@link
|
|
183
|
+
* notInterestedList}. Carries the projected items plus the
|
|
184
|
+
* server-reported `totalCount` and the resolved `page` / `perPage`
|
|
185
|
+
* (i.e., the effective values used in the query, after defaults).
|
|
186
|
+
*
|
|
187
|
+
* The CLI layer (`packages/cli/src/commands/jobs/list.ts`) uses
|
|
188
|
+
* `totalCount` to derive `pageInfo.totalPages` and
|
|
189
|
+
* `pageInfo.hasNextPage` for the offset-style envelope (issue #138).
|
|
190
|
+
*
|
|
191
|
+
* Why not return `JobListItem[]` directly: pre-#138 the caller could
|
|
192
|
+
* not present pagination metadata because the operation hardcoded
|
|
193
|
+
* `page: 0, pageSize: 20`; with the wiring change, callers MUST have
|
|
194
|
+
* access to `totalCount` to render the "Page X of Y" footer and to
|
|
195
|
+
* populate the JSON envelope's `pageInfo`. Returning a structured
|
|
196
|
+
* value is cheaper than threading the metadata through a side channel.
|
|
197
|
+
*/
|
|
198
|
+
export interface JobListPage {
|
|
199
|
+
items: JobListItem[];
|
|
200
|
+
totalCount: number;
|
|
201
|
+
/** 1-indexed page number actually requested. */
|
|
202
|
+
page: number;
|
|
203
|
+
/** Items per page actually requested. */
|
|
204
|
+
perPage: number;
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Default values for {@link ListOptions} pagination fields when the
|
|
208
|
+
* caller does not specify them. Mirrors the pre-#138 hardcoded values
|
|
209
|
+
* in `JOBS_LIST_QUERY` (`page: 0, pageSize: 20` on the wire — `page:
|
|
210
|
+
* 1, perPage: 20` user-facing). Exposed so tests can assert against
|
|
211
|
+
* the same constants the production code uses.
|
|
212
|
+
*/
|
|
213
|
+
export declare const DEFAULT_PAGE: 1;
|
|
214
|
+
export declare const DEFAULT_PER_PAGE: 20;
|
|
215
|
+
/**
|
|
216
|
+
* Single-row projection for jobs listings (browse + saved-list +
|
|
217
|
+
* not-interested-list + viewed-list).
|
|
218
|
+
*/
|
|
219
|
+
export interface JobListItem {
|
|
220
|
+
id: string;
|
|
221
|
+
title: string | null;
|
|
222
|
+
url: string | null;
|
|
223
|
+
client: {
|
|
224
|
+
id: string;
|
|
225
|
+
fullName: string | null;
|
|
226
|
+
} | null;
|
|
227
|
+
commitment: {
|
|
228
|
+
slug: string;
|
|
229
|
+
} | null;
|
|
230
|
+
workType: {
|
|
231
|
+
slug: string;
|
|
232
|
+
} | null;
|
|
233
|
+
specialization: {
|
|
234
|
+
title: string;
|
|
235
|
+
} | null;
|
|
236
|
+
expectedHours: number | null;
|
|
237
|
+
maxRate: number | null;
|
|
238
|
+
startDate: string | null;
|
|
239
|
+
postedWhen: string | null;
|
|
240
|
+
viewed: boolean | null;
|
|
241
|
+
saved: boolean | null;
|
|
242
|
+
notInterested: boolean | null;
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Detail-view shape for `jobs show <id>`. Extends {@link JobListItem}
|
|
246
|
+
* with descriptive fields and client metadata. Field selection is
|
|
247
|
+
* conservative — fields the CLI / MCP renders.
|
|
248
|
+
*/
|
|
249
|
+
export interface JobDetail extends JobListItem {
|
|
250
|
+
descriptionMd: string | null;
|
|
251
|
+
minimumHoursPerBillingCycle: number | null;
|
|
252
|
+
isCoaching: boolean | null;
|
|
253
|
+
isToptalProject: boolean | null;
|
|
254
|
+
semiMonthlyBilling: boolean | null;
|
|
255
|
+
positionsCount: number | null;
|
|
256
|
+
jobTimeZone: {
|
|
257
|
+
verbose: string | null;
|
|
258
|
+
hoursOverlap: number | null;
|
|
259
|
+
workingTimeFrom: string | null;
|
|
260
|
+
workingTimeTo: string | null;
|
|
261
|
+
} | null;
|
|
262
|
+
client: (JobListItem["client"] & {
|
|
263
|
+
city: string | null;
|
|
264
|
+
countryName: string | null;
|
|
265
|
+
industry: string | null;
|
|
266
|
+
isEnterprise: boolean | null;
|
|
267
|
+
website: string | null;
|
|
268
|
+
linkedin: string | null;
|
|
269
|
+
teamSize: {
|
|
270
|
+
value: string | null;
|
|
271
|
+
} | null;
|
|
272
|
+
}) | null;
|
|
273
|
+
skills: {
|
|
274
|
+
id: string;
|
|
275
|
+
name: string;
|
|
276
|
+
rating: number | null;
|
|
277
|
+
isOptional: boolean | null;
|
|
278
|
+
}[];
|
|
279
|
+
languages: {
|
|
280
|
+
id: string;
|
|
281
|
+
name: string | null;
|
|
282
|
+
}[];
|
|
283
|
+
}
|
|
284
|
+
/**
|
|
285
|
+
* State payload returned by every mutation that toggles a job's
|
|
286
|
+
* interest signals. Reflects the post-mutation server state.
|
|
287
|
+
*/
|
|
288
|
+
export interface JobInterestState {
|
|
289
|
+
id: string;
|
|
290
|
+
saved: boolean | null;
|
|
291
|
+
notInterested: boolean | null;
|
|
292
|
+
viewed: boolean | null;
|
|
293
|
+
}
|
|
294
|
+
/**
|
|
295
|
+
* Filter inputs for the job-search subscription. Mirrors the wire's
|
|
296
|
+
* `StartJobsSearchSubscription` variables. All fields optional —
|
|
297
|
+
* omitting one passes `null` to the server, which interprets as
|
|
298
|
+
* "no constraint on this axis".
|
|
299
|
+
*/
|
|
300
|
+
export interface SearchSubscriptionFilters {
|
|
301
|
+
skills?: string[];
|
|
302
|
+
keywords?: string[];
|
|
303
|
+
excludeSkills?: string[];
|
|
304
|
+
excludeKeywords?: string[];
|
|
305
|
+
commitments?: string[];
|
|
306
|
+
workTypes?: string[];
|
|
307
|
+
estimatedLengths?: string[];
|
|
308
|
+
excludeUnspecifiedBudget?: boolean;
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* State of the user's single job-search subscription. `null` value of
|
|
312
|
+
* `filters` means no active subscription (the user has not started
|
|
313
|
+
* one, or terminated the active one).
|
|
314
|
+
*
|
|
315
|
+
* Note (R2): the wire shape carries a single subscription per viewer —
|
|
316
|
+
* there is no list of named subscriptions. The CLI's `search list` /
|
|
317
|
+
* `search save --name` / `search remove <id>` surface adapts to this
|
|
318
|
+
* cardinality (returns 0-or-1; name is advisory; remove id is ignored).
|
|
319
|
+
*/
|
|
320
|
+
export interface SearchSubscriptionState {
|
|
321
|
+
active: boolean;
|
|
322
|
+
filters: SearchSubscriptionFilters | null;
|
|
323
|
+
}
|
|
324
|
+
/**
|
|
325
|
+
* Browse current job opportunities (default sort, paginated).
|
|
326
|
+
*
|
|
327
|
+
* Filters fold straight through to the wire (`eligibleJobs`
|
|
328
|
+
* arguments). Empty arrays / undefined values pass as `null`, letting
|
|
329
|
+
* the server apply its defaults.
|
|
330
|
+
*
|
|
331
|
+
* Pagination (#138): `opts.page` (1-indexed) and `opts.perPage` are
|
|
332
|
+
* forwarded to the wire's 1-indexed `eligibleJobs.page` and
|
|
333
|
+
* `pageSize`. Defaults: `page: 1, perPage: 20`. The wire's `page` is
|
|
334
|
+
* 1-indexed — see {@link buildListVariables} for the empirical
|
|
335
|
+
* findings from #138 E2E verification. Returns a {@link
|
|
336
|
+
* JobListPage} carrying `totalCount` so callers can render
|
|
337
|
+
* offset-style pagination metadata.
|
|
338
|
+
*/
|
|
339
|
+
export declare function list(token: string, opts?: ListOptions): Promise<JobListPage>;
|
|
340
|
+
/**
|
|
341
|
+
* Fetch a single job by id. Throws `JobsError("NOT_FOUND")` for two
|
|
342
|
+
* wire shapes: top-level `Record not found` GraphQL error AND a
|
|
343
|
+
* successful response with `viewer.job === null`.
|
|
344
|
+
*/
|
|
345
|
+
export declare function show(token: string, id: string): Promise<JobDetail>;
|
|
346
|
+
/**
|
|
347
|
+
* List saved jobs (the bookmark / favorites view).
|
|
348
|
+
*
|
|
349
|
+
* Implementation: `eligibleJobs` with `filter: { saved: { eq: true } }`
|
|
350
|
+
* — the same projection as {@link list} so the CLI can reuse the table
|
|
351
|
+
* renderer.
|
|
352
|
+
*
|
|
353
|
+
* Pagination (#138): accepts `opts.page` / `opts.perPage`; returns
|
|
354
|
+
* a {@link JobListPage} for offset-style envelope rendering.
|
|
355
|
+
*/
|
|
356
|
+
export declare function saved(token: string, opts?: ListOptions): Promise<JobListPage>;
|
|
357
|
+
/**
|
|
358
|
+
* List jobs marked as not-interested. Implementation: `eligibleJobs`
|
|
359
|
+
* with `filter: { notInterested: { eq: true } }`.
|
|
360
|
+
*
|
|
361
|
+
* Pagination (#138): accepts `opts.page` / `opts.perPage`; returns
|
|
362
|
+
* a {@link JobListPage} for offset-style envelope rendering.
|
|
363
|
+
*/
|
|
364
|
+
export declare function notInterestedList(token: string, opts?: ListOptions): Promise<JobListPage>;
|
|
365
|
+
/**
|
|
366
|
+
* List jobs marked as viewed.
|
|
367
|
+
*
|
|
368
|
+
* **R1 — Wire-shape gap**: the `eligibleJobs` query exposes filters
|
|
369
|
+
* only for `saved` and `notInterested`, not `viewed`. This function
|
|
370
|
+
* fetches the requested page of jobs ({@link list}) and applies a
|
|
371
|
+
* client-side filter on the `viewed` boolean. The result is scoped to
|
|
372
|
+
* the items the server returned on that page — pagination shifts the
|
|
373
|
+
* underlying fetch window, but the client-side filter on `viewed`
|
|
374
|
+
* still happens AFTER the page is returned, so the resulting list can
|
|
375
|
+
* be shorter than `perPage`. A wire-level filter would be the right
|
|
376
|
+
* long-term fix and is tracked as a follow-up.
|
|
377
|
+
*
|
|
378
|
+
* Pagination (#138): accepts `opts.page` / `opts.perPage`. The
|
|
379
|
+
* returned {@link JobListPage} carries the `totalCount` of the
|
|
380
|
+
* underlying paginated fetch (pre-filter) — `items.length` reflects
|
|
381
|
+
* the post-filter shape and can be smaller.
|
|
382
|
+
*/
|
|
383
|
+
export declare function viewedList(token: string, opts?: ListOptions): Promise<JobListPage>;
|
|
384
|
+
/**
|
|
385
|
+
* Mark a job as saved (bookmark). The wire mutation
|
|
386
|
+
* (`MarkJobAsSaved`) toggles `saved=true` and clears `notInterested=false`
|
|
387
|
+
* if it was set — the server's interest-status model is one-of-three
|
|
388
|
+
* (`saved` | `not-interested` | `cleared`).
|
|
389
|
+
*
|
|
390
|
+
* Dry-run path (issue #162): when invoked with `options.dryRun === true`,
|
|
391
|
+
* builds a {@link DryRunPreview} of the mutation without invoking the
|
|
392
|
+
* gateway transport and returns it wrapped in {@link
|
|
393
|
+
* JobsDryRunPreviewOutcome}. The bearer token is redacted per the
|
|
394
|
+
* `DryRunPreview` contract; the `jobID` variable carries the caller's
|
|
395
|
+
* literal id (no sibling read needed for this surface).
|
|
396
|
+
*/
|
|
397
|
+
export declare function save(token: string, id: string, options?: DryRunOptions): Promise<SaveOutcome>;
|
|
398
|
+
/**
|
|
399
|
+
* Clear all interest-status flags on a job. The CLI exposes this as
|
|
400
|
+
* `jobs unsave <id>` (matching the AC) — semantically it also clears
|
|
401
|
+
* `notInterested` because the wire only offers one path
|
|
402
|
+
* (`ClearJobInterestStatus`) to clear EITHER signal. Callers wanting
|
|
403
|
+
* the "remove saved without affecting not-interested" semantics aren't
|
|
404
|
+
* supported by the wire; they would need to re-mark not-interested
|
|
405
|
+
* after.
|
|
406
|
+
*
|
|
407
|
+
* Delegates to {@link clearInterest} (same wire operation
|
|
408
|
+
* `JobClearInterest`) — the dry-run preview therefore reports
|
|
409
|
+
* `operationName: "JobClearInterest"`. The CLI envelope's
|
|
410
|
+
* surface-level `operation` field is `jobs.unsave` (kept distinct so
|
|
411
|
+
* users see the verb they invoked).
|
|
412
|
+
*/
|
|
413
|
+
export declare function unsave(token: string, id: string, options?: DryRunOptions): Promise<UnsaveOutcome>;
|
|
414
|
+
/**
|
|
415
|
+
* Mark a job as not-interested with the supplied reason. The wire
|
|
416
|
+
* mutation (`MarkJobAsNotInterested`) toggles `notInterested=true`
|
|
417
|
+
* and clears `saved=false` if it was set.
|
|
418
|
+
*
|
|
419
|
+
* `reason` is server-side `String!` — rejects empty strings with
|
|
420
|
+
* `code=blank, key=reason`. Caller must supply a non-empty value; the
|
|
421
|
+
* wire does not validate against a closed enum, so free-text is fine.
|
|
422
|
+
*
|
|
423
|
+
* Dry-run path (issue #162): when invoked with `options.dryRun === true`,
|
|
424
|
+
* builds a {@link DryRunPreview} of the mutation without invoking the
|
|
425
|
+
* gateway transport and returns it wrapped in {@link
|
|
426
|
+
* JobsDryRunPreviewOutcome}. The `reason` variable is preserved in the
|
|
427
|
+
* preview's variables payload (it carries no session-bound material) so
|
|
428
|
+
* callers can verify the wire-shape end-to-end.
|
|
429
|
+
*/
|
|
430
|
+
export declare function notInterested(token: string, id: string, opts: NotInterestedOptions, options?: DryRunOptions): Promise<NotInterestedOutcome>;
|
|
431
|
+
/**
|
|
432
|
+
* Mark a job as viewed (UX-only signal — typically the UI auto-marks
|
|
433
|
+
* on detail-page open; this surface lets the CLI do it explicitly).
|
|
434
|
+
*
|
|
435
|
+
* Dry-run path (issue #162): when invoked with `options.dryRun === true`,
|
|
436
|
+
* builds a {@link DryRunPreview} of the mutation without invoking the
|
|
437
|
+
* gateway transport and returns it wrapped in {@link
|
|
438
|
+
* JobsDryRunPreviewOutcome}.
|
|
439
|
+
*/
|
|
440
|
+
export declare function markViewed(token: string, id: string, options?: DryRunOptions): Promise<MarkViewedOutcome>;
|
|
441
|
+
/**
|
|
442
|
+
* Clear the interest-status flags (both `saved` and `notInterested`)
|
|
443
|
+
* on a job. The wire's "undo" path for either save or not-interested.
|
|
444
|
+
*
|
|
445
|
+
* Dry-run path (issue #162): when invoked with `options.dryRun === true`,
|
|
446
|
+
* builds a {@link DryRunPreview} of the mutation without invoking the
|
|
447
|
+
* gateway transport and returns it wrapped in {@link
|
|
448
|
+
* JobsDryRunPreviewOutcome}.
|
|
449
|
+
*/
|
|
450
|
+
export declare function clearInterest(token: string, id: string, options?: DryRunOptions): Promise<ClearInterestOutcome>;
|
|
451
|
+
/**
|
|
452
|
+
* Show the current job-search subscription state. Returns
|
|
453
|
+
* `{ active: false, filters: null }` when no subscription is active.
|
|
454
|
+
*
|
|
455
|
+
* **R2**: the wire models a single subscription per viewer — there is
|
|
456
|
+
* no list. The CLI's `search list` maps this to a 0-or-1 envelope.
|
|
457
|
+
*/
|
|
458
|
+
export declare function searchSubscriptionShow(token: string): Promise<SearchSubscriptionState>;
|
|
459
|
+
/**
|
|
460
|
+
* Start the job-search subscription with the supplied filters. If a
|
|
461
|
+
* subscription is already active, the wire's `start` mutation replaces
|
|
462
|
+
* it (the server does NOT error on "already subscribed").
|
|
463
|
+
*
|
|
464
|
+
* Returns the post-mutation subscription state.
|
|
465
|
+
*
|
|
466
|
+
* Dry-run path (issue #162): when invoked with `options.dryRun === true`,
|
|
467
|
+
* builds a {@link DryRunPreview} of the mutation without invoking the
|
|
468
|
+
* gateway transport and returns it wrapped in {@link
|
|
469
|
+
* JobsDryRunPreviewOutcome}. The filters payload is normalised
|
|
470
|
+
* identically to the apply path so the preview's `variables` reflect
|
|
471
|
+
* the exact wire shape that WOULD have been sent.
|
|
472
|
+
*/
|
|
473
|
+
export declare function searchSubscriptionSave(token: string, filters: SearchSubscriptionFilters, options?: DryRunOptions): Promise<SearchSubscriptionSaveOutcome>;
|
|
474
|
+
/**
|
|
475
|
+
* Terminate the active job-search subscription. The wire's `terminate`
|
|
476
|
+
* mutation is idempotent — terminating a non-active subscription
|
|
477
|
+
* returns `success: true` with no errors.
|
|
478
|
+
*
|
|
479
|
+
* Returns `{ terminated: true }` on success. The post-terminate
|
|
480
|
+
* subscription state is implicit (`active: false`) and is not re-
|
|
481
|
+
* fetched here.
|
|
482
|
+
*
|
|
483
|
+
* Dry-run path (issue #162): when invoked with `options.dryRun === true`,
|
|
484
|
+
* builds a {@link DryRunPreview} of the mutation without invoking the
|
|
485
|
+
* gateway transport and returns it wrapped in {@link
|
|
486
|
+
* JobsDryRunPreviewOutcome}. The variables payload is `{}` (the wire
|
|
487
|
+
* `terminate` mutation takes no variables).
|
|
488
|
+
*/
|
|
489
|
+
export declare function searchSubscriptionRemove(token: string, options?: DryRunOptions): Promise<SearchSubscriptionRemoveOutcome>;
|
|
490
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/jobs/index.ts"],"names":[],"mappings":"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"}
|