@cavuno/board 3.1.0 → 4.0.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 +421 -0
- package/README.md +6 -2
- package/dist/{_spec-nkWAraS0.d.mts → _spec-GVe6WAfT.d.mts} +68 -59
- package/dist/{_spec-nkWAraS0.d.ts → _spec-GVe6WAfT.d.ts} +68 -59
- package/dist/bin.mjs +7 -2
- package/dist/blog-BsmKizpd.d.ts +29 -0
- package/dist/blog-Cf64mI8A.d.mts +29 -0
- package/dist/{salaries-BahBpxWT.d.ts → board-DUhgiacm.d.ts} +17 -29
- package/dist/{salaries-ChSqDBAM.d.mts → board-GGWJ4coe.d.mts} +17 -29
- package/dist/breadcrumbs-DFKr0HzU.d.mts +372 -0
- package/dist/breadcrumbs-DiccJhk4.d.ts +372 -0
- package/dist/chunk-2ETP5UH4.mjs +271 -0
- package/dist/chunk-BGKNXG4H.mjs +146 -0
- package/dist/chunk-DLSO6XXY.mjs +33 -0
- package/dist/chunk-T2KC6XGV.mjs +1060 -0
- package/dist/chunk-YEAQ3JEI.mjs +853 -0
- package/dist/doctor.js +1 -1
- package/dist/doctor.mjs +1 -1
- package/dist/filters.d.mts +25 -20
- package/dist/filters.d.ts +25 -20
- package/dist/filters.js +3 -692
- package/dist/filters.mjs +3 -690
- package/dist/format.d.mts +57 -230
- package/dist/format.d.ts +57 -230
- package/dist/format.js +355 -927
- package/dist/format.mjs +213 -931
- package/dist/go.js +11 -1
- package/dist/go.mjs +4 -29
- package/dist/index.d.mts +23 -75
- package/dist/index.d.ts +23 -75
- package/dist/index.js +11 -36
- package/dist/index.mjs +32 -313
- package/dist/{jobs-lVvKCBCU.d.mts → jobs-BuLpV8iy.d.mts} +4 -4
- package/dist/{jobs-BiEvL9d7.d.ts → jobs-QrbXOYB9.d.ts} +4 -4
- package/dist/paths.d.mts +89 -1
- package/dist/paths.d.ts +89 -1
- package/dist/paths.js +62 -14
- package/dist/paths.mjs +29 -78
- package/dist/route-contract.js +23 -13
- package/dist/route-contract.mjs +30 -1079
- package/dist/{search-CCyFWPi3.d.mts → search-Cr4noJJZ.d.mts} +14 -3
- package/dist/{search-CyRvVMUp.d.ts → search-DdsniXQv.d.ts} +14 -3
- package/dist/seo.d.mts +33 -189
- package/dist/seo.d.ts +33 -189
- package/dist/seo.js +197 -718
- package/dist/seo.mjs +44 -1417
- package/dist/server.d.mts +5 -5
- package/dist/server.d.ts +5 -5
- package/dist/server.mjs +5 -31
- package/dist/sitemap.d.mts +5 -5
- package/dist/sitemap.d.ts +5 -5
- package/dist/sitemap.js +25 -14
- package/dist/sitemap.mjs +22 -97
- package/dist/skills.js +1 -1
- package/dist/skills.mjs +1 -1
- package/dist/suggest.d.mts +2 -2
- package/dist/suggest.d.ts +2 -2
- package/dist/suggest.js +17 -3
- package/dist/suggest.mjs +17 -3
- package/dist/well-known.js +23 -13
- package/dist/well-known.mjs +4 -421
- package/package.json +5 -4
- package/skills/cavuno-board-applications/SKILL.md +4 -1
- package/skills/cavuno-board-filters/SKILL.md +11 -12
- package/skills/cavuno-board-format/SKILL.md +68 -56
- package/skills/cavuno-board-i18n/SKILL.md +102 -21
- package/skills/cavuno-board-search-suggestions/SKILL.md +8 -3
- package/skills/cavuno-board-seo/BLOG.md +4 -1
- package/skills/cavuno-board-seo/JOB_AND_BREADCRUMBS.md +5 -2
- package/skills/cavuno-board-seo/LISTING.md +35 -12
- package/skills/cavuno-board-seo/SALARY.md +83 -18
- package/skills/cavuno-board-seo/SKILL.md +3 -2
- package/skills/manifest.json +3 -3
- package/dist/board-NE98PlwN.d.ts +0 -16
- package/dist/board-muu8BI8P.d.mts +0 -16
- package/dist/ui-copy-CCkz6CVF.d.mts +0 -230
- package/dist/ui-copy-CCkz6CVF.d.ts +0 -230
package/dist/doctor.js
CHANGED
|
@@ -57,7 +57,7 @@ function loadSkillCorpus(baseDir) {
|
|
|
57
57
|
).map((entry) => ({
|
|
58
58
|
path: entry.name,
|
|
59
59
|
content: (0, import_node_fs.readFileSync)((0, import_node_path.resolve)(skillDir, entry.name), "utf8")
|
|
60
|
-
})).sort((a, b) => a.path.
|
|
60
|
+
})).sort((a, b) => a.path < b.path ? -1 : a.path > b.path ? 1 : 0);
|
|
61
61
|
return {
|
|
62
62
|
...skill,
|
|
63
63
|
content: (0, import_node_fs.readFileSync)(skillPath, "utf8"),
|
package/dist/doctor.mjs
CHANGED
|
@@ -27,7 +27,7 @@ function loadSkillCorpus(baseDir) {
|
|
|
27
27
|
).map((entry) => ({
|
|
28
28
|
path: entry.name,
|
|
29
29
|
content: readFileSync(resolve(skillDir, entry.name), "utf8")
|
|
30
|
-
})).sort((a, b) => a.path.
|
|
30
|
+
})).sort((a, b) => a.path < b.path ? -1 : a.path > b.path ? 1 : 0);
|
|
31
31
|
return {
|
|
32
32
|
...skill,
|
|
33
33
|
content: readFileSync(skillPath, "utf8"),
|
package/dist/filters.d.mts
CHANGED
|
@@ -1,6 +1,27 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
|
|
1
|
+
import { J as JobSort, E as EmploymentType, R as RemoteOption, S as Seniority } from './jobs-BuLpV8iy.mjs';
|
|
2
|
+
import './_spec-GVe6WAfT.mjs';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* `@cavuno/board/filters` — the canonical listing-filter vocabulary and URL
|
|
6
|
+
* search-param parsing for jobs-listing routes.
|
|
7
|
+
*
|
|
8
|
+
* One greppable convention across every tenant frontend: the vocabulary
|
|
9
|
+
* arrays mirror the hosted board; seniority URL parsing follows the hosted
|
|
10
|
+
* semantics exactly (trim, lowercase, dedupe — hand-typed URLs are messy).
|
|
11
|
+
*
|
|
12
|
+
* Map parsed filters onto the wire like:
|
|
13
|
+
* ```
|
|
14
|
+
* companySlug: filters.company,
|
|
15
|
+
* seniority: filters.seniority,
|
|
16
|
+
* remoteOption: filters.remoteOption ? [filters.remoteOption] : undefined,
|
|
17
|
+
* ```
|
|
18
|
+
* Company slugs are the URL identity; the API accepts them directly via
|
|
19
|
+
* `companySlug` — never resolve slug→id client-side.
|
|
20
|
+
*
|
|
21
|
+
* Display labels for seniority / sort / remote options are application-owned
|
|
22
|
+
* chrome words — this entry only ships the wire vocabulary and
|
|
23
|
+
* parsers.
|
|
24
|
+
*/
|
|
4
25
|
|
|
5
26
|
declare const REMOTE_OPTIONS: readonly RemoteOption[];
|
|
6
27
|
/**
|
|
@@ -12,22 +33,6 @@ declare const EMPLOYMENT_TYPES: readonly EmploymentType[];
|
|
|
12
33
|
declare const SENIORITIES: readonly Seniority[];
|
|
13
34
|
declare const JOB_SORTS: readonly JobSort[];
|
|
14
35
|
declare const DEFAULT_SORT: JobSort;
|
|
15
|
-
/**
|
|
16
|
-
* Seniority display labels in the board language (lexicon-backed, en+de),
|
|
17
|
-
* ⊕ stored operator overrides (`jobCardLabels.seniority*`) when the
|
|
18
|
-
* `labels` bag is passed.
|
|
19
|
-
*
|
|
20
|
-
* @example
|
|
21
|
-
* seniorityLabels('de').executive; // "Führungskraft"
|
|
22
|
-
*/
|
|
23
|
-
declare function seniorityLabels(locale: string, labels?: BoardLabelOverrides): Record<Seniority, string>;
|
|
24
|
-
/**
|
|
25
|
-
* Sort-dropdown labels in the board language, resolved from the copy
|
|
26
|
-
* catalog (`uiCopy(locale).jobCard`) ⊕ stored operator overrides
|
|
27
|
-
* (`jobCardLabels.aiRankedLabel` / `sortNewestLabel` / `sortSalaryHighLabel`)
|
|
28
|
-
* when the `labels` bag is passed.
|
|
29
|
-
*/
|
|
30
|
-
declare function sortLabels(locale: string, labels?: BoardLabelOverrides): Record<JobSort, string>;
|
|
31
36
|
interface ListingFilters {
|
|
32
37
|
q?: string;
|
|
33
38
|
remoteOption?: RemoteOption;
|
|
@@ -66,4 +71,4 @@ declare function parseCompany(raw: unknown): string[] | undefined;
|
|
|
66
71
|
*/
|
|
67
72
|
declare function parseListingFilters(search: Record<string, unknown>): ListingFilters;
|
|
68
73
|
|
|
69
|
-
export { DEFAULT_SORT, EMPLOYMENT_TYPES, JOB_SORTS, type ListingFilters, REMOTE_OPTIONS, SENIORITIES, parseCompany, parseListingFilters, parseSeniority
|
|
74
|
+
export { DEFAULT_SORT, EMPLOYMENT_TYPES, JOB_SORTS, type ListingFilters, REMOTE_OPTIONS, SENIORITIES, parseCompany, parseListingFilters, parseSeniority };
|
package/dist/filters.d.ts
CHANGED
|
@@ -1,6 +1,27 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
|
|
1
|
+
import { J as JobSort, E as EmploymentType, R as RemoteOption, S as Seniority } from './jobs-QrbXOYB9.js';
|
|
2
|
+
import './_spec-GVe6WAfT.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* `@cavuno/board/filters` — the canonical listing-filter vocabulary and URL
|
|
6
|
+
* search-param parsing for jobs-listing routes.
|
|
7
|
+
*
|
|
8
|
+
* One greppable convention across every tenant frontend: the vocabulary
|
|
9
|
+
* arrays mirror the hosted board; seniority URL parsing follows the hosted
|
|
10
|
+
* semantics exactly (trim, lowercase, dedupe — hand-typed URLs are messy).
|
|
11
|
+
*
|
|
12
|
+
* Map parsed filters onto the wire like:
|
|
13
|
+
* ```
|
|
14
|
+
* companySlug: filters.company,
|
|
15
|
+
* seniority: filters.seniority,
|
|
16
|
+
* remoteOption: filters.remoteOption ? [filters.remoteOption] : undefined,
|
|
17
|
+
* ```
|
|
18
|
+
* Company slugs are the URL identity; the API accepts them directly via
|
|
19
|
+
* `companySlug` — never resolve slug→id client-side.
|
|
20
|
+
*
|
|
21
|
+
* Display labels for seniority / sort / remote options are application-owned
|
|
22
|
+
* chrome words — this entry only ships the wire vocabulary and
|
|
23
|
+
* parsers.
|
|
24
|
+
*/
|
|
4
25
|
|
|
5
26
|
declare const REMOTE_OPTIONS: readonly RemoteOption[];
|
|
6
27
|
/**
|
|
@@ -12,22 +33,6 @@ declare const EMPLOYMENT_TYPES: readonly EmploymentType[];
|
|
|
12
33
|
declare const SENIORITIES: readonly Seniority[];
|
|
13
34
|
declare const JOB_SORTS: readonly JobSort[];
|
|
14
35
|
declare const DEFAULT_SORT: JobSort;
|
|
15
|
-
/**
|
|
16
|
-
* Seniority display labels in the board language (lexicon-backed, en+de),
|
|
17
|
-
* ⊕ stored operator overrides (`jobCardLabels.seniority*`) when the
|
|
18
|
-
* `labels` bag is passed.
|
|
19
|
-
*
|
|
20
|
-
* @example
|
|
21
|
-
* seniorityLabels('de').executive; // "Führungskraft"
|
|
22
|
-
*/
|
|
23
|
-
declare function seniorityLabels(locale: string, labels?: BoardLabelOverrides): Record<Seniority, string>;
|
|
24
|
-
/**
|
|
25
|
-
* Sort-dropdown labels in the board language, resolved from the copy
|
|
26
|
-
* catalog (`uiCopy(locale).jobCard`) ⊕ stored operator overrides
|
|
27
|
-
* (`jobCardLabels.aiRankedLabel` / `sortNewestLabel` / `sortSalaryHighLabel`)
|
|
28
|
-
* when the `labels` bag is passed.
|
|
29
|
-
*/
|
|
30
|
-
declare function sortLabels(locale: string, labels?: BoardLabelOverrides): Record<JobSort, string>;
|
|
31
36
|
interface ListingFilters {
|
|
32
37
|
q?: string;
|
|
33
38
|
remoteOption?: RemoteOption;
|
|
@@ -66,4 +71,4 @@ declare function parseCompany(raw: unknown): string[] | undefined;
|
|
|
66
71
|
*/
|
|
67
72
|
declare function parseListingFilters(search: Record<string, unknown>): ListingFilters;
|
|
68
73
|
|
|
69
|
-
export { DEFAULT_SORT, EMPLOYMENT_TYPES, JOB_SORTS, type ListingFilters, REMOTE_OPTIONS, SENIORITIES, parseCompany, parseListingFilters, parseSeniority
|
|
74
|
+
export { DEFAULT_SORT, EMPLOYMENT_TYPES, JOB_SORTS, type ListingFilters, REMOTE_OPTIONS, SENIORITIES, parseCompany, parseListingFilters, parseSeniority };
|