@cavuno/board 4.18.0 → 4.20.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.
Files changed (45) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/dist/{_spec-Dk0TIRUc.d.mts → _spec-CyNKpM_j.d.mts} +90 -4
  3. package/dist/{_spec-Dk0TIRUc.d.ts → _spec-CyNKpM_j.d.ts} +90 -4
  4. package/dist/{blog-C04NWTh_.d.mts → blog-BNIqGayD.d.mts} +1 -1
  5. package/dist/{blog-1THfucKR.d.ts → blog-CRvaDyzJ.d.ts} +1 -1
  6. package/dist/{board-CqeoQAa1.d.ts → board-CXNxSlUB.d.ts} +24 -4
  7. package/dist/{board-DIO9aFXx.d.mts → board-mn3GVbrC.d.mts} +24 -4
  8. package/dist/{breadcrumbs-mE9Zsxlq.d.mts → breadcrumbs-Bi4LHNAF.d.mts} +2 -2
  9. package/dist/{breadcrumbs-CCT1oC2-.d.ts → breadcrumbs-Crk6Q69T.d.ts} +2 -2
  10. package/dist/browser/cavuno-board.global.min.js +1 -1
  11. package/dist/{chunk-2WBQVVOB.mjs → chunk-NQTMFOKF.mjs} +2 -100
  12. package/dist/chunk-Z4ALWIGS.mjs +101 -0
  13. package/dist/filters.d.mts +2 -2
  14. package/dist/filters.d.ts +2 -2
  15. package/dist/format.d.mts +4 -4
  16. package/dist/format.d.ts +4 -4
  17. package/dist/index.d.mts +63 -18
  18. package/dist/index.d.ts +63 -18
  19. package/dist/index.js +31 -7
  20. package/dist/index.mjs +41 -16
  21. package/dist/{jobs-CVmAWGtJ.d.mts → jobs-CALE3I8I.d.mts} +1 -1
  22. package/dist/{jobs-Dvv0vX8p.d.ts → jobs-CSWXqLZR.d.ts} +1 -1
  23. package/dist/route-contract.d.mts +2 -1
  24. package/dist/route-contract.d.ts +2 -1
  25. package/dist/{search-CcstbHOe.d.ts → search-BRCbe1Nm.d.ts} +1 -1
  26. package/dist/{search-BJ5myYaf.d.mts → search-B_hwS-xu.d.mts} +1 -1
  27. package/dist/{seo-Ds6tLMqU.d.mts → seo-CS4lrG20.d.mts} +1 -1
  28. package/dist/{seo-CWO6N-iE.d.ts → seo-D1u-RmLQ.d.ts} +1 -1
  29. package/dist/seo-files.d.mts +2 -2
  30. package/dist/seo-files.d.ts +2 -2
  31. package/dist/seo.d.mts +6 -6
  32. package/dist/seo.d.ts +6 -6
  33. package/dist/server.d.mts +6 -6
  34. package/dist/server.d.ts +6 -6
  35. package/dist/server.mjs +4 -2
  36. package/dist/sitemap.d.mts +15 -7
  37. package/dist/sitemap.d.ts +15 -7
  38. package/dist/sitemap.js +49 -4
  39. package/dist/sitemap.mjs +44 -4
  40. package/dist/suggest.d.mts +2 -2
  41. package/dist/suggest.d.ts +2 -2
  42. package/dist/well-known.d.mts +2 -1
  43. package/dist/well-known.d.ts +2 -1
  44. package/package.json +2 -2
  45. package/skills/manifest.json +1 -1
package/dist/index.d.mts CHANGED
@@ -1,13 +1,13 @@
1
- import { S as Schemas, c as components } from './_spec-Dk0TIRUc.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-BJ5myYaf.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-BJ5myYaf.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-DIO9aFXx.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 SalaryCompany, x as SalaryLocation, y as SalarySkill, z as SalaryTitle, A as SkillLocationSalary, B as SkillLocationsIndex, S as SkillSalaryDetail, D as TitleLocationSalary, E as TitleLocationsIndex, T as TitleSalaryDetail } from './board-DIO9aFXx.mjs';
6
- export { B as BoardSeo } from './seo-Ds6tLMqU.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-CVmAWGtJ.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-CVmAWGtJ.mjs';
9
- import { a as BlogPostsListQuery, b as BlogSimilarQuery, c as BlogSearchBody } from './blog-C04NWTh_.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-C04NWTh_.mjs';
1
+ import { S as Schemas, c as components } from './_spec-CyNKpM_j.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-B_hwS-xu.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-B_hwS-xu.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-mn3GVbrC.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-mn3GVbrC.mjs';
6
+ export { B as BoardSeo } from './seo-CS4lrG20.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-CALE3I8I.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-CALE3I8I.mjs';
9
+ import { a as BlogPostsListQuery, b as BlogSimilarQuery, c as BlogSearchBody } from './blog-BNIqGayD.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-BNIqGayD.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", "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", "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_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", "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"];
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.
@@ -143,7 +143,7 @@ declare function paginate<Q extends Record<string, unknown>, P extends PageShape
143
143
  * constant because the package is platform-neutral and cannot read
144
144
  * package.json at runtime.
145
145
  */
146
- declare const SDK_VERSION = "4.18.0";
146
+ declare const SDK_VERSION = "4.20.0";
147
147
 
148
148
  type SavedJob = Schemas['SavedJob'];
149
149
  type SavedJobsListQuery = {
@@ -694,15 +694,22 @@ type TalentDirectoryQuery = {
694
694
  type TalentDirectoryListEnvelope = ListEnvelope<TalentDirectoryEntry>;
695
695
 
696
696
  /**
697
- * A board plan (employer pricing). `purpose` is `job_posting` or
698
- * `talent_access`; talent-access plans carry a `talent` allowance block.
697
+ * A board plan (employer or job-seeker pricing). `purpose` says what the plan
698
+ * entitles; `pricingMode` says how it is bought — a `contact` plan is
699
+ * quote-only, so render `priceText` and the CTA fields instead of `price`.
700
+ * Talent-access plans carry a `talent` allowance block.
699
701
  */
700
702
  type Plan = Schemas['Plan'];
701
- /** A sales-led ("contact us") plan — a custom CTA tier with no programmatic price. */
703
+ /**
704
+ * @deprecated Use `plans.list()` and keep the rows whose `purpose` is
705
+ * `employer_service` and whose `pricingMode` is `contact`.
706
+ *
707
+ * A sales-led ("contact us") plan — a custom CTA tier with no programmatic price.
708
+ */
702
709
  type SalesLedPlan = Schemas['SalesLedPlan'];
703
710
  type PlansListQuery = {
704
711
  /** Filter to a single purpose. Omit to return all public plans. */
705
- purpose?: 'job_posting' | 'talent_access';
712
+ purpose?: 'job_posting' | 'talent_access' | 'membership' | 'job_seeker' | 'employer_service' | 'job_seeker_service';
706
713
  };
707
714
  type PlanListEnvelope = ListEnvelope<Plan>;
708
715
  type SalesLedPlanListEnvelope = ListEnvelope<SalesLedPlan>;
@@ -838,6 +845,29 @@ type PlacesListQuery = {
838
845
  limit?: number;
839
846
  };
840
847
 
848
+ /** One bucket in the board's sitemap: its name, size, and freshness stamp. */
849
+ type BoardSitemapBucketSummary = Schemas['BoardSitemapBucketSummary'];
850
+ /**
851
+ * The board's sitemap bucket index (`board.sitemap()`) — the buckets the board
852
+ * publishes, in canonical order, empty ones omitted. Read each bucket's paths
853
+ * with `board.sitemap.entries(bucket)`.
854
+ */
855
+ type BoardSitemapIndex = Schemas['BoardSitemap'];
856
+ /**
857
+ * One sitemap URL as a BOARD-RELATIVE path (always leading `/`). Prefix it with
858
+ * your own origin — the API never returns an origin, so a custom domain, a
859
+ * preview deploy, and production all build correct URLs from the same page.
860
+ */
861
+ type SitemapEntry = Schemas['SitemapEntry'];
862
+ type SitemapEntriesQuery = {
863
+ /** Page size, 1–1000 (default 1000). */
864
+ limit?: number;
865
+ /** Opaque forward cursor from a previous response's `nextCursor`. */
866
+ cursor?: string;
867
+ };
868
+ /** One page of a bucket's entries. Walk it with `paginate`. */
869
+ type SitemapEntriesEnvelope = ListEnvelope<SitemapEntry>;
870
+
841
871
  interface CreateBoardClientOptions {
842
872
  /** Cavuno API origin. Defaults to the production service. */
843
873
  baseUrl?: string;
@@ -916,6 +946,9 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
916
946
  messaging: boolean;
917
947
  };
918
948
  talentAccessModel: "paid_messaging" | "paid_unlocks_and_messaging" | null;
949
+ posting: {
950
+ requiresMembership: boolean;
951
+ };
919
952
  analytics: {
920
953
  ga4MeasurementId: string | null;
921
954
  gtmId: string | null;
@@ -1221,6 +1254,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
1221
1254
  jobCount: number;
1222
1255
  publishedJobCount: number;
1223
1256
  salarySampleCount: number;
1257
+ membership: components["schemas"]["PublicCompanyMembership"];
1224
1258
  links: components["schemas"]["PublicCompanyLinks"];
1225
1259
  } & {
1226
1260
  markets: components["schemas"]["CompanyMarketRef"][];
@@ -1237,6 +1271,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
1237
1271
  jobCount: number;
1238
1272
  publishedJobCount: number;
1239
1273
  salarySampleCount: number;
1274
+ membership: components["schemas"]["PublicCompanyMembership"];
1240
1275
  links: components["schemas"]["PublicCompanyLinks"];
1241
1276
  }>>;
1242
1277
  listJobs(companySlug: string, query?: CompanyJobsListQuery, options?: FetchOptions): Promise<JobCardListEnvelope>;
@@ -1252,6 +1287,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
1252
1287
  jobCount: number;
1253
1288
  publishedJobCount: number;
1254
1289
  salarySampleCount: number;
1290
+ membership: components["schemas"]["PublicCompanyMembership"];
1255
1291
  links: components["schemas"]["PublicCompanyLinks"];
1256
1292
  }>>;
1257
1293
  markets: ((query?: CompanyMarketsListQuery, options?: FetchOptions) => Promise<ListEnvelope<{
@@ -2207,7 +2243,8 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
2207
2243
  list(slug: string, options?: FetchOptions): Promise<ListEnvelope<{
2208
2244
  id: string;
2209
2245
  object: "employer_billing_option";
2210
- type: "subscription" | "order";
2246
+ type: "subscription" | "order" | "plan_assignment";
2247
+ kind?: "member_post";
2211
2248
  planId: string;
2212
2249
  planName: string;
2213
2250
  planKind: "subscription" | "one_time" | "bundle";
@@ -2215,6 +2252,8 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
2215
2252
  jobsTotal: number;
2216
2253
  featuredRemaining: number;
2217
2254
  featuredTotal: number;
2255
+ jobsUnlimited?: boolean;
2256
+ featuredUnlimited?: boolean;
2218
2257
  renewsAt: string | null;
2219
2258
  }>>;
2220
2259
  };
@@ -3456,7 +3495,13 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
3456
3495
  paywall: {
3457
3496
  offers(options?: FetchOptions): Promise<PaywallOfferListEnvelope>;
3458
3497
  };
3498
+ sitemap: ((options?: FetchOptions) => Promise<{
3499
+ object: "board_sitemap";
3500
+ buckets: components["schemas"]["BoardSitemapBucketSummary"][];
3501
+ }>) & {
3502
+ entries(bucket: string, query?: SitemapEntriesQuery, options?: FetchOptions): Promise<SitemapEntriesEnvelope>;
3503
+ };
3459
3504
  };
3460
3505
  type BoardSdk = ReturnType<typeof createBoardClient>;
3461
3506
 
3462
- 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 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 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 };
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 };
package/dist/index.d.ts CHANGED
@@ -1,13 +1,13 @@
1
- import { S as Schemas, c as components } from './_spec-Dk0TIRUc.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-CcstbHOe.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-CcstbHOe.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-CqeoQAa1.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 SalaryCompany, x as SalaryLocation, y as SalarySkill, z as SalaryTitle, A as SkillLocationSalary, B as SkillLocationsIndex, S as SkillSalaryDetail, D as TitleLocationSalary, E as TitleLocationsIndex, T as TitleSalaryDetail } from './board-CqeoQAa1.js';
6
- export { B as BoardSeo } from './seo-CWO6N-iE.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-Dvv0vX8p.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-Dvv0vX8p.js';
9
- import { a as BlogPostsListQuery, b as BlogSimilarQuery, c as BlogSearchBody } from './blog-1THfucKR.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-1THfucKR.js';
1
+ import { S as Schemas, c as components } from './_spec-CyNKpM_j.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-BRCbe1Nm.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-BRCbe1Nm.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-CXNxSlUB.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-CXNxSlUB.js';
6
+ export { B as BoardSeo } from './seo-D1u-RmLQ.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-CSWXqLZR.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-CSWXqLZR.js';
9
+ import { a as BlogPostsListQuery, b as BlogSimilarQuery, c as BlogSearchBody } from './blog-CRvaDyzJ.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-CRvaDyzJ.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", "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", "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_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", "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"];
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.
@@ -143,7 +143,7 @@ declare function paginate<Q extends Record<string, unknown>, P extends PageShape
143
143
  * constant because the package is platform-neutral and cannot read
144
144
  * package.json at runtime.
145
145
  */
146
- declare const SDK_VERSION = "4.18.0";
146
+ declare const SDK_VERSION = "4.20.0";
147
147
 
148
148
  type SavedJob = Schemas['SavedJob'];
149
149
  type SavedJobsListQuery = {
@@ -694,15 +694,22 @@ type TalentDirectoryQuery = {
694
694
  type TalentDirectoryListEnvelope = ListEnvelope<TalentDirectoryEntry>;
695
695
 
696
696
  /**
697
- * A board plan (employer pricing). `purpose` is `job_posting` or
698
- * `talent_access`; talent-access plans carry a `talent` allowance block.
697
+ * A board plan (employer or job-seeker pricing). `purpose` says what the plan
698
+ * entitles; `pricingMode` says how it is bought — a `contact` plan is
699
+ * quote-only, so render `priceText` and the CTA fields instead of `price`.
700
+ * Talent-access plans carry a `talent` allowance block.
699
701
  */
700
702
  type Plan = Schemas['Plan'];
701
- /** A sales-led ("contact us") plan — a custom CTA tier with no programmatic price. */
703
+ /**
704
+ * @deprecated Use `plans.list()` and keep the rows whose `purpose` is
705
+ * `employer_service` and whose `pricingMode` is `contact`.
706
+ *
707
+ * A sales-led ("contact us") plan — a custom CTA tier with no programmatic price.
708
+ */
702
709
  type SalesLedPlan = Schemas['SalesLedPlan'];
703
710
  type PlansListQuery = {
704
711
  /** Filter to a single purpose. Omit to return all public plans. */
705
- purpose?: 'job_posting' | 'talent_access';
712
+ purpose?: 'job_posting' | 'talent_access' | 'membership' | 'job_seeker' | 'employer_service' | 'job_seeker_service';
706
713
  };
707
714
  type PlanListEnvelope = ListEnvelope<Plan>;
708
715
  type SalesLedPlanListEnvelope = ListEnvelope<SalesLedPlan>;
@@ -838,6 +845,29 @@ type PlacesListQuery = {
838
845
  limit?: number;
839
846
  };
840
847
 
848
+ /** One bucket in the board's sitemap: its name, size, and freshness stamp. */
849
+ type BoardSitemapBucketSummary = Schemas['BoardSitemapBucketSummary'];
850
+ /**
851
+ * The board's sitemap bucket index (`board.sitemap()`) — the buckets the board
852
+ * publishes, in canonical order, empty ones omitted. Read each bucket's paths
853
+ * with `board.sitemap.entries(bucket)`.
854
+ */
855
+ type BoardSitemapIndex = Schemas['BoardSitemap'];
856
+ /**
857
+ * One sitemap URL as a BOARD-RELATIVE path (always leading `/`). Prefix it with
858
+ * your own origin — the API never returns an origin, so a custom domain, a
859
+ * preview deploy, and production all build correct URLs from the same page.
860
+ */
861
+ type SitemapEntry = Schemas['SitemapEntry'];
862
+ type SitemapEntriesQuery = {
863
+ /** Page size, 1–1000 (default 1000). */
864
+ limit?: number;
865
+ /** Opaque forward cursor from a previous response's `nextCursor`. */
866
+ cursor?: string;
867
+ };
868
+ /** One page of a bucket's entries. Walk it with `paginate`. */
869
+ type SitemapEntriesEnvelope = ListEnvelope<SitemapEntry>;
870
+
841
871
  interface CreateBoardClientOptions {
842
872
  /** Cavuno API origin. Defaults to the production service. */
843
873
  baseUrl?: string;
@@ -916,6 +946,9 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
916
946
  messaging: boolean;
917
947
  };
918
948
  talentAccessModel: "paid_messaging" | "paid_unlocks_and_messaging" | null;
949
+ posting: {
950
+ requiresMembership: boolean;
951
+ };
919
952
  analytics: {
920
953
  ga4MeasurementId: string | null;
921
954
  gtmId: string | null;
@@ -1221,6 +1254,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
1221
1254
  jobCount: number;
1222
1255
  publishedJobCount: number;
1223
1256
  salarySampleCount: number;
1257
+ membership: components["schemas"]["PublicCompanyMembership"];
1224
1258
  links: components["schemas"]["PublicCompanyLinks"];
1225
1259
  } & {
1226
1260
  markets: components["schemas"]["CompanyMarketRef"][];
@@ -1237,6 +1271,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
1237
1271
  jobCount: number;
1238
1272
  publishedJobCount: number;
1239
1273
  salarySampleCount: number;
1274
+ membership: components["schemas"]["PublicCompanyMembership"];
1240
1275
  links: components["schemas"]["PublicCompanyLinks"];
1241
1276
  }>>;
1242
1277
  listJobs(companySlug: string, query?: CompanyJobsListQuery, options?: FetchOptions): Promise<JobCardListEnvelope>;
@@ -1252,6 +1287,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
1252
1287
  jobCount: number;
1253
1288
  publishedJobCount: number;
1254
1289
  salarySampleCount: number;
1290
+ membership: components["schemas"]["PublicCompanyMembership"];
1255
1291
  links: components["schemas"]["PublicCompanyLinks"];
1256
1292
  }>>;
1257
1293
  markets: ((query?: CompanyMarketsListQuery, options?: FetchOptions) => Promise<ListEnvelope<{
@@ -2207,7 +2243,8 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
2207
2243
  list(slug: string, options?: FetchOptions): Promise<ListEnvelope<{
2208
2244
  id: string;
2209
2245
  object: "employer_billing_option";
2210
- type: "subscription" | "order";
2246
+ type: "subscription" | "order" | "plan_assignment";
2247
+ kind?: "member_post";
2211
2248
  planId: string;
2212
2249
  planName: string;
2213
2250
  planKind: "subscription" | "one_time" | "bundle";
@@ -2215,6 +2252,8 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
2215
2252
  jobsTotal: number;
2216
2253
  featuredRemaining: number;
2217
2254
  featuredTotal: number;
2255
+ jobsUnlimited?: boolean;
2256
+ featuredUnlimited?: boolean;
2218
2257
  renewsAt: string | null;
2219
2258
  }>>;
2220
2259
  };
@@ -3456,7 +3495,13 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
3456
3495
  paywall: {
3457
3496
  offers(options?: FetchOptions): Promise<PaywallOfferListEnvelope>;
3458
3497
  };
3498
+ sitemap: ((options?: FetchOptions) => Promise<{
3499
+ object: "board_sitemap";
3500
+ buckets: components["schemas"]["BoardSitemapBucketSummary"][];
3501
+ }>) & {
3502
+ entries(bucket: string, query?: SitemapEntriesQuery, options?: FetchOptions): Promise<SitemapEntriesEnvelope>;
3503
+ };
3459
3504
  };
3460
3505
  type BoardSdk = ReturnType<typeof createBoardClient>;
3461
3506
 
3462
- 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 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 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 };
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 };
package/dist/index.js CHANGED
@@ -157,6 +157,7 @@ var BOARD_API_ERROR_CODES = [
157
157
  "employer_job_not_found",
158
158
  "employer_job_slug_taken",
159
159
  "employer_jobs_quota_exceeded",
160
+ "membership_required",
160
161
  "employer_not_member",
161
162
  "employer_payment_required",
162
163
  "employer_pipeline_stage_not_found",
@@ -348,7 +349,7 @@ async function clearSession(storage) {
348
349
  }
349
350
 
350
351
  // src/version.ts
351
- var SDK_VERSION = "4.18.0";
352
+ var SDK_VERSION = "4.20.0";
352
353
 
353
354
  // src/client.ts
354
355
  function isRawBody(body) {
@@ -3035,19 +3036,26 @@ function paywallNamespace(client) {
3035
3036
  function plansNamespace(client) {
3036
3037
  return {
3037
3038
  /**
3038
- * List the board's public plans (employer pricing) — job-posting +
3039
- * talent-access plans as a flat list, filterable by `purpose`. Group by
3040
- * `purpose` to render the pricing columns.
3039
+ * List the board's public plans as a flat list, filterable by `purpose`.
3040
+ * Group by `purpose` to render the pricing columns. Contact-led tiers are
3041
+ * plans too: they come back with `pricingMode: 'contact'`, no buyable
3042
+ * price, and the operator's `priceText` / `ctaText` / `ctaDestination`.
3041
3043
  *
3042
3044
  * @example
3043
3045
  * const { data } = await board.plans.list({ purpose: 'talent_access' });
3046
+ *
3047
+ * @example
3048
+ * const { data } = await board.plans.list({ purpose: 'employer_service' });
3049
+ * const contactTiers = data.filter((p) => p.pricingMode === 'contact');
3044
3050
  */
3045
3051
  list(query, options) {
3046
3052
  return client.fetch("/plans", { ...options, query });
3047
3053
  },
3048
3054
  /**
3049
- * List the board's sales-led ("contact us") plans — custom marketing tiers
3050
- * with a CTA destination and no programmatic price.
3055
+ * @deprecated Use `list({ purpose: 'employer_service' })` and keep the
3056
+ * rows whose `pricingMode` is `contact` — the same cards, carrying real
3057
+ * benefits and the shared plan shape. This helper stays as a
3058
+ * compatibility read of rows created before that.
3051
3059
  *
3052
3060
  * @example
3053
3061
  * const { data } = await board.plans.salesLed();
@@ -3207,6 +3215,21 @@ function searchNamespace(client) {
3207
3215
  };
3208
3216
  }
3209
3217
 
3218
+ // src/namespaces/sitemap.ts
3219
+ function sitemapNamespace(client) {
3220
+ return Object.assign(
3221
+ (options) => client.fetch("/sitemap", options),
3222
+ {
3223
+ entries(bucket, query, options) {
3224
+ return client.fetch(
3225
+ `/sitemap/${encodeURIComponent(bucket)}`,
3226
+ { ...options, query }
3227
+ );
3228
+ }
3229
+ }
3230
+ );
3231
+ }
3232
+
3210
3233
  // src/namespaces/talent.ts
3211
3234
  function talentNamespace(client) {
3212
3235
  return {
@@ -3441,6 +3464,7 @@ function createBoardClient(options) {
3441
3464
  salaries: salariesNamespace(client),
3442
3465
  talent: talentNamespace(client),
3443
3466
  plans: plansNamespace(client),
3444
- paywall: paywallNamespace(client)
3467
+ paywall: paywallNamespace(client),
3468
+ sitemap: sitemapNamespace(client)
3445
3469
  };
3446
3470
  }
package/dist/index.mjs CHANGED
@@ -1,10 +1,17 @@
1
1
  import {
2
2
  ACCESS_TOKEN_KEY,
3
3
  BOARD_ACCESS_GRANT_KEY,
4
- BOARD_API_ERROR_CODES,
5
- BoardApiError,
6
4
  REFRESH_TOKEN_KEY,
7
5
  clearSession,
6
+ resolveStorage,
7
+ writeSession
8
+ } from "./chunk-Z4ALWIGS.mjs";
9
+ import {
10
+ paginate
11
+ } from "./chunk-DLSO6XXY.mjs";
12
+ import {
13
+ BOARD_API_ERROR_CODES,
14
+ BoardApiError,
8
15
  isBoardApiError,
9
16
  isBoardPasswordRequired,
10
17
  isConflict,
@@ -12,13 +19,8 @@ import {
12
19
  isNotFound,
13
20
  isRateLimited,
14
21
  isUnauthorized,
15
- isValidationError,
16
- resolveStorage,
17
- writeSession
18
- } from "./chunk-2WBQVVOB.mjs";
19
- import {
20
- paginate
21
- } from "./chunk-DLSO6XXY.mjs";
22
+ isValidationError
23
+ } from "./chunk-NQTMFOKF.mjs";
22
24
 
23
25
  // src/query.ts
24
26
  function toSearchParams(query) {
@@ -39,7 +41,7 @@ function toSearchParams(query) {
39
41
  }
40
42
 
41
43
  // src/version.ts
42
- var SDK_VERSION = "4.18.0";
44
+ var SDK_VERSION = "4.20.0";
43
45
 
44
46
  // src/client.ts
45
47
  function isRawBody(body) {
@@ -2726,19 +2728,26 @@ function paywallNamespace(client) {
2726
2728
  function plansNamespace(client) {
2727
2729
  return {
2728
2730
  /**
2729
- * List the board's public plans (employer pricing) — job-posting +
2730
- * talent-access plans as a flat list, filterable by `purpose`. Group by
2731
- * `purpose` to render the pricing columns.
2731
+ * List the board's public plans as a flat list, filterable by `purpose`.
2732
+ * Group by `purpose` to render the pricing columns. Contact-led tiers are
2733
+ * plans too: they come back with `pricingMode: 'contact'`, no buyable
2734
+ * price, and the operator's `priceText` / `ctaText` / `ctaDestination`.
2732
2735
  *
2733
2736
  * @example
2734
2737
  * const { data } = await board.plans.list({ purpose: 'talent_access' });
2738
+ *
2739
+ * @example
2740
+ * const { data } = await board.plans.list({ purpose: 'employer_service' });
2741
+ * const contactTiers = data.filter((p) => p.pricingMode === 'contact');
2735
2742
  */
2736
2743
  list(query, options) {
2737
2744
  return client.fetch("/plans", { ...options, query });
2738
2745
  },
2739
2746
  /**
2740
- * List the board's sales-led ("contact us") plans — custom marketing tiers
2741
- * with a CTA destination and no programmatic price.
2747
+ * @deprecated Use `list({ purpose: 'employer_service' })` and keep the
2748
+ * rows whose `pricingMode` is `contact` — the same cards, carrying real
2749
+ * benefits and the shared plan shape. This helper stays as a
2750
+ * compatibility read of rows created before that.
2742
2751
  *
2743
2752
  * @example
2744
2753
  * const { data } = await board.plans.salesLed();
@@ -2898,6 +2907,21 @@ function searchNamespace(client) {
2898
2907
  };
2899
2908
  }
2900
2909
 
2910
+ // src/namespaces/sitemap.ts
2911
+ function sitemapNamespace(client) {
2912
+ return Object.assign(
2913
+ (options) => client.fetch("/sitemap", options),
2914
+ {
2915
+ entries(bucket, query, options) {
2916
+ return client.fetch(
2917
+ `/sitemap/${encodeURIComponent(bucket)}`,
2918
+ { ...options, query }
2919
+ );
2920
+ }
2921
+ }
2922
+ );
2923
+ }
2924
+
2901
2925
  // src/namespaces/talent.ts
2902
2926
  function talentNamespace(client) {
2903
2927
  return {
@@ -3102,7 +3126,8 @@ function createBoardClient(options) {
3102
3126
  salaries: salariesNamespace(client),
3103
3127
  talent: talentNamespace(client),
3104
3128
  plans: plansNamespace(client),
3105
- paywall: paywallNamespace(client)
3129
+ paywall: paywallNamespace(client),
3130
+ sitemap: sitemapNamespace(client)
3106
3131
  };
3107
3132
  }
3108
3133
  export {
@@ -1,4 +1,4 @@
1
- import { S as Schemas } from './_spec-Dk0TIRUc.mjs';
1
+ import { S as Schemas } from './_spec-CyNKpM_j.mjs';
2
2
 
3
3
  /**
4
4
  * Optional pagination metadata returned by Board API list operations.
@@ -1,4 +1,4 @@
1
- import { S as Schemas } from './_spec-Dk0TIRUc.js';
1
+ import { S as Schemas } from './_spec-CyNKpM_j.js';
2
2
 
3
3
  /**
4
4
  * Optional pagination metadata returned by Board API list operations.
@@ -92,7 +92,8 @@ declare function createBoardLinkResolver(layers: readonly ManifestLayer[]): {
92
92
  };
93
93
 
94
94
  /**
95
- * — pure history path matching for hosted rename 301s.
95
+ * — pure history path matching for hosted rename 301s
96
+ *.
96
97
  *
97
98
  * Segment-wise matcher (no RegExp construction from templates). Templates
98
99
  * are validated at write time but stay defensive here: any segment that