@cavuno/board 1.10.0 → 1.11.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
@@ -968,6 +968,34 @@ interface components {
968
968
  boardOverallAvgMax: number | null;
969
969
  currency: string;
970
970
  };
971
+ LocationSkillsIndex: {
972
+ /** @enum {string} */
973
+ object: "location_skills_index";
974
+ sourceSlug: string;
975
+ canonicalSlug: string;
976
+ placeName: string;
977
+ skills: {
978
+ slug: string;
979
+ name: string;
980
+ avgSalaryMin: number;
981
+ avgSalaryMax: number;
982
+ jobCount: number;
983
+ }[];
984
+ };
985
+ LocationTitlesIndex: {
986
+ /** @enum {string} */
987
+ object: "location_titles_index";
988
+ sourceSlug: string;
989
+ canonicalSlug: string;
990
+ placeName: string;
991
+ titles: {
992
+ slug: string;
993
+ name: string;
994
+ avgSalaryMin: number;
995
+ avgSalaryMax: number;
996
+ jobCount: number;
997
+ }[];
998
+ };
971
999
  MediaGet: components["schemas"]["MediaUpload"] & {
972
1000
  /** @description Time at which the file was uploaded. ISO 8601 datetime. */
973
1001
  uploadedAt: string;
@@ -1781,6 +1809,82 @@ interface components {
1781
1809
  /** @description Stripe billing-portal configuration ID used for self-serve plan management. Pass `null` to clear. */
1782
1810
  jobAccessStripePortalConfigId?: string | unknown | unknown;
1783
1811
  };
1812
+ SkillLocationSalary: {
1813
+ /** @enum {string} */
1814
+ object: "skill_location_salary";
1815
+ skillSourceSlug: string;
1816
+ skillCanonicalSlug: string;
1817
+ locationSourceSlug: string;
1818
+ locationCanonicalSlug: string;
1819
+ skillName: string;
1820
+ placeName: string;
1821
+ countryCode: string;
1822
+ adminLevel: string;
1823
+ overallSalary: {
1824
+ avgMin: number;
1825
+ avgMax: number;
1826
+ p25Min: number | null;
1827
+ p75Max: number | null;
1828
+ jobCount: number;
1829
+ } | null;
1830
+ bySeniority: {
1831
+ seniority: string;
1832
+ avgSalaryMin: number;
1833
+ avgSalaryMax: number;
1834
+ jobCount: number;
1835
+ }[];
1836
+ childLocations: {
1837
+ placeSlug: string;
1838
+ placeName: string;
1839
+ avgSalaryMin: number;
1840
+ avgSalaryMax: number;
1841
+ jobCount: number;
1842
+ }[];
1843
+ childLocationsByRegion: {
1844
+ regionName: string;
1845
+ regionSlug: string;
1846
+ cities: {
1847
+ placeSlug: string;
1848
+ placeName: string;
1849
+ avgSalaryMin: number;
1850
+ avgSalaryMax: number;
1851
+ jobCount: number;
1852
+ }[];
1853
+ }[];
1854
+ otherLocations: {
1855
+ placeSlug: string;
1856
+ placeName: string;
1857
+ avgSalaryMin: number;
1858
+ avgSalaryMax: number;
1859
+ jobCount: number;
1860
+ }[];
1861
+ topSkills: {
1862
+ avgSalaryMin: number;
1863
+ avgSalaryMax: number;
1864
+ jobCount: number;
1865
+ skillSlug: string;
1866
+ skillName: string;
1867
+ }[];
1868
+ topTitles: {
1869
+ avgSalaryMin: number;
1870
+ avgSalaryMax: number;
1871
+ jobCount: number;
1872
+ categorySlug: string;
1873
+ categoryName: string;
1874
+ }[];
1875
+ boardSkillAvgMin: number | null;
1876
+ boardSkillAvgMax: number | null;
1877
+ currency: string;
1878
+ };
1879
+ SkillLocationsIndex: {
1880
+ /** @enum {string} */
1881
+ object: "skill_locations_index";
1882
+ sourceSlug: string;
1883
+ canonicalSlug: string;
1884
+ skillName: string;
1885
+ currency: string;
1886
+ locations: components["schemas"]["SalaryLocationIndexItem"][];
1887
+ };
1784
1888
  SkillSalaryDetail: {
1785
1889
  /** @enum {string} */
1786
1890
  object: "skill_salary_detail";
@@ -1855,6 +1959,82 @@ interface components {
1855
1959
  locality: string | null;
1856
1960
  placeType: string | null;
1857
1961
  } | null;
1962
+ TitleLocationSalary: {
1963
+ /** @enum {string} */
1964
+ object: "title_location_salary";
1965
+ categorySourceSlug: string;
1966
+ categoryCanonicalSlug: string;
1967
+ locationSourceSlug: string;
1968
+ locationCanonicalSlug: string;
1969
+ categoryName: string;
1970
+ placeName: string;
1971
+ countryCode: string;
1972
+ adminLevel: string;
1973
+ overallSalary: {
1974
+ avgMin: number;
1975
+ avgMax: number;
1976
+ p25Min: number | null;
1977
+ p75Max: number | null;
1978
+ jobCount: number;
1979
+ } | null;
1980
+ bySeniority: {
1981
+ seniority: string;
1982
+ avgSalaryMin: number;
1983
+ avgSalaryMax: number;
1984
+ jobCount: number;
1985
+ }[];
1986
+ childLocations: {
1987
+ placeSlug: string;
1988
+ placeName: string;
1989
+ avgSalaryMin: number;
1990
+ avgSalaryMax: number;
1991
+ jobCount: number;
1992
+ }[];
1993
+ childLocationsByRegion: {
1994
+ regionName: string;
1995
+ regionSlug: string;
1996
+ cities: {
1997
+ placeSlug: string;
1998
+ placeName: string;
1999
+ avgSalaryMin: number;
2000
+ avgSalaryMax: number;
2001
+ jobCount: number;
2002
+ }[];
2003
+ }[];
2004
+ otherLocations: {
2005
+ placeSlug: string;
2006
+ placeName: string;
2007
+ avgSalaryMin: number;
2008
+ avgSalaryMax: number;
2009
+ jobCount: number;
2010
+ }[];
2011
+ topSkills: {
2012
+ avgSalaryMin: number;
2013
+ avgSalaryMax: number;
2014
+ jobCount: number;
2015
+ skillSlug: string;
2016
+ skillName: string;
2017
+ }[];
2018
+ topTitles: {
2019
+ avgSalaryMin: number;
2020
+ avgSalaryMax: number;
2021
+ jobCount: number;
2022
+ categorySlug: string;
2023
+ categoryName: string;
2024
+ }[];
2025
+ boardCategoryAvgMin: number | null;
2026
+ boardCategoryAvgMax: number | null;
2027
+ currency: string;
2028
+ };
2029
+ TitleLocationsIndex: {
2030
+ /** @enum {string} */
2031
+ object: "title_locations_index";
2032
+ sourceSlug: string;
2033
+ canonicalSlug: string;
2034
+ categoryName: string;
2035
+ currency: string;
2036
+ locations: components["schemas"]["SalaryLocationIndexItem"][];
2037
+ };
1858
2038
  TitleSalaryDetail: {
1859
2039
  /** @enum {string} */
1860
2040
  object: "title_salary_detail";
@@ -2368,7 +2548,7 @@ declare function isConflict(e: unknown): e is BoardApiError;
2368
2548
  * constant because the package is platform-neutral and cannot read
2369
2549
  * package.json at runtime.
2370
2550
  */
2371
- declare const SDK_VERSION = "1.10.0";
2551
+ declare const SDK_VERSION = "1.11.0";
2372
2552
 
2373
2553
  type BoardUser = Schemas['BoardUser'];
2374
2554
  type BoardAuthSession = Schemas['BoardAuthSession'];
@@ -2598,6 +2778,18 @@ type SalarySkill = Schemas['SalarySkillIndexItem'];
2598
2778
  * its `parentSlug` (the consumer rebuilds the country → region → city browse).
2599
2779
  */
2600
2780
  type SalaryLocation = Schemas['SalaryLocationIndexItem'];
2781
+ /** A title's salary across locations (flattened `parentSlug` tree). */
2782
+ type TitleLocationsIndex = Schemas['TitleLocationsIndex'];
2783
+ /** A skill's salary across locations. */
2784
+ type SkillLocationsIndex = Schemas['SkillLocationsIndex'];
2785
+ /** A place's salary by title (suffix read-model). */
2786
+ type LocationTitlesIndex = Schemas['LocationTitlesIndex'];
2787
+ /** A place's salary by skill. */
2788
+ type LocationSkillsIndex = Schemas['LocationSkillsIndex'];
2789
+ /** A title's salary in one place (4 source + canonical slugs). */
2790
+ type TitleLocationSalary = Schemas['TitleLocationSalary'];
2791
+ /** A skill's salary in one place. */
2792
+ type SkillLocationSalary = Schemas['SkillLocationSalary'];
2601
2793
  /**
2602
2794
  * Board-language overlay for a salary read. `en` (the default) is the identity
2603
2795
  * fast-path; a non-`en` locale overlays board-language names + canonical slugs.
@@ -3305,6 +3497,80 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
3305
3497
  boardP75Max: number | null;
3306
3498
  currency: string;
3307
3499
  }>;
3500
+ locations(categorySlug: string, query?: SalaryDetailQuery, options?: FetchOptions): Promise<{
3501
+ object: "title_locations_index";
3502
+ sourceSlug: string;
3503
+ canonicalSlug: string;
3504
+ categoryName: string;
3505
+ currency: string;
3506
+ locations: components["schemas"]["SalaryLocationIndexItem"][];
3507
+ }>;
3508
+ location(categorySlug: string, locationSlug: string, query?: SalaryDetailQuery, options?: FetchOptions): Promise<{
3509
+ object: "title_location_salary";
3510
+ categorySourceSlug: string;
3511
+ categoryCanonicalSlug: string;
3512
+ locationSourceSlug: string;
3513
+ locationCanonicalSlug: string;
3514
+ categoryName: string;
3515
+ placeName: string;
3516
+ countryCode: string;
3517
+ adminLevel: string;
3518
+ overallSalary: {
3519
+ avgMin: number;
3520
+ avgMax: number;
3521
+ p25Min: number | null;
3522
+ p75Max: number | null;
3523
+ jobCount: number;
3524
+ } | null;
3525
+ bySeniority: {
3526
+ seniority: string;
3527
+ avgSalaryMin: number;
3528
+ avgSalaryMax: number;
3529
+ jobCount: number;
3530
+ }[];
3531
+ childLocations: {
3532
+ placeSlug: string;
3533
+ placeName: string;
3534
+ avgSalaryMin: number;
3535
+ avgSalaryMax: number;
3536
+ jobCount: number;
3537
+ }[];
3538
+ childLocationsByRegion: {
3539
+ regionName: string;
3540
+ regionSlug: string;
3541
+ cities: {
3542
+ placeSlug: string;
3543
+ placeName: string;
3544
+ avgSalaryMin: number;
3545
+ avgSalaryMax: number;
3546
+ jobCount: number;
3547
+ }[];
3548
+ }[];
3549
+ otherLocations: {
3550
+ placeSlug: string;
3551
+ placeName: string;
3552
+ avgSalaryMin: number;
3553
+ avgSalaryMax: number;
3554
+ jobCount: number;
3555
+ }[];
3556
+ topSkills: {
3557
+ avgSalaryMin: number;
3558
+ avgSalaryMax: number;
3559
+ jobCount: number;
3560
+ skillSlug: string;
3561
+ skillName: string;
3562
+ }[];
3563
+ topTitles: {
3564
+ avgSalaryMin: number;
3565
+ avgSalaryMax: number;
3566
+ jobCount: number;
3567
+ categorySlug: string;
3568
+ categoryName: string;
3569
+ }[];
3570
+ boardCategoryAvgMin: number | null;
3571
+ boardCategoryAvgMax: number | null;
3572
+ currency: string;
3573
+ }>;
3308
3574
  };
3309
3575
  skills: {
3310
3576
  list(query?: SalaryDetailQuery, options?: FetchOptions): Promise<ListEnvelope<{
@@ -3378,6 +3644,80 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
3378
3644
  boardMedianMax: number | null;
3379
3645
  currency: string;
3380
3646
  }>;
3647
+ locations(skillSlug: string, query?: SalaryDetailQuery, options?: FetchOptions): Promise<{
3648
+ object: "skill_locations_index";
3649
+ sourceSlug: string;
3650
+ canonicalSlug: string;
3651
+ skillName: string;
3652
+ currency: string;
3653
+ locations: components["schemas"]["SalaryLocationIndexItem"][];
3654
+ }>;
3655
+ location(skillSlug: string, locationSlug: string, query?: SalaryDetailQuery, options?: FetchOptions): Promise<{
3656
+ object: "skill_location_salary";
3657
+ skillSourceSlug: string;
3658
+ skillCanonicalSlug: string;
3659
+ locationSourceSlug: string;
3660
+ locationCanonicalSlug: string;
3661
+ skillName: string;
3662
+ placeName: string;
3663
+ countryCode: string;
3664
+ adminLevel: string;
3665
+ overallSalary: {
3666
+ avgMin: number;
3667
+ avgMax: number;
3668
+ p25Min: number | null;
3669
+ p75Max: number | null;
3670
+ jobCount: number;
3671
+ } | null;
3672
+ bySeniority: {
3673
+ seniority: string;
3674
+ avgSalaryMin: number;
3675
+ avgSalaryMax: number;
3676
+ jobCount: number;
3677
+ }[];
3678
+ childLocations: {
3679
+ placeSlug: string;
3680
+ placeName: string;
3681
+ avgSalaryMin: number;
3682
+ avgSalaryMax: number;
3683
+ jobCount: number;
3684
+ }[];
3685
+ childLocationsByRegion: {
3686
+ regionName: string;
3687
+ regionSlug: string;
3688
+ cities: {
3689
+ placeSlug: string;
3690
+ placeName: string;
3691
+ avgSalaryMin: number;
3692
+ avgSalaryMax: number;
3693
+ jobCount: number;
3694
+ }[];
3695
+ }[];
3696
+ otherLocations: {
3697
+ placeSlug: string;
3698
+ placeName: string;
3699
+ avgSalaryMin: number;
3700
+ avgSalaryMax: number;
3701
+ jobCount: number;
3702
+ }[];
3703
+ topSkills: {
3704
+ avgSalaryMin: number;
3705
+ avgSalaryMax: number;
3706
+ jobCount: number;
3707
+ skillSlug: string;
3708
+ skillName: string;
3709
+ }[];
3710
+ topTitles: {
3711
+ avgSalaryMin: number;
3712
+ avgSalaryMax: number;
3713
+ jobCount: number;
3714
+ categorySlug: string;
3715
+ categoryName: string;
3716
+ }[];
3717
+ boardSkillAvgMin: number | null;
3718
+ boardSkillAvgMax: number | null;
3719
+ currency: string;
3720
+ }>;
3381
3721
  };
3382
3722
  locations: {
3383
3723
  list(query?: SalaryDetailQuery, options?: FetchOptions): Promise<ListEnvelope<{
@@ -3467,9 +3807,35 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
3467
3807
  boardOverallAvgMax: number | null;
3468
3808
  currency: string;
3469
3809
  }>;
3810
+ titles(locationSlug: string, query?: SalaryDetailQuery, options?: FetchOptions): Promise<{
3811
+ object: "location_titles_index";
3812
+ sourceSlug: string;
3813
+ canonicalSlug: string;
3814
+ placeName: string;
3815
+ titles: {
3816
+ slug: string;
3817
+ name: string;
3818
+ avgSalaryMin: number;
3819
+ avgSalaryMax: number;
3820
+ jobCount: number;
3821
+ }[];
3822
+ }>;
3823
+ skills(locationSlug: string, query?: SalaryDetailQuery, options?: FetchOptions): Promise<{
3824
+ object: "location_skills_index";
3825
+ sourceSlug: string;
3826
+ canonicalSlug: string;
3827
+ placeName: string;
3828
+ skills: {
3829
+ slug: string;
3830
+ name: string;
3831
+ avgSalaryMin: number;
3832
+ avgSalaryMax: number;
3833
+ jobCount: number;
3834
+ }[];
3835
+ }>;
3470
3836
  };
3471
3837
  };
3472
3838
  };
3473
3839
  type BoardSdk = ReturnType<typeof createBoardClient>;
3474
3840
 
3475
- 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 LocationSalaryDetail, 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 SalaryCompany, type SalaryDetailQuery, type SalaryLocation, type SalarySkill, type SalaryTitle, type SaveJobBody, type SavedJob, type SavedJobsListQuery, type SearchEnvelope, type Seniority, type SkillSalaryDetail, type StorageMode, type StorefrontPagination, type TaxonomyGeo, type TaxonomyResolution, type TitleSalaryDetail, type VerifyEmailBody, createBoardClient, isBoardApiError, isBoardPasswordRequired, isConflict, isForbidden, isNotFound, isRateLimited, isUnauthorized, isValidationError };
3841
+ 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 LocationSalaryDetail, type LocationSkillsIndex, type LocationTitlesIndex, 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 SalaryCompany, type SalaryDetailQuery, type SalaryLocation, type SalarySkill, type SalaryTitle, type SaveJobBody, type SavedJob, type SavedJobsListQuery, type SearchEnvelope, type Seniority, type SkillLocationSalary, type SkillLocationsIndex, type SkillSalaryDetail, type StorageMode, type StorefrontPagination, type TaxonomyGeo, type TaxonomyResolution, type TitleLocationSalary, type TitleLocationsIndex, type TitleSalaryDetail, type VerifyEmailBody, createBoardClient, isBoardApiError, isBoardPasswordRequired, isConflict, isForbidden, isNotFound, isRateLimited, isUnauthorized, isValidationError };
package/dist/index.d.ts CHANGED
@@ -968,6 +968,34 @@ interface components {
968
968
  boardOverallAvgMax: number | null;
969
969
  currency: string;
970
970
  };
971
+ LocationSkillsIndex: {
972
+ /** @enum {string} */
973
+ object: "location_skills_index";
974
+ sourceSlug: string;
975
+ canonicalSlug: string;
976
+ placeName: string;
977
+ skills: {
978
+ slug: string;
979
+ name: string;
980
+ avgSalaryMin: number;
981
+ avgSalaryMax: number;
982
+ jobCount: number;
983
+ }[];
984
+ };
985
+ LocationTitlesIndex: {
986
+ /** @enum {string} */
987
+ object: "location_titles_index";
988
+ sourceSlug: string;
989
+ canonicalSlug: string;
990
+ placeName: string;
991
+ titles: {
992
+ slug: string;
993
+ name: string;
994
+ avgSalaryMin: number;
995
+ avgSalaryMax: number;
996
+ jobCount: number;
997
+ }[];
998
+ };
971
999
  MediaGet: components["schemas"]["MediaUpload"] & {
972
1000
  /** @description Time at which the file was uploaded. ISO 8601 datetime. */
973
1001
  uploadedAt: string;
@@ -1781,6 +1809,82 @@ interface components {
1781
1809
  /** @description Stripe billing-portal configuration ID used for self-serve plan management. Pass `null` to clear. */
1782
1810
  jobAccessStripePortalConfigId?: string | unknown | unknown;
1783
1811
  };
1812
+ SkillLocationSalary: {
1813
+ /** @enum {string} */
1814
+ object: "skill_location_salary";
1815
+ skillSourceSlug: string;
1816
+ skillCanonicalSlug: string;
1817
+ locationSourceSlug: string;
1818
+ locationCanonicalSlug: string;
1819
+ skillName: string;
1820
+ placeName: string;
1821
+ countryCode: string;
1822
+ adminLevel: string;
1823
+ overallSalary: {
1824
+ avgMin: number;
1825
+ avgMax: number;
1826
+ p25Min: number | null;
1827
+ p75Max: number | null;
1828
+ jobCount: number;
1829
+ } | null;
1830
+ bySeniority: {
1831
+ seniority: string;
1832
+ avgSalaryMin: number;
1833
+ avgSalaryMax: number;
1834
+ jobCount: number;
1835
+ }[];
1836
+ childLocations: {
1837
+ placeSlug: string;
1838
+ placeName: string;
1839
+ avgSalaryMin: number;
1840
+ avgSalaryMax: number;
1841
+ jobCount: number;
1842
+ }[];
1843
+ childLocationsByRegion: {
1844
+ regionName: string;
1845
+ regionSlug: string;
1846
+ cities: {
1847
+ placeSlug: string;
1848
+ placeName: string;
1849
+ avgSalaryMin: number;
1850
+ avgSalaryMax: number;
1851
+ jobCount: number;
1852
+ }[];
1853
+ }[];
1854
+ otherLocations: {
1855
+ placeSlug: string;
1856
+ placeName: string;
1857
+ avgSalaryMin: number;
1858
+ avgSalaryMax: number;
1859
+ jobCount: number;
1860
+ }[];
1861
+ topSkills: {
1862
+ avgSalaryMin: number;
1863
+ avgSalaryMax: number;
1864
+ jobCount: number;
1865
+ skillSlug: string;
1866
+ skillName: string;
1867
+ }[];
1868
+ topTitles: {
1869
+ avgSalaryMin: number;
1870
+ avgSalaryMax: number;
1871
+ jobCount: number;
1872
+ categorySlug: string;
1873
+ categoryName: string;
1874
+ }[];
1875
+ boardSkillAvgMin: number | null;
1876
+ boardSkillAvgMax: number | null;
1877
+ currency: string;
1878
+ };
1879
+ SkillLocationsIndex: {
1880
+ /** @enum {string} */
1881
+ object: "skill_locations_index";
1882
+ sourceSlug: string;
1883
+ canonicalSlug: string;
1884
+ skillName: string;
1885
+ currency: string;
1886
+ locations: components["schemas"]["SalaryLocationIndexItem"][];
1887
+ };
1784
1888
  SkillSalaryDetail: {
1785
1889
  /** @enum {string} */
1786
1890
  object: "skill_salary_detail";
@@ -1855,6 +1959,82 @@ interface components {
1855
1959
  locality: string | null;
1856
1960
  placeType: string | null;
1857
1961
  } | null;
1962
+ TitleLocationSalary: {
1963
+ /** @enum {string} */
1964
+ object: "title_location_salary";
1965
+ categorySourceSlug: string;
1966
+ categoryCanonicalSlug: string;
1967
+ locationSourceSlug: string;
1968
+ locationCanonicalSlug: string;
1969
+ categoryName: string;
1970
+ placeName: string;
1971
+ countryCode: string;
1972
+ adminLevel: string;
1973
+ overallSalary: {
1974
+ avgMin: number;
1975
+ avgMax: number;
1976
+ p25Min: number | null;
1977
+ p75Max: number | null;
1978
+ jobCount: number;
1979
+ } | null;
1980
+ bySeniority: {
1981
+ seniority: string;
1982
+ avgSalaryMin: number;
1983
+ avgSalaryMax: number;
1984
+ jobCount: number;
1985
+ }[];
1986
+ childLocations: {
1987
+ placeSlug: string;
1988
+ placeName: string;
1989
+ avgSalaryMin: number;
1990
+ avgSalaryMax: number;
1991
+ jobCount: number;
1992
+ }[];
1993
+ childLocationsByRegion: {
1994
+ regionName: string;
1995
+ regionSlug: string;
1996
+ cities: {
1997
+ placeSlug: string;
1998
+ placeName: string;
1999
+ avgSalaryMin: number;
2000
+ avgSalaryMax: number;
2001
+ jobCount: number;
2002
+ }[];
2003
+ }[];
2004
+ otherLocations: {
2005
+ placeSlug: string;
2006
+ placeName: string;
2007
+ avgSalaryMin: number;
2008
+ avgSalaryMax: number;
2009
+ jobCount: number;
2010
+ }[];
2011
+ topSkills: {
2012
+ avgSalaryMin: number;
2013
+ avgSalaryMax: number;
2014
+ jobCount: number;
2015
+ skillSlug: string;
2016
+ skillName: string;
2017
+ }[];
2018
+ topTitles: {
2019
+ avgSalaryMin: number;
2020
+ avgSalaryMax: number;
2021
+ jobCount: number;
2022
+ categorySlug: string;
2023
+ categoryName: string;
2024
+ }[];
2025
+ boardCategoryAvgMin: number | null;
2026
+ boardCategoryAvgMax: number | null;
2027
+ currency: string;
2028
+ };
2029
+ TitleLocationsIndex: {
2030
+ /** @enum {string} */
2031
+ object: "title_locations_index";
2032
+ sourceSlug: string;
2033
+ canonicalSlug: string;
2034
+ categoryName: string;
2035
+ currency: string;
2036
+ locations: components["schemas"]["SalaryLocationIndexItem"][];
2037
+ };
1858
2038
  TitleSalaryDetail: {
1859
2039
  /** @enum {string} */
1860
2040
  object: "title_salary_detail";
@@ -2368,7 +2548,7 @@ declare function isConflict(e: unknown): e is BoardApiError;
2368
2548
  * constant because the package is platform-neutral and cannot read
2369
2549
  * package.json at runtime.
2370
2550
  */
2371
- declare const SDK_VERSION = "1.10.0";
2551
+ declare const SDK_VERSION = "1.11.0";
2372
2552
 
2373
2553
  type BoardUser = Schemas['BoardUser'];
2374
2554
  type BoardAuthSession = Schemas['BoardAuthSession'];
@@ -2598,6 +2778,18 @@ type SalarySkill = Schemas['SalarySkillIndexItem'];
2598
2778
  * its `parentSlug` (the consumer rebuilds the country → region → city browse).
2599
2779
  */
2600
2780
  type SalaryLocation = Schemas['SalaryLocationIndexItem'];
2781
+ /** A title's salary across locations (flattened `parentSlug` tree). */
2782
+ type TitleLocationsIndex = Schemas['TitleLocationsIndex'];
2783
+ /** A skill's salary across locations. */
2784
+ type SkillLocationsIndex = Schemas['SkillLocationsIndex'];
2785
+ /** A place's salary by title (suffix read-model). */
2786
+ type LocationTitlesIndex = Schemas['LocationTitlesIndex'];
2787
+ /** A place's salary by skill. */
2788
+ type LocationSkillsIndex = Schemas['LocationSkillsIndex'];
2789
+ /** A title's salary in one place (4 source + canonical slugs). */
2790
+ type TitleLocationSalary = Schemas['TitleLocationSalary'];
2791
+ /** A skill's salary in one place. */
2792
+ type SkillLocationSalary = Schemas['SkillLocationSalary'];
2601
2793
  /**
2602
2794
  * Board-language overlay for a salary read. `en` (the default) is the identity
2603
2795
  * fast-path; a non-`en` locale overlays board-language names + canonical slugs.
@@ -3305,6 +3497,80 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
3305
3497
  boardP75Max: number | null;
3306
3498
  currency: string;
3307
3499
  }>;
3500
+ locations(categorySlug: string, query?: SalaryDetailQuery, options?: FetchOptions): Promise<{
3501
+ object: "title_locations_index";
3502
+ sourceSlug: string;
3503
+ canonicalSlug: string;
3504
+ categoryName: string;
3505
+ currency: string;
3506
+ locations: components["schemas"]["SalaryLocationIndexItem"][];
3507
+ }>;
3508
+ location(categorySlug: string, locationSlug: string, query?: SalaryDetailQuery, options?: FetchOptions): Promise<{
3509
+ object: "title_location_salary";
3510
+ categorySourceSlug: string;
3511
+ categoryCanonicalSlug: string;
3512
+ locationSourceSlug: string;
3513
+ locationCanonicalSlug: string;
3514
+ categoryName: string;
3515
+ placeName: string;
3516
+ countryCode: string;
3517
+ adminLevel: string;
3518
+ overallSalary: {
3519
+ avgMin: number;
3520
+ avgMax: number;
3521
+ p25Min: number | null;
3522
+ p75Max: number | null;
3523
+ jobCount: number;
3524
+ } | null;
3525
+ bySeniority: {
3526
+ seniority: string;
3527
+ avgSalaryMin: number;
3528
+ avgSalaryMax: number;
3529
+ jobCount: number;
3530
+ }[];
3531
+ childLocations: {
3532
+ placeSlug: string;
3533
+ placeName: string;
3534
+ avgSalaryMin: number;
3535
+ avgSalaryMax: number;
3536
+ jobCount: number;
3537
+ }[];
3538
+ childLocationsByRegion: {
3539
+ regionName: string;
3540
+ regionSlug: string;
3541
+ cities: {
3542
+ placeSlug: string;
3543
+ placeName: string;
3544
+ avgSalaryMin: number;
3545
+ avgSalaryMax: number;
3546
+ jobCount: number;
3547
+ }[];
3548
+ }[];
3549
+ otherLocations: {
3550
+ placeSlug: string;
3551
+ placeName: string;
3552
+ avgSalaryMin: number;
3553
+ avgSalaryMax: number;
3554
+ jobCount: number;
3555
+ }[];
3556
+ topSkills: {
3557
+ avgSalaryMin: number;
3558
+ avgSalaryMax: number;
3559
+ jobCount: number;
3560
+ skillSlug: string;
3561
+ skillName: string;
3562
+ }[];
3563
+ topTitles: {
3564
+ avgSalaryMin: number;
3565
+ avgSalaryMax: number;
3566
+ jobCount: number;
3567
+ categorySlug: string;
3568
+ categoryName: string;
3569
+ }[];
3570
+ boardCategoryAvgMin: number | null;
3571
+ boardCategoryAvgMax: number | null;
3572
+ currency: string;
3573
+ }>;
3308
3574
  };
3309
3575
  skills: {
3310
3576
  list(query?: SalaryDetailQuery, options?: FetchOptions): Promise<ListEnvelope<{
@@ -3378,6 +3644,80 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
3378
3644
  boardMedianMax: number | null;
3379
3645
  currency: string;
3380
3646
  }>;
3647
+ locations(skillSlug: string, query?: SalaryDetailQuery, options?: FetchOptions): Promise<{
3648
+ object: "skill_locations_index";
3649
+ sourceSlug: string;
3650
+ canonicalSlug: string;
3651
+ skillName: string;
3652
+ currency: string;
3653
+ locations: components["schemas"]["SalaryLocationIndexItem"][];
3654
+ }>;
3655
+ location(skillSlug: string, locationSlug: string, query?: SalaryDetailQuery, options?: FetchOptions): Promise<{
3656
+ object: "skill_location_salary";
3657
+ skillSourceSlug: string;
3658
+ skillCanonicalSlug: string;
3659
+ locationSourceSlug: string;
3660
+ locationCanonicalSlug: string;
3661
+ skillName: string;
3662
+ placeName: string;
3663
+ countryCode: string;
3664
+ adminLevel: string;
3665
+ overallSalary: {
3666
+ avgMin: number;
3667
+ avgMax: number;
3668
+ p25Min: number | null;
3669
+ p75Max: number | null;
3670
+ jobCount: number;
3671
+ } | null;
3672
+ bySeniority: {
3673
+ seniority: string;
3674
+ avgSalaryMin: number;
3675
+ avgSalaryMax: number;
3676
+ jobCount: number;
3677
+ }[];
3678
+ childLocations: {
3679
+ placeSlug: string;
3680
+ placeName: string;
3681
+ avgSalaryMin: number;
3682
+ avgSalaryMax: number;
3683
+ jobCount: number;
3684
+ }[];
3685
+ childLocationsByRegion: {
3686
+ regionName: string;
3687
+ regionSlug: string;
3688
+ cities: {
3689
+ placeSlug: string;
3690
+ placeName: string;
3691
+ avgSalaryMin: number;
3692
+ avgSalaryMax: number;
3693
+ jobCount: number;
3694
+ }[];
3695
+ }[];
3696
+ otherLocations: {
3697
+ placeSlug: string;
3698
+ placeName: string;
3699
+ avgSalaryMin: number;
3700
+ avgSalaryMax: number;
3701
+ jobCount: number;
3702
+ }[];
3703
+ topSkills: {
3704
+ avgSalaryMin: number;
3705
+ avgSalaryMax: number;
3706
+ jobCount: number;
3707
+ skillSlug: string;
3708
+ skillName: string;
3709
+ }[];
3710
+ topTitles: {
3711
+ avgSalaryMin: number;
3712
+ avgSalaryMax: number;
3713
+ jobCount: number;
3714
+ categorySlug: string;
3715
+ categoryName: string;
3716
+ }[];
3717
+ boardSkillAvgMin: number | null;
3718
+ boardSkillAvgMax: number | null;
3719
+ currency: string;
3720
+ }>;
3381
3721
  };
3382
3722
  locations: {
3383
3723
  list(query?: SalaryDetailQuery, options?: FetchOptions): Promise<ListEnvelope<{
@@ -3467,9 +3807,35 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
3467
3807
  boardOverallAvgMax: number | null;
3468
3808
  currency: string;
3469
3809
  }>;
3810
+ titles(locationSlug: string, query?: SalaryDetailQuery, options?: FetchOptions): Promise<{
3811
+ object: "location_titles_index";
3812
+ sourceSlug: string;
3813
+ canonicalSlug: string;
3814
+ placeName: string;
3815
+ titles: {
3816
+ slug: string;
3817
+ name: string;
3818
+ avgSalaryMin: number;
3819
+ avgSalaryMax: number;
3820
+ jobCount: number;
3821
+ }[];
3822
+ }>;
3823
+ skills(locationSlug: string, query?: SalaryDetailQuery, options?: FetchOptions): Promise<{
3824
+ object: "location_skills_index";
3825
+ sourceSlug: string;
3826
+ canonicalSlug: string;
3827
+ placeName: string;
3828
+ skills: {
3829
+ slug: string;
3830
+ name: string;
3831
+ avgSalaryMin: number;
3832
+ avgSalaryMax: number;
3833
+ jobCount: number;
3834
+ }[];
3835
+ }>;
3470
3836
  };
3471
3837
  };
3472
3838
  };
3473
3839
  type BoardSdk = ReturnType<typeof createBoardClient>;
3474
3840
 
3475
- 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 LocationSalaryDetail, 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 SalaryCompany, type SalaryDetailQuery, type SalaryLocation, type SalarySkill, type SalaryTitle, type SaveJobBody, type SavedJob, type SavedJobsListQuery, type SearchEnvelope, type Seniority, type SkillSalaryDetail, type StorageMode, type StorefrontPagination, type TaxonomyGeo, type TaxonomyResolution, type TitleSalaryDetail, type VerifyEmailBody, createBoardClient, isBoardApiError, isBoardPasswordRequired, isConflict, isForbidden, isNotFound, isRateLimited, isUnauthorized, isValidationError };
3841
+ 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 LocationSalaryDetail, type LocationSkillsIndex, type LocationTitlesIndex, 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 SalaryCompany, type SalaryDetailQuery, type SalaryLocation, type SalarySkill, type SalaryTitle, type SaveJobBody, type SavedJob, type SavedJobsListQuery, type SearchEnvelope, type Seniority, type SkillLocationSalary, type SkillLocationsIndex, type SkillSalaryDetail, type StorageMode, type StorefrontPagination, type TaxonomyGeo, type TaxonomyResolution, type TitleLocationSalary, type TitleLocationsIndex, type TitleSalaryDetail, 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.10.0";
152
+ var SDK_VERSION = "1.11.0";
153
153
 
154
154
  // src/client.ts
155
155
  function isRawBody(body) {
@@ -867,6 +867,20 @@ function salariesNamespace(client) {
867
867
  `/salaries/titles/${encodeURIComponent(categorySlug)}`,
868
868
  { ...options, query }
869
869
  );
870
+ },
871
+ /** The title's salary across locations (cross-axis). */
872
+ locations(categorySlug, query, options) {
873
+ return client.fetch(
874
+ `/salaries/titles/${encodeURIComponent(categorySlug)}/locations`,
875
+ { ...options, query }
876
+ );
877
+ },
878
+ /** The title's salary in one place (cross-axis detail). */
879
+ location(categorySlug, locationSlug, query, options) {
880
+ return client.fetch(
881
+ `/salaries/titles/${encodeURIComponent(categorySlug)}/${encodeURIComponent(locationSlug)}`,
882
+ { ...options, query }
883
+ );
870
884
  }
871
885
  },
872
886
  skills: {
@@ -881,6 +895,20 @@ function salariesNamespace(client) {
881
895
  `/salaries/skills/${encodeURIComponent(skillSlug)}`,
882
896
  { ...options, query }
883
897
  );
898
+ },
899
+ /** The skill's salary across locations (cross-axis). */
900
+ locations(skillSlug, query, options) {
901
+ return client.fetch(
902
+ `/salaries/skills/${encodeURIComponent(skillSlug)}/locations`,
903
+ { ...options, query }
904
+ );
905
+ },
906
+ /** The skill's salary in one place (cross-axis detail). */
907
+ location(skillSlug, locationSlug, query, options) {
908
+ return client.fetch(
909
+ `/salaries/skills/${encodeURIComponent(skillSlug)}/${encodeURIComponent(locationSlug)}`,
910
+ { ...options, query }
911
+ );
884
912
  }
885
913
  },
886
914
  locations: {
@@ -896,6 +924,20 @@ function salariesNamespace(client) {
896
924
  `/salaries/locations/${encodeURIComponent(locationSlug)}`,
897
925
  { ...options, query }
898
926
  );
927
+ },
928
+ /** The titles with salary data in one place (cross-axis). */
929
+ titles(locationSlug, query, options) {
930
+ return client.fetch(
931
+ `/salaries/locations/${encodeURIComponent(locationSlug)}/titles`,
932
+ { ...options, query }
933
+ );
934
+ },
935
+ /** The skills with salary data in one place (cross-axis). */
936
+ skills(locationSlug, query, options) {
937
+ return client.fetch(
938
+ `/salaries/locations/${encodeURIComponent(locationSlug)}/skills`,
939
+ { ...options, query }
940
+ );
899
941
  }
900
942
  }
901
943
  };
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.10.0";
112
+ var SDK_VERSION = "1.11.0";
113
113
 
114
114
  // src/client.ts
115
115
  function isRawBody(body) {
@@ -827,6 +827,20 @@ function salariesNamespace(client) {
827
827
  `/salaries/titles/${encodeURIComponent(categorySlug)}`,
828
828
  { ...options, query }
829
829
  );
830
+ },
831
+ /** The title's salary across locations (cross-axis). */
832
+ locations(categorySlug, query, options) {
833
+ return client.fetch(
834
+ `/salaries/titles/${encodeURIComponent(categorySlug)}/locations`,
835
+ { ...options, query }
836
+ );
837
+ },
838
+ /** The title's salary in one place (cross-axis detail). */
839
+ location(categorySlug, locationSlug, query, options) {
840
+ return client.fetch(
841
+ `/salaries/titles/${encodeURIComponent(categorySlug)}/${encodeURIComponent(locationSlug)}`,
842
+ { ...options, query }
843
+ );
830
844
  }
831
845
  },
832
846
  skills: {
@@ -841,6 +855,20 @@ function salariesNamespace(client) {
841
855
  `/salaries/skills/${encodeURIComponent(skillSlug)}`,
842
856
  { ...options, query }
843
857
  );
858
+ },
859
+ /** The skill's salary across locations (cross-axis). */
860
+ locations(skillSlug, query, options) {
861
+ return client.fetch(
862
+ `/salaries/skills/${encodeURIComponent(skillSlug)}/locations`,
863
+ { ...options, query }
864
+ );
865
+ },
866
+ /** The skill's salary in one place (cross-axis detail). */
867
+ location(skillSlug, locationSlug, query, options) {
868
+ return client.fetch(
869
+ `/salaries/skills/${encodeURIComponent(skillSlug)}/${encodeURIComponent(locationSlug)}`,
870
+ { ...options, query }
871
+ );
844
872
  }
845
873
  },
846
874
  locations: {
@@ -856,6 +884,20 @@ function salariesNamespace(client) {
856
884
  `/salaries/locations/${encodeURIComponent(locationSlug)}`,
857
885
  { ...options, query }
858
886
  );
887
+ },
888
+ /** The titles with salary data in one place (cross-axis). */
889
+ titles(locationSlug, query, options) {
890
+ return client.fetch(
891
+ `/salaries/locations/${encodeURIComponent(locationSlug)}/titles`,
892
+ { ...options, query }
893
+ );
894
+ },
895
+ /** The skills with salary data in one place (cross-axis). */
896
+ skills(locationSlug, query, options) {
897
+ return client.fetch(
898
+ `/salaries/locations/${encodeURIComponent(locationSlug)}/skills`,
899
+ { ...options, query }
900
+ );
859
901
  }
860
902
  }
861
903
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cavuno/board",
3
- "version": "1.10.0",
3
+ "version": "1.11.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.10.0",
2
+ "version": "1.11.0",
3
3
  "skills": [
4
4
  {
5
5
  "name": "cavuno-board-auth",