@cavuno/board 4.53.0 → 4.55.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +53 -0
- package/dist/{_spec-B4TxcV4W.d.mts → _spec-QzRtIJNE.d.mts} +75 -10
- package/dist/{_spec-B4TxcV4W.d.ts → _spec-QzRtIJNE.d.ts} +75 -10
- package/dist/{blog-BYuzCPFi.d.mts → blog-D32ONCap.d.mts} +1 -1
- package/dist/{blog-C1nsaLmM.d.ts → blog-DBYumoqv.d.ts} +1 -1
- package/dist/{board-BtipyMwh.d.ts → board-BXRsEJR8.d.ts} +6 -3
- package/dist/{board-j0KFqNBp.d.mts → board-Dc9RJzZs.d.mts} +6 -3
- package/dist/{breadcrumbs-BCEsjVMn.d.mts → breadcrumbs-CsG5emA0.d.mts} +2 -2
- package/dist/{breadcrumbs-BKpfMLqi.d.ts → breadcrumbs-DuT2G4a5.d.ts} +2 -2
- package/dist/browser/cavuno-board.global.min.js +1 -1
- package/dist/filters.d.mts +2 -2
- package/dist/filters.d.ts +2 -2
- package/dist/filters.js +2 -1
- package/dist/filters.mjs +2 -1
- package/dist/format.d.mts +4 -4
- package/dist/format.d.ts +4 -4
- package/dist/index.d.mts +74 -15
- package/dist/index.d.ts +74 -15
- package/dist/index.js +19 -2
- package/dist/index.mjs +19 -2
- package/dist/{jobs-BMJHIKTi.d.ts → jobs-BSc8fWRd.d.ts} +7 -1
- package/dist/{jobs-DKo4rx45.d.mts → jobs-Cu5SX_Yp.d.mts} +7 -1
- package/dist/{search-DVSEJ5aj.d.ts → search-Cc0D9AIG.d.ts} +1 -1
- package/dist/{search-DJQkMA5T.d.mts → search-D5GiEIK5.d.mts} +1 -1
- package/dist/{seo-CIOAZCuc.d.ts → seo-C0NRwuve.d.ts} +1 -1
- package/dist/{seo-D2oDCBT0.d.mts → seo-WA9kv-W8.d.mts} +1 -1
- package/dist/seo-files.d.mts +2 -2
- package/dist/seo-files.d.ts +2 -2
- package/dist/seo.d.mts +10 -6
- package/dist/seo.d.ts +10 -6
- package/dist/seo.js +1 -4
- package/dist/seo.mjs +1 -4
- package/dist/server.d.mts +6 -6
- package/dist/server.d.ts +6 -6
- package/dist/sitemap.d.mts +6 -6
- package/dist/sitemap.d.ts +6 -6
- package/dist/suggest.d.mts +2 -2
- package/dist/suggest.d.ts +2 -2
- package/package.json +1 -1
- package/skills/cavuno-board-filters/SKILL.md +4 -2
- package/skills/cavuno-board-talent-access/SKILL.md +4 -0
- package/skills/manifest.json +1 -1
package/dist/index.js
CHANGED
|
@@ -405,7 +405,7 @@ async function clearSession(storage) {
|
|
|
405
405
|
}
|
|
406
406
|
|
|
407
407
|
// src/version.ts
|
|
408
|
-
var SDK_VERSION = "4.
|
|
408
|
+
var SDK_VERSION = "4.55.0";
|
|
409
409
|
|
|
410
410
|
// src/client.ts
|
|
411
411
|
function isRawBody(body) {
|
|
@@ -3204,6 +3204,7 @@ function meNamespace(client) {
|
|
|
3204
3204
|
const form = new FormData();
|
|
3205
3205
|
form.append("resume", file);
|
|
3206
3206
|
if (opts?.keepResumeOnFile) form.append("keepResumeOnFile", "true");
|
|
3207
|
+
if (opts?.shareWithEmployers) form.append("shareWithEmployers", "true");
|
|
3207
3208
|
if (opts?.importMode) form.append("importMode", opts.importMode);
|
|
3208
3209
|
if (opts?.confirmReplaceAll) form.append("confirmReplaceAll", "true");
|
|
3209
3210
|
return client.fetch("/me/resume", {
|
|
@@ -3222,6 +3223,20 @@ function meNamespace(client) {
|
|
|
3222
3223
|
retrieve(options) {
|
|
3223
3224
|
return client.fetch("/me/resume", options);
|
|
3224
3225
|
},
|
|
3226
|
+
/**
|
|
3227
|
+
* Set whether signed-in approved employers may receive `resumeUrl` on
|
|
3228
|
+
* `talent.retrieve`. Does not upload or delete the file.
|
|
3229
|
+
*
|
|
3230
|
+
* @example
|
|
3231
|
+
* await board.me.resume.update({ shareWithEmployers: true });
|
|
3232
|
+
*/
|
|
3233
|
+
update(body, options) {
|
|
3234
|
+
return client.fetch("/me/resume", {
|
|
3235
|
+
...options,
|
|
3236
|
+
method: "PATCH",
|
|
3237
|
+
body
|
|
3238
|
+
});
|
|
3239
|
+
},
|
|
3225
3240
|
/**
|
|
3226
3241
|
* Delete my stored resume file + withdraw keep-on-file consent (parsed
|
|
3227
3242
|
* profile fields stay). Resolves void (204).
|
|
@@ -3960,7 +3975,9 @@ function talentNamespace(client) {
|
|
|
3960
3975
|
/**
|
|
3961
3976
|
* Retrieve a candidate's public profile by handle (or board-user id). Only
|
|
3962
3977
|
* `public` profiles resolve; a non-public or unknown handle throws
|
|
3963
|
-
* `talent_not_found` (404).
|
|
3978
|
+
* `talent_not_found` (404). `resumeUrl` is an expiring signed download
|
|
3979
|
+
* for a signed-in approved employer when the candidate opted in to share
|
|
3980
|
+
* their stored resume; `null` otherwise. Directory cards never include it.
|
|
3964
3981
|
*
|
|
3965
3982
|
* @example
|
|
3966
3983
|
* const profile = await board.talent.retrieve('jane-doe');
|
package/dist/index.mjs
CHANGED
|
@@ -46,7 +46,7 @@ function toSearchParams(query) {
|
|
|
46
46
|
}
|
|
47
47
|
|
|
48
48
|
// src/version.ts
|
|
49
|
-
var SDK_VERSION = "4.
|
|
49
|
+
var SDK_VERSION = "4.55.0";
|
|
50
50
|
|
|
51
51
|
// src/client.ts
|
|
52
52
|
function isRawBody(body) {
|
|
@@ -2845,6 +2845,7 @@ function meNamespace(client) {
|
|
|
2845
2845
|
const form = new FormData();
|
|
2846
2846
|
form.append("resume", file);
|
|
2847
2847
|
if (opts?.keepResumeOnFile) form.append("keepResumeOnFile", "true");
|
|
2848
|
+
if (opts?.shareWithEmployers) form.append("shareWithEmployers", "true");
|
|
2848
2849
|
if (opts?.importMode) form.append("importMode", opts.importMode);
|
|
2849
2850
|
if (opts?.confirmReplaceAll) form.append("confirmReplaceAll", "true");
|
|
2850
2851
|
return client.fetch("/me/resume", {
|
|
@@ -2863,6 +2864,20 @@ function meNamespace(client) {
|
|
|
2863
2864
|
retrieve(options) {
|
|
2864
2865
|
return client.fetch("/me/resume", options);
|
|
2865
2866
|
},
|
|
2867
|
+
/**
|
|
2868
|
+
* Set whether signed-in approved employers may receive `resumeUrl` on
|
|
2869
|
+
* `talent.retrieve`. Does not upload or delete the file.
|
|
2870
|
+
*
|
|
2871
|
+
* @example
|
|
2872
|
+
* await board.me.resume.update({ shareWithEmployers: true });
|
|
2873
|
+
*/
|
|
2874
|
+
update(body, options) {
|
|
2875
|
+
return client.fetch("/me/resume", {
|
|
2876
|
+
...options,
|
|
2877
|
+
method: "PATCH",
|
|
2878
|
+
body
|
|
2879
|
+
});
|
|
2880
|
+
},
|
|
2866
2881
|
/**
|
|
2867
2882
|
* Delete my stored resume file + withdraw keep-on-file consent (parsed
|
|
2868
2883
|
* profile fields stay). Resolves void (204).
|
|
@@ -3601,7 +3616,9 @@ function talentNamespace(client) {
|
|
|
3601
3616
|
/**
|
|
3602
3617
|
* Retrieve a candidate's public profile by handle (or board-user id). Only
|
|
3603
3618
|
* `public` profiles resolve; a non-public or unknown handle throws
|
|
3604
|
-
* `talent_not_found` (404).
|
|
3619
|
+
* `talent_not_found` (404). `resumeUrl` is an expiring signed download
|
|
3620
|
+
* for a signed-in approved employer when the candidate opted in to share
|
|
3621
|
+
* their stored resume; `null` otherwise. Directory cards never include it.
|
|
3605
3622
|
*
|
|
3606
3623
|
* @example
|
|
3607
3624
|
* const profile = await board.talent.retrieve('jane-doe');
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { S as Schemas } from './_spec-
|
|
1
|
+
import { S as Schemas } from './_spec-QzRtIJNE.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Optional pagination metadata returned by Board API list operations.
|
|
@@ -70,8 +70,14 @@ type RemoteTimezone = PublicJob['remoteTimezones'][number];
|
|
|
70
70
|
*/
|
|
71
71
|
interface RelatedSearch {
|
|
72
72
|
type: 'category' | 'skill' | 'market';
|
|
73
|
+
/** English source slug; filters and taxonomy lookups accept it. */
|
|
73
74
|
slug: string;
|
|
75
|
+
/** The term's page slug in the board language; equals `slug` when untranslated. */
|
|
76
|
+
canonicalSlug: string;
|
|
77
|
+
/** English source label. */
|
|
74
78
|
term: string;
|
|
79
|
+
/** The label in the board language; equals `term` when untranslated. */
|
|
80
|
+
displayName: string;
|
|
75
81
|
count: number;
|
|
76
82
|
}
|
|
77
83
|
/** The browse list envelope — `PublicJobCard`s + job catalog pagination + `relatedSearches`. */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { S as Schemas } from './_spec-
|
|
1
|
+
import { S as Schemas } from './_spec-QzRtIJNE.mjs';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Optional pagination metadata returned by Board API list operations.
|
|
@@ -70,8 +70,14 @@ type RemoteTimezone = PublicJob['remoteTimezones'][number];
|
|
|
70
70
|
*/
|
|
71
71
|
interface RelatedSearch {
|
|
72
72
|
type: 'category' | 'skill' | 'market';
|
|
73
|
+
/** English source slug; filters and taxonomy lookups accept it. */
|
|
73
74
|
slug: string;
|
|
75
|
+
/** The term's page slug in the board language; equals `slug` when untranslated. */
|
|
76
|
+
canonicalSlug: string;
|
|
77
|
+
/** English source label. */
|
|
74
78
|
term: string;
|
|
79
|
+
/** The label in the board language; equals `term` when untranslated. */
|
|
80
|
+
displayName: string;
|
|
75
81
|
count: number;
|
|
76
82
|
}
|
|
77
83
|
/** The browse list envelope — `PublicJobCard`s + job catalog pagination + `relatedSearches`. */
|
package/dist/seo-files.d.mts
CHANGED
package/dist/seo-files.d.ts
CHANGED
package/dist/seo.d.mts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { P as PublicBlogPostSummary, B as BlogAuthorEmbed } from './blog-
|
|
2
|
-
import { e as JsonLdObject } from './breadcrumbs-
|
|
3
|
-
export { A as ALL_COUNTRY_CODES, B as BreadcrumbItemInput, g as FaqItem, J as JobBreadcrumb, h as JsonLdBoard, N as NumberNotation, i as SENIORITY_ORDER, j as SalaryFaqEntry, k as SalaryJsonLdOptions, l as SalaryOccupationListOptions, b as buildJobBreadcrumbs, m as buildSalaryFaq, o as companyCategorySalaryJsonLd, p as companySalaryJsonLd, q as createBreadcrumbJsonLd, r as createJobPostingJsonLd, s as crossAxisSalaryJsonLd, t as faqJsonLd, c as formatSalaryStat, d as formatSalaryStatRange, u as itemListJsonLd, v as locationSalaryJsonLd, n as normalizeWebsiteUrl, w as skillSalaryJsonLd, x as sortBySeniority, y as titleSalaryJsonLd } from './breadcrumbs-
|
|
4
|
-
import './_spec-
|
|
5
|
-
import './board-
|
|
6
|
-
import './jobs-
|
|
1
|
+
import { P as PublicBlogPostSummary, B as BlogAuthorEmbed } from './blog-D32ONCap.mjs';
|
|
2
|
+
import { e as JsonLdObject } from './breadcrumbs-CsG5emA0.mjs';
|
|
3
|
+
export { A as ALL_COUNTRY_CODES, B as BreadcrumbItemInput, g as FaqItem, J as JobBreadcrumb, h as JsonLdBoard, N as NumberNotation, i as SENIORITY_ORDER, j as SalaryFaqEntry, k as SalaryJsonLdOptions, l as SalaryOccupationListOptions, b as buildJobBreadcrumbs, m as buildSalaryFaq, o as companyCategorySalaryJsonLd, p as companySalaryJsonLd, q as createBreadcrumbJsonLd, r as createJobPostingJsonLd, s as crossAxisSalaryJsonLd, t as faqJsonLd, c as formatSalaryStat, d as formatSalaryStatRange, u as itemListJsonLd, v as locationSalaryJsonLd, n as normalizeWebsiteUrl, w as skillSalaryJsonLd, x as sortBySeniority, y as titleSalaryJsonLd } from './breadcrumbs-CsG5emA0.mjs';
|
|
4
|
+
import './_spec-QzRtIJNE.mjs';
|
|
5
|
+
import './board-Dc9RJzZs.mjs';
|
|
6
|
+
import './jobs-Cu5SX_Yp.mjs';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* Blog structured data on the `@cavuno/board` wire types, transcribed from
|
|
@@ -112,6 +112,10 @@ interface JobLink {
|
|
|
112
112
|
company: {
|
|
113
113
|
slug: string;
|
|
114
114
|
} | null;
|
|
115
|
+
/** The job's public URL (`links.public` on a job card), in the board's URL language. */
|
|
116
|
+
links?: {
|
|
117
|
+
public?: string | null;
|
|
118
|
+
} | null;
|
|
115
119
|
}
|
|
116
120
|
/**
|
|
117
121
|
* `BreadcrumbList` (+ `ItemList` of the visible jobs) JSON-LD for a listing
|
package/dist/seo.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { P as PublicBlogPostSummary, B as BlogAuthorEmbed } from './blog-
|
|
2
|
-
import { e as JsonLdObject } from './breadcrumbs-
|
|
3
|
-
export { A as ALL_COUNTRY_CODES, B as BreadcrumbItemInput, g as FaqItem, J as JobBreadcrumb, h as JsonLdBoard, N as NumberNotation, i as SENIORITY_ORDER, j as SalaryFaqEntry, k as SalaryJsonLdOptions, l as SalaryOccupationListOptions, b as buildJobBreadcrumbs, m as buildSalaryFaq, o as companyCategorySalaryJsonLd, p as companySalaryJsonLd, q as createBreadcrumbJsonLd, r as createJobPostingJsonLd, s as crossAxisSalaryJsonLd, t as faqJsonLd, c as formatSalaryStat, d as formatSalaryStatRange, u as itemListJsonLd, v as locationSalaryJsonLd, n as normalizeWebsiteUrl, w as skillSalaryJsonLd, x as sortBySeniority, y as titleSalaryJsonLd } from './breadcrumbs-
|
|
4
|
-
import './_spec-
|
|
5
|
-
import './board-
|
|
6
|
-
import './jobs-
|
|
1
|
+
import { P as PublicBlogPostSummary, B as BlogAuthorEmbed } from './blog-DBYumoqv.js';
|
|
2
|
+
import { e as JsonLdObject } from './breadcrumbs-DuT2G4a5.js';
|
|
3
|
+
export { A as ALL_COUNTRY_CODES, B as BreadcrumbItemInput, g as FaqItem, J as JobBreadcrumb, h as JsonLdBoard, N as NumberNotation, i as SENIORITY_ORDER, j as SalaryFaqEntry, k as SalaryJsonLdOptions, l as SalaryOccupationListOptions, b as buildJobBreadcrumbs, m as buildSalaryFaq, o as companyCategorySalaryJsonLd, p as companySalaryJsonLd, q as createBreadcrumbJsonLd, r as createJobPostingJsonLd, s as crossAxisSalaryJsonLd, t as faqJsonLd, c as formatSalaryStat, d as formatSalaryStatRange, u as itemListJsonLd, v as locationSalaryJsonLd, n as normalizeWebsiteUrl, w as skillSalaryJsonLd, x as sortBySeniority, y as titleSalaryJsonLd } from './breadcrumbs-DuT2G4a5.js';
|
|
4
|
+
import './_spec-QzRtIJNE.js';
|
|
5
|
+
import './board-BXRsEJR8.js';
|
|
6
|
+
import './jobs-BSc8fWRd.js';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* Blog structured data on the `@cavuno/board` wire types, transcribed from
|
|
@@ -112,6 +112,10 @@ interface JobLink {
|
|
|
112
112
|
company: {
|
|
113
113
|
slug: string;
|
|
114
114
|
} | null;
|
|
115
|
+
/** The job's public URL (`links.public` on a job card), in the board's URL language. */
|
|
116
|
+
links?: {
|
|
117
|
+
public?: string | null;
|
|
118
|
+
} | null;
|
|
115
119
|
}
|
|
116
120
|
/**
|
|
117
121
|
* `BreadcrumbList` (+ `ItemList` of the visible jobs) JSON-LD for a listing
|
package/dist/seo.js
CHANGED
|
@@ -777,10 +777,7 @@ function listingJsonLd(options) {
|
|
|
777
777
|
itemListElement: detailJobs.map((job, index) => ({
|
|
778
778
|
"@type": "ListItem",
|
|
779
779
|
position: index + 1,
|
|
780
|
-
url: boardUrl(
|
|
781
|
-
options.origin,
|
|
782
|
-
jobDetailPath(job.company.slug, job.slug)
|
|
783
|
-
)
|
|
780
|
+
url: job.links?.public || boardUrl(options.origin, jobDetailPath(job.company.slug, job.slug))
|
|
784
781
|
}))
|
|
785
782
|
});
|
|
786
783
|
}
|
package/dist/seo.mjs
CHANGED
|
@@ -179,10 +179,7 @@ function listingJsonLd(options) {
|
|
|
179
179
|
itemListElement: detailJobs.map((job, index) => ({
|
|
180
180
|
"@type": "ListItem",
|
|
181
181
|
position: index + 1,
|
|
182
|
-
url: boardUrl(
|
|
183
|
-
options.origin,
|
|
184
|
-
jobDetailPath(job.company.slug, job.slug)
|
|
185
|
-
)
|
|
182
|
+
url: job.links?.public || boardUrl(options.origin, jobDetailPath(job.company.slug, job.slug))
|
|
186
183
|
}))
|
|
187
184
|
});
|
|
188
185
|
}
|
package/dist/server.d.mts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { BoardSdk } from './index.mjs';
|
|
2
|
-
import './_spec-
|
|
3
|
-
import './search-
|
|
4
|
-
import './jobs-
|
|
5
|
-
import './board-
|
|
6
|
-
import './seo-
|
|
7
|
-
import './blog-
|
|
2
|
+
import './_spec-QzRtIJNE.mjs';
|
|
3
|
+
import './search-D5GiEIK5.mjs';
|
|
4
|
+
import './jobs-Cu5SX_Yp.mjs';
|
|
5
|
+
import './board-Dc9RJzZs.mjs';
|
|
6
|
+
import './seo-WA9kv-W8.mjs';
|
|
7
|
+
import './blog-D32ONCap.mjs';
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Session cookie codec — pure (no framework imports, no node imports) so it
|
package/dist/server.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { BoardSdk } from './index.js';
|
|
2
|
-
import './_spec-
|
|
3
|
-
import './search-
|
|
4
|
-
import './jobs-
|
|
5
|
-
import './board-
|
|
6
|
-
import './seo-
|
|
7
|
-
import './blog-
|
|
2
|
+
import './_spec-QzRtIJNE.js';
|
|
3
|
+
import './search-Cc0D9AIG.js';
|
|
4
|
+
import './jobs-BSc8fWRd.js';
|
|
5
|
+
import './board-BXRsEJR8.js';
|
|
6
|
+
import './seo-C0NRwuve.js';
|
|
7
|
+
import './blog-DBYumoqv.js';
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Session cookie codec — pure (no framework imports, no node imports) so it
|
package/dist/sitemap.d.mts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { BoardSdk } from './index.mjs';
|
|
2
|
-
import './_spec-
|
|
3
|
-
import './search-
|
|
4
|
-
import './jobs-
|
|
5
|
-
import './board-
|
|
6
|
-
import './seo-
|
|
7
|
-
import './blog-
|
|
2
|
+
import './_spec-QzRtIJNE.mjs';
|
|
3
|
+
import './search-D5GiEIK5.mjs';
|
|
4
|
+
import './jobs-Cu5SX_Yp.mjs';
|
|
5
|
+
import './board-Dc9RJzZs.mjs';
|
|
6
|
+
import './seo-WA9kv-W8.mjs';
|
|
7
|
+
import './blog-D32ONCap.mjs';
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Sitemap primitives — the pure XML + bucket-filename logic behind a board
|
package/dist/sitemap.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { BoardSdk } from './index.js';
|
|
2
|
-
import './_spec-
|
|
3
|
-
import './search-
|
|
4
|
-
import './jobs-
|
|
5
|
-
import './board-
|
|
6
|
-
import './seo-
|
|
7
|
-
import './blog-
|
|
2
|
+
import './_spec-QzRtIJNE.js';
|
|
3
|
+
import './search-Cc0D9AIG.js';
|
|
4
|
+
import './jobs-BSc8fWRd.js';
|
|
5
|
+
import './board-BXRsEJR8.js';
|
|
6
|
+
import './seo-C0NRwuve.js';
|
|
7
|
+
import './blog-DBYumoqv.js';
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Sitemap primitives — the pure XML + bucket-filename logic behind a board
|
package/dist/suggest.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { h as SuggestionItem, b as SearchSuggestQuery, F as FetchOptions, g as SuggestResult } from './search-
|
|
2
|
-
import './_spec-
|
|
1
|
+
import { h as SuggestionItem, b as SearchSuggestQuery, F as FetchOptions, g as SuggestResult } from './search-D5GiEIK5.mjs';
|
|
2
|
+
import './_spec-QzRtIJNE.mjs';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* `@cavuno/board/suggest` — framework-agnostic headless search-suggest
|
package/dist/suggest.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { h as SuggestionItem, b as SearchSuggestQuery, F as FetchOptions, g as SuggestResult } from './search-
|
|
2
|
-
import './_spec-
|
|
1
|
+
import { h as SuggestionItem, b as SearchSuggestQuery, F as FetchOptions, g as SuggestResult } from './search-Cc0D9AIG.js';
|
|
2
|
+
import './_spec-QzRtIJNE.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* `@cavuno/board/suggest` — framework-agnostic headless search-suggest
|
package/package.json
CHANGED
|
@@ -86,8 +86,10 @@ const sortOptions = JOB_SORTS;
|
|
|
86
86
|
Render seniority as a multi-select with all eight `SENIORITIES`.
|
|
87
87
|
`EMPLOYMENT_TYPES` contains five listing options; `volunteer` and `other`
|
|
88
88
|
remain valid job wire values but are absent from the filter control.
|
|
89
|
-
`JOB_SORTS` contains exactly `relevance`, `newest`,
|
|
90
|
-
`relevance` is the featured-ranked default.
|
|
89
|
+
`JOB_SORTS` contains exactly `relevance`, `newest`, `salary_high`, and
|
|
90
|
+
`distance`; `relevance` is the featured-ranked default. `distance` is
|
|
91
|
+
nearest-first from the selected location and needs coordinates — hide it
|
|
92
|
+
in the sort menu until a location is set. Label each option with your
|
|
91
93
|
application's copy (message catalog or hard-coded board language).
|
|
92
94
|
|
|
93
95
|
## Load taxonomy options
|
|
@@ -31,6 +31,8 @@ access.companyId;
|
|
|
31
31
|
|
|
32
32
|
`companyId` is set when the viewer has exactly one approved membership. It is `null` when they have none or more than one — pass `companyId` on writes or the API returns `company_required`.
|
|
33
33
|
|
|
34
|
+
For employers with multiple approved companies, select the same company for each read and write. Pass `{ query: { companyId } }` to `me.talentAccess.retrieve`, `me.talentAccess.retrieveCandidate`, and `talent.retrieve`. The selected company controls balances, candidate unlock state, and opaque profile access. Omission preserves the default viewer context; pending memberships and companies on another board grant no access. Pass `companyId` in unlock, checkout, upgrade, and cold `conversations.start` bodies so the same company pays.
|
|
35
|
+
|
|
34
36
|
## Gate one candidate
|
|
35
37
|
|
|
36
38
|
Per-candidate already-unlocked state is a sibling read so the singleton never takes a candidate id.
|
|
@@ -136,6 +138,8 @@ Named `/p/{handle}` is the share bypass and always shows a full `public` profile
|
|
|
136
138
|
|
|
137
139
|
`lastActive` on directory cards and profiles is a coarse bucket (`today`, `this_week`, `this_month`, `last_3_months`, `over_3_months`) for a signed-in employer looking at a candidate who is actively looking or open to offers, and `null` otherwise. It stays on redacted cards. Render it as a short label such as "Active this week" and hide it when `null`.
|
|
138
140
|
|
|
141
|
+
`resumeUrl` on `talent.retrieve` is an expiring signed download for a signed-in approved employer when the candidate opted in (`me.resume.update({ shareWithEmployers: true })` or the upload form field) and a file is on file. It is `null` for everyone else and never present on directory cards. Redacted opaque profiles also return `null`. Turning sharing off stops new URLs; one already issued works until it expires. Candidates manage the file through `me.resume`.
|
|
142
|
+
|
|
139
143
|
```ts snippet
|
|
140
144
|
const named = await board.talent.retrieve('jane-doe');
|
|
141
145
|
const opaque = await board.talent.retrieve('bu_candidate');
|
package/skills/manifest.json
CHANGED