@cavuno/board 4.13.0 → 4.15.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 (38) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/dist/{_spec-mFq9K67X.d.mts → _spec-DdWB8z1Z.d.mts} +60 -0
  3. package/dist/{_spec-mFq9K67X.d.ts → _spec-DdWB8z1Z.d.ts} +60 -0
  4. package/dist/{blog-BJF7uypj.d.ts → blog-B7xorPBw.d.ts} +1 -1
  5. package/dist/{blog-ClPGMp-z.d.mts → blog-DopIQsKV.d.mts} +1 -1
  6. package/dist/{board-Po58Sn65.d.ts → board-Bpnqn4Rg.d.ts} +2 -2
  7. package/dist/{board-CkYDc1Lz.d.mts → board-CkgTW4cC.d.mts} +2 -2
  8. package/dist/{breadcrumbs-BSP53mOY.d.mts → breadcrumbs-CAppxMoS.d.mts} +2 -2
  9. package/dist/{breadcrumbs-BZzQwS8O.d.ts → breadcrumbs-DelEqbSz.d.ts} +2 -2
  10. package/dist/browser/cavuno-board.global.min.js +1 -1
  11. package/dist/{chunk-XEJWXRLK.mjs → chunk-W73BOGOQ.mjs} +4 -0
  12. package/dist/filters.d.mts +2 -2
  13. package/dist/filters.d.ts +2 -2
  14. package/dist/format.d.mts +4 -4
  15. package/dist/format.d.ts +4 -4
  16. package/dist/index.d.mts +117 -13
  17. package/dist/index.d.ts +117 -13
  18. package/dist/index.js +145 -1
  19. package/dist/index.mjs +142 -2
  20. package/dist/{jobs-hZ3Kezhg.d.ts → jobs-CExc4QdI.d.ts} +1 -1
  21. package/dist/{jobs-BWpm-Jf0.d.mts → jobs-Dq0TTcRf.d.mts} +1 -1
  22. package/dist/{search-DSLK6Cch.d.ts → search-CZOec95V.d.ts} +1 -1
  23. package/dist/{search-DRIGekdi.d.mts → search-D6hau3d4.d.mts} +1 -1
  24. package/dist/{seo-CMNJMZcT.d.ts → seo-C1hFa0-v.d.ts} +1 -1
  25. package/dist/{seo-D9wvr1nK.d.mts → seo-CJSwd_ss.d.mts} +1 -1
  26. package/dist/seo-files.d.mts +2 -2
  27. package/dist/seo-files.d.ts +2 -2
  28. package/dist/seo.d.mts +6 -6
  29. package/dist/seo.d.ts +6 -6
  30. package/dist/server.d.mts +6 -6
  31. package/dist/server.d.ts +6 -6
  32. package/dist/server.mjs +1 -1
  33. package/dist/sitemap.d.mts +6 -6
  34. package/dist/sitemap.d.ts +6 -6
  35. package/dist/suggest.d.mts +2 -2
  36. package/dist/suggest.d.ts +2 -2
  37. package/package.json +1 -1
  38. package/skills/manifest.json +1 -1
package/dist/index.mjs CHANGED
@@ -15,7 +15,7 @@ import {
15
15
  isValidationError,
16
16
  resolveStorage,
17
17
  writeSession
18
- } from "./chunk-XEJWXRLK.mjs";
18
+ } from "./chunk-W73BOGOQ.mjs";
19
19
  import {
20
20
  paginate
21
21
  } from "./chunk-DLSO6XXY.mjs";
@@ -39,7 +39,7 @@ function toSearchParams(query) {
39
39
  }
40
40
 
41
41
  // src/version.ts
42
- var SDK_VERSION = "4.13.0";
42
+ var SDK_VERSION = "4.15.0";
43
43
 
44
44
  // src/client.ts
45
45
  function isRawBody(body) {
@@ -253,6 +253,23 @@ function authNamespace(client) {
253
253
  body
254
254
  });
255
255
  },
256
+ /**
257
+ * Confirm an employer work-email verification token (from the link in the
258
+ * work-email verification email) and promote the pending company claim —
259
+ * approved on domain match, otherwise `awaiting_admin`. No session needed:
260
+ * the single-use token IS the authorization, and it alone identifies the
261
+ * membership. Returns the membership in its new state.
262
+ *
263
+ * @example
264
+ * const membership = await board.auth.verifyWorkEmail({ token });
265
+ */
266
+ verifyWorkEmail(body, options) {
267
+ return client.fetch("/auth/verify-work-email", {
268
+ ...options,
269
+ method: "POST",
270
+ body
271
+ });
272
+ },
256
273
  /**
257
274
  * Verify the signed-in board user's email with the 6-digit code from the
258
275
  * verification email (requires the bearer). Resolves void (204); an
@@ -1397,6 +1414,10 @@ function meNamespace(client) {
1397
1414
  * required, the token IS the authorization. Returns the membership in
1398
1415
  * its new state.
1399
1416
  *
1417
+ * @deprecated Use `board.auth.verifyWorkEmail({ token })`. `slug` is
1418
+ * ignored by the server — the token alone identifies the membership,
1419
+ * and a caller following an email link has no slug to supply.
1420
+ *
1400
1421
  * @example
1401
1422
  * await board.me.companies.workEmail.confirm('acme', { token });
1402
1423
  */
@@ -1681,6 +1702,125 @@ function meNamespace(client) {
1681
1702
  );
1682
1703
  }
1683
1704
  },
1705
+ /**
1706
+ * Company-owned saved predicates over the talent directory.
1707
+ * Approved members share the same lists. Optional `job` binds a list
1708
+ * to one company job; pass `job: null` on update to unbind.
1709
+ */
1710
+ talentLists: {
1711
+ /**
1712
+ * List talent lists for a company I am an approved member of.
1713
+ *
1714
+ * @example
1715
+ * const { data } = await board.me.companies.talentLists.list('acme');
1716
+ */
1717
+ list(slug, options) {
1718
+ return client.fetch(
1719
+ `/me/companies/${encodeURIComponent(slug)}/talent-lists`,
1720
+ options
1721
+ );
1722
+ },
1723
+ /**
1724
+ * Create a talent list. `filters` reuse the frozen `/talent` query.
1725
+ *
1726
+ * @example
1727
+ * const list = await board.me.companies.talentLists.create('acme', {
1728
+ * name: 'Berlin React',
1729
+ * filters: { skill: 'react', sort: 'newest' },
1730
+ * job: jobId,
1731
+ * });
1732
+ */
1733
+ create(slug, body, options) {
1734
+ return client.fetch(
1735
+ `/me/companies/${encodeURIComponent(slug)}/talent-lists`,
1736
+ { ...options, method: "POST", body }
1737
+ );
1738
+ },
1739
+ /**
1740
+ * Merge-patch a talent list. Pass `job: null` to unbind it from a job.
1741
+ */
1742
+ update(slug, listId, body, options) {
1743
+ return client.fetch(
1744
+ `/me/companies/${encodeURIComponent(slug)}/talent-lists/${encodeURIComponent(listId)}`,
1745
+ { ...options, method: "PATCH", body }
1746
+ );
1747
+ },
1748
+ /** Delete a talent list. Sourced membership is unaffected. */
1749
+ remove(slug, listId, options) {
1750
+ return client.fetch(
1751
+ `/me/companies/${encodeURIComponent(slug)}/talent-lists/${encodeURIComponent(listId)}`,
1752
+ { ...options, method: "DELETE" }
1753
+ );
1754
+ }
1755
+ },
1756
+ /**
1757
+ * Per-job sourced membership — the unstaged kanban rail.
1758
+ * Saving a candidate always writes here. Convert-on-drop creates a
1759
+ * pipeline application with source `sourced` (hidden from the
1760
+ * candidate until they apply themselves).
1761
+ */
1762
+ sourcedCandidates: {
1763
+ /**
1764
+ * List sourced candidates still on the rail for a job. Anyone who
1765
+ * already has a pipeline application for that job is omitted.
1766
+ *
1767
+ * @example
1768
+ * const { data } = await board.me.companies.sourcedCandidates.list(
1769
+ * 'acme',
1770
+ * { job: jobId },
1771
+ * );
1772
+ */
1773
+ list(slug, query, options) {
1774
+ return client.fetch(
1775
+ `/me/companies/${encodeURIComponent(slug)}/sourced-candidates`,
1776
+ { ...options, query }
1777
+ );
1778
+ },
1779
+ /**
1780
+ * Save a candidate onto a job's sourced rail. Idempotent: a second
1781
+ * add for the same pair returns `created: false`.
1782
+ *
1783
+ * @example
1784
+ * const saved = await board.me.companies.sourcedCandidates.add(
1785
+ * 'acme',
1786
+ * { job: jobId, candidateBoardUserId: candidateId },
1787
+ * );
1788
+ */
1789
+ add(slug, body, options) {
1790
+ return client.fetch(`/me/companies/${encodeURIComponent(slug)}/sourced-candidates`, {
1791
+ ...options,
1792
+ method: "POST",
1793
+ body
1794
+ });
1795
+ },
1796
+ /** Remove a sourced membership. Does not touch pipeline applications. */
1797
+ remove(slug, sourcedId, options) {
1798
+ return client.fetch(
1799
+ `/me/companies/${encodeURIComponent(slug)}/sourced-candidates/${encodeURIComponent(sourcedId)}`,
1800
+ { ...options, method: "DELETE" }
1801
+ );
1802
+ },
1803
+ /**
1804
+ * Convert a sourced candidate into the job pipeline. Writes
1805
+ * `source: 'sourced'` so the candidate does not see the application
1806
+ * until they apply themselves. `stage: 'applied'` aliases to
1807
+ * `review`. A board without a native pipeline raises
1808
+ * `sourced_convert_unavailable` (409).
1809
+ *
1810
+ * @example
1811
+ * const result = await board.me.companies.sourcedCandidates.convert(
1812
+ * 'acme',
1813
+ * sourcedId,
1814
+ * { stage: 'review' },
1815
+ * );
1816
+ */
1817
+ convert(slug, sourcedId, body, options) {
1818
+ return client.fetch(
1819
+ `/me/companies/${encodeURIComponent(slug)}/sourced-candidates/${encodeURIComponent(sourcedId)}/convert`,
1820
+ { ...options, method: "POST", body }
1821
+ );
1822
+ }
1823
+ },
1684
1824
  /**
1685
1825
  * The applicant pipeline (ATS) for a company I am an approved member of
1686
1826
  * Reads return the full pipeline (job
@@ -1,4 +1,4 @@
1
- import { S as Schemas } from './_spec-mFq9K67X.js';
1
+ import { S as Schemas } from './_spec-DdWB8z1Z.js';
2
2
 
3
3
  /**
4
4
  * Optional pagination metadata returned by Board API list operations.
@@ -1,4 +1,4 @@
1
- import { S as Schemas } from './_spec-mFq9K67X.mjs';
1
+ import { S as Schemas } from './_spec-DdWB8z1Z.mjs';
2
2
 
3
3
  /**
4
4
  * Optional pagination metadata returned by Board API list operations.
@@ -1,4 +1,4 @@
1
- import { S as Schemas } from './_spec-mFq9K67X.js';
1
+ import { S as Schemas } from './_spec-DdWB8z1Z.js';
2
2
 
3
3
  type Awaitable<T> = T | Promise<T>;
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { S as Schemas } from './_spec-mFq9K67X.mjs';
1
+ import { S as Schemas } from './_spec-DdWB8z1Z.mjs';
2
2
 
3
3
  type Awaitable<T> = T | Promise<T>;
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { S as Schemas } from './_spec-mFq9K67X.js';
1
+ import { S as Schemas } from './_spec-DdWB8z1Z.js';
2
2
 
3
3
  /**
4
4
  * The public SEO-infra payload (`board.seo()`) — platform infrastructure a
@@ -1,4 +1,4 @@
1
- import { S as Schemas } from './_spec-mFq9K67X.mjs';
1
+ import { S as Schemas } from './_spec-DdWB8z1Z.mjs';
2
2
 
3
3
  /**
4
4
  * The public SEO-infra payload (`board.seo()`) — platform infrastructure a
@@ -1,5 +1,5 @@
1
- import { B as BoardSeo } from './seo-D9wvr1nK.mjs';
2
- import './_spec-mFq9K67X.mjs';
1
+ import { B as BoardSeo } from './seo-CJSwd_ss.mjs';
2
+ import './_spec-DdWB8z1Z.mjs';
3
3
 
4
4
  /**
5
5
  * `@cavuno/board/seo-files` — platform-owned crawler/identity file bodies
@@ -1,5 +1,5 @@
1
- import { B as BoardSeo } from './seo-CMNJMZcT.js';
2
- import './_spec-mFq9K67X.js';
1
+ import { B as BoardSeo } from './seo-C1hFa0-v.js';
2
+ import './_spec-DdWB8z1Z.js';
3
3
 
4
4
  /**
5
5
  * `@cavuno/board/seo-files` — platform-owned crawler/identity file bodies
package/dist/seo.d.mts CHANGED
@@ -1,9 +1,9 @@
1
- import { P as PublicBlogPostSummary, B as BlogAuthorEmbed } from './blog-ClPGMp-z.mjs';
2
- import { e as JsonLdObject } from './breadcrumbs-BSP53mOY.mjs';
3
- export { A as ALL_COUNTRY_CODES, B as BreadcrumbItemInput, g as FaqItem, J as JobBreadcrumb, h as JsonLdBoard, N as NumberNotation, i as SENIORITY_ORDER, j as SalaryFaqEntry, k as SalaryJsonLdOptions, l as SalaryOccupationListOptions, b as buildJobBreadcrumbs, m as buildSalaryFaq, o as companyCategorySalaryJsonLd, p as companySalaryJsonLd, q as createBreadcrumbJsonLd, r as createJobPostingJsonLd, s as crossAxisSalaryJsonLd, t as faqJsonLd, c as formatSalaryStat, d as formatSalaryStatRange, u as itemListJsonLd, v as locationSalaryJsonLd, n as normalizeWebsiteUrl, w as skillSalaryJsonLd, x as sortBySeniority, y as titleSalaryJsonLd } from './breadcrumbs-BSP53mOY.mjs';
4
- import './_spec-mFq9K67X.mjs';
5
- import './board-CkYDc1Lz.mjs';
6
- import './jobs-BWpm-Jf0.mjs';
1
+ import { P as PublicBlogPostSummary, B as BlogAuthorEmbed } from './blog-DopIQsKV.mjs';
2
+ import { e as JsonLdObject } from './breadcrumbs-CAppxMoS.mjs';
3
+ export { A as ALL_COUNTRY_CODES, B as BreadcrumbItemInput, g as FaqItem, J as JobBreadcrumb, h as JsonLdBoard, N as NumberNotation, i as SENIORITY_ORDER, j as SalaryFaqEntry, k as SalaryJsonLdOptions, l as SalaryOccupationListOptions, b as buildJobBreadcrumbs, m as buildSalaryFaq, o as companyCategorySalaryJsonLd, p as companySalaryJsonLd, q as createBreadcrumbJsonLd, r as createJobPostingJsonLd, s as crossAxisSalaryJsonLd, t as faqJsonLd, c as formatSalaryStat, d as formatSalaryStatRange, u as itemListJsonLd, v as locationSalaryJsonLd, n as normalizeWebsiteUrl, w as skillSalaryJsonLd, x as sortBySeniority, y as titleSalaryJsonLd } from './breadcrumbs-CAppxMoS.mjs';
4
+ import './_spec-DdWB8z1Z.mjs';
5
+ import './board-CkgTW4cC.mjs';
6
+ import './jobs-Dq0TTcRf.mjs';
7
7
 
8
8
  /**
9
9
  * Blog structured data on the `@cavuno/board` wire types, transcribed from
package/dist/seo.d.ts CHANGED
@@ -1,9 +1,9 @@
1
- import { P as PublicBlogPostSummary, B as BlogAuthorEmbed } from './blog-BJF7uypj.js';
2
- import { e as JsonLdObject } from './breadcrumbs-BZzQwS8O.js';
3
- export { A as ALL_COUNTRY_CODES, B as BreadcrumbItemInput, g as FaqItem, J as JobBreadcrumb, h as JsonLdBoard, N as NumberNotation, i as SENIORITY_ORDER, j as SalaryFaqEntry, k as SalaryJsonLdOptions, l as SalaryOccupationListOptions, b as buildJobBreadcrumbs, m as buildSalaryFaq, o as companyCategorySalaryJsonLd, p as companySalaryJsonLd, q as createBreadcrumbJsonLd, r as createJobPostingJsonLd, s as crossAxisSalaryJsonLd, t as faqJsonLd, c as formatSalaryStat, d as formatSalaryStatRange, u as itemListJsonLd, v as locationSalaryJsonLd, n as normalizeWebsiteUrl, w as skillSalaryJsonLd, x as sortBySeniority, y as titleSalaryJsonLd } from './breadcrumbs-BZzQwS8O.js';
4
- import './_spec-mFq9K67X.js';
5
- import './board-Po58Sn65.js';
6
- import './jobs-hZ3Kezhg.js';
1
+ import { P as PublicBlogPostSummary, B as BlogAuthorEmbed } from './blog-B7xorPBw.js';
2
+ import { e as JsonLdObject } from './breadcrumbs-DelEqbSz.js';
3
+ export { A as ALL_COUNTRY_CODES, B as BreadcrumbItemInput, g as FaqItem, J as JobBreadcrumb, h as JsonLdBoard, N as NumberNotation, i as SENIORITY_ORDER, j as SalaryFaqEntry, k as SalaryJsonLdOptions, l as SalaryOccupationListOptions, b as buildJobBreadcrumbs, m as buildSalaryFaq, o as companyCategorySalaryJsonLd, p as companySalaryJsonLd, q as createBreadcrumbJsonLd, r as createJobPostingJsonLd, s as crossAxisSalaryJsonLd, t as faqJsonLd, c as formatSalaryStat, d as formatSalaryStatRange, u as itemListJsonLd, v as locationSalaryJsonLd, n as normalizeWebsiteUrl, w as skillSalaryJsonLd, x as sortBySeniority, y as titleSalaryJsonLd } from './breadcrumbs-DelEqbSz.js';
4
+ import './_spec-DdWB8z1Z.js';
5
+ import './board-Bpnqn4Rg.js';
6
+ import './jobs-CExc4QdI.js';
7
7
 
8
8
  /**
9
9
  * Blog structured data on the `@cavuno/board` wire types, transcribed from
package/dist/server.d.mts CHANGED
@@ -1,10 +1,10 @@
1
1
  import { BoardSdk } from './index.mjs';
2
- import './_spec-mFq9K67X.mjs';
3
- import './search-DRIGekdi.mjs';
4
- import './board-CkYDc1Lz.mjs';
5
- import './jobs-BWpm-Jf0.mjs';
6
- import './seo-D9wvr1nK.mjs';
7
- import './blog-ClPGMp-z.mjs';
2
+ import './_spec-DdWB8z1Z.mjs';
3
+ import './search-D6hau3d4.mjs';
4
+ import './board-CkgTW4cC.mjs';
5
+ import './jobs-Dq0TTcRf.mjs';
6
+ import './seo-CJSwd_ss.mjs';
7
+ import './blog-DopIQsKV.mjs';
8
8
 
9
9
  /**
10
10
  * Session cookie codec — pure (no framework imports, no node imports) so it
package/dist/server.d.ts CHANGED
@@ -1,10 +1,10 @@
1
1
  import { BoardSdk } from './index.js';
2
- import './_spec-mFq9K67X.js';
3
- import './search-DSLK6Cch.js';
4
- import './board-Po58Sn65.js';
5
- import './jobs-hZ3Kezhg.js';
6
- import './seo-CMNJMZcT.js';
7
- import './blog-BJF7uypj.js';
2
+ import './_spec-DdWB8z1Z.js';
3
+ import './search-CZOec95V.js';
4
+ import './board-Bpnqn4Rg.js';
5
+ import './jobs-CExc4QdI.js';
6
+ import './seo-C1hFa0-v.js';
7
+ import './blog-B7xorPBw.js';
8
8
 
9
9
  /**
10
10
  * Session cookie codec — pure (no framework imports, no node imports) so it
package/dist/server.mjs CHANGED
@@ -2,7 +2,7 @@ import {
2
2
  isNoStore,
3
3
  isUnauthorized,
4
4
  scopeToken
5
- } from "./chunk-XEJWXRLK.mjs";
5
+ } from "./chunk-W73BOGOQ.mjs";
6
6
 
7
7
  // src/server/cookie.ts
8
8
  var COOKIE_ATTRIBUTES = "Path=/; HttpOnly; Secure; SameSite=Lax";
@@ -1,10 +1,10 @@
1
1
  import { BoardSdk } from './index.mjs';
2
- import './_spec-mFq9K67X.mjs';
3
- import './search-DRIGekdi.mjs';
4
- import './board-CkYDc1Lz.mjs';
5
- import './jobs-BWpm-Jf0.mjs';
6
- import './seo-D9wvr1nK.mjs';
7
- import './blog-ClPGMp-z.mjs';
2
+ import './_spec-DdWB8z1Z.mjs';
3
+ import './search-D6hau3d4.mjs';
4
+ import './board-CkgTW4cC.mjs';
5
+ import './jobs-Dq0TTcRf.mjs';
6
+ import './seo-CJSwd_ss.mjs';
7
+ import './blog-DopIQsKV.mjs';
8
8
 
9
9
  /**
10
10
  * Sitemap primitives — the pure XML + bucket-filename logic behind a board
package/dist/sitemap.d.ts CHANGED
@@ -1,10 +1,10 @@
1
1
  import { BoardSdk } from './index.js';
2
- import './_spec-mFq9K67X.js';
3
- import './search-DSLK6Cch.js';
4
- import './board-Po58Sn65.js';
5
- import './jobs-hZ3Kezhg.js';
6
- import './seo-CMNJMZcT.js';
7
- import './blog-BJF7uypj.js';
2
+ import './_spec-DdWB8z1Z.js';
3
+ import './search-CZOec95V.js';
4
+ import './board-Bpnqn4Rg.js';
5
+ import './jobs-CExc4QdI.js';
6
+ import './seo-C1hFa0-v.js';
7
+ import './blog-B7xorPBw.js';
8
8
 
9
9
  /**
10
10
  * Sitemap primitives — the pure XML + bucket-filename logic behind a board
@@ -1,5 +1,5 @@
1
- import { h as SuggestionItem, b as SearchSuggestQuery, F as FetchOptions, g as SuggestResult } from './search-DRIGekdi.mjs';
2
- import './_spec-mFq9K67X.mjs';
1
+ import { h as SuggestionItem, b as SearchSuggestQuery, F as FetchOptions, g as SuggestResult } from './search-D6hau3d4.mjs';
2
+ import './_spec-DdWB8z1Z.mjs';
3
3
 
4
4
  /**
5
5
  * `@cavuno/board/suggest` — framework-agnostic headless search-suggest
package/dist/suggest.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { h as SuggestionItem, b as SearchSuggestQuery, F as FetchOptions, g as SuggestResult } from './search-DSLK6Cch.js';
2
- import './_spec-mFq9K67X.js';
1
+ import { h as SuggestionItem, b as SearchSuggestQuery, F as FetchOptions, g as SuggestResult } from './search-CZOec95V.js';
2
+ import './_spec-DdWB8z1Z.js';
3
3
 
4
4
  /**
5
5
  * `@cavuno/board/suggest` — framework-agnostic headless search-suggest
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cavuno/board",
3
- "version": "4.13.0",
3
+ "version": "4.15.0",
4
4
  "description": "Build custom job boards and careers pages with Cavuno’s TypeScript SDK.",
5
5
  "keywords": [
6
6
  "api-client",
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "4.13.0",
2
+ "version": "4.15.0",
3
3
  "skills": [
4
4
  {
5
5
  "name": "cavuno-board-account",