@cavuno/board 4.12.0 → 4.14.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 +39 -0
- package/dist/{_spec-ChuT3QX8.d.mts → _spec-CzS_E61o.d.mts} +52 -0
- package/dist/{_spec-ChuT3QX8.d.ts → _spec-CzS_E61o.d.ts} +52 -0
- package/dist/{blog-VbcrwKk9.d.ts → blog-CtRz0ZlI.d.ts} +1 -1
- package/dist/{blog-BB_l6xes.d.mts → blog-D4R04cZP.d.mts} +1 -1
- package/dist/{board-CWQjFHWJ.d.ts → board-CXE7dnk9.d.mts} +2 -2
- package/dist/{board-BJCKz-Is.d.mts → board-MqLMXY48.d.ts} +2 -2
- package/dist/{breadcrumbs-6TB8Lw-C.d.ts → breadcrumbs-DdEy2bpQ.d.ts} +18 -6
- package/dist/{breadcrumbs-BoIXFh0q.d.mts → breadcrumbs-bbEYB2CD.d.mts} +18 -6
- package/dist/browser/cavuno-board.global.min.js +1 -1
- package/dist/{chunk-6454IFHS.mjs → chunk-OPMJ6YH5.mjs} +6 -3
- package/dist/{chunk-XEJWXRLK.mjs → chunk-W73BOGOQ.mjs} +4 -0
- 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/format.mjs +1 -1
- package/dist/index.d.mts +113 -13
- package/dist/index.d.ts +113 -13
- package/dist/index.js +145 -1
- package/dist/index.mjs +142 -2
- package/dist/{jobs-CV41Msa7.d.mts → jobs-CsrNGyvS.d.mts} +1 -1
- package/dist/{jobs-CsoxD0mU.d.ts → jobs-DDJDUH3q.d.ts} +1 -1
- package/dist/{search-ACYoyhh3.d.ts → search-B3nCRBqd.d.ts} +1 -1
- package/dist/{search-DEVb6pdX.d.mts → search-Bnx30Fe2.d.mts} +1 -1
- package/dist/{seo-BrC9ue1U.d.ts → seo-BUDWv2pv.d.ts} +1 -1
- package/dist/{seo-DvS9_GxS.d.mts → seo-aSJ3zVx9.d.mts} +1 -1
- package/dist/seo-files.d.mts +2 -2
- package/dist/seo-files.d.ts +2 -2
- package/dist/seo.d.mts +6 -6
- package/dist/seo.d.ts +6 -6
- package/dist/seo.js +6 -3
- package/dist/seo.mjs +1 -1
- package/dist/server.d.mts +6 -6
- package/dist/server.d.ts +6 -6
- package/dist/server.mjs +1 -1
- package/dist/sitemap.d.mts +6 -6
- package/dist/sitemap.d.ts +6 -6
- package/dist/suggest.d.mts +2 -2
- package/dist/suggest.d.ts +2 -2
- package/package.json +1 -1
- package/skills/cavuno-board-seo/JOB_AND_BREADCRUMBS.md +5 -2
- 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-
|
|
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.
|
|
42
|
+
var SDK_VERSION = "4.14.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
|
package/dist/seo-files.d.mts
CHANGED
package/dist/seo-files.d.ts
CHANGED
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-D4R04cZP.mjs';
|
|
2
|
+
import { e as JsonLdObject } from './breadcrumbs-bbEYB2CD.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-bbEYB2CD.mjs';
|
|
4
|
+
import './_spec-CzS_E61o.mjs';
|
|
5
|
+
import './board-CXE7dnk9.mjs';
|
|
6
|
+
import './jobs-CsrNGyvS.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-CtRz0ZlI.js';
|
|
2
|
+
import { e as JsonLdObject } from './breadcrumbs-DdEy2bpQ.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-DdEy2bpQ.js';
|
|
4
|
+
import './_spec-CzS_E61o.js';
|
|
5
|
+
import './board-MqLMXY48.js';
|
|
6
|
+
import './jobs-DDJDUH3q.js';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* Blog structured data on the `@cavuno/board` wire types, transcribed from
|
package/dist/seo.js
CHANGED
|
@@ -282,6 +282,9 @@ function buildJobBreadcrumbs(job) {
|
|
|
282
282
|
}
|
|
283
283
|
|
|
284
284
|
// src/seo/job-posting.ts
|
|
285
|
+
function organizationName(job, board) {
|
|
286
|
+
return job.company?.name ?? board.legalName ?? board.contact?.legalName ?? board.name ?? null;
|
|
287
|
+
}
|
|
285
288
|
var EDUCATION_TO_CREDENTIAL = {
|
|
286
289
|
high_school: "high school",
|
|
287
290
|
associate_degree: "associate degree",
|
|
@@ -588,13 +591,13 @@ function createJobPostingJsonLd({
|
|
|
588
591
|
return jsonLd;
|
|
589
592
|
}
|
|
590
593
|
function createIdentifier(job, board) {
|
|
591
|
-
const
|
|
594
|
+
const name = organizationName(job, board);
|
|
592
595
|
const identifier = { "@type": "PropertyValue", value: job.id };
|
|
593
|
-
if (
|
|
596
|
+
if (name) identifier.name = name;
|
|
594
597
|
return identifier;
|
|
595
598
|
}
|
|
596
599
|
function createHiringOrganization(job, board) {
|
|
597
|
-
const name = job
|
|
600
|
+
const name = organizationName(job, board);
|
|
598
601
|
if (!name) return null;
|
|
599
602
|
const organization = { "@type": "Organization", name };
|
|
600
603
|
const website = job.company?.website ?? null;
|
package/dist/seo.mjs
CHANGED
package/dist/server.d.mts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { BoardSdk } from './index.mjs';
|
|
2
|
-
import './_spec-
|
|
3
|
-
import './search-
|
|
4
|
-
import './board-
|
|
5
|
-
import './jobs-
|
|
6
|
-
import './seo-
|
|
7
|
-
import './blog-
|
|
2
|
+
import './_spec-CzS_E61o.mjs';
|
|
3
|
+
import './search-Bnx30Fe2.mjs';
|
|
4
|
+
import './board-CXE7dnk9.mjs';
|
|
5
|
+
import './jobs-CsrNGyvS.mjs';
|
|
6
|
+
import './seo-aSJ3zVx9.mjs';
|
|
7
|
+
import './blog-D4R04cZP.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-
|
|
3
|
-
import './search-
|
|
4
|
-
import './board-
|
|
5
|
-
import './jobs-
|
|
6
|
-
import './seo-
|
|
7
|
-
import './blog-
|
|
2
|
+
import './_spec-CzS_E61o.js';
|
|
3
|
+
import './search-B3nCRBqd.js';
|
|
4
|
+
import './board-MqLMXY48.js';
|
|
5
|
+
import './jobs-DDJDUH3q.js';
|
|
6
|
+
import './seo-BUDWv2pv.js';
|
|
7
|
+
import './blog-CtRz0ZlI.js';
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Session cookie codec — pure (no framework imports, no node imports) so it
|
package/dist/server.mjs
CHANGED
package/dist/sitemap.d.mts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { BoardSdk } from './index.mjs';
|
|
2
|
-
import './_spec-
|
|
3
|
-
import './search-
|
|
4
|
-
import './board-
|
|
5
|
-
import './jobs-
|
|
6
|
-
import './seo-
|
|
7
|
-
import './blog-
|
|
2
|
+
import './_spec-CzS_E61o.mjs';
|
|
3
|
+
import './search-Bnx30Fe2.mjs';
|
|
4
|
+
import './board-CXE7dnk9.mjs';
|
|
5
|
+
import './jobs-CsrNGyvS.mjs';
|
|
6
|
+
import './seo-aSJ3zVx9.mjs';
|
|
7
|
+
import './blog-D4R04cZP.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-
|
|
3
|
-
import './search-
|
|
4
|
-
import './board-
|
|
5
|
-
import './jobs-
|
|
6
|
-
import './seo-
|
|
7
|
-
import './blog-
|
|
2
|
+
import './_spec-CzS_E61o.js';
|
|
3
|
+
import './search-B3nCRBqd.js';
|
|
4
|
+
import './board-MqLMXY48.js';
|
|
5
|
+
import './jobs-DDJDUH3q.js';
|
|
6
|
+
import './seo-BUDWv2pv.js';
|
|
7
|
+
import './blog-CtRz0ZlI.js';
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* 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-Bnx30Fe2.mjs';
|
|
2
|
+
import './_spec-CzS_E61o.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-B3nCRBqd.js';
|
|
2
|
+
import './_spec-CzS_E61o.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* `@cavuno/board/suggest` — framework-agnostic headless search-suggest
|
package/package.json
CHANGED
|
@@ -12,12 +12,15 @@ Google requires a location signal alongside `TELECOMMUTE`.
|
|
|
12
12
|
```ts snippet
|
|
13
13
|
import { createJobPostingJsonLd } from '@cavuno/board/seo';
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
// Pass the context straight through: it carries `contact.legalName`, which
|
|
16
|
+
// names the organization for a job with no company of its own. Destructuring
|
|
17
|
+
// to `{ name, logoUrl }` silently drops that.
|
|
18
|
+
const context = await board.context();
|
|
16
19
|
const job = await board.jobs.retrieve('senior-chef');
|
|
17
20
|
|
|
18
21
|
const jsonLd = createJobPostingJsonLd({
|
|
19
22
|
job,
|
|
20
|
-
board:
|
|
23
|
+
board: context,
|
|
21
24
|
shareUrl:
|
|
22
25
|
`https://jobs.example.com/companies/${job.company?.slug}/jobs/${job.slug}`,
|
|
23
26
|
});
|
package/skills/manifest.json
CHANGED