@ttctl/core 0.0.0 → 0.1.0-rc.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.
Files changed (195) hide show
  1. package/README.md +49 -9
  2. package/dist/__generated__/gateway.d.ts +4546 -0
  3. package/dist/__generated__/gateway.d.ts.map +1 -0
  4. package/dist/__generated__/gateway.js +9 -0
  5. package/dist/__generated__/gateway.js.map +1 -0
  6. package/dist/__generated__/talent-profile-zod-schemas.d.ts +1187 -0
  7. package/dist/__generated__/talent-profile-zod-schemas.d.ts.map +1 -0
  8. package/dist/__generated__/talent-profile-zod-schemas.js +1136 -0
  9. package/dist/__generated__/talent-profile-zod-schemas.js.map +1 -0
  10. package/dist/__generated__/talent-profile.d.ts +1397 -0
  11. package/dist/__generated__/talent-profile.d.ts.map +1 -0
  12. package/dist/__generated__/talent-profile.js +9 -0
  13. package/dist/__generated__/talent-profile.js.map +1 -0
  14. package/dist/__generated__/zod-schemas.d.ts +2895 -0
  15. package/dist/__generated__/zod-schemas.d.ts.map +1 -0
  16. package/dist/__generated__/zod-schemas.js +3121 -0
  17. package/dist/__generated__/zod-schemas.js.map +1 -0
  18. package/dist/__tests__/fixtures/profile/builders.d.ts +74 -0
  19. package/dist/__tests__/fixtures/profile/builders.d.ts.map +1 -0
  20. package/dist/__tests__/fixtures/profile/builders.js +200 -0
  21. package/dist/__tests__/fixtures/profile/builders.js.map +1 -0
  22. package/dist/__tests__/fixtures/profile/data.d.ts +39 -0
  23. package/dist/__tests__/fixtures/profile/data.d.ts.map +1 -0
  24. package/dist/__tests__/fixtures/profile/data.js +238 -0
  25. package/dist/__tests__/fixtures/profile/data.js.map +1 -0
  26. package/dist/__tests__/fixtures/profile/index.d.ts +9 -0
  27. package/dist/__tests__/fixtures/profile/index.d.ts.map +1 -0
  28. package/dist/__tests__/fixtures/profile/index.js +10 -0
  29. package/dist/__tests__/fixtures/profile/index.js.map +1 -0
  30. package/dist/__tests__/fixtures/profile/types.d.ts +53 -0
  31. package/dist/__tests__/fixtures/profile/types.d.ts.map +1 -0
  32. package/dist/__tests__/fixtures/profile/types.js +4 -0
  33. package/dist/__tests__/fixtures/profile/types.js.map +1 -0
  34. package/dist/auth/errors.d.ts +82 -0
  35. package/dist/auth/errors.d.ts.map +1 -0
  36. package/dist/auth/errors.js +68 -0
  37. package/dist/auth/errors.js.map +1 -0
  38. package/dist/auth.d.ts +192 -0
  39. package/dist/auth.d.ts.map +1 -0
  40. package/dist/auth.js +294 -0
  41. package/dist/auth.js.map +1 -0
  42. package/dist/config.d.ts +214 -0
  43. package/dist/config.d.ts.map +1 -0
  44. package/dist/config.js +349 -0
  45. package/dist/config.js.map +1 -0
  46. package/dist/configLock.d.ts +52 -0
  47. package/dist/configLock.d.ts.map +1 -0
  48. package/dist/configLock.js +109 -0
  49. package/dist/configLock.js.map +1 -0
  50. package/dist/configWriter.d.ts +97 -0
  51. package/dist/configWriter.d.ts.map +1 -0
  52. package/dist/configWriter.js +688 -0
  53. package/dist/configWriter.js.map +1 -0
  54. package/dist/index.d.ts +37 -0
  55. package/dist/index.d.ts.map +1 -0
  56. package/dist/index.js +28 -0
  57. package/dist/index.js.map +1 -0
  58. package/dist/kill-switch.d.ts +161 -0
  59. package/dist/kill-switch.d.ts.map +1 -0
  60. package/dist/kill-switch.js +235 -0
  61. package/dist/kill-switch.js.map +1 -0
  62. package/dist/lib/date.d.ts +58 -0
  63. package/dist/lib/date.d.ts.map +1 -0
  64. package/dist/lib/date.js +104 -0
  65. package/dist/lib/date.js.map +1 -0
  66. package/dist/lib/diagnostic-log.d.ts +159 -0
  67. package/dist/lib/diagnostic-log.d.ts.map +1 -0
  68. package/dist/lib/diagnostic-log.js +186 -0
  69. package/dist/lib/diagnostic-log.js.map +1 -0
  70. package/dist/lib/package-version.d.ts +19 -0
  71. package/dist/lib/package-version.d.ts.map +1 -0
  72. package/dist/lib/package-version.js +38 -0
  73. package/dist/lib/package-version.js.map +1 -0
  74. package/dist/lib/redact.d.ts +153 -0
  75. package/dist/lib/redact.d.ts.map +1 -0
  76. package/dist/lib/redact.js +207 -0
  77. package/dist/lib/redact.js.map +1 -0
  78. package/dist/lib/text.d.ts +14 -0
  79. package/dist/lib/text.d.ts.map +1 -0
  80. package/dist/lib/text.js +21 -0
  81. package/dist/lib/text.js.map +1 -0
  82. package/dist/lib/wire-shape.d.ts +131 -0
  83. package/dist/lib/wire-shape.d.ts.map +1 -0
  84. package/dist/lib/wire-shape.js +376 -0
  85. package/dist/lib/wire-shape.js.map +1 -0
  86. package/dist/onepassword.d.ts +29 -0
  87. package/dist/onepassword.d.ts.map +1 -0
  88. package/dist/onepassword.js +112 -0
  89. package/dist/onepassword.js.map +1 -0
  90. package/dist/services/_shared/transport.d.ts +148 -0
  91. package/dist/services/_shared/transport.d.ts.map +1 -0
  92. package/dist/services/_shared/transport.js +102 -0
  93. package/dist/services/_shared/transport.js.map +1 -0
  94. package/dist/services/applications/index.d.ts +210 -0
  95. package/dist/services/applications/index.d.ts.map +1 -0
  96. package/dist/services/applications/index.js +240 -0
  97. package/dist/services/applications/index.js.map +1 -0
  98. package/dist/services/availability/index.d.ts +254 -0
  99. package/dist/services/availability/index.d.ts.map +1 -0
  100. package/dist/services/availability/index.js +310 -0
  101. package/dist/services/availability/index.js.map +1 -0
  102. package/dist/services/contracts/index.d.ts +132 -0
  103. package/dist/services/contracts/index.d.ts.map +1 -0
  104. package/dist/services/contracts/index.js +211 -0
  105. package/dist/services/contracts/index.js.map +1 -0
  106. package/dist/services/engagements/index.d.ts +504 -0
  107. package/dist/services/engagements/index.d.ts.map +1 -0
  108. package/dist/services/engagements/index.js +613 -0
  109. package/dist/services/engagements/index.js.map +1 -0
  110. package/dist/services/jobs/index.d.ts +490 -0
  111. package/dist/services/jobs/index.d.ts.map +1 -0
  112. package/dist/services/jobs/index.js +753 -0
  113. package/dist/services/jobs/index.js.map +1 -0
  114. package/dist/services/payments/index.d.ts +425 -0
  115. package/dist/services/payments/index.d.ts.map +1 -0
  116. package/dist/services/payments/index.js +636 -0
  117. package/dist/services/payments/index.js.map +1 -0
  118. package/dist/services/profile/__tests__/fixtures.d.ts +214 -0
  119. package/dist/services/profile/__tests__/fixtures.d.ts.map +1 -0
  120. package/dist/services/profile/__tests__/fixtures.js +176 -0
  121. package/dist/services/profile/__tests__/fixtures.js.map +1 -0
  122. package/dist/services/profile/basic/index.d.ts +390 -0
  123. package/dist/services/profile/basic/index.d.ts.map +1 -0
  124. package/dist/services/profile/basic/index.js +1007 -0
  125. package/dist/services/profile/basic/index.js.map +1 -0
  126. package/dist/services/profile/certifications/index.d.ts +74 -0
  127. package/dist/services/profile/certifications/index.d.ts.map +1 -0
  128. package/dist/services/profile/certifications/index.js +169 -0
  129. package/dist/services/profile/certifications/index.js.map +1 -0
  130. package/dist/services/profile/education/index.d.ts +73 -0
  131. package/dist/services/profile/education/index.d.ts.map +1 -0
  132. package/dist/services/profile/education/index.js +168 -0
  133. package/dist/services/profile/education/index.js.map +1 -0
  134. package/dist/services/profile/employment/index.d.ts +132 -0
  135. package/dist/services/profile/employment/index.d.ts.map +1 -0
  136. package/dist/services/profile/employment/index.js +262 -0
  137. package/dist/services/profile/employment/index.js.map +1 -0
  138. package/dist/services/profile/external/index.d.ts +278 -0
  139. package/dist/services/profile/external/index.d.ts.map +1 -0
  140. package/dist/services/profile/external/index.js +640 -0
  141. package/dist/services/profile/external/index.js.map +1 -0
  142. package/dist/services/profile/index.d.ts +24 -0
  143. package/dist/services/profile/index.d.ts.map +1 -0
  144. package/dist/services/profile/index.js +26 -0
  145. package/dist/services/profile/index.js.map +1 -0
  146. package/dist/services/profile/industries/index.d.ts +130 -0
  147. package/dist/services/profile/industries/index.d.ts.map +1 -0
  148. package/dist/services/profile/industries/index.js +292 -0
  149. package/dist/services/profile/industries/index.js.map +1 -0
  150. package/dist/services/profile/portfolio/index.d.ts +352 -0
  151. package/dist/services/profile/portfolio/index.d.ts.map +1 -0
  152. package/dist/services/profile/portfolio/index.js +833 -0
  153. package/dist/services/profile/portfolio/index.js.map +1 -0
  154. package/dist/services/profile/resume/index.d.ts +60 -0
  155. package/dist/services/profile/resume/index.d.ts.map +1 -0
  156. package/dist/services/profile/resume/index.js +212 -0
  157. package/dist/services/profile/resume/index.js.map +1 -0
  158. package/dist/services/profile/reviews/index.d.ts +137 -0
  159. package/dist/services/profile/reviews/index.d.ts.map +1 -0
  160. package/dist/services/profile/reviews/index.js +431 -0
  161. package/dist/services/profile/reviews/index.js.map +1 -0
  162. package/dist/services/profile/shared.d.ts +127 -0
  163. package/dist/services/profile/shared.d.ts.map +1 -0
  164. package/dist/services/profile/shared.js +155 -0
  165. package/dist/services/profile/shared.js.map +1 -0
  166. package/dist/services/profile/skills/index.d.ts +212 -0
  167. package/dist/services/profile/skills/index.d.ts.map +1 -0
  168. package/dist/services/profile/skills/index.js +461 -0
  169. package/dist/services/profile/skills/index.js.map +1 -0
  170. package/dist/services/profile/visas/index.d.ts +74 -0
  171. package/dist/services/profile/visas/index.d.ts.map +1 -0
  172. package/dist/services/profile/visas/index.js +306 -0
  173. package/dist/services/profile/visas/index.js.map +1 -0
  174. package/dist/services/timesheet/index.d.ts +337 -0
  175. package/dist/services/timesheet/index.d.ts.map +1 -0
  176. package/dist/services/timesheet/index.js +336 -0
  177. package/dist/services/timesheet/index.js.map +1 -0
  178. package/dist/services/translations.d.ts +79 -0
  179. package/dist/services/translations.d.ts.map +1 -0
  180. package/dist/services/translations.js +136 -0
  181. package/dist/services/translations.js.map +1 -0
  182. package/dist/transport-resilience.d.ts +136 -0
  183. package/dist/transport-resilience.d.ts.map +1 -0
  184. package/dist/transport-resilience.js +247 -0
  185. package/dist/transport-resilience.js.map +1 -0
  186. package/dist/transport.d.ts +408 -0
  187. package/dist/transport.d.ts.map +1 -0
  188. package/dist/transport.js +691 -0
  189. package/dist/transport.js.map +1 -0
  190. package/dist/types.d.ts +41 -0
  191. package/dist/types.d.ts.map +1 -0
  192. package/dist/types.js +18 -0
  193. package/dist/types.js.map +1 -0
  194. package/package.json +40 -12
  195. package/index.js +0 -7
@@ -0,0 +1,278 @@
1
+ import { ProfileError } from "../basic/index.js";
2
+ import type { ProfileErrorCode } from "../basic/index.js";
3
+ export { ProfileError };
4
+ export type { ProfileErrorCode };
5
+ /**
6
+ * Subset of `UpdateExternalProfilesInput` actually exposed at v0. All fields
7
+ * are optional; the caller is responsible for passing at least one or the
8
+ * service will reject with `VALIDATION_ERROR`.
9
+ *
10
+ * `twitter / behance / dribbble` are exposed because they are present in the
11
+ * `UpdateExternalProfilesPayload` response selection of the captured
12
+ * `UpdateExternalProfiles` mutation document
13
+ * (`research/graphql/talent_profile/operations/UpdateExternalProfiles.graphql`).
14
+ * `skype` is also present on the underlying `Profile` type but the captured
15
+ * mutation document does not request it back; we omit it from the v0 surface
16
+ * (the user can still update it via the web portal).
17
+ */
18
+ export interface ExternalProfilesUpdate {
19
+ linkedin?: string;
20
+ github?: string;
21
+ website?: string;
22
+ twitter?: string;
23
+ behance?: string;
24
+ dribbble?: string;
25
+ }
26
+ /**
27
+ * Server-confirmed result of {@link update}. Mirrors the response selection
28
+ * of the captured `UpdateExternalProfiles` mutation. Fields are nullable
29
+ * because the server returns `null` for any external link the talent has
30
+ * not set.
31
+ *
32
+ * `twitter` was added in #345 to close a write-only-echo gap — the input
33
+ * accepts `twitter` (see {@link ExternalProfilesUpdate}) but the mutation
34
+ * response previously dropped it, so callers could SET a twitter URL but
35
+ * not VERIFY it from the response alone (had to issue a follow-up
36
+ * {@link show} call). Adding it to the selection set + this interface
37
+ * makes the response self-contained for round-trip verification.
38
+ */
39
+ export interface UpdateExternalProfilesResult {
40
+ profile: {
41
+ id: string;
42
+ updatedByTalentAt: string | null;
43
+ linkedin: string | null;
44
+ github: string | null;
45
+ website: string | null;
46
+ twitter: string | null;
47
+ behance: string | null;
48
+ dribbble: string | null;
49
+ };
50
+ notice: string | null;
51
+ }
52
+ /**
53
+ * Update external profile URLs (linkedin / github / website / twitter /
54
+ * behance / dribbble). Each field is optional; the caller must pass at
55
+ * least one. Unknown / extraneous fields are rejected at compile time by
56
+ * the {@link ExternalProfilesUpdate} type.
57
+ *
58
+ * Wire shape: `{ input: { profileId, profile: { …urls } } }`. Validated
59
+ * 2026-05-17 via the round-trip E2E at
60
+ * `packages/e2e/src/42-profile-external-show.e2e.test.ts`. The
61
+ * previously-inferred `externalProfiles:` wrapper (per Pattern 1 in
62
+ * `research/notes/10-mutation-input-patterns.md`) was incorrect — same
63
+ * exception class as `UPDATE_BASIC_INFO` and `updateTimeZoneWorkingHours`,
64
+ * both of which use `profile:` because they write fields directly on the
65
+ * Profile entity.
66
+ *
67
+ * Errors:
68
+ * - `ProfileError("VALIDATION_ERROR")` when no fields are supplied
69
+ * - `ProfileError("USER_ERROR")` when the server rejects an individual
70
+ * field (e.g. malformed URL)
71
+ * - `AuthRevokedError`, `Cf403Error`, other `TtctlError` subclasses
72
+ * propagate verbatim
73
+ */
74
+ export declare function update(token: string, changes: ExternalProfilesUpdate): Promise<UpdateExternalProfilesResult>;
75
+ /**
76
+ * Boolean trio comprising the talent's onboarding-readiness self-attestation.
77
+ * All three are exposed unchanged (no display-name remapping) because each
78
+ * field name is already self-documenting.
79
+ *
80
+ * Returned by {@link customRequirementsShow}. Callers willing to accept the
81
+ * "missing fields default to current state" semantic of
82
+ * {@link customRequirementsSet} pass a {@link CustomRequirementsUpdate} (a
83
+ * partial of this trio).
84
+ */
85
+ export interface CustomRequirements {
86
+ backgroundCheck: boolean | null;
87
+ drugTest: boolean | null;
88
+ timeTrackingTools: boolean | null;
89
+ }
90
+ /**
91
+ * Read the three onboarding-readiness toggles for the signed-in user.
92
+ *
93
+ * Errors: `AuthRevokedError`, `ProfileError(GRAPHQL_ERROR)`,
94
+ * `ProfileError(NETWORK_ERROR)`, `Cf403Error` (and other `TtctlError`
95
+ * subclasses) propagate verbatim.
96
+ */
97
+ export declare function customRequirementsShow(token: string): Promise<CustomRequirements>;
98
+ /**
99
+ * Partial-update shape for {@link customRequirementsSet}. Each missing
100
+ * field is filled from the current server state before the mutation is
101
+ * dispatched (the underlying `updateCustomRequirements` mutation sends ALL
102
+ * three booleans per call, no PATCH semantics — see the capture notes
103
+ * referenced in the module comment).
104
+ */
105
+ export interface CustomRequirementsUpdate {
106
+ backgroundCheck?: boolean;
107
+ drugTest?: boolean;
108
+ timeTrackingTools?: boolean;
109
+ }
110
+ /**
111
+ * Server-confirmed result of {@link customRequirementsSet}. Mirrors the
112
+ * response selection of the captured mutation document.
113
+ */
114
+ export interface CustomRequirementsSetResult {
115
+ profile: {
116
+ id: string;
117
+ updatedByTalentAt: string | null;
118
+ customRequirements: CustomRequirements;
119
+ };
120
+ notice: string | null;
121
+ }
122
+ /**
123
+ * Toggle one or more of the three onboarding-readiness booleans
124
+ * (`backgroundCheck`, `drugTest`, `timeTrackingTools`). Caller-omitted
125
+ * fields are pre-filled from the current server state via
126
+ * {@link customRequirementsShow} before the mutation is sent (the underlying
127
+ * `updateCustomRequirements` mutation has no diff/PATCH semantics — every
128
+ * call resubmits all three booleans).
129
+ *
130
+ * Pre-fill of missing fields treats `null` (server has no value yet) as
131
+ * `false` for the post-merge wire shape, since the mutation input is
132
+ * `Boolean!` and rejects `null`.
133
+ *
134
+ * Errors: same taxonomy as {@link update}.
135
+ */
136
+ export declare function customRequirementsSet(token: string, changes: CustomRequirementsUpdate): Promise<CustomRequirementsSetResult>;
137
+ /**
138
+ * The flat boolean set returned by `getProfileReadiness`. Each field
139
+ * corresponds to a section completion check the platform runs before a
140
+ * talent can submit-for-review. Schema types each as `Unknown` (the
141
+ * SDL reflects what we've inferred, not strongly typed) so we coerce
142
+ * defensively at the boundary.
143
+ */
144
+ export interface ProfileReadiness {
145
+ isPhotoResolutionSatisfied: boolean | null;
146
+ isBasicInfoSatisfied: boolean | null;
147
+ isCertificationsSatisfied: boolean | null;
148
+ isEmploymentsCountSatisfied: boolean | null;
149
+ isEmploymentConnectionsSatisfied: boolean | null;
150
+ isSkillValidationsSatisfied: boolean | null;
151
+ isPortfolioItemsCountSatisfied: boolean | null;
152
+ isPortfolioItemConnectionsSatisfied: boolean | null;
153
+ isWorkingHoursSatisfied: boolean | null;
154
+ /**
155
+ * `submitAvailable` rolls up the per-section signals into a single
156
+ * "ready to submit?" boolean. Hoisted alongside the per-section
157
+ * booleans because it's the value the user usually wants at a glance.
158
+ */
159
+ submitAvailable: boolean | null;
160
+ /** ISO timestamp of last talent-side edit, returned by the same query. */
161
+ updatedByTalentAt: string | null;
162
+ }
163
+ /**
164
+ * Read the per-section profile-readiness booleans plus the rolled-up
165
+ * `submitAvailable` flag and the last-edit timestamp.
166
+ *
167
+ * Errors: same taxonomy as {@link customRequirementsShow}.
168
+ */
169
+ export declare function readiness(token: string): Promise<ProfileReadiness>;
170
+ /**
171
+ * A single recommendation item. The platform returns recommendations as a
172
+ * union over multiple concrete types
173
+ * (`EmploymentsCountRecommendation`, `PortfolioItemsCountRecommendation`,
174
+ * `EmploymentsMissingDataRecommendation`, etc.). We surface the discriminator
175
+ * `type` plus the entire payload as a generic `payload` map rather than
176
+ * typing each variant — the per-variant fields are descriptive UX hints, not
177
+ * enforced data, and the schema types most fields as `Unknown` anyway.
178
+ * CLI/MCP formatters render `type` and a stringified payload preview;
179
+ * consumers who need richer typing can extend later.
180
+ */
181
+ export interface ProfileRecommendation {
182
+ type: string;
183
+ payload: Record<string, unknown>;
184
+ }
185
+ /**
186
+ * Read the list of profile recommendations. Each recommendation has a
187
+ * discriminator `type` and a small payload of variant-specific fields.
188
+ *
189
+ * Recommendations that involve nested entity lists (e.g.
190
+ * `EmploymentsMissingDataRecommendation` with a `nodes` array of employments)
191
+ * are intentionally trimmed at the GraphQL level — at v0 the CLI/MCP only
192
+ * surfaces the recommendation `type` and any scalar variant fields. Drilling
193
+ * into nested entity lists requires fetching the underlying domain
194
+ * (employments, portfolio items, skills) directly, which is outside the
195
+ * recommendations leaf's scope.
196
+ */
197
+ export declare function recommendations(token: string): Promise<ProfileRecommendation[]>;
198
+ /**
199
+ * Combined view of the advanced-profile-wizard state. Issue #76 spec collapses
200
+ * `getAdvancedProfileData` and `GetAdvancedProfileWizardStatus` into a single
201
+ * read leaf — but `getAdvancedProfileData` already includes
202
+ * `advancedProfileWizardStatus` in its selection, so a single query suffices.
203
+ *
204
+ * `travelVisas` is a list of the talent's submitted travel visas; we surface
205
+ * a count + the IDs at v0 to keep the payload bounded. Full visa CRUD lives
206
+ * in the `visas` sub-domain (separate wave).
207
+ */
208
+ export interface AdvancedProfileSnapshot {
209
+ /**
210
+ * Wizard-status discriminator. Schema types as `Unknown`; we surface
211
+ * whatever the server returns without introspection.
212
+ */
213
+ wizardStatus: string | null;
214
+ travelVisaCount: number;
215
+ travelVisaIds: string[];
216
+ }
217
+ /**
218
+ * Read the advanced-profile-wizard status plus a summary of the talent's
219
+ * travel-visa list. This is the read-side combined view of
220
+ * `getAdvancedProfileData` — the spec also references
221
+ * `GetAdvancedProfileWizardStatus` as a separate operation, but
222
+ * `getAdvancedProfileData` already returns `advancedProfileWizardStatus`, so
223
+ * one query is sufficient.
224
+ *
225
+ * The full TravelVisa fragment is intentionally trimmed to `id` only. Visa
226
+ * CRUD operations live in the `visas` sub-domain — surfacing the rich shape
227
+ * here would create a partial duplication that drifts as the visas
228
+ * sub-domain evolves.
229
+ */
230
+ export declare function advancedWizardShow(token: string): Promise<AdvancedProfileSnapshot>;
231
+ /**
232
+ * Server-side state of the talent's external profile URLs. This is the
233
+ * **read** counterpart of {@link update} — the primary inspection path for
234
+ * the stored linkedin / github / website / twitter / behance / dribbble
235
+ * values.
236
+ *
237
+ * Prior to this leaf (issue #343) the `external` sub-domain shipped six
238
+ * service functions but **none** was a primary read for the stored URL
239
+ * state: `advancedWizardShow` intentionally trims its selection set to
240
+ * `advancedProfileWizardStatus + travelVisas` (see its doc comment), and
241
+ * `update`'s response is POST-state only (write-disguised-as-read). This
242
+ * type closes that asymmetry.
243
+ *
244
+ * The shape mirrors what {@link ExternalProfilesUpdate} **accepts** (all
245
+ * six URL fields), NOT what {@link UpdateExternalProfilesResult} echoes —
246
+ * the latter drops `twitter` (a separate companion gap on the mutation's
247
+ * response selection). `show` selects `twitter` directly from the
248
+ * `Profile` type, so it returns full six-field parity. Every URL is
249
+ * nullable because the server returns `null` for any link the talent has
250
+ * not set; `id` / `updatedByTalentAt` mirror the
251
+ * {@link UpdateExternalProfilesResult.profile} envelope fields.
252
+ */
253
+ export interface ExternalProfiles {
254
+ id: string;
255
+ updatedByTalentAt: string | null;
256
+ linkedin: string | null;
257
+ github: string | null;
258
+ website: string | null;
259
+ twitter: string | null;
260
+ behance: string | null;
261
+ dribbble: string | null;
262
+ }
263
+ /**
264
+ * Read the talent's stored external profile URLs (linkedin / github /
265
+ * website / twitter / behance / dribbble) plus `id` and the last
266
+ * talent-side edit timestamp.
267
+ *
268
+ * This is the primary read for the external-URL state — use it instead of
269
+ * a no-op {@link update} (which is a write-disguised-as-read and risks an
270
+ * unintended write if the response is misinterpreted).
271
+ *
272
+ * Errors: `AuthRevokedError`, `ProfileError(GRAPHQL_ERROR)`,
273
+ * `ProfileError(NETWORK_ERROR)`, `ProfileError(NO_VIEWER)`, `Cf403Error`
274
+ * (and other `TtctlError` subclasses) propagate verbatim — same taxonomy
275
+ * as {@link customRequirementsShow} / {@link readiness}.
276
+ */
277
+ export declare function show(token: string): Promise<ExternalProfiles>;
278
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/services/profile/external/index.ts"],"names":[],"mappings":"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"}