@cavuno/board 1.8.0 → 1.10.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
@@ -887,6 +887,87 @@ interface components {
887
887
  address: string | null;
888
888
  } | null;
889
889
  };
890
+ LocationSalaryDetail: {
891
+ /** @enum {string} */
892
+ object: "location_salary_detail";
893
+ /** @description Immutable English source place slug — the salary-stats key. */
894
+ sourceSlug: string;
895
+ /** @description Board-language canonical URL slug — the starter 308 target. */
896
+ canonicalSlug: string;
897
+ placeName: string;
898
+ placeId: string;
899
+ adminLevel: string;
900
+ countryCode: string;
901
+ overallSalary: {
902
+ avgMin: number;
903
+ avgMax: number;
904
+ medianMin: number;
905
+ medianMax: number;
906
+ p25Min: number;
907
+ p75Max: number;
908
+ jobCount: number;
909
+ } | null;
910
+ childLocations: {
911
+ placeName: string;
912
+ placeSlug: string;
913
+ countryCode: string;
914
+ avgSalaryMin: number;
915
+ avgSalaryMax: number;
916
+ medianSalaryMin: number;
917
+ medianSalaryMax: number;
918
+ p25SalaryMin: number;
919
+ p75SalaryMax: number;
920
+ jobCount: number;
921
+ currency: string;
922
+ }[];
923
+ childLocationsByRegion: {
924
+ regionName: string;
925
+ regionSlug: string;
926
+ cities: {
927
+ placeName: string;
928
+ placeSlug: string;
929
+ countryCode: string;
930
+ avgSalaryMin: number;
931
+ avgSalaryMax: number;
932
+ medianSalaryMin: number;
933
+ medianSalaryMax: number;
934
+ p25SalaryMin: number;
935
+ p75SalaryMax: number;
936
+ jobCount: number;
937
+ currency: string;
938
+ }[];
939
+ }[];
940
+ topCategories: {
941
+ avgSalaryMin: number;
942
+ avgSalaryMax: number;
943
+ jobCount: number;
944
+ categorySlug: string;
945
+ categoryName: string;
946
+ }[];
947
+ topSkills: {
948
+ avgSalaryMin: number;
949
+ avgSalaryMax: number;
950
+ jobCount: number;
951
+ skillSlug: string;
952
+ skillName: string;
953
+ }[];
954
+ siblingLocations: {
955
+ placeName: string;
956
+ placeSlug: string;
957
+ countryCode: string;
958
+ avgSalaryMin: number;
959
+ avgSalaryMax: number;
960
+ medianSalaryMin: number;
961
+ medianSalaryMax: number;
962
+ p25SalaryMin: number;
963
+ p75SalaryMax: number;
964
+ jobCount: number;
965
+ currency: string;
966
+ }[];
967
+ boardOverallAvgMin: number | null;
968
+ boardOverallAvgMax: number | null;
969
+ currency: string;
970
+ };
890
971
  MediaGet: components["schemas"]["MediaUpload"] & {
891
972
  /** @description Time at which the file was uploaded. ISO 8601 datetime. */
892
973
  uploadedAt: string;
@@ -1531,6 +1612,52 @@ interface components {
1531
1612
  /** @description OAuth client secret. May be supplied here or via HTTP Basic authentication. */
1532
1613
  client_secret?: string;
1533
1614
  };
1615
+ SalaryCompanyIndexItem: {
1616
+ /** @enum {string} */
1617
+ object: "salary_company";
1618
+ companySlug: string;
1619
+ companyName: string;
1620
+ logoPath: string | null;
1621
+ avgSalaryMin: number;
1622
+ avgSalaryMax: number;
1623
+ jobCount: number;
1624
+ currency: string;
1625
+ };
1626
+ SalaryLocationIndexItem: {
1627
+ /** @enum {string} */
1628
+ object: "salary_location";
1629
+ placeSlug: string;
1630
+ placeName: string;
1631
+ /** @description Slug of the parent place; `null` for a top-level node. */
1632
+ parentSlug: string | null;
1633
+ avgSalaryMin: number;
1634
+ avgSalaryMax: number;
1635
+ jobCount: number;
1636
+ };
1637
+ SalarySkillIndexItem: {
1638
+ /** @enum {string} */
1639
+ object: "salary_skill";
1640
+ slug: string;
1641
+ name: string;
1642
+ avgSalaryMin: number;
1643
+ avgSalaryMax: number;
1644
+ p25SalaryMin: number;
1645
+ p75SalaryMax: number;
1646
+ jobCount: number;
1647
+ currency: string;
1648
+ };
1649
+ SalaryTitleIndexItem: {
1650
+ /** @enum {string} */
1651
+ object: "salary_title";
1652
+ slug: string;
1653
+ name: string;
1654
+ avgSalaryMin: number;
1655
+ avgSalaryMax: number;
1656
+ p25SalaryMin: number;
1657
+ p75SalaryMax: number;
1658
+ jobCount: number;
1659
+ currency: string;
1660
+ };
1534
1661
  SaveJobBody: {
1535
1662
  jobId: string;
1536
1663
  };
@@ -1654,6 +1781,69 @@ interface components {
1654
1781
  /** @description Stripe billing-portal configuration ID used for self-serve plan management. Pass `null` to clear. */
1655
1782
  jobAccessStripePortalConfigId?: string | unknown | unknown;
1656
1783
  };
1784
+ SkillSalaryDetail: {
1785
+ /** @enum {string} */
1786
+ object: "skill_salary_detail";
1787
+ /** @description Immutable English source slug — the salary-stats key. */
1788
+ sourceSlug: string;
1789
+ /** @description Board-language canonical URL slug — the starter 308 target. */
1790
+ canonicalSlug: string;
1791
+ skillName: string;
1792
+ overallSalary: {
1793
+ avgMin: number;
1794
+ avgMax: number;
1795
+ medianMin: number;
1796
+ medianMax: number;
1797
+ p25Min: number;
1798
+ p75Max: number;
1799
+ jobCount: number;
1800
+ } | null;
1801
+ bySeniority: {
1802
+ seniority: string;
1803
+ avgSalaryMin: number;
1804
+ avgSalaryMax: number;
1805
+ jobCount: number;
1806
+ boardAvgMin: number | null;
1807
+ boardAvgMax: number | null;
1808
+ diffPercent: number | null;
1809
+ }[];
1810
+ topCompanies: {
1811
+ avgSalaryMin: number;
1812
+ avgSalaryMax: number;
1813
+ jobCount: number;
1814
+ companySlug: string;
1815
+ companyName: string;
1816
+ logoPath: string | null;
1817
+ }[];
1818
+ topLocations: {
1819
+ avgSalaryMin: number;
1820
+ avgSalaryMax: number;
1821
+ jobCount: number;
1822
+ placeName: string;
1823
+ placeSlug: string;
1824
+ countryCode: string;
1825
+ }[];
1826
+ topTitles: {
1827
+ avgSalaryMin: number;
1828
+ avgSalaryMax: number;
1829
+ jobCount: number;
1830
+ categorySlug: string;
1831
+ categoryName: string;
1832
+ }[];
1833
+ relatedSkills: {
1834
+ avgSalaryMin: number;
1835
+ avgSalaryMax: number;
1836
+ jobCount: number;
1837
+ skillSlug: string;
1838
+ skillName: string;
1839
+ }[];
1840
+ totalLocationCount: number;
1841
+ boardOverallAvgMin: number | null;
1842
+ boardOverallAvgMax: number | null;
1843
+ boardMedianMin: number | null;
1844
+ boardMedianMax: number | null;
1845
+ currency: string;
1846
+ };
1657
1847
  /** @description Geo for place resolutions; `null` for category/skill. */
1658
1848
  TaxonomyGeo: {
1659
1849
  lat: number | null;
@@ -1665,6 +1855,75 @@ interface components {
1665
1855
  locality: string | null;
1666
1856
  placeType: string | null;
1667
1857
  } | null;
1858
+ TitleSalaryDetail: {
1859
+ /** @enum {string} */
1860
+ object: "title_salary_detail";
1861
+ /** @description Immutable English source slug — the salary-stats key. */
1862
+ sourceSlug: string;
1863
+ /** @description Board-language canonical URL slug — the starter 308 target. */
1864
+ canonicalSlug: string;
1865
+ categoryName: string;
1866
+ overallSalary: {
1867
+ avgMin: number;
1868
+ avgMax: number;
1869
+ p25Min: number;
1870
+ p75Max: number;
1871
+ jobCount: number;
1872
+ } | null;
1873
+ bySeniority: {
1874
+ seniority: string;
1875
+ avgSalaryMin: number;
1876
+ avgSalaryMax: number;
1877
+ jobCount: number;
1878
+ boardAvgMin: number | null;
1879
+ boardAvgMax: number | null;
1880
+ boardMedianMin: number | null;
1881
+ boardMedianMax: number | null;
1882
+ boardP25Min: number | null;
1883
+ boardP75Min: number | null;
1884
+ boardP25Max: number | null;
1885
+ boardP75Max: number | null;
1886
+ diffPercent: number | null;
1887
+ }[];
1888
+ topCompanies: {
1889
+ avgSalaryMin: number;
1890
+ avgSalaryMax: number;
1891
+ jobCount: number;
1892
+ companySlug: string;
1893
+ companyName: string;
1894
+ logoPath: string | null;
1895
+ }[];
1896
+ topLocations: {
1897
+ avgSalaryMin: number;
1898
+ avgSalaryMax: number;
1899
+ jobCount: number;
1900
+ placeName: string;
1901
+ placeSlug: string;
1902
+ countryCode: string;
1903
+ }[];
1904
+ topSkills: {
1905
+ avgSalaryMin: number;
1906
+ avgSalaryMax: number;
1907
+ jobCount: number;
1908
+ skillSlug: string;
1909
+ skillName: string;
1910
+ }[];
1911
+ relatedTitles: {
1912
+ avgSalaryMin: number;
1913
+ avgSalaryMax: number;
1914
+ jobCount: number;
1915
+ categorySlug: string;
1916
+ categoryName: string;
1917
+ }[];
1918
+ totalLocationCount: number;
1919
+ boardOverallAvgMin: number | null;
1920
+ boardOverallAvgMax: number | null;
1921
+ boardMedianMin: number | null;
1922
+ boardMedianMax: number | null;
1923
+ boardP25Min: number | null;
1924
+ boardP75Max: number | null;
1925
+ currency: string;
1926
+ };
1668
1927
  TokenRequest: {
1669
1928
  /**
1670
1929
  * @description OAuth grant type. Either `authorization_code` to exchange an authorization code for a new token pair, or `refresh_token` to exchange a refresh token for a new token pair.
@@ -2109,7 +2368,7 @@ declare function isConflict(e: unknown): e is BoardApiError;
2109
2368
  * constant because the package is platform-neutral and cannot read
2110
2369
  * package.json at runtime.
2111
2370
  */
2112
- declare const SDK_VERSION = "1.8.0";
2371
+ declare const SDK_VERSION = "1.10.0";
2113
2372
 
2114
2373
  type BoardUser = Schemas['BoardUser'];
2115
2374
  type BoardAuthSession = Schemas['BoardAuthSession'];
@@ -2322,6 +2581,31 @@ type PlacesListQuery = {
2322
2581
  limit?: number;
2323
2582
  };
2324
2583
 
2584
+ /** A job title's salary breakdown (overall + by-seniority + top rails). */
2585
+ type TitleSalaryDetail = Schemas['TitleSalaryDetail'];
2586
+ /** A skill's salary breakdown. */
2587
+ type SkillSalaryDetail = Schemas['SkillSalaryDetail'];
2588
+ /** A place's salary breakdown (city overall + siblings, or area child cities). */
2589
+ type LocationSalaryDetail = Schemas['LocationSalaryDetail'];
2590
+ /** A company on the `/salaries/companies` hub (ranked by sample size). */
2591
+ type SalaryCompany = Schemas['SalaryCompanyIndexItem'];
2592
+ /** A job title on the `/salaries/titles` index. */
2593
+ type SalaryTitle = Schemas['SalaryTitleIndexItem'];
2594
+ /** A skill on the `/salaries/skills` index. */
2595
+ type SalarySkill = Schemas['SalarySkillIndexItem'];
2596
+ /**
2597
+ * A place on the `/salaries/locations` index — a flattened tree node carrying
2598
+ * its `parentSlug` (the consumer rebuilds the country → region → city browse).
2599
+ */
2600
+ type SalaryLocation = Schemas['SalaryLocationIndexItem'];
2601
+ /**
2602
+ * Board-language overlay for a salary read. `en` (the default) is the identity
2603
+ * fast-path; a non-`en` locale overlays board-language names + canonical slugs.
2604
+ */
2605
+ type SalaryDetailQuery = {
2606
+ locale?: string;
2607
+ };
2608
+
2325
2609
  interface CreateBoardClientOptions {
2326
2610
  baseUrl: string;
2327
2611
  /** Board identifier: `pk_…` key (provisioned default) | `boards_…` ID | slug. */
@@ -2930,7 +3214,262 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
2930
3214
  success: boolean;
2931
3215
  }>;
2932
3216
  };
3217
+ salaries: {
3218
+ companies: {
3219
+ list(options?: FetchOptions): Promise<ListEnvelope<{
3220
+ object: "salary_company";
3221
+ companySlug: string;
3222
+ companyName: string;
3223
+ logoPath: string | null;
3224
+ avgSalaryMin: number;
3225
+ avgSalaryMax: number;
3226
+ jobCount: number;
3227
+ currency: string;
3228
+ }>>;
3229
+ };
3230
+ titles: {
3231
+ list(query?: SalaryDetailQuery, options?: FetchOptions): Promise<ListEnvelope<{
3232
+ object: "salary_title";
3233
+ slug: string;
3234
+ name: string;
3235
+ avgSalaryMin: number;
3236
+ avgSalaryMax: number;
3237
+ p25SalaryMin: number;
3238
+ p75SalaryMax: number;
3239
+ jobCount: number;
3240
+ currency: string;
3241
+ }>>;
3242
+ retrieve(categorySlug: string, query?: SalaryDetailQuery, options?: FetchOptions): Promise<{
3243
+ object: "title_salary_detail";
3244
+ sourceSlug: string;
3245
+ canonicalSlug: string;
3246
+ categoryName: string;
3247
+ overallSalary: {
3248
+ avgMin: number;
3249
+ avgMax: number;
3250
+ p25Min: number;
3251
+ p75Max: number;
3252
+ jobCount: number;
3253
+ } | null;
3254
+ bySeniority: {
3255
+ seniority: string;
3256
+ avgSalaryMin: number;
3257
+ avgSalaryMax: number;
3258
+ jobCount: number;
3259
+ boardAvgMin: number | null;
3260
+ boardAvgMax: number | null;
3261
+ boardMedianMin: number | null;
3262
+ boardMedianMax: number | null;
3263
+ boardP25Min: number | null;
3264
+ boardP75Min: number | null;
3265
+ boardP25Max: number | null;
3266
+ boardP75Max: number | null;
3267
+ diffPercent: number | null;
3268
+ }[];
3269
+ topCompanies: {
3270
+ avgSalaryMin: number;
3271
+ avgSalaryMax: number;
3272
+ jobCount: number;
3273
+ companySlug: string;
3274
+ companyName: string;
3275
+ logoPath: string | null;
3276
+ }[];
3277
+ topLocations: {
3278
+ avgSalaryMin: number;
3279
+ avgSalaryMax: number;
3280
+ jobCount: number;
3281
+ placeName: string;
3282
+ placeSlug: string;
3283
+ countryCode: string;
3284
+ }[];
3285
+ topSkills: {
3286
+ avgSalaryMin: number;
3287
+ avgSalaryMax: number;
3288
+ jobCount: number;
3289
+ skillSlug: string;
3290
+ skillName: string;
3291
+ }[];
3292
+ relatedTitles: {
3293
+ avgSalaryMin: number;
3294
+ avgSalaryMax: number;
3295
+ jobCount: number;
3296
+ categorySlug: string;
3297
+ categoryName: string;
3298
+ }[];
3299
+ totalLocationCount: number;
3300
+ boardOverallAvgMin: number | null;
3301
+ boardOverallAvgMax: number | null;
3302
+ boardMedianMin: number | null;
3303
+ boardMedianMax: number | null;
3304
+ boardP25Min: number | null;
3305
+ boardP75Max: number | null;
3306
+ currency: string;
3307
+ }>;
3308
+ };
3309
+ skills: {
3310
+ list(query?: SalaryDetailQuery, options?: FetchOptions): Promise<ListEnvelope<{
3311
+ object: "salary_skill";
3312
+ slug: string;
3313
+ name: string;
3314
+ avgSalaryMin: number;
3315
+ avgSalaryMax: number;
3316
+ p25SalaryMin: number;
3317
+ p75SalaryMax: number;
3318
+ jobCount: number;
3319
+ currency: string;
3320
+ }>>;
3321
+ retrieve(skillSlug: string, query?: SalaryDetailQuery, options?: FetchOptions): Promise<{
3322
+ object: "skill_salary_detail";
3323
+ sourceSlug: string;
3324
+ canonicalSlug: string;
3325
+ skillName: string;
3326
+ overallSalary: {
3327
+ avgMin: number;
3328
+ avgMax: number;
3329
+ medianMin: number;
3330
+ medianMax: number;
3331
+ p25Min: number;
3332
+ p75Max: number;
3333
+ jobCount: number;
3334
+ } | null;
3335
+ bySeniority: {
3336
+ seniority: string;
3337
+ avgSalaryMin: number;
3338
+ avgSalaryMax: number;
3339
+ jobCount: number;
3340
+ boardAvgMin: number | null;
3341
+ boardAvgMax: number | null;
3342
+ diffPercent: number | null;
3343
+ }[];
3344
+ topCompanies: {
3345
+ avgSalaryMin: number;
3346
+ avgSalaryMax: number;
3347
+ jobCount: number;
3348
+ companySlug: string;
3349
+ companyName: string;
3350
+ logoPath: string | null;
3351
+ }[];
3352
+ topLocations: {
3353
+ avgSalaryMin: number;
3354
+ avgSalaryMax: number;
3355
+ jobCount: number;
3356
+ placeName: string;
3357
+ placeSlug: string;
3358
+ countryCode: string;
3359
+ }[];
3360
+ topTitles: {
3361
+ avgSalaryMin: number;
3362
+ avgSalaryMax: number;
3363
+ jobCount: number;
3364
+ categorySlug: string;
3365
+ categoryName: string;
3366
+ }[];
3367
+ relatedSkills: {
3368
+ avgSalaryMin: number;
3369
+ avgSalaryMax: number;
3370
+ jobCount: number;
3371
+ skillSlug: string;
3372
+ skillName: string;
3373
+ }[];
3374
+ totalLocationCount: number;
3375
+ boardOverallAvgMin: number | null;
3376
+ boardOverallAvgMax: number | null;
3377
+ boardMedianMin: number | null;
3378
+ boardMedianMax: number | null;
3379
+ currency: string;
3380
+ }>;
3381
+ };
3382
+ locations: {
3383
+ list(query?: SalaryDetailQuery, options?: FetchOptions): Promise<ListEnvelope<{
3384
+ object: "salary_location";
3385
+ placeSlug: string;
3386
+ placeName: string;
3387
+ parentSlug: string | null;
3388
+ avgSalaryMin: number;
3389
+ avgSalaryMax: number;
3390
+ jobCount: number;
3391
+ }>>;
3392
+ retrieve(locationSlug: string, query?: SalaryDetailQuery, options?: FetchOptions): Promise<{
3393
+ object: "location_salary_detail";
3394
+ sourceSlug: string;
3395
+ canonicalSlug: string;
3396
+ placeName: string;
3397
+ placeId: string;
3398
+ adminLevel: string;
3399
+ countryCode: string;
3400
+ overallSalary: {
3401
+ avgMin: number;
3402
+ avgMax: number;
3403
+ medianMin: number;
3404
+ medianMax: number;
3405
+ p25Min: number;
3406
+ p75Max: number;
3407
+ jobCount: number;
3408
+ } | null;
3409
+ childLocations: {
3410
+ placeName: string;
3411
+ placeSlug: string;
3412
+ countryCode: string;
3413
+ avgSalaryMin: number;
3414
+ avgSalaryMax: number;
3415
+ medianSalaryMin: number;
3416
+ medianSalaryMax: number;
3417
+ p25SalaryMin: number;
3418
+ p75SalaryMax: number;
3419
+ jobCount: number;
3420
+ currency: string;
3421
+ }[];
3422
+ childLocationsByRegion: {
3423
+ regionName: string;
3424
+ regionSlug: string;
3425
+ cities: {
3426
+ placeName: string;
3427
+ placeSlug: string;
3428
+ countryCode: string;
3429
+ avgSalaryMin: number;
3430
+ avgSalaryMax: number;
3431
+ medianSalaryMin: number;
3432
+ medianSalaryMax: number;
3433
+ p25SalaryMin: number;
3434
+ p75SalaryMax: number;
3435
+ jobCount: number;
3436
+ currency: string;
3437
+ }[];
3438
+ }[];
3439
+ topCategories: {
3440
+ avgSalaryMin: number;
3441
+ avgSalaryMax: number;
3442
+ jobCount: number;
3443
+ categorySlug: string;
3444
+ categoryName: string;
3445
+ }[];
3446
+ topSkills: {
3447
+ avgSalaryMin: number;
3448
+ avgSalaryMax: number;
3449
+ jobCount: number;
3450
+ skillSlug: string;
3451
+ skillName: string;
3452
+ }[];
3453
+ siblingLocations: {
3454
+ placeName: string;
3455
+ placeSlug: string;
3456
+ countryCode: string;
3457
+ avgSalaryMin: number;
3458
+ avgSalaryMax: number;
3459
+ medianSalaryMin: number;
3460
+ medianSalaryMax: number;
3461
+ p25SalaryMin: number;
3462
+ p75SalaryMax: number;
3463
+ jobCount: number;
3464
+ currency: string;
3465
+ }[];
3466
+ boardOverallAvgMin: number | null;
3467
+ boardOverallAvgMax: number | null;
3468
+ currency: string;
3469
+ }>;
3470
+ };
3471
+ };
2933
3472
  };
2934
3473
  type BoardSdk = ReturnType<typeof createBoardClient>;
2935
3474
 
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 };
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 };
package/dist/index.d.ts CHANGED
@@ -887,6 +887,87 @@ interface components {
887
887
  address: string | null;
888
888
  } | null;
889
889
  };
890
+ LocationSalaryDetail: {
891
+ /** @enum {string} */
892
+ object: "location_salary_detail";
893
+ /** @description Immutable English source place slug — the salary-stats key. */
894
+ sourceSlug: string;
895
+ /** @description Board-language canonical URL slug — the starter 308 target. */
896
+ canonicalSlug: string;
897
+ placeName: string;
898
+ placeId: string;
899
+ adminLevel: string;
900
+ countryCode: string;
901
+ overallSalary: {
902
+ avgMin: number;
903
+ avgMax: number;
904
+ medianMin: number;
905
+ medianMax: number;
906
+ p25Min: number;
907
+ p75Max: number;
908
+ jobCount: number;
909
+ } | null;
910
+ childLocations: {
911
+ placeName: string;
912
+ placeSlug: string;
913
+ countryCode: string;
914
+ avgSalaryMin: number;
915
+ avgSalaryMax: number;
916
+ medianSalaryMin: number;
917
+ medianSalaryMax: number;
918
+ p25SalaryMin: number;
919
+ p75SalaryMax: number;
920
+ jobCount: number;
921
+ currency: string;
922
+ }[];
923
+ childLocationsByRegion: {
924
+ regionName: string;
925
+ regionSlug: string;
926
+ cities: {
927
+ placeName: string;
928
+ placeSlug: string;
929
+ countryCode: string;
930
+ avgSalaryMin: number;
931
+ avgSalaryMax: number;
932
+ medianSalaryMin: number;
933
+ medianSalaryMax: number;
934
+ p25SalaryMin: number;
935
+ p75SalaryMax: number;
936
+ jobCount: number;
937
+ currency: string;
938
+ }[];
939
+ }[];
940
+ topCategories: {
941
+ avgSalaryMin: number;
942
+ avgSalaryMax: number;
943
+ jobCount: number;
944
+ categorySlug: string;
945
+ categoryName: string;
946
+ }[];
947
+ topSkills: {
948
+ avgSalaryMin: number;
949
+ avgSalaryMax: number;
950
+ jobCount: number;
951
+ skillSlug: string;
952
+ skillName: string;
953
+ }[];
954
+ siblingLocations: {
955
+ placeName: string;
956
+ placeSlug: string;
957
+ countryCode: string;
958
+ avgSalaryMin: number;
959
+ avgSalaryMax: number;
960
+ medianSalaryMin: number;
961
+ medianSalaryMax: number;
962
+ p25SalaryMin: number;
963
+ p75SalaryMax: number;
964
+ jobCount: number;
965
+ currency: string;
966
+ }[];
967
+ boardOverallAvgMin: number | null;
968
+ boardOverallAvgMax: number | null;
969
+ currency: string;
970
+ };
890
971
  MediaGet: components["schemas"]["MediaUpload"] & {
891
972
  /** @description Time at which the file was uploaded. ISO 8601 datetime. */
892
973
  uploadedAt: string;
@@ -1531,6 +1612,52 @@ interface components {
1531
1612
  /** @description OAuth client secret. May be supplied here or via HTTP Basic authentication. */
1532
1613
  client_secret?: string;
1533
1614
  };
1615
+ SalaryCompanyIndexItem: {
1616
+ /** @enum {string} */
1617
+ object: "salary_company";
1618
+ companySlug: string;
1619
+ companyName: string;
1620
+ logoPath: string | null;
1621
+ avgSalaryMin: number;
1622
+ avgSalaryMax: number;
1623
+ jobCount: number;
1624
+ currency: string;
1625
+ };
1626
+ SalaryLocationIndexItem: {
1627
+ /** @enum {string} */
1628
+ object: "salary_location";
1629
+ placeSlug: string;
1630
+ placeName: string;
1631
+ /** @description Slug of the parent place; `null` for a top-level node. */
1632
+ parentSlug: string | null;
1633
+ avgSalaryMin: number;
1634
+ avgSalaryMax: number;
1635
+ jobCount: number;
1636
+ };
1637
+ SalarySkillIndexItem: {
1638
+ /** @enum {string} */
1639
+ object: "salary_skill";
1640
+ slug: string;
1641
+ name: string;
1642
+ avgSalaryMin: number;
1643
+ avgSalaryMax: number;
1644
+ p25SalaryMin: number;
1645
+ p75SalaryMax: number;
1646
+ jobCount: number;
1647
+ currency: string;
1648
+ };
1649
+ SalaryTitleIndexItem: {
1650
+ /** @enum {string} */
1651
+ object: "salary_title";
1652
+ slug: string;
1653
+ name: string;
1654
+ avgSalaryMin: number;
1655
+ avgSalaryMax: number;
1656
+ p25SalaryMin: number;
1657
+ p75SalaryMax: number;
1658
+ jobCount: number;
1659
+ currency: string;
1660
+ };
1534
1661
  SaveJobBody: {
1535
1662
  jobId: string;
1536
1663
  };
@@ -1654,6 +1781,69 @@ interface components {
1654
1781
  /** @description Stripe billing-portal configuration ID used for self-serve plan management. Pass `null` to clear. */
1655
1782
  jobAccessStripePortalConfigId?: string | unknown | unknown;
1656
1783
  };
1784
+ SkillSalaryDetail: {
1785
+ /** @enum {string} */
1786
+ object: "skill_salary_detail";
1787
+ /** @description Immutable English source slug — the salary-stats key. */
1788
+ sourceSlug: string;
1789
+ /** @description Board-language canonical URL slug — the starter 308 target. */
1790
+ canonicalSlug: string;
1791
+ skillName: string;
1792
+ overallSalary: {
1793
+ avgMin: number;
1794
+ avgMax: number;
1795
+ medianMin: number;
1796
+ medianMax: number;
1797
+ p25Min: number;
1798
+ p75Max: number;
1799
+ jobCount: number;
1800
+ } | null;
1801
+ bySeniority: {
1802
+ seniority: string;
1803
+ avgSalaryMin: number;
1804
+ avgSalaryMax: number;
1805
+ jobCount: number;
1806
+ boardAvgMin: number | null;
1807
+ boardAvgMax: number | null;
1808
+ diffPercent: number | null;
1809
+ }[];
1810
+ topCompanies: {
1811
+ avgSalaryMin: number;
1812
+ avgSalaryMax: number;
1813
+ jobCount: number;
1814
+ companySlug: string;
1815
+ companyName: string;
1816
+ logoPath: string | null;
1817
+ }[];
1818
+ topLocations: {
1819
+ avgSalaryMin: number;
1820
+ avgSalaryMax: number;
1821
+ jobCount: number;
1822
+ placeName: string;
1823
+ placeSlug: string;
1824
+ countryCode: string;
1825
+ }[];
1826
+ topTitles: {
1827
+ avgSalaryMin: number;
1828
+ avgSalaryMax: number;
1829
+ jobCount: number;
1830
+ categorySlug: string;
1831
+ categoryName: string;
1832
+ }[];
1833
+ relatedSkills: {
1834
+ avgSalaryMin: number;
1835
+ avgSalaryMax: number;
1836
+ jobCount: number;
1837
+ skillSlug: string;
1838
+ skillName: string;
1839
+ }[];
1840
+ totalLocationCount: number;
1841
+ boardOverallAvgMin: number | null;
1842
+ boardOverallAvgMax: number | null;
1843
+ boardMedianMin: number | null;
1844
+ boardMedianMax: number | null;
1845
+ currency: string;
1846
+ };
1657
1847
  /** @description Geo for place resolutions; `null` for category/skill. */
1658
1848
  TaxonomyGeo: {
1659
1849
  lat: number | null;
@@ -1665,6 +1855,75 @@ interface components {
1665
1855
  locality: string | null;
1666
1856
  placeType: string | null;
1667
1857
  } | null;
1858
+ TitleSalaryDetail: {
1859
+ /** @enum {string} */
1860
+ object: "title_salary_detail";
1861
+ /** @description Immutable English source slug — the salary-stats key. */
1862
+ sourceSlug: string;
1863
+ /** @description Board-language canonical URL slug — the starter 308 target. */
1864
+ canonicalSlug: string;
1865
+ categoryName: string;
1866
+ overallSalary: {
1867
+ avgMin: number;
1868
+ avgMax: number;
1869
+ p25Min: number;
1870
+ p75Max: number;
1871
+ jobCount: number;
1872
+ } | null;
1873
+ bySeniority: {
1874
+ seniority: string;
1875
+ avgSalaryMin: number;
1876
+ avgSalaryMax: number;
1877
+ jobCount: number;
1878
+ boardAvgMin: number | null;
1879
+ boardAvgMax: number | null;
1880
+ boardMedianMin: number | null;
1881
+ boardMedianMax: number | null;
1882
+ boardP25Min: number | null;
1883
+ boardP75Min: number | null;
1884
+ boardP25Max: number | null;
1885
+ boardP75Max: number | null;
1886
+ diffPercent: number | null;
1887
+ }[];
1888
+ topCompanies: {
1889
+ avgSalaryMin: number;
1890
+ avgSalaryMax: number;
1891
+ jobCount: number;
1892
+ companySlug: string;
1893
+ companyName: string;
1894
+ logoPath: string | null;
1895
+ }[];
1896
+ topLocations: {
1897
+ avgSalaryMin: number;
1898
+ avgSalaryMax: number;
1899
+ jobCount: number;
1900
+ placeName: string;
1901
+ placeSlug: string;
1902
+ countryCode: string;
1903
+ }[];
1904
+ topSkills: {
1905
+ avgSalaryMin: number;
1906
+ avgSalaryMax: number;
1907
+ jobCount: number;
1908
+ skillSlug: string;
1909
+ skillName: string;
1910
+ }[];
1911
+ relatedTitles: {
1912
+ avgSalaryMin: number;
1913
+ avgSalaryMax: number;
1914
+ jobCount: number;
1915
+ categorySlug: string;
1916
+ categoryName: string;
1917
+ }[];
1918
+ totalLocationCount: number;
1919
+ boardOverallAvgMin: number | null;
1920
+ boardOverallAvgMax: number | null;
1921
+ boardMedianMin: number | null;
1922
+ boardMedianMax: number | null;
1923
+ boardP25Min: number | null;
1924
+ boardP75Max: number | null;
1925
+ currency: string;
1926
+ };
1668
1927
  TokenRequest: {
1669
1928
  /**
1670
1929
  * @description OAuth grant type. Either `authorization_code` to exchange an authorization code for a new token pair, or `refresh_token` to exchange a refresh token for a new token pair.
@@ -2109,7 +2368,7 @@ declare function isConflict(e: unknown): e is BoardApiError;
2109
2368
  * constant because the package is platform-neutral and cannot read
2110
2369
  * package.json at runtime.
2111
2370
  */
2112
- declare const SDK_VERSION = "1.8.0";
2371
+ declare const SDK_VERSION = "1.10.0";
2113
2372
 
2114
2373
  type BoardUser = Schemas['BoardUser'];
2115
2374
  type BoardAuthSession = Schemas['BoardAuthSession'];
@@ -2322,6 +2581,31 @@ type PlacesListQuery = {
2322
2581
  limit?: number;
2323
2582
  };
2324
2583
 
2584
+ /** A job title's salary breakdown (overall + by-seniority + top rails). */
2585
+ type TitleSalaryDetail = Schemas['TitleSalaryDetail'];
2586
+ /** A skill's salary breakdown. */
2587
+ type SkillSalaryDetail = Schemas['SkillSalaryDetail'];
2588
+ /** A place's salary breakdown (city overall + siblings, or area child cities). */
2589
+ type LocationSalaryDetail = Schemas['LocationSalaryDetail'];
2590
+ /** A company on the `/salaries/companies` hub (ranked by sample size). */
2591
+ type SalaryCompany = Schemas['SalaryCompanyIndexItem'];
2592
+ /** A job title on the `/salaries/titles` index. */
2593
+ type SalaryTitle = Schemas['SalaryTitleIndexItem'];
2594
+ /** A skill on the `/salaries/skills` index. */
2595
+ type SalarySkill = Schemas['SalarySkillIndexItem'];
2596
+ /**
2597
+ * A place on the `/salaries/locations` index — a flattened tree node carrying
2598
+ * its `parentSlug` (the consumer rebuilds the country → region → city browse).
2599
+ */
2600
+ type SalaryLocation = Schemas['SalaryLocationIndexItem'];
2601
+ /**
2602
+ * Board-language overlay for a salary read. `en` (the default) is the identity
2603
+ * fast-path; a non-`en` locale overlays board-language names + canonical slugs.
2604
+ */
2605
+ type SalaryDetailQuery = {
2606
+ locale?: string;
2607
+ };
2608
+
2325
2609
  interface CreateBoardClientOptions {
2326
2610
  baseUrl: string;
2327
2611
  /** Board identifier: `pk_…` key (provisioned default) | `boards_…` ID | slug. */
@@ -2930,7 +3214,262 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
2930
3214
  success: boolean;
2931
3215
  }>;
2932
3216
  };
3217
+ salaries: {
3218
+ companies: {
3219
+ list(options?: FetchOptions): Promise<ListEnvelope<{
3220
+ object: "salary_company";
3221
+ companySlug: string;
3222
+ companyName: string;
3223
+ logoPath: string | null;
3224
+ avgSalaryMin: number;
3225
+ avgSalaryMax: number;
3226
+ jobCount: number;
3227
+ currency: string;
3228
+ }>>;
3229
+ };
3230
+ titles: {
3231
+ list(query?: SalaryDetailQuery, options?: FetchOptions): Promise<ListEnvelope<{
3232
+ object: "salary_title";
3233
+ slug: string;
3234
+ name: string;
3235
+ avgSalaryMin: number;
3236
+ avgSalaryMax: number;
3237
+ p25SalaryMin: number;
3238
+ p75SalaryMax: number;
3239
+ jobCount: number;
3240
+ currency: string;
3241
+ }>>;
3242
+ retrieve(categorySlug: string, query?: SalaryDetailQuery, options?: FetchOptions): Promise<{
3243
+ object: "title_salary_detail";
3244
+ sourceSlug: string;
3245
+ canonicalSlug: string;
3246
+ categoryName: string;
3247
+ overallSalary: {
3248
+ avgMin: number;
3249
+ avgMax: number;
3250
+ p25Min: number;
3251
+ p75Max: number;
3252
+ jobCount: number;
3253
+ } | null;
3254
+ bySeniority: {
3255
+ seniority: string;
3256
+ avgSalaryMin: number;
3257
+ avgSalaryMax: number;
3258
+ jobCount: number;
3259
+ boardAvgMin: number | null;
3260
+ boardAvgMax: number | null;
3261
+ boardMedianMin: number | null;
3262
+ boardMedianMax: number | null;
3263
+ boardP25Min: number | null;
3264
+ boardP75Min: number | null;
3265
+ boardP25Max: number | null;
3266
+ boardP75Max: number | null;
3267
+ diffPercent: number | null;
3268
+ }[];
3269
+ topCompanies: {
3270
+ avgSalaryMin: number;
3271
+ avgSalaryMax: number;
3272
+ jobCount: number;
3273
+ companySlug: string;
3274
+ companyName: string;
3275
+ logoPath: string | null;
3276
+ }[];
3277
+ topLocations: {
3278
+ avgSalaryMin: number;
3279
+ avgSalaryMax: number;
3280
+ jobCount: number;
3281
+ placeName: string;
3282
+ placeSlug: string;
3283
+ countryCode: string;
3284
+ }[];
3285
+ topSkills: {
3286
+ avgSalaryMin: number;
3287
+ avgSalaryMax: number;
3288
+ jobCount: number;
3289
+ skillSlug: string;
3290
+ skillName: string;
3291
+ }[];
3292
+ relatedTitles: {
3293
+ avgSalaryMin: number;
3294
+ avgSalaryMax: number;
3295
+ jobCount: number;
3296
+ categorySlug: string;
3297
+ categoryName: string;
3298
+ }[];
3299
+ totalLocationCount: number;
3300
+ boardOverallAvgMin: number | null;
3301
+ boardOverallAvgMax: number | null;
3302
+ boardMedianMin: number | null;
3303
+ boardMedianMax: number | null;
3304
+ boardP25Min: number | null;
3305
+ boardP75Max: number | null;
3306
+ currency: string;
3307
+ }>;
3308
+ };
3309
+ skills: {
3310
+ list(query?: SalaryDetailQuery, options?: FetchOptions): Promise<ListEnvelope<{
3311
+ object: "salary_skill";
3312
+ slug: string;
3313
+ name: string;
3314
+ avgSalaryMin: number;
3315
+ avgSalaryMax: number;
3316
+ p25SalaryMin: number;
3317
+ p75SalaryMax: number;
3318
+ jobCount: number;
3319
+ currency: string;
3320
+ }>>;
3321
+ retrieve(skillSlug: string, query?: SalaryDetailQuery, options?: FetchOptions): Promise<{
3322
+ object: "skill_salary_detail";
3323
+ sourceSlug: string;
3324
+ canonicalSlug: string;
3325
+ skillName: string;
3326
+ overallSalary: {
3327
+ avgMin: number;
3328
+ avgMax: number;
3329
+ medianMin: number;
3330
+ medianMax: number;
3331
+ p25Min: number;
3332
+ p75Max: number;
3333
+ jobCount: number;
3334
+ } | null;
3335
+ bySeniority: {
3336
+ seniority: string;
3337
+ avgSalaryMin: number;
3338
+ avgSalaryMax: number;
3339
+ jobCount: number;
3340
+ boardAvgMin: number | null;
3341
+ boardAvgMax: number | null;
3342
+ diffPercent: number | null;
3343
+ }[];
3344
+ topCompanies: {
3345
+ avgSalaryMin: number;
3346
+ avgSalaryMax: number;
3347
+ jobCount: number;
3348
+ companySlug: string;
3349
+ companyName: string;
3350
+ logoPath: string | null;
3351
+ }[];
3352
+ topLocations: {
3353
+ avgSalaryMin: number;
3354
+ avgSalaryMax: number;
3355
+ jobCount: number;
3356
+ placeName: string;
3357
+ placeSlug: string;
3358
+ countryCode: string;
3359
+ }[];
3360
+ topTitles: {
3361
+ avgSalaryMin: number;
3362
+ avgSalaryMax: number;
3363
+ jobCount: number;
3364
+ categorySlug: string;
3365
+ categoryName: string;
3366
+ }[];
3367
+ relatedSkills: {
3368
+ avgSalaryMin: number;
3369
+ avgSalaryMax: number;
3370
+ jobCount: number;
3371
+ skillSlug: string;
3372
+ skillName: string;
3373
+ }[];
3374
+ totalLocationCount: number;
3375
+ boardOverallAvgMin: number | null;
3376
+ boardOverallAvgMax: number | null;
3377
+ boardMedianMin: number | null;
3378
+ boardMedianMax: number | null;
3379
+ currency: string;
3380
+ }>;
3381
+ };
3382
+ locations: {
3383
+ list(query?: SalaryDetailQuery, options?: FetchOptions): Promise<ListEnvelope<{
3384
+ object: "salary_location";
3385
+ placeSlug: string;
3386
+ placeName: string;
3387
+ parentSlug: string | null;
3388
+ avgSalaryMin: number;
3389
+ avgSalaryMax: number;
3390
+ jobCount: number;
3391
+ }>>;
3392
+ retrieve(locationSlug: string, query?: SalaryDetailQuery, options?: FetchOptions): Promise<{
3393
+ object: "location_salary_detail";
3394
+ sourceSlug: string;
3395
+ canonicalSlug: string;
3396
+ placeName: string;
3397
+ placeId: string;
3398
+ adminLevel: string;
3399
+ countryCode: string;
3400
+ overallSalary: {
3401
+ avgMin: number;
3402
+ avgMax: number;
3403
+ medianMin: number;
3404
+ medianMax: number;
3405
+ p25Min: number;
3406
+ p75Max: number;
3407
+ jobCount: number;
3408
+ } | null;
3409
+ childLocations: {
3410
+ placeName: string;
3411
+ placeSlug: string;
3412
+ countryCode: string;
3413
+ avgSalaryMin: number;
3414
+ avgSalaryMax: number;
3415
+ medianSalaryMin: number;
3416
+ medianSalaryMax: number;
3417
+ p25SalaryMin: number;
3418
+ p75SalaryMax: number;
3419
+ jobCount: number;
3420
+ currency: string;
3421
+ }[];
3422
+ childLocationsByRegion: {
3423
+ regionName: string;
3424
+ regionSlug: string;
3425
+ cities: {
3426
+ placeName: string;
3427
+ placeSlug: string;
3428
+ countryCode: string;
3429
+ avgSalaryMin: number;
3430
+ avgSalaryMax: number;
3431
+ medianSalaryMin: number;
3432
+ medianSalaryMax: number;
3433
+ p25SalaryMin: number;
3434
+ p75SalaryMax: number;
3435
+ jobCount: number;
3436
+ currency: string;
3437
+ }[];
3438
+ }[];
3439
+ topCategories: {
3440
+ avgSalaryMin: number;
3441
+ avgSalaryMax: number;
3442
+ jobCount: number;
3443
+ categorySlug: string;
3444
+ categoryName: string;
3445
+ }[];
3446
+ topSkills: {
3447
+ avgSalaryMin: number;
3448
+ avgSalaryMax: number;
3449
+ jobCount: number;
3450
+ skillSlug: string;
3451
+ skillName: string;
3452
+ }[];
3453
+ siblingLocations: {
3454
+ placeName: string;
3455
+ placeSlug: string;
3456
+ countryCode: string;
3457
+ avgSalaryMin: number;
3458
+ avgSalaryMax: number;
3459
+ medianSalaryMin: number;
3460
+ medianSalaryMax: number;
3461
+ p25SalaryMin: number;
3462
+ p75SalaryMax: number;
3463
+ jobCount: number;
3464
+ currency: string;
3465
+ }[];
3466
+ boardOverallAvgMin: number | null;
3467
+ boardOverallAvgMax: number | null;
3468
+ currency: string;
3469
+ }>;
3470
+ };
3471
+ };
2933
3472
  };
2934
3473
  type BoardSdk = ReturnType<typeof createBoardClient>;
2935
3474
 
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 };
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 };
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.8.0";
152
+ var SDK_VERSION = "1.10.0";
153
153
 
154
154
  // src/client.ts
155
155
  function isRawBody(body) {
@@ -843,6 +843,64 @@ function redirectsNamespace(client) {
843
843
  };
844
844
  }
845
845
 
846
+ // src/namespaces/salaries.ts
847
+ function salariesNamespace(client) {
848
+ return {
849
+ /** The `/salaries/companies` hub — companies ranked by salary sample size. */
850
+ companies: {
851
+ list(options) {
852
+ return client.fetch(
853
+ "/salaries/companies",
854
+ options
855
+ );
856
+ }
857
+ },
858
+ titles: {
859
+ list(query, options) {
860
+ return client.fetch("/salaries/titles", {
861
+ ...options,
862
+ query
863
+ });
864
+ },
865
+ retrieve(categorySlug, query, options) {
866
+ return client.fetch(
867
+ `/salaries/titles/${encodeURIComponent(categorySlug)}`,
868
+ { ...options, query }
869
+ );
870
+ }
871
+ },
872
+ skills: {
873
+ list(query, options) {
874
+ return client.fetch("/salaries/skills", {
875
+ ...options,
876
+ query
877
+ });
878
+ },
879
+ retrieve(skillSlug, query, options) {
880
+ return client.fetch(
881
+ `/salaries/skills/${encodeURIComponent(skillSlug)}`,
882
+ { ...options, query }
883
+ );
884
+ }
885
+ },
886
+ locations: {
887
+ /** The place hierarchy flattened to a list with `parentSlug` edges. */
888
+ list(query, options) {
889
+ return client.fetch(
890
+ "/salaries/locations",
891
+ { ...options, query }
892
+ );
893
+ },
894
+ retrieve(locationSlug, query, options) {
895
+ return client.fetch(
896
+ `/salaries/locations/${encodeURIComponent(locationSlug)}`,
897
+ { ...options, query }
898
+ );
899
+ }
900
+ }
901
+ };
902
+ }
903
+
846
904
  // src/namespaces/taxonomy.ts
847
905
  function taxonomyResolver(client, kind) {
848
906
  return {
@@ -927,6 +985,7 @@ function createBoardClient(options) {
927
985
  password: passwordNamespace(client),
928
986
  taxonomy: taxonomyNamespace(client),
929
987
  redirects: redirectsNamespace(client),
930
- jobAlerts: jobAlertsNamespace(client)
988
+ jobAlerts: jobAlertsNamespace(client),
989
+ salaries: salariesNamespace(client)
931
990
  };
932
991
  }
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.8.0";
112
+ var SDK_VERSION = "1.10.0";
113
113
 
114
114
  // src/client.ts
115
115
  function isRawBody(body) {
@@ -803,6 +803,64 @@ function redirectsNamespace(client) {
803
803
  };
804
804
  }
805
805
 
806
+ // src/namespaces/salaries.ts
807
+ function salariesNamespace(client) {
808
+ return {
809
+ /** The `/salaries/companies` hub — companies ranked by salary sample size. */
810
+ companies: {
811
+ list(options) {
812
+ return client.fetch(
813
+ "/salaries/companies",
814
+ options
815
+ );
816
+ }
817
+ },
818
+ titles: {
819
+ list(query, options) {
820
+ return client.fetch("/salaries/titles", {
821
+ ...options,
822
+ query
823
+ });
824
+ },
825
+ retrieve(categorySlug, query, options) {
826
+ return client.fetch(
827
+ `/salaries/titles/${encodeURIComponent(categorySlug)}`,
828
+ { ...options, query }
829
+ );
830
+ }
831
+ },
832
+ skills: {
833
+ list(query, options) {
834
+ return client.fetch("/salaries/skills", {
835
+ ...options,
836
+ query
837
+ });
838
+ },
839
+ retrieve(skillSlug, query, options) {
840
+ return client.fetch(
841
+ `/salaries/skills/${encodeURIComponent(skillSlug)}`,
842
+ { ...options, query }
843
+ );
844
+ }
845
+ },
846
+ locations: {
847
+ /** The place hierarchy flattened to a list with `parentSlug` edges. */
848
+ list(query, options) {
849
+ return client.fetch(
850
+ "/salaries/locations",
851
+ { ...options, query }
852
+ );
853
+ },
854
+ retrieve(locationSlug, query, options) {
855
+ return client.fetch(
856
+ `/salaries/locations/${encodeURIComponent(locationSlug)}`,
857
+ { ...options, query }
858
+ );
859
+ }
860
+ }
861
+ };
862
+ }
863
+
806
864
  // src/namespaces/taxonomy.ts
807
865
  function taxonomyResolver(client, kind) {
808
866
  return {
@@ -887,7 +945,8 @@ function createBoardClient(options) {
887
945
  password: passwordNamespace(client),
888
946
  taxonomy: taxonomyNamespace(client),
889
947
  redirects: redirectsNamespace(client),
890
- jobAlerts: jobAlertsNamespace(client)
948
+ jobAlerts: jobAlertsNamespace(client),
949
+ salaries: salariesNamespace(client)
891
950
  };
892
951
  }
893
952
  export {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cavuno/board",
3
- "version": "1.8.0",
3
+ "version": "1.10.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.8.0",
2
+ "version": "1.10.0",
3
3
  "skills": [
4
4
  {
5
5
  "name": "cavuno-board-auth",