@cavuno/board 4.1.0 → 4.2.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/CHANGELOG.md +24 -0
- package/dist/{_spec-BZDv2dc5.d.mts → _spec-BnoxU-iR.d.mts} +26 -3
- package/dist/{_spec-BZDv2dc5.d.ts → _spec-BnoxU-iR.d.ts} +26 -3
- package/dist/{blog-BHx6iH3Z.d.ts → blog-D-PYhejB.d.ts} +1 -1
- package/dist/{blog-DyDvyQrI.d.mts → blog-DoAOCg-d.d.mts} +1 -1
- package/dist/{board-BTEZ0uiI.d.ts → board-4vXzYDL3.d.ts} +2 -2
- package/dist/{board-BF3Qao6J.d.mts → board-CvBkK7my.d.mts} +2 -2
- package/dist/{breadcrumbs-SGaWth6C.d.ts → breadcrumbs-Blf_rsux.d.ts} +2 -2
- package/dist/{breadcrumbs-icxRVydh.d.mts → breadcrumbs-Cz1sFqtV.d.mts} +2 -2
- package/dist/filters.d.mts +2 -2
- package/dist/filters.d.ts +2 -2
- package/dist/format.d.mts +4 -4
- package/dist/format.d.ts +4 -4
- package/dist/index.d.mts +29 -15
- package/dist/index.d.ts +29 -15
- package/dist/index.js +7 -6
- package/dist/index.mjs +7 -6
- package/dist/{jobs-BbLJfz1z.d.ts → jobs-B8DNWEir.d.ts} +1 -1
- package/dist/{jobs-BX6d_sdd.d.mts → jobs-aTp9uC3a.d.mts} +1 -1
- package/dist/{search-OKrdAHv8.d.mts → search-Cs7d8y1k.d.mts} +1 -1
- package/dist/{search-7B-mVRNA.d.ts → search-Cskh-neW.d.ts} +1 -1
- package/dist/seo.d.mts +6 -6
- package/dist/seo.d.ts +6 -6
- package/dist/server.d.mts +5 -5
- package/dist/server.d.ts +5 -5
- package/dist/sitemap.d.mts +5 -5
- package/dist/sitemap.d.ts +5 -5
- package/dist/suggest.d.mts +2 -2
- package/dist/suggest.d.ts +2 -2
- package/package.json +1 -1
- package/skills/cavuno-board-seo/SKILL.md +12 -0
- package/skills/manifest.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,30 @@
|
|
|
3
3
|
This changelog records changes that affect Board API compatibility, exported
|
|
4
4
|
types, runtime behavior, or supported integration patterns.
|
|
5
5
|
|
|
6
|
+
## 4.2.0 — 2026-08-06
|
|
7
|
+
|
|
8
|
+
- **Board logo + favicon pack on `board.context()`**: public board context now
|
|
9
|
+
includes `icons` next to `logoUrl` — absolute CDN URLs (or `null`) for
|
|
10
|
+
`ico`, `svg`, `appleTouch`, `icon192`, `icon512`, and `iconMaskable512`.
|
|
11
|
+
Derived from the operator logo (Settings → General upload / logo generator).
|
|
12
|
+
Brand identity, not SEO infra — `board.seo()` stays ads/IndexNow/GSV/
|
|
13
|
+
canonical/manifest.name only. Map `icons` into root-layout favicon `<link>`
|
|
14
|
+
tags. Operators set the logo in Cavuno; the API resolves the pack.
|
|
15
|
+
- **Card `summary` on jobs, companies, and talent**: list/card models gain a
|
|
16
|
+
server-derived plain-text `summary: string | null` — HTML stripped, entities
|
|
17
|
+
decoded, cut at a sentence boundary (or word boundary with `…`). The API does
|
|
18
|
+
the data cleaning; consumers decide how much of the string to show.
|
|
19
|
+
- `PublicJobCard.summary` — denormalized at write time on
|
|
20
|
+
`publicJobCardDocs` (backfill migration
|
|
21
|
+
`jobs/migrations:backfillPublicJobCardSummary`). Independent of the
|
|
22
|
+
existing `?fields=+description` opt-in, which keeps working as before.
|
|
23
|
+
- `CompanyPublic.summary` — derived from `description` at serialization for
|
|
24
|
+
list, search, and similar. Detail still ships the full HTML body.
|
|
25
|
+
- `TalentDirectoryEntry.summary` — derived from `bio` at serialization.
|
|
26
|
+
- **Deprecations** (still returned; prefer `summary` for card teasers):
|
|
27
|
+
- `CompanyPublic.description` on list/search/similar
|
|
28
|
+
- `TalentDirectoryEntry.bio`
|
|
29
|
+
|
|
6
30
|
## 4.1.0 — 2026-08-06
|
|
7
31
|
|
|
8
32
|
- **Salary null-clears on job PATCH** (operator `PATCH /v1/jobs/:id` and
|
|
@@ -438,7 +438,12 @@ interface components {
|
|
|
438
438
|
website: string | null;
|
|
439
439
|
/** @description URL of the company logo, or `null` if no logo is set. */
|
|
440
440
|
logoUrl: string | null;
|
|
441
|
-
/** @description
|
|
441
|
+
/** @description Plain-text card teaser: the operator-authored company summary when set, otherwise a derived teaser from the long-form description (HTML stripped, first sentence / word-boundary cut). `null` when neither yields anything. Prefer this over `description` for list/card renders. */
|
|
442
|
+
summary: string | null;
|
|
443
|
+
/**
|
|
444
|
+
* @deprecated
|
|
445
|
+
* @description Long-form description of the company (HTML), or `null` if not set. **Deprecated on list/search/similar responses** — prefer `summary` for card teasers. Still the full prose for detail pages (`GET …/companies/{slug}`).
|
|
446
|
+
*/
|
|
442
447
|
description: string | null;
|
|
443
448
|
/** @description Total number of public-facing jobs at this company. Currently mirrors `publishedJobCount`. */
|
|
444
449
|
jobCount: number;
|
|
@@ -868,7 +873,7 @@ interface components {
|
|
|
868
873
|
*/
|
|
869
874
|
employmentType?: "full_time" | "part_time" | "contract" | "internship" | "temporary" | "volunteer" | "other";
|
|
870
875
|
/**
|
|
871
|
-
* @description Whether the role is on-site, hybrid, or fully remote.
|
|
876
|
+
* @description Whether the role is on-site, hybrid, or fully remote. **Never valid on its own:** `on_site` and `hybrid` require at least one `officeLocations` entry, and `remote` requires `remotePermits` (use `[{"type":"worldwide","value":"worldwide"}]` for anywhere; `remoteTimezones` then auto-derives on POST). Sending it alone returns `400`.
|
|
872
877
|
* @enum {string}
|
|
873
878
|
*/
|
|
874
879
|
remoteOption?: "on_site" | "hybrid" | "remote";
|
|
@@ -1113,7 +1118,7 @@ interface components {
|
|
|
1113
1118
|
*/
|
|
1114
1119
|
employmentType?: "full_time" | "part_time" | "contract" | "internship" | "temporary" | "volunteer" | "other";
|
|
1115
1120
|
/**
|
|
1116
|
-
* @description Whether the role is on-site, hybrid, or fully remote.
|
|
1121
|
+
* @description Whether the role is on-site, hybrid, or fully remote. **Never valid on its own:** `on_site` and `hybrid` require at least one `officeLocations` entry, and `remote` requires `remotePermits` (use `[{"type":"worldwide","value":"worldwide"}]` for anywhere; `remoteTimezones` then auto-derives on POST). Sending it alone returns `400`.
|
|
1117
1122
|
* @enum {string}
|
|
1118
1123
|
*/
|
|
1119
1124
|
remoteOption?: "on_site" | "hybrid" | "remote";
|
|
@@ -1665,7 +1670,17 @@ interface components {
|
|
|
1665
1670
|
name: string;
|
|
1666
1671
|
/** @description Board language (ISO code); defaults to "en". */
|
|
1667
1672
|
language: string;
|
|
1673
|
+
/** @description Absolute URL for the board logo, or null when unset. Operators set this under Settings → General (upload or logo generator); the website builder can manage it too. */
|
|
1668
1674
|
logoUrl: string | null;
|
|
1675
|
+
/** @description Absolute URLs for the favicon / app-icon pack derived from the board logo (null when a variant is unset). Brand identity next to `logoUrl` — build `<link rel="icon">` tags and the web-manifest icon list from these. Not SEO infra (`board.seo()`). */
|
|
1676
|
+
icons: {
|
|
1677
|
+
ico: string | null;
|
|
1678
|
+
svg: string | null;
|
|
1679
|
+
appleTouch: string | null;
|
|
1680
|
+
icon192: string | null;
|
|
1681
|
+
icon512: string | null;
|
|
1682
|
+
iconMaskable512: string | null;
|
|
1683
|
+
};
|
|
1669
1684
|
/** @description Active custom-domain hostname, or null. */
|
|
1670
1685
|
primaryDomain: string | null;
|
|
1671
1686
|
/** @description Whitelabel toggle (default `true`). Render the "Powered by Cavuno" badge unless `false`. */
|
|
@@ -1941,6 +1956,8 @@ interface components {
|
|
|
1941
1956
|
salaryCurrency: string | null;
|
|
1942
1957
|
salaryTimeframe: string | null;
|
|
1943
1958
|
isFeatured: boolean;
|
|
1959
|
+
/** @description Plain-text card teaser derived from the job description (HTML stripped, first sentence / word-boundary cut). `null` when there is nothing honest to show. Always present — independent of the `?fields=+description` opt-in for the long-form HTML body. Prefer this over requesting `+description` for list/card renders. */
|
|
1960
|
+
summary: string | null;
|
|
1944
1961
|
locationLabel: string | null;
|
|
1945
1962
|
/** @description Embedded company summary, or `null` if none is attached. */
|
|
1946
1963
|
company: {
|
|
@@ -2403,6 +2420,12 @@ interface components {
|
|
|
2403
2420
|
headline: string | null;
|
|
2404
2421
|
location: string | null;
|
|
2405
2422
|
avatarUrl: string | null;
|
|
2423
|
+
/** @description Plain-text card teaser derived from `bio` (HTML stripped, first sentence / word-boundary cut). `null` when there is nothing honest to show. Prefer this over `bio` for directory/card renders; cards still lead with `headline` when present. */
|
|
2424
|
+
summary: string | null;
|
|
2425
|
+
/**
|
|
2426
|
+
* @deprecated
|
|
2427
|
+
* @description Long-form candidate bio. **Deprecated on directory entries** — prefer `summary` for card teasers. Still the full prose on the talent profile detail (`GET …/talent/{handle}`).
|
|
2428
|
+
*/
|
|
2406
2429
|
bio: string | null;
|
|
2407
2430
|
jobSearchStatus: string | null;
|
|
2408
2431
|
skills: string[];
|
|
@@ -438,7 +438,12 @@ interface components {
|
|
|
438
438
|
website: string | null;
|
|
439
439
|
/** @description URL of the company logo, or `null` if no logo is set. */
|
|
440
440
|
logoUrl: string | null;
|
|
441
|
-
/** @description
|
|
441
|
+
/** @description Plain-text card teaser: the operator-authored company summary when set, otherwise a derived teaser from the long-form description (HTML stripped, first sentence / word-boundary cut). `null` when neither yields anything. Prefer this over `description` for list/card renders. */
|
|
442
|
+
summary: string | null;
|
|
443
|
+
/**
|
|
444
|
+
* @deprecated
|
|
445
|
+
* @description Long-form description of the company (HTML), or `null` if not set. **Deprecated on list/search/similar responses** — prefer `summary` for card teasers. Still the full prose for detail pages (`GET …/companies/{slug}`).
|
|
446
|
+
*/
|
|
442
447
|
description: string | null;
|
|
443
448
|
/** @description Total number of public-facing jobs at this company. Currently mirrors `publishedJobCount`. */
|
|
444
449
|
jobCount: number;
|
|
@@ -868,7 +873,7 @@ interface components {
|
|
|
868
873
|
*/
|
|
869
874
|
employmentType?: "full_time" | "part_time" | "contract" | "internship" | "temporary" | "volunteer" | "other";
|
|
870
875
|
/**
|
|
871
|
-
* @description Whether the role is on-site, hybrid, or fully remote.
|
|
876
|
+
* @description Whether the role is on-site, hybrid, or fully remote. **Never valid on its own:** `on_site` and `hybrid` require at least one `officeLocations` entry, and `remote` requires `remotePermits` (use `[{"type":"worldwide","value":"worldwide"}]` for anywhere; `remoteTimezones` then auto-derives on POST). Sending it alone returns `400`.
|
|
872
877
|
* @enum {string}
|
|
873
878
|
*/
|
|
874
879
|
remoteOption?: "on_site" | "hybrid" | "remote";
|
|
@@ -1113,7 +1118,7 @@ interface components {
|
|
|
1113
1118
|
*/
|
|
1114
1119
|
employmentType?: "full_time" | "part_time" | "contract" | "internship" | "temporary" | "volunteer" | "other";
|
|
1115
1120
|
/**
|
|
1116
|
-
* @description Whether the role is on-site, hybrid, or fully remote.
|
|
1121
|
+
* @description Whether the role is on-site, hybrid, or fully remote. **Never valid on its own:** `on_site` and `hybrid` require at least one `officeLocations` entry, and `remote` requires `remotePermits` (use `[{"type":"worldwide","value":"worldwide"}]` for anywhere; `remoteTimezones` then auto-derives on POST). Sending it alone returns `400`.
|
|
1117
1122
|
* @enum {string}
|
|
1118
1123
|
*/
|
|
1119
1124
|
remoteOption?: "on_site" | "hybrid" | "remote";
|
|
@@ -1665,7 +1670,17 @@ interface components {
|
|
|
1665
1670
|
name: string;
|
|
1666
1671
|
/** @description Board language (ISO code); defaults to "en". */
|
|
1667
1672
|
language: string;
|
|
1673
|
+
/** @description Absolute URL for the board logo, or null when unset. Operators set this under Settings → General (upload or logo generator); the website builder can manage it too. */
|
|
1668
1674
|
logoUrl: string | null;
|
|
1675
|
+
/** @description Absolute URLs for the favicon / app-icon pack derived from the board logo (null when a variant is unset). Brand identity next to `logoUrl` — build `<link rel="icon">` tags and the web-manifest icon list from these. Not SEO infra (`board.seo()`). */
|
|
1676
|
+
icons: {
|
|
1677
|
+
ico: string | null;
|
|
1678
|
+
svg: string | null;
|
|
1679
|
+
appleTouch: string | null;
|
|
1680
|
+
icon192: string | null;
|
|
1681
|
+
icon512: string | null;
|
|
1682
|
+
iconMaskable512: string | null;
|
|
1683
|
+
};
|
|
1669
1684
|
/** @description Active custom-domain hostname, or null. */
|
|
1670
1685
|
primaryDomain: string | null;
|
|
1671
1686
|
/** @description Whitelabel toggle (default `true`). Render the "Powered by Cavuno" badge unless `false`. */
|
|
@@ -1941,6 +1956,8 @@ interface components {
|
|
|
1941
1956
|
salaryCurrency: string | null;
|
|
1942
1957
|
salaryTimeframe: string | null;
|
|
1943
1958
|
isFeatured: boolean;
|
|
1959
|
+
/** @description Plain-text card teaser derived from the job description (HTML stripped, first sentence / word-boundary cut). `null` when there is nothing honest to show. Always present — independent of the `?fields=+description` opt-in for the long-form HTML body. Prefer this over requesting `+description` for list/card renders. */
|
|
1960
|
+
summary: string | null;
|
|
1944
1961
|
locationLabel: string | null;
|
|
1945
1962
|
/** @description Embedded company summary, or `null` if none is attached. */
|
|
1946
1963
|
company: {
|
|
@@ -2403,6 +2420,12 @@ interface components {
|
|
|
2403
2420
|
headline: string | null;
|
|
2404
2421
|
location: string | null;
|
|
2405
2422
|
avatarUrl: string | null;
|
|
2423
|
+
/** @description Plain-text card teaser derived from `bio` (HTML stripped, first sentence / word-boundary cut). `null` when there is nothing honest to show. Prefer this over `bio` for directory/card renders; cards still lead with `headline` when present. */
|
|
2424
|
+
summary: string | null;
|
|
2425
|
+
/**
|
|
2426
|
+
* @deprecated
|
|
2427
|
+
* @description Long-form candidate bio. **Deprecated on directory entries** — prefer `summary` for card teasers. Still the full prose on the talent profile detail (`GET …/talent/{handle}`).
|
|
2428
|
+
*/
|
|
2406
2429
|
bio: string | null;
|
|
2407
2430
|
jobSearchStatus: string | null;
|
|
2408
2431
|
skills: string[];
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { S as Schemas } from './_spec-
|
|
2
|
-
import { L as ListEnvelope, m as RelatedSearch } from './jobs-
|
|
1
|
+
import { S as Schemas } from './_spec-BnoxU-iR.js';
|
|
2
|
+
import { L as ListEnvelope, m as RelatedSearch } from './jobs-B8DNWEir.js';
|
|
3
3
|
|
|
4
4
|
type PublicCompany = Schemas['CompanyPublic'];
|
|
5
5
|
/** A market (sector) a company operates in — name + its source slug. */
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { S as Schemas } from './_spec-
|
|
2
|
-
import { L as ListEnvelope, m as RelatedSearch } from './jobs-
|
|
1
|
+
import { S as Schemas } from './_spec-BnoxU-iR.mjs';
|
|
2
|
+
import { L as ListEnvelope, m as RelatedSearch } from './jobs-aTp9uC3a.mjs';
|
|
3
3
|
|
|
4
4
|
type PublicCompany = Schemas['CompanyPublic'];
|
|
5
5
|
/** A market (sector) a company operates in — name + its source slug. */
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { P as PublicBoard, a as CompanyCategorySalary, b as CompanySalary, L as LocationSalaryDetail, S as SkillSalaryDetail, T as TitleSalaryDetail } from './board-
|
|
2
|
-
import { P as PublicJob } from './jobs-
|
|
1
|
+
import { P as PublicBoard, a as CompanyCategorySalary, b as CompanySalary, L as LocationSalaryDetail, S as SkillSalaryDetail, T as TitleSalaryDetail } from './board-4vXzYDL3.js';
|
|
2
|
+
import { P as PublicJob } from './jobs-B8DNWEir.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Wire enum for `salaryTimeframe`. Defined here (not re-exported from any
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { P as PublicBoard, a as CompanyCategorySalary, b as CompanySalary, L as LocationSalaryDetail, S as SkillSalaryDetail, T as TitleSalaryDetail } from './board-
|
|
2
|
-
import { P as PublicJob } from './jobs-
|
|
1
|
+
import { P as PublicBoard, a as CompanyCategorySalary, b as CompanySalary, L as LocationSalaryDetail, S as SkillSalaryDetail, T as TitleSalaryDetail } from './board-CvBkK7my.mjs';
|
|
2
|
+
import { P as PublicJob } from './jobs-aTp9uC3a.mjs';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Wire enum for `salaryTimeframe`. Defined here (not re-exported from any
|
package/dist/filters.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { J as JobSort, E as EmploymentType, R as RemoteOption, S as Seniority } from './jobs-
|
|
2
|
-
import './_spec-
|
|
1
|
+
import { J as JobSort, E as EmploymentType, R as RemoteOption, S as Seniority } from './jobs-aTp9uC3a.mjs';
|
|
2
|
+
import './_spec-BnoxU-iR.mjs';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* `@cavuno/board/filters` — the canonical listing-filter vocabulary and URL
|
package/dist/filters.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { J as JobSort, E as EmploymentType, R as RemoteOption, S as Seniority } from './jobs-
|
|
2
|
-
import './_spec-
|
|
1
|
+
import { J as JobSort, E as EmploymentType, R as RemoteOption, S as Seniority } from './jobs-B8DNWEir.js';
|
|
2
|
+
import './_spec-BnoxU-iR.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* `@cavuno/board/filters` — the canonical listing-filter vocabulary and URL
|
package/dist/format.d.mts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export { C as CurrencyDisplay, F as FormattedSalaryRange, J as JobBreadcrumb, N as NumberNotation, S as SalaryTimeframeInput, a as SalaryTimeframeValue, b as buildJobBreadcrumbs, f as formatSalaryRange, c as formatSalaryStat, d as formatSalaryStatRange, n as normalizeWebsiteUrl } from './breadcrumbs-
|
|
2
|
-
import { C as CustomFieldDefinition } from './board-
|
|
3
|
-
import { C as CustomFieldValues } from './jobs-
|
|
4
|
-
import './_spec-
|
|
1
|
+
export { C as CurrencyDisplay, F as FormattedSalaryRange, J as JobBreadcrumb, N as NumberNotation, S as SalaryTimeframeInput, a as SalaryTimeframeValue, b as buildJobBreadcrumbs, f as formatSalaryRange, c as formatSalaryStat, d as formatSalaryStatRange, n as normalizeWebsiteUrl } from './breadcrumbs-Cz1sFqtV.mjs';
|
|
2
|
+
import { C as CustomFieldDefinition } from './board-CvBkK7my.mjs';
|
|
3
|
+
import { C as CustomFieldValues } from './jobs-aTp9uC3a.mjs';
|
|
4
|
+
import './_spec-BnoxU-iR.mjs';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Date display helpers in the board language (required leading parameter,
|
package/dist/format.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export { C as CurrencyDisplay, F as FormattedSalaryRange, J as JobBreadcrumb, N as NumberNotation, S as SalaryTimeframeInput, a as SalaryTimeframeValue, b as buildJobBreadcrumbs, f as formatSalaryRange, c as formatSalaryStat, d as formatSalaryStatRange, n as normalizeWebsiteUrl } from './breadcrumbs-
|
|
2
|
-
import { C as CustomFieldDefinition } from './board-
|
|
3
|
-
import { C as CustomFieldValues } from './jobs-
|
|
4
|
-
import './_spec-
|
|
1
|
+
export { C as CurrencyDisplay, F as FormattedSalaryRange, J as JobBreadcrumb, N as NumberNotation, S as SalaryTimeframeInput, a as SalaryTimeframeValue, b as buildJobBreadcrumbs, f as formatSalaryRange, c as formatSalaryStat, d as formatSalaryStatRange, n as normalizeWebsiteUrl } from './breadcrumbs-Blf_rsux.js';
|
|
2
|
+
import { C as CustomFieldDefinition } from './board-4vXzYDL3.js';
|
|
3
|
+
import { C as CustomFieldValues } from './jobs-B8DNWEir.js';
|
|
4
|
+
import './_spec-BnoxU-iR.js';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Date display helpers in the board language (required leading parameter,
|
package/dist/index.d.mts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { S as Schemas, c as components } from './_spec-
|
|
2
|
-
import { F as FetchOptions, S as StorageMode, B as BoardRequest, A as Awaitable, L as Logger, a as BoardClient, b as SearchSuggestQuery } from './search-
|
|
3
|
-
export { c as ACCESS_TOKEN_KEY, d as BOARD_ACCESS_GRANT_KEY, C as CompanySuggestion, e as CustomStorage, M as MarketSuggestion, R as REFRESH_TOKEN_KEY, f as SearchSuggestType, g as SuggestResult, h as SuggestionItem, T as TermSuggestion } from './search-
|
|
4
|
-
import { c as CompaniesListQuery, d as CompanyListEnvelope, e as CompaniesSearchBody, f as CompanyJobsListQuery, g as CompanySimilarQuery, h as CompanyMarketsListQuery, i as SalaryDetailQuery } from './board-
|
|
5
|
-
export { a as CompanyCategorySalary, j as CompanyMarket, k as CompanyMarketRef, b as CompanySalary, C as CustomFieldDefinition, l as CustomFieldOption, m as CustomFieldType, L as LocationSalaryDetail, n as LocationSkillsIndex, o as LocationTitlesIndex, P as PublicBoard, p as PublicBoardAnalytics, q as PublicBoardFeatures, r as PublicCompany, s as PublicCompanyDetail, t as SalaryCompany, u as SalaryLocation, v as SalarySkill, w as SalaryTitle, x as SkillLocationSalary, y as SkillLocationsIndex, S as SkillSalaryDetail, z as TitleLocationSalary, A as TitleLocationsIndex, T as TitleSalaryDetail } from './board-
|
|
6
|
-
import { R as RemoteOption, E as EmploymentType, S as Seniority, L as ListEnvelope, a as JobsListQuery, b as JobCardListEnvelope, c as JobsSearchBody, d as JobCardSearchEnvelope, e as JobsSimilarQuery, f as SearchEnvelope } from './jobs-
|
|
7
|
-
export { g as CustomFieldValue, C as CustomFieldValues, h as EducationRequirement, i as JobCatalogPagination, j as JobCompany, J as JobSort, O as OfficeLocation, k as OffsetPagination, P as PublicJob, l as PublicJobCard, m as RelatedSearch, n as RemotePermit, o as RemoteTimezone, p as StorefrontPagination } from './jobs-
|
|
8
|
-
import { a as BlogPostsListQuery, b as BlogSimilarQuery, c as BlogSearchBody } from './blog-
|
|
9
|
-
export { B as BlogAuthorEmbed, d as BlogTagEmbed, e as PublicBlogAdjacentPosts, f as PublicBlogAuthor, g as PublicBlogPost, P as PublicBlogPostSummary, h as PublicBlogTag } from './blog-
|
|
1
|
+
import { S as Schemas, c as components } from './_spec-BnoxU-iR.mjs';
|
|
2
|
+
import { F as FetchOptions, S as StorageMode, B as BoardRequest, A as Awaitable, L as Logger, a as BoardClient, b as SearchSuggestQuery } from './search-Cs7d8y1k.mjs';
|
|
3
|
+
export { c as ACCESS_TOKEN_KEY, d as BOARD_ACCESS_GRANT_KEY, C as CompanySuggestion, e as CustomStorage, M as MarketSuggestion, R as REFRESH_TOKEN_KEY, f as SearchSuggestType, g as SuggestResult, h as SuggestionItem, T as TermSuggestion } from './search-Cs7d8y1k.mjs';
|
|
4
|
+
import { c as CompaniesListQuery, d as CompanyListEnvelope, e as CompaniesSearchBody, f as CompanyJobsListQuery, g as CompanySimilarQuery, h as CompanyMarketsListQuery, i as SalaryDetailQuery } from './board-CvBkK7my.mjs';
|
|
5
|
+
export { a as CompanyCategorySalary, j as CompanyMarket, k as CompanyMarketRef, b as CompanySalary, C as CustomFieldDefinition, l as CustomFieldOption, m as CustomFieldType, L as LocationSalaryDetail, n as LocationSkillsIndex, o as LocationTitlesIndex, P as PublicBoard, p as PublicBoardAnalytics, q as PublicBoardFeatures, r as PublicCompany, s as PublicCompanyDetail, t as SalaryCompany, u as SalaryLocation, v as SalarySkill, w as SalaryTitle, x as SkillLocationSalary, y as SkillLocationsIndex, S as SkillSalaryDetail, z as TitleLocationSalary, A as TitleLocationsIndex, T as TitleSalaryDetail } from './board-CvBkK7my.mjs';
|
|
6
|
+
import { R as RemoteOption, E as EmploymentType, S as Seniority, L as ListEnvelope, a as JobsListQuery, b as JobCardListEnvelope, c as JobsSearchBody, d as JobCardSearchEnvelope, e as JobsSimilarQuery, f as SearchEnvelope } from './jobs-aTp9uC3a.mjs';
|
|
7
|
+
export { g as CustomFieldValue, C as CustomFieldValues, h as EducationRequirement, i as JobCatalogPagination, j as JobCompany, J as JobSort, O as OfficeLocation, k as OffsetPagination, P as PublicJob, l as PublicJobCard, m as RelatedSearch, n as RemotePermit, o as RemoteTimezone, p as StorefrontPagination } from './jobs-aTp9uC3a.mjs';
|
|
8
|
+
import { a as BlogPostsListQuery, b as BlogSimilarQuery, c as BlogSearchBody } from './blog-DoAOCg-d.mjs';
|
|
9
|
+
export { B as BlogAuthorEmbed, d as BlogTagEmbed, e as PublicBlogAdjacentPosts, f as PublicBlogAuthor, g as PublicBlogPost, P as PublicBlogPostSummary, h as PublicBlogTag } from './blog-DoAOCg-d.mjs';
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
12
|
* Well-known `<domain>_<snake_reason>` codes the Board API sends, grouped by
|
|
@@ -142,7 +142,7 @@ declare function paginate<Q extends Record<string, unknown>, P extends PageShape
|
|
|
142
142
|
* constant because the package is platform-neutral and cannot read
|
|
143
143
|
* package.json at runtime.
|
|
144
144
|
*/
|
|
145
|
-
declare const SDK_VERSION = "4.
|
|
145
|
+
declare const SDK_VERSION = "4.2.0";
|
|
146
146
|
|
|
147
147
|
type SavedJob = Schemas['SavedJob'];
|
|
148
148
|
type SavedJobsListQuery = {
|
|
@@ -679,10 +679,11 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
|
|
|
679
679
|
*/
|
|
680
680
|
client: BoardClient;
|
|
681
681
|
/**
|
|
682
|
-
* Board context — identity,
|
|
682
|
+
* Board context — identity, brand (`logoUrl` + favicon `icons`), language,
|
|
683
|
+
* features, and analytics.
|
|
683
684
|
*
|
|
684
685
|
* @example
|
|
685
|
-
* const { name, language } = await board.context();
|
|
686
|
+
* const { name, language, logoUrl, icons } = await board.context();
|
|
686
687
|
*/
|
|
687
688
|
context(options?: FetchOptions): Promise<{
|
|
688
689
|
object: "public_board";
|
|
@@ -691,6 +692,14 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
|
|
|
691
692
|
name: string;
|
|
692
693
|
language: string;
|
|
693
694
|
logoUrl: string | null;
|
|
695
|
+
icons: {
|
|
696
|
+
ico: string | null;
|
|
697
|
+
svg: string | null;
|
|
698
|
+
appleTouch: string | null;
|
|
699
|
+
icon192: string | null;
|
|
700
|
+
icon512: string | null;
|
|
701
|
+
iconMaskable512: string | null;
|
|
702
|
+
};
|
|
694
703
|
primaryDomain: string | null;
|
|
695
704
|
showCavunoBranding: boolean;
|
|
696
705
|
features: {
|
|
@@ -726,9 +735,9 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
|
|
|
726
735
|
};
|
|
727
736
|
}>;
|
|
728
737
|
/**
|
|
729
|
-
* Board SEO infra — `ads.txt`, IndexNow key, Google site-verification,
|
|
730
|
-
*
|
|
731
|
-
* `
|
|
738
|
+
* Board SEO infra tokens — `ads.txt`, IndexNow key, Google site-verification,
|
|
739
|
+
* canonical base URL, and `manifest.name`. Favicon / app-icon URLs are
|
|
740
|
+
* brand identity on `board.context()` (`logoUrl` + `icons`).
|
|
732
741
|
*
|
|
733
742
|
* @example
|
|
734
743
|
* const { adsTxt, canonicalBase } = await board.seo();
|
|
@@ -821,6 +830,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
|
|
|
821
830
|
salaryCurrency: string | null;
|
|
822
831
|
salaryTimeframe: string | null;
|
|
823
832
|
isFeatured: boolean;
|
|
833
|
+
summary: string | null;
|
|
824
834
|
locationLabel: string | null;
|
|
825
835
|
company: {
|
|
826
836
|
slug: string;
|
|
@@ -920,6 +930,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
|
|
|
920
930
|
salaryCurrency: string | null;
|
|
921
931
|
salaryTimeframe: string | null;
|
|
922
932
|
isFeatured: boolean;
|
|
933
|
+
summary: string | null;
|
|
923
934
|
locationLabel: string | null;
|
|
924
935
|
company: {
|
|
925
936
|
slug: string;
|
|
@@ -949,6 +960,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
|
|
|
949
960
|
slug: string;
|
|
950
961
|
website: string | null;
|
|
951
962
|
logoUrl: string | null;
|
|
963
|
+
summary: string | null;
|
|
952
964
|
description: string | null;
|
|
953
965
|
jobCount: number;
|
|
954
966
|
publishedJobCount: number;
|
|
@@ -963,6 +975,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
|
|
|
963
975
|
slug: string;
|
|
964
976
|
website: string | null;
|
|
965
977
|
logoUrl: string | null;
|
|
978
|
+
summary: string | null;
|
|
966
979
|
description: string | null;
|
|
967
980
|
jobCount: number;
|
|
968
981
|
publishedJobCount: number;
|
|
@@ -976,6 +989,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
|
|
|
976
989
|
slug: string;
|
|
977
990
|
website: string | null;
|
|
978
991
|
logoUrl: string | null;
|
|
992
|
+
summary: string | null;
|
|
979
993
|
description: string | null;
|
|
980
994
|
jobCount: number;
|
|
981
995
|
publishedJobCount: number;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { S as Schemas, c as components } from './_spec-
|
|
2
|
-
import { F as FetchOptions, S as StorageMode, B as BoardRequest, A as Awaitable, L as Logger, a as BoardClient, b as SearchSuggestQuery } from './search-
|
|
3
|
-
export { c as ACCESS_TOKEN_KEY, d as BOARD_ACCESS_GRANT_KEY, C as CompanySuggestion, e as CustomStorage, M as MarketSuggestion, R as REFRESH_TOKEN_KEY, f as SearchSuggestType, g as SuggestResult, h as SuggestionItem, T as TermSuggestion } from './search-
|
|
4
|
-
import { c as CompaniesListQuery, d as CompanyListEnvelope, e as CompaniesSearchBody, f as CompanyJobsListQuery, g as CompanySimilarQuery, h as CompanyMarketsListQuery, i as SalaryDetailQuery } from './board-
|
|
5
|
-
export { a as CompanyCategorySalary, j as CompanyMarket, k as CompanyMarketRef, b as CompanySalary, C as CustomFieldDefinition, l as CustomFieldOption, m as CustomFieldType, L as LocationSalaryDetail, n as LocationSkillsIndex, o as LocationTitlesIndex, P as PublicBoard, p as PublicBoardAnalytics, q as PublicBoardFeatures, r as PublicCompany, s as PublicCompanyDetail, t as SalaryCompany, u as SalaryLocation, v as SalarySkill, w as SalaryTitle, x as SkillLocationSalary, y as SkillLocationsIndex, S as SkillSalaryDetail, z as TitleLocationSalary, A as TitleLocationsIndex, T as TitleSalaryDetail } from './board-
|
|
6
|
-
import { R as RemoteOption, E as EmploymentType, S as Seniority, L as ListEnvelope, a as JobsListQuery, b as JobCardListEnvelope, c as JobsSearchBody, d as JobCardSearchEnvelope, e as JobsSimilarQuery, f as SearchEnvelope } from './jobs-
|
|
7
|
-
export { g as CustomFieldValue, C as CustomFieldValues, h as EducationRequirement, i as JobCatalogPagination, j as JobCompany, J as JobSort, O as OfficeLocation, k as OffsetPagination, P as PublicJob, l as PublicJobCard, m as RelatedSearch, n as RemotePermit, o as RemoteTimezone, p as StorefrontPagination } from './jobs-
|
|
8
|
-
import { a as BlogPostsListQuery, b as BlogSimilarQuery, c as BlogSearchBody } from './blog-
|
|
9
|
-
export { B as BlogAuthorEmbed, d as BlogTagEmbed, e as PublicBlogAdjacentPosts, f as PublicBlogAuthor, g as PublicBlogPost, P as PublicBlogPostSummary, h as PublicBlogTag } from './blog-
|
|
1
|
+
import { S as Schemas, c as components } from './_spec-BnoxU-iR.js';
|
|
2
|
+
import { F as FetchOptions, S as StorageMode, B as BoardRequest, A as Awaitable, L as Logger, a as BoardClient, b as SearchSuggestQuery } from './search-Cskh-neW.js';
|
|
3
|
+
export { c as ACCESS_TOKEN_KEY, d as BOARD_ACCESS_GRANT_KEY, C as CompanySuggestion, e as CustomStorage, M as MarketSuggestion, R as REFRESH_TOKEN_KEY, f as SearchSuggestType, g as SuggestResult, h as SuggestionItem, T as TermSuggestion } from './search-Cskh-neW.js';
|
|
4
|
+
import { c as CompaniesListQuery, d as CompanyListEnvelope, e as CompaniesSearchBody, f as CompanyJobsListQuery, g as CompanySimilarQuery, h as CompanyMarketsListQuery, i as SalaryDetailQuery } from './board-4vXzYDL3.js';
|
|
5
|
+
export { a as CompanyCategorySalary, j as CompanyMarket, k as CompanyMarketRef, b as CompanySalary, C as CustomFieldDefinition, l as CustomFieldOption, m as CustomFieldType, L as LocationSalaryDetail, n as LocationSkillsIndex, o as LocationTitlesIndex, P as PublicBoard, p as PublicBoardAnalytics, q as PublicBoardFeatures, r as PublicCompany, s as PublicCompanyDetail, t as SalaryCompany, u as SalaryLocation, v as SalarySkill, w as SalaryTitle, x as SkillLocationSalary, y as SkillLocationsIndex, S as SkillSalaryDetail, z as TitleLocationSalary, A as TitleLocationsIndex, T as TitleSalaryDetail } from './board-4vXzYDL3.js';
|
|
6
|
+
import { R as RemoteOption, E as EmploymentType, S as Seniority, L as ListEnvelope, a as JobsListQuery, b as JobCardListEnvelope, c as JobsSearchBody, d as JobCardSearchEnvelope, e as JobsSimilarQuery, f as SearchEnvelope } from './jobs-B8DNWEir.js';
|
|
7
|
+
export { g as CustomFieldValue, C as CustomFieldValues, h as EducationRequirement, i as JobCatalogPagination, j as JobCompany, J as JobSort, O as OfficeLocation, k as OffsetPagination, P as PublicJob, l as PublicJobCard, m as RelatedSearch, n as RemotePermit, o as RemoteTimezone, p as StorefrontPagination } from './jobs-B8DNWEir.js';
|
|
8
|
+
import { a as BlogPostsListQuery, b as BlogSimilarQuery, c as BlogSearchBody } from './blog-D-PYhejB.js';
|
|
9
|
+
export { B as BlogAuthorEmbed, d as BlogTagEmbed, e as PublicBlogAdjacentPosts, f as PublicBlogAuthor, g as PublicBlogPost, P as PublicBlogPostSummary, h as PublicBlogTag } from './blog-D-PYhejB.js';
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
12
|
* Well-known `<domain>_<snake_reason>` codes the Board API sends, grouped by
|
|
@@ -142,7 +142,7 @@ declare function paginate<Q extends Record<string, unknown>, P extends PageShape
|
|
|
142
142
|
* constant because the package is platform-neutral and cannot read
|
|
143
143
|
* package.json at runtime.
|
|
144
144
|
*/
|
|
145
|
-
declare const SDK_VERSION = "4.
|
|
145
|
+
declare const SDK_VERSION = "4.2.0";
|
|
146
146
|
|
|
147
147
|
type SavedJob = Schemas['SavedJob'];
|
|
148
148
|
type SavedJobsListQuery = {
|
|
@@ -679,10 +679,11 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
|
|
|
679
679
|
*/
|
|
680
680
|
client: BoardClient;
|
|
681
681
|
/**
|
|
682
|
-
* Board context — identity,
|
|
682
|
+
* Board context — identity, brand (`logoUrl` + favicon `icons`), language,
|
|
683
|
+
* features, and analytics.
|
|
683
684
|
*
|
|
684
685
|
* @example
|
|
685
|
-
* const { name, language } = await board.context();
|
|
686
|
+
* const { name, language, logoUrl, icons } = await board.context();
|
|
686
687
|
*/
|
|
687
688
|
context(options?: FetchOptions): Promise<{
|
|
688
689
|
object: "public_board";
|
|
@@ -691,6 +692,14 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
|
|
|
691
692
|
name: string;
|
|
692
693
|
language: string;
|
|
693
694
|
logoUrl: string | null;
|
|
695
|
+
icons: {
|
|
696
|
+
ico: string | null;
|
|
697
|
+
svg: string | null;
|
|
698
|
+
appleTouch: string | null;
|
|
699
|
+
icon192: string | null;
|
|
700
|
+
icon512: string | null;
|
|
701
|
+
iconMaskable512: string | null;
|
|
702
|
+
};
|
|
694
703
|
primaryDomain: string | null;
|
|
695
704
|
showCavunoBranding: boolean;
|
|
696
705
|
features: {
|
|
@@ -726,9 +735,9 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
|
|
|
726
735
|
};
|
|
727
736
|
}>;
|
|
728
737
|
/**
|
|
729
|
-
* Board SEO infra — `ads.txt`, IndexNow key, Google site-verification,
|
|
730
|
-
*
|
|
731
|
-
* `
|
|
738
|
+
* Board SEO infra tokens — `ads.txt`, IndexNow key, Google site-verification,
|
|
739
|
+
* canonical base URL, and `manifest.name`. Favicon / app-icon URLs are
|
|
740
|
+
* brand identity on `board.context()` (`logoUrl` + `icons`).
|
|
732
741
|
*
|
|
733
742
|
* @example
|
|
734
743
|
* const { adsTxt, canonicalBase } = await board.seo();
|
|
@@ -821,6 +830,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
|
|
|
821
830
|
salaryCurrency: string | null;
|
|
822
831
|
salaryTimeframe: string | null;
|
|
823
832
|
isFeatured: boolean;
|
|
833
|
+
summary: string | null;
|
|
824
834
|
locationLabel: string | null;
|
|
825
835
|
company: {
|
|
826
836
|
slug: string;
|
|
@@ -920,6 +930,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
|
|
|
920
930
|
salaryCurrency: string | null;
|
|
921
931
|
salaryTimeframe: string | null;
|
|
922
932
|
isFeatured: boolean;
|
|
933
|
+
summary: string | null;
|
|
923
934
|
locationLabel: string | null;
|
|
924
935
|
company: {
|
|
925
936
|
slug: string;
|
|
@@ -949,6 +960,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
|
|
|
949
960
|
slug: string;
|
|
950
961
|
website: string | null;
|
|
951
962
|
logoUrl: string | null;
|
|
963
|
+
summary: string | null;
|
|
952
964
|
description: string | null;
|
|
953
965
|
jobCount: number;
|
|
954
966
|
publishedJobCount: number;
|
|
@@ -963,6 +975,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
|
|
|
963
975
|
slug: string;
|
|
964
976
|
website: string | null;
|
|
965
977
|
logoUrl: string | null;
|
|
978
|
+
summary: string | null;
|
|
966
979
|
description: string | null;
|
|
967
980
|
jobCount: number;
|
|
968
981
|
publishedJobCount: number;
|
|
@@ -976,6 +989,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
|
|
|
976
989
|
slug: string;
|
|
977
990
|
website: string | null;
|
|
978
991
|
logoUrl: string | null;
|
|
992
|
+
summary: string | null;
|
|
979
993
|
description: string | null;
|
|
980
994
|
jobCount: number;
|
|
981
995
|
publishedJobCount: number;
|
package/dist/index.js
CHANGED
|
@@ -312,7 +312,7 @@ async function clearSession(storage) {
|
|
|
312
312
|
}
|
|
313
313
|
|
|
314
314
|
// src/version.ts
|
|
315
|
-
var SDK_VERSION = "4.
|
|
315
|
+
var SDK_VERSION = "4.2.0";
|
|
316
316
|
|
|
317
317
|
// src/client.ts
|
|
318
318
|
function isRawBody(body) {
|
|
@@ -2840,18 +2840,19 @@ function createBoardClient(options) {
|
|
|
2840
2840
|
*/
|
|
2841
2841
|
client,
|
|
2842
2842
|
/**
|
|
2843
|
-
* Board context — identity,
|
|
2843
|
+
* Board context — identity, brand (`logoUrl` + favicon `icons`), language,
|
|
2844
|
+
* features, and analytics.
|
|
2844
2845
|
*
|
|
2845
2846
|
* @example
|
|
2846
|
-
* const { name, language } = await board.context();
|
|
2847
|
+
* const { name, language, logoUrl, icons } = await board.context();
|
|
2847
2848
|
*/
|
|
2848
2849
|
context(options2) {
|
|
2849
2850
|
return client.fetch("", options2);
|
|
2850
2851
|
},
|
|
2851
2852
|
/**
|
|
2852
|
-
* Board SEO infra — `ads.txt`, IndexNow key, Google site-verification,
|
|
2853
|
-
*
|
|
2854
|
-
* `
|
|
2853
|
+
* Board SEO infra tokens — `ads.txt`, IndexNow key, Google site-verification,
|
|
2854
|
+
* canonical base URL, and `manifest.name`. Favicon / app-icon URLs are
|
|
2855
|
+
* brand identity on `board.context()` (`logoUrl` + `icons`).
|
|
2855
2856
|
*
|
|
2856
2857
|
* @example
|
|
2857
2858
|
* const { adsTxt, canonicalBase } = await board.seo();
|
package/dist/index.mjs
CHANGED
|
@@ -39,7 +39,7 @@ function toSearchParams(query) {
|
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
// src/version.ts
|
|
42
|
-
var SDK_VERSION = "4.
|
|
42
|
+
var SDK_VERSION = "4.2.0";
|
|
43
43
|
|
|
44
44
|
// src/client.ts
|
|
45
45
|
function isRawBody(body) {
|
|
@@ -2537,18 +2537,19 @@ function createBoardClient(options) {
|
|
|
2537
2537
|
*/
|
|
2538
2538
|
client,
|
|
2539
2539
|
/**
|
|
2540
|
-
* Board context — identity,
|
|
2540
|
+
* Board context — identity, brand (`logoUrl` + favicon `icons`), language,
|
|
2541
|
+
* features, and analytics.
|
|
2541
2542
|
*
|
|
2542
2543
|
* @example
|
|
2543
|
-
* const { name, language } = await board.context();
|
|
2544
|
+
* const { name, language, logoUrl, icons } = await board.context();
|
|
2544
2545
|
*/
|
|
2545
2546
|
context(options2) {
|
|
2546
2547
|
return client.fetch("", options2);
|
|
2547
2548
|
},
|
|
2548
2549
|
/**
|
|
2549
|
-
* Board SEO infra — `ads.txt`, IndexNow key, Google site-verification,
|
|
2550
|
-
*
|
|
2551
|
-
* `
|
|
2550
|
+
* Board SEO infra tokens — `ads.txt`, IndexNow key, Google site-verification,
|
|
2551
|
+
* canonical base URL, and `manifest.name`. Favicon / app-icon URLs are
|
|
2552
|
+
* brand identity on `board.context()` (`logoUrl` + `icons`).
|
|
2552
2553
|
*
|
|
2553
2554
|
* @example
|
|
2554
2555
|
* const { adsTxt, canonicalBase } = await board.seo();
|
package/dist/seo.d.mts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { P as PublicBlogPostSummary, B as BlogAuthorEmbed } from './blog-
|
|
2
|
-
import { e as JsonLdObject } from './breadcrumbs-
|
|
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-
|
|
4
|
-
import './_spec-
|
|
5
|
-
import './board-
|
|
6
|
-
import './jobs-
|
|
1
|
+
import { P as PublicBlogPostSummary, B as BlogAuthorEmbed } from './blog-DoAOCg-d.mjs';
|
|
2
|
+
import { e as JsonLdObject } from './breadcrumbs-Cz1sFqtV.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-Cz1sFqtV.mjs';
|
|
4
|
+
import './_spec-BnoxU-iR.mjs';
|
|
5
|
+
import './board-CvBkK7my.mjs';
|
|
6
|
+
import './jobs-aTp9uC3a.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-
|
|
2
|
-
import { e as JsonLdObject } from './breadcrumbs-
|
|
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-
|
|
4
|
-
import './_spec-
|
|
5
|
-
import './board-
|
|
6
|
-
import './jobs-
|
|
1
|
+
import { P as PublicBlogPostSummary, B as BlogAuthorEmbed } from './blog-D-PYhejB.js';
|
|
2
|
+
import { e as JsonLdObject } from './breadcrumbs-Blf_rsux.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-Blf_rsux.js';
|
|
4
|
+
import './_spec-BnoxU-iR.js';
|
|
5
|
+
import './board-4vXzYDL3.js';
|
|
6
|
+
import './jobs-B8DNWEir.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,9 +1,9 @@
|
|
|
1
1
|
import { BoardSdk } from './index.mjs';
|
|
2
|
-
import './_spec-
|
|
3
|
-
import './search-
|
|
4
|
-
import './board-
|
|
5
|
-
import './jobs-
|
|
6
|
-
import './blog-
|
|
2
|
+
import './_spec-BnoxU-iR.mjs';
|
|
3
|
+
import './search-Cs7d8y1k.mjs';
|
|
4
|
+
import './board-CvBkK7my.mjs';
|
|
5
|
+
import './jobs-aTp9uC3a.mjs';
|
|
6
|
+
import './blog-DoAOCg-d.mjs';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* Session cookie codec — pure (no framework imports, no node imports) so it
|
package/dist/server.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { BoardSdk } from './index.js';
|
|
2
|
-
import './_spec-
|
|
3
|
-
import './search-
|
|
4
|
-
import './board-
|
|
5
|
-
import './jobs-
|
|
6
|
-
import './blog-
|
|
2
|
+
import './_spec-BnoxU-iR.js';
|
|
3
|
+
import './search-Cskh-neW.js';
|
|
4
|
+
import './board-4vXzYDL3.js';
|
|
5
|
+
import './jobs-B8DNWEir.js';
|
|
6
|
+
import './blog-D-PYhejB.js';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* Session cookie codec — pure (no framework imports, no node imports) so it
|
package/dist/sitemap.d.mts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { BoardSdk } from './index.mjs';
|
|
2
|
-
import './_spec-
|
|
3
|
-
import './search-
|
|
4
|
-
import './board-
|
|
5
|
-
import './jobs-
|
|
6
|
-
import './blog-
|
|
2
|
+
import './_spec-BnoxU-iR.mjs';
|
|
3
|
+
import './search-Cs7d8y1k.mjs';
|
|
4
|
+
import './board-CvBkK7my.mjs';
|
|
5
|
+
import './jobs-aTp9uC3a.mjs';
|
|
6
|
+
import './blog-DoAOCg-d.mjs';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* Sitemap primitives — the pure XML + bucket-filename logic behind a board
|
package/dist/sitemap.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { BoardSdk } from './index.js';
|
|
2
|
-
import './_spec-
|
|
3
|
-
import './search-
|
|
4
|
-
import './board-
|
|
5
|
-
import './jobs-
|
|
6
|
-
import './blog-
|
|
2
|
+
import './_spec-BnoxU-iR.js';
|
|
3
|
+
import './search-Cskh-neW.js';
|
|
4
|
+
import './board-4vXzYDL3.js';
|
|
5
|
+
import './jobs-B8DNWEir.js';
|
|
6
|
+
import './blog-D-PYhejB.js';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* Sitemap primitives — the pure XML + bucket-filename logic behind a board
|
package/dist/suggest.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { h as SuggestionItem, b as SearchSuggestQuery, F as FetchOptions, g as SuggestResult } from './search-
|
|
2
|
-
import './_spec-
|
|
1
|
+
import { h as SuggestionItem, b as SearchSuggestQuery, F as FetchOptions, g as SuggestResult } from './search-Cs7d8y1k.mjs';
|
|
2
|
+
import './_spec-BnoxU-iR.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-
|
|
2
|
-
import './_spec-
|
|
1
|
+
import { h as SuggestionItem, b as SearchSuggestQuery, F as FetchOptions, g as SuggestResult } from './search-Cskh-neW.js';
|
|
2
|
+
import './_spec-BnoxU-iR.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* `@cavuno/board/suggest` — framework-agnostic headless search-suggest
|
package/package.json
CHANGED
|
@@ -19,6 +19,18 @@ Read the matching reference completely before implementing that page:
|
|
|
19
19
|
|
|
20
20
|
For a page that combines branches, read every matching reference.
|
|
21
21
|
|
|
22
|
+
## Favicons and board logo
|
|
23
|
+
|
|
24
|
+
Brand identity — not SEO builders. Read them from `board.context()`:
|
|
25
|
+
|
|
26
|
+
```ts
|
|
27
|
+
const { logoUrl, icons } = await board.context();
|
|
28
|
+
// logoUrl — board logo
|
|
29
|
+
// icons.ico / .svg / .appleTouch / .icon192 / .icon512 / .iconMaskable512
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
`board.seo()` is infra tokens only (ads, IndexNow, verification, canonical base, optional `manifest.name`).
|
|
33
|
+
|
|
22
34
|
Sitemaps and robots.txt use `cavuno-board-sitemap`. The host app owns OG-image
|
|
23
35
|
generation and its route map. `listingHead` receives app-owned title and
|
|
24
36
|
meta description copy; the SDK never composes those sentences or joins
|
package/skills/manifest.json
CHANGED