@cavuno/board 4.0.0 → 4.2.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 (33) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/dist/{_spec-GVe6WAfT.d.mts → _spec-BnoxU-iR.d.mts} +58 -12
  3. package/dist/{_spec-GVe6WAfT.d.ts → _spec-BnoxU-iR.d.ts} +58 -12
  4. package/dist/{blog-BsmKizpd.d.ts → blog-D-PYhejB.d.ts} +1 -1
  5. package/dist/{blog-Cf64mI8A.d.mts → blog-DoAOCg-d.d.mts} +1 -1
  6. package/dist/{board-DUhgiacm.d.ts → board-4vXzYDL3.d.ts} +2 -2
  7. package/dist/{board-GGWJ4coe.d.mts → board-CvBkK7my.d.mts} +2 -2
  8. package/dist/{breadcrumbs-DiccJhk4.d.ts → breadcrumbs-Blf_rsux.d.ts} +2 -2
  9. package/dist/{breadcrumbs-DFKr0HzU.d.mts → breadcrumbs-Cz1sFqtV.d.mts} +2 -2
  10. package/dist/filters.d.mts +2 -2
  11. package/dist/filters.d.ts +2 -2
  12. package/dist/format.d.mts +4 -4
  13. package/dist/format.d.ts +4 -4
  14. package/dist/index.d.mts +74 -16
  15. package/dist/index.d.ts +74 -16
  16. package/dist/index.js +41 -6
  17. package/dist/index.mjs +41 -6
  18. package/dist/{jobs-QrbXOYB9.d.ts → jobs-B8DNWEir.d.ts} +1 -1
  19. package/dist/{jobs-BuLpV8iy.d.mts → jobs-aTp9uC3a.d.mts} +1 -1
  20. package/dist/{search-Cr4noJJZ.d.mts → search-Cs7d8y1k.d.mts} +1 -1
  21. package/dist/{search-DdsniXQv.d.ts → search-Cskh-neW.d.ts} +1 -1
  22. package/dist/seo.d.mts +6 -6
  23. package/dist/seo.d.ts +6 -6
  24. package/dist/server.d.mts +5 -5
  25. package/dist/server.d.ts +5 -5
  26. package/dist/sitemap.d.mts +5 -5
  27. package/dist/sitemap.d.ts +5 -5
  28. package/dist/suggest.d.mts +2 -2
  29. package/dist/suggest.d.ts +2 -2
  30. package/package.json +1 -1
  31. package/skills/cavuno-board-api-client/SKILL.md +42 -0
  32. package/skills/cavuno-board-seo/SKILL.md +12 -0
  33. package/skills/manifest.json +1 -1
package/dist/index.d.mts CHANGED
@@ -1,12 +1,12 @@
1
- import { S as Schemas, c as components } from './_spec-GVe6WAfT.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-Cr4noJJZ.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-Cr4noJJZ.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-GGWJ4coe.mjs';
5
- export { a as CompanyCategorySalary, j as CompanyMarket, k as CompanyMarketRef, b as CompanySalary, C as CustomFieldDefinition, l as CustomFieldOption, m as CustomFieldType, L as LocationSalaryDetail, n as LocationSkillsIndex, o as LocationTitlesIndex, P as PublicBoard, p as PublicBoardAnalytics, q as PublicBoardFeatures, r as PublicCompany, s as PublicCompanyDetail, t as SalaryCompany, u as SalaryLocation, v as SalarySkill, w as SalaryTitle, x as SkillLocationSalary, y as SkillLocationsIndex, S as SkillSalaryDetail, z as TitleLocationSalary, A as TitleLocationsIndex, T as TitleSalaryDetail } from './board-GGWJ4coe.mjs';
6
- 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-BuLpV8iy.mjs';
7
- 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-BuLpV8iy.mjs';
8
- import { a as BlogPostsListQuery, b as BlogSimilarQuery, c as BlogSearchBody } from './blog-Cf64mI8A.mjs';
9
- export { B as BlogAuthorEmbed, d as BlogTagEmbed, e as PublicBlogAdjacentPosts, f as PublicBlogAuthor, g as PublicBlogPost, P as PublicBlogPostSummary, h as PublicBlogTag } from './blog-Cf64mI8A.mjs';
1
+ import { S as Schemas, c as components } from './_spec-BnoxU-iR.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-Cs7d8y1k.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-Cs7d8y1k.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-CvBkK7my.mjs';
5
+ export { a as CompanyCategorySalary, j as CompanyMarket, k as CompanyMarketRef, b as CompanySalary, C as CustomFieldDefinition, l as CustomFieldOption, m as CustomFieldType, L as LocationSalaryDetail, n as LocationSkillsIndex, o as LocationTitlesIndex, P as PublicBoard, p as PublicBoardAnalytics, q as PublicBoardFeatures, r as PublicCompany, s as PublicCompanyDetail, t as SalaryCompany, u as SalaryLocation, v as SalarySkill, w as SalaryTitle, x as SkillLocationSalary, y as SkillLocationsIndex, S as SkillSalaryDetail, z as TitleLocationSalary, A as TitleLocationsIndex, T as TitleSalaryDetail } from './board-CvBkK7my.mjs';
6
+ 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-aTp9uC3a.mjs';
7
+ 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-aTp9uC3a.mjs';
8
+ import { a as BlogPostsListQuery, b as BlogSimilarQuery, c as BlogSearchBody } from './blog-DoAOCg-d.mjs';
9
+ export { B as BlogAuthorEmbed, d as BlogTagEmbed, e as PublicBlogAdjacentPosts, f as PublicBlogAuthor, g as PublicBlogPost, P as PublicBlogPostSummary, h as PublicBlogTag } from './blog-DoAOCg-d.mjs';
10
10
 
11
11
  /**
12
12
  * Well-known `<domain>_<snake_reason>` codes the Board API sends, grouped by
@@ -142,7 +142,7 @@ declare function paginate<Q extends Record<string, unknown>, P extends PageShape
142
142
  * constant because the package is platform-neutral and cannot read
143
143
  * package.json at runtime.
144
144
  */
145
- declare const SDK_VERSION = "4.0.0";
145
+ declare const SDK_VERSION = "4.2.0";
146
146
 
147
147
  type SavedJob = Schemas['SavedJob'];
148
148
  type SavedJobsListQuery = {
@@ -459,6 +459,14 @@ type EmbedJobsQuery = {
459
459
  */
460
460
  type BoardAccessGrant = Schemas['BoardAccessGrant'];
461
461
 
462
+ /**
463
+ * A board user's marketing-email consent, or `null` when no decision exists.
464
+ *
465
+ * Carries no disclosure text or wording version: the checkbox copy is authored
466
+ * by the board's own frontend, so the API records the decision, not the prose.
467
+ */
468
+ type MarketingConsent = Schemas['MarketingConsent'];
469
+
462
470
  /**
463
471
  * The result of resolving a path against the board's configured redirects
464
472
  * (`board.redirects.resolve()`). A headless frontend 308s to `target`, or
@@ -671,10 +679,11 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
671
679
  */
672
680
  client: BoardClient;
673
681
  /**
674
- * Board context — identity, language, features, and analytics.
682
+ * Board context — identity, brand (`logoUrl` + favicon `icons`), language,
683
+ * features, and analytics.
675
684
  *
676
685
  * @example
677
- * const { name, language } = await board.context();
686
+ * const { name, language, logoUrl, icons } = await board.context();
678
687
  */
679
688
  context(options?: FetchOptions): Promise<{
680
689
  object: "public_board";
@@ -683,6 +692,14 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
683
692
  name: string;
684
693
  language: string;
685
694
  logoUrl: string | null;
695
+ icons: {
696
+ ico: string | null;
697
+ svg: string | null;
698
+ appleTouch: string | null;
699
+ icon192: string | null;
700
+ icon512: string | null;
701
+ iconMaskable512: string | null;
702
+ };
686
703
  primaryDomain: string | null;
687
704
  showCavunoBranding: boolean;
688
705
  features: {
@@ -718,9 +735,9 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
718
735
  };
719
736
  }>;
720
737
  /**
721
- * Board SEO infra — `ads.txt`, IndexNow key, Google site-verification, and
722
- * the canonical base URL. Rebuild `robots.txt` / `ads.txt` /
723
- * `indexnow-key.txt` from it.
738
+ * Board SEO infra tokens — `ads.txt`, IndexNow key, Google site-verification,
739
+ * canonical base URL, and `manifest.name`. Favicon / app-icon URLs are
740
+ * brand identity on `board.context()` (`logoUrl` + `icons`).
724
741
  *
725
742
  * @example
726
743
  * const { adsTxt, canonicalBase } = await board.seo();
@@ -806,11 +823,14 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
806
823
  employmentType: "full_time" | "part_time" | "contract" | "internship" | "temporary" | "volunteer" | "other" | null;
807
824
  remoteOption: "on_site" | "hybrid" | "remote" | null;
808
825
  remoteLocationLabel: string | null;
826
+ remoteWorldwide: boolean | null;
827
+ remoteWorkPermitCountryCodes: string[];
809
828
  salaryMin: number | null;
810
829
  salaryMax: number | null;
811
830
  salaryCurrency: string | null;
812
831
  salaryTimeframe: string | null;
813
832
  isFeatured: boolean;
833
+ summary: string | null;
814
834
  locationLabel: string | null;
815
835
  company: {
816
836
  slug: string;
@@ -903,11 +923,14 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
903
923
  employmentType: "full_time" | "part_time" | "contract" | "internship" | "temporary" | "volunteer" | "other" | null;
904
924
  remoteOption: "on_site" | "hybrid" | "remote" | null;
905
925
  remoteLocationLabel: string | null;
926
+ remoteWorldwide: boolean | null;
927
+ remoteWorkPermitCountryCodes: string[];
906
928
  salaryMin: number | null;
907
929
  salaryMax: number | null;
908
930
  salaryCurrency: string | null;
909
931
  salaryTimeframe: string | null;
910
932
  isFeatured: boolean;
933
+ summary: string | null;
911
934
  locationLabel: string | null;
912
935
  company: {
913
936
  slug: string;
@@ -937,6 +960,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
937
960
  slug: string;
938
961
  website: string | null;
939
962
  logoUrl: string | null;
963
+ summary: string | null;
940
964
  description: string | null;
941
965
  jobCount: number;
942
966
  publishedJobCount: number;
@@ -951,6 +975,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
951
975
  slug: string;
952
976
  website: string | null;
953
977
  logoUrl: string | null;
978
+ summary: string | null;
954
979
  description: string | null;
955
980
  jobCount: number;
956
981
  publishedJobCount: number;
@@ -964,6 +989,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
964
989
  slug: string;
965
990
  website: string | null;
966
991
  logoUrl: string | null;
992
+ summary: string | null;
967
993
  description: string | null;
968
994
  jobCount: number;
969
995
  publishedJobCount: number;
@@ -2227,6 +2253,38 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
2227
2253
  blocked: boolean;
2228
2254
  }>;
2229
2255
  };
2256
+ marketingConsent: {
2257
+ retrieve(options?: FetchOptions): Promise<{
2258
+ id: string;
2259
+ object: "marketing_consent";
2260
+ status: "granted" | "withdrawn";
2261
+ source: string;
2262
+ reason: "person_request" | "operator_request" | "account_deleted" | null;
2263
+ grantedAt: string | null;
2264
+ withdrawnAt: string | null;
2265
+ revision: number;
2266
+ } | null>;
2267
+ grant(options?: FetchOptions): Promise<{
2268
+ id: string;
2269
+ object: "marketing_consent";
2270
+ status: "granted" | "withdrawn";
2271
+ source: string;
2272
+ reason: "person_request" | "operator_request" | "account_deleted" | null;
2273
+ grantedAt: string | null;
2274
+ withdrawnAt: string | null;
2275
+ revision: number;
2276
+ } | null>;
2277
+ withdraw(options?: FetchOptions): Promise<{
2278
+ id: string;
2279
+ object: "marketing_consent";
2280
+ status: "granted" | "withdrawn";
2281
+ source: string;
2282
+ reason: "person_request" | "operator_request" | "account_deleted" | null;
2283
+ grantedAt: string | null;
2284
+ withdrawnAt: string | null;
2285
+ revision: number;
2286
+ } | null>;
2287
+ };
2230
2288
  access: {
2231
2289
  checkout(body: AccessCheckoutBody, options?: FetchOptions): Promise<{
2232
2290
  object: "checkout_session";
@@ -2967,4 +3025,4 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
2967
3025
  };
2968
3026
  type BoardSdk = ReturnType<typeof createBoardClient>;
2969
3027
 
2970
- export { type AccessCheckoutBody, type AccessCheckoutSession, type AccessCheckoutSessionState, type AccessGrant, type AccessPortalBody, type AccessPortalSession, type AddApplicantNoteBody, type Alert, type AlertBody, type Application, type ApplicationsListQuery, type ApplyAction, type ApplyBody, 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 BoardSeo, type BoardUser, type BulkMoveApplicantsBody, type BulkRejectApplicantsBody, type CandidateAvatar, type CandidateEducation, type CandidateExperience, type CandidateLanguage, type CandidateProfile, type CandidateSkill, type ClaimableCompany, CompaniesListQuery, CompaniesSearchBody, CompanyJobsListQuery, CompanyListEnvelope, CompanyMarketsListQuery, type CompanyMembership, CompanySimilarQuery, type ConfirmWorkEmailBody, type ConsumeMagicLinkBody, type Conversation, type ConversationArchive, type ConversationDetail, type ConversationRef, type ConversationsListQuery, type CreateBoardClientOptions, type CreateCompanyBody, type CreateEducationBody, type CreateEmployerJobBody, type CreateExperienceBody, type CreateJobPostingInput, type CreatePipelineStageBody, 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 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 RedirectResolution, type RefreshBody, type RegisterBody, RemoteOption, type RemotePermitTaxonomyEntry, type ReorderPipelineStagesBody, type ReplyBody, type ReportBody, 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 StartAboutApplicationBody, type StartConversationBody, StorageMode, type TalentAccess, type TalentDirectoryEntry, type TalentDirectoryListEnvelope, type TalentDirectoryQuery, type TalentProfile, type TaxonomyGeo, type TaxonomyListQuery, type TaxonomyResolution, type ThreadMessagesQuery, type UnreadCount, type UnsubscribeBody, type UpdateApplicationFactsBody, type UpdateCandidateProfileBody, type UpdateEducationBody, type UpdateEmployerCompanyBody, type UpdateEmployerJobBody, type UpdateExperienceBody, type UpdateLanguagesBody, type UpdateNotificationPreferenceBody, type UpdatePipelineStageBody, type UpdateSkillsBody, type VerifyEmailBody, createBoardClient, isBoardApiError, isBoardPasswordRequired, isColdRule, isConflict, isForbidden, isNotFound, isOwnMessage, isRateLimited, isSafeApplicationUrl, isUnauthorized, isValidationError, lastOwnMessageId, paginate, resolveApplyAction };
3028
+ export { type AccessCheckoutBody, type AccessCheckoutSession, type AccessCheckoutSessionState, type AccessGrant, type AccessPortalBody, type AccessPortalSession, type AddApplicantNoteBody, type Alert, type AlertBody, type Application, type ApplicationsListQuery, type ApplyAction, type ApplyBody, 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 BoardSeo, type BoardUser, type BulkMoveApplicantsBody, type BulkRejectApplicantsBody, type CandidateAvatar, type CandidateEducation, type CandidateExperience, type CandidateLanguage, type CandidateProfile, type CandidateSkill, type ClaimableCompany, CompaniesListQuery, CompaniesSearchBody, CompanyJobsListQuery, CompanyListEnvelope, CompanyMarketsListQuery, type CompanyMembership, CompanySimilarQuery, type ConfirmWorkEmailBody, type ConsumeMagicLinkBody, type Conversation, type ConversationArchive, type ConversationDetail, type ConversationRef, type ConversationsListQuery, type CreateBoardClientOptions, type CreateCompanyBody, type CreateEducationBody, type CreateEmployerJobBody, type CreateExperienceBody, type CreateJobPostingInput, type CreatePipelineStageBody, 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 RedirectResolution, type RefreshBody, type RegisterBody, RemoteOption, type RemotePermitTaxonomyEntry, type ReorderPipelineStagesBody, type ReplyBody, type ReportBody, 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 StartAboutApplicationBody, type StartConversationBody, StorageMode, type TalentAccess, type TalentDirectoryEntry, type TalentDirectoryListEnvelope, type TalentDirectoryQuery, type TalentProfile, type TaxonomyGeo, type TaxonomyListQuery, type TaxonomyResolution, type ThreadMessagesQuery, type UnreadCount, type UnsubscribeBody, type UpdateApplicationFactsBody, type UpdateCandidateProfileBody, type UpdateEducationBody, type UpdateEmployerCompanyBody, type UpdateEmployerJobBody, type UpdateExperienceBody, type UpdateLanguagesBody, type UpdateNotificationPreferenceBody, type UpdatePipelineStageBody, type UpdateSkillsBody, type VerifyEmailBody, createBoardClient, isBoardApiError, isBoardPasswordRequired, isColdRule, isConflict, isForbidden, isNotFound, isOwnMessage, isRateLimited, isSafeApplicationUrl, isUnauthorized, isValidationError, lastOwnMessageId, paginate, resolveApplyAction };
package/dist/index.d.ts CHANGED
@@ -1,12 +1,12 @@
1
- import { S as Schemas, c as components } from './_spec-GVe6WAfT.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-DdsniXQv.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-DdsniXQv.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-DUhgiacm.js';
5
- export { a as CompanyCategorySalary, j as CompanyMarket, k as CompanyMarketRef, b as CompanySalary, C as CustomFieldDefinition, l as CustomFieldOption, m as CustomFieldType, L as LocationSalaryDetail, n as LocationSkillsIndex, o as LocationTitlesIndex, P as PublicBoard, p as PublicBoardAnalytics, q as PublicBoardFeatures, r as PublicCompany, s as PublicCompanyDetail, t as SalaryCompany, u as SalaryLocation, v as SalarySkill, w as SalaryTitle, x as SkillLocationSalary, y as SkillLocationsIndex, S as SkillSalaryDetail, z as TitleLocationSalary, A as TitleLocationsIndex, T as TitleSalaryDetail } from './board-DUhgiacm.js';
6
- 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-QrbXOYB9.js';
7
- 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-QrbXOYB9.js';
8
- import { a as BlogPostsListQuery, b as BlogSimilarQuery, c as BlogSearchBody } from './blog-BsmKizpd.js';
9
- export { B as BlogAuthorEmbed, d as BlogTagEmbed, e as PublicBlogAdjacentPosts, f as PublicBlogAuthor, g as PublicBlogPost, P as PublicBlogPostSummary, h as PublicBlogTag } from './blog-BsmKizpd.js';
1
+ import { S as Schemas, c as components } from './_spec-BnoxU-iR.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-Cskh-neW.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-Cskh-neW.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-4vXzYDL3.js';
5
+ export { a as CompanyCategorySalary, j as CompanyMarket, k as CompanyMarketRef, b as CompanySalary, C as CustomFieldDefinition, l as CustomFieldOption, m as CustomFieldType, L as LocationSalaryDetail, n as LocationSkillsIndex, o as LocationTitlesIndex, P as PublicBoard, p as PublicBoardAnalytics, q as PublicBoardFeatures, r as PublicCompany, s as PublicCompanyDetail, t as SalaryCompany, u as SalaryLocation, v as SalarySkill, w as SalaryTitle, x as SkillLocationSalary, y as SkillLocationsIndex, S as SkillSalaryDetail, z as TitleLocationSalary, A as TitleLocationsIndex, T as TitleSalaryDetail } from './board-4vXzYDL3.js';
6
+ 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-B8DNWEir.js';
7
+ 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-B8DNWEir.js';
8
+ import { a as BlogPostsListQuery, b as BlogSimilarQuery, c as BlogSearchBody } from './blog-D-PYhejB.js';
9
+ export { B as BlogAuthorEmbed, d as BlogTagEmbed, e as PublicBlogAdjacentPosts, f as PublicBlogAuthor, g as PublicBlogPost, P as PublicBlogPostSummary, h as PublicBlogTag } from './blog-D-PYhejB.js';
10
10
 
11
11
  /**
12
12
  * Well-known `<domain>_<snake_reason>` codes the Board API sends, grouped by
@@ -142,7 +142,7 @@ declare function paginate<Q extends Record<string, unknown>, P extends PageShape
142
142
  * constant because the package is platform-neutral and cannot read
143
143
  * package.json at runtime.
144
144
  */
145
- declare const SDK_VERSION = "4.0.0";
145
+ declare const SDK_VERSION = "4.2.0";
146
146
 
147
147
  type SavedJob = Schemas['SavedJob'];
148
148
  type SavedJobsListQuery = {
@@ -459,6 +459,14 @@ type EmbedJobsQuery = {
459
459
  */
460
460
  type BoardAccessGrant = Schemas['BoardAccessGrant'];
461
461
 
462
+ /**
463
+ * A board user's marketing-email consent, or `null` when no decision exists.
464
+ *
465
+ * Carries no disclosure text or wording version: the checkbox copy is authored
466
+ * by the board's own frontend, so the API records the decision, not the prose.
467
+ */
468
+ type MarketingConsent = Schemas['MarketingConsent'];
469
+
462
470
  /**
463
471
  * The result of resolving a path against the board's configured redirects
464
472
  * (`board.redirects.resolve()`). A headless frontend 308s to `target`, or
@@ -671,10 +679,11 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
671
679
  */
672
680
  client: BoardClient;
673
681
  /**
674
- * Board context — identity, language, features, and analytics.
682
+ * Board context — identity, brand (`logoUrl` + favicon `icons`), language,
683
+ * features, and analytics.
675
684
  *
676
685
  * @example
677
- * const { name, language } = await board.context();
686
+ * const { name, language, logoUrl, icons } = await board.context();
678
687
  */
679
688
  context(options?: FetchOptions): Promise<{
680
689
  object: "public_board";
@@ -683,6 +692,14 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
683
692
  name: string;
684
693
  language: string;
685
694
  logoUrl: string | null;
695
+ icons: {
696
+ ico: string | null;
697
+ svg: string | null;
698
+ appleTouch: string | null;
699
+ icon192: string | null;
700
+ icon512: string | null;
701
+ iconMaskable512: string | null;
702
+ };
686
703
  primaryDomain: string | null;
687
704
  showCavunoBranding: boolean;
688
705
  features: {
@@ -718,9 +735,9 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
718
735
  };
719
736
  }>;
720
737
  /**
721
- * Board SEO infra — `ads.txt`, IndexNow key, Google site-verification, and
722
- * the canonical base URL. Rebuild `robots.txt` / `ads.txt` /
723
- * `indexnow-key.txt` from it.
738
+ * Board SEO infra tokens — `ads.txt`, IndexNow key, Google site-verification,
739
+ * canonical base URL, and `manifest.name`. Favicon / app-icon URLs are
740
+ * brand identity on `board.context()` (`logoUrl` + `icons`).
724
741
  *
725
742
  * @example
726
743
  * const { adsTxt, canonicalBase } = await board.seo();
@@ -806,11 +823,14 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
806
823
  employmentType: "full_time" | "part_time" | "contract" | "internship" | "temporary" | "volunteer" | "other" | null;
807
824
  remoteOption: "on_site" | "hybrid" | "remote" | null;
808
825
  remoteLocationLabel: string | null;
826
+ remoteWorldwide: boolean | null;
827
+ remoteWorkPermitCountryCodes: string[];
809
828
  salaryMin: number | null;
810
829
  salaryMax: number | null;
811
830
  salaryCurrency: string | null;
812
831
  salaryTimeframe: string | null;
813
832
  isFeatured: boolean;
833
+ summary: string | null;
814
834
  locationLabel: string | null;
815
835
  company: {
816
836
  slug: string;
@@ -903,11 +923,14 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
903
923
  employmentType: "full_time" | "part_time" | "contract" | "internship" | "temporary" | "volunteer" | "other" | null;
904
924
  remoteOption: "on_site" | "hybrid" | "remote" | null;
905
925
  remoteLocationLabel: string | null;
926
+ remoteWorldwide: boolean | null;
927
+ remoteWorkPermitCountryCodes: string[];
906
928
  salaryMin: number | null;
907
929
  salaryMax: number | null;
908
930
  salaryCurrency: string | null;
909
931
  salaryTimeframe: string | null;
910
932
  isFeatured: boolean;
933
+ summary: string | null;
911
934
  locationLabel: string | null;
912
935
  company: {
913
936
  slug: string;
@@ -937,6 +960,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
937
960
  slug: string;
938
961
  website: string | null;
939
962
  logoUrl: string | null;
963
+ summary: string | null;
940
964
  description: string | null;
941
965
  jobCount: number;
942
966
  publishedJobCount: number;
@@ -951,6 +975,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
951
975
  slug: string;
952
976
  website: string | null;
953
977
  logoUrl: string | null;
978
+ summary: string | null;
954
979
  description: string | null;
955
980
  jobCount: number;
956
981
  publishedJobCount: number;
@@ -964,6 +989,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
964
989
  slug: string;
965
990
  website: string | null;
966
991
  logoUrl: string | null;
992
+ summary: string | null;
967
993
  description: string | null;
968
994
  jobCount: number;
969
995
  publishedJobCount: number;
@@ -2227,6 +2253,38 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
2227
2253
  blocked: boolean;
2228
2254
  }>;
2229
2255
  };
2256
+ marketingConsent: {
2257
+ retrieve(options?: FetchOptions): Promise<{
2258
+ id: string;
2259
+ object: "marketing_consent";
2260
+ status: "granted" | "withdrawn";
2261
+ source: string;
2262
+ reason: "person_request" | "operator_request" | "account_deleted" | null;
2263
+ grantedAt: string | null;
2264
+ withdrawnAt: string | null;
2265
+ revision: number;
2266
+ } | null>;
2267
+ grant(options?: FetchOptions): Promise<{
2268
+ id: string;
2269
+ object: "marketing_consent";
2270
+ status: "granted" | "withdrawn";
2271
+ source: string;
2272
+ reason: "person_request" | "operator_request" | "account_deleted" | null;
2273
+ grantedAt: string | null;
2274
+ withdrawnAt: string | null;
2275
+ revision: number;
2276
+ } | null>;
2277
+ withdraw(options?: FetchOptions): Promise<{
2278
+ id: string;
2279
+ object: "marketing_consent";
2280
+ status: "granted" | "withdrawn";
2281
+ source: string;
2282
+ reason: "person_request" | "operator_request" | "account_deleted" | null;
2283
+ grantedAt: string | null;
2284
+ withdrawnAt: string | null;
2285
+ revision: number;
2286
+ } | null>;
2287
+ };
2230
2288
  access: {
2231
2289
  checkout(body: AccessCheckoutBody, options?: FetchOptions): Promise<{
2232
2290
  object: "checkout_session";
@@ -2967,4 +3025,4 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
2967
3025
  };
2968
3026
  type BoardSdk = ReturnType<typeof createBoardClient>;
2969
3027
 
2970
- export { type AccessCheckoutBody, type AccessCheckoutSession, type AccessCheckoutSessionState, type AccessGrant, type AccessPortalBody, type AccessPortalSession, type AddApplicantNoteBody, type Alert, type AlertBody, type Application, type ApplicationsListQuery, type ApplyAction, type ApplyBody, 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 BoardSeo, type BoardUser, type BulkMoveApplicantsBody, type BulkRejectApplicantsBody, type CandidateAvatar, type CandidateEducation, type CandidateExperience, type CandidateLanguage, type CandidateProfile, type CandidateSkill, type ClaimableCompany, CompaniesListQuery, CompaniesSearchBody, CompanyJobsListQuery, CompanyListEnvelope, CompanyMarketsListQuery, type CompanyMembership, CompanySimilarQuery, type ConfirmWorkEmailBody, type ConsumeMagicLinkBody, type Conversation, type ConversationArchive, type ConversationDetail, type ConversationRef, type ConversationsListQuery, type CreateBoardClientOptions, type CreateCompanyBody, type CreateEducationBody, type CreateEmployerJobBody, type CreateExperienceBody, type CreateJobPostingInput, type CreatePipelineStageBody, 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 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 RedirectResolution, type RefreshBody, type RegisterBody, RemoteOption, type RemotePermitTaxonomyEntry, type ReorderPipelineStagesBody, type ReplyBody, type ReportBody, 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 StartAboutApplicationBody, type StartConversationBody, StorageMode, type TalentAccess, type TalentDirectoryEntry, type TalentDirectoryListEnvelope, type TalentDirectoryQuery, type TalentProfile, type TaxonomyGeo, type TaxonomyListQuery, type TaxonomyResolution, type ThreadMessagesQuery, type UnreadCount, type UnsubscribeBody, type UpdateApplicationFactsBody, type UpdateCandidateProfileBody, type UpdateEducationBody, type UpdateEmployerCompanyBody, type UpdateEmployerJobBody, type UpdateExperienceBody, type UpdateLanguagesBody, type UpdateNotificationPreferenceBody, type UpdatePipelineStageBody, type UpdateSkillsBody, type VerifyEmailBody, createBoardClient, isBoardApiError, isBoardPasswordRequired, isColdRule, isConflict, isForbidden, isNotFound, isOwnMessage, isRateLimited, isSafeApplicationUrl, isUnauthorized, isValidationError, lastOwnMessageId, paginate, resolveApplyAction };
3028
+ export { type AccessCheckoutBody, type AccessCheckoutSession, type AccessCheckoutSessionState, type AccessGrant, type AccessPortalBody, type AccessPortalSession, type AddApplicantNoteBody, type Alert, type AlertBody, type Application, type ApplicationsListQuery, type ApplyAction, type ApplyBody, 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 BoardSeo, type BoardUser, type BulkMoveApplicantsBody, type BulkRejectApplicantsBody, type CandidateAvatar, type CandidateEducation, type CandidateExperience, type CandidateLanguage, type CandidateProfile, type CandidateSkill, type ClaimableCompany, CompaniesListQuery, CompaniesSearchBody, CompanyJobsListQuery, CompanyListEnvelope, CompanyMarketsListQuery, type CompanyMembership, CompanySimilarQuery, type ConfirmWorkEmailBody, type ConsumeMagicLinkBody, type Conversation, type ConversationArchive, type ConversationDetail, type ConversationRef, type ConversationsListQuery, type CreateBoardClientOptions, type CreateCompanyBody, type CreateEducationBody, type CreateEmployerJobBody, type CreateExperienceBody, type CreateJobPostingInput, type CreatePipelineStageBody, 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 RedirectResolution, type RefreshBody, type RegisterBody, RemoteOption, type RemotePermitTaxonomyEntry, type ReorderPipelineStagesBody, type ReplyBody, type ReportBody, 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 StartAboutApplicationBody, type StartConversationBody, StorageMode, type TalentAccess, type TalentDirectoryEntry, type TalentDirectoryListEnvelope, type TalentDirectoryQuery, type TalentProfile, type TaxonomyGeo, type TaxonomyListQuery, type TaxonomyResolution, type ThreadMessagesQuery, type UnreadCount, type UnsubscribeBody, type UpdateApplicationFactsBody, type UpdateCandidateProfileBody, type UpdateEducationBody, type UpdateEmployerCompanyBody, type UpdateEmployerJobBody, type UpdateExperienceBody, type UpdateLanguagesBody, type UpdateNotificationPreferenceBody, type UpdatePipelineStageBody, type UpdateSkillsBody, type VerifyEmailBody, createBoardClient, isBoardApiError, isBoardPasswordRequired, isColdRule, isConflict, isForbidden, isNotFound, isOwnMessage, isRateLimited, isSafeApplicationUrl, isUnauthorized, isValidationError, lastOwnMessageId, paginate, resolveApplyAction };
package/dist/index.js CHANGED
@@ -312,7 +312,7 @@ async function clearSession(storage) {
312
312
  }
313
313
 
314
314
  // src/version.ts
315
- var SDK_VERSION = "4.0.0";
315
+ var SDK_VERSION = "4.2.0";
316
316
 
317
317
  // src/client.ts
318
318
  function isRawBody(body) {
@@ -2325,6 +2325,40 @@ function meNamespace(client) {
2325
2325
  );
2326
2326
  }
2327
2327
  },
2328
+ /**
2329
+ * My marketing-email consent.
2330
+ *
2331
+ * Consent is a property of the board user, given at sign-up or from the
2332
+ * board's own settings page. Both surfaces render board-authored
2333
+ * disclosure wording — the API records the decision, never the prose, so
2334
+ * whatever you show beside these calls is what the person agreed to.
2335
+ */
2336
+ marketingConsent: {
2337
+ /** My consent, or `null` when no decision has ever been recorded. */
2338
+ retrieve(options) {
2339
+ return client.fetch(
2340
+ "/me/marketing-consent",
2341
+ options
2342
+ );
2343
+ },
2344
+ /**
2345
+ * Grant. Call this only from a surface that displayed your disclosure
2346
+ * copy — nothing server-side can check that you did.
2347
+ */
2348
+ grant(options) {
2349
+ return client.fetch("/me/marketing-consent/grant", {
2350
+ ...options,
2351
+ method: "POST"
2352
+ });
2353
+ },
2354
+ /** Withdraw. Repeating it returns the same state, no new event. */
2355
+ withdraw(options) {
2356
+ return client.fetch(
2357
+ "/me/marketing-consent/withdraw",
2358
+ { ...options, method: "POST" }
2359
+ );
2360
+ }
2361
+ },
2328
2362
  /**
2329
2363
  * The candidate job-access paywall — the authenticated money flow . Enumerate offers publicly with `board.paywall.offers()`, then
2330
2364
  * `checkout` here; poll `retrieveCheckout` until complete and confirm with
@@ -2806,18 +2840,19 @@ function createBoardClient(options) {
2806
2840
  */
2807
2841
  client,
2808
2842
  /**
2809
- * Board context — identity, language, features, and analytics.
2843
+ * Board context — identity, brand (`logoUrl` + favicon `icons`), language,
2844
+ * features, and analytics.
2810
2845
  *
2811
2846
  * @example
2812
- * const { name, language } = await board.context();
2847
+ * const { name, language, logoUrl, icons } = await board.context();
2813
2848
  */
2814
2849
  context(options2) {
2815
2850
  return client.fetch("", options2);
2816
2851
  },
2817
2852
  /**
2818
- * Board SEO infra — `ads.txt`, IndexNow key, Google site-verification, and
2819
- * the canonical base URL. Rebuild `robots.txt` / `ads.txt` /
2820
- * `indexnow-key.txt` from it.
2853
+ * Board SEO infra tokens — `ads.txt`, IndexNow key, Google site-verification,
2854
+ * canonical base URL, and `manifest.name`. Favicon / app-icon URLs are
2855
+ * brand identity on `board.context()` (`logoUrl` + `icons`).
2821
2856
  *
2822
2857
  * @example
2823
2858
  * const { adsTxt, canonicalBase } = await board.seo();
package/dist/index.mjs CHANGED
@@ -39,7 +39,7 @@ function toSearchParams(query) {
39
39
  }
40
40
 
41
41
  // src/version.ts
42
- var SDK_VERSION = "4.0.0";
42
+ var SDK_VERSION = "4.2.0";
43
43
 
44
44
  // src/client.ts
45
45
  function isRawBody(body) {
@@ -2052,6 +2052,40 @@ function meNamespace(client) {
2052
2052
  );
2053
2053
  }
2054
2054
  },
2055
+ /**
2056
+ * My marketing-email consent.
2057
+ *
2058
+ * Consent is a property of the board user, given at sign-up or from the
2059
+ * board's own settings page. Both surfaces render board-authored
2060
+ * disclosure wording — the API records the decision, never the prose, so
2061
+ * whatever you show beside these calls is what the person agreed to.
2062
+ */
2063
+ marketingConsent: {
2064
+ /** My consent, or `null` when no decision has ever been recorded. */
2065
+ retrieve(options) {
2066
+ return client.fetch(
2067
+ "/me/marketing-consent",
2068
+ options
2069
+ );
2070
+ },
2071
+ /**
2072
+ * Grant. Call this only from a surface that displayed your disclosure
2073
+ * copy — nothing server-side can check that you did.
2074
+ */
2075
+ grant(options) {
2076
+ return client.fetch("/me/marketing-consent/grant", {
2077
+ ...options,
2078
+ method: "POST"
2079
+ });
2080
+ },
2081
+ /** Withdraw. Repeating it returns the same state, no new event. */
2082
+ withdraw(options) {
2083
+ return client.fetch(
2084
+ "/me/marketing-consent/withdraw",
2085
+ { ...options, method: "POST" }
2086
+ );
2087
+ }
2088
+ },
2055
2089
  /**
2056
2090
  * The candidate job-access paywall — the authenticated money flow . Enumerate offers publicly with `board.paywall.offers()`, then
2057
2091
  * `checkout` here; poll `retrieveCheckout` until complete and confirm with
@@ -2503,18 +2537,19 @@ function createBoardClient(options) {
2503
2537
  */
2504
2538
  client,
2505
2539
  /**
2506
- * Board context — identity, language, features, and analytics.
2540
+ * Board context — identity, brand (`logoUrl` + favicon `icons`), language,
2541
+ * features, and analytics.
2507
2542
  *
2508
2543
  * @example
2509
- * const { name, language } = await board.context();
2544
+ * const { name, language, logoUrl, icons } = await board.context();
2510
2545
  */
2511
2546
  context(options2) {
2512
2547
  return client.fetch("", options2);
2513
2548
  },
2514
2549
  /**
2515
- * Board SEO infra — `ads.txt`, IndexNow key, Google site-verification, and
2516
- * the canonical base URL. Rebuild `robots.txt` / `ads.txt` /
2517
- * `indexnow-key.txt` from it.
2550
+ * Board SEO infra tokens — `ads.txt`, IndexNow key, Google site-verification,
2551
+ * canonical base URL, and `manifest.name`. Favicon / app-icon URLs are
2552
+ * brand identity on `board.context()` (`logoUrl` + `icons`).
2518
2553
  *
2519
2554
  * @example
2520
2555
  * const { adsTxt, canonicalBase } = await board.seo();
@@ -1,4 +1,4 @@
1
- import { S as Schemas } from './_spec-GVe6WAfT.js';
1
+ import { S as Schemas } from './_spec-BnoxU-iR.js';
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-GVe6WAfT.mjs';
1
+ import { S as Schemas } from './_spec-BnoxU-iR.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-GVe6WAfT.mjs';
1
+ import { S as Schemas } from './_spec-BnoxU-iR.mjs';
2
2
 
3
3
  type Awaitable<T> = T | Promise<T>;
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { S as Schemas } from './_spec-GVe6WAfT.js';
1
+ import { S as Schemas } from './_spec-BnoxU-iR.js';
2
2
 
3
3
  type Awaitable<T> = T | Promise<T>;
4
4
  /**
package/dist/seo.d.mts CHANGED
@@ -1,9 +1,9 @@
1
- import { P as PublicBlogPostSummary, B as BlogAuthorEmbed } from './blog-Cf64mI8A.mjs';
2
- import { e as JsonLdObject } from './breadcrumbs-DFKr0HzU.mjs';
3
- export { A as ALL_COUNTRY_CODES, B as BreadcrumbItemInput, g as FaqItem, J as JobBreadcrumb, h as JsonLdBoard, N as NumberNotation, i as SENIORITY_ORDER, j as SalaryFaqEntry, k as SalaryJsonLdOptions, l as SalaryOccupationListOptions, b as buildJobBreadcrumbs, m as buildSalaryFaq, o as companyCategorySalaryJsonLd, p as companySalaryJsonLd, q as createBreadcrumbJsonLd, r as createJobPostingJsonLd, s as crossAxisSalaryJsonLd, t as faqJsonLd, c as formatSalaryStat, d as formatSalaryStatRange, u as itemListJsonLd, v as locationSalaryJsonLd, n as normalizeWebsiteUrl, w as skillSalaryJsonLd, x as sortBySeniority, y as titleSalaryJsonLd } from './breadcrumbs-DFKr0HzU.mjs';
4
- import './_spec-GVe6WAfT.mjs';
5
- import './board-GGWJ4coe.mjs';
6
- import './jobs-BuLpV8iy.mjs';
1
+ import { P as PublicBlogPostSummary, B as BlogAuthorEmbed } from './blog-DoAOCg-d.mjs';
2
+ import { e as JsonLdObject } from './breadcrumbs-Cz1sFqtV.mjs';
3
+ export { A as ALL_COUNTRY_CODES, B as BreadcrumbItemInput, g as FaqItem, J as JobBreadcrumb, h as JsonLdBoard, N as NumberNotation, i as SENIORITY_ORDER, j as SalaryFaqEntry, k as SalaryJsonLdOptions, l as SalaryOccupationListOptions, b as buildJobBreadcrumbs, m as buildSalaryFaq, o as companyCategorySalaryJsonLd, p as companySalaryJsonLd, q as createBreadcrumbJsonLd, r as createJobPostingJsonLd, s as crossAxisSalaryJsonLd, t as faqJsonLd, c as formatSalaryStat, d as formatSalaryStatRange, u as itemListJsonLd, v as locationSalaryJsonLd, n as normalizeWebsiteUrl, w as skillSalaryJsonLd, x as sortBySeniority, y as titleSalaryJsonLd } from './breadcrumbs-Cz1sFqtV.mjs';
4
+ import './_spec-BnoxU-iR.mjs';
5
+ import './board-CvBkK7my.mjs';
6
+ import './jobs-aTp9uC3a.mjs';
7
7
 
8
8
  /**
9
9
  * Blog structured data on the `@cavuno/board` wire types, transcribed from
package/dist/seo.d.ts CHANGED
@@ -1,9 +1,9 @@
1
- import { P as PublicBlogPostSummary, B as BlogAuthorEmbed } from './blog-BsmKizpd.js';
2
- import { e as JsonLdObject } from './breadcrumbs-DiccJhk4.js';
3
- export { A as ALL_COUNTRY_CODES, B as BreadcrumbItemInput, g as FaqItem, J as JobBreadcrumb, h as JsonLdBoard, N as NumberNotation, i as SENIORITY_ORDER, j as SalaryFaqEntry, k as SalaryJsonLdOptions, l as SalaryOccupationListOptions, b as buildJobBreadcrumbs, m as buildSalaryFaq, o as companyCategorySalaryJsonLd, p as companySalaryJsonLd, q as createBreadcrumbJsonLd, r as createJobPostingJsonLd, s as crossAxisSalaryJsonLd, t as faqJsonLd, c as formatSalaryStat, d as formatSalaryStatRange, u as itemListJsonLd, v as locationSalaryJsonLd, n as normalizeWebsiteUrl, w as skillSalaryJsonLd, x as sortBySeniority, y as titleSalaryJsonLd } from './breadcrumbs-DiccJhk4.js';
4
- import './_spec-GVe6WAfT.js';
5
- import './board-DUhgiacm.js';
6
- import './jobs-QrbXOYB9.js';
1
+ import { P as PublicBlogPostSummary, B as BlogAuthorEmbed } from './blog-D-PYhejB.js';
2
+ import { e as JsonLdObject } from './breadcrumbs-Blf_rsux.js';
3
+ export { A as ALL_COUNTRY_CODES, B as BreadcrumbItemInput, g as FaqItem, J as JobBreadcrumb, h as JsonLdBoard, N as NumberNotation, i as SENIORITY_ORDER, j as SalaryFaqEntry, k as SalaryJsonLdOptions, l as SalaryOccupationListOptions, b as buildJobBreadcrumbs, m as buildSalaryFaq, o as companyCategorySalaryJsonLd, p as companySalaryJsonLd, q as createBreadcrumbJsonLd, r as createJobPostingJsonLd, s as crossAxisSalaryJsonLd, t as faqJsonLd, c as formatSalaryStat, d as formatSalaryStatRange, u as itemListJsonLd, v as locationSalaryJsonLd, n as normalizeWebsiteUrl, w as skillSalaryJsonLd, x as sortBySeniority, y as titleSalaryJsonLd } from './breadcrumbs-Blf_rsux.js';
4
+ import './_spec-BnoxU-iR.js';
5
+ import './board-4vXzYDL3.js';
6
+ import './jobs-B8DNWEir.js';
7
7
 
8
8
  /**
9
9
  * Blog structured data on the `@cavuno/board` wire types, transcribed from
package/dist/server.d.mts CHANGED
@@ -1,9 +1,9 @@
1
1
  import { BoardSdk } from './index.mjs';
2
- import './_spec-GVe6WAfT.mjs';
3
- import './search-Cr4noJJZ.mjs';
4
- import './board-GGWJ4coe.mjs';
5
- import './jobs-BuLpV8iy.mjs';
6
- import './blog-Cf64mI8A.mjs';
2
+ import './_spec-BnoxU-iR.mjs';
3
+ import './search-Cs7d8y1k.mjs';
4
+ import './board-CvBkK7my.mjs';
5
+ import './jobs-aTp9uC3a.mjs';
6
+ import './blog-DoAOCg-d.mjs';
7
7
 
8
8
  /**
9
9
  * Session cookie codec — pure (no framework imports, no node imports) so it