@cavuno/board 4.21.0 → 4.22.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 +24 -0
- package/dist/{_spec-CyNKpM_j.d.mts → _spec-p1bcDr9R.d.mts} +7 -0
- package/dist/{_spec-CyNKpM_j.d.ts → _spec-p1bcDr9R.d.ts} +7 -0
- package/dist/bin.mjs +58 -2
- package/dist/{blog-BNIqGayD.d.mts → blog-CsI8GdJS.d.mts} +1 -1
- package/dist/{blog-CRvaDyzJ.d.ts → blog-DB4YIfn4.d.ts} +1 -1
- package/dist/{board-mn3GVbrC.d.mts → board-CuIyeFsj.d.mts} +2 -2
- package/dist/{board-CXNxSlUB.d.ts → board-Dq9gD7qr.d.ts} +2 -2
- package/dist/{breadcrumbs-Bi4LHNAF.d.mts → breadcrumbs-B_WTKaIk.d.mts} +2 -2
- package/dist/{breadcrumbs-Crk6Q69T.d.ts → breadcrumbs-CyCZ8N8_.d.ts} +2 -2
- package/dist/browser/cavuno-board.global.min.js +1 -1
- package/dist/{chunk-RORHD4WQ.mjs → chunk-DP2ZZZEO.mjs} +9 -1
- package/dist/doctor.js +58 -2
- package/dist/doctor.mjs +58 -2
- package/dist/filters.d.mts +2 -2
- package/dist/filters.d.ts +2 -2
- package/dist/format.d.mts +4 -4
- package/dist/format.d.ts +4 -4
- package/dist/index.d.mts +42 -13
- package/dist/index.d.ts +42 -13
- package/dist/index.js +48 -1
- package/dist/index.mjs +43 -2
- package/dist/{jobs-CALE3I8I.d.mts → jobs-Bv12BcSA.d.mts} +1 -1
- package/dist/{jobs-CSWXqLZR.d.ts → jobs-C-sBPgNp.d.ts} +1 -1
- package/dist/{search-B_hwS-xu.d.mts → search-CNeOnhWb.d.mts} +1 -1
- package/dist/{search-BRCbe1Nm.d.ts → search-W28d76OJ.d.ts} +1 -1
- package/dist/{seo-CS4lrG20.d.mts → seo-BGHJcfev.d.mts} +1 -1
- package/dist/{seo-D1u-RmLQ.d.ts → seo-DAHd1ngs.d.ts} +1 -1
- package/dist/seo-files.d.mts +2 -2
- package/dist/seo-files.d.ts +2 -2
- package/dist/seo.d.mts +6 -6
- package/dist/seo.d.ts +6 -6
- package/dist/server.d.mts +6 -6
- package/dist/server.d.ts +6 -6
- package/dist/server.mjs +1 -1
- package/dist/sitemap.d.mts +6 -6
- package/dist/sitemap.d.ts +6 -6
- package/dist/sitemap.mjs +1 -1
- package/dist/suggest.d.mts +2 -2
- package/dist/suggest.d.ts +2 -2
- package/package.json +1 -1
- package/skills/cavuno-board-companies/SKILL.md +6 -0
- package/skills/manifest.json +1 -1
package/dist/doctor.js
CHANGED
|
@@ -416,6 +416,7 @@ var READ = {
|
|
|
416
416
|
home: record("read.home", 2),
|
|
417
417
|
jobs: record("read.jobs", 2),
|
|
418
418
|
jsonld: record("read.jsonld", 2),
|
|
419
|
+
boardIdentity: record("read.boardIdentity", 2),
|
|
419
420
|
sitemap: record("read.sitemap", 2),
|
|
420
421
|
robots: record("read.robots", 2),
|
|
421
422
|
adsTxt: record("read.adsTxt", 2),
|
|
@@ -455,6 +456,55 @@ async function probeJobsAndJsonLd(fetchImpl, base) {
|
|
|
455
456
|
)
|
|
456
457
|
];
|
|
457
458
|
}
|
|
459
|
+
async function probeBoardIdentity(fetchImpl, robotsBody, env) {
|
|
460
|
+
if (!env?.apiUrl || !env.boardKey) {
|
|
461
|
+
return READ.boardIdentity(
|
|
462
|
+
"skip",
|
|
463
|
+
"not probed \u2014 env checks failed (see the env.* failures)"
|
|
464
|
+
);
|
|
465
|
+
}
|
|
466
|
+
const advertised = robotsBody?.match(/^Sitemap:\s*(\S+)/im)?.[1] ?? null;
|
|
467
|
+
if (advertised === null) {
|
|
468
|
+
return READ.boardIdentity(
|
|
469
|
+
"skip",
|
|
470
|
+
"not probed \u2014 robots.txt advertises no Sitemap: URL to compare (see read.robots)"
|
|
471
|
+
);
|
|
472
|
+
}
|
|
473
|
+
const board = await probe(
|
|
474
|
+
fetchImpl,
|
|
475
|
+
`${apiBase(env.apiUrl)}/v1/boards/${encodeURIComponent(env.boardKey)}`
|
|
476
|
+
);
|
|
477
|
+
let expected = null;
|
|
478
|
+
try {
|
|
479
|
+
const parsed = JSON.parse(board.body);
|
|
480
|
+
if (typeof parsed.primaryDomain === "string")
|
|
481
|
+
expected = parsed.primaryDomain;
|
|
482
|
+
} catch {
|
|
483
|
+
}
|
|
484
|
+
if (expected === null) {
|
|
485
|
+
return READ.boardIdentity(
|
|
486
|
+
"skip",
|
|
487
|
+
`could not read this board's domain to compare (HTTP ${board.status})`
|
|
488
|
+
);
|
|
489
|
+
}
|
|
490
|
+
let served;
|
|
491
|
+
try {
|
|
492
|
+
served = new URL(advertised).host;
|
|
493
|
+
} catch {
|
|
494
|
+
return READ.boardIdentity(
|
|
495
|
+
"skip",
|
|
496
|
+
`robots.txt Sitemap: is not an absolute URL (${advertised})`
|
|
497
|
+
);
|
|
498
|
+
}
|
|
499
|
+
const bare = (host) => host.replace(/^www\./, "").toLowerCase();
|
|
500
|
+
if (bare(served) === bare(expected)) {
|
|
501
|
+
return READ.boardIdentity("pass", `serving this board (${expected})`);
|
|
502
|
+
}
|
|
503
|
+
return READ.boardIdentity(
|
|
504
|
+
"warn",
|
|
505
|
+
`robots.txt advertises ${served}, but board ${env.boardKey} is ${expected} \u2014 either this deployment is bound to a DIFFERENT board (check CAVUNO_BOARD in the deployed environment) or this board's canonical base and custom domain differ.`
|
|
506
|
+
);
|
|
507
|
+
}
|
|
458
508
|
function onFrontend(base, locUrl) {
|
|
459
509
|
try {
|
|
460
510
|
const parsed = new URL(locUrl);
|
|
@@ -580,7 +630,7 @@ function scoreOAuthCallback(probed) {
|
|
|
580
630
|
`${broken.map((p) => `/api/board-auth/oauth/${p}/callback \u2192 HTTP ${probed[p].status}`).join(", ")} \u2014 only matters if you registered this domain's callback with the provider: forward the path to cavuno.com, or register https://cavuno.com/api/board-auth/oauth/{provider}/callback instead`
|
|
581
631
|
);
|
|
582
632
|
}
|
|
583
|
-
async function runReadProbes(fetchImpl, frontendUrl, seo) {
|
|
633
|
+
async function runReadProbes(fetchImpl, frontendUrl, seo, env) {
|
|
584
634
|
const base = frontendUrl.replace(/\/$/, "");
|
|
585
635
|
const home = await probe(fetchImpl, base);
|
|
586
636
|
const jobsAndJsonLd = await probeJobsAndJsonLd(fetchImpl, base);
|
|
@@ -598,12 +648,18 @@ async function runReadProbes(fetchImpl, frontendUrl, seo) {
|
|
|
598
648
|
`${base}/api/board-auth/oauth/linkedin/callback`
|
|
599
649
|
)
|
|
600
650
|
};
|
|
651
|
+
const boardIdentity = await probeBoardIdentity(
|
|
652
|
+
fetchImpl,
|
|
653
|
+
robots.ok ? robots.body : null,
|
|
654
|
+
env
|
|
655
|
+
);
|
|
601
656
|
return [
|
|
602
657
|
home.ok && /<(html|body|div|main)[\s>]/i.test(home.body) ? READ.home("pass", "home renders") : READ.home(
|
|
603
658
|
"fail",
|
|
604
659
|
home.ok ? "home returned 200 but no HTML document \u2014 captive portal or empty shell?" : `home HTTP ${home.status}`
|
|
605
660
|
),
|
|
606
661
|
...jobsAndJsonLd,
|
|
662
|
+
boardIdentity,
|
|
607
663
|
sitemap,
|
|
608
664
|
scoreRobots(robots, seo),
|
|
609
665
|
scoreOptionalTextFile({
|
|
@@ -777,7 +833,7 @@ async function runDoctor(options) {
|
|
|
777
833
|
results.push(...checkCookieCodecConformance(projectRoot));
|
|
778
834
|
results.push(checkAnalyticsSurface(projectRoot));
|
|
779
835
|
results.push(
|
|
780
|
-
...options.frontendUrl ? await runReadProbes(fetchImpl, options.frontendUrl, seo) : skipReadProbes("no --frontend <url> given")
|
|
836
|
+
...options.frontendUrl ? await runReadProbes(fetchImpl, options.frontendUrl, seo, env) : skipReadProbes("no --frontend <url> given")
|
|
781
837
|
);
|
|
782
838
|
return { results, summary: summarize(results) };
|
|
783
839
|
}
|
package/dist/doctor.mjs
CHANGED
|
@@ -386,6 +386,7 @@ var READ = {
|
|
|
386
386
|
home: record("read.home", 2),
|
|
387
387
|
jobs: record("read.jobs", 2),
|
|
388
388
|
jsonld: record("read.jsonld", 2),
|
|
389
|
+
boardIdentity: record("read.boardIdentity", 2),
|
|
389
390
|
sitemap: record("read.sitemap", 2),
|
|
390
391
|
robots: record("read.robots", 2),
|
|
391
392
|
adsTxt: record("read.adsTxt", 2),
|
|
@@ -425,6 +426,55 @@ async function probeJobsAndJsonLd(fetchImpl, base) {
|
|
|
425
426
|
)
|
|
426
427
|
];
|
|
427
428
|
}
|
|
429
|
+
async function probeBoardIdentity(fetchImpl, robotsBody, env) {
|
|
430
|
+
if (!env?.apiUrl || !env.boardKey) {
|
|
431
|
+
return READ.boardIdentity(
|
|
432
|
+
"skip",
|
|
433
|
+
"not probed \u2014 env checks failed (see the env.* failures)"
|
|
434
|
+
);
|
|
435
|
+
}
|
|
436
|
+
const advertised = robotsBody?.match(/^Sitemap:\s*(\S+)/im)?.[1] ?? null;
|
|
437
|
+
if (advertised === null) {
|
|
438
|
+
return READ.boardIdentity(
|
|
439
|
+
"skip",
|
|
440
|
+
"not probed \u2014 robots.txt advertises no Sitemap: URL to compare (see read.robots)"
|
|
441
|
+
);
|
|
442
|
+
}
|
|
443
|
+
const board = await probe(
|
|
444
|
+
fetchImpl,
|
|
445
|
+
`${apiBase(env.apiUrl)}/v1/boards/${encodeURIComponent(env.boardKey)}`
|
|
446
|
+
);
|
|
447
|
+
let expected = null;
|
|
448
|
+
try {
|
|
449
|
+
const parsed = JSON.parse(board.body);
|
|
450
|
+
if (typeof parsed.primaryDomain === "string")
|
|
451
|
+
expected = parsed.primaryDomain;
|
|
452
|
+
} catch {
|
|
453
|
+
}
|
|
454
|
+
if (expected === null) {
|
|
455
|
+
return READ.boardIdentity(
|
|
456
|
+
"skip",
|
|
457
|
+
`could not read this board's domain to compare (HTTP ${board.status})`
|
|
458
|
+
);
|
|
459
|
+
}
|
|
460
|
+
let served;
|
|
461
|
+
try {
|
|
462
|
+
served = new URL(advertised).host;
|
|
463
|
+
} catch {
|
|
464
|
+
return READ.boardIdentity(
|
|
465
|
+
"skip",
|
|
466
|
+
`robots.txt Sitemap: is not an absolute URL (${advertised})`
|
|
467
|
+
);
|
|
468
|
+
}
|
|
469
|
+
const bare = (host) => host.replace(/^www\./, "").toLowerCase();
|
|
470
|
+
if (bare(served) === bare(expected)) {
|
|
471
|
+
return READ.boardIdentity("pass", `serving this board (${expected})`);
|
|
472
|
+
}
|
|
473
|
+
return READ.boardIdentity(
|
|
474
|
+
"warn",
|
|
475
|
+
`robots.txt advertises ${served}, but board ${env.boardKey} is ${expected} \u2014 either this deployment is bound to a DIFFERENT board (check CAVUNO_BOARD in the deployed environment) or this board's canonical base and custom domain differ.`
|
|
476
|
+
);
|
|
477
|
+
}
|
|
428
478
|
function onFrontend(base, locUrl) {
|
|
429
479
|
try {
|
|
430
480
|
const parsed = new URL(locUrl);
|
|
@@ -550,7 +600,7 @@ function scoreOAuthCallback(probed) {
|
|
|
550
600
|
`${broken.map((p) => `/api/board-auth/oauth/${p}/callback \u2192 HTTP ${probed[p].status}`).join(", ")} \u2014 only matters if you registered this domain's callback with the provider: forward the path to cavuno.com, or register https://cavuno.com/api/board-auth/oauth/{provider}/callback instead`
|
|
551
601
|
);
|
|
552
602
|
}
|
|
553
|
-
async function runReadProbes(fetchImpl, frontendUrl, seo) {
|
|
603
|
+
async function runReadProbes(fetchImpl, frontendUrl, seo, env) {
|
|
554
604
|
const base = frontendUrl.replace(/\/$/, "");
|
|
555
605
|
const home = await probe(fetchImpl, base);
|
|
556
606
|
const jobsAndJsonLd = await probeJobsAndJsonLd(fetchImpl, base);
|
|
@@ -568,12 +618,18 @@ async function runReadProbes(fetchImpl, frontendUrl, seo) {
|
|
|
568
618
|
`${base}/api/board-auth/oauth/linkedin/callback`
|
|
569
619
|
)
|
|
570
620
|
};
|
|
621
|
+
const boardIdentity = await probeBoardIdentity(
|
|
622
|
+
fetchImpl,
|
|
623
|
+
robots.ok ? robots.body : null,
|
|
624
|
+
env
|
|
625
|
+
);
|
|
571
626
|
return [
|
|
572
627
|
home.ok && /<(html|body|div|main)[\s>]/i.test(home.body) ? READ.home("pass", "home renders") : READ.home(
|
|
573
628
|
"fail",
|
|
574
629
|
home.ok ? "home returned 200 but no HTML document \u2014 captive portal or empty shell?" : `home HTTP ${home.status}`
|
|
575
630
|
),
|
|
576
631
|
...jobsAndJsonLd,
|
|
632
|
+
boardIdentity,
|
|
577
633
|
sitemap,
|
|
578
634
|
scoreRobots(robots, seo),
|
|
579
635
|
scoreOptionalTextFile({
|
|
@@ -747,7 +803,7 @@ async function runDoctor(options) {
|
|
|
747
803
|
results.push(...checkCookieCodecConformance(projectRoot));
|
|
748
804
|
results.push(checkAnalyticsSurface(projectRoot));
|
|
749
805
|
results.push(
|
|
750
|
-
...options.frontendUrl ? await runReadProbes(fetchImpl, options.frontendUrl, seo) : skipReadProbes("no --frontend <url> given")
|
|
806
|
+
...options.frontendUrl ? await runReadProbes(fetchImpl, options.frontendUrl, seo, env) : skipReadProbes("no --frontend <url> given")
|
|
751
807
|
);
|
|
752
808
|
return { results, summary: summarize(results) };
|
|
753
809
|
}
|
package/dist/filters.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { J as JobSort, E as EmploymentType, R as RemoteOption, S as Seniority } from './jobs-
|
|
2
|
-
import './_spec-
|
|
1
|
+
import { J as JobSort, E as EmploymentType, R as RemoteOption, S as Seniority } from './jobs-Bv12BcSA.mjs';
|
|
2
|
+
import './_spec-p1bcDr9R.mjs';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* `@cavuno/board/filters` — the canonical listing-filter vocabulary and URL
|
package/dist/filters.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { J as JobSort, E as EmploymentType, R as RemoteOption, S as Seniority } from './jobs-
|
|
2
|
-
import './_spec-
|
|
1
|
+
import { J as JobSort, E as EmploymentType, R as RemoteOption, S as Seniority } from './jobs-C-sBPgNp.js';
|
|
2
|
+
import './_spec-p1bcDr9R.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* `@cavuno/board/filters` — the canonical listing-filter vocabulary and URL
|
package/dist/format.d.mts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export { C as CurrencyDisplay, F as FormattedSalaryRange, J as JobBreadcrumb, N as NumberNotation, S as SalaryTimeframeInput, a as SalaryTimeframeValue, b as buildJobBreadcrumbs, f as formatSalaryRange, c as formatSalaryStat, d as formatSalaryStatRange, n as normalizeWebsiteUrl } from './breadcrumbs-
|
|
2
|
-
import { C as CustomFieldDefinition } from './board-
|
|
3
|
-
import { C as CustomFieldValues } from './jobs-
|
|
4
|
-
import './_spec-
|
|
1
|
+
export { C as CurrencyDisplay, F as FormattedSalaryRange, J as JobBreadcrumb, N as NumberNotation, S as SalaryTimeframeInput, a as SalaryTimeframeValue, b as buildJobBreadcrumbs, f as formatSalaryRange, c as formatSalaryStat, d as formatSalaryStatRange, n as normalizeWebsiteUrl } from './breadcrumbs-B_WTKaIk.mjs';
|
|
2
|
+
import { C as CustomFieldDefinition } from './board-CuIyeFsj.mjs';
|
|
3
|
+
import { C as CustomFieldValues } from './jobs-Bv12BcSA.mjs';
|
|
4
|
+
import './_spec-p1bcDr9R.mjs';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Date display helpers in the board language (required leading parameter,
|
package/dist/format.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export { C as CurrencyDisplay, F as FormattedSalaryRange, J as JobBreadcrumb, N as NumberNotation, S as SalaryTimeframeInput, a as SalaryTimeframeValue, b as buildJobBreadcrumbs, f as formatSalaryRange, c as formatSalaryStat, d as formatSalaryStatRange, n as normalizeWebsiteUrl } from './breadcrumbs-
|
|
2
|
-
import { C as CustomFieldDefinition } from './board-
|
|
3
|
-
import { C as CustomFieldValues } from './jobs-
|
|
4
|
-
import './_spec-
|
|
1
|
+
export { C as CurrencyDisplay, F as FormattedSalaryRange, J as JobBreadcrumb, N as NumberNotation, S as SalaryTimeframeInput, a as SalaryTimeframeValue, b as buildJobBreadcrumbs, f as formatSalaryRange, c as formatSalaryStat, d as formatSalaryStatRange, n as normalizeWebsiteUrl } from './breadcrumbs-CyCZ8N8_.js';
|
|
2
|
+
import { C as CustomFieldDefinition } from './board-Dq9gD7qr.js';
|
|
3
|
+
import { C as CustomFieldValues } from './jobs-C-sBPgNp.js';
|
|
4
|
+
import './_spec-p1bcDr9R.js';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Date display helpers in the board language (required leading parameter,
|
package/dist/index.d.mts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { S as Schemas, c as components } from './_spec-
|
|
2
|
-
import { F as FetchOptions, S as StorageMode, B as BoardRequest, A as Awaitable, L as Logger, a as BoardClient, b as SearchSuggestQuery } from './search-
|
|
3
|
-
export { c as ACCESS_TOKEN_KEY, d as BOARD_ACCESS_GRANT_KEY, C as CompanySuggestion, e as CustomStorage, M as MarketSuggestion, R as REFRESH_TOKEN_KEY, f as SearchSuggestType, g as SuggestResult, h as SuggestionItem, T as TermSuggestion } from './search-
|
|
4
|
-
import { c as CompaniesListQuery, d as CompanyListEnvelope, e as CompaniesSearchBody, f as CompanyJobsListQuery, g as CompanySimilarQuery, h as CompanyMarketsListQuery, i as SalaryDetailQuery } from './board-
|
|
5
|
-
export { a as CompanyCategorySalary, j as CompanyMarket, k as CompanyMarketRef, b as CompanySalary, l as CompanySalarySummary, C as CustomFieldDefinition, m as CustomFieldOption, n as CustomFieldType, L as LocationSalaryDetail, o as LocationSkillsIndex, p as LocationTitlesIndex, P as PublicBoard, q as PublicBoardAds, r as PublicBoardAnalytics, s as PublicBoardFeatures, t as PublicBoardJobForm, u as PublicCompany, v as PublicCompanyDetail, w as PublicCompanyMembership, x as SalaryCompany, y as SalaryLocation, z as SalarySkill, A as SalaryTitle, B as SkillLocationSalary, D as SkillLocationsIndex, S as SkillSalaryDetail, E as TitleLocationSalary, F as TitleLocationsIndex, T as TitleSalaryDetail } from './board-
|
|
6
|
-
export { B as BoardSeo } from './seo-
|
|
7
|
-
import { R as RemoteOption, E as EmploymentType, S as Seniority, L as ListEnvelope, a as JobsListQuery, b as JobCardListEnvelope, c as JobsSearchBody, d as JobCardSearchEnvelope, e as JobsSimilarQuery, f as SearchEnvelope } from './jobs-
|
|
8
|
-
export { g as CustomFieldValue, C as CustomFieldValues, h as EducationRequirement, i as JobCatalogPagination, j as JobCompany, J as JobSort, O as OfficeLocation, k as OffsetPagination, P as PublicJob, l as PublicJobCard, m as RelatedSearch, n as RemotePermit, o as RemoteTimezone, p as StorefrontPagination } from './jobs-
|
|
9
|
-
import { a as BlogPostsListQuery, b as BlogSimilarQuery, c as BlogSearchBody } from './blog-
|
|
10
|
-
export { B as BlogAuthorEmbed, d as BlogTagEmbed, e as PublicBlogAdjacentPosts, f as PublicBlogAuthor, g as PublicBlogPost, P as PublicBlogPostSummary, h as PublicBlogTag } from './blog-
|
|
1
|
+
import { S as Schemas, c as components } from './_spec-p1bcDr9R.mjs';
|
|
2
|
+
import { F as FetchOptions, S as StorageMode, B as BoardRequest, A as Awaitable, L as Logger, a as BoardClient, b as SearchSuggestQuery } from './search-CNeOnhWb.mjs';
|
|
3
|
+
export { c as ACCESS_TOKEN_KEY, d as BOARD_ACCESS_GRANT_KEY, C as CompanySuggestion, e as CustomStorage, M as MarketSuggestion, R as REFRESH_TOKEN_KEY, f as SearchSuggestType, g as SuggestResult, h as SuggestionItem, T as TermSuggestion } from './search-CNeOnhWb.mjs';
|
|
4
|
+
import { c as CompaniesListQuery, d as CompanyListEnvelope, e as CompaniesSearchBody, f as CompanyJobsListQuery, g as CompanySimilarQuery, h as CompanyMarketsListQuery, i as SalaryDetailQuery } from './board-CuIyeFsj.mjs';
|
|
5
|
+
export { a as CompanyCategorySalary, j as CompanyMarket, k as CompanyMarketRef, b as CompanySalary, l as CompanySalarySummary, C as CustomFieldDefinition, m as CustomFieldOption, n as CustomFieldType, L as LocationSalaryDetail, o as LocationSkillsIndex, p as LocationTitlesIndex, P as PublicBoard, q as PublicBoardAds, r as PublicBoardAnalytics, s as PublicBoardFeatures, t as PublicBoardJobForm, u as PublicCompany, v as PublicCompanyDetail, w as PublicCompanyMembership, x as SalaryCompany, y as SalaryLocation, z as SalarySkill, A as SalaryTitle, B as SkillLocationSalary, D as SkillLocationsIndex, S as SkillSalaryDetail, E as TitleLocationSalary, F as TitleLocationsIndex, T as TitleSalaryDetail } from './board-CuIyeFsj.mjs';
|
|
6
|
+
export { B as BoardSeo } from './seo-BGHJcfev.mjs';
|
|
7
|
+
import { R as RemoteOption, E as EmploymentType, S as Seniority, L as ListEnvelope, a as JobsListQuery, b as JobCardListEnvelope, c as JobsSearchBody, d as JobCardSearchEnvelope, e as JobsSimilarQuery, f as SearchEnvelope } from './jobs-Bv12BcSA.mjs';
|
|
8
|
+
export { g as CustomFieldValue, C as CustomFieldValues, h as EducationRequirement, i as JobCatalogPagination, j as JobCompany, J as JobSort, O as OfficeLocation, k as OffsetPagination, P as PublicJob, l as PublicJobCard, m as RelatedSearch, n as RemotePermit, o as RemoteTimezone, p as StorefrontPagination } from './jobs-Bv12BcSA.mjs';
|
|
9
|
+
import { a as BlogPostsListQuery, b as BlogSimilarQuery, c as BlogSearchBody } from './blog-CsI8GdJS.mjs';
|
|
10
|
+
export { B as BlogAuthorEmbed, d as BlogTagEmbed, e as PublicBlogAdjacentPosts, f as PublicBlogAuthor, g as PublicBlogPost, P as PublicBlogPostSummary, h as PublicBlogTag } from './blog-CsI8GdJS.mjs';
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* Well-known `<domain>_<snake_reason>` codes the Board API sends, grouped by
|
|
@@ -20,7 +20,7 @@ export { B as BlogAuthorEmbed, d as BlogTagEmbed, e as PublicBlogAdjacentPosts,
|
|
|
20
20
|
* `unknown_error` is SDK-synthesized when a response carries no parseable
|
|
21
21
|
* envelope.
|
|
22
22
|
*/
|
|
23
|
-
declare const BOARD_API_ERROR_CODES: readonly ["internal_error", "validation_bad_request", "validation_payload_too_large", "rate_limited", "rate_limit_unavailable", "search_unavailable", "too_many_filter_values", "pagination_invalid_cursor", "pagination_offset_too_large", "auth_unauthenticated", "auth_forbidden", "plan_upgrade_required", "unknown_error", "boards_not_found", "board_page_not_found", "board_auth_account_not_found", "board_auth_email_taken", "board_auth_invalid_credentials", "board_auth_invalid_token", "board_auth_registration_disabled", "board_auth_token_expired", "invalid_current_password", "no_password", "same_email", "email_taken", "invalid_token", "board_password_required", "board_password_invalid", "jobs_not_found", "jobs_invalid_filter", "categories_not_found", "skills_not_found", "places_not_found", "companies_not_found", "company_markets_not_found", "company_salary_not_found", "company_category_salary_not_found", "salaries_title_not_found", "salaries_skill_not_found", "salaries_location_not_found", "salaries_title_location_not_found", "salaries_skill_location_not_found", "blog_post_not_found", "blog_author_not_found", "blog_tag_not_found", "talent_not_found", "talent_directory_not_found", "talent_directory_restricted", "job_recommendations_not_found", "recommended_talent_not_found", "job_alert_not_found", "job_alerts_disabled", "candidate_alert_limit_reached", "candidate_alert_not_found", "candidate_entry_not_found", "candidate_handle_taken", "candidate_job_not_found", "candidate_notification_preference_paused", "resume_invalid_file", "resume_upload_forbidden", "applications_external_apply_only", "applications_country_not_allowed", "applications_guest_not_allowed", "applications_job_not_found", "applications_not_found", "applications_resume_invalid_file", "applications_unprocessable", "messaging_application_not_found", "messaging_application_not_linked", "messaging_blocked", "messaging_cannot_block_self", "messaging_cold_rule", "messaging_conversation_not_found", "messaging_disabled", "messaging_edit_window_expired", "messaging_message_deleted", "messaging_message_not_found", "messaging_not_author", "messaging_not_participant", "messaging_not_permitted", "messaging_not_recipient", "messaging_rate_limited", "messaging_recipient_not_found", "messaging_recipient_not_open", "messaging_unsend_window_expired", "employer_applicant_not_found", "employer_ats_unprocessable", "employer_checkout_failed", "employer_company_exists", "employer_company_name_taken", "employer_company_not_found", "employer_job_not_found", "employer_job_slug_taken", "employer_jobs_quota_exceeded", "membership_required", "employer_not_member", "employer_payment_required", "employer_pipeline_stage_not_found", "employer_member_not_found", "employer_invite_not_found", "not_company_admin", "not_company_member", "company_deletion_disabled", "last_admin", "already_member", "already_invited", "invalid_email", "invite_email_mismatch", "candidate_role", "job_not_published", "talent_list_not_found", "sourced_candidate_not_found", "sourced_convert_unavailable", "candidate_paywall_access_required", "paywall_already_active", "paywall_disabled", "paywall_invalid_checkout_session", "paywall_no_candidate_profile", "paywall_no_recurring_subscription", "paywall_offer_not_found", "talent_access_unavailable", "company_required", "already_on_plan", "talent_access_required", "messaging_talent_access_required", "stripe_not_connected", "job_posting_logo_lookup_unavailable", "job_posting_logo_not_found", "job_posting_rejected"];
|
|
23
|
+
declare const BOARD_API_ERROR_CODES: readonly ["internal_error", "validation_bad_request", "validation_payload_too_large", "rate_limited", "rate_limit_unavailable", "search_unavailable", "too_many_filter_values", "pagination_invalid_cursor", "pagination_offset_too_large", "auth_unauthenticated", "auth_forbidden", "plan_upgrade_required", "unknown_error", "boards_not_found", "board_page_not_found", "board_auth_account_not_found", "board_auth_email_taken", "board_auth_invalid_credentials", "board_auth_invalid_token", "board_auth_registration_disabled", "board_auth_token_expired", "invalid_current_password", "no_password", "same_email", "email_taken", "invalid_token", "board_password_required", "board_password_invalid", "jobs_not_found", "jobs_invalid_filter", "categories_not_found", "skills_not_found", "places_not_found", "companies_not_found", "company_markets_not_found", "company_salary_not_found", "company_category_salary_not_found", "salaries_title_not_found", "salaries_skill_not_found", "salaries_location_not_found", "salaries_title_location_not_found", "salaries_skill_location_not_found", "blog_post_not_found", "blog_author_not_found", "blog_tag_not_found", "talent_not_found", "talent_directory_not_found", "talent_directory_restricted", "job_recommendations_not_found", "recommended_talent_not_found", "job_alert_not_found", "job_alerts_disabled", "candidate_alert_limit_reached", "candidate_alert_not_found", "candidate_entry_not_found", "candidate_handle_taken", "candidate_job_not_found", "candidate_notification_preference_paused", "resume_invalid_file", "resume_upload_forbidden", "applications_external_apply_only", "applications_country_not_allowed", "applications_guest_not_allowed", "applications_job_not_found", "applications_not_found", "applications_resume_invalid_file", "applications_unprocessable", "messaging_application_not_found", "messaging_application_not_linked", "messaging_blocked", "messaging_cannot_block_self", "messaging_cold_rule", "messaging_conversation_not_found", "messaging_disabled", "messaging_edit_window_expired", "messaging_message_deleted", "messaging_message_not_found", "messaging_not_author", "messaging_not_participant", "messaging_not_permitted", "messaging_not_recipient", "messaging_rate_limited", "messaging_recipient_not_found", "messaging_recipient_not_open", "messaging_unsend_window_expired", "employer_applicant_not_found", "employer_ats_unprocessable", "employer_checkout_failed", "employer_company_exists", "employer_free_email_website", "employer_company_name_taken", "employer_company_not_found", "employer_job_not_found", "employer_job_slug_taken", "employer_jobs_quota_exceeded", "membership_required", "employer_not_member", "employer_payment_required", "employer_pipeline_stage_not_found", "employer_member_not_found", "employer_invite_not_found", "not_company_admin", "not_company_member", "company_deletion_disabled", "last_admin", "already_member", "already_invited", "invalid_email", "invite_email_mismatch", "candidate_role", "job_not_published", "talent_list_not_found", "sourced_candidate_not_found", "sourced_convert_unavailable", "candidate_paywall_access_required", "paywall_already_active", "paywall_disabled", "paywall_invalid_checkout_session", "paywall_no_candidate_profile", "paywall_no_recurring_subscription", "paywall_offer_not_found", "talent_access_unavailable", "company_required", "already_on_plan", "talent_access_required", "messaging_talent_access_required", "stripe_not_connected", "membership_plan_not_found", "membership_seat_taken", "job_posting_logo_lookup_unavailable", "job_posting_logo_not_found", "job_posting_rejected"];
|
|
24
24
|
/**
|
|
25
25
|
* The known code set plus open string — new codes ship additively within v1,
|
|
26
26
|
* so exhaustive narrowing is intentionally impossible.
|
|
@@ -80,6 +80,13 @@ declare function isForbidden(e: unknown): e is BoardApiError;
|
|
|
80
80
|
declare function isValidationError(e: unknown): e is BoardApiError;
|
|
81
81
|
declare function isRateLimited(e: unknown): e is BoardApiError;
|
|
82
82
|
declare function isConflict(e: unknown): e is BoardApiError;
|
|
83
|
+
/**
|
|
84
|
+
* Create/update rejected because the company website is a free / consumer
|
|
85
|
+
* email provider domain (`employer_free_email_website`). Distinct from a
|
|
86
|
+
* generic 409 conflict — callers should prompt for a real company website
|
|
87
|
+
* (or omit website), not retry the same domain.
|
|
88
|
+
*/
|
|
89
|
+
declare function isFreeEmailWebsiteError(e: unknown): e is BoardApiError;
|
|
83
90
|
|
|
84
91
|
/** The minimal page shape every v1 list/search envelope satisfies. */
|
|
85
92
|
interface PageShape {
|
|
@@ -143,7 +150,7 @@ declare function paginate<Q extends Record<string, unknown>, P extends PageShape
|
|
|
143
150
|
* constant because the package is platform-neutral and cannot read
|
|
144
151
|
* package.json at runtime.
|
|
145
152
|
*/
|
|
146
|
-
declare const SDK_VERSION = "4.
|
|
153
|
+
declare const SDK_VERSION = "4.22.0";
|
|
147
154
|
|
|
148
155
|
type SavedJob = Schemas['SavedJob'];
|
|
149
156
|
type SavedJobsListQuery = {
|
|
@@ -367,6 +374,15 @@ type TalentAccessCheckoutBody = Schemas['TalentAccessCheckoutBody'];
|
|
|
367
374
|
type TalentAccessCheckoutSession = Schemas['AccessCheckoutSession'];
|
|
368
375
|
/** Polled state of a talent-access checkout session (`board.me.talentAccess.retrieveCheckout`). */
|
|
369
376
|
type TalentAccessCheckoutSessionState = Schemas['AccessCheckoutSessionState'];
|
|
377
|
+
/** Body for `board.me.companies.startMembershipCheckout`. */
|
|
378
|
+
type MembershipCheckoutBody = Schemas['MembershipCheckoutBody'];
|
|
379
|
+
/**
|
|
380
|
+
* Connected-account mount kit from `board.me.companies.startMembershipCheckout`
|
|
381
|
+
* — same generated schema as talent-access checkout (`origin: membership`).
|
|
382
|
+
*/
|
|
383
|
+
type MembershipCheckoutSession = Schemas['AccessCheckoutSession'];
|
|
384
|
+
/** Polled state of a membership checkout session (`board.me.companies.retrieveMembershipCheckout`). */
|
|
385
|
+
type MembershipCheckoutSessionState = Schemas['AccessCheckoutSessionState'];
|
|
370
386
|
/** Result of `board.me.talentAccess.unlock`. */
|
|
371
387
|
type TalentUnlock = Schemas['TalentUnlock'];
|
|
372
388
|
/** Body for `board.me.talentAccess.unlock`. */
|
|
@@ -1922,6 +1938,19 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
|
|
|
1922
1938
|
updateMemberRole(slug: string, memberId: string, body: UpdateCompanyMemberRoleBody, options?: FetchOptions): Promise<void>;
|
|
1923
1939
|
removeMember(slug: string, memberId: string, options?: FetchOptions): Promise<void>;
|
|
1924
1940
|
leave(slug: string, options?: FetchOptions): Promise<void>;
|
|
1941
|
+
startMembershipCheckout(slug: string, body: MembershipCheckoutBody, options?: FetchOptions): Promise<{
|
|
1942
|
+
object: "checkout_session";
|
|
1943
|
+
sessionId: string;
|
|
1944
|
+
clientSecret: string;
|
|
1945
|
+
stripeAccountId: string;
|
|
1946
|
+
publishableKey: string;
|
|
1947
|
+
offerType: "recurring" | "lifetime";
|
|
1948
|
+
}>;
|
|
1949
|
+
retrieveMembershipCheckout(slug: string, sessionId: string, options?: FetchOptions): Promise<{
|
|
1950
|
+
object: "checkout_session_state";
|
|
1951
|
+
status: "open" | "complete" | "expired";
|
|
1952
|
+
clientSecret: string | null;
|
|
1953
|
+
}>;
|
|
1925
1954
|
listInvites(slug: string, options?: FetchOptions): Promise<ListEnvelope<{
|
|
1926
1955
|
id: string;
|
|
1927
1956
|
object: "company_member_invite";
|
|
@@ -3504,4 +3533,4 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
|
|
|
3504
3533
|
};
|
|
3505
3534
|
type BoardSdk = ReturnType<typeof createBoardClient>;
|
|
3506
3535
|
|
|
3507
|
-
export { type AcceptCompanyMemberInviteBody, type AccessCheckoutBody, type AccessCheckoutSession, type AccessCheckoutSessionState, type AccessGrant, type AccessPortalBody, type AccessPortalSession, type AddApplicantNoteBody, type AddSourcedCandidateBody, type Alert, type AlertBody, type Application, type ApplicationsListQuery, type ApplyAction, type ApplyApprovalPlan, type ApplyApprovalReceipt, type ApplyBody, type ApplyDecisionState, type ApplyIntent, Awaitable, BOARD_API_ERROR_CODES, type Block, type BlockStatus, type BlockUserBody, type BlockedUser, BlogPostsListQuery, BlogSearchBody, BlogSimilarQuery, type BoardAccessGrant, BoardApiError, type BoardApiErrorCode, type BoardAuthSession, BoardClient, BoardRequest, type BoardSdk, type BoardSitemapBucketSummary, type BoardSitemapIndex, type BoardUser, type BulkMoveApplicantsBody, type BulkRejectApplicantsBody, type CandidateAvatar, type CandidateEducation, type CandidateExperience, type CandidateLanguage, type CandidateProfile, type CandidateSkill, type ClaimableCompany, CompaniesListQuery, CompaniesSearchBody, type CompanyBillingPortalBody, type CompanyBillingPortalSession, CompanyJobsListQuery, CompanyListEnvelope, CompanyMarketsListQuery, type CompanyMember, type CompanyMemberInvite, type CompanyMemberInviteAcceptance, type CompanyMembership, CompanySimilarQuery, type ConfirmEmailChangeBody, type ConfirmWorkEmailBody, type ConsumeMagicLinkBody, type Conversation, type ConversationArchive, type ConversationDetail, type ConversationRef, type ConversationsListQuery, type ConvertSourcedCandidateBody, type CreateApplyApprovalBody, type CreateApplyIntentBody, type CreateBoardClientOptions, type CreateCompanyBody, type CreateCompanyMemberInviteBody, type CreateEducationBody, type CreateEmployerJobBody, type CreateExperienceBody, type CreateJobPostingInput, type CreatePipelineStageBody, type CreateTalentListBody, type EditMessageBody, type EmbedJobsQuery, type EmployerApplicant, type EmployerBillingOption, type EmployerCheckout, type EmployerCheckoutBody, type EmployerCompany, type EmployerCompanySearchQuery, type EmployerJob, type EmployerJobStat, type EmployerJobStatsPoint, type EmployerJobStatsTimeseriesQuery, type EmployerJobSummary, type EmployerJobsListQuery, type EmployerPipeline, type EmployerPipelineQuery, type EmployerPipelineStage, type EmployerProfileStats, type EmployerProfileViewsPoint, type EmployerProfileViewsTimeseriesQuery, EmploymentType, FetchOptions, type FindExistingConversationQuery, type ForgotPasswordBody, type HandleAvailability, type JobAlertConfirmation, type JobAlertDeletePreferenceInput, type JobAlertFiltersInput, type JobAlertFrequency, type JobAlertManageQuery, type JobAlertManageResult, type JobAlertManageState, type JobAlertManageTokenInput, type JobAlertPreference, type JobAlertRemoteOption, type JobAlertResendResult, type JobAlertStoredFilters, type JobAlertSubscribeInput, type JobAlertSubscription, type JobAlertUpdatePreferenceInput, JobCardListEnvelope, JobCardSearchEnvelope, type JobPostingBillingOptions, type JobPostingBillingVerification, type JobPostingLogoResult, type JobPostingPlan, type JobPostingResult, JobsListQuery, JobsSearchBody, JobsSimilarQuery, ListEnvelope, Logger, type LoginBody, type LogoutBody, type MarketingConsent, type Message, type ModerationReport, type MoveApplicantStageBody, type NotificationPreference, type OAuthAuthorizationQuery, type OAuthAuthorizationUrl, type OAuthExchangeBody, type OAuthProvider, type Paginator, type PaywallOffer, type PaywallOfferListEnvelope, type PlacesListQuery, type Plan, type PlanListEnvelope, type PlansListQuery, type PublicPlace, type PublicTaxonomyTerm, type ReadReceipt, type RecommendedJob, type RecommendedJobsListQuery, type RecommendedTalent, type RecommendedTalentListQuery, type RedirectResolution, type RefreshBody, type RegisterBody, RemoteOption, type RemotePermitTaxonomyEntry, type ReorderPipelineStagesBody, type ReplyBody, type ReportBody, type RequestEmailChangeBody, type RequestMagicLinkBody, type ResetPasswordBody, type Resume, type ResumeUploadOptions, SDK_VERSION, SalaryDetailQuery, type SalesLedPlan, type SalesLedPlanListEnvelope, type SaveJobBody, type SavedJob, type SavedJobsListQuery, SearchEnvelope, SearchSuggestQuery, type SendWorkEmailBody, Seniority, type SitemapEntriesEnvelope, type SitemapEntriesQuery, type SitemapEntry, type SourcedCandidate, type StartAboutApplicationBody, type StartConversationBody, StorageMode, type TalentAccess, type TalentAccessCheckoutBody, type TalentAccessCheckoutSession, type TalentAccessCheckoutSessionState, type TalentAccessUpgrade, type TalentAccessUpgradeBody, type TalentCandidateAccess, type TalentDirectoryEntry, type TalentDirectoryListEnvelope, type TalentDirectoryQuery, type TalentList, type TalentListFilters, type TalentProfile, type TalentUnlock, type TalentUnlockBody, type TaxonomyGeo, type TaxonomyListQuery, type TaxonomyResolution, type ThreadMessagesQuery, type UnreadCount, type UnsubscribeBody, type UpdateApplicationFactsBody, type UpdateCandidateProfileBody, type UpdateCompanyMemberRoleBody, type UpdateEducationBody, type UpdateEmployerCompanyBody, type UpdateEmployerJobBody, type UpdateExperienceBody, type UpdateLanguagesBody, type UpdateNotificationPreferenceBody, type UpdatePasswordBody, type UpdatePipelineStageBody, type UpdateSkillsBody, type UpdateTalentListBody, type VerifyEmailBody, createBoardClient, isBoardApiError, isBoardPasswordRequired, isColdRule, isConflict, isForbidden, isNotFound, isOwnMessage, isRateLimited, isSafeApplicationUrl, isUnauthorized, isValidationError, lastOwnMessageId, paginate, resolveApplyAction, resolveApplyDecision };
|
|
3536
|
+
export { type AcceptCompanyMemberInviteBody, type AccessCheckoutBody, type AccessCheckoutSession, type AccessCheckoutSessionState, type AccessGrant, type AccessPortalBody, type AccessPortalSession, type AddApplicantNoteBody, type AddSourcedCandidateBody, type Alert, type AlertBody, type Application, type ApplicationsListQuery, type ApplyAction, type ApplyApprovalPlan, type ApplyApprovalReceipt, type ApplyBody, type ApplyDecisionState, type ApplyIntent, Awaitable, BOARD_API_ERROR_CODES, type Block, type BlockStatus, type BlockUserBody, type BlockedUser, BlogPostsListQuery, BlogSearchBody, BlogSimilarQuery, type BoardAccessGrant, BoardApiError, type BoardApiErrorCode, type BoardAuthSession, BoardClient, BoardRequest, type BoardSdk, type BoardSitemapBucketSummary, type BoardSitemapIndex, type BoardUser, type BulkMoveApplicantsBody, type BulkRejectApplicantsBody, type CandidateAvatar, type CandidateEducation, type CandidateExperience, type CandidateLanguage, type CandidateProfile, type CandidateSkill, type ClaimableCompany, CompaniesListQuery, CompaniesSearchBody, type CompanyBillingPortalBody, type CompanyBillingPortalSession, CompanyJobsListQuery, CompanyListEnvelope, CompanyMarketsListQuery, type CompanyMember, type CompanyMemberInvite, type CompanyMemberInviteAcceptance, type CompanyMembership, CompanySimilarQuery, type ConfirmEmailChangeBody, type ConfirmWorkEmailBody, type ConsumeMagicLinkBody, type Conversation, type ConversationArchive, type ConversationDetail, type ConversationRef, type ConversationsListQuery, type ConvertSourcedCandidateBody, type CreateApplyApprovalBody, type CreateApplyIntentBody, type CreateBoardClientOptions, type CreateCompanyBody, type CreateCompanyMemberInviteBody, type CreateEducationBody, type CreateEmployerJobBody, type CreateExperienceBody, type CreateJobPostingInput, type CreatePipelineStageBody, type CreateTalentListBody, type EditMessageBody, type EmbedJobsQuery, type EmployerApplicant, type EmployerBillingOption, type EmployerCheckout, type EmployerCheckoutBody, type EmployerCompany, type EmployerCompanySearchQuery, type EmployerJob, type EmployerJobStat, type EmployerJobStatsPoint, type EmployerJobStatsTimeseriesQuery, type EmployerJobSummary, type EmployerJobsListQuery, type EmployerPipeline, type EmployerPipelineQuery, type EmployerPipelineStage, type EmployerProfileStats, type EmployerProfileViewsPoint, type EmployerProfileViewsTimeseriesQuery, EmploymentType, FetchOptions, type FindExistingConversationQuery, type ForgotPasswordBody, type HandleAvailability, type JobAlertConfirmation, type JobAlertDeletePreferenceInput, type JobAlertFiltersInput, type JobAlertFrequency, type JobAlertManageQuery, type JobAlertManageResult, type JobAlertManageState, type JobAlertManageTokenInput, type JobAlertPreference, type JobAlertRemoteOption, type JobAlertResendResult, type JobAlertStoredFilters, type JobAlertSubscribeInput, type JobAlertSubscription, type JobAlertUpdatePreferenceInput, JobCardListEnvelope, JobCardSearchEnvelope, type JobPostingBillingOptions, type JobPostingBillingVerification, type JobPostingLogoResult, type JobPostingPlan, type JobPostingResult, JobsListQuery, JobsSearchBody, JobsSimilarQuery, ListEnvelope, Logger, type LoginBody, type LogoutBody, type MarketingConsent, type MembershipCheckoutBody, type MembershipCheckoutSession, type MembershipCheckoutSessionState, type Message, type ModerationReport, type MoveApplicantStageBody, type NotificationPreference, type OAuthAuthorizationQuery, type OAuthAuthorizationUrl, type OAuthExchangeBody, type OAuthProvider, type Paginator, type PaywallOffer, type PaywallOfferListEnvelope, type PlacesListQuery, type Plan, type PlanListEnvelope, type PlansListQuery, type PublicPlace, type PublicTaxonomyTerm, type ReadReceipt, type RecommendedJob, type RecommendedJobsListQuery, type RecommendedTalent, type RecommendedTalentListQuery, type RedirectResolution, type RefreshBody, type RegisterBody, RemoteOption, type RemotePermitTaxonomyEntry, type ReorderPipelineStagesBody, type ReplyBody, type ReportBody, type RequestEmailChangeBody, type RequestMagicLinkBody, type ResetPasswordBody, type Resume, type ResumeUploadOptions, SDK_VERSION, SalaryDetailQuery, type SalesLedPlan, type SalesLedPlanListEnvelope, type SaveJobBody, type SavedJob, type SavedJobsListQuery, SearchEnvelope, SearchSuggestQuery, type SendWorkEmailBody, Seniority, type SitemapEntriesEnvelope, type SitemapEntriesQuery, type SitemapEntry, type SourcedCandidate, type StartAboutApplicationBody, type StartConversationBody, StorageMode, type TalentAccess, type TalentAccessCheckoutBody, type TalentAccessCheckoutSession, type TalentAccessCheckoutSessionState, type TalentAccessUpgrade, type TalentAccessUpgradeBody, type TalentCandidateAccess, type TalentDirectoryEntry, type TalentDirectoryListEnvelope, type TalentDirectoryQuery, type TalentList, type TalentListFilters, type TalentProfile, type TalentUnlock, type TalentUnlockBody, type TaxonomyGeo, type TaxonomyListQuery, type TaxonomyResolution, type ThreadMessagesQuery, type UnreadCount, type UnsubscribeBody, type UpdateApplicationFactsBody, type UpdateCandidateProfileBody, type UpdateCompanyMemberRoleBody, type UpdateEducationBody, type UpdateEmployerCompanyBody, type UpdateEmployerJobBody, type UpdateExperienceBody, type UpdateLanguagesBody, type UpdateNotificationPreferenceBody, type UpdatePasswordBody, type UpdatePipelineStageBody, type UpdateSkillsBody, type UpdateTalentListBody, type VerifyEmailBody, createBoardClient, isBoardApiError, isBoardPasswordRequired, isColdRule, isConflict, isForbidden, isFreeEmailWebsiteError, isNotFound, isOwnMessage, isRateLimited, isSafeApplicationUrl, isUnauthorized, isValidationError, lastOwnMessageId, paginate, resolveApplyAction, resolveApplyDecision };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { S as Schemas, c as components } from './_spec-
|
|
2
|
-
import { F as FetchOptions, S as StorageMode, B as BoardRequest, A as Awaitable, L as Logger, a as BoardClient, b as SearchSuggestQuery } from './search-
|
|
3
|
-
export { c as ACCESS_TOKEN_KEY, d as BOARD_ACCESS_GRANT_KEY, C as CompanySuggestion, e as CustomStorage, M as MarketSuggestion, R as REFRESH_TOKEN_KEY, f as SearchSuggestType, g as SuggestResult, h as SuggestionItem, T as TermSuggestion } from './search-
|
|
4
|
-
import { c as CompaniesListQuery, d as CompanyListEnvelope, e as CompaniesSearchBody, f as CompanyJobsListQuery, g as CompanySimilarQuery, h as CompanyMarketsListQuery, i as SalaryDetailQuery } from './board-
|
|
5
|
-
export { a as CompanyCategorySalary, j as CompanyMarket, k as CompanyMarketRef, b as CompanySalary, l as CompanySalarySummary, C as CustomFieldDefinition, m as CustomFieldOption, n as CustomFieldType, L as LocationSalaryDetail, o as LocationSkillsIndex, p as LocationTitlesIndex, P as PublicBoard, q as PublicBoardAds, r as PublicBoardAnalytics, s as PublicBoardFeatures, t as PublicBoardJobForm, u as PublicCompany, v as PublicCompanyDetail, w as PublicCompanyMembership, x as SalaryCompany, y as SalaryLocation, z as SalarySkill, A as SalaryTitle, B as SkillLocationSalary, D as SkillLocationsIndex, S as SkillSalaryDetail, E as TitleLocationSalary, F as TitleLocationsIndex, T as TitleSalaryDetail } from './board-
|
|
6
|
-
export { B as BoardSeo } from './seo-
|
|
7
|
-
import { R as RemoteOption, E as EmploymentType, S as Seniority, L as ListEnvelope, a as JobsListQuery, b as JobCardListEnvelope, c as JobsSearchBody, d as JobCardSearchEnvelope, e as JobsSimilarQuery, f as SearchEnvelope } from './jobs-
|
|
8
|
-
export { g as CustomFieldValue, C as CustomFieldValues, h as EducationRequirement, i as JobCatalogPagination, j as JobCompany, J as JobSort, O as OfficeLocation, k as OffsetPagination, P as PublicJob, l as PublicJobCard, m as RelatedSearch, n as RemotePermit, o as RemoteTimezone, p as StorefrontPagination } from './jobs-
|
|
9
|
-
import { a as BlogPostsListQuery, b as BlogSimilarQuery, c as BlogSearchBody } from './blog-
|
|
10
|
-
export { B as BlogAuthorEmbed, d as BlogTagEmbed, e as PublicBlogAdjacentPosts, f as PublicBlogAuthor, g as PublicBlogPost, P as PublicBlogPostSummary, h as PublicBlogTag } from './blog-
|
|
1
|
+
import { S as Schemas, c as components } from './_spec-p1bcDr9R.js';
|
|
2
|
+
import { F as FetchOptions, S as StorageMode, B as BoardRequest, A as Awaitable, L as Logger, a as BoardClient, b as SearchSuggestQuery } from './search-W28d76OJ.js';
|
|
3
|
+
export { c as ACCESS_TOKEN_KEY, d as BOARD_ACCESS_GRANT_KEY, C as CompanySuggestion, e as CustomStorage, M as MarketSuggestion, R as REFRESH_TOKEN_KEY, f as SearchSuggestType, g as SuggestResult, h as SuggestionItem, T as TermSuggestion } from './search-W28d76OJ.js';
|
|
4
|
+
import { c as CompaniesListQuery, d as CompanyListEnvelope, e as CompaniesSearchBody, f as CompanyJobsListQuery, g as CompanySimilarQuery, h as CompanyMarketsListQuery, i as SalaryDetailQuery } from './board-Dq9gD7qr.js';
|
|
5
|
+
export { a as CompanyCategorySalary, j as CompanyMarket, k as CompanyMarketRef, b as CompanySalary, l as CompanySalarySummary, C as CustomFieldDefinition, m as CustomFieldOption, n as CustomFieldType, L as LocationSalaryDetail, o as LocationSkillsIndex, p as LocationTitlesIndex, P as PublicBoard, q as PublicBoardAds, r as PublicBoardAnalytics, s as PublicBoardFeatures, t as PublicBoardJobForm, u as PublicCompany, v as PublicCompanyDetail, w as PublicCompanyMembership, x as SalaryCompany, y as SalaryLocation, z as SalarySkill, A as SalaryTitle, B as SkillLocationSalary, D as SkillLocationsIndex, S as SkillSalaryDetail, E as TitleLocationSalary, F as TitleLocationsIndex, T as TitleSalaryDetail } from './board-Dq9gD7qr.js';
|
|
6
|
+
export { B as BoardSeo } from './seo-DAHd1ngs.js';
|
|
7
|
+
import { R as RemoteOption, E as EmploymentType, S as Seniority, L as ListEnvelope, a as JobsListQuery, b as JobCardListEnvelope, c as JobsSearchBody, d as JobCardSearchEnvelope, e as JobsSimilarQuery, f as SearchEnvelope } from './jobs-C-sBPgNp.js';
|
|
8
|
+
export { g as CustomFieldValue, C as CustomFieldValues, h as EducationRequirement, i as JobCatalogPagination, j as JobCompany, J as JobSort, O as OfficeLocation, k as OffsetPagination, P as PublicJob, l as PublicJobCard, m as RelatedSearch, n as RemotePermit, o as RemoteTimezone, p as StorefrontPagination } from './jobs-C-sBPgNp.js';
|
|
9
|
+
import { a as BlogPostsListQuery, b as BlogSimilarQuery, c as BlogSearchBody } from './blog-DB4YIfn4.js';
|
|
10
|
+
export { B as BlogAuthorEmbed, d as BlogTagEmbed, e as PublicBlogAdjacentPosts, f as PublicBlogAuthor, g as PublicBlogPost, P as PublicBlogPostSummary, h as PublicBlogTag } from './blog-DB4YIfn4.js';
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* Well-known `<domain>_<snake_reason>` codes the Board API sends, grouped by
|
|
@@ -20,7 +20,7 @@ export { B as BlogAuthorEmbed, d as BlogTagEmbed, e as PublicBlogAdjacentPosts,
|
|
|
20
20
|
* `unknown_error` is SDK-synthesized when a response carries no parseable
|
|
21
21
|
* envelope.
|
|
22
22
|
*/
|
|
23
|
-
declare const BOARD_API_ERROR_CODES: readonly ["internal_error", "validation_bad_request", "validation_payload_too_large", "rate_limited", "rate_limit_unavailable", "search_unavailable", "too_many_filter_values", "pagination_invalid_cursor", "pagination_offset_too_large", "auth_unauthenticated", "auth_forbidden", "plan_upgrade_required", "unknown_error", "boards_not_found", "board_page_not_found", "board_auth_account_not_found", "board_auth_email_taken", "board_auth_invalid_credentials", "board_auth_invalid_token", "board_auth_registration_disabled", "board_auth_token_expired", "invalid_current_password", "no_password", "same_email", "email_taken", "invalid_token", "board_password_required", "board_password_invalid", "jobs_not_found", "jobs_invalid_filter", "categories_not_found", "skills_not_found", "places_not_found", "companies_not_found", "company_markets_not_found", "company_salary_not_found", "company_category_salary_not_found", "salaries_title_not_found", "salaries_skill_not_found", "salaries_location_not_found", "salaries_title_location_not_found", "salaries_skill_location_not_found", "blog_post_not_found", "blog_author_not_found", "blog_tag_not_found", "talent_not_found", "talent_directory_not_found", "talent_directory_restricted", "job_recommendations_not_found", "recommended_talent_not_found", "job_alert_not_found", "job_alerts_disabled", "candidate_alert_limit_reached", "candidate_alert_not_found", "candidate_entry_not_found", "candidate_handle_taken", "candidate_job_not_found", "candidate_notification_preference_paused", "resume_invalid_file", "resume_upload_forbidden", "applications_external_apply_only", "applications_country_not_allowed", "applications_guest_not_allowed", "applications_job_not_found", "applications_not_found", "applications_resume_invalid_file", "applications_unprocessable", "messaging_application_not_found", "messaging_application_not_linked", "messaging_blocked", "messaging_cannot_block_self", "messaging_cold_rule", "messaging_conversation_not_found", "messaging_disabled", "messaging_edit_window_expired", "messaging_message_deleted", "messaging_message_not_found", "messaging_not_author", "messaging_not_participant", "messaging_not_permitted", "messaging_not_recipient", "messaging_rate_limited", "messaging_recipient_not_found", "messaging_recipient_not_open", "messaging_unsend_window_expired", "employer_applicant_not_found", "employer_ats_unprocessable", "employer_checkout_failed", "employer_company_exists", "employer_company_name_taken", "employer_company_not_found", "employer_job_not_found", "employer_job_slug_taken", "employer_jobs_quota_exceeded", "membership_required", "employer_not_member", "employer_payment_required", "employer_pipeline_stage_not_found", "employer_member_not_found", "employer_invite_not_found", "not_company_admin", "not_company_member", "company_deletion_disabled", "last_admin", "already_member", "already_invited", "invalid_email", "invite_email_mismatch", "candidate_role", "job_not_published", "talent_list_not_found", "sourced_candidate_not_found", "sourced_convert_unavailable", "candidate_paywall_access_required", "paywall_already_active", "paywall_disabled", "paywall_invalid_checkout_session", "paywall_no_candidate_profile", "paywall_no_recurring_subscription", "paywall_offer_not_found", "talent_access_unavailable", "company_required", "already_on_plan", "talent_access_required", "messaging_talent_access_required", "stripe_not_connected", "job_posting_logo_lookup_unavailable", "job_posting_logo_not_found", "job_posting_rejected"];
|
|
23
|
+
declare const BOARD_API_ERROR_CODES: readonly ["internal_error", "validation_bad_request", "validation_payload_too_large", "rate_limited", "rate_limit_unavailable", "search_unavailable", "too_many_filter_values", "pagination_invalid_cursor", "pagination_offset_too_large", "auth_unauthenticated", "auth_forbidden", "plan_upgrade_required", "unknown_error", "boards_not_found", "board_page_not_found", "board_auth_account_not_found", "board_auth_email_taken", "board_auth_invalid_credentials", "board_auth_invalid_token", "board_auth_registration_disabled", "board_auth_token_expired", "invalid_current_password", "no_password", "same_email", "email_taken", "invalid_token", "board_password_required", "board_password_invalid", "jobs_not_found", "jobs_invalid_filter", "categories_not_found", "skills_not_found", "places_not_found", "companies_not_found", "company_markets_not_found", "company_salary_not_found", "company_category_salary_not_found", "salaries_title_not_found", "salaries_skill_not_found", "salaries_location_not_found", "salaries_title_location_not_found", "salaries_skill_location_not_found", "blog_post_not_found", "blog_author_not_found", "blog_tag_not_found", "talent_not_found", "talent_directory_not_found", "talent_directory_restricted", "job_recommendations_not_found", "recommended_talent_not_found", "job_alert_not_found", "job_alerts_disabled", "candidate_alert_limit_reached", "candidate_alert_not_found", "candidate_entry_not_found", "candidate_handle_taken", "candidate_job_not_found", "candidate_notification_preference_paused", "resume_invalid_file", "resume_upload_forbidden", "applications_external_apply_only", "applications_country_not_allowed", "applications_guest_not_allowed", "applications_job_not_found", "applications_not_found", "applications_resume_invalid_file", "applications_unprocessable", "messaging_application_not_found", "messaging_application_not_linked", "messaging_blocked", "messaging_cannot_block_self", "messaging_cold_rule", "messaging_conversation_not_found", "messaging_disabled", "messaging_edit_window_expired", "messaging_message_deleted", "messaging_message_not_found", "messaging_not_author", "messaging_not_participant", "messaging_not_permitted", "messaging_not_recipient", "messaging_rate_limited", "messaging_recipient_not_found", "messaging_recipient_not_open", "messaging_unsend_window_expired", "employer_applicant_not_found", "employer_ats_unprocessable", "employer_checkout_failed", "employer_company_exists", "employer_free_email_website", "employer_company_name_taken", "employer_company_not_found", "employer_job_not_found", "employer_job_slug_taken", "employer_jobs_quota_exceeded", "membership_required", "employer_not_member", "employer_payment_required", "employer_pipeline_stage_not_found", "employer_member_not_found", "employer_invite_not_found", "not_company_admin", "not_company_member", "company_deletion_disabled", "last_admin", "already_member", "already_invited", "invalid_email", "invite_email_mismatch", "candidate_role", "job_not_published", "talent_list_not_found", "sourced_candidate_not_found", "sourced_convert_unavailable", "candidate_paywall_access_required", "paywall_already_active", "paywall_disabled", "paywall_invalid_checkout_session", "paywall_no_candidate_profile", "paywall_no_recurring_subscription", "paywall_offer_not_found", "talent_access_unavailable", "company_required", "already_on_plan", "talent_access_required", "messaging_talent_access_required", "stripe_not_connected", "membership_plan_not_found", "membership_seat_taken", "job_posting_logo_lookup_unavailable", "job_posting_logo_not_found", "job_posting_rejected"];
|
|
24
24
|
/**
|
|
25
25
|
* The known code set plus open string — new codes ship additively within v1,
|
|
26
26
|
* so exhaustive narrowing is intentionally impossible.
|
|
@@ -80,6 +80,13 @@ declare function isForbidden(e: unknown): e is BoardApiError;
|
|
|
80
80
|
declare function isValidationError(e: unknown): e is BoardApiError;
|
|
81
81
|
declare function isRateLimited(e: unknown): e is BoardApiError;
|
|
82
82
|
declare function isConflict(e: unknown): e is BoardApiError;
|
|
83
|
+
/**
|
|
84
|
+
* Create/update rejected because the company website is a free / consumer
|
|
85
|
+
* email provider domain (`employer_free_email_website`). Distinct from a
|
|
86
|
+
* generic 409 conflict — callers should prompt for a real company website
|
|
87
|
+
* (or omit website), not retry the same domain.
|
|
88
|
+
*/
|
|
89
|
+
declare function isFreeEmailWebsiteError(e: unknown): e is BoardApiError;
|
|
83
90
|
|
|
84
91
|
/** The minimal page shape every v1 list/search envelope satisfies. */
|
|
85
92
|
interface PageShape {
|
|
@@ -143,7 +150,7 @@ declare function paginate<Q extends Record<string, unknown>, P extends PageShape
|
|
|
143
150
|
* constant because the package is platform-neutral and cannot read
|
|
144
151
|
* package.json at runtime.
|
|
145
152
|
*/
|
|
146
|
-
declare const SDK_VERSION = "4.
|
|
153
|
+
declare const SDK_VERSION = "4.22.0";
|
|
147
154
|
|
|
148
155
|
type SavedJob = Schemas['SavedJob'];
|
|
149
156
|
type SavedJobsListQuery = {
|
|
@@ -367,6 +374,15 @@ type TalentAccessCheckoutBody = Schemas['TalentAccessCheckoutBody'];
|
|
|
367
374
|
type TalentAccessCheckoutSession = Schemas['AccessCheckoutSession'];
|
|
368
375
|
/** Polled state of a talent-access checkout session (`board.me.talentAccess.retrieveCheckout`). */
|
|
369
376
|
type TalentAccessCheckoutSessionState = Schemas['AccessCheckoutSessionState'];
|
|
377
|
+
/** Body for `board.me.companies.startMembershipCheckout`. */
|
|
378
|
+
type MembershipCheckoutBody = Schemas['MembershipCheckoutBody'];
|
|
379
|
+
/**
|
|
380
|
+
* Connected-account mount kit from `board.me.companies.startMembershipCheckout`
|
|
381
|
+
* — same generated schema as talent-access checkout (`origin: membership`).
|
|
382
|
+
*/
|
|
383
|
+
type MembershipCheckoutSession = Schemas['AccessCheckoutSession'];
|
|
384
|
+
/** Polled state of a membership checkout session (`board.me.companies.retrieveMembershipCheckout`). */
|
|
385
|
+
type MembershipCheckoutSessionState = Schemas['AccessCheckoutSessionState'];
|
|
370
386
|
/** Result of `board.me.talentAccess.unlock`. */
|
|
371
387
|
type TalentUnlock = Schemas['TalentUnlock'];
|
|
372
388
|
/** Body for `board.me.talentAccess.unlock`. */
|
|
@@ -1922,6 +1938,19 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
|
|
|
1922
1938
|
updateMemberRole(slug: string, memberId: string, body: UpdateCompanyMemberRoleBody, options?: FetchOptions): Promise<void>;
|
|
1923
1939
|
removeMember(slug: string, memberId: string, options?: FetchOptions): Promise<void>;
|
|
1924
1940
|
leave(slug: string, options?: FetchOptions): Promise<void>;
|
|
1941
|
+
startMembershipCheckout(slug: string, body: MembershipCheckoutBody, options?: FetchOptions): Promise<{
|
|
1942
|
+
object: "checkout_session";
|
|
1943
|
+
sessionId: string;
|
|
1944
|
+
clientSecret: string;
|
|
1945
|
+
stripeAccountId: string;
|
|
1946
|
+
publishableKey: string;
|
|
1947
|
+
offerType: "recurring" | "lifetime";
|
|
1948
|
+
}>;
|
|
1949
|
+
retrieveMembershipCheckout(slug: string, sessionId: string, options?: FetchOptions): Promise<{
|
|
1950
|
+
object: "checkout_session_state";
|
|
1951
|
+
status: "open" | "complete" | "expired";
|
|
1952
|
+
clientSecret: string | null;
|
|
1953
|
+
}>;
|
|
1925
1954
|
listInvites(slug: string, options?: FetchOptions): Promise<ListEnvelope<{
|
|
1926
1955
|
id: string;
|
|
1927
1956
|
object: "company_member_invite";
|
|
@@ -3504,4 +3533,4 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
|
|
|
3504
3533
|
};
|
|
3505
3534
|
type BoardSdk = ReturnType<typeof createBoardClient>;
|
|
3506
3535
|
|
|
3507
|
-
export { type AcceptCompanyMemberInviteBody, type AccessCheckoutBody, type AccessCheckoutSession, type AccessCheckoutSessionState, type AccessGrant, type AccessPortalBody, type AccessPortalSession, type AddApplicantNoteBody, type AddSourcedCandidateBody, type Alert, type AlertBody, type Application, type ApplicationsListQuery, type ApplyAction, type ApplyApprovalPlan, type ApplyApprovalReceipt, type ApplyBody, type ApplyDecisionState, type ApplyIntent, Awaitable, BOARD_API_ERROR_CODES, type Block, type BlockStatus, type BlockUserBody, type BlockedUser, BlogPostsListQuery, BlogSearchBody, BlogSimilarQuery, type BoardAccessGrant, BoardApiError, type BoardApiErrorCode, type BoardAuthSession, BoardClient, BoardRequest, type BoardSdk, type BoardSitemapBucketSummary, type BoardSitemapIndex, type BoardUser, type BulkMoveApplicantsBody, type BulkRejectApplicantsBody, type CandidateAvatar, type CandidateEducation, type CandidateExperience, type CandidateLanguage, type CandidateProfile, type CandidateSkill, type ClaimableCompany, CompaniesListQuery, CompaniesSearchBody, type CompanyBillingPortalBody, type CompanyBillingPortalSession, CompanyJobsListQuery, CompanyListEnvelope, CompanyMarketsListQuery, type CompanyMember, type CompanyMemberInvite, type CompanyMemberInviteAcceptance, type CompanyMembership, CompanySimilarQuery, type ConfirmEmailChangeBody, type ConfirmWorkEmailBody, type ConsumeMagicLinkBody, type Conversation, type ConversationArchive, type ConversationDetail, type ConversationRef, type ConversationsListQuery, type ConvertSourcedCandidateBody, type CreateApplyApprovalBody, type CreateApplyIntentBody, type CreateBoardClientOptions, type CreateCompanyBody, type CreateCompanyMemberInviteBody, type CreateEducationBody, type CreateEmployerJobBody, type CreateExperienceBody, type CreateJobPostingInput, type CreatePipelineStageBody, type CreateTalentListBody, type EditMessageBody, type EmbedJobsQuery, type EmployerApplicant, type EmployerBillingOption, type EmployerCheckout, type EmployerCheckoutBody, type EmployerCompany, type EmployerCompanySearchQuery, type EmployerJob, type EmployerJobStat, type EmployerJobStatsPoint, type EmployerJobStatsTimeseriesQuery, type EmployerJobSummary, type EmployerJobsListQuery, type EmployerPipeline, type EmployerPipelineQuery, type EmployerPipelineStage, type EmployerProfileStats, type EmployerProfileViewsPoint, type EmployerProfileViewsTimeseriesQuery, EmploymentType, FetchOptions, type FindExistingConversationQuery, type ForgotPasswordBody, type HandleAvailability, type JobAlertConfirmation, type JobAlertDeletePreferenceInput, type JobAlertFiltersInput, type JobAlertFrequency, type JobAlertManageQuery, type JobAlertManageResult, type JobAlertManageState, type JobAlertManageTokenInput, type JobAlertPreference, type JobAlertRemoteOption, type JobAlertResendResult, type JobAlertStoredFilters, type JobAlertSubscribeInput, type JobAlertSubscription, type JobAlertUpdatePreferenceInput, JobCardListEnvelope, JobCardSearchEnvelope, type JobPostingBillingOptions, type JobPostingBillingVerification, type JobPostingLogoResult, type JobPostingPlan, type JobPostingResult, JobsListQuery, JobsSearchBody, JobsSimilarQuery, ListEnvelope, Logger, type LoginBody, type LogoutBody, type MarketingConsent, type Message, type ModerationReport, type MoveApplicantStageBody, type NotificationPreference, type OAuthAuthorizationQuery, type OAuthAuthorizationUrl, type OAuthExchangeBody, type OAuthProvider, type Paginator, type PaywallOffer, type PaywallOfferListEnvelope, type PlacesListQuery, type Plan, type PlanListEnvelope, type PlansListQuery, type PublicPlace, type PublicTaxonomyTerm, type ReadReceipt, type RecommendedJob, type RecommendedJobsListQuery, type RecommendedTalent, type RecommendedTalentListQuery, type RedirectResolution, type RefreshBody, type RegisterBody, RemoteOption, type RemotePermitTaxonomyEntry, type ReorderPipelineStagesBody, type ReplyBody, type ReportBody, type RequestEmailChangeBody, type RequestMagicLinkBody, type ResetPasswordBody, type Resume, type ResumeUploadOptions, SDK_VERSION, SalaryDetailQuery, type SalesLedPlan, type SalesLedPlanListEnvelope, type SaveJobBody, type SavedJob, type SavedJobsListQuery, SearchEnvelope, SearchSuggestQuery, type SendWorkEmailBody, Seniority, type SitemapEntriesEnvelope, type SitemapEntriesQuery, type SitemapEntry, type SourcedCandidate, type StartAboutApplicationBody, type StartConversationBody, StorageMode, type TalentAccess, type TalentAccessCheckoutBody, type TalentAccessCheckoutSession, type TalentAccessCheckoutSessionState, type TalentAccessUpgrade, type TalentAccessUpgradeBody, type TalentCandidateAccess, type TalentDirectoryEntry, type TalentDirectoryListEnvelope, type TalentDirectoryQuery, type TalentList, type TalentListFilters, type TalentProfile, type TalentUnlock, type TalentUnlockBody, type TaxonomyGeo, type TaxonomyListQuery, type TaxonomyResolution, type ThreadMessagesQuery, type UnreadCount, type UnsubscribeBody, type UpdateApplicationFactsBody, type UpdateCandidateProfileBody, type UpdateCompanyMemberRoleBody, type UpdateEducationBody, type UpdateEmployerCompanyBody, type UpdateEmployerJobBody, type UpdateExperienceBody, type UpdateLanguagesBody, type UpdateNotificationPreferenceBody, type UpdatePasswordBody, type UpdatePipelineStageBody, type UpdateSkillsBody, type UpdateTalentListBody, type VerifyEmailBody, createBoardClient, isBoardApiError, isBoardPasswordRequired, isColdRule, isConflict, isForbidden, isNotFound, isOwnMessage, isRateLimited, isSafeApplicationUrl, isUnauthorized, isValidationError, lastOwnMessageId, paginate, resolveApplyAction, resolveApplyDecision };
|
|
3536
|
+
export { type AcceptCompanyMemberInviteBody, type AccessCheckoutBody, type AccessCheckoutSession, type AccessCheckoutSessionState, type AccessGrant, type AccessPortalBody, type AccessPortalSession, type AddApplicantNoteBody, type AddSourcedCandidateBody, type Alert, type AlertBody, type Application, type ApplicationsListQuery, type ApplyAction, type ApplyApprovalPlan, type ApplyApprovalReceipt, type ApplyBody, type ApplyDecisionState, type ApplyIntent, Awaitable, BOARD_API_ERROR_CODES, type Block, type BlockStatus, type BlockUserBody, type BlockedUser, BlogPostsListQuery, BlogSearchBody, BlogSimilarQuery, type BoardAccessGrant, BoardApiError, type BoardApiErrorCode, type BoardAuthSession, BoardClient, BoardRequest, type BoardSdk, type BoardSitemapBucketSummary, type BoardSitemapIndex, type BoardUser, type BulkMoveApplicantsBody, type BulkRejectApplicantsBody, type CandidateAvatar, type CandidateEducation, type CandidateExperience, type CandidateLanguage, type CandidateProfile, type CandidateSkill, type ClaimableCompany, CompaniesListQuery, CompaniesSearchBody, type CompanyBillingPortalBody, type CompanyBillingPortalSession, CompanyJobsListQuery, CompanyListEnvelope, CompanyMarketsListQuery, type CompanyMember, type CompanyMemberInvite, type CompanyMemberInviteAcceptance, type CompanyMembership, CompanySimilarQuery, type ConfirmEmailChangeBody, type ConfirmWorkEmailBody, type ConsumeMagicLinkBody, type Conversation, type ConversationArchive, type ConversationDetail, type ConversationRef, type ConversationsListQuery, type ConvertSourcedCandidateBody, type CreateApplyApprovalBody, type CreateApplyIntentBody, type CreateBoardClientOptions, type CreateCompanyBody, type CreateCompanyMemberInviteBody, type CreateEducationBody, type CreateEmployerJobBody, type CreateExperienceBody, type CreateJobPostingInput, type CreatePipelineStageBody, type CreateTalentListBody, type EditMessageBody, type EmbedJobsQuery, type EmployerApplicant, type EmployerBillingOption, type EmployerCheckout, type EmployerCheckoutBody, type EmployerCompany, type EmployerCompanySearchQuery, type EmployerJob, type EmployerJobStat, type EmployerJobStatsPoint, type EmployerJobStatsTimeseriesQuery, type EmployerJobSummary, type EmployerJobsListQuery, type EmployerPipeline, type EmployerPipelineQuery, type EmployerPipelineStage, type EmployerProfileStats, type EmployerProfileViewsPoint, type EmployerProfileViewsTimeseriesQuery, EmploymentType, FetchOptions, type FindExistingConversationQuery, type ForgotPasswordBody, type HandleAvailability, type JobAlertConfirmation, type JobAlertDeletePreferenceInput, type JobAlertFiltersInput, type JobAlertFrequency, type JobAlertManageQuery, type JobAlertManageResult, type JobAlertManageState, type JobAlertManageTokenInput, type JobAlertPreference, type JobAlertRemoteOption, type JobAlertResendResult, type JobAlertStoredFilters, type JobAlertSubscribeInput, type JobAlertSubscription, type JobAlertUpdatePreferenceInput, JobCardListEnvelope, JobCardSearchEnvelope, type JobPostingBillingOptions, type JobPostingBillingVerification, type JobPostingLogoResult, type JobPostingPlan, type JobPostingResult, JobsListQuery, JobsSearchBody, JobsSimilarQuery, ListEnvelope, Logger, type LoginBody, type LogoutBody, type MarketingConsent, type MembershipCheckoutBody, type MembershipCheckoutSession, type MembershipCheckoutSessionState, type Message, type ModerationReport, type MoveApplicantStageBody, type NotificationPreference, type OAuthAuthorizationQuery, type OAuthAuthorizationUrl, type OAuthExchangeBody, type OAuthProvider, type Paginator, type PaywallOffer, type PaywallOfferListEnvelope, type PlacesListQuery, type Plan, type PlanListEnvelope, type PlansListQuery, type PublicPlace, type PublicTaxonomyTerm, type ReadReceipt, type RecommendedJob, type RecommendedJobsListQuery, type RecommendedTalent, type RecommendedTalentListQuery, type RedirectResolution, type RefreshBody, type RegisterBody, RemoteOption, type RemotePermitTaxonomyEntry, type ReorderPipelineStagesBody, type ReplyBody, type ReportBody, type RequestEmailChangeBody, type RequestMagicLinkBody, type ResetPasswordBody, type Resume, type ResumeUploadOptions, SDK_VERSION, SalaryDetailQuery, type SalesLedPlan, type SalesLedPlanListEnvelope, type SaveJobBody, type SavedJob, type SavedJobsListQuery, SearchEnvelope, SearchSuggestQuery, type SendWorkEmailBody, Seniority, type SitemapEntriesEnvelope, type SitemapEntriesQuery, type SitemapEntry, type SourcedCandidate, type StartAboutApplicationBody, type StartConversationBody, StorageMode, type TalentAccess, type TalentAccessCheckoutBody, type TalentAccessCheckoutSession, type TalentAccessCheckoutSessionState, type TalentAccessUpgrade, type TalentAccessUpgradeBody, type TalentCandidateAccess, type TalentDirectoryEntry, type TalentDirectoryListEnvelope, type TalentDirectoryQuery, type TalentList, type TalentListFilters, type TalentProfile, type TalentUnlock, type TalentUnlockBody, type TaxonomyGeo, type TaxonomyListQuery, type TaxonomyResolution, type ThreadMessagesQuery, type UnreadCount, type UnsubscribeBody, type UpdateApplicationFactsBody, type UpdateCandidateProfileBody, type UpdateCompanyMemberRoleBody, type UpdateEducationBody, type UpdateEmployerCompanyBody, type UpdateEmployerJobBody, type UpdateExperienceBody, type UpdateLanguagesBody, type UpdateNotificationPreferenceBody, type UpdatePasswordBody, type UpdatePipelineStageBody, type UpdateSkillsBody, type UpdateTalentListBody, type VerifyEmailBody, createBoardClient, isBoardApiError, isBoardPasswordRequired, isColdRule, isConflict, isForbidden, isFreeEmailWebsiteError, isNotFound, isOwnMessage, isRateLimited, isSafeApplicationUrl, isUnauthorized, isValidationError, lastOwnMessageId, paginate, resolveApplyAction, resolveApplyDecision };
|
package/dist/index.js
CHANGED
|
@@ -33,6 +33,7 @@ __export(src_exports, {
|
|
|
33
33
|
isColdRule: () => isColdRule,
|
|
34
34
|
isConflict: () => isConflict,
|
|
35
35
|
isForbidden: () => isForbidden,
|
|
36
|
+
isFreeEmailWebsiteError: () => isFreeEmailWebsiteError,
|
|
36
37
|
isNotFound: () => isNotFound,
|
|
37
38
|
isOwnMessage: () => isOwnMessage,
|
|
38
39
|
isRateLimited: () => isRateLimited,
|
|
@@ -152,6 +153,7 @@ var BOARD_API_ERROR_CODES = [
|
|
|
152
153
|
"employer_ats_unprocessable",
|
|
153
154
|
"employer_checkout_failed",
|
|
154
155
|
"employer_company_exists",
|
|
156
|
+
"employer_free_email_website",
|
|
155
157
|
"employer_company_name_taken",
|
|
156
158
|
"employer_company_not_found",
|
|
157
159
|
"employer_job_not_found",
|
|
@@ -194,6 +196,9 @@ var BOARD_API_ERROR_CODES = [
|
|
|
194
196
|
"talent_access_required",
|
|
195
197
|
"messaging_talent_access_required",
|
|
196
198
|
"stripe_not_connected",
|
|
199
|
+
// Employer membership checkout
|
|
200
|
+
"membership_plan_not_found",
|
|
201
|
+
"membership_seat_taken",
|
|
197
202
|
// Public job posting
|
|
198
203
|
"job_posting_logo_lookup_unavailable",
|
|
199
204
|
"job_posting_logo_not_found",
|
|
@@ -242,6 +247,9 @@ function isRateLimited(e) {
|
|
|
242
247
|
function isConflict(e) {
|
|
243
248
|
return isBoardApiError(e) && e.status === 409;
|
|
244
249
|
}
|
|
250
|
+
function isFreeEmailWebsiteError(e) {
|
|
251
|
+
return isBoardApiError(e) && e.status === 422 && e.code === "employer_free_email_website";
|
|
252
|
+
}
|
|
245
253
|
|
|
246
254
|
// src/query.ts
|
|
247
255
|
function toSearchParams(query) {
|
|
@@ -350,7 +358,7 @@ async function clearSession(storage) {
|
|
|
350
358
|
}
|
|
351
359
|
|
|
352
360
|
// src/version.ts
|
|
353
|
-
var SDK_VERSION = "4.
|
|
361
|
+
var SDK_VERSION = "4.22.0";
|
|
354
362
|
|
|
355
363
|
// src/client.ts
|
|
356
364
|
function isRawBody(body) {
|
|
@@ -1650,6 +1658,45 @@ function meNamespace(client) {
|
|
|
1650
1658
|
{ ...options, method: "DELETE" }
|
|
1651
1659
|
);
|
|
1652
1660
|
},
|
|
1661
|
+
/**
|
|
1662
|
+
* Start embedded Stripe checkout that buys a public membership (or
|
|
1663
|
+
* employer_service) plan for a company I approved-manage. Returns the
|
|
1664
|
+
* connected-account mount kit: initialise Stripe.js with
|
|
1665
|
+
* `publishableKey` and `{ stripeAccount: stripeAccountId }`, then mount
|
|
1666
|
+
* `clientSecret`. The plan is granted to the company by webhook once the
|
|
1667
|
+
* session completes — poll `retrieveMembershipCheckout`, then re-read
|
|
1668
|
+
* the company or `board.employers.memberships.list()`. 404
|
|
1669
|
+
* `membership_plan_not_found` for a plan that is not a public priced
|
|
1670
|
+
* membership on this board; 409 `membership_seat_taken` when the company
|
|
1671
|
+
* already holds one (or has an invoice pending).
|
|
1672
|
+
*
|
|
1673
|
+
* @example
|
|
1674
|
+
* const kit = await board.me.companies.startMembershipCheckout('acme', {
|
|
1675
|
+
* planId,
|
|
1676
|
+
* returnPath: '/memberships',
|
|
1677
|
+
* colorMode: 'light',
|
|
1678
|
+
* });
|
|
1679
|
+
*/
|
|
1680
|
+
startMembershipCheckout(slug, body, options) {
|
|
1681
|
+
return client.fetch(
|
|
1682
|
+
`/me/companies/${encodeURIComponent(slug)}/membership/checkout`,
|
|
1683
|
+
{ ...options, method: "POST", body }
|
|
1684
|
+
);
|
|
1685
|
+
},
|
|
1686
|
+
/**
|
|
1687
|
+
* Poll a membership checkout session started for this company: `open`
|
|
1688
|
+
* (re-mountable via `clientSecret`), `complete`, or `expired`. A session
|
|
1689
|
+
* minted for another company is 404 `paywall_invalid_checkout_session`.
|
|
1690
|
+
*
|
|
1691
|
+
* @example
|
|
1692
|
+
* const s = await board.me.companies.retrieveMembershipCheckout('acme', kit.sessionId);
|
|
1693
|
+
*/
|
|
1694
|
+
retrieveMembershipCheckout(slug, sessionId, options) {
|
|
1695
|
+
return client.fetch(
|
|
1696
|
+
`/me/companies/${encodeURIComponent(slug)}/membership/checkout/${encodeURIComponent(sessionId)}`,
|
|
1697
|
+
options
|
|
1698
|
+
);
|
|
1699
|
+
},
|
|
1653
1700
|
/**
|
|
1654
1701
|
* List pending member invites for a company I belong to.
|
|
1655
1702
|
*
|