@cavuno/board 1.34.0 → 1.35.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/README.md +7 -8
- package/dist/bin.mjs +25 -10
- package/dist/{board-DgDC0T4g.d.mts → board-Be8dY9Ba.d.mts} +1 -1
- package/dist/{board-Id19Yg8-.d.ts → board-DsRbgz_D.d.ts} +1 -1
- package/dist/filters.d.mts +1 -1
- package/dist/filters.d.ts +1 -1
- package/dist/format.d.mts +2 -2
- package/dist/format.d.ts +2 -2
- package/dist/index.d.mts +16 -16
- package/dist/index.d.ts +16 -16
- package/dist/index.js +6 -3
- package/dist/index.mjs +6 -3
- package/dist/{jobs-IIJtDgzX.d.mts → jobs-BFLMDNEN.d.mts} +56 -27
- package/dist/{jobs-IIJtDgzX.d.ts → jobs-BFLMDNEN.d.ts} +56 -27
- package/dist/{salaries-CL_00fNX.d.ts → salaries-negE75t8.d.ts} +4 -4
- package/dist/{salaries-BfEEEOHj.d.mts → salaries-pO_vGORE.d.mts} +4 -4
- package/dist/seo.d.mts +3 -3
- package/dist/seo.d.ts +3 -3
- package/dist/server.d.mts +3 -3
- package/dist/server.d.ts +3 -3
- package/dist/sitemap.d.mts +3 -3
- package/dist/sitemap.d.ts +3 -3
- package/package.json +1 -1
- package/skills/cavuno-board-auth/SKILL.md +0 -1
- package/skills/cavuno-board-client/SKILL.md +1 -4
- package/skills/cavuno-board-job-alerts/SKILL.md +4 -3
- package/skills/cavuno-board-jobs/SKILL.md +2 -2
- package/skills/cavuno-board-setup/SKILL.md +6 -8
- package/skills/cavuno-board-smoke-test/SKILL.md +7 -6
- package/skills/cavuno-board-theme/SKILL.md +33 -45
- package/skills/flavors/tanstack-start/SKILL.md +0 -1
- package/skills/manifest.json +4 -4
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# @cavuno/board
|
|
2
2
|
|
|
3
3
|
Typed, isomorphic client for the [Cavuno](https://cavuno.com) Board API —
|
|
4
|
-
the headless toolkit for building fully
|
|
4
|
+
the headless toolkit for building fully custom job board frontends. Zero
|
|
5
5
|
dependencies; runs in the browser, Node ≥ 20, and Cloudflare Workers.
|
|
6
6
|
|
|
7
7
|
You bring the framework and own the layout; the SDK brings the job board:
|
|
@@ -12,14 +12,14 @@ contract.
|
|
|
12
12
|
|
|
13
13
|
## Building with a coding agent
|
|
14
14
|
|
|
15
|
-
The package ships an
|
|
16
|
-
|
|
15
|
+
The package ships an Agent Skills corpus for Codex, Claude Code, Cursor, and
|
|
16
|
+
other compatible coding agents. It teaches them how to wire a board correctly — client setup,
|
|
17
17
|
auth and session ownership, pagination, gating, error handling, and a
|
|
18
18
|
runtime smoke test:
|
|
19
19
|
|
|
20
20
|
```bash
|
|
21
|
-
npm install @cavuno/board
|
|
22
|
-
npx cavuno
|
|
21
|
+
npm install @cavuno/board # or: pnpm add / yarn add / bun add
|
|
22
|
+
npx @cavuno/board setup # copies version-matched Agent Skills
|
|
23
23
|
```
|
|
24
24
|
|
|
25
25
|
Then ask your agent: *"set up my Cavuno board"* — it reads the
|
|
@@ -33,8 +33,7 @@ never works from stale docs.
|
|
|
33
33
|
import { createBoardClient } from '@cavuno/board';
|
|
34
34
|
|
|
35
35
|
const board = createBoardClient({
|
|
36
|
-
|
|
37
|
-
board: process.env.PUBLIC_CAVUNO_BOARD!, // pk_… publishable key
|
|
36
|
+
board: process.env.PUBLIC_CAVUNO_BOARD!, // pk_… publishable key
|
|
38
37
|
});
|
|
39
38
|
|
|
40
39
|
const { name, theme, features } = await board.context();
|
|
@@ -80,7 +79,7 @@ SDK doesn't cover yet.
|
|
|
80
79
|
|
|
81
80
|
## Docs
|
|
82
81
|
|
|
83
|
-
-
|
|
82
|
+
- SDK guides and reference: https://cavuno.com/docs/sdk
|
|
84
83
|
- The OpenAPI document: `GET https://api.cavuno.com/v1/openapi.json`
|
|
85
84
|
- Reference starter (TanStack Start on Cloudflare Workers):
|
|
86
85
|
https://github.com/wollemiahq/cavuno-board-starter
|
package/dist/bin.mjs
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
+
// src/constants.ts
|
|
4
|
+
var DEFAULT_CAVUNO_API_URL = "https://api.cavuno.com";
|
|
5
|
+
|
|
3
6
|
// src/skills.ts
|
|
4
7
|
import { readFileSync } from "fs";
|
|
5
8
|
import { dirname, resolve } from "path";
|
|
@@ -538,7 +541,11 @@ async function checkBoardResolves(fetchImpl, env) {
|
|
|
538
541
|
context: parsed
|
|
539
542
|
};
|
|
540
543
|
}
|
|
541
|
-
var SKILL_ROOTS = [
|
|
544
|
+
var SKILL_ROOTS = [
|
|
545
|
+
".claude/skills",
|
|
546
|
+
".agents/skills",
|
|
547
|
+
".cursor/skills"
|
|
548
|
+
];
|
|
542
549
|
function checkSkillsFreshness(projectRoot) {
|
|
543
550
|
const roots = SKILL_ROOTS.map((root) => join2(projectRoot, root)).filter(
|
|
544
551
|
(root) => existsSync2(root)
|
|
@@ -546,7 +553,7 @@ function checkSkillsFreshness(projectRoot) {
|
|
|
546
553
|
if (roots.length === 0) {
|
|
547
554
|
return STATIC_SKILLS(
|
|
548
555
|
"skip",
|
|
549
|
-
"no .claude/skills or .
|
|
556
|
+
"no .claude/skills, .agents/skills, or .cursor/skills directory \u2014 run `npx @cavuno/board setup` to install agent skills"
|
|
550
557
|
);
|
|
551
558
|
}
|
|
552
559
|
const corpus = loadSkillCorpus();
|
|
@@ -579,12 +586,16 @@ function checkSkillsFreshness(projectRoot) {
|
|
|
579
586
|
}
|
|
580
587
|
async function runDoctor(options) {
|
|
581
588
|
const fetchImpl = options.fetchImpl ?? fetch;
|
|
589
|
+
const env = {
|
|
590
|
+
...options.env,
|
|
591
|
+
apiUrl: options.env.apiUrl ?? DEFAULT_CAVUNO_API_URL
|
|
592
|
+
};
|
|
582
593
|
const results = [];
|
|
583
|
-
const envResults = checkEnv(
|
|
594
|
+
const envResults = checkEnv(env);
|
|
584
595
|
results.push(...envResults);
|
|
585
596
|
const envOk = envResults.every((r) => r.status === "pass");
|
|
586
|
-
if (
|
|
587
|
-
const api = await checkApiReachable(fetchImpl,
|
|
597
|
+
if (env.apiUrl) {
|
|
598
|
+
const api = await checkApiReachable(fetchImpl, env.apiUrl);
|
|
588
599
|
results.push(
|
|
589
600
|
api ?? STATIC_API("skip", "API URL malformed \u2014 fix env.api-url first")
|
|
590
601
|
);
|
|
@@ -593,7 +604,7 @@ async function runDoctor(options) {
|
|
|
593
604
|
}
|
|
594
605
|
let boardContext = null;
|
|
595
606
|
if (envOk) {
|
|
596
|
-
const resolved = await checkBoardResolves(fetchImpl,
|
|
607
|
+
const resolved = await checkBoardResolves(fetchImpl, env);
|
|
597
608
|
boardContext = resolved.context;
|
|
598
609
|
results.push(resolved.result);
|
|
599
610
|
} else {
|
|
@@ -617,7 +628,7 @@ async function runDoctor(options) {
|
|
|
617
628
|
} else {
|
|
618
629
|
results.push(
|
|
619
630
|
...await runWriteProbes({
|
|
620
|
-
env
|
|
631
|
+
env,
|
|
621
632
|
fetchImpl,
|
|
622
633
|
resendApiKey: options.resendApiKey,
|
|
623
634
|
nonce: options.writeProbeNonce,
|
|
@@ -646,8 +657,10 @@ function runSetup(cwd = process.cwd()) {
|
|
|
646
657
|
(skill) => skill.category === "core" || skill.framework === framework
|
|
647
658
|
);
|
|
648
659
|
const roots = [
|
|
660
|
+
resolve2(cwd, ".agents", "skills"),
|
|
649
661
|
resolve2(cwd, ".claude", "skills"),
|
|
650
|
-
resolve2(cwd, ".
|
|
662
|
+
resolve2(cwd, ".codex", "skills"),
|
|
663
|
+
resolve2(cwd, ".cursor", "skills")
|
|
651
664
|
];
|
|
652
665
|
const existing = roots.filter((root) => existsSync3(root));
|
|
653
666
|
const targetDirs = existing.length > 0 ? existing : [roots[0]];
|
|
@@ -725,11 +738,13 @@ function main() {
|
|
|
725
738
|
);
|
|
726
739
|
for (const name of result.copied) console.log(` - ${name}`);
|
|
727
740
|
console.log("\nNext steps:");
|
|
728
|
-
console.log(" 1. Set your
|
|
729
|
-
console.log(" PUBLIC_CAVUNO_API_URL=https://api.cavuno.com");
|
|
741
|
+
console.log(" 1. Set your board publishable key:");
|
|
730
742
|
console.log(
|
|
731
743
|
" PUBLIC_CAVUNO_BOARD=pk_... # your board publishable key"
|
|
732
744
|
);
|
|
745
|
+
console.log(
|
|
746
|
+
" # Optional API override: PUBLIC_CAVUNO_API_URL=https://api.cavuno.com"
|
|
747
|
+
);
|
|
733
748
|
console.log(' 2. Ask your coding agent: "set up my Cavuno board".');
|
|
734
749
|
console.log(" It reads the cavuno-board-setup skill first.");
|
|
735
750
|
console.log(
|
package/dist/filters.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { B as BoardLabelOverrides } from './ui-copy-rlfoH9P3.mjs';
|
|
2
|
-
import { J as JobSort, E as EmploymentType, R as RemoteOption, S as Seniority } from './jobs-
|
|
2
|
+
import { J as JobSort, E as EmploymentType, R as RemoteOption, S as Seniority } from './jobs-BFLMDNEN.mjs';
|
|
3
3
|
|
|
4
4
|
declare const REMOTE_OPTIONS: readonly RemoteOption[];
|
|
5
5
|
/**
|
package/dist/filters.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { B as BoardLabelOverrides } from './ui-copy-rlfoH9P3.js';
|
|
2
|
-
import { J as JobSort, E as EmploymentType, R as RemoteOption, S as Seniority } from './jobs-
|
|
2
|
+
import { J as JobSort, E as EmploymentType, R as RemoteOption, S as Seniority } from './jobs-BFLMDNEN.js';
|
|
3
3
|
|
|
4
4
|
declare const REMOTE_OPTIONS: readonly RemoteOption[];
|
|
5
5
|
/**
|
package/dist/format.d.mts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { P as PublicJob, a as PublicJobCard, C as CustomFieldValues } from './jobs-
|
|
1
|
+
import { P as PublicJob, a as PublicJobCard, C as CustomFieldValues } from './jobs-BFLMDNEN.mjs';
|
|
2
2
|
import { B as BoardLabelOverrides } from './ui-copy-rlfoH9P3.mjs';
|
|
3
3
|
export { A as AlertsCopy, a as ApplyCopy, b as BlogCopy, c as BreadcrumbsCopy, C as CopyLinkCopy, E as EntityCopy, F as FooterCopy, J as JobCardCopy, d as JobDetailCopy, e as JobSearchCopy, N as NavCopy, P as PUBLIC_LABEL_GROUPS, f as PaginationCopy, S as SalaryCopy, U as UiCopy, u as uiCopy } from './ui-copy-rlfoH9P3.mjs';
|
|
4
|
-
import { C as CustomFieldDefinition } from './board-
|
|
4
|
+
import { C as CustomFieldDefinition } from './board-Be8dY9Ba.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
|
-
import { P as PublicJob, a as PublicJobCard, C as CustomFieldValues } from './jobs-
|
|
1
|
+
import { P as PublicJob, a as PublicJobCard, C as CustomFieldValues } from './jobs-BFLMDNEN.js';
|
|
2
2
|
import { B as BoardLabelOverrides } from './ui-copy-rlfoH9P3.js';
|
|
3
3
|
export { A as AlertsCopy, a as ApplyCopy, b as BlogCopy, c as BreadcrumbsCopy, C as CopyLinkCopy, E as EntityCopy, F as FooterCopy, J as JobCardCopy, d as JobDetailCopy, e as JobSearchCopy, N as NavCopy, P as PUBLIC_LABEL_GROUPS, f as PaginationCopy, S as SalaryCopy, U as UiCopy, u as uiCopy } from './ui-copy-rlfoH9P3.js';
|
|
4
|
-
import { C as CustomFieldDefinition } from './board-
|
|
4
|
+
import { C as CustomFieldDefinition } from './board-DsRbgz_D.js';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Date display helpers in the board language (required leading parameter,
|
package/dist/index.d.mts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { b as Schemas, R as RemoteOption, E as EmploymentType, S as Seniority, L as ListEnvelope, c as components, d as JobsListQuery, e as JobCardListEnvelope, f as JobsSearchBody, g as JobCardSearchEnvelope, h as JobsSimilarQuery, i as SearchEnvelope } from './jobs-
|
|
2
|
-
export { j as CustomFieldValue, C as CustomFieldValues, k as EducationRequirement, l as JobCompany, J as JobSort, O as OfficeLocation, P as PublicJob, a as PublicJobCard,
|
|
3
|
-
export { C as CustomFieldDefinition, a as CustomFieldOption, b as CustomFieldType, P as PublicBoard, c as PublicBoardAnalytics, d as PublicBoardFeatures, e as PublicBoardTheme } from './board-
|
|
4
|
-
import { b as CompaniesListQuery, c as CompanyListEnvelope, d as CompaniesSearchBody, e as CompanyJobsListQuery, f as CompanySimilarQuery, g as CompanyMarketsListQuery, h as SalaryDetailQuery, i as BlogPostsListQuery, j as BlogSimilarQuery, k as BlogSearchBody } from './salaries-
|
|
5
|
-
export { B as BlogAuthorEmbed, l as BlogTagEmbed, C as CompanyCategorySalary, m as CompanyMarket, n as CompanyMarketRef, a as CompanySalary, L as LocationSalaryDetail, o as LocationSkillsIndex, p as LocationTitlesIndex, q as PublicBlogAdjacentPosts, r as PublicBlogAuthor, s as PublicBlogPost, P as PublicBlogPostSummary, t as PublicBlogTag, u as PublicCompany, v as PublicCompanyDetail, w as SalaryCompany, x as SalaryLocation, y as SalarySkill, z as SalaryTitle, A as SkillLocationSalary, D as SkillLocationsIndex, S as SkillSalaryDetail, E as TitleLocationSalary, F as TitleLocationsIndex, T as TitleSalaryDetail } from './salaries-
|
|
1
|
+
import { b as Schemas, R as RemoteOption, E as EmploymentType, S as Seniority, L as ListEnvelope, c as components, d as JobsListQuery, e as JobCardListEnvelope, f as JobsSearchBody, g as JobCardSearchEnvelope, h as JobsSimilarQuery, i as SearchEnvelope } from './jobs-BFLMDNEN.mjs';
|
|
2
|
+
export { j as CustomFieldValue, C as CustomFieldValues, k as EducationRequirement, l as JobCatalogPagination, m as JobCompany, J as JobSort, O as OfficeLocation, n as OffsetPagination, P as PublicJob, a as PublicJobCard, o as RelatedSearch, p as RemotePermit, q as RemoteTimezone, r as StorefrontPagination } from './jobs-BFLMDNEN.mjs';
|
|
3
|
+
export { C as CustomFieldDefinition, a as CustomFieldOption, b as CustomFieldType, P as PublicBoard, c as PublicBoardAnalytics, d as PublicBoardFeatures, e as PublicBoardTheme } from './board-Be8dY9Ba.mjs';
|
|
4
|
+
import { b as CompaniesListQuery, c as CompanyListEnvelope, d as CompaniesSearchBody, e as CompanyJobsListQuery, f as CompanySimilarQuery, g as CompanyMarketsListQuery, h as SalaryDetailQuery, i as BlogPostsListQuery, j as BlogSimilarQuery, k as BlogSearchBody } from './salaries-pO_vGORE.mjs';
|
|
5
|
+
export { B as BlogAuthorEmbed, l as BlogTagEmbed, C as CompanyCategorySalary, m as CompanyMarket, n as CompanyMarketRef, a as CompanySalary, L as LocationSalaryDetail, o as LocationSkillsIndex, p as LocationTitlesIndex, q as PublicBlogAdjacentPosts, r as PublicBlogAuthor, s as PublicBlogPost, P as PublicBlogPostSummary, t as PublicBlogTag, u as PublicCompany, v as PublicCompanyDetail, w as SalaryCompany, x as SalaryLocation, y as SalarySkill, z as SalaryTitle, A as SkillLocationSalary, D as SkillLocationsIndex, S as SkillSalaryDetail, E as TitleLocationSalary, F as TitleLocationsIndex, T as TitleSalaryDetail } from './salaries-pO_vGORE.mjs';
|
|
6
6
|
|
|
7
7
|
type Awaitable<T> = T | Promise<T>;
|
|
8
8
|
/**
|
|
@@ -176,7 +176,7 @@ interface Paginator<P extends PageShape> extends AsyncIterable<ItemOf<P>> {
|
|
|
176
176
|
* an explicit sort/query — see the jobs skill.
|
|
177
177
|
*
|
|
178
178
|
* `offset` is honored for the FIRST page only and dropped afterwards: on
|
|
179
|
-
*
|
|
179
|
+
* job catalog reads let `offset` take precedence over `cursor`, so carrying it
|
|
180
180
|
* forward would re-serve the same page forever.
|
|
181
181
|
*
|
|
182
182
|
* @example
|
|
@@ -204,7 +204,7 @@ declare function paginate<Q extends Record<string, unknown>, P extends PageShape
|
|
|
204
204
|
* constant because the package is platform-neutral and cannot read
|
|
205
205
|
* package.json at runtime.
|
|
206
206
|
*/
|
|
207
|
-
declare const SDK_VERSION = "1.
|
|
207
|
+
declare const SDK_VERSION = "1.35.0";
|
|
208
208
|
|
|
209
209
|
type SavedJob = Schemas['SavedJob'];
|
|
210
210
|
type SavedJobsListQuery = {
|
|
@@ -456,7 +456,7 @@ type EmbedJobsQuery = {
|
|
|
456
456
|
cursor?: string;
|
|
457
457
|
/** Default 8; values above the embed ceiling of 50 are clamped to 50. */
|
|
458
458
|
limit?: number;
|
|
459
|
-
/**
|
|
459
|
+
/** Job catalog page offset; takes precedence over `cursor`. `offset + limit` ≤ 10,000. */
|
|
460
460
|
offset?: number;
|
|
461
461
|
/** Repeated param (up to 10) — OR-matched. Repeat `companyId` per value. */
|
|
462
462
|
companyId?: string[];
|
|
@@ -547,7 +547,7 @@ type AccessCheckoutBody = Schemas['AccessCheckoutBody'];
|
|
|
547
547
|
type AccessPortalBody = Schemas['AccessPortalBody'];
|
|
548
548
|
type PaywallOfferListEnvelope = ListEnvelope<PaywallOffer>;
|
|
549
549
|
|
|
550
|
-
type JobAlertFrequency = '
|
|
550
|
+
type JobAlertFrequency = 'weekly';
|
|
551
551
|
type JobAlertRemoteOption = 'on_site' | 'hybrid' | 'remote';
|
|
552
552
|
/**
|
|
553
553
|
* Alert filters a consumer can capture. Only `jobFunctions` (→ job categories),
|
|
@@ -646,7 +646,8 @@ type PlacesListQuery = {
|
|
|
646
646
|
};
|
|
647
647
|
|
|
648
648
|
interface CreateBoardClientOptions {
|
|
649
|
-
|
|
649
|
+
/** Cavuno API origin. Defaults to the production service. */
|
|
650
|
+
baseUrl?: string;
|
|
650
651
|
/** Board identifier: `pk_…` key (provisioned default) | `boards_…` ID | slug. */
|
|
651
652
|
board: string;
|
|
652
653
|
auth?: {
|
|
@@ -669,7 +670,6 @@ interface CreateBoardClientOptions {
|
|
|
669
670
|
* import { createBoardClient } from '@cavuno/board';
|
|
670
671
|
*
|
|
671
672
|
* const board = createBoardClient({
|
|
672
|
-
* baseUrl: 'https://api.cavuno.com',
|
|
673
673
|
* board: 'pk_a8f3…',
|
|
674
674
|
* });
|
|
675
675
|
* const { data } = await board.jobs.list({ limit: 20 });
|
|
@@ -1902,7 +1902,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
|
|
|
1902
1902
|
id: string;
|
|
1903
1903
|
object: "alert";
|
|
1904
1904
|
label: string | null;
|
|
1905
|
-
frequency: "
|
|
1905
|
+
frequency: "weekly";
|
|
1906
1906
|
isActive: boolean;
|
|
1907
1907
|
filters: {
|
|
1908
1908
|
jobFunctions: string[];
|
|
@@ -1919,7 +1919,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
|
|
|
1919
1919
|
id: string;
|
|
1920
1920
|
object: "alert";
|
|
1921
1921
|
label: string | null;
|
|
1922
|
-
frequency: "
|
|
1922
|
+
frequency: "weekly";
|
|
1923
1923
|
isActive: boolean;
|
|
1924
1924
|
filters: {
|
|
1925
1925
|
jobFunctions: string[];
|
|
@@ -1936,7 +1936,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
|
|
|
1936
1936
|
id: string;
|
|
1937
1937
|
object: "alert";
|
|
1938
1938
|
label: string | null;
|
|
1939
|
-
frequency: "
|
|
1939
|
+
frequency: "weekly";
|
|
1940
1940
|
isActive: boolean;
|
|
1941
1941
|
filters: {
|
|
1942
1942
|
jobFunctions: string[];
|
|
@@ -1953,7 +1953,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
|
|
|
1953
1953
|
id: string;
|
|
1954
1954
|
object: "alert";
|
|
1955
1955
|
label: string | null;
|
|
1956
|
-
frequency: "
|
|
1956
|
+
frequency: "weekly";
|
|
1957
1957
|
isActive: boolean;
|
|
1958
1958
|
filters: {
|
|
1959
1959
|
jobFunctions: string[];
|
|
@@ -2338,7 +2338,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
|
|
|
2338
2338
|
preferences: {
|
|
2339
2339
|
id: string;
|
|
2340
2340
|
label: string | null;
|
|
2341
|
-
frequency:
|
|
2341
|
+
frequency: "weekly";
|
|
2342
2342
|
isActive: boolean;
|
|
2343
2343
|
filters: {
|
|
2344
2344
|
jobFunctions?: string[];
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { b as Schemas, R as RemoteOption, E as EmploymentType, S as Seniority, L as ListEnvelope, c as components, d as JobsListQuery, e as JobCardListEnvelope, f as JobsSearchBody, g as JobCardSearchEnvelope, h as JobsSimilarQuery, i as SearchEnvelope } from './jobs-
|
|
2
|
-
export { j as CustomFieldValue, C as CustomFieldValues, k as EducationRequirement, l as JobCompany, J as JobSort, O as OfficeLocation, P as PublicJob, a as PublicJobCard,
|
|
3
|
-
export { C as CustomFieldDefinition, a as CustomFieldOption, b as CustomFieldType, P as PublicBoard, c as PublicBoardAnalytics, d as PublicBoardFeatures, e as PublicBoardTheme } from './board-
|
|
4
|
-
import { b as CompaniesListQuery, c as CompanyListEnvelope, d as CompaniesSearchBody, e as CompanyJobsListQuery, f as CompanySimilarQuery, g as CompanyMarketsListQuery, h as SalaryDetailQuery, i as BlogPostsListQuery, j as BlogSimilarQuery, k as BlogSearchBody } from './salaries-
|
|
5
|
-
export { B as BlogAuthorEmbed, l as BlogTagEmbed, C as CompanyCategorySalary, m as CompanyMarket, n as CompanyMarketRef, a as CompanySalary, L as LocationSalaryDetail, o as LocationSkillsIndex, p as LocationTitlesIndex, q as PublicBlogAdjacentPosts, r as PublicBlogAuthor, s as PublicBlogPost, P as PublicBlogPostSummary, t as PublicBlogTag, u as PublicCompany, v as PublicCompanyDetail, w as SalaryCompany, x as SalaryLocation, y as SalarySkill, z as SalaryTitle, A as SkillLocationSalary, D as SkillLocationsIndex, S as SkillSalaryDetail, E as TitleLocationSalary, F as TitleLocationsIndex, T as TitleSalaryDetail } from './salaries-
|
|
1
|
+
import { b as Schemas, R as RemoteOption, E as EmploymentType, S as Seniority, L as ListEnvelope, c as components, d as JobsListQuery, e as JobCardListEnvelope, f as JobsSearchBody, g as JobCardSearchEnvelope, h as JobsSimilarQuery, i as SearchEnvelope } from './jobs-BFLMDNEN.js';
|
|
2
|
+
export { j as CustomFieldValue, C as CustomFieldValues, k as EducationRequirement, l as JobCatalogPagination, m as JobCompany, J as JobSort, O as OfficeLocation, n as OffsetPagination, P as PublicJob, a as PublicJobCard, o as RelatedSearch, p as RemotePermit, q as RemoteTimezone, r as StorefrontPagination } from './jobs-BFLMDNEN.js';
|
|
3
|
+
export { C as CustomFieldDefinition, a as CustomFieldOption, b as CustomFieldType, P as PublicBoard, c as PublicBoardAnalytics, d as PublicBoardFeatures, e as PublicBoardTheme } from './board-DsRbgz_D.js';
|
|
4
|
+
import { b as CompaniesListQuery, c as CompanyListEnvelope, d as CompaniesSearchBody, e as CompanyJobsListQuery, f as CompanySimilarQuery, g as CompanyMarketsListQuery, h as SalaryDetailQuery, i as BlogPostsListQuery, j as BlogSimilarQuery, k as BlogSearchBody } from './salaries-negE75t8.js';
|
|
5
|
+
export { B as BlogAuthorEmbed, l as BlogTagEmbed, C as CompanyCategorySalary, m as CompanyMarket, n as CompanyMarketRef, a as CompanySalary, L as LocationSalaryDetail, o as LocationSkillsIndex, p as LocationTitlesIndex, q as PublicBlogAdjacentPosts, r as PublicBlogAuthor, s as PublicBlogPost, P as PublicBlogPostSummary, t as PublicBlogTag, u as PublicCompany, v as PublicCompanyDetail, w as SalaryCompany, x as SalaryLocation, y as SalarySkill, z as SalaryTitle, A as SkillLocationSalary, D as SkillLocationsIndex, S as SkillSalaryDetail, E as TitleLocationSalary, F as TitleLocationsIndex, T as TitleSalaryDetail } from './salaries-negE75t8.js';
|
|
6
6
|
|
|
7
7
|
type Awaitable<T> = T | Promise<T>;
|
|
8
8
|
/**
|
|
@@ -176,7 +176,7 @@ interface Paginator<P extends PageShape> extends AsyncIterable<ItemOf<P>> {
|
|
|
176
176
|
* an explicit sort/query — see the jobs skill.
|
|
177
177
|
*
|
|
178
178
|
* `offset` is honored for the FIRST page only and dropped afterwards: on
|
|
179
|
-
*
|
|
179
|
+
* job catalog reads let `offset` take precedence over `cursor`, so carrying it
|
|
180
180
|
* forward would re-serve the same page forever.
|
|
181
181
|
*
|
|
182
182
|
* @example
|
|
@@ -204,7 +204,7 @@ declare function paginate<Q extends Record<string, unknown>, P extends PageShape
|
|
|
204
204
|
* constant because the package is platform-neutral and cannot read
|
|
205
205
|
* package.json at runtime.
|
|
206
206
|
*/
|
|
207
|
-
declare const SDK_VERSION = "1.
|
|
207
|
+
declare const SDK_VERSION = "1.35.0";
|
|
208
208
|
|
|
209
209
|
type SavedJob = Schemas['SavedJob'];
|
|
210
210
|
type SavedJobsListQuery = {
|
|
@@ -456,7 +456,7 @@ type EmbedJobsQuery = {
|
|
|
456
456
|
cursor?: string;
|
|
457
457
|
/** Default 8; values above the embed ceiling of 50 are clamped to 50. */
|
|
458
458
|
limit?: number;
|
|
459
|
-
/**
|
|
459
|
+
/** Job catalog page offset; takes precedence over `cursor`. `offset + limit` ≤ 10,000. */
|
|
460
460
|
offset?: number;
|
|
461
461
|
/** Repeated param (up to 10) — OR-matched. Repeat `companyId` per value. */
|
|
462
462
|
companyId?: string[];
|
|
@@ -547,7 +547,7 @@ type AccessCheckoutBody = Schemas['AccessCheckoutBody'];
|
|
|
547
547
|
type AccessPortalBody = Schemas['AccessPortalBody'];
|
|
548
548
|
type PaywallOfferListEnvelope = ListEnvelope<PaywallOffer>;
|
|
549
549
|
|
|
550
|
-
type JobAlertFrequency = '
|
|
550
|
+
type JobAlertFrequency = 'weekly';
|
|
551
551
|
type JobAlertRemoteOption = 'on_site' | 'hybrid' | 'remote';
|
|
552
552
|
/**
|
|
553
553
|
* Alert filters a consumer can capture. Only `jobFunctions` (→ job categories),
|
|
@@ -646,7 +646,8 @@ type PlacesListQuery = {
|
|
|
646
646
|
};
|
|
647
647
|
|
|
648
648
|
interface CreateBoardClientOptions {
|
|
649
|
-
|
|
649
|
+
/** Cavuno API origin. Defaults to the production service. */
|
|
650
|
+
baseUrl?: string;
|
|
650
651
|
/** Board identifier: `pk_…` key (provisioned default) | `boards_…` ID | slug. */
|
|
651
652
|
board: string;
|
|
652
653
|
auth?: {
|
|
@@ -669,7 +670,6 @@ interface CreateBoardClientOptions {
|
|
|
669
670
|
* import { createBoardClient } from '@cavuno/board';
|
|
670
671
|
*
|
|
671
672
|
* const board = createBoardClient({
|
|
672
|
-
* baseUrl: 'https://api.cavuno.com',
|
|
673
673
|
* board: 'pk_a8f3…',
|
|
674
674
|
* });
|
|
675
675
|
* const { data } = await board.jobs.list({ limit: 20 });
|
|
@@ -1902,7 +1902,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
|
|
|
1902
1902
|
id: string;
|
|
1903
1903
|
object: "alert";
|
|
1904
1904
|
label: string | null;
|
|
1905
|
-
frequency: "
|
|
1905
|
+
frequency: "weekly";
|
|
1906
1906
|
isActive: boolean;
|
|
1907
1907
|
filters: {
|
|
1908
1908
|
jobFunctions: string[];
|
|
@@ -1919,7 +1919,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
|
|
|
1919
1919
|
id: string;
|
|
1920
1920
|
object: "alert";
|
|
1921
1921
|
label: string | null;
|
|
1922
|
-
frequency: "
|
|
1922
|
+
frequency: "weekly";
|
|
1923
1923
|
isActive: boolean;
|
|
1924
1924
|
filters: {
|
|
1925
1925
|
jobFunctions: string[];
|
|
@@ -1936,7 +1936,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
|
|
|
1936
1936
|
id: string;
|
|
1937
1937
|
object: "alert";
|
|
1938
1938
|
label: string | null;
|
|
1939
|
-
frequency: "
|
|
1939
|
+
frequency: "weekly";
|
|
1940
1940
|
isActive: boolean;
|
|
1941
1941
|
filters: {
|
|
1942
1942
|
jobFunctions: string[];
|
|
@@ -1953,7 +1953,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
|
|
|
1953
1953
|
id: string;
|
|
1954
1954
|
object: "alert";
|
|
1955
1955
|
label: string | null;
|
|
1956
|
-
frequency: "
|
|
1956
|
+
frequency: "weekly";
|
|
1957
1957
|
isActive: boolean;
|
|
1958
1958
|
filters: {
|
|
1959
1959
|
jobFunctions: string[];
|
|
@@ -2338,7 +2338,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
|
|
|
2338
2338
|
preferences: {
|
|
2339
2339
|
id: string;
|
|
2340
2340
|
label: string | null;
|
|
2341
|
-
frequency:
|
|
2341
|
+
frequency: "weekly";
|
|
2342
2342
|
isActive: boolean;
|
|
2343
2343
|
filters: {
|
|
2344
2344
|
jobFunctions?: string[];
|
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 = "1.
|
|
315
|
+
var SDK_VERSION = "1.35.0";
|
|
316
316
|
|
|
317
317
|
// src/client.ts
|
|
318
318
|
function isRawBody(body) {
|
|
@@ -403,6 +403,9 @@ var BoardClient = class {
|
|
|
403
403
|
}
|
|
404
404
|
};
|
|
405
405
|
|
|
406
|
+
// src/constants.ts
|
|
407
|
+
var DEFAULT_CAVUNO_API_URL = "https://api.cavuno.com";
|
|
408
|
+
|
|
406
409
|
// src/namespaces/auth.ts
|
|
407
410
|
function authNamespace(client) {
|
|
408
411
|
async function persist(session) {
|
|
@@ -1798,7 +1801,7 @@ function meNamespace(client) {
|
|
|
1798
1801
|
*
|
|
1799
1802
|
* @example
|
|
1800
1803
|
* await board.me.alerts.update(alertId, {
|
|
1801
|
-
* frequency: '
|
|
1804
|
+
* frequency: 'weekly',
|
|
1802
1805
|
* placeIds: ['ChIJ…'],
|
|
1803
1806
|
* });
|
|
1804
1807
|
*/
|
|
@@ -2633,7 +2636,7 @@ function resolveApplyAction(state) {
|
|
|
2633
2636
|
// src/index.ts
|
|
2634
2637
|
function createBoardClient(options) {
|
|
2635
2638
|
const client = new BoardClient({
|
|
2636
|
-
baseUrl: options.baseUrl,
|
|
2639
|
+
baseUrl: options.baseUrl ?? DEFAULT_CAVUNO_API_URL,
|
|
2637
2640
|
board: options.board,
|
|
2638
2641
|
storage: resolveStorage(options.auth?.storage, options.board),
|
|
2639
2642
|
globalHeaders: options.globalHeaders,
|
package/dist/index.mjs
CHANGED
|
@@ -265,7 +265,7 @@ async function clearSession(storage) {
|
|
|
265
265
|
}
|
|
266
266
|
|
|
267
267
|
// src/version.ts
|
|
268
|
-
var SDK_VERSION = "1.
|
|
268
|
+
var SDK_VERSION = "1.35.0";
|
|
269
269
|
|
|
270
270
|
// src/client.ts
|
|
271
271
|
function isRawBody(body) {
|
|
@@ -356,6 +356,9 @@ var BoardClient = class {
|
|
|
356
356
|
}
|
|
357
357
|
};
|
|
358
358
|
|
|
359
|
+
// src/constants.ts
|
|
360
|
+
var DEFAULT_CAVUNO_API_URL = "https://api.cavuno.com";
|
|
361
|
+
|
|
359
362
|
// src/namespaces/auth.ts
|
|
360
363
|
function authNamespace(client) {
|
|
361
364
|
async function persist(session) {
|
|
@@ -1751,7 +1754,7 @@ function meNamespace(client) {
|
|
|
1751
1754
|
*
|
|
1752
1755
|
* @example
|
|
1753
1756
|
* await board.me.alerts.update(alertId, {
|
|
1754
|
-
* frequency: '
|
|
1757
|
+
* frequency: 'weekly',
|
|
1755
1758
|
* placeIds: ['ChIJ…'],
|
|
1756
1759
|
* });
|
|
1757
1760
|
*/
|
|
@@ -2586,7 +2589,7 @@ function resolveApplyAction(state) {
|
|
|
2586
2589
|
// src/index.ts
|
|
2587
2590
|
function createBoardClient(options) {
|
|
2588
2591
|
const client = new BoardClient({
|
|
2589
|
-
baseUrl: options.baseUrl,
|
|
2592
|
+
baseUrl: options.baseUrl ?? DEFAULT_CAVUNO_API_URL,
|
|
2590
2593
|
board: options.board,
|
|
2591
2594
|
storage: resolveStorage(options.auth?.storage, options.board),
|
|
2592
2595
|
globalHeaders: options.globalHeaders,
|