@cavuno/board 4.8.0 → 4.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +48 -0
- package/dist/{_spec-DePC7a05.d.mts → _spec-BwUP7Wni.d.mts} +100 -1
- package/dist/{_spec-DePC7a05.d.ts → _spec-BwUP7Wni.d.ts} +100 -1
- package/dist/bin.mjs +174 -19
- package/dist/{blog-DbFr4VPW.d.mts → blog-C_xXYOxc.d.mts} +1 -1
- package/dist/{blog-ummlt6Uq.d.ts → blog-DC4BfQqF.d.ts} +1 -1
- package/dist/{board-zWyHbyi4.d.ts → board-CG8rDGTY.d.mts} +5 -3
- package/dist/{board-DxTMBgIf.d.mts → board-zdQ875ck.d.ts} +5 -3
- package/dist/{breadcrumbs-P4qh0zML.d.mts → breadcrumbs-BK7AqNp2.d.mts} +2 -2
- package/dist/{breadcrumbs-kbmspmfk.d.ts → breadcrumbs-qs9DC0yh.d.ts} +2 -2
- package/dist/browser/cavuno-board.global.min.js +1 -1
- package/dist/{chunk-IWWPHFK2.mjs → chunk-XEJWXRLK.mjs} +10 -0
- package/dist/doctor.d.mts +3 -1
- package/dist/doctor.d.ts +3 -1
- package/dist/doctor.js +169 -17
- package/dist/doctor.mjs +169 -17
- package/dist/filters.d.mts +2 -2
- package/dist/filters.d.ts +2 -2
- package/dist/format.d.mts +4 -4
- package/dist/format.d.ts +4 -4
- package/dist/index.d.mts +118 -24
- package/dist/index.d.ts +118 -24
- package/dist/index.js +127 -9
- package/dist/index.mjs +118 -10
- package/dist/{jobs-twt5TO9l.d.ts → jobs-B-uO7ffG.d.ts} +1 -1
- package/dist/{jobs-DTLDt57G.d.mts → jobs-BToqhRuU.d.mts} +1 -1
- package/dist/{search-f2UNlTfv.d.mts → search-CvwKD0Va.d.mts} +1 -1
- package/dist/{search-CHD6peIl.d.ts → search-Sl9-xi1z.d.ts} +1 -1
- package/dist/seo-B9b2AkSE.d.mts +12 -0
- package/dist/seo-D1Vc_0HF.d.ts +12 -0
- package/dist/seo-files.d.mts +36 -0
- package/dist/seo-files.d.ts +36 -0
- package/dist/seo-files.js +102 -0
- package/dist/seo-files.mjs +81 -0
- package/dist/seo.d.mts +6 -6
- package/dist/seo.d.ts +6 -6
- package/dist/server.d.mts +6 -5
- package/dist/server.d.ts +6 -5
- package/dist/server.mjs +1 -1
- package/dist/sitemap.d.mts +6 -5
- package/dist/sitemap.d.ts +6 -5
- package/dist/suggest.d.mts +2 -2
- package/dist/suggest.d.ts +2 -2
- package/package.json +11 -1
- package/skills/cavuno-board-account/SKILL.md +3 -1
- package/skills/cavuno-board-filters/SKILL.md +17 -3
- package/skills/cavuno-board-setup/SKILL.md +1 -0
- package/skills/cavuno-board-talent-access/SKILL.md +149 -0
- package/skills/manifest.json +8 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import { S as Schemas, c as components } from './_spec-
|
|
2
|
-
import { F as FetchOptions, S as StorageMode, B as BoardRequest, A as Awaitable, L as Logger, a as BoardClient, b as SearchSuggestQuery } from './search-
|
|
3
|
-
export { c as ACCESS_TOKEN_KEY, d as BOARD_ACCESS_GRANT_KEY, C as CompanySuggestion, e as CustomStorage, M as MarketSuggestion, R as REFRESH_TOKEN_KEY, f as SearchSuggestType, g as SuggestResult, h as SuggestionItem, T as TermSuggestion } from './search-
|
|
4
|
-
import { c as CompaniesListQuery, d as CompanyListEnvelope, e as CompaniesSearchBody, f as CompanyJobsListQuery, g as CompanySimilarQuery, h as CompanyMarketsListQuery, i as SalaryDetailQuery } from './board-
|
|
5
|
-
export { a as CompanyCategorySalary, j as CompanyMarket, k as CompanyMarketRef, b as CompanySalary, l as CompanySalarySummary, C as CustomFieldDefinition, m as CustomFieldOption, n as CustomFieldType, L as LocationSalaryDetail, o as LocationSkillsIndex, p as LocationTitlesIndex, P as PublicBoard, q as
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
import { S as Schemas, c as components } from './_spec-BwUP7Wni.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-Sl9-xi1z.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-Sl9-xi1z.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-zdQ875ck.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-zdQ875ck.js';
|
|
6
|
+
export { B as BoardSeo } from './seo-D1Vc_0HF.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-B-uO7ffG.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-B-uO7ffG.js';
|
|
9
|
+
import { a as BlogPostsListQuery, b as BlogSimilarQuery, c as BlogSearchBody } from './blog-DC4BfQqF.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-DC4BfQqF.js';
|
|
10
11
|
|
|
11
12
|
/**
|
|
12
13
|
* Well-known `<domain>_<snake_reason>` codes the Board API sends, grouped by
|
|
@@ -19,7 +20,7 @@ export { B as BlogAuthorEmbed, d as BlogTagEmbed, e as PublicBlogAdjacentPosts,
|
|
|
19
20
|
* `unknown_error` is SDK-synthesized when a response carries no parseable
|
|
20
21
|
* envelope.
|
|
21
22
|
*/
|
|
22
|
-
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_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_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", "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", "paywall_already_active", "paywall_disabled", "paywall_invalid_checkout_session", "paywall_no_candidate_profile", "paywall_no_recurring_subscription", "paywall_offer_not_found", "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_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", "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
24
|
/**
|
|
24
25
|
* The known code set plus open string — new codes ship additively within v1,
|
|
25
26
|
* so exhaustive narrowing is intentionally impossible.
|
|
@@ -142,7 +143,7 @@ declare function paginate<Q extends Record<string, unknown>, P extends PageShape
|
|
|
142
143
|
* constant because the package is platform-neutral and cannot read
|
|
143
144
|
* package.json at runtime.
|
|
144
145
|
*/
|
|
145
|
-
declare const SDK_VERSION = "4.
|
|
146
|
+
declare const SDK_VERSION = "4.10.0";
|
|
146
147
|
|
|
147
148
|
type SavedJob = Schemas['SavedJob'];
|
|
148
149
|
type SavedJobsListQuery = {
|
|
@@ -305,9 +306,32 @@ type AcceptCompanyMemberInviteBody = Schemas['AcceptCompanyMemberInviteBody'];
|
|
|
305
306
|
/**
|
|
306
307
|
* The viewer's per-employer talent entitlement from
|
|
307
308
|
* `board.me.talentAccess.retrieve` — the talent-CTA signal (sourced from the
|
|
308
|
-
* same subscription/credit-pack truth the talent paywall enforces)
|
|
309
|
+
* same subscription/credit-pack truth the talent paywall enforces), plus
|
|
310
|
+
* charging model and remaining unlock/message credits.
|
|
309
311
|
*/
|
|
310
312
|
type TalentAccess = Schemas['TalentAccess'];
|
|
313
|
+
/** Per-candidate unlock/credit gate from `board.me.talentAccess.retrieveCandidate`. */
|
|
314
|
+
type TalentCandidateAccess = Schemas['TalentCandidateAccess'];
|
|
315
|
+
/** Body for `board.me.talentAccess.checkout`. */
|
|
316
|
+
type TalentAccessCheckoutBody = Schemas['TalentAccessCheckoutBody'];
|
|
317
|
+
/**
|
|
318
|
+
* Connected-account mount kit from `board.me.talentAccess.checkout` — same
|
|
319
|
+
* generated schema as candidate-access checkout (`origin: talent_access`).
|
|
320
|
+
*/
|
|
321
|
+
type TalentAccessCheckoutSession = Schemas['AccessCheckoutSession'];
|
|
322
|
+
/** Polled state of a talent-access checkout session (`board.me.talentAccess.retrieveCheckout`). */
|
|
323
|
+
type TalentAccessCheckoutSessionState = Schemas['AccessCheckoutSessionState'];
|
|
324
|
+
/** Result of `board.me.talentAccess.unlock`. */
|
|
325
|
+
type TalentUnlock = Schemas['TalentUnlock'];
|
|
326
|
+
/** Body for `board.me.talentAccess.unlock`. */
|
|
327
|
+
type TalentUnlockBody = Schemas['TalentUnlockBody'];
|
|
328
|
+
/** Body for `board.me.talentAccess.upgrade`. */
|
|
329
|
+
type TalentAccessUpgradeBody = Schemas['TalentAccessUpgradeBody'];
|
|
330
|
+
/**
|
|
331
|
+
* Acknowledgement from `board.me.talentAccess.upgrade` — entitlement (new
|
|
332
|
+
* credit counters) lands via webhook; re-read `me.talentAccess.retrieve`.
|
|
333
|
+
*/
|
|
334
|
+
type TalentAccessUpgrade = Schemas['TalentUpgrade'];
|
|
311
335
|
/** Query for `board.me.companies.search`. */
|
|
312
336
|
type EmployerCompanySearchQuery = {
|
|
313
337
|
q: string;
|
|
@@ -388,6 +412,10 @@ type EmployerBillingOption = Schemas['EmployerBillingOption'];
|
|
|
388
412
|
/** The result of `board.me.companies.jobs.checkout`. */
|
|
389
413
|
type EmployerCheckout = Schemas['EmployerCheckout'];
|
|
390
414
|
type EmployerCheckoutBody = Schemas['EmployerCheckoutBody'];
|
|
415
|
+
/** Optional body for `board.me.companies.billingPortal.create`. */
|
|
416
|
+
type CompanyBillingPortalBody = Schemas['CompanyBillingPortalBody'];
|
|
417
|
+
/** A minted company Stripe Customer Portal session (job posting + talent access). */
|
|
418
|
+
type CompanyBillingPortalSession = Schemas['CompanyBillingPortalSession'];
|
|
391
419
|
|
|
392
420
|
/**
|
|
393
421
|
* Pure derivations for a message thread — kept out of
|
|
@@ -468,15 +496,6 @@ type OAuthAuthorizationQuery = {
|
|
|
468
496
|
type OAuthAuthorizationUrl = Schemas['BoardAuthOAuthAuthorizationUrl'];
|
|
469
497
|
type OAuthExchangeBody = Schemas['BoardAuthOAuthExchangeBody'];
|
|
470
498
|
|
|
471
|
-
/**
|
|
472
|
-
* The public SEO-infra payload (`board.seo()`) — platform infrastructure a
|
|
473
|
-
* headless frontend rebuilds `robots.txt` / `ads.txt` / `indexnow-key.txt`
|
|
474
|
-
* (+ the Google site-verification `<meta>`) from, byte-identically to the
|
|
475
|
-
* hosted board. Icons and `themeColor` left in 4.0.0; applications
|
|
476
|
-
* own brand assets and presentation tokens.
|
|
477
|
-
*/
|
|
478
|
-
type BoardSeo = Schemas['BoardSeo'];
|
|
479
|
-
|
|
480
499
|
type EmbedJobsQuery = {
|
|
481
500
|
/** Free-text search query, up to 200 characters. */
|
|
482
501
|
q?: string;
|
|
@@ -689,6 +708,8 @@ type TaxonomyListQuery = {
|
|
|
689
708
|
q?: string;
|
|
690
709
|
cursor?: string;
|
|
691
710
|
limit?: number;
|
|
711
|
+
/** `name` (default) or `jobCount` (highest published-job count first). */
|
|
712
|
+
sort?: 'name' | 'jobCount';
|
|
692
713
|
};
|
|
693
714
|
/**
|
|
694
715
|
* Query for `taxonomy.places.list()`. Omit it (or `q`) for the full
|
|
@@ -740,10 +761,11 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
|
|
|
740
761
|
client: BoardClient;
|
|
741
762
|
/**
|
|
742
763
|
* Board context — identity, brand (`logoUrl` + favicon `icons`), language,
|
|
743
|
-
* features, and
|
|
764
|
+
* features, analytics, and AdSense (`ads.enabled` + `ads.clientId`).
|
|
765
|
+
* Per-placement slot ids are not on this resource.
|
|
744
766
|
*
|
|
745
767
|
* @example
|
|
746
|
-
* const { name, language, logoUrl, icons } = await board.context();
|
|
768
|
+
* const { name, language, logoUrl, icons, ads } = await board.context();
|
|
747
769
|
*/
|
|
748
770
|
context(options?: FetchOptions): Promise<{
|
|
749
771
|
object: "public_board";
|
|
@@ -764,6 +786,8 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
|
|
|
764
786
|
showCavunoBranding: boolean;
|
|
765
787
|
features: {
|
|
766
788
|
jobAlerts: boolean;
|
|
789
|
+
jobRecommendationsEnabled: boolean;
|
|
790
|
+
recommendedTalentEnabled: boolean;
|
|
767
791
|
candidates: boolean;
|
|
768
792
|
employers: boolean;
|
|
769
793
|
blog: boolean;
|
|
@@ -783,9 +807,27 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
|
|
|
783
807
|
linkedInPartnerId: string | null;
|
|
784
808
|
cookieConsentRequired: boolean;
|
|
785
809
|
};
|
|
810
|
+
ads: {
|
|
811
|
+
enabled: boolean;
|
|
812
|
+
clientId: string | null;
|
|
813
|
+
};
|
|
786
814
|
customFields: {
|
|
787
815
|
job: components["schemas"]["CustomFieldDefinition"][];
|
|
788
816
|
};
|
|
817
|
+
jobForm: {
|
|
818
|
+
salary: {
|
|
819
|
+
visible: boolean;
|
|
820
|
+
};
|
|
821
|
+
seniority: {
|
|
822
|
+
visible: boolean;
|
|
823
|
+
};
|
|
824
|
+
location: {
|
|
825
|
+
visible: boolean;
|
|
826
|
+
};
|
|
827
|
+
sponsorship: {
|
|
828
|
+
visible: boolean;
|
|
829
|
+
};
|
|
830
|
+
};
|
|
789
831
|
contact: {
|
|
790
832
|
email: string | null;
|
|
791
833
|
websiteUrl: string | null;
|
|
@@ -1580,12 +1622,14 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
|
|
|
1580
1622
|
object: "notification_preference";
|
|
1581
1623
|
channel: "messageEmails" | "applicationEmails" | "recommendedJobEmails";
|
|
1582
1624
|
subscribed: boolean;
|
|
1625
|
+
waitlisted: boolean;
|
|
1583
1626
|
updatedAt: number | null;
|
|
1584
1627
|
}>>;
|
|
1585
1628
|
update(body: UpdateNotificationPreferenceBody, options?: FetchOptions): Promise<ListEnvelope<{
|
|
1586
1629
|
object: "notification_preference";
|
|
1587
1630
|
channel: "messageEmails" | "applicationEmails" | "recommendedJobEmails";
|
|
1588
1631
|
subscribed: boolean;
|
|
1632
|
+
waitlisted: boolean;
|
|
1589
1633
|
updatedAt: number | null;
|
|
1590
1634
|
}>>;
|
|
1591
1635
|
unsubscribeWithToken(body: UnsubscribeBody, options?: FetchOptions): Promise<void>;
|
|
@@ -1656,6 +1700,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
|
|
|
1656
1700
|
linkedinUrl: string | null;
|
|
1657
1701
|
facebookUrl: string | null;
|
|
1658
1702
|
logoUrl: string | null;
|
|
1703
|
+
deletionEnabled: boolean;
|
|
1659
1704
|
}>;
|
|
1660
1705
|
update(slug: string, body: UpdateEmployerCompanyBody, options?: FetchOptions): Promise<{
|
|
1661
1706
|
id: string;
|
|
@@ -1669,6 +1714,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
|
|
|
1669
1714
|
linkedinUrl: string | null;
|
|
1670
1715
|
facebookUrl: string | null;
|
|
1671
1716
|
logoUrl: string | null;
|
|
1717
|
+
deletionEnabled: boolean;
|
|
1672
1718
|
}>;
|
|
1673
1719
|
delete(slug: string, options?: FetchOptions): Promise<void>;
|
|
1674
1720
|
listMembers(slug: string, options?: FetchOptions): Promise<ListEnvelope<{
|
|
@@ -1711,6 +1757,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
|
|
|
1711
1757
|
linkedinUrl: string | null;
|
|
1712
1758
|
facebookUrl: string | null;
|
|
1713
1759
|
logoUrl: string | null;
|
|
1760
|
+
deletionEnabled: boolean;
|
|
1714
1761
|
}>;
|
|
1715
1762
|
workEmail: {
|
|
1716
1763
|
verify(slug: string, body: SendWorkEmailBody, options?: FetchOptions): Promise<{
|
|
@@ -2015,6 +2062,12 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
|
|
|
2015
2062
|
renewsAt: string | null;
|
|
2016
2063
|
}>>;
|
|
2017
2064
|
};
|
|
2065
|
+
billingPortal: {
|
|
2066
|
+
create(slug: string, body?: CompanyBillingPortalBody, options?: FetchOptions): Promise<{
|
|
2067
|
+
object: "portal_session";
|
|
2068
|
+
url: string;
|
|
2069
|
+
}>;
|
|
2070
|
+
};
|
|
2018
2071
|
jobStats: {
|
|
2019
2072
|
retrieve(slug: string, options?: FetchOptions): Promise<ListEnvelope<{
|
|
2020
2073
|
object: "employer_job_stat";
|
|
@@ -2078,6 +2131,44 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
|
|
|
2078
2131
|
paywallActive: boolean;
|
|
2079
2132
|
hasTalentAccess: boolean;
|
|
2080
2133
|
hasUnlimitedUnlocks: boolean;
|
|
2134
|
+
accessModel: "none" | "paid_messaging" | "paid_unlocks_and_messaging";
|
|
2135
|
+
companyId: string | null;
|
|
2136
|
+
unlockCreditsRemaining: number;
|
|
2137
|
+
messageCreditsRemaining: number;
|
|
2138
|
+
hasUnlimitedMessages: boolean;
|
|
2139
|
+
}>;
|
|
2140
|
+
retrieveCandidate(candidateId: string, options?: FetchOptions): Promise<{
|
|
2141
|
+
object: "talent_candidate_access";
|
|
2142
|
+
candidateId: string;
|
|
2143
|
+
companyId: string | null;
|
|
2144
|
+
alreadyUnlocked: boolean;
|
|
2145
|
+
unlockCreditsRemaining: number;
|
|
2146
|
+
messageCreditsRemaining: number;
|
|
2147
|
+
hasUnlimitedUnlocks: boolean;
|
|
2148
|
+
hasUnlimitedMessages: boolean;
|
|
2149
|
+
hasActiveTalentSubscription: boolean;
|
|
2150
|
+
}>;
|
|
2151
|
+
checkout(body: TalentAccessCheckoutBody, options?: FetchOptions): Promise<{
|
|
2152
|
+
object: "checkout_session";
|
|
2153
|
+
sessionId: string;
|
|
2154
|
+
clientSecret: string;
|
|
2155
|
+
stripeAccountId: string;
|
|
2156
|
+
publishableKey: string;
|
|
2157
|
+
offerType: "recurring" | "lifetime";
|
|
2158
|
+
}>;
|
|
2159
|
+
retrieveCheckout(sessionId: string, options?: FetchOptions): Promise<{
|
|
2160
|
+
object: "checkout_session_state";
|
|
2161
|
+
status: "open" | "complete" | "expired";
|
|
2162
|
+
clientSecret: string | null;
|
|
2163
|
+
}>;
|
|
2164
|
+
unlock(body: TalentUnlockBody, options?: FetchOptions): Promise<{
|
|
2165
|
+
object: "talent_unlock";
|
|
2166
|
+
alreadyUnlocked: boolean;
|
|
2167
|
+
unlockCreditsRemaining: number | null;
|
|
2168
|
+
}>;
|
|
2169
|
+
upgrade(body: TalentAccessUpgradeBody, options?: FetchOptions): Promise<{
|
|
2170
|
+
object: "talent_upgrade";
|
|
2171
|
+
ok: true;
|
|
2081
2172
|
}>;
|
|
2082
2173
|
};
|
|
2083
2174
|
alerts: {
|
|
@@ -2488,6 +2579,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
|
|
|
2488
2579
|
sourceSlug: string;
|
|
2489
2580
|
canonicalSlug: string;
|
|
2490
2581
|
displayName: string;
|
|
2582
|
+
jobCount: number;
|
|
2491
2583
|
}>>;
|
|
2492
2584
|
resolve(slug: string, options?: FetchOptions): Promise<{
|
|
2493
2585
|
object: "taxonomy_resolution";
|
|
@@ -2507,6 +2599,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
|
|
|
2507
2599
|
sourceSlug: string;
|
|
2508
2600
|
canonicalSlug: string;
|
|
2509
2601
|
displayName: string;
|
|
2602
|
+
jobCount: number;
|
|
2510
2603
|
}>>;
|
|
2511
2604
|
resolve(slug: string, options?: FetchOptions): Promise<{
|
|
2512
2605
|
object: "taxonomy_resolution";
|
|
@@ -3134,6 +3227,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
|
|
|
3134
3227
|
list(query?: TalentDirectoryQuery, options?: FetchOptions): Promise<TalentDirectoryListEnvelope>;
|
|
3135
3228
|
retrieve(handle: string, options?: FetchOptions): Promise<{
|
|
3136
3229
|
object: "talent_profile";
|
|
3230
|
+
id: string;
|
|
3137
3231
|
handle: string | null;
|
|
3138
3232
|
displayName: string | null;
|
|
3139
3233
|
headline: string | null;
|
|
@@ -3187,4 +3281,4 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
|
|
|
3187
3281
|
};
|
|
3188
3282
|
type BoardSdk = ReturnType<typeof createBoardClient>;
|
|
3189
3283
|
|
|
3190
|
-
export { type AcceptCompanyMemberInviteBody, 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 ApplyApprovalPlan, type ApplyApprovalReceipt, type ApplyBody, 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
|
|
3284
|
+
export { type AcceptCompanyMemberInviteBody, 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 ApplyApprovalPlan, type ApplyApprovalReceipt, type ApplyBody, 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 CreateApplyApprovalBody, type CreateApplyIntentBody, type CreateBoardClientOptions, type CreateCompanyBody, type CreateCompanyMemberInviteBody, 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 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 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 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 VerifyEmailBody, createBoardClient, isBoardApiError, isBoardPasswordRequired, isColdRule, isConflict, isForbidden, isNotFound, isOwnMessage, isRateLimited, isSafeApplicationUrl, isUnauthorized, isValidationError, lastOwnMessageId, paginate, resolveApplyAction };
|
package/dist/index.js
CHANGED
|
@@ -104,6 +104,8 @@ var BOARD_API_ERROR_CODES = [
|
|
|
104
104
|
"talent_not_found",
|
|
105
105
|
"talent_directory_not_found",
|
|
106
106
|
"talent_directory_restricted",
|
|
107
|
+
"job_recommendations_not_found",
|
|
108
|
+
"recommended_talent_not_found",
|
|
107
109
|
// Job alerts (anonymous + authenticated)
|
|
108
110
|
"job_alert_not_found",
|
|
109
111
|
"job_alerts_disabled",
|
|
@@ -113,6 +115,7 @@ var BOARD_API_ERROR_CODES = [
|
|
|
113
115
|
"candidate_entry_not_found",
|
|
114
116
|
"candidate_handle_taken",
|
|
115
117
|
"candidate_job_not_found",
|
|
118
|
+
"candidate_notification_preference_paused",
|
|
116
119
|
"resume_invalid_file",
|
|
117
120
|
"resume_upload_forbidden",
|
|
118
121
|
// Applications
|
|
@@ -176,6 +179,13 @@ var BOARD_API_ERROR_CODES = [
|
|
|
176
179
|
"paywall_no_candidate_profile",
|
|
177
180
|
"paywall_no_recurring_subscription",
|
|
178
181
|
"paywall_offer_not_found",
|
|
182
|
+
// Employer talent-access paywall
|
|
183
|
+
"talent_access_unavailable",
|
|
184
|
+
"company_required",
|
|
185
|
+
"already_on_plan",
|
|
186
|
+
"talent_access_required",
|
|
187
|
+
"messaging_talent_access_required",
|
|
188
|
+
"stripe_not_connected",
|
|
179
189
|
// Public job posting
|
|
180
190
|
"job_posting_logo_lookup_unavailable",
|
|
181
191
|
"job_posting_logo_not_found",
|
|
@@ -332,7 +342,7 @@ async function clearSession(storage) {
|
|
|
332
342
|
}
|
|
333
343
|
|
|
334
344
|
// src/version.ts
|
|
335
|
-
var SDK_VERSION = "4.
|
|
345
|
+
var SDK_VERSION = "4.10.0";
|
|
336
346
|
|
|
337
347
|
// src/client.ts
|
|
338
348
|
function isRawBody(body) {
|
|
@@ -1111,9 +1121,9 @@ function jobsNamespace(client) {
|
|
|
1111
1121
|
);
|
|
1112
1122
|
},
|
|
1113
1123
|
/**
|
|
1114
|
-
* Create an opaque external-apply intent. A compatible starter
|
|
1115
|
-
*
|
|
1116
|
-
* render
|
|
1124
|
+
* Create an opaque external-apply intent. A compatible starter sends the
|
|
1125
|
+
* candidate's browser to `gatewayUrl` (or asks it for the canonical JSON
|
|
1126
|
+
* decision after a real Apply click); never render it as a crawlable link. Pass
|
|
1117
1127
|
* `x-cavuno-board-capabilities: apply-gateway-v1` in `options.headers`;
|
|
1118
1128
|
* legacy callers receive 404.
|
|
1119
1129
|
*/
|
|
@@ -1840,6 +1850,29 @@ function meNamespace(client) {
|
|
|
1840
1850
|
);
|
|
1841
1851
|
}
|
|
1842
1852
|
},
|
|
1853
|
+
/**
|
|
1854
|
+
* Stripe Customer Portal for a company I am an approved member of.
|
|
1855
|
+
* Surfaces every subscription on the company's Stripe customer (job
|
|
1856
|
+
* posting + talent access). Not a talent-access portal — candidate
|
|
1857
|
+
* `me.access.portal` is a different buyer.
|
|
1858
|
+
*/
|
|
1859
|
+
billingPortal: {
|
|
1860
|
+
/**
|
|
1861
|
+
* Mint a Stripe Customer Portal session. Optional `returnPath` is
|
|
1862
|
+
* resolved against the board origin.
|
|
1863
|
+
*
|
|
1864
|
+
* @example
|
|
1865
|
+
* const { url } = await board.me.companies.billingPortal.create('acme', {
|
|
1866
|
+
* returnPath: '/employers/billing',
|
|
1867
|
+
* });
|
|
1868
|
+
*/
|
|
1869
|
+
create(slug, body, options) {
|
|
1870
|
+
return client.fetch(
|
|
1871
|
+
`/me/companies/${encodeURIComponent(slug)}/billing-portal`,
|
|
1872
|
+
{ ...options, method: "POST", body }
|
|
1873
|
+
);
|
|
1874
|
+
}
|
|
1875
|
+
},
|
|
1843
1876
|
/**
|
|
1844
1877
|
* The read-only reporting funnel that backs the hosted employer jobs
|
|
1845
1878
|
* table: per-job views / apply clicks / native applications,
|
|
@@ -2104,9 +2137,11 @@ function meNamespace(client) {
|
|
|
2104
2137
|
}
|
|
2105
2138
|
},
|
|
2106
2139
|
/**
|
|
2107
|
-
* The
|
|
2108
|
-
*
|
|
2109
|
-
* Candidates and unaffiliated viewers get
|
|
2140
|
+
* The employer talent-access paywall — "does this employer have
|
|
2141
|
+
* talent access?" plus remaining company-scoped unlock/message credits
|
|
2142
|
+
* and the charging model. Candidates and unaffiliated viewers get
|
|
2143
|
+
* `hasTalentAccess: false`. Message credits spend inline on
|
|
2144
|
+
* `conversations.start` (no separate spend endpoint).
|
|
2110
2145
|
*
|
|
2111
2146
|
* @example
|
|
2112
2147
|
* const { hasTalentAccess } = await board.me.talentAccess.retrieve();
|
|
@@ -2114,12 +2149,94 @@ function meNamespace(client) {
|
|
|
2114
2149
|
talentAccess: {
|
|
2115
2150
|
/**
|
|
2116
2151
|
* Retrieve the viewer's talent entitlement. Never cache — per-user.
|
|
2152
|
+
* Credits are company-scoped; `companyId` is set when the viewer has
|
|
2153
|
+
* exactly one approved membership, otherwise `null` (pass `companyId`
|
|
2154
|
+
* on writes — `company_required` with more than one).
|
|
2117
2155
|
*
|
|
2118
2156
|
* @example
|
|
2119
2157
|
* const access = await board.me.talentAccess.retrieve();
|
|
2120
2158
|
*/
|
|
2121
2159
|
retrieve(options) {
|
|
2122
2160
|
return client.fetch("/me/talent-access", options);
|
|
2161
|
+
},
|
|
2162
|
+
/**
|
|
2163
|
+
* Per-candidate unlock and credit state for the opaque `/p/{id}`
|
|
2164
|
+
* profile route. Named `/p/{handle}` is the share bypass.
|
|
2165
|
+
*
|
|
2166
|
+
* @example
|
|
2167
|
+
* const gate = await board.me.talentAccess.retrieveCandidate(candidateId);
|
|
2168
|
+
*/
|
|
2169
|
+
retrieveCandidate(candidateId, options) {
|
|
2170
|
+
return client.fetch(
|
|
2171
|
+
`/me/talent-access/candidates/${encodeURIComponent(candidateId)}`,
|
|
2172
|
+
options
|
|
2173
|
+
);
|
|
2174
|
+
},
|
|
2175
|
+
/**
|
|
2176
|
+
* Start embedded checkout for a public `talent_access` plan and return
|
|
2177
|
+
* a connected-account mount kit. Same shape as candidate-access
|
|
2178
|
+
* checkout; session metadata is `origin: talent_access`. `companyId`
|
|
2179
|
+
* is required when the viewer has more than one approved membership
|
|
2180
|
+
* (`company_required`).
|
|
2181
|
+
*
|
|
2182
|
+
* @example
|
|
2183
|
+
* const kit = await board.me.talentAccess.checkout({
|
|
2184
|
+
* planId,
|
|
2185
|
+
* returnPath: '/employers',
|
|
2186
|
+
* colorMode: 'light',
|
|
2187
|
+
* });
|
|
2188
|
+
*/
|
|
2189
|
+
checkout(body, options) {
|
|
2190
|
+
return client.fetch(
|
|
2191
|
+
"/me/talent-access/checkout",
|
|
2192
|
+
{ ...options, method: "POST", body }
|
|
2193
|
+
);
|
|
2194
|
+
},
|
|
2195
|
+
/**
|
|
2196
|
+
* Poll a talent-access checkout session: `open` (re-mountable via
|
|
2197
|
+
* `clientSecret`), `complete`, or `expired`. The session must be
|
|
2198
|
+
* `origin: talent_access` for this board user.
|
|
2199
|
+
*
|
|
2200
|
+
* @example
|
|
2201
|
+
* const s = await board.me.talentAccess.retrieveCheckout(kit.sessionId);
|
|
2202
|
+
*/
|
|
2203
|
+
retrieveCheckout(sessionId, options) {
|
|
2204
|
+
return client.fetch(
|
|
2205
|
+
`/me/talent-access/checkout/${encodeURIComponent(sessionId)}`,
|
|
2206
|
+
options
|
|
2207
|
+
);
|
|
2208
|
+
},
|
|
2209
|
+
/**
|
|
2210
|
+
* Spend one profile-unlock credit. Idempotent: already-unlocked
|
|
2211
|
+
* returns `{ alreadyUnlocked: true }` with no decrement. Credits are
|
|
2212
|
+
* company-scoped; `companyId` is required with multiple approved
|
|
2213
|
+
* memberships (`company_required`).
|
|
2214
|
+
*
|
|
2215
|
+
* @example
|
|
2216
|
+
* const unlock = await board.me.talentAccess.unlock({ candidateId });
|
|
2217
|
+
*/
|
|
2218
|
+
unlock(body, options) {
|
|
2219
|
+
return client.fetch("/me/talent-access/unlocks", {
|
|
2220
|
+
...options,
|
|
2221
|
+
method: "POST",
|
|
2222
|
+
body
|
|
2223
|
+
});
|
|
2224
|
+
},
|
|
2225
|
+
/**
|
|
2226
|
+
* Swap the company's primary talent_access subscription to `planId`
|
|
2227
|
+
* in place (prorated). Never a second checkout — Checkout would mint
|
|
2228
|
+
* a parallel subscription. Requires an existing talent_access sub.
|
|
2229
|
+
* `companyId` is required with multiple approved memberships.
|
|
2230
|
+
*
|
|
2231
|
+
* @example
|
|
2232
|
+
* await board.me.talentAccess.upgrade({ planId });
|
|
2233
|
+
*/
|
|
2234
|
+
upgrade(body, options) {
|
|
2235
|
+
return client.fetch("/me/talent-access/upgrade", {
|
|
2236
|
+
...options,
|
|
2237
|
+
method: "POST",
|
|
2238
|
+
body
|
|
2239
|
+
});
|
|
2123
2240
|
}
|
|
2124
2241
|
},
|
|
2125
2242
|
/**
|
|
@@ -3127,10 +3244,11 @@ function createBoardClient(options) {
|
|
|
3127
3244
|
client,
|
|
3128
3245
|
/**
|
|
3129
3246
|
* Board context — identity, brand (`logoUrl` + favicon `icons`), language,
|
|
3130
|
-
* features, and
|
|
3247
|
+
* features, analytics, and AdSense (`ads.enabled` + `ads.clientId`).
|
|
3248
|
+
* Per-placement slot ids are not on this resource.
|
|
3131
3249
|
*
|
|
3132
3250
|
* @example
|
|
3133
|
-
* const { name, language, logoUrl, icons } = await board.context();
|
|
3251
|
+
* const { name, language, logoUrl, icons, ads } = await board.context();
|
|
3134
3252
|
*/
|
|
3135
3253
|
context(options2) {
|
|
3136
3254
|
return client.fetch("", options2);
|