@cavuno/board 4.26.0 → 4.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/CHANGELOG.md +134 -0
  2. package/dist/{_spec-EgN7VmAI.d.mts → _spec-DQvmsp5o.d.mts} +589 -67
  3. package/dist/{_spec-EgN7VmAI.d.ts → _spec-DQvmsp5o.d.ts} +589 -67
  4. package/dist/bin.mjs +7989 -10
  5. package/dist/{blog-BIjFcNcm.d.ts → blog-CUkvhn3c.d.ts} +1 -1
  6. package/dist/{blog-T7gQ0ciz.d.mts → blog-CvuObn9O.d.mts} +1 -1
  7. package/dist/{board-CsEAgsKh.d.ts → board-CCG1pO6r.d.ts} +25 -4
  8. package/dist/{board-q0svBKW3.d.mts → board-D6xOidUX.d.mts} +25 -4
  9. package/dist/{breadcrumbs-CFcCjuG7.d.mts → breadcrumbs-BBvJ5gq-.d.mts} +2 -2
  10. package/dist/{breadcrumbs-xuDid8BS.d.ts → breadcrumbs-D2Cwrju4.d.ts} +2 -2
  11. package/dist/browser/cavuno-board.global.min.js +1 -1
  12. package/dist/{chunk-DP2ZZZEO.mjs → chunk-EHSB2VAJ.mjs} +5 -0
  13. package/dist/doctor.js +7989 -10
  14. package/dist/doctor.mjs +7989 -10
  15. package/dist/filters.d.mts +19 -3
  16. package/dist/filters.d.ts +19 -3
  17. package/dist/filters.js +10 -1
  18. package/dist/filters.mjs +10 -1
  19. package/dist/format.d.mts +4 -4
  20. package/dist/format.d.ts +4 -4
  21. package/dist/index.d.mts +251 -14
  22. package/dist/index.d.ts +251 -14
  23. package/dist/index.js +218 -26
  24. package/dist/index.mjs +214 -27
  25. package/dist/{jobs-ub3gywNQ.d.ts → jobs-CEIuahbz.d.ts} +26 -2
  26. package/dist/{jobs-CfrxlDMU.d.mts → jobs-DjMcghv6.d.mts} +26 -2
  27. package/dist/{search-DKS7OIn2.d.mts → search-C0LiPXVb.d.mts} +1 -1
  28. package/dist/{search-Dx1TiAZk.d.ts → search-D-EjtZH3.d.ts} +1 -1
  29. package/dist/{seo-BbG2Ujyo.d.ts → seo-CjNGqZZH.d.ts} +1 -1
  30. package/dist/{seo-CI3wLKUW.d.mts → seo-DCQp8V1c.d.mts} +1 -1
  31. package/dist/seo-files.d.mts +2 -2
  32. package/dist/seo-files.d.ts +2 -2
  33. package/dist/seo.d.mts +6 -6
  34. package/dist/seo.d.ts +6 -6
  35. package/dist/server.d.mts +6 -6
  36. package/dist/server.d.ts +6 -6
  37. package/dist/server.mjs +1 -1
  38. package/dist/sitemap.d.mts +6 -6
  39. package/dist/sitemap.d.ts +6 -6
  40. package/dist/sitemap.mjs +1 -1
  41. package/dist/suggest.d.mts +2 -2
  42. package/dist/suggest.d.ts +2 -2
  43. package/package.json +2 -1
  44. package/skills/cavuno-board-account/SKILL.md +122 -1
  45. package/skills/cavuno-board-collections/SKILL.md +148 -0
  46. package/skills/cavuno-board-companies/SKILL.md +43 -1
  47. package/skills/cavuno-board-errors/SKILL.md +1 -1
  48. package/skills/cavuno-board-filters/SKILL.md +160 -1
  49. package/skills/cavuno-board-format/SKILL.md +52 -0
  50. package/skills/cavuno-board-paywall/SKILL.md +5 -2
  51. package/skills/cavuno-board-post-a-job/SKILL.md +88 -0
  52. package/skills/cavuno-board-salaries/SKILL.md +7 -0
  53. package/skills/manifest.json +11 -4
package/dist/index.js CHANGED
@@ -56,6 +56,7 @@ var BOARD_API_ERROR_CODES = [
56
56
  "rate_limited",
57
57
  "rate_limit_unavailable",
58
58
  "search_unavailable",
59
+ "search_filter_unavailable",
59
60
  "too_many_filter_values",
60
61
  "pagination_invalid_cursor",
61
62
  "pagination_offset_too_large",
@@ -88,6 +89,9 @@ var BOARD_API_ERROR_CODES = [
88
89
  "categories_not_found",
89
90
  "skills_not_found",
90
91
  "places_not_found",
92
+ // Location search + `locationId` on job office locations
93
+ "locations_invalid_id",
94
+ "locations_unavailable",
91
95
  // Companies (public reads)
92
96
  "companies_not_found",
93
97
  "company_markets_not_found",
@@ -119,6 +123,7 @@ var BOARD_API_ERROR_CODES = [
119
123
  "candidate_handle_taken",
120
124
  "candidate_job_not_found",
121
125
  "candidate_notification_preference_paused",
126
+ "candidate_profile_required",
122
127
  "resume_invalid_file",
123
128
  "resume_upload_forbidden",
124
129
  // Applications
@@ -358,7 +363,7 @@ async function clearSession(storage) {
358
363
  }
359
364
 
360
365
  // src/version.ts
361
- var SDK_VERSION = "4.26.0";
366
+ var SDK_VERSION = "4.28.0";
362
367
 
363
368
  // src/client.ts
364
369
  function isRawBody(body) {
@@ -1078,6 +1083,13 @@ function jobPostingNamespace(client) {
1078
1083
  // src/namespaces/jobs.ts
1079
1084
  function jobsNamespace(client) {
1080
1085
  return {
1086
+ /** List active entries available to a job collection field. Follow nextCursor for more. */
1087
+ collectionChoices(fieldKey, query, options) {
1088
+ return client.fetch(
1089
+ `/job-fields/${encodeURIComponent(fieldKey)}/choices`,
1090
+ { ...options, query }
1091
+ );
1092
+ },
1081
1093
  /**
1082
1094
  * List published jobs.
1083
1095
  *
@@ -1111,7 +1123,7 @@ function jobsNamespace(client) {
1111
1123
  * @example
1112
1124
  * const { data } = await board.jobs.search({
1113
1125
  * query: 'chef',
1114
- * filters: { seniority: ['senior'] },
1126
+ * filters: { seniority: ['senior'], categories: ['engineering'] },
1115
1127
  * });
1116
1128
  */
1117
1129
  search(body, query, options) {
@@ -1226,6 +1238,37 @@ function jobsNamespace(client) {
1226
1238
  };
1227
1239
  }
1228
1240
 
1241
+ // src/namespaces/locations.ts
1242
+ function locationsNamespace(client) {
1243
+ return {
1244
+ /**
1245
+ * GET /locations/search — worldwide autocomplete over countries,
1246
+ * regions, cities, and localities, not only places the board's jobs already
1247
+ * use (that is `taxonomy.places.list({ q })`). Order is the contract: do
1248
+ * not re-sort. Complete a pick with `locations.resolve` using the same
1249
+ * session before sending its `id` as `locationId` later.
1250
+ *
1251
+ * @example
1252
+ * const session = crypto.randomUUID();
1253
+ * const { data } = await board.locations.search({ q: 'berl', session });
1254
+ */
1255
+ search(query, options) {
1256
+ return client.fetch("/locations/search", {
1257
+ ...options,
1258
+ query
1259
+ });
1260
+ },
1261
+ /** Complete a picked suggestion with the same search session. */
1262
+ resolve(input, options) {
1263
+ return client.fetch("/locations/resolve", {
1264
+ ...options,
1265
+ method: "POST",
1266
+ body: input
1267
+ });
1268
+ }
1269
+ };
1270
+ }
1271
+
1229
1272
  // src/namespaces/me.ts
1230
1273
  function meNamespace(client) {
1231
1274
  return {
@@ -1322,6 +1365,13 @@ function meNamespace(client) {
1322
1365
  * experience / education / skills / languages collections + avatar.
1323
1366
  */
1324
1367
  profile: {
1368
+ /** List selectable records for an owner-editable catalog field, including private fields. */
1369
+ listObjectReferenceChoices(fieldKey, query, options) {
1370
+ return client.fetch(
1371
+ "/me/profile/object-references/choices",
1372
+ { ...options, query: { ...query, fieldKey } }
1373
+ );
1374
+ },
1325
1375
  /**
1326
1376
  * Retrieve my lean candidate profile.
1327
1377
  *
@@ -1349,6 +1399,34 @@ function meNamespace(client) {
1349
1399
  query
1350
1400
  });
1351
1401
  },
1402
+ /** Retrieve my profile custom-field definitions and current values. */
1403
+ retrieveCustomFields(options) {
1404
+ return client.fetch("/me/profile/custom-fields", {
1405
+ ...options
1406
+ });
1407
+ },
1408
+ /** Additively update my editable candidate profile custom fields. */
1409
+ updateCustomFields(body, options) {
1410
+ return client.fetch("/me/profile/custom-fields", {
1411
+ ...options,
1412
+ method: "PATCH",
1413
+ body
1414
+ });
1415
+ },
1416
+ /** Retrieve editable catalog references on my candidate profile. */
1417
+ retrieveObjectReferences(options) {
1418
+ return client.fetch(
1419
+ "/me/profile/object-references",
1420
+ options
1421
+ );
1422
+ },
1423
+ /** Replace editable catalog references on my candidate profile. */
1424
+ updateObjectReferences(body, options) {
1425
+ return client.fetch(
1426
+ "/me/profile/object-references",
1427
+ { ...options, method: "PUT", body }
1428
+ );
1429
+ },
1352
1430
  /**
1353
1431
  * Check whether a handle is available for me on this board (my own
1354
1432
  * current handle counts as available). Advisory — `update` re-checks.
@@ -1502,6 +1580,27 @@ function meNamespace(client) {
1502
1580
  * claiming a company — the same identity can also be a candidate.
1503
1581
  */
1504
1582
  companies: {
1583
+ /** List selectable records for an approved company's owner-editable catalog field. */
1584
+ listObjectReferenceChoices(slug, fieldKey, query, options) {
1585
+ return client.fetch(
1586
+ `/me/companies/${encodeURIComponent(slug)}/object-references/choices`,
1587
+ { ...options, query: { ...query, fieldKey } }
1588
+ );
1589
+ },
1590
+ /** Retrieve editable catalog references for one of my companies. */
1591
+ retrieveObjectReferences(slug, options) {
1592
+ return client.fetch(
1593
+ `/me/companies/${encodeURIComponent(slug)}/object-references`,
1594
+ options
1595
+ );
1596
+ },
1597
+ /** Replace editable catalog references for one of my companies. */
1598
+ updateObjectReferences(slug, body, options) {
1599
+ return client.fetch(
1600
+ `/me/companies/${encodeURIComponent(slug)}/object-references`,
1601
+ { ...options, method: "PUT", body }
1602
+ );
1603
+ },
1505
1604
  /**
1506
1605
  * Search companies on this board to claim.
1507
1606
  *
@@ -1592,6 +1691,20 @@ function meNamespace(client) {
1592
1691
  { ...options, method: "PATCH", body }
1593
1692
  );
1594
1693
  },
1694
+ /** Retrieve profile custom fields for a company I belong to. */
1695
+ retrieveCustomFields(slug, options) {
1696
+ return client.fetch(
1697
+ `/me/companies/${encodeURIComponent(slug)}/custom-fields`,
1698
+ options
1699
+ );
1700
+ },
1701
+ /** Additively update editable custom fields for a company I belong to. */
1702
+ updateCustomFields(slug, body, options) {
1703
+ return client.fetch(
1704
+ `/me/companies/${encodeURIComponent(slug)}/custom-fields`,
1705
+ { ...options, method: "PATCH", body }
1706
+ );
1707
+ },
1595
1708
  /**
1596
1709
  * Delete a company I admin (soft-delete cascade + Forager
1597
1710
  * exclusion). Resolves void on success (204).
@@ -1628,7 +1741,9 @@ function meNamespace(client) {
1628
1741
  */
1629
1742
  updateMemberRole(slug, memberId, body, options) {
1630
1743
  return client.fetch(
1631
- `/me/companies/${encodeURIComponent(slug)}/members/${encodeURIComponent(memberId)}`,
1744
+ `/me/companies/${encodeURIComponent(
1745
+ slug
1746
+ )}/members/${encodeURIComponent(memberId)}`,
1632
1747
  { ...options, method: "PATCH", body }
1633
1748
  );
1634
1749
  },
@@ -1641,7 +1756,9 @@ function meNamespace(client) {
1641
1756
  */
1642
1757
  removeMember(slug, memberId, options) {
1643
1758
  return client.fetch(
1644
- `/me/companies/${encodeURIComponent(slug)}/members/${encodeURIComponent(memberId)}`,
1759
+ `/me/companies/${encodeURIComponent(
1760
+ slug
1761
+ )}/members/${encodeURIComponent(memberId)}`,
1645
1762
  { ...options, method: "DELETE" }
1646
1763
  );
1647
1764
  },
@@ -1693,7 +1810,9 @@ function meNamespace(client) {
1693
1810
  */
1694
1811
  retrieveMembershipCheckout(slug, sessionId, options) {
1695
1812
  return client.fetch(
1696
- `/me/companies/${encodeURIComponent(slug)}/membership/checkout/${encodeURIComponent(sessionId)}`,
1813
+ `/me/companies/${encodeURIComponent(
1814
+ slug
1815
+ )}/membership/checkout/${encodeURIComponent(sessionId)}`,
1697
1816
  options
1698
1817
  );
1699
1818
  },
@@ -1733,7 +1852,9 @@ function meNamespace(client) {
1733
1852
  */
1734
1853
  revokeInvite(slug, inviteId, options) {
1735
1854
  return client.fetch(
1736
- `/me/companies/${encodeURIComponent(slug)}/invites/${encodeURIComponent(inviteId)}`,
1855
+ `/me/companies/${encodeURIComponent(
1856
+ slug
1857
+ )}/invites/${encodeURIComponent(inviteId)}`,
1737
1858
  { ...options, method: "DELETE" }
1738
1859
  );
1739
1860
  },
@@ -1815,18 +1936,27 @@ function meNamespace(client) {
1815
1936
  */
1816
1937
  retrieve(slug, id, options) {
1817
1938
  return client.fetch(
1818
- `/me/companies/${encodeURIComponent(slug)}/jobs/${encodeURIComponent(id)}`,
1939
+ `/me/companies/${encodeURIComponent(
1940
+ slug
1941
+ )}/jobs/${encodeURIComponent(id)}`,
1819
1942
  options
1820
1943
  );
1821
1944
  },
1822
1945
  /**
1823
1946
  * Create a job as a held draft. Returns the created job.
1947
+ * `remoteOption` is required. A `salaryMin` or `salaryMax` needs both
1948
+ * `salaryCurrency` and `salaryTimeframe`.
1824
1949
  *
1825
1950
  * @example
1826
1951
  * await board.me.companies.jobs.create('acme', {
1827
1952
  * title: 'Staff Engineer',
1828
1953
  * description: '…',
1829
1954
  * applicationUrl: 'https://acme.com/apply',
1955
+ * remoteOption: 'remote',
1956
+ * remotePermits: [{ type: 'worldwide', value: 'worldwide' }],
1957
+ * salaryMin: 150000,
1958
+ * salaryCurrency: 'USD',
1959
+ * salaryTimeframe: 'per_year',
1830
1960
  * });
1831
1961
  */
1832
1962
  create(slug, body, options) {
@@ -1846,7 +1976,9 @@ function meNamespace(client) {
1846
1976
  */
1847
1977
  update(slug, id, body, options) {
1848
1978
  return client.fetch(
1849
- `/me/companies/${encodeURIComponent(slug)}/jobs/${encodeURIComponent(id)}`,
1979
+ `/me/companies/${encodeURIComponent(
1980
+ slug
1981
+ )}/jobs/${encodeURIComponent(id)}`,
1850
1982
  { ...options, method: "PATCH", body }
1851
1983
  );
1852
1984
  },
@@ -1858,7 +1990,9 @@ function meNamespace(client) {
1858
1990
  */
1859
1991
  delete(slug, id, options) {
1860
1992
  return client.fetch(
1861
- `/me/companies/${encodeURIComponent(slug)}/jobs/${encodeURIComponent(id)}`,
1993
+ `/me/companies/${encodeURIComponent(
1994
+ slug
1995
+ )}/jobs/${encodeURIComponent(id)}`,
1862
1996
  { ...options, method: "DELETE" }
1863
1997
  );
1864
1998
  },
@@ -1872,7 +2006,9 @@ function meNamespace(client) {
1872
2006
  */
1873
2007
  publish(slug, id, options) {
1874
2008
  return client.fetch(
1875
- `/me/companies/${encodeURIComponent(slug)}/jobs/${encodeURIComponent(id)}/publish`,
2009
+ `/me/companies/${encodeURIComponent(
2010
+ slug
2011
+ )}/jobs/${encodeURIComponent(id)}/publish`,
1876
2012
  { ...options, method: "POST" }
1877
2013
  );
1878
2014
  },
@@ -1885,26 +2021,34 @@ function meNamespace(client) {
1885
2021
  */
1886
2022
  unpublish(slug, id, options) {
1887
2023
  return client.fetch(
1888
- `/me/companies/${encodeURIComponent(slug)}/jobs/${encodeURIComponent(id)}/unpublish`,
2024
+ `/me/companies/${encodeURIComponent(
2025
+ slug
2026
+ )}/jobs/${encodeURIComponent(id)}/unpublish`,
1889
2027
  { ...options, method: "POST" }
1890
2028
  );
1891
2029
  },
1892
2030
  /**
1893
2031
  * Pay for / publish a held draft. Select billing: a paid plan
1894
2032
  * returns `{ status: 'checkout', checkoutUrl }` (send the buyer there;
1895
- * the webhook publishes on payment); a free / bundle / subscription plan
1896
- * publishes immediately (`status: 'published'`); an invoice plan emails a
1897
- * Stripe invoice (`status: 'invoice_sent'`).
2033
+ * the webhook publishes on payment); a free plan publishes immediately
2034
+ * (`status: 'published'`) unless the board requires free-job approval
2035
+ * (`status: 'pending_approval'`); bundle, subscription, and member-credit
2036
+ * posts always publish immediately; an invoice plan emails a Stripe
2037
+ * invoice (`status: 'invoice_sent'`) or holds an on-issue post for
2038
+ * approval.
1898
2039
  *
1899
2040
  * @example
1900
2041
  * const r = await board.me.companies.jobs.checkout('acme', jobId, {
1901
2042
  * billing: { type: 'new', planId },
1902
2043
  * });
1903
2044
  * if (r.status === 'checkout') location.href = r.checkoutUrl!;
2045
+ * if (r.status === 'pending_approval') showAwaitingReview(r.jobId);
1904
2046
  */
1905
2047
  checkout(slug, id, body, options) {
1906
2048
  return client.fetch(
1907
- `/me/companies/${encodeURIComponent(slug)}/jobs/${encodeURIComponent(id)}/checkout`,
2049
+ `/me/companies/${encodeURIComponent(
2050
+ slug
2051
+ )}/jobs/${encodeURIComponent(id)}/checkout`,
1908
2052
  { ...options, method: "POST", body }
1909
2053
  );
1910
2054
  }
@@ -2026,7 +2170,9 @@ function meNamespace(client) {
2026
2170
  */
2027
2171
  timeseries(slug, query, options) {
2028
2172
  return client.fetch(
2029
- `/me/companies/${encodeURIComponent(slug)}/profile-stats/timeseries`,
2173
+ `/me/companies/${encodeURIComponent(
2174
+ slug
2175
+ )}/profile-stats/timeseries`,
2030
2176
  { ...options, query }
2031
2177
  );
2032
2178
  }
@@ -2102,14 +2248,18 @@ function meNamespace(client) {
2102
2248
  */
2103
2249
  update(slug, listId, body, options) {
2104
2250
  return client.fetch(
2105
- `/me/companies/${encodeURIComponent(slug)}/talent-lists/${encodeURIComponent(listId)}`,
2251
+ `/me/companies/${encodeURIComponent(
2252
+ slug
2253
+ )}/talent-lists/${encodeURIComponent(listId)}`,
2106
2254
  { ...options, method: "PATCH", body }
2107
2255
  );
2108
2256
  },
2109
2257
  /** Delete a talent list. Sourced membership is unaffected. */
2110
2258
  remove(slug, listId, options) {
2111
2259
  return client.fetch(
2112
- `/me/companies/${encodeURIComponent(slug)}/talent-lists/${encodeURIComponent(listId)}`,
2260
+ `/me/companies/${encodeURIComponent(
2261
+ slug
2262
+ )}/talent-lists/${encodeURIComponent(listId)}`,
2113
2263
  { ...options, method: "DELETE" }
2114
2264
  );
2115
2265
  }
@@ -2157,7 +2307,9 @@ function meNamespace(client) {
2157
2307
  /** Remove a sourced membership. Does not touch pipeline applications. */
2158
2308
  remove(slug, sourcedId, options) {
2159
2309
  return client.fetch(
2160
- `/me/companies/${encodeURIComponent(slug)}/sourced-candidates/${encodeURIComponent(sourcedId)}`,
2310
+ `/me/companies/${encodeURIComponent(
2311
+ slug
2312
+ )}/sourced-candidates/${encodeURIComponent(sourcedId)}`,
2161
2313
  { ...options, method: "DELETE" }
2162
2314
  );
2163
2315
  },
@@ -2177,7 +2329,9 @@ function meNamespace(client) {
2177
2329
  */
2178
2330
  convert(slug, sourcedId, body, options) {
2179
2331
  return client.fetch(
2180
- `/me/companies/${encodeURIComponent(slug)}/sourced-candidates/${encodeURIComponent(sourcedId)}/convert`,
2332
+ `/me/companies/${encodeURIComponent(
2333
+ slug
2334
+ )}/sourced-candidates/${encodeURIComponent(sourcedId)}/convert`,
2181
2335
  { ...options, method: "POST", body }
2182
2336
  );
2183
2337
  }
@@ -2217,7 +2371,9 @@ function meNamespace(client) {
2217
2371
  */
2218
2372
  move(slug, applicationId, body, options) {
2219
2373
  return client.fetch(
2220
- `/me/companies/${encodeURIComponent(slug)}/applicants/${encodeURIComponent(applicationId)}/stage`,
2374
+ `/me/companies/${encodeURIComponent(
2375
+ slug
2376
+ )}/applicants/${encodeURIComponent(applicationId)}/stage`,
2221
2377
  { ...options, method: "PATCH", body }
2222
2378
  );
2223
2379
  },
@@ -2262,7 +2418,9 @@ function meNamespace(client) {
2262
2418
  */
2263
2419
  addNote(slug, applicationId, body, options) {
2264
2420
  return client.fetch(
2265
- `/me/companies/${encodeURIComponent(slug)}/applicants/${encodeURIComponent(applicationId)}/notes`,
2421
+ `/me/companies/${encodeURIComponent(
2422
+ slug
2423
+ )}/applicants/${encodeURIComponent(applicationId)}/notes`,
2266
2424
  { ...options, method: "POST", body }
2267
2425
  );
2268
2426
  }
@@ -2299,7 +2457,9 @@ function meNamespace(client) {
2299
2457
  */
2300
2458
  update(slug, stageId, body, options) {
2301
2459
  return client.fetch(
2302
- `/me/companies/${encodeURIComponent(slug)}/pipeline-stages/${encodeURIComponent(stageId)}`,
2460
+ `/me/companies/${encodeURIComponent(
2461
+ slug
2462
+ )}/pipeline-stages/${encodeURIComponent(stageId)}`,
2303
2463
  { ...options, method: "PATCH", body }
2304
2464
  );
2305
2465
  },
@@ -2312,7 +2472,9 @@ function meNamespace(client) {
2312
2472
  */
2313
2473
  remove(slug, stageId, options) {
2314
2474
  return client.fetch(
2315
- `/me/companies/${encodeURIComponent(slug)}/pipeline-stages/${encodeURIComponent(stageId)}`,
2475
+ `/me/companies/${encodeURIComponent(
2476
+ slug
2477
+ )}/pipeline-stages/${encodeURIComponent(stageId)}`,
2316
2478
  { ...options, method: "DELETE" }
2317
2479
  );
2318
2480
  },
@@ -2982,8 +3144,11 @@ function meNamespace(client) {
2982
3144
  * profile.
2983
3145
  *
2984
3146
  * @example
3147
+ * const { data: offers } = await board.paywall.offers();
3148
+ * const selectedOffer = offers[0]; // Or the offer selected in your UI.
3149
+ * if (!selectedOffer) throw new Error('No access offers available');
2985
3150
  * const kit = await board.me.access.checkout({
2986
- * offerKey: 'monthly',
3151
+ * offerKey: selectedOffer.offerKey,
2987
3152
  * returnPath: '/account/access',
2988
3153
  * colorMode: 'light',
2989
3154
  * });
@@ -3125,6 +3290,26 @@ function plansNamespace(client) {
3125
3290
  };
3126
3291
  }
3127
3292
 
3293
+ // src/namespaces/profile-fields.ts
3294
+ function profileFieldsNamespace(client) {
3295
+ return {
3296
+ /** Discover public scalar and catalog field definitions for a profile type. */
3297
+ retrieve(entity, options) {
3298
+ return client.fetch(
3299
+ `/profile-fields/${encodeURIComponent(entity)}`,
3300
+ options
3301
+ );
3302
+ },
3303
+ /** Discover active choices for a public catalog field; follow nextCursor for more. */
3304
+ choices(entity, fieldKey, query, options) {
3305
+ return client.fetch(
3306
+ `/profile-fields/${encodeURIComponent(entity)}/${encodeURIComponent(fieldKey)}/choices`,
3307
+ { ...options, query }
3308
+ );
3309
+ }
3310
+ };
3311
+ }
3312
+
3128
3313
  // src/namespaces/redirects.ts
3129
3314
  function redirectsNamespace(client) {
3130
3315
  return {
@@ -3302,9 +3487,14 @@ function talentNamespace(client) {
3302
3487
  * const { data } = await board.talent.list({ skill: 'react', limit: 20 });
3303
3488
  */
3304
3489
  list(query, options) {
3490
+ const serializedQuery = query ? {
3491
+ ...query,
3492
+ customFields: query.customFields ? JSON.stringify(query.customFields) : void 0,
3493
+ objectReferences: query.objectReferences ? JSON.stringify(query.objectReferences) : void 0
3494
+ } : void 0;
3305
3495
  return client.fetch("/talent", {
3306
3496
  ...options,
3307
- query
3497
+ query: serializedQuery
3308
3498
  });
3309
3499
  },
3310
3500
  /**
@@ -3514,11 +3704,13 @@ function createBoardClient(options) {
3514
3704
  password: passwordNamespace(client),
3515
3705
  taxonomy: taxonomyNamespace(client),
3516
3706
  search: searchNamespace(client),
3707
+ locations: locationsNamespace(client),
3517
3708
  redirects: redirectsNamespace(client),
3518
3709
  jobAlerts: jobAlertsNamespace(client),
3519
3710
  jobPosting: jobPostingNamespace(client),
3520
3711
  salaries: salariesNamespace(client),
3521
3712
  talent: talentNamespace(client),
3713
+ profileFields: profileFieldsNamespace(client),
3522
3714
  plans: plansNamespace(client),
3523
3715
  paywall: paywallNamespace(client),
3524
3716
  sitemap: sitemapNamespace(client)