@singi-labs/sifa-sdk 0.19.94 → 0.19.95
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 +11 -10
- package/dist/export-contact-D_krcTBH.d.cts +79 -0
- package/dist/export-contact-D_krcTBH.d.ts +79 -0
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/dist/resume/index.d.cts +4 -78
- package/dist/resume/index.d.ts +4 -78
- package/dist/testing/index.cjs +2496 -0
- package/dist/testing/index.cjs.map +1 -0
- package/dist/testing/index.d.cts +28 -0
- package/dist/testing/index.d.ts +28 -0
- package/dist/testing/index.js +2494 -0
- package/dist/testing/index.js.map +1 -0
- package/package.json +12 -2
package/README.md
CHANGED
|
@@ -27,16 +27,17 @@ Published publicly so third-party developers can build their own AT Protocol cli
|
|
|
27
27
|
|
|
28
28
|
## What this package contains
|
|
29
29
|
|
|
30
|
-
| Area | What it provides
|
|
31
|
-
| ----------- |
|
|
32
|
-
| Types | TypeScript types for Sifa data structures, generated from `sifa-lexicons`
|
|
33
|
-
| Schemas | Zod schemas mirroring lexicon constraints for runtime validation
|
|
34
|
-
| Query layer | TanStack Query keys, fetchers, and React hooks for calling `sifa-api`
|
|
35
|
-
| ATproto | Wrapper around `@atproto/api` that accepts an authenticated agent
|
|
36
|
-
| Format | Pure formatters for dates, locations, profile completeness
|
|
37
|
-
| Logic | Business-logic predicates (display-only; server-side trust logic lives in `sifa-api`)
|
|
38
|
-
| Taxonomy | Constants and enums (continents, industries, skill categories, activity tiers)
|
|
39
|
-
| Tokens | Sifa-brand design tokens, exported via `@singi-labs/sifa-sdk/tokens` (optional)
|
|
30
|
+
| Area | What it provides |
|
|
31
|
+
| ----------- | ------------------------------------------------------------------------------------------------------- |
|
|
32
|
+
| Types | TypeScript types for Sifa data structures, generated from `sifa-lexicons` |
|
|
33
|
+
| Schemas | Zod schemas mirroring lexicon constraints for runtime validation |
|
|
34
|
+
| Query layer | TanStack Query keys, fetchers, and React hooks for calling `sifa-api` |
|
|
35
|
+
| ATproto | Wrapper around `@atproto/api` that accepts an authenticated agent |
|
|
36
|
+
| Format | Pure formatters for dates, locations, profile completeness |
|
|
37
|
+
| Logic | Business-logic predicates (display-only; server-side trust logic lives in `sifa-api`) |
|
|
38
|
+
| Taxonomy | Constants and enums (continents, industries, skill categories, activity tiers) |
|
|
39
|
+
| Tokens | Sifa-brand design tokens, exported via `@singi-labs/sifa-sdk/tokens` (optional) |
|
|
40
|
+
| Testing | Anonymized profile responses and sample export details, via `@singi-labs/sifa-sdk/testing` (tests only) |
|
|
40
41
|
|
|
41
42
|
---
|
|
42
43
|
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Private contact and personal details for exports: email, phone, postal
|
|
5
|
+
* address, driver's license, right to work and nationality.
|
|
6
|
+
*
|
|
7
|
+
* Sifa never stores these and never writes them to the owner's PDS, where they
|
|
8
|
+
* would be public. The owner types them on the export page, the browser keeps
|
|
9
|
+
* them, and they go only into the files the owner downloads. This module holds
|
|
10
|
+
* the shape, the limits and the pick rule, so the export page and the server
|
|
11
|
+
* that builds a funder CV agree on them.
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
/** Longest value accepted per field. 254 is the longest valid email address. */
|
|
15
|
+
declare const EXPORT_CONTACT_LIMITS: {
|
|
16
|
+
readonly email: 254;
|
|
17
|
+
readonly phone: 40;
|
|
18
|
+
readonly address: 500;
|
|
19
|
+
readonly driversLicense: 60;
|
|
20
|
+
readonly rightToWork: 200;
|
|
21
|
+
readonly nationality: 100;
|
|
22
|
+
};
|
|
23
|
+
/** The contact details that go into an export. Absent keys are left out. */
|
|
24
|
+
interface ExportContact {
|
|
25
|
+
readonly email?: string;
|
|
26
|
+
readonly phone?: string;
|
|
27
|
+
/** Free text; lines are separated by `\n`. */
|
|
28
|
+
readonly address?: string;
|
|
29
|
+
/** License categories, e.g. "B, BE". */
|
|
30
|
+
readonly driversLicense?: string;
|
|
31
|
+
/** e.g. "EU citizen, no sponsorship needed". */
|
|
32
|
+
readonly rightToWork?: string;
|
|
33
|
+
readonly nationality?: string;
|
|
34
|
+
}
|
|
35
|
+
/** What the owner has typed, plus which fields they chose to include. */
|
|
36
|
+
interface ExportContactDraft {
|
|
37
|
+
readonly email?: string;
|
|
38
|
+
readonly phone?: string;
|
|
39
|
+
readonly address?: string;
|
|
40
|
+
readonly driversLicense?: string;
|
|
41
|
+
readonly rightToWork?: string;
|
|
42
|
+
readonly nationality?: string;
|
|
43
|
+
readonly includeEmail?: boolean;
|
|
44
|
+
readonly includePhone?: boolean;
|
|
45
|
+
readonly includeAddress?: boolean;
|
|
46
|
+
readonly includeDriversLicense?: boolean;
|
|
47
|
+
readonly includeRightToWork?: boolean;
|
|
48
|
+
readonly includeNationality?: boolean;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Validates a picked contact. Only lengths are checked: phone numbers and
|
|
52
|
+
* addresses vary too much between countries, and a wrong-looking email is a
|
|
53
|
+
* warning for the owner, not a reason to refuse the export.
|
|
54
|
+
*/
|
|
55
|
+
declare const exportContactSchema: z.ZodObject<{
|
|
56
|
+
email: z.ZodOptional<z.ZodString>;
|
|
57
|
+
phone: z.ZodOptional<z.ZodString>;
|
|
58
|
+
address: z.ZodOptional<z.ZodString>;
|
|
59
|
+
driversLicense: z.ZodOptional<z.ZodString>;
|
|
60
|
+
rightToWork: z.ZodOptional<z.ZodString>;
|
|
61
|
+
nationality: z.ZodOptional<z.ZodString>;
|
|
62
|
+
}, z.core.$strict>;
|
|
63
|
+
/**
|
|
64
|
+
* The fields to put in an export: the included ones that are not blank, run
|
|
65
|
+
* through {@link normalizeExportContact}.
|
|
66
|
+
*/
|
|
67
|
+
declare function pickExportContact(draft: ExportContactDraft): ExportContact;
|
|
68
|
+
/**
|
|
69
|
+
* Drops blank fields and tidies the rest. Every field but the address becomes
|
|
70
|
+
* one line with single spaces. An address keeps its line breaks but loses blank lines and the
|
|
71
|
+
* spaces around each line. Each field is cut at its {@link EXPORT_CONTACT_LIMITS}
|
|
72
|
+
* length. The emitters call this too, so a caller that skips
|
|
73
|
+
* {@link pickExportContact} and the schema gets the same bounded output.
|
|
74
|
+
*/
|
|
75
|
+
declare function normalizeExportContact(contact: ExportContact): ExportContact;
|
|
76
|
+
/** A loose shape check for a non-blocking "check this address" hint. */
|
|
77
|
+
declare function looksLikeEmail(value: string): boolean;
|
|
78
|
+
|
|
79
|
+
export { type ExportContact as E, EXPORT_CONTACT_LIMITS as a, type ExportContactDraft as b, exportContactSchema as e, looksLikeEmail as l, normalizeExportContact as n, pickExportContact as p };
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Private contact and personal details for exports: email, phone, postal
|
|
5
|
+
* address, driver's license, right to work and nationality.
|
|
6
|
+
*
|
|
7
|
+
* Sifa never stores these and never writes them to the owner's PDS, where they
|
|
8
|
+
* would be public. The owner types them on the export page, the browser keeps
|
|
9
|
+
* them, and they go only into the files the owner downloads. This module holds
|
|
10
|
+
* the shape, the limits and the pick rule, so the export page and the server
|
|
11
|
+
* that builds a funder CV agree on them.
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
/** Longest value accepted per field. 254 is the longest valid email address. */
|
|
15
|
+
declare const EXPORT_CONTACT_LIMITS: {
|
|
16
|
+
readonly email: 254;
|
|
17
|
+
readonly phone: 40;
|
|
18
|
+
readonly address: 500;
|
|
19
|
+
readonly driversLicense: 60;
|
|
20
|
+
readonly rightToWork: 200;
|
|
21
|
+
readonly nationality: 100;
|
|
22
|
+
};
|
|
23
|
+
/** The contact details that go into an export. Absent keys are left out. */
|
|
24
|
+
interface ExportContact {
|
|
25
|
+
readonly email?: string;
|
|
26
|
+
readonly phone?: string;
|
|
27
|
+
/** Free text; lines are separated by `\n`. */
|
|
28
|
+
readonly address?: string;
|
|
29
|
+
/** License categories, e.g. "B, BE". */
|
|
30
|
+
readonly driversLicense?: string;
|
|
31
|
+
/** e.g. "EU citizen, no sponsorship needed". */
|
|
32
|
+
readonly rightToWork?: string;
|
|
33
|
+
readonly nationality?: string;
|
|
34
|
+
}
|
|
35
|
+
/** What the owner has typed, plus which fields they chose to include. */
|
|
36
|
+
interface ExportContactDraft {
|
|
37
|
+
readonly email?: string;
|
|
38
|
+
readonly phone?: string;
|
|
39
|
+
readonly address?: string;
|
|
40
|
+
readonly driversLicense?: string;
|
|
41
|
+
readonly rightToWork?: string;
|
|
42
|
+
readonly nationality?: string;
|
|
43
|
+
readonly includeEmail?: boolean;
|
|
44
|
+
readonly includePhone?: boolean;
|
|
45
|
+
readonly includeAddress?: boolean;
|
|
46
|
+
readonly includeDriversLicense?: boolean;
|
|
47
|
+
readonly includeRightToWork?: boolean;
|
|
48
|
+
readonly includeNationality?: boolean;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Validates a picked contact. Only lengths are checked: phone numbers and
|
|
52
|
+
* addresses vary too much between countries, and a wrong-looking email is a
|
|
53
|
+
* warning for the owner, not a reason to refuse the export.
|
|
54
|
+
*/
|
|
55
|
+
declare const exportContactSchema: z.ZodObject<{
|
|
56
|
+
email: z.ZodOptional<z.ZodString>;
|
|
57
|
+
phone: z.ZodOptional<z.ZodString>;
|
|
58
|
+
address: z.ZodOptional<z.ZodString>;
|
|
59
|
+
driversLicense: z.ZodOptional<z.ZodString>;
|
|
60
|
+
rightToWork: z.ZodOptional<z.ZodString>;
|
|
61
|
+
nationality: z.ZodOptional<z.ZodString>;
|
|
62
|
+
}, z.core.$strict>;
|
|
63
|
+
/**
|
|
64
|
+
* The fields to put in an export: the included ones that are not blank, run
|
|
65
|
+
* through {@link normalizeExportContact}.
|
|
66
|
+
*/
|
|
67
|
+
declare function pickExportContact(draft: ExportContactDraft): ExportContact;
|
|
68
|
+
/**
|
|
69
|
+
* Drops blank fields and tidies the rest. Every field but the address becomes
|
|
70
|
+
* one line with single spaces. An address keeps its line breaks but loses blank lines and the
|
|
71
|
+
* spaces around each line. Each field is cut at its {@link EXPORT_CONTACT_LIMITS}
|
|
72
|
+
* length. The emitters call this too, so a caller that skips
|
|
73
|
+
* {@link pickExportContact} and the schema gets the same bounded output.
|
|
74
|
+
*/
|
|
75
|
+
declare function normalizeExportContact(contact: ExportContact): ExportContact;
|
|
76
|
+
/** A loose shape check for a non-blocking "check this address" hint. */
|
|
77
|
+
declare function looksLikeEmail(value: string): boolean;
|
|
78
|
+
|
|
79
|
+
export { type ExportContact as E, EXPORT_CONTACT_LIMITS as a, type ExportContactDraft as b, exportContactSchema as e, looksLikeEmail as l, normalizeExportContact as n, pickExportContact as p };
|
package/dist/index.cjs
CHANGED
|
@@ -7692,7 +7692,7 @@ function describeSifaRecord(collection, value) {
|
|
|
7692
7692
|
}
|
|
7693
7693
|
|
|
7694
7694
|
// src/index.ts
|
|
7695
|
-
var SIFA_SDK_VERSION = "0.19.
|
|
7695
|
+
var SIFA_SDK_VERSION = "0.19.95";
|
|
7696
7696
|
|
|
7697
7697
|
exports.ACTIVITY_TIERS = ACTIVITY_TIERS;
|
|
7698
7698
|
exports.ACTIVITY_VERBS = ACTIVITY_VERBS;
|
package/dist/index.js
CHANGED
|
@@ -377,7 +377,7 @@ import {
|
|
|
377
377
|
roadmapIssueUrl
|
|
378
378
|
} from "./roadmap/index.js";
|
|
379
379
|
import { SIFA_REPO_GROUPS, describeSifaRecord, repoGroupForCollection } from "./repo/index.js";
|
|
380
|
-
var SIFA_SDK_VERSION = "0.19.
|
|
380
|
+
var SIFA_SDK_VERSION = "0.19.95";
|
|
381
381
|
export {
|
|
382
382
|
ACTIVITY_TIERS,
|
|
383
383
|
ACTIVITY_VERBS,
|
package/dist/resume/index.d.cts
CHANGED
|
@@ -1,83 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { E as ExportContact } from '../export-contact-D_krcTBH.cjs';
|
|
2
|
+
export { a as EXPORT_CONTACT_LIMITS, b as ExportContactDraft, e as exportContactSchema, l as looksLikeEmail, n as normalizeExportContact, p as pickExportContact } from '../export-contact-D_krcTBH.cjs';
|
|
2
3
|
import { L as LocationValue, J as ProfileLocation, d as ProfilePosition, f as ProfileEducation, P as ProfileSkill, e as ProfileCertification, i as ProfileProject, j as ProfilePublication, N as ProfileVolunteering, g as ProfileHonor, h as ProfileLanguage, p as ExternalAccount, M as ProfilePresentation, B as ProfileCourse } from '../index-DU0pYHch.cjs';
|
|
4
|
+
import { z } from 'zod';
|
|
3
5
|
import '../verification-providers-DeyGqaoC.cjs';
|
|
4
6
|
|
|
5
|
-
/**
|
|
6
|
-
* Private contact and personal details for exports: email, phone, postal
|
|
7
|
-
* address, driver's license, right to work and nationality.
|
|
8
|
-
*
|
|
9
|
-
* Sifa never stores these and never writes them to the owner's PDS, where they
|
|
10
|
-
* would be public. The owner types them on the export page, the browser keeps
|
|
11
|
-
* them, and they go only into the files the owner downloads. This module holds
|
|
12
|
-
* the shape, the limits and the pick rule, so the export page and the server
|
|
13
|
-
* that builds a funder CV agree on them.
|
|
14
|
-
*/
|
|
15
|
-
|
|
16
|
-
/** Longest value accepted per field. 254 is the longest valid email address. */
|
|
17
|
-
declare const EXPORT_CONTACT_LIMITS: {
|
|
18
|
-
readonly email: 254;
|
|
19
|
-
readonly phone: 40;
|
|
20
|
-
readonly address: 500;
|
|
21
|
-
readonly driversLicense: 60;
|
|
22
|
-
readonly rightToWork: 200;
|
|
23
|
-
readonly nationality: 100;
|
|
24
|
-
};
|
|
25
|
-
/** The contact details that go into an export. Absent keys are left out. */
|
|
26
|
-
interface ExportContact {
|
|
27
|
-
readonly email?: string;
|
|
28
|
-
readonly phone?: string;
|
|
29
|
-
/** Free text; lines are separated by `\n`. */
|
|
30
|
-
readonly address?: string;
|
|
31
|
-
/** License categories, e.g. "B, BE". */
|
|
32
|
-
readonly driversLicense?: string;
|
|
33
|
-
/** e.g. "EU citizen, no sponsorship needed". */
|
|
34
|
-
readonly rightToWork?: string;
|
|
35
|
-
readonly nationality?: string;
|
|
36
|
-
}
|
|
37
|
-
/** What the owner has typed, plus which fields they chose to include. */
|
|
38
|
-
interface ExportContactDraft {
|
|
39
|
-
readonly email?: string;
|
|
40
|
-
readonly phone?: string;
|
|
41
|
-
readonly address?: string;
|
|
42
|
-
readonly driversLicense?: string;
|
|
43
|
-
readonly rightToWork?: string;
|
|
44
|
-
readonly nationality?: string;
|
|
45
|
-
readonly includeEmail?: boolean;
|
|
46
|
-
readonly includePhone?: boolean;
|
|
47
|
-
readonly includeAddress?: boolean;
|
|
48
|
-
readonly includeDriversLicense?: boolean;
|
|
49
|
-
readonly includeRightToWork?: boolean;
|
|
50
|
-
readonly includeNationality?: boolean;
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Validates a picked contact. Only lengths are checked: phone numbers and
|
|
54
|
-
* addresses vary too much between countries, and a wrong-looking email is a
|
|
55
|
-
* warning for the owner, not a reason to refuse the export.
|
|
56
|
-
*/
|
|
57
|
-
declare const exportContactSchema: z.ZodObject<{
|
|
58
|
-
email: z.ZodOptional<z.ZodString>;
|
|
59
|
-
phone: z.ZodOptional<z.ZodString>;
|
|
60
|
-
address: z.ZodOptional<z.ZodString>;
|
|
61
|
-
driversLicense: z.ZodOptional<z.ZodString>;
|
|
62
|
-
rightToWork: z.ZodOptional<z.ZodString>;
|
|
63
|
-
nationality: z.ZodOptional<z.ZodString>;
|
|
64
|
-
}, z.core.$strict>;
|
|
65
|
-
/**
|
|
66
|
-
* The fields to put in an export: the included ones that are not blank, run
|
|
67
|
-
* through {@link normalizeExportContact}.
|
|
68
|
-
*/
|
|
69
|
-
declare function pickExportContact(draft: ExportContactDraft): ExportContact;
|
|
70
|
-
/**
|
|
71
|
-
* Drops blank fields and tidies the rest. Every field but the address becomes
|
|
72
|
-
* one line with single spaces. An address keeps its line breaks but loses blank lines and the
|
|
73
|
-
* spaces around each line. Each field is cut at its {@link EXPORT_CONTACT_LIMITS}
|
|
74
|
-
* length. The emitters call this too, so a caller that skips
|
|
75
|
-
* {@link pickExportContact} and the schema gets the same bounded output.
|
|
76
|
-
*/
|
|
77
|
-
declare function normalizeExportContact(contact: ExportContact): ExportContact;
|
|
78
|
-
/** A loose shape check for a non-blocking "check this address" hint. */
|
|
79
|
-
declare function looksLikeEmail(value: string): boolean;
|
|
80
|
-
|
|
81
7
|
/**
|
|
82
8
|
* JSON Resume v1.0.0 emitter for a Sifa profile.
|
|
83
9
|
*
|
|
@@ -514,4 +440,4 @@ type FunderCvDocument = NihFunderCv | ErcFunderCv;
|
|
|
514
440
|
*/
|
|
515
441
|
declare function profileToFunderCv(profile: FunderCvProfileInput, selection: FunderCvSelection, options?: FunderCvOptions): FunderCvDocument;
|
|
516
442
|
|
|
517
|
-
export {
|
|
443
|
+
export { type ErcContribution, type ErcEducation, type ErcFunderCv, type ErcFunderCvPerson, type ErcRecognition, ExportContact, FUNDER_CV_FORMATS, FUNDER_CV_GROUPS, FUNDER_CV_ITEM_KINDS, type FunderCvAppointment, type FunderCvCandidate, type FunderCvCitation, type FunderCvDocument, type FunderCvFormat, type FunderCvGroupName, type FunderCvGroupSpec, type FunderCvHonor, type FunderCvItemKind, type FunderCvOptions, type FunderCvPerson, type FunderCvProfileInput, type FunderCvSelection, type JsonResume, type JsonResumeAward, type JsonResumeBasics, type JsonResumeCertificate, type JsonResumeEducation, type JsonResumeLanguage, type JsonResumeLocation, type JsonResumeMeta, type JsonResumeOptions, type JsonResumeProfileInput, type JsonResumeProfileLink, type JsonResumeProject, type JsonResumePublication, type JsonResumeSkill, type JsonResumeVolunteer, type JsonResumeWork, type NihEducation, type NihFunderCv, type Sanitizer, defaultFunderCvSelection, findUnknownFunderCvItems, funderCvItemId, funderCvSelectionSchema, listFunderCvCandidates, profileToFunderCv, profileToJsonResume, toResumeDate };
|
package/dist/resume/index.d.ts
CHANGED
|
@@ -1,83 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { E as ExportContact } from '../export-contact-D_krcTBH.js';
|
|
2
|
+
export { a as EXPORT_CONTACT_LIMITS, b as ExportContactDraft, e as exportContactSchema, l as looksLikeEmail, n as normalizeExportContact, p as pickExportContact } from '../export-contact-D_krcTBH.js';
|
|
2
3
|
import { L as LocationValue, J as ProfileLocation, d as ProfilePosition, f as ProfileEducation, P as ProfileSkill, e as ProfileCertification, i as ProfileProject, j as ProfilePublication, N as ProfileVolunteering, g as ProfileHonor, h as ProfileLanguage, p as ExternalAccount, M as ProfilePresentation, B as ProfileCourse } from '../index-BEAuoL6l.js';
|
|
4
|
+
import { z } from 'zod';
|
|
3
5
|
import '../verification-providers-DeyGqaoC.js';
|
|
4
6
|
|
|
5
|
-
/**
|
|
6
|
-
* Private contact and personal details for exports: email, phone, postal
|
|
7
|
-
* address, driver's license, right to work and nationality.
|
|
8
|
-
*
|
|
9
|
-
* Sifa never stores these and never writes them to the owner's PDS, where they
|
|
10
|
-
* would be public. The owner types them on the export page, the browser keeps
|
|
11
|
-
* them, and they go only into the files the owner downloads. This module holds
|
|
12
|
-
* the shape, the limits and the pick rule, so the export page and the server
|
|
13
|
-
* that builds a funder CV agree on them.
|
|
14
|
-
*/
|
|
15
|
-
|
|
16
|
-
/** Longest value accepted per field. 254 is the longest valid email address. */
|
|
17
|
-
declare const EXPORT_CONTACT_LIMITS: {
|
|
18
|
-
readonly email: 254;
|
|
19
|
-
readonly phone: 40;
|
|
20
|
-
readonly address: 500;
|
|
21
|
-
readonly driversLicense: 60;
|
|
22
|
-
readonly rightToWork: 200;
|
|
23
|
-
readonly nationality: 100;
|
|
24
|
-
};
|
|
25
|
-
/** The contact details that go into an export. Absent keys are left out. */
|
|
26
|
-
interface ExportContact {
|
|
27
|
-
readonly email?: string;
|
|
28
|
-
readonly phone?: string;
|
|
29
|
-
/** Free text; lines are separated by `\n`. */
|
|
30
|
-
readonly address?: string;
|
|
31
|
-
/** License categories, e.g. "B, BE". */
|
|
32
|
-
readonly driversLicense?: string;
|
|
33
|
-
/** e.g. "EU citizen, no sponsorship needed". */
|
|
34
|
-
readonly rightToWork?: string;
|
|
35
|
-
readonly nationality?: string;
|
|
36
|
-
}
|
|
37
|
-
/** What the owner has typed, plus which fields they chose to include. */
|
|
38
|
-
interface ExportContactDraft {
|
|
39
|
-
readonly email?: string;
|
|
40
|
-
readonly phone?: string;
|
|
41
|
-
readonly address?: string;
|
|
42
|
-
readonly driversLicense?: string;
|
|
43
|
-
readonly rightToWork?: string;
|
|
44
|
-
readonly nationality?: string;
|
|
45
|
-
readonly includeEmail?: boolean;
|
|
46
|
-
readonly includePhone?: boolean;
|
|
47
|
-
readonly includeAddress?: boolean;
|
|
48
|
-
readonly includeDriversLicense?: boolean;
|
|
49
|
-
readonly includeRightToWork?: boolean;
|
|
50
|
-
readonly includeNationality?: boolean;
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Validates a picked contact. Only lengths are checked: phone numbers and
|
|
54
|
-
* addresses vary too much between countries, and a wrong-looking email is a
|
|
55
|
-
* warning for the owner, not a reason to refuse the export.
|
|
56
|
-
*/
|
|
57
|
-
declare const exportContactSchema: z.ZodObject<{
|
|
58
|
-
email: z.ZodOptional<z.ZodString>;
|
|
59
|
-
phone: z.ZodOptional<z.ZodString>;
|
|
60
|
-
address: z.ZodOptional<z.ZodString>;
|
|
61
|
-
driversLicense: z.ZodOptional<z.ZodString>;
|
|
62
|
-
rightToWork: z.ZodOptional<z.ZodString>;
|
|
63
|
-
nationality: z.ZodOptional<z.ZodString>;
|
|
64
|
-
}, z.core.$strict>;
|
|
65
|
-
/**
|
|
66
|
-
* The fields to put in an export: the included ones that are not blank, run
|
|
67
|
-
* through {@link normalizeExportContact}.
|
|
68
|
-
*/
|
|
69
|
-
declare function pickExportContact(draft: ExportContactDraft): ExportContact;
|
|
70
|
-
/**
|
|
71
|
-
* Drops blank fields and tidies the rest. Every field but the address becomes
|
|
72
|
-
* one line with single spaces. An address keeps its line breaks but loses blank lines and the
|
|
73
|
-
* spaces around each line. Each field is cut at its {@link EXPORT_CONTACT_LIMITS}
|
|
74
|
-
* length. The emitters call this too, so a caller that skips
|
|
75
|
-
* {@link pickExportContact} and the schema gets the same bounded output.
|
|
76
|
-
*/
|
|
77
|
-
declare function normalizeExportContact(contact: ExportContact): ExportContact;
|
|
78
|
-
/** A loose shape check for a non-blocking "check this address" hint. */
|
|
79
|
-
declare function looksLikeEmail(value: string): boolean;
|
|
80
|
-
|
|
81
7
|
/**
|
|
82
8
|
* JSON Resume v1.0.0 emitter for a Sifa profile.
|
|
83
9
|
*
|
|
@@ -514,4 +440,4 @@ type FunderCvDocument = NihFunderCv | ErcFunderCv;
|
|
|
514
440
|
*/
|
|
515
441
|
declare function profileToFunderCv(profile: FunderCvProfileInput, selection: FunderCvSelection, options?: FunderCvOptions): FunderCvDocument;
|
|
516
442
|
|
|
517
|
-
export {
|
|
443
|
+
export { type ErcContribution, type ErcEducation, type ErcFunderCv, type ErcFunderCvPerson, type ErcRecognition, ExportContact, FUNDER_CV_FORMATS, FUNDER_CV_GROUPS, FUNDER_CV_ITEM_KINDS, type FunderCvAppointment, type FunderCvCandidate, type FunderCvCitation, type FunderCvDocument, type FunderCvFormat, type FunderCvGroupName, type FunderCvGroupSpec, type FunderCvHonor, type FunderCvItemKind, type FunderCvOptions, type FunderCvPerson, type FunderCvProfileInput, type FunderCvSelection, type JsonResume, type JsonResumeAward, type JsonResumeBasics, type JsonResumeCertificate, type JsonResumeEducation, type JsonResumeLanguage, type JsonResumeLocation, type JsonResumeMeta, type JsonResumeOptions, type JsonResumeProfileInput, type JsonResumeProfileLink, type JsonResumeProject, type JsonResumePublication, type JsonResumeSkill, type JsonResumeVolunteer, type JsonResumeWork, type NihEducation, type NihFunderCv, type Sanitizer, defaultFunderCvSelection, findUnknownFunderCvItems, funderCvItemId, funderCvSelectionSchema, listFunderCvCandidates, profileToFunderCv, profileToJsonResume, toResumeDate };
|