@cavuno/board 4.21.0 → 4.22.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 (43) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/{_spec-CyNKpM_j.d.mts → _spec-p1bcDr9R.d.mts} +7 -0
  3. package/dist/{_spec-CyNKpM_j.d.ts → _spec-p1bcDr9R.d.ts} +7 -0
  4. package/dist/bin.mjs +58 -2
  5. package/dist/{blog-BNIqGayD.d.mts → blog-CsI8GdJS.d.mts} +1 -1
  6. package/dist/{blog-CRvaDyzJ.d.ts → blog-DB4YIfn4.d.ts} +1 -1
  7. package/dist/{board-mn3GVbrC.d.mts → board-CuIyeFsj.d.mts} +2 -2
  8. package/dist/{board-CXNxSlUB.d.ts → board-Dq9gD7qr.d.ts} +2 -2
  9. package/dist/{breadcrumbs-Bi4LHNAF.d.mts → breadcrumbs-B_WTKaIk.d.mts} +2 -2
  10. package/dist/{breadcrumbs-Crk6Q69T.d.ts → breadcrumbs-CyCZ8N8_.d.ts} +2 -2
  11. package/dist/browser/cavuno-board.global.min.js +1 -1
  12. package/dist/{chunk-RORHD4WQ.mjs → chunk-DP2ZZZEO.mjs} +9 -1
  13. package/dist/doctor.js +58 -2
  14. package/dist/doctor.mjs +58 -2
  15. package/dist/filters.d.mts +2 -2
  16. package/dist/filters.d.ts +2 -2
  17. package/dist/format.d.mts +4 -4
  18. package/dist/format.d.ts +4 -4
  19. package/dist/index.d.mts +42 -13
  20. package/dist/index.d.ts +42 -13
  21. package/dist/index.js +48 -1
  22. package/dist/index.mjs +43 -2
  23. package/dist/{jobs-CALE3I8I.d.mts → jobs-Bv12BcSA.d.mts} +1 -1
  24. package/dist/{jobs-CSWXqLZR.d.ts → jobs-C-sBPgNp.d.ts} +1 -1
  25. package/dist/{search-B_hwS-xu.d.mts → search-CNeOnhWb.d.mts} +1 -1
  26. package/dist/{search-BRCbe1Nm.d.ts → search-W28d76OJ.d.ts} +1 -1
  27. package/dist/{seo-CS4lrG20.d.mts → seo-BGHJcfev.d.mts} +1 -1
  28. package/dist/{seo-D1u-RmLQ.d.ts → seo-DAHd1ngs.d.ts} +1 -1
  29. package/dist/seo-files.d.mts +2 -2
  30. package/dist/seo-files.d.ts +2 -2
  31. package/dist/seo.d.mts +6 -6
  32. package/dist/seo.d.ts +6 -6
  33. package/dist/server.d.mts +6 -6
  34. package/dist/server.d.ts +6 -6
  35. package/dist/server.mjs +1 -1
  36. package/dist/sitemap.d.mts +6 -6
  37. package/dist/sitemap.d.ts +6 -6
  38. package/dist/sitemap.mjs +1 -1
  39. package/dist/suggest.d.mts +2 -2
  40. package/dist/suggest.d.ts +2 -2
  41. package/package.json +1 -1
  42. package/skills/cavuno-board-companies/SKILL.md +6 -0
  43. package/skills/manifest.json +1 -1
package/dist/index.mjs CHANGED
@@ -16,11 +16,12 @@ import {
16
16
  isBoardPasswordRequired,
17
17
  isConflict,
18
18
  isForbidden,
19
+ isFreeEmailWebsiteError,
19
20
  isNotFound,
20
21
  isRateLimited,
21
22
  isUnauthorized,
22
23
  isValidationError
23
- } from "./chunk-RORHD4WQ.mjs";
24
+ } from "./chunk-DP2ZZZEO.mjs";
24
25
 
25
26
  // src/query.ts
26
27
  function toSearchParams(query) {
@@ -41,7 +42,7 @@ function toSearchParams(query) {
41
42
  }
42
43
 
43
44
  // src/version.ts
44
- var SDK_VERSION = "4.21.0";
45
+ var SDK_VERSION = "4.22.0";
45
46
 
46
47
  // src/client.ts
47
48
  function isRawBody(body) {
@@ -1341,6 +1342,45 @@ function meNamespace(client) {
1341
1342
  { ...options, method: "DELETE" }
1342
1343
  );
1343
1344
  },
1345
+ /**
1346
+ * Start embedded Stripe checkout that buys a public membership (or
1347
+ * employer_service) plan for a company I approved-manage. Returns the
1348
+ * connected-account mount kit: initialise Stripe.js with
1349
+ * `publishableKey` and `{ stripeAccount: stripeAccountId }`, then mount
1350
+ * `clientSecret`. The plan is granted to the company by webhook once the
1351
+ * session completes — poll `retrieveMembershipCheckout`, then re-read
1352
+ * the company or `board.employers.memberships.list()`. 404
1353
+ * `membership_plan_not_found` for a plan that is not a public priced
1354
+ * membership on this board; 409 `membership_seat_taken` when the company
1355
+ * already holds one (or has an invoice pending).
1356
+ *
1357
+ * @example
1358
+ * const kit = await board.me.companies.startMembershipCheckout('acme', {
1359
+ * planId,
1360
+ * returnPath: '/memberships',
1361
+ * colorMode: 'light',
1362
+ * });
1363
+ */
1364
+ startMembershipCheckout(slug, body, options) {
1365
+ return client.fetch(
1366
+ `/me/companies/${encodeURIComponent(slug)}/membership/checkout`,
1367
+ { ...options, method: "POST", body }
1368
+ );
1369
+ },
1370
+ /**
1371
+ * Poll a membership checkout session started for this company: `open`
1372
+ * (re-mountable via `clientSecret`), `complete`, or `expired`. A session
1373
+ * minted for another company is 404 `paywall_invalid_checkout_session`.
1374
+ *
1375
+ * @example
1376
+ * const s = await board.me.companies.retrieveMembershipCheckout('acme', kit.sessionId);
1377
+ */
1378
+ retrieveMembershipCheckout(slug, sessionId, options) {
1379
+ return client.fetch(
1380
+ `/me/companies/${encodeURIComponent(slug)}/membership/checkout/${encodeURIComponent(sessionId)}`,
1381
+ options
1382
+ );
1383
+ },
1344
1384
  /**
1345
1385
  * List pending member invites for a company I belong to.
1346
1386
  *
@@ -3144,6 +3184,7 @@ export {
3144
3184
  isColdRule,
3145
3185
  isConflict,
3146
3186
  isForbidden,
3187
+ isFreeEmailWebsiteError,
3147
3188
  isNotFound,
3148
3189
  isOwnMessage,
3149
3190
  isRateLimited,
@@ -1,4 +1,4 @@
1
- import { S as Schemas } from './_spec-CyNKpM_j.mjs';
1
+ import { S as Schemas } from './_spec-p1bcDr9R.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-CyNKpM_j.js';
1
+ import { S as Schemas } from './_spec-p1bcDr9R.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-CyNKpM_j.mjs';
1
+ import { S as Schemas } from './_spec-p1bcDr9R.mjs';
2
2
 
3
3
  type Awaitable<T> = T | Promise<T>;
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { S as Schemas } from './_spec-CyNKpM_j.js';
1
+ import { S as Schemas } from './_spec-p1bcDr9R.js';
2
2
 
3
3
  type Awaitable<T> = T | Promise<T>;
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { S as Schemas } from './_spec-CyNKpM_j.mjs';
1
+ import { S as Schemas } from './_spec-p1bcDr9R.mjs';
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-CyNKpM_j.js';
1
+ import { S as Schemas } from './_spec-p1bcDr9R.js';
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-CS4lrG20.mjs';
2
- import './_spec-CyNKpM_j.mjs';
1
+ import { B as BoardSeo } from './seo-BGHJcfev.mjs';
2
+ import './_spec-p1bcDr9R.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-D1u-RmLQ.js';
2
- import './_spec-CyNKpM_j.js';
1
+ import { B as BoardSeo } from './seo-DAHd1ngs.js';
2
+ import './_spec-p1bcDr9R.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-BNIqGayD.mjs';
2
- import { e as JsonLdObject } from './breadcrumbs-Bi4LHNAF.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-Bi4LHNAF.mjs';
4
- import './_spec-CyNKpM_j.mjs';
5
- import './board-mn3GVbrC.mjs';
6
- import './jobs-CALE3I8I.mjs';
1
+ import { P as PublicBlogPostSummary, B as BlogAuthorEmbed } from './blog-CsI8GdJS.mjs';
2
+ import { e as JsonLdObject } from './breadcrumbs-B_WTKaIk.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-B_WTKaIk.mjs';
4
+ import './_spec-p1bcDr9R.mjs';
5
+ import './board-CuIyeFsj.mjs';
6
+ import './jobs-Bv12BcSA.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-CRvaDyzJ.js';
2
- import { e as JsonLdObject } from './breadcrumbs-Crk6Q69T.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-Crk6Q69T.js';
4
- import './_spec-CyNKpM_j.js';
5
- import './board-CXNxSlUB.js';
6
- import './jobs-CSWXqLZR.js';
1
+ import { P as PublicBlogPostSummary, B as BlogAuthorEmbed } from './blog-DB4YIfn4.js';
2
+ import { e as JsonLdObject } from './breadcrumbs-CyCZ8N8_.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-CyCZ8N8_.js';
4
+ import './_spec-p1bcDr9R.js';
5
+ import './board-Dq9gD7qr.js';
6
+ import './jobs-C-sBPgNp.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-CyNKpM_j.mjs';
3
- import './search-B_hwS-xu.mjs';
4
- import './board-mn3GVbrC.mjs';
5
- import './jobs-CALE3I8I.mjs';
6
- import './seo-CS4lrG20.mjs';
7
- import './blog-BNIqGayD.mjs';
2
+ import './_spec-p1bcDr9R.mjs';
3
+ import './search-CNeOnhWb.mjs';
4
+ import './board-CuIyeFsj.mjs';
5
+ import './jobs-Bv12BcSA.mjs';
6
+ import './seo-BGHJcfev.mjs';
7
+ import './blog-CsI8GdJS.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-CyNKpM_j.js';
3
- import './search-BRCbe1Nm.js';
4
- import './board-CXNxSlUB.js';
5
- import './jobs-CSWXqLZR.js';
6
- import './seo-D1u-RmLQ.js';
7
- import './blog-CRvaDyzJ.js';
2
+ import './_spec-p1bcDr9R.js';
3
+ import './search-W28d76OJ.js';
4
+ import './board-Dq9gD7qr.js';
5
+ import './jobs-C-sBPgNp.js';
6
+ import './seo-DAHd1ngs.js';
7
+ import './blog-DB4YIfn4.js';
8
8
 
9
9
  /**
10
10
  * Session cookie codec — pure (no framework imports, no node imports) so it
package/dist/server.mjs CHANGED
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-Z4ALWIGS.mjs";
5
5
  import {
6
6
  isUnauthorized
7
- } from "./chunk-RORHD4WQ.mjs";
7
+ } from "./chunk-DP2ZZZEO.mjs";
8
8
 
9
9
  // src/server/cookie.ts
10
10
  var COOKIE_ATTRIBUTES = "Path=/; HttpOnly; Secure; SameSite=Lax";
@@ -1,10 +1,10 @@
1
1
  import { BoardSdk } from './index.mjs';
2
- import './_spec-CyNKpM_j.mjs';
3
- import './search-B_hwS-xu.mjs';
4
- import './board-mn3GVbrC.mjs';
5
- import './jobs-CALE3I8I.mjs';
6
- import './seo-CS4lrG20.mjs';
7
- import './blog-BNIqGayD.mjs';
2
+ import './_spec-p1bcDr9R.mjs';
3
+ import './search-CNeOnhWb.mjs';
4
+ import './board-CuIyeFsj.mjs';
5
+ import './jobs-Bv12BcSA.mjs';
6
+ import './seo-BGHJcfev.mjs';
7
+ import './blog-CsI8GdJS.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-CyNKpM_j.js';
3
- import './search-BRCbe1Nm.js';
4
- import './board-CXNxSlUB.js';
5
- import './jobs-CSWXqLZR.js';
6
- import './seo-D1u-RmLQ.js';
7
- import './blog-CRvaDyzJ.js';
2
+ import './_spec-p1bcDr9R.js';
3
+ import './search-W28d76OJ.js';
4
+ import './board-Dq9gD7qr.js';
5
+ import './jobs-C-sBPgNp.js';
6
+ import './seo-DAHd1ngs.js';
7
+ import './blog-DB4YIfn4.js';
8
8
 
9
9
  /**
10
10
  * Sitemap primitives — the pure XML + bucket-filename logic behind a board
package/dist/sitemap.mjs CHANGED
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-DLSO6XXY.mjs";
4
4
  import {
5
5
  isNotFound
6
- } from "./chunk-RORHD4WQ.mjs";
6
+ } from "./chunk-DP2ZZZEO.mjs";
7
7
  import {
8
8
  BOARD_PATHS,
9
9
  blogAuthorPath,
@@ -1,5 +1,5 @@
1
- import { h as SuggestionItem, b as SearchSuggestQuery, F as FetchOptions, g as SuggestResult } from './search-B_hwS-xu.mjs';
2
- import './_spec-CyNKpM_j.mjs';
1
+ import { h as SuggestionItem, b as SearchSuggestQuery, F as FetchOptions, g as SuggestResult } from './search-CNeOnhWb.mjs';
2
+ import './_spec-p1bcDr9R.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-BRCbe1Nm.js';
2
- import './_spec-CyNKpM_j.js';
1
+ import { h as SuggestionItem, b as SearchSuggestQuery, F as FetchOptions, g as SuggestResult } from './search-W28d76OJ.js';
2
+ import './_spec-p1bcDr9R.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.21.0",
3
+ "version": "4.22.0",
4
4
  "description": "Build custom job boards and careers pages with Cavuno’s TypeScript SDK.",
5
5
  "keywords": [
6
6
  "api-client",
@@ -18,6 +18,12 @@ Demoting, removing, or leaving as the last admin is `last_admin`. Admins
18
18
  invite by email; approved members can list pending invites; accept is
19
19
  session-gated on `board.me.acceptInvite`.
20
20
 
21
+ An approved member can buy a public, priced membership plan for the company
22
+ with `board.me.companies.startMembershipCheckout(slug, body)`. It returns the
23
+ same embedded-checkout mount kit as talent access; poll
24
+ `retrieveMembershipCheckout(slug, sessionId)` after the return redirect. A
25
+ company that already holds a membership is `membership_seat_taken`.
26
+
21
27
  ```ts snippet
22
28
  await board.me.companies.delete('acme');
23
29
  const { data: members } = await board.me.companies.listMembers('acme');
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "4.21.0",
2
+ "version": "4.22.0",
3
3
  "skills": [
4
4
  {
5
5
  "name": "cavuno-board-account",