@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 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/services/profile/basic/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `Certification` row as ttctl exposes it. Mirrors the read-side
|
|
3
|
+
* `Certification` GraphQL fragment (see
|
|
4
|
+
* `research/graphql/talent_profile/fragments/Certification.graphql`)
|
|
5
|
+
* trimmed to the fields ttctl currently surfaces. Validity dates are split
|
|
6
|
+
* across `validFromMonth` / `validFromYear` (always set) and
|
|
7
|
+
* `validToMonth` / `validToYear` (nullable for non-expiring certificates).
|
|
8
|
+
*/
|
|
9
|
+
export interface Certification {
|
|
10
|
+
id: string;
|
|
11
|
+
certificate: string;
|
|
12
|
+
institution: string;
|
|
13
|
+
link: string | null;
|
|
14
|
+
number: string | null;
|
|
15
|
+
validFromMonth: number | null;
|
|
16
|
+
validFromYear: number | null;
|
|
17
|
+
validToMonth: number | null;
|
|
18
|
+
validToYear: number | null;
|
|
19
|
+
highlight: boolean;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Fields editable on a Certification row. Mirrors `CertificationInput` per
|
|
23
|
+
* the inferred shape in `research/notes/10-mutation-input-patterns.md`
|
|
24
|
+
* (Pattern 1) and the live capture in
|
|
25
|
+
* `research/captures/web/inputs/UpdateCertificationInput.json`.
|
|
26
|
+
*/
|
|
27
|
+
export interface CertificationFields {
|
|
28
|
+
certificate?: string;
|
|
29
|
+
institution?: string;
|
|
30
|
+
link?: string;
|
|
31
|
+
number?: string;
|
|
32
|
+
validFromMonth?: number;
|
|
33
|
+
validFromYear?: number;
|
|
34
|
+
validToMonth?: number | null;
|
|
35
|
+
validToYear?: number | null;
|
|
36
|
+
highlight?: boolean;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* List the signed-in user's certification rows.
|
|
40
|
+
*
|
|
41
|
+
* Issues `GET_CERTIFICATION` against the talent-profile surface; keyed by
|
|
42
|
+
* the user's `profileId`.
|
|
43
|
+
*/
|
|
44
|
+
export declare function list(token: string): Promise<Certification[]>;
|
|
45
|
+
/**
|
|
46
|
+
* Look up a single certification row by id. Throws `VALIDATION_ERROR`
|
|
47
|
+
* when no matching row exists.
|
|
48
|
+
*/
|
|
49
|
+
export declare function show(token: string, id: string): Promise<Certification>;
|
|
50
|
+
/**
|
|
51
|
+
* Create a new certification row. Wire format per Pattern 2:
|
|
52
|
+
* `{ profileId, certification: CertificationInput }`. `certificate` and
|
|
53
|
+
* `institution` are required.
|
|
54
|
+
*/
|
|
55
|
+
export declare function add(token: string, fields: CertificationFields): Promise<Certification>;
|
|
56
|
+
/**
|
|
57
|
+
* Update an existing certification row. Wire format per Pattern 1:
|
|
58
|
+
* `{ certificationId, certification: CertificationInput }`.
|
|
59
|
+
*/
|
|
60
|
+
export declare function update(token: string, id: string, fields: CertificationFields): Promise<Certification>;
|
|
61
|
+
/**
|
|
62
|
+
* Remove a certification row. Wire format per Pattern 3:
|
|
63
|
+
* `{ certificationId }`.
|
|
64
|
+
*/
|
|
65
|
+
export declare function remove(token: string, id: string): Promise<string>;
|
|
66
|
+
/**
|
|
67
|
+
* Toggle the `highlight` flag on a certification row. Wire format per
|
|
68
|
+
* Pattern 4: `{ certificationId, highlight: Boolean }`.
|
|
69
|
+
*/
|
|
70
|
+
export declare function highlight(token: string, id: string, value?: boolean): Promise<{
|
|
71
|
+
id: string;
|
|
72
|
+
highlight: boolean;
|
|
73
|
+
}>;
|
|
74
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/services/profile/certifications/index.ts"],"names":[],"mappings":"AAOA;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAsFD;;;;;GAKG;AACH,wBAAsB,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAGlE;AAqBD;;;GAGG;AACH,wBAAsB,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAO5E;AAED;;;;GAIG;AACH,wBAAsB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,aAAa,CAAC,CAwB5F;AAED;;;GAGG;AACH,wBAAsB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,aAAa,CAAC,CAsB3G;AAED;;;GAGG;AACH,wBAAsB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAUvE;AAED;;;GAGG;AACH,wBAAsB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,UAAO,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC,CAiBpH"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
// SPDX-License-Identifier: AGPL-3.0-only
|
|
2
|
+
// Copyright (C) 2026 Oleksii PELYKH
|
|
3
|
+
import { ProfileError } from "../basic/index.js";
|
|
4
|
+
import { applyUserErrorsAndSuccess, callTalentProfile, ensureNoTopLevelErrors, extractProfileId } from "../shared.js";
|
|
5
|
+
const CERTIFICATION_FRAGMENT = `fragment Certification on Certification {
|
|
6
|
+
id
|
|
7
|
+
certificate
|
|
8
|
+
institution
|
|
9
|
+
link
|
|
10
|
+
number
|
|
11
|
+
validFromMonth
|
|
12
|
+
validFromYear
|
|
13
|
+
validToMonth
|
|
14
|
+
validToYear
|
|
15
|
+
highlight
|
|
16
|
+
}`;
|
|
17
|
+
const GET_CERTIFICATION_QUERY = `query GET_CERTIFICATION($profileId: ID!) {
|
|
18
|
+
profile(id: $profileId) {
|
|
19
|
+
id
|
|
20
|
+
certifications { nodes { ...Certification } }
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
${CERTIFICATION_FRAGMENT}`;
|
|
24
|
+
const CREATE_CERTIFICATION_MUTATION = `mutation CREATE_CERTIFICATION($input: CreateCertificationInput!) {
|
|
25
|
+
createCertification(input: $input) {
|
|
26
|
+
success
|
|
27
|
+
notice
|
|
28
|
+
errors { code key message }
|
|
29
|
+
profile { id certifications { nodes { ...Certification } } }
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
${CERTIFICATION_FRAGMENT}`;
|
|
33
|
+
const UPDATE_CERTIFICATION_MUTATION = `mutation UPDATE_CERTIFICATION($input: UpdateCertificationInput!) {
|
|
34
|
+
updateCertification(input: $input) {
|
|
35
|
+
success
|
|
36
|
+
notice
|
|
37
|
+
errors { code key message }
|
|
38
|
+
profile { id certifications { nodes { ...Certification } } }
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
${CERTIFICATION_FRAGMENT}`;
|
|
42
|
+
const REMOVE_CERTIFICATION_MUTATION = `mutation REMOVE_CERTIFICATION($input: RemoveCertificationInput!) {
|
|
43
|
+
removeCertification(input: $input) {
|
|
44
|
+
success
|
|
45
|
+
notice
|
|
46
|
+
errors { code key message }
|
|
47
|
+
profile { id certifications { nodes { ...Certification } } }
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
${CERTIFICATION_FRAGMENT}`;
|
|
51
|
+
const HIGHLIGHT_CERTIFICATION_MUTATION = `mutation highlightCertification($id: ID!, $highlight: Boolean!) {
|
|
52
|
+
highlightCertification(input: { certificationId: $id, highlight: $highlight }) {
|
|
53
|
+
success
|
|
54
|
+
notice
|
|
55
|
+
errors { code key message }
|
|
56
|
+
certification { id highlight }
|
|
57
|
+
}
|
|
58
|
+
}`;
|
|
59
|
+
/**
|
|
60
|
+
* List the signed-in user's certification rows.
|
|
61
|
+
*
|
|
62
|
+
* Issues `GET_CERTIFICATION` against the talent-profile surface; keyed by
|
|
63
|
+
* the user's `profileId`.
|
|
64
|
+
*/
|
|
65
|
+
export async function list(token) {
|
|
66
|
+
const profileId = await extractProfileId(token);
|
|
67
|
+
return listByProfileId(token, profileId);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Internal helper: list certification rows when the caller has already
|
|
71
|
+
* resolved `profileId` (used by `add()` to avoid double-round-tripping).
|
|
72
|
+
*/
|
|
73
|
+
async function listByProfileId(token, profileId) {
|
|
74
|
+
const res = await callTalentProfile(token, "GET_CERTIFICATION", GET_CERTIFICATION_QUERY, { profileId }, "certifications list");
|
|
75
|
+
const body = res.body;
|
|
76
|
+
ensureNoTopLevelErrors(body, "certifications list");
|
|
77
|
+
const profile = body?.data?.profile;
|
|
78
|
+
if (!profile)
|
|
79
|
+
throw new ProfileError("UNKNOWN", "certifications list response had no `data.profile` field");
|
|
80
|
+
return profile.certifications.nodes.filter((n) => n !== null);
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Look up a single certification row by id. Throws `VALIDATION_ERROR`
|
|
84
|
+
* when no matching row exists.
|
|
85
|
+
*/
|
|
86
|
+
export async function show(token, id) {
|
|
87
|
+
const all = await list(token);
|
|
88
|
+
const found = all.find((c) => c.id === id);
|
|
89
|
+
if (!found) {
|
|
90
|
+
throw new ProfileError("VALIDATION_ERROR", `Certification with id "${id}" not found on this profile.`);
|
|
91
|
+
}
|
|
92
|
+
return found;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Create a new certification row. Wire format per Pattern 2:
|
|
96
|
+
* `{ profileId, certification: CertificationInput }`. `certificate` and
|
|
97
|
+
* `institution` are required.
|
|
98
|
+
*/
|
|
99
|
+
export async function add(token, fields) {
|
|
100
|
+
if (!fields.certificate || !fields.institution) {
|
|
101
|
+
throw new ProfileError("VALIDATION_ERROR", "certifications add requires --name (certificate) and --issuer (institution).");
|
|
102
|
+
}
|
|
103
|
+
const profileId = await extractProfileId(token);
|
|
104
|
+
const before = await listByProfileId(token, profileId);
|
|
105
|
+
const beforeIds = new Set(before.map((c) => c.id));
|
|
106
|
+
const res = await callTalentProfile(token, "CREATE_CERTIFICATION", CREATE_CERTIFICATION_MUTATION, { input: { profileId, certification: fields } }, "certifications add");
|
|
107
|
+
const payload = unwrapMutation(res, "createCertification", "certifications add");
|
|
108
|
+
const after = payload.profile?.certifications.nodes.filter((n) => n !== null) ?? [];
|
|
109
|
+
const created = after.find((c) => !beforeIds.has(c.id));
|
|
110
|
+
if (!created) {
|
|
111
|
+
throw new ProfileError("UNKNOWN", "certifications add returned success but no new row was found in the response.");
|
|
112
|
+
}
|
|
113
|
+
return created;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Update an existing certification row. Wire format per Pattern 1:
|
|
117
|
+
* `{ certificationId, certification: CertificationInput }`.
|
|
118
|
+
*/
|
|
119
|
+
export async function update(token, id, fields) {
|
|
120
|
+
if (Object.keys(fields).length === 0) {
|
|
121
|
+
throw new ProfileError("VALIDATION_ERROR", "certifications update requires at least one field flag.");
|
|
122
|
+
}
|
|
123
|
+
const res = await callTalentProfile(token, "UPDATE_CERTIFICATION", UPDATE_CERTIFICATION_MUTATION, { input: { certificationId: id, certification: fields } }, "certifications update");
|
|
124
|
+
const payload = unwrapMutation(res, "updateCertification", "certifications update");
|
|
125
|
+
const updated = payload.profile?.certifications.nodes
|
|
126
|
+
.filter((n) => n !== null)
|
|
127
|
+
.find((c) => c.id === id);
|
|
128
|
+
if (!updated) {
|
|
129
|
+
throw new ProfileError("UNKNOWN", `certifications update returned success but row "${id}" was not in the response.`);
|
|
130
|
+
}
|
|
131
|
+
return updated;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Remove a certification row. Wire format per Pattern 3:
|
|
135
|
+
* `{ certificationId }`.
|
|
136
|
+
*/
|
|
137
|
+
export async function remove(token, id) {
|
|
138
|
+
const res = await callTalentProfile(token, "REMOVE_CERTIFICATION", REMOVE_CERTIFICATION_MUTATION, { input: { certificationId: id } }, "certifications remove");
|
|
139
|
+
unwrapMutation(res, "removeCertification", "certifications remove");
|
|
140
|
+
return id;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Toggle the `highlight` flag on a certification row. Wire format per
|
|
144
|
+
* Pattern 4: `{ certificationId, highlight: Boolean }`.
|
|
145
|
+
*/
|
|
146
|
+
export async function highlight(token, id, value = true) {
|
|
147
|
+
const res = await callTalentProfile(token, "highlightCertification", HIGHLIGHT_CERTIFICATION_MUTATION, { id, highlight: value }, "certifications highlight");
|
|
148
|
+
const body = res.body;
|
|
149
|
+
ensureNoTopLevelErrors(body, "certifications highlight");
|
|
150
|
+
const payload = body?.data?.highlightCertification;
|
|
151
|
+
if (!payload)
|
|
152
|
+
throw new ProfileError("UNKNOWN", "certifications highlight response had no payload.");
|
|
153
|
+
applyUserErrorsAndSuccess(payload, "certifications highlight");
|
|
154
|
+
if (!payload.certification) {
|
|
155
|
+
throw new ProfileError("UNKNOWN", "certifications highlight response had no `certification` field.");
|
|
156
|
+
}
|
|
157
|
+
return payload.certification;
|
|
158
|
+
}
|
|
159
|
+
function unwrapMutation(res, payloadKey, verb) {
|
|
160
|
+
const body = res.body;
|
|
161
|
+
ensureNoTopLevelErrors(body, verb);
|
|
162
|
+
const payload = body?.data?.[payloadKey];
|
|
163
|
+
if (!payload) {
|
|
164
|
+
throw new ProfileError("UNKNOWN", `${verb} response had no \`data.${payloadKey}\` field`);
|
|
165
|
+
}
|
|
166
|
+
applyUserErrorsAndSuccess(payload, verb);
|
|
167
|
+
return payload;
|
|
168
|
+
}
|
|
169
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/services/profile/certifications/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `Education` row as ttctl exposes it. Mirrors the read-side
|
|
3
|
+
* `Education` GraphQL fragment (see
|
|
4
|
+
* `research/graphql/talent_profile/fragments/Education.graphql`) trimmed to
|
|
5
|
+
* the fields ttctl currently surfaces. Years are integers (`yearFrom`,
|
|
6
|
+
* `yearTo`) per the empirical capture
|
|
7
|
+
* `research/captures/web/inputs/UpdateEducationInput.json`.
|
|
8
|
+
*/
|
|
9
|
+
export interface Education {
|
|
10
|
+
id: string;
|
|
11
|
+
institution: string;
|
|
12
|
+
degree: string;
|
|
13
|
+
fieldOfStudy: string | null;
|
|
14
|
+
location: string | null;
|
|
15
|
+
title: string | null;
|
|
16
|
+
yearFrom: number | null;
|
|
17
|
+
yearTo: number | null;
|
|
18
|
+
highlight: boolean;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Fields editable on an Education row. All optional — `update()` rejects an
|
|
22
|
+
* empty object. Mirrors `EducationInput` per the inferred shape in
|
|
23
|
+
* `research/notes/10-mutation-input-patterns.md` (Pattern 1) and the live
|
|
24
|
+
* capture in `research/captures/web/inputs/UpdateEducationInput.json`.
|
|
25
|
+
*/
|
|
26
|
+
export interface EducationFields {
|
|
27
|
+
institution?: string;
|
|
28
|
+
degree?: string;
|
|
29
|
+
fieldOfStudy?: string;
|
|
30
|
+
location?: string;
|
|
31
|
+
title?: string;
|
|
32
|
+
yearFrom?: number;
|
|
33
|
+
yearTo?: number;
|
|
34
|
+
highlight?: boolean;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* List the signed-in user's education rows.
|
|
38
|
+
*
|
|
39
|
+
* Issues `GET_EDUCATION` against the Cloudflare-protected talent-profile
|
|
40
|
+
* surface. The query is keyed by the user's `profileId` — fetched lazily
|
|
41
|
+
* via `extractProfileId()`.
|
|
42
|
+
*/
|
|
43
|
+
export declare function list(token: string): Promise<Education[]>;
|
|
44
|
+
/**
|
|
45
|
+
* Look up a single education row by id. Convenience wrapper around
|
|
46
|
+
* {@link list} — the GraphQL query has no per-id selector. Throws
|
|
47
|
+
* `ProfileError("VALIDATION_ERROR")` when no matching row is found.
|
|
48
|
+
*/
|
|
49
|
+
export declare function show(token: string, id: string): Promise<Education>;
|
|
50
|
+
/**
|
|
51
|
+
* Create a new education row. Wire format per Pattern 2: `{ profileId,
|
|
52
|
+
* education: EducationInput }`.
|
|
53
|
+
*/
|
|
54
|
+
export declare function add(token: string, fields: EducationFields): Promise<Education>;
|
|
55
|
+
/**
|
|
56
|
+
* Update an existing education row. Wire format per Pattern 1:
|
|
57
|
+
* `{ educationId, education: EducationInput }`.
|
|
58
|
+
*/
|
|
59
|
+
export declare function update(token: string, id: string, fields: EducationFields): Promise<Education>;
|
|
60
|
+
/**
|
|
61
|
+
* Remove an education row. Wire format per Pattern 3: `{ educationId }`.
|
|
62
|
+
*/
|
|
63
|
+
export declare function remove(token: string, id: string): Promise<string>;
|
|
64
|
+
/**
|
|
65
|
+
* Toggle the `highlight` flag on an education row. Wire format per
|
|
66
|
+
* Pattern 4: `{ educationId, highlight: Boolean }`. Default `value` is
|
|
67
|
+
* `true`; pass `false` to un-highlight.
|
|
68
|
+
*/
|
|
69
|
+
export declare function highlight(token: string, id: string, value?: boolean): Promise<{
|
|
70
|
+
id: string;
|
|
71
|
+
highlight: boolean;
|
|
72
|
+
}>;
|
|
73
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/services/profile/education/index.ts"],"names":[],"mappings":"AAOA;;;;;;;GAOG;AACH,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAqFD;;;;;;GAMG;AACH,wBAAsB,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAG9D;AAgBD;;;;GAIG;AACH,wBAAsB,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAOxE;AAED;;;GAGG;AACH,wBAAsB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC,CAqBpF;AAED;;;GAGG;AACH,wBAAsB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC,CAiBnG;AAED;;GAEG;AACH,wBAAsB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAUvE;AAED;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,UAAO,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC,CAiBpH"}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
// SPDX-License-Identifier: AGPL-3.0-only
|
|
2
|
+
// Copyright (C) 2026 Oleksii PELYKH
|
|
3
|
+
import { ProfileError } from "../basic/index.js";
|
|
4
|
+
import { applyUserErrorsAndSuccess, callTalentProfile, ensureNoTopLevelErrors, extractProfileId } from "../shared.js";
|
|
5
|
+
const EDUCATION_FRAGMENT = `fragment Education on Education {
|
|
6
|
+
id
|
|
7
|
+
institution
|
|
8
|
+
degree
|
|
9
|
+
fieldOfStudy
|
|
10
|
+
location
|
|
11
|
+
title
|
|
12
|
+
yearFrom
|
|
13
|
+
yearTo
|
|
14
|
+
highlight
|
|
15
|
+
}`;
|
|
16
|
+
const GET_EDUCATION_QUERY = `query GET_EDUCATION($profileId: ID!) {
|
|
17
|
+
profile(id: $profileId) {
|
|
18
|
+
id
|
|
19
|
+
educations { nodes { ...Education } }
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
${EDUCATION_FRAGMENT}`;
|
|
23
|
+
const CREATE_EDUCATION_MUTATION = `mutation CREATE_EDUCATION($input: CreateEducationInput!) {
|
|
24
|
+
createEducation(input: $input) {
|
|
25
|
+
success
|
|
26
|
+
notice
|
|
27
|
+
errors { code key message }
|
|
28
|
+
profile { id educations { nodes { ...Education } } }
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
${EDUCATION_FRAGMENT}`;
|
|
32
|
+
const UPDATE_EDUCATION_MUTATION = `mutation UPDATE_EDUCATION($input: UpdateEducationInput!) {
|
|
33
|
+
updateEducation(input: $input) {
|
|
34
|
+
success
|
|
35
|
+
notice
|
|
36
|
+
errors { code key message }
|
|
37
|
+
profile { id educations { nodes { ...Education } } }
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
${EDUCATION_FRAGMENT}`;
|
|
41
|
+
const REMOVE_EDUCATION_MUTATION = `mutation REMOVE_EDUCATION($input: RemoveEducationInput!) {
|
|
42
|
+
removeEducation(input: $input) {
|
|
43
|
+
success
|
|
44
|
+
notice
|
|
45
|
+
errors { code key message }
|
|
46
|
+
profile { id educations { nodes { ...Education } } }
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
${EDUCATION_FRAGMENT}`;
|
|
50
|
+
const HIGHLIGHT_EDUCATION_MUTATION = `mutation highlightEducation($id: ID!, $highlight: Boolean!) {
|
|
51
|
+
highlightEducation(input: { educationId: $id, highlight: $highlight }) {
|
|
52
|
+
success
|
|
53
|
+
notice
|
|
54
|
+
errors { code key message }
|
|
55
|
+
education { id highlight }
|
|
56
|
+
}
|
|
57
|
+
}`;
|
|
58
|
+
/**
|
|
59
|
+
* List the signed-in user's education rows.
|
|
60
|
+
*
|
|
61
|
+
* Issues `GET_EDUCATION` against the Cloudflare-protected talent-profile
|
|
62
|
+
* surface. The query is keyed by the user's `profileId` — fetched lazily
|
|
63
|
+
* via `extractProfileId()`.
|
|
64
|
+
*/
|
|
65
|
+
export async function list(token) {
|
|
66
|
+
const profileId = await extractProfileId(token);
|
|
67
|
+
return listByProfileId(token, profileId);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Internal helper: list education rows when the caller has already
|
|
71
|
+
* resolved `profileId` (e.g. inside `add()` which extracts it once
|
|
72
|
+
* up-front to avoid double-round-tripping the gateway).
|
|
73
|
+
*/
|
|
74
|
+
async function listByProfileId(token, profileId) {
|
|
75
|
+
const res = await callTalentProfile(token, "GET_EDUCATION", GET_EDUCATION_QUERY, { profileId }, "education list");
|
|
76
|
+
const body = res.body;
|
|
77
|
+
ensureNoTopLevelErrors(body, "education list");
|
|
78
|
+
const profile = body?.data?.profile;
|
|
79
|
+
if (!profile)
|
|
80
|
+
throw new ProfileError("UNKNOWN", "education list response had no `data.profile` field");
|
|
81
|
+
return profile.educations.nodes.filter((n) => n !== null);
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Look up a single education row by id. Convenience wrapper around
|
|
85
|
+
* {@link list} — the GraphQL query has no per-id selector. Throws
|
|
86
|
+
* `ProfileError("VALIDATION_ERROR")` when no matching row is found.
|
|
87
|
+
*/
|
|
88
|
+
export async function show(token, id) {
|
|
89
|
+
const all = await list(token);
|
|
90
|
+
const found = all.find((e) => e.id === id);
|
|
91
|
+
if (!found) {
|
|
92
|
+
throw new ProfileError("VALIDATION_ERROR", `Education with id "${id}" not found on this profile.`);
|
|
93
|
+
}
|
|
94
|
+
return found;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Create a new education row. Wire format per Pattern 2: `{ profileId,
|
|
98
|
+
* education: EducationInput }`.
|
|
99
|
+
*/
|
|
100
|
+
export async function add(token, fields) {
|
|
101
|
+
if (!fields.institution || !fields.degree) {
|
|
102
|
+
throw new ProfileError("VALIDATION_ERROR", "education add requires --institution and --degree.");
|
|
103
|
+
}
|
|
104
|
+
const profileId = await extractProfileId(token);
|
|
105
|
+
const before = await listByProfileId(token, profileId);
|
|
106
|
+
const beforeIds = new Set(before.map((e) => e.id));
|
|
107
|
+
const res = await callTalentProfile(token, "CREATE_EDUCATION", CREATE_EDUCATION_MUTATION, { input: { profileId, education: fields } }, "education add");
|
|
108
|
+
const payload = unwrapMutation(res, "createEducation", "education add");
|
|
109
|
+
const after = payload.profile?.educations.nodes.filter((n) => n !== null) ?? [];
|
|
110
|
+
const created = after.find((e) => !beforeIds.has(e.id));
|
|
111
|
+
if (!created) {
|
|
112
|
+
throw new ProfileError("UNKNOWN", "education add returned success but no new row was found in the response.");
|
|
113
|
+
}
|
|
114
|
+
return created;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Update an existing education row. Wire format per Pattern 1:
|
|
118
|
+
* `{ educationId, education: EducationInput }`.
|
|
119
|
+
*/
|
|
120
|
+
export async function update(token, id, fields) {
|
|
121
|
+
if (Object.keys(fields).length === 0) {
|
|
122
|
+
throw new ProfileError("VALIDATION_ERROR", "education update requires at least one field flag.");
|
|
123
|
+
}
|
|
124
|
+
const res = await callTalentProfile(token, "UPDATE_EDUCATION", UPDATE_EDUCATION_MUTATION, { input: { educationId: id, education: fields } }, "education update");
|
|
125
|
+
const payload = unwrapMutation(res, "updateEducation", "education update");
|
|
126
|
+
const updated = payload.profile?.educations.nodes.filter((n) => n !== null).find((e) => e.id === id);
|
|
127
|
+
if (!updated) {
|
|
128
|
+
throw new ProfileError("UNKNOWN", `education update returned success but row "${id}" was not in the response.`);
|
|
129
|
+
}
|
|
130
|
+
return updated;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Remove an education row. Wire format per Pattern 3: `{ educationId }`.
|
|
134
|
+
*/
|
|
135
|
+
export async function remove(token, id) {
|
|
136
|
+
const res = await callTalentProfile(token, "REMOVE_EDUCATION", REMOVE_EDUCATION_MUTATION, { input: { educationId: id } }, "education remove");
|
|
137
|
+
unwrapMutation(res, "removeEducation", "education remove");
|
|
138
|
+
return id;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Toggle the `highlight` flag on an education row. Wire format per
|
|
142
|
+
* Pattern 4: `{ educationId, highlight: Boolean }`. Default `value` is
|
|
143
|
+
* `true`; pass `false` to un-highlight.
|
|
144
|
+
*/
|
|
145
|
+
export async function highlight(token, id, value = true) {
|
|
146
|
+
const res = await callTalentProfile(token, "highlightEducation", HIGHLIGHT_EDUCATION_MUTATION, { id, highlight: value }, "education highlight");
|
|
147
|
+
const body = res.body;
|
|
148
|
+
ensureNoTopLevelErrors(body, "education highlight");
|
|
149
|
+
const payload = body?.data?.highlightEducation;
|
|
150
|
+
if (!payload)
|
|
151
|
+
throw new ProfileError("UNKNOWN", "education highlight response had no payload.");
|
|
152
|
+
applyUserErrorsAndSuccess(payload, "education highlight");
|
|
153
|
+
if (!payload.education) {
|
|
154
|
+
throw new ProfileError("UNKNOWN", "education highlight response had no `education` field.");
|
|
155
|
+
}
|
|
156
|
+
return payload.education;
|
|
157
|
+
}
|
|
158
|
+
function unwrapMutation(res, payloadKey, verb) {
|
|
159
|
+
const body = res.body;
|
|
160
|
+
ensureNoTopLevelErrors(body, verb);
|
|
161
|
+
const payload = body?.data?.[payloadKey];
|
|
162
|
+
if (!payload) {
|
|
163
|
+
throw new ProfileError("UNKNOWN", `${verb} response had no \`data.${payloadKey}\` field`);
|
|
164
|
+
}
|
|
165
|
+
applyUserErrorsAndSuccess(payload, verb);
|
|
166
|
+
return payload;
|
|
167
|
+
}
|
|
168
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/services/profile/education/index.ts"],"names":[],"mappings":"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"}
|