@cavuno/board 1.37.0 → 1.39.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 CHANGED
@@ -1,74 +1,11 @@
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-CMCADU_-.mjs';
2
- export { j as CustomFieldValue, C as CustomFieldValues, k as EducationRequirement, l as JobCatalogPagination, m as JobCompany, J as JobSort, O as OfficeLocation, n as OffsetPagination, P as PublicJob, a as PublicJobCard, o as RelatedSearch, p as RemotePermit, q as RemoteTimezone, r as StorefrontPagination } from './jobs-CMCADU_-.mjs';
3
- export { C as CustomFieldDefinition, a as CustomFieldOption, b as CustomFieldType, P as PublicBoard, c as PublicBoardAnalytics, d as PublicBoardFeatures, e as PublicBoardTheme } from './board-D0guOBYy.mjs';
4
- import { b as CompaniesListQuery, c as CompanyListEnvelope, d as CompaniesSearchBody, e as CompanyJobsListQuery, f as CompanySimilarQuery, g as CompanyMarketsListQuery, h as SalaryDetailQuery, i as BlogPostsListQuery, j as BlogSimilarQuery, k as BlogSearchBody } from './salaries-9U42CM5A.mjs';
5
- export { B as BlogAuthorEmbed, l as BlogTagEmbed, C as CompanyCategorySalary, m as CompanyMarket, n as CompanyMarketRef, a as CompanySalary, L as LocationSalaryDetail, o as LocationSkillsIndex, p as LocationTitlesIndex, q as PublicBlogAdjacentPosts, r as PublicBlogAuthor, s as PublicBlogPost, P as PublicBlogPostSummary, t as PublicBlogTag, u as PublicCompany, v as PublicCompanyDetail, w as SalaryCompany, x as SalaryLocation, y as SalarySkill, z as SalaryTitle, A as SkillLocationSalary, D as SkillLocationsIndex, S as SkillSalaryDetail, E as TitleLocationSalary, F as TitleLocationsIndex, T as TitleSalaryDetail } from './salaries-9U42CM5A.mjs';
6
-
7
- type Awaitable<T> = T | Promise<T>;
8
- /**
9
- * Async token storage. The SDK reads the access token from storage on
10
- * every request (fresh-token rule); auth methods write/clear the pair.
11
- */
12
- interface CustomStorage {
13
- getItem(key: string): Awaitable<string | null>;
14
- setItem(key: string, value: string): Awaitable<void>;
15
- removeItem(key: string): Awaitable<void>;
16
- }
17
- type StorageMode = 'memory' | 'nostore' | 'local' | 'session' | CustomStorage;
18
- declare const ACCESS_TOKEN_KEY = "cavuno_board_access_token";
19
- declare const REFRESH_TOKEN_KEY = "cavuno_board_refresh_token";
20
- /** Board-password access grant — sent as `X-Board-Access` to pass the wall. */
21
- declare const BOARD_ACCESS_GRANT_KEY = "cavuno_board_access_grant";
22
-
23
- /**
24
- * The request handed to `onRequest` and `fetch`. `onRequest` may
25
- * mutate or replace it wholesale (locale headers, URL rewrites);
26
- * whatever it returns is what gets fetched.
27
- */
28
- interface BoardRequest {
29
- /** Fully built URL, query string included. */
30
- url: string;
31
- /** Final RequestInit: method, Headers instance, serialized body, plus passthrough keys (`signal`, `cache`, `next`, `cf`, …). */
32
- init: RequestInit;
33
- }
34
- interface Logger {
35
- debug(message: string): void;
36
- error(message: string): void;
37
- }
38
- /**
39
- * Per-call options on every SDK method. Everything besides `body` and
40
- * `query` is passed through to `fetch` untouched, so framework caching
41
- * (`next: { tags }`, `cf: {...}`, `cache:`) rides for free.
42
- */
43
- type FetchOptions = Omit<RequestInit, 'body'> & {
44
- body?: unknown;
45
- query?: Record<string, unknown>;
46
- };
47
- interface BoardClientOptions {
48
- baseUrl: string;
49
- /** Board identifier: `pk_…` key | `boards_…` ID | slug (ADR-0032). */
50
- board: string;
51
- storage: CustomStorage;
52
- globalHeaders?: Record<string, string>;
53
- onRequest?: (req: BoardRequest) => Awaitable<BoardRequest>;
54
- onResponse?: (res: Response, req: BoardRequest) => Awaitable<void>;
55
- logger?: Logger;
56
- }
57
- declare class BoardClient {
58
- readonly storage: CustomStorage;
59
- private readonly basePath;
60
- private readonly options;
61
- constructor(options: BoardClientOptions);
62
- /**
63
- * The full request pipeline. Public and first-class: custom endpoints
64
- * work without an SDK release, and still get the board-identifier
65
- * base path, default headers, bearer token, and both hooks.
66
- *
67
- * @example
68
- * const stats = await board.client.fetch<MyShape>('/custom/stats');
69
- */
70
- fetch<T>(path: string, init?: FetchOptions): Promise<T>;
71
- }
1
+ import { S as Schemas, c as components } from './_spec-DxC1ze93.mjs';
2
+ import { F as FetchOptions, c as StorageMode, B as BoardRequest, A as Awaitable, L as Logger, d as BoardClient, a as SearchSuggestQuery } from './search-CqBa1Qc4.mjs';
3
+ export { e as ACCESS_TOKEN_KEY, f as BOARD_ACCESS_GRANT_KEY, C as CompanySuggestion, g as CustomStorage, R as REFRESH_TOKEN_KEY, b as SuggestResult, S as SuggestionItem, T as TermSuggestion } from './search-CqBa1Qc4.mjs';
4
+ export { C as CustomFieldDefinition, a as CustomFieldOption, b as CustomFieldType, P as PublicBoard, c as PublicBoardAnalytics, d as PublicBoardFeatures, e as PublicBoardTheme } from './board-CqYibYUA.mjs';
5
+ import { R as RemoteOption, E as EmploymentType, S as Seniority, L as ListEnvelope, b as JobsListQuery, c as JobCardListEnvelope, d as JobsSearchBody, e as JobCardSearchEnvelope, f as JobsSimilarQuery, g as SearchEnvelope } from './jobs-DPPA1Nev.mjs';
6
+ export { h as CustomFieldValue, C as CustomFieldValues, i as EducationRequirement, j as JobCatalogPagination, k as JobCompany, J as JobSort, O as OfficeLocation, l as OffsetPagination, P as PublicJob, a as PublicJobCard, m as RelatedSearch, n as RemotePermit, o as RemoteTimezone, p as StorefrontPagination } from './jobs-DPPA1Nev.mjs';
7
+ import { b as CompaniesListQuery, c as CompanyListEnvelope, d as CompaniesSearchBody, e as CompanyJobsListQuery, f as CompanySimilarQuery, g as CompanyMarketsListQuery, h as SalaryDetailQuery, i as BlogPostsListQuery, j as BlogSimilarQuery, k as BlogSearchBody } from './salaries-Rb5h_eVZ.mjs';
8
+ export { B as BlogAuthorEmbed, l as BlogTagEmbed, C as CompanyCategorySalary, m as CompanyMarket, n as CompanyMarketRef, a as CompanySalary, L as LocationSalaryDetail, o as LocationSkillsIndex, p as LocationTitlesIndex, q as PublicBlogAdjacentPosts, r as PublicBlogAuthor, s as PublicBlogPost, P as PublicBlogPostSummary, t as PublicBlogTag, u as PublicCompany, v as PublicCompanyDetail, w as SalaryCompany, x as SalaryLocation, y as SalarySkill, z as SalaryTitle, A as SkillLocationSalary, D as SkillLocationsIndex, S as SkillSalaryDetail, E as TitleLocationSalary, F as TitleLocationsIndex, T as TitleSalaryDetail } from './salaries-Rb5h_eVZ.mjs';
72
9
 
73
10
  /**
74
11
  * Well-known `<domain>_<snake_reason>` codes the Board API sends, grouped by
@@ -204,7 +141,7 @@ declare function paginate<Q extends Record<string, unknown>, P extends PageShape
204
141
  * constant because the package is platform-neutral and cannot read
205
142
  * package.json at runtime.
206
143
  */
207
- declare const SDK_VERSION = "1.37.0";
144
+ declare const SDK_VERSION = "1.39.0";
208
145
 
209
146
  type SavedJob = Schemas['SavedJob'];
210
147
  type SavedJobsListQuery = {
@@ -2349,6 +2286,13 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
2349
2286
  }>;
2350
2287
  };
2351
2288
  };
2289
+ search: {
2290
+ suggest(query?: SearchSuggestQuery, options?: FetchOptions): Promise<{
2291
+ object: "suggest_result";
2292
+ query: string;
2293
+ items: components["schemas"]["SuggestionItem"][];
2294
+ }>;
2295
+ };
2352
2296
  redirects: {
2353
2297
  resolve(path: string, options?: FetchOptions): Promise<{
2354
2298
  object: "redirect_resolution";
@@ -2979,4 +2923,4 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
2979
2923
  };
2980
2924
  type BoardSdk = ReturnType<typeof createBoardClient>;
2981
2925
 
2982
- 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 ApplyAction, 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 JobPostingBillingOptions, type JobPostingBillingVerification, type JobPostingLogoResult, type JobPostingPlan, type JobPostingResult, 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, type PublicTaxonomyTerm, REFRESH_TOKEN_KEY, type ReadReceipt, type RedirectResolution, type RefreshBody, type RegisterBody, RemoteOption, type RemotePermitTaxonomyEntry, type ReorderPipelineStagesBody, type ReplyBody, type ReportBody, type RequestMagicLinkBody, type ResetPasswordBody, type Resume, type ResumeUploadOptions, SDK_VERSION, SalaryDetailQuery, type SalesLedPlan, type SalesLedPlanListEnvelope, type SaveJobBody, type SavedJob, type SavedJobsListQuery, SearchEnvelope, type SendWorkEmailBody, Seniority, type StartAboutApplicationBody, type StartConversationBody, type StorageMode, type SuggestionsListQuery, type TalentDirectoryEntry, type TalentDirectoryListEnvelope, type TalentDirectoryQuery, type TalentProfile, type TaxonomyGeo, type TaxonomyListQuery, type TaxonomyResolution, type ThreadMessagesQuery, type UnreadCount, type UnsubscribeBody, type UpdateApplicationFactsBody, type UpdateCandidateProfileBody, type UpdateEducationBody, type UpdateEmployerCompanyBody, type UpdateEmployerJobBody, type UpdateExperienceBody, type UpdateLanguagesBody, type UpdateNotificationPreferenceBody, type UpdatePipelineStageBody, type UpdateSkillsBody, type VerifyEmailBody, createBoardClient, isBoardApiError, isBoardPasswordRequired, isColdRule, isConflict, isForbidden, isNotFound, isOwnMessage, isRateLimited, isSafeApplicationUrl, isUnauthorized, isValidationError, lastOwnMessageId, paginate, resolveApplyAction };
2926
+ export { type AccessCheckoutBody, type AccessCheckoutSession, type AccessCheckoutSessionState, type AccessGrant, type AccessPortalBody, type AccessPortalSession, type AddApplicantNoteBody, type Alert, type AlertBody, type Application, type ApplicationsListQuery, type ApplyAction, type ApplyBody, Awaitable, BOARD_API_ERROR_CODES, type Block, type BlockStatus, type BlockUserBody, type BlockedUser, BlogPostsListQuery, BlogSearchBody, BlogSimilarQuery, type BoardAccessGrant, BoardApiError, type BoardApiErrorCode, type BoardAuthSession, BoardClient, BoardRequest, type BoardSdk, type BoardSeo, type BoardUser, type BulkMoveApplicantsBody, type BulkRejectApplicantsBody, type CandidateAvatar, type CandidateEducation, type CandidateExperience, type CandidateLanguage, type CandidateProfile, type CandidateSkill, type ClaimableCompany, CompaniesListQuery, CompaniesSearchBody, CompanyJobsListQuery, CompanyListEnvelope, CompanyMarketsListQuery, type CompanyMembership, CompanySimilarQuery, type ConfirmWorkEmailBody, type ConsumeMagicLinkBody, type Conversation, type ConversationArchive, type ConversationDetail, type ConversationRef, type ConversationsListQuery, type CreateBoardClientOptions, type CreateCompanyBody, type CreateEducationBody, type CreateEmployerJobBody, type CreateExperienceBody, type CreateJobPostingInput, type CreatePipelineStageBody, type EditMessageBody, type EmbedJobsQuery, type EmployerApplicant, type EmployerBillingOption, type EmployerCheckout, type EmployerCheckoutBody, type EmployerCompany, type EmployerCompanySearchQuery, type EmployerJob, type EmployerJobSummary, type EmployerJobsListQuery, type EmployerPipeline, type EmployerPipelineQuery, type EmployerPipelineStage, 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, type LegalEntity, type LegalPageType, ListEnvelope, Logger, type LoginBody, type LogoutBody, type Message, type ModerationReport, type MoveApplicantStageBody, type NotificationPreference, type OAuthAuthorizationQuery, type OAuthAuthorizationUrl, type OAuthExchangeBody, type OAuthProvider, type Paginator, type PaywallOffer, type PaywallOfferListEnvelope, type PlacesListQuery, type Plan, type PlanListEnvelope, type PlansListQuery, type PublicLegalPage, type PublicPlace, type PublicTaxonomyTerm, type ReadReceipt, type RedirectResolution, type RefreshBody, type RegisterBody, RemoteOption, type RemotePermitTaxonomyEntry, type ReorderPipelineStagesBody, type ReplyBody, type ReportBody, type RequestMagicLinkBody, type ResetPasswordBody, type Resume, type ResumeUploadOptions, SDK_VERSION, SalaryDetailQuery, type SalesLedPlan, type SalesLedPlanListEnvelope, type SaveJobBody, type SavedJob, type SavedJobsListQuery, SearchEnvelope, SearchSuggestQuery, type SendWorkEmailBody, Seniority, type StartAboutApplicationBody, type StartConversationBody, StorageMode, type SuggestionsListQuery, type TalentDirectoryEntry, type TalentDirectoryListEnvelope, type TalentDirectoryQuery, type TalentProfile, type TaxonomyGeo, type TaxonomyListQuery, type TaxonomyResolution, type ThreadMessagesQuery, type UnreadCount, type UnsubscribeBody, type UpdateApplicationFactsBody, type UpdateCandidateProfileBody, type UpdateEducationBody, type UpdateEmployerCompanyBody, type UpdateEmployerJobBody, type UpdateExperienceBody, type UpdateLanguagesBody, type UpdateNotificationPreferenceBody, type UpdatePipelineStageBody, type UpdateSkillsBody, type VerifyEmailBody, createBoardClient, isBoardApiError, isBoardPasswordRequired, isColdRule, isConflict, isForbidden, isNotFound, isOwnMessage, isRateLimited, isSafeApplicationUrl, isUnauthorized, isValidationError, lastOwnMessageId, paginate, resolveApplyAction };
package/dist/index.d.ts CHANGED
@@ -1,74 +1,11 @@
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-CMCADU_-.js';
2
- export { j as CustomFieldValue, C as CustomFieldValues, k as EducationRequirement, l as JobCatalogPagination, m as JobCompany, J as JobSort, O as OfficeLocation, n as OffsetPagination, P as PublicJob, a as PublicJobCard, o as RelatedSearch, p as RemotePermit, q as RemoteTimezone, r as StorefrontPagination } from './jobs-CMCADU_-.js';
3
- export { C as CustomFieldDefinition, a as CustomFieldOption, b as CustomFieldType, P as PublicBoard, c as PublicBoardAnalytics, d as PublicBoardFeatures, e as PublicBoardTheme } from './board-D_BRa2zC.js';
4
- import { b as CompaniesListQuery, c as CompanyListEnvelope, d as CompaniesSearchBody, e as CompanyJobsListQuery, f as CompanySimilarQuery, g as CompanyMarketsListQuery, h as SalaryDetailQuery, i as BlogPostsListQuery, j as BlogSimilarQuery, k as BlogSearchBody } from './salaries-C3w9kvPJ.js';
5
- export { B as BlogAuthorEmbed, l as BlogTagEmbed, C as CompanyCategorySalary, m as CompanyMarket, n as CompanyMarketRef, a as CompanySalary, L as LocationSalaryDetail, o as LocationSkillsIndex, p as LocationTitlesIndex, q as PublicBlogAdjacentPosts, r as PublicBlogAuthor, s as PublicBlogPost, P as PublicBlogPostSummary, t as PublicBlogTag, u as PublicCompany, v as PublicCompanyDetail, w as SalaryCompany, x as SalaryLocation, y as SalarySkill, z as SalaryTitle, A as SkillLocationSalary, D as SkillLocationsIndex, S as SkillSalaryDetail, E as TitleLocationSalary, F as TitleLocationsIndex, T as TitleSalaryDetail } from './salaries-C3w9kvPJ.js';
6
-
7
- type Awaitable<T> = T | Promise<T>;
8
- /**
9
- * Async token storage. The SDK reads the access token from storage on
10
- * every request (fresh-token rule); auth methods write/clear the pair.
11
- */
12
- interface CustomStorage {
13
- getItem(key: string): Awaitable<string | null>;
14
- setItem(key: string, value: string): Awaitable<void>;
15
- removeItem(key: string): Awaitable<void>;
16
- }
17
- type StorageMode = 'memory' | 'nostore' | 'local' | 'session' | CustomStorage;
18
- declare const ACCESS_TOKEN_KEY = "cavuno_board_access_token";
19
- declare const REFRESH_TOKEN_KEY = "cavuno_board_refresh_token";
20
- /** Board-password access grant — sent as `X-Board-Access` to pass the wall. */
21
- declare const BOARD_ACCESS_GRANT_KEY = "cavuno_board_access_grant";
22
-
23
- /**
24
- * The request handed to `onRequest` and `fetch`. `onRequest` may
25
- * mutate or replace it wholesale (locale headers, URL rewrites);
26
- * whatever it returns is what gets fetched.
27
- */
28
- interface BoardRequest {
29
- /** Fully built URL, query string included. */
30
- url: string;
31
- /** Final RequestInit: method, Headers instance, serialized body, plus passthrough keys (`signal`, `cache`, `next`, `cf`, …). */
32
- init: RequestInit;
33
- }
34
- interface Logger {
35
- debug(message: string): void;
36
- error(message: string): void;
37
- }
38
- /**
39
- * Per-call options on every SDK method. Everything besides `body` and
40
- * `query` is passed through to `fetch` untouched, so framework caching
41
- * (`next: { tags }`, `cf: {...}`, `cache:`) rides for free.
42
- */
43
- type FetchOptions = Omit<RequestInit, 'body'> & {
44
- body?: unknown;
45
- query?: Record<string, unknown>;
46
- };
47
- interface BoardClientOptions {
48
- baseUrl: string;
49
- /** Board identifier: `pk_…` key | `boards_…` ID | slug (ADR-0032). */
50
- board: string;
51
- storage: CustomStorage;
52
- globalHeaders?: Record<string, string>;
53
- onRequest?: (req: BoardRequest) => Awaitable<BoardRequest>;
54
- onResponse?: (res: Response, req: BoardRequest) => Awaitable<void>;
55
- logger?: Logger;
56
- }
57
- declare class BoardClient {
58
- readonly storage: CustomStorage;
59
- private readonly basePath;
60
- private readonly options;
61
- constructor(options: BoardClientOptions);
62
- /**
63
- * The full request pipeline. Public and first-class: custom endpoints
64
- * work without an SDK release, and still get the board-identifier
65
- * base path, default headers, bearer token, and both hooks.
66
- *
67
- * @example
68
- * const stats = await board.client.fetch<MyShape>('/custom/stats');
69
- */
70
- fetch<T>(path: string, init?: FetchOptions): Promise<T>;
71
- }
1
+ import { S as Schemas, c as components } from './_spec-DxC1ze93.js';
2
+ import { F as FetchOptions, c as StorageMode, B as BoardRequest, A as Awaitable, L as Logger, d as BoardClient, a as SearchSuggestQuery } from './search-DBoMM-gE.js';
3
+ export { e as ACCESS_TOKEN_KEY, f as BOARD_ACCESS_GRANT_KEY, C as CompanySuggestion, g as CustomStorage, R as REFRESH_TOKEN_KEY, b as SuggestResult, S as SuggestionItem, T as TermSuggestion } from './search-DBoMM-gE.js';
4
+ export { C as CustomFieldDefinition, a as CustomFieldOption, b as CustomFieldType, P as PublicBoard, c as PublicBoardAnalytics, d as PublicBoardFeatures, e as PublicBoardTheme } from './board-RfZEAJse.js';
5
+ import { R as RemoteOption, E as EmploymentType, S as Seniority, L as ListEnvelope, b as JobsListQuery, c as JobCardListEnvelope, d as JobsSearchBody, e as JobCardSearchEnvelope, f as JobsSimilarQuery, g as SearchEnvelope } from './jobs-CLLIvtMc.js';
6
+ export { h as CustomFieldValue, C as CustomFieldValues, i as EducationRequirement, j as JobCatalogPagination, k as JobCompany, J as JobSort, O as OfficeLocation, l as OffsetPagination, P as PublicJob, a as PublicJobCard, m as RelatedSearch, n as RemotePermit, o as RemoteTimezone, p as StorefrontPagination } from './jobs-CLLIvtMc.js';
7
+ import { b as CompaniesListQuery, c as CompanyListEnvelope, d as CompaniesSearchBody, e as CompanyJobsListQuery, f as CompanySimilarQuery, g as CompanyMarketsListQuery, h as SalaryDetailQuery, i as BlogPostsListQuery, j as BlogSimilarQuery, k as BlogSearchBody } from './salaries-DK4RnJnw.js';
8
+ export { B as BlogAuthorEmbed, l as BlogTagEmbed, C as CompanyCategorySalary, m as CompanyMarket, n as CompanyMarketRef, a as CompanySalary, L as LocationSalaryDetail, o as LocationSkillsIndex, p as LocationTitlesIndex, q as PublicBlogAdjacentPosts, r as PublicBlogAuthor, s as PublicBlogPost, P as PublicBlogPostSummary, t as PublicBlogTag, u as PublicCompany, v as PublicCompanyDetail, w as SalaryCompany, x as SalaryLocation, y as SalarySkill, z as SalaryTitle, A as SkillLocationSalary, D as SkillLocationsIndex, S as SkillSalaryDetail, E as TitleLocationSalary, F as TitleLocationsIndex, T as TitleSalaryDetail } from './salaries-DK4RnJnw.js';
72
9
 
73
10
  /**
74
11
  * Well-known `<domain>_<snake_reason>` codes the Board API sends, grouped by
@@ -204,7 +141,7 @@ declare function paginate<Q extends Record<string, unknown>, P extends PageShape
204
141
  * constant because the package is platform-neutral and cannot read
205
142
  * package.json at runtime.
206
143
  */
207
- declare const SDK_VERSION = "1.37.0";
144
+ declare const SDK_VERSION = "1.39.0";
208
145
 
209
146
  type SavedJob = Schemas['SavedJob'];
210
147
  type SavedJobsListQuery = {
@@ -2349,6 +2286,13 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
2349
2286
  }>;
2350
2287
  };
2351
2288
  };
2289
+ search: {
2290
+ suggest(query?: SearchSuggestQuery, options?: FetchOptions): Promise<{
2291
+ object: "suggest_result";
2292
+ query: string;
2293
+ items: components["schemas"]["SuggestionItem"][];
2294
+ }>;
2295
+ };
2352
2296
  redirects: {
2353
2297
  resolve(path: string, options?: FetchOptions): Promise<{
2354
2298
  object: "redirect_resolution";
@@ -2979,4 +2923,4 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
2979
2923
  };
2980
2924
  type BoardSdk = ReturnType<typeof createBoardClient>;
2981
2925
 
2982
- 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 ApplyAction, 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 JobPostingBillingOptions, type JobPostingBillingVerification, type JobPostingLogoResult, type JobPostingPlan, type JobPostingResult, 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, type PublicTaxonomyTerm, REFRESH_TOKEN_KEY, type ReadReceipt, type RedirectResolution, type RefreshBody, type RegisterBody, RemoteOption, type RemotePermitTaxonomyEntry, type ReorderPipelineStagesBody, type ReplyBody, type ReportBody, type RequestMagicLinkBody, type ResetPasswordBody, type Resume, type ResumeUploadOptions, SDK_VERSION, SalaryDetailQuery, type SalesLedPlan, type SalesLedPlanListEnvelope, type SaveJobBody, type SavedJob, type SavedJobsListQuery, SearchEnvelope, type SendWorkEmailBody, Seniority, type StartAboutApplicationBody, type StartConversationBody, type StorageMode, type SuggestionsListQuery, type TalentDirectoryEntry, type TalentDirectoryListEnvelope, type TalentDirectoryQuery, type TalentProfile, type TaxonomyGeo, type TaxonomyListQuery, type TaxonomyResolution, type ThreadMessagesQuery, type UnreadCount, type UnsubscribeBody, type UpdateApplicationFactsBody, type UpdateCandidateProfileBody, type UpdateEducationBody, type UpdateEmployerCompanyBody, type UpdateEmployerJobBody, type UpdateExperienceBody, type UpdateLanguagesBody, type UpdateNotificationPreferenceBody, type UpdatePipelineStageBody, type UpdateSkillsBody, type VerifyEmailBody, createBoardClient, isBoardApiError, isBoardPasswordRequired, isColdRule, isConflict, isForbidden, isNotFound, isOwnMessage, isRateLimited, isSafeApplicationUrl, isUnauthorized, isValidationError, lastOwnMessageId, paginate, resolveApplyAction };
2926
+ export { type AccessCheckoutBody, type AccessCheckoutSession, type AccessCheckoutSessionState, type AccessGrant, type AccessPortalBody, type AccessPortalSession, type AddApplicantNoteBody, type Alert, type AlertBody, type Application, type ApplicationsListQuery, type ApplyAction, type ApplyBody, Awaitable, BOARD_API_ERROR_CODES, type Block, type BlockStatus, type BlockUserBody, type BlockedUser, BlogPostsListQuery, BlogSearchBody, BlogSimilarQuery, type BoardAccessGrant, BoardApiError, type BoardApiErrorCode, type BoardAuthSession, BoardClient, BoardRequest, type BoardSdk, type BoardSeo, type BoardUser, type BulkMoveApplicantsBody, type BulkRejectApplicantsBody, type CandidateAvatar, type CandidateEducation, type CandidateExperience, type CandidateLanguage, type CandidateProfile, type CandidateSkill, type ClaimableCompany, CompaniesListQuery, CompaniesSearchBody, CompanyJobsListQuery, CompanyListEnvelope, CompanyMarketsListQuery, type CompanyMembership, CompanySimilarQuery, type ConfirmWorkEmailBody, type ConsumeMagicLinkBody, type Conversation, type ConversationArchive, type ConversationDetail, type ConversationRef, type ConversationsListQuery, type CreateBoardClientOptions, type CreateCompanyBody, type CreateEducationBody, type CreateEmployerJobBody, type CreateExperienceBody, type CreateJobPostingInput, type CreatePipelineStageBody, type EditMessageBody, type EmbedJobsQuery, type EmployerApplicant, type EmployerBillingOption, type EmployerCheckout, type EmployerCheckoutBody, type EmployerCompany, type EmployerCompanySearchQuery, type EmployerJob, type EmployerJobSummary, type EmployerJobsListQuery, type EmployerPipeline, type EmployerPipelineQuery, type EmployerPipelineStage, 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, type LegalEntity, type LegalPageType, ListEnvelope, Logger, type LoginBody, type LogoutBody, type Message, type ModerationReport, type MoveApplicantStageBody, type NotificationPreference, type OAuthAuthorizationQuery, type OAuthAuthorizationUrl, type OAuthExchangeBody, type OAuthProvider, type Paginator, type PaywallOffer, type PaywallOfferListEnvelope, type PlacesListQuery, type Plan, type PlanListEnvelope, type PlansListQuery, type PublicLegalPage, type PublicPlace, type PublicTaxonomyTerm, type ReadReceipt, type RedirectResolution, type RefreshBody, type RegisterBody, RemoteOption, type RemotePermitTaxonomyEntry, type ReorderPipelineStagesBody, type ReplyBody, type ReportBody, type RequestMagicLinkBody, type ResetPasswordBody, type Resume, type ResumeUploadOptions, SDK_VERSION, SalaryDetailQuery, type SalesLedPlan, type SalesLedPlanListEnvelope, type SaveJobBody, type SavedJob, type SavedJobsListQuery, SearchEnvelope, SearchSuggestQuery, type SendWorkEmailBody, Seniority, type StartAboutApplicationBody, type StartConversationBody, StorageMode, type SuggestionsListQuery, type TalentDirectoryEntry, type TalentDirectoryListEnvelope, type TalentDirectoryQuery, type TalentProfile, type TaxonomyGeo, type TaxonomyListQuery, type TaxonomyResolution, type ThreadMessagesQuery, type UnreadCount, type UnsubscribeBody, type UpdateApplicationFactsBody, type UpdateCandidateProfileBody, type UpdateEducationBody, type UpdateEmployerCompanyBody, type UpdateEmployerJobBody, type UpdateExperienceBody, type UpdateLanguagesBody, type UpdateNotificationPreferenceBody, type UpdatePipelineStageBody, type UpdateSkillsBody, type VerifyEmailBody, createBoardClient, isBoardApiError, isBoardPasswordRequired, isColdRule, isConflict, isForbidden, isNotFound, isOwnMessage, isRateLimited, isSafeApplicationUrl, isUnauthorized, isValidationError, lastOwnMessageId, paginate, resolveApplyAction };
package/dist/index.js CHANGED
@@ -312,7 +312,7 @@ async function clearSession(storage) {
312
312
  }
313
313
 
314
314
  // src/version.ts
315
- var SDK_VERSION = "1.37.0";
315
+ var SDK_VERSION = "1.39.0";
316
316
 
317
317
  // src/client.ts
318
318
  function isRawBody(body) {
@@ -2478,6 +2478,26 @@ function salariesNamespace(client) {
2478
2478
  };
2479
2479
  }
2480
2480
 
2481
+ // src/namespaces/search.ts
2482
+ function searchNamespace(client) {
2483
+ return {
2484
+ /**
2485
+ * GET /search/suggest — federated keyword suggestions (companies +
2486
+ * taxonomy terms), one interleaved server-ranked list. Order is the
2487
+ * contract: do not re-sort.
2488
+ *
2489
+ * @example
2490
+ * const { items } = await board.search.suggest({ q: 'acme', limit: 10 });
2491
+ */
2492
+ suggest(query, options) {
2493
+ return client.fetch("/search/suggest", {
2494
+ ...options,
2495
+ query
2496
+ });
2497
+ }
2498
+ };
2499
+ }
2500
+
2481
2501
  // src/namespaces/talent.ts
2482
2502
  function talentNamespace(client) {
2483
2503
  return {
@@ -2699,6 +2719,7 @@ function createBoardClient(options) {
2699
2719
  me: meNamespace(client),
2700
2720
  password: passwordNamespace(client),
2701
2721
  taxonomy: taxonomyNamespace(client),
2722
+ search: searchNamespace(client),
2702
2723
  redirects: redirectsNamespace(client),
2703
2724
  jobAlerts: jobAlertsNamespace(client),
2704
2725
  jobPosting: jobPostingNamespace(client),
package/dist/index.mjs CHANGED
@@ -265,7 +265,7 @@ async function clearSession(storage) {
265
265
  }
266
266
 
267
267
  // src/version.ts
268
- var SDK_VERSION = "1.37.0";
268
+ var SDK_VERSION = "1.39.0";
269
269
 
270
270
  // src/client.ts
271
271
  function isRawBody(body) {
@@ -2431,6 +2431,26 @@ function salariesNamespace(client) {
2431
2431
  };
2432
2432
  }
2433
2433
 
2434
+ // src/namespaces/search.ts
2435
+ function searchNamespace(client) {
2436
+ return {
2437
+ /**
2438
+ * GET /search/suggest — federated keyword suggestions (companies +
2439
+ * taxonomy terms), one interleaved server-ranked list. Order is the
2440
+ * contract: do not re-sort.
2441
+ *
2442
+ * @example
2443
+ * const { items } = await board.search.suggest({ q: 'acme', limit: 10 });
2444
+ */
2445
+ suggest(query, options) {
2446
+ return client.fetch("/search/suggest", {
2447
+ ...options,
2448
+ query
2449
+ });
2450
+ }
2451
+ };
2452
+ }
2453
+
2434
2454
  // src/namespaces/talent.ts
2435
2455
  function talentNamespace(client) {
2436
2456
  return {
@@ -2652,6 +2672,7 @@ function createBoardClient(options) {
2652
2672
  me: meNamespace(client),
2653
2673
  password: passwordNamespace(client),
2654
2674
  taxonomy: taxonomyNamespace(client),
2675
+ search: searchNamespace(client),
2655
2676
  redirects: redirectsNamespace(client),
2656
2677
  jobAlerts: jobAlertsNamespace(client),
2657
2678
  jobPosting: jobPostingNamespace(client),
@@ -0,0 +1,105 @@
1
+ import { S as Schemas } from './_spec-DxC1ze93.js';
2
+
3
+ /**
4
+ * Stripe-shaped success envelopes (`01-conventions.md` §5.1). The
5
+ * server MAY add top-level fields; consumers MUST ignore unknown
6
+ * fields.
7
+ */
8
+ /**
9
+ * Optional offset-pagination metadata generated from the Board API contract.
10
+ * `nextCursor` is preserved alongside for forward cursor iteration.
11
+ */
12
+ type OffsetPagination = Schemas['OffsetPagination'];
13
+ /** @deprecated Use `OffsetPagination`. */
14
+ type StorefrontPagination = OffsetPagination;
15
+ /** @deprecated Use `OffsetPagination`. */
16
+ type JobCatalogPagination = OffsetPagination;
17
+ type ListEnvelope<T> = OffsetPagination & {
18
+ object: 'list';
19
+ url: string;
20
+ hasMore: boolean;
21
+ /** `null` when `hasMore` is false — always present, never undefined. */
22
+ nextCursor: string | null;
23
+ data: T[];
24
+ };
25
+ type SearchEnvelope<T> = OffsetPagination & {
26
+ object: 'search_result';
27
+ url: string;
28
+ hasMore: boolean;
29
+ nextCursor: string | null;
30
+ data: T[];
31
+ };
32
+
33
+ type PublicJob = Schemas['PublicJob'];
34
+ type PublicJobCard = Schemas['PublicJobCard'];
35
+ /**
36
+ * A job's opaque, display-only custom-field values (CAV-294), keyed by each
37
+ * field's `key`. Resolve labels via the board's `CustomFieldDefinition`s
38
+ * (`board.context().customFields`).
39
+ */
40
+ type CustomFieldValues = PublicJob['customFieldValues'];
41
+ type CustomFieldValue = CustomFieldValues[string];
42
+ type JobCompany = Schemas['JobCompany'];
43
+ type OfficeLocation = Schemas['JobOfficeLocation'];
44
+ type RemoteOption = NonNullable<PublicJob['remoteOption']>;
45
+ type EmploymentType = NonNullable<PublicJob['employmentType']>;
46
+ type Seniority = NonNullable<PublicJob['seniority']>;
47
+ /** Candidate-facing result ordering (ADR-0048); `relevance` is the default. */
48
+ type JobSort = NonNullable<Schemas['PublicSearchJobsBody']['sort']>;
49
+ type EducationRequirement = PublicJob['educationRequirements'][number];
50
+ type RemotePermit = PublicJob['remotePermits'][number];
51
+ type RemoteTimezone = PublicJob['remoteTimezones'][number];
52
+ /**
53
+ * Derived suggestion on a browse list (ADR-0037 §8): jobs surface `category`
54
+ * and `skill` terms; the companies list surfaces `market` terms.
55
+ */
56
+ interface RelatedSearch {
57
+ type: 'category' | 'skill' | 'market';
58
+ slug: string;
59
+ term: string;
60
+ count: number;
61
+ }
62
+ /** The browse list envelope — `PublicJobCard`s + job catalog pagination + `relatedSearches`. */
63
+ type JobCardListEnvelope = ListEnvelope<PublicJobCard> & {
64
+ relatedSearches?: RelatedSearch[];
65
+ };
66
+ /** The search envelope — `PublicJobCard`s + job catalog pagination. */
67
+ type JobCardSearchEnvelope = SearchEnvelope<PublicJobCard>;
68
+ type JobsListQuery = {
69
+ cursor?: string;
70
+ /** 1–100. */
71
+ limit?: number;
72
+ /** Job catalog page offset; takes precedence over `cursor`. `offset + limit` ≤ 10,000. */
73
+ offset?: number;
74
+ /** Repeated param (up to 10) — OR-matched. Repeat `companyId` per value. */
75
+ companyId?: string[];
76
+ /**
77
+ * Company slugs (the public URL identity). Repeat for multiple values
78
+ * (up to 10). Resolved server-side; unknown slugs are dropped. Combined
79
+ * with `companyId` as a union. If the provided company filter resolves
80
+ * to no known companies, the result is empty.
81
+ */
82
+ companySlug?: string[];
83
+ remoteOption?: RemoteOption[];
84
+ employmentType?: EmploymentType[];
85
+ seniority?: Seniority[];
86
+ /** Result ordering (ADR-0048). Absent ⇒ `relevance` (the featured-ranked browse). */
87
+ sort?: JobSort;
88
+ /** Place slug for a geo radius search; unresolvable slugs are ignored. */
89
+ location?: string;
90
+ /** Radius in km around `location` (10–250; default 50). */
91
+ radius?: number;
92
+ /** Category slug seed (the `/jobs/[keyword]` page) — server resolves it to the English source name; unresolvable → 404. */
93
+ category?: string;
94
+ /** Skill slug seed (the `/jobs/skills/[skill]` page) — server-resolved; unresolvable → 404. */
95
+ skill?: string;
96
+ /** Sparse fieldset (Medusa-style `+field`). Only `'+description'` is supported — adds `description` to each card. */
97
+ fields?: string;
98
+ };
99
+ type JobsSimilarQuery = {
100
+ /** How many similar jobs to return (1–20; default 5). */
101
+ limit?: number;
102
+ };
103
+ type JobsSearchBody = Schemas['PublicSearchJobsBody'];
104
+
105
+ export type { CustomFieldValues as C, EmploymentType as E, JobSort as J, ListEnvelope as L, OfficeLocation as O, PublicJob as P, RemoteOption as R, Seniority as S, PublicJobCard as a, JobsListQuery as b, JobCardListEnvelope as c, JobsSearchBody as d, JobCardSearchEnvelope as e, JobsSimilarQuery as f, SearchEnvelope as g, CustomFieldValue as h, EducationRequirement as i, JobCatalogPagination as j, JobCompany as k, OffsetPagination as l, RelatedSearch as m, RemotePermit as n, RemoteTimezone as o, StorefrontPagination as p };
@@ -0,0 +1,105 @@
1
+ import { S as Schemas } from './_spec-DxC1ze93.mjs';
2
+
3
+ /**
4
+ * Stripe-shaped success envelopes (`01-conventions.md` §5.1). The
5
+ * server MAY add top-level fields; consumers MUST ignore unknown
6
+ * fields.
7
+ */
8
+ /**
9
+ * Optional offset-pagination metadata generated from the Board API contract.
10
+ * `nextCursor` is preserved alongside for forward cursor iteration.
11
+ */
12
+ type OffsetPagination = Schemas['OffsetPagination'];
13
+ /** @deprecated Use `OffsetPagination`. */
14
+ type StorefrontPagination = OffsetPagination;
15
+ /** @deprecated Use `OffsetPagination`. */
16
+ type JobCatalogPagination = OffsetPagination;
17
+ type ListEnvelope<T> = OffsetPagination & {
18
+ object: 'list';
19
+ url: string;
20
+ hasMore: boolean;
21
+ /** `null` when `hasMore` is false — always present, never undefined. */
22
+ nextCursor: string | null;
23
+ data: T[];
24
+ };
25
+ type SearchEnvelope<T> = OffsetPagination & {
26
+ object: 'search_result';
27
+ url: string;
28
+ hasMore: boolean;
29
+ nextCursor: string | null;
30
+ data: T[];
31
+ };
32
+
33
+ type PublicJob = Schemas['PublicJob'];
34
+ type PublicJobCard = Schemas['PublicJobCard'];
35
+ /**
36
+ * A job's opaque, display-only custom-field values (CAV-294), keyed by each
37
+ * field's `key`. Resolve labels via the board's `CustomFieldDefinition`s
38
+ * (`board.context().customFields`).
39
+ */
40
+ type CustomFieldValues = PublicJob['customFieldValues'];
41
+ type CustomFieldValue = CustomFieldValues[string];
42
+ type JobCompany = Schemas['JobCompany'];
43
+ type OfficeLocation = Schemas['JobOfficeLocation'];
44
+ type RemoteOption = NonNullable<PublicJob['remoteOption']>;
45
+ type EmploymentType = NonNullable<PublicJob['employmentType']>;
46
+ type Seniority = NonNullable<PublicJob['seniority']>;
47
+ /** Candidate-facing result ordering (ADR-0048); `relevance` is the default. */
48
+ type JobSort = NonNullable<Schemas['PublicSearchJobsBody']['sort']>;
49
+ type EducationRequirement = PublicJob['educationRequirements'][number];
50
+ type RemotePermit = PublicJob['remotePermits'][number];
51
+ type RemoteTimezone = PublicJob['remoteTimezones'][number];
52
+ /**
53
+ * Derived suggestion on a browse list (ADR-0037 §8): jobs surface `category`
54
+ * and `skill` terms; the companies list surfaces `market` terms.
55
+ */
56
+ interface RelatedSearch {
57
+ type: 'category' | 'skill' | 'market';
58
+ slug: string;
59
+ term: string;
60
+ count: number;
61
+ }
62
+ /** The browse list envelope — `PublicJobCard`s + job catalog pagination + `relatedSearches`. */
63
+ type JobCardListEnvelope = ListEnvelope<PublicJobCard> & {
64
+ relatedSearches?: RelatedSearch[];
65
+ };
66
+ /** The search envelope — `PublicJobCard`s + job catalog pagination. */
67
+ type JobCardSearchEnvelope = SearchEnvelope<PublicJobCard>;
68
+ type JobsListQuery = {
69
+ cursor?: string;
70
+ /** 1–100. */
71
+ limit?: number;
72
+ /** Job catalog page offset; takes precedence over `cursor`. `offset + limit` ≤ 10,000. */
73
+ offset?: number;
74
+ /** Repeated param (up to 10) — OR-matched. Repeat `companyId` per value. */
75
+ companyId?: string[];
76
+ /**
77
+ * Company slugs (the public URL identity). Repeat for multiple values
78
+ * (up to 10). Resolved server-side; unknown slugs are dropped. Combined
79
+ * with `companyId` as a union. If the provided company filter resolves
80
+ * to no known companies, the result is empty.
81
+ */
82
+ companySlug?: string[];
83
+ remoteOption?: RemoteOption[];
84
+ employmentType?: EmploymentType[];
85
+ seniority?: Seniority[];
86
+ /** Result ordering (ADR-0048). Absent ⇒ `relevance` (the featured-ranked browse). */
87
+ sort?: JobSort;
88
+ /** Place slug for a geo radius search; unresolvable slugs are ignored. */
89
+ location?: string;
90
+ /** Radius in km around `location` (10–250; default 50). */
91
+ radius?: number;
92
+ /** Category slug seed (the `/jobs/[keyword]` page) — server resolves it to the English source name; unresolvable → 404. */
93
+ category?: string;
94
+ /** Skill slug seed (the `/jobs/skills/[skill]` page) — server-resolved; unresolvable → 404. */
95
+ skill?: string;
96
+ /** Sparse fieldset (Medusa-style `+field`). Only `'+description'` is supported — adds `description` to each card. */
97
+ fields?: string;
98
+ };
99
+ type JobsSimilarQuery = {
100
+ /** How many similar jobs to return (1–20; default 5). */
101
+ limit?: number;
102
+ };
103
+ type JobsSearchBody = Schemas['PublicSearchJobsBody'];
104
+
105
+ export type { CustomFieldValues as C, EmploymentType as E, JobSort as J, ListEnvelope as L, OfficeLocation as O, PublicJob as P, RemoteOption as R, Seniority as S, PublicJobCard as a, JobsListQuery as b, JobCardListEnvelope as c, JobsSearchBody as d, JobCardSearchEnvelope as e, JobsSimilarQuery as f, SearchEnvelope as g, CustomFieldValue as h, EducationRequirement as i, JobCatalogPagination as j, JobCompany as k, OffsetPagination as l, RelatedSearch as m, RemotePermit as n, RemoteTimezone as o, StorefrontPagination as p };
@@ -1,4 +1,5 @@
1
- import { b as Schemas, L as ListEnvelope, o as RelatedSearch } from './jobs-CMCADU_-.mjs';
1
+ import { S as Schemas } from './_spec-DxC1ze93.js';
2
+ import { L as ListEnvelope, m as RelatedSearch } from './jobs-CLLIvtMc.js';
2
3
 
3
4
  /** Author shape embedded on posts (no `object` discriminator). */
4
5
  type BlogAuthorEmbed = Schemas['PublicBlogAuthorEmbed'];
@@ -1,4 +1,5 @@
1
- import { b as Schemas, L as ListEnvelope, o as RelatedSearch } from './jobs-CMCADU_-.js';
1
+ import { S as Schemas } from './_spec-DxC1ze93.mjs';
2
+ import { L as ListEnvelope, m as RelatedSearch } from './jobs-DPPA1Nev.mjs';
2
3
 
3
4
  /** Author shape embedded on posts (no `object` discriminator). */
4
5
  type BlogAuthorEmbed = Schemas['PublicBlogAuthorEmbed'];