@cavuno/board 1.27.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.
- package/dist/index.d.mts +154 -126
- package/dist/index.d.ts +154 -126
- package/dist/index.js +60 -4
- package/dist/index.mjs +60 -4
- package/dist/server.d.mts +111 -0
- package/dist/server.d.ts +111 -0
- package/dist/server.js +199 -0
- package/dist/server.mjs +176 -0
- package/package.json +11 -1
- package/skills/cavuno-board-auth/SKILL.md +6 -5
- package/skills/cavuno-board-server/SKILL.md +229 -0
- package/skills/manifest.json +8 -1
package/dist/index.d.mts
CHANGED
|
@@ -13,7 +13,7 @@ interface CustomStorage {
|
|
|
13
13
|
setItem(key: string, value: string): Awaitable<void>;
|
|
14
14
|
removeItem(key: string): Awaitable<void>;
|
|
15
15
|
}
|
|
16
|
-
type StorageMode = 'memory' | 'nostore' | CustomStorage;
|
|
16
|
+
type StorageMode = 'memory' | 'nostore' | 'local' | 'session' | CustomStorage;
|
|
17
17
|
declare const ACCESS_TOKEN_KEY = "cavuno_board_access_token";
|
|
18
18
|
declare const REFRESH_TOKEN_KEY = "cavuno_board_refresh_token";
|
|
19
19
|
/** Board-password access grant — sent as `X-Board-Access` to pass the wall. */
|
|
@@ -119,6 +119,14 @@ declare class BoardApiError extends Error {
|
|
|
119
119
|
raw: unknown;
|
|
120
120
|
});
|
|
121
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
|
+
*/
|
|
122
130
|
declare function isBoardApiError(e: unknown): e is BoardApiError;
|
|
123
131
|
declare function isNotFound(e: unknown): e is BoardApiError;
|
|
124
132
|
declare function isUnauthorized(e: unknown): e is BoardApiError;
|
|
@@ -195,130 +203,7 @@ declare function paginate<Q extends Record<string, unknown>, P extends PageShape
|
|
|
195
203
|
* constant because the package is platform-neutral and cannot read
|
|
196
204
|
* package.json at runtime.
|
|
197
205
|
*/
|
|
198
|
-
declare const SDK_VERSION = "1.
|
|
199
|
-
|
|
200
|
-
type BoardUser = Schemas['BoardUser'];
|
|
201
|
-
type BoardAuthSession = Schemas['BoardAuthSession'];
|
|
202
|
-
type RegisterBody = Schemas['BoardAuthRegisterBody'];
|
|
203
|
-
type LoginBody = Schemas['BoardAuthLoginBody'];
|
|
204
|
-
type RefreshBody = Schemas['BoardAuthRefreshBody'];
|
|
205
|
-
type LogoutBody = Schemas['BoardAuthLogoutBody'];
|
|
206
|
-
type VerifyEmailBody = Schemas['BoardAuthVerifyEmailBody'];
|
|
207
|
-
type ForgotPasswordBody = Schemas['BoardAuthForgotPasswordBody'];
|
|
208
|
-
type ResetPasswordBody = Schemas['BoardAuthResetPasswordBody'];
|
|
209
|
-
type RequestMagicLinkBody = Schemas['BoardAuthRequestMagicLinkBody'];
|
|
210
|
-
type ConsumeMagicLinkBody = Schemas['BoardAuthConsumeMagicLinkBody'];
|
|
211
|
-
type OAuthProvider = 'google' | 'linkedin';
|
|
212
|
-
type OAuthAuthorizationQuery = {
|
|
213
|
-
returnTo?: string;
|
|
214
|
-
};
|
|
215
|
-
type OAuthAuthorizationUrl = Schemas['BoardAuthOAuthAuthorizationUrl'];
|
|
216
|
-
type OAuthExchangeBody = Schemas['BoardAuthOAuthExchangeBody'];
|
|
217
|
-
|
|
218
|
-
/**
|
|
219
|
-
* The public SEO-infra payload (`board.seo()`) — the values a headless
|
|
220
|
-
* frontend rebuilds `robots.txt` / `ads.txt` / `indexnow-key.txt` (+ the
|
|
221
|
-
* Google site-verification `<meta>` + favicons/web-manifest) from,
|
|
222
|
-
* byte-identically to the hosted board.
|
|
223
|
-
*/
|
|
224
|
-
type BoardSeo = Schemas['BoardSeo'];
|
|
225
|
-
|
|
226
|
-
type EmbedJobsQuery = {
|
|
227
|
-
/** Free-text search query, up to 200 characters. */
|
|
228
|
-
q?: string;
|
|
229
|
-
cursor?: string;
|
|
230
|
-
/** Default 8; values above the embed ceiling of 50 are clamped to 50. */
|
|
231
|
-
limit?: number;
|
|
232
|
-
/** Storefront page offset; takes precedence over `cursor`. `offset + limit` ≤ 10,000. */
|
|
233
|
-
offset?: number;
|
|
234
|
-
/** Repeated param (up to 10) — OR-matched. Repeat `companyId` per value. */
|
|
235
|
-
companyId?: string[];
|
|
236
|
-
remoteOption?: RemoteOption[];
|
|
237
|
-
employmentType?: EmploymentType[];
|
|
238
|
-
seniority?: Seniority[];
|
|
239
|
-
/** Place slug for a geo radius search; unresolvable slugs are ignored. */
|
|
240
|
-
location?: string;
|
|
241
|
-
/** Radius in km around `location` (10–250; default 50). */
|
|
242
|
-
radius?: number;
|
|
243
|
-
};
|
|
244
|
-
|
|
245
|
-
/**
|
|
246
|
-
* The board-access grant returned by `password.verify()`. Send `token` as
|
|
247
|
-
* the `X-Board-Access` header on content reads to pass a board's password
|
|
248
|
-
* wall (the SDK does this automatically once the grant is stored).
|
|
249
|
-
*/
|
|
250
|
-
type BoardAccessGrant = Schemas['BoardAccessGrant'];
|
|
251
|
-
|
|
252
|
-
/**
|
|
253
|
-
* The result of resolving a path against the board's configured redirects
|
|
254
|
-
* (`board.redirects.resolve()`). A headless frontend 308s to `target`, or
|
|
255
|
-
* 404s when it's `null`.
|
|
256
|
-
*/
|
|
257
|
-
type RedirectResolution = Schemas['RedirectResolution'];
|
|
258
|
-
|
|
259
|
-
/**
|
|
260
|
-
* A board legal/about page (ADR-0039 transitional portable-prose field). The
|
|
261
|
-
* API serves owner-authored prose as portable HTML; the starter authors the
|
|
262
|
-
* layout + JSON-LD. Impressum additionally carries structured legal-entity
|
|
263
|
-
* facts and is gated by the board's `impressumEnabled` flag (404 when off).
|
|
264
|
-
*/
|
|
265
|
-
type LegalPageType = 'terms-of-service' | 'privacy-policy' | 'cookie-policy' | 'about' | 'impressum';
|
|
266
|
-
type PublicLegalPage = Schemas['LegalPage'];
|
|
267
|
-
type LegalEntity = NonNullable<PublicLegalPage['legalEntity']>;
|
|
268
|
-
|
|
269
|
-
/**
|
|
270
|
-
* A candidate's public profile — header (name, headline, location, bio, avatar,
|
|
271
|
-
* job-search status) plus their experiences, education, skills, and languages.
|
|
272
|
-
* Only `public` profiles are returned; `jobSearchStatus` is `null` when the
|
|
273
|
-
* candidate scoped it to employers only.
|
|
274
|
-
*/
|
|
275
|
-
type TalentProfile = Schemas['TalentProfile'];
|
|
276
|
-
/** A candidate card in the public talent directory. */
|
|
277
|
-
type TalentDirectoryEntry = Schemas['TalentDirectoryEntry'];
|
|
278
|
-
type TalentDirectoryQuery = {
|
|
279
|
-
cursor?: string;
|
|
280
|
-
/** Free-text search (name / headline / skills). */
|
|
281
|
-
q?: string;
|
|
282
|
-
/** Filter to candidates listing a given skill. */
|
|
283
|
-
skill?: string;
|
|
284
|
-
/** 1–100, default 20. */
|
|
285
|
-
limit?: number;
|
|
286
|
-
};
|
|
287
|
-
type TalentDirectoryListEnvelope = ListEnvelope<TalentDirectoryEntry>;
|
|
288
|
-
|
|
289
|
-
/**
|
|
290
|
-
* A board plan (employer pricing). `purpose` is `job_posting` or
|
|
291
|
-
* `talent_access`; talent-access plans carry a `talent` allowance block.
|
|
292
|
-
*/
|
|
293
|
-
type Plan = Schemas['Plan'];
|
|
294
|
-
/** A sales-led ("contact us") plan — a custom CTA tier with no programmatic price. */
|
|
295
|
-
type SalesLedPlan = Schemas['SalesLedPlan'];
|
|
296
|
-
type PlansListQuery = {
|
|
297
|
-
/** Filter to a single purpose. Omit to return all public plans. */
|
|
298
|
-
purpose?: 'job_posting' | 'talent_access';
|
|
299
|
-
};
|
|
300
|
-
type PlanListEnvelope = ListEnvelope<Plan>;
|
|
301
|
-
type SalesLedPlanListEnvelope = ListEnvelope<SalesLedPlan>;
|
|
302
|
-
|
|
303
|
-
/** An enabled candidate-access paywall offer tier (public). */
|
|
304
|
-
type PaywallOffer = Schemas['PaywallOffer'];
|
|
305
|
-
/**
|
|
306
|
-
* The connected-account embedded-checkout mount kit returned by
|
|
307
|
-
* `board.me.access.checkout`. Mount with `loadStripe(publishableKey, {
|
|
308
|
-
* stripeAccount: stripeAccountId })` then `initEmbeddedCheckout({ clientSecret })`.
|
|
309
|
-
*/
|
|
310
|
-
type AccessCheckoutSession = Schemas['AccessCheckoutSession'];
|
|
311
|
-
/** The polled state of a checkout session (`board.me.access.retrieveCheckout`). */
|
|
312
|
-
type AccessCheckoutSessionState = Schemas['AccessCheckoutSessionState'];
|
|
313
|
-
/** The viewer's candidate-access entitlement (`board.me.access.grant`). */
|
|
314
|
-
type AccessGrant = Schemas['AccessGrant'];
|
|
315
|
-
/** A minted Stripe billing-portal session (`board.me.access.portal`). */
|
|
316
|
-
type AccessPortalSession = Schemas['AccessPortalSession'];
|
|
317
|
-
/** Body for `board.me.access.checkout`. */
|
|
318
|
-
type AccessCheckoutBody = Schemas['AccessCheckoutBody'];
|
|
319
|
-
/** Body for `board.me.access.portal`. */
|
|
320
|
-
type AccessPortalBody = Schemas['AccessPortalBody'];
|
|
321
|
-
type PaywallOfferListEnvelope = ListEnvelope<PaywallOffer>;
|
|
206
|
+
declare const SDK_VERSION = "1.28.0";
|
|
322
207
|
|
|
323
208
|
type SavedJob = Schemas['SavedJob'];
|
|
324
209
|
type SavedJobsListQuery = {
|
|
@@ -477,6 +362,149 @@ type EmployerBillingOption = Schemas['EmployerBillingOption'];
|
|
|
477
362
|
type EmployerCheckout = Schemas['EmployerCheckout'];
|
|
478
363
|
type EmployerCheckoutBody = Schemas['EmployerCheckoutBody'];
|
|
479
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
|
+
|
|
480
508
|
type JobAlertFrequency = 'daily' | 'weekly';
|
|
481
509
|
type JobAlertRemoteOption = 'on_site' | 'hybrid' | 'remote';
|
|
482
510
|
/**
|
|
@@ -2864,4 +2892,4 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
|
|
|
2864
2892
|
};
|
|
2865
2893
|
type BoardSdk = ReturnType<typeof createBoardClient>;
|
|
2866
2894
|
|
|
2867
|
-
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, 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 };
|
package/dist/index.d.ts
CHANGED
|
@@ -13,7 +13,7 @@ interface CustomStorage {
|
|
|
13
13
|
setItem(key: string, value: string): Awaitable<void>;
|
|
14
14
|
removeItem(key: string): Awaitable<void>;
|
|
15
15
|
}
|
|
16
|
-
type StorageMode = 'memory' | 'nostore' | CustomStorage;
|
|
16
|
+
type StorageMode = 'memory' | 'nostore' | 'local' | 'session' | CustomStorage;
|
|
17
17
|
declare const ACCESS_TOKEN_KEY = "cavuno_board_access_token";
|
|
18
18
|
declare const REFRESH_TOKEN_KEY = "cavuno_board_refresh_token";
|
|
19
19
|
/** Board-password access grant — sent as `X-Board-Access` to pass the wall. */
|
|
@@ -119,6 +119,14 @@ declare class BoardApiError extends Error {
|
|
|
119
119
|
raw: unknown;
|
|
120
120
|
});
|
|
121
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
|
+
*/
|
|
122
130
|
declare function isBoardApiError(e: unknown): e is BoardApiError;
|
|
123
131
|
declare function isNotFound(e: unknown): e is BoardApiError;
|
|
124
132
|
declare function isUnauthorized(e: unknown): e is BoardApiError;
|
|
@@ -195,130 +203,7 @@ declare function paginate<Q extends Record<string, unknown>, P extends PageShape
|
|
|
195
203
|
* constant because the package is platform-neutral and cannot read
|
|
196
204
|
* package.json at runtime.
|
|
197
205
|
*/
|
|
198
|
-
declare const SDK_VERSION = "1.
|
|
199
|
-
|
|
200
|
-
type BoardUser = Schemas['BoardUser'];
|
|
201
|
-
type BoardAuthSession = Schemas['BoardAuthSession'];
|
|
202
|
-
type RegisterBody = Schemas['BoardAuthRegisterBody'];
|
|
203
|
-
type LoginBody = Schemas['BoardAuthLoginBody'];
|
|
204
|
-
type RefreshBody = Schemas['BoardAuthRefreshBody'];
|
|
205
|
-
type LogoutBody = Schemas['BoardAuthLogoutBody'];
|
|
206
|
-
type VerifyEmailBody = Schemas['BoardAuthVerifyEmailBody'];
|
|
207
|
-
type ForgotPasswordBody = Schemas['BoardAuthForgotPasswordBody'];
|
|
208
|
-
type ResetPasswordBody = Schemas['BoardAuthResetPasswordBody'];
|
|
209
|
-
type RequestMagicLinkBody = Schemas['BoardAuthRequestMagicLinkBody'];
|
|
210
|
-
type ConsumeMagicLinkBody = Schemas['BoardAuthConsumeMagicLinkBody'];
|
|
211
|
-
type OAuthProvider = 'google' | 'linkedin';
|
|
212
|
-
type OAuthAuthorizationQuery = {
|
|
213
|
-
returnTo?: string;
|
|
214
|
-
};
|
|
215
|
-
type OAuthAuthorizationUrl = Schemas['BoardAuthOAuthAuthorizationUrl'];
|
|
216
|
-
type OAuthExchangeBody = Schemas['BoardAuthOAuthExchangeBody'];
|
|
217
|
-
|
|
218
|
-
/**
|
|
219
|
-
* The public SEO-infra payload (`board.seo()`) — the values a headless
|
|
220
|
-
* frontend rebuilds `robots.txt` / `ads.txt` / `indexnow-key.txt` (+ the
|
|
221
|
-
* Google site-verification `<meta>` + favicons/web-manifest) from,
|
|
222
|
-
* byte-identically to the hosted board.
|
|
223
|
-
*/
|
|
224
|
-
type BoardSeo = Schemas['BoardSeo'];
|
|
225
|
-
|
|
226
|
-
type EmbedJobsQuery = {
|
|
227
|
-
/** Free-text search query, up to 200 characters. */
|
|
228
|
-
q?: string;
|
|
229
|
-
cursor?: string;
|
|
230
|
-
/** Default 8; values above the embed ceiling of 50 are clamped to 50. */
|
|
231
|
-
limit?: number;
|
|
232
|
-
/** Storefront page offset; takes precedence over `cursor`. `offset + limit` ≤ 10,000. */
|
|
233
|
-
offset?: number;
|
|
234
|
-
/** Repeated param (up to 10) — OR-matched. Repeat `companyId` per value. */
|
|
235
|
-
companyId?: string[];
|
|
236
|
-
remoteOption?: RemoteOption[];
|
|
237
|
-
employmentType?: EmploymentType[];
|
|
238
|
-
seniority?: Seniority[];
|
|
239
|
-
/** Place slug for a geo radius search; unresolvable slugs are ignored. */
|
|
240
|
-
location?: string;
|
|
241
|
-
/** Radius in km around `location` (10–250; default 50). */
|
|
242
|
-
radius?: number;
|
|
243
|
-
};
|
|
244
|
-
|
|
245
|
-
/**
|
|
246
|
-
* The board-access grant returned by `password.verify()`. Send `token` as
|
|
247
|
-
* the `X-Board-Access` header on content reads to pass a board's password
|
|
248
|
-
* wall (the SDK does this automatically once the grant is stored).
|
|
249
|
-
*/
|
|
250
|
-
type BoardAccessGrant = Schemas['BoardAccessGrant'];
|
|
251
|
-
|
|
252
|
-
/**
|
|
253
|
-
* The result of resolving a path against the board's configured redirects
|
|
254
|
-
* (`board.redirects.resolve()`). A headless frontend 308s to `target`, or
|
|
255
|
-
* 404s when it's `null`.
|
|
256
|
-
*/
|
|
257
|
-
type RedirectResolution = Schemas['RedirectResolution'];
|
|
258
|
-
|
|
259
|
-
/**
|
|
260
|
-
* A board legal/about page (ADR-0039 transitional portable-prose field). The
|
|
261
|
-
* API serves owner-authored prose as portable HTML; the starter authors the
|
|
262
|
-
* layout + JSON-LD. Impressum additionally carries structured legal-entity
|
|
263
|
-
* facts and is gated by the board's `impressumEnabled` flag (404 when off).
|
|
264
|
-
*/
|
|
265
|
-
type LegalPageType = 'terms-of-service' | 'privacy-policy' | 'cookie-policy' | 'about' | 'impressum';
|
|
266
|
-
type PublicLegalPage = Schemas['LegalPage'];
|
|
267
|
-
type LegalEntity = NonNullable<PublicLegalPage['legalEntity']>;
|
|
268
|
-
|
|
269
|
-
/**
|
|
270
|
-
* A candidate's public profile — header (name, headline, location, bio, avatar,
|
|
271
|
-
* job-search status) plus their experiences, education, skills, and languages.
|
|
272
|
-
* Only `public` profiles are returned; `jobSearchStatus` is `null` when the
|
|
273
|
-
* candidate scoped it to employers only.
|
|
274
|
-
*/
|
|
275
|
-
type TalentProfile = Schemas['TalentProfile'];
|
|
276
|
-
/** A candidate card in the public talent directory. */
|
|
277
|
-
type TalentDirectoryEntry = Schemas['TalentDirectoryEntry'];
|
|
278
|
-
type TalentDirectoryQuery = {
|
|
279
|
-
cursor?: string;
|
|
280
|
-
/** Free-text search (name / headline / skills). */
|
|
281
|
-
q?: string;
|
|
282
|
-
/** Filter to candidates listing a given skill. */
|
|
283
|
-
skill?: string;
|
|
284
|
-
/** 1–100, default 20. */
|
|
285
|
-
limit?: number;
|
|
286
|
-
};
|
|
287
|
-
type TalentDirectoryListEnvelope = ListEnvelope<TalentDirectoryEntry>;
|
|
288
|
-
|
|
289
|
-
/**
|
|
290
|
-
* A board plan (employer pricing). `purpose` is `job_posting` or
|
|
291
|
-
* `talent_access`; talent-access plans carry a `talent` allowance block.
|
|
292
|
-
*/
|
|
293
|
-
type Plan = Schemas['Plan'];
|
|
294
|
-
/** A sales-led ("contact us") plan — a custom CTA tier with no programmatic price. */
|
|
295
|
-
type SalesLedPlan = Schemas['SalesLedPlan'];
|
|
296
|
-
type PlansListQuery = {
|
|
297
|
-
/** Filter to a single purpose. Omit to return all public plans. */
|
|
298
|
-
purpose?: 'job_posting' | 'talent_access';
|
|
299
|
-
};
|
|
300
|
-
type PlanListEnvelope = ListEnvelope<Plan>;
|
|
301
|
-
type SalesLedPlanListEnvelope = ListEnvelope<SalesLedPlan>;
|
|
302
|
-
|
|
303
|
-
/** An enabled candidate-access paywall offer tier (public). */
|
|
304
|
-
type PaywallOffer = Schemas['PaywallOffer'];
|
|
305
|
-
/**
|
|
306
|
-
* The connected-account embedded-checkout mount kit returned by
|
|
307
|
-
* `board.me.access.checkout`. Mount with `loadStripe(publishableKey, {
|
|
308
|
-
* stripeAccount: stripeAccountId })` then `initEmbeddedCheckout({ clientSecret })`.
|
|
309
|
-
*/
|
|
310
|
-
type AccessCheckoutSession = Schemas['AccessCheckoutSession'];
|
|
311
|
-
/** The polled state of a checkout session (`board.me.access.retrieveCheckout`). */
|
|
312
|
-
type AccessCheckoutSessionState = Schemas['AccessCheckoutSessionState'];
|
|
313
|
-
/** The viewer's candidate-access entitlement (`board.me.access.grant`). */
|
|
314
|
-
type AccessGrant = Schemas['AccessGrant'];
|
|
315
|
-
/** A minted Stripe billing-portal session (`board.me.access.portal`). */
|
|
316
|
-
type AccessPortalSession = Schemas['AccessPortalSession'];
|
|
317
|
-
/** Body for `board.me.access.checkout`. */
|
|
318
|
-
type AccessCheckoutBody = Schemas['AccessCheckoutBody'];
|
|
319
|
-
/** Body for `board.me.access.portal`. */
|
|
320
|
-
type AccessPortalBody = Schemas['AccessPortalBody'];
|
|
321
|
-
type PaywallOfferListEnvelope = ListEnvelope<PaywallOffer>;
|
|
206
|
+
declare const SDK_VERSION = "1.28.0";
|
|
322
207
|
|
|
323
208
|
type SavedJob = Schemas['SavedJob'];
|
|
324
209
|
type SavedJobsListQuery = {
|
|
@@ -477,6 +362,149 @@ type EmployerBillingOption = Schemas['EmployerBillingOption'];
|
|
|
477
362
|
type EmployerCheckout = Schemas['EmployerCheckout'];
|
|
478
363
|
type EmployerCheckoutBody = Schemas['EmployerCheckoutBody'];
|
|
479
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
|
+
|
|
480
508
|
type JobAlertFrequency = 'daily' | 'weekly';
|
|
481
509
|
type JobAlertRemoteOption = 'on_site' | 'hybrid' | 'remote';
|
|
482
510
|
/**
|
|
@@ -2864,4 +2892,4 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
|
|
|
2864
2892
|
};
|
|
2865
2893
|
type BoardSdk = ReturnType<typeof createBoardClient>;
|
|
2866
2894
|
|
|
2867
|
-
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, 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 };
|