@cavuno/board 1.6.0 → 1.8.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
@@ -345,6 +345,12 @@ interface components {
345
345
  /** @description Number of companies on the board in this market. */
346
346
  companyCount: number;
347
347
  };
348
+ CompanyMarketRef: {
349
+ /** @description Display name of the market. */
350
+ name: string;
351
+ /** @description Source slug for the market. Use it as the `:market` segment of the market-scoped company browse. */
352
+ slug: string;
353
+ };
348
354
  CompanyPublic: {
349
355
  /** @description Unique identifier for the object. Use this value as the `{id}` path parameter for the company endpoints (e.g. `GET /v1/companies/{id}`). */
350
356
  id: string;
@@ -369,6 +375,10 @@ interface components {
369
375
  publishedJobCount: number;
370
376
  links: components["schemas"]["PublicCompanyLinks"];
371
377
  };
378
+ CompanyPublicDetail: components["schemas"]["CompanyPublic"] & {
379
+ /** @description Markets (sectors) this company operates in, each with its source slug. Empty when the company has no markets. */
380
+ markets: components["schemas"]["CompanyMarketRef"][];
381
+ };
372
382
  CompanySummary: {
373
383
  /** @description Unique identifier for the object. Use this value as the `{id}` path parameter for the company endpoints (e.g. `GET /v1/companies/{id}`). */
374
384
  id: string;
@@ -1029,8 +1039,8 @@ interface components {
1029
1039
  PublicBlogAdjacentPosts: {
1030
1040
  /** @enum {string} */
1031
1041
  object: "blog_adjacent_posts";
1032
- previous: components["schemas"]["PublicBlogPostSummary"] & unknown;
1033
- next: components["schemas"]["PublicBlogPostSummary"] & unknown;
1042
+ previous: components["schemas"]["PublicBlogPostSummary"] | null;
1043
+ next: components["schemas"]["PublicBlogPostSummary"] | null;
1034
1044
  };
1035
1045
  PublicBlogAuthor: components["schemas"]["PublicBlogAuthorEmbed"] & {
1036
1046
  /** @enum {string} */
@@ -1145,6 +1155,8 @@ interface components {
1145
1155
  PublicCompaniesSearchBody: {
1146
1156
  /** @description Free-text search query matched against company name. Up to 200 characters. */
1147
1157
  query?: string;
1158
+ /** @description Scope the results to companies in a single market (sector), by the market slug. Resolves a board-language or English slug; an unknown slug returns 404. Use `GET /boards/:identifier/companies/markets/:market` to resolve a slug to its canonical form first. */
1159
+ marketSlug?: string;
1148
1160
  /** @description An opaque pagination cursor returned in the `nextCursor` field of a previous response. Pass it back to fetch the next page of results. */
1149
1161
  cursor?: string | null;
1150
1162
  /** @description A limit on the number of objects to be returned. Limit can range between 1 and 100. */
@@ -1300,7 +1312,13 @@ interface components {
1300
1312
  frequency: string;
1301
1313
  isActive: boolean;
1302
1314
  filters: {
1303
- [key: string]: unknown;
1315
+ jobFunctions?: string[];
1316
+ seniorityLevels?: string[];
1317
+ remoteOptions?: string[];
1318
+ placeIds?: string[];
1319
+ salaryMin?: number | null;
1320
+ salaryMax?: number | null;
1321
+ salaryCurrency?: string | null;
1304
1322
  };
1305
1323
  manageToken: string;
1306
1324
  }[];
@@ -1443,7 +1461,7 @@ interface components {
1443
1461
  /** @enum {string} */
1444
1462
  object: "taxonomy_resolution";
1445
1463
  /** @enum {string} */
1446
- type: "category" | "skill" | "place";
1464
+ type: "category" | "skill" | "place" | "market";
1447
1465
  /** @description Immutable English source slug — the semantic-search key. */
1448
1466
  sourceSlug: string;
1449
1467
  /** @description Board-language URL slug (the `<link rel=canonical>` target). */
@@ -1928,9 +1946,12 @@ type Seniority = NonNullable<PublicJob['seniority']>;
1928
1946
  type EducationRequirement = PublicJob['educationRequirements'][number];
1929
1947
  type RemotePermit = PublicJob['remotePermits'][number];
1930
1948
  type RemoteTimezone = PublicJob['remoteTimezones'][number];
1931
- /** Derived category/skill suggestion on the jobs browse list (ADR-0037 §8). */
1949
+ /**
1950
+ * Derived suggestion on a browse list (ADR-0037 §8): jobs surface `category`
1951
+ * and `skill` terms; the companies list surfaces `market` terms.
1952
+ */
1932
1953
  interface RelatedSearch {
1933
- type: 'category' | 'skill';
1954
+ type: 'category' | 'skill' | 'market';
1934
1955
  slug: string;
1935
1956
  term: string;
1936
1957
  count: number;
@@ -2088,7 +2109,7 @@ declare function isConflict(e: unknown): e is BoardApiError;
2088
2109
  * constant because the package is platform-neutral and cannot read
2089
2110
  * package.json at runtime.
2090
2111
  */
2091
- declare const SDK_VERSION = "1.6.0";
2112
+ declare const SDK_VERSION = "1.8.0";
2092
2113
 
2093
2114
  type BoardUser = Schemas['BoardUser'];
2094
2115
  type BoardAuthSession = Schemas['BoardAuthSession'];
@@ -2183,8 +2204,18 @@ type BlogSimilarQuery = {
2183
2204
  type BlogSearchBody = Schemas['PublicBlogSearchBody'];
2184
2205
 
2185
2206
  type PublicCompany = Schemas['CompanyPublic'];
2207
+ /** A market (sector) a company operates in — name + its source slug. */
2208
+ type CompanyMarketRef = Schemas['CompanyMarketRef'];
2209
+ /** The company DETAIL shape — `PublicCompany` plus `markets` (detail-only). */
2210
+ type PublicCompanyDetail = Schemas['CompanyPublicDetail'];
2211
+ /** The companies browse list — `PublicCompany`s + `market` `relatedSearches`. */
2212
+ interface CompanyListEnvelope extends ListEnvelope<PublicCompany> {
2213
+ relatedSearches?: RelatedSearch[];
2214
+ }
2186
2215
  type CompaniesListQuery = {
2187
2216
  cursor?: string;
2217
+ /** Scope to a single market (sector) by slug. Unknown slugs 404. */
2218
+ marketSlug?: string;
2188
2219
  /** 1–100. */
2189
2220
  limit?: number;
2190
2221
  };
@@ -2534,18 +2565,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
2534
2565
  }>>;
2535
2566
  };
2536
2567
  companies: {
2537
- list(query?: CompaniesListQuery, options?: FetchOptions): Promise<ListEnvelope<{
2538
- id: string;
2539
- object: "public_company";
2540
- name: string;
2541
- slug: string;
2542
- website: string | null;
2543
- logoUrl: string | null;
2544
- description: string | null;
2545
- jobCount: number;
2546
- publishedJobCount: number;
2547
- links: components["schemas"]["PublicCompanyLinks"];
2548
- }>>;
2568
+ list(query?: CompaniesListQuery, options?: FetchOptions): Promise<CompanyListEnvelope>;
2549
2569
  retrieve(companySlug: string, query?: Record<string, never>, options?: FetchOptions): Promise<{
2550
2570
  id: string;
2551
2571
  object: "public_company";
@@ -2557,6 +2577,8 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
2557
2577
  jobCount: number;
2558
2578
  publishedJobCount: number;
2559
2579
  links: components["schemas"]["PublicCompanyLinks"];
2580
+ } & {
2581
+ markets: components["schemas"]["CompanyMarketRef"][];
2560
2582
  }>;
2561
2583
  search(body: CompaniesSearchBody, query?: Record<string, never>, options?: FetchOptions): Promise<SearchEnvelope<{
2562
2584
  id: string;
@@ -2583,12 +2605,22 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
2583
2605
  publishedJobCount: number;
2584
2606
  links: components["schemas"]["PublicCompanyLinks"];
2585
2607
  }>>;
2586
- markets(query?: CompanyMarketsListQuery, options?: FetchOptions): Promise<ListEnvelope<{
2608
+ markets: ((query?: CompanyMarketsListQuery, options?: FetchOptions) => Promise<ListEnvelope<{
2587
2609
  object: "company_market";
2588
2610
  slug: string;
2589
2611
  name: string;
2590
2612
  companyCount: number;
2591
- }>>;
2613
+ }>>) & {
2614
+ resolve(market: string, options?: FetchOptions): Promise<{
2615
+ object: "taxonomy_resolution";
2616
+ type: "category" | "skill" | "place" | "market";
2617
+ sourceSlug: string;
2618
+ canonicalSlug: string;
2619
+ displayName: string;
2620
+ redirectTo: string | null;
2621
+ geo: components["schemas"]["TaxonomyGeo"];
2622
+ }>;
2623
+ };
2592
2624
  };
2593
2625
  blog: {
2594
2626
  posts: {
@@ -2634,8 +2666,8 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
2634
2666
  }>;
2635
2667
  adjacent(postSlug: string, options?: FetchOptions): Promise<{
2636
2668
  object: "blog_adjacent_posts";
2637
- previous: components["schemas"]["PublicBlogPostSummary"] & unknown;
2638
- next: components["schemas"]["PublicBlogPostSummary"] & unknown;
2669
+ previous: components["schemas"]["PublicBlogPostSummary"] | null;
2670
+ next: components["schemas"]["PublicBlogPostSummary"] | null;
2639
2671
  }>;
2640
2672
  similar(postSlug: string, query?: BlogSimilarQuery, options?: FetchOptions): Promise<ListEnvelope<{
2641
2673
  id: string;
@@ -2791,7 +2823,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
2791
2823
  categories: {
2792
2824
  resolve(slug: string, options?: FetchOptions): Promise<{
2793
2825
  object: "taxonomy_resolution";
2794
- type: "category" | "skill" | "place";
2826
+ type: "category" | "skill" | "place" | "market";
2795
2827
  sourceSlug: string;
2796
2828
  canonicalSlug: string;
2797
2829
  displayName: string;
@@ -2802,7 +2834,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
2802
2834
  skills: {
2803
2835
  resolve(slug: string, options?: FetchOptions): Promise<{
2804
2836
  object: "taxonomy_resolution";
2805
- type: "category" | "skill" | "place";
2837
+ type: "category" | "skill" | "place" | "market";
2806
2838
  sourceSlug: string;
2807
2839
  canonicalSlug: string;
2808
2840
  displayName: string;
@@ -2824,7 +2856,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
2824
2856
  }>>;
2825
2857
  resolve(slug: string, options?: FetchOptions): Promise<{
2826
2858
  object: "taxonomy_resolution";
2827
- type: "category" | "skill" | "place";
2859
+ type: "category" | "skill" | "place" | "market";
2828
2860
  sourceSlug: string;
2829
2861
  canonicalSlug: string;
2830
2862
  displayName: string;
@@ -2870,7 +2902,13 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
2870
2902
  frequency: string;
2871
2903
  isActive: boolean;
2872
2904
  filters: {
2873
- [key: string]: unknown;
2905
+ jobFunctions?: string[];
2906
+ seniorityLevels?: string[];
2907
+ remoteOptions?: string[];
2908
+ placeIds?: string[];
2909
+ salaryMin?: number | null;
2910
+ salaryMax?: number | null;
2911
+ salaryCurrency?: string | null;
2874
2912
  };
2875
2913
  manageToken: string;
2876
2914
  }[];
@@ -2895,4 +2933,4 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
2895
2933
  };
2896
2934
  type BoardSdk = ReturnType<typeof createBoardClient>;
2897
2935
 
2898
- export { ACCESS_TOKEN_KEY, type Awaitable, BOARD_ACCESS_GRANT_KEY, type BlogAuthorEmbed, type BlogPostsListQuery, type BlogSearchBody, type BlogSimilarQuery, type BlogTagEmbed, type BoardAccessGrant, BoardApiError, type BoardAuthSession, BoardClient, type BoardRequest, type BoardSdk, type BoardSeo, type BoardUser, type CompaniesListQuery, type CompaniesSearchBody, type CompanyJobsListQuery, type CompanyMarket, type CompanyMarketsListQuery, type CompanySimilarQuery, type CreateBoardClientOptions, type CustomStorage, type EducationRequirement, type EmbedJobsQuery, type EmploymentType, type FetchOptions, type ForgotPasswordBody, 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, type JobCardListEnvelope, type JobCardSearchEnvelope, type JobCompany, type JobsListQuery, type JobsSearchBody, type LegalEntity, type LegalPageType, type ListEnvelope, type Logger, type LoginBody, type LogoutBody, type OfficeLocation, type PlacesListQuery, type PublicBlogAdjacentPosts, type PublicBlogAuthor, type PublicBlogPost, type PublicBlogPostSummary, type PublicBlogTag, type PublicBoard, type PublicBoardAnalytics, type PublicBoardFeatures, type PublicBoardTheme, type PublicCompany, type PublicJob, type PublicJobCard, type PublicLegalPage, type PublicPlace, REFRESH_TOKEN_KEY, type RedirectResolution, type RefreshBody, type RegisterBody, type RelatedSearch, type RemoteOption, type RemotePermit, type RemoteTimezone, type ResetPasswordBody, SDK_VERSION, type SaveJobBody, type SavedJob, type SavedJobsListQuery, type SearchEnvelope, type Seniority, type StorageMode, type StorefrontPagination, type TaxonomyGeo, type TaxonomyResolution, type VerifyEmailBody, createBoardClient, isBoardApiError, isBoardPasswordRequired, isConflict, isForbidden, isNotFound, isRateLimited, isUnauthorized, isValidationError };
2936
+ export { ACCESS_TOKEN_KEY, type Awaitable, BOARD_ACCESS_GRANT_KEY, type BlogAuthorEmbed, type BlogPostsListQuery, type BlogSearchBody, type BlogSimilarQuery, type BlogTagEmbed, type BoardAccessGrant, BoardApiError, type BoardAuthSession, BoardClient, type BoardRequest, type BoardSdk, type BoardSeo, type BoardUser, type CompaniesListQuery, type CompaniesSearchBody, type CompanyJobsListQuery, type CompanyListEnvelope, type CompanyMarket, type CompanyMarketRef, type CompanyMarketsListQuery, type CompanySimilarQuery, type CreateBoardClientOptions, type CustomStorage, type EducationRequirement, type EmbedJobsQuery, type EmploymentType, type FetchOptions, type ForgotPasswordBody, 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, type JobCardListEnvelope, type JobCardSearchEnvelope, type JobCompany, type JobsListQuery, type JobsSearchBody, type LegalEntity, type LegalPageType, type ListEnvelope, type Logger, type LoginBody, type LogoutBody, type OfficeLocation, type PlacesListQuery, type PublicBlogAdjacentPosts, type PublicBlogAuthor, type PublicBlogPost, type PublicBlogPostSummary, type PublicBlogTag, type PublicBoard, type PublicBoardAnalytics, type PublicBoardFeatures, type PublicBoardTheme, type PublicCompany, type PublicCompanyDetail, type PublicJob, type PublicJobCard, type PublicLegalPage, type PublicPlace, REFRESH_TOKEN_KEY, type RedirectResolution, type RefreshBody, type RegisterBody, type RelatedSearch, type RemoteOption, type RemotePermit, type RemoteTimezone, type ResetPasswordBody, SDK_VERSION, type SaveJobBody, type SavedJob, type SavedJobsListQuery, type SearchEnvelope, type Seniority, type StorageMode, type StorefrontPagination, type TaxonomyGeo, type TaxonomyResolution, type VerifyEmailBody, createBoardClient, isBoardApiError, isBoardPasswordRequired, isConflict, isForbidden, isNotFound, isRateLimited, isUnauthorized, isValidationError };
package/dist/index.d.ts CHANGED
@@ -345,6 +345,12 @@ interface components {
345
345
  /** @description Number of companies on the board in this market. */
346
346
  companyCount: number;
347
347
  };
348
+ CompanyMarketRef: {
349
+ /** @description Display name of the market. */
350
+ name: string;
351
+ /** @description Source slug for the market. Use it as the `:market` segment of the market-scoped company browse. */
352
+ slug: string;
353
+ };
348
354
  CompanyPublic: {
349
355
  /** @description Unique identifier for the object. Use this value as the `{id}` path parameter for the company endpoints (e.g. `GET /v1/companies/{id}`). */
350
356
  id: string;
@@ -369,6 +375,10 @@ interface components {
369
375
  publishedJobCount: number;
370
376
  links: components["schemas"]["PublicCompanyLinks"];
371
377
  };
378
+ CompanyPublicDetail: components["schemas"]["CompanyPublic"] & {
379
+ /** @description Markets (sectors) this company operates in, each with its source slug. Empty when the company has no markets. */
380
+ markets: components["schemas"]["CompanyMarketRef"][];
381
+ };
372
382
  CompanySummary: {
373
383
  /** @description Unique identifier for the object. Use this value as the `{id}` path parameter for the company endpoints (e.g. `GET /v1/companies/{id}`). */
374
384
  id: string;
@@ -1029,8 +1039,8 @@ interface components {
1029
1039
  PublicBlogAdjacentPosts: {
1030
1040
  /** @enum {string} */
1031
1041
  object: "blog_adjacent_posts";
1032
- previous: components["schemas"]["PublicBlogPostSummary"] & unknown;
1033
- next: components["schemas"]["PublicBlogPostSummary"] & unknown;
1042
+ previous: components["schemas"]["PublicBlogPostSummary"] | null;
1043
+ next: components["schemas"]["PublicBlogPostSummary"] | null;
1034
1044
  };
1035
1045
  PublicBlogAuthor: components["schemas"]["PublicBlogAuthorEmbed"] & {
1036
1046
  /** @enum {string} */
@@ -1145,6 +1155,8 @@ interface components {
1145
1155
  PublicCompaniesSearchBody: {
1146
1156
  /** @description Free-text search query matched against company name. Up to 200 characters. */
1147
1157
  query?: string;
1158
+ /** @description Scope the results to companies in a single market (sector), by the market slug. Resolves a board-language or English slug; an unknown slug returns 404. Use `GET /boards/:identifier/companies/markets/:market` to resolve a slug to its canonical form first. */
1159
+ marketSlug?: string;
1148
1160
  /** @description An opaque pagination cursor returned in the `nextCursor` field of a previous response. Pass it back to fetch the next page of results. */
1149
1161
  cursor?: string | null;
1150
1162
  /** @description A limit on the number of objects to be returned. Limit can range between 1 and 100. */
@@ -1300,7 +1312,13 @@ interface components {
1300
1312
  frequency: string;
1301
1313
  isActive: boolean;
1302
1314
  filters: {
1303
- [key: string]: unknown;
1315
+ jobFunctions?: string[];
1316
+ seniorityLevels?: string[];
1317
+ remoteOptions?: string[];
1318
+ placeIds?: string[];
1319
+ salaryMin?: number | null;
1320
+ salaryMax?: number | null;
1321
+ salaryCurrency?: string | null;
1304
1322
  };
1305
1323
  manageToken: string;
1306
1324
  }[];
@@ -1443,7 +1461,7 @@ interface components {
1443
1461
  /** @enum {string} */
1444
1462
  object: "taxonomy_resolution";
1445
1463
  /** @enum {string} */
1446
- type: "category" | "skill" | "place";
1464
+ type: "category" | "skill" | "place" | "market";
1447
1465
  /** @description Immutable English source slug — the semantic-search key. */
1448
1466
  sourceSlug: string;
1449
1467
  /** @description Board-language URL slug (the `<link rel=canonical>` target). */
@@ -1928,9 +1946,12 @@ type Seniority = NonNullable<PublicJob['seniority']>;
1928
1946
  type EducationRequirement = PublicJob['educationRequirements'][number];
1929
1947
  type RemotePermit = PublicJob['remotePermits'][number];
1930
1948
  type RemoteTimezone = PublicJob['remoteTimezones'][number];
1931
- /** Derived category/skill suggestion on the jobs browse list (ADR-0037 §8). */
1949
+ /**
1950
+ * Derived suggestion on a browse list (ADR-0037 §8): jobs surface `category`
1951
+ * and `skill` terms; the companies list surfaces `market` terms.
1952
+ */
1932
1953
  interface RelatedSearch {
1933
- type: 'category' | 'skill';
1954
+ type: 'category' | 'skill' | 'market';
1934
1955
  slug: string;
1935
1956
  term: string;
1936
1957
  count: number;
@@ -2088,7 +2109,7 @@ declare function isConflict(e: unknown): e is BoardApiError;
2088
2109
  * constant because the package is platform-neutral and cannot read
2089
2110
  * package.json at runtime.
2090
2111
  */
2091
- declare const SDK_VERSION = "1.6.0";
2112
+ declare const SDK_VERSION = "1.8.0";
2092
2113
 
2093
2114
  type BoardUser = Schemas['BoardUser'];
2094
2115
  type BoardAuthSession = Schemas['BoardAuthSession'];
@@ -2183,8 +2204,18 @@ type BlogSimilarQuery = {
2183
2204
  type BlogSearchBody = Schemas['PublicBlogSearchBody'];
2184
2205
 
2185
2206
  type PublicCompany = Schemas['CompanyPublic'];
2207
+ /** A market (sector) a company operates in — name + its source slug. */
2208
+ type CompanyMarketRef = Schemas['CompanyMarketRef'];
2209
+ /** The company DETAIL shape — `PublicCompany` plus `markets` (detail-only). */
2210
+ type PublicCompanyDetail = Schemas['CompanyPublicDetail'];
2211
+ /** The companies browse list — `PublicCompany`s + `market` `relatedSearches`. */
2212
+ interface CompanyListEnvelope extends ListEnvelope<PublicCompany> {
2213
+ relatedSearches?: RelatedSearch[];
2214
+ }
2186
2215
  type CompaniesListQuery = {
2187
2216
  cursor?: string;
2217
+ /** Scope to a single market (sector) by slug. Unknown slugs 404. */
2218
+ marketSlug?: string;
2188
2219
  /** 1–100. */
2189
2220
  limit?: number;
2190
2221
  };
@@ -2534,18 +2565,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
2534
2565
  }>>;
2535
2566
  };
2536
2567
  companies: {
2537
- list(query?: CompaniesListQuery, options?: FetchOptions): Promise<ListEnvelope<{
2538
- id: string;
2539
- object: "public_company";
2540
- name: string;
2541
- slug: string;
2542
- website: string | null;
2543
- logoUrl: string | null;
2544
- description: string | null;
2545
- jobCount: number;
2546
- publishedJobCount: number;
2547
- links: components["schemas"]["PublicCompanyLinks"];
2548
- }>>;
2568
+ list(query?: CompaniesListQuery, options?: FetchOptions): Promise<CompanyListEnvelope>;
2549
2569
  retrieve(companySlug: string, query?: Record<string, never>, options?: FetchOptions): Promise<{
2550
2570
  id: string;
2551
2571
  object: "public_company";
@@ -2557,6 +2577,8 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
2557
2577
  jobCount: number;
2558
2578
  publishedJobCount: number;
2559
2579
  links: components["schemas"]["PublicCompanyLinks"];
2580
+ } & {
2581
+ markets: components["schemas"]["CompanyMarketRef"][];
2560
2582
  }>;
2561
2583
  search(body: CompaniesSearchBody, query?: Record<string, never>, options?: FetchOptions): Promise<SearchEnvelope<{
2562
2584
  id: string;
@@ -2583,12 +2605,22 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
2583
2605
  publishedJobCount: number;
2584
2606
  links: components["schemas"]["PublicCompanyLinks"];
2585
2607
  }>>;
2586
- markets(query?: CompanyMarketsListQuery, options?: FetchOptions): Promise<ListEnvelope<{
2608
+ markets: ((query?: CompanyMarketsListQuery, options?: FetchOptions) => Promise<ListEnvelope<{
2587
2609
  object: "company_market";
2588
2610
  slug: string;
2589
2611
  name: string;
2590
2612
  companyCount: number;
2591
- }>>;
2613
+ }>>) & {
2614
+ resolve(market: string, options?: FetchOptions): Promise<{
2615
+ object: "taxonomy_resolution";
2616
+ type: "category" | "skill" | "place" | "market";
2617
+ sourceSlug: string;
2618
+ canonicalSlug: string;
2619
+ displayName: string;
2620
+ redirectTo: string | null;
2621
+ geo: components["schemas"]["TaxonomyGeo"];
2622
+ }>;
2623
+ };
2592
2624
  };
2593
2625
  blog: {
2594
2626
  posts: {
@@ -2634,8 +2666,8 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
2634
2666
  }>;
2635
2667
  adjacent(postSlug: string, options?: FetchOptions): Promise<{
2636
2668
  object: "blog_adjacent_posts";
2637
- previous: components["schemas"]["PublicBlogPostSummary"] & unknown;
2638
- next: components["schemas"]["PublicBlogPostSummary"] & unknown;
2669
+ previous: components["schemas"]["PublicBlogPostSummary"] | null;
2670
+ next: components["schemas"]["PublicBlogPostSummary"] | null;
2639
2671
  }>;
2640
2672
  similar(postSlug: string, query?: BlogSimilarQuery, options?: FetchOptions): Promise<ListEnvelope<{
2641
2673
  id: string;
@@ -2791,7 +2823,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
2791
2823
  categories: {
2792
2824
  resolve(slug: string, options?: FetchOptions): Promise<{
2793
2825
  object: "taxonomy_resolution";
2794
- type: "category" | "skill" | "place";
2826
+ type: "category" | "skill" | "place" | "market";
2795
2827
  sourceSlug: string;
2796
2828
  canonicalSlug: string;
2797
2829
  displayName: string;
@@ -2802,7 +2834,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
2802
2834
  skills: {
2803
2835
  resolve(slug: string, options?: FetchOptions): Promise<{
2804
2836
  object: "taxonomy_resolution";
2805
- type: "category" | "skill" | "place";
2837
+ type: "category" | "skill" | "place" | "market";
2806
2838
  sourceSlug: string;
2807
2839
  canonicalSlug: string;
2808
2840
  displayName: string;
@@ -2824,7 +2856,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
2824
2856
  }>>;
2825
2857
  resolve(slug: string, options?: FetchOptions): Promise<{
2826
2858
  object: "taxonomy_resolution";
2827
- type: "category" | "skill" | "place";
2859
+ type: "category" | "skill" | "place" | "market";
2828
2860
  sourceSlug: string;
2829
2861
  canonicalSlug: string;
2830
2862
  displayName: string;
@@ -2870,7 +2902,13 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
2870
2902
  frequency: string;
2871
2903
  isActive: boolean;
2872
2904
  filters: {
2873
- [key: string]: unknown;
2905
+ jobFunctions?: string[];
2906
+ seniorityLevels?: string[];
2907
+ remoteOptions?: string[];
2908
+ placeIds?: string[];
2909
+ salaryMin?: number | null;
2910
+ salaryMax?: number | null;
2911
+ salaryCurrency?: string | null;
2874
2912
  };
2875
2913
  manageToken: string;
2876
2914
  }[];
@@ -2895,4 +2933,4 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
2895
2933
  };
2896
2934
  type BoardSdk = ReturnType<typeof createBoardClient>;
2897
2935
 
2898
- export { ACCESS_TOKEN_KEY, type Awaitable, BOARD_ACCESS_GRANT_KEY, type BlogAuthorEmbed, type BlogPostsListQuery, type BlogSearchBody, type BlogSimilarQuery, type BlogTagEmbed, type BoardAccessGrant, BoardApiError, type BoardAuthSession, BoardClient, type BoardRequest, type BoardSdk, type BoardSeo, type BoardUser, type CompaniesListQuery, type CompaniesSearchBody, type CompanyJobsListQuery, type CompanyMarket, type CompanyMarketsListQuery, type CompanySimilarQuery, type CreateBoardClientOptions, type CustomStorage, type EducationRequirement, type EmbedJobsQuery, type EmploymentType, type FetchOptions, type ForgotPasswordBody, 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, type JobCardListEnvelope, type JobCardSearchEnvelope, type JobCompany, type JobsListQuery, type JobsSearchBody, type LegalEntity, type LegalPageType, type ListEnvelope, type Logger, type LoginBody, type LogoutBody, type OfficeLocation, type PlacesListQuery, type PublicBlogAdjacentPosts, type PublicBlogAuthor, type PublicBlogPost, type PublicBlogPostSummary, type PublicBlogTag, type PublicBoard, type PublicBoardAnalytics, type PublicBoardFeatures, type PublicBoardTheme, type PublicCompany, type PublicJob, type PublicJobCard, type PublicLegalPage, type PublicPlace, REFRESH_TOKEN_KEY, type RedirectResolution, type RefreshBody, type RegisterBody, type RelatedSearch, type RemoteOption, type RemotePermit, type RemoteTimezone, type ResetPasswordBody, SDK_VERSION, type SaveJobBody, type SavedJob, type SavedJobsListQuery, type SearchEnvelope, type Seniority, type StorageMode, type StorefrontPagination, type TaxonomyGeo, type TaxonomyResolution, type VerifyEmailBody, createBoardClient, isBoardApiError, isBoardPasswordRequired, isConflict, isForbidden, isNotFound, isRateLimited, isUnauthorized, isValidationError };
2936
+ export { ACCESS_TOKEN_KEY, type Awaitable, BOARD_ACCESS_GRANT_KEY, type BlogAuthorEmbed, type BlogPostsListQuery, type BlogSearchBody, type BlogSimilarQuery, type BlogTagEmbed, type BoardAccessGrant, BoardApiError, type BoardAuthSession, BoardClient, type BoardRequest, type BoardSdk, type BoardSeo, type BoardUser, type CompaniesListQuery, type CompaniesSearchBody, type CompanyJobsListQuery, type CompanyListEnvelope, type CompanyMarket, type CompanyMarketRef, type CompanyMarketsListQuery, type CompanySimilarQuery, type CreateBoardClientOptions, type CustomStorage, type EducationRequirement, type EmbedJobsQuery, type EmploymentType, type FetchOptions, type ForgotPasswordBody, 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, type JobCardListEnvelope, type JobCardSearchEnvelope, type JobCompany, type JobsListQuery, type JobsSearchBody, type LegalEntity, type LegalPageType, type ListEnvelope, type Logger, type LoginBody, type LogoutBody, type OfficeLocation, type PlacesListQuery, type PublicBlogAdjacentPosts, type PublicBlogAuthor, type PublicBlogPost, type PublicBlogPostSummary, type PublicBlogTag, type PublicBoard, type PublicBoardAnalytics, type PublicBoardFeatures, type PublicBoardTheme, type PublicCompany, type PublicCompanyDetail, type PublicJob, type PublicJobCard, type PublicLegalPage, type PublicPlace, REFRESH_TOKEN_KEY, type RedirectResolution, type RefreshBody, type RegisterBody, type RelatedSearch, type RemoteOption, type RemotePermit, type RemoteTimezone, type ResetPasswordBody, SDK_VERSION, type SaveJobBody, type SavedJob, type SavedJobsListQuery, type SearchEnvelope, type Seniority, type StorageMode, type StorefrontPagination, type TaxonomyGeo, type TaxonomyResolution, type VerifyEmailBody, createBoardClient, isBoardApiError, isBoardPasswordRequired, isConflict, isForbidden, isNotFound, isRateLimited, isUnauthorized, isValidationError };
package/dist/index.js CHANGED
@@ -149,7 +149,7 @@ async function clearSession(storage) {
149
149
  }
150
150
 
151
151
  // src/version.ts
152
- var SDK_VERSION = "1.6.0";
152
+ var SDK_VERSION = "1.8.0";
153
153
 
154
154
  // src/client.ts
155
155
  function isRawBody(body) {
@@ -480,9 +480,23 @@ function blogNamespace(client) {
480
480
 
481
481
  // src/namespaces/companies.ts
482
482
  function companiesNamespace(client) {
483
+ const markets = Object.assign(
484
+ (query, options) => client.fetch("/companies/markets", {
485
+ ...options,
486
+ query
487
+ }),
488
+ {
489
+ resolve(market, options) {
490
+ return client.fetch(
491
+ `/companies/markets/${encodeURIComponent(market)}`,
492
+ options
493
+ );
494
+ }
495
+ }
496
+ );
483
497
  return {
484
498
  /**
485
- * List companies on the board.
499
+ * List companies on the board. Pass `marketSlug` to scope to one market.
486
500
  *
487
501
  * @example
488
502
  * const { data } = await board.companies.list({ limit: 20 });
@@ -494,7 +508,7 @@ function companiesNamespace(client) {
494
508
  });
495
509
  },
496
510
  /**
497
- * Retrieve one company by slug.
511
+ * Retrieve one company by slug. The detail carries the company's `markets`.
498
512
  *
499
513
  * @example
500
514
  * const company = await board.companies.retrieve('acme');
@@ -545,19 +559,7 @@ function companiesNamespace(client) {
545
559
  { ...options, query }
546
560
  );
547
561
  },
548
- /**
549
- * List the board's company markets (sectors), ranked by company count — the
550
- * data behind the hosted companies index's market filter. A top-N preview.
551
- *
552
- * @example
553
- * const { data } = await board.companies.markets({ search: 'robotics' });
554
- */
555
- markets(query, options) {
556
- return client.fetch("/companies/markets", {
557
- ...options,
558
- query
559
- });
560
- }
562
+ markets
561
563
  };
562
564
  }
563
565
 
package/dist/index.mjs CHANGED
@@ -109,7 +109,7 @@ async function clearSession(storage) {
109
109
  }
110
110
 
111
111
  // src/version.ts
112
- var SDK_VERSION = "1.6.0";
112
+ var SDK_VERSION = "1.8.0";
113
113
 
114
114
  // src/client.ts
115
115
  function isRawBody(body) {
@@ -440,9 +440,23 @@ function blogNamespace(client) {
440
440
 
441
441
  // src/namespaces/companies.ts
442
442
  function companiesNamespace(client) {
443
+ const markets = Object.assign(
444
+ (query, options) => client.fetch("/companies/markets", {
445
+ ...options,
446
+ query
447
+ }),
448
+ {
449
+ resolve(market, options) {
450
+ return client.fetch(
451
+ `/companies/markets/${encodeURIComponent(market)}`,
452
+ options
453
+ );
454
+ }
455
+ }
456
+ );
443
457
  return {
444
458
  /**
445
- * List companies on the board.
459
+ * List companies on the board. Pass `marketSlug` to scope to one market.
446
460
  *
447
461
  * @example
448
462
  * const { data } = await board.companies.list({ limit: 20 });
@@ -454,7 +468,7 @@ function companiesNamespace(client) {
454
468
  });
455
469
  },
456
470
  /**
457
- * Retrieve one company by slug.
471
+ * Retrieve one company by slug. The detail carries the company's `markets`.
458
472
  *
459
473
  * @example
460
474
  * const company = await board.companies.retrieve('acme');
@@ -505,19 +519,7 @@ function companiesNamespace(client) {
505
519
  { ...options, query }
506
520
  );
507
521
  },
508
- /**
509
- * List the board's company markets (sectors), ranked by company count — the
510
- * data behind the hosted companies index's market filter. A top-N preview.
511
- *
512
- * @example
513
- * const { data } = await board.companies.markets({ search: 'robotics' });
514
- */
515
- markets(query, options) {
516
- return client.fetch("/companies/markets", {
517
- ...options,
518
- query
519
- });
520
- }
522
+ markets
521
523
  };
522
524
  }
523
525
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cavuno/board",
3
- "version": "1.6.0",
3
+ "version": "1.8.0",
4
4
  "description": "Typed isomorphic client for the Cavuno Board API",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.6.0",
2
+ "version": "1.8.0",
3
3
  "skills": [
4
4
  {
5
5
  "name": "cavuno-board-auth",