@cavuno/board 1.26.0 → 1.28.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.
@@ -1,4 +1,4 @@
1
- import { l as JobSort, E as EmploymentType, R as RemoteOption, a as Seniority } from './jobs-CM67_J6H.mjs';
1
+ import { J as JobSort, E as EmploymentType, R as RemoteOption, S as Seniority } from './jobs-DK5mPBgq.mjs';
2
2
 
3
3
  declare const REMOTE_OPTIONS: readonly RemoteOption[];
4
4
  /**
package/dist/filters.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { l as JobSort, E as EmploymentType, R as RemoteOption, a as Seniority } from './jobs-CM67_J6H.js';
1
+ import { J as JobSort, E as EmploymentType, R as RemoteOption, S as Seniority } from './jobs-DK5mPBgq.js';
2
2
 
3
3
  declare const REMOTE_OPTIONS: readonly RemoteOption[];
4
4
  /**
package/dist/format.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { P as PublicJob, m as PublicJobCard } from './jobs-CM67_J6H.mjs';
1
+ import { P as PublicJob, a as PublicJobCard } from './jobs-DK5mPBgq.mjs';
2
2
 
3
3
  /**
4
4
  * Date display helpers in the board language (required leading parameter,
package/dist/format.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { P as PublicJob, m as PublicJobCard } from './jobs-CM67_J6H.js';
1
+ import { P as PublicJob, a as PublicJobCard } from './jobs-DK5mPBgq.js';
2
2
 
3
3
  /**
4
4
  * Date display helpers in the board language (required leading parameter,
package/dist/index.d.mts CHANGED
@@ -1,5 +1,7 @@
1
- import { S as Schemas, R as RemoteOption, E as EmploymentType, a as Seniority, L as ListEnvelope, b as RelatedSearch, c as components, J as JobsListQuery, d as JobCardListEnvelope, e as JobsSearchBody, f as JobCardSearchEnvelope, g as JobsSimilarQuery, h as SearchEnvelope } from './jobs-CM67_J6H.mjs';
2
- export { C as CustomFieldValue, i as CustomFieldValues, j as EducationRequirement, k as JobCompany, l as JobSort, O as OfficeLocation, P as PublicJob, m as PublicJobCard, n as RemotePermit, o as RemoteTimezone, p as StorefrontPagination } from './jobs-CM67_J6H.mjs';
1
+ import { b as Schemas, R as RemoteOption, E as EmploymentType, S as Seniority, L as ListEnvelope, c as components, d as JobsListQuery, e as JobCardListEnvelope, f as JobsSearchBody, g as JobCardSearchEnvelope, h as JobsSimilarQuery, i as SearchEnvelope } from './jobs-DK5mPBgq.mjs';
2
+ export { C as CustomFieldValue, j as CustomFieldValues, k as EducationRequirement, l as JobCompany, J as JobSort, O as OfficeLocation, P as PublicJob, a as PublicJobCard, m as RelatedSearch, n as RemotePermit, o as RemoteTimezone, p as StorefrontPagination } from './jobs-DK5mPBgq.mjs';
3
+ import { c as CompaniesListQuery, d as CompanyListEnvelope, e as CompaniesSearchBody, f as CompanyJobsListQuery, g as CompanySimilarQuery, h as CompanyMarketsListQuery, i as SalaryDetailQuery, j as BlogPostsListQuery, k as BlogSimilarQuery, l as BlogSearchBody } from './salaries-CrJsaZe6.mjs';
4
+ export { B as BlogAuthorEmbed, m as BlogTagEmbed, C as CompanyCategorySalary, n as CompanyMarket, o as CompanyMarketRef, b as CompanySalary, p as CustomFieldDefinition, q as CustomFieldOption, r as CustomFieldType, L as LocationSalaryDetail, s as LocationSkillsIndex, t as LocationTitlesIndex, u as PublicBlogAdjacentPosts, v as PublicBlogAuthor, w as PublicBlogPost, a as PublicBlogPostSummary, x as PublicBlogTag, P as PublicBoard, y as PublicBoardAnalytics, z as PublicBoardFeatures, A as PublicBoardTheme, D as PublicCompany, E as PublicCompanyDetail, F as SalaryCompany, G as SalaryLocation, H as SalarySkill, I as SalaryTitle, J as SkillLocationSalary, K as SkillLocationsIndex, S as SkillSalaryDetail, M as TitleLocationSalary, N as TitleLocationsIndex, T as TitleSalaryDetail } from './salaries-CrJsaZe6.mjs';
3
5
 
4
6
  type Awaitable<T> = T | Promise<T>;
5
7
  /**
@@ -11,7 +13,7 @@ interface CustomStorage {
11
13
  setItem(key: string, value: string): Awaitable<void>;
12
14
  removeItem(key: string): Awaitable<void>;
13
15
  }
14
- type StorageMode = 'memory' | 'nostore' | CustomStorage;
16
+ type StorageMode = 'memory' | 'nostore' | 'local' | 'session' | CustomStorage;
15
17
  declare const ACCESS_TOKEN_KEY = "cavuno_board_access_token";
16
18
  declare const REFRESH_TOKEN_KEY = "cavuno_board_refresh_token";
17
19
  /** Board-password access grant — sent as `X-Board-Access` to pass the wall. */
@@ -117,6 +119,14 @@ declare class BoardApiError extends Error {
117
119
  raw: unknown;
118
120
  });
119
121
  }
122
+ /**
123
+ * Structural, not `instanceof`: the helper subpaths (`/server`, …) and the
124
+ * core entry build as separate bundles, so class identity differs across
125
+ * entries — `instanceof` would silently return false for a real
126
+ * `BoardApiError` thrown by the core client. The constructor pins
127
+ * `name = 'BoardApiError'`, making the name check a stable brand for every
128
+ * guard built on this one.
129
+ */
120
130
  declare function isBoardApiError(e: unknown): e is BoardApiError;
121
131
  declare function isNotFound(e: unknown): e is BoardApiError;
122
132
  declare function isUnauthorized(e: unknown): e is BoardApiError;
@@ -193,220 +203,7 @@ declare function paginate<Q extends Record<string, unknown>, P extends PageShape
193
203
  * constant because the package is platform-neutral and cannot read
194
204
  * package.json at runtime.
195
205
  */
196
- declare const SDK_VERSION = "1.26.0";
197
-
198
- type BoardUser = Schemas['BoardUser'];
199
- type BoardAuthSession = Schemas['BoardAuthSession'];
200
- type RegisterBody = Schemas['BoardAuthRegisterBody'];
201
- type LoginBody = Schemas['BoardAuthLoginBody'];
202
- type RefreshBody = Schemas['BoardAuthRefreshBody'];
203
- type LogoutBody = Schemas['BoardAuthLogoutBody'];
204
- type VerifyEmailBody = Schemas['BoardAuthVerifyEmailBody'];
205
- type ForgotPasswordBody = Schemas['BoardAuthForgotPasswordBody'];
206
- type ResetPasswordBody = Schemas['BoardAuthResetPasswordBody'];
207
- type RequestMagicLinkBody = Schemas['BoardAuthRequestMagicLinkBody'];
208
- type ConsumeMagicLinkBody = Schemas['BoardAuthConsumeMagicLinkBody'];
209
- type OAuthProvider = 'google' | 'linkedin';
210
- type OAuthAuthorizationQuery = {
211
- returnTo?: string;
212
- };
213
- type OAuthAuthorizationUrl = Schemas['BoardAuthOAuthAuthorizationUrl'];
214
- type OAuthExchangeBody = Schemas['BoardAuthOAuthExchangeBody'];
215
-
216
- type PublicBoard = Schemas['PublicBoardContext'];
217
- type PublicBoardFeatures = PublicBoard['features'];
218
- type PublicBoardAnalytics = PublicBoard['analytics'];
219
- type PublicBoardTheme = NonNullable<PublicBoard['theme']>;
220
- /**
221
- * An operator-defined custom job-field definition (CAV-294). Board-wide;
222
- * use it to render and localize a job's opaque `customFieldValues` (resolve
223
- * option `key`s → labels, honour field `type` and display order). Shared with
224
- * the Operator API's custom-field surface (one canonical schema).
225
- */
226
- type CustomFieldDefinition = Schemas['CustomFieldDefinition'];
227
- type CustomFieldType = CustomFieldDefinition['type'];
228
- type CustomFieldOption = Schemas['CustomFieldOption'];
229
-
230
- /**
231
- * The public SEO-infra payload (`board.seo()`) — the values a headless
232
- * frontend rebuilds `robots.txt` / `ads.txt` / `indexnow-key.txt` (+ the
233
- * Google site-verification `<meta>` + favicons/web-manifest) from,
234
- * byte-identically to the hosted board.
235
- */
236
- type BoardSeo = Schemas['BoardSeo'];
237
-
238
- type EmbedJobsQuery = {
239
- /** Free-text search query, up to 200 characters. */
240
- q?: string;
241
- cursor?: string;
242
- /** Default 8; values above the embed ceiling of 50 are clamped to 50. */
243
- limit?: number;
244
- /** Storefront page offset; takes precedence over `cursor`. `offset + limit` ≤ 10,000. */
245
- offset?: number;
246
- /** Repeated param (up to 10) — OR-matched. Repeat `companyId` per value. */
247
- companyId?: string[];
248
- remoteOption?: RemoteOption[];
249
- employmentType?: EmploymentType[];
250
- seniority?: Seniority[];
251
- /** Place slug for a geo radius search; unresolvable slugs are ignored. */
252
- location?: string;
253
- /** Radius in km around `location` (10–250; default 50). */
254
- radius?: number;
255
- };
256
-
257
- /**
258
- * The board-access grant returned by `password.verify()`. Send `token` as
259
- * the `X-Board-Access` header on content reads to pass a board's password
260
- * wall (the SDK does this automatically once the grant is stored).
261
- */
262
- type BoardAccessGrant = Schemas['BoardAccessGrant'];
263
-
264
- /**
265
- * The result of resolving a path against the board's configured redirects
266
- * (`board.redirects.resolve()`). A headless frontend 308s to `target`, or
267
- * 404s when it's `null`.
268
- */
269
- type RedirectResolution = Schemas['RedirectResolution'];
270
-
271
- /**
272
- * A board legal/about page (ADR-0039 transitional portable-prose field). The
273
- * API serves owner-authored prose as portable HTML; the starter authors the
274
- * layout + JSON-LD. Impressum additionally carries structured legal-entity
275
- * facts and is gated by the board's `impressumEnabled` flag (404 when off).
276
- */
277
- type LegalPageType = 'terms-of-service' | 'privacy-policy' | 'cookie-policy' | 'about' | 'impressum';
278
- type PublicLegalPage = Schemas['LegalPage'];
279
- type LegalEntity = NonNullable<PublicLegalPage['legalEntity']>;
280
-
281
- /** Author shape embedded on posts (no `object` discriminator). */
282
- type BlogAuthorEmbed = Schemas['PublicBlogAuthorEmbed'];
283
- /** Tag shape embedded on posts (no `object` discriminator). */
284
- type BlogTagEmbed = Schemas['PublicBlogTagEmbed'];
285
- type PublicBlogAuthor = Schemas['PublicBlogAuthor'];
286
- type PublicBlogTag = Schemas['PublicBlogTag'];
287
- type PublicBlogPostSummary = Schemas['PublicBlogPostSummary'];
288
- /** Detail shape — `html` appears on the single read only, never on summaries. */
289
- type PublicBlogPost = Schemas['PublicBlogPost'];
290
- /** Previous (older) + next (newer) posts for the detail prev/next nav. */
291
- type PublicBlogAdjacentPosts = Schemas['PublicBlogAdjacentPosts'];
292
- type BlogPostsListQuery = {
293
- cursor?: string;
294
- /** 1–100. */
295
- limit?: number;
296
- tagSlug?: string;
297
- authorSlug?: string;
298
- /** Opt-in only: pass `'true'` to restrict to featured posts. */
299
- featured?: 'true';
300
- };
301
- type BlogSimilarQuery = {
302
- /** 1–20; default 6. */
303
- limit?: number;
304
- };
305
- type BlogSearchBody = Schemas['PublicBlogSearchBody'];
306
-
307
- type PublicCompany = Schemas['CompanyPublic'];
308
- /** A market (sector) a company operates in — name + its source slug. */
309
- type CompanyMarketRef = Schemas['CompanyMarketRef'];
310
- /** The company DETAIL shape — `PublicCompany` plus `markets` (detail-only). */
311
- type PublicCompanyDetail = Schemas['CompanyPublicDetail'];
312
- /**
313
- * A company's salary overview (ADR-0046): overall pay, by-seniority rows vs the
314
- * board baseline, top competitors, top locations, and a per-category summary.
315
- * Names are board-language localized; the company slug/name are not.
316
- */
317
- type CompanySalary = Schemas['CompanySalary'];
318
- /**
319
- * A company's salary for one job category: the category's source + board-language
320
- * canonical slug, by-seniority vs the board-category baseline, and competitors in
321
- * the category. The category name is localized; the company name is not.
322
- */
323
- type CompanyCategorySalary = Schemas['CompanyCategorySalary'];
324
- /** The companies browse list — `PublicCompany`s + `market` `relatedSearches`. */
325
- interface CompanyListEnvelope extends ListEnvelope<PublicCompany> {
326
- relatedSearches?: RelatedSearch[];
327
- }
328
- type CompaniesListQuery = {
329
- cursor?: string;
330
- /** Scope to a single market (sector) by slug. Unknown slugs 404. */
331
- marketSlug?: string;
332
- /** 1–100. */
333
- limit?: number;
334
- /**
335
- * Storefront page offset (companies to skip); takes precedence over
336
- * `cursor`. Pair with the response `count` to page in parallel.
337
- */
338
- offset?: number;
339
- };
340
- type CompanyJobsListQuery = {
341
- cursor?: string;
342
- /** 1–100. */
343
- limit?: number;
344
- };
345
- type CompanySimilarQuery = {
346
- /** 1–20, default 6. */
347
- limit?: number;
348
- };
349
- type CompanyMarket = Schemas['CompanyMarket'];
350
- type CompanyMarketsListQuery = {
351
- /** 1–200, default 100 (a top-by-company-count preview). */
352
- limit?: number;
353
- search?: string;
354
- };
355
- type CompaniesSearchBody = Schemas['PublicCompaniesSearchBody'];
356
-
357
- /**
358
- * A candidate's public profile — header (name, headline, location, bio, avatar,
359
- * job-search status) plus their experiences, education, skills, and languages.
360
- * Only `public` profiles are returned; `jobSearchStatus` is `null` when the
361
- * candidate scoped it to employers only.
362
- */
363
- type TalentProfile = Schemas['TalentProfile'];
364
- /** A candidate card in the public talent directory. */
365
- type TalentDirectoryEntry = Schemas['TalentDirectoryEntry'];
366
- type TalentDirectoryQuery = {
367
- cursor?: string;
368
- /** Free-text search (name / headline / skills). */
369
- q?: string;
370
- /** Filter to candidates listing a given skill. */
371
- skill?: string;
372
- /** 1–100, default 20. */
373
- limit?: number;
374
- };
375
- type TalentDirectoryListEnvelope = ListEnvelope<TalentDirectoryEntry>;
376
-
377
- /**
378
- * A board plan (employer pricing). `purpose` is `job_posting` or
379
- * `talent_access`; talent-access plans carry a `talent` allowance block.
380
- */
381
- type Plan = Schemas['Plan'];
382
- /** A sales-led ("contact us") plan — a custom CTA tier with no programmatic price. */
383
- type SalesLedPlan = Schemas['SalesLedPlan'];
384
- type PlansListQuery = {
385
- /** Filter to a single purpose. Omit to return all public plans. */
386
- purpose?: 'job_posting' | 'talent_access';
387
- };
388
- type PlanListEnvelope = ListEnvelope<Plan>;
389
- type SalesLedPlanListEnvelope = ListEnvelope<SalesLedPlan>;
390
-
391
- /** An enabled candidate-access paywall offer tier (public). */
392
- type PaywallOffer = Schemas['PaywallOffer'];
393
- /**
394
- * The connected-account embedded-checkout mount kit returned by
395
- * `board.me.access.checkout`. Mount with `loadStripe(publishableKey, {
396
- * stripeAccount: stripeAccountId })` then `initEmbeddedCheckout({ clientSecret })`.
397
- */
398
- type AccessCheckoutSession = Schemas['AccessCheckoutSession'];
399
- /** The polled state of a checkout session (`board.me.access.retrieveCheckout`). */
400
- type AccessCheckoutSessionState = Schemas['AccessCheckoutSessionState'];
401
- /** The viewer's candidate-access entitlement (`board.me.access.grant`). */
402
- type AccessGrant = Schemas['AccessGrant'];
403
- /** A minted Stripe billing-portal session (`board.me.access.portal`). */
404
- type AccessPortalSession = Schemas['AccessPortalSession'];
405
- /** Body for `board.me.access.checkout`. */
406
- type AccessCheckoutBody = Schemas['AccessCheckoutBody'];
407
- /** Body for `board.me.access.portal`. */
408
- type AccessPortalBody = Schemas['AccessPortalBody'];
409
- type PaywallOfferListEnvelope = ListEnvelope<PaywallOffer>;
206
+ declare const SDK_VERSION = "1.28.0";
410
207
 
411
208
  type SavedJob = Schemas['SavedJob'];
412
209
  type SavedJobsListQuery = {
@@ -565,6 +362,149 @@ type EmployerBillingOption = Schemas['EmployerBillingOption'];
565
362
  type EmployerCheckout = Schemas['EmployerCheckout'];
566
363
  type EmployerCheckoutBody = Schemas['EmployerCheckoutBody'];
567
364
 
365
+ /**
366
+ * Pure derivations for a message thread (ADR-0057 decision 5) — kept out of
367
+ * components so the fiddly bits (own-vs-counterparty, the cold-message rule,
368
+ * the seen target) are unit-testable without a DOM. A message is "own" when
369
+ * its author is not the counterparty (works even before the counterparty has
370
+ * ever replied).
371
+ */
372
+
373
+ declare function isOwnMessage(message: Message, counterpartyId: string): boolean;
374
+ /**
375
+ * The cold-message rule (client-side mirror of the server gate): the viewer
376
+ * has sent at least one message and the counterparty has not replied yet.
377
+ * Once the counterparty sends anything, the cap lifts. The server enforces
378
+ * the rule authoritatively (`messaging_cold_rule` 403); this mirror exists
379
+ * so the composer can disable itself instead of surfacing the error.
380
+ */
381
+ declare function isColdRule(messages: Message[], counterpartyId: string): boolean;
382
+ /** The id of the viewer's most recent message (the only one that shows "Seen"). */
383
+ declare function lastOwnMessageId(messages: Message[], counterpartyId: string): string | null;
384
+
385
+ type BoardUser = Schemas['BoardUser'];
386
+ type BoardAuthSession = Schemas['BoardAuthSession'];
387
+ type RegisterBody = Schemas['BoardAuthRegisterBody'];
388
+ type LoginBody = Schemas['BoardAuthLoginBody'];
389
+ type RefreshBody = Schemas['BoardAuthRefreshBody'];
390
+ type LogoutBody = Schemas['BoardAuthLogoutBody'];
391
+ type VerifyEmailBody = Schemas['BoardAuthVerifyEmailBody'];
392
+ type ForgotPasswordBody = Schemas['BoardAuthForgotPasswordBody'];
393
+ type ResetPasswordBody = Schemas['BoardAuthResetPasswordBody'];
394
+ type RequestMagicLinkBody = Schemas['BoardAuthRequestMagicLinkBody'];
395
+ type ConsumeMagicLinkBody = Schemas['BoardAuthConsumeMagicLinkBody'];
396
+ type OAuthProvider = 'google' | 'linkedin';
397
+ type OAuthAuthorizationQuery = {
398
+ returnTo?: string;
399
+ };
400
+ type OAuthAuthorizationUrl = Schemas['BoardAuthOAuthAuthorizationUrl'];
401
+ type OAuthExchangeBody = Schemas['BoardAuthOAuthExchangeBody'];
402
+
403
+ /**
404
+ * The public SEO-infra payload (`board.seo()`) — the values a headless
405
+ * frontend rebuilds `robots.txt` / `ads.txt` / `indexnow-key.txt` (+ the
406
+ * Google site-verification `<meta>` + favicons/web-manifest) from,
407
+ * byte-identically to the hosted board.
408
+ */
409
+ type BoardSeo = Schemas['BoardSeo'];
410
+
411
+ type EmbedJobsQuery = {
412
+ /** Free-text search query, up to 200 characters. */
413
+ q?: string;
414
+ cursor?: string;
415
+ /** Default 8; values above the embed ceiling of 50 are clamped to 50. */
416
+ limit?: number;
417
+ /** Storefront page offset; takes precedence over `cursor`. `offset + limit` ≤ 10,000. */
418
+ offset?: number;
419
+ /** Repeated param (up to 10) — OR-matched. Repeat `companyId` per value. */
420
+ companyId?: string[];
421
+ remoteOption?: RemoteOption[];
422
+ employmentType?: EmploymentType[];
423
+ seniority?: Seniority[];
424
+ /** Place slug for a geo radius search; unresolvable slugs are ignored. */
425
+ location?: string;
426
+ /** Radius in km around `location` (10–250; default 50). */
427
+ radius?: number;
428
+ };
429
+
430
+ /**
431
+ * The board-access grant returned by `password.verify()`. Send `token` as
432
+ * the `X-Board-Access` header on content reads to pass a board's password
433
+ * wall (the SDK does this automatically once the grant is stored).
434
+ */
435
+ type BoardAccessGrant = Schemas['BoardAccessGrant'];
436
+
437
+ /**
438
+ * The result of resolving a path against the board's configured redirects
439
+ * (`board.redirects.resolve()`). A headless frontend 308s to `target`, or
440
+ * 404s when it's `null`.
441
+ */
442
+ type RedirectResolution = Schemas['RedirectResolution'];
443
+
444
+ /**
445
+ * A board legal/about page (ADR-0039 transitional portable-prose field). The
446
+ * API serves owner-authored prose as portable HTML; the starter authors the
447
+ * layout + JSON-LD. Impressum additionally carries structured legal-entity
448
+ * facts and is gated by the board's `impressumEnabled` flag (404 when off).
449
+ */
450
+ type LegalPageType = 'terms-of-service' | 'privacy-policy' | 'cookie-policy' | 'about' | 'impressum';
451
+ type PublicLegalPage = Schemas['LegalPage'];
452
+ type LegalEntity = NonNullable<PublicLegalPage['legalEntity']>;
453
+
454
+ /**
455
+ * A candidate's public profile — header (name, headline, location, bio, avatar,
456
+ * job-search status) plus their experiences, education, skills, and languages.
457
+ * Only `public` profiles are returned; `jobSearchStatus` is `null` when the
458
+ * candidate scoped it to employers only.
459
+ */
460
+ type TalentProfile = Schemas['TalentProfile'];
461
+ /** A candidate card in the public talent directory. */
462
+ type TalentDirectoryEntry = Schemas['TalentDirectoryEntry'];
463
+ type TalentDirectoryQuery = {
464
+ cursor?: string;
465
+ /** Free-text search (name / headline / skills). */
466
+ q?: string;
467
+ /** Filter to candidates listing a given skill. */
468
+ skill?: string;
469
+ /** 1–100, default 20. */
470
+ limit?: number;
471
+ };
472
+ type TalentDirectoryListEnvelope = ListEnvelope<TalentDirectoryEntry>;
473
+
474
+ /**
475
+ * A board plan (employer pricing). `purpose` is `job_posting` or
476
+ * `talent_access`; talent-access plans carry a `talent` allowance block.
477
+ */
478
+ type Plan = Schemas['Plan'];
479
+ /** A sales-led ("contact us") plan — a custom CTA tier with no programmatic price. */
480
+ type SalesLedPlan = Schemas['SalesLedPlan'];
481
+ type PlansListQuery = {
482
+ /** Filter to a single purpose. Omit to return all public plans. */
483
+ purpose?: 'job_posting' | 'talent_access';
484
+ };
485
+ type PlanListEnvelope = ListEnvelope<Plan>;
486
+ type SalesLedPlanListEnvelope = ListEnvelope<SalesLedPlan>;
487
+
488
+ /** An enabled candidate-access paywall offer tier (public). */
489
+ type PaywallOffer = Schemas['PaywallOffer'];
490
+ /**
491
+ * The connected-account embedded-checkout mount kit returned by
492
+ * `board.me.access.checkout`. Mount with `loadStripe(publishableKey, {
493
+ * stripeAccount: stripeAccountId })` then `initEmbeddedCheckout({ clientSecret })`.
494
+ */
495
+ type AccessCheckoutSession = Schemas['AccessCheckoutSession'];
496
+ /** The polled state of a checkout session (`board.me.access.retrieveCheckout`). */
497
+ type AccessCheckoutSessionState = Schemas['AccessCheckoutSessionState'];
498
+ /** The viewer's candidate-access entitlement (`board.me.access.grant`). */
499
+ type AccessGrant = Schemas['AccessGrant'];
500
+ /** A minted Stripe billing-portal session (`board.me.access.portal`). */
501
+ type AccessPortalSession = Schemas['AccessPortalSession'];
502
+ /** Body for `board.me.access.checkout`. */
503
+ type AccessCheckoutBody = Schemas['AccessCheckoutBody'];
504
+ /** Body for `board.me.access.portal`. */
505
+ type AccessPortalBody = Schemas['AccessPortalBody'];
506
+ type PaywallOfferListEnvelope = ListEnvelope<PaywallOffer>;
507
+
568
508
  type JobAlertFrequency = 'daily' | 'weekly';
569
509
  type JobAlertRemoteOption = 'on_site' | 'hybrid' | 'remote';
570
510
  /**
@@ -663,43 +603,6 @@ type PlacesListQuery = {
663
603
  limit?: number;
664
604
  };
665
605
 
666
- /** A job title's salary breakdown (overall + by-seniority + top rails). */
667
- type TitleSalaryDetail = Schemas['TitleSalaryDetail'];
668
- /** A skill's salary breakdown. */
669
- type SkillSalaryDetail = Schemas['SkillSalaryDetail'];
670
- /** A place's salary breakdown (city overall + siblings, or area child cities). */
671
- type LocationSalaryDetail = Schemas['LocationSalaryDetail'];
672
- /** A company on the `/salaries/companies` hub (ranked by sample size). */
673
- type SalaryCompany = Schemas['SalaryCompanyIndexItem'];
674
- /** A job title on the `/salaries/titles` index. */
675
- type SalaryTitle = Schemas['SalaryTitleIndexItem'];
676
- /** A skill on the `/salaries/skills` index. */
677
- type SalarySkill = Schemas['SalarySkillIndexItem'];
678
- /**
679
- * A place on the `/salaries/locations` index — a flattened tree node carrying
680
- * its `parentSlug` (the consumer rebuilds the country → region → city browse).
681
- */
682
- type SalaryLocation = Schemas['SalaryLocationIndexItem'];
683
- /** A title's salary across locations (flattened `parentSlug` tree). */
684
- type TitleLocationsIndex = Schemas['TitleLocationsIndex'];
685
- /** A skill's salary across locations. */
686
- type SkillLocationsIndex = Schemas['SkillLocationsIndex'];
687
- /** A place's salary by title (suffix read-model). */
688
- type LocationTitlesIndex = Schemas['LocationTitlesIndex'];
689
- /** A place's salary by skill. */
690
- type LocationSkillsIndex = Schemas['LocationSkillsIndex'];
691
- /** A title's salary in one place (4 source + canonical slugs). */
692
- type TitleLocationSalary = Schemas['TitleLocationSalary'];
693
- /** A skill's salary in one place. */
694
- type SkillLocationSalary = Schemas['SkillLocationSalary'];
695
- /**
696
- * Board-language overlay for a salary read. `en` (the default) is the identity
697
- * fast-path; a non-`en` locale overlays board-language names + canonical slugs.
698
- */
699
- type SalaryDetailQuery = {
700
- locale?: string;
701
- };
702
-
703
606
  interface CreateBoardClientOptions {
704
607
  baseUrl: string;
705
608
  /** Board identifier: `pk_…` key (provisioned default) | `boards_…` ID | slug. */
@@ -2989,4 +2892,4 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
2989
2892
  };
2990
2893
  type BoardSdk = ReturnType<typeof createBoardClient>;
2991
2894
 
2992
- export { ACCESS_TOKEN_KEY, type AccessCheckoutBody, type AccessCheckoutSession, type AccessCheckoutSessionState, type AccessGrant, type AccessPortalBody, type AccessPortalSession, type AddApplicantNoteBody, type Alert, type AlertBody, type Application, type ApplicationsListQuery, type ApplyBody, type Awaitable, BOARD_ACCESS_GRANT_KEY, BOARD_API_ERROR_CODES, type Block, type BlockStatus, type BlockUserBody, type BlockedUser, type BlogAuthorEmbed, type BlogPostsListQuery, type BlogSearchBody, type BlogSimilarQuery, type BlogTagEmbed, type BoardAccessGrant, BoardApiError, type BoardApiErrorCode, type BoardAuthSession, BoardClient, type 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, type CompaniesListQuery, type CompaniesSearchBody, type CompanyCategorySalary, type CompanyJobsListQuery, type CompanyListEnvelope, type CompanyMarket, type CompanyMarketRef, type CompanyMarketsListQuery, type CompanyMembership, type CompanySalary, type 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 CustomFieldDefinition, type CustomFieldOption, type CustomFieldType, type CustomStorage, type EditMessageBody, type EmbedJobsQuery, type EmployerApplicant, type EmployerBillingOption, type EmployerCheckout, type EmployerCheckoutBody, type EmployerCompany, type EmployerCompanySearchQuery, type EmployerJob, type EmployerJobSummary, type EmployerJobsListQuery, type EmployerPipeline, type EmployerPipelineQuery, type EmployerPipelineStage, EmploymentType, type 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 JobPostingBillingCheck, type JobPostingBillingOptions, type JobPostingBillingVerification, type JobPostingLogoResult, type JobPostingPlan, type JobPostingResult, type JobPostingSubscriptionEntitlements, JobsListQuery, JobsSearchBody, JobsSimilarQuery, type LegalEntity, type LegalPageType, ListEnvelope, type LocationSalaryDetail, type LocationSkillsIndex, type LocationTitlesIndex, type 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 PublicBlogAdjacentPosts, type PublicBlogAuthor, type PublicBlogPost, type PublicBlogPostSummary, type PublicBlogTag, type PublicBoard, type PublicBoardAnalytics, type PublicBoardFeatures, type PublicBoardTheme, type PublicCompany, type PublicCompanyDetail, type PublicLegalPage, type PublicPlace, REFRESH_TOKEN_KEY, type ReadReceipt, type RedirectResolution, type RefreshBody, type RegisterBody, RelatedSearch, RemoteOption, type ReorderPipelineStagesBody, type ReplyBody, type ReportBody, type RequestMagicLinkBody, type ResetPasswordBody, type Resume, type ResumeUploadOptions, SDK_VERSION, type SalaryCompany, type SalaryDetailQuery, type SalaryLocation, type SalarySkill, type SalaryTitle, type SalesLedPlan, type SalesLedPlanListEnvelope, type SaveJobBody, type SavedJob, type SavedJobsListQuery, SearchEnvelope, type SendWorkEmailBody, Seniority, type SkillLocationSalary, type SkillLocationsIndex, type SkillSalaryDetail, type StartAboutApplicationBody, type StartConversationBody, type StorageMode, type TalentDirectoryEntry, type TalentDirectoryListEnvelope, type TalentDirectoryQuery, type TalentProfile, type TaxonomyGeo, type TaxonomyResolution, type ThreadMessagesQuery, type TitleLocationSalary, type TitleLocationsIndex, type TitleSalaryDetail, 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, isConflict, isForbidden, isNotFound, isRateLimited, isUnauthorized, isValidationError, paginate };
2895
+ export { ACCESS_TOKEN_KEY, type AccessCheckoutBody, type AccessCheckoutSession, type AccessCheckoutSessionState, type AccessGrant, type AccessPortalBody, type AccessPortalSession, type AddApplicantNoteBody, type Alert, type AlertBody, type Application, type ApplicationsListQuery, type ApplyBody, type Awaitable, BOARD_ACCESS_GRANT_KEY, BOARD_API_ERROR_CODES, type Block, type BlockStatus, type BlockUserBody, type BlockedUser, BlogPostsListQuery, BlogSearchBody, BlogSimilarQuery, type BoardAccessGrant, BoardApiError, type BoardApiErrorCode, type BoardAuthSession, BoardClient, type 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 CustomStorage, type EditMessageBody, type EmbedJobsQuery, type EmployerApplicant, type EmployerBillingOption, type EmployerCheckout, type EmployerCheckoutBody, type EmployerCompany, type EmployerCompanySearchQuery, type EmployerJob, type EmployerJobSummary, type EmployerJobsListQuery, type EmployerPipeline, type EmployerPipelineQuery, type EmployerPipelineStage, EmploymentType, type 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 JobPostingBillingCheck, type JobPostingBillingOptions, type JobPostingBillingVerification, type JobPostingLogoResult, type JobPostingPlan, type JobPostingResult, type JobPostingSubscriptionEntitlements, JobsListQuery, JobsSearchBody, JobsSimilarQuery, type LegalEntity, type LegalPageType, ListEnvelope, type 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 PublicLegalPage, type PublicPlace, REFRESH_TOKEN_KEY, type ReadReceipt, type RedirectResolution, type RefreshBody, type RegisterBody, RemoteOption, 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, type SendWorkEmailBody, Seniority, type StartAboutApplicationBody, type StartConversationBody, type StorageMode, type TalentDirectoryEntry, type TalentDirectoryListEnvelope, type TalentDirectoryQuery, type TalentProfile, type TaxonomyGeo, 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, isUnauthorized, isValidationError, lastOwnMessageId, paginate };